diff --git a/src/parser/parser.rs b/src/parser/parser.rs index 9fdaa4eff2c..fb43923f8c5 100644 --- a/src/parser/parser.rs +++ b/src/parser/parser.rs @@ -778,7 +778,7 @@ impl<'cmd> Parser<'cmd> { "Parser::parse_long_arg({:?}): Got invalid literal `{:?}`", long_arg, rest ); - let used: Vec = matcher + let mut used: Vec = matcher .arg_ids() .filter(|arg_id| { matcher.check_explicit(arg_id, &crate::builder::ArgPredicate::IsPresent) @@ -790,6 +790,7 @@ impl<'cmd> Parser<'cmd> { }) .cloned() .collect(); + used.push(arg.get_id().clone()); Ok(ParseResult::UnneededAttachedValue { rest: rest.to_str_lossy().into_owned(), diff --git a/tests/builder/flags.rs b/tests/builder/flags.rs index 83d2464b681..50ba789a4f3 100644 --- a/tests/builder/flags.rs +++ b/tests/builder/flags.rs @@ -142,7 +142,7 @@ fn unexpected_value_error() { const USE_FLAG_AS_ARGUMENT: &str = "\ error: The value 'foo' was provided to '--a-flag' but it wasn't expecting any more values -Usage: mycat [OPTIONS] [filename] +Usage: mycat --a-flag [filename] For more information try '--help' ";