Skip to content

Commit cd1e028

Browse files
committed
[EEP 78] Implement coverage for multi-comprehensions
1 parent c1bf502 commit cd1e028

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

lib/compiler/src/sys_coverage.erl

+15-4
Original file line numberDiff line numberDiff line change
@@ -509,16 +509,15 @@ munge_expr({call,Anno,Expr,Exprs}, Vars0) ->
509509
{MungedExprs, Vars2} = munge_args(Exprs, Vars1),
510510
{{call,Anno,MungedExpr,MungedExprs}, Vars2};
511511
munge_expr({lc,Anno,Expr,Qs}, Vars0) ->
512-
{MungedExpr, Vars1} = munge_expr(?BLOCK1(Expr), Vars0),
512+
{MungedExpr, Vars1} = munge_comprehension(Expr, Vars0),
513513
{MungedQs, Vars2} = munge_qualifiers(Qs, Vars1),
514514
{{lc,Anno,MungedExpr,MungedQs}, Vars2};
515515
munge_expr({bc,Anno,Expr,Qs}, Vars0) ->
516516
{MungedExpr,Vars1} = munge_expr(?BLOCK1(Expr), Vars0),
517517
{MungedQs, Vars2} = munge_qualifiers(Qs, Vars1),
518518
{{bc,Anno,MungedExpr,MungedQs}, Vars2};
519-
munge_expr({mc,Anno,{map_field_assoc,FAnno,K,V},Qs}, Vars0) ->
520-
Expr = {map_field_assoc,FAnno,?BLOCK1(K),?BLOCK1(V)},
521-
{MungedExpr, Vars1} = munge_expr(Expr, Vars0),
519+
munge_expr({mc,Anno,Expr,Qs}, Vars0) ->
520+
{MungedExpr, Vars1} = munge_comprehension(Expr, Vars0),
522521
{MungedQs, Vars2} = munge_qualifiers(Qs, Vars1),
523522
{{mc,Anno,MungedExpr,MungedQs}, Vars2};
524523
munge_expr({block,Anno,Body}, Vars0) ->
@@ -592,6 +591,18 @@ is_atomic({nil,_}) -> true;
592591
is_atomic({var,_,_}) -> true;
593592
is_atomic(_) -> false.
594593

594+
munge_comprehension([Expr|Exprs], Vars0) ->
595+
{MungedExpr, Vars1} = munge_comprehension(Expr, Vars0),
596+
{MungedExprs, Vars2} = munge_comprehension(Exprs, Vars1),
597+
{[MungedExpr|MungedExprs], Vars2};
598+
munge_comprehension([], Vars) ->
599+
{[], Vars};
600+
munge_comprehension({map_field_assoc,Anno,K,V}, Vars0) ->
601+
Expr = {map_field_assoc,Anno,?BLOCK(K),?BLOCK(V)},
602+
munge_expr(Expr, Vars0);
603+
munge_comprehension(Expr, Vars0) ->
604+
munge_expr(?BLOCK1(Expr), Vars0).
605+
595606
munge_exprs(Exprs, Vars) ->
596607
munge_exprs(Exprs, Vars, []).
597608

0 commit comments

Comments
 (0)