[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#65833: 30.0.50; cl-loop on the intervals uses global var
From: |
Stefan Monnier |
Subject: |
bug#65833: 30.0.50; cl-loop on the intervals uses global var |
Date: |
Fri, 08 Sep 2023 16:57:18 -0400 |
Package: Emacs
Version: 30.0.50
ELISP> (macroexpand '(cl-loop for X being the intervals of B do
(FOO)))
(cl--block-wrapper
(catch '--cl-block-nil--
(cl-block --cl-finish--
(cl--map-intervals
(lambda (--cl-var1-- --cl-var2--)
(setq X (cons --cl-var1-- --cl-var2--))
(FOO))
B nil nil nil))
nil))
As you can see, this sets fails to declare `X` as being a local
variable, so it will affect `X` from the surrounding context.
This looping form doesn't exist in Common Lisp, but `for X being` never
behaves like that, so this is clearly a bug.
Stefan
- bug#65833: 30.0.50; cl-loop on the intervals uses global var,
Stefan Monnier <=