|
[#1144] |
project: compiler |
priority: low |
category: bug |
|
submitter |
assigned to |
status |
date submitted |
|
Sean |
Martin |
fixed |
2007-05-28 17:02:38.0 |
subject |
resident compiler chokes on NSC |
code |
see NSC
Note in symtab/AnnotationInfos.scala:
private object symbolReifier extends SymbolReifier {
val symbols: AnnotationInfos.this.type = AnnotationInfos.this
}
Crash will go away if we change symbolReifier to a value.
|
what happened |
sean-mcdirmid:~/workspace/scala/src/compiler mcdirmid$ ../../build/quick/bin/scalac -resident -d tmp
nsc> scala/tools/nsc/symtab/AnnotationInfos.scala
nsc> scala/tools/nsc/symtab/SymbolTable.scala
Exception in thread "main" java.lang.AssertionError: assertion failed: AnnotationInfos.this.type.object scala$to\
ols$nsc$symtab$AnnotationInfos$$symbolReifier does no longer exist, phase = namer
at scala.Predef$.assert(Predef.scala:90)
at scala.tools.nsc.symtab.Types$adaptToNewRunMap$.adaptToNewRun(Types.scala:2183)
at scala.tools.nsc.symtab.Types$adaptToNewRunMap$.adaptToNewRun(Types.scala:2174)
at scala.tools.nsc.symtab.Types$adaptToNewRunMap$.apply(Types.scala:2216)
at scala.tools.nsc.symtab.Symbols$Symbol.adaptToNewRun$0(Symbols.scala:508)
at scala.tools.nsc.symtab.Symbols$Symbol.adaptInfos(Symbols.scala:512)
at scala.tools.nsc.symtab.Symbols$Symbol.adaptInfos(Symbols.scala:504)
at scala.tools.nsc.symtab.Symbols$Symbol.adaptInfos(Symbols.scala:504)
at scala.tools.nsc.symtab.Symbols$Symbol.adaptInfos(Symbols.scala:504)
at scala.tools.nsc.symtab.Symbols$Symbol.rawInfo(Symbols.scala:471)
at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:428)
at scala.tools.nsc.transform.AddInterfaces.scala$tools$nsc$transform$AddInterfaces$$isInterfaceMember(AddInterf\
aces.scala:60)
at scala.tools.nsc.transform.AddInterfaces$LazyImplClassType$$anonfun$1.apply(AddInterfaces.scala:136)
at scala.tools.nsc.transform.AddInterfaces$LazyImplClassType$$anonfun$1.apply(AddInterfaces.scala:135)
at scala.Iterator$class.foreach(Iterator.scala:364)
at scala.List$$anon$0.foreach(List.scala:482)
at scala.tools.nsc.transform.AddInterfaces$LazyImplClassType.implDecls(AddInterfaces.scala:135)
at scala.tools.nsc.transform.AddInterfaces$LazyImplClassType.implType$0(AddInterfaces.scala:160)
at scala.tools.nsc.transform.AddInterfaces$LazyImplClassType.complete(AddInterfaces.scala:165)
at scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:417)
at scala.tools.nsc.symtab.Symbols$Symbol.primaryConstructor(Symbols.scala:656)
at scala.tools.nsc.transform.AddInterfaces.mixinConstructorCall$0(AddInterfaces.scala:288)
at scala.tools.nsc.transform.AddInterfaces$$anonfun$11.apply(AddInterfaces.scala:293)
at scala.tools.nsc.transform.AddInterfaces$$anonfun$11.apply(AddInterfaces.scala:291)
at scala.List.map(List.scala:670)
at scala.tools.nsc.transform.AddInterfaces.scala$tools$nsc$transform$AddInterfaces$$addMixinConstructorCalls(Ad\
dInterfaces.scala:291)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transform(AddInterfaces.scala:316)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$35.apply(Trees.scala:1326)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$35.apply(Trees.scala:1324)
at scala.List$.loop$0(List.scala:243)
at scala.List$.mapConserve(List.scala:260)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:1324)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transformStats(AddInterfaces.scala:305)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:1236)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transform(AddInterfaces.scala:346)
at scala.tools.nsc.ast.Trees$Transformer.transformTemplate(Trees.scala:1310)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$22.apply(Trees.scala:1204)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$22.apply(Trees.scala:1204)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:1332)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:1203)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transform(AddInterfaces.scala:346)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$35.apply(Trees.scala:1326)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$35.apply(Trees.scala:1324)
at scala.List$.loop$0(List.scala:243)
at scala.List$.mapConserve(List.scala:260)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:1324)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transformStats(AddInterfaces.scala:305)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$21.apply(Trees.scala:1200)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$21.apply(Trees.scala:1200)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:1332)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:1199)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transform(AddInterfaces.scala:346)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$35.apply(Trees.scala:1326)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$35.apply(Trees.scala:1324)
at scala.List$.loop$0(List.scala:243)
at scala.List$.mapConserve(List.scala:260)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:1324)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transformStats(AddInterfaces.scala:305)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$21.apply(Trees.scala:1200)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$21.apply(Trees.scala:1200)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:1332)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:1199)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transform(AddInterfaces.scala:346)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$35.apply(Trees.scala:1326)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$35.apply(Trees.scala:1324)
at scala.List$.loop$0(List.scala:243)
at scala.List$.mapConserve(List.scala:260)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:1324)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transformStats(AddInterfaces.scala:305)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$21.apply(Trees.scala:1200)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$21.apply(Trees.scala:1200)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:1332)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:1199)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transform(AddInterfaces.scala:346)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$35.apply(Trees.scala:1326)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$35.apply(Trees.scala:1324)
at scala.List$.loop$0(List.scala:243)
at scala.List$.mapConserve(List.scala:260)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:1324)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transformStats(AddInterfaces.scala:305)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$21.apply(Trees.scala:1200)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$21.apply(Trees.scala:1200)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:1332)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:1199)
at scala.tools.nsc.transform.AddInterfaces$$anon$0.transform(AddInterfaces.scala:346)
at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anonfun$26.apply(Erasure.scala:862)
at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anonfun$26.apply(Erasure.scala:861)
at scala.tools.nsc.symtab.SymbolTable.atPhase(SymbolTable.scala:83)
at scala.tools.nsc.transform.Erasure$ErasureTransformer.transform(Erasure.scala:861)
at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:1327)
at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:241)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$2.apply(Global.scala:230)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$2.apply(Global.scala:230)
at scala.Iterator$class.foreach(Iterator.scala:364)
at scala.collection.mutable.ListBuffer$$anon$0.foreach(ListBuffer.scala:247)
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:230)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:498)
at scala.tools.nsc.Global$Run.compile(Global.scala:572)
at scala.tools.nsc.Main$$anonfun$0.apply(Main.scala:37)
at scala.tools.nsc.Main$$anonfun$0.apply(Main.scala:34)
at scala.tools.nsc.EvalLoop$class.loop(EvalLoop.scala:17)
at scala.tools.nsc.Main$.loop(Main.scala:17)
at scala.tools.nsc.EvalLoop$class.loop(EvalLoop.scala:18)
at scala.tools.nsc.Main$.loop(Main.scala:17)
at scala.tools.nsc.Main$.resident(Main.scala:34)
at scala.tools.nsc.Main$.process(Main.scala:52)
at scala.tools.nsc.Main$.main(Main.scala:77)
at scala.tools.nsc.Main.main(Main.scala)
|
what expected |
I can't seem to narrow this down. The code seems to depend on the entire compiler, and the crash doesn't occur if I isolate to just the three core files involved (AnnotationInfos.scala, SymbolTable.scala and SymbolReifier.scala). I'm pretty sure it has something to do with the symbolReifier object in AnnotationInfos, because changing it to a val avoids the crash.
|
[back to overview] |