From 0794775d0d97c4f7291cc3954711a30447117963 Mon Sep 17 00:00:00 2001 From: Lawrence Mitchell Date: Sat, 16 Jul 2011 17:52:46 +0200 Subject: [PATCH] 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 --- lisp/ChangeLog | 5 +++++ lisp/emacs-lisp/cl-macs.el | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) 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 -- 2.39.2