diff options
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/cl-macs.el | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 809e9223b43..121738df576 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2672,17 +2672,19 @@ non-nil value, that slot cannot be set via `setf'. (let ((accessor (intern (format "%s%s" conc-name slot)))) (push slot slots) (push (nth 1 desc) defaults) - (push `(cl-defsubst ,accessor (x) - ,(format "Access slot \"%s\" of `%s' struct X." + ;; The arg "cl-x" is referenced by name in eg pred-form + ;; and pred-check, so changing it is not straightforward. + (push `(cl-defsubst ,accessor (cl-x) + ,(format "Access slot \"%s\" of `%s' struct CL-X." slot struct) (declare (side-effect-free t)) ,@(and pred-check (list `(or ,pred-check (signal 'wrong-type-argument - (list ',name x))))) - ,(if (memq type '(nil vector)) `(aref x ,pos) - (if (= pos 0) '(car x) - `(nth ,pos x)))) + (list ',name cl-x))))) + ,(if (memq type '(nil vector)) `(aref cl-x ,pos) + (if (= pos 0) '(car cl-x) + `(nth ,pos cl-x)))) forms) (if (cadr (memq :read-only (cddr desc))) (push `(gv-define-expander ,accessor |