From 6bc39d23fb657eb5c5e2a5ed0ca7d9df56a64b7e Mon Sep 17 00:00:00 2001 From: dusk Date: Sun, 23 Nov 2025 14:06:18 +0000 Subject: [PATCH] detect invalid flags before misplaced flags --- crates/command_parser/src/lib.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/crates/command_parser/src/lib.rs b/crates/command_parser/src/lib.rs index 360a170b..8aba4d21 100644 --- a/crates/command_parser/src/lib.rs +++ b/crates/command_parser/src/lib.rs @@ -153,16 +153,15 @@ pub fn parse_command( let mut flags: HashMap> = HashMap::new(); let mut misplaced_flags: Vec = Vec::new(); let mut invalid_flags: Vec = Vec::new(); - for (token_idx, matched_flag) in raw_flags { - if token_idx != command.parse_flags_before { - misplaced_flags.push(matched_flag); - continue; - } - let Some(matched_flag) = match_flag(command.flags.iter(), matched_flag.clone()) - else { - invalid_flags.push(matched_flag); + for (token_idx, raw_flag) in raw_flags { + let Some(matched_flag) = match_flag(command.flags.iter(), raw_flag.clone()) else { + invalid_flags.push(raw_flag); continue; }; + if token_idx != command.parse_flags_before { + misplaced_flags.push(raw_flag); + continue; + } match matched_flag { // a flag was matched Ok((name, value)) => {