changeset 82089:917d8d46f0bb

(byte-compile-from-buffer): initialise byte-compile-unresolved-functions before rather than after a compilation. (byte-compile-unresolved-functions): Amplify doc string.
author Alan Mackenzie <acm@muc.de>
date Tue, 24 Jul 2007 08:18:12 +0000
parents f95f5cfbac4e
children 5bc3f262d854
files lisp/emacs-lisp/bytecomp.el
diffstat 1 files changed, 8 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/bytecomp.el	Tue Jul 24 08:15:17 2007 +0000
+++ b/lisp/emacs-lisp/bytecomp.el	Tue Jul 24 08:18:12 2007 +0000
@@ -480,7 +480,8 @@
 
 (defvar byte-compile-unresolved-functions nil
   "Alist of undefined functions to which calls have been compiled.
-Used for warnings when the function is not known to be defined or is later
+This variable is only significant whilst compiling an entire buffer.
+Used for warnings when a function is not known to be defined or is later
 defined with incorrect args.")
 
 (defvar byte-compile-noruntime-functions nil
@@ -1849,6 +1850,11 @@
       (and filename (byte-compile-insert-header filename inbuffer outbuffer))
       (with-current-buffer inbuffer
 	(goto-char (point-min))
+	;; Should we always do this?  When calling multiple files, it
+	;; would be useful to delay this warning until all have been
+	;; compiled.  A: Yes!  b-c-u-f might contain dross from a
+	;; previous byte-compile.
+	(setq byte-compile-unresolved-functions nil)
 
 	;; Compile the forms from the input buffer.
 	(while (progn
@@ -1865,11 +1871,7 @@
 	;; Make warnings about unresolved functions
 	;; give the end of the file as their position.
 	(setq byte-compile-last-position (point-max))
-	(byte-compile-warn-about-unresolved-functions)
-	;; Should we always do this?  When calling multiple files, it
-	;; would be useful to delay this warning until all have
-	;; been compiled.
-	(setq byte-compile-unresolved-functions nil))
+	(byte-compile-warn-about-unresolved-functions))
       ;; Fix up the header at the front of the output
       ;; if the buffer contains multibyte characters.
       (and filename (byte-compile-fix-header filename inbuffer outbuffer))))