Aladdin - Scala Bugtracking
[#502] project: nsc priority: low category: bug
submitter assigned to status date submitted
Philippe Martin fixed 2005-11-28 14:29:37.0
subject Homonym object and class with secondary constructor crash the compiler
code
class Foo(x: Int) {
  def this() = this(0);
}
object Foo;
what happened
Exception in thread "main" java.lang.Error: assertion failed: singleton class Foo
	at scala.Predef$.assert(Predef.scala:144)
	at scala.tools.nsc.symtab.Symbols$TypeSymbol$class.setInfo(Symbols.scala:874)
	at scala.tools.nsc.symtab.Symbols$TypeSymbol$class.setInfo(Symbols.scala:869)
	at scala.tools.nsc.symtab.Symbols$Symbol$class.setInfo(Symbols.scala:303)
	at scala.tools.nsc.typechecker.Namers$Namer$$anon$0.complete(Namers.scala:214)
	at scala.tools.nsc.symtab.Symbols$Symbol$$anon$20.apply(Symbols.scala:288)
	at scala.tools.nsc.symtab.Symbols$Symbol$$anon$20.apply(Symbols.scala:286)
	at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
	at scala.runtime.RunTime.tryCatch(RunTime.java:79)
	at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
	at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
	at scala.tools.nsc.symtab.Symbols$Symbol$class.info(Symbols.scala:286)
	at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$implicitsOfClass$0(T\
ypers.scala:1497)
	at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$implicitsOfClass$0(Typers.scala:38)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$75.apply(Typers.scala:1493)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$75.apply(Typers.scala:1493)
	at scala.List$class.map(List.scala:551)
	at scala.List$class.map(List.scala:551)
	at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$implicitsOfType$0(Ty\
pers.scala:1493)
	at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$inferImplicit(Typers\
.scala:1501)
	at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$inferView(Typers.sca\
la:51)
	at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$inferView(Typers.scala:38)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$3.isCoercible(Typers.scala:45)
	at scala.tools.nsc.typechecker.Infer$Inferencer$class.isCompatible(Infer.scala:243)
	at scala.tools.nsc.typechecker.Infer$Inferencer$class.isApplicable(Infer.scala:366)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$66.apply(Typers.scala:1229)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$66.apply(Typers.scala:1228)
	at scala.List$class.filter(List.scala:591)
	at scala.List$class.filter(List.scala:594)
	at scala.tools.nsc.symtab.Symbols$Symbol$class.filter(Symbols.scala:440)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typed1(Typers.scala:1228)
	at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$typed1(Typers.scala:38)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1344)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1339)
	at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
	at scala.runtime.RunTime.tryCatch(RunTime.java:79)
	at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
	at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1339)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typedDefDef(Typers.scala:665)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typed1(Typers.scala:1056)
	at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$typed1(Typers.scala:38)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1344)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1339)
	at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
	at scala.runtime.RunTime.tryCatch(RunTime.java:79)
	at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
	at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1339)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1367)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$46.apply(Typers.scala:801)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$46.apply(Typers.scala:791)
	at scala.List$.mapConserve(List.scala:227)
	at scala.List$.mapConserve(List.scala:229)
	at scala.List$.mapConserve(List.scala:229)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typedStats(Typers.scala:791)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typedTemplate(Typers.scala:571)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typedClassDef(Typers.scala:513)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typed1(Typers.scala:1047)
	at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$typed1(Typers.scala:38)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1344)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1339)
	at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
	at scala.runtime.RunTime.tryCatch(RunTime.java:79)
	at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
	at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1339)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1367)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$46.apply(Typers.scala:801)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$46.apply(Typers.scala:791)
	at scala.List$.mapConserve(List.scala:227)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typedStats(Typers.scala:791)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typed1(Typers.scala:1043)
	at scala.tools.nsc.typechecker.Typers$Typer$class.scala$tools$nsc$typechecker$Typers$Typer$access$scala$tools$n\
sc$typechecker$Typers$Typer$typed1(Typers.scala:38)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1344)
	at scala.tools.nsc.typechecker.Typers$Typer$$anon$80.apply(Typers.scala:1339)
	at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
	at scala.runtime.RunTime.tryCatch(RunTime.java:79)
	at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
	at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1339)
	at scala.tools.nsc.typechecker.Typers$Typer$class.typed(Typers.scala:1367)
	at scala.tools.nsc.typechecker.Analyzer$typerFactory$$anon$1.apply(Analyzer.scala:39)
	at scala.tools.nsc.Global$GlobalPhase$class.applyPhase(Global.scala:170)
	at scala.tools.nsc.Global$GlobalPhase$$anon$7.apply(Global.scala:162)
	at scala.tools.nsc.Global$GlobalPhase$$anon$7.apply(Global.scala:162)
	at scala.Iterator$class.foreach(Iterator.scala:262)
	at scala.tools.nsc.Global$GlobalPhase$class.run(Global.scala:162)
	at scala.tools.nsc.Global$Run$class.compileSources(Global.scala:339)
	at scala.tools.nsc.Global$Run$$anon$20.apply(Global.scala:397)
	at scala.tools.nsc.Global$Run$$anon$20.apply(Global.scala:397)
	at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
	at scala.runtime.RunTime.tryCatch(RunTime.java:79)
	at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
	at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
	at scala.tools.nsc.Global$Run$class.compile(Global.scala:396)
	at scala.tools.nsc.Main$$anon$4.apply(Main.scala:55)
	at scala.tools.nsc.Main$$anon$4.apply(Main.scala:48)
	at scala.runtime.ScalaRunTime$$anon$0.run(ScalaRunTime.scala:34)
	at scala.runtime.RunTime.tryCatch(RunTime.java:79)
	at scala.runtime.ScalaRunTime$$anon$0.<init>(ScalaRunTime.scala:32)
	at scala.runtime.ScalaRunTime$.Try(ScalaRunTime.scala:30)
	at scala.tools.nsc.Main$.process(Main.scala:48)
	at scala.tools.nsc.Main$.main(Main.scala:67)
	at scala.tools.nsc.Main.main(Main.scala:66)
what expected no crash
[back to overview]
Changes of this bug report
Martin  edited on  2006-02-02 14:24:48.0