From a65e0c133314e57adc39a53b48f2cd6ba73b2fe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Fri, 14 Mar 2014 16:22:21 +0100 Subject: stdlib: Accept records as Map keys --- lib/stdlib/src/erl_lint.erl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'lib/stdlib/src/erl_lint.erl') diff --git a/lib/stdlib/src/erl_lint.erl b/lib/stdlib/src/erl_lint.erl index db98c7020c..4c0261a1ad 100644 --- a/lib/stdlib/src/erl_lint.erl +++ b/lib/stdlib/src/erl_lint.erl @@ -2337,7 +2337,7 @@ is_valid_map_key_value(K) -> Tag =:= map_field_exact -> B andalso is_valid_map_key_value(Ke) andalso is_valid_map_key_value(Ve) - end, true, Ps); + end,true,Ps); {map,_,Ps} -> foldl(fun ({Tag,_,Ke,Ve},B) when Tag =:= map_field_assoc; @@ -2345,13 +2345,19 @@ is_valid_map_key_value(K) -> B andalso is_valid_map_key_value(Ke) andalso is_valid_map_key_value(Ve) end, true, Ps); + {record,_,_,Fs} -> + foldl(fun + ({record_field,_,Ke,Ve},B) -> + B andalso is_valid_map_key_value(Ke) + andalso is_valid_map_key_value(Ve) + end,true,Fs); {bin,_,Es} -> % only check for value expressions to be valid % invalid binary expressions are later checked in % core and kernel foldl(fun ({bin_element,_,E,_,_},B) -> - B andalso is_valid_map_key_value(E) + B andalso is_valid_map_key_value(E) end,true,Es); _ -> false end. -- cgit v1.2.3