public class ObjectTypeUsageRewriter extends AbstractExpressionRewriter implements StructuredStatementTransformer
Modifier and Type | Field and Description |
---|---|
private boolean |
canHaveVar |
private java.util.Map<InferredJavaType,java.lang.Boolean> |
isAnonVar |
Constructor and Description |
---|
ObjectTypeUsageRewriter(AnonymousClassUsage anonymousClassUsage,
ClassFile classFile) |
Modifier and Type | Method and Description |
---|---|
private LValue |
handleFieldVariable(FieldVariable fieldVariable) |
private Expression |
handleMemberFunction(MemberFunctionInvokation funcInv) |
private void |
markLocalVar(Expression object) |
private boolean |
needsReWrite(Expression lhsObject,
JavaTypeInstance owningClassType,
UnaryFunction<ClassFile,java.lang.Boolean> checkVisible) |
Expression |
rewriteExpression(Expression expression,
SSAIdentifiers ssaIdentifiers,
StatementContainer statementContainer,
ExpressionRewriterFlags flags) |
LValue |
rewriteExpression(LValue lValue,
SSAIdentifiers ssaIdentifiers,
StatementContainer statementContainer,
ExpressionRewriterFlags flags) |
void |
transform(Op04StructuredStatement root) |
StructuredStatement |
transform(StructuredStatement in,
StructuredScope scope) |
handleStatement, rewriteExpression, rewriteExpression
private final java.util.Map<InferredJavaType,java.lang.Boolean> isAnonVar
private boolean canHaveVar
public ObjectTypeUsageRewriter(AnonymousClassUsage anonymousClassUsage, ClassFile classFile)
public void transform(Op04StructuredStatement root)
public StructuredStatement transform(StructuredStatement in, StructuredScope scope)
transform
in interface StructuredStatementTransformer
public Expression rewriteExpression(Expression expression, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
rewriteExpression
in interface ExpressionRewriter
rewriteExpression
in class AbstractExpressionRewriter
public LValue rewriteExpression(LValue lValue, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
rewriteExpression
in interface ExpressionRewriter
rewriteExpression
in class AbstractExpressionRewriter
private boolean needsReWrite(Expression lhsObject, JavaTypeInstance owningClassType, UnaryFunction<ClassFile,java.lang.Boolean> checkVisible)
private Expression handleMemberFunction(MemberFunctionInvokation funcInv)
private LValue handleFieldVariable(FieldVariable fieldVariable)
private void markLocalVar(Expression object)