* lisp/emacs-lisp/pcase.el (pcase--fgrep): Look inside vectors
This commit is contained in:
parent
703115829b
commit
a69ef94e22
1 changed files with 9 additions and 4 deletions
|
@ -698,10 +698,15 @@ MATCH is the pattern that needs to be matched, of the form:
|
||||||
(dolist (binding (pcase--fgrep bindings (pop sexp)))
|
(dolist (binding (pcase--fgrep bindings (pop sexp)))
|
||||||
(push binding res)
|
(push binding res)
|
||||||
(setq bindings (remove binding bindings))))
|
(setq bindings (remove binding bindings))))
|
||||||
|
(if (vectorp sexp)
|
||||||
|
;; With backquote, code can appear within vectors as well.
|
||||||
|
;; This wouldn't be needed if we `macroexpand-all' before
|
||||||
|
;; calling pcase--fgrep, OTOH.
|
||||||
|
(pcase--fgrep bindings (mapcar #'identity sexp))
|
||||||
(let ((tmp (assq sexp bindings)))
|
(let ((tmp (assq sexp bindings)))
|
||||||
(if tmp
|
(if tmp
|
||||||
(cons tmp res)
|
(cons tmp res)
|
||||||
res))))
|
res)))))
|
||||||
|
|
||||||
(defun pcase--self-quoting-p (upat)
|
(defun pcase--self-quoting-p (upat)
|
||||||
(or (keywordp upat) (integerp upat) (stringp upat)))
|
(or (keywordp upat) (integerp upat) (stringp upat)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue