org.codehaus.groovy.transform.stc
Class StaticTypeCheckingVisitor
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor
- All Implemented Interfaces:
- GroovyClassVisitor, GroovyCodeVisitor
public class StaticTypeCheckingVisitor
- extends ClassCodeVisitorSupport
The main class code visitor responsible for static type checking. It will perform various inspections like checking
assignment types, type inference, ... Eventually, class nodes may be annotated with inferred type information.
- Author:
- Cedric Champeau, Jochen Theodorou
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport |
addError, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitImports, visitObjectInitializerStatements, visitPackage, visitProperty, visitStatement, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally |
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport |
visitArgumentlistExpression, visitArrayExpression, visitBooleanExpression, visitBytecodeExpression, visitClassExpression, visitClosureListExpression, visitConstantExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitRangeExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTupleExpression |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
StaticTypeCheckingVisitor
public StaticTypeCheckingVisitor(SourceUnit source,
ClassNode cn)
getSourceUnit
protected SourceUnit getSourceUnit()
- Specified by:
getSourceUnit
in class ClassCodeVisitorSupport
visitClass
public void visitClass(ClassNode node)
- Description copied from interface:
GroovyClassVisitor
- Visit a ClassNode.
- Specified by:
visitClass
in interface GroovyClassVisitor
- Overrides:
visitClass
in class ClassCodeVisitorSupport
visitVariableExpression
public void visitVariableExpression(VariableExpression vexp)
- Specified by:
visitVariableExpression
in interface GroovyCodeVisitor
- Overrides:
visitVariableExpression
in class CodeVisitorSupport
visitPropertyExpression
public void visitPropertyExpression(PropertyExpression pexp)
- Specified by:
visitPropertyExpression
in interface GroovyCodeVisitor
- Overrides:
visitPropertyExpression
in class CodeVisitorSupport
visitAttributeExpression
public void visitAttributeExpression(AttributeExpression expression)
- Specified by:
visitAttributeExpression
in interface GroovyCodeVisitor
- Overrides:
visitAttributeExpression
in class CodeVisitorSupport
visitBinaryExpression
public void visitBinaryExpression(BinaryExpression expression)
- Specified by:
visitBinaryExpression
in interface GroovyCodeVisitor
- Overrides:
visitBinaryExpression
in class CodeVisitorSupport
visitForLoop
public void visitForLoop(ForStatement forLoop)
- Specified by:
visitForLoop
in interface GroovyCodeVisitor
- Overrides:
visitForLoop
in class ClassCodeVisitorSupport
visitWhileLoop
public void visitWhileLoop(WhileStatement loop)
- Specified by:
visitWhileLoop
in interface GroovyCodeVisitor
- Overrides:
visitWhileLoop
in class ClassCodeVisitorSupport
visitBitwiseNegationExpression
public void visitBitwiseNegationExpression(BitwiseNegationExpression expression)
- Specified by:
visitBitwiseNegationExpression
in interface GroovyCodeVisitor
- Overrides:
visitBitwiseNegationExpression
in class CodeVisitorSupport
visitUnaryPlusExpression
public void visitUnaryPlusExpression(UnaryPlusExpression expression)
- Specified by:
visitUnaryPlusExpression
in interface GroovyCodeVisitor
- Overrides:
visitUnaryPlusExpression
in class CodeVisitorSupport
visitUnaryMinusExpression
public void visitUnaryMinusExpression(UnaryMinusExpression expression)
- Specified by:
visitUnaryMinusExpression
in interface GroovyCodeVisitor
- Overrides:
visitUnaryMinusExpression
in class CodeVisitorSupport
visitConstructorOrMethod
protected void visitConstructorOrMethod(MethodNode node,
boolean isConstructor)
- Overrides:
visitConstructorOrMethod
in class ClassCodeVisitorSupport
visitReturnStatement
public void visitReturnStatement(ReturnStatement statement)
- Specified by:
visitReturnStatement
in interface GroovyCodeVisitor
- Overrides:
visitReturnStatement
in class ClassCodeVisitorSupport
visitConstructorCallExpression
public void visitConstructorCallExpression(ConstructorCallExpression call)
- Specified by:
visitConstructorCallExpression
in interface GroovyCodeVisitor
- Overrides:
visitConstructorCallExpression
in class CodeVisitorSupport
visitClosureExpression
public void visitClosureExpression(ClosureExpression expression)
- Specified by:
visitClosureExpression
in interface GroovyCodeVisitor
- Overrides:
visitClosureExpression
in class CodeVisitorSupport
visitMethod
public void visitMethod(MethodNode node)
- Description copied from interface:
GroovyClassVisitor
- Visit a MethodNode.
- Specified by:
visitMethod
in interface GroovyClassVisitor
- Overrides:
visitMethod
in class ClassCodeVisitorSupport
visitMethodCallExpression
public void visitMethodCallExpression(MethodCallExpression call)
- Specified by:
visitMethodCallExpression
in interface GroovyCodeVisitor
- Overrides:
visitMethodCallExpression
in class CodeVisitorSupport
visitIfElse
public void visitIfElse(IfStatement ifElse)
- Specified by:
visitIfElse
in interface GroovyCodeVisitor
- Overrides:
visitIfElse
in class ClassCodeVisitorSupport
visitCastExpression
public void visitCastExpression(CastExpression expression)
- Specified by:
visitCastExpression
in interface GroovyCodeVisitor
- Overrides:
visitCastExpression
in class CodeVisitorSupport
visitTernaryExpression
public void visitTernaryExpression(TernaryExpression expression)
- Specified by:
visitTernaryExpression
in interface GroovyCodeVisitor
- Overrides:
visitTernaryExpression
in class CodeVisitorSupport
addStaticTypeError
protected void addStaticTypeError(String msg,
ASTNode expr)
setMethodsToBeVisited
public void setMethodsToBeVisited(Set<MethodNode> methodsToBeVisited)
performSecondPass
public void performSecondPass()