From: Stefan Monnier Date: Thu, 6 Nov 2014 03:16:41 +0000 (-0500) Subject: * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Optimize away trivial X-Git-Tag: emacs-25.0.90~2635^2~556 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4d5468e5296ce42793a86808c62af8f99f556cba;p=emacs.git * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Optimize away trivial uses of `funcall'. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e81b3a736a7..91a076e20e5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2014-11-06 Stefan Monnier + + * emacs-lisp/macroexp.el (macroexp--expand-all): Optimize away trivial + uses of `funcall'. + 2014-11-06 Daiki Ueno * epa.el (epa-error-buffer): New variable. @@ -7,8 +12,8 @@ (epa-sign-file, epa-sign-region, epa-encrypt-region) (epa-export-keys, epa-insert-keys): Display output sent to stderr. Use setf instead of epg-context-set-*. - * epa-file.el (epa-file-insert-file-contents): Use - epa-display-error instead of epa-display-info. Mimic the behavior + * epa-file.el (epa-file-insert-file-contents): + Use epa-display-error instead of epa-display-info. Mimic the behavior of jka-compr when decryption program is not found. (epa-file-write-region): Use epa-display-error instead of epa-display-info. diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index a96a7af77e8..fc859e7af09 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -251,6 +251,10 @@ Assumes the caller has bound `macroexpand-all-environment'." (format "%s quoted with ' rather than with #'" (list 'lambda (nth 1 f) '...)) (macroexp--expand-all `(,fun ,arg1 ,f . ,args)))) + (`(funcall (,(or 'quote 'function) ,(and f (pred symbolp) . ,_)) . ,args) + ;; Rewrite (funcall #'foo bar) to (foo bar), in case `foo' + ;; has a compiler-macro. + (macroexp--expand-all `(,f . ,args))) (`(,func . ,_) ;; Macro expand compiler macros. This cannot be delayed to ;; byte-optimize-form because the output of the compiler-macro can