2011-09-15 17 views
9

Fare una migrazione da 2.8.1 a 2.9.1 ha trovato una cosa interessante. provato a scrivere questo in console:Strano comportamento di Set4 in scala 2.9.1?

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

Dà:

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]? 

Sto usando Scala versione 2.9.1.final (Java HotSpot (TM) client VM, Java 1.6.0_26).
E le stesse cose accadono con le classi Set3 e Set2.
Questi problemi noti sono noti?
O, forse, sto facendo qualcosa di sbagliato?
a Scala console 2.8.1 funziona, e ritorna:

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

devo riferire su questi come bug?

+0

C'è un motivo per cui usi 'Set4' direttamente? – soc

+0

Sì, voglio avere una chiave con quattro numeri interi, che saranno frequentemente usati con le operazioni Set (come |, &, & ~), perché volevano avere un oggetto con implementazione ottimizzata. –

+2

'Set (1,2,3,4) .isInstanceOf [collection.immutable.Set.Set4 [Int]] == true' questo succede già automaticamente. – soc

risposta

7

Sì. Questo è un bug del compilatore, vai avanti e segnalalo.

+0

(verificato il 2.10 Non dimenticare di postare nuovamente il numero del problema: D) – soc

+1

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

+0

Grazie! Se voglio partecipare alla risoluzione dei bug SI, come devo iniziare? –