(flet): Throw an error when trying to byte-compile a redefinition of a

function with special byte-compile handling.  (Bug#411)
This commit is contained in:
Glenn Morris 2008-10-23 02:40:37 +00:00
parent 91236f636e
commit 0ee35e515b
2 changed files with 14 additions and 4 deletions

View 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))