public class VarargType {
void foo() {
A a = new A("testStr", new Object());
}
}
class A {
A (String str, Object... args) {}
}
Stacktrace:
error: Error in AnnotatedTypeMirror.fromExpression(ViewpointTestAnnotatedTypeFactory, new BugInCF("Unknown assignment variable at:", new Object())): Set vararg type before resetting parameter types
; The Checker Framework crashed. Please report the crash. Version: Checker Framework 3.42.0-eisop4-SNAPSHOT, branch master, 2024-05-31, commit 97503e1, dirty=true.
Checker: class viewpointtest.ViewpointTestChecker
Visitor: class org.checkerframework.common.basetype.BaseTypeVisitor
Compilation unit: Test.java
Last visited tree at line 3 column 1:
public class Test {
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:1296)
at org.checkerframework.framework.type.AbstractViewpointAdapter.viewpointAdaptConstructor(AbstractViewpointAdapter.java:134)
at org.checkerframework.framework.type.AnnotatedTypeFactory.constructorFromUse(AnnotatedTypeFactory.java:2919)
at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.constructorFromUse(GenericAnnotatedTypeFactory.java:1958)
at org.checkerframework.framework.type.TypeFromExpressionVisitor.visitNewClass(TypeFromExpressionVisitor.java:400)
at org.checkerframework.framework.type.TypeFromExpressionVisitor.visitNewClass(TypeFromExpressionVisitor.java:81)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1874)
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.visitNode(CFAbstractTransfer.java:562)
at org.checkerframework.framework.flow.CFAbstractTransfer.visitNode(CFAbstractTransfer.java:97)
at org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor.visitObjectCreation(AbstractNodeVisitor.java:332)
at org.checkerframework.framework.flow.CFAbstractTransfer.visitObjectCreation(CFAbstractTransfer.java:975)
at org.checkerframework.framework.flow.CFAbstractTransfer.visitObjectCreation(CFAbstractTransfer.java:97)
at org.checkerframework.dataflow.cfg.node.ObjectCreationNode.accept(ObjectCreationNode.java:152)
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)
Caused by: java.lang.Throwable
at org.checkerframework.javacutil.BugInCF.<init>(BugInCF.java:22)
... 44 more
Underlying Exception: java.lang.Throwable; java.lang.Throwable
at org.checkerframework.javacutil.BugInCF.<init>(BugInCF.java:22)
at org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedExecutableType.setParameterTypes(AnnotatedTypeMirror.java:1296)
at org.checkerframework.framework.type.AbstractViewpointAdapter.viewpointAdaptConstructor(AbstractViewpointAdapter.java:134)
at org.checkerframework.framework.type.AnnotatedTypeFactory.constructorFromUse(AnnotatedTypeFactory.java:2919)
at org.checkerframework.framework.type.GenericAnnotatedTypeFactory.constructorFromUse(GenericAnnotatedTypeFactory.java:1958)
at org.checkerframework.framework.type.TypeFromExpressionVisitor.visitNewClass(TypeFromExpressionVisitor.java:400)
at org.checkerframework.framework.type.TypeFromExpressionVisitor.visitNewClass(TypeFromExpressionVisitor.java:81)
at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1874)
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.visitNode(CFAbstractTransfer.java:562)
at org.checkerframework.framework.flow.CFAbstractTransfer.visitNode(CFAbstractTransfer.java:97)
at org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor.visitObjectCreation(AbstractNodeVisitor.java:332)
at org.checkerframework.framework.flow.CFAbstractTransfer.visitObjectCreation(CFAbstractTransfer.java:975)
at org.checkerframework.framework.flow.CFAbstractTransfer.visitObjectCreation(CFAbstractTransfer.java:97)
at org.checkerframework.dataflow.cfg.node.ObjectCreationNode.accept(ObjectCreationNode.java:152)
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
I found out this when I run PICO against PICO itself.
Command:
File:
Stacktrace: