internal EnterFlowNode(FlowGraph graph, FlowNodeId id, FlowNodeFlags flags, IEnumerable <FlowVariable> parameters) : base(graph, id, flags) { Contract.Requires(parameters != null); this.Parameters = parameters.ToImmutableArray(); }
internal InnerFlowNode(FlowGraph graph, FlowNodeId id, FlowNodeFlags flags, IEnumerable <Operation> operations) : base(graph, id, flags) { Contract.Requires(operations != null); this.Operations = operations.ToImmutableArray(); }
internal ReturnFlowNode(FlowGraph graph, FlowNodeId id, FlowNodeFlags flags, IEnumerable <Expression> returnValues) : base(graph, id, flags) { Contract.Requires(returnValues != null); this.ReturnValues = returnValues.ToImmutableArray(); }
internal ThrowExceptionFlowNode( FlowGraph graph, FlowNodeId id, FlowNodeFlags flags, IRoutineLocation constructorLocation, IEnumerable <Expression> arguments) : base(graph, id, flags) { Contract.Requires(constructorLocation != null); Contract.Requires(arguments != null); this.ConstructorLocation = constructorLocation; this.Arguments = arguments.ToImmutableArray(); }
internal CallFlowNode( FlowGraph graph, FlowNodeId id, FlowNodeFlags flags, IRoutineLocation location, IEnumerable <Expression> arguments, IEnumerable <FlowVariable> returnAssignments, CallKind kind) : base(graph, id, flags) { Contract.Requires(location != null); Contract.Requires(arguments != null); Contract.Requires(returnAssignments != null); Contract.Requires( kind != CallKind.ObjectCreation || VerifyConstructorUsage(location, returnAssignments), nameof(kind)); this.Location = location; this.Arguments = arguments.ToImmutableArray(); this.ReturnAssignments = returnAssignments.ToImmutableArray(); this.Kind = kind; }
public FlowNode this[FlowNodeId nodeId] { get { return(this.Nodes[nodeId.Value]); } }