]> git.eshelyaron.com Git - emacs.git/commitdiff
Document return value of pcase (Bug#30425)
authorNoam Postavsky <npostavs@gmail.com>
Sat, 31 Mar 2018 04:40:43 +0000 (00:40 -0400)
committerNoam Postavsky <npostavs@gmail.com>
Sat, 31 Mar 2018 04:50:37 +0000 (00:50 -0400)
* 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.

doc/lispref/control.texi
lisp/emacs-lisp/pcase.el

index f85ee94779092bce2efdb99f0d8825d0593d39bb..adec632da6a905993781faa2304b1e16fee29c27 100644 (file)
@@ -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
index 6cfd074cf0b316fc5b8ecf5b4d5c138befc2a1a0..ce148c9e1a938fc03c5882914bcbe52815401a82 100644 (file)
@@ -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)))