protected class NullnessAnnotatedTypeFactory.NullnessTreeAnnotator extends TreeAnnotator
atypeFactory
Constructor and Description |
---|
NullnessTreeAnnotator(NullnessAnnotatedTypeFactory atypeFactory) |
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 |
visitCompoundAssignment(com.sun.source.tree.CompoundAssignmentTree node,
AnnotatedTypeMirror type) |
java.lang.Void |
visitIdentifier(com.sun.source.tree.IdentifierTree node,
AnnotatedTypeMirror type) |
java.lang.Void |
visitMemberSelect(com.sun.source.tree.MemberSelectTree node,
AnnotatedTypeMirror type) |
java.lang.Void |
visitNewArray(com.sun.source.tree.NewArrayTree node,
AnnotatedTypeMirror type) |
java.lang.Void |
visitNewClass(com.sun.source.tree.NewClassTree node,
AnnotatedTypeMirror type) |
java.lang.Void |
visitUnary(com.sun.source.tree.UnaryTree node,
AnnotatedTypeMirror type) |
java.lang.Void |
visitVariable(com.sun.source.tree.VariableTree node,
AnnotatedTypeMirror type) |
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, visitIf, visitImport, visitInstanceOf, visitIntersectionType, visitLabeledStatement, visitLambdaExpression, visitLiteral, visitMemberReference, visitMethodInvocation, visitModifiers, visitModule, visitOpens, visitOther, visitPackage, visitParameterizedType, visitParenthesized, visitPrimitiveType, visitProvides, visitRequires, visitReturn, visitSwitch, visitSynchronized, visitThrow, visitTry, visitTypeCast, visitTypeParameter, visitUnionType, visitUses, visitWhileLoop, visitWildcard
public NullnessTreeAnnotator(NullnessAnnotatedTypeFactory atypeFactory)
public java.lang.Void visitMemberSelect(com.sun.source.tree.MemberSelectTree node, AnnotatedTypeMirror type)
visitMemberSelect
in interface com.sun.source.tree.TreeVisitor<java.lang.Void,AnnotatedTypeMirror>
visitMemberSelect
in class com.sun.source.util.SimpleTreeVisitor<java.lang.Void,AnnotatedTypeMirror>
public java.lang.Void visitVariable(com.sun.source.tree.VariableTree node, AnnotatedTypeMirror type)
visitVariable
in interface com.sun.source.tree.TreeVisitor<java.lang.Void,AnnotatedTypeMirror>
visitVariable
in class com.sun.source.util.SimpleTreeVisitor<java.lang.Void,AnnotatedTypeMirror>
public java.lang.Void visitIdentifier(com.sun.source.tree.IdentifierTree node, AnnotatedTypeMirror type)
visitIdentifier
in interface com.sun.source.tree.TreeVisitor<java.lang.Void,AnnotatedTypeMirror>
visitIdentifier
in class com.sun.source.util.SimpleTreeVisitor<java.lang.Void,AnnotatedTypeMirror>
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 TreeAnnotator
public java.lang.Void visitCompoundAssignment(com.sun.source.tree.CompoundAssignmentTree node, AnnotatedTypeMirror type)
visitCompoundAssignment
in interface com.sun.source.tree.TreeVisitor<java.lang.Void,AnnotatedTypeMirror>
visitCompoundAssignment
in class com.sun.source.util.SimpleTreeVisitor<java.lang.Void,AnnotatedTypeMirror>
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 com.sun.source.util.SimpleTreeVisitor<java.lang.Void,AnnotatedTypeMirror>
public java.lang.Void visitNewClass(com.sun.source.tree.NewClassTree node, AnnotatedTypeMirror type)
visitNewClass
in interface com.sun.source.tree.TreeVisitor<java.lang.Void,AnnotatedTypeMirror>
visitNewClass
in class com.sun.source.util.SimpleTreeVisitor<java.lang.Void,AnnotatedTypeMirror>
public java.lang.Void visitNewArray(com.sun.source.tree.NewArrayTree node, AnnotatedTypeMirror type)
visitNewArray
in interface com.sun.source.tree.TreeVisitor<java.lang.Void,AnnotatedTypeMirror>
visitNewArray
in class com.sun.source.util.SimpleTreeVisitor<java.lang.Void,AnnotatedTypeMirror>