|
From: | Nicolas Richard |
Subject: | bug#17498: 24.4.50; This function has a compiler macro `yes--cmacro'. |
Date: | Fri, 16 May 2014 10:59:41 +0200 |
User-agent: | Gnus/5.13 (Gnus v5.13) Emacs/24.3.91 (gnu/linux) |
Leo Liu <sdl.web@gmail.com> writes: > Eval the following code > > ;;;; BEGIN > (defun yes () > ) > (when nil > (cl-define-compiler-macro yes (&rest _))) > ;;;; END FWIW (and because it was not obvious to me), it's due to eval-and-compile: (when nil (eval-and-compile (message "foo"))) => foo is shown in *Messages* Same with this : (defmacro bar () '(eval-and-compile (message "foo"))) (when nil (bar)) This case could be "fixed" by optimizing `when' for a nil condition : (defmacro new-when (cond &rest body) (declare (indent 1) (debug t)) (and cond (list 'if cond (cons 'progn body)))) Then (new-when nil (bar)) doesn't show anything. -- Nico.
[Prev in Thread] | Current Thread | [Next in Thread] |