From 35718e8f653ea98029f695ee62b10dea0c7a39e7 Mon Sep 17 00:00:00 2001 From: rtoy <rtoy> Date: Tue, 12 Oct 2004 16:56:21 +0000 Subject: [PATCH] We were incorrectly looking up local definitions for macros because of the generalized function name syntax. Use VALID-FUNCTION-NAME-P to get the function name from the environment. From a bug reported by Bruno Haible, cmucl-imp, 2004-10-08. --- code/eval.lisp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/eval.lisp b/code/eval.lisp index 1413c1d90..1df5d6d41 100644 --- a/code/eval.lisp +++ b/code/eval.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/eval.lisp,v 1.40 2003/06/18 09:23:11 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/eval.lisp,v 1.41 2004/10/12 16:56:21 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -354,7 +354,10 @@ environment only." (declare (symbol symbol)) (let* ((fenv (when env (c::lexenv-functions env))) - (local-def (cdr (assoc symbol fenv)))) + (local-def + (cdr (assoc symbol fenv + :key #'(lambda (e) + (nth-value 1 (valid-function-name-p e))))))) (cond (local-def (if (and (consp local-def) (eq (car local-def) 'MACRO)) (cdr local-def) -- GitLab