From 51935f83882e21aad6a4962d73fcc59a53dc0abe Mon Sep 17 00:00:00 2001 From: Gaith Hallak Date: Mon, 19 Dec 2022 13:43:45 +0300 Subject: [PATCH] Treat expr and type inside bound as bound --- src/aeso_syntax_utils.erl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/aeso_syntax_utils.erl b/src/aeso_syntax_utils.erl index e50f2d4..c9ee23a 100644 --- a/src/aeso_syntax_utils.erl +++ b/src/aeso_syntax_utils.erl @@ -31,11 +31,13 @@ | aeso_syntax:field(aeso_syntax:expr()) | aeso_syntax:stmt(). fold(Alg = #alg{zero = Zero, plus = Plus, scoped = Scoped}, Fun, K, X) -> + ExprKind = if K == bind_expr -> bind_expr; true -> expr end, + TypeKind = if K == bind_type -> bind_type; true -> type end, Sum = fun(Xs) -> lists:foldl(Plus, Zero, Xs) end, Same = fun(A) -> fold(Alg, Fun, K, A) end, Decl = fun(D) -> fold(Alg, Fun, decl, D) end, - Type = fun(T) -> fold(Alg, Fun, type, T) end, - Expr = fun(E) -> fold(Alg, Fun, expr, E) end, + Type = fun(T) -> fold(Alg, Fun, TypeKind, T) end, + Expr = fun(E) -> fold(Alg, Fun, ExprKind, E) end, BindExpr = fun(P) -> fold(Alg, Fun, bind_expr, P) end, BindType = fun(T) -> fold(Alg, Fun, bind_type, T) end, Top = Fun(K, X), @@ -155,4 +157,3 @@ used(D) -> (_, _) -> #{} end, decl, D)), lists:filter(NotBound, Xs). -