我正在使用带有Predef
标志的自定义-Yno-predef
。它基本上是SlamData's one的副本。
当我尝试压缩嵌套的不可变Seq
集合时,我收到错误:
No implicit view available from my.Predef.Seq[String] => scala.collection.GenTraversableOnce[String].
如果我放import scala.Predef._
它会再次编译。我尝试调查scala.Predef
和scala
包对象,但是当我尝试复制TraversableOnce
,Traversable
或Seq
时这个定义并没有帮助。
有人知道vanilla predef的哪一部分负责生成这个隐含的东西吗?
答案 0 :(得分:4)
您正在寻找Predef.$conforms
。
解决问题的方法是在命令行上运行scala -Xprint:typer -e 'Seq(Seq(1)).flatten'
。
它将打印整个语法树,解决所有含义。
答案 1 :(得分:0)
经过一番挖掘后,我发现我所缺少的是:
type <:<[-From, +To] = scala.Predef.<:<[From, To]
implicit def $conforms[A]: A <:< A = scala.Predef.$conforms[A]
显然,在伴随对象内的所有类型类派生中使用隐式证据是必需的。