1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00

Mention caveats in the map-delete doc string

* lisp/emacs-lisp/map.el (map-delete): Mention how this has to be
used for lists (bug#25929).
This commit is contained in:
Lars Ingebrigtsen 2022-04-26 15:32:45 +02:00
parent 0936bfcd77
commit 756b7cf5d9

View file

@ -175,7 +175,17 @@ MAP can be an alist, plist, hash-table, or array."
(cl-defgeneric map-delete (map key)
"Delete KEY in-place from MAP and return MAP.
Keys not present in MAP are ignored.")
Keys not present in MAP are ignored.
Note that if MAP is a list (either alist or plist), and you're
deleting the final element in the list, the list isn't actually
destructively modified (but the return value will reflect the
deletion). So if you're using this method on a list, you have to
say
(setq map (map-delete map key))
for this to work reliably.")
(cl-defmethod map-delete ((map list) key)
;; FIXME: Signal map-not-inplace i.s.o returning a different list?