Package org.codehaus.groovy.control
Class StaticVerifier
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.codehaus.groovy.control.StaticVerifier
- All Implemented Interfaces:
GroovyClassVisitor,GroovyCodeVisitor,ErrorCollecting
Checks for dynamic variables in static contexts.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected SourceUnitReturns the source unit currently being verified.voidvisitClass(ClassNode node, SourceUnit unit) Starts verification for the supplied class and source unit.voidTracks closure nesting while visiting closure expressions.voidTracks whether the visitor is inside a special constructor call.voidvisitConstructorOrMethod(MethodNode node, boolean isConstructor) Tracks the current method or constructor while verifying static references.voidReports dynamic variable access that is illegal in static contexts.Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAnnotation, visitAnnotations, visitAnnotations, visitAssertStatement, visitBlockStatement, visitBreakStatement, visitCaseStatement, visitCatchStatement, visitClass, visitClassCodeContainer, visitConstructor, visitContinueStatement, visitDeclarationExpression, visitDoWhileLoop, visitExpressionStatement, visitField, visitForLoop, visitIfElse, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitStatementAnnotations, visitSwitch, visitSynchronizedStatement, visitThrowStatement, visitTryCatchFinally, visitWhileLoopMethods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
afterSwitchCaseStatementsVisited, afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureListExpression, visitConstantExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpressionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitor
visit, visit, visitEmptyExpression, visitListOfExpressions
-
Constructor Details
-
StaticVerifier
public StaticVerifier()
-
-
Method Details
-
getSourceUnit
Returns the source unit currently being verified.- Specified by:
getSourceUnitin classClassCodeVisitorSupport- Returns:
- the active source unit
-
visitClass
Starts verification for the supplied class and source unit.- Parameters:
node- the class to verifyunit- the owning source unit
-
visitClosureExpression
Tracks closure nesting while visiting closure expressions.- Specified by:
visitClosureExpressionin interfaceGroovyCodeVisitor- Overrides:
visitClosureExpressionin classClassCodeVisitorSupport- Parameters:
ce- the closure expression to visit
-
visitConstructorCallExpression
Tracks whether the visitor is inside a special constructor call.- Specified by:
visitConstructorCallExpressionin interfaceGroovyCodeVisitor- Overrides:
visitConstructorCallExpressionin classCodeVisitorSupport- Parameters:
cce- the constructor call to visit
-
visitConstructorOrMethod
Tracks the current method or constructor while verifying static references.- Overrides:
visitConstructorOrMethodin classClassCodeVisitorSupport- Parameters:
node- the method or constructor being visitedisConstructor- whethernodeis a constructor
-
visitVariableExpression
Reports dynamic variable access that is illegal in static contexts.- Specified by:
visitVariableExpressionin interfaceGroovyCodeVisitor- Overrides:
visitVariableExpressionin classCodeVisitorSupport- Parameters:
ve- the variable expression to inspect
-