public class NullnessFlowConditions extends SimpleTreeVisitor<Void,Void>
This class is implemented as a visitor; it should only be initially invoked on the conditions of e.g. if statements. TODO: extract any common behavior to a FlowConditions superclass. TODO: can we benefit from using FlowState?
Modifier and Type | Field and Description |
---|---|
protected PrintStream |
debug |
protected checkers.nullness.NullnessFlow |
nullnessFlow |
protected NullnessAnnotatedTypeFactory |
typefactory |
DEFAULT_VALUE
Constructor and Description |
---|
NullnessFlowConditions(NullnessAnnotatedTypeFactory tf,
checkers.nullness.NullnessFlow nf,
PrintStream debug) |
defaultAction, visit, visit, visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayType, visitAssert, visitBlock, visitBreak, visitCase, visitCatch, visitClass, visitCompilationUnit, visitCompoundAssignment, visitContinue, visitDoWhileLoop, visitEmptyStatement, visitEnhancedForLoop, visitErroneous, visitExpressionStatement, visitForLoop, visitIf, visitImport, visitIntersectionType, visitLabeledStatement, visitLambdaExpression, visitLiteral, visitMemberReference, visitMethod, visitModifiers, visitNewArray, visitNewClass, visitOther, visitParameterizedType, visitPrimitiveType, visitReturn, visitSwitch, visitSynchronized, visitThrow, visitTry, visitTypeCast, visitTypeParameter, visitUnionType, visitVariable, visitWhileLoop, visitWildcard
protected final NullnessAnnotatedTypeFactory typefactory
protected final checkers.nullness.NullnessFlow nullnessFlow
protected final PrintStream debug
public NullnessFlowConditions(NullnessAnnotatedTypeFactory tf, checkers.nullness.NullnessFlow nf, PrintStream debug)
public @ReadOnly Set<VariableElement> getNonnullElements()
public @ReadOnly Set<VariableElement> getNullableElements()
public @ReadOnly List<VariableElement> getExplicitNonnullElements()
public @ReadOnly List<VariableElement> getExplicitNullableElements()
public boolean isNullPolyNull()
public @ReadOnly Map<Tree,Set<AnnotationMirror>> getTreeResults()
public Void visitUnary(UnaryTree node, Void p)
visitUnary
in interface TreeVisitor<Void,Void>
visitUnary
in class SimpleTreeVisitor<Void,Void>
public Void visitInstanceOf(InstanceOfTree node, Void p)
visitInstanceOf
in interface TreeVisitor<Void,Void>
visitInstanceOf
in class SimpleTreeVisitor<Void,Void>
public Void visitConditionalExpression(ConditionalExpressionTree node, Void p)
visitConditionalExpression
in interface TreeVisitor<Void,Void>
visitConditionalExpression
in class SimpleTreeVisitor<Void,Void>
public Void visitBinary(BinaryTree node, Void p)
visitBinary
in interface TreeVisitor<Void,Void>
visitBinary
in class SimpleTreeVisitor<Void,Void>
public Void visitIdentifier(IdentifierTree node, Void p)
visitIdentifier
in interface TreeVisitor<Void,Void>
visitIdentifier
in class SimpleTreeVisitor<Void,Void>
public Void visitMemberSelect(MemberSelectTree node, Void p)
visitMemberSelect
in interface TreeVisitor<Void,Void>
visitMemberSelect
in class SimpleTreeVisitor<Void,Void>
public Void visitParenthesized(ParenthesizedTree node, Void p)
visitParenthesized
in interface TreeVisitor<Void,Void>
visitParenthesized
in class SimpleTreeVisitor<Void,Void>
public Void visitAssignment(AssignmentTree node, Void p)
visitAssignment
in interface TreeVisitor<Void,Void>
visitAssignment
in class SimpleTreeVisitor<Void,Void>
public Void visitMethodInvocation(MethodInvocationTree node, Void p)
visitMethodInvocation
in interface TreeVisitor<Void,Void>
visitMethodInvocation
in class SimpleTreeVisitor<Void,Void>