// <summary> // Copies a constrained sort node // </summary> // <param name="op"> The Op to Copy </param> // <param name="n"> The Node that references the Op </param> // <returns> A copy of the original Node that references a copy of the original Op </returns> public override Node Visit(ConstrainedSortOp op, Node n) { // Visit the Node's children and map their Vars var children = ProcessChildren(n); // Copy the ConstrainedSortOp's SortKeys var newSortKeys = Copy(op.Keys); // Create a new ConstrainedSortOp that uses the copied SortKeys and the original Op's WithTies value var newSortOp = m_destCmd.CreateConstrainedSortOp(newSortKeys, op.WithTies); // Return a new Node that references the copied SortOp and has the copied child Nodes as its children return(m_destCmd.CreateNode(newSortOp, children)); }