diff --git a/src/aeso_ast_infer_types.erl b/src/aeso_ast_infer_types.erl index 573bc34..b46f279 100644 --- a/src/aeso_ast_infer_types.erl +++ b/src/aeso_ast_infer_types.erl @@ -1798,6 +1798,10 @@ infer_block(Env, _, [{letval, Attrs, Pattern, E}|Rest], BlockType) -> {'case', _, NewPattern, {typed, _, {block, _, NewRest}, _}} = infer_case(Env, Attrs, Pattern, PatType, {block, Attrs, Rest}, BlockType), [{letval, Attrs, NewPattern, NewE}|NewRest]; +infer_block(Env, Attrs, [Using = {using, _, _} | Rest], BlockType) -> + infer_block(check_usings(Env, [Using]), Attrs, Rest, BlockType); +infer_block(Env, Attrs, [Using = {using, _, _, _} | Rest], BlockType) -> + infer_block(check_usings(Env, [Using]), Attrs, Rest, BlockType); infer_block(Env, Attrs, [E|Rest], BlockType) -> [infer_expr(Env, E)|infer_block(Env, Attrs, Rest, BlockType)]. diff --git a/src/aeso_parser.erl b/src/aeso_parser.erl index 4257eb6..15ece13 100644 --- a/src/aeso_parser.erl +++ b/src/aeso_parser.erl @@ -263,7 +263,8 @@ body() -> stmt() -> ?LAZY_P(choice( - [ expr() + [ using() + , expr() , letdecl() , {switch, keyword(switch), parens(expr()), maybe_block(branch())} , {'if', keyword('if'), parens(expr()), body()}