diff options
| author | Noam Postavsky | 2019-06-04 21:26:06 -0400 |
|---|---|---|
| committer | Noam Postavsky | 2019-06-10 18:27:22 -0400 |
| commit | 0026d0bf9f4e4e0247de9c1eb885507608378266 (patch) | |
| tree | b330d22ab718de52a60de728cc344485a457d3fb | |
| parent | 03b66d23a863835484267a8085bb9112d9bdecae (diff) | |
| download | emacs-0026d0bf9f4e4e0247de9c1eb885507608378266.tar.gz emacs-0026d0bf9f4e4e0247de9c1eb885507608378266.zip | |
Don't keep warning about unescaped literals (Bug#36068)
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Restore lost
let-binding of lread--unescaped-character-literals, so that unescaped
literals warning will only apply to the form just read.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--unescaped-char-literals): Expand test to check that
we don't keep warning about old unescaped literals.
| -rw-r--r-- | lisp/emacs-lisp/bytecomp.el | 5 | ||||
| -rw-r--r-- | test/lisp/emacs-lisp/bytecomp-tests.el | 32 |
2 files changed, 22 insertions, 15 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 38cce14fd62..f2a38a9c6c3 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el | |||
| @@ -2093,8 +2093,9 @@ With argument ARG, insert value in current buffer after the form." | |||
| 2093 | (not (eobp))) | 2093 | (not (eobp))) |
| 2094 | (setq byte-compile-read-position (point) | 2094 | (setq byte-compile-read-position (point) |
| 2095 | byte-compile-last-position byte-compile-read-position) | 2095 | byte-compile-last-position byte-compile-read-position) |
| 2096 | (let ((form (read inbuffer)) | 2096 | (let* ((lread--unescaped-character-literals nil) |
| 2097 | (warning (byte-run--unescaped-character-literals-warning))) | 2097 | (form (read inbuffer)) |
| 2098 | (warning (byte-run--unescaped-character-literals-warning))) | ||
| 2098 | (when warning (byte-compile-warn "%s" warning)) | 2099 | (when warning (byte-compile-warn "%s" warning)) |
| 2099 | (byte-compile-toplevel-file-form form))) | 2100 | (byte-compile-toplevel-file-form form))) |
| 2100 | ;; Compile pending forms at end of file. | 2101 | ;; Compile pending forms at end of file. |
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el b/test/lisp/emacs-lisp/bytecomp-tests.el index f45c9209c14..83162d250fc 100644 --- a/test/lisp/emacs-lisp/bytecomp-tests.el +++ b/test/lisp/emacs-lisp/bytecomp-tests.el | |||
| @@ -559,19 +559,25 @@ bytecompiled code, and their results compared.") | |||
| 559 | "Check that byte compiling warns about unescaped character | 559 | "Check that byte compiling warns about unescaped character |
| 560 | literals (Bug#20852)." | 560 | literals (Bug#20852)." |
| 561 | (should (boundp 'lread--unescaped-character-literals)) | 561 | (should (boundp 'lread--unescaped-character-literals)) |
| 562 | (bytecomp-tests--with-temp-file source | 562 | (let ((byte-compile-error-on-warn t) |
| 563 | (write-region "(list ?) ?( ?; ?\" ?[ ?])" nil source) | 563 | (byte-compile-debug t)) |
| 564 | (bytecomp-tests--with-temp-file destination | 564 | (bytecomp-tests--with-temp-file source |
| 565 | (let* ((byte-compile-dest-file-function (lambda (_) destination)) | 565 | (write-region "(list ?) ?( ?; ?\" ?[ ?])" nil source) |
| 566 | (byte-compile-error-on-warn t) | 566 | (bytecomp-tests--with-temp-file destination |
| 567 | (byte-compile-debug t) | 567 | (let* ((byte-compile-dest-file-function (lambda (_) destination)) |
| 568 | (err (should-error (byte-compile-file source)))) | 568 | (err (should-error (byte-compile-file source)))) |
| 569 | (should (equal (cdr err) | 569 | (should (equal (cdr err) |
| 570 | (list (concat "unescaped character literals " | 570 | `(,(concat "unescaped character literals " |
| 571 | "`?\"', `?(', `?)', `?;', `?[', `?]' " | 571 | "`?\"', `?(', `?)', `?;', `?[', `?]' " |
| 572 | "detected, " | 572 | "detected, " |
| 573 | "`?\\\"', `?\\(', `?\\)', `?\\;', `?\\[', " | 573 | "`?\\\"', `?\\(', `?\\)', `?\\;', `?\\[', " |
| 574 | "`?\\]' expected!")))))))) | 574 | "`?\\]' expected!"))))))) |
| 575 | ;; But don't warn in subsequent compilations (Bug#36068). | ||
| 576 | (bytecomp-tests--with-temp-file source | ||
| 577 | (write-region "(list 1 2 3)" nil source) | ||
| 578 | (bytecomp-tests--with-temp-file destination | ||
| 579 | (let ((byte-compile-dest-file-function (lambda (_) destination))) | ||
| 580 | (should (byte-compile-file source))))))) | ||
| 575 | 581 | ||
| 576 | (ert-deftest bytecomp-tests--old-style-backquotes () | 582 | (ert-deftest bytecomp-tests--old-style-backquotes () |
| 577 | "Check that byte compiling warns about old-style backquotes." | 583 | "Check that byte compiling warns about old-style backquotes." |