[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#46786: 28.0.50; pcase-let does not bind variables used inside macro
From: |
Stefan Monnier |
Subject: |
bug#46786: 28.0.50; pcase-let does not bind variables used inside macro |
Date: |
Mon, 01 Mar 2021 15:38:43 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
>> 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
>
> I can reproduce the problem on the trunk here, too. I've added Stefan M
> to the CCs.
Indeed, this is a bug. I reverted the commit and installed some other
attempt at silencing the corresponding spurious warnings.
Can you confirm that this fixes the problem in your original code
(i.e. matrix-client.el, IIUC)?
Stefan
- bug#46786: 28.0.50; pcase-let does not bind variables used inside macro,
Stefan Monnier <=