diff --git a/src/cargo/ops/cargo_compile/unit_generator.rs b/src/cargo/ops/cargo_compile/unit_generator.rs index 18bbab12dc1..b2d86b7531c 100644 --- a/src/cargo/ops/cargo_compile/unit_generator.rs +++ b/src/cargo/ops/cargo_compile/unit_generator.rs @@ -198,7 +198,9 @@ impl<'a> UnitGenerator<'a, '_> { .filter(|t| { t.documented() && (!t.is_bin() - || !targets.iter().any(|l| l.is_lib() && l.name() == t.name())) + || !targets + .iter() + .any(|l| l.is_lib() && l.crate_name() == t.crate_name())) }) .collect() } diff --git a/tests/testsuite/doc.rs b/tests/testsuite/doc.rs index 98cee9c2fbc..a809f306cfe 100644 --- a/tests/testsuite/doc.rs +++ b/tests/testsuite/doc.rs @@ -488,30 +488,16 @@ fn doc_lib_bin_same_name_with_dash() { .file("src/main.rs", "fn main() {}") .build(); p.cargo("doc") - .with_stderr_unordered( + .with_stderr( "\ -warning: output filename collision. -The bin target `foo-bar` in package `foo-bar v1.0.0 ([ROOT]/foo)` has the same \ -output filename as the lib target `foo_bar` in package `foo-bar v1.0.0 ([ROOT]/foo)`. -Colliding filename is: [ROOT]/foo/target/doc/foo_bar/index.html -The output filenames should be unique. -This is a known bug where multiple crates with the same name use -the same path; see . -If this looks unexpected, it may be a bug in Cargo. Please file a bug report at -https://github.com/rust-lang/cargo/issues/ with as much information as you -can provide. -cargo [..] -First unit: [..] -Second unit: [..] -[CHECKING] foo-bar v1.0.0 ([ROOT]/foo) [DOCUMENTING] foo-bar v1.0.0 ([ROOT]/foo) [FINISHED] [..] -[GENERATED] [ROOT]/foo/target/doc/foo_bar/index.html and 1 other file +[GENERATED] [ROOT]/foo/target/doc/foo_bar/index.html ", ) .run(); assert!(p.build_dir().join("doc/foo_bar/index.html").exists()); - assert!(p.build_dir().join("doc/foo_bar/fn.main.html").exists()); + assert!(!p.build_dir().join("doc/foo_bar/fn.main.html").exists()); } #[cargo_test]