From 9c848d8a7578d84212bac6559681fd0cf795581c Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 22 May 2011 15:22:30 -0300 Subject: [PATCH] * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Convert ' to #' for funcall as well. Warn when performing those conversions. * lisp/emacs-lisp/bytecomp.el (byte-compile-form): Fix error report. Fixes: debbugs:8712 --- lisp/ChangeLog | 4 ++++ lisp/emacs-lisp/bytecomp.el | 4 ++-- lisp/emacs-lisp/macroexp.el | 10 +++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a759eb749ef..5b0fa090eaa 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,9 @@ 2011-05-22 Stefan Monnier + * emacs-lisp/macroexp.el (macroexpand-all-1): Convert ' to #' for + funcall as well (bug#8712). Warn when performing those conversions. + * emacs-lisp/bytecomp.el (byte-compile-form): Fix error report. + * progmodes/grep.el (grep-mode): Fix it for good (bug#8684)! 2011-05-22 Glenn Morris diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index e7f2115a848..49b39b6a1f9 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -2892,8 +2892,8 @@ If FORM is a lambda or a macro, byte-compile it as a function." That command is designed for interactive use only" fn)) (if (and (fboundp (car form)) (eq (car-safe (symbol-function (car form))) 'macro)) - (byte-compile-report-error - (format "Forgot to expand macro %s" (car form)))) + (byte-compile-log-warning + (format "Forgot to expand macro %s" (car form)) nil :error)) (if (and handler ;; Make sure that function exists. This is important ;; for CL compiler macros since the symbol may be diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index f0a075ace37..ccfdf2e0551 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -169,14 +169,22 @@ Assumes the caller has bound `macroexpand-all-environment'." ;; here, so that any code that cares about the difference will ;; see the same transformation. ;; First arg is a function: - (`(,(and fun (or `apply `mapcar `mapatoms `mapconcat `mapc)) + (`(,(and fun (or `funcall `apply `mapcar `mapatoms `mapconcat `mapc)) ',(and f `(lambda . ,_)) . ,args) + (byte-compile-log-warning + (format "%s quoted with ' rather than with #'" + (list 'lambda (nth 1 f) '...)) + t) ;; We don't use `maybe-cons' since there's clearly a change. (cons fun (cons (macroexpand-all-1 (list 'function f)) (macroexpand-all-forms args)))) ;; Second arg is a function: (`(,(and fun (or `sort)) ,arg1 ',(and f `(lambda . ,_)) . ,args) + (byte-compile-log-warning + (format "%s quoted with ' rather than with #'" + (list 'lambda (nth 1 f) '...)) + t) ;; We don't use `maybe-cons' since there's clearly a change. (cons fun (cons (macroexpand-all-1 arg1) -- 2.39.2