[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 0756f3085ea: Clarify that 'pcase-lambda' only destructs
From: |
Philip Kaludercic |
Subject: |
master 0756f3085ea: Clarify that 'pcase-lambda' only destructs |
Date: |
Sun, 4 Aug 2024 10:54:01 -0400 (EDT) |
branch: master
commit 0756f3085ea948c945e309e2ce347fc5ab836574
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philipk@posteo.net>
Clarify that 'pcase-lambda' only destructs
* lisp/emacs-lisp/pcase.el (pcase-lambda): Copy notice from
'pcase-let', indicating that pcase-lambda won't pattern match
like 'pcase', but just try to destruct with uncertain side
effects if this fails. (Bug#71503)
---
lisp/emacs-lisp/pcase.el | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index 5a7f3995311..fd6b0c8db5c 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -241,9 +241,14 @@ not signal an error."
;;;###autoload
(defmacro pcase-lambda (lambda-list &rest body)
"Like `lambda' but allow each argument to be a pattern.
-I.e. accepts the usual &optional and &rest keywords, but every
-formal argument can be any pattern accepted by `pcase' (a mere
-variable name being but a special case of it)."
+I.e. accepts the usual &optional and &rest keywords, but every formal
+argument can be any pattern destructed by `pcase-let' (a mere variable
+name being but a special case of it).
+
+Each argument should match its respective pattern in the parameter
+list (i.e. be of a compatible structure); a mismatch may signal an error
+or may go undetected, binding arguments to arbitrary values, such as
+nil."
(declare (doc-string 2) (indent defun)
(debug (&define (&rest pcase-PAT) lambda-doc def-body)))
(let* ((bindings ())
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 0756f3085ea: Clarify that 'pcase-lambda' only destructs,
Philip Kaludercic <=