<div dir="ltr">Thanks, I might do that!<div><br></div><div>...so there's no way to tell dialyzer to just automatically add stdlibs to plt?</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Nov 15, 2013 at 2:52 AM, Anthony Molinaro <span dir="ltr"><<a href="mailto:anthonym@alumni.caltech.edu" target="_blank">anthonym@alumni.caltech.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>You can add them to your .plt with something like</div><div><br></div><div># dialyzer --add_to_plt --apps crypto stdlib proper ...</div>
<div><br></div><div>Which should get rid of the warnings.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>-Anthony<br><br></div></font></span><div><div class="h5"><div><br>On Nov 14, 2013, at 8:03 PM, Andrew Pennebaker <<a href="mailto:andrew.pennebaker@gmail.com" target="_blank">andrew.pennebaker@gmail.com</a>> wrote:<br>
<br></div><div><span></span></div><blockquote type="cite"><div><div dir="ltr">Is there a way to clear the "unknown functions" from dialyzer output? They tend to distract from any warnings I'm trying to find.<div>
<br></div><div><div><font face="courier new, monospace">$ make lint</font></div>
<div><font face="courier new, monospace">erlc -Wall +debug_info ios7crypt.erl</font></div><div><font face="courier new, monospace">dialyzer *.beam --build_plt --quiet</font></div><div><font face="courier new, monospace">dialyzer *.beam</font></div>

<div><font face="courier new, monospace">  Checking whether the PLT /Users/andrew/.dialyzer_plt is up-to-date... yes</font></div><div><font face="courier new, monospace">  Proceeding with analysis...</font></div><div><font face="courier new, monospace">Unknown functions:</font></div>

<div><font face="courier new, monospace">  crypto:exor/2</font></div><div><font face="courier new, monospace">  erlang:binary_to_list/1</font></div><div><font face="courier new, monospace">  erlang:get_module_info/1</font></div>

<div><font face="courier new, monospace">  erlang:get_module_info/2</font></div><div><font face="courier new, monospace">  erlang:list_to_integer/2</font></div><div><font face="courier new, monospace">  erlang:now/0</font></div>

<div><font face="courier new, monospace">  getopt:parse/2</font></div><div><font face="courier new, monospace">  getopt:usage/2</font></div><div><font face="courier new, monospace">  init:get_plain_arguments/0</font></div>

<div><font face="courier new, monospace">  init:stop/0</font></div><div><font face="courier new, monospace">  io:format/1</font></div><div><font face="courier new, monospace">  io:format/2</font></div><div><font face="courier new, monospace">  io_lib:format/2</font></div>

<div><font face="courier new, monospace">  proper:forall/2</font></div><div><font face="courier new, monospace">  proper:quickcheck/1</font></div><div><font face="courier new, monospace">  proper_types:int/0</font></div>
<div>
<font face="courier new, monospace">  proper_types:list/1</font></div><div><font face="courier new, monospace">  random:seed/3</font></div><div><font face="courier new, monospace">  random:uniform/1</font></div><div><font face="courier new, monospace">  string:concat/2</font></div>

<div><font face="courier new, monospace">  string:substr/3</font></div><div><font face="courier new, monospace"> done in 0m0.17s</font></div><div><font face="courier new, monospace">done (passed successfully)</font></div>

</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 14, 2013 at 10:59 PM, Andrew Pennebaker <span dir="ltr"><<a href="mailto:andrew.pennebaker@gmail.com" target="_blank">andrew.pennebaker@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I think I was trying to account for errors in parsing integers. In any case, I think my program still works fine without this check, especially as we agree that dialyzer proves it's unnecessary.<div>

<br>
</div><div><a href="https://github.com/mcandre/ios7crypt/commit/8d7f7760b15ffa48a5113356803f620f3935c256#diff-7f4a95d512e55854e52ac3744eaafeb1L52" target="_blank">https://github.com/mcandre/ios7crypt/commit/8d7f7760b15ffa48a5113356803f620f3935c256#diff-7f4a95d512e55854e52ac3744eaafeb1L52</a><br>


</div></div><div class="gmail_extra"><div><div><br><br><div class="gmail_quote">On Thu, Nov 14, 2013 at 8:00 PM, Kostis Sagonas <span dir="ltr"><<a href="mailto:kostis@cs.ntua.gr" target="_blank">kostis@cs.ntua.gr</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On 11/15/2013 01:46 AM, Andrew Pennebaker wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In particular, I'm confused what dialyzer doesn't like about line 60.<br>
<br>
59  FirstOne = case is_binary(FirstTemp) of<br>
60    true -> binary_to_list(FirstTemp);<br>
61    false -> FirstOneRaw<br>
62  end,<br>
<br>
Not sure what's wrong. I tried using `_` instead of `false`, but got the<br>
same warning. Should I use an if/else instead of case?<br>
</blockquote>
<br></div>
Dialyzer is telling you that it thinks FirstTemp will never be a binary in your program, so the case statement you have there is unnecessary. So, effectively it tells you that you can rewrite the code above to:<br>
<br>
      FirstOne = FirstOneRaw,<br>
<br>
The question is why do you expect that FirstTemp may be a binary at that point?<span><font color="#888888"><br>
<br>
Kostis<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div></div></div><div>-- <br><div></div>Cheers,<div><br></div><div>Andrew Pennebaker</div><div><a href="http://www.yellosoft.us" target="_blank">www.yellosoft.us</a></div>


</div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div></div>Cheers,<div><br></div><div>Andrew Pennebaker</div><div><a href="http://www.yellosoft.us" target="_blank">www.yellosoft.us</a></div>
</div>
</div></blockquote></div></div><blockquote type="cite"><div><span>_______________________________________________</span><div class="im"><br><span>erlang-questions mailing list</span><br><span><a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a></span><br>
<span><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a></span><br></div></div></blockquote></div></blockquote></div><br><br clear="all"><div>
<br></div>-- <br><div></div>Cheers,<div><br></div><div>Andrew Pennebaker</div><div><a href="http://www.yellosoft.us" target="_blank">www.yellosoft.us</a></div>
</div>