Closed cunningdefenestrator closed 3 years ago
yeah, stuff like this is happening a lot due to the hacky way splain ties into the compiler. the workaround is to merge it into the compiler, so let's hope it happens soon: https://github.com/scala/scala/pull/7785
That's unfortunate. If this is a wontfix, maybe it's worth a note in the documentation that this is a known issue? It was quite baffling when I first encountered this.
sure thing!
fixed by merge of https://github.com/scala/scala/pull/7785
@tek When you say fixed do you mean that this should no longer happen when using splain or do you mean that now that it is in scalac we don't need to use splain?
I'd like to still use the experimental features of splain such as diverging implicits and I'm getting this error:
sbt:stable-slinky> doc
[info] Main Scala API documentation to /Users/jason/src/goodcover/stable-slinky/target/scala-2.13/api...
[error] stack trace is suppressed; run last Compile / doc for the full output
[error] (Compile / doc) java.lang.reflect.InvocationTargetException
[error] Total time: 1 s, completed 9/07/2022, 12:35:15 pm
sbt:stable-slinky> last
[debug] > Exec(doc, Some(83a20cc8-0007-40c9-a7b3-2abb5870d5f6), Some(CommandSource(console0)))
[debug] Evaluating tasks: Compile / doc
[debug] Running task... Cancel: Signal, check cycles: false, forcegc: true
[info] Main Scala API documentation to /Users/jason/src/goodcover/stable-slinky/target/scala-2.13/api...
[debug] Forcing garbage collection...
[error] java.lang.NullPointerException: Cannot invoke "scala.tools.nsc.typechecker.Analyzer.packageObjects()" because "old" is null
[error] at splain.SplainAnalyzerShim.migrateFrom(SplainAnalyzerShim.scala:11)
[error] at splain.SplainAnalyzerShim.migrateFrom$(SplainAnalyzerShim.scala:8)
[error] at splain.SplainAnalyzer.migrateFrom(SplainAnalyzer.scala:5)
[error] at splain.SplainPlugin.<init>(SplainPlugin.scala:41)
[error] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[error] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
[error] at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[error] at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
[error] at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
[error] at scala.tools.nsc.plugins.Plugin$.instantiate(Plugin.scala:178)
[error] at scala.tools.nsc.plugins.Plugins.$anonfun$loadRoughPluginsList$10(Plugins.scala:56)
[error] at scala.tools.nsc.plugins.Plugins.loadRoughPluginsList(Plugins.scala:56)
[error] at scala.tools.nsc.plugins.Plugins.loadRoughPluginsList$(Plugins.scala:36)
[error] at scala.tools.nsc.Global.loadRoughPluginsList(Global.scala:45)
[error] at scala.tools.nsc.Global.roughPluginsList$lzycompute(Global.scala:45)
[error] at scala.tools.nsc.Global.roughPluginsList(Global.scala:45)
[error] at scala.tools.nsc.plugins.Plugins.loadPlugins(Plugins.scala:140)
[error] at scala.tools.nsc.plugins.Plugins.loadPlugins$(Plugins.scala:115)
[error] at scala.tools.nsc.Global.loadPlugins(Global.scala:45)
[error] at scala.tools.nsc.Global.plugins$lzycompute(Global.scala:45)
[error] at scala.tools.nsc.Global.plugins(Global.scala:45)
[error] at scala.tools.nsc.plugins.Plugins.computePluginPhases(Plugins.scala:167)
[error] at scala.tools.nsc.plugins.Plugins.computePluginPhases$(Plugins.scala:166)
[error] at scala.tools.nsc.Global.computePluginPhases(Global.scala:45)
[error] at scala.tools.nsc.Global.computePhaseDescriptors(Global.scala:729)
[error] at scala.tools.nsc.Global.phaseDescriptors$lzycompute(Global.scala:734)
[error] at scala.tools.nsc.Global.phaseDescriptors(Global.scala:734)
[error] at scala.tools.nsc.Global$Run.<init>(Global.scala:1248)
[error] at scala.tools.nsc.doc.DocFactory.makeUniverse(DocFactory.scala:54)
[error] at scala.tools.nsc.doc.DocFactory.generate$1(DocFactory.scala:135)
[error] at scala.tools.nsc.doc.DocFactory.document(DocFactory.scala:142)
[error] at xsbt.Runner.run(ScaladocBridge.scala:43)
[error] at xsbt.ScaladocBridge.run(ScaladocBridge.scala:21)
[error] at sbt.internal.inc.AnalyzingCompiler.doc(AnalyzingCompiler.scala:154)
[error] at sbt.internal.inc.AnalyzingCompiler.doc(AnalyzingCompiler.scala:133)
[error] at sbt.Doc$.$anonfun$scaladoc$1(Doc.scala:52)
[error] at sbt.Doc$.$anonfun$scaladoc$1$adapted(Doc.scala:40)
[error] at sbt.RawCompileLike$.$anonfun$prepare$1(RawCompileLike.scala:79)
[error] at sbt.RawCompileLike$.$anonfun$prepare$1$adapted(RawCompileLike.scala:72)
[error] at sbt.RawCompileLike$.$anonfun$cached$4(RawCompileLike.scala:63)
[error] at sbt.RawCompileLike$.$anonfun$cached$4$adapted(RawCompileLike.scala:61)
[error] at sbt.util.Tracked$.$anonfun$inputChangedW$1(Tracked.scala:219)
[error] at sbt.RawCompileLike$.$anonfun$cached$1(RawCompileLike.scala:68)
[error] at sbt.RawCompileLike$.$anonfun$cached$1$adapted(RawCompileLike.scala:52)
[error] at sbt.Defaults$.$anonfun$docTaskSettings$4(Defaults.scala:2159)
[error] at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error] at sbt.std.Transform$$anon$4.work(Transform.scala:68)
[error] at sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error] at sbt.Execute.work(Execute.scala:291)
[error] at sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error] at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] at sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[error] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[error] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[error] at java.base/java.lang.Thread.run(Thread.java:833)
[error] (Compile / doc) java.lang.reflect.InvocationTargetException
[error] Total time: 1 s, completed 9/07/2022, 12:35:15 pm
[debug] > Exec(shell, None, None)
Splain appears to break Scaladoc
Minimal reproduction:
sbt new scala/scala-seed.g8
Greeting
trait (a top-level description suffices)sbt doc
Greeting
documentation is presentGreeting
documentation is now goneReproduced here with sbt 1.4.7 and Scala 2.13.4, though I've seen this behavior across several real projects with sbt 1.3.x and Scala 2.12, so it doesn't appear to be compiler/build related.