Sho Takemori <stakemorii@gmail.com> writes:
> Thanks for the fix. But after the fix, if MAP is a list literal, then it
> raises an error.
> For example, this raises an error.
> (map-put '((a . 1)) 'a "value")
>
> This works.
> (map-put [0 1 2] 1 "value")
>
> It is an expected error?
Yes, in the sense that the same error will be raised if you try to do it
with a setf on an alist:
(setf (alist-get 'b '((a . 1))) 3) ;; => invalid-function (a . 1)
(let ((alist '((a . 1))))
(setf (alist-get 'b alist) 3)) ;; => works fine
Note however that mutating literal lists is in general not a good idea,
as conses might be shared.
Nico