Skip to content

Instantly share code, notes, and snippets.

@xuwei-k
Last active August 29, 2015 14:18
Show Gist options
  • Save xuwei-k/5ba3bcc8dc014f374777 to your computer and use it in GitHub Desktop.
Save xuwei-k/5ba3bcc8dc014f374777 to your computer and use it in GitHub Desktop.
"incorrect package name" + "default parameter of constructor" = "compiler crash!?"
package foo
class A private[incorrect_package](value: Int = 1)
$ scala -version
Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL
$ scalac A.scala
A.scala:3: error: incorrect_package is not an enclosing class
class A private[incorrect_package](value: Int = 1)
^
error: java.lang.AssertionError: assertion failed:
value <error: constructor A>
while compiling: A.scala
during phase: globalPhase=typer, enteringPhase=namer
library version: version 2.11.6
compiler version: version 2.11.6
reconstructed args:
last tree to typer: term A
tree position: line 3 of A.scala
symbol: object A in package foo
symbol definition: object A (a ModuleSymbol)
symbol package: foo
symbol owners: object A
call site: class A in package foo in package foo
== Source file context for tree position ==
0 package foo
1
2 class A private[incorrect_package](value: Int = 1)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$addDefaultGetters$2$$anonfun$apply$14$$anonfun$18.apply(Namers.scala:1324)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$addDefaultGetters$2$$anonfun$apply$14.apply(Namers.scala:1322)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$addDefaultGetters$2$$anonfun$apply$14.apply(Namers.scala:1269)
at scala.reflect.internal.util.Collections$class.map2(Collections.scala:79)
at scala.reflect.internal.SymbolTable.map2(SymbolTable.scala:16)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$addDefaultGetters$2.apply(Namers.scala:1269)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$addDefaultGetters$2.apply(Namers.scala:1265)
at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:124)
at scala.collection.immutable.List.foldLeft(List.scala:84)
at scala.tools.nsc.typechecker.Namers$Namer.addDefaultGetters(Namers.scala:1265)
at scala.tools.nsc.typechecker.Namers$Namer.methodSig(Namers.scala:1189)
at scala.tools.nsc.typechecker.Namers$Namer.getSig$1(Namers.scala:1529)
at scala.tools.nsc.typechecker.Namers$Namer.typeSig(Namers.scala:1541)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply$mcV$sp(Namers.scala:781)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:780)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:780)
at scala.tools.nsc.typechecker.Namers$Namer.scala$tools$nsc$typechecker$Namers$Namer$$logAndValidate(Namers.scala:1568)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:780)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:772)
at scala.tools.nsc.typechecker.Namers$$anon$1.completeImpl(Namers.scala:1684)
at scala.tools.nsc.typechecker.Namers$LockingTypeCompleter$class.complete(Namers.scala:1692)
at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1682)
at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1488)
at scala.reflect.internal.Symbols$Symbol.initialize(Symbols.scala:1633)
at scala.tools.nsc.typechecker.Typers$Typer.typedModuleDef(Typers.scala:1797)
at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5310)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5359)
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5452)
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:3046)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$1$$anonfun$apply$34.apply(Typers.scala:3108)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$1$$anonfun$apply$34.apply(Typers.scala:3107)
at scala.Option$WithFilter.foreach(Option.scala:209)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$1.apply(Typers.scala:3107)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$1.apply(Typers.scala:3106)
at scala.reflect.internal.Scopes$Scope.foreach(Scopes.scala:373)
at scala.tools.nsc.typechecker.Typers$Typer.addSynthetics$1(Typers.scala:3106)
at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3157)
at scala.tools.nsc.typechecker.Typers$Typer.typedPackageDef$1(Typers.scala:5012)
at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5312)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5359)
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5448)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:102)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply$mcV$sp(Global.scala:441)
at scala.tools.nsc.Global$GlobalPhase.withCurrentUnit(Global.scala:432)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:441)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:94)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:93)
at scala.collection.Iterator$class.foreach(Iterator.scala:750)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1202)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:93)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1500)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1487)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1482)
at scala.tools.nsc.Global$Run.compile(Global.scala:1580)
at scala.tools.nsc.Driver.doCompile(Driver.scala:32)
at scala.tools.nsc.MainClass.doCompile(Main.scala:23)
at scala.tools.nsc.Driver.process(Driver.scala:51)
at scala.tools.nsc.Driver.main(Driver.scala:64)
at scala.tools.nsc.Main.main(Main.scala)
Exception in thread "main" java.lang.AssertionError: assertion failed:
value <error: constructor A>
while compiling: A.scala
during phase: globalPhase=typer, enteringPhase=namer
library version: version 2.11.6
compiler version: version 2.11.6
reconstructed args:
last tree to typer: term A
tree position: line 3 of A.scala
symbol: object A in package foo
symbol definition: object A (a ModuleSymbol)
symbol package: foo
symbol owners: object A
call site: class A in package foo in package foo
== Source file context for tree position ==
0 package foo
1
2 class A private[incorrect_package](value: Int = 1)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$addDefaultGetters$2$$anonfun$apply$14$$anonfun$18.apply(Namers.scala:1324)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$addDefaultGetters$2$$anonfun$apply$14.apply(Namers.scala:1322)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$addDefaultGetters$2$$anonfun$apply$14.apply(Namers.scala:1269)
at scala.reflect.internal.util.Collections$class.map2(Collections.scala:79)
at scala.reflect.internal.SymbolTable.map2(SymbolTable.scala:16)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$addDefaultGetters$2.apply(Namers.scala:1269)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$addDefaultGetters$2.apply(Namers.scala:1265)
at scala.collection.LinearSeqOptimized$class.foldLeft(LinearSeqOptimized.scala:124)
at scala.collection.immutable.List.foldLeft(List.scala:84)
at scala.tools.nsc.typechecker.Namers$Namer.addDefaultGetters(Namers.scala:1265)
at scala.tools.nsc.typechecker.Namers$Namer.methodSig(Namers.scala:1189)
at scala.tools.nsc.typechecker.Namers$Namer.getSig$1(Namers.scala:1529)
at scala.tools.nsc.typechecker.Namers$Namer.typeSig(Namers.scala:1541)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply$mcV$sp(Namers.scala:781)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:780)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1$$anonfun$apply$1.apply(Namers.scala:780)
at scala.tools.nsc.typechecker.Namers$Namer.scala$tools$nsc$typechecker$Namers$Namer$$logAndValidate(Namers.scala:1568)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:780)
at scala.tools.nsc.typechecker.Namers$Namer$$anonfun$monoTypeCompleter$1.apply(Namers.scala:772)
at scala.tools.nsc.typechecker.Namers$$anon$1.completeImpl(Namers.scala:1684)
at scala.tools.nsc.typechecker.Namers$LockingTypeCompleter$class.complete(Namers.scala:1692)
at scala.tools.nsc.typechecker.Namers$$anon$1.complete(Namers.scala:1682)
at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1488)
at scala.reflect.internal.Symbols$Symbol.initialize(Symbols.scala:1633)
at scala.tools.nsc.typechecker.Typers$Typer.typedModuleDef(Typers.scala:1797)
at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5310)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5359)
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5452)
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:3046)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$1$$anonfun$apply$34.apply(Typers.scala:3108)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$1$$anonfun$apply$34.apply(Typers.scala:3107)
at scala.Option$WithFilter.foreach(Option.scala:209)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$1.apply(Typers.scala:3107)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$addSynthetics$1$1.apply(Typers.scala:3106)
at scala.reflect.internal.Scopes$Scope.foreach(Scopes.scala:373)
at scala.tools.nsc.typechecker.Typers$Typer.addSynthetics$1(Typers.scala:3106)
at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3157)
at scala.tools.nsc.typechecker.Typers$Typer.typedPackageDef$1(Typers.scala:5012)
at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5312)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5359)
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5448)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.apply(Analyzer.scala:102)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply$mcV$sp(Global.scala:441)
at scala.tools.nsc.Global$GlobalPhase.withCurrentUnit(Global.scala:432)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:441)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:94)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3$$anonfun$run$1.apply(Analyzer.scala:93)
at scala.collection.Iterator$class.foreach(Iterator.scala:750)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1202)
at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$3.run(Analyzer.scala:93)
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1500)
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1487)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1482)
at scala.tools.nsc.Global$Run.compile(Global.scala:1580)
at scala.tools.nsc.Driver.doCompile(Driver.scala:32)
at scala.tools.nsc.MainClass.doCompile(Main.scala:23)
at scala.tools.nsc.Driver.process(Driver.scala:51)
at scala.tools.nsc.Driver.main(Driver.scala:64)
at scala.tools.nsc.Main.main(Main.scala)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment