Skip to content

Commit 4dff7b1

Browse files
Refactor with_parsed_values (#3670)
<!-- Reference any GitHub issues resolved by this PR --> Towards #1431 **Stack**: - #3697 - #3669 - #3671 - #3670 ⬅ ## Introduced changes [`with_parsed_values`](https://github.com/foundry-rs/starknet-foundry/blob/13348b026b481239f4a1546c7f54650b4ad243ca/crates/snforge-scarb-plugin/src/common.rs#L33) will be used for `#[test_case]` which may occur multiple times, hence the need to move usages of `assert_is_used_once` into relevant functions. ## Checklist <!-- Make sure all of these are complete --> - [ ] Linked relevant issue - [ ] Updated relevant documentation - [ ] Added relevant tests - [x] Performed self-review of the code - [ ] Added changes to `CHANGELOG.md`
1 parent 17b213a commit 4dff7b1

File tree

4 files changed

+7
-3
lines changed

4 files changed

+7
-3
lines changed

crates/snforge-scarb-plugin/src/attributes/internal_config_statement.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use super::AttributeInfo;
22
use crate::{
33
args::Arguments,
4+
asserts::assert_is_used_once,
45
common::{into_proc_macro_result, with_parsed_values},
56
config_statement::append_config_statements,
67
};
@@ -37,6 +38,7 @@ fn internal_config_statement_internal(
3738
args: Arguments,
3839
_warns: &mut Vec<Diagnostic>,
3940
) -> Result<TokenStream, Diagnostics> {
41+
assert_is_used_once::<InternalConfigStatementCollector>(db, func)?;
4042
args.assert_is_empty::<InternalConfigStatementCollector>()?;
4143

4244
Ok(append_config_statements(db, func, TokenStream::empty()))

crates/snforge-scarb-plugin/src/attributes/test.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use super::{AttributeInfo, ErrorExt, internal_config_statement::InternalConfigStatementCollector};
2+
use crate::asserts::assert_is_used_once;
23
use crate::attributes::fuzzer::wrapper::FuzzerWrapperCollector;
34
use crate::attributes::fuzzer::{FuzzerCollector, FuzzerConfigCollector};
45
use crate::external_inputs::ExternalInput;
@@ -36,6 +37,7 @@ fn test_internal(
3637
args: Arguments,
3738
_warns: &mut Vec<Diagnostic>,
3839
) -> Result<TokenStream, Diagnostics> {
40+
assert_is_used_once::<TestCollector>(db, func)?;
3941
args.assert_is_empty::<TestCollector>()?;
4042
ensure_parameters_only_with_fuzzer_attribute(db, func)?;
4143

crates/snforge-scarb-plugin/src/common.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use crate::{
22
args::Arguments,
3-
asserts::assert_is_used_once,
43
attributes::AttributeInfo,
54
parse::{parse, parse_args},
65
};
@@ -52,8 +51,6 @@ where
5251

5352
let db = db.upcast();
5453

55-
assert_is_used_once::<Collector>(db, &func)?;
56-
5754
let (args_db, args) = parse_args(args);
5855
let args_db = args_db.upcast();
5956

crates/snforge-scarb-plugin/src/config_statement.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use crate::asserts::assert_is_used_once;
12
use crate::utils::{create_single_token, get_statements};
23
use crate::{
34
args::Arguments,
@@ -32,6 +33,8 @@ fn with_config_cheatcodes<Collector>(
3233
where
3334
Collector: AttributeCollector,
3435
{
36+
assert_is_used_once::<Collector>(db, func)?;
37+
3538
let value = Collector::args_into_config_expression(args_db, args, warns)?;
3639

3740
let cheatcode_name = Collector::CHEATCODE_NAME;

0 commit comments

Comments
 (0)