bytecomp.el partial fix for bug#8646.
authorGlenn Morris <rgm@gnu.org>
Wed, 11 May 2011 16:31:33 +0000 (09:31 -0700)
committerGlenn Morris <rgm@gnu.org>
Wed, 11 May 2011 16:31:33 +0000 (09:31 -0700)
* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn):
Handle symbol elements of byte-compile-initial-macro-environment.

lisp/ChangeLog
lisp/emacs-lisp/bytecomp.el

index 0ac18b3..642c3fa 100644 (file)
@@ -1,3 +1,8 @@
+2011-05-11  Glenn Morris  <rgm@gnu.org>
+
+       * emacs-lisp/bytecomp.el (byte-compile-arglist-warn):
+       Handle symbol elements of byte-compile-initial-macro-environment.
+
 2011-05-10  Leo Liu  <sdl.web@gmail.com>
 
        * bookmark.el (bookmark-bmenu-mode-map): Bind
index 6ca8eed..e8d8993 100644 (file)
@@ -1314,7 +1314,15 @@ extra args."
 ;; number of arguments.
 (defun byte-compile-arglist-warn (form macrop)
   (let* ((name (nth 1 form))
-         (old (byte-compile-fdefinition name macrop)))
+         (old (byte-compile-fdefinition name macrop))
+         (initial (and macrop
+                       (cdr (assq name
+                                  byte-compile-initial-macro-environment)))))
+    ;; Assumes an element of b-c-i-macro-env that is a symbol points
+    ;; to a defined function.  (Bug#8646)
+    (and initial (symbolp initial)
+         (setq old (byte-compile-fdefinition initial nil)
+               initial 'yes))
     (if (and old (not (eq old t)))
        (progn
          (and (eq 'macro (car-safe old))