aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2014-03-06 14:30:55 +0100
committerBjörn-Egil Dahlberg <[email protected]>2014-03-06 14:30:55 +0100
commit54cd909aa26fa8cbed4a7bb81919ea914ad2dcc6 (patch)
tree92d63d0fe355695076cbdbc7f71ce4a346a3deea /lib/compiler
parentfdeba7e0e2fbccc1a9e66a8a3ce04911dfe6d809 (diff)
parentb0c011a5b5e1a0e02c6d2863238310f0d6bf8745 (diff)
downloadotp-54cd909aa26fa8cbed4a7bb81919ea914ad2dcc6.tar.gz
otp-54cd909aa26fa8cbed4a7bb81919ea914ad2dcc6.tar.bz2
otp-54cd909aa26fa8cbed4a7bb81919ea914ad2dcc6.zip
Merge branch 'nox/maps-complex-mixed-values'
* nox/maps-complex-mixed-values: Properly order Kernel code for maps with mixed pairs
Diffstat (limited to 'lib/compiler')
-rw-r--r--lib/compiler/src/v3_kernel.erl2
-rw-r--r--lib/compiler/test/map_SUITE.erl4
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/compiler/src/v3_kernel.erl b/lib/compiler/src/v3_kernel.erl
index 5675572092..d00dd56f30 100644
--- a/lib/compiler/src/v3_kernel.erl
+++ b/lib/compiler/src/v3_kernel.erl
@@ -519,7 +519,7 @@ map_split_pairs(A, Var, Ces, Sub, St0) ->
Kes1 = [#k_map_pair{key=K,val=V}||{_,{assoc,K,V}} <- Assoc],
{Mvar,Em,St2} = force_atomic(#k_map{anno=A,op=assoc,var=Var,es=Kes1},St1),
Kes2 = [#k_map_pair{key=K,val=V}||{_,{exact,K,V}} <- Exact],
- {#k_map{anno=A,op=exact,var=Mvar,es=Kes2},Em ++ Esp,St2}
+ {#k_map{anno=A,op=exact,var=Mvar,es=Kes2},Esp ++ Em,St2}
end.
diff --git a/lib/compiler/test/map_SUITE.erl b/lib/compiler/test/map_SUITE.erl
index 3639192a51..01c146507d 100644
--- a/lib/compiler/test/map_SUITE.erl
+++ b/lib/compiler/test/map_SUITE.erl
@@ -189,7 +189,9 @@ loop_match_and_update_literals_x_q(#{q:=Q0,x:=X0} = Map, [{X,Q}|Vs]) ->
t_update_map_expressions(Config) when is_list(Config) ->
M = maps:new(),
- #{ a := 1 } = M#{a => 1},
+ X = id(fondue),
+ M1 = #{ a := 1 } = M#{a => 1},
+ #{ b := {X} } = M1#{ a := 1, b => {X} },
#{ b := 2 } = (maps:new())#{ b => 2 },