Flattening scala.immutable.Seq with -Yno-predef flag



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

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

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

如果我放import scala.Predef._它会再次编译。我试图调查scala.Predefscala包对象,但是当我试图复制TraversableOnce的,Traversable的或Seq的定义时,它没有帮助。

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

您正在寻找Predef.$conforms.

弄清楚的一种方法是在命令行上运行scala -Xprint:typer -e 'Seq(Seq(1)).flatten'。 它将打印整个语法树,并解析所有隐式语法。

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

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

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

相关内容

  • 没有找到相关文章

最新更新