]> git.eshelyaron.com Git - emacs.git/commitdiff
(byte-compile-file-form-custom-declare-variable):
authorRichard M. Stallman <rms@gnu.org>
Sat, 25 Jan 2003 19:44:24 +0000 (19:44 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 25 Jan 2003 19:44:24 +0000 (19:44 +0000)
Compile any lambda-expressions among the args.

lisp/emacs-lisp/bytecomp.el

index 7f0513c4c460a1b55f803a8088ebab13e2c2195b..3a0e7da2b1cba75705a42595838774670b674366 100644 (file)
@@ -10,7 +10,7 @@
 
 ;;; This version incorporates changes up to version 2.10 of the
 ;;; Zawinski-Furuseth compiler.
-(defconst byte-compile-version "$Revision: 2.119 $")
+(defconst byte-compile-version "$Revision: 2.120 $")
 
 ;; This file is part of GNU Emacs.
 
@@ -2073,6 +2073,19 @@ list that represents a doc string reference.
   (if (memq 'free-vars byte-compile-warnings)
       (setq byte-compile-bound-variables
            (cons (nth 1 (nth 1 form)) byte-compile-bound-variables)))
+  (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)))))
+      (setq tail (cdr tail))))
   form)
 
 (put 'require 'byte-hunk-handler 'byte-compile-file-form-eval-boundary)