scala / scala3

The Scala 3 compiler, also known as Dotty.
https://dotty.epfl.ch
Apache License 2.0
5.81k stars 1.05k forks source link

MissingType exception while generating scaladoc #16033

Closed oscar-broman closed 5 months ago

oscar-broman commented 2 years ago

Compiler version

3.2.0 and 3.2.1-RC1 (version used for stacktrace below)

Minimized code

Unfortunately I've not been able to make a minimal test case.

Output (click arrow to expand)

``` dotty.tools.dotc.core.MissingType: | => dat dotty.tools.dotc.core.TypeErasure.dotty$tools$dotc$core$TypeErasure$$sigName(TypeErasure.scala:815) at dotty.tools.dotc.core.TypeErasure$.sigName(TypeErasure.scala:204) at dotty.tools.dotc.core.Signature.$anonfun$2(Signature.scala:111) at scala.collection.immutable.List.map(List.scala:250) at dotty.tools.dotc.core.Signature.prependTermParams(Signature.scala:111) at dotty.tools.dotc.core.Types$MethodOrPoly.computeSignature$2(Types.scala:3673) at dotty.tools.dotc.core.Types$MethodOrPoly.signature(Types.scala:3690) at dotty.tools.dotc.core.Denotations$SingleDenotation.signature(Denotations.scala:615) at dotty.tools.dotc.core.Denotations$SingleDenotation.matchesLoosely(Denotations.scala:1033) at dotty.tools.dotc.core.Denotations$SingleDenotation.matches(Denotations.scala:1017) at dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:406) at dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:496) at dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1217) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2078) at dotty.tools.dotc.core.Types$Type.go$1(Types.scala:686) at dotty.tools.dotc.core.Types$Type.findMember(Types.scala:879) at dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:669) at dotty.tools.dotc.core.Types$Type.member(Types.scala:653) at dotty.tools.dotc.core.Types$Type.allMembers$$anonfun$1(Types.scala:1020) at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15) at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10) at dotty.tools.dotc.core.Types$Type.memberDenots$$anonfun$1(Types.scala:925) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) at scala.collection.immutable.HashSet.foreach(HashSet.scala:937) at dotty.tools.dotc.core.Types$Type.memberDenots(Types.scala:925) at dotty.tools.dotc.core.Types$Type.allMembers(Types.scala:1020) at dotty.tools.scaladoc.tasty.SyntheticsSupport$.hackGetmembers(SyntheticSupport.scala:63) at dotty.tools.scaladoc.tasty.SyntheticsSupport$.getmembers(SyntheticSupport.scala:21) at dotty.tools.scaladoc.tasty.ClassLikeSupport.getNonTrivialInheritedMemberTrees(ClassLikeSupport.scala:218) at dotty.tools.scaladoc.tasty.ClassLikeSupport.getNonTrivialInheritedMemberTrees$(ClassLikeSupport.scala:15) at dotty.tools.scaladoc.tasty.TastyParser.getNonTrivialInheritedMemberTrees(TastyParser.scala:169) at dotty.tools.scaladoc.tasty.ClassLikeSupport.extractMembers(ClassLikeSupport.scala:224) at dotty.tools.scaladoc.tasty.ClassLikeSupport.extractMembers$(ClassLikeSupport.scala:15) at dotty.tools.scaladoc.tasty.TastyParser.extractMembers(TastyParser.scala:169) at dotty.tools.scaladoc.tasty.ClassLikeSupport.extractPatchedMembers(ClassLikeSupport.scala:234) at dotty.tools.scaladoc.tasty.ClassLikeSupport.extractPatchedMembers$(ClassLikeSupport.scala:15) at dotty.tools.scaladoc.tasty.TastyParser.extractPatchedMembers(TastyParser.scala:169) at dotty.tools.scaladoc.tasty.ClassLikeSupport.mkClass(ClassLikeSupport.scala:121) at dotty.tools.scaladoc.tasty.ClassLikeSupport.mkClass$(ClassLikeSupport.scala:15) at dotty.tools.scaladoc.tasty.TastyParser.mkClass(TastyParser.scala:169) at dotty.tools.scaladoc.tasty.ClassLikeSupport.parseClasslike(ClassLikeSupport.scala:298) at dotty.tools.scaladoc.tasty.ClassLikeSupport.parseClasslike$(ClassLikeSupport.scala:15) at dotty.tools.scaladoc.tasty.TastyParser.parseClasslike(TastyParser.scala:169) at dotty.tools.scaladoc.tasty.TastyParser$Traverser$2$.traverseTree(TastyParser.scala:223) at scala.quoted.Quotes$reflectModule$TreeTraverser.foldTree(Quotes.scala:4666) at scala.quoted.Quotes$reflectModule$TreeTraverser.foldTree$(Quotes.scala:4662) at dotty.tools.scaladoc.tasty.TastyParser$Traverser$2$.foldTree(TastyParser.scala:211) at dotty.tools.scaladoc.tasty.TastyParser$Traverser$2$.foldTree(TastyParser.scala:211) at scala.quoted.Quotes$reflectModule$TreeAccumulator.foldTrees$$anonfun$1(Quotes.scala:4554) at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169) at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165) at scala.collection.immutable.List.foldLeft(List.scala:79) at scala.quoted.Quotes$reflectModule$TreeAccumulator.foldTrees(Quotes.scala:4554) at scala.quoted.Quotes$reflectModule$TreeAccumulator.foldTrees$(Quotes.scala:4549) at dotty.tools.scaladoc.tasty.TastyParser$Traverser$2$.foldTrees(TastyParser.scala:211) at scala.quoted.Quotes$reflectModule$TreeAccumulator.foldOverTree(Quotes.scala:4617) at scala.quoted.Quotes$reflectModule$TreeAccumulator.foldOverTree$(Quotes.scala:4549) at dotty.tools.scaladoc.tasty.TastyParser$Traverser$2$.foldOverTree(TastyParser.scala:211) at scala.quoted.Quotes$reflectModule$TreeTraverser.traverseTreeChildren(Quotes.scala:4668) at scala.quoted.Quotes$reflectModule$TreeTraverser.traverseTreeChildren$(Quotes.scala:4662) at dotty.tools.scaladoc.tasty.TastyParser$Traverser$2$.traverseTreeChildren(TastyParser.scala:211) at scala.quoted.Quotes$reflectModule$TreeTraverser.traverseTree(Quotes.scala:4664) at scala.quoted.Quotes$reflectModule$TreeTraverser.traverseTree$(Quotes.scala:4662) at dotty.tools.scaladoc.tasty.TastyParser$Traverser$2$.traverseTree(TastyParser.scala:219) at dotty.tools.scaladoc.tasty.TastyParser.parseRootTree(TastyParser.scala:228) at dotty.tools.scaladoc.tasty.ScaladocTastyInspector.$anonfun$4(TastyParser.scala:123) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) at dotty.tools.scaladoc.tasty.ScaladocTastyInspector.postProcess$$anonfun$2(TastyParser.scala:42) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) at scala.collection.immutable.List.foreach(List.scala:333) at dotty.tools.scaladoc.tasty.ScaladocTastyInspector.postProcess(TastyParser.scala:42) at scala.tasty.inspector.OldTastyInspector$TastyInspectorFinishPhase$1.runOn(OldTastyInspector.scala:91) at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:233) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1328) at dotty.tools.dotc.Run.runPhases$1(Run.scala:244) at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:252) at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:261) at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68) at dotty.tools.dotc.Run.compileUnits(Run.scala:261) at dotty.tools.dotc.Run.compileUnits(Run.scala:191) at dotty.tools.dotc.fromtasty.TASTYRun.compile(TASTYRun.scala:14) at dotty.tools.dotc.Driver.doCompile(Driver.scala:35) at dotty.tools.dotc.Driver.process(Driver.scala:195) at scala.tasty.inspector.OldTastyInspector.inspectFilesInContext(OldTastyInspector.scala:72) at scala.tasty.inspector.OldTastyInspector.inspectFilesInContext$(OldTastyInspector.scala:22) at scala.tasty.inspector.DocTastyInspector.inspectFilesInContext(DocTastyInspector.scala:5) at dotty.tools.scaladoc.tasty.ScaladocTastyInspector.result(TastyParser.scala:147) at dotty.tools.scaladoc.ScalaModuleProvider$.mkModule(ScalaModuleProvider.scala:11) at dotty.tools.scaladoc.Scaladoc$.run(Scaladoc.scala:241) at dotty.tools.scaladoc.Scaladoc$.run$$anonfun$1(Scaladoc.scala:73) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) at scala.Option.map(Option.scala:242) at dotty.tools.scaladoc.Scaladoc$.run(Scaladoc.scala:77) at dotty.tools.dottydoc.Main$.process(Main.scala:25) at dotty.tools.dottydoc.Main.process(Main.scala) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:577) at xsbt.DottydocRunner.run(DottydocRunner.java:61) at xsbt.ScaladocInterface.run(ScaladocInterface.java:11) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:577) at sbt.internal.inc.AnalyzingCompiler.invoke(AnalyzingCompiler.scala:329) at sbt.internal.inc.AnalyzingCompiler.doc(AnalyzingCompiler.scala:175) at sbt.internal.inc.AnalyzingCompiler.doc(AnalyzingCompiler.scala:133) at sbt.Doc$.$anonfun$scaladoc$1(Doc.scala:52) at sbt.Doc$.$anonfun$scaladoc$1$adapted(Doc.scala:40) at sbt.RawCompileLike$.$anonfun$prepare$1(RawCompileLike.scala:79) at sbt.RawCompileLike$.$anonfun$prepare$1$adapted(RawCompileLike.scala:72) at sbt.RawCompileLike$.$anonfun$cached$4(RawCompileLike.scala:63) at sbt.RawCompileLike$.$anonfun$cached$4$adapted(RawCompileLike.scala:61) at sbt.util.Tracked$.$anonfun$inputChangedW$1(Tracked.scala:219) at sbt.RawCompileLike$.$anonfun$cached$1(RawCompileLike.scala:68) at sbt.RawCompileLike$.$anonfun$cached$1$adapted(RawCompileLike.scala:52) at sbtunidoc.Unidoc$.apply(Unidoc.scala:32) at sbtunidoc.BaseUnidocPlugin$.$anonfun$baseUnidocSettings$1(BaseUnidocPlugin.scala:25) at scala.Function1.$anonfun$compose$1(Function1.scala:49) at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62) at sbt.std.Transform$$anon$4.work(Transform.scala:68) at sbt.Execute.$anonfun$submit$2(Execute.scala:282) at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23) at sbt.Execute.work(Execute.scala:291) at sbt.Execute.$anonfun$submit$1(Execute.scala:282) at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265) at sbt.CompletionService$$anon$2.call(CompletionService.scala:64) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) ```
szymon-rd commented 1 year ago

Could you provide any details about when it happened, what was the scaladoc being generated for?

Gedochao commented 5 months ago

Closing, as there is no info to go on and a lot of time has passed. Feel free to reopen if it's proven to be reproducible on LTS and/or Next.