2012-01-03 106 views
5

我的斯卡拉2.9.1项目现在发出警告176,几乎所有的正是这样一个:Scala中的“不是简单类型”警告是什么意思?

[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 

(它开始少了,但我的编码风格似乎挑起这个警告,因为我越说越更多。)

任何人都可以向我解释这个警告是什么意思,我该如何避免它?编译器不会发出任何行号,所以我甚至不确定它是从哪里来的。

+1

当然,如果你创建这些为你的代码,你可以计算出它是什么,是造成他们。 – 2012-01-03 04:53:54

+2

尝试通过使用代码片段制作一个小测试文件来隔离警告。人们会认为,@ RexKerr, – 2012-01-03 05:41:50

+0

。不幸的是,它们出现在我的代码的大量重构过程中(例如,当将大量类型参数转换为抽象类型成员时),在这些错误期间错误淹没了警告。由于所有内容都经过编译(包含警告)并在最后进行了测试,所以我并没有停下来调查警告。 – 2012-01-03 15:09:52

回答

6

这似乎是特定于sbt其中有关类型的假设是不正确的,并发出警告。看起来这段代码在sbt需要从源文件中提取一些信息时运行。

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

我的胡乱猜测是存在的类型和类型的投影是导致此的组合。如果您能缩小范围,您可能希望将此报告为问题。

+0

谢谢,huynhjl,让我的心灵得到了休息。我怀疑我会投入很多时间,但如果我偶然发现一个小的测试案例,我一定会将其贡献给sbt。 – 2012-01-03 15:10:47

相关问题