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

# Class StaticTypesCallSiteWriter

java.lang.Object
org.codehaus.groovy.classgen.asm.CallSiteWriter
org.codehaus.groovy.classgen.asm.sc.StaticTypesCallSiteWriter

All Implemented Interfaces:
  `org.objectweb.asm.Opcodes`

    public class StaticTypesCallSiteWriter
    extends CallSiteWriter
    implements org.objectweb.asm.Opcodes

A call site writer which replaces call site caching with static calls. This means that the generated code looks more like Java code than dynamic Groovy code. Best effort is made to use JVM instructions instead of calls to helper methods.

- ## Field Summary

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

  `CONSTRUCTOR`

  ### Fields inherited from interface org.objectweb.asm.Opcodes

  `AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V9`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `StaticTypesCallSiteWriter​(StaticTypesWriterController controller)` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `fallbackAttributeOrPropertySite​(PropertyExpression expression, Expression objectExpression, java.lang.String name, MethodCallerMultiAdapter adapter)` |
  `void` | `generateCallSiteArray()` |
  `void` | `makeCallSite​(Expression receiver, java.lang.String message, Expression arguments, boolean safe, boolean implicitThis, boolean callCurrent, boolean callStatic)` |
  `void` | `makeCallSiteArrayInitializer()` |
  `void` | `makeGetPropertySite​(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)` |
  `void` | `makeGroovyObjectGetPropertySite​(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)` |
  `void` | `makeSingleArgumentCall​(Expression receiver, java.lang.String message, Expression arguments, boolean safe)` |
  `void` | `makeSiteEntry()` |
  `void` | `prepareCallSite​(java.lang.String message)` |

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

  `getCallSites, hasCallSiteUse, makeSingleArgumentCall, prepareSiteAndReceiver, visitBoxedArgument`

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

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

- ## Constructor Details

  - ### StaticTypesCallSiteWriter

    public StaticTypesCallSiteWriter​(StaticTypesWriterController controller)

- ## Method Details

  - ### generateCallSiteArray

    public void generateCallSiteArray()
    Overrides:
      `generateCallSiteArray` in class `CallSiteWriter`

  - ### makeCallSite

    public void makeCallSite​(Expression receiver, java.lang.String message, Expression arguments, boolean safe, boolean implicitThis, boolean callCurrent, boolean callStatic)
    Overrides:
      `makeCallSite` in class `CallSiteWriter`

  - ### makeGetPropertySite

    public void makeGetPropertySite​(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)
    Overrides:
      `makeGetPropertySite` in class `CallSiteWriter`

  - ### makeGroovyObjectGetPropertySite

    public void makeGroovyObjectGetPropertySite​(Expression receiver, java.lang.String propertyName, boolean safe, boolean implicitThis)
    Overrides:
      `makeGroovyObjectGetPropertySite` in class `CallSiteWriter`

  - ### makeCallSiteArrayInitializer

    public void makeCallSiteArrayInitializer()
    Overrides:
      `makeCallSiteArrayInitializer` in class `CallSiteWriter`

  - ### makeSiteEntry

    public void makeSiteEntry()
    Overrides:
      `makeSiteEntry` in class `CallSiteWriter`

  - ### prepareCallSite

    public void prepareCallSite​(java.lang.String message)
    Overrides:
      `prepareCallSite` in class `CallSiteWriter`

  - ### makeSingleArgumentCall

    public void makeSingleArgumentCall​(Expression receiver, java.lang.String message, Expression arguments, boolean safe)
    Overrides:
      `makeSingleArgumentCall` in class `CallSiteWriter`

  - ### fallbackAttributeOrPropertySite

    public void fallbackAttributeOrPropertySite​(PropertyExpression expression, Expression objectExpression, java.lang.String name, MethodCallerMultiAdapter adapter)
    Overrides:
      `fallbackAttributeOrPropertySite` in class `CallSiteWriter`