Skip to content

Commit 6c419a6

Browse files
authored
Warn on clippy::default_trait_access (#3028)
<!-- Reference any GitHub issues resolved by this PR --> Closes #2775 ## Introduced changes <!-- A brief description of the changes --> - as in tittle ## Checklist <!-- Make sure all of these are complete --> - [x] Linked relevant issue - [x] Updated relevant documentation - [x] Added relevant tests - [x] Performed self-review of the code - [x] Added changes to `CHANGELOG.md`
1 parent f2e7d0d commit 6c419a6

File tree

18 files changed

+100
-95
lines changed

18 files changed

+100
-95
lines changed

.cargo/config.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
[alias]
2-
lint = "clippy --all-targets --all-features -- --no-deps -W clippy::pedantic -W clippy::undocumented_unsafe_blocks -A clippy::module_name_repetitions -A clippy::missing_errors_doc -A clippy::missing_panics_doc -A clippy::default_trait_access"
2+
lint = "clippy --all-targets --all-features -- --no-deps -W clippy::pedantic -W clippy::undocumented_unsafe_blocks -A clippy::module_name_repetitions -A clippy::missing_errors_doc -A clippy::missing_panics_doc"

crates/cheatnet/src/forking/cache.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ impl Default for ForkCacheContent {
3131
fn default() -> Self {
3232
Self {
3333
cache_version: CACHE_VERSION,
34-
storage_at: Default::default(),
35-
nonce_at: Default::default(),
36-
class_hash_at: Default::default(),
37-
compiled_contract_class: Default::default(),
38-
block_info: Default::default(),
34+
storage_at: HashMap::default(),
35+
nonce_at: HashMap::default(),
36+
class_hash_at: HashMap::default(),
37+
compiled_contract_class: HashMap::default(),
38+
block_info: Option::default(),
3939
}
4040
}
4141
}

crates/cheatnet/src/forking/state.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ impl StateReader for ForkStateReader {
166166
Err(ProviderError::StarknetError(StarknetError::ContractNotFound)) => {
167167
self.cache
168168
.borrow_mut()
169-
.cache_get_nonce_at(contract_address, Default::default());
170-
Ok(Default::default())
169+
.cache_get_nonce_at(contract_address, Nonce::default());
170+
Ok(Nonce::default())
171171
}
172172
Err(x) => Err(StateReadError(format!(
173173
"Unable to get nonce at {contract_address:?} from fork ({x})"
@@ -194,8 +194,8 @@ impl StateReader for ForkStateReader {
194194
Err(ProviderError::StarknetError(StarknetError::ContractNotFound)) => {
195195
self.cache
196196
.borrow_mut()
197-
.cache_get_class_hash_at(contract_address, Default::default());
198-
Ok(Default::default())
197+
.cache_get_class_hash_at(contract_address, ClassHash::default());
198+
Ok(ClassHash::default())
199199
}
200200
Err(ProviderError::Other(boxed)) => other_provider_error(boxed),
201201
Err(x) => Err(StateReadError(format!(

crates/cheatnet/src/runtime_extensions/call_to_blockifier_runtime_extension/execution/entry_point.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::runtime_extensions::call_to_blockifier_runtime_extension::CheatnetSta
55
use crate::runtime_extensions::common::{get_relocated_vm_trace, sum_syscall_counters};
66
use crate::state::{CallTrace, CallTraceNode, CheatStatus, EncounteredError};
77
use blockifier::execution::call_info::{CallExecution, Retdata};
8-
use blockifier::execution::contract_class::RunnableCompiledClass;
8+
use blockifier::execution::contract_class::{RunnableCompiledClass, TrackedResource};
99
use blockifier::execution::deprecated_syscalls::hint_processor::SyscallCounter;
1010
use blockifier::{
1111
execution::{
@@ -29,7 +29,7 @@ use starknet_api::{
2929
};
3030
use starknet_types_core::felt::Felt;
3131
use std::cell::RefCell;
32-
use std::collections::HashSet;
32+
use std::collections::{HashMap, HashSet};
3333
use std::rc::Rc;
3434
use thiserror::Error;
3535
use conversions::FromConv;
@@ -72,7 +72,7 @@ pub fn execute_call_entry_point(
7272
ret_data.iter().map(|datum| Felt::from_(*datum)).collect();
7373
cheatnet_state.trace_data.exit_nested_call(
7474
ExecutionResources::default(),
75-
Default::default(),
75+
HashMap::default(),
7676
CallResult::Success {
7777
ret_data: ret_data_f252,
7878
},
@@ -203,7 +203,7 @@ fn exit_error_call(
203203
};
204204
cheatnet_state.trace_data.exit_nested_call(
205205
ExecutionResources::default(),
206-
Default::default(),
206+
HashMap::default(),
207207
CallResult::from_err(error, &identifier),
208208
&[],
209209
vm_trace,
@@ -284,8 +284,8 @@ fn mocked_call_info(call: CallEntryPoint, ret_data: Vec<Felt>) -> CallInfo {
284284
accessed_storage_keys: HashSet::new(),
285285
read_class_hash_values: vec![],
286286
// TODO(#2977) This defaults to `CairoSteps` as of writing this, but it could be changed in the future
287-
tracked_resource: Default::default(),
288-
accessed_contract_addresses: Default::default(),
287+
tracked_resource: TrackedResource::default(),
288+
accessed_contract_addresses: HashSet::default(),
289289
}
290290
}
291291

crates/cheatnet/src/runtime_extensions/forge_runtime_extension/cheatcodes/declare.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use conversions::IntoConv;
99
use conversions::serde::serialize::CairoSerialize;
1010
use starknet::core::types::contract::SierraClass;
1111
use starknet_api::contract_class::SierraVersion;
12-
use starknet_api::core::ClassHash;
12+
use starknet_api::core::{ClassHash, CompiledClassHash};
1313

1414
#[derive(CairoSerialize)]
1515
pub enum DeclareResult {
@@ -48,7 +48,7 @@ pub fn declare(
4848
// because it is currently only used in verification
4949
// and we haven't found a way to calculate it easily
5050
state
51-
.set_compiled_class_hash(class_hash, Default::default())
51+
.set_compiled_class_hash(class_hash, CompiledClassHash::default())
5252
.unwrap_or_else(|err| panic!("Failed to set compiled class hash: {err:?}"));
5353
Ok(DeclareResult::Success(class_hash))
5454
}

crates/cheatnet/src/state.rs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use blockifier::execution::syscalls::hint_processor::SyscallCounter;
1313
use blockifier::state::errors::StateError::UndeclaredClassHash;
1414
use blockifier::state::state_api::{StateReader, StateResult};
1515
use cairo_annotations::trace_data::L1Resources;
16+
use cairo_vm::Felt252;
1617
use cairo_vm::vm::runners::cairo_runner::ExecutionResources;
1718
use cairo_vm::vm::trace::trace_entry::RelocatedTraceEntry;
1819
use conversions::serde::deserialize::CairoDeserialize;
@@ -71,7 +72,7 @@ impl StateReader for ExtendedStateReader {
7172
.or_else(|_| {
7273
self.fork_state_reader
7374
.as_ref()
74-
.map_or(Ok(Default::default()), {
75+
.map_or(Ok(Felt252::default()), {
7576
|reader| reader.get_storage_at(contract_address, key)
7677
})
7778
})
@@ -83,7 +84,7 @@ impl StateReader for ExtendedStateReader {
8384
.or_else(|_| {
8485
self.fork_state_reader
8586
.as_ref()
86-
.map_or(Ok(Default::default()), {
87+
.map_or(Ok(Nonce::default()), {
8788
|reader| reader.get_nonce_at(contract_address)
8889
})
8990
})
@@ -95,7 +96,7 @@ impl StateReader for ExtendedStateReader {
9596
.or_else(|_| {
9697
self.fork_state_reader
9798
.as_ref()
98-
.map_or(Ok(Default::default()), {
99+
.map_or(Ok(ClassHash::default()), {
99100
|reader| reader.get_class_hash_at(contract_address)
100101
})
101102
})
@@ -194,11 +195,11 @@ impl CairoSerialize for CallTrace {
194195
impl CallTrace {
195196
fn default_successful_call() -> Self {
196197
Self {
197-
run_with_call_header: Default::default(),
198-
entry_point: Default::default(),
199-
used_execution_resources: Default::default(),
200-
used_l1_resources: Default::default(),
201-
used_syscalls: Default::default(),
198+
run_with_call_header: false,
199+
entry_point: CallEntryPoint::default(),
200+
used_execution_resources: ExecutionResources::default(),
201+
used_l1_resources: L1Resources::default(),
202+
used_syscalls: SyscallCounter::default(),
202203
nested_calls: vec![],
203204
result: CallResult::Success { ret_data: vec![] },
204205
vm_trace: None,
@@ -237,7 +238,7 @@ impl NotEmptyCallStack {
237238
pub fn from(elem: Rc<RefCell<CallTrace>>) -> Self {
238239
NotEmptyCallStack(vec![CallStackElement {
239240
call_trace: elem,
240-
cheated_data: Default::default(),
241+
cheated_data: CheatedData::default(),
241242
}])
242243
}
243244

@@ -294,7 +295,7 @@ pub struct CheatedTxInfo {
294295
impl CheatedTxInfo {
295296
#[must_use]
296297
pub fn is_mocked(&self) -> bool {
297-
self != &Default::default()
298+
self != &CheatedTxInfo::default()
298299
}
299300
}
300301

@@ -346,10 +347,10 @@ impl Default for CheatnetState {
346347
..CallTrace::default_successful_call()
347348
}));
348349
Self {
349-
cheated_execution_info_contracts: Default::default(),
350-
global_cheated_execution_info: Default::default(),
351-
mocked_functions: Default::default(),
352-
replaced_bytecode_contracts: Default::default(),
350+
cheated_execution_info_contracts: HashMap::default(),
351+
global_cheated_execution_info: ExecutionInfoMock::default(),
352+
mocked_functions: HashMap::default(),
353+
replaced_bytecode_contracts: HashMap::default(),
353354
detected_events: vec![],
354355
detected_messages_to_l1: vec![],
355356
deploy_salt_base: 0,

crates/configuration/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use anyhow::{Context, Result, anyhow};
22
use scarb_metadata::{Metadata, PackageId};
3-
use serde_json::Number;
3+
use serde_json::{Map, Number};
44
use std::{env, fs};
55

66
use camino::Utf8PathBuf;
@@ -48,7 +48,7 @@ pub fn get_profile(
4848

4949
match get_with_ownership(tool_config, profile_name) {
5050
Some(profile_value) => Ok(profile_value),
51-
None if profile_name == "default" => Ok(serde_json::Value::Object(Default::default())),
51+
None if profile_name == "default" => Ok(serde_json::Value::Object(Map::default())),
5252
None => Err(anyhow!("Profile [{}] not found in config", profile_name)),
5353
}
5454
}

crates/forge-runner/src/gas.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::test_case_summary::{Single, TestCaseSummary};
22
use blockifier::abi::constants;
33
use blockifier::context::TransactionContext;
4-
use blockifier::execution::call_info::{EventSummary, ExecutionSummary};
4+
use blockifier::execution::call_info::{ChargedResources, EventSummary, ExecutionSummary};
55
use blockifier::fee::resources::{
66
ArchivalDataResources, ComputationResources, MessageResources, StarknetResources,
77
StateResources, TransactionResources,
@@ -15,6 +15,7 @@ use cheatnet::state::ExtendedStateReader;
1515
use starknet_api::execution_resources::{GasAmount, GasVector};
1616
use starknet_api::transaction::EventContent;
1717
use starknet_api::transaction::fields::GasVectorComputationMode;
18+
use std::collections::HashSet;
1819

1920
pub fn calculate_used_gas(
2021
transaction_context: &TransactionContext,
@@ -74,9 +75,9 @@ fn get_archival_data_resources(events: Vec<EventContent>) -> ArchivalDataResourc
7475
// TODO(#2978) this is a workaround because we cannot create `ArchivalDataResources` directly yet
7576
// because of private fields
7677
let dummy_execution_summary = ExecutionSummary {
77-
charged_resources: Default::default(),
78-
executed_class_hashes: Default::default(),
79-
visited_storage_entries: Default::default(),
78+
charged_resources: ChargedResources::default(),
79+
executed_class_hashes: HashSet::default(),
80+
visited_storage_entries: HashSet::default(),
8081
l2_to_l1_payload_lengths: vec![],
8182
event_summary,
8283
};

crates/forge/src/combine_configs.rs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ mod tests {
7070
false,
7171
false,
7272
None,
73-
Default::default(),
74-
Default::default(),
75-
&Default::default(),
73+
ContractsData::default(),
74+
Utf8PathBuf::default(),
75+
&ForgeConfigFromScarb::default(),
7676
&[],
7777
);
7878
let config2 = combine_configs(
@@ -84,9 +84,9 @@ mod tests {
8484
false,
8585
false,
8686
None,
87-
Default::default(),
88-
Default::default(),
89-
&Default::default(),
87+
ContractsData::default(),
88+
Utf8PathBuf::default(),
89+
&ForgeConfigFromScarb::default(),
9090
&[],
9191
);
9292

@@ -109,9 +109,9 @@ mod tests {
109109
false,
110110
false,
111111
None,
112-
Default::default(),
113-
Default::default(),
114-
&Default::default(),
112+
ContractsData::default(),
113+
Utf8PathBuf::default(),
114+
&ForgeConfigFromScarb::default(),
115115
&[],
116116
);
117117
assert_eq!(
@@ -123,8 +123,8 @@ mod tests {
123123
fuzzer_seed: config.test_runner_config.fuzzer_seed,
124124
max_n_steps: None,
125125
is_vm_trace_needed: false,
126-
cache_dir: Default::default(),
127-
contracts_data: Default::default(),
126+
cache_dir: Utf8PathBuf::default(),
127+
contracts_data: ContractsData::default(),
128128
environment_variables: config.test_runner_config.environment_variables.clone(),
129129
}),
130130
output_config: Arc::new(OutputConfig {
@@ -158,8 +158,8 @@ mod tests {
158158
false,
159159
false,
160160
None,
161-
Default::default(),
162-
Default::default(),
161+
ContractsData::default(),
162+
Utf8PathBuf::default(),
163163
&config_from_scarb,
164164
&[],
165165
);
@@ -172,8 +172,8 @@ mod tests {
172172
fuzzer_seed: 500,
173173
max_n_steps: Some(1_000_000),
174174
is_vm_trace_needed: true,
175-
cache_dir: Default::default(),
176-
contracts_data: Default::default(),
175+
cache_dir: Utf8PathBuf::default(),
176+
contracts_data: ContractsData::default(),
177177
environment_variables: config.test_runner_config.environment_variables.clone(),
178178
}),
179179
output_config: Arc::new(OutputConfig {
@@ -211,8 +211,8 @@ mod tests {
211211
true,
212212
true,
213213
Some(1_000_000),
214-
Default::default(),
215-
Default::default(),
214+
ContractsData::default(),
215+
Utf8PathBuf::default(),
216216
&config_from_scarb,
217217
&[],
218218
);
@@ -226,8 +226,8 @@ mod tests {
226226
fuzzer_seed: 32,
227227
max_n_steps: Some(1_000_000),
228228
is_vm_trace_needed: true,
229-
cache_dir: Default::default(),
230-
contracts_data: Default::default(),
229+
cache_dir: Utf8PathBuf::default(),
230+
contracts_data: ContractsData::default(),
231231
environment_variables: config.test_runner_config.environment_variables.clone(),
232232
}),
233233
output_config: Arc::new(OutputConfig {

crates/forge/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ mod new;
2525
pub mod pretty_printing;
2626
pub mod run_tests;
2727
pub mod scarb;
28-
mod shared_cache;
28+
pub mod shared_cache;
2929
pub mod test_filter;
3030
mod warn;
3131

crates/forge/src/run_tests/resolve_config.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ mod tests {
147147
async fn to_runnable_non_existent_id() {
148148
let mocked_tests = TestTargetWithConfig {
149149
sierra_program: program_for_testing(),
150-
sierra_program_path: Default::default(),
150+
sierra_program_path: Arc::default(),
151151
casm_program: Arc::new(
152152
compile_sierra(
153153
&serde_json::to_value(&program_for_testing().program).unwrap(),

crates/forge/src/scarb.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ mod tests {
282282
)
283283
.unwrap();
284284

285-
assert_eq!(config, Default::default());
285+
assert_eq!(config, ForgeConfigFromScarb::default());
286286
}
287287

288288
#[test]

crates/forge/src/shared_cache.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ pub struct FailedTestsCache {
1212
const FILE_WITH_PREV_TESTS_FAILED: &str = ".prev_tests_failed";
1313

1414
impl FailedTestsCache {
15+
#[must_use]
1516
pub fn new(cache_dir: &Utf8PathBuf) -> Self {
1617
Self {
1718
cache_file: cache_dir.join(FILE_WITH_PREV_TESTS_FAILED),

0 commit comments

Comments
 (0)