emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 2860285 1/3: Allow macros autoloaded as functions


From: Noam Postavsky
Subject: [Emacs-diffs] emacs-26 2860285 1/3: Allow macros autoloaded as functions during bytecomp (Bug#36022)
Date: Sat, 1 Jun 2019 17:50:24 -0400 (EDT)

branch: emacs-26
commit 2860285621eb890697ca122cd6ede8c3f03566d6
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Allow macros autoloaded as functions during bytecomp (Bug#36022)
    
    * lisp/emacs-lisp/bytecomp.el (byte-compile-callargs-warn): Don't pass
    symbols which don't have a known definition to
    byte-compile--function-signature, it fails to compile code which
    previously compiled successfully (for example, gnus.el until
    2019-06-01 "* lisp/gnus/gnus.el: Mark autoloaded macros as such" which
    autoloads some macros as if they were functions).
---
 lisp/emacs-lisp/bytecomp.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 72e81a6..e3b34c1 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -1379,7 +1379,9 @@ when printing the error message."
 (defun byte-compile-callargs-warn (form)
   (let* ((def (or (byte-compile-fdefinition (car form) nil)
                  (byte-compile-fdefinition (car form) t)))
-         (sig (byte-compile--function-signature (or def (car form))))
+         (sig (cond (def (byte-compile--function-signature def))
+                    ((subrp (symbol-function (car form)))
+                     (subr-arity (symbol-function (car form))))))
         (ncall (length (cdr form))))
     ;; Check many or unevalled from subr-arity.
     (if (and (cdr-safe sig)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]