Class LowerBoundVisitor
- java.lang.Object
 - 
- com.sun.source.util.TreeScanner<R,P>
 - 
- com.sun.source.util.TreePathScanner<R,P>
 - 
- org.checkerframework.framework.source.SourceVisitor<java.lang.Void,java.lang.Void>
 - 
- org.checkerframework.common.basetype.BaseTypeVisitor<LowerBoundAnnotatedTypeFactory>
 - 
- org.checkerframework.checker.index.lowerbound.LowerBoundVisitor
 
 
 
 
 
 
- 
- All Implemented Interfaces:
 com.sun.source.tree.TreeVisitor<java.lang.Void,java.lang.Void>
public class LowerBoundVisitor extends BaseTypeVisitor<LowerBoundAnnotatedTypeFactory>
Implements the actual checks to make sure that array accesses aren't too low. Will issue a warning if a variable that can't be proved to be either "NonNegative" (i.e. ≥ 0) or "Positive" (i.e. ≥ 1) is used as an array index. 
- 
- 
Nested Class Summary
- 
Nested classes/interfaces inherited from class org.checkerframework.common.basetype.BaseTypeVisitor
BaseTypeVisitor.FoundRequired, BaseTypeVisitor.OverrideChecker 
 - 
 
- 
Field Summary
- 
Fields inherited from class org.checkerframework.common.basetype.BaseTypeVisitor
atypeFactory, checker, DETERMINISTIC, ignoreTargetLocations, IMPURE, methodTree, positions, PURE, qualAllowedLocations, qualHierarchy, showchecks, SIDE_EFFECT_FREE, TARGET, targetValueElement, typeHierarchy, typeValidator, unusedWhenElement 
- 
Fields inherited from class org.checkerframework.framework.source.SourceVisitor
elements, root, trees, treesWithSuppressWarnings, types 
 - 
 
- 
Constructor Summary
Constructors Constructor Description LowerBoundVisitor(BaseTypeChecker checker) 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancommonAssignmentCheck(com.sun.source.tree.Tree varTree, com.sun.source.tree.ExpressionTree valueTree, @CompilerMessageKey java.lang.String errorKey, java.lang.Object... extraArgs)Checks the validity of an assignment (or pseudo-assignment) from a value to a variable and emits an error message (through the compiler's messaging interface) if it is not valid.java.lang.VoidvisitArrayAccess(com.sun.source.tree.ArrayAccessTree tree, java.lang.Void type)java.lang.VoidvisitNewArray(com.sun.source.tree.NewArrayTree tree, java.lang.Void type)- 
Methods inherited from class org.checkerframework.common.basetype.BaseTypeVisitor
checkAccess, checkAccessAllowed, checkArguments, checkArrayInitialization, checkConditionalPostcondition, checkConstructorInvocation, checkConstructorResult, checkContract, checkDefaultConstructor, checkEnclosingExpr, checkExceptionParameter, checkExplicitAnnotationsOnIntersectionBounds, checkExtendsAndImplements, checkExtendsOrImplements, checkFieldInvariantDeclarations, checkForPolymorphicQualifiers, checkForPolymorphicQualifiers, checkMethodInvocability, checkMethodReferenceAsOverride, checkOverride, checkOverride, checkPostcondition, checkPreconditions, checkPurity, checkQualifierParameter, checkSuperConstructorCall, checkThisConstructorCall, checkThisOrSuperConstructorCall, checkThrownExpression, checkTypeArguments, checkTypecastRedundancy, checkTypecastSafety, checkVarargs, commonAssignmentCheck, commonAssignmentCheck, commonAssignmentCheckEndDiagnostic, commonAssignmentCheckEndDiagnostic, commonAssignmentCheckStartDiagnostic, createOverrideChecker, createQualAllowedLocations, createTypeFactory, createTypeFactoryPublic, createTypeValidator, enclosingMemberSelect, enclosingStatement, getExceptionParameterLowerBoundAnnotations, getThrowUpperBoundAnnotations, getTypeFactory, isTypeCastSafe, isValidUse, isValidUse, isValidUse, processClassTree, reportCommonAssignmentError, reportMethodInvocabilityError, reportPurityErrors, scan, setRoot, shouldSkipUses, shouldWarnAboutIrrelevantJavaTypes, skipReceiverSubtypeCheck, testAnnotationInsertion, testJointJavacJavaParserVisitor, testTypevarContainment, typeCheckVectorCopyIntoArgument, validateTargetLocation, validateType, validateTypeOf, validateVariablesTargetLocation, visitAnnotatedType, visitAnnotatedType, visitAnnotation, visitAssignment, visitCatch, visitClass, visitCompilationUnit, visitCompoundAssignment, visitConditionalExpression, visitEnhancedForLoop, visitIdentifier, visitInstanceOf, visitLambdaExpression, visitMemberReference, visitMethod, visitMethodInvocation, visitNewClass, visitReturn, visitSwitchExpression17, visitThrow, visitTypeCast, visitTypeParameter, visitUnary, visitVariable, warnAboutIrrelevantJavaTypes, warnRedundantAnnotations 
- 
Methods inherited from class org.checkerframework.framework.source.SourceVisitor
visit 
- 
Methods inherited from class com.sun.source.util.TreeScanner
reduce, scan, visitArrayType, visitAssert, visitBinary, visitBlock, visitBreak, visitCase, visitContinue, visitDoWhileLoop, visitEmptyStatement, visitErroneous, visitExports, visitExpressionStatement, visitForLoop, visitIf, visitImport, visitIntersectionType, visitLabeledStatement, visitLiteral, visitMemberSelect, visitModifiers, visitModule, visitOpens, visitOther, visitPackage, visitParameterizedType, visitParenthesized, visitPrimitiveType, visitProvides, visitRequires, visitSwitch, visitSynchronized, visitTry, visitUnionType, visitUses, visitWhileLoop, visitWildcard 
 - 
 
 - 
 
- 
- 
Constructor Detail
- 
LowerBoundVisitor
public LowerBoundVisitor(BaseTypeChecker checker)
 
 - 
 
- 
Method Detail
- 
visitArrayAccess
public java.lang.Void visitArrayAccess(com.sun.source.tree.ArrayAccessTree tree, java.lang.Void type)- Specified by:
 visitArrayAccessin interfacecom.sun.source.tree.TreeVisitor<java.lang.Void,java.lang.Void>- Overrides:
 visitArrayAccessin classcom.sun.source.util.TreeScanner<java.lang.Void,java.lang.Void>
 
- 
visitNewArray
public java.lang.Void visitNewArray(com.sun.source.tree.NewArrayTree tree, java.lang.Void type)- Specified by:
 visitNewArrayin interfacecom.sun.source.tree.TreeVisitor<java.lang.Void,java.lang.Void>- Overrides:
 visitNewArrayin classBaseTypeVisitor<LowerBoundAnnotatedTypeFactory>
 
- 
commonAssignmentCheck
protected boolean commonAssignmentCheck(com.sun.source.tree.Tree varTree, com.sun.source.tree.ExpressionTree valueTree, @CompilerMessageKey java.lang.String errorKey, java.lang.Object... extraArgs)Description copied from class:BaseTypeVisitorChecks the validity of an assignment (or pseudo-assignment) from a value to a variable and emits an error message (through the compiler's messaging interface) if it is not valid.- Overrides:
 commonAssignmentCheckin classBaseTypeVisitor<LowerBoundAnnotatedTypeFactory>- Parameters:
 varTree- the AST node for the lvalue (usually a variable)valueTree- the AST node for the rvalue (the new value)errorKey- the error message key to use if the check failsextraArgs- arguments to the error message key, before "found" and "expected" types- Returns:
 - true if the check succeeds, false if an error message was issued
 
 
 - 
 
 -