internal BranchWithInfo With( IOperation?branchValue, ControlFlowConditionKind controlFlowConditionKind) { return(new BranchWithInfo(Destination, EnteringRegions, LeavingRegions, FinallyRegions, Kind, branchValue, controlFlowConditionKind, LeavingRegionLocals, LeavingRegionFlowCaptures)); }
public static ControlFlowConditionKind Negate(this ControlFlowConditionKind controlFlowConditionKind) { switch (controlFlowConditionKind) { case ControlFlowConditionKind.WhenFalse: return(ControlFlowConditionKind.WhenTrue); case ControlFlowConditionKind.WhenTrue: return(ControlFlowConditionKind.WhenFalse); default: Debug.Fail($"Unsupported conditional kind: '{controlFlowConditionKind}'"); return(controlFlowConditionKind); } }
internal BasicBlock( BasicBlockKind kind, ImmutableArray <IOperation> operations, IOperation branchValue, ControlFlowConditionKind conditionKind, int ordinal, bool isReachable, ControlFlowRegion region) { Kind = kind; Operations = operations; BranchValue = branchValue; ConditionKind = conditionKind; Ordinal = ordinal; IsReachable = isReachable; EnclosingRegion = region; }
private BranchWithInfo( BasicBlock destination, ImmutableArray <ControlFlowRegion> enteringRegions, ImmutableArray <ControlFlowRegion> leavingRegions, ImmutableArray <ControlFlowRegion> finallyRegions, ControlFlowBranchSemantics kind, IOperation?branchValue, ControlFlowConditionKind controlFlowConditionKind, IEnumerable <ILocalSymbol> leavingRegionLocals, IEnumerable <CaptureId> leavingRegionFlowCaptures) { Destination = destination; Kind = kind; EnteringRegions = enteringRegions; LeavingRegions = leavingRegions; FinallyRegions = finallyRegions; BranchValue = branchValue; ControlFlowConditionKind = controlFlowConditionKind; LeavingRegionLocals = leavingRegionLocals; LeavingRegionFlowCaptures = leavingRegionFlowCaptures; }