diff --git a/src/cargo/ops/cargo_compile.rs b/src/cargo/ops/cargo_compile.rs index 3bb256f9fa1..5e9a764346f 100644 --- a/src/cargo/ops/cargo_compile.rs +++ b/src/cargo/ops/cargo_compile.rs @@ -476,7 +476,10 @@ pub fn create_bcx<'a, 'cfg>( } if let Some(args) = extra_args { - extra_compiler_args.insert(unit.clone(), args.clone()); + extra_compiler_args + .entry(unit.clone()) + .or_default() + .extend(args); } } } diff --git a/tests/testsuite/rustdoc.rs b/tests/testsuite/rustdoc.rs index 26f9a68513b..860428a9223 100644 --- a/tests/testsuite/rustdoc.rs +++ b/tests/testsuite/rustdoc.rs @@ -39,6 +39,17 @@ fn rustdoc_args() { .run(); } +#[cargo_test] +fn rustdoc_binary_args_passed() { + let p = project().file("src/main.rs", "").build(); + + p.cargo("rustdoc -v") + .arg("--") + .arg("--markdown-no-toc") + .with_stderr_contains("[RUNNING] `rustdoc [..] --markdown-no-toc[..]`") + .run(); +} + #[cargo_test] fn rustdoc_foo_with_bar_dependency() { let foo = project()