From 949dd41c31dab69f7a5067bba324c28bb2cfbf8e Mon Sep 17 00:00:00 2001 From: Mattias EngdegÄrd Date: Tue, 27 Jul 2021 17:26:26 +0200 Subject: Fix mistake in switch-case generation of `null` (bug#49746) Reported by Gregor Zattler. * lisp/emacs-lisp/bytecomp.el (byte-compile--cond-switch-prefix): Be more careful in the selection of equality. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add test case. --- test/lisp/emacs-lisp/bytecomp-tests.el | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'test/lisp/emacs-lisp') diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el b/test/lisp/emacs-lisp/bytecomp-tests.el index 7c40f7ebca3..ee0f931c192 100644 --- a/test/lisp/emacs-lisp/bytecomp-tests.el +++ b/test/lisp/emacs-lisp/bytecomp-tests.el @@ -503,6 +503,12 @@ (:success 'good)) (1+ x)))) (funcall f 3)) + + ;; Check `not' in cond switch (bug#49746). + (mapcar (lambda (x) (cond ((equal x "a") 1) + ((member x '("b" "c")) 2) + ((not x) 3))) + '("a" "b" "c" "d" nil)) ) "List of expressions for cross-testing interpreted and compiled code.") -- cgit v1.2.3