emacs-diffs
[Top][All Lists]
Advanced

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

master ed0b589480: (byte-compile-eval): Avoid some false positive "norun


From: Stefan Monnier
Subject: master ed0b589480: (byte-compile-eval): Avoid some false positive "noruntime" warnings
Date: Wed, 11 May 2022 17:20:42 -0400 (EDT)

branch: master
commit ed0b589480a1e0a20364e1349fa8fa957ecb1efc
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    (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.
---
 lisp/emacs-lisp/bytecomp.el | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index cbf2659109..1fef9b00d8 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)



reply via email to

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