Subject: Re: bug#59786: Allowing arbitrary expressions in cl-labels

From: Michael Heerdegen <[email-masked]>
Date: Tue, 29 Oct 2024 13:28:01 +0100

Hi Stefan,

> -forms of the function body.  FUNC is defined in any BODY, as well
> +forms of the function body.  FUNC is defined in any BODY or EXP, as well
                                                            ^^^^^^
This is unfortunately not correct, e.g.

(cl-labels ((even (if (odd 5)
                      (lambda (x) (if (= x 0) t (odd (1- x))))
                    #'ignore))
            (odd  (lambda (x) (if (= x 0) nil (even (1- x))))))
         (list (even 42) (odd 42)))

~~> funcall: Symbol's function definition is void: nil

Only preceding definitions can be used in the EXP.

Dunno how useful it is at all that the EXPs can use any of the defined
functions.

Michael.