-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Labels
Milestone
Description
$ cat X.scala
class Ctor[@specialized(Int) T](var t1: T, var t2: T) {
// the block needs to be here to cause the crash:
{
// the code needs to be here to cause the crash:
val XXX = "XXX"
println(XXX)
// boilerplate to force constructor specialization:
t1 = t2
}
}
$ scalac X.scala
error: Unknown type: => String, => String [class scala.reflect.internal.Types$NullaryMethodType, class scala.reflect.internal.Types$NullaryMethodType] TypeRef? false
error: uncaught exception during compilation: scala.reflect.internal.FatalError
error: scala.reflect.internal.FatalError:
while compiling: X.scala
during phase: icode
library version: version 2.10.3-20130609-151224-a54d86b550
compiler version: version 2.10.3-20130612-162255-3a959f7a05
reconstructed args:
last tree to typer: Ident(t2$mcI$sp)
symbol: value t2$mcI$sp (flags: <param> <triedcooking>)
symbol definition: t2$mcI$sp: Int
tpe: Int
symbol owners: value t2$mcI$sp -> constructor Ctor$mcI$sp -> class Ctor$mcI$sp -> package <empty>
context owners: class Ctor$mcI$sp -> package <empty>
...
== Expanded type of tree ==
TypeRef(TypeSymbol(final abstract class Int extends ))
Unknown type: => String, => String [class scala.reflect.internal.Types$NullaryMethodType, class scala.reflect.internal.Types$NullaryMethodType] TypeRef? false
at scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:49)
at scala.tools.nsc.Global.abort(Global.scala:254)
at scala.tools.nsc.backend.icode.TypeKinds$class.toTypeKind(TypeKinds.scala:397)
at scala.tools.nsc.backend.icode.ICodes.toTypeKind(ICodes.scala:20)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadSelect$1(GenICode.scala:1006)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:1022)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$genLoadArguments$1.apply(GenICode.scala:1246)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$genLoadArguments$1.apply(GenICode.scala:1244)
at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:111)
at scala.collection.immutable.List.foldLeft(List.scala:84)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadArguments(GenICode.scala:1244)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genLoadApply6$1(GenICode.scala:935)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:967)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genStat(GenICode.scala:187)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$genStat$1.apply(GenICode.scala:156)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$genStat$1.apply(GenICode.scala:156)
at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:111)
at scala.collection.immutable.List.foldLeft(List.scala:84)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genStat(GenICode.scala:156)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:1068)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genStat(GenICode.scala:187)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$genStat$1.apply(GenICode.scala:156)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$genStat$1.apply(GenICode.scala:156)
at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:111)
at scala.collection.immutable.List.foldLeft(List.scala:84)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.genStat(GenICode.scala:156)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.scala$tools$nsc$backend$icode$GenICode$ICodePhase$$genLoad(GenICode.scala:1068)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:124)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$gen$1.apply(GenICode.scala:72)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$gen$1.apply(GenICode.scala:72)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:72)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:149)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:99)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$gen$1.apply(GenICode.scala:72)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase$$anonfun$gen$1.apply(GenICode.scala:72)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:72)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:90)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.gen(GenICode.scala:68)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.apply(GenICode.scala:64)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:464)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:431)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:431)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:431)
at scala.tools.nsc.backend.icode.GenICode$ICodePhase.run(GenICode.scala:57)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1583)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1557)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1553)
at scala.tools.nsc.Global$Run.compile(Global.scala:1662)
at scala.tools.nsc.Driver.doCompile(Driver.scala:33)
at scala.tools.nsc.Main$.doCompile(Main.scala:79)
at scala.tools.nsc.Driver.process(Driver.scala:54)
at scala.tools.nsc.Driver.main(Driver.scala:67)
at scala.tools.nsc.Main.main(Main.scala)Note the constructor specialization happens in constructors and is key to the crash, thus the bug description mentions constructors.
Reactions are currently unavailable