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

# Class StaticTypesBinaryExpressionMultiTypeDispatcher

java.lang.Object
org.codehaus.groovy.classgen.asm.BinaryExpressionHelper
org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher
org.codehaus.groovy.classgen.asm.sc.StaticTypesBinaryExpressionMultiTypeDispatcher

Direct Known Subclasses:
  `IndyStaticTypesMultiTypeDispatcher`

public class StaticTypesBinaryExpressionMultiTypeDispatcher extends BinaryExpressionMultiTypeDispatcher
A specialized version of the multi type binary expression dispatcher which is aware of static compilation. It is able to generate optimized bytecode for some operations using JVM instructions when available.

- ## Field Summary

  ### Fields inherited from class org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher

  `binExpWriter, typeMap, typeMapKeyNames`

  ### Fields inherited from class org.codehaus.groovy.classgen.asm.BinaryExpressionHelper

  `controller`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StaticTypesBinaryExpressionMultiTypeDispatcher(WriterController wc)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `assignToArray(Expression enclosing, Expression receiver, Expression subscript, Expression rhsValueLoader, boolean safe)`
  `protected void`
  `evaluateBinaryExpressionWithAssignment(String method, BinaryExpression expression)`
  `void`
  `evaluateEqual(BinaryExpression expression, boolean defineVariable)`
  `protected void`
  `writePostOrPrefixMethod(int op, String method, Expression expression, Expression orig)`

  ### Methods inherited from class org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher

  `doPrimitiveCompare, doPrimtiveCompare, evaluateBinaryExpression, evaluateCompareExpression, getOperandType, initializeDelegateHelpers`

  ### Methods inherited from class org.codehaus.groovy.classgen.asm.BinaryExpressionHelper

  `assignToArray, eval, evaluateArrayAssignmentWithOperator, evaluateElvisEqual, evaluatePostfixMethod, evaluatePrefixMethod, evaluateTernary, getController, getIsCaseMethod`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### StaticTypesBinaryExpressionMultiTypeDispatcher

    public StaticTypesBinaryExpressionMultiTypeDispatcher(WriterController wc)

- ## Method Details

  - ### writePostOrPrefixMethod

    protected void writePostOrPrefixMethod(int op, String method, Expression expression, Expression orig)
    Overrides:
      `writePostOrPrefixMethod` in class `BinaryExpressionMultiTypeDispatcher`

  - ### evaluateBinaryExpressionWithAssignment

    protected void evaluateBinaryExpressionWithAssignment(String method, BinaryExpression expression)
    Overrides:
      `evaluateBinaryExpressionWithAssignment` in class `BinaryExpressionMultiTypeDispatcher`

  - ### evaluateEqual

    public void evaluateEqual(BinaryExpression expression, boolean defineVariable)
    Overrides:
      `evaluateEqual` in class `BinaryExpressionHelper`

  - ### assignToArray

    protected void assignToArray(Expression enclosing, Expression receiver, Expression subscript, Expression rhsValueLoader, boolean safe)
    Overrides:
      `assignToArray` in class `BinaryExpressionMultiTypeDispatcher`