[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-27 cc340da: Fix bug #41618 "(byte-compile 'foo) errors when foo is
From: |
Alan Mackenzie |
Subject: |
emacs-27 cc340da: Fix bug #41618 "(byte-compile 'foo) errors when foo is a macro." |
Date: |
Sun, 31 May 2020 12:48:35 -0400 (EDT) |
branch: emacs-27
commit cc340da1fe853dc52c894d6660384e09bb9a9302
Author: Alan Mackenzie <acm@muc.de>
Commit: Alan Mackenzie <acm@muc.de>
Fix bug #41618 "(byte-compile 'foo) errors when foo is a macro."
* lisp/emacs-lisp/bytecomp.el (byte-compile): Disentangle the eval of the
final form from the pushing of 'macro onto it, doing the former first.
---
lisp/emacs-lisp/bytecomp.el | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 688f8cf..5479e65 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2796,14 +2796,15 @@ If FORM is a lambda or a macro, byte-compile it as a
function."
;; Expand macros.
(setq fun (byte-compile-preprocess fun))
(setq fun (byte-compile-top-level fun nil 'eval))
- (if macro (push 'macro fun))
(if (symbolp form)
;; byte-compile-top-level returns an *expression* equivalent to the
;; `fun' expression, so we need to evaluate it, tho normally
;; this is not needed because the expression is just a constant
;; byte-code object, which is self-evaluating.
- (fset form (eval fun t))
- fun)))))))
+ (setq fun (eval fun t)))
+ (if macro (push 'macro fun))
+ (if (symbolp form) (fset form fun))
+ fun))))))
(defun byte-compile-sexp (sexp)
"Compile and return SEXP."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- emacs-27 cc340da: Fix bug #41618 "(byte-compile 'foo) errors when foo is a macro.",
Alan Mackenzie <=