Skip to content

Commit

Permalink
Merge pull request #3701 from epage/required
Browse files Browse the repository at this point in the history
fix(assert): Detect conflicting arguments (unstable)
  • Loading branch information
epage committed May 6, 2022
2 parents 122b4b4 + 6ceb865 commit 36f8e47
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions src/build/debug_asserts.rs
Expand Up @@ -155,6 +155,14 @@ pub(crate) fn assert_app(cmd: &Command) {
}

for req in &arg.r_ifs {
#[cfg(feature = "unstable-v4")]
{
assert!(
!arg.is_required_set(),
"Argument {}: `required` conflicts with `required_if_eq*`",
arg.name
);
}
assert!(
cmd.id_exists(&req.0),
"Command {}: Argument or group '{:?}' specified in 'required_if_eq*' for '{}' does not exist",
Expand All @@ -165,6 +173,14 @@ pub(crate) fn assert_app(cmd: &Command) {
}

for req in &arg.r_ifs_all {
#[cfg(feature = "unstable-v4")]
{
assert!(
!arg.is_required_set(),
"Argument {}: `required` conflicts with `required_if_eq_all`",
arg.name
);
}
assert!(
cmd.id_exists(&req.0),
"Command {}: Argument or group '{:?}' specified in 'required_if_eq_all' for '{}' does not exist",
Expand All @@ -175,6 +191,32 @@ pub(crate) fn assert_app(cmd: &Command) {
}

for req in &arg.r_unless {
#[cfg(feature = "unstable-v4")]
{
assert!(
!arg.is_required_set(),
"Argument {}: `required` conflicts with `required_unless*`",
arg.name
);
}
assert!(
cmd.id_exists(req),
"Command {}: Argument or group '{:?}' specified in 'required_unless*' for '{}' does not exist",
cmd.get_name(),
req,
arg.name,
);
}

for req in &arg.r_unless_all {
#[cfg(feature = "unstable-v4")]
{
assert!(
!arg.is_required_set(),
"Argument {}: `required` conflicts with `required_unless*`",
arg.name
);
}
assert!(
cmd.id_exists(req),
"Command {}: Argument or group '{:?}' specified in 'required_unless*' for '{}' does not exist",
Expand Down

0 comments on commit 36f8e47

Please sign in to comment.