[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#19613: 25.0.50; cl-labels bug
From: |
Katsumi Yamaoka |
Subject: |
bug#19613: 25.0.50; cl-labels bug |
Date: |
Tue, 27 Jan 2015 08:00:57 +0900 |
User-agent: |
Gnus/5.130012 (真 Gnus v0.12) Emacs/25.0.50 (i686-pc-cygwin) |
On Mon, 26 Jan 2015 10:14:56 -0500, Stefan Monnier wrote:
[...]
> This looks correct. Ideally this part of cl--function-convert should
> delegate to cl--labels-convert to avoid the code duplication, tho.
That's much better. Here it is:
--- cl.el~ 2015-01-26 04:16:45.291325300 +0000
+++ cl.el 2015-01-26 22:57:02.040588600 +0000
@@ -342,6 +342,7 @@
- renaming of F when it's a function defined via `cl-labels' or `labels'."
(require 'cl-macs)
(declare-function cl--expr-contains-any "cl-macs" (x y))
+ (declare-function cl--labels-convert "cl-macs" (f))
(cond
;; ¡¡Big Ugly Hack!! We can't use a compiler-macro because those are checked
;; *after* handling `function', but we want to stop macroexpansion from
@@ -374,13 +375,8 @@
(setq cl--function-convert-cache (cons newf res))
res))))
(t
- (let ((found (assq f macroexpand-all-environment)))
- (if (and found (ignore-errors
- (eq (cadr (cl-caddr found)) 'cl-labels-args)))
- (cadr (cl-caddr (cl-cadddr found)))
- (let ((res `(function ,f)))
- (setq cl--function-convert-cache (cons f res))
- res))))))
+ (setq cl--labels-convert-cache cl--function-convert-cache)
+ (cl--labels-convert f))))
(defmacro lexical-let (bindings &rest body)
"Like `let', but lexically scoped.
- bug#19613: 25.0.50; cl-labels bug, Katsumi Yamaoka, 2015/01/16
- bug#19613: 25.0.50; cl-labels bug, Stefan Monnier, 2015/01/16
- bug#19613: 25.0.50; cl-labels bug, Glenn Morris, 2015/01/16
- bug#19613: 25.0.50; cl-labels bug, Stefan Monnier, 2015/01/16
- bug#19613: 25.0.50; cl-labels bug, Katsumi Yamaoka, 2015/01/22
- bug#19613: 25.0.50; cl-labels bug, Katsumi Yamaoka, 2015/01/26
- bug#19613: 25.0.50; cl-labels bug, Stefan Monnier, 2015/01/26
- bug#19613: 25.0.50; cl-labels bug,
Katsumi Yamaoka <=
- bug#19613: 25.0.50; cl-labels bug, Katsumi Yamaoka, 2015/01/26
- bug#19613: 25.0.50; cl-labels bug, Stefan Monnier, 2015/01/26
- bug#19613: 25.0.50; cl-labels bug, Katsumi Yamaoka, 2015/01/26