在IntelliJ中使用cats库时出现错误

mus*_*oom 16 scala intellij-idea implicits scala-cats

我正在使用猫Scala库,IntelliJ IDE似乎正在努力使用implicits:

这是一个简单的例子:

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

def useSequence[A](ls : List[Option[A]]) : Option[List[A]] = {
  ls.sequence
}
Run Code Online (Sandbox Code Playgroud)

在IntelliJ中,此代码以红色突出显示.但是我可以使用Make Project或命令行构建得很好.

现在错误是:

类型Nothing [List [Nothing]]的表达式不符合预期类型选项[List [A]]

其他时候错误是这样的:

值序列不是List [Option [A]]的成员

这是IntelliJ中的错误还是我错过了一些配置?

我使用的是IntelliJ 15.0.2和Scala插件的2.0.4版.

Arn*_*sen 5

自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]
Run Code Online (Sandbox Code Playgroud)