From ebf1d5f9a414d088054599cb1c70f302a3d44934 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sun, 4 Apr 2010 03:35:20 +0200 Subject: [PATCH] The code that adds declarations to symbol macros did not process properly the resulting records. --- src/cmp/cmpenv.lsp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/cmp/cmpenv.lsp b/src/cmp/cmpenv.lsp index 322dbbf25..2d2908d67 100644 --- a/src/cmp/cmpenv.lsp +++ b/src/cmp/cmpenv.lsp @@ -612,18 +612,17 @@ when (and (consp i) (var-p (fourth i))) collect (fourth i))) -(defun symbol-macrolet-declaration-p (name type) +(defun symbol-macro-declaration-p (name type) (let* ((record (cmp-env-search-variables name 'si::symbol-macro *cmp-env*))) - (when record - (let* ((expression (funcall (third record) name nil))) - (print expression) + (when (and record (functionp record)) + (let* ((expression (funcall record name nil))) (cmp-env-register-symbol-macro name `(the ,type ,expression))) t))) (defun check-vdecl (vnames ts is) (loop for (var . type) in ts unless (or (member var vnames :test #'eq) - (symbol-macrolet-declaration-p var type)) + (symbol-macro-declaration-p var type)) do (cmpwarn "Declaration of type~&~4T~A~&was found for not bound variable ~s." type var)) (loop for (var . expected-uses) in is