1

我正在使用Predef带有-Yno-predef标志的自定义。它基本上是SlamData 的一个副本。

当我尝试展平嵌套Seq的不可变集合时,我收到错误:

No implicit view available from my.Predef.Seq[String] => scala.collection.GenTraversableOnce[String].

如果我把import scala.Predef._它重新编译。我试图调查scala.Predefscala打包对象,但是当我试图复制TraversableOnce's、Traversable's 或Seq's 的定义时,它没有帮助。

有人知道 vanilla predef 的哪个部分负责生成这种隐式吗?

4

2 回答 2

5

您正在寻找Predef.$conforms.

一种解决方法是scala -Xprint:typer -e 'Seq(Seq(1)).flatten'在命令行上运行。它将打印整个语法树,并解决所有隐含问题。

于 2017-07-03T15:31:47.400 回答
0

经过一番挖掘,我发现我缺少的是:

type <:<[-From, +To] = scala.Predef.<:<[From, To]
implicit def $conforms[A]: A <:< A = scala.Predef.$conforms[A] 

显然,在伴随对象内的所有类型类派生中使用隐式证据是必需的。

于 2017-07-03T15:31:00.183 回答