Inhibit flymake lexical cookie warning in *scratch* (bug#70068)
Add a hack to prevent flymake from complaining about a missing lexical cookie when enabled in *scratch*. * lisp/emacs-lisp/bytecomp.el (bytecomp--inhibit-lexical-cookie-warning): New variable. (byte-compile-file): Use it to gate the warning. * lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile): Set the inhibitor when spawning a check in lisp-interaction-mode.
This commit is contained in:
parent
2c6eb49fa2
commit
cda5155c61
2 changed files with 14 additions and 2 deletions
|
@ -2149,6 +2149,8 @@ If compilation is needed, this functions returns the result of
|
|||
(cons tempfile target-file))
|
||||
(rename-file tempfile target-file t)))))
|
||||
|
||||
(defvar bytecomp--inhibit-lexical-cookie-warning nil)
|
||||
|
||||
;;;###autoload
|
||||
(defun byte-compile-file (filename &optional load)
|
||||
"Compile a file of Lisp code named FILENAME into a file of byte code.
|
||||
|
@ -2234,7 +2236,8 @@ See also `emacs-lisp-byte-compile-and-load'."
|
|||
(setq buffer-read-only nil
|
||||
filename buffer-file-name))
|
||||
;; Don't inherit lexical-binding from caller (bug#12938).
|
||||
(unless (local-variable-p 'lexical-binding)
|
||||
(unless (or (local-variable-p 'lexical-binding)
|
||||
bytecomp--inhibit-lexical-cookie-warning)
|
||||
(let ((byte-compile-current-buffer (current-buffer)))
|
||||
(displaying-byte-compile-warnings
|
||||
(byte-compile-warn-x
|
||||
|
|
|
@ -2169,6 +2169,8 @@ directory of the buffer being compiled, and nothing else.")
|
|||
(dolist (path x t) (unless (stringp path)
|
||||
(throw 'tag nil)))))))
|
||||
|
||||
(defvar bytecomp--inhibit-lexical-cookie-warning)
|
||||
|
||||
;;;###autoload
|
||||
(defun elisp-flymake-byte-compile (report-fn &rest _args)
|
||||
"A Flymake backend for elisp byte compilation.
|
||||
|
@ -2184,7 +2186,13 @@ current buffer state and calls REPORT-FN when done."
|
|||
(save-restriction
|
||||
(widen)
|
||||
(write-region (point-min) (point-max) temp-file nil 'nomessage))
|
||||
(let* ((output-buffer (generate-new-buffer " *elisp-flymake-byte-compile*")))
|
||||
(let* ((output-buffer (generate-new-buffer " *elisp-flymake-byte-compile*"))
|
||||
;; Hack: suppress warning about missing lexical cookie in
|
||||
;; *scratch* buffers.
|
||||
(warning-suppression-opt
|
||||
(and (derived-mode-p 'lisp-interaction-mode)
|
||||
'("--eval"
|
||||
"(setq bytecomp--inhibit-lexical-cookie-warning t)"))))
|
||||
(setq
|
||||
elisp-flymake--byte-compile-process
|
||||
(make-process
|
||||
|
@ -2196,6 +2204,7 @@ current buffer state and calls REPORT-FN when done."
|
|||
;; "--eval" "(setq load-prefer-newer t)" ; for testing
|
||||
,@(mapcan (lambda (path) (list "-L" path))
|
||||
elisp-flymake-byte-compile-load-path)
|
||||
,@warning-suppression-opt
|
||||
"-f" "elisp-flymake--batch-compile-for-flymake"
|
||||
,temp-file)
|
||||
:connection-type 'pipe
|
||||
|
|
Loading…
Add table
Reference in a new issue