You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When compiling a language project, several annotation processor (such as dagger) are executed.
However, (error) messages from annotation processors are not reported in the editor.
Now, several errors appear that mb.java8.DaggerJava8Component and mb.java8.DaggerJava8EclipseComponent cannot be resolved. Indeed, these files do not exist in their proper location (build/generated/sources/annotationProcessor/java/main). However, there was no information telling me why these files were not generated.
What you expected to happen
To investigate further, I reproduced the invocation of the compiler on the command-line, which gave the following errors:
// Lots of missing file errors
build/generated/sources/adapter/mb/java8/Java8Component.java:29: error: [Dagger/MissingBinding] mb.statix.referenceretention.stratego.InteropRegisterer cannot be provided without an @Inject constructor or an @Provides-annotated method.
public interface Java8Component extends LanguageComponent {
^
mb.statix.referenceretention.stratego.InteropRegisterer is injected at
mb.java8.Java8Module.provideStrategoRuntimeBuilderFactory(…, interopRegisterer0, …)
mb.java8.Java8StrategoRuntimeBuilderFactory is injected at
mb.java8.Java8Module.provideQualifiedStrategoRuntimeBuilder(factory)
@mb.java8.Java8Qualifier("") mb.stratego.common.StrategoRuntimeBuilder is requested at
mb.java8.Java8Component.getStrategoRuntimeBuilder()
The following other entry points also depend on it:
mb.java8.Java8Component.getLanguageInstance()
mb.java8.Java8Component.getTaskDefs()
mb.java8.Java8Component.getStrategoRuntimeProvider()
mb.java8.Java8Component.getJava8GetStrategoRuntimeProvider()
mb.java8.Java8Component.getJava8Analyze()
mb.java8.Java8Component.getJava8AnalyzeMulti()
mb.java8.Java8Component.getJava8AnalyzeFile()
mb.java8.Java8Component.getJava8ShowPreAnalyzeAst()
mb.java8.Java8Component.getJava8ShowScopeGraph()
mb.java8.Java8Component.getJava8ShowScopeGraphAst()
and 12 others
build/generated/sources/eclipse/mb/java8/Java8EclipseComponent.java:27: error: [Dagger/MissingBinding] mb.statix.referenceretention.stratego.InteropRegisterer cannot be provided without an @Inject constructor or an @Provides-annotated method.
public interface Java8EclipseComponent extends EclipseLanguageComponent, mb.java8.Java8Component {
^
mb.statix.referenceretention.stratego.InteropRegisterer is injected at
mb.java8.Java8Module.provideStrategoRuntimeBuilderFactory(…, interopRegisterer0, …)
mb.java8.Java8StrategoRuntimeBuilderFactory is injected at
mb.java8.Java8Module.provideQualifiedStrategoRuntimeBuilder(factory)
@mb.java8.Java8Qualifier("") mb.stratego.common.StrategoRuntimeBuilder is requested at
mb.java8.Java8Component.getStrategoRuntimeBuilder()
The following other entry points also depend on it:
mb.java8.Java8Component.getLanguageInstance() [mb.java8.Java8EclipseComponent]
mb.java8.Java8Component.getTaskDefs() [mb.java8.Java8EclipseComponent]
mb.java8.Java8Component.getStrategoRuntimeProvider() [mb.java8.Java8EclipseComponent]
mb.java8.Java8Component.getJava8GetStrategoRuntimeProvider() [mb.java8.Java8EclipseComponent]
mb.java8.Java8Component.getJava8Analyze() [mb.java8.Java8EclipseComponent]
mb.java8.Java8Component.getJava8AnalyzeMulti() [mb.java8.Java8EclipseComponent]
mb.java8.Java8Component.getJava8AnalyzeFile() [mb.java8.Java8EclipseComponent]
mb.java8.Java8Component.getJava8ShowPreAnalyzeAst() [mb.java8.Java8EclipseComponent]
mb.java8.Java8Component.getJava8ShowScopeGraph() [mb.java8.Java8EclipseComponent]
mb.java8.Java8Component.getJava8ShowScopeGraphAst() [mb.java8.Java8EclipseComponent]
and 12 others
This was the information that I would have liked to see in the editor
Context
Spoofax version: 0.19.2, specifically tested at commit ff1ccad
Operating system & version: MacOS
Additional information
The manual javac command can be found in java8.spoofax3/run-javac.sh. The classpath and processorpath (which unfortunately use absolute paths) are obtained from setting a breakpoint here, and inspecting the options object.
The text was updated successfully, but these errors were encountered:
The underlying issue was fixed in d825c2f, so the reproduction scenario does not work in later versions anymore. However, reporting these (and similar) errors in the editor would still be a good idea.
Summary
When compiling a language project, several annotation processor (such as dagger) are executed.
However, (error) messages from annotation processors are not reported in the editor.
What you did
java-front
project on this branch.java8.spoofax3
project in Eclipse.What actually happened
Now, several errors appear that
mb.java8.DaggerJava8Component
andmb.java8.DaggerJava8EclipseComponent
cannot be resolved. Indeed, these files do not exist in their proper location (build/generated/sources/annotationProcessor/java/main
). However, there was no information telling me why these files were not generated.What you expected to happen
To investigate further, I reproduced the invocation of the compiler on the command-line, which gave the following errors:
This was the information that I would have liked to see in the editor
Context
Additional information
The manual
javac
command can be found injava8.spoofax3/run-javac.sh
. The classpath and processorpath (which unfortunately use absolute paths) are obtained from setting a breakpoint here, and inspecting theoptions
object.The text was updated successfully, but these errors were encountered: