Aladdin - Scala Bugtracking
[#289] project: compiler priority: medium category: bug
submitter assigned to status date submitted
Erik Philippe fixed 2004-01-30 17:50:58.0
subject Mixing in an object craches cloneSymbol
code
class A {
  object B;
}

object C with A;
what happened
Exception in thread "main" java.lang.AssertionError: A$class.B
        at scalac.symtab.SymbolCloner.cloneSymbol(SymbolCloner.java:74)
        at scalac.transformer.ExpandMixinsPhase$TypeTransformer.createMixedInMemberSymbols(ExpandMixinsPhase.jav\
a:407)
        at scalac.transformer.ExpandMixinsPhase$TypeTransformer.initialize(ExpandMixinsPhase.java:386)
        at scalac.transformer.ExpandMixinsPhase$TypeTransformer.(ExpandMixinsPhase.java:365)
        at scalac.transformer.ExpandMixinsPhase.getTypeExpander(ExpandMixinsPhase.java:321)
        at scalac.transformer.ExpandMixinsPhase.getExpandedBody(ExpandMixinsPhase.java:333)
        at scalac.transformer.ExpandMixinsPhase.access$13(ExpandMixinsPhase.java:53)
        at scalac.transformer.ExpandMixinsPhase$TreeExpander.transform(ExpandMixinsPhase.java:165)
        at scalac.ast.GenTransformer.transform(Transformer.java:574)
        at scalac.ast.GenTransformer.apply(Transformer.java:402)
        at scalac.transformer.ExpandMixinsPhase$TreeExpander.apply(ExpandMixinsPhase.java:157)
        at scalac.ast.GenTransformer.apply(Transformer.java:396)
        at scalac.transformer.ExpandMixinsPhase.apply(ExpandMixinsPhase.java:98)
        at scalac.Global.compile(Global.java:313)
        at scalac.Global.compile(Global.java:285)
        at scala.tools.scalac.Main$.main(sources/scala/tools/scalac/Main.scala:33)
        at scala.tools.scalac.Main.main(sources/scala/tools/scalac/Main.scala)
what expected Silent compilation...
[back to overview]
Changes of this bug report
Michel  edited on  2004-02-03 07:39:40.0
I just refiled this bug to Philippe, who authored the current version of ExpandMixin. Further bug notices concerning this phase can be assigned directly to him, and the same goes for ExplicitOuter and AddAccessors.
Philippe  edited on  2004-04-15 13:45:25.0
Replaced method Symbol.module() by method Symbol.sourceModule() and removed assertion in class SymbolCloner.