protected class UpperBoundAnnotatedTypeFactory.UpperBoundTreeAnnotator extends TreeAnnotator
atypeFactory
DEFAULT_VALUE
Constructor and Description |
---|
UpperBoundTreeAnnotator(UpperBoundAnnotatedTypeFactory factory) |
Modifier and Type | Method and Description |
---|---|
Void |
visitBinary(BinaryTree tree,
AnnotatedTypeMirror type)
When overriding this method, getAnnotatedType on the left and right operands should only be
called when absolutely necessary.
|
Void |
visitMemberSelect(MemberSelectTree tree,
AnnotatedTypeMirror type) |
Void |
visitMethodInvocation(MethodInvocationTree tree,
AnnotatedTypeMirror type)
This exists specifically for Math.min.
|
Void |
visitUnary(UnaryTree tree,
AnnotatedTypeMirror typeDst) |
visitMethod
defaultAction, visit, visit, visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayType, visitAssert, visitAssignment, visitBlock, visitBreak, visitCase, visitCatch, visitClass, visitCompilationUnit, visitCompoundAssignment, visitConditionalExpression, visitContinue, visitDoWhileLoop, visitEmptyStatement, visitEnhancedForLoop, visitErroneous, visitExpressionStatement, visitForLoop, visitIdentifier, visitIf, visitImport, visitInstanceOf, visitIntersectionType, visitLabeledStatement, visitLambdaExpression, visitLiteral, visitMemberReference, visitModifiers, visitNewArray, visitNewClass, visitOther, visitParameterizedType, visitParenthesized, visitPrimitiveType, visitReturn, visitSwitch, visitSynchronized, visitThrow, visitTry, visitTypeCast, visitTypeParameter, visitUnionType, visitVariable, visitWhileLoop, visitWildcard
public UpperBoundTreeAnnotator(UpperBoundAnnotatedTypeFactory factory)
public Void visitMethodInvocation(MethodInvocationTree tree, AnnotatedTypeMirror type)
visitMethodInvocation
in interface TreeVisitor<Void,AnnotatedTypeMirror>
visitMethodInvocation
in class SimpleTreeVisitor<Void,AnnotatedTypeMirror>
public Void visitMemberSelect(MemberSelectTree tree, AnnotatedTypeMirror type)
visitMemberSelect
in interface TreeVisitor<Void,AnnotatedTypeMirror>
visitMemberSelect
in class SimpleTreeVisitor<Void,AnnotatedTypeMirror>
public Void visitUnary(UnaryTree tree, AnnotatedTypeMirror typeDst)
visitUnary
in interface TreeVisitor<Void,AnnotatedTypeMirror>
visitUnary
in class SimpleTreeVisitor<Void,AnnotatedTypeMirror>
public Void visitBinary(BinaryTree tree, 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 TreeVisitor<Void,AnnotatedTypeMirror>
visitBinary
in class TreeAnnotator