From 0f06c4e85befb56de6c1a911806141eefc2e8374 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Mon, 20 May 2013 22:48:15 +0200 Subject: [PATCH] We cannot use :READ-ONLY in the SETF expansions because some code out there modifies the variables. --- src/lsp/setf.lsp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lsp/setf.lsp b/src/lsp/setf.lsp index b23019040..41ed0dd4c 100644 --- a/src/lsp/setf.lsp +++ b/src/lsp/setf.lsp @@ -358,9 +358,12 @@ Does not check if the third gang is a single-element list." ((try-simpler-expansion place vars vals stores newvalue store-form)) (t `(let* ,(mapcar #'list vars vals) - (declare (:read-only ,@vars)) + ;; Unfortunately we cannot do this because there is code out + ;; there that changes the variables and values + ;; (declare (:read-only ,@vars)) (multiple-value-bind ,stores ,newvalue - (declare (:read-only ,@stores)) + ;; Same here + ;; (declare (:read-only ,@stores)) ,store-form)))))) (defun setf-expand (l env)