diff options
author | Björn-Egil Dahlberg <[email protected]> | 2014-10-03 18:07:49 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2014-10-03 18:07:49 +0200 |
commit | 7f6030a49b0bc47aadba62a7382dc77dde3a7f87 (patch) | |
tree | dc30437ab410938285baf2bec315f20e692dd287 /lib/compiler/src/cerl.erl | |
parent | 3a865c0cd9a97aedc20c70f69a60fcc23eb4b4d0 (diff) | |
parent | d01120a2450fd0b44df64f2e58ae3833d01470b0 (diff) | |
download | otp-7f6030a49b0bc47aadba62a7382dc77dde3a7f87.tar.gz otp-7f6030a49b0bc47aadba62a7382dc77dde3a7f87.tar.bz2 otp-7f6030a49b0bc47aadba62a7382dc77dde3a7f87.zip |
Merge branch 'egil/maps/variable-keys/OTP-12218'
* egil/maps/variable-keys/OTP-12218: (22 commits)
compiler: Update test for Maps aliasing
compiler: Properly support Map aliasing
compiler: Refactor Map pairs aliasing
compiler: Fix harmless need_heap error for Maps
stdlib: Update Map tests
stdlib: Use environment bindings for Maps keys in erl_eval matching
debugger: Update Map tests
compiler: Update Map tests
compiler: Fix v3_core Maps pair chains
compiler: Use expressions in core patterns
compiler: Use variables in Map cerl inliner
compiler: Reintroduce binary limit for Map keys
compiler: Shameless v3_core hack for variables
compiler: Use variables in Map beam assmebler
compiler: Use variables in Map kernel pass
compiler: Use variables in Map core pass
compiler: Normalize unary ops on Maps key literals
stdlib: Update Map tests
stdlib: erl_lint Map key variables
compiler: Maps are always patterns never values in matching
...
Diffstat (limited to 'lib/compiler/src/cerl.erl')
-rw-r--r-- | lib/compiler/src/cerl.erl | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/compiler/src/cerl.erl b/lib/compiler/src/cerl.erl index 9d6768b157..7a2c3d70de 100644 --- a/lib/compiler/src/cerl.erl +++ b/lib/compiler/src/cerl.erl @@ -3063,10 +3063,12 @@ pat_vars(Node, Vs) -> map -> pat_list_vars(map_es(Node), Vs); map_pair -> - pat_list_vars([map_pair_op(Node),map_pair_key(Node),map_pair_val(Node)],Vs); + %% map_pair_key is not a pattern var, excluded + pat_list_vars([map_pair_op(Node),map_pair_val(Node)],Vs); binary -> pat_list_vars(binary_segments(Node), Vs); bitstr -> + %% bitstr_size is not a pattern var, excluded pat_vars(bitstr_val(Node), Vs); alias -> pat_vars(alias_pat(Node), [alias_var(Node) | Vs]) |