
* Change syntax tree and parser * Add assign pattern to type inference * Use check_expr instead of hard-coded type * Add fcode generation for assign pattern * Implement rename_spat for assign pattern * Add tests * Update CHANGELOG.md * Update docs and changelog * Add letpat to aeso_syntax_utils:fold * Use Plus instead of Scoped
17 lines
354 B
Plaintext
17 lines
354 B
Plaintext
include "List.aes"
|
|
|
|
contract AssignPatterns =
|
|
|
|
entrypoint test() = foo([1, 0, 2], (2, Some(3)), Some([4, 5]))
|
|
|
|
entrypoint foo(xs : list(int), p : int * option(int), some : option(list(int))) =
|
|
let x::(t = y::_) = xs
|
|
let z::_ = t
|
|
|
|
let (a, (o = Some(b))) = p
|
|
|
|
let Some((f = g::_)) = some
|
|
g + List.get(1, f)
|
|
|
|
x + y + z + a + b
|