Warning on conflicting dev-dependencies keys

Signed-off-by: hi-rustin <rustin.liu@gmail.com>
This commit is contained in:
hi-rustin 2022-02-09 21:59:26 +08:00
parent a317aff9b8
commit 154f372b6b
2 changed files with 42 additions and 0 deletions

View File

@ -1264,6 +1264,13 @@ impl TomlManifest {
// Collect the dependencies.
process_dependencies(&mut cx, me.dependencies.as_ref(), None)?;
if me.dev_dependencies.is_some() && me.dev_dependencies2.is_some() {
cx.warnings.push(format!(
"found both `dev-dependencies` and `dev_dependencies` are set \
in the `{}` package",
package_name
));
}
let dev_deps = me
.dev_dependencies
.as_ref()

View File

@ -1676,6 +1676,41 @@ Caused by:
.run();
}
#[cargo_test]
fn dev_dependencies_conflicting_warning() {
let p = project()
.file(
"Cargo.toml",
r#"
[package]
name = "foo"
version = "0.1.0"
edition = "2018"
[dev-dependencies]
a = {path = "a"}
[dev_dependencies]
a = {path = "a"}
"#,
)
.file("src/lib.rs", "")
.file(
"a/Cargo.toml",
r#"
[package]
name = "a"
version = "0.0.1"
"#,
)
.file("a/src/lib.rs", "")
.build();
p.cargo("build")
.with_stderr_contains(
"[WARNING] found both `dev-dependencies` and `dev_dependencies` are set in the `foo` package",
)
.run();
}
#[cargo_test]
fn lib_crate_types_conflicting_warning() {
let p = project()