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

public Class StaticTypesBinaryExpressionMultiTypeDispatcher

extends BinaryExpressionMultiTypeDispatcher
implements Opcodes
Class Inheritance
All Implemented Interfaces
org.objectweb.asm.Opcodes
Known Direct Subclasses
org.codehaus.groovy.classgen.asm.indy.sc.IndyStaticTypesMultiTypeDispatcher
Imports
org.codehaus.groovy.ast.ClassHelper, .ClassNode, .FieldNode, .MethodNode, .Parameter, .PropertyNode, org.codehaus.groovy.ast.expr.AttributeExpression, .BinaryExpression, .ConstructorCallExpression, .Expression, .LambdaExpression, .MethodCallExpression, .MethodReferenceExpression, .PropertyExpression, .VariableExpression, org.codehaus.groovy.ast.stmt.EmptyStatement, .ForStatement, org.codehaus.groovy.ast.tools.WideningCategories, org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher, .BytecodeHelper, .CompileStack, .OperandStack, .VariableSlotLoader, .WriterController, org.codehaus.groovy.syntax.Token, .TokenUtil, org.objectweb.asm.Label, .MethodVisitor, .Opcodes, java.lang.reflect.Modifier, java.util.Map, .Objects, java.util.concurrent.atomic.AtomicInteger

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

Modifier and TypeField and Description
private static final MethodNode
private final AtomicInteger
Inherited from org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher:
binExpWritertypeMaptypeMapKeyNames

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected void
assignToArray(final Expression enclosing, final Expression receiver, final Expression subscript, final Expression rhsValueLoader, final boolean safe)

Overrides org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.assignToArray.

protected void
public void
private boolean
makeSetPrivateFieldWithBridgeMethod(final Expression receiver, final ClassNode receiverType, final String fieldName, final Expression arguments, final boolean safe, final boolean spreadSafe, final boolean implicitThis)

private boolean
makeSetProperty(final Expression receiver, final Expression message, final Expression arguments, final boolean safe, final boolean spreadSafe, final boolean implicitThis, final boolean isAttribute)

private void
private static void
visitInsnByType(final ClassNode top, final MethodVisitor mv, final int iInsn, final int lInsn, final int fInsn, final int dInsn)

protected void
Inherited from org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher:
doPrimitiveComparedoPrimtiveCompareevaluateBinaryExpressionevaluateCompareExpressiongetOperandTypeinitializeDelegateHelpers

Field Detail

CLOSURE_GETTHISOBJECT_METHODback to summary
private static final MethodNode CLOSURE_GETTHISOBJECT_METHOD
labelCounterback to summary
private final AtomicInteger labelCounter

Constructor Detail

StaticTypesBinaryExpressionMultiTypeDispatcherback to summary
public StaticTypesBinaryExpressionMultiTypeDispatcher(final WriterController wc)

Method Detail

assignToArrayback to summary
protected void assignToArray(final Expression enclosing, final Expression receiver, final Expression subscript, final Expression rhsValueLoader, final boolean safe)

Overrides org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.assignToArray.

Annotations
@Override
evaluateBinaryExpressionWithAssignmentback to summary
protected void evaluateBinaryExpressionWithAssignment(final String method, final BinaryExpression expression)

Overrides org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.evaluateBinaryExpressionWithAssignment.

Annotations
@Override
evaluateEqualback to summary
public void evaluateEqual(final BinaryExpression expression, final boolean defineVariable)

Overrides org.codehaus.groovy.classgen.asm.BinaryExpressionHelper.evaluateEqual.

Annotations
@Override
makeSetPrivateFieldWithBridgeMethodback to summary
private boolean makeSetPrivateFieldWithBridgeMethod(final Expression receiver, final ClassNode receiverType, final String fieldName, final Expression arguments, final boolean safe, final boolean spreadSafe, final boolean implicitThis)
makeSetPropertyback to summary
private boolean makeSetProperty(final Expression receiver, final Expression message, final Expression arguments, final boolean safe, final boolean spreadSafe, final boolean implicitThis, final boolean isAttribute)
transformSpreadOnLHSback to summary
private void transformSpreadOnLHS(final BinaryExpression expression)
visitInsnByTypeback to summary
private static void visitInsnByType(final ClassNode top, final MethodVisitor mv, final int iInsn, final int lInsn, final int fInsn, final int dInsn)
writePostOrPrefixMethodback to summary
protected void writePostOrPrefixMethod(final int op, final String method, final Expression expression, final Expression orig)

Overrides org.codehaus.groovy.classgen.asm.BinaryExpressionMultiTypeDispatcher.writePostOrPrefixMethod.

Annotations
@Override