public class NullnessFlowConditions extends SimpleTreeVisitor<@Nullable Void,@Nullable 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, 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<@Nullable Tree,Set<@Nullable AnnotationMirror>> getTreeResults()
public @Nullable Void visitUnary(UnaryTree node, @Nullable Void p)
visitUnary
in interface TreeVisitor<@Nullable Void,@Nullable Void>
visitUnary
in class SimpleTreeVisitor<@Nullable Void,@Nullable Void>
public @Nullable Void visitInstanceOf(InstanceOfTree node, @Nullable Void p)
visitInstanceOf
in interface TreeVisitor<@Nullable Void,@Nullable Void>
visitInstanceOf
in class SimpleTreeVisitor<@Nullable Void,@Nullable Void>
public @Nullable Void visitConditionalExpression(ConditionalExpressionTree node, @Nullable Void p)
visitConditionalExpression
in interface TreeVisitor<@Nullable Void,@Nullable Void>
visitConditionalExpression
in class SimpleTreeVisitor<@Nullable Void,@Nullable Void>
public @Nullable Void visitBinary(BinaryTree node, @Nullable Void p)
visitBinary
in interface TreeVisitor<@Nullable Void,@Nullable Void>
visitBinary
in class SimpleTreeVisitor<@Nullable Void,@Nullable Void>
public @Nullable Void visitIdentifier(IdentifierTree node, @Nullable Void p)
visitIdentifier
in interface TreeVisitor<@Nullable Void,@Nullable Void>
visitIdentifier
in class SimpleTreeVisitor<@Nullable Void,@Nullable Void>
public @Nullable Void visitMemberSelect(MemberSelectTree node, @Nullable Void p)
visitMemberSelect
in interface TreeVisitor<@Nullable Void,@Nullable Void>
visitMemberSelect
in class SimpleTreeVisitor<@Nullable Void,@Nullable Void>
public @Nullable Void visitParenthesized(ParenthesizedTree node, @Nullable Void p)
visitParenthesized
in interface TreeVisitor<@Nullable Void,@Nullable Void>
visitParenthesized
in class SimpleTreeVisitor<@Nullable Void,@Nullable Void>
public @Nullable Void visitAssignment(AssignmentTree node, @Nullable Void p)
visitAssignment
in interface TreeVisitor<@Nullable Void,@Nullable Void>
visitAssignment
in class SimpleTreeVisitor<@Nullable Void,@Nullable Void>
public @Nullable Void visitMethodInvocation(MethodInvocationTree node, @Nullable Void p)
visitMethodInvocation
in interface TreeVisitor<@Nullable Void,@Nullable Void>
visitMethodInvocation
in class SimpleTreeVisitor<@Nullable Void,@Nullable Void>