<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7654.12">
<TITLE>Dialyzer and apply</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hello there , </FONT>

<BR><FONT SIZE=2 FACE="Arial">I started using Dialyzer lately , and found it really usefull. But , I had a case that I expected dialyzer to discover but it didn't.</FONT></P>

<P><FONT SIZE=2 FACE="Arial">The case occurs when using erlang:apply/3 or timer:apply_after/4</FONT>

<BR><FONT SIZE=2 FACE="Arial">Here's the example</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">-module(dtest).</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">-export([foo/0]).</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">foo()-></FONT>

<BR>        <FONT SIZE=2 FACE="Arial">timer:apply_after(100,?MODULE, bar, [ ]),</FONT>

<BR>        <FONT SIZE=2 FACE="Arial">erlang:apply(?MODULE,bar,[ ]).</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">When running the dialyzer for this module , it didn't discover the call to a missing function.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Wouldn't it be nice if dialyzer could discover such cases?</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Best Regards</FONT>

<BR><FONT SIZE=2 FACE="Arial">Ahmed Diaa      </FONT>
</P>

</BODY>
</HTML>