aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2014-03-18 12:20:19 +0100
committerBjörn-Egil Dahlberg <[email protected]>2014-03-18 12:20:19 +0100
commita4d314a5298d9725fdd1874763e43b33a39252a0 (patch)
tree3beaa441407a6ec335e7bae501443e67a1c9e24e /erts/emulator
parent8d66a2823c29cbe44cf80e4de0c58f2ed5c29bd4 (diff)
parent5638ca15d05e9b05d64ade0e03492c13d020439b (diff)
downloadotp-a4d314a5298d9725fdd1874763e43b33a39252a0.tar.gz
otp-a4d314a5298d9725fdd1874763e43b33a39252a0.tar.bz2
otp-a4d314a5298d9725fdd1874763e43b33a39252a0.zip
Merge branch 'egil/maps-literals'
* egil/maps-literals: compiler: Transform M#{} to is_map(M) dialyzer: Do not native compile modules with Maps code hipe: Properly identify map() type form terms stdlib: Test Map key linting stdlib: Accept records as Map keys stdlib: Accept Maps as Map keys stdlib: Move map type to proper definition stdlib: Properly lint map key expressions compiler: Change #c_map{var} to #c_map{arg} compiler: Constant fold Maps that are safe compiler: Validate Map src compiler: Support literal maps in cerl_clauses:match/2 compiler: Guard BIF is_map/1 is pure erts: Handle literals in is_map/1 compiler: Change Maps Core Format compiler: Create literal Maps in creation if possible
Diffstat (limited to 'erts/emulator')
-rw-r--r--erts/emulator/beam/ops.tab3
1 files changed, 2 insertions, 1 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab
index 73630fda8e..68fcc177ae 100644
--- a/erts/emulator/beam/ops.tab
+++ b/erts/emulator/beam/ops.tab
@@ -1484,7 +1484,8 @@ new_map j d I I
update_map_assoc j s d I I
update_map_exact j s d I I
-is_map Fail cq => jump Fail
+is_map Fail Literal=q => move Literal x | is_map Fail x
+is_map Fail c => jump Fail
%macro: is_map IsMap -fail_action
is_map f r