(byte-compile-maybe-guarded):

Remove optimization that was working around the form-code-walker bug.
This commit is contained in:
Stefan Monnier 2008-03-03 03:40:04 +00:00
parent 42521cd491
commit 86408b246c
2 changed files with 4 additions and 17 deletions

View file

@ -1,5 +1,8 @@
2008-03-03 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/bytecomp.el (byte-compile-maybe-guarded):
Remove optimization that was working around the form-code-walker bug.
* emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Walk into the body of lambdas after byte-compile-unfold-lambda.

View file

@ -3569,23 +3569,7 @@ that suppresses all warnings during execution of BODY."
(byte-compile-bound-variables
(if bound-list
(append bound-list byte-compile-bound-variables)
byte-compile-bound-variables))
;; Suppress all warnings, for code not used in Emacs.
;; FIXME: by the time this is executed the `featurep'
;; emacs/xemacs tests have been optimized away, so this is
;; not doing anything useful here, is should probably be
;; moved to a different place.
;; It is doing _something_. If this is commented out, then
;; compiling a file which requires another file which
;; defines a defsubst that uses (featurep 'xemacs) results
;; in a spurious compilation warning about the xemacs code. Eg:
;; (defsubst foo () (if (featurep 'xemacs) (setq foo t)))
;; where foo is a free variable.
(byte-compile-warnings
(if (member ,condition '((featurep 'xemacs)
(not (featurep 'emacs))))
nil byte-compile-warnings))
)
byte-compile-bound-variables)))
(unwind-protect
(progn ,@body)
;; Maybe remove the function symbol from the unresolved list.