Skip to content

Commit

Permalink
refactor(parser): Parser is solely responsible for populating ArgMatches
Browse files Browse the repository at this point in the history
  • Loading branch information
epage committed Apr 21, 2022
1 parent 02ffd59 commit 6229e78
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
10 changes: 8 additions & 2 deletions src/parse/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -448,7 +448,10 @@ impl<'help, 'cmd> Parser<'help, 'cmd> {
matches: sc_m.into_inner(),
});

return Validator::new(self).validate(parse_state, matcher, trailing_values);
#[cfg(feature = "env")]
self.add_env(matcher, trailing_values)?;
self.add_defaults(matcher, trailing_values);
return Validator::new(self).validate(parse_state, matcher);
} else {
// Start error processing
return Err(self.match_arg_error(&arg_os, valid_arg_found, trailing_values));
Expand All @@ -465,7 +468,10 @@ impl<'help, 'cmd> Parser<'help, 'cmd> {
self.parse_subcommand(&sc_name, matcher, raw_args, args_cursor, keep_state)?;
}

Validator::new(self).validate(parse_state, matcher, trailing_values)
#[cfg(feature = "env")]
self.add_env(matcher, trailing_values)?;
self.add_defaults(matcher, trailing_values);
Validator::new(self).validate(parse_state, matcher)
}

fn match_arg_error(
Expand Down
6 changes: 0 additions & 6 deletions src/parse/validator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,11 @@ impl<'help, 'cmd, 'parser> Validator<'help, 'cmd, 'parser> {
&mut self,
parse_state: ParseState,
matcher: &mut ArgMatcher,
trailing_values: bool,
) -> ClapResult<()> {
debug!("Validator::validate");
let mut conflicts = Conflicts::new();
let has_subcmd = matcher.subcommand_name().is_some();

#[cfg(feature = "env")]
self.p.add_env(matcher, trailing_values)?;

self.p.add_defaults(matcher, trailing_values);

if let ParseState::Opt(a) = parse_state {
debug!("Validator::validate: needs_val_of={:?}", a);

Expand Down

0 comments on commit 6229e78

Please sign in to comment.