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

# Class InvokeDynamicWriter

java.lang.Object
org.codehaus.groovy.classgen.asm.InvocationWriter
org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter

    public class InvokeDynamicWriter
    extends InvocationWriter

This Writer is used to generate the call invocation byte codes for usage by invokedynamic.

- ## Field Summary

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

  `castToVargsArray, invokeClosureMethod, invokeMethod, invokeMethodOnCurrent, invokeMethodOnSuper, invokeStaticMethod`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `InvokeDynamicWriter​(WriterController wc)` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `castNonPrimitiveToBool​(ClassNode sourceType)` |
  `void` | `castToNonPrimitiveIfNecessary​(ClassNode sourceType, ClassNode targetType)` | Converts sourceType to a non primitive by using Groovy casting.
  `void` | `coerce​(ClassNode from, ClassNode target)` |
  `protected boolean` | `makeCachedCall​(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)` |
  `void` | `makeSingleArgumentCall​(Expression receiver, String message, Expression arguments, boolean safe)` |
  `protected void` | `writeGetProperty​(Expression receiver, String propertyName, boolean safe, boolean implicitThis, boolean groovyObject)` |
  `protected void` | `writeNormalConstructorCall​(ConstructorCallExpression call)` |

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

  `finnishConstructorCall, getMethodName, loadArguments, makeArgumentList, makeCall, makeCall, makeClassForNameCall, makeDirectCall, makeSingleArgumentCall, makeUncachedCall, prepareConstructorCall, writeAICCall, writeDirectMethodCall, writeInvokeConstructor, writeInvokeMethod, writeInvokeStaticMethod, writeSpecialConstructorCall`

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

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

- ## Constructor Details

  - ### InvokeDynamicWriter

    public InvokeDynamicWriter​(WriterController wc)

- ## Method Details

  - ### makeCachedCall

    protected boolean makeCachedCall​(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)
    Overrides:
      `makeCachedCall` in class `InvocationWriter`

  - ### makeSingleArgumentCall

    public void makeSingleArgumentCall​(Expression receiver, String message, Expression arguments, boolean safe)
    Overrides:
      `makeSingleArgumentCall` in class `InvocationWriter`

  - ### writeGetProperty

    protected void writeGetProperty​(Expression receiver, String propertyName, boolean safe, boolean implicitThis, boolean groovyObject)

  - ### writeNormalConstructorCall

    protected void writeNormalConstructorCall​(ConstructorCallExpression call)
    Overrides:
      `writeNormalConstructorCall` in class `InvocationWriter`

  - ### coerce

    public void coerce​(ClassNode from, ClassNode target)
    Overrides:
      `coerce` in class `InvocationWriter`

  - ### castToNonPrimitiveIfNecessary

    public void castToNonPrimitiveIfNecessary​(ClassNode sourceType, ClassNode targetType)
    Description copied from class: `InvocationWriter`
    Converts sourceType to a non primitive by using Groovy casting. sourceType might be a primitive This might be done using SBA#castToType
    Overrides:
      `castToNonPrimitiveIfNecessary` in class `InvocationWriter`

  - ### castNonPrimitiveToBool

    public void castNonPrimitiveToBool​(ClassNode sourceType)
    Overrides:
      `castNonPrimitiveToBool` in class `InvocationWriter`