Closed
Description
3.1.3
This looks some kind of a race condition in the compiler because it's not always happening on my machine.
From time to time I'm getting output like this while compiling classes which use BIOCatsMonad
scala: java.lang.AssertionError: assertion failed: class BIOCatsMonad has non-class parent: val <none>
scala: at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
scala: at dotty.tools.dotc.core.SymDenotations$ClassDenotation.traverse$1(SymDenotations.scala:1899)
scala: at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeBaseData(SymDenotations.scala:1904)
scala: at dotty.tools.dotc.core.SymDenotations$BaseDataImpl.apply(SymDenotations.scala:2873)
scala: at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseData(SymDenotations.scala:1870)
scala: at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseClassSet(SymDenotations.scala:1886)
scala: at dotty.tools.dotc.core.SymDenotations$ClassDenotation.derivesFrom(SymDenotations.scala:1912)
scala: at dotty.tools.dotc.core.SymDenotations$SymDenotation.isValueClass(SymDenotations.scala:808)
scala: at dotty.tools.dotc.transform.ValueClasses$.isDerivedValueClass(ValueClasses.scala:19)
scala: at dotty.tools.dotc.core.TypeErasure$.dotty$tools$dotc$core$TypeErasure$$$erasureDependsOnArgs(TypeErasure.scala:75)
scala: at dotty.tools.dotc.core.TypeErasure.dotty$tools$dotc$core$TypeErasure$$sigName(TypeErasure.scala:814)
scala: at dotty.tools.dotc.core.TypeErasure$.sigName(TypeErasure.scala:204)
scala: at dotty.tools.dotc.core.Signature$.apply(Signature.scala:167)
scala: at dotty.tools.dotc.core.Types$MethodOrPoly.computeSignature$2(Types.scala:3535)
scala: at dotty.tools.dotc.core.Types$MethodOrPoly.signature(Types.scala:3556)
scala: at dotty.tools.dotc.core.Types$MethodOrPoly.computeSignature$2(Types.scala:3531)
scala: at dotty.tools.dotc.core.Denotations$SingleDenotation.signature(Denotations.scala:615)
scala: at dotty.tools.dotc.core.Denotations$SingleDenotation.signature(Denotations.scala:605)
scala: at dotty.tools.dotc.core.Denotations$SingleDenotation.atSignature(Denotations.scala:647)
scala: at dotty.tools.dotc.core.Denotations$SingleDenotation.atSignature(Denotations.scala:645)
scala: at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthTerm$1(TreeUnpickler.scala:1223)
scala: at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readTerm(TreeUnpickler.scala:1297)
scala: at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthTerm$1(TreeUnpickler.scala:1140)
scala: at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readLengthTerm$1(TreeUnpickler.scala:1137)
scala: at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.$anonfun$19(TreeUnpickler.scala:934)
scala: at dotty.tools.tasty.TastyReader.collectWhile(TastyReader.scala:137)
scala: at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readTemplate(TreeUnpickler.scala:937)
scala: at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readNewDef(TreeUnpickler.scala:855)
scala: at dotty.tools.dotc.core.tasty.TreeUnpickler$TreeReader.readIndexedDef(TreeUnpickler.scala:774)
scala: at dotty.tools.dotc.core.tasty.TreeUnpickler$Completer.complete(TreeUnpickler.scala:120)
scala: at dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:167)
scala: at dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:187)
scala: at dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:189)
scala: at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2204)
scala: at dotty.tools.dotc.core.Types$TypeRef.underlying(Types.scala:2702)
scala: at dotty.tools.dotc.core.Types$Type.findDecl(Types.scala:640)
scala: at dotty.tools.dotc.core.Types$Type.decl(Types.scala:625)
scala: at dotty.tools.dotc.core.NamerOps$.addConstructorApplies(NamerOps.scala:107)
scala: at dotty.tools.dotc.core.NamerOps$$anon$1.complete(NamerOps.scala:122)
scala: at dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:369)
scala: at dotty.tools.dotc.core.SymDenotations$SymDenotation.flags(SymDenotations.scala:64)
scala: at dotty.tools.dotc.core.SymDenotations$ModuleCompleter.complete(SymDenotations.scala:2690)
scala: at dotty.tools.dotc.core.SymDenotations$SymDenotation.is(SymDenotations.scala:116)
scala: at dotty.tools.dotc.typer.ImportSuggestions.lookInside$1(ImportSuggestions.scala:66)
scala: at dotty.tools.dotc.typer.ImportSuggestions.nestedRoots$1$$anonfun$1$$anonfun$1(ImportSuggestions.scala:75)
scala: at dotty.tools.dotc.core.Scopes$Scope.filter(Scopes.scala:102)
scala: at dotty.tools.dotc.typer.ImportSuggestions.nestedRoots$1$$anonfun$1(ImportSuggestions.scala:78)
scala: at scala.collection.immutable.List.flatMap(List.scala:293)
scala: at dotty.tools.dotc.typer.ImportSuggestions.nestedRoots$1(ImportSuggestions.scala:78)
scala: at dotty.tools.dotc.typer.ImportSuggestions.rootsStrictlyIn$1(ImportSuggestions.scala:97)
scala: at dotty.tools.dotc.typer.ImportSuggestions.rootsIn$1(ImportSuggestions.scala:108)
scala: at dotty.tools.dotc.typer.ImportSuggestions.rootsStrictlyIn$1$$anonfun$2(ImportSuggestions.scala:100)
scala: at dotty.tools.dotc.typer.ImportSuggestions.rootsStrictlyIn$1(ImportSuggestions.scala:100)
scala: at dotty.tools.dotc.typer.ImportSuggestions.rootsOnPath$1(ImportSuggestions.scala:111)
scala: at dotty.tools.dotc.typer.ImportSuggestions.recur$1(ImportSuggestions.scala:128)
scala: at dotty.tools.dotc.typer.ImportSuggestions.recur$1(ImportSuggestions.scala:130)
scala: at dotty.tools.dotc.typer.ImportSuggestions.suggestionRoots(ImportSuggestions.scala:133)
scala: at dotty.tools.dotc.typer.ImportSuggestions.importSuggestions(ImportSuggestions.scala:235)
scala: at dotty.tools.dotc.typer.ImportSuggestions.importSuggestionAddendum(ImportSuggestions.scala:323)
scala: at dotty.tools.dotc.typer.ImportSuggestions.importSuggestionAddendum$(ImportSuggestions.scala:21)
scala: at dotty.tools.dotc.typer.Typer.importSuggestionAddendum(Typer.scala:117)
scala: at dotty.tools.dotc.typer.Implicits.$anonfun$3(Implicits.scala:900)
scala: at scala.Option.getOrElse(Option.scala:201)
scala: at dotty.tools.dotc.typer.ImplicitSearchError.hiddenImplicitsAddendum(ErrorReporting.scala:417)
scala: at dotty.tools.dotc.typer.ImplicitSearchError.missingArgMsg(ErrorReporting.scala:265)
scala: at dotty.tools.dotc.typer.Implicits.missingArgMsg(Implicits.scala:901)
scala: at dotty.tools.dotc.typer.Implicits.missingArgMsg$(Implicits.scala:785)
scala: at dotty.tools.dotc.typer.Typer.missingArgMsg(Typer.scala:117)
scala: at dotty.tools.dotc.typer.Typer.issueErrors$1$$anonfun$1$$anonfun$1(Typer.scala:3520)
scala: at dotty.tools.dotc.reporting.NoExplanation.msg(Message.scala:141)
scala: at dotty.tools.dotc.reporting.Message.message(Message.scala:89)
scala: at dotty.tools.dotc.reporting.Diagnostic.message(Diagnostic.scala:99)
scala: at dotty.tools.dotc.typer.Inliner$Intrinsics$.packError(Inliner.scala:374)
scala: at dotty.tools.dotc.typer.Inliner$Intrinsics$.$anonfun$27(Inliner.scala:380)
scala: at scala.collection.immutable.List.map(List.scala:246)
scala: at dotty.tools.dotc.typer.Inliner$Intrinsics$.packErrors(Inliner.scala:380)
scala: at dotty.tools.dotc.typer.Inliner$Intrinsics$.typeCheckErrors(Inliner.scala:392)
scala: at dotty.tools.dotc.typer.Inliner$.inlineCall(Inliner.scala:103)
scala: at dotty.tools.dotc.typer.Inliner$InlineTyper.inlineIfNeeded(Inliner.scala:1706)
scala: at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1630)
scala: at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2832)
scala: at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2895)
scala: at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:123)
scala: at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1710)
scala: at dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$7(ProtoTypes.scala:469)
scala: at dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:392)
scala: at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:470)
scala: at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:866)
scala: at dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:557)
scala: at dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:622)
scala: at dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:460)
scala: at dotty.tools.dotc.typer.Applications$TypedApply.<init>(Applications.scala:748)
scala: at dotty.tools.dotc.typer.Applications$ApplyToUntyped.<init>(Applications.scala:865)
scala: at dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1065)
scala: at dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:327)
scala: at dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:117)
scala: at dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:911)
scala: at dotty.tools.dotc.typer.Applications.realApply$1$$anonfun$3(Applications.scala:991)
scala: at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:3104)
scala: at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:1002)
scala: at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1040)
scala: at dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:327)
scala: at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1623)
scala: at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2960)
scala: at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2964)
scala: at dotty.tools.dotc.typer.Inliner$InlineTyper.typedSelect(Inliner.scala:1574)
scala: at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2801)
scala: at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2894)
scala: at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3080)
scala: at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:898)
scala: at dotty.tools.dotc.typer.Typer.$anonfun$47(Typer.scala:2278)
scala: at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:248)
scala: at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2278)
scala: at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2808)
scala: at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2986)
scala: at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3036)
scala: at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1067)
scala: at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1071)
scala: at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2840)
scala: at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1073)
scala: at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2957)
scala: at dotty.tools.dotc.typer.Inliner.inlined(Inliner.scala:1070)
scala: at dotty.tools.dotc.typer.Inliner$.inlineCall(Inliner.scala:166)
scala: at dotty.tools.dotc.typer.Typer.adaptNoArgsOther$1(Typer.scala:3666)
scala: at dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:3783)
scala: at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3995)
scala: at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3329)
scala: at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3013)
scala: at dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:117)
scala: at dotty.tools.dotc.typer.Typer.typedInfixOp(Typer.scala:2717)
scala: at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2871)
scala: at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2476)
scala: at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:2820)
scala: at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2824)
scala: at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2603)
scala: at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2865)
scala: at dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$1(TyperPhase.scala:43)
scala: at dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$adapted$1(TyperPhase.scala:50)
scala: at scala.Function0.apply$mcV$sp(Function0.scala:39)
scala: at dotty.tools.dotc.core.Phases$Phase.monitor(Phases.scala:414)
scala: at dotty.tools.dotc.typer.TyperPhase.typeCheck(TyperPhase.scala:50)
scala: at dotty.tools.dotc.typer.TyperPhase.runOn$$anonfun$3(TyperPhase.scala:84)
scala: at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
scala: at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
scala: at scala.collection.immutable.List.foreach(List.scala:333)
scala: at dotty.tools.dotc.typer.TyperPhase.runOn(TyperPhase.scala:84)
scala: at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:225)
scala: at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1328)
scala: at dotty.tools.dotc.Run.runPhases$1(Run.scala:236)
scala: at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:244)
scala: at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:253)
scala: at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68)
scala: at dotty.tools.dotc.Run.compileUnits(Run.scala:253)
scala: at dotty.tools.dotc.Run.compileSources(Run.scala:186)
scala: at dotty.tools.dotc.Run.compile(Run.scala:170)
scala: at dotty.tools.dotc.Driver.doCompile(Driver.scala:35)
scala: at dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:88)
scala: at dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22)
scala: at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91)
scala: at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:192)
scala: at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
scala: at sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:247)
scala: at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:182)
scala: at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:163)
scala: at sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239)
scala: at sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:163)
scala: at sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:210)
scala: at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:528)
scala: at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:528)
scala: at sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:177)
scala: at sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:175)
scala: at sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:461)
scala: at sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116)
scala: at sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)
scala: at sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)
scala: at sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:263)
scala: at sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:416)
scala: at sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:503)
scala: at sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:403)
scala: at sbt.internal.inc.Incremental$.apply(Incremental.scala:169)
scala: at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:528)
scala: at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:482)
scala: at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
scala: at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:420)
scala: at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
scala: at org.jetbrains.jps.incremental.scala.local.SbtCompiler.$anonfun$doCompile$3(SbtCompiler.scala:91)
scala: at scala.util.Try$.apply(Try.scala:210)
scala: at org.jetbrains.jps.incremental.scala.local.SbtCompiler.doCompile(SbtCompiler.scala:89)
scala: at org.jetbrains.jps.incremental.scala.local.SbtCompiler.compile(SbtCompiler.scala:20)
scala: at org.jetbrains.jps.incremental.scala.local.LocalServer.doCompile(LocalServer.scala:52)
scala: at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:30)
scala: at org.jetbrains.jps.incremental.scala.remote.Main$.compileLogic(Main.scala:209)
scala: at org.jetbrains.jps.incremental.scala.remote.Main$.$anonfun$handleCommand$1(Main.scala:192)
scala: at org.jetbrains.jps.incremental.scala.remote.Main$.decorated$1(Main.scala:182)
scala: at org.jetbrains.jps.incremental.scala.remote.Main$.handleCommand(Main.scala:189)
scala: at org.jetbrains.jps.incremental.scala.remote.Main$.serverLogic(Main.scala:165)
scala: at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:105)
scala: at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala)
scala: at jdk.internal.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
scala: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
scala: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
scala: at com.facebook.nailgun.NGSession.runImpl(NGSession.java:312)
scala: at com.facebook.nailgun.NGSession.run(NGSession.java:198)
In my case this does not prevent the compiler from going further though other users report compiler crashes with messages like
[error] class izumi.fundamentals.orphans.cats.Applicative cannot be unpickled because no class file was found for denot: val <none>
At this moment I cannot produce minimal repro and even reliable repro, I wasn't able to reproduce the crashes too.