From d4c248ccb5231fad4a258fbcc26b433790bbdc71 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Thu, 5 Sep 2024 17:54:38 -0400 Subject: [PATCH] Fix clippy failures with Rust 1.81.0 The recently released Rust 1.81.0 introduced some new on by default clippy rules and these rules are flagging issues in the rust code in the library. While we use Rust 1.70 for clippy in CI and these won't cause failures until we raise our MSRV to >= 1.81.0 these clippy warnings/failures are still good to fix as the either make the code more consise and/or efficient. This commit fixes these issues identified by clippy. --- .../src/remove_diagonal_gates_before_measure.rs | 4 +++- crates/accelerate/src/results/marginalization.rs | 9 ++------- crates/circuit/src/operations.rs | 5 +---- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/crates/accelerate/src/remove_diagonal_gates_before_measure.rs b/crates/accelerate/src/remove_diagonal_gates_before_measure.rs index 10916a77fca8..cf2c738f131a 100644 --- a/crates/accelerate/src/remove_diagonal_gates_before_measure.rs +++ b/crates/accelerate/src/remove_diagonal_gates_before_measure.rs @@ -49,7 +49,9 @@ fn run_remove_diagonal_before_measure(dag: &mut DAGCircuit) -> PyResult<()> { let mut nodes_to_remove = Vec::new(); for index in dag.op_nodes(true) { let node = &dag.dag[index]; - let NodeType::Operation(inst) = node else {panic!()}; + let NodeType::Operation(inst) = node else { + panic!() + }; if inst.op.name() == "measure" { let predecessor = (dag.quantum_predecessors(index)) diff --git a/crates/accelerate/src/results/marginalization.rs b/crates/accelerate/src/results/marginalization.rs index 5260287e771d..b9e7ec4ba65c 100644 --- a/crates/accelerate/src/results/marginalization.rs +++ b/crates/accelerate/src/results/marginalization.rs @@ -26,16 +26,11 @@ fn marginalize( indices: Option>, ) -> HashMap { let mut out_counts: HashMap = HashMap::with_capacity(counts.len()); - let clbit_size = counts - .keys() - .next() - .unwrap() - .replace(|c| c == '_' || c == ' ', "") - .len(); + let clbit_size = counts.keys().next().unwrap().replace(['_', ' '], "").len(); let all_indices: Vec = (0..clbit_size).collect(); counts .iter() - .map(|(k, v)| (k.replace(|c| c == '_' || c == ' ', ""), *v)) + .map(|(k, v)| (k.replace(['_', ' '], ""), *v)) .for_each(|(k, v)| match &indices { Some(indices) => { if all_indices == *indices { diff --git a/crates/circuit/src/operations.rs b/crates/circuit/src/operations.rs index 8cc2256af518..a3fd2fc83c3d 100644 --- a/crates/circuit/src/operations.rs +++ b/crates/circuit/src/operations.rs @@ -2225,10 +2225,7 @@ impl Operation for PyGate { fn standard_gate(&self) -> Option { Python::with_gil(|py| -> Option { match self.gate.getattr(py, intern!(py, "_standard_gate")) { - Ok(stdgate) => match stdgate.extract(py) { - Ok(out_gate) => out_gate, - Err(_) => None, - }, + Ok(stdgate) => stdgate.extract(py).unwrap_or_default(), Err(_) => None, } })