diff options
author | Björn-Egil Dahlberg <[email protected]> | 2014-02-10 15:16:11 +0100 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2014-02-10 15:16:11 +0100 |
commit | edb90b1c1e6dc290727a516f4a00e939479aff98 (patch) | |
tree | 03b8073ebf664913f95e8fb73dc261d700c1d987 /lib/compiler/src/v3_life.erl | |
parent | 1918d8fead3a8d4bfd177f68806db539911ad808 (diff) | |
parent | c8741b7c62db3abc9dfde0fa8c7cf3d099adb347 (diff) | |
download | otp-edb90b1c1e6dc290727a516f4a00e939479aff98.tar.gz otp-edb90b1c1e6dc290727a516f4a00e939479aff98.tar.bz2 otp-edb90b1c1e6dc290727a516f4a00e939479aff98.zip |
Merge branch 'egil/compiler/maps-fix-codegen'
* egil/compiler/maps-fix-codegen:
compiler: Fix codegen multiple updates for Maps
erts,compiler: Correct and amend tests for Maps
Diffstat (limited to 'lib/compiler/src/v3_life.erl')
-rw-r--r-- | lib/compiler/src/v3_life.erl | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/compiler/src/v3_life.erl b/lib/compiler/src/v3_life.erl index ae928e955c..c4f54a7970 100644 --- a/lib/compiler/src/v3_life.erl +++ b/lib/compiler/src/v3_life.erl @@ -367,12 +367,10 @@ literal(#k_bin_end{}, Ctxt) -> {bin_end,Ctxt}; literal(#k_tuple{es=Es}, Ctxt) -> {tuple,literal_list(Es, Ctxt)}; -literal(#k_map{var=Var,es=Es}, Ctxt) -> - {map,literal(Var, Ctxt),literal_list(Es, Ctxt)}; -literal(#k_map_pair{op=assoc,key=K,val=V}, Ctxt) -> - {map_pair_assoc,literal(K, Ctxt),literal(V, Ctxt)}; -literal(#k_map_pair{op=exact,key=K,val=V}, Ctxt) -> - {map_pair_exact,literal(K, Ctxt),literal(V, Ctxt)}; +literal(#k_map{op=Op,var=Var,es=Es}, Ctxt) -> + {map,Op,literal(Var, Ctxt),literal_list(Es, Ctxt)}; +literal(#k_map_pair{key=K,val=V}, Ctxt) -> + {map_pair,literal(K, Ctxt),literal(V, Ctxt)}; literal(#k_literal{val=V}, _Ctxt) -> {literal,V}. @@ -402,8 +400,8 @@ literal2(#k_bin_end{}, Ctxt) -> {bin_end,Ctxt}; literal2(#k_tuple{es=Es}, Ctxt) -> {tuple,literal_list2(Es, Ctxt)}; -literal2(#k_map{es=Es}, Ctxt) -> - {map,literal_list2(Es, Ctxt)}; +literal2(#k_map{op=Op,es=Es}, Ctxt) -> + {map,Op,literal_list2(Es, Ctxt)}; literal2(#k_map_pair{key=K,val=V}, Ctxt) -> {map_pair,literal2(K, Ctxt),literal2(V, Ctxt)}. |