typetools / checker-framework-inference

Inference of pluggable types for Java
10 stars 33 forks source link

VarAnnots not inserted for primitive class literals #7

Closed jthaine closed 8 years ago

jthaine commented 9 years ago

What steps will reproduce the problem? Enable and run the following test: testdata/sparta-source/Issue7.java

What is the expected output? What do you see instead? The test should pass. Instead, an exception is thrown:

[junit] INFO: - compiler.err.proc.messager: Missing VarAnnot annotation: boolean
[junit] Compilation unit: /Users/javier/sparta3/checker-framework-inference/testdata/sparta-source/Issue7.java
[junit] Exception: java.lang.Throwable; Stack trace: org.checkerframework.framework.source.SourceChecker.errorAbort(SourceChecker.java:669)
[junit] org.checkerframework.javacutil.ErrorReporter.errorAbort(ErrorReporter.java:28)
[junit] checkers.inference.DefaultSlotManager.getVariableSlot(DefaultSlotManager.java:166)
[junit] checkers.inference.VariableAnnotator.handleBinaryTree(VariableAnnotator.java:1526)
[junit] checkers.inference.VariableAnnotator.visitPrimitive(VariableAnnotator.java:1253)
[junit] checkers.inference.VariableAnnotator.visitPrimitive(VariableAnnotator.java:95)
[junit] org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedPrimitiveType.accept(AnnotatedTypeMirror.java:1828)
[junit] org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.scan(AnnotatedTypeScanner.java:99)
[junit] org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.visit(AnnotatedTypeScanner.java:89)
[junit] checkers.inference.InferenceTreeAnnotator.visitBinary(InferenceTreeAnnotator.java:433)
[junit] checkers.inference.InferenceTreeAnnotator.visitBinary(InferenceTreeAnnotator.java:58)
[junit] com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:1795)
[junit] com.sun.source.util.SimpleTreeVisitor.visit(SimpleTreeVisitor.java:53)
[junit] org.checkerframework.framework.type.treeannotator.ListTreeAnnotator.defaultAction(ListTreeAnnotator.java:38)
[junit] org.checkerframework.framework.type.treeannotator.ListTreeAnnotator.defaultAction(ListTreeAnnotator.java:21)
[junit] com.sun.source.util.SimpleTreeVisitor.visitBinary(SimpleTreeVisitor.java:197)
[junit] com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:1795)
[junit] com.sun.source.util.SimpleTreeVisitor.visit(SimpleTreeVisitor.java:53)
[junit] checkers.inference.InferenceAnnotatedTypeFactory.annotateImplicit(InferenceAnnotatedTypeFactory.java:479)
[junit] org.checkerframework.framework.type.GenericAnnotatedTypeFactory.annotateImplicit(GenericAnnotatedTypeFactory.java:882)
[junit] org.checkerframework.framework.type.AnnotatedTypeFactory.getAnnotatedType(AnnotatedTypeFactory.java:722)
[junit] org.checkerframework.framework.flow.CFAbstractTransfer.getValueFromFactory(CFAbstractTransfer.java:172)
[junit] org.checkerframework.framework.flow.CFAbstractTransfer.visitNode(CFAbstractTransfer.java:483)
[junit] org.checkerframework.framework.flow.CFAbstractTransfer.visitNode(CFAbstractTransfer.java:96)
[junit] org.checkerframework.dataflow.cfg.node.AbstractNodeVisitor.visitEqualTo(AbstractNodeVisitor.java:199)
[junit] org.checkerframework.framework.flow.CFAbstractTransfer.visitEqualTo(CFAbstractTransfer.java:621)
[junit] org.checkerframework.framework.flow.CFAbstractTransfer.visitEqualTo(CFAbstractTransfer.java:96)
[junit] org.checkerframework.dataflow.cfg.node.EqualToNode.accept(EqualToNode.java:52)
[junit] org.checkerframework.dataflow.analysis.Analysis.callTransferFunction(Analysis.java:362)
[junit] org.checkerframework.dataflow.analysis.Analysis.performAnalysis(Analysis.java:199)
[junit] org.checkerframework.framework.type.GenericAnnotatedTypeFactory.analyze(GenericAnnotatedTypeFactory.java:761)
[junit] org.checkerframework.framework.type.GenericAnnotatedTypeFactory.analyze(GenericAnnotatedTypeFactory.java:732)
[junit] org.checkerframework.framework.type.GenericAnnotatedTypeFactory.performFlowAnalysis(GenericAnnotatedTypeFactory.java:678)
[junit] checkers.inference.InferenceAnnotatedTypeFactory.performFlowAnalysis(InferenceAnnotatedTypeFactory.java:455)
[junit] org.checkerframework.framework.type.GenericAnnotatedTypeFactory.checkAndPerformFlowAnalysis(GenericAnnotatedTypeFactory.java:931)
[junit] checkers.inference.InferenceAnnotatedTypeFactory.annotateImplicit(InferenceAnnotatedTypeFactory.java:490)
[junit] org.checkerframework.framework.type.GenericAnnotatedTypeFactory.annotateImplicit(GenericAnnotatedTypeFactory.java:882)
[junit] org.checkerframework.framework.type.AnnotatedTypeFactory.getAnnotatedType(AnnotatedTypeFactory.java:722)
[junit] org.checkerframework.framework.type.AnnotatedTypeFactory.getAnnotatedType(AnnotatedTypeFactory.java:1810)
[junit] org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:296)
[junit] org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:173)
[junit] com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:720)
[junit] com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:50)
[junit] org.checkerframework.framework.source.SourceVisitor.visit(SourceVisitor.java:70)
[junit] org.checkerframework.framework.source.SourceChecker.typeProcess(SourceChecker.java:889)
[junit] org.checkerframework.common.basetype.BaseTypeChecker.typeProcess(BaseTypeChecker.java:452)
[junit] org.checkerframework.javacutil.AbstractTypeProcessor$AttributionTaskListener.finished(AbstractTypeProcessor.java:205)
[junit] com.sun.tools.javac.api.ClientCodeWrapper$WrappedTaskListener.finished(ClientCodeWrapper.java:681)
[junit] com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:111)
[junit] com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1342)
[junit] com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1296)
[junit] com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:901)
[junit] com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:860)
[junit] com.sun.tools.javac.main.Main.compile(Main.java:523)
[junit] com.sun.tools.javac.main.Main.compile(Main.java:381)
[junit] com.sun.tools.javac.main.Main.compile(Main.java:370)
[junit] com.sun.tools.javac.main.Main.compile(Main.java:361)
[junit] checkers.inference.CheckerFrameworkUtil.invokeCheckerFramework(CheckerFrameworkUtil.java:12)
[junit] checkers.inference.InferenceMain.startCheckerFramework(InferenceMain.java:173)
[junit] checkers.inference.InferenceMain.run(InferenceMain.java:135)
[junit] checkers.inference.InferenceMain.main(InferenceMain.java:107)

What version of the product are you using? 17f60a462162a on branch: master

smillst commented 9 years ago

Also, crashes on 2cdf7bc2f3