Commit d7665ae8 authored by Lars Ingebrigtsen's avatar Lars Ingebrigtsen
Browse files

Make let-alist work with vectors

* lisp/emacs-lisp/let-alist.el (let-alist--deep-dot-search):
Descend into vectors, too, looking for dotted variables (bug#23244).

Test case:

(let-alist '((a . 1) (b . 2))
  `[,(+ .a) ,(+ .a .b .b)])
parent 77687276
Pipeline #2636 passed with stage
in 55 minutes and 49 seconds
......@@ -75,6 +75,8 @@ symbol, and each cdr is the same symbol without the `.'."
;; Return the cons cell inside a list, so it can be appended
;; with other results in the clause below.
(list (cons data (intern (replace-match "" nil nil name)))))))
((vectorp data)
(apply #'nconc (mapcar #'let-alist--deep-dot-search data)))
((not (consp data)) nil)
((eq (car data) 'let-alist)
;; For nested ‘let-alist’ forms, ignore symbols appearing in the
......
......@@ -95,4 +95,9 @@ See Bug#24641."
(should (equal (let-alist--deep-dot-search '(foo .bar (let-alist .qux .baz)))
'((.bar . bar) (.qux . qux))))) ; no .baz
(ert-deftest let-alist--vectors ()
(should (equal (let-alist '((a . 1) (b . 2))
`[,(+ .a) ,(+ .a .b .b)])
[1 5])))
;;; let-alist.el ends here
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