我正在使用猫Scala库,IntelliJ IDE似乎正在努力使用implicits:
这是一个简单的例子:
import cats.std.all._ import cats.Traverse.ops._ def useSequence[A](ls : List[Option[A]]) : Option[List[A]] = { ls.sequence }
在IntelliJ中,此代码以红色突出显示.但是我可以使用Make Project
或命令行构建得很好.
现在错误是:
类型Nothing [List [Nothing]]的表达式不符合预期类型选项[List [A]]
其他时候错误是这样的:
值序列不是List [Option [A]]的成员
这是IntelliJ中的错误还是我错过了一些配置?
我使用的是IntelliJ 15.0.2和Scala插件的2.0.4版.
自2016年5月13日以来,这是IntelliJ / Scala插件(SCL-10259-错误错误(红色代码良好):来自cats的序列)中的一个未解决问题。
正如上面@Noah所评论的那样,目前的解决方法是通过提供序列的容器类型和包含的类型来帮助IntelliJ,例如 (针对cats 1.0更新):
import cats.instances.all._ import cats.Traverse.ops._ def useSequence[A](ls : List[Option[A]]) : Option[List[A]] = ls.sequence[Option, A]