summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorMattias EngdegÄrd <mattiase@acm.org>2024-06-17 13:14:08 +0200
committerMattias EngdegÄrd <mattiase@acm.org>2024-06-17 13:14:08 +0200
commit923aad81d473fd99adb651302dcccd79c6afbeff (patch)
treecf2d42fd33d198b8c2bba110f605f9ae1f93fe52 /lisp/emacs-lisp
parent175a513d19b7dd2aa2af3eb549b4c6b5a099e88d (diff)
downloademacs-923aad81d473fd99adb651302dcccd79c6afbeff.tar.gz
emacs-923aad81d473fd99adb651302dcccd79c6afbeff.tar.bz2
emacs-923aad81d473fd99adb651302dcccd79c6afbeff.zip
Don't hide `not` and `null` arity errors
* lisp/emacs-lisp/byte-opt.el (byte-optimize-not): Don't silently convert incorrect `not` and `null` applications to nil.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/byte-opt.el15
1 files changed, 8 insertions, 7 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index c060c8d676b..d8dbfa62bf9 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -1410,13 +1410,14 @@ See Info node `(elisp) Integer Basics'."
form)))
(defun byte-optimize-not (form)
- (and (= (length form) 2)
- (let ((arg (nth 1 form)))
- (cond ((null arg) t)
- ((macroexp-const-p arg) nil)
- ((byte-compile-nilconstp arg) `(progn ,arg t))
- ((byte-compile-trueconstp arg) `(progn ,arg nil))
- (t form)))))
+ (if (= (length form) 2)
+ (let ((arg (nth 1 form)))
+ (cond ((null arg) t)
+ ((macroexp-const-p arg) nil)
+ ((byte-compile-nilconstp arg) `(progn ,arg t))
+ ((byte-compile-trueconstp arg) `(progn ,arg nil))
+ (t form)))
+ form))
(put 'and 'byte-optimizer #'byte-optimize-and)
(put 'or 'byte-optimizer #'byte-optimize-or)