Dialyzer: Trying to understand the origin of "no local return"

Thomas Depierre depierre.thomas@REDACTED
Fri Apr 2 14:57:46 CEST 2021


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20210402/65387602/attachment.htm>


More information about the erlang-questions mailing list