diff options
author | Björn Gustavsson <[email protected]> | 2018-04-12 15:05:28 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2018-04-18 15:26:11 +0200 |
commit | 6626b2a4ac67631bef3144bf9eca41b5f49c3176 (patch) | |
tree | 6c7c2fc8135dc2975fc6b21b8eac245a7d9dbb74 /lib/compiler/test/map_SUITE.erl | |
parent | 46a89739ebe59bb2d2b44639c9ea9869757d4b58 (diff) | |
download | otp-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.erl | 19 |
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 |