Skip to content

Commit 551e052

Browse files
committed
refactor(parser): Remove redundant error check
1 parent 424a243 commit 551e052

File tree

4 files changed

+5
-35
lines changed

4 files changed

+5
-35
lines changed

clap_builder/src/parser/matches/matched_arg.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,6 @@ impl MatchedArg {
132132
self.vals.last().map(|x| x.len()).unwrap_or(0)
133133
}
134134

135-
pub(crate) fn all_val_groups_empty(&self) -> bool {
136-
self.vals.iter().flatten().count() == 0
137-
}
138-
139135
pub(crate) fn check_explicit(&self, predicate: &ArgPredicate) -> bool {
140136
if self.source.map(|s| !s.is_explicit()).unwrap_or(false) {
141137
return false;

clap_builder/src/parser/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ pub(crate) mod features;
1212
pub(crate) use self::arg_matcher::ArgMatcher;
1313
pub(crate) use self::matches::{MatchedArg, SubCommand};
1414
pub(crate) use self::parser::Identifier;
15+
pub(crate) use self::parser::Parser;
1516
pub(crate) use self::parser::PendingArg;
16-
pub(crate) use self::parser::{ParseState, Parser};
1717
pub(crate) use self::validator::get_possible_values_cli;
1818
pub(crate) use self::validator::Validator;
1919

clap_builder/src/parser/parser.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ impl<'cmd> Parser<'cmd> {
440440
#[cfg(feature = "env")]
441441
ok!(self.add_env(matcher));
442442
ok!(self.add_defaults(matcher));
443-
return Validator::new(self.cmd).validate(parse_state, matcher);
443+
return Validator::new(self.cmd).validate(matcher);
444444
} else {
445445
// Start error processing
446446
let _ = self.resolve_pending(matcher);
@@ -478,7 +478,7 @@ impl<'cmd> Parser<'cmd> {
478478
#[cfg(feature = "env")]
479479
ok!(self.add_env(matcher));
480480
ok!(self.add_defaults(matcher));
481-
Validator::new(self.cmd).validate(parse_state, matcher)
481+
Validator::new(self.cmd).validate(matcher)
482482
}
483483

484484
fn match_arg_error(

clap_builder/src/parser/validator.rs

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::builder::StyledStr;
33
use crate::builder::{Arg, ArgGroup, ArgPredicate, Command, PossibleValue};
44
use crate::error::{Error, Result as ClapResult};
55
use crate::output::Usage;
6-
use crate::parser::{ArgMatcher, ParseState};
6+
use crate::parser::ArgMatcher;
77
use crate::util::ChildGraph;
88
use crate::util::FlatMap;
99
use crate::util::FlatSet;
@@ -21,37 +21,11 @@ impl<'cmd> Validator<'cmd> {
2121
Validator { cmd, required }
2222
}
2323

24-
pub(crate) fn validate(
25-
&mut self,
26-
parse_state: ParseState,
27-
matcher: &mut ArgMatcher,
28-
) -> ClapResult<()> {
24+
pub(crate) fn validate(&mut self, matcher: &mut ArgMatcher) -> ClapResult<()> {
2925
debug!("Validator::validate");
3026
let conflicts = Conflicts::with_args(self.cmd, matcher);
3127
let has_subcmd = matcher.subcommand_name().is_some();
3228

33-
if let ParseState::Opt(a) = parse_state {
34-
debug!("Validator::validate: needs_val_of={a:?}");
35-
36-
let o = &self.cmd[&a];
37-
let should_err = if let Some(v) = matcher.args.get(o.get_id()) {
38-
v.all_val_groups_empty() && o.get_min_vals() != 0
39-
} else {
40-
true
41-
};
42-
if should_err {
43-
return Err(Error::empty_value(
44-
self.cmd,
45-
&get_possible_values_cli(o)
46-
.iter()
47-
.filter(|pv| !pv.is_hide_set())
48-
.map(|n| n.get_name().to_owned())
49-
.collect::<Vec<_>>(),
50-
o.to_string(),
51-
));
52-
}
53-
}
54-
5529
if !has_subcmd && self.cmd.is_arg_required_else_help_set() {
5630
let num_user_values = matcher
5731
.args()

0 commit comments

Comments
 (0)