From: Stefan Monnier Date: Wed, 11 May 2022 21:17:10 +0000 (-0400) Subject: (byte-compile-eval): Avoid some false positive "noruntime" warnings X-Git-Tag: emacs-29.0.90~1910^2~784 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ed0b589480a1e0a20364e1349fa8fa957ecb1efc;p=emacs.git (byte-compile-eval): Avoid some false positive "noruntime" warnings * lisp/emacs-lisp/bytecomp.el (byte-compile-eval): Loosen the check before refraining from adding a function to noruntime. --- diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index cbf2659109a..1fef9b00d85 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -1056,8 +1056,14 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." (dolist (s xs) (pcase s (`(defun . ,f) - (unless (seq-some #'autoloadp - (get (cdr s) 'function-history)) + ;; If `f' has a history, it's presumably because + ;; it was already defined beforehand (typically + ;; as an autoload). It could also be because it + ;; was defined twice during `form', in which case + ;; we arguably should add it to b-c-noruntime-functions, + ;; but it's not clear it's worth the trouble + ;; trying to recognize that case. + (unless (get f 'function-history) (push f byte-compile-noruntime-functions))))))))))))) (defun byte-compile-eval-before-compile (form)