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 ConstantPoolprivate 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) voidapplyExpressionRewriterToArgs(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) voidapplyNonArgExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) applyReverseExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) booleancanThrow(ExceptionCheck caught) voidcollectTypeUsages(TypeUsageCollector collector) voidcollectUsedLValues(LValueUsageCollector lValueUsageCollector) booleanbooleanequivalentUnder(Object o, EquivalenceConstraint constraint) getAppropriatelyCastArgument(int idx) getArgs()getCp()getNulls()private OverloadMethodSetprotected OverloadMethodSetgetOverloadMethodSetInner(JavaTypeInstance objectType) private ExpressioninsertCastOrIgnore(Expression arg, OverloadMethodSet overloadMethodSet, int x) private static booleanisResolveNull(Expression arg) replaceSingleUsageLValues(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer) booleanrewriteBoxing(PrimitiveBoxingRewriter boxingRewriter) voidrewriteVarArgs(VarArgsRewriter varArgsRewriter) voidsetExplicitGenerics(List<JavaTypeInstance> types) Methods inherited from class AbstractFunctionInvokation
getFixedName, getFunction, getMethodPrototype, getName, isValidStatementMethods inherited from class AbstractExpression
addLoc, canPushDownInto, dump, dumpInner, dumpWithOuterPrecedence, getComputedLiteral, getInferredJavaType, getLoc, getPrecedence, isSimple, outerDeepClone, pushDown, toString, visitMethods inherited from class Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface 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:
getCombinedLocin interfaceHasByteCodeLoc
-
collectTypeUsages
- Specified by:
collectTypeUsagesin interfaceTypeUsageCollectable- Overrides:
collectTypeUsagesin classAbstractExpression
-
replaceSingleUsageLValues
public Expression replaceSingleUsageLValues(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer) - Specified by:
replaceSingleUsageLValuesin interfaceExpression
-
applyExpressionRewriter
public Expression applyExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
applyExpressionRewriterin interfaceExpression
-
applyReverseExpressionRewriter
public Expression applyReverseExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
applyReverseExpressionRewriterin interfaceExpression
-
applyExpressionRewriterToArgs
public void applyExpressionRewriterToArgs(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
applyExpressionRewriterToArgsin classAbstractFunctionInvokation
-
setExplicitGenerics
- Specified by:
setExplicitGenericsin classAbstractFunctionInvokation
-
getExplicitGenerics
- Specified by:
getExplicitGenericsin classAbstractFunctionInvokation
-
getObject
-
getClassTypeInstance
-
getArgs
- Specified by:
getArgsin classAbstractFunctionInvokation
-
getNulls
-
getAppropriatelyCastArgument
-
getCp
-
collectUsedLValues
- Specified by:
collectUsedLValuesin interfaceExpression
-
getOverloadMethodSet
-
getOverloadMethodSetInner
-
rewriteVarArgs
- Specified by:
rewriteVarArgsin interfaceFunctionProcessor
-
insertCastOrIgnore
-
rewriteBoxing
- Specified by:
rewriteBoxingin interfaceBoxingProcessor
-
isResolveNull
-
applyNonArgExpressionRewriter
public void applyNonArgExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
applyNonArgExpressionRewriterin interfaceBoxingProcessor
-
canThrow
- Specified by:
canThrowin interfaceExpression- Overrides:
canThrowin classAbstractExpression
-
equals
- Specified by:
equalsin classAbstractExpression
-
equivalentUnder
- Specified by:
equivalentUnderin interfaceComparableUnderEC- Specified by:
equivalentUnderin interfaceExpression
-