Class NullnessAnnotatedTypeFactory.NullnessTreeAnnotator
java.lang.Object
com.sun.source.util.SimpleTreeVisitor<Void,AnnotatedTypeMirror>
org.checkerframework.framework.type.treeannotator.TreeAnnotator
org.checkerframework.checker.nullness.NullnessAnnotatedTypeFactory.NullnessTreeAnnotator
- All Implemented Interfaces:
com.sun.source.tree.TreeVisitor<Void,
AnnotatedTypeMirror>
- Enclosing class:
- NullnessAnnotatedTypeFactory
-
Field Summary
Fields inherited from class org.checkerframework.framework.type.treeannotator.TreeAnnotator
atypeFactory
Fields inherited from class com.sun.source.util.SimpleTreeVisitor
DEFAULT_VALUE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvisitBinary
(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.visitCompoundAssignment
(com.sun.source.tree.CompoundAssignmentTree node, AnnotatedTypeMirror type) visitIdentifier
(com.sun.source.tree.IdentifierTree node, AnnotatedTypeMirror type) visitMemberSelect
(com.sun.source.tree.MemberSelectTree node, AnnotatedTypeMirror type) visitMethodInvocation
(com.sun.source.tree.MethodInvocationTree tree, AnnotatedTypeMirror type) visitNewArray
(com.sun.source.tree.NewArrayTree node, AnnotatedTypeMirror type) visitNewClass
(com.sun.source.tree.NewClassTree node, AnnotatedTypeMirror type) visitUnary
(com.sun.source.tree.UnaryTree node, AnnotatedTypeMirror type) visitVariable
(com.sun.source.tree.VariableTree node, AnnotatedTypeMirror type) Methods inherited from class org.checkerframework.framework.type.treeannotator.TreeAnnotator
visitMethod
Methods inherited from class com.sun.source.util.SimpleTreeVisitor
defaultAction, visit, visit, visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayType, visitAssert, visitAssignment, visitBindingPattern, visitBlock, visitBreak, visitCase, visitCatch, visitClass, visitCompilationUnit, visitConditionalExpression, visitContinue, visitDefaultCaseLabel, visitDoWhileLoop, visitEmptyStatement, visitEnhancedForLoop, visitErroneous, visitExports, visitExpressionStatement, visitForLoop, visitGuardedPattern, visitIf, visitImport, visitInstanceOf, visitIntersectionType, visitLabeledStatement, visitLambdaExpression, visitLiteral, visitMemberReference, visitModifiers, visitModule, visitOpens, visitOther, visitPackage, visitParameterizedType, visitParenthesized, visitParenthesizedPattern, visitPrimitiveType, visitProvides, visitRequires, visitReturn, visitSwitch, visitSwitchExpression, visitSynchronized, visitThrow, visitTry, visitTypeCast, visitTypeParameter, visitUnionType, visitUses, visitWhileLoop, visitWildcard, visitYield
-
Constructor Details
-
NullnessTreeAnnotator
-
-
Method Details
-
visitMemberSelect
- Specified by:
visitMemberSelect
in interfacecom.sun.source.tree.TreeVisitor<Void,
AnnotatedTypeMirror> - Overrides:
visitMemberSelect
in classcom.sun.source.util.SimpleTreeVisitor<Void,
AnnotatedTypeMirror>
-
visitVariable
- Specified by:
visitVariable
in interfacecom.sun.source.tree.TreeVisitor<Void,
AnnotatedTypeMirror> - Overrides:
visitVariable
in classcom.sun.source.util.SimpleTreeVisitor<Void,
AnnotatedTypeMirror>
-
visitIdentifier
- Specified by:
visitIdentifier
in interfacecom.sun.source.tree.TreeVisitor<Void,
AnnotatedTypeMirror> - Overrides:
visitIdentifier
in classcom.sun.source.util.SimpleTreeVisitor<Void,
AnnotatedTypeMirror>
-
visitBinary
Description copied from class:TreeAnnotator
When overriding this method, getAnnotatedType on the left and right operands should only be called when absolutely necessary. Otherwise, the checker will be very slow on heavily nested binary trees. (For example, a + b + c + d + e + f + g + h.)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.- Specified by:
visitBinary
in interfacecom.sun.source.tree.TreeVisitor<Void,
AnnotatedTypeMirror> - Overrides:
visitBinary
in classTreeAnnotator
-
visitCompoundAssignment
public Void visitCompoundAssignment(com.sun.source.tree.CompoundAssignmentTree node, AnnotatedTypeMirror type) - Specified by:
visitCompoundAssignment
in interfacecom.sun.source.tree.TreeVisitor<Void,
AnnotatedTypeMirror> - Overrides:
visitCompoundAssignment
in classcom.sun.source.util.SimpleTreeVisitor<Void,
AnnotatedTypeMirror>
-
visitUnary
- Specified by:
visitUnary
in interfacecom.sun.source.tree.TreeVisitor<Void,
AnnotatedTypeMirror> - Overrides:
visitUnary
in classcom.sun.source.util.SimpleTreeVisitor<Void,
AnnotatedTypeMirror>
-
visitNewClass
- Specified by:
visitNewClass
in interfacecom.sun.source.tree.TreeVisitor<Void,
AnnotatedTypeMirror> - Overrides:
visitNewClass
in classcom.sun.source.util.SimpleTreeVisitor<Void,
AnnotatedTypeMirror>
-
visitNewArray
- Specified by:
visitNewArray
in interfacecom.sun.source.tree.TreeVisitor<Void,
AnnotatedTypeMirror> - Overrides:
visitNewArray
in classcom.sun.source.util.SimpleTreeVisitor<Void,
AnnotatedTypeMirror>
-
visitMethodInvocation
public Void visitMethodInvocation(com.sun.source.tree.MethodInvocationTree tree, AnnotatedTypeMirror type) - Specified by:
visitMethodInvocation
in interfacecom.sun.source.tree.TreeVisitor<Void,
AnnotatedTypeMirror> - Overrides:
visitMethodInvocation
in classcom.sun.source.util.SimpleTreeVisitor<Void,
AnnotatedTypeMirror>
-