X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/fb3f83f5fd9e80347c8b8e36f6eaefbb912fe57b..a608ff369cae4be96fc6af884f6af8d20ffed344:/lisp/emacs-lisp/macroexp.el diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index 44727daf76..55e2ebf713 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -98,10 +98,8 @@ each clause." (condition-case err (apply handler form (cdr form)) (error - (message "--------------------------------------------------") - (backtrace) (message "Compiler-macro error for %S: %S" (car form) err) - form))) + form))) (defun macroexp--funcall-if-compiled (_form) "Pseudo function used internally by macroexp to delay warnings. @@ -203,6 +201,12 @@ Assumes the caller has bound `macroexpand-all-environment'." (macroexp--all-forms body) (cdr form)) form)) + (`(,(and fun (or `flet `labels)) . ,(or `(,bindings . ,body) dontcare)) + (macroexp--cons fun + (macroexp--cons (macroexp--all-clauses bindings 2) + (macroexp--all-forms body) + (cdr form)) + form)) (`(,(and fun `(lambda . ,_)) . ,args) ;; Embedded lambda in function position. (macroexp--cons (macroexp--all-forms fun 2)