2011-09-15 46 views
9

從2.8.1遷移到2.9.1發現有趣的事情。 試圖在控制檯中這樣寫:Scala 2.9.1中Set4的奇怪行爲?

>>import collection.immutable.Set.Set4 
>>new Set4[Int](1,2,3,4) 

它提供:

java.lang.Error: Unexpected New 
    at scala.tools.nsc.symtab.SymbolTable.abort(SymbolTable.scala:34) 
    at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$bac 
.......................... 
That entry seems to have slain the compiler. Shall I replayscala:660) 
your session? I can re-run each line except the last one.reach(ListBuffer.scala: 
[y/n]? 

我使用Scala的版本2.9.1.final(Java的熱點(TM)客戶端虛擬機,Java的1.6.0_26)。
同樣的事情發生在類Set3和Set2上。
這些已知問題?
或者,也許我做錯了什麼?
在斯卡拉2.8.1控制檯它的工作原理,並返回:

res0: collection.immutable.Set.Set4[Int] = Set(1,2,3,4) 

我必須對這些作爲錯誤報告?

+0

你有直接使用'Set4'的原因嗎? – soc

+0

是的,我想要一個帶有四個整數的鍵,它將經常用於Set操作(如|,&,&〜),因爲它想要一個具有優化實現的對象。 –

+2

'Set(1,2,3,4).isInstanceOf [collection.immutable.Set.Set4 [Int]] == true'這已經自動發生了。 – soc

回答

7

是的。這是一個編譯器錯誤,請繼續並報告。

+0

(在2.10驗證。不要忘了在這裏再次發佈問題編號:D) – soc

+1

問題[SI-4999](https:// issues。 scala-lang.org/browse/SI-4999)。 –

+0

謝謝!如果我想參與解決SI錯誤,我該如何開始? –