From 0a22c7a34aa38afbf66a77759ef065a749ffc9df Mon Sep 17 00:00:00 2001 From: Ulf Norell Date: Tue, 24 Sep 2019 16:22:41 +0200 Subject: [PATCH] More let-floating --- src/aeso_ast_to_fcode.erl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/aeso_ast_to_fcode.erl b/src/aeso_ast_to_fcode.erl index b08dc75..1a0e8e8 100644 --- a/src/aeso_ast_to_fcode.erl +++ b/src/aeso_ast_to_fcode.erl @@ -1231,6 +1231,9 @@ let_float(_, {proj, E, I}) -> pull_out_let({proj, {here, E}, I}); let_float(_, {set_proj, E, I, V}) -> pull_out_let({set_proj, {here, E}, I, {here, V}}); +let_float(_, {op, Op, Es}) -> + {Lets, Es1} = pull_out_let([{here, E} || E <- Es]), + let_bind(Lets, {op, Op, Es1}); let_float(_, E) -> E. pull_out_let(Expr) when is_tuple(Expr) ->