Subject: bug#19613: 25.0.50; cl-labels bug

From: Stefan Monnier <[email-masked]>
Date: Mon, 26 Jan 2015 10:14:56 -0500

> -    (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* ((found (assq f macroexpand-all-environment))
> +           (replacement (and found
> +                             (ignore-errors
> +                               (funcall (cdr found) cl--labels-magic)))))
> +      (if (and replacement (eq cl--labels-magic (car replacement)))
> +          (nth 1 replacement)
>          (let ((res `(function ,f)))
>            (setq cl--function-convert-cache (cons f res))
>            res))))))

This looks correct.  Ideally this part of cl--function-convert should
delegate to cl--labels-convert to avoid the code duplication, tho.

        Stefan