File 3509-erl_id_trans-Implement-support-for-maybe-.-end.patch of Package erlang
From 217f3231c36ee0647524888d720a1d51e8b26261 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Fri, 19 Nov 2021 12:34:06 +0100
Subject: [PATCH 09/12] erl_id_trans: Implement support for maybe ... end
---
lib/stdlib/examples/erl_id_trans.erl | 11 +++++++++++
lib/stdlib/test/id_transform_SUITE.erl | 2 +-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/lib/stdlib/examples/erl_id_trans.erl b/lib/stdlib/examples/erl_id_trans.erl
index 292c06506a..d9d1154515 100644
--- a/lib/stdlib/examples/erl_id_trans.erl
+++ b/lib/stdlib/examples/erl_id_trans.erl
@@ -502,6 +502,17 @@ expr({'catch',Anno,E0}) ->
%% No new variables added.
E1 = expr(E0),
{'catch',Anno,E1};
+expr({'maybe',MaybeAnno,Es0}) ->
+ Es = exprs(Es0),
+ {'maybe',MaybeAnno,Es};
+expr({'maybe',MaybeAnno,Es0,{'else',ElseAnno,Cs0}}) ->
+ Es = exprs(Es0),
+ Cs = clauses(Cs0),
+ {'maybe',MaybeAnno,Es,{'else',ElseAnno,Cs}};
+expr({maybe_match,Anno,P0,E0}) ->
+ E = expr(E0),
+ P = pattern(P0),
+ {maybe_match,Anno,P,E};
expr({match,Anno,P0,E0}) ->
E1 = expr(E0),
P1 = pattern(P0),
diff --git a/lib/stdlib/test/id_transform_SUITE.erl b/lib/stdlib/test/id_transform_SUITE.erl
index 0addf09461..0491dc6508 100644
--- a/lib/stdlib/test/id_transform_SUITE.erl
+++ b/lib/stdlib/test/id_transform_SUITE.erl
@@ -59,7 +59,7 @@ end_per_group(_GroupName, Config) ->
id_transform(Config) when is_list(Config) ->
File = filename:join([code:lib_dir(stdlib),"examples",
"erl_id_trans.erl"]),
- {ok,erl_id_trans,Bin} = compile:file(File,[binary]),
+ {ok,erl_id_trans,Bin} = compile:file(File, [binary,report]),
{module,erl_id_trans} = code:load_binary(erl_id_trans, File, Bin),
case test_server:is_valgrind() of
false ->
--
2.34.1