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).
This commit is contained in:
Noam Postavsky 2017-01-28 12:31:28 -05:00
parent 0073223c23
commit 9bf94639b8

View file

@ -226,7 +226,13 @@ DEFAULT-BODY, if present, is used as the body of a default method.
(when (eq 'setf (car-safe name))
(require 'gv)
(setq name (gv-setter (cadr name))))
`(progn
`(prog1
(progn
(defalias ',name
(cl-generic-define ',name ',args ',(nreverse options))
,(help-add-fundoc-usage doc args))
,@(mapcar (lambda (method) `(cl-defmethod ,name ,@method))
(nreverse methods)))
,@(mapcar (lambda (declaration)
(let ((f (cdr (assq (car declaration)
defun-declarations-alist))))
@ -235,12 +241,7 @@ DEFAULT-BODY, if present, is used as the body of a default method.
(t (message "Warning: Unknown defun property `%S' in %S"
(car declaration) name)
nil))))
(cdr declarations))
(defalias ',name
(cl-generic-define ',name ',args ',(nreverse options))
,(help-add-fundoc-usage doc args))
,@(mapcar (lambda (method) `(cl-defmethod ,name ,@method))
(nreverse methods)))))
(cdr declarations)))))
;;;###autoload
(defun cl-generic-define (name args options)