16

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

这是一个简单的例子:

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]] 类型的表达式不符合预期的类型 Option[List[A]]

其他时候错误类似于:

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

这是 IntelliJ 中的错误还是我缺少一些配置?

我正在使用带有 Scala 插件版本 2.0.4 的 IntelliJ 15.0.2。

4

1 回答 1

5

这是自 2016 年 5 月 13 日以来开放的 IntelliJ/Scala 插件( SCL-10259 - 错误错误(良好代码红色):来自猫的序列)中的一个未解决问题。

正如上面@Noah 评论的那样,目前的解决方法是通过提供容器的类型和应用序列的包含类型来帮助 IntelliJ,即 (针对猫 1.0 更新)

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

def useSequence[A](ls : List[Option[A]]) : Option[List[A]] = 
  ls.sequence[Option, A]
于 2018-03-09T08:05:11.493 回答