Commit 4d7e54ac authored by Thien-Thi Nguyen's avatar Thien-Thi Nguyen

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.
parent 7e8227ed
......@@ -2887,10 +2887,10 @@ non-nil value, that slot cannot be set via `setf'.
;;;###autoload
(pcase-defmacro cl-struct (type &rest fields)
"Pcase patterns to match cl-structs.
Elements of FIELDS can be of the form (NAME PAT) in which case the contents of
field NAME is matched against PAT, or they can be of the form NAME which
is a shorthand for (NAME NAME)."
"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 field NAME is matched against PAT, or they can be of
the form NAME which is a shorthand for (NAME NAME)."
(declare (debug (sexp &rest [&or (sexp pcase-PAT) sexp])))
`(and (pred (pcase--flip cl-typep ',type))
,@(mapcar
......
......@@ -346,10 +346,10 @@ variable name of the same name as the slot."
index))))
(pcase-defmacro eieio (&rest fields)
"Pcase patterns to match EIEIO objects.
Elements of FIELDS can be of the form (NAME PAT) in which case the contents of
field NAME is matched against PAT, or they can be of the form NAME which
is a shorthand for (NAME NAME)."
"Pcase patterns that match EIEIO object EXPVAL.
Elements of FIELDS can be of the form (NAME PAT) in which case the
contents of field NAME is matched against PAT, or they can be of
the form NAME which is a shorthand for (NAME NAME)."
(declare (debug (&rest [&or (sexp pcase-PAT) sexp])))
(let ((is (make-symbol "table")))
;; FIXME: This generates a horrendous mess of redundant let bindings.
......
......@@ -196,6 +196,8 @@ If not found, return nil."
(eval-and-compile
(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
;; doesn't support it. Using `atom' works but generates sub-optimal code.
`(or `(t . ,,vpat) (and (pred atom) ,vpat))))
......
......@@ -1177,7 +1177,7 @@ enclosed in `(and ...)'.
(pcase-defmacro rx (&rest regexps)
"Build a `pcase' pattern matching `rx' regexps.
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'.
In addition to the usual `rx' constructs, REGEXPS can contain the
......
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