2016-01-09 7 views
7
में

बिल्लियों लाइब्रेरी का उपयोग कर रहा बिल्लियों स्काला पुस्तकालय का उपयोग कर रहा है और इंटेलीजे आईडीई implicits के उपयोग के साथ संघर्ष कर किया जा रहा है:झूठी त्रुटियों जब इंटेलीजे

import cats.std.all._ 
import cats.Traverse.ops._ 

def useSequence[A](ls : List[Option[A]]) : Option[List[A]] = { 
    ls.sequence 
} 

में:

यहाँ एक सरल उदाहरण है IntelliJ, यह कोड लाल हाइलाइट किया गया है। लेकिन मैं Make Project या कमांड लाइन का उपयोग करके बस ठीक बना सकता हूं।

अभी त्रुटि है:

प्रकार कुछ भी नहीं है की अभिव्यक्ति [सूची [कुछ भी नहीं]] की उम्मीद प्रकार विकल्प के अनुरूप नहीं है [सूची [एक]]

अन्य बार त्रुटि की तरह कुछ है:

मूल्य अनुक्रम सूची का सदस्य नहीं है [विकल्प [एक]]

क्या यह इंटेलिजे में एक बग है या क्या मुझे कुछ कॉन्फ़िगरेशन याद आ रही है?

मैं स्केल प्लगइन के संस्करण 2.0.4 के साथ IntelliJ 15.0.2 का उपयोग कर रहा हूं।

+5

यह मूल रूप से एक IntelliJ बग है, यह केवल इतना अनुमान लगा सकते हैं, और इस यह कुछ मैक्रो जो यह और भी आसान हो गया है का उपयोग करता है की तरह लग रहा Intellij के लिए inferij प्रकार के लिए कठिन (बिल्लियों मैक्रोज़ का उपयोग कर रहा है)। यदि आप इंटेलिज को खुश होना चाहते हैं तो आपको इसे कुछ और प्रकार देने की आवश्यकता है। इसके बाद [विकल्प, ए] '। – Noah

उत्तर

0

इस में एक खुला मुद्दा है इंटेलीजे/स्काला प्लगइन (SCL-10259 - False error (good code red): sequence from cats) 13 मई के बाद से खुला, 2016

ऊपर @Noah टिप्पणी के रूप में, अब के लिए वैकल्पिक हल कंटेनर के प्रकार प्रदान करके इंटेलीजे मदद करने के लिए है और निहित है कि अनुक्रम लिए आवेदन किया है प्रकार, यानी (बिल्लियों के लिए अद्यतन 1.0):

import cats.instances.all._ 
import cats.Traverse.ops._ 

def useSequence[A](ls : List[Option[A]]) : Option[List[A]] = 
    ls.sequence[Option, A] 
संबंधित मुद्दे