Package: org.codehaus.groovy.transform.tailrec

## [Java] Class ReturnStatementToIterationConverter

- org.codehaus.groovy.transform.tailrec.ReturnStatementToIterationConverter

-     public class ReturnStatementToIterationConverter
      extends Object

  Translates all return statements into an invocation of the next iteration. This can be either - "continue LOOP_LABEL": Outside closures - "throw LOOP_EXCEPTION": Inside closures

  Moreover, before adding the recur statement the iteration parameters (originally the method args) are set to their new value. To prevent variable aliasing parameters will be copied into temp vars before they are changes so that their current iteration value can be used when setting other params.

  There's probably place for optimizing the amount of variable copying being done, e.g. parameters that are only handed through must not be copied at all.

- - ### Constructor Summary

    Constructors
    Constructor and description
    `ReturnStatementToIterationConverter()`
    `ReturnStatementToIterationConverter(Statement recurStatement)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public Statement` | `convert(ReturnStatement statement, Map<Integer, Map<String, Object>> positionMapping)`
    `` | `public Statement` | `getRecurStatement()`
    `` | `public void` | `setRecurStatement(Statement recurStatement)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### public ReturnStatementToIterationConverter()

    - #### public ReturnStatementToIterationConverter(Statement recurStatement)

  - ### Method Detail

    - #### public Statement convert(ReturnStatement statement, Map<Integer, Map<String, Object>> positionMapping)

    - #### public Statement getRecurStatement()

    - #### public void setRecurStatement(Statement recurStatement)