Merge from origin/emacs-29
de2239a584
Revert "alist-get testfn argument evaluation correction"856d889f3a
Revert "Elide broken but unnecessary `if` optimisations"8e42e20ed7
Revert "Use equal and member instead of eq and memq"
This commit is contained in:
commit
d468cf91b9
9 changed files with 18 additions and 16 deletions
|
@ -1298,8 +1298,11 @@ See Info node `(elisp) Integer Basics'."
|
|||
(if else
|
||||
`(progn ,condition ,@else)
|
||||
condition))
|
||||
;; (if X t) -> (not (not X))
|
||||
((and (eq then t) (null else))
|
||||
;; (if X nil t) -> (not X)
|
||||
((and (eq then nil) (eq else '(t)))
|
||||
`(not ,condition))
|
||||
;; (if X t [nil]) -> (not (not X))
|
||||
((and (eq then t) (or (null else) (eq else '(nil))))
|
||||
`(not ,(byte-opt--negate condition)))
|
||||
;; (if VAR VAR X...) -> (or VAR (progn X...))
|
||||
((and (symbolp condition) (eq condition then))
|
||||
|
|
|
@ -417,9 +417,9 @@ The return value is the last VAL in the list.
|
|||
(lambda (do key alist &optional default remove testfn)
|
||||
(macroexp-let2 macroexp-copyable-p k key
|
||||
(gv-letplace (getter setter) alist
|
||||
(macroexp-let2 nil p (if (member testfn '(nil 'eq #'eq))
|
||||
`(assq ,k ,getter)
|
||||
`(assoc ,k ,getter ,testfn))
|
||||
(macroexp-let2 nil p `(if (and ,testfn (not (eq ,testfn 'eq)))
|
||||
(assoc ,k ,getter ,testfn)
|
||||
(assq ,k ,getter))
|
||||
(funcall do (if (null default) `(cdr ,p)
|
||||
`(if ,p (cdr ,p) ,default))
|
||||
(lambda (v)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue