Skip to content

Commit 3d90245

Browse files
Merge pull request #92 from gnpaone/sync-action
Sync source repo
2 parents 411ca33 + d081b74 commit 3d90245

3 files changed

Lines changed: 22 additions & 1 deletion

File tree

src/analyzer.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,11 +234,12 @@ impl<'run, 'src> Analyzer<'run, 'src> {
234234
parameter: parameter.name.lexeme(),
235235
}));
236236
}
237+
237238
parameters.insert(parameter.name.lexeme());
238239

239240
if parameter.default.is_some() {
240241
passed_default = true;
241-
} else if passed_default {
242+
} else if passed_default && parameter.is_required() {
242243
return Err(
243244
parameter
244245
.name

src/parameter.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ pub(crate) struct Parameter<'src> {
1313
pub(crate) name: Name<'src>,
1414
}
1515

16+
impl Parameter<'_> {
17+
pub(crate) fn is_required(&self) -> bool {
18+
self.default.is_none() && self.kind != ParameterKind::Star
19+
}
20+
}
21+
1622
impl ColorDisplay for Parameter<'_> {
1723
fn fmt(&self, f: &mut Formatter, color: Color) -> fmt::Result {
1824
if let Some(prefix) = self.kind.prefix() {

tests/parameters.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,17 @@ fn parameter_default_values_may_not_use_later_parameters() {
3636
.status(EXIT_FAILURE)
3737
.run();
3838
}
39+
40+
#[test]
41+
fn star_may_follow_default() {
42+
Test::new()
43+
.justfile(
44+
"
45+
foo bar='baz' *bob:
46+
@echo {{bar}} {{bob}}
47+
",
48+
)
49+
.args(["foo", "hello", "goodbye"])
50+
.stdout("hello goodbye\n")
51+
.run();
52+
}

0 commit comments

Comments
 (0)