2012-01-03 178 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

相關問題