From: Glenn Morris Date: Thu, 23 Oct 2008 02:40:37 +0000 (+0000) Subject: (flet): Throw an error when trying to byte-compile a redefinition of a X-Git-Tag: emacs-pretest-23.0.90~2235 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0ee35e515b9a2002fe8a06c85925e023c2248979;p=emacs.git (flet): Throw an error when trying to byte-compile a redefinition of a function with special byte-compile handling. (Bug#411) --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a1cbe8d7914..390c816145a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2008-10-23 Glenn Morris + + * emacs-lisp/cl-macs.el (flet): Throw an error when trying to + byte-compile a redefinition of a function with special byte-compile + handling. (Bug#411) + 2008-10-22 Vinicius Jose Latorre * ps-print.el: Deal with page sizes for label printes. Suggested by diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 9ca675f08c4..08864962f08 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -1328,10 +1328,14 @@ go back to their previous definitions, or lack thereof). (let ((func (list 'function* (list 'lambda (cadr x) (list* 'block (car x) (cddr x)))))) - (if (and (cl-compiling-file) - (boundp 'byte-compile-function-environment)) - (push (cons (car x) (eval func)) - byte-compile-function-environment)) + (when (cl-compiling-file) + ;; Bug#411. It would be nice to fix this. + (and (get (car x) 'byte-compile) + (error "Byte-compiling a redefinition of `%s' \ +will not work - use `labels' instead" (symbol-name (car x)))) + (and (boundp 'byte-compile-function-environment) + (push (cons (car x) (eval func)) + byte-compile-function-environment))) (list (list 'symbol-function (list 'quote (car x))) func)))) bindings) body))