Closed
Description
minimized code
package object A
class A
Stack trace
Exception in thread "main" java.lang.AssertionError: assertion failed: class defined twice module class A 2509 2513
at dotty.DottyPredef$.assertFail(DottyPredef.scala:17)
at dotty.tools.dotc.transform.TreeChecker.testDuplicate(TreeChecker.scala:54)
at dotty.tools.dotc.transform.TreeChecker.transformSym(TreeChecker.scala:77)
at dotty.tools.dotc.core.DenotTransformers$SymTransformer.transform(DenotTransformers.scala:70)
at dotty.tools.dotc.transform.TreeChecker.transform(TreeChecker.scala:38)
at dotty.tools.dotc.core.Denotations$SingleDenotation.current(Denotations.scala:945)
at dotty.tools.dotc.core.Symbols$Symbol.recomputeDenot(Symbols.scala:486)
at dotty.tools.dotc.core.Symbols$Symbol.computeDenot(Symbols.scala:481)
at dotty.tools.dotc.core.Symbols$Symbol.denot(Symbols.scala:475)
at dotty.tools.dotc.core.Symbols$.toDenot(Symbols.scala:847)
at dotty.tools.dotc.core.SymDenotations$$anon$2.hasNext(SymDenotations.scala:1031)
at scala.collection.IterableOnceOps.exists(IterableOnce.scala:581)
at scala.collection.IterableOnceOps.exists$(IterableOnce.scala:578)
at dotty.tools.dotc.core.SymDenotations$$anon$2.exists(SymDenotations.scala:1029)
at dotty.tools.dotc.core.TypeOps.inInlineMethod(TypeOps.scala:458)
at dotty.tools.dotc.core.Contexts$Context.inInlineMethod(Contexts.scala:75)
at dotty.tools.dotc.transform.ReifyQuotes.checkPostCondition(ReifyQuotes.scala:79)
at dotty.tools.dotc.transform.TreeChecker.dotty$tools$dotc$transform$TreeChecker$Checker$$_$typedUnadapted$$anonfun$1(TreeChecker.scala:318)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:305)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:318)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2193)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2205)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:286)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2290)
at dotty.tools.dotc.typer.ReTyper.typedFunPart(ReTyper.scala:72)
at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:841)
at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:969)
at dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:82)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2099)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2157)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:301)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2193)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2205)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:286)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2254)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2276)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedStats(TreeChecker.scala:475)
at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:761)
at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:765)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$2$$anonfun$1(TreeChecker.scala:457)
at dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:168)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock$$anonfun$1(TreeChecker.scala:457)
at dotty.tools.dotc.transform.TreeChecker$Checker.withBlock(TreeChecker.scala:196)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedBlock(TreeChecker.scala:457)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2107)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2157)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:301)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2193)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2205)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:286)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2290)
at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1640)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedDefDef$$anonfun$2$$anonfun$1(TreeChecker.scala:431)
at dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:168)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedDefDef$$anonfun$1(TreeChecker.scala:434)
at dotty.tools.dotc.transform.TreeChecker$Checker.withDefinedSyms(TreeChecker.scala:168)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedDefDef(TreeChecker.scala:435)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2086)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2156)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:301)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2193)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2205)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:286)
at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:1760)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedClassDef(TreeChecker.scala:415)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2089)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2156)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:301)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2193)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2205)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:286)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2232)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2276)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedStats(TreeChecker.scala:475)
at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:1890)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2130)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2157)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:301)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2193)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2205)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:286)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2254)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2276)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedStats(TreeChecker.scala:475)
at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:1890)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2130)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2157)
at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
at dotty.tools.dotc.transform.TreeChecker$Checker.typedUnadapted(TreeChecker.scala:301)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2193)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2205)
at dotty.tools.dotc.transform.TreeChecker$Checker.typed(TreeChecker.scala:286)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2290)
at dotty.tools.dotc.transform.TreeChecker.check(TreeChecker.scala:121)
at dotty.tools.dotc.transform.TreeChecker.run(TreeChecker.scala:94)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:315)
at scala.collection.immutable.List.map(List.scala:219)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:316)
at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:161)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
at dotty.tools.dotc.Run.runPhases$5(Run.scala:171)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:179)
at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:65)
at dotty.tools.dotc.Run.compileUnits(Run.scala:186)
at dotty.tools.dotc.Run.compileSources(Run.scala:123)
at dotty.tools.dotc.Run.compile(Run.scala:106)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:36)
at dotty.tools.dotc.Driver.process(Driver.scala:189)
at dotty.tools.dotc.Driver.process(Driver.scala:158)
at dotty.tools.dotc.Driver.process(Driver.scala:170)
at dotty.tools.dotc.Driver.main(Driver.scala:197)
at dotty.tools.dotc.Main.main(Main.scala)
Error message
sbt:dotty> dotc testing/Test.scala -Ycheck:all
[warn] Multiple main classes detected. Run 'show discoveredMainClasses' to see the list
[info] Running (fork) dotty.tools.dotc.Main -classpath /Users/akonovalov/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.13.1.jar:/Users/akonovalov/Documents/projects/dotty-fork/library/../out/bootstrap/dotty-library-bootstrapped/scala-0.21/dotty-library_0.21-0.21.0-bin-SNAPSHOT.jar testing/Test.scala -Ycheck:all
checking testing/Test.scala after phase frontend
checking testing/Test.scala after phase inlinedPositions
checking testing/Test.scala after phase staging
checking testing/Test.scala after phase posttyper
checking testing/Test.scala after phase pickler
checking testing/Test.scala after phase reifyQuotes
checking testing/Test.scala after phase MegaPhase{firstTransform, checkReentrant, elimPackagePrefixes, cookComments, completeJavaEnums}
checking testing/Test.scala after phase MegaPhase{checkStatic, elimRepeated, expandSAMs, protectedAccessors, extmethods, cacheAliasImplicits, shortcutImplicits, byNameClosures, hoistSuperArgs, classOf, refchecks}
checking testing/Test.scala after phase MegaPhase{elimOpaque, tryCatchPatterns, patternMatcher, explicitOuter, explicitSelf, stringInterpolatorOpt, crossCast}
checking testing/Test.scala after phase MegaPhase{pruneErasedDefs, vcInlineMethods, seqLiterals, intercepted, getters, elimByName, collectNullableFields, elimOuterSelect, augmentScala2Traits, resolveSuper, functionXXLForwarders, genericTuples, arrayConstructors}
checking testing/Test.scala after phase erasure
checking testing/Test.scala after phase MegaPhase{elimErasedValueType, vcElideAllocations, arrayApply, elimPolyFunction, tailrec, mixin, lazyVals, memoize, nonLocalReturns, capturedVars}
checking testing/Test.scala after phase MegaPhase{constructors, functionalInterfaces, getClass, liftTry}
checking testing/Test.scala after phase MegaPhase{linkScala2Impls, lambdaLift, elimStaticThis}
checking testing/Test.scala after phase MegaPhase{flatten, renameLifted, transformWildcards, moveStatic, expandPrivate, restoreScopes, selectStatic, collectSuperCalls}
checking testing/Test.scala after phase genSJSIR
exception while typing super() of class class dotty.tools.dotc.ast.Trees$Apply # 1555
exception while typing {
super()
()
} of class class dotty.tools.dotc.ast.Trees$Block # 1577
exception while typing def <init>(): Unit =
{
super()
()
} of class class dotty.tools.dotc.ast.Trees$DefDef # 1578
exception while typing [cannot display due to assertion failed: class defined twice module class A 2509 2513, raw string = TypeDef(package$,Template(DefDef(<init>,List(),List(List()),TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Unit)],Block(List(Apply(Select(Super(This(Ident(package$)),Ident()),<init>),List())),Literal(Constant(())))),List(TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)], TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class io)),trait Serializable)]),ValDef(_,EmptyTree,EmptyTree),List(DefDef(writeReplace,List(),List(List()),TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)],Apply(Select(New(TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class runtime)),class ModuleSerializationProxy)]),<init>),List(Literal(Constant(TypeRef(ThisType(TypeRef(NoPrefix,module class A)),module class package$)))))))))] of class class dotty.tools.dotc.ast.Trees$TypeDef # 1613
exception while typing [cannot display due to assertion failed: class defined twice module class A 2509 2513, raw string = PackageDef(Ident(A),List(TypeDef(package$,Template(DefDef(<init>,List(),List(List()),TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Unit)],Block(List(Apply(Select(Super(This(Ident(package$)),Ident()),<init>),List())),Literal(Constant(())))),List(TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)], TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class io)),trait Serializable)]),ValDef(_,EmptyTree,EmptyTree),List(DefDef(writeReplace,List(),List(List()),TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)],Apply(Select(New(TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class runtime)),class ModuleSerializationProxy)]),<init>),List(Literal(Constant(TypeRef(ThisType(TypeRef(NoPrefix,module class A)),module class package$))))))))), ValDef(package,TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class A)),module class package$)],Apply(Select(New(TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class A)),module class package$)]),<init>),List()))))] of class class dotty.tools.dotc.ast.Trees$PackageDef # 1614
exception while typing [cannot display due to assertion failed: class defined twice module class A 2509 2513, raw string = PackageDef(Ident(<empty>),List(TypeDef(A,Template(DefDef(<init>,List(),List(List()),TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Unit)],Block(List(Apply(Select(Super(This(Ident(A)),Ident()),<init>),List())),Literal(Constant(())))),List(TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)]),ValDef(_,EmptyTree,EmptyTree),List())), PackageDef(Ident(A),List(TypeDef(package$,Template(DefDef(<init>,List(),List(List()),TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Unit)],Block(List(Apply(Select(Super(This(Ident(package$)),Ident()),<init>),List())),Literal(Constant(())))),List(TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)], TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class io)),trait Serializable)]),ValDef(_,EmptyTree,EmptyTree),List(DefDef(writeReplace,List(),List(List()),TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)],Apply(Select(New(TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class runtime)),class ModuleSerializationProxy)]),<init>),List(Literal(Constant(TypeRef(ThisType(TypeRef(NoPrefix,module class A)),module class package$))))))))), ValDef(package,TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class A)),module class package$)],Apply(Select(New(TypeTree[TypeRef(ThisType(TypeRef(NoPrefix,module class A)),module class package$)]),<init>),List()))))))] of class class dotty.tools.dotc.ast.Trees$PackageDef # 1615
*** error while checking testing/Test.scala after phase genSJSIR ***
exception occurred while compiling testing/Test.scala