From b55e8d47a94c5ca99e0b2df645bc726795fa07e9 Mon Sep 17 00:00:00 2001 From: akabinds Date: Tue, 2 Aug 2022 13:01:32 -0500 Subject: [PATCH] implemented requested changes; fixed one failing test (need to fix other) --- src/bin/cargo/main.rs | 8 ++++++-- tests/testsuite/cargo_command.rs | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/bin/cargo/main.rs b/src/bin/cargo/main.rs index d0775423b..667b110de 100644 --- a/src/bin/cargo/main.rs +++ b/src/bin/cargo/main.rs @@ -170,9 +170,13 @@ fn execute_external_subcommand(config: &Config, cmd: &str, args: &[&str]) -> Cli let did_you_mean = closest_msg(cmd, suggestions.keys(), |c| c); let err = if cmd.contains('+') { - anyhow::format_err!("no such subcommand: `{}`{}\n\n\tCargo does not handle `+toolchain` directives itself.\n\tDid you mean to run `cargo` through `rustup` instead?\n\tsuggestion: view a list of all installed Cargo subcommands using `cargo --list`", cmd, did_you_mean) + anyhow::format_err!("no such subcommand: `{}`{}\n\n\tCargo does not handle `+toolchain` directives itself.\n\tDid you mean to run `cargo` through `rustup` instead?", cmd, did_you_mean) } else { - anyhow::format_err!("no such subcommand: `{}`{}\n\n\tsuggestion: view a list of all installed Cargo subcommands using `cargo --list`", cmd, did_you_mean) + if did_you_mean.is_empty() { + anyhow::format_err!("no such subcommand: `{}`\n\n\tA similar Cargo subcommand could not be found\n\tView a list of installed Cargo subcommands using `cargo --list`", cmd) + } else { + anyhow::format_err!("no such subcommand: `{}`{}", cmd, did_you_mean) + } }; return Err(CliError::new(err, 101)); diff --git a/tests/testsuite/cargo_command.rs b/tests/testsuite/cargo_command.rs index 3190e8eaf..4732d184d 100644 --- a/tests/testsuite/cargo_command.rs +++ b/tests/testsuite/cargo_command.rs @@ -273,7 +273,7 @@ fn find_closest_dont_correct_nonsense() { fn displays_subcommand_on_error() { cargo_process("invalid-command") .with_status(101) - .with_stderr("[ERROR] no such subcommand: `invalid-command`\n") + .with_stderr("[ERROR] no such subcommand: `invalid-command`\n\nA similar Cargo subcommand could not be found\nView a list of installed Cargo subcommands using `cargo --list`") .run(); }