Document return value of pcase (Bug#30425)
* doc/lispref/control.texi (Pattern matching case statement): * lisp/emacs-lisp/pcase.el (pcase): State that pcase returns nil if no patterns match. (pcase-exhaustive): State that an error is signaled if no patterns match.
This commit is contained in:
parent
8a2466ff72
commit
e50196e8a9
2 changed files with 7 additions and 3 deletions
|
@ -317,7 +317,8 @@ list of the form @code{(@var{pattern} @var{body-forms}@dots{})}.
|
|||
@var{pattern} of each clause, in textual order. If the value matches,
|
||||
the clause succeeds; @code{pcase} then evaluates its @var{body-forms},
|
||||
and returns the value of the last of @var{body-forms}. Any remaining
|
||||
@var{clauses} are ignored.
|
||||
@var{clauses} are ignored. If no clauses match, then the @code{pcase}
|
||||
form evaluates to @code{nil}.
|
||||
|
||||
The @var{pattern} part of a clause can be of one of two types:
|
||||
@dfn{QPattern}, a pattern quoted with a backquote; or a
|
||||
|
|
|
@ -118,7 +118,9 @@ two element list, binding its elements to symbols named `foo' and
|
|||
|
||||
A significant difference from `cl-destructuring-bind' is that, if
|
||||
a pattern match fails, the next case is tried until either a
|
||||
successful match is found or there are no more cases.
|
||||
successful match is found or there are no more cases. The CODE
|
||||
expression corresponding to the matching pattern determines the
|
||||
return value. If there is no match the returned value is nil.
|
||||
|
||||
Another difference is that pattern elements may be quoted,
|
||||
meaning they must match exactly: The pattern \\='(foo bar)
|
||||
|
@ -211,7 +213,8 @@ Emacs Lisp manual for more information and examples."
|
|||
|
||||
;;;###autoload
|
||||
(defmacro pcase-exhaustive (exp &rest cases)
|
||||
"The exhaustive version of `pcase' (which see)."
|
||||
"The exhaustive version of `pcase' (which see).
|
||||
If EXP fails to match any of the patterns in CASES, an error is signaled."
|
||||
(declare (indent 1) (debug pcase))
|
||||
(let* ((x (gensym "x"))
|
||||
(pcase--dontwarn-upats (cons x pcase--dontwarn-upats)))
|
||||
|
|
Loading…
Add table
Reference in a new issue