InvokeDynamicWriter (Groovy 4.0.10)
Description: declaration: package: org.codehaus.groovy.classgen.asm.indy, class: InvokeDynamicWriter

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`