diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-11-11 15:23:33 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-11 15:23:33 +0100 |
| commit | 731966692372d33d7abf56b68ec317da0ccb63bd (patch) | |
| tree | e29f81aef4bcda51703aa5d4d87264d707401387 | |
| parent | 95175f851e62a993815183f0e9432dd534077751 (diff) | |
| parent | 469c8baab8670935284b0a38116e993898d7d416 (diff) | |
| download | rust-731966692372d33d7abf56b68ec317da0ccb63bd.tar.gz rust-731966692372d33d7abf56b68ec317da0ccb63bd.zip | |
Rollup merge of #132873 - onur-ozkan:132867, r=jieyouxu
handle separate prefixes in clippy rules Fixes https://github.com/rust-lang/rust/issues/132867
| -rw-r--r-- | src/bootstrap/src/core/build_steps/clippy.rs | 2 | ||||
| -rw-r--r-- | src/bootstrap/src/core/config/tests.rs | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/bootstrap/src/core/build_steps/clippy.rs b/src/bootstrap/src/core/build_steps/clippy.rs index cd198c425c0..3d4b89a363e 100644 --- a/src/bootstrap/src/core/build_steps/clippy.rs +++ b/src/bootstrap/src/core/build_steps/clippy.rs @@ -82,7 +82,7 @@ pub(crate) fn get_clippy_rules_in_order( { item.iter().for_each(|v| { let rule = format!("{prefix}{v}"); - let position = all_args.iter().position(|t| t == &rule).unwrap(); + let position = all_args.iter().position(|t| t == &rule || t == v).unwrap(); result.push((position, rule)); }); } diff --git a/src/bootstrap/src/core/config/tests.rs b/src/bootstrap/src/core/config/tests.rs index 1f02757682c..e4ce64e2bc1 100644 --- a/src/bootstrap/src/core/config/tests.rs +++ b/src/bootstrap/src/core/config/tests.rs @@ -324,6 +324,23 @@ fn order_of_clippy_rules() { } #[test] +fn clippy_rule_separate_prefix() { + let args = + vec!["clippy".to_string(), "-A clippy:all".to_string(), "-W clippy::style".to_string()]; + let config = Config::parse(Flags::parse(&args)); + + let actual = match &config.cmd { + crate::Subcommand::Clippy { allow, deny, warn, forbid, .. } => { + get_clippy_rules_in_order(&args, &allow, &deny, &warn, &forbid) + } + _ => panic!("invalid subcommand"), + }; + + let expected = vec!["-A clippy:all".to_string(), "-W clippy::style".to_string()]; + assert_eq!(expected, actual); +} + +#[test] fn verbose_tests_default_value() { let config = Config::parse(Flags::parse(&["build".into(), "compiler".into()])); assert_eq!(config.verbose_tests, false); |
