[erlang-bugs] bogus 'unsafe variable' warning with try-else

Joel Ericson kasettbok@REDACTED
Thu Nov 20 14:44:55 CET 2014


The binding {ok,Bin} = file:read(F, 1024*1024) *can* fail. E.g., if I were
to load in my own file library, where file:read/2 returns {data,Data}, this
fails. And as far as I know, one is not supposed to assume anything about
what other modules return during compile time.

Regards
Joel

On Thu, Nov 20, 2014 at 2:22 PM, Kostis Sagonas <kostis@REDACTED> wrote:

> On 11/20/14 15:13, Anthony Ramine wrote:
>
>> try file:read(F, 1024 * 1024) of
>>      {ok,Bin} -> binary_to_term(Bin)
>> after
>>      file:close(F)
>> end
>>
>
>
> And the reason to _having_ to write this is?  (*)
>
> Cheers,
> Kostis
>
> (*) Less bugs are exposed in the compiler and less baby cats die in China
> if we all write like that, perhaps? :)
>
> Jokes aside, I also agree the above code is nicer, but that does not mean
> that the current warning is bogus and the analysis should be fixed.
>
> _______________________________________________
> erlang-bugs mailing list
> erlang-bugs@REDACTED
> http://erlang.org/mailman/listinfo/erlang-bugs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20141120/d3b31adb/attachment.htm>


More information about the erlang-bugs mailing list