Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ERL-680: Dialyzer does not terminate analysis on complex boolean expressions #3740

Closed
OTP-Maintainer opened this issue Jul 27, 2018 · 2 comments
Assignees
Labels
bug Issue is reported as a bug priority:medium team:VM Assigned to OTP team VM
Milestone

Comments

@OTP-Maintainer
Copy link

Original reporter: michalmuskala
Affected version: OTP-21.0
Fixed in version: OTP-21.1
Component: dialyzer
Migrated from: https://bugs.erlang.org/browse/ERL-680


There are two modules attached - {{good.erl}} and {{bad.erl}}. The only difference between them is the associativity of the {{andalso}} operator in the guard - in Erlang the operator is right-associative, while in Elixir (where the issue was originally discovered) the {{and}} operator that translates to erlang's {{andalso}} is left-associative. This difference is visible in the Erlang source-code with additional parenthesis around the operator.

Running {{dialyzer good.erl}} finishes almost instantaneously, while I had to kill {{dialyzer bad.erl}} after 20 minutes.
@OTP-Maintainer
Copy link
Author

hasse said:

PR https://github.com/erlang/otp/pull/1944 is a simple fix. We plan to include it in 21.1.

@OTP-Maintainer
Copy link
Author

hasse said:

Merged fd9b5ae into maint.

@OTP-Maintainer OTP-Maintainer added bug Issue is reported as a bug team:VM Assigned to OTP team VM priority:medium labels Feb 10, 2021
@OTP-Maintainer OTP-Maintainer added this to the OTP-21.1 milestone Feb 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Issue is reported as a bug priority:medium team:VM Assigned to OTP team VM
Projects
None yet
Development

No branches or pull requests

2 participants