[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 502c402: * packages/cl-generic/cl-generic.el (cl-defmethod
From: |
Stefan Monnier |
Subject: |
[elpa] master 502c402: * packages/cl-generic/cl-generic.el (cl-defmethod): Fix handling of subclass. |
Date: |
Tue, 03 Feb 2015 15:22:40 +0000 |
branch: master
commit 502c402bf1922bd305ddc306afabeb35adbe7370
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
* packages/cl-generic/cl-generic.el (cl-defmethod): Fix handling of
subclass.
---
packages/cl-generic/cl-generic.el | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/packages/cl-generic/cl-generic.el
b/packages/cl-generic/cl-generic.el
index 060cffc..df09449 100644
--- a/packages/cl-generic/cl-generic.el
+++ b/packages/cl-generic/cl-generic.el
@@ -89,14 +89,15 @@
(while (not (listp args))
(push args qualifiers)
(setq args (pop body)))
- (when (eq (car-safe (car args)) 'subclass)
- ;; There's no exact equivalent to `subclass', but :static
- ;; provides a superset which should work just as well in practice.
- (push :static qualifiers)
- (setcar args (cadr (car args))))
+ (let ((arg1 (car args)))
+ (when (eq (car-safe (car (cdr-safe arg1))) 'subclass)
+ ;; There's no exact equivalent to `subclass', but :static
+ ;; provides a superset which should work just as well in practice.
+ (push :static qualifiers)
+ (setf (cadr arg1) (cadr (cadr arg1)))))
(let ((docstring (if (and (stringp (car body)) (cdr body)) (pop body))))
`(defmethod ,name ,@qualifiers ,args
- ,docstring
+ ,@(if docstring (list docstring))
;; We could just alias `cl-call-next-method' to `call-next-method',
;; and that would work, but then files compiled with this cl-generic
;; wouldn't work in Emacs-25 any more.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] master 502c402: * packages/cl-generic/cl-generic.el (cl-defmethod): Fix handling of subclass.,
Stefan Monnier <=