Use EXPVAL in docstrings of patterns defined using pcase-defmacro
Suggested by Drew Adams (Bug#31311). * lisp/emacs-lisp/cl-macs.el (cl-struct): ...here. * lisp/emacs-lisp/eieio.el (eieio): Likewise. * lisp/emacs-lisp/radix-tree.el (radix-tree-leaf): Likewise. * lisp/emacs-lisp/rx.el (rx): Likewise.
This commit is contained in:
parent
7e8227ed68
commit
4d7e54acff
4 changed files with 11 additions and 9 deletions
|
@ -2887,10 +2887,10 @@ non-nil value, that slot cannot be set via `setf'.
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(pcase-defmacro cl-struct (type &rest fields)
|
(pcase-defmacro cl-struct (type &rest fields)
|
||||||
"Pcase patterns to match cl-structs.
|
"Pcase patterns that match cl-struct EXPVAL of type TYPE.
|
||||||
Elements of FIELDS can be of the form (NAME PAT) in which case the contents of
|
Elements of FIELDS can be of the form (NAME PAT) in which case the
|
||||||
field NAME is matched against PAT, or they can be of the form NAME which
|
contents of field NAME is matched against PAT, or they can be of
|
||||||
is a shorthand for (NAME NAME)."
|
the form NAME which is a shorthand for (NAME NAME)."
|
||||||
(declare (debug (sexp &rest [&or (sexp pcase-PAT) sexp])))
|
(declare (debug (sexp &rest [&or (sexp pcase-PAT) sexp])))
|
||||||
`(and (pred (pcase--flip cl-typep ',type))
|
`(and (pred (pcase--flip cl-typep ',type))
|
||||||
,@(mapcar
|
,@(mapcar
|
||||||
|
|
|
@ -346,10 +346,10 @@ variable name of the same name as the slot."
|
||||||
index))))
|
index))))
|
||||||
|
|
||||||
(pcase-defmacro eieio (&rest fields)
|
(pcase-defmacro eieio (&rest fields)
|
||||||
"Pcase patterns to match EIEIO objects.
|
"Pcase patterns that match EIEIO object EXPVAL.
|
||||||
Elements of FIELDS can be of the form (NAME PAT) in which case the contents of
|
Elements of FIELDS can be of the form (NAME PAT) in which case the
|
||||||
field NAME is matched against PAT, or they can be of the form NAME which
|
contents of field NAME is matched against PAT, or they can be of
|
||||||
is a shorthand for (NAME NAME)."
|
the form NAME which is a shorthand for (NAME NAME)."
|
||||||
(declare (debug (&rest [&or (sexp pcase-PAT) sexp])))
|
(declare (debug (&rest [&or (sexp pcase-PAT) sexp])))
|
||||||
(let ((is (make-symbol "table")))
|
(let ((is (make-symbol "table")))
|
||||||
;; FIXME: This generates a horrendous mess of redundant let bindings.
|
;; FIXME: This generates a horrendous mess of redundant let bindings.
|
||||||
|
|
|
@ -196,6 +196,8 @@ If not found, return nil."
|
||||||
|
|
||||||
(eval-and-compile
|
(eval-and-compile
|
||||||
(pcase-defmacro radix-tree-leaf (vpat)
|
(pcase-defmacro radix-tree-leaf (vpat)
|
||||||
|
"Build a `pcase' pattern that matches radix-tree leaf EXPVAL.
|
||||||
|
VPAT is a `pcase' pattern to extract the value."
|
||||||
;; FIXME: We'd like to use a negative pattern (not consp), but pcase
|
;; FIXME: We'd like to use a negative pattern (not consp), but pcase
|
||||||
;; doesn't support it. Using `atom' works but generates sub-optimal code.
|
;; doesn't support it. Using `atom' works but generates sub-optimal code.
|
||||||
`(or `(t . ,,vpat) (and (pred atom) ,vpat))))
|
`(or `(t . ,,vpat) (and (pred atom) ,vpat))))
|
||||||
|
|
|
@ -1177,7 +1177,7 @@ enclosed in `(and ...)'.
|
||||||
(pcase-defmacro rx (&rest regexps)
|
(pcase-defmacro rx (&rest regexps)
|
||||||
"Build a `pcase' pattern matching `rx' regexps.
|
"Build a `pcase' pattern matching `rx' regexps.
|
||||||
The REGEXPS are interpreted as by `rx'. The pattern matches if
|
The REGEXPS are interpreted as by `rx'. The pattern matches if
|
||||||
the regular expression so constructed matches the object, as if
|
the regular expression so constructed matches EXPVAL, as if
|
||||||
by `string-match'.
|
by `string-match'.
|
||||||
|
|
||||||
In addition to the usual `rx' constructs, REGEXPS can contain the
|
In addition to the usual `rx' constructs, REGEXPS can contain the
|
||||||
|
|
Loading…
Add table
Reference in a new issue