From: Lawrence Mitchell Date: Sat, 16 Jul 2011 15:52:46 +0000 (+0200) Subject: Silence byte-compiler warning with :read-only defstruct slots X-Git-Tag: emacs-pretest-24.0.90~104^2~232 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0794775d0d97c4f7291cc3954711a30447117963;p=emacs.git Silence byte-compiler warning with :read-only defstruct slots * emacs-lisp/cl-macs.el (defstruct): Ignore argument to setf method if slot is read-only. Fixes: debbugs:9035 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d22a6f081cd..a4c3f0c9217 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-07-16 Lawrence Mitchell + + * emacs-lisp/cl-macs.el (defstruct): Ignore argument to setf + method if slot is read-only (bug#9035). + 2011-07-16 Martin Rudalics * frame.el (select-frame-set-input-focus): New argument diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 5b6d08472f1..d6b4643d6a4 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2396,8 +2396,10 @@ value, that slot cannot be set via `setf'. (push (cons accessor t) side-eff) (push (list 'define-setf-method accessor '(cl-x) (if (cadr (memq :read-only (cddr desc))) - (list 'error (format "%s is a read-only slot" - accessor)) + (list 'progn '(ignore cl-x) + (list 'error + (format "%s is a read-only slot" + 'accessor))) ;; If cl is loaded only for compilation, ;; the call to cl-struct-setf-expander would ;; cause a warning because it may not be