Mercurial > emacs
changeset 81217:908a902d5545
(byte-compile-warnings): Add new option `make-local'.
(byte-compile-warnings-safe-p): Add `make-local'.
(byte-compile-make-variable-buffer-local): Allow
byte-compile-warnings to suppress this warning.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Thu, 07 Jun 2007 07:00:00 +0000 |
parents | b2881c74343d |
children | fab9cb008a4e |
files | lisp/emacs-lisp/bytecomp.el |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/bytecomp.el Thu Jun 07 06:59:46 2007 +0000 +++ b/lisp/emacs-lisp/bytecomp.el Thu Jun 07 07:00:00 2007 +0000 @@ -101,6 +101,8 @@ ;; `cl-warnings' (calls to CL functions) ;; `interactive-only' (calls to commands that are ;; not good to call from Lisp) +;; `make-local' (dubious calls to +;; `make-variable-buffer-local') ;; byte-compile-compatibility Whether the compiler should ;; generate .elc files which can be loaded into ;; generic emacs 18. @@ -356,14 +358,16 @@ cl-functions calls to runtime functions from the CL package (as distinguished from macros and aliases). interactive-only - commands that normally shouldn't be called from Lisp code." + commands that normally shouldn't be called from Lisp code. + make-local calls to make-variable-buffer-local that may be incorrect." :group 'bytecomp :type `(choice (const :tag "All" t) (set :menu-tag "Some" (const free-vars) (const unresolved) (const callargs) (const redefine) (const obsolete) (const noruntime) - (const cl-functions) (const interactive-only)))) + (const cl-functions) (const interactive-only) + (const make-local)))) (put 'byte-compile-warnings 'safe-local-variable 'byte-compile-warnings-safe-p) ;;;###autoload (defun byte-compile-warnings-safe-p (x) @@ -374,7 +378,7 @@ (when (memq e '(free-vars unresolved callargs redefine obsolete noruntime - cl-functions interactive-only)) + cl-functions interactive-only make-local)) e)) x) x)))) @@ -3888,7 +3892,8 @@ ;; Warn about misuses of make-variable-buffer-local. (byte-defop-compiler-1 make-variable-buffer-local byte-compile-make-variable-buffer-local) (defun byte-compile-make-variable-buffer-local (form) - (if (eq (car-safe (car-safe (cdr-safe form))) 'quote) + (if (and (eq (car-safe (car-safe (cdr-safe form))) 'quote) + (memq 'make-local byte-compile-warnings)) (byte-compile-warn "`make-variable-buffer-local' should be called at toplevel")) (byte-compile-normal-call form))