Class RetroLambdaRewriter
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.parse.rewriters.AbstractExpressionRewriter
-
- org.benf.cfr.reader.bytecode.analysis.opgraph.op4rewriters.RetroLambdaRewriter
-
- All Implemented Interfaces:
ExpressionRewriter
public class RetroLambdaRewriter extends AbstractExpressionRewriter
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringgetLambdaNameprivate static java.lang.StringlambdaFactoryLabelprivate ClassFilemainClazzprivate DCCommonStatestate
-
Constructor Summary
Constructors Constructor Description RetroLambdaRewriter(DCCommonState state, ClassFile mainClazz)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private StaticFunctionInvokationcheck3(Method method)private ExpressionconsiderCandidateInvokation(StaticFunctionInvokation sf)private ExpressiongetFullLambdaBody(Method mainLambdaIndirect)private MethodgetMainLambdaIndirect(StaticFunctionInvokation m2callReal)static voidrewrite(ClassFile classFile, DCCommonState state)private static voidrewrite(Method m, ClassFile classFile, DCCommonState state)ExpressionrewriteExpression(Expression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.rewriters.AbstractExpressionRewriter
handleStatement, rewriteExpression, rewriteExpression, rewriteExpression
-
-
-
-
Field Detail
-
state
private final DCCommonState state
-
mainClazz
private final ClassFile mainClazz
-
lambdaFactoryLabel
private static final java.lang.String lambdaFactoryLabel
- See Also:
- Constant Field Values
-
getLambdaName
private static final java.lang.String getLambdaName
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
RetroLambdaRewriter
public RetroLambdaRewriter(DCCommonState state, ClassFile mainClazz)
-
-
Method Detail
-
rewrite
public static void rewrite(ClassFile classFile, DCCommonState state)
-
rewrite
private static void rewrite(Method m, ClassFile classFile, DCCommonState state)
-
rewriteExpression
public Expression rewriteExpression(Expression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
- Specified by:
rewriteExpressionin interfaceExpressionRewriter- Overrides:
rewriteExpressionin classAbstractExpressionRewriter
-
considerCandidateInvokation
private Expression considerCandidateInvokation(StaticFunctionInvokation sf)
-
check3
private StaticFunctionInvokation check3(Method method)
-
getFullLambdaBody
private Expression getFullLambdaBody(Method mainLambdaIndirect)
-
getMainLambdaIndirect
private Method getMainLambdaIndirect(StaticFunctionInvokation m2callReal)
-
-