File 1902-Make-assignment-match-in-comprehension-work-as-stric.patch of Package erlang

From ab0ea844f77d7550fd11668978f80802943d6668 Mon Sep 17 00:00:00 2001
From: Richard Carlsson <carlsson.richard@gmail.com>
Date: Sat, 7 Dec 2024 16:27:52 +0100
Subject: [PATCH 2/8] Make assignment (match) in comprehension work as strict
 generator

---
 lib/compiler/src/v3_core.erl | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/compiler/src/v3_core.erl b/lib/compiler/src/v3_core.erl
index 06151bff64..17c12e2357 100644
--- a/lib/compiler/src/v3_core.erl
+++ b/lib/compiler/src/v3_core.erl
@@ -2092,6 +2092,7 @@ get_nomatch_total(NomatchModes) ->
             end
         end.
 
+is_generator({match,_,_,_}) -> true;
 is_generator({generate,_,_,_}) -> true;
 is_generator({generate_strict,_,_,_}) -> true;
 is_generator({b_generate,_,_,_}) -> true;
@@ -2191,6 +2192,8 @@ get_qual_anno(Abstract) -> element(2, Abstract).
 %% generator(Line, Generator, Guard, State) -> {Generator',State}.
 %%  Transform a given generator into its #igen{} representation.
 
+generator(Line, {match,L,P,E}, Gs, StrictPats, St0) ->
+    generator(Line, {generate_strict,L,P,{cons,L,E,{nil,L}}}, Gs, StrictPats, St0);
 generator(Line, {Generate,Lg,P0,E}, Gs, StrictPats, St0)
   when Generate =:= generate;
        Generate =:= generate_strict ->
-- 
2.51.0

openSUSE Build Service is sponsored by