Allow patterns in lets and list comprehension binds
This commit is contained in:
@@ -163,7 +163,8 @@ compilable_contracts() ->
|
||||
"payable",
|
||||
"unapplied_builtins",
|
||||
"underscore_number_literals",
|
||||
"qualified_constructor"
|
||||
"qualified_constructor",
|
||||
"let_patterns"
|
||||
].
|
||||
|
||||
not_yet_compilable(fate) -> [];
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user