4 Mar
2010
4 Mar
'10
12:52 p.m.
On 2/18/10 8:49 PM, Madhu wrote:
CMUCL does not correctly handle FLETs in DEFMETHOD bodies which use the same name as that of the generic function. An example might be:
; (setq pcl::*optimize-gf-calls-p* t) (defmethod foo (bar var) (format t "GENERICFOO ~S, ~S.%" bar var))
(defclass fnarr ()())
(defmethod foo ((bar fnarr) var) (flet ((foo (&optional arg) (foo var (class-of arg)))) ; gf FOO call (foo bar))) ; local function FOO call
;; (incorrect) Error when evaluating (foo (make-instance 'fnarr) t)
Perhaps the immediate symptom can be treated in WALK-METHOD-LAMBDA as follows? -- Madhu
I'm not familiar with PCL at all, but that looks reasonable. I'll check it in shortly. Ray