<!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.7652.24">
<TITLE>Why the compiler doesn't complain!</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Verdana">Hi,</FONT>
</P>

<P><FONT SIZE=2 FACE="Verdana">I came across some strange compiler behavior.</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Verdana">The compiler should display a warning if some clause can't match because the previous one do.</FONT>

<BR><FONT SIZE=2 FACE="Verdana">And this is true for the following:</FONT>
</P>

<P><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">-record(state, {name, accountNo, input, pin}).</FONT>
</P>

<P><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">eval(Command, Args) -></FONT>

<BR><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">    io:format("Executing ~p ... ~n", [Command]);</FONT>

<BR><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">eval({quit}, _) -></FONT>

<BR><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">    done.</FONT>
</P>

<P><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">8> c("me").</FONT>

<BR><FONT COLOR="#FF0000" SIZE=2 FACE="Courier New">me.erl:7: Warning: this clause cannot match because a previous clause at line 5 always matches</FONT>

<BR><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">{ok,me}</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Verdana">But, when adding a record to the match clause, it goes ok !</FONT>
</P>

<P><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">eval2(Command, #state{name = "erl"}) -></FONT>

<BR><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">    io:format("Executing ~p ... ~n", [Command]);</FONT>

<BR><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">eval2({quit}, #state{name = "erl"}) -></FONT>

<BR><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">    done.</FONT>
</P>

<P><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">9> c("me").</FONT>

<BR><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">{ok,me}</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=2 FACE="Verdana">Regards,<B><I></I></B></FONT>

<BR><B><I><FONT COLOR="#000080" SIZE=2 FACE="Verdana">Ali Yakout</FONT></I></B><I></I>
</P>

</BODY>
</HTML>