]> git.eshelyaron.com Git - emacs.git/commitdiff
(byte-compile-warnings): Add new option `make-local'.
authorGlenn Morris <rgm@gnu.org>
Thu, 7 Jun 2007 07:00:00 +0000 (07:00 +0000)
committerGlenn Morris <rgm@gnu.org>
Thu, 7 Jun 2007 07:00:00 +0000 (07:00 +0000)
(byte-compile-warnings-safe-p): Add `make-local'.
(byte-compile-make-variable-buffer-local): Allow
byte-compile-warnings to suppress this warning.

lisp/emacs-lisp/bytecomp.el

index f1761c125ac1249d230e4a530a4c07eb1d8affa3..0a37f098a7bd691b97ba7ea689deba44ffbd5beb 100644 (file)
 ;;                             `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).
   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 @@ 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))
                       e))
                   x)
                  x))))
@@ -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))
       (byte-compile-warn
        "`make-variable-buffer-local' should be called at toplevel"))
   (byte-compile-normal-call form))