Class SyntheticOuterRefRewriter
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.opgraph.op4rewriters.SyntheticOuterRefRewriter
- All Implemented Interfaces:
ExpressionRewriter
We may have deep inner classes, with references to each other.
So
this.Inner2.this.Inner1.this
But this is illegal. So remove the outer one, leaving
this.Inner1.this (the LHS this is still illegal, but will be removed later).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
handleStatement
(StatementContainer statementContainer) 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)
-
Constructor Details
-
SyntheticOuterRefRewriter
public SyntheticOuterRefRewriter()
-
-
Method Details
-
handleStatement
- Specified by:
handleStatement
in interfaceExpressionRewriter
-
rewriteExpression
public Expression rewriteExpression(Expression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
rewriteExpression
in interfaceExpressionRewriter
-
rewriteExpression
public ConditionalExpression rewriteExpression(ConditionalExpression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
rewriteExpression
in interfaceExpressionRewriter
-
rewriteExpression
public LValue rewriteExpression(LValue lValue, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
rewriteExpression
in interfaceExpressionRewriter
-
rewriteExpression
public StackSSALabel rewriteExpression(StackSSALabel lValue, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
rewriteExpression
in interfaceExpressionRewriter
-