diff options
author | Björn-Egil Dahlberg <[email protected]> | 2014-03-04 12:30:48 +0100 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2014-03-04 12:30:48 +0100 |
commit | 2e5457c71e7c125b3d603e04575648b7afa1b54a (patch) | |
tree | c0ab3322d915664322b458e25683cc27fb235357 /lib/compiler | |
parent | 77b1aeaa1a663056d228a8d65cdf1daee5bfe51d (diff) | |
parent | 974de0f23a9f818a2c40cb47d24ebf8d8f8b01d7 (diff) | |
download | otp-2e5457c71e7c125b3d603e04575648b7afa1b54a.tar.gz otp-2e5457c71e7c125b3d603e04575648b7afa1b54a.tar.bz2 otp-2e5457c71e7c125b3d603e04575648b7afa1b54a.zip |
Merge branch 'nox/maps-expand-update'
* nox/maps-expand-update:
Fix expansion of map update arguments
Diffstat (limited to 'lib/compiler')
-rw-r--r-- | lib/compiler/src/sys_pre_expand.erl | 7 | ||||
-rw-r--r-- | lib/compiler/test/map_SUITE.erl | 11 |
2 files changed, 13 insertions, 5 deletions
diff --git a/lib/compiler/src/sys_pre_expand.erl b/lib/compiler/src/sys_pre_expand.erl index 9998043013..91a46a20fe 100644 --- a/lib/compiler/src/sys_pre_expand.erl +++ b/lib/compiler/src/sys_pre_expand.erl @@ -331,9 +331,10 @@ expr({tuple,Line,Es0}, St0) -> expr({map,Line,Es0}, St0) -> {Es1,St1} = expr_list(Es0, St0), {{map,Line,Es1},St1}; -expr({map,Line,Var,Es0}, St0) -> - {Es1,St1} = expr_list(Es0, St0), - {{map,Line,Var,Es1},St1}; +expr({map,Line,E0,Es0}, St0) -> + {E1,St1} = expr(E0, St0), + {Es1,St2} = expr_list(Es0, St1), + {{map,Line,E1,Es1},St2}; expr({map_field_assoc,Line,K0,V0}, St0) -> {K,St1} = expr(K0, St0), {V,St2} = expr(V0, St1), diff --git a/lib/compiler/test/map_SUITE.erl b/lib/compiler/test/map_SUITE.erl index b4baef461b..ddcce0d37a 100644 --- a/lib/compiler/test/map_SUITE.erl +++ b/lib/compiler/test/map_SUITE.erl @@ -42,7 +42,8 @@ t_build_and_match_val/1, %% errors in 17.0-rc1 - t_update_values/1 + t_update_values/1, + t_expand_map_update/1 ]). suite() -> []. @@ -68,7 +69,8 @@ all() -> [ t_build_and_match_val, %% errors in 17.0-rc1 - t_update_values + t_update_values, + t_expand_map_update ]. groups() -> []. @@ -273,6 +275,11 @@ t_update_values(Config) when is_list(Config) -> end, {none, none, #{val1=>none,val2=>none}},List), ok. +t_expand_map_update(Config) when is_list(Config) -> + M = #{<<"hello">> => <<"world">>}#{<<"hello">> := <<"les gens">>}, + #{<<"hello">> := <<"les gens">>} = M, + ok. + check_val(#{val1:=V1, val2:=V2},V1,V2) -> ok. get_val(#{ "wazzup" := _, val := V}) -> V; |