Allow patterns in lets and list comprehension binds

This commit is contained in:
Ulf Norell
2019-12-10 16:12:08 +01:00
parent d844c4d276
commit b51a79b5e1
10 changed files with 70 additions and 43 deletions
+2 -1
View File
@@ -163,7 +163,8 @@ compilable_contracts() ->
"payable",
"unapplied_builtins",
"underscore_number_literals",
"qualified_constructor"
"qualified_constructor",
"let_patterns"
].
not_yet_compilable(fate) -> [];
+1 -1
View File
@@ -78,7 +78,7 @@ parse_string(Text, Opts) ->
aeso_parser:string(Text, Opts).
parse_expr(Text) ->
[{letval, _, _, _, Expr}] =
[{letval, _, _, Expr}] =
parse_string("let _ = " ++ Text),
Expr.
+13
View File
@@ -0,0 +1,13 @@
contract LetPatterns =
record r = {x : int, y : int, b : bool}
entrypoint test() = foo([1, 0], (2, 3), Some(4), {x = 5, y = 6, b = false})
entrypoint foo(xs : list(int), p : int * int, some : option(int), r : r) =
let x :: _ = xs
let (a, b) = p
let Some(n) = some
let {x = i, y = j} = r
x + a + b + n + i + j