diff options
author | Björn Gustavsson <bjorn@erlang.org> | 2023-01-17 08:32:05 +0100 |
---|---|---|
committer | Björn Gustavsson <bjorn@erlang.org> | 2023-02-03 07:53:58 +0100 |
commit | e5d48a29bff32c2ce653e91a70a83660199f8a80 (patch) | |
tree | 4e7aa88c32ebf332e54cbdc6db87d8284b6981f6 /lib/stdlib/src/erl_expand_records.erl | |
parent | 119d9a2ef1564deed244b7e5fe745f04b353ecb0 (diff) | |
download | erlang-e5d48a29bff32c2ce653e91a70a83660199f8a80.tar.gz |
erl_expand_records: Handle map comprehensions
Diffstat (limited to 'lib/stdlib/src/erl_expand_records.erl')
-rw-r--r-- | lib/stdlib/src/erl_expand_records.erl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/stdlib/src/erl_expand_records.erl b/lib/stdlib/src/erl_expand_records.erl index 31442e5140..60c84286e5 100644 --- a/lib/stdlib/src/erl_expand_records.erl +++ b/lib/stdlib/src/erl_expand_records.erl @@ -289,6 +289,10 @@ expr({bc,Anno,E0,Qs0}, St0) -> {Qs1,St1} = lc_tq(Anno, Qs0, St0), {E1,St2} = expr(E0, St1), {{bc,Anno,E1,Qs1},St2}; +expr({mc,Anno,E0,Qs0}, St0) -> + {Qs1,St1} = lc_tq(Anno, Qs0, St0), + {E1,St2} = expr(E0, St1), + {{mc,Anno,E1,Qs1},St2}; expr({tuple,Anno,Es0}, St0) -> {Es1,St1} = expr_list(Es0, St0), {{tuple,Anno,Es1},St1}; @@ -515,6 +519,11 @@ lc_tq(Anno, [{b_generate,AnnoG,P0,G0} | Qs0], St0) -> {P1,St2} = pattern(P0, St1), {Qs1,St3} = lc_tq(Anno, Qs0, St2), {[{b_generate,AnnoG,P1,G1} | Qs1],St3}; +lc_tq(Anno, [{m_generate,AnnoG,P0,G0} | Qs0], St0) -> + {G1,St1} = expr(G0, St0), + {P1,St2} = pattern(P0, St1), + {Qs1,St3} = lc_tq(Anno, Qs0, St2), + {[{m_generate,AnnoG,P1,G1} | Qs1],St3}; lc_tq(Anno, [F0 | Qs0], #exprec{calltype=Calltype,raw_records=Records}=St0) -> %% Allow record/2 and expand out as guard test. IsOverriden = fun(FA) -> |