mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-25 07:28:20 +00:00
Warn about bad defcustom :local keyword at compile time
* lisp/emacs-lisp/bytecomp.el (bytecomp--custom-declare): Warn about invalid values for the defcustom :local keyword. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test-defcustom-local): New test.
This commit is contained in:
parent
9ad73f9261
commit
fb42a253bd
@ -5467,7 +5467,13 @@ FORM is used to provide location, `bytecomp--cus-function' and
|
||||
(when (and name
|
||||
byte-compile-current-file ; only when compiling a whole file
|
||||
(eq fun 'custom-declare-group))
|
||||
(setq byte-compile-current-group name))))
|
||||
(setq byte-compile-current-group name))
|
||||
|
||||
;; Check :local
|
||||
(when-let ((val (and (eq fun 'custom-declare-variable)
|
||||
(plist-get keyword-args :local)))
|
||||
(_ (not (memq val '(t permanent permanent-only)))))
|
||||
(bytecomp--cus-warn form ":local keyword does not accept %S" val))))
|
||||
|
||||
(byte-compile-normal-call form))
|
||||
|
||||
|
@ -1985,6 +1985,14 @@ EXPECTED-POINT BINDINGS (MODES \\='\\='(ruby-mode js-mode python-mode)) \
|
||||
(dc 'integerp))
|
||||
))
|
||||
|
||||
(ert-deftest bytecomp-test-defcustom-local ()
|
||||
(cl-flet ((dc (local) `(defcustom mytest nil "doc" :type 'sexp :local ',local :group 'test)))
|
||||
(bytecomp--with-warning-test
|
||||
(rx ":local keyword does not accept 'symbol") (dc 'symbol))
|
||||
(bytecomp--with-warning-test
|
||||
(rx ":local keyword does not accept \"string\"") (dc "string"))
|
||||
))
|
||||
|
||||
(ert-deftest bytecomp-test-defface-spec ()
|
||||
(cl-flet ((df (spec) `(defface mytest ',spec "doc" :group 'test)))
|
||||
(bytecomp--with-warning-test
|
||||
|
Loading…
Reference in New Issue
Block a user