aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/beam_bsm.erl
diff options
context:
space:
mode:
authorHans Bolinder <[email protected]>2018-08-27 13:14:29 +0200
committerHans Bolinder <[email protected]>2018-08-28 08:27:52 +0200
commitfd9b5ae4193fbab66093c88728c0dbeaa3b57312 (patch)
treefd3f8b46afb4b5745f0f9a02b2498cad7826bedc /lib/compiler/src/beam_bsm.erl
parent00401985f1c9227b6e94309ae5526c2ebf341527 (diff)
downloadotp-fd9b5ae4193fbab66093c88728c0dbeaa3b57312.tar.gz
otp-fd9b5ae4193fbab66093c88728c0dbeaa3b57312.tar.bz2
otp-fd9b5ae4193fbab66093c88728c0dbeaa3b57312.zip
dialyzer: Improve handling of complex guards
See also https://bugs.erlang.org/browse/ERL-680. The right associative short circuit expressions 'andalso' and 'orelse' are expanded by the Compiler (see v3_core) into 'case' expressions. If parentheses are used to enforce left associativeness, variables are introduced, and the time needed by Dialyzer increases exponentially. Rather than trying to fix Dialyzer itself, v3_core now rewrites repeated use of 'andalso' ('orelse') into right associative expressions before creating the 'case' expressions.
Diffstat (limited to 'lib/compiler/src/beam_bsm.erl')
0 files changed, 0 insertions, 0 deletions