File 2092-compiler-Test-repeated-map-key-warnings.patch of Package erlang

From fd6ba06462488da02a59ad8aa55819f0fa9ce83d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= <egil@erlang.org>
Date: Wed, 23 Nov 2016 15:22:04 +0100
Subject: [PATCH 2/2] compiler: Test repeated map key warnings

---
 lib/compiler/test/warnings_SUITE.erl | 107 ++++++++++++++++++++++++++++++++++-
 1 file changed, 106 insertions(+), 1 deletion(-)

diff --git a/lib/compiler/test/warnings_SUITE.erl b/lib/compiler/test/warnings_SUITE.erl
index 35f7db8..c8e42af 100644
--- a/lib/compiler/test/warnings_SUITE.erl
+++ b/lib/compiler/test/warnings_SUITE.erl
@@ -628,7 +628,112 @@ maps(Config) when is_list(Config) ->
 	     id(I) -> I.
            ">>,
            [],
-	   []}],
+	   []},
+           {repeated_keys1,
+           <<"
+             foo1() ->
+                 #{a=>1,
+                   b=> 2,
+                   a=>3}.
+             
+             bar1(M) ->
+                 M#{a=>1, b=> 2, a:=3}.
+             
+             baz1(M) ->
+                 M#{a=>1, b=> 2, a:=3}.
+             
+             foo2() ->
+                 #{\"a\"=>1, \"b\"=> 2, \"a\"=>3}.
+             
+             bar2(M) ->
+                 M#{\"a\"=>1, \"b\"=> 2, \"a\":=3}.
+             
+             baz2(M) ->
+                 M#{\"a\"=>1, \"b\"=> 2, \"a\":=3}.
+             
+             foo3() ->
+                 #{\"a\"=>1,
+                   \"b\"=> 2,
+                   \"a\"=>3}.
+             
+             bar3(M) ->
+                 M#{\"a\"=>1, \"b\"=> 2, \"a\":=3}.
+             
+             baz3(M) ->
+                 M#{<<\"a\">>=>1, <<\"b\">>=> 2, <<\"a\">>:=3}.
+           ">>,
+           [],
+           {warnings,[{3,v3_core,{map_key_repeated,a}},
+                      {8,v3_core,{map_key_repeated,a}},
+                      {11,v3_core,{map_key_repeated,a}},
+                      {14,v3_core,{map_key_repeated,"a"}},
+                      {17,v3_core,{map_key_repeated,"a"}},
+                      {20,v3_core,{map_key_repeated,"a"}},
+                      {23,v3_core,{map_key_repeated,"a"}},
+                      {28,v3_core,{map_key_repeated,"a"}},
+                      {31,v3_core,{map_key_repeated,<<"a">>}}]}},
+           {repeated_keys2,
+           <<"
+             foo4(K) ->
+                 #{\"a\"=>1, K => 1, \"b\"=> 2, \"a\"=>3, K=>2}.
+             
+             bar4(M,K) ->
+                 M#{a=>1, K =>1, b=> 2, a:=3, K=>2}.
+             
+             baz4(M,K) ->
+                 M#{<<\"a\">>=>1,
+                     K => 1, <<\"b\">>=> 2,
+                     <<\"a\">>:=3, K=>2}.
+             
+             foo5(K) ->
+                 #{{\"a\",1}=>1, K => 1, \"b\"=> 2, {\"a\",1}=>3, K=>2}.
+             
+             bar5(M,K) ->
+                 M#{{\"a\",<<\"b\">>}=>1, K =>1,
+                    \"b\"=> 2, {\"a\",<<\"b\">>}:=3, K=>2}.
+             
+             baz5(M,K) ->
+                 M#{{<<\"a\">>,1}=>1, K => 1,
+                    <<\"b\">>=> 2, {<<\"a\">>,1}:=3,K=>2}.
+             
+             foo6(K) ->
+                 #{#{\"a\"=>1}=>1, K => 1, \"b\"=> 2, #{\"a\"=>1}=>3, K=>2}.
+             
+             bar6(M,K) ->
+                 M#{#{\"a\"=><<\"b\">>}=>1, K =>1,
+                    \"b\"=> 2, #{\"a\"=><<\"b\">>}:=3, K=>2}.
+             
+             baz6(M,K) ->
+                 M#{#{<<\"a\">>=>1}=>1,
+                    K => 1,
+                    <<\"b\">>=> 2,
+                    #{<<\"a\">>=>1}:=3,K=>2}.
+             
+             foo7(K) ->
+                 M1 = #{#{\"a\"=>1}=>1, K => 1, \"b\"=> 2},
+                 M1#{#{\"a\"=>1}=>3, K=>2}.
+             
+             bar7(M,K) ->
+                 M1 = M#{#{\"a\"=><<\"b\">>}=>1, K =>1, \"b\"=> 2},
+                 M1#{#{\"a\"=><<\"b\">>}:=3, K=>2}.
+             
+             baz7(M,K) ->
+                 M1 = M#{#{<<\"a\">>=>1}=>1,
+                    K => 1,
+                    <<\"b\">>=> 2},
+                 M1#{#{<<\"a\">>=>1}:=3,K=>2}.
+          ">>,
+           [],
+           {warnings,[{3,v3_core,{map_key_repeated,"a"}},
+                      {6,v3_core,{map_key_repeated,a}},
+                      {9,v3_core,{map_key_repeated,<<"a">>}},
+                      {14,v3_core,{map_key_repeated,{"a",1}}},
+                      {17,v3_core,{map_key_repeated,{"a",<<"b">>}}},
+                      {21,v3_core,{map_key_repeated,{<<"a">>,1}}},
+                      {25,v3_core,{map_key_repeated,#{"a" => 1}}},
+                      {28,v3_core,{map_key_repeated,#{"a" => <<"b">>}}},
+                      {32,v3_core,{map_key_repeated,#{<<"a">> => 1}}}]}}
+         ],
     run(Config, Ts),
     ok.
 
-- 
2.10.2

openSUSE Build Service is sponsored by