aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/test/map_SUITE.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2018-04-12 15:05:28 +0200
committerBjörn Gustavsson <[email protected]>2018-04-18 15:26:11 +0200
commit6626b2a4ac67631bef3144bf9eca41b5f49c3176 (patch)
tree6c7c2fc8135dc2975fc6b21b8eac245a7d9dbb74 /lib/compiler/test/map_SUITE.erl
parent46a89739ebe59bb2d2b44639c9ea9869757d4b58 (diff)
downloadotp-6626b2a4ac67631bef3144bf9eca41b5f49c3176.tar.gz
otp-6626b2a4ac67631bef3144bf9eca41b5f49c3176.tar.bz2
otp-6626b2a4ac67631bef3144bf9eca41b5f49c3176.zip
core_lint: Handle repeated variables in map patterns correctly
Keys in map patterns are input variables, not pattern variables.
Diffstat (limited to 'lib/compiler/test/map_SUITE.erl')
-rw-r--r--lib/compiler/test/map_SUITE.erl19
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/compiler/test/map_SUITE.erl b/lib/compiler/test/map_SUITE.erl
index f15917e3cb..3146c31c21 100644
--- a/lib/compiler/test/map_SUITE.erl
+++ b/lib/compiler/test/map_SUITE.erl
@@ -67,8 +67,10 @@
%% errors in 18
t_register_corruption/1,
- t_bad_update/1
+ t_bad_update/1,
+ %% new in OTP 21
+ t_reused_key_variable/1
]).
suite() -> [].
@@ -120,7 +122,10 @@ all() ->
%% errors in 18
t_register_corruption,
- t_bad_update
+ t_bad_update,
+
+ %% new in OTP 21
+ t_reused_key_variable
].
groups() -> [].
@@ -1980,6 +1985,16 @@ properly(Item) ->
increase(Allows) ->
catch fun() -> Allows end#{[] => +Allows, "warranty" => fun id/1}.
+t_reused_key_variable(Config) when is_list(Config) ->
+ Key = id(key),
+ Map1 = id(#{Key=>Config}),
+ Map2 = id(#{Key=>Config}),
+ case {Map1,Map2} of
+ %% core_lint treated Key as pattern variables, not input variables,
+ %% and complained about the variable being duplicated.
+ {#{Key:=Same},#{Key:=Same}} ->
+ ok
+ end.
%% aux