Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang
erlang
2144-cover-Support-map-comprehensions.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2144-cover-Support-map-comprehensions.patch of Package erlang
From e387cc21d7f251678b18332e2e605d650fde2c56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org> Date: Mon, 6 Feb 2023 10:34:05 +0100 Subject: [PATCH] cover: Support map comprehensions --- lib/tools/src/cover.erl | 13 +++++++++++++ lib/tools/test/cover_SUITE.erl | 19 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/lib/tools/src/cover.erl b/lib/tools/src/cover.erl index 1f7a518dfe..802e54c869 100644 --- a/lib/tools/src/cover.erl +++ b/lib/tools/src/cover.erl @@ -1865,6 +1865,10 @@ expand({bc,Anno,Expr,Qs}, Vs, N) -> {ExpandedExpr,N2} = expand(Expr, Vs, N), {ExpandedQs,N3} = expand_qualifiers(Qs, Vs, N2), {{bc,Anno,ExpandedExpr,ExpandedQs},N3}; +expand({mc,Anno,Expr,Qs}, Vs, N) -> + {ExpandedExpr,N2} = expand(Expr, Vs, N), + {ExpandedQs,N3} = expand_qualifiers(Qs, Vs, N2), + {{mc,Anno,ExpandedExpr,ExpandedQs},N3}; expand({op,_Anno,'andalso',ExprL,ExprR}, Vs, N) -> {ExpandedExprL,N2} = expand(ExprL, Vs, N), {ExpandedExprR,N3} = expand(ExprR, Vs, N2), @@ -2239,6 +2243,11 @@ munge_expr({bc,Anno,Expr,Qs}, Vars) -> {MungedExpr,Vars2} = munge_expr(?BLOCK1(Expr), Vars), {MungedQs, Vars3} = munge_qualifiers(Qs, Vars2), {{bc,Anno,MungedExpr,MungedQs}, Vars3}; +munge_expr({mc,Anno,{map_field_assoc,FAnno,K,V},Qs}, Vars) -> + Expr = {map_field_assoc,FAnno,?BLOCK1(K),?BLOCK1(V)}, + {MungedExpr,Vars2} = munge_expr(Expr, Vars), + {MungedQs, Vars3} = munge_qualifiers(Qs, Vars2), + {{mc,Anno,MungedExpr,MungedQs}, Vars3}; munge_expr({block,Anno,Body}, Vars) -> {MungedBody, Vars2} = munge_body(Body, Vars), {{block,Anno,MungedBody}, Vars2}; @@ -2311,6 +2320,10 @@ munge_qs([{b_generate,Anno,Pattern,Expr}|Qs], Vars, MQs) -> A = element(2, Expr), {MExpr, Vars2} = munge_expr(Expr, Vars), munge_qs1(Qs, A, {b_generate,Anno,Pattern,MExpr}, Vars, Vars2, MQs); +munge_qs([{m_generate,Anno,Pattern,Expr}|Qs], Vars, MQs) -> + A = element(2, Expr), + {MExpr, Vars2} = munge_expr(Expr, Vars), + munge_qs1(Qs, A, {m_generate,Anno,Pattern,MExpr}, Vars, Vars2, MQs); munge_qs([Expr|Qs], Vars, MQs) -> A = element(2, Expr), {MungedExpr, Vars2} = munge_expr(Expr, Vars), diff --git a/lib/tools/test/cover_SUITE.erl b/lib/tools/test/cover_SUITE.erl index 9977fa8763..f98b066678 100644 --- a/lib/tools/test/cover_SUITE.erl +++ b/lib/tools/test/cover_SUITE.erl @@ -1522,6 +1522,25 @@ comprehension_8188(Cf) -> " <<_>> <= << 1, 2 >>,\n" % 2 " true >>.\n" % 4 "two() -> 2">>, Cf), % 1 + + [{{t,1},1}, + {{t,2},2}, + {{t,3},2}, + {{t,5},1}, + {{t,8},3}, + {{t,9},2}, + {{t,10},1}] = + analyse_expr(<<"#{\n" %1 + " K + 1 =>\n" %2 + "X * 2 ||\n" %2 + " K := X <-\n" + " #{1 => 1,\n" %1 + " 2 => two(),\n" + " 3 => 3},\n" + " X > 1,\n" %3 + " true}. \n" %2 + " two() -> 2">>, Cf), %1 + ok. eep37(Config) when is_list(Config) -> -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor