aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoam Postavsky2017-01-28 12:31:28 -0500
committerNoam Postavsky2017-01-29 11:16:06 -0500
commit9bf94639b8f674d2c7894df35f26f09d0ecc67f5 (patch)
tree0346fd2985fa8d78161a4840ff0eb56087328d79
parent0073223c23749ffd6bd3f882bc30a82cc37efd2a (diff)
downloademacs-9bf94639b8f674d2c7894df35f26f09d0ecc67f5.tar.gz
emacs-9bf94639b8f674d2c7894df35f26f09d0ecc67f5.zip
Don't warn about obsolete defgenerics when defining them
* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): The declaration code should run after the definition code (Bug#25556).
-rw-r--r--lisp/emacs-lisp/cl-generic.el15
1 files changed, 8 insertions, 7 deletions
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index 8d141d7a646..6cc70c4c2f5 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -226,7 +226,13 @@ DEFAULT-BODY, if present, is used as the body of a default method.
226 (when (eq 'setf (car-safe name)) 226 (when (eq 'setf (car-safe name))
227 (require 'gv) 227 (require 'gv)
228 (setq name (gv-setter (cadr name)))) 228 (setq name (gv-setter (cadr name))))
229 `(progn 229 `(prog1
230 (progn
231 (defalias ',name
232 (cl-generic-define ',name ',args ',(nreverse options))
233 ,(help-add-fundoc-usage doc args))
234 ,@(mapcar (lambda (method) `(cl-defmethod ,name ,@method))
235 (nreverse methods)))
230 ,@(mapcar (lambda (declaration) 236 ,@(mapcar (lambda (declaration)
231 (let ((f (cdr (assq (car declaration) 237 (let ((f (cdr (assq (car declaration)
232 defun-declarations-alist)))) 238 defun-declarations-alist))))
@@ -235,12 +241,7 @@ DEFAULT-BODY, if present, is used as the body of a default method.
235 (t (message "Warning: Unknown defun property `%S' in %S" 241 (t (message "Warning: Unknown defun property `%S' in %S"
236 (car declaration) name) 242 (car declaration) name)
237 nil)))) 243 nil))))
238 (cdr declarations)) 244 (cdr declarations)))))
239 (defalias ',name
240 (cl-generic-define ',name ',args ',(nreverse options))
241 ,(help-add-fundoc-usage doc args))
242 ,@(mapcar (lambda (method) `(cl-defmethod ,name ,@method))
243 (nreverse methods)))))
244 245
245;;;###autoload 246;;;###autoload
246(defun cl-generic-define (name args options) 247(defun cl-generic-define (name args options)