From d003414e6bb0466771f6dc96096e38edd4a6b5a8 Mon Sep 17 00:00:00 2001 From: Raynel Sanchez Date: Wed, 21 Aug 2024 09:52:39 -0400 Subject: [PATCH] Fix: leverage new methods in `layers` - Fix incorrect re-insertion of last_node. --- crates/circuit/src/dag_circuit.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/crates/circuit/src/dag_circuit.rs b/crates/circuit/src/dag_circuit.rs index 9de3ee6de1c6..a78501b00ed7 100644 --- a/crates/circuit/src/dag_circuit.rs +++ b/crates/circuit/src/dag_circuit.rs @@ -4288,9 +4288,7 @@ def _format(operand): let mut new_layer = self.copy_empty_like(py, vars_mode)?; - for (node, _) in op_nodes { - new_layer.push_back(py, node.clone())?; - } + new_layer.add_from_iter(py, op_nodes.iter().map(|(inst, _)| (*inst).clone()))?; let new_layer_op_nodes = new_layer.op_nodes(false).filter_map(|node_index| { match new_layer.dag.node_weight(node_index) { @@ -6243,7 +6241,7 @@ impl DAGCircuit { }; qubit_last_nodes .entry(*qubit) - .and_modify(|val| *val = (new_node, qubit_last_node.1.clone())); + .or_insert((new_node, qubit_last_node.1.clone())); nodes_to_connect.insert(qubit_last_node); } @@ -6264,7 +6262,7 @@ impl DAGCircuit { }; clbit_last_nodes .entry(clbit) - .and_modify(|val| *val = (new_node, clbit_last_node.1.clone())); + .or_insert((new_node, clbit_last_node.1.clone())); nodes_to_connect.insert(clbit_last_node); }