* emacs-lisp/byte-opt.el (byte-optimize-pure-func): Remove function

(originally checked in as byte-optimize-concat on 1997-11-02).
This commit is contained in:
Chong Yidong 2007-04-06 18:22:23 +00:00
parent 5d83862984
commit c990483162
2 changed files with 4 additions and 21 deletions

View file

@ -1118,27 +1118,6 @@
(byte-optimize-predicate form))
form))
(put 'concat 'byte-optimizer 'byte-optimize-pure-func)
(put 'symbol-name 'byte-optimizer 'byte-optimize-pure-func)
(put 'regexp-opt 'byte-optimizer 'byte-optimize-pure-func)
(put 'regexp-quote 'byte-optimizer 'byte-optimize-pure-func)
(put 'string-to-syntax 'byte-optimizer 'byte-optimize-pure-func)
(defun byte-optimize-pure-func (form)
"Do constant folding for pure functions.
This assumes that the function will not have any side-effects and that
its return value depends solely on its arguments.
If the function can signal an error, this might change the semantics
of FORM by signaling the error at compile-time."
(let ((args (cdr form))
(constant t))
(while (and args constant)
(or (byte-compile-constp (car args))
(setq constant nil))
(setq args (cdr args)))
(if constant
(list 'quote (eval form))
form)))
;; Avoid having to write forward-... with a negative arg for speed.
;; Fixme: don't be limited to constant args.
(put 'backward-char 'byte-optimizer 'byte-optimize-backward-char)