From 29058ad7ee64d993de6c301a9d688002cb698f03 Mon Sep 17 00:00:00 2001 From: Thomas Coratger <60488569+tcoratger@users.noreply.github.com> Date: Mon, 26 Aug 2024 02:04:19 -0700 Subject: [PATCH] clippy: add `cloned_instead_of_copied` clippy lint (#10530) Co-authored-by: Matthias Seitz Co-authored-by: Oliver --- Cargo.toml | 1 + crates/blockchain-tree/src/block_indices.rs | 2 +- crates/blockchain-tree/src/bundle.rs | 6 +++--- crates/blockchain-tree/src/canonical_chain.rs | 2 +- crates/chain-state/src/in_memory.rs | 2 +- crates/revm/src/test_utils.rs | 4 ++-- crates/rpc/rpc-engine-api/src/capabilities.rs | 2 +- crates/rpc/rpc-eth-api/src/helpers/fee.rs | 2 +- crates/rpc/rpc/src/otterscan.rs | 2 +- crates/storage/provider/src/test_utils/mock.rs | 2 +- crates/transaction-pool/src/pool/parked.rs | 2 +- crates/trie/parallel/benches/root.rs | 4 ++-- testing/testing-utils/src/generators.rs | 2 +- 13 files changed, 17 insertions(+), 16 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 34f1b65da..e72dd83f0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -213,6 +213,7 @@ unused_rounding = "warn" use_self = "warn" useless_let_if_seq = "warn" zero_sized_map_values = "warn" +cloned_instead_of_copied = "warn" option_as_ref_cloned = "warn" # These are nursery lints which have findings. Allow them for now. Some are not diff --git a/crates/blockchain-tree/src/block_indices.rs b/crates/blockchain-tree/src/block_indices.rs index f805df7a4..942963c12 100644 --- a/crates/blockchain-tree/src/block_indices.rs +++ b/crates/blockchain-tree/src/block_indices.rs @@ -125,7 +125,7 @@ impl BlockIndices { /// Get the [`SidechainId`] for the given block hash if it exists. pub(crate) fn get_side_chain_id(&self, block: &BlockHash) -> Option { - self.blocks_to_chain.get(block).cloned() + self.blocks_to_chain.get(block).copied() } /// Update all block hashes. iterate over present and new list of canonical hashes and compare diff --git a/crates/blockchain-tree/src/bundle.rs b/crates/blockchain-tree/src/bundle.rs index 01d1d717f..e10adecdc 100644 --- a/crates/blockchain-tree/src/bundle.rs +++ b/crates/blockchain-tree/src/bundle.rs @@ -23,12 +23,12 @@ impl<'a> ExecutionDataProvider for BundleStateDataRef<'a> { } fn block_hash(&self, block_number: BlockNumber) -> Option { - let block_hash = self.sidechain_block_hashes.get(&block_number).cloned(); + let block_hash = self.sidechain_block_hashes.get(&block_number).copied(); if block_hash.is_some() { return block_hash } - self.canonical_block_hashes.get(&block_number).cloned() + self.canonical_block_hashes.get(&block_number).copied() } } @@ -57,7 +57,7 @@ impl ExecutionDataProvider for ExecutionData { } fn block_hash(&self, block_number: BlockNumber) -> Option { - self.parent_block_hashes.get(&block_number).cloned() + self.parent_block_hashes.get(&block_number).copied() } } diff --git a/crates/blockchain-tree/src/canonical_chain.rs b/crates/blockchain-tree/src/canonical_chain.rs index 8a9893a18..e01e52dcb 100644 --- a/crates/blockchain-tree/src/canonical_chain.rs +++ b/crates/blockchain-tree/src/canonical_chain.rs @@ -25,7 +25,7 @@ impl CanonicalChain { /// Returns the block hash of the (non-finalized) canonical block with the given number. #[inline] pub(crate) fn canonical_hash(&self, number: &BlockNumber) -> Option { - self.chain.get(number).cloned() + self.chain.get(number).copied() } /// Returns the block number of the (non-finalized) canonical block with the given hash. diff --git a/crates/chain-state/src/in_memory.rs b/crates/chain-state/src/in_memory.rs index 9494eddb9..a2dd656af 100644 --- a/crates/chain-state/src/in_memory.rs +++ b/crates/chain-state/src/in_memory.rs @@ -97,7 +97,7 @@ impl InMemoryState { /// Returns the hash for a specific block number pub(crate) fn hash_by_number(&self, number: u64) -> Option { - self.numbers.read().get(&number).cloned() + self.numbers.read().get(&number).copied() } /// Returns the current chain head state. diff --git a/crates/revm/src/test_utils.rs b/crates/revm/src/test_utils.rs index d4a699ccb..1bb9a9f1f 100644 --- a/crates/revm/src/test_utils.rs +++ b/crates/revm/src/test_utils.rs @@ -53,7 +53,7 @@ impl AccountReader for StateProviderTest { impl BlockHashReader for StateProviderTest { fn block_hash(&self, number: u64) -> ProviderResult> { - Ok(self.block_hash.get(&number).cloned()) + Ok(self.block_hash.get(&number).copied()) } fn canonical_hashes_range( @@ -134,7 +134,7 @@ impl StateProvider for StateProviderTest { account: Address, storage_key: StorageKey, ) -> ProviderResult> { - Ok(self.accounts.get(&account).and_then(|(storage, _)| storage.get(&storage_key).cloned())) + Ok(self.accounts.get(&account).and_then(|(storage, _)| storage.get(&storage_key).copied())) } fn bytecode_by_hash(&self, code_hash: B256) -> ProviderResult> { diff --git a/crates/rpc/rpc-engine-api/src/capabilities.rs b/crates/rpc/rpc-engine-api/src/capabilities.rs index a96db527b..eb796aebc 100644 --- a/crates/rpc/rpc-engine-api/src/capabilities.rs +++ b/crates/rpc/rpc-engine-api/src/capabilities.rs @@ -32,7 +32,7 @@ pub struct EngineCapabilities { impl EngineCapabilities { /// Returns the list of all supported Engine capabilities for Prague spec. fn prague() -> Self { - Self { inner: CAPABILITIES.iter().cloned().map(str::to_owned).collect() } + Self { inner: CAPABILITIES.iter().copied().map(str::to_owned).collect() } } /// Returns the list of all supported Engine capabilities. diff --git a/crates/rpc/rpc-eth-api/src/helpers/fee.rs b/crates/rpc/rpc-eth-api/src/helpers/fee.rs index 6b715ed21..a8fbc7e7f 100644 --- a/crates/rpc/rpc-eth-api/src/helpers/fee.rs +++ b/crates/rpc/rpc-eth-api/src/helpers/fee.rs @@ -229,7 +229,7 @@ pub trait EthFees: LoadFee { // Calculate the index in the precomputed rewards array let index = (clamped_percentile / (1.0 / resolution as f64)).round() as usize; // Fetch the reward from the FeeHistoryEntry - entry.rewards.get(index).cloned().unwrap_or_default() + entry.rewards.get(index).copied().unwrap_or_default() } } diff --git a/crates/rpc/rpc/src/otterscan.rs b/crates/rpc/rpc/src/otterscan.rs index e9990277e..d385c37a9 100644 --- a/crates/rpc/rpc/src/otterscan.rs +++ b/crates/rpc/rpc/src/otterscan.rs @@ -376,7 +376,7 @@ where // A contract maybe created and then destroyed in multiple transactions, here we // return the first found transaction, this behavior is consistent with etherscan's - let found = traces.and_then(|traces| traces.first().cloned()); + let found = traces.and_then(|traces| traces.first().copied()); Ok(found) } } diff --git a/crates/storage/provider/src/test_utils/mock.rs b/crates/storage/provider/src/test_utils/mock.rs index 9c92dafad..85deebf7e 100644 --- a/crates/storage/provider/src/test_utils/mock.rs +++ b/crates/storage/provider/src/test_utils/mock.rs @@ -634,7 +634,7 @@ impl StateProvider for MockEthProvider { storage_key: StorageKey, ) -> ProviderResult> { let lock = self.accounts.lock(); - Ok(lock.get(&account).and_then(|account| account.storage.get(&storage_key)).cloned()) + Ok(lock.get(&account).and_then(|account| account.storage.get(&storage_key)).copied()) } fn bytecode_by_hash(&self, code_hash: B256) -> ProviderResult> { diff --git a/crates/transaction-pool/src/pool/parked.rs b/crates/transaction-pool/src/pool/parked.rs index 9393202c3..8ee7e13ec 100644 --- a/crates/transaction-pool/src/pool/parked.rs +++ b/crates/transaction-pool/src/pool/parked.rs @@ -168,7 +168,7 @@ impl ParkedPool { pub(crate) fn get_senders_by_submission_id( &self, ) -> impl Iterator + '_ { - self.last_sender_submission.iter().cloned() + self.last_sender_submission.iter().copied() } /// Truncates the pool by removing transactions, until the given [`SubPoolLimit`] has been met. diff --git a/crates/trie/parallel/benches/root.rs b/crates/trie/parallel/benches/root.rs index 8c835c157..240887401 100644 --- a/crates/trie/parallel/benches/root.rs +++ b/crates/trie/parallel/benches/root.rs @@ -98,14 +98,14 @@ fn generate_test_data(size: usize) -> (HashedPostState, HashedPostState) { .unwrap() .current(); - let keys = db_state.keys().cloned().collect::>(); + let keys = db_state.keys().copied().collect::>(); let keys_to_update = subsequence(keys, size / 2).new_tree(&mut runner).unwrap().current(); let updated_storages = keys_to_update .into_iter() .map(|address| { let (_, storage) = db_state.get(&address).unwrap(); - let slots = storage.keys().cloned().collect::>(); + let slots = storage.keys().copied().collect::>(); let slots_to_update = subsequence(slots, storage_size / 2).new_tree(&mut runner).unwrap().current(); ( diff --git a/testing/testing-utils/src/generators.rs b/testing/testing-utils/src/generators.rs index b62b4c2f0..8e35dbaf8 100644 --- a/testing/testing-utils/src/generators.rs +++ b/testing/testing-utils/src/generators.rs @@ -316,7 +316,7 @@ pub fn random_account_change( n_storage_changes: Range, key_range: Range, ) -> (Address, Address, U256, Vec) { - let mut addresses = valid_addresses.choose_multiple(rng, 2).cloned(); + let mut addresses = valid_addresses.choose_multiple(rng, 2).copied(); let addr_from = addresses.next().unwrap_or_else(Address::random); let addr_to = addresses.next().unwrap_or_else(Address::random);