Skip to content

Commit

Permalink
[EEP 78] Implement coverage for multi-comprehensions
Browse files Browse the repository at this point in the history
  • Loading branch information
michalmuskala committed Feb 7, 2025
1 parent c1bf502 commit cd1e028
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions lib/compiler/src/sys_coverage.erl
Original file line number Diff line number Diff line change
Expand Up @@ -509,16 +509,15 @@ munge_expr({call,Anno,Expr,Exprs}, Vars0) ->
{MungedExprs, Vars2} = munge_args(Exprs, Vars1),
{{call,Anno,MungedExpr,MungedExprs}, Vars2};
munge_expr({lc,Anno,Expr,Qs}, Vars0) ->
{MungedExpr, Vars1} = munge_expr(?BLOCK1(Expr), Vars0),
{MungedExpr, Vars1} = munge_comprehension(Expr, Vars0),
{MungedQs, Vars2} = munge_qualifiers(Qs, Vars1),
{{lc,Anno,MungedExpr,MungedQs}, Vars2};
munge_expr({bc,Anno,Expr,Qs}, Vars0) ->
{MungedExpr,Vars1} = munge_expr(?BLOCK1(Expr), Vars0),
{MungedQs, Vars2} = munge_qualifiers(Qs, Vars1),
{{bc,Anno,MungedExpr,MungedQs}, Vars2};
munge_expr({mc,Anno,{map_field_assoc,FAnno,K,V},Qs}, Vars0) ->
Expr = {map_field_assoc,FAnno,?BLOCK1(K),?BLOCK1(V)},
{MungedExpr, Vars1} = munge_expr(Expr, Vars0),
munge_expr({mc,Anno,Expr,Qs}, Vars0) ->
{MungedExpr, Vars1} = munge_comprehension(Expr, Vars0),
{MungedQs, Vars2} = munge_qualifiers(Qs, Vars1),
{{mc,Anno,MungedExpr,MungedQs}, Vars2};
munge_expr({block,Anno,Body}, Vars0) ->
Expand Down Expand Up @@ -592,6 +591,18 @@ is_atomic({nil,_}) -> true;
is_atomic({var,_,_}) -> true;
is_atomic(_) -> false.

munge_comprehension([Expr|Exprs], Vars0) ->
{MungedExpr, Vars1} = munge_comprehension(Expr, Vars0),
{MungedExprs, Vars2} = munge_comprehension(Exprs, Vars1),
{[MungedExpr|MungedExprs], Vars2};
munge_comprehension([], Vars) ->
{[], Vars};
munge_comprehension({map_field_assoc,Anno,K,V}, Vars0) ->
Expr = {map_field_assoc,Anno,?BLOCK(K),?BLOCK(V)},
munge_expr(Expr, Vars0);
munge_comprehension(Expr, Vars0) ->
munge_expr(?BLOCK1(Expr), Vars0).

munge_exprs(Exprs, Vars) ->
munge_exprs(Exprs, Vars, []).

Expand Down

0 comments on commit cd1e028

Please sign in to comment.