<div dir="ltr"><div>Better late than never! This issue was pointed out to me again, and this time I thought of a solution that makes Dialyzer shut up about these things. Pull request here: <a href="https://github.com/erlang/otp/pull/1002">https://github.com/erlang/otp/pull/1002</a><br><br></div>Note that this will also make Dialyzer stop complaining about things like ?assert(true), which can happen if you have expressions that depend on conditional compilation.<br></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><br>        /Richard</div></div>
<br><div class="gmail_quote">2010-06-11 18:14 GMT+02:00 Magnus Henoch <span dir="ltr"><<a href="mailto:magnus@erlang-solutions.com" target="_blank">magnus@erlang-solutions.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In R13B04 (and probably others), putting an Eunit ?assert in the code<br>
will sometimes cause a Dialyzer warning, as below.  This happens because<br>
the definition of the assert macro in eunit.hrl does an extra check for<br>
when the value is neither true nor false, but in this case Dialyzer can<br>
infer that the value must be either true or false.<br>
<br>
It would be nice if either Eunit or Dialyzer could be changed to not<br>
output this warning, so I don't get distracted from warnings that might<br>
indicate actual problems.<br>
<br>
<br>
$ cat > foo.erl<br>
-module(foo).<br>
<br>
-include_lib("eunit/include/eunit.hrl").<br>
<br>
-export([foo/1]).<br>
<br>
foo(X) -><br>
  ?assert(is_list(X)),<br>
  X.<br>
$ dialyzer --src foo.erl<br>
  Checking whether the PLT /home/magnus/.dialyzer_plt is up-to-date... yes<br>
  Proceeding with analysis...<br>
foo.erl:8: The variable _ can never match since previous clauses completely covered the type 'false'<br>
 done in 0m0.57s<br>
done (warnings were emitted)<br>
<br>
<br>
--<br>
Magnus Henoch, <a href="mailto:magnus@erlang-solutions.com">magnus@erlang-solutions.com</a><br>
Erlang Solutions<br>
<a href="http://www.erlang-solutions.com/" rel="noreferrer" target="_blank">http://www.erlang-solutions.com/</a><br>
---------------------------------------------------<br>
<br>
---------------------------------------------------<br>
<br>
WE'VE CHANGED NAMES!<br>
<br>
Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD.<br>
<br>
<a href="http://www.erlang-solutions.com" rel="noreferrer" target="_blank">www.erlang-solutions.com</a><br>
<br>
<br>
________________________________________________________________<br>
erlang-bugs (at) <a href="http://erlang.org" rel="noreferrer" target="_blank">erlang.org</a> mailing list.<br>
See <a href="http://www.erlang.org/faq.html" rel="noreferrer" target="_blank">http://www.erlang.org/faq.html</a><br>
To unsubscribe; mailto:<a href="mailto:erlang-bugs-unsubscribe@erlang.org">erlang-bugs-unsubscribe@erlang.org</a><br>
<br>
</blockquote></div><br></div>