Class LambdaRewriter
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.opgraph.op4rewriters.LambdaRewriter
- All Implemented Interfaces:
Op04Rewriter, ExpressionRewriter
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Methodprivate final LinkedList<Expression> private final DCCommonStateprivate final ClassFileprivate final JavaTypeInstance -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidcouldBeAmbiguous(Expression fn, Expression arg, LambdaExpression res) private List<JavaTypeInstance> getExplicitLambdaTypes(JavaTypeInstance functionArgType) private static ExpressionvoidhandleStatement(StatementContainer statementContainer) private static booleanisNewArrayLambda(Expression e, List<Expression> curriedArgs, List<LValue> anonymousLambdaArgs) voidprivate ExpressionrewriteDynamicExpression(DynamicInvokation dynamicExpression) private ExpressionrewriteDynamicExpression(DynamicInvokation dynamicExpression, StaticFunctionInvokation functionInvokation, List<Expression> curriedArgs) rewriteExpression(ConditionalExpression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) rewriteExpression(Expression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) rewriteExpression(StackSSALabel lValue, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) rewriteExpression(LValue lValue, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
-
Field Details
-
state
-
thisClassFile
-
typeInstance
-
method
-
processingStack
-
-
Constructor Details
-
LambdaRewriter
-
-
Method Details
-
rewrite
- Specified by:
rewritein interfaceOp04Rewriter
-
handleStatement
- Specified by:
handleStatementin interfaceExpressionRewriter
-
rewriteExpression
public Expression rewriteExpression(Expression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
rewriteExpressionin interfaceExpressionRewriter
-
rewriteExpression
public ConditionalExpression rewriteExpression(ConditionalExpression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
rewriteExpressionin interfaceExpressionRewriter
-
rewriteExpression
public LValue rewriteExpression(LValue lValue, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
rewriteExpressionin interfaceExpressionRewriter
-
rewriteExpression
public StackSSALabel rewriteExpression(StackSSALabel lValue, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
rewriteExpressionin interfaceExpressionRewriter
-
rewriteDynamicExpression
-
couldBeAmbiguous
-
getExplicitLambdaTypes
-
getLambdaVariable
-
rewriteDynamicExpression
private Expression rewriteDynamicExpression(DynamicInvokation dynamicExpression, StaticFunctionInvokation functionInvokation, List<Expression> curriedArgs) -
isNewArrayLambda
private static boolean isNewArrayLambda(Expression e, List<Expression> curriedArgs, List<LValue> anonymousLambdaArgs)
-