public ControlFlowEdge(ControlFlowNode from, ControlFlowNode to, ControlFlowEdgeType type)
 {
     if (from == null)
         throw new ArgumentNullException("from");
     if (to == null)
         throw new ArgumentNullException("to");
     this.From = from;
     this.To = to;
     this.Type = type;
 }
 internal ControlFlowEdge Connect(ControlFlowNode from, ControlFlowNode to, ControlFlowEdgeType type = ControlFlowEdgeType.Normal)
 {
     if (from == null || to == null)
         return null;
     ControlFlowEdge edge = builder.CreateEdge(from, to, type);
     from.Outgoing.Add(edge);
     to.Incoming.Add(edge);
     return edge;
 }
 protected virtual ControlFlowEdge CreateEdge(ControlFlowNode from, ControlFlowNode to, ControlFlowEdgeType type)
 {
     cancellationToken.ThrowIfCancellationRequested();
     return new ControlFlowEdge(from, to, type);
 }