Skip to content

Commit

Permalink
fix(assert): Detect conflicting arguments (unstable)
Browse files Browse the repository at this point in the history
  • Loading branch information
epage committed May 6, 2022
1 parent 3d7ee2e commit 6ceb865
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 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,14 @@ 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",
Expand All @@ -185,6 +209,14 @@ pub(crate) fn assert_app(cmd: &Command) {
}

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 6ceb865

Please sign in to comment.