public class CastExpression extends AbstractExpression implements BoxingProcessor
Modifier and Type | Field and Description |
---|---|
private Expression |
child |
private boolean |
forced |
Constructor and Description |
---|
CastExpression(BytecodeLoc loc,
InferredJavaType knownType,
Expression child) |
CastExpression(BytecodeLoc loc,
InferredJavaType knownType,
Expression child,
boolean forced) |
addLoc, canPushDownInto, canThrow, dump, dumpWithOuterPrecedence, getInferredJavaType, getLoc, isSimple, isValidStatement, outerDeepClone, pushDown, toString, visit
private Expression child
private boolean forced
public CastExpression(BytecodeLoc loc, InferredJavaType knownType, Expression child)
public CastExpression(BytecodeLoc loc, InferredJavaType knownType, Expression child, boolean forced)
public boolean isForced()
public BytecodeLoc getCombinedLoc()
getCombinedLoc
in interface HasByteCodeLoc
public Expression deepClone(CloneHelper cloneHelper)
deepClone
in interface DeepCloneable<Expression>
public Literal getComputedLiteral(java.util.Map<LValue,Literal> display)
getComputedLiteral
in interface Expression
getComputedLiteral
in class AbstractExpression
public boolean couldBeImplicit(GenericTypeBinder gtb)
private boolean couldBeImplicit(JavaTypeInstance tgtType, GenericTypeBinder gtb)
public void collectTypeUsages(TypeUsageCollector collector)
collectTypeUsages
in interface TypeUsageCollectable
collectTypeUsages
in class AbstractExpression
public Precedence getPrecedence()
getPrecedence
in interface DumpableWithPrecedence
getPrecedence
in class AbstractExpression
public Dumper dumpInner(Dumper d)
dumpInner
in class AbstractExpression
public Expression replaceSingleUsageLValues(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer)
replaceSingleUsageLValues
in interface Expression
public Expression applyExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
applyExpressionRewriter
in interface Expression
public Expression applyReverseExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
applyReverseExpressionRewriter
in interface Expression
public void collectUsedLValues(LValueUsageCollector lValueUsageCollector)
collectUsedLValues
in interface Expression
public Expression getChild()
public boolean equals(java.lang.Object o)
equals
in class AbstractExpression
public boolean rewriteBoxing(PrimitiveBoxingRewriter boxingRewriter)
rewriteBoxing
in interface BoxingProcessor
public void applyNonArgExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
applyNonArgExpressionRewriter
in interface BoxingProcessor
public boolean equivalentUnder(java.lang.Object o, EquivalenceConstraint constraint)
equivalentUnder
in interface Expression
equivalentUnder
in interface ComparableUnderEC
public static Expression removeImplicit(Expression e)
public static Expression removeImplicitOuterType(Expression e, GenericTypeBinder gtb, boolean rawArg)
public static Expression tryRemoveCast(Expression e)