Class InWhileLoopWrapper
java.lang.Object
org.codehaus.groovy.transform.tailrec.InWhileLoopWrapper
Wrap the body of a method in a while loop, nested in a try-catch.
This is the first step in making a tail recursive method iterative.
There are two ways to invoke the next iteration step:
- "continue _RECUR_HERE_" is used by recursive calls outside of closures
- "throw LOOP_EXCEPTION" is used by recursive calls within closures b/c you cannot invoke "continue" from there
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final GotoRecurHereExceptionException instance thrown from closures to restart the generated loop.static final StringLabel targeted by synthesizedcontinuestatements. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidwrap(MethodNode method) Wraps the supplied method body in the loop structure used by the tail-recursion transform.
-
Field Details
-
LOOP_LABEL
Label targeted by synthesizedcontinuestatements.- See Also:
-
LOOP_EXCEPTION
Exception instance thrown from closures to restart the generated loop.
-
-
Constructor Details
-
InWhileLoopWrapper
public InWhileLoopWrapper()
-
-
Method Details
-
wrap
Wraps the supplied method body in the loop structure used by the tail-recursion transform.- Parameters:
method- the method to rewrite
-