diff --git a/cargo-miri/bin.rs b/cargo-miri/bin.rs index a7be5843d4e6..4d7b7da6634c 100644 --- a/cargo-miri/bin.rs +++ b/cargo-miri/bin.rs @@ -952,12 +952,14 @@ fn phase_runner(binary: &Path, binary_args: env::Args, phase: RunnerPhase) { assert!(suffix.starts_with('=')); // Drop this argument. } else if let Some(suffix) = arg.strip_prefix(json_flag) { - assert!(suffix.starts_with('=')); + let suffix = suffix.strip_prefix('=').unwrap(); // This is how we pass through --color=always. We detect that Cargo is detecting rustc // to emit the diagnostic structure that Cargo would consume from rustc to emit colored // diagnostics, and ask rustc to emit them. // See https://github.com/rust-lang/miri/issues/2037 - if arg.split(',').any(|a| a == "diagnostic-rendered-ansi") { + // First skip over the leading `=`, then check for diagnostic-rendered-ansi in the + // comma-separated list + if suffix.split(',').any(|a| a == "diagnostic-rendered-ansi") { cmd.arg("--color=always"); } // But aside from remembering that colored output was requested, drop this argument.