Fix byte-optimize-memq incorrectly optimizing some memq forms.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-memq): Call byte-optimize-and only for memq forms that can be optimized, use byte-optimize-predicate to optimize the final form.
This commit is contained in:
parent
a140513acb
commit
d73d1384aa
1 changed files with 5 additions and 4 deletions
|
@ -774,10 +774,11 @@
|
|||
(when (and (eq (car-safe list) 'quote)
|
||||
(listp (setq list (cadr list)))
|
||||
(= (length list) 1))
|
||||
(setq form `(and ,(byte-optimize-predicate
|
||||
`(eq ,(nth 1 form) ',(nth 0 list)))
|
||||
',list))))
|
||||
(byte-optimize-and form)))
|
||||
(setq form (byte-optimize-and
|
||||
`(and ,(byte-optimize-predicate
|
||||
`(eq ,(nth 1 form) ',(nth 0 list)))
|
||||
',list)))))
|
||||
(byte-optimize-predicate form)))
|
||||
|
||||
(put 'identity 'byte-optimizer 'byte-optimize-identity)
|
||||
(put 'memq 'byte-optimizer 'byte-optimize-memq)
|
||||
|
|
Loading…
Add table
Reference in a new issue