public class StructuredIf extends AbstractStructuredStatement implements CanRemovePointlessBlock
| Modifier and Type | Field and Description |
|---|---|
(package private) ConditionalExpression |
conditionalExpression |
(package private) Op04StructuredStatement |
elseBlock |
(package private) Op04StructuredStatement |
ifTaken |
| Constructor and Description |
|---|
StructuredIf(BytecodeLoc loc,
ConditionalExpression conditionalExpression,
Op04StructuredStatement ifTaken) |
StructuredIf(BytecodeLoc loc,
ConditionalExpression conditionalExpression,
Op04StructuredStatement ifTaken,
Op04StructuredStatement elseBlock) |
addLoc, alwaysDefines, canFall, claimBlock, findCreatedHere, getBreakableBlockOrNull, getContainer, getInline, getLoc, inlineable, isEffectivelyNOP, isProperlyStructured, setContainer, suggestName, supportsBreak, supportsContinueBreak, toString, transformStructuredChildrenInReverseConditionalExpression conditionalExpression
Op04StructuredStatement ifTaken
Op04StructuredStatement elseBlock
public StructuredIf(BytecodeLoc loc, ConditionalExpression conditionalExpression, Op04StructuredStatement ifTaken)
public StructuredIf(BytecodeLoc loc, ConditionalExpression conditionalExpression, Op04StructuredStatement ifTaken, Op04StructuredStatement elseBlock)
public void collectTypeUsages(TypeUsageCollector collector)
collectTypeUsages in interface TypeUsageCollectablepublic BytecodeLoc getCombinedLoc()
getCombinedLoc in interface HasByteCodeLocpublic boolean hasElseBlock()
public ConditionalExpression getConditionalExpression()
public Op04StructuredStatement getIfTaken()
public StructuredStatement informBlockHeirachy(java.util.Vector<BlockIdentifier> blockIdentifiers)
informBlockHeirachy in interface StructuredStatementinformBlockHeirachy in class AbstractStructuredStatementpublic boolean isScopeBlock()
isScopeBlock in interface StructuredStatementisScopeBlock in class AbstractStructuredStatementpublic void transformStructuredChildren(StructuredStatementTransformer transformer, StructuredScope scope)
transformStructuredChildren in interface StructuredStatementpublic void linearizeInto(java.util.List<StructuredStatement> out)
linearizeInto in interface StructuredStatementpublic void traceLocalVariableScope(LValueScopeDiscoverer scopeDiscoverer)
traceLocalVariableScope in interface StructuredStatementpublic boolean canDefine(LValue scopedEntity, ScopeDiscoverInfoCache factCache)
canDefine in interface StructuredStatementcanDefine in class AbstractStructuredStatementpublic void markCreator(LValue scopedEntity, StatementContainer<StructuredStatement> hint)
markCreator in interface StructuredStatementmarkCreator in class AbstractStructuredStatementpublic boolean isRecursivelyStructured()
isRecursivelyStructured in interface StructuredStatementisRecursivelyStructured in class AbstractStructuredStatementpublic boolean fallsNopToNext()
fallsNopToNext in interface StructuredStatementfallsNopToNext in class AbstractStructuredStatementpublic boolean match(MatchIterator<StructuredStatement> matchIterator, MatchResultCollector matchResultCollector)
match in interface Matcher<StructuredStatement>match in class AbstractStructuredStatementpublic void rewriteExpressions(ExpressionRewriter expressionRewriter)
rewriteExpressions in interface StructuredStatementpublic StructuredStatement convertToAssertion(StructuredAssert structuredAssert)
public void removePointlessBlocks(StructuredScope scope)
removePointlessBlocks in interface CanRemovePointlessBlock