Scala中的"非简单类型"警告意味着什么?

Sco*_*son 5 warnings types scala existential-type sbt

我的Scala 2.9.1项目现在发出176个警告,几乎完全像这样:

[warn] Not a simple type:
[warn]  Type: _29.type#source.type forSome { type _29.type <: Ontology.this.TruncationFunctor } (class class scala.tools.nsc.symtab.Types$ExistentialType)
[warn]  Transformed: class xsbti.api.Existential
Run Code Online (Sandbox Code Playgroud)

(它从较少开始,但我的编码风格似乎引发了这个警告,因为我越来越多了.)

任何人都可以向我解释这个警告意味着什么,以及我应该如何避免它?编译器不会发出任何行号,所以我甚至不确定它究竟来自哪里.

huy*_*hjl 6

这似乎特定于sbt,其中关于类型的假设是不正确的并且发出警告.当sbt需要从源文件中提取一些信息时,似乎这段代码就会运行.

请参阅https://github.com/harrah/xsbt/blob/0.11/compile/interface/API.scala#L105

我的猜测是存在类型和类型投影的组合导致这种情况.如果您可以缩小范围,可能需要将此报告为sbt问题.