]> git.eshelyaron.com Git - emacs.git/commitdiff
(flet): Throw an error when trying to byte-compile a redefinition of a
authorGlenn Morris <rgm@gnu.org>
Thu, 23 Oct 2008 02:40:37 +0000 (02:40 +0000)
committerGlenn Morris <rgm@gnu.org>
Thu, 23 Oct 2008 02:40:37 +0000 (02:40 +0000)
function with special byte-compile handling.  (Bug#411)

lisp/ChangeLog
lisp/emacs-lisp/cl-macs.el

index a1cbe8d79148b0536c2aa30aaf65c17670ef4211..390c816145ad33d6dd577bd289ad016e448258ed 100644 (file)
@@ -1,3 +1,9 @@
+2008-10-23  Glenn Morris  <rgm@gnu.org>
+
+       * 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  <viniciusjl@ig.com.br>
 
        * ps-print.el: Deal with page sizes for label printes.  Suggested by
index 9ca675f08c4ad10c3bd4042b70f5f744fd890bd5..08864962f08b83ab49ebe9dddd711813383c77d9 100644 (file)
@@ -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))