diff options
author | Björn-Egil Dahlberg <[email protected]> | 2014-04-02 18:35:53 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2014-04-03 14:32:44 +0200 |
commit | c655521ab142547c371df3470a3fc62beef048ae (patch) | |
tree | a65ac7a355a87f7e1787e93993f3c79c857d6734 /lib/compiler/src/core_pp.erl | |
parent | cc7a3c5896bc266bb97287dd4e31b696d8cf604f (diff) | |
download | otp-c655521ab142547c371df3470a3fc62beef048ae.tar.gz otp-c655521ab142547c371df3470a3fc62beef048ae.tar.bz2 otp-c655521ab142547c371df3470a3fc62beef048ae.zip |
compiler: Fix compiling map keys in patterns from core
Diffstat (limited to 'lib/compiler/src/core_pp.erl')
-rw-r--r-- | lib/compiler/src/core_pp.erl | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/compiler/src/core_pp.erl b/lib/compiler/src/core_pp.erl index a76327457d..83412ecdd7 100644 --- a/lib/compiler/src/core_pp.erl +++ b/lib/compiler/src/core_pp.erl @@ -120,7 +120,11 @@ format_1(#c_literal{anno=A,val=Bitstring}, Ctxt) when is_bitstring(Bitstring) -> format_1(#c_binary{anno=A,segments=Segs}, Ctxt); format_1(#c_literal{anno=A,val=M},Ctxt) when is_map(M) -> Pairs = maps:to_list(M), - Cpairs = [#c_map_pair{op=#c_literal{val=assoc}, + Op = case Ctxt of + #ctxt{ class = clause } -> exact; + _ -> assoc + end, + Cpairs = [#c_map_pair{op=#c_literal{val=Op}, key=#c_literal{val=V}, val=#c_literal{val=K}} || {K,V} <- Pairs], format_1(#c_map{anno=A,arg=#c_literal{val=#{}},es=Cpairs},Ctxt); |