Hi all,<br><br>What are the implications of adding a local return value? Let's consider the following code which will raise the warning:<br><br><span style="font-family: courier new,monospace;">x() -></span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">    head_of_to_a_loop_which_will_never_return().</span><br><br>The warning:<br><br><span style="font-family: courier new,monospace;">module.erl:3: Function x/0 has no local return
</span><br><br>This can be changed to the function below just to satisfy Dialyzer:<br><br><span style="font-family: courier new,monospace;">x() -></span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">
    head_of_to_a_loop_which_will_never_return(),</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    nobody_will_ever_see_this_atom.</span><br><br>Wouldn't that last atom stay somewhere in case the above function call actually would return. Because I guess there is no way for the compiler to know that so it has to keep that last line, thus no tail optimizations are possible. Am I right? Any thoughts on this?
<br><br>Cheers!<br>Adam<br>