Class CastExpression
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.parse.expression.AbstractExpression
org.benf.cfr.reader.bytecode.analysis.parse.expression.CastExpression
- All Implemented Interfaces:
HasByteCodeLoc
,Expression
,BoxingProcessor
,DeepCloneable<Expression>
,ComparableUnderEC
,Dumpable
,DumpableWithPrecedence
,TypeUsageCollectable
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCastExpression
(BytecodeLoc loc, InferredJavaType knownType, Expression child) CastExpression
(BytecodeLoc loc, InferredJavaType knownType, Expression child, boolean forced) -
Method Summary
Modifier and TypeMethodDescriptionapplyExpressionRewriter
(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) boolean
private boolean
couldBeImplicit
(JavaTypeInstance tgtType, GenericTypeBinder gtb) deepClone
(CloneHelper cloneHelper) boolean
boolean
equivalentUnder
(Object o, EquivalenceConstraint constraint) getChild()
getComputedLiteral
(Map<LValue, Literal> display) boolean
isForced()
static Expression
static Expression
removeImplicitOuterType
(Expression e, GenericTypeBinder gtb, boolean rawArg) replaceSingleUsageLValues
(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer) boolean
rewriteBoxing
(PrimitiveBoxingRewriter boxingRewriter) static Expression
Methods inherited from class org.benf.cfr.reader.bytecode.analysis.parse.expression.AbstractExpression
addLoc, canPushDownInto, canThrow, dump, dumpWithOuterPrecedence, getInferredJavaType, getLoc, isSimple, isValidStatement, outerDeepClone, pushDown, toString, visit
-
Field Details
-
child
-
forced
private boolean forced
-
-
Constructor Details
-
CastExpression
-
CastExpression
public CastExpression(BytecodeLoc loc, InferredJavaType knownType, Expression child, boolean forced)
-
-
Method Details
-
isForced
public boolean isForced() -
getCombinedLoc
- Specified by:
getCombinedLoc
in interfaceHasByteCodeLoc
-
deepClone
- Specified by:
deepClone
in interfaceDeepCloneable<Expression>
-
getComputedLiteral
- Specified by:
getComputedLiteral
in interfaceExpression
- Overrides:
getComputedLiteral
in classAbstractExpression
-
couldBeImplicit
-
couldBeImplicit
-
collectTypeUsages
- Specified by:
collectTypeUsages
in interfaceTypeUsageCollectable
- Overrides:
collectTypeUsages
in classAbstractExpression
-
getPrecedence
- Specified by:
getPrecedence
in interfaceDumpableWithPrecedence
- Specified by:
getPrecedence
in classAbstractExpression
-
dumpInner
- Specified by:
dumpInner
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
-
collectUsedLValues
- Specified by:
collectUsedLValues
in interfaceExpression
-
getChild
-
equals
- Specified by:
equals
in classAbstractExpression
-
rewriteBoxing
- Specified by:
rewriteBoxing
in interfaceBoxingProcessor
-
applyNonArgExpressionRewriter
public void applyNonArgExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags) - Specified by:
applyNonArgExpressionRewriter
in interfaceBoxingProcessor
-
equivalentUnder
- Specified by:
equivalentUnder
in interfaceComparableUnderEC
- Specified by:
equivalentUnder
in interfaceExpression
-
removeImplicit
-
removeImplicitOuterType
public static Expression removeImplicitOuterType(Expression e, GenericTypeBinder gtb, boolean rawArg) -
tryRemoveCast
-