mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-24 05:33:27 +00:00
Harden duplicates checking and add tests
This commit is contained in:
parent
08e7ec4047
commit
ea25ef10cf
5 changed files with 24 additions and 4 deletions
|
@ -92,8 +92,8 @@ impl fmt::Display for ConfError {
|
||||||
|
|
||||||
impl Error for ConfError {}
|
impl Error for ConfError {}
|
||||||
|
|
||||||
fn conf_error(s: String) -> Box<dyn Error> {
|
fn conf_error(s: impl Into<String>) -> Box<dyn Error> {
|
||||||
Box::new(ConfError(s))
|
Box::new(ConfError(s.into()))
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! define_Conf {
|
macro_rules! define_Conf {
|
||||||
|
@ -154,7 +154,13 @@ macro_rules! define_Conf {
|
||||||
$name = Some(value);
|
$name = Some(value);
|
||||||
// $new_conf is the same as one of the defined `$name`s, so
|
// $new_conf is the same as one of the defined `$name`s, so
|
||||||
// this variable is defined in line 2 of this function.
|
// this variable is defined in line 2 of this function.
|
||||||
$($new_conf = Some(value);)?
|
$(match $new_conf {
|
||||||
|
Some(_) => errors.push(conf_error(concat!(
|
||||||
|
"duplicate field `", stringify!($new_conf),
|
||||||
|
"` (provided as `", stringify!($name), "`)"
|
||||||
|
))),
|
||||||
|
None => $new_conf = Some(value),
|
||||||
|
})?
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# that one is an error
|
# that one is a warning
|
||||||
cyclomatic-complexity-threshold = 2
|
cyclomatic-complexity-threshold = 2
|
||||||
|
|
||||||
# that one is white-listed
|
# that one is white-listed
|
||||||
|
|
5
tests/ui-toml/duplicated_keys/clippy.toml
Normal file
5
tests/ui-toml/duplicated_keys/clippy.toml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
cognitive-complexity-threshold = 2
|
||||||
|
# This is the deprecated name for the same key
|
||||||
|
cyclomatic-complexity-threshold = 3
|
||||||
|
# Check we get duplication warning regardless of order
|
||||||
|
cognitive-complexity-threshold = 4
|
1
tests/ui-toml/duplicated_keys/duplicated_keys.rs
Normal file
1
tests/ui-toml/duplicated_keys/duplicated_keys.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
fn main() {}
|
8
tests/ui-toml/duplicated_keys/duplicated_keys.stderr
Normal file
8
tests/ui-toml/duplicated_keys/duplicated_keys.stderr
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
error: error reading Clippy's configuration file `$DIR/clippy.toml`: duplicate field `cognitive_complexity_threshold` (provided as `cyclomatic_complexity_threshold`)
|
||||||
|
|
||||||
|
error: error reading Clippy's configuration file `$DIR/clippy.toml`: duplicate field `cognitive-complexity-threshold`
|
||||||
|
|
||||||
|
warning: error reading Clippy's configuration file `$DIR/clippy.toml`: deprecated field `cyclomatic-complexity-threshold`. Please use `cognitive-complexity-threshold` instead
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors; 1 warning emitted
|
||||||
|
|
Loading…
Reference in a new issue