`NoSuchElementException`: typer when a plugin runs after typer
See original GitHub issueCompiler version
3.0.2, 3.1.0-RC2, 3.1.0-RC3.
Confirmed to work on 3.0.0 and 3.0.1.
Minimized code
// This plugin adds a phase after the "typer" phase.
// Note that in 3.0.x it uses FrontEnd.name which is still "typer" underneath.
compilerPlugin("org.polyvariant" % "better-tostring" % "0.3.9" cross CrossVersion.full)
package demo
case class Foo(s: String)
Output
java.util.NoSuchElementException: key not found: typer while compiling /Users/jkozlowski/dev/app/target/scala-3.1.0-RC3/classes/demo/Foo.tasty
Stack trace
[error] java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
[error] at xsbt.DottydocRunner.run(DottydocRunner.java:65)
[error] at xsbt.ScaladocInterface.run(ScaladocInterface.java:11)
[error] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[error] at sbt.internal.inc.AnalyzingCompiler.invoke(AnalyzingCompiler.scala:329)
[error] at sbt.internal.inc.AnalyzingCompiler.doc(AnalyzingCompiler.scala:175)
[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:2158)
[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:515)
[error] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] at java.base/java.lang.Thread.run(Thread.java:829)
[error] Caused by: java.lang.reflect.InvocationTargetException
[error] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[error] at xsbt.DottydocRunner.run(DottydocRunner.java:61)
[error] at xsbt.ScaladocInterface.run(ScaladocInterface.java:11)
[error] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[error] at sbt.internal.inc.AnalyzingCompiler.invoke(AnalyzingCompiler.scala:329)
[error] at sbt.internal.inc.AnalyzingCompiler.doc(AnalyzingCompiler.scala:175)
[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:2158)
[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:515)
[error] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] at java.base/java.lang.Thread.run(Thread.java:829)
[error] Caused by: java.util.NoSuchElementException: key not found: typer
[error] at scala.collection.MapOps.default(Map.scala:274)
[error] at scala.collection.MapOps.default$(Map.scala:273)
[error] at scala.collection.AbstractMap.default(Map.scala:405)
[error] at scala.collection.mutable.HashMap.apply(HashMap.scala:425)
[error] at dotty.tools.dotc.plugins.Plugins$.schedule$$anonfun$6$$anonfun$2(Plugins.scala:188)
[error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] at scala.collection.immutable.Set$Set1.foreach(Set.scala:168)
[error] at dotty.tools.dotc.plugins.Plugins$.schedule$$anonfun$2(Plugins.scala:189)
[error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] at scala.collection.immutable.List.foreach(List.scala:333)
[error] at dotty.tools.dotc.plugins.Plugins$.schedule(Plugins.scala:195)
[error] at dotty.tools.dotc.plugins.Plugins.addPluginPhases(Plugins.scala:125)
[error] at dotty.tools.dotc.plugins.Plugins.addPluginPhases$(Plugins.scala:17)
[error] at dotty.tools.dotc.core.Contexts$ContextBase.addPluginPhases(Contexts.scala:820)
[error] at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:247)
[error] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
[error] at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68)
[error] at dotty.tools.dotc.Run.compileUnits(Run.scala:289)
[error] at dotty.tools.dotc.Run.compileUnits(Run.scala:228)
[error] at dotty.tools.dotc.fromtasty.TASTYRun.compile(TASTYRun.scala:12)
[error] at dotty.tools.dotc.Driver.doCompile(Driver.scala:39)
[error] at dotty.tools.dotc.Driver.process(Driver.scala:199)
[error] at scala.tasty.inspector.OldTastyInspector.inspectFilesInContext(OldTastyInspector.scala:72)
[error] at scala.tasty.inspector.OldTastyInspector.inspectFilesInContext$(OldTastyInspector.scala:22)
[error] at scala.tasty.inspector.DocTastyInspector.inspectFilesInContext(DocTastyInspector.scala:5)
[error] at dotty.tools.scaladoc.tasty.ScaladocTastyInspector.result(TastyParser.scala:157)
[error] at dotty.tools.scaladoc.ScalaModuleProvider$.mkModule(ScalaModuleProvider.scala:11)
[error] at dotty.tools.scaladoc.Scaladoc$.run(Scaladoc.scala:235)
[error] at dotty.tools.scaladoc.Scaladoc$.run$$anonfun$1(Scaladoc.scala:83)
[error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] at scala.Option.map(Option.scala:242)
[error] at dotty.tools.scaladoc.Scaladoc$.run(Scaladoc.scala:87)
[error] at dotty.tools.dottydoc.Main$.process(Main.scala:25)
[error] at dotty.tools.dottydoc.Main.process(Main.scala)
[error] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[error] at xsbt.DottydocRunner.run(DottydocRunner.java:61)
[error] at xsbt.ScaladocInterface.run(ScaladocInterface.java:11)
[error] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[error] at sbt.internal.inc.AnalyzingCompiler.invoke(AnalyzingCompiler.scala:329)
[error] at sbt.internal.inc.AnalyzingCompiler.doc(AnalyzingCompiler.scala:175)
[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:2158)
[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:515)
[error] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] at java.base/java.lang.Thread.run(Thread.java:829)
[error] (Compile / doc) java.lang.reflect.InvocationTargetException
Expectation
Docs compile 😃
Extra info
Adding the plugin clearly surfaces the issue - without it, it’s fine.
Hopefully there’s just something wrong with the plugin, in which case I would greatly appreciate help on fixing it - sources are in https://github.com/polyvariant/better-tostring/blob/v0.3.8/plugin/src/main/scala-3/BetterToStringPlugin.scala (the behavior can be reproduced on 0.3.8 on all versions except 3.1.0-RC3)
Issue Analytics
- State:
- Created 2 years ago
- Comments:5 (4 by maintainers)
Top Results From Across the Web
java.util.scanner throws NoSuchElementException when ...
However, if I try to execute the application using gradle run , I get a NoSuchElementException thrown from the scanner. I think gradle...
Read more >java.util.NoSuchElementException: No value present ... - GitHub
This is my elasticsearch.yml: bootstrap.memory_lock: true cloud: gce: project_id: xxxx zone: us-central1-a cluster.name: gce-cluster ...
Read more >Exception in thread "main" java.util.NoSuchElementException
Hi, I am using the MacOS Terminal and getting the following output ... type: JavaExec) { main = 'exercises' classpath = sourceSets.main.
Read more >How to Fix the No Such Element Exception in Java - Rollbar
The NoSuchElementException in Java can be thrown by various accessor methods to indicate that the element being requested does not exist.
Read more >496944 – m2e PluginExecutionException causedBy ... - Bugs
Worker.run(Worker.java:55) Caused by: org.codehaus.plexus.component.repository.exception.ComponentLookupException: java.util.NoSuchElementException role: ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Looks like your plugin is enabled when running scaladoc (likely via
sbt doc
) which is based on the compiler but doesn’t run the typer phase, is this happening with addCompilerPlugin or are you enabling the plugin by hand? If the latter, sounds like you need to better scope your settings to the compile task.I have tried to run
doc
command on your project after releasing my branch with the fix and it seems it is working well. Could you @kubukoz confirm it too?