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

public Class StaticTypesMethodReferenceExpressionWriter

extends MethodReferenceExpressionWriter
implements AbstractFunctionalInterfaceWriter
Class Inheritance
All Implemented Interfaces
org.codehaus.groovy.classgen.asm.sc.AbstractFunctionalInterfaceWriter
Imports
org.codehaus.groovy.ast.ASTNode, .ClassHelper, .ClassNode, .GenericsType, .MethodNode, .Parameter, org.codehaus.groovy.ast.expr.ArgumentListExpression, .ArrayExpression, .ClassExpression, .Expression, .MethodCallExpression, .MethodReferenceExpression, org.codehaus.groovy.ast.tools.GeneralUtils, org.codehaus.groovy.classgen.asm.BytecodeHelper, .MethodReferenceExpressionWriter, .WriterController, org.codehaus.groovy.syntax.RuntimeParserException, org.codehaus.groovy.transform.sc.StaticCompilationMetadataKeys, org.codehaus.groovy.transform.stc.ExtensionMethodNode, .StaticTypesMarker, org.objectweb.asm.Handle, .Opcodes, java.util.Arrays, .Iterator, .List, .Map

Generates bytecode for method reference expressions in statically-compiled code.
Since
3.0.0

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private void
addFatalError(final String msg, final ASTNode node)

private MethodNode
addSyntheticMethod(final String methodName, final ClassNode returnType, final Expression returnValue, final Parameter[] parameters, final ClassNode[] exceptions)

private MethodNode
addSyntheticMethodForConstructorReference(final String methodName, final ClassNode returnType, final Parameter[] parametersWithExactType)

private MethodNode
private MethodNode
chooseMethodRefMethod(final List<MethodNode> methods, final Expression typeOrTargetRef, final ClassNode typeOrTargetRefType)

private Parameter[]
createParametersWithExactType(final MethodNode abstractMethod, final ClassNode[] inferredParamTypes)

private MethodNode
findMethodRefMethod(final String methodName, final Parameter[] samParameters, final Expression typeOrTargetRef, final ClassNode typeOrTargetRefType)

private List<MethodNode>
findVisibleMethods(final String name, final ClassNode type)

private static boolean
private static boolean
private static boolean
private static boolean
isTypeReferringInstanceMethod(final Expression typeOrTargetRef, final MethodNode mn)

private static Expression
makeClassTarget(final ClassNode target, final Expression source)

private static Parameter[]
removeFirstParameter(final Parameter[] parameters)

private void
validate(final MethodReferenceExpression methodReference, final ClassNode targetType, final String methodName, final MethodNode methodNode, final Parameter[] samParameters, final ClassNode samReturnType)

public void

Constructor Detail

StaticTypesMethodReferenceExpressionWriterback to summary
public StaticTypesMethodReferenceExpressionWriter(final WriterController controller)

Method Detail

addFatalErrorback to summary
private void addFatalError(final String msg, final ASTNode node)
addSyntheticMethodback to summary
private MethodNode addSyntheticMethod(final String methodName, final ClassNode returnType, final Expression returnValue, final Parameter[] parameters, final ClassNode[] exceptions)
addSyntheticMethodForConstructorReferenceback to summary
private MethodNode addSyntheticMethodForConstructorReference(final String methodName, final ClassNode returnType, final Parameter[] parametersWithExactType)
addSyntheticMethodForDGSMback to summary
private MethodNode addSyntheticMethodForDGSM(final MethodNode mn)
chooseMethodRefMethodback to summary
private MethodNode chooseMethodRefMethod(final List<MethodNode> methods, final Expression typeOrTargetRef, final ClassNode typeOrTargetRefType)
createParametersWithExactTypeback to summary
private Parameter[] createParametersWithExactType(final MethodNode abstractMethod, final ClassNode[] inferredParamTypes)
findMethodRefMethodback to summary
private MethodNode findMethodRefMethod(final String methodName, final Parameter[] samParameters, final Expression typeOrTargetRef, final ClassNode typeOrTargetRefType)
findVisibleMethodsback to summary
private List<MethodNode> findVisibleMethods(final String name, final ClassNode type)
isConstructorReferenceback to summary
private static boolean isConstructorReference(final String name)
isExtensionMethodback to summary
private static boolean isExtensionMethod(final MethodNode mn)
isStaticMethodback to summary
private static boolean isStaticMethod(final MethodNode mn)
isTypeReferringInstanceMethodback to summary
private static boolean isTypeReferringInstanceMethod(final Expression typeOrTargetRef, final MethodNode mn)
makeClassTargetback to summary
private static Expression makeClassTarget(final ClassNode target, final Expression source)
removeFirstParameterback to summary
private static Parameter[] removeFirstParameter(final Parameter[] parameters)
validateback to summary
private void validate(final MethodReferenceExpression methodReference, final ClassNode targetType, final String methodName, final MethodNode methodNode, final Parameter[] samParameters, final ClassNode samReturnType)
writeMethodReferenceExpressionback to summary
public void writeMethodReferenceExpression(final MethodReferenceExpression methodReferenceExpression)

Overrides org.codehaus.groovy.classgen.asm.MethodReferenceExpressionWriter.writeMethodReferenceExpression.

Annotations
@Override