Dialyzer: Trying to understand the origin of "no local return"
Thomas Depierre <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <CAKd2JeK6NnJ47K6JxEZfoFOQf9pik9NyUWYkukpowONyzqZTpA@mail.gmail.com> |
Hello, In looking the source of Dialyzer "no local return", i find this code https://github.com/erlang/otp/blob/master/lib/dialyzer/src/dialyzer.erl#L386-L397 In particular, i see that there are two types that can return this message. "only_normal" and "both". I understand the other possible "no_return" warnings here, but i do not understand what situations does "only_normal" and "both" means here and how they get differentiated. I tried to understand how Dialyzer get to this decision in the code before that, but i got bogged down. In particular, i do not understand what the tuple returned by find_terminals here https://github.com/erlang/otp/blob/master/lib/dialyzer/src/dialyzer_dataflow.erl#L3842 means. Thank you for your help, would be greatly appreciated Thomas Depierre