(byte-compile-file-form-custom-declare-variable): Simplify.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 22 Nov 2007 18:03:05 +0000 (18:03 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 22 Nov 2007 18:03:05 +0000 (18:03 +0000)
lisp/ChangeLog
lisp/emacs-lisp/bytecomp.el

index 6755243..7ecd1b1 100644 (file)
@@ -1,3 +1,8 @@
+2007-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/bytecomp.el
+       (byte-compile-file-form-custom-declare-variable): Simplify.
+
 2007-11-22  Juanma Barranquero  <lekktu@gmail.com>
 
        * cus-edit.el (custom-mode): Define with `define-derived-mode'.
index b40eac3..7d1b2b9 100644 (file)
@@ -2277,18 +2277,17 @@ list that represents a doc string reference.
     (byte-compile-nogroup-warn form))
   (when (byte-compile-warning-enabled-p 'free-vars)
     (push (nth 1 (nth 1 form)) byte-compile-bound-variables))
+  ;; Don't compile the expression because it may be displayed to the user.
+  ;; (when (eq (car-safe (nth 2 form)) 'quote)
+  ;;   ;; (nth 2 form) is meant to evaluate to an expression, so if we have the
+  ;;   ;; final value already, we can byte-compile it.
+  ;;   (setcar (cdr (nth 2 form))
+  ;;           (byte-compile-top-level (cadr (nth 2 form)) nil 'file)))
   (let ((tail (nthcdr 4 form)))
     (while tail
-      ;; If there are any (function (lambda ...)) expressions, compile
-      ;; those functions.
-      (if (and (consp (car tail))
-              (eq (car (car tail)) 'function)
-              (consp (nth 1 (car tail))))
-         (setcar tail (byte-compile-lambda (nth 1 (car tail))))
-       ;; Likewise for a bare lambda.
-       (if (and (consp (car tail))
-                (eq (car (car tail)) 'lambda))
-           (setcar tail (byte-compile-lambda (car tail)))))
+      (unless (keywordp (car tail))      ;No point optimizing keywords.
+        ;; Compile the keyword arguments.
+        (setcar tail (byte-compile-top-level (car tail) nil 'file)))
       (setq tail (cdr tail))))
   form)