public class ReportVisitor extends BaseTypeVisitor<BaseAnnotatedTypeFactory>
| Modifier and Type | Class and Description |
|---|---|
protected class |
ReportVisitor.ReportTypeValidator |
BaseTypeVisitor.OverrideCheckeratypeFactory, checker, contractsUtils, positions, typeValidator, visitorStateelements, root, trees, types| Constructor and Description |
|---|
ReportVisitor(BaseTypeChecker checker) |
checkAccess, checkArguments, checkArrayInitialization, checkAssignability, checkConditionalPostcondition, checkConstructorInvocation, checkContract, checkDefaultConstructor, checkExceptionParameter, checkFieldInvariantDeclarations, checkForAnnotatedJdk, checkMethodInvocability, checkMethodReferenceAsOverride, checkOverride, checkPostcondition, checkPreconditions, checkThrownExpression, checkTypeArguments, checkTypecastRedundancy, checkTypecastSafety, commonAssignmentCheck, commonAssignmentCheck, commonAssignmentCheck, createOverrideChecker, enclosingMemberSelect, enclosingStatement, getExceptionParameterLowerBoundAnnotations, getThrowUpperBoundAnnotations, getTypeFactory, isAccessAllowed, isAssignable, isValidUse, isValidUse, isValidUse, isVectorCopyInto, reportPurityErrors, setRoot, shouldSkipUses, skipReceiverSubtypeCheck, testTypevarContainment, typeCheckVectorCopyIntoArgument, validateType, validateTypeOf, visitAnnotation, visitCatch, visitClass, visitCompilationUnit, visitCompoundAssignment, visitConditionalExpression, visitEnhancedForLoop, visitLambdaExpression, visitMemberReference, visitParameterizedType, visitReturn, visitThrow, visitTypeParameter, visitUnary, visitVariablevisitgetCurrentPath, scanreduce, scan, visitAnnotatedType, visitArrayType, visitAssert, visitBinary, visitBlock, visitBreak, visitCase, visitContinue, visitDoWhileLoop, visitEmptyStatement, visitErroneous, visitExpressionStatement, visitForLoop, visitIf, visitImport, visitIntersectionType, visitLabeledStatement, visitLiteral, visitOther, visitParenthesized, visitPrimitiveType, visitSwitch, visitSynchronized, visitTry, visitUnionType, visitWhileLoop, visitWildcardpublic ReportVisitor(BaseTypeChecker checker)
protected BaseAnnotatedTypeFactory createTypeFactory()
BaseTypeVisitorThe default implementation uses the checker naming convention to create the appropriate
type factory. If no factory is found, it returns BaseAnnotatedTypeFactory. It
reflectively invokes the constructor that accepts this checker and compilation unit tree (in
that order) as arguments.
Subclasses have to override this method to create the appropriate visitor if they do not follow the checker naming convention.
createTypeFactory in class BaseTypeVisitor<BaseAnnotatedTypeFactory>public Void scan(Tree tree, Void p)
scan in class BaseTypeVisitor<BaseAnnotatedTypeFactory>public void processClassTree(ClassTree node)
BaseTypeVisitorBaseTypeVisitor.visitClass(ClassTree, Void).processClassTree in class BaseTypeVisitor<BaseAnnotatedTypeFactory>node - class to checkpublic Void visitMethod(MethodTree node, Void p)
BaseTypeVisitorThe override rule specifies that a method, m1, may override a method m2 only if:
visitMethod in interface TreeVisitor<Void,Void>visitMethod in class BaseTypeVisitor<BaseAnnotatedTypeFactory>public Void visitMethodInvocation(MethodInvocationTree node, Void p)
BaseTypeVisitorAn invocation of a method, m, on the receiver, r is valid only if:
visitMethodInvocation in interface TreeVisitor<Void,Void>visitMethodInvocation in class BaseTypeVisitor<BaseAnnotatedTypeFactory>public Void visitMemberSelect(MemberSelectTree node, Void p)
visitMemberSelect in interface TreeVisitor<Void,Void>visitMemberSelect in class TreeScanner<Void,Void>public Void visitIdentifier(IdentifierTree node, Void p)
visitIdentifier in interface TreeVisitor<Void,Void>visitIdentifier in class BaseTypeVisitor<BaseAnnotatedTypeFactory>public Void visitAssignment(AssignmentTree node, Void p)
BaseTypeVisitorBaseTypeVisitor.commonAssignmentCheck(Tree, ExpressionTree, String).
If the subtype check fails, it issues a "assignment.type.incompatible" error.
visitAssignment in interface TreeVisitor<Void,Void>visitAssignment in class BaseTypeVisitor<BaseAnnotatedTypeFactory>public Void visitArrayAccess(ArrayAccessTree node, Void p)
visitArrayAccess in interface TreeVisitor<Void,Void>visitArrayAccess in class BaseTypeVisitor<BaseAnnotatedTypeFactory>public Void visitNewClass(NewClassTree node, Void p)
BaseTypeVisitorAn invocation of a constructor, c, is valid only if:
visitNewClass in interface TreeVisitor<Void,Void>visitNewClass in class BaseTypeVisitor<BaseAnnotatedTypeFactory>public Void visitNewArray(NewArrayTree node, Void p)
visitNewArray in interface TreeVisitor<Void,Void>visitNewArray in class BaseTypeVisitor<BaseAnnotatedTypeFactory>public Void visitTypeCast(TypeCastTree node, Void p)
visitTypeCast in interface TreeVisitor<Void,Void>visitTypeCast in class BaseTypeVisitor<BaseAnnotatedTypeFactory>public Void visitInstanceOf(InstanceOfTree node, Void p)
visitInstanceOf in interface TreeVisitor<Void,Void>visitInstanceOf in class BaseTypeVisitor<BaseAnnotatedTypeFactory>public Void visitModifiers(ModifiersTree node, Void p)
visitModifiers in interface TreeVisitor<Void,Void>visitModifiers in class TreeScanner<Void,Void>protected BaseTypeValidator createTypeValidator()
createTypeValidator in class BaseTypeVisitor<BaseAnnotatedTypeFactory>