emacs-diffs
[Top][All Lists]
Advanced

[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 ())



reply via email to

[Prev in Thread] Current Thread [Next in Thread]