Repository navigation
StateSet in Interface without ExternalRefinements triggers RuntimeException #239
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Description
RuntimeException when forgetting the @ExternalRefinementsFor("javax.imageio.ImageWriteParam")
Minimal reproducer
// @ExternalRefinementsFor("javax.imageio.ImageWriteParam")
@StateSet({"start", "acceptCompression", "compressionExplicit", "compressionSet"})
public interface ImageWriteParamsRefinements { }With a class or uncommenting first line it does not trigger the exception.
Expected behavior
No exception for sure, since its an interface we can maybe give an hint to add a @ExternalRefinements or change to a class.
Actual behavior
Stack trace
java.lang.RuntimeException: Error in creation of GhostFunction
at liquidjava.processor.refinement_checker.TypeChecker.createStateSet (TypeChecker.java:208)
at liquidjava.processor.refinement_checker.TypeChecker.handleStateSetsFromAnnotation (TypeChecker.java:183)
at liquidjava.processor.refinement_checker.MethodsFirstChecker.visitCtInterface (MethodsFirstChecker.java:88)
at spoon.support.reflect.declaration.CtInterfaceImpl.accept (CtInterfaceImpl.java:44)
at liquidjava.processor.RefinementProcessor.runChecker (RefinementProcessor.java:71)
at liquidjava.processor.RefinementProcessor.lambda$processPackage$0 (RefinementProcessor.java:47)
at java.lang.Iterable.forEach (Iterable.java:75)
at liquidjava.processor.RefinementProcessor.processPackage (RefinementProcessor.java:44)
at liquidjava.processor.RefinementProcessor.processPackage (RefinementProcessor.java:57)
at liquidjava.processor.RefinementProcessor.processPackage (RefinementProcessor.java:57)
at liquidjava.processor.RefinementProcessor.processPackage (RefinementProcessor.java:57)
at liquidjava.processor.RefinementProcessor.processPackage (RefinementProcessor.java:57)
at liquidjava.processor.RefinementProcessor.process (RefinementProcessor.java:38)
at liquidjava.processor.RefinementProcessor.process (RefinementProcessor.java:18)
at spoon.support.visitor.ProcessingVisitor.scan (ProcessingVisitor.java:72)
at spoon.support.QueueProcessingManager.process (QueueProcessingManager.java:118)
at spoon.support.QueueProcessingManager.process (QueueProcessingManager.java:132)
at liquidjava.api.CommandLineLauncher.launch (CommandLineLauncher.java:88)
at liquidjava.api.CommandLineLauncher.main (CommandLineLauncher.java:40)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
at java.lang.reflect.Method.invoke (Method.java:580)
at org.codehaus.mojo.exec.AbstractExecJavaBase.executeMainMethod (AbstractExecJavaBase.java:402)
at org.codehaus.mojo.exec.ExecJavaMojo.executeMainMethod (ExecJavaMojo.java:142)
at org.codehaus.mojo.exec.AbstractExecJavaBase.doExecClassLoader (AbstractExecJavaBase.java:377)
at org.codehaus.mojo.exec.AbstractExecJavaBase.lambda$execute$0 (AbstractExecJavaBase.java:287)
at java.lang.Thread.run (Thread.java:1575)
[
Environment
- LiquidJava version / commit: liquidjava-verifier 0.0.26, Add Element Context to Exceptions #237
- Java version (
java -version): - OS:
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity