]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't warn about obsolete defgenerics when defining them
authorNoam Postavsky <npostavs@gmail.com>
Sat, 28 Jan 2017 17:31:28 +0000 (12:31 -0500)
committerNoam Postavsky <npostavs@gmail.com>
Sun, 29 Jan 2017 16:16:06 +0000 (11:16 -0500)
* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): The declaration code
should run after the definition code (Bug#25556).

lisp/emacs-lisp/cl-generic.el

index 8d141d7a6469c8ac5f08d592d54d3f6dc4fdf823..6cc70c4c2f5a72f84da89dfb189ce13f222a6c10 100644 (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)