summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/byte-run.el
diff options
context:
space:
mode:
authorStefan Kangas <stefankangas@gmail.com>2023-09-06 11:21:39 +0200
committerStefan Kangas <stefankangas@gmail.com>2023-09-08 01:01:16 +0200
commit802a54ad6205479b29aaae9e737b665d8dfbdf91 (patch)
treeed2fb82da00f01fb397cfead53941c0e915f7702 /lisp/emacs-lisp/byte-run.el
parent331dee7e4a8d7b4f0e90de71c71bac58d998cdff (diff)
downloademacs-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.el7
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)