public class StaticTypeCheckingVisitor extends ClassCodeVisitorSupport
| Modifier and Type | Class and Description |
|---|---|
protected static interface |
StaticTypeCheckingVisitor.SignatureCodec |
protected static class |
StaticTypeCheckingVisitor.SignatureCodecFactory |
| Modifier and Type | Field and Description |
|---|---|
static MethodNode |
CLOSURE_CALL_NO_ARG |
static MethodNode |
CLOSURE_CALL_ONE_ARG |
static MethodNode |
CLOSURE_CALL_VARGS |
| Constructor and Description |
|---|
StaticTypeCheckingVisitor(SourceUnit source,
ClassNode cn,
TypeCheckerPluginFactory pluginFactory) |
visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitImports, visitObjectInitializerStatements, visitPackage, visitProperty, visitStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatementvisitArgumentlistExpression, visitArrayExpression, visitBooleanExpression, visitBytecodeExpression, visitClosureListExpression, visitConstantExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodPointerExpression, visitNotExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitTupleExpressionpublic static final MethodNode CLOSURE_CALL_NO_ARG
public static final MethodNode CLOSURE_CALL_ONE_ARG
public static final MethodNode CLOSURE_CALL_VARGS
public StaticTypeCheckingVisitor(SourceUnit source, ClassNode cn, TypeCheckerPluginFactory pluginFactory)
protected SourceUnit getSourceUnit()
getSourceUnit in class ClassCodeVisitorSupportpublic void setErrorCollector(ErrorCollector errorCollector)
errorCollector - an error collectorpublic void visitClass(ClassNode node)
GroovyClassVisitorvisitClass in interface GroovyClassVisitorvisitClass in class ClassCodeVisitorSupportprotected boolean shouldSkipClassNode(ClassNode node)
protected ClassNode[] getTypeCheckingAnnotations()
TypeChecked.public boolean isSkipMode(AnnotatedNode node)
public void visitClassExpression(ClassExpression expression)
visitClassExpression in interface GroovyCodeVisitorvisitClassExpression in class CodeVisitorSupportpublic void visitVariableExpression(VariableExpression vexp)
visitVariableExpression in interface GroovyCodeVisitorvisitVariableExpression in class CodeVisitorSupportpublic void visitPropertyExpression(PropertyExpression pexp)
visitPropertyExpression in interface GroovyCodeVisitorvisitPropertyExpression in class CodeVisitorSupportpublic void visitAttributeExpression(AttributeExpression expression)
visitAttributeExpression in interface GroovyCodeVisitorvisitAttributeExpression in class CodeVisitorSupportpublic void visitRangeExpression(RangeExpression expression)
visitRangeExpression in interface GroovyCodeVisitorvisitRangeExpression in class CodeVisitorSupportpublic void visitBinaryExpression(BinaryExpression expression)
visitBinaryExpression in interface GroovyCodeVisitorvisitBinaryExpression in class CodeVisitorSupportprotected boolean existsProperty(PropertyExpression pexp, boolean checkForReadOnly, ClassCodeVisitorSupport visitor)
pexp - a property expressioncheckForReadOnly - also lookup for read only propertiesvisitor - if not null, when the property node is found, visit it with the provided visitorprotected boolean hasSetter(PropertyExpression pexp)
public void visitField(FieldNode node)
GroovyClassVisitorvisitField in interface GroovyClassVisitorvisitField in class ClassCodeVisitorSupportpublic void visitForLoop(ForStatement forLoop)
visitForLoop in interface GroovyCodeVisitorvisitForLoop in class ClassCodeVisitorSupportpublic static ClassNode inferLoopElementType(ClassNode collectionType)
collectionType - the type of the collectionpublic void visitWhileLoop(WhileStatement loop)
visitWhileLoop in interface GroovyCodeVisitorvisitWhileLoop in class ClassCodeVisitorSupportpublic void visitBitwiseNegationExpression(BitwiseNegationExpression expression)
visitBitwiseNegationExpression in interface GroovyCodeVisitorvisitBitwiseNegationExpression in class CodeVisitorSupportpublic void visitUnaryPlusExpression(UnaryPlusExpression expression)
visitUnaryPlusExpression in interface GroovyCodeVisitorvisitUnaryPlusExpression in class CodeVisitorSupportpublic void visitUnaryMinusExpression(UnaryMinusExpression expression)
visitUnaryMinusExpression in interface GroovyCodeVisitorvisitUnaryMinusExpression in class CodeVisitorSupportpublic void visitPostfixExpression(PostfixExpression expression)
visitPostfixExpression in interface GroovyCodeVisitorvisitPostfixExpression in class CodeVisitorSupportpublic void visitPrefixExpression(PrefixExpression expression)
visitPrefixExpression in interface GroovyCodeVisitorvisitPrefixExpression in class CodeVisitorSupportprotected void visitConstructorOrMethod(MethodNode node, boolean isConstructor)
visitConstructorOrMethod in class ClassCodeVisitorSupportpublic void visitReturnStatement(ReturnStatement statement)
visitReturnStatement in interface GroovyCodeVisitorvisitReturnStatement in class ClassCodeVisitorSupportpublic void visitConstructorCallExpression(ConstructorCallExpression call)
visitConstructorCallExpression in interface GroovyCodeVisitorvisitConstructorCallExpression in class CodeVisitorSupportpublic void visitClosureExpression(ClosureExpression expression)
visitClosureExpression in interface GroovyCodeVisitorvisitClosureExpression in class CodeVisitorSupportprotected boolean shouldSkipMethodNode(MethodNode node)
public void visitMethod(MethodNode node)
GroovyClassVisitorvisitMethod in interface GroovyClassVisitorvisitMethod in class ClassCodeVisitorSupportprotected void addTypeCheckingInfoAnnotation(MethodNode node)
public void visitStaticMethodCallExpression(StaticMethodCallExpression call)
visitStaticMethodCallExpression in interface GroovyCodeVisitorvisitStaticMethodCallExpression in class CodeVisitorSupportpublic void visitMethodCallExpression(MethodCallExpression call)
visitMethodCallExpression in interface GroovyCodeVisitorvisitMethodCallExpression in class CodeVisitorSupportpublic void visitIfElse(IfStatement ifElse)
visitIfElse in interface GroovyCodeVisitorvisitIfElse in class ClassCodeVisitorSupportpublic void visitCastExpression(CastExpression expression)
visitCastExpression in interface GroovyCodeVisitorvisitCastExpression in class CodeVisitorSupportpublic void visitTernaryExpression(TernaryExpression expression)
visitTernaryExpression in interface GroovyCodeVisitorvisitTernaryExpression in class CodeVisitorSupportpublic void visitTryCatchFinally(TryCatchStatement statement)
visitTryCatchFinally in interface GroovyCodeVisitorvisitTryCatchFinally in class ClassCodeVisitorSupportprotected ClassNode inferComponentType(ClassNode containerType, ClassNode indexType)
protected MethodNode findMethodOrFail(Expression expr, ClassNode receiver, java.lang.String name, ClassNode... args)
protected void addError(java.lang.String msg,
ASTNode expr)
addError in class ClassCodeVisitorSupportprotected void addStaticTypeError(java.lang.String msg,
ASTNode expr)
public void setMethodsToBeVisited(java.util.Set<MethodNode> methodsToBeVisited)
public void performSecondPass()