From 4fb36efd04bd8aed07806e9296ecbbb58c0aadd1 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sun, 11 Jul 2010 15:10:20 +0200 Subject: [PATCH] In WALK-METHOD-LAMBDA use eval-with-env to get access to the macros that are defined in the compiler environment --- src/clos/method.lsp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/clos/method.lsp b/src/clos/method.lsp index 223073f4e..3765ab86c 100644 --- a/src/clos/method.lsp +++ b/src/clos/method.lsp @@ -164,7 +164,11 @@ in-closure-p t)))))) form)) (let ((si::*code-walker* #'code-walker)) - (coerce method-lambda 'function))) + ;; Instead of (coerce method-lambda 'function) we use + ;; explicitely the bytecodes compiler with an environment, no + ;; stepping, compiler-env-p = t and execute = nil, so that the + ;; form does not get executed. + (si::eval-with-env method-lambda env nil t nil))) (values call-next-method-p next-method-p-p in-closure-p)))