diff options
author | Hans Bolinder <[email protected]> | 2018-08-27 13:14:29 +0200 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2018-08-28 08:27:52 +0200 |
commit | fd9b5ae4193fbab66093c88728c0dbeaa3b57312 (patch) | |
tree | fd3f8b46afb4b5745f0f9a02b2498cad7826bedc /erts/emulator/beam/erl_bif_port.c | |
parent | 00401985f1c9227b6e94309ae5526c2ebf341527 (diff) | |
download | otp-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 'erts/emulator/beam/erl_bif_port.c')
0 files changed, 0 insertions, 0 deletions