1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-11 09:20:51 +00:00

edebug.el: Disambiguate vector specifications

* lisp/emacs-lisp/edebug.el (edebug-match-list): Always treat
`(vector ...)' as a vector specification, not as a sublist.
This commit is contained in:
Johan Bockgård 2015-04-12 16:26:51 +02:00
parent f4dbec453d
commit b62d7956be

View File

@ -1725,6 +1725,17 @@ expressions; a `progn' form will be returned enclosing these forms."
(t
(error "Bad spec: %s" specs)))))
((eq 'vector spec)
(if (vectorp form)
;; Special case: match a vector with the specs.
(let ((result (edebug-match-sublist
(edebug-new-cursor
form (cdr (edebug-top-offset cursor)))
(cdr specs))))
(edebug-move-cursor cursor)
(list (apply 'vector result)))
(edebug-no-match cursor "Expected" specs)))
((listp form)
(prog1
(list (edebug-match-sublist
@ -1734,15 +1745,6 @@ expressions; a `progn' form will be returned enclosing these forms."
specs))
(edebug-move-cursor cursor)))
((and (eq 'vector spec) (vectorp form))
;; Special case: match a vector with the specs.
(let ((result (edebug-match-sublist
(edebug-new-cursor
form (cdr (edebug-top-offset cursor)))
(cdr specs))))
(edebug-move-cursor cursor)
(list (apply 'vector result))))
(t (edebug-no-match cursor "Expected" specs)))
)))