forked from typetools/checker-framework
-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Labels
Description
Found this crash when I look into type check guava using PICO.
Command:
./checker/bin/javac -cp "framework/build/libs/framework-3.42.0-eisop4-SNAPSHOT.jar:framework/build/classes/java/main:framework/build/classes/java/test:javacutil/libs/javacutil-3.42.0-eisop4-SANPSHOT.jar:javacutil/build/classes/java/main:javacutil/build/classes/java/test" -processorpath "framework/build/classes/java/test" -processor viewpointtest.ViewpointTestChecker Test.java
File:
public class Test<V extends Object> {
Object obj = ((Inner) null).future;
class Inner<V extends Object> {
final Inner<? extends V> future = null;
}
}
Stacktrace:
error: Wildcard /*INFERENCE FAILED for:*/ ? extends @Top Object is not a type argument of @Top Inner</*RAW*/>
; The Checker Framework crashed. Please report the crash. Version: Checker Framework 3.42.0-eisop4-SNAPSHOT, branch master, 2024-06-05, commit 481040f, dirty=true.
Checker: class viewpointtest.ViewpointTestChecker
Visitor: class org.checkerframework.common.basetype.BaseTypeVisitor
Compilation unit: Test.java
Last visited tree at line 1 column 1:
public class Test<V extends Object> {
Exception: java.lang.Throwable; java.lang.Throwable
at org.checkerframework.javacutil.BugInCF.<init>(BugInCF.java:34)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.getTypeParameterElement(PropagationTypeAnnotator.java:227)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.visitWildcard(PropagationTypeAnnotator.java:133)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.visitWildcard(PropagationTypeAnnotator.java:36)
at org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedWildcardType.accept(AnnotatedTypeMirror.java:2322)
at org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.scan(AnnotatedTypeScanner.java:207)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.scan(PropagationTypeAnnotator.java:75)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.visitWildcard(PropagationTypeAnnotator.java:159)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.visitWildcard(PropagationTypeAnnotator.java:36)
at org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedWildcardType.accept(AnnotatedTypeMirror.java:2322)
at org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.scan(AnnotatedTypeScanner.java:207)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.scan(PropagationTypeAnnotator.java:75)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.scan(PropagationTypeAnnotator.java:36)
at org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.scan(AnnotatedTypeScanner.java:224)
at org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.scanAndReduce(AnnotatedTypeScanner.java:231)
at org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.visitDeclared(AnnotatedTypeScanner.java:277)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.visitDeclared(PropagationTypeAnnotator.java:113)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.visitDeclared(PropagationTypeAnnotator.java:36)
at org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedDeclaredType.accept(AnnotatedTypeMirror.java:1058)
at org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.scan(AnnotatedTypeScanner.java:207)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.scan(PropagationTypeAnnotator.java:75)
at org.checkerframework.framework.type.typeannotator.PropagationTypeAnnotator.scan(PropagationTypeAnnotator.java:36)
at org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.visit(AnnotatedTypeScanner.java:195)
at org.checkerframework.framework.type.typeannotator.ListTypeAnnotator.scan(ListTypeAnnotator.java:58)
at org.checkerframework.framework.type.typeannotator.ListTypeAnnotator.scan(ListTypeAnnotator.java:20)
at org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.visit(AnnotatedTypeScanner.java:195)
at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.addComputedTypeAnnotations(GenericAnnotatedTypeFactory.java:2059)
at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.addComputedTypeAnnotations(GenericAnnotatedTypeFactory.java:1992)
at org.checkerframework.framework.type.AnnotatedTypeFactory.getAnnotatedType(AnnotatedTypeFactory.java:1502)
at org.checkerframework.framework.flow.CFAbstractTransfer.getValueFromFactory(CFAbstractTransfer.java:215)
at org.checkerframework.framework.flow.CFAbstractTransfer.visitFieldAccess(CFAbstractTransfer.java:643)
at org.checkerframework.framework.flow.CFAbstractTransfer.visitFieldAccess(CFAbstractTransfer.java:97)
at org.checkerframework.dataflow.cfg.node.FieldAccessNode.accept(FieldAccessNode.java:92)
at org.checkerframework.dataflow.analysis.AbstractAnalysis.callTransferFunction(AbstractAnalysis.java:356)
at org.checkerframework.dataflow.analysis.ForwardAnalysisImpl.callTransferFunction(ForwardAnalysisImpl.java:393)
at org.checkerframework.dataflow.analysis.ForwardAnalysisImpl.performAnalysisBlock(ForwardAnalysisImpl.java:157)
at org.checkerframework.dataflow.analysis.ForwardAnalysisImpl.performAnalysis(ForwardAnalysisImpl.java:110)
at org.checkerframework.framework.flow.CFAbstractAnalysis.performAnalysis(CFAbstractAnalysis.java:150)
at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.analyze(GenericAnnotatedTypeFactory.java:1624)
at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.performFlowAnalysis(GenericAnnotatedTypeFactory.java:1469)
at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.checkAndPerformFlowAnalysis(GenericAnnotatedTypeFactory.java:2101)
at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.preProcessClassTree(GenericAnnotatedTypeFactory.java:435)
at org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:591)
at org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:195)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:860)
at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:60)
at org.checkerframework.framework.source.SourceVisitor.visit(SourceVisitor.java:89)
at org.checkerframework.framework.source.SourceChecker.typeProcess(SourceChecker.java:1136)
at org.checkerframework.common.basetype.BaseTypeChecker.typeProcess(BaseTypeChecker.java:556)
at org.checkerframework.javacutil.AbstractTypeProcessor$AttributionTaskListener.finished(AbstractTypeProcessor.java:193)
at jdk.compiler/com.sun.tools.javac.api.ClientCodeWrapper$WrappedTaskListener.finished(ClientCodeWrapper.java:854)
at jdk.compiler/com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:132)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1397)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1354)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:946)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:317)
at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176)
at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:64)
at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50)
1 error