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
Fields Modifier and Type Field Description private java.util.List<Expression>
args
private ConstantPool
cp
private java.util.List<java.lang.Boolean>
nulls
private Expression
object
-
Constructor Summary
Constructors Constructor Description AbstractMemberFunctionInvokation(BytecodeLoc loc, ConstantPool cp, ConstantPoolEntryMethodRef function, Expression object, java.util.List<Expression> args, java.util.List<java.lang.Boolean> nulls)
AbstractMemberFunctionInvokation(BytecodeLoc loc, ConstantPool cp, ConstantPoolEntryMethodRef function, Expression object, JavaTypeInstance bestType, java.util.List<Expression> args, java.util.List<java.lang.Boolean> nulls)
-
Method Summary
-
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 Detail
-
cp
private final ConstantPool cp
-
args
private final java.util.List<Expression> args
-
object
private Expression object
-
nulls
private final java.util.List<java.lang.Boolean> nulls
-
-
Constructor Detail
-
AbstractMemberFunctionInvokation
AbstractMemberFunctionInvokation(BytecodeLoc loc, ConstantPool cp, ConstantPoolEntryMethodRef function, Expression object, JavaTypeInstance bestType, java.util.List<Expression> args, java.util.List<java.lang.Boolean> nulls)
-
AbstractMemberFunctionInvokation
AbstractMemberFunctionInvokation(BytecodeLoc loc, ConstantPool cp, ConstantPoolEntryMethodRef function, Expression object, java.util.List<Expression> args, java.util.List<java.lang.Boolean> nulls)
-
-
Method Detail
-
getCombinedLoc
public BytecodeLoc getCombinedLoc()
- Specified by:
getCombinedLoc
in interfaceHasByteCodeLoc
-
collectTypeUsages
public void collectTypeUsages(TypeUsageCollector collector)
- 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
public void setExplicitGenerics(java.util.List<JavaTypeInstance> types)
- Specified by:
setExplicitGenerics
in classAbstractFunctionInvokation
-
getExplicitGenerics
public java.util.List<JavaTypeInstance> getExplicitGenerics()
- Specified by:
getExplicitGenerics
in classAbstractFunctionInvokation
-
getObject
public Expression getObject()
-
getClassTypeInstance
public JavaTypeInstance getClassTypeInstance()
-
getArgs
public java.util.List<Expression> getArgs()
- Specified by:
getArgs
in classAbstractFunctionInvokation
-
getNulls
public java.util.List<java.lang.Boolean> getNulls()
-
getAppropriatelyCastArgument
public Expression getAppropriatelyCastArgument(int idx)
-
getCp
public ConstantPool getCp()
-
collectUsedLValues
public void collectUsedLValues(LValueUsageCollector lValueUsageCollector)
- Specified by:
collectUsedLValues
in interfaceExpression
-
getOverloadMethodSet
private OverloadMethodSet getOverloadMethodSet()
-
getOverloadMethodSetInner
protected OverloadMethodSet getOverloadMethodSetInner(JavaTypeInstance objectType)
-
rewriteVarArgs
public void rewriteVarArgs(VarArgsRewriter varArgsRewriter)
- Specified by:
rewriteVarArgs
in interfaceFunctionProcessor
-
insertCastOrIgnore
private Expression insertCastOrIgnore(Expression arg, OverloadMethodSet overloadMethodSet, int x)
-
rewriteBoxing
public boolean rewriteBoxing(PrimitiveBoxingRewriter boxingRewriter)
- Specified by:
rewriteBoxing
in interfaceBoxingProcessor
-
isResolveNull
private static boolean isResolveNull(Expression arg)
-
applyNonArgExpressionRewriter
public void applyNonArgExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
- Specified by:
applyNonArgExpressionRewriter
in interfaceBoxingProcessor
-
canThrow
public boolean canThrow(ExceptionCheck caught)
- Specified by:
canThrow
in interfaceExpression
- Overrides:
canThrow
in classAbstractExpression
-
equals
public boolean equals(java.lang.Object o)
- Specified by:
equals
in classAbstractExpression
-
equivalentUnder
public boolean equivalentUnder(java.lang.Object o, EquivalenceConstraint constraint)
- Specified by:
equivalentUnder
in interfaceComparableUnderEC
- Specified by:
equivalentUnder
in interfaceExpression
-
-