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

public Class StaticInvocationWriter

extends InvocationWriter
Class Inheritance
Imports
org.codehaus.groovy.ast.ClassHelper, .ClassNode, .ConstructorNode, .EnumConstantClassNode, .FieldNode, .GroovyCodeVisitor, .InnerClassNode, .MethodNode, .Parameter, org.codehaus.groovy.ast.decompiled.DecompiledClassNode, org.codehaus.groovy.ast.expr.ArgumentListExpression, .ArrayExpression, .AttributeExpression, .ClassExpression, .ConstantExpression, .ConstructorCallExpression, .Expression, .ExpressionTransformer, .MethodCallExpression, .PropertyExpression, .TupleExpression, .VariableExpression, org.codehaus.groovy.ast.stmt.ForStatement, org.codehaus.groovy.classgen.AsmClassGenerator, .Verifier, org.codehaus.groovy.classgen.asm.BytecodeHelper, .CallSiteWriter, .CompileStack, .ExpressionAsVariableSlot, .InvocationWriter, .MethodCallerMultiAdapter, .OperandStack, .TypeChooser, .VariableSlotLoader, .WriterController, org.codehaus.groovy.runtime.InvokerHelper, org.codehaus.groovy.syntax.SyntaxException, org.codehaus.groovy.transform.sc.StaticCompilationMetadataKeys, .StaticCompilationVisitor, .TemporaryVariableExpression, org.codehaus.groovy.transform.stc.ExtensionMethodNode, .StaticTypeCheckingSupport, .StaticTypeCheckingVisitor, .StaticTypesMarker, org.objectweb.asm.Label, .MethodVisitor, java.util.ArrayList, .Arrays, .List, .Map, java.util.concurrent.atomic.AtomicInteger, java.util.stream.Collectors

Nested and Inner Type Summary

Modifier and TypeClass and Description
private class

Field Summary

Modifier and TypeField and Description
private MethodCallExpression
private static final ClassNode
private static final MethodNode
private static final MethodNode
private final AtomicInteger
Inherited from org.codehaus.groovy.classgen.asm.InvocationWriter:
castToVargsArraycontrollerinvokeClosureMethodinvokeMethodinvokeMethodOnCurrentinvokeMethodOnSuperinvokeStaticMethod

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private void
checkAndAddCannotCallPrivateMethodError(final MethodNode target, final Expression receiver, final ClassNode classNode, final ClassNode declaringClass)

public MethodCallExpression
private static Expression
private static boolean
isCompatibleArgumentType(final ClassNode argumentType, final ClassNode parameterType)

protected static boolean
protected void
protected boolean
makeCachedCall(final Expression origin, final ClassExpression sender, final Expression receiver, final Expression message, final Expression arguments, final MethodCallerMultiAdapter adapter, final boolean safe, final boolean spreadSafe, final boolean implicitThis, final boolean containsSpreadExpression)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall.

public void
makeCall(final Expression origin, final Expression receiver, final Expression message, final Expression arguments, final MethodCallerMultiAdapter adapter, final boolean safe, final boolean spreadSafe, final boolean implicitThis)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall.

protected boolean
makeDirectCall(final Expression origin, final Expression receiver, final Expression message, final Expression arguments, final MethodCallerMultiAdapter adapter, final boolean implicitThis, final boolean containsSpreadExpression)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.makeDirectCall.

protected boolean
tryBridgeMethod(final MethodNode target, final Expression receiver, final boolean implicitThis, final TupleExpression args)

Deprecated
Attempts to make a direct method call on a bridge method, if it exists.
protected boolean
tryBridgeMethod(final MethodNode target, final Expression receiver, final boolean implicitThis, final TupleExpression args, final ClassNode thisClass)

Attempts to make a direct method call on a bridge method, if it exists.

private boolean
tryImplicitReceiver(final Expression origin, final Expression message, final Expression arguments, final MethodCallerMultiAdapter adapter, final boolean safe, final boolean spreadSafe)

private boolean
tryPrivateMethod(final MethodNode target, final boolean implicitThis, final Expression receiver, final TupleExpression args, final ClassNode classNode)

private void
visitArgument(final Expression argumentExpr, final ClassNode parameterType)

protected boolean
writeDirectMethodCall(final MethodNode target, final boolean implicitThis, final Expression receiver, final TupleExpression args)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.writeDirectMethodCall.

public void
public void
public void
Inherited from org.codehaus.groovy.classgen.asm.InvocationWriter:
castNonPrimitiveToBoolcastToNonPrimitiveIfNecessarycoercefinnishConstructorCallgetMethodNamemakeArgumentListmakeCallmakeClassForNameCallmakeSingleArgumentCallmakeSingleArgumentCallmakeUncachedCallprepareConstructorCallwriteAICCallwriteInvokeStaticMethodwriteNormalConstructorCall

Field Detail

currentCallback to summary
private MethodCallExpression currentCall
INVOKERHELPER_CLASSNODEback to summary
private static final ClassNode INVOKERHELPER_CLASSNODE
INVOKERHELPER_INVOKEMETHODback to summary
private static final MethodNode INVOKERHELPER_INVOKEMETHOD
INVOKERHELPER_INVOKESTATICMETHODback to summary
private static final MethodNode INVOKERHELPER_INVOKESTATICMETHOD
labelCounterback to summary
private final AtomicInteger labelCounter

Constructor Detail

StaticInvocationWriterback to summary
public StaticInvocationWriter(final WriterController wc)

Method Detail

checkAndAddCannotCallPrivateMethodErrorback to summary
private void checkAndAddCannotCallPrivateMethodError(final MethodNode target, final Expression receiver, final ClassNode classNode, final ClassNode declaringClass)
getCurrentCallback to summary
public MethodCallExpression getCurrentCall()
getInitialExpressionback to summary
private static Expression getInitialExpression(final Parameter parameter)
isCompatibleArgumentTypeback to summary
private static boolean isCompatibleArgumentType(final ClassNode argumentType, final ClassNode parameterType)
isPrivateBridgeMethodsCallAllowedback to summary
protected static boolean isPrivateBridgeMethodsCallAllowed(final ClassNode receiver, final ClassNode caller)
loadArgumentsback to summary
protected void loadArguments(final List<Expression> argumentList, final Parameter[] parameters)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.loadArguments.

Annotations
@Override
makeCachedCallback to summary
protected boolean makeCachedCall(final Expression origin, final ClassExpression sender, final Expression receiver, final Expression message, final Expression arguments, final MethodCallerMultiAdapter adapter, final boolean safe, final boolean spreadSafe, final boolean implicitThis, final boolean containsSpreadExpression)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall.

Annotations
@Override
makeCallback to summary
public void makeCall(final Expression origin, final Expression receiver, final Expression message, final Expression arguments, final MethodCallerMultiAdapter adapter, final boolean safe, final boolean spreadSafe, final boolean implicitThis)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall.

Annotations
@Override
makeDirectCallback to summary
protected boolean makeDirectCall(final Expression origin, final Expression receiver, final Expression message, final Expression arguments, final MethodCallerMultiAdapter adapter, final boolean implicitThis, final boolean containsSpreadExpression)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.makeDirectCall.

Annotations
@Override
tryBridgeMethodback to summary
protected boolean tryBridgeMethod(final MethodNode target, final Expression receiver, final boolean implicitThis, final TupleExpression args)

Deprecated

Attempts to make a direct method call on a bridge method, if it exists.

Annotations
@Deprecated
tryBridgeMethodback to summary
protected boolean tryBridgeMethod(final MethodNode target, final Expression receiver, final boolean implicitThis, final TupleExpression args, final ClassNode thisClass)

Attempts to make a direct method call on a bridge method, if it exists.

tryImplicitReceiverback to summary
private boolean tryImplicitReceiver(final Expression origin, final Expression message, final Expression arguments, final MethodCallerMultiAdapter adapter, final boolean safe, final boolean spreadSafe)
tryPrivateMethodback to summary
private boolean tryPrivateMethod(final MethodNode target, final boolean implicitThis, final Expression receiver, final TupleExpression args, final ClassNode classNode)
visitArgumentback to summary
private void visitArgument(final Expression argumentExpr, final ClassNode parameterType)
writeDirectMethodCallback to summary
protected boolean writeDirectMethodCall(final MethodNode target, final boolean implicitThis, final Expression receiver, final TupleExpression args)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.writeDirectMethodCall.

Annotations
@Override
writeInvokeConstructorback to summary
public void writeInvokeConstructor(final ConstructorCallExpression call)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeConstructor.

Annotations
@Override
writeInvokeMethodback to summary
public void writeInvokeMethod(final MethodCallExpression call)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod.

Annotations
@Override
writeSpecialConstructorCallback to summary
public void writeSpecialConstructorCall(final ConstructorCallExpression call)

Overrides org.codehaus.groovy.classgen.asm.InvocationWriter.writeSpecialConstructorCall.

Annotations
@Override
org.codehaus.groovy.classgen.asm.sc back to summary

private Class StaticInvocationWriter.CheckcastReceiverExpression

extends Expression
Class Inheritance

Field Summary

Modifier and TypeField and Description
private final Expression
private final MethodNode
Inherited from org.codehaus.groovy.ast.expr.Expression:
EMPTY_ARRAY

Constructor Summary

AccessConstructor and Description
public
CheckcastReceiverExpression(final Expression receiver, final MethodNode target)

Method Summary

Modifier and TypeMethod and Description
public ClassNode
public Expression
transformExpression(final ExpressionTransformer transformer)

Implements abstract org.codehaus.groovy.ast.expr.Expression.transformExpression.

Return a copy of the expression calling the transformer on any nested expressions
public void
Inherited from org.codehaus.groovy.ast.expr.Expression:
setTypetransformExpressionstransformExpressions

Field Detail

receiverback to summary
private final Expression receiver
targetback to summary
private final MethodNode target

Constructor Detail

CheckcastReceiverExpressionback to summary
public CheckcastReceiverExpression(final Expression receiver, final MethodNode target)

Method Detail

getTypeback to summary
public ClassNode getType()

Overrides org.codehaus.groovy.ast.expr.Expression.getType.

Annotations
@Override
transformExpressionback to summary
public Expression transformExpression(final ExpressionTransformer transformer)

Implements abstract org.codehaus.groovy.ast.expr.Expression.transformExpression.

Doc from org.codehaus.groovy.ast.expr.Expression.transformExpression.

Return a copy of the expression calling the transformer on any nested expressions

Annotations
@Override
visitback to summary
public void visit(final GroovyCodeVisitor visitor)

Overrides org.codehaus.groovy.ast.ASTNode.visit.

Annotations
@Override