fix: allow spread operator on positional constructors closes #677

This commit is contained in:
rvcas
2023-11-27 23:11:17 -05:00
parent d5820bb20a
commit 6ce30bd949
2 changed files with 71 additions and 0 deletions

View File

@@ -981,6 +981,46 @@ fn list_pattern_6() {
assert!(check(parse(source_code)).is_ok())
}
#[test]
fn spread_with_positional_constr_args() {
let source_code = r#"
type Redeemer {
First(Int)
Second
}
fn foo(redeemer: Redeemer) {
when redeemer is {
First(..) -> True
Second -> True
}
}
"#;
assert!(check(parse(source_code)).is_ok())
}
#[test]
fn unnecessary_spread_with_positional_constr_args() {
let source_code = r#"
type Redeemer {
First(Int)
Second
}
fn foo(redeemer: Redeemer) {
when redeemer is {
First(x, ..) -> True
Second -> True
}
}
"#;
assert!(matches!(
check(parse(source_code)),
Err((_, Error::UnnecessarySpreadOperator { .. }))
))
}
#[test]
fn trace_strings() {
let source_code = r#"