Package: org.codehaus.groovy.classgen.asm.sc

## [Java] Class StaticTypesStatementWriter

- org.codehaus.groovy.classgen.asm.sc.StaticTypesStatementWriter

-     public class StaticTypesStatementWriter
      extends StatementWriter

  A class to write out the optimized statements.

- - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class StatementWriter` | `controller`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `StaticTypesStatementWriter(StaticTypesWriterController controller)` Creates a statement writer that favors statically typed loop and block generation.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public void` | `writeBlockStatement(BlockStatement statement)` * Generates bytecode for a block statement by visiting each contained statement. * Pushes the block's variable scope, emits the statements, and pops afterward. * Named labels on the block create a breakable region so that `break label` * within the block jumps to the end of it. * * Parameters: `block` - the block statement to compile
    `` | `protected void` | `writeForInLoop(ForStatement loop)` * Generates bytecode for a for-in loop by calling `iterator()` on the * collection expression and delegating loop control to * writeForInLoopControlAndBlock. * * Parameters: `statement` - the for-in statement to compile

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class StatementWriter` | `defineLoopIndexVariable, writeAssert, writeBlockStatement, writeBreak, writeContinue, writeDoWhileLoop, writeExpressionStatement, writeForInLoop, writeForInLoopControlAndBlock, writeForLoopWithClosureList, writeForStatement, writeIfElse, writeIteratorHasNext, writeIteratorNext, writeLoopBackEdge, writeReturn, writeStatementLabel, writeSwitch, writeSynchronized, writeThrow, writeTryCatchFinally, writeWhileLoop`

- - ### Constructor Detail

    - #### public StaticTypesStatementWriter(StaticTypesWriterController controller)

      Creates a statement writer that favors statically typed loop and block generation.

  - ### Method Detail

    - #### public void writeBlockStatement(BlockStatement statement)

      * Generates bytecode for a block statement by visiting each contained statement. * Pushes the block's variable scope, emits the statements, and pops afterward. * Named labels on the block create a breakable region so that `break label` * within the block jumps to the end of it. * *

      Parameters:
        `block` - the block statement to compile

    - #### protected void writeForInLoop(ForStatement loop)

      * Generates bytecode for a for-in loop by calling `iterator()` on the * collection expression and delegating loop control to * writeForInLoopControlAndBlock. * *

      Parameters:
        `statement` - the for-in statement to compile