Class SyntheticAccessorRewriter
- java.lang.Object
-
- org.benf.cfr.reader.bytecode.analysis.parse.rewriters.AbstractExpressionRewriter
-
- org.benf.cfr.reader.bytecode.analysis.opgraph.op4rewriters.SyntheticAccessorRewriter
-
- All Implemented Interfaces:
Op04Rewriter
,ExpressionRewriter
public class SyntheticAccessorRewriter extends AbstractExpressionRewriter implements Op04Rewriter
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
SyntheticAccessorRewriter.AccessorMatchCollector
private class
SyntheticAccessorRewriter.FuncMatchCollector
private class
SyntheticAccessorRewriter.VisibiliyDecreasingRewriter
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
ASSIGNMENT1
private static java.lang.String
MUTATION1
private static java.lang.String
MUTATION2
private static java.lang.String
MUTATION3
private static java.lang.String
POST_DEC
private static java.lang.String
POST_INC
private static java.lang.String
PRE_DEC
private static java.lang.String
PRE_INC
private static java.lang.String
RETURN_LVALUE
private static java.lang.String
STA_FUN1
private static java.lang.String
STA_SUB1
private DCCommonState
state
private static java.lang.String
SUPER_INVOKE
private static java.lang.String
SUPER_RETINVOKE
private JavaTypeInstance
thisClassType
private ExpressionRewriter
visbilityRewriter
-
Constructor Summary
Constructors Constructor Description SyntheticAccessorRewriter(DCCommonState state, JavaTypeInstance thisClassType)
-
Method Summary
-
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.rewriters.AbstractExpressionRewriter
handleStatement, rewriteExpression, rewriteExpression
-
-
-
-
Field Detail
-
state
private final DCCommonState state
-
thisClassType
private final JavaTypeInstance thisClassType
-
visbilityRewriter
private final ExpressionRewriter visbilityRewriter
-
RETURN_LVALUE
private static final java.lang.String RETURN_LVALUE
- See Also:
- Constant Field Values
-
MUTATION1
private static final java.lang.String MUTATION1
- See Also:
- Constant Field Values
-
MUTATION2
private static final java.lang.String MUTATION2
- See Also:
- Constant Field Values
-
MUTATION3
private static final java.lang.String MUTATION3
- See Also:
- Constant Field Values
-
ASSIGNMENT1
private static final java.lang.String ASSIGNMENT1
- See Also:
- Constant Field Values
-
PRE_INC
private static final java.lang.String PRE_INC
- See Also:
- Constant Field Values
-
POST_INC
private static final java.lang.String POST_INC
- See Also:
- Constant Field Values
-
PRE_DEC
private static final java.lang.String PRE_DEC
- See Also:
- Constant Field Values
-
POST_DEC
private static final java.lang.String POST_DEC
- See Also:
- Constant Field Values
-
SUPER_INVOKE
private static final java.lang.String SUPER_INVOKE
- See Also:
- Constant Field Values
-
SUPER_RETINVOKE
private static final java.lang.String SUPER_RETINVOKE
- See Also:
- Constant Field Values
-
STA_SUB1
private static final java.lang.String STA_SUB1
- See Also:
- Constant Field Values
-
STA_FUN1
private static final java.lang.String STA_FUN1
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SyntheticAccessorRewriter
public SyntheticAccessorRewriter(DCCommonState state, JavaTypeInstance thisClassType)
-
-
Method Detail
-
rewrite
public void rewrite(Op04StructuredStatement root)
- Specified by:
rewrite
in interfaceOp04Rewriter
-
rewriteExpression
public Expression rewriteExpression(Expression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
- Specified by:
rewriteExpression
in interfaceExpressionRewriter
- Overrides:
rewriteExpression
in classAbstractExpressionRewriter
-
rewriteExpression
public LValue rewriteExpression(LValue lValue, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
- Specified by:
rewriteExpression
in interfaceExpressionRewriter
- Overrides:
rewriteExpression
in classAbstractExpressionRewriter
-
rewriteFunctionExpression
private Expression rewriteFunctionExpression(StaticFunctionInvokation functionInvokation)
-
validRelationship
private static boolean validRelationship(JavaTypeInstance type1, JavaTypeInstance type2)
-
rewriteFunctionExpression2
private Expression rewriteFunctionExpression2(StaticFunctionInvokation functionInvokation)
-
tryRewriteAccessor
private Expression tryRewriteAccessor(java.util.List<StructuredStatement> structuredStatements, JavaTypeInstance otherType, java.util.List<Expression> appliedArgs, java.util.List<LocalVariable> methodArgs)
-
tryRewriteFunctionCall
private Expression tryRewriteFunctionCall(java.util.List<StructuredStatement> structuredStatements, JavaTypeInstance otherType, java.util.List<Expression> appliedArgs, java.util.List<LocalVariable> methodArgs)
-
getCastFriendArg
private Expression getCastFriendArg(JavaTypeInstance otherType, LocalVariable methodArg, Expression appliedArg)
-
-