From daefddfc9efbfa19fb36d69d2ce8cef531a460fd Mon Sep 17 00:00:00 2001 From: Casey Rodarmor Date: Mon, 6 Jul 2026 20:03:07 -0700 Subject: [PATCH 1/2] Don't panic when recipe with flag parameter is used as dependency --- src/recipe.rs | 4 +++- tests/options.rs | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/recipe.rs b/src/recipe.rs index b2567a2476..19d114c650 100644 --- a/src/recipe.rs +++ b/src/recipe.rs @@ -73,7 +73,9 @@ impl<'src> Recipe<'src> { rest = &rest[1..]; vec![argument.clone()] } else { - debug_assert!(parameter.default.is_some() || parameter.kind == ParameterKind::Star); + debug_assert!( + parameter.default.is_some() || parameter.kind == ParameterKind::Star || parameter.flag + ); Vec::new() }; diff --git a/tests/options.rs b/tests/options.rs index 7060b8aefe..bf0c993cb3 100644 --- a/tests/options.rs +++ b/tests/options.rs @@ -1283,3 +1283,23 @@ fn multiple_option_below_min_is_an_error() { .stderr("error: recipe `foo` parameter `bar` got 1 value but takes at least 2\n") .failure(); } + +#[test] +fn recipe_with_flag_parameter_may_be_used_as_dependency() { + Test::new() + .justfile( + " + set lists + + [arg('bar', long, flag)] + @foo bar: + echo bar={{show(bar)}} + + baz: foo + ", + ) + .unstable() + .args(["baz"]) + .stdout("bar=[]\n") + .success(); +} From 7fab29933c95723b3e5799bcaaff55b56b2a1ca5 Mon Sep 17 00:00:00 2001 From: Casey Rodarmor Date: Mon, 6 Jul 2026 20:29:11 -0700 Subject: [PATCH 2/2] Adjust --- src/recipe.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/recipe.rs b/src/recipe.rs index 19d114c650..85b2b19105 100644 --- a/src/recipe.rs +++ b/src/recipe.rs @@ -73,9 +73,6 @@ impl<'src> Recipe<'src> { rest = &rest[1..]; vec![argument.clone()] } else { - debug_assert!( - parameter.default.is_some() || parameter.kind == ParameterKind::Star || parameter.flag - ); Vec::new() };