Subject: 28.0.50; pcase-let does not bind variables used inside macro
From: Mauricio Collares <[email-masked]>
To: [email-masked]
Date: Thu, 25 Feb 2021 21:40:54 -0300
List-Id: <debbugs-submit.debbugs.gnu.org>

This testcase is a reduced version of a problem that happens in
the "matrix-client.el" package (available on alphapapa's GitHub):

(require 'cl-lib)
(require 'pcase)

(cl-macrolet
    ((message-self () `(message self)))
  (pcase-let ((`(,self ,self2) '("1" "2")))
    (message-self)))

Behavior before commit a218c9861573b5ec4979ff2662f5c0343397e3ff
("lisp/emacs-lisp/pcase.el: Don't bind unused vars in branches"):
outputs 1 to the minibuffer.

Behavior after the commit: Symbol’s value as variable is void: self

Best,
Mauricio