Re: defmethod+flet

"Raymond Toy (RT/EUS)" <[email protected]>
Newsgroups gmane.lisp.cmucl.general
Message-ID <[email protected]>
Walter C. Pelissero wrote:
> I just stumbled in something that doesn't look quite right to me.
> 
> Under 19E the following is legal code:
> 
>   (defmethod foo (x)
>     x)
> 
>   (defmethod bar (x)
>     (flet ((foo (a)
> 	     (declare (ignore a))))
>       (foo)))
> 
> while I'd expect a warning for the missing argument in the call of
> FOO.  On the other hand the following code does produce a warning in
> the call of FOO2 (missing argument):
> 
>   (defmethod foo2 (x)
>     x)
> 
>   (defmethod bar2 (x)
>     (flet ((foo2 ()))
>       (foo2)))
> 
> SBCL doesn't show this behaviour.
> 

Thanks for the report.  I don't understand PCL at all, but as best as I 
can tell, it seems the compiler is a bit confused and doesn't think that 
foo2 is a local function.  Not really sure, though.

More investigation needed.

Ray
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.