diff options
author | Stefan Kangas <stefankangas@gmail.com> | 2023-09-06 11:21:39 +0200 |
---|---|---|
committer | Stefan Kangas <stefankangas@gmail.com> | 2023-09-08 01:01:16 +0200 |
commit | 802a54ad6205479b29aaae9e737b665d8dfbdf91 (patch) | |
tree | ed2fb82da00f01fb397cfead53941c0e915f7702 /lisp/emacs-lisp/byte-run.el | |
parent | 331dee7e4a8d7b4f0e90de71c71bac58d998cdff (diff) | |
download | emacs-802a54ad6205479b29aaae9e737b665d8dfbdf91.tar.gz emacs-802a54ad6205479b29aaae9e737b665d8dfbdf91.tar.bz2 emacs-802a54ad6205479b29aaae9e737b665d8dfbdf91.zip |
Error when trying to make nil or t obsolete
* lisp/emacs-lisp/byte-run.el (make-obsolete, make-obsolete-variable):
Signal error if the symbol to make obsolete is nil or t. (Bug#62248)
(byte-run--constant-obsolete-warning): New function.
* test/lisp/emacs-lisp/byte-run-tests.el: New file.
Diffstat (limited to 'lisp/emacs-lisp/byte-run.el')
-rw-r--r-- | lisp/emacs-lisp/byte-run.el | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el index a377ec395e1..3e4e4d12cc8 100644 --- a/lisp/emacs-lisp/byte-run.el +++ b/lisp/emacs-lisp/byte-run.el @@ -494,6 +494,11 @@ convention was modified." Return t if there isn't any." (gethash function advertised-signature-table t)) +(defun byte-run--constant-obsolete-warning (obsolete-name) + (if (memq obsolete-name '(nil t)) + (error "Can't make `%s' obsolete; did you forget a quote mark?" + obsolete-name))) + (defun make-obsolete (obsolete-name current-name when) "Make the byte-compiler warn that function OBSOLETE-NAME is obsolete. OBSOLETE-NAME should be a function name or macro name (a symbol). @@ -503,6 +508,7 @@ If CURRENT-NAME is a string, that is the `use instead' message \(it should end with a period, and not start with a capital). WHEN should be a string indicating when the function was first made obsolete, for example a date or a release number." + (byte-run--constant-obsolete-warning obsolete-name) (put obsolete-name 'byte-obsolete-info ;; The second entry used to hold the `byte-compile' handler, but ;; is not used any more nowadays. @@ -539,6 +545,7 @@ WHEN should be a string indicating when the variable was first made obsolete, for example a date or a release number. ACCESS-TYPE if non-nil should specify the kind of access that will trigger obsolescence warnings; it can be either `get' or `set'." + (byte-run--constant-obsolete-warning obsolete-name) (put obsolete-name 'byte-obsolete-variable (purecopy (list current-name access-type when))) obsolete-name) |