Commit 15ce9dcf authored by Glenn Morris's avatar Glenn Morris
Browse files

(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.
parent 04cc80ae
......@@ -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 @@ Elements of the list may be:
cl-functions calls to runtime functions from the CL package (as
distinguished from macros and aliases).
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)
(defun byte-compile-warnings-safe-p (x)
......@@ -374,7 +378,7 @@ Elements of the list may be:
(when (memq e '(free-vars unresolved
callargs redefine
obsolete noruntime
cl-functions interactive-only))
cl-functions interactive-only make-local))
......@@ -3888,7 +3892,8 @@ that suppresses all warnings during execution of BODY."
;; 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))
"`make-variable-buffer-local' should be called at toplevel"))
(byte-compile-normal-call form))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment