aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2016-04-28 16:16:52 +0200
committerHans Bolinder <[email protected]>2016-04-28 16:16:52 +0200
commitb6975497fc5d8e4b50c6a3237a2b24be0e2585c1 (patch)
tree131ab66fe3dfb4023078ecbb14bf367a20eac70f /lib/compiler
parentac2f1c71d5b5169d49a5cd5fd73d28a702a58024 (diff)
parent457baf8eb9c5d6d5b1b46504e98a39e566aa4f58 (diff)
downloadotp-b6975497fc5d8e4b50c6a3237a2b24be0e2585c1.tar.gz
otp-b6975497fc5d8e4b50c6a3237a2b24be0e2585c1.tar.bz2
otp-b6975497fc5d8e4b50c6a3237a2b24be0e2585c1.zip
Merge branch 'margnus1/dialyzer-maps/PR-1014'
* margnus1/dialyzer-maps/PR-1014: (24 commits) doc: Correct shorthand typo stdlib: Correct association types stdlib: Add shadow comments for BIFs in maps erts: Add exact association types to the abstract format doc stdlib: Add pretty-printing of exact map types stdlib: Correct a type in module epp erl_types: Don't consider opaque keys singleton erl_types: Fix t_subtract/2 correctness bug erl_types: Fix crash merging maps with opaque keys dialyzer_typesig: Fix bad external type dialyzer: Fix another pattern literal bug Bump Dialyzer version dialyzer: Improve map pattern typesetting dialyzer_contracts: Consider #{} a violation dialyzer_typesig: Fix simplification bug dialyzer_dataflow: Fix try in guards dialyzer: Unfold cerl patterns containing maps dialyzer_dataflow: Add map support dialyzer_typesig: Add map support Enhance map specs in erts, stdlib, runtime_tools ...
Diffstat (limited to 'lib/compiler')
-rw-r--r--lib/compiler/src/cerl.erl7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/compiler/src/cerl.erl b/lib/compiler/src/cerl.erl
index 37ec4e97c9..6dc162db40 100644
--- a/lib/compiler/src/cerl.erl
+++ b/lib/compiler/src/cerl.erl
@@ -135,7 +135,7 @@
ann_c_map_pattern/2,
map_pair_op/1,map_pair_key/1,map_pair_val/1,
update_c_map_pair/4,
- c_map_pair/2,
+ c_map_pair/2, c_map_pair_exact/2,
ann_c_map_pair/4
]).
@@ -1694,6 +1694,11 @@ map_pair_op(#c_map_pair{op=Op}) -> Op.
c_map_pair(Key,Val) ->
#c_map_pair{op=#c_literal{val=assoc},key=Key,val=Val}.
+-spec c_map_pair_exact(cerl(), cerl()) -> c_map_pair().
+
+c_map_pair_exact(Key,Val) ->
+ #c_map_pair{op=#c_literal{val=exact},key=Key,val=Val}.
+
-spec ann_c_map_pair([term()], cerl(), cerl(), cerl()) ->
c_map_pair().