Correctly destructure patterns that are assigned to a thunk'd value

Closes #4309
This commit is contained in:
Ayaz Hafiz 2022-10-12 09:23:48 -05:00
parent fb926c9884
commit a68c63f1d1
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
2 changed files with 61 additions and 15 deletions

View file

@ -1982,3 +1982,46 @@ fn str_with_prefix() {
RocStr
);
}
#[test]
#[cfg(any(feature = "gen-llvm", feature = "gen-wasm"))]
fn destructure_pattern_assigned_from_thunk_opaque() {
assert_evals_to!(
indoc!(
r#"
app "test" provides [main] to "./platform"
MyCustomType := Str
myMsg = @MyCustomType "Hello"
main =
@MyCustomType msg = myMsg
msg
"#
),
RocStr::from("Hello"),
RocStr
);
}
#[test]
#[cfg(any(feature = "gen-llvm", feature = "gen-wasm"))]
fn destructure_pattern_assigned_from_thunk_tag() {
assert_evals_to!(
indoc!(
r#"
app "test" provides [main] to "./platform"
myMsg = A "hello " "world"
main =
A m1 m2 = myMsg
Str.concat m1 m2
"#
),
RocStr::from("hello world"),
RocStr
);
}