Class Invoke
java.lang.Object
org.jfuncmachine.compiler.model.SourceElement
org.jfuncmachine.compiler.model.expr.Expression
org.jfuncmachine.compiler.model.expr.Invoke
An expression to invoke a method reference
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal Expression[]The method argument valuesfinal StringThe name of the interface method representing this methodfinal Type[]The method parameter typesfinal TypeThe method return typefinal ExpressionThe object to invoke the method onfinal TypeThe type of the method referenceFields inherited from class org.jfuncmachine.compiler.model.SourceElement
filename, lineNumber -
Constructor Summary
ConstructorsConstructorDescriptionInvoke(String intMethod, Type targetType, Type[] parameterTypes, Type returnType, Expression target, Expression[] arguments) Create a method reference invocationInvoke(String intMethod, Type targetType, Type[] parameterTypes, Type returnType, Expression target, Expression[] arguments, String filename, int lineNumber) Create a method reference invocationInvoke(Expression target, Expression[] arguments) Create a method reference invocationInvoke(Expression target, Expression[] arguments, String filename, int lineNumber) Create a method reference invocationInvoke(FunctionType targetType, Expression target, Expression[] arguments) Create a method reference invocationInvoke(FunctionType targetType, Expression target, Expression[] arguments, String filename, int lineNumber) Create a method reference invocation -
Method Summary
Modifier and TypeMethodDescriptionconvertToFullTailCalls(boolean inTailPosition) Converts this expression to one that is compatible with full tail call optimizationvoidfindCaptured(Environment env) Search for local variables that would be captured by a lambda.voidgenerate(ClassGenerator generator, Environment env, boolean inTailPosition) Generate the bytecode for this expressiongetType()Get the type returned by this expressionvoidreset()Resets any labels in expressions so that the method can be regeneratedMethods inherited from class org.jfuncmachine.compiler.model.SourceElement
generateException
-
Field Details
-
targetType
The type of the method reference -
intMethod
The name of the interface method representing this method -
target
The object to invoke the method on -
arguments
The method argument values -
parameterTypes
The method parameter types -
returnType
The method return type
-
-
Constructor Details
-
Invoke
Create a method reference invocation- Parameters:
targetType- The type of the method referencetarget- The interface method that represents this methodarguments- The method arguments
-
Invoke
public Invoke(FunctionType targetType, Expression target, Expression[] arguments, String filename, int lineNumber) Create a method reference invocation- Parameters:
targetType- The type of the method referencetarget- The interface method that represents this methodarguments- The method argumentsfilename- The source filename this expression is associated withlineNumber- The source line number this expression is associated with
-
Invoke
Create a method reference invocation- Parameters:
target- The interface method that represents this methodarguments- The method arguments
-
Invoke
Create a method reference invocation- Parameters:
target- The interface method that represents this methodarguments- The method argumentsfilename- The source filename this expression is associated withlineNumber- The source line number this expression is associated with
-
Invoke
public Invoke(String intMethod, Type targetType, Type[] parameterTypes, Type returnType, Expression target, Expression[] arguments) Create a method reference invocation- Parameters:
intMethod- The name of the interface methodtargetType- The type of the method referenceparameterTypes- The method parameter typesreturnType- The method return typetarget- The interface method that represents this methodarguments- The method arguments
-
Invoke
public Invoke(String intMethod, Type targetType, Type[] parameterTypes, Type returnType, Expression target, Expression[] arguments, String filename, int lineNumber) Create a method reference invocation- Parameters:
intMethod- The name of the interface methodtargetType- The type of the method referenceparameterTypes- The method parameter typesreturnType- The method return typetarget- The interface method that represents this methodarguments- The method argumentsfilename- The source filename this expression is associated withlineNumber- The source line number this expression is associated with
-
-
Method Details
-
getType
Description copied from class:ExpressionGet the type returned by this expression- Specified by:
getTypein classExpression- Returns:
- The type of this expression
-
reset
public void reset()Description copied from class:ExpressionResets any labels in expressions so that the method can be regenerated- Overrides:
resetin classExpression
-
findCaptured
Description copied from class:ExpressionSearch for local variables that would be captured by a lambda. Each expression has its own implementation of this, because each subexpression must be searched.- Specified by:
findCapturedin classExpression- Parameters:
env- The environment chain to search
-
convertToFullTailCalls
Description copied from class:ExpressionConverts this expression to one that is compatible with full tail call optimization- Specified by:
convertToFullTailCallsin classExpression- Parameters:
inTailPosition- True if this expression is called from the tail position- Returns:
- A version of this expression whose types are compatible with full tail call optimization
-
generate
Description copied from class:ExpressionGenerate the bytecode for this expression- Specified by:
generatein classExpression- Parameters:
generator- The generator for generating instructions and additional declarationsenv- The environment containing the local variables currently visible to this expressioninTailPosition- True if this expression is being generated from the tail position of the method
-