aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/misc
diff options
context:
space:
mode:
authorHans Bolinder <hasse@erlang.org>2017-09-01 11:44:36 +0200
committerHans Bolinder <hasse@erlang.org>2017-09-12 13:32:29 +0200
commit3d05725ceb26611ac8c19cc01df715089dc322d5 (patch)
treeeeae656118cbb70744af4388cf9575b1c0cad481 /lib/hipe/misc
parentc3f50bc462cc850bdef6b77d1a7a58091a75c936 (diff)
downloadotp-3d05725ceb26611ac8c19cc01df715089dc322d5.tar.gz
otp-3d05725ceb26611ac8c19cc01df715089dc322d5.tar.bz2
otp-3d05725ceb26611ac8c19cc01df715089dc322d5.zip
dialyzer: Modify handling of singleton map key types
The test case loop.erl shows that there is a problem with certain singleton key types. Here the internal representation toggles between #{a | b => ...} and #{a => ..., b => ...} The choice is to turn #{a | b => ...} into #{a => ..., b => ...} early (t_from_form()). The aim is to keep as much info as possible (in pairs). However, including complex singleton keys (tuples, maps) in this scheme is potentially too costly, and a bit complicated. So one more choice is made: let atoms and number (and nothing else) be singleton types, and let complex keys go into the default key.
Diffstat (limited to 'lib/hipe/misc')
0 files changed, 0 insertions, 0 deletions