aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/v3_core.erl
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2014-02-26 17:46:57 +0100
committerBjörn-Egil Dahlberg <[email protected]>2014-03-14 17:07:56 +0100
commitea699f3510b464d6b65b30342f2ddd5912e127a7 (patch)
tree1c42b3bb4d0745684b80e75d59a7c14e3704c908 /lib/compiler/src/v3_core.erl
parent237264bc018b0cc17afeac5d3f6030073f314f9d (diff)
downloadotp-ea699f3510b464d6b65b30342f2ddd5912e127a7.tar.gz
otp-ea699f3510b464d6b65b30342f2ddd5912e127a7.tar.bz2
otp-ea699f3510b464d6b65b30342f2ddd5912e127a7.zip
compiler: Create literal Maps in creation if possible
Diffstat (limited to 'lib/compiler/src/v3_core.erl')
-rw-r--r--lib/compiler/src/v3_core.erl7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/compiler/src/v3_core.erl b/lib/compiler/src/v3_core.erl
index 3d17557e01..80e9aca3d0 100644
--- a/lib/compiler/src/v3_core.erl
+++ b/lib/compiler/src/v3_core.erl
@@ -77,7 +77,8 @@
splitwith/2,keyfind/3,sort/1,foreach/2,droplast/1,last/1]).
-import(ordsets, [add_element/2,del_element/2,is_element/2,
union/1,union/2,intersection/2,subtract/2]).
--import(cerl, [ann_c_cons/3,ann_c_cons_skel/3,ann_c_tuple/2,c_tuple/1]).
+-import(cerl, [ann_c_cons/3,ann_c_cons_skel/3,ann_c_tuple/2,c_tuple/1,
+ ann_c_map/2, ann_c_map/3]).
-include("core_parse.hrl").
@@ -515,12 +516,12 @@ expr({map,L,Es0}, St0) ->
% in map construction.
{Es1,Eps,St1} = map_pair_list(Es0, St0),
A = lineno_anno(L, St1),
- {#c_map{anno=A,es=Es1},Eps,St1};
+ {ann_c_map(A,Es1),Eps,St1};
expr({map,L,M0,Es0}, St0) ->
{M1,Mps,St1} = safe(M0, St0),
{Es1,Eps,St2} = map_pair_list(Es0, St1),
A = lineno_anno(L, St2),
- {#c_map{anno=A,var=M1,es=Es1},Mps++Eps,St2};
+ {ann_c_map(A,M1,Es1),Mps++Eps,St2};
expr({bin,L,Es0}, St0) ->
try expr_bin(Es0, lineno_anno(L, St0), St0) of
{_,_,_}=Res -> Res