From 221177b9cbd8fc711536e6dcb8f948dae5c1b172 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 25 Sep 2023 10:18:37 -0500 Subject: [PATCH] fix(assert): Call out the action in positional assert Brought up in #5135 --- clap_builder/src/builder/debug_asserts.rs | 3 ++- tests/builder/multiple_values.rs | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/clap_builder/src/builder/debug_asserts.rs b/clap_builder/src/builder/debug_asserts.rs index 29008be9f5e..afc181c54e4 100644 --- a/clap_builder/src/builder/debug_asserts.rs +++ b/clap_builder/src/builder/debug_asserts.rs @@ -746,8 +746,9 @@ fn assert_arg(arg: &Arg) { ); assert!( arg.is_takes_value_set(), - "Argument '{}` is positional, it must take a value{}", + "Argument '{}` is positional and it must take a value but action is {:?}{}", arg.get_id(), + arg.get_action(), if arg.get_id() == Id::HELP { " (`mut_arg` no longer works with implicit `--help`)" } else if arg.get_id() == Id::VERSION { diff --git a/tests/builder/multiple_values.rs b/tests/builder/multiple_values.rs index 57691f177f1..a3b1959827d 100644 --- a/tests/builder/multiple_values.rs +++ b/tests/builder/multiple_values.rs @@ -1730,7 +1730,7 @@ fn issue_2229() { } #[test] -#[should_panic = "Argument 'pos` is positional, it must take a value"] +#[should_panic = "Argument 'pos` is positional and it must take a value but action is SetTrue"] fn disallow_positionals_without_values() { let cmd = Command::new("test").arg(Arg::new("pos").num_args(0)); cmd.debug_assert();