Class VariableExpressionReplacer
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.transform.tailrec.VariableExpressionReplacer
- All Implemented Interfaces:
- GroovyCodeVisitor
Tool for replacing VariableExpression instances in an AST by other VariableExpression instances.
 Regardless of a real change taking place in nested expressions, all considered expression (trees) will be replaced.
 This could be optimized to accelerate compilation.
 
Within @TailRecursive it is used - to swap the access of method args with the access to iteration variables - to swap the access of iteration variables with the access of temp vars
- 
Constructor SummaryConstructorsConstructorDescriptionVariableExpressionReplacer(Closure<Boolean> when, Closure<VariableExpression> replaceWith) 
- 
Method SummaryModifier and TypeMethodDescriptiongetWhen()voidvoidsetReplaceWith(Closure<VariableExpression> replaceWith) voidvoidvisitAssertStatement(AssertStatement statement) voidvisitBinaryExpression(BinaryExpression expression) It's the only Expression type in which replacing is considered.voidvisitCaseStatement(CaseStatement statement) voidvoidvisitExpressionStatement(ExpressionStatement statement) voidvisitForLoop(ForStatement forLoop) voidvisitIfElse(IfStatement ifElse) voidvisitReturnStatement(ReturnStatement statement) voidvisitSwitch(SwitchStatement statement) voidvisitSynchronizedStatement(SynchronizedStatement statement) voidvisitThrowStatement(ThrowStatement statement) voidvisitWhileLoop(WhileStatement loop) Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupportafterSwitchCaseStatementsVisited, afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBitwiseNegationExpression, visitBlockStatement, visitBooleanExpression, visitBreakStatement, visitBytecodeExpression, visitCastExpression, visitCatchStatement, visitClassExpression, visitClosureExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitContinueStatement, visitDeclarationExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTryCatchFinally, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpressionMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitorvisit, visit, visitEmptyExpression, visitListOfExpressions
- 
Constructor Details- 
VariableExpressionReplacer
 
- 
- 
Method Details- 
visitReturnStatement- Specified by:
- visitReturnStatementin interface- GroovyCodeVisitor
- Overrides:
- visitReturnStatementin class- CodeVisitorSupport
 
- 
visitIfElse- Specified by:
- visitIfElsein interface- GroovyCodeVisitor
- Overrides:
- visitIfElsein class- CodeVisitorSupport
 
- 
visitForLoop- Specified by:
- visitForLoopin interface- GroovyCodeVisitor
- Overrides:
- visitForLoopin class- CodeVisitorSupport
 
- 
visitBinaryExpressionIt's the only Expression type in which replacing is considered. That's an abuse of the class, but I couldn't think of a better way.- Specified by:
- visitBinaryExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitBinaryExpressionin class- CodeVisitorSupport
 
- 
visitWhileLoop- Specified by:
- visitWhileLoopin interface- GroovyCodeVisitor
- Overrides:
- visitWhileLoopin class- CodeVisitorSupport
 
- 
visitDoWhileLoop- Specified by:
- visitDoWhileLoopin interface- GroovyCodeVisitor
- Overrides:
- visitDoWhileLoopin class- CodeVisitorSupport
 
- 
visitSwitch- Specified by:
- visitSwitchin interface- GroovyCodeVisitor
- Overrides:
- visitSwitchin class- CodeVisitorSupport
 
- 
visitCaseStatement- Specified by:
- visitCaseStatementin interface- GroovyCodeVisitor
- Overrides:
- visitCaseStatementin class- CodeVisitorSupport
 
- 
visitExpressionStatement- Specified by:
- visitExpressionStatementin interface- GroovyCodeVisitor
- Overrides:
- visitExpressionStatementin class- CodeVisitorSupport
 
- 
visitThrowStatement- Specified by:
- visitThrowStatementin interface- GroovyCodeVisitor
- Overrides:
- visitThrowStatementin class- CodeVisitorSupport
 
- 
visitAssertStatement- Specified by:
- visitAssertStatementin interface- GroovyCodeVisitor
- Overrides:
- visitAssertStatementin class- CodeVisitorSupport
 
- 
visitSynchronizedStatement- Specified by:
- visitSynchronizedStatementin interface- GroovyCodeVisitor
- Overrides:
- visitSynchronizedStatementin class- CodeVisitorSupport
 
- 
replaceIn
- 
getWhen
- 
setWhen
- 
getReplaceWith
- 
setReplaceWith
 
-