Declare more mutating functions

* lisp/emacs-lisp/bytecomp.el (mutating-fns):
Add assoc-delete-all, assq-delete-all and rassq-delete-all.
* lisp/emacs-lisp/shortdoc.el (alist, list):
Don't mutate constants in examples illustrating use of
assoc-delete-all, assq-delete-all and rassq-delete-all.
This commit is contained in:
Mattias Engdegård 2023-05-20 20:34:55 +02:00
parent 88d1e9b436
commit f8cdb9e050
2 changed files with 8 additions and 5 deletions

View file

@ -3590,6 +3590,7 @@ lambda-expression."
(delq 2) (delete 2)
(delete-dups 1) (delete-consecutive-dups 1)
(plist-put 1)
(assoc-delete-all 2) (assq-delete-all 2) (rassq-delete-all 2)
(fillarray 1)
(store-substring 1)
(clear-string 1)

View file

@ -137,11 +137,11 @@ A FUNC form can have any number of `:no-eval' (or `:no-value'),
:eval (assoc-string "foo" '(("foo" . "bar") ("zot" "baz"))))
"Manipulating Alists"
(assoc-delete-all
:eval (assoc-delete-all "foo" '(("foo" . "bar") ("zot" . "baz")) #'equal))
:eval (assoc-delete-all "b" (list '("a" . a) '("b" . b) '("b" . c))))
(assq-delete-all
:eval (assq-delete-all 'foo '((foo . bar) (zot . baz))))
:eval (assq-delete-all 2 (list '(1 . a) '(2 . b) '(2 . c))))
(rassq-delete-all
:eval (rassq-delete-all 'bar '((foo . bar) (zot . baz))))
:eval (rassq-delete-all 'b (list '(1 . a) '(2 . b) '(2 . c))))
(alist-get
:eval (let ((foo '((bar . baz))))
(setf (alist-get 'bar foo) 'zot)
@ -705,10 +705,12 @@ A FUNC form can have any number of `:no-eval' (or `:no-value'),
:eval (assoc-default 2 '((1 . a) (2 . b) #'=)))
(copy-alist
:eval (copy-alist '((1 . a) (2 . b))))
(assq-delete-all
:eval (assq-delete-all 2 (list '(1 . a) '(2 . b) '(2 . c))))
(assoc-delete-all
:eval (assoc-delete-all "b" (list '("a" . a) '("b" . b) '("b" . c))))
(assq-delete-all
:eval (assq-delete-all 2 (list '(1 . a) '(2 . b) '(2 . c))))
(rassq-delete-all
:eval (rassq-delete-all 'b (list '(1 . a) '(2 . b) '(2 . c))))
"Property Lists"
(plist-get
:eval (plist-get '(a 1 b 2 c 3) 'b))