public class RegexVisitor extends org.checkerframework.common.basetype.BaseTypeVisitor<RegexAnnotatedTypeFactory>
This visitor does the following:
MatchResult.start
, MatchResult.end
and MatchResult.group
to ensure that a valid group number is passed.
RegexChecker
Constructor and Description |
---|
RegexVisitor(org.checkerframework.common.basetype.BaseTypeChecker checker) |
Modifier and Type | Method and Description |
---|---|
boolean |
isValidUse(org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType declarationType,
org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType useType,
Tree tree)
Case 2: Check String compound concatenation for valid Regex use.
|
boolean |
isValidUse(org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedPrimitiveType type,
Tree tree) |
java.lang.Void |
visitMethodInvocation(MethodInvocationTree node,
java.lang.Void p)
Case 1: Don't require a Regex annotation on the String argument to Pattern.compile if the
Pattern.LITERAL flag is passed.
|
checkAccess, checkArguments, checkArrayInitialization, checkAssignability, checkConditionalPostcondition, checkConstructorInvocation, checkContract, checkDefaultConstructor, checkExceptionParameter, checkFieldInvariantDeclarations, checkForAnnotatedJdk, checkMethodInvocability, checkMethodReferenceAsOverride, checkOverride, checkOverride, checkPostcondition, checkPreconditions, checkThrownExpression, checkTypeArguments, checkTypecastRedundancy, checkTypecastSafety, checkVarargs, commonAssignmentCheck, commonAssignmentCheck, commonAssignmentCheck, createOverrideChecker, createTypeFactory, createTypeValidator, enclosingMemberSelect, enclosingStatement, getExceptionParameterLowerBoundAnnotations, getThrowUpperBoundAnnotations, getTypeFactory, isAccessAllowed, isAssignable, isValidUse, isVectorCopyInto, processClassTree, reportPurityErrors, scan, setRoot, shouldSkipUses, skipReceiverSubtypeCheck, testTypevarContainment, typeCheckVectorCopyIntoArgument, validateType, validateTypeOf, visitAnnotation, visitArrayAccess, visitAssignment, visitCatch, visitClass, visitCompilationUnit, visitCompoundAssignment, visitConditionalExpression, visitEnhancedForLoop, visitIdentifier, visitInstanceOf, visitLambdaExpression, visitMemberReference, visitMethod, visitNewArray, visitNewClass, visitParameterizedType, visitReturn, visitThrow, visitTypeCast, visitTypeParameter, visitUnary, visitVariable
getCurrentPath, scan
reduce, scan, visitAnnotatedType, visitArrayType, visitAssert, visitBinary, visitBlock, visitBreak, visitCase, visitContinue, visitDoWhileLoop, visitEmptyStatement, visitErroneous, visitExpressionStatement, visitForLoop, visitIf, visitImport, visitIntersectionType, visitLabeledStatement, visitLiteral, visitMemberSelect, visitModifiers, visitOther, visitParenthesized, visitPrimitiveType, visitSwitch, visitSynchronized, visitTry, visitUnionType, visitWhileLoop, visitWildcard
public RegexVisitor(org.checkerframework.common.basetype.BaseTypeChecker checker)
public java.lang.Void visitMethodInvocation(MethodInvocationTree node, java.lang.Void p)
visitMethodInvocation
in interface TreeVisitor<java.lang.Void,java.lang.Void>
visitMethodInvocation
in class org.checkerframework.common.basetype.BaseTypeVisitor<RegexAnnotatedTypeFactory>
public boolean isValidUse(org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType declarationType, org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedDeclaredType useType, Tree tree)
isValidUse
in class org.checkerframework.common.basetype.BaseTypeVisitor<RegexAnnotatedTypeFactory>
public boolean isValidUse(org.checkerframework.framework.type.AnnotatedTypeMirror.AnnotatedPrimitiveType type, Tree tree)
isValidUse
in class org.checkerframework.common.basetype.BaseTypeVisitor<RegexAnnotatedTypeFactory>