1.0.12.4: delete bad ROOM test
[sbcl.git] / src / compiler / ir1-translators.lisp
index 83b4ab4..affa00f 100644 (file)
@@ -74,7 +74,7 @@ otherwise evaluate ELSE and return its values. ELSE defaults to NIL."
   (if (policy *lexenv* (= store-coverage-data 0))
       nil
       (labels ((sub (form)
-                 (or (gethash form *source-paths*)
+                 (or (get-source-path form)
                      (and (consp form)
                           (some #'sub form)))))
         (or (sub form)))))
@@ -575,7 +575,7 @@ be a lambda expression."
 ;;; directly to %FUNCALL, instead of waiting around for type
 ;;; inference.
 (define-source-transform funcall (function &rest args)
-  (if (and (consp function) (eq (car function) 'function))
+  (if (and (consp function) (member (car function) '(function lambda)))
       `(%funcall ,function ,@args)
       (let ((name (constant-global-fun-name function)))
         (if name
@@ -585,6 +585,11 @@ be a lambda expression."
 (deftransform %coerce-callable-to-fun ((thing) (function) *)
   "optimize away possible call to FDEFINITION at runtime"
   'thing)
+
+(define-source-transform %coerce-callable-to-fun (thing)
+  (if (and (consp thing) (member (car thing) '(function lambda)))
+      thing
+      (values nil t)))
 \f
 ;;;; LET and LET*
 ;;;;
@@ -700,7 +705,7 @@ form to reference any of the previous VARS."
   #!+sb-doc
   "LOCALLY declaration* form*
 
-Sequentially evaluate the FORMS in a lexical environment where the the
+Sequentially evaluate the FORMS in a lexical environment where the
 DECLARATIONS have effect. If LOCALLY is a top level form, then the FORMS are
 also processed as top level forms."
   (ir1-translate-locally body start next result))