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 classSyntheticAccessorRewriter.AccessorMatchCollectorprivate classSyntheticAccessorRewriter.FuncMatchCollectorprivate classSyntheticAccessorRewriter.VisibiliyDecreasingRewriter
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringASSIGNMENT1private static java.lang.StringMUTATION1private static java.lang.StringMUTATION2private static java.lang.StringMUTATION3private static java.lang.StringPOST_DECprivate static java.lang.StringPOST_INCprivate static java.lang.StringPRE_DECprivate static java.lang.StringPRE_INCprivate static java.lang.StringRETURN_LVALUEprivate static java.lang.StringSTA_FUN1private static java.lang.StringSTA_SUB1private DCCommonStatestateprivate static java.lang.StringSUPER_INVOKEprivate static java.lang.StringSUPER_RETINVOKEprivate JavaTypeInstancethisClassTypeprivate ExpressionRewritervisbilityRewriter
-
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:
rewritein interfaceOp04Rewriter
-
rewriteExpression
public Expression rewriteExpression(Expression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
- Specified by:
rewriteExpressionin interfaceExpressionRewriter- Overrides:
rewriteExpressionin classAbstractExpressionRewriter
-
rewriteExpression
public LValue rewriteExpression(LValue lValue, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
- Specified by:
rewriteExpressionin interfaceExpressionRewriter- Overrides:
rewriteExpressionin 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)
-
-