Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash errors of PICO-aosen-master #57

Open
Ao-senXiong opened this issue Jun 24, 2024 · 0 comments
Open

Crash errors of PICO-aosen-master #57

Ao-senXiong opened this issue Jun 24, 2024 · 0 comments

Comments

@Ao-senXiong
Copy link

Fix this first eisop/checker-framework#792.

A little different test case but with two crashed errors. Look into the initialization checker setup.

public class Test<V extends Object> {
    Object obj = ((Inner) null).future;

    private static final class Inner<V extends Object> {
        final Inner<? extends V> future = null;
    }

    static class Foo {
        Object obj;
    }
}
error: Wildcard /*INFERENCE FAILED for:*/ ? extends @Mutable Object is not a type argument of @Bottom Inner</*RAW*/>
  ; The Checker Framework crashed.  Please report the crash.  Version: Checker Framework 3.42.0-eisop3. 
  Checker: class pico.typecheck.PICONoInitSubchecker
  Visitor: class pico.typecheck.PICONoInitVisitor
  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:2058)
        at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.addComputedTypeAnnotations(GenericAnnotatedTypeFactory.java:1991)
        at org.checkerframework.framework.type.AnnotatedTypeFactory.getAnnotatedType(AnnotatedTypeFactory.java:1493)
        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:1623)
        at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.performFlowAnalysis(GenericAnnotatedTypeFactory.java:1469)
        at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.checkAndPerformFlowAnalysis(GenericAnnotatedTypeFactory.java:2100)
        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.common.basetype.BaseTypeChecker.typeProcess(BaseTypeChecker.java:549)
        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)
error: SourceChecker.typeProcess: unexpected Throwable (NullPointerException) while processing Test.java; message: Cannot invoke "org.checkerframework.framework.flow.CFAbstractStore.getValue(org.checkerframework.dataflow.cfg.node.FieldAccessNode)" because "targetStore" is null
  ; The Checker Framework crashed.  Please report the crash.  Version: Checker Framework 3.42.0-eisop3. 
  Checker: class pico.typecheck.PICOChecker
  Visitor: class org.checkerframework.checker.initialization.InitializationVisitor
  Compilation unit: Test.java
  Last visited tree at line 8 column 12:
      static class Foo {
  Exception: java.lang.NullPointerException: Cannot invoke "org.checkerframework.framework.flow.CFAbstractStore.getValue(org.checkerframework.dataflow.cfg.node.FieldAccessNode)" because "targetStore" is null; java.lang.NullPointerException: Cannot invoke "org.checkerframework.framework.flow.CFAbstractStore.getValue(org.checkerframework.dataflow.cfg.node.FieldAccessNode)" because "targetStore" is null
        at org.checkerframework.checker.initialization.InitializationAnnotatedTypeFactory.lambda$getUninitializedFields$1(InitializationAnnotatedTypeFactory.java:238)
        at java.base/java.util.ArrayList.removeIf(ArrayList.java:1672)
        at java.base/java.util.ArrayList.removeIf(ArrayList.java:1660)
        at org.checkerframework.checker.initialization.InitializationAnnotatedTypeFactory.getUninitializedFields(InitializationAnnotatedTypeFactory.java:225)
        at org.checkerframework.checker.initialization.InitializationVisitor.checkFieldsInitialized(InitializationVisitor.java:349)
        at org.checkerframework.checker.initialization.InitializationVisitor.visitMethod(InitializationVisitor.java:235)
        at org.checkerframework.checker.initialization.InitializationVisitor.visitMethod(InitializationVisitor.java:52)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:953)
        at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:86)
        at org.checkerframework.framework.source.SourceVisitor.scan(SourceVisitor.java:95)
        at org.checkerframework.common.basetype.BaseTypeVisitor.scan(BaseTypeVisitor.java:442)
        at org.checkerframework.common.basetype.BaseTypeVisitor.scan(BaseTypeVisitor.java:195)
        at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:111)
        at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:119)
        at jdk.compiler/com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:203)
        at org.checkerframework.framework.source.SourceVisitor.visitClass(SourceVisitor.java:101)
        at org.checkerframework.common.basetype.BaseTypeVisitor.processClassTree(BaseTypeVisitor.java:646)
        at org.checkerframework.checker.initialization.InitializationVisitor.processClassTree(InitializationVisitor.java:189)
        at org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:601)
        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:86)
        at org.checkerframework.framework.source.SourceVisitor.scan(SourceVisitor.java:95)
        at org.checkerframework.common.basetype.BaseTypeVisitor.scan(BaseTypeVisitor.java:442)
        at org.checkerframework.common.basetype.BaseTypeVisitor.scan(BaseTypeVisitor.java:195)
        at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:96)
        at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:111)
        at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:119)
        at jdk.compiler/com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:203)
        at org.checkerframework.framework.source.SourceVisitor.visitClass(SourceVisitor.java:101)
        at org.checkerframework.common.basetype.BaseTypeVisitor.processClassTree(BaseTypeVisitor.java:646)
        at org.checkerframework.checker.initialization.InitializationVisitor.processClassTree(InitializationVisitor.java:189)
        at org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:601)
        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.checker.initialization.InitializationVisitor.visit(InitializationVisitor.java:91)
        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)
2 errors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant