Skip to content

Commit

Permalink
Make assignment (match) in comprehension work as strict generator
Browse files Browse the repository at this point in the history
  • Loading branch information
richcarl committed Dec 7, 2024
1 parent 3b405bd commit c77dfe2
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions lib/compiler/src/v3_core.erl
Original file line number Diff line number Diff line change
Expand Up @@ -2064,6 +2064,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;
Expand Down Expand Up @@ -2102,6 +2103,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, St0) ->
generator(Line, {generate_strict,L,P,{cons,L,E,{nil,L}}}, Gs, St0);
generator(Line, {Generate,Lg,P0,E}, Gs, St0) when Generate =:= generate;
Generate =:= generate_strict ->
LA = lineno_anno(Line, St0),
Expand Down

0 comments on commit c77dfe2

Please sign in to comment.