protected static class NullnessAnnotatedTypeFactory.NullnessPropagationTreeAnnotator extends PropagationTreeAnnotator
Would this be valid to move into CommitmentTreeAnnotator.
atypeFactory
Constructor and Description |
---|
NullnessPropagationTreeAnnotator(AnnotatedTypeFactory atypeFactory)
Create the NullnessPropagationTreeAnnotator.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Void |
visitBinary(com.sun.source.tree.BinaryTree node,
AnnotatedTypeMirror type)
When overriding this method, getAnnotatedType on the left and right operands should only be
called when absolutely necessary.
|
java.lang.Void |
visitTypeCast(com.sun.source.tree.TypeCastTree node,
AnnotatedTypeMirror type) |
java.lang.Void |
visitUnary(com.sun.source.tree.UnaryTree node,
AnnotatedTypeMirror type) |
visitCompoundAssignment, visitNewArray
visitMethod
defaultAction, visit, visit, visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayType, visitAssert, visitAssignment, visitBlock, visitBreak, visitCase, visitCatch, visitClass, visitCompilationUnit, visitConditionalExpression, visitContinue, visitDoWhileLoop, visitEmptyStatement, visitEnhancedForLoop, visitErroneous, visitExports, visitExpressionStatement, visitForLoop, visitIdentifier, visitIf, visitImport, visitInstanceOf, visitIntersectionType, visitLabeledStatement, visitLambdaExpression, visitLiteral, visitMemberReference, visitMemberSelect, visitMethodInvocation, visitModifiers, visitModule, visitNewClass, visitOpens, visitOther, visitPackage, visitParameterizedType, visitParenthesized, visitPrimitiveType, visitProvides, visitRequires, visitReturn, visitSwitch, visitSynchronized, visitThrow, visitTry, visitTypeParameter, visitUnionType, visitUses, visitVariable, visitWhileLoop, visitWildcard
public NullnessPropagationTreeAnnotator(AnnotatedTypeFactory atypeFactory)
public java.lang.Void visitBinary(com.sun.source.tree.BinaryTree node, AnnotatedTypeMirror type)
TreeAnnotator
If a checker's performance is still too slow, the types of binary trees could be computed
in a subclass of CFTransfer
. When computing the
types in a transfer, look up the value in the store rather than the AnnotatedTypeFactory.
Then this method should annotate binary trees with top so that the type applied in the
transfer is always a subtype of the type the AnnotatedTypeFactory computes.
visitBinary
in interface com.sun.source.tree.TreeVisitor<java.lang.Void,AnnotatedTypeMirror>
visitBinary
in class PropagationTreeAnnotator
public java.lang.Void visitUnary(com.sun.source.tree.UnaryTree node, AnnotatedTypeMirror type)
visitUnary
in interface com.sun.source.tree.TreeVisitor<java.lang.Void,AnnotatedTypeMirror>
visitUnary
in class PropagationTreeAnnotator
public java.lang.Void visitTypeCast(com.sun.source.tree.TypeCastTree node, AnnotatedTypeMirror type)
visitTypeCast
in interface com.sun.source.tree.TreeVisitor<java.lang.Void,AnnotatedTypeMirror>
visitTypeCast
in class PropagationTreeAnnotator