Top Description Fields Constructors Methods
org.codehaus.groovy.classgen.asm.sc

public Class StaticTypesCallSiteWriter

extends CallSiteWriter
implements Opcodes
Class Inheritance
All Implemented Interfaces
org.objectweb.asm.Opcodes
Imports
org.codehaus.groovy.GroovyBugError, org.codehaus.groovy.ast.ASTNode, .ClassHelper, .ClassNode, .FieldNode, .InnerClassNode, .MethodNode, .Parameter, .PropertyNode, .Variable, org.codehaus.groovy.ast.expr.ClassExpression, .Expression, .MethodCallExpression, .PropertyExpression, .VariableExpression, org.codehaus.groovy.ast.stmt.EmptyStatement, org.codehaus.groovy.classgen.AsmClassGenerator, .BytecodeExpression, org.codehaus.groovy.classgen.asm.BytecodeHelper, .CallSiteWriter, .CompileStack, .MethodCallerMultiAdapter, .OperandStack, .TypeChooser, .VariableSlotLoader, org.codehaus.groovy.runtime.InvokerHelper, org.codehaus.groovy.syntax.SyntaxException, org.codehaus.groovy.transform.sc.StaticCompilationMetadataKeys, org.codehaus.groovy.transform.stc.StaticTypesMarker, org.objectweb.asm.Label, .MethodVisitor, .Opcodes, java.util.ArrayList, .Collection, .List, .Map

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

Modifier and TypeField and Description
private static final MethodNode
private static final MethodNode
private static final ClassNode
private final StaticTypesWriterController
private static final MethodNode
private static final MethodNode
private static final MethodNode
private static final ClassNode
private static final MethodNode
Inherited from org.codehaus.groovy.classgen.asm.CallSiteWriter:
CONSTRUCTOR

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private void
addPropertyAccessError(final Expression receiver, final String propertyName, final ClassNode receiverType)

public void
public void
private MethodNode
getCompatibleMethod(final ClassNode current, final String getAt, final ClassNode aType)

private ClassNode
getPropertyOwnerType(final Expression receiver, final boolean... isClassReceiver)

public void
makeCallSite(final Expression receiver, final String message, final Expression arguments, final boolean safe, final boolean implicitThis, final boolean callCurrent, final boolean callStatic)

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite.

public void
private void
makeDynamicGetProperty(final Expression receiver, final String propertyName, final boolean safe)

pack-priv boolean
makeGetField(final Expression receiver, final ClassNode receiverType, final String fieldName, final boolean safe, final boolean implicitThis)

private boolean
makeGetPrivateFieldWithBridgeMethod(final Expression receiver, final ClassNode receiverType, final String fieldName, final boolean safe, final boolean implicitThis)

public void
makeGetPropertySite(final Expression receiver, final String propertyName, final boolean safe, final boolean implicitThis)

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.makeGetPropertySite.

private boolean
makeGetPropertyWithGetter(final Expression receiver, final ClassNode receiverType, final String propertyName, final boolean safe, final boolean implicitThis)

public void
makeGroovyObjectGetPropertySite(final Expression receiver, final String propertyName, final boolean safe, final boolean implicitThis)

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.makeGroovyObjectGetPropertySite.

public void
makeSingleArgumentCall(final Expression receiver, final String message, final Expression arguments, final boolean safe)

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.makeSingleArgumentCall.

public void
public void
private boolean
setField(final PropertyExpression expression, final Expression objectExpression, final ClassNode receiverType, final String name)

private boolean
trySubscript(final Expression receiver, final String message, final Expression arguments, ClassNode rType, final ClassNode aType, boolean safe)

private void
writeArrayGet(final Expression receiver, final Expression arguments, final ClassNode rType, final ClassNode aType)

private void
writeListDotProperty(final Expression receiver, final String propertyName, final boolean safe)

private void
writeMapDotProperty(final Expression receiver, final String propertyName, final boolean safe)

private void
writeNumberNumberCall(final Expression receiver, final String message, final Expression arguments)

private void
writeOperatorCall(final Expression receiver, final Expression arguments, final String operator)

private void
writePowerCall(final Expression receiver, final Expression arguments, final ClassNode rType, final ClassNode aType)

private void
writeStringPlusCall(final Expression receiver, final String message, final Expression arguments)

Inherited from org.codehaus.groovy.classgen.asm.CallSiteWriter:
getCallSiteshasCallSiteUsemakeSingleArgumentCallprepareSiteAndReceivervisitBoxedArgument

Field Detail

CLOSURE_GETTHISOBJECT_METHODback to summary
private static final MethodNode CLOSURE_GETTHISOBJECT_METHOD
COLLECTION_SIZE_METHODback to summary
private static final MethodNode COLLECTION_SIZE_METHOD
COLLECTION_TYPEback to summary
private static final ClassNode COLLECTION_TYPE
controllerback to summary
private final StaticTypesWriterController controller

Hides org.codehaus.groovy.classgen.asm.CallSiteWriter.controller.

GROOVYOBJECT_GETPROPERTY_METHODback to summary
private static final MethodNode GROOVYOBJECT_GETPROPERTY_METHOD
INVOKERHELPER_GETPROPERTY_METHODback to summary
private static final MethodNode INVOKERHELPER_GETPROPERTY_METHOD
INVOKERHELPER_GETPROPERTYSAFE_METHODback to summary
private static final MethodNode INVOKERHELPER_GETPROPERTYSAFE_METHOD
INVOKERHELPER_TYPEback to summary
private static final ClassNode INVOKERHELPER_TYPE
MAP_GET_METHODback to summary
private static final MethodNode MAP_GET_METHOD

Constructor Detail

StaticTypesCallSiteWriterback to summary
public StaticTypesCallSiteWriter(final StaticTypesWriterController controller)

Method Detail

addPropertyAccessErrorback to summary
private void addPropertyAccessError(final Expression receiver, final String propertyName, final ClassNode receiverType)
fallbackAttributeOrPropertySiteback to summary
public void fallbackAttributeOrPropertySite(final PropertyExpression expression, final Expression objectExpression, final String name, final MethodCallerMultiAdapter adapter)

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.fallbackAttributeOrPropertySite.

Annotations
@Override
generateCallSiteArrayback to summary
public void generateCallSiteArray()

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.generateCallSiteArray.

Annotations
@Override
getCompatibleMethodback to summary
private MethodNode getCompatibleMethod(final ClassNode current, final String getAt, final ClassNode aType)
getPropertyOwnerTypeback to summary
private ClassNode getPropertyOwnerType(final Expression receiver, final boolean... isClassReceiver)
makeCallSiteback to summary
public void makeCallSite(final Expression receiver, final String message, final Expression arguments, final boolean safe, final boolean implicitThis, final boolean callCurrent, final boolean callStatic)

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite.

Annotations
@Override
makeCallSiteArrayInitializerback to summary
public void makeCallSiteArrayInitializer()

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSiteArrayInitializer.

Annotations
@Override
makeDynamicGetPropertyback to summary
private void makeDynamicGetProperty(final Expression receiver, final String propertyName, final boolean safe)
makeGetFieldback to summary
pack-priv boolean makeGetField(final Expression receiver, final ClassNode receiverType, final String fieldName, final boolean safe, final boolean implicitThis)
makeGetPrivateFieldWithBridgeMethodback to summary
private boolean makeGetPrivateFieldWithBridgeMethod(final Expression receiver, final ClassNode receiverType, final String fieldName, final boolean safe, final boolean implicitThis)
makeGetPropertySiteback to summary
public void makeGetPropertySite(final Expression receiver, final String propertyName, final boolean safe, final boolean implicitThis)

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.makeGetPropertySite.

Annotations
@Override
makeGetPropertyWithGetterback to summary
private boolean makeGetPropertyWithGetter(final Expression receiver, final ClassNode receiverType, final String propertyName, final boolean safe, final boolean implicitThis)
makeGroovyObjectGetPropertySiteback to summary
public void makeGroovyObjectGetPropertySite(final Expression receiver, final String propertyName, final boolean safe, final boolean implicitThis)

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.makeGroovyObjectGetPropertySite.

Annotations
@Override
makeSingleArgumentCallback to summary
public void makeSingleArgumentCall(final Expression receiver, final String message, final Expression arguments, final boolean safe)

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.makeSingleArgumentCall.

Annotations
@Override
makeSiteEntryback to summary
public void makeSiteEntry()

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.makeSiteEntry.

Annotations
@Override
prepareCallSiteback to summary
public void prepareCallSite(final String message)

Overrides org.codehaus.groovy.classgen.asm.CallSiteWriter.prepareCallSite.

Annotations
@Override
setFieldback to summary
private boolean setField(final PropertyExpression expression, final Expression objectExpression, final ClassNode receiverType, final String name)
trySubscriptback to summary
private boolean trySubscript(final Expression receiver, final String message, final Expression arguments, ClassNode rType, final ClassNode aType, boolean safe)
writeArrayGetback to summary
private void writeArrayGet(final Expression receiver, final Expression arguments, final ClassNode rType, final ClassNode aType)
writeListDotPropertyback to summary
private void writeListDotProperty(final Expression receiver, final String propertyName, final boolean safe)
writeMapDotPropertyback to summary
private void writeMapDotProperty(final Expression receiver, final String propertyName, final boolean safe)
writeNumberNumberCallback to summary
private void writeNumberNumberCall(final Expression receiver, final String message, final Expression arguments)
writeOperatorCallback to summary
private void writeOperatorCall(final Expression receiver, final Expression arguments, final String operator)
writePowerCallback to summary
private void writePowerCall(final Expression receiver, final Expression arguments, final ClassNode rType, final ClassNode aType)
writeStringPlusCallback to summary
private void writeStringPlusCall(final Expression receiver, final String message, final Expression arguments)