Fix the error message when modifying maps in-place (Bug#34941)

* lisp/emacs-lisp/map.el (map-not-inplace): Fix the message of the
(map-put!): When signaling map-no-inplace error, output the map that
cannot be updated inplace.
parent 09c220a5
Pipeline #1054 passed with stage
in 52 minutes and 17 seconds
......@@ -96,7 +96,7 @@ Returns the result of evaluating the form associated with MAP-VAR's type."
(t (error "Unsupported map type `%S': %S"
(type-of ,map-var) ,map-var)))))
(define-error 'map-not-inplace "Cannot modify map in-place: %S")
(define-error 'map-not-inplace "Cannot modify map in-place")
(defsubst map--plist-p (list)
(and (consp list) (not (listp (car list)))))
......@@ -393,7 +393,7 @@ If you want to insert an element without modifying MAP, use `map-insert'."
(let ((oldmap map))
(setf (alist-get key map key nil (or testfn #'equal)) value)
(unless (eq oldmap map)
(signal 'map-not-inplace (list map)))))
(signal 'map-not-inplace (list oldmap)))))
:hash-table (puthash key value map)
;; FIXME: If `key' is too large, should we signal `map-not-inplace'
;; and let `map-insert' grow the array?
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment