Fix a byte-compiler error in map-put and map-delete
* lisp/emacs-lisp/map.el (map-put, map-delete): Ensure that `setq' is called with a symbol.
This commit is contained in:
parent
5977a07d94
commit
8fe836abbd
1 changed files with 16 additions and 10 deletions
|
@ -113,11 +113,14 @@ with VALUE.
|
|||
|
||||
MAP can be a list, hash-table or array."
|
||||
(declare (debug t))
|
||||
`(progn
|
||||
(map--dispatch (m ,map m)
|
||||
:list (setq ,map (cons (cons ,key ,value) m))
|
||||
:hash-table (puthash ,key ,value m)
|
||||
:array (aset m ,key ,value))))
|
||||
(let ((symbol (symbolp map)))
|
||||
`(progn
|
||||
(map--dispatch (m ,map m)
|
||||
:list (if ,symbol
|
||||
(setq ,map (cons (cons ,key ,value) m))
|
||||
(error "Literal lists are not allowed, %s must be a symbol" ',map))
|
||||
:hash-table (puthash ,key ,value m)
|
||||
:array (aset m ,key ,value)))))
|
||||
|
||||
(defmacro map-delete (map key)
|
||||
"In MAP, delete the key KEY if present and return MAP.
|
||||
|
@ -125,11 +128,14 @@ If MAP is an array, store nil at the index KEY.
|
|||
|
||||
MAP can be a list, hash-table or array."
|
||||
(declare (debug t))
|
||||
`(progn
|
||||
(map--dispatch (m ,map m)
|
||||
:list (setq ,map (map--delete-alist m ,key))
|
||||
:hash-table (remhash ,key m)
|
||||
:array (map--delete-array m ,key))))
|
||||
(let ((symbol (symbolp map)))
|
||||
`(progn
|
||||
(map--dispatch (m ,map m)
|
||||
:list (if ,symbol
|
||||
(setq ,map (map--delete-alist m ,key))
|
||||
(error "Literal lists are not allowed, %s must be a symbol" ',map))
|
||||
:hash-table (remhash ,key m)
|
||||
:array (map--delete-array m ,key)))))
|
||||
|
||||
(defun map-nested-elt (map keys &optional default)
|
||||
"Traverse MAP using KEYS and return the looked up value or DEFAULT if nil.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue