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

Receiver of this() call is null #782

Closed
Ao-senXiong opened this issue Jun 11, 2024 · 2 comments · Fixed by #791
Closed

Receiver of this() call is null #782

Ao-senXiong opened this issue Jun 11, 2024 · 2 comments · Fixed by #791
Labels

Comments

@Ao-senXiong
Copy link
Member

Ao-senXiong commented Jun 11, 2024

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

UPDATED:
File:

public class Test {
    public Test () {
    }
    public Test(String str) {
        this();
    }
}

Stacktrace:

error: Error in AnnotatedTypeMirror.fromExpression(ViewpointTestAnnotatedTypeFactory, this()): null
  ; 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 {
  Exception: java.lang.AssertionError; java.lang.AssertionError
        at org.checkerframework.framework.type.AbstractViewpointAdapter.combineTypeWithType(AbstractViewpointAdapter.java:231)
        at org.checkerframework.framework.type.AbstractViewpointAdapter.viewpointAdaptMethod(AbstractViewpointAdapter.java:171)
        at org.checkerframework.framework.type.AnnotatedTypeFactory.methodFromUse(AnnotatedTypeFactory.java:2570)
        at org.checkerframework.framework.type.AnnotatedTypeFactory.methodFromUse(AnnotatedTypeFactory.java:2512)
        at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.methodFromUse(GenericAnnotatedTypeFactory.java:2299)
        at org.checkerframework.framework.type.TypeFromExpressionVisitor.visitMethodInvocation(TypeFromExpressionVisitor.java:413)
        at org.checkerframework.framework.type.TypeFromExpressionVisitor.visitMethodInvocation(TypeFromExpressionVisitor.java:81)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1813)
        at jdk.compiler/com.sun.source.util.SimpleTreeVisitor.visit(SimpleTreeVisitor.java:81)
        at org.checkerframework.framework.type.TypeFromTree.fromExpression(TypeFromTree.java:42)
        at org.checkerframework.framework.type.AnnotatedTypeFactory.fromExpression(AnnotatedTypeFactory.java:1852)
        at org.checkerframework.framework.type.AnnotatedTypeFactory.getAnnotatedType(AnnotatedTypeFactory.java:1495)
        at org.checkerframework.framework.flow.CFAbstractTransfer.getValueFromFactory(CFAbstractTransfer.java:215)
        at org.checkerframework.framework.flow.CFAbstractTransfer.visitMethodInvocation(CFAbstractTransfer.java:999)
        at org.checkerframework.framework.flow.CFAbstractTransfer.visitMethodInvocation(CFAbstractTransfer.java:97)
        at org.checkerframework.dataflow.cfg.node.MethodInvocationNode.accept(MethodInvocationNode.java:124)
        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:1513)
        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

@Ao-senXiong Ao-senXiong changed the title CF crashed in AbstractViewpointAdapter CF crashed in AbstractViewpointAdapter when process combineTypeWithType Jun 11, 2024
@Ao-senXiong
Copy link
Member Author

There is one kind of error very similiar to #783

error: Error in AnnotatedTypeMirror.fromExpression(PICONoInitAnnotatedTypeFactory, commonAssignmentCheck(varAdapted, valueExp, errorKey, extraArgs)): Set vararg type before resetting parameter types
  ; 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: /home/axiong/aosen-pico-master/fortest/src/main/java/pico/typecheck/PICONoInitVisitor.java
  Last visited tree at line 142 column 17:
                  return commonAssignmentCheck(varAdapted, valueExp, errorKey, extraArgs);
  Exception: org.checkerframework.javacutil.BugInCF: Set vararg type before resetting parameter types; org.checkerframework.javacutil.BugInCF: Set vararg type before resetting parameter types
  	at org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedExecutableType.setParameterTypes(AnnotatedTypeMirror.java:1295)
  	at org.checkerframework.framework.type.AbstractViewpointAdapter.viewpointAdaptMethod(AbstractViewpointAdapter.java:189)
  	at org.checkerframework.framework.type.AnnotatedTypeFactory.methodFromUse(AnnotatedTypeFactory.java:2561)
  	at org.checkerframework.framework.type.AnnotatedTypeFactory.methodFromUse(AnnotatedTypeFactory.java:2503)
  	at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.methodFromUse(GenericAnnotatedTypeFactory.java:2298)
  	at org.checkerframework.framework.type.TypeFromExpressionVisitor.visitMethodInvocation(TypeFromExpressionVisitor.java:413)
  	at org.checkerframework.framework.type.TypeFromExpressionVisitor.visitMethodInvocation(TypeFromExpressionVisitor.java:81)

@Ao-senXiong Ao-senXiong changed the title CF crashed in AbstractViewpointAdapter when process combineTypeWithType Receiver of this() call is null Jun 22, 2024
@Ao-senXiong
Copy link
Member Author

Checker: class pico.typecheck.PICONoInitSubchecker

I will open another issue if I find a minimal test case for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant