mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-13 09:32:47 +00:00
Count (not X) as a switch condition
* lisp/emacs-lisp/bytecomp.el (byte-compile--cond-switch-prefix): Treat (not VAR) and (null VAR) as (eq VAR nil) when computing the extent of switch ops.
This commit is contained in:
parent
0c58796a22
commit
51a86b6a05
@ -4340,6 +4340,16 @@ Return (TAIL VAR TEST CASES), where:
|
||||
(push value keys)
|
||||
(push (cons (list value) (or body '(t))) cases))
|
||||
t))))
|
||||
;; Treat (not X) as (eq X nil).
|
||||
(`((,(or 'not 'null) ,(and var (pred symbolp))) . ,body)
|
||||
(and (or (eq var switch-var) (not switch-var))
|
||||
(progn
|
||||
(setq switch-var var)
|
||||
(setq switch-test 'eq)
|
||||
(unless (memq nil keys)
|
||||
(push nil keys)
|
||||
(push (cons (list nil) (or body '(t))) cases))
|
||||
t)))
|
||||
(`((,(and fn (or 'memq 'memql 'member)) ,var ,expr) . ,body)
|
||||
(and (symbolp var)
|
||||
(or (eq var switch-var) (not switch-var))
|
||||
|
Loading…
Reference in New Issue
Block a user