mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 15:11:30 +00:00
Auto merge of #12730 - Alexendoo:lint-groups-workspace-priority, r=xFrednet
Lint direct priority conflicts in `[workspace.lints]` Partially addresses #12729 This still doesn't do any workspace resolution stuff, so it will not catch any virtual workspaces or conflicts from inherited definitions. But while we're parsing the `Cargo.toml` we might as well check the workspace definitions if we find them changelog: none
This commit is contained in:
commit
2b34abc887
3 changed files with 49 additions and 2 deletions
|
@ -49,7 +49,7 @@ impl LintConfig {
|
|||
|
||||
type LintTable = BTreeMap<Spanned<String>, Spanned<LintConfig>>;
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
#[derive(Deserialize, Debug, Default)]
|
||||
struct Lints {
|
||||
#[serde(default)]
|
||||
rust: LintTable,
|
||||
|
@ -57,9 +57,18 @@ struct Lints {
|
|||
clippy: LintTable,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug, Default)]
|
||||
struct Workspace {
|
||||
#[serde(default)]
|
||||
lints: Lints,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
struct CargoToml {
|
||||
#[serde(default)]
|
||||
lints: Lints,
|
||||
#[serde(default)]
|
||||
workspace: Workspace,
|
||||
}
|
||||
|
||||
#[derive(Default, Debug)]
|
||||
|
@ -164,5 +173,7 @@ pub fn check(cx: &LateContext<'_>) {
|
|||
|
||||
check_table(cx, cargo_toml.lints.rust, &rustc_groups, &file);
|
||||
check_table(cx, cargo_toml.lints.clippy, &clippy_groups, &file);
|
||||
check_table(cx, cargo_toml.workspace.lints.rust, &rustc_groups, &file);
|
||||
check_table(cx, cargo_toml.workspace.lints.clippy, &clippy_groups, &file);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,4 +42,32 @@ help: to have lints override the group set `pedantic` to a lower priority
|
|||
19 | pedantic = { level = "warn", priority = -2 }
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
error: could not compile `fail` (lib) due to 3 previous errors
|
||||
error: lint group `rust_2018_idioms` has the same priority (0) as a lint
|
||||
--> Cargo.toml:23:1
|
||||
|
|
||||
23 | rust_2018_idioms = "warn"
|
||||
| ^^^^^^^^^^^^^^^^ ------ has an implicit priority of 0
|
||||
24 | bare_trait_objects = "allow"
|
||||
| ------------------ has the same priority as this lint
|
||||
|
|
||||
= note: the order of the lints in the table is ignored by Cargo
|
||||
help: to have lints override the group set `rust_2018_idioms` to a lower priority
|
||||
|
|
||||
23 | rust_2018_idioms = { level = "warn", priority = -1 }
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
error: lint group `pedantic` has the same priority (0) as a lint
|
||||
--> Cargo.toml:27:1
|
||||
|
|
||||
27 | pedantic = "warn"
|
||||
| ^^^^^^^^ ------ has an implicit priority of 0
|
||||
28 | similar_names = "allow"
|
||||
| ------------- has the same priority as this lint
|
||||
|
|
||||
= note: the order of the lints in the table is ignored by Cargo
|
||||
help: to have lints override the group set `pedantic` to a lower priority
|
||||
|
|
||||
27 | pedantic = { level = "warn", priority = -1 }
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
error: could not compile `fail` (lib) due to 5 previous errors
|
||||
|
|
|
@ -18,3 +18,11 @@ deprecated = "allow"
|
|||
[lints.clippy]
|
||||
pedantic = { level = "warn", priority = -1 }
|
||||
similar_names = { level = "allow", priority = -1 }
|
||||
|
||||
[workspace.lints.rust]
|
||||
rust_2018_idioms = "warn"
|
||||
bare_trait_objects = "allow"
|
||||
|
||||
[workspace.lints.clippy]
|
||||
pedantic = "warn"
|
||||
similar_names = "allow"
|
||||
|
|
Loading…
Reference in a new issue