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

## [Java] Class IndyBinHelper

- org.codehaus.groovy.classgen.asm.indy.IndyBinHelper

-     public class IndyBinHelper
      extends BinaryExpressionHelper

  Binary-expression helper that routes prefix and postfix operations through the indy invocation path.

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

  - ### Constructor Summary

    Constructors
    Constructor and description
    `IndyBinHelper(WriterController wc)` Creates an indy-aware binary-expression helper.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `protected void` | `evaluateCompoundAssign(String assignName, String baseName, BinaryExpression expression)` GEP-15: emit `invokedynamic` to IndyInterface.bootstrap with the CallType.COMPOUND_ASSIGN call type (resolved by IndyCompoundAssign), replacing the uncached static call into `ScriptBytecodeAdapter.compoundAssign`.
    `` | `protected void` | `writePostOrPrefixMethod(int op, String method, Expression expression, Expression orig)` * Emits the method call used to implement a prefix or postfix operation. * * Parameters: `op` - the token type * `method` - the helper method name * `expression` - the receiver expression * `orig` - the original prefix/postfix expression

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class BinaryExpressionHelper` | `assignToArray, eval, evaluateArrayAssignmentWithOperator, evaluateBinaryExpression, evaluateBinaryExpressionWithAssignment, evaluateCompareExpression, evaluateCompoundAssign, evaluateElvisEqual, evaluateEqual, evaluatePostfixMethod, evaluatePrefixMethod, evaluateTernary, getController, getIsCaseMethod, writePostOrPrefixMethod`

- - ### Constructor Detail

    - #### public IndyBinHelper(WriterController wc)

      Creates an indy-aware binary-expression helper.

  - ### Method Detail

    - #### protected void evaluateCompoundAssign(String assignName, String baseName, BinaryExpression expression)

      GEP-15: emit `invokedynamic` to IndyInterface.bootstrap with the CallType.COMPOUND_ASSIGN call type (resolved by IndyCompoundAssign), replacing the uncached static call into `ScriptBytecodeAdapter.compoundAssign`. Subscript LHS (e.g. `a[i] += b`) is out of GEP-15 scope and stays on the legacy path.

    - #### protected void writePostOrPrefixMethod(int op, String method, Expression expression, Expression orig)

      * Emits the method call used to implement a prefix or postfix operation. * *

      Parameters:
        `op` - the token type *
        `method` - the helper method name *
        `expression` - the receiver expression *
        `orig` - the original prefix/postfix expression