diff options
| author | Mattias EngdegÄrd | 2024-09-27 11:48:14 +0200 |
|---|---|---|
| committer | Mattias EngdegÄrd | 2024-09-27 19:26:52 +0200 |
| commit | bba14a27678317eee68e87a343e7314b3949f6c7 (patch) | |
| tree | e0f36001605ef720aa9b94d7dd38bd81d5880e09 /test | |
| parent | 09d63ba32bbd0ddbd8c9deb4fcfe8e4356ea0e8d (diff) | |
| download | emacs-bba14a27678317eee68e87a343e7314b3949f6c7.tar.gz emacs-bba14a27678317eee68e87a343e7314b3949f6c7.zip | |
Warn about bad face specs in `defface` at compile time
* lisp/emacs-lisp/bytecomp.el (byte-compile--custom-declare-face):
Byte-compile `defface` forms, or the byte-compile handler won't
be called.
(bytecomp--check-cus-face-spec): New.
(bytecomp--custom-declare): Call it.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test-defface-spec):
New tests.
Diffstat (limited to 'test')
| -rw-r--r-- | test/lisp/emacs-lisp/bytecomp-tests.el | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el b/test/lisp/emacs-lisp/bytecomp-tests.el index e3ce87cc9af..cce6b1221fc 100644 --- a/test/lisp/emacs-lisp/bytecomp-tests.el +++ b/test/lisp/emacs-lisp/bytecomp-tests.el | |||
| @@ -1985,6 +1985,32 @@ EXPECTED-POINT BINDINGS (MODES \\='\\='(ruby-mode js-mode python-mode)) \ | |||
| 1985 | (dc 'integerp)) | 1985 | (dc 'integerp)) |
| 1986 | )) | 1986 | )) |
| 1987 | 1987 | ||
| 1988 | (ert-deftest bytecomp-test-defface-spec () | ||
| 1989 | (cl-flet ((df (spec) `(defface mytest ',spec "doc" :group 'test))) | ||
| 1990 | (bytecomp--with-warning-test | ||
| 1991 | (rx "Bad face display condition `max-colors'") | ||
| 1992 | (df '((((class color grayscale) (max-colors 75) (background light)) | ||
| 1993 | :foreground "cyan")))) | ||
| 1994 | (bytecomp--with-warning-test | ||
| 1995 | (rx "Bad face display `defualt'") | ||
| 1996 | (df '((defualt :foreground "cyan")))) | ||
| 1997 | (bytecomp--with-warning-test | ||
| 1998 | (rx "`:inverse' is not a valid face attribute keyword") | ||
| 1999 | (df '((t :background "blue" :inverse t)))) | ||
| 2000 | (bytecomp--with-warning-test | ||
| 2001 | (rx "`:inverse' is not a valid face attribute keyword") | ||
| 2002 | (df '((t (:background "blue" :inverse t))))) ; old attr list syntax | ||
| 2003 | (bytecomp--with-warning-test | ||
| 2004 | (rx "Value for face attribute `:inherit' should not be quoted") | ||
| 2005 | (df '((t :inherit 'other)))) | ||
| 2006 | (bytecomp--with-warning-test | ||
| 2007 | (rx "Missing face attribute `:extend' value") | ||
| 2008 | (df '((t :foundry "abc" :extend)))) | ||
| 2009 | (bytecomp--with-warning-test | ||
| 2010 | (rx "Non-keyword in face attribute list: `\"green\"'") | ||
| 2011 | (df '((t :foreground "white" "green")))) | ||
| 2012 | )) | ||
| 2013 | |||
| 1988 | (ert-deftest bytecomp-function-attributes () | 2014 | (ert-deftest bytecomp-function-attributes () |
| 1989 | ;; Check that `byte-compile' keeps the declarations, interactive spec and | 2015 | ;; Check that `byte-compile' keeps the declarations, interactive spec and |
| 1990 | ;; doc string of the function (bug#55830). | 2016 | ;; doc string of the function (bug#55830). |