diff --git a/src/lsp/assert.lsp b/src/lsp/assert.lsp index e1abcf779d2cbc9f5552cbc0b96e8c27fee6bb1a..edf37bcf2b8213f3a668b3fc300c48ecc5af0306 100644 --- a/src/lsp/assert.lsp +++ b/src/lsp/assert.lsp @@ -193,7 +193,7 @@ the last FORM. If not, simply returns NIL. The symbols T and OTHERWISE may be used as a TYPE to specify the default case." (do ((l reverse-clauses (cdr l)) (form nil) (key (gensym))) - ((endp l) `(let ((,key ,keyform)) ,form)) + ((endp l) `(let ((,key ,keyform)) (declare (ignorable ,key)) ,form)) (if (or (eq (caar l) 't) (eq (caar l) 'otherwise)) (progn (unless (eq l reverse-clauses) @@ -221,7 +221,7 @@ the last FORM. If not, signals an error." (do ((l (reverse clauses) (cdr l)) ; Beppe (form `(etypecase-error ',keyform ,key ',(accumulate-cases 'ETYPECASE clauses t)))) - ((endp l) `(let ((,key ,keyform)) ,form)) + ((endp l) `(let ((,key ,keyform)) (declare (ignorable ,key)) ,form)) (setq form `(if (typep ,key ',(caar l)) (progn ,@(cdar l)) ,form)) @@ -251,6 +251,7 @@ Repeats this process until the value of PLACE becomes of one of the TYPEs." ;;(setq clauses (remove-otherwise-from-clauses clauses)) ;; what is the relevance of this? '(OTHERWISE) is not a valid type. JCB `(loop (let ((,key ,keyplace)) + (declare (ignorable ,key)) ,@(mapcar #'(lambda (l) `(if (typep ,key ',(car l)) (return (progn ,@(cdr l))))) diff --git a/src/lsp/evalmacros.lsp b/src/lsp/evalmacros.lsp index e76250fa64bbf9dd253291c334452f7af2c2b786..cb8a8ff61d06816f668d122141d48edb2cab50ab 100644 --- a/src/lsp/evalmacros.lsp +++ b/src/lsp/evalmacros.lsp @@ -354,6 +354,7 @@ values of the last FORM. If no FORM is given, returns NIL." ) (dolist (clause reverse-clauses `(LET ((,test-key ,keyform)) + (declare (ignorable ,test-key)) ,form)) (let ((keys (car clause))) (if (or (eq keys 'T) (eq keys 'OTHERWISE))