Class AbstractMemberFunctionInvokation
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.parse.expression.AbstractExpression
org.benf.cfr.reader.bytecode.analysis.parse.expression.AbstractFunctionInvokation
org.benf.cfr.reader.bytecode.analysis.parse.expression.AbstractMemberFunctionInvokation
- All Implemented Interfaces:
HasByteCodeLoc
,Expression
,BoxingProcessor
,FunctionProcessor
,DeepCloneable<Expression>
,ComparableUnderEC
,Dumpable
,DumpableWithPrecedence
,TypeUsageCollectable
- Direct Known Subclasses:
MemberFunctionInvokation
,SuperFunctionInvokation
public abstract class AbstractMemberFunctionInvokation
extends AbstractFunctionInvokation
implements FunctionProcessor, BoxingProcessor
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final List<Expression>
private final ConstantPool
private Expression
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractMemberFunctionInvokation
(BytecodeLoc loc, ConstantPool cp, ConstantPoolEntryMethodRef function, Expression object, List<Expression> args, List<Boolean> nulls) AbstractMemberFunctionInvokation
(BytecodeLoc loc, ConstantPool cp, ConstantPoolEntryMethodRef function, Expression object, JavaTypeInstance bestType, List<Expression> args, List<Boolean> nulls) -
Method Summary
Modifier and TypeMethodDescriptionapplyExpressionRewriter
(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) void
applyExpressionRewriterToArgs
(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) void
applyNonArgExpressionRewriter
(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) applyReverseExpressionRewriter
(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) boolean
canThrow
(ExceptionCheck caught) void
collectTypeUsages
(TypeUsageCollector collector) void
collectUsedLValues
(LValueUsageCollector lValueUsageCollector) boolean
boolean
equivalentUnder
(Object o, EquivalenceConstraint constraint) getAppropriatelyCastArgument
(int idx) getArgs()
getCp()
getNulls()
private OverloadMethodSet
protected OverloadMethodSet
getOverloadMethodSetInner
(JavaTypeInstance objectType) private Expression
insertCastOrIgnore
(Expression arg, OverloadMethodSet overloadMethodSet, int x) private static boolean
isResolveNull
(Expression arg) replaceSingleUsageLValues
(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer) boolean
rewriteBoxing
(PrimitiveBoxingRewriter boxingRewriter) void
rewriteVarArgs
(VarArgsRewriter varArgsRewriter) void
setExplicitGenerics
(List<JavaTypeInstance> types) Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.expression.AbstractFunctionInvokation
getFixedName, getFunction, getMethodPrototype, getName, isValidStatement
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.expression.AbstractExpression
addLoc, canPushDownInto, dump, dumpInner, dumpWithOuterPrecedence, getComputedLiteral, getInferredJavaType, getLoc, getPrecedence, isSimple, outerDeepClone, pushDown, toString, visit
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.benf.cfr.reader.bytecode.analysis.parse.rewriters.DeepCloneable
deepClone
-
Field Details
-
cp
-
args
-
object
-
nulls
-
-
Constructor Details
-
AbstractMemberFunctionInvokation
AbstractMemberFunctionInvokation(BytecodeLoc loc, ConstantPool cp, ConstantPoolEntryMethodRef function, Expression object, JavaTypeInstance bestType, List<Expression> args, List<Boolean> nulls) -
AbstractMemberFunctionInvokation
AbstractMemberFunctionInvokation(BytecodeLoc loc, ConstantPool cp, ConstantPoolEntryMethodRef function, Expression object, List<Expression> args, List<Boolean> nulls)
-
-
Method Details
-
getCombinedLoc
- Specified by:
getCombinedLoc
in interfaceHasByteCodeLoc
-
collectTypeUsages
- Specified by:
collectTypeUsages
in interfaceTypeUsageCollectable
- Overrides:
collectTypeUsages
in classAbstractExpression
-
replaceSingleUsageLValues
public Expression replaceSingleUsageLValues(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer) - Specified by:
replaceSingleUsageLValues
in interfaceExpression
-
applyExpressionRewriter
public Expression applyExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
applyExpressionRewriter
in interfaceExpression
-
applyReverseExpressionRewriter
public Expression applyReverseExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
applyReverseExpressionRewriter
in interfaceExpression
-
applyExpressionRewriterToArgs
public void applyExpressionRewriterToArgs(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
applyExpressionRewriterToArgs
in classAbstractFunctionInvokation
-
setExplicitGenerics
- Specified by:
setExplicitGenerics
in classAbstractFunctionInvokation
-
getExplicitGenerics
- Specified by:
getExplicitGenerics
in classAbstractFunctionInvokation
-
getObject
-
getClassTypeInstance
-
getArgs
- Specified by:
getArgs
in classAbstractFunctionInvokation
-
getNulls
-
getAppropriatelyCastArgument
-
getCp
-
collectUsedLValues
- Specified by:
collectUsedLValues
in interfaceExpression
-
getOverloadMethodSet
-
getOverloadMethodSetInner
-
rewriteVarArgs
- Specified by:
rewriteVarArgs
in interfaceFunctionProcessor
-
insertCastOrIgnore
-
rewriteBoxing
- Specified by:
rewriteBoxing
in interfaceBoxingProcessor
-
isResolveNull
-
applyNonArgExpressionRewriter
public void applyNonArgExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
applyNonArgExpressionRewriter
in interfaceBoxingProcessor
-
canThrow
- Specified by:
canThrow
in interfaceExpression
- Overrides:
canThrow
in classAbstractExpression
-
equals
- Specified by:
equals
in classAbstractExpression
-
equivalentUnder
- Specified by:
equivalentUnder
in interfaceComparableUnderEC
- Specified by:
equivalentUnder
in interfaceExpression
-