Class StaticFunctionInvokation
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.StaticFunctionInvokation
- All Implemented Interfaces:
HasByteCodeLoc
,Expression
,BoxingProcessor
,FunctionProcessor
,DeepCloneable<Expression>
,ComparableUnderEC
,Dumpable
,DumpableWithPrecedence
,TypeUsageCollectable
public class StaticFunctionInvokation
extends AbstractFunctionInvokation
implements FunctionProcessor, BoxingProcessor
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final List<Expression>
private final JavaTypeInstance
private List<JavaTypeInstance>
private Expression
-
Constructor Summary
ConstructorsModifierConstructorDescriptionStaticFunctionInvokation
(BytecodeLoc loc, ConstantPoolEntryMethodRef function, List<Expression> args) private
StaticFunctionInvokation
(BytecodeLoc loc, ConstantPoolEntryMethodRef function, List<Expression> args, Expression object) -
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) void
collectTypeUsages
(TypeUsageCollector collector) void
collectUsedLValues
(LValueUsageCollector lValueUsageCollector) deepClone
(CloneHelper cloneHelper) boolean
boolean
equivalentUnder
(Object o, EquivalenceConstraint constraint) void
forceObject
(Expression object) getArgs()
getClazz()
private static InferredJavaType
getTypeForFunction
(ConstantPoolEntryMethodRef function, List<Expression> args) 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, canThrow, dump, dumpWithOuterPrecedence, getComputedLiteral, getInferredJavaType, getLoc, isSimple, outerDeepClone, pushDown, toString, visit
-
Field Details
-
args
-
clazz
-
object
-
explicitGenerics
-
-
Constructor Details
-
StaticFunctionInvokation
private StaticFunctionInvokation(BytecodeLoc loc, ConstantPoolEntryMethodRef function, List<Expression> args, Expression object) -
StaticFunctionInvokation
public StaticFunctionInvokation(BytecodeLoc loc, ConstantPoolEntryMethodRef function, List<Expression> args)
-
-
Method Details
-
getTypeForFunction
private static InferredJavaType getTypeForFunction(ConstantPoolEntryMethodRef function, List<Expression> args) -
deepClone
- Specified by:
deepClone
in interfaceDeepCloneable<Expression>
-
getCombinedLoc
- Specified by:
getCombinedLoc
in interfaceHasByteCodeLoc
-
forceObject
-
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
-
getPrecedence
- Specified by:
getPrecedence
in interfaceDumpableWithPrecedence
- Specified by:
getPrecedence
in classAbstractExpression
-
dumpInner
- Specified by:
dumpInner
in classAbstractExpression
-
collectUsedLValues
- Specified by:
collectUsedLValues
in interfaceExpression
-
getClazz
-
getArgs
- Specified by:
getArgs
in classAbstractFunctionInvokation
-
rewriteVarArgs
- Specified by:
rewriteVarArgs
in interfaceFunctionProcessor
-
rewriteBoxing
- Specified by:
rewriteBoxing
in interfaceBoxingProcessor
-
applyNonArgExpressionRewriter
public void applyNonArgExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
applyNonArgExpressionRewriter
in interfaceBoxingProcessor
-
equals
- Specified by:
equals
in classAbstractExpression
-
equivalentUnder
- Specified by:
equivalentUnder
in interfaceComparableUnderEC
- Specified by:
equivalentUnder
in interfaceExpression
-