0.8.0.73:
authorChristophe Rhodes <csr21@cam.ac.uk>
Mon, 16 Jun 2003 13:46:59 +0000 (13:46 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Mon, 16 Jun 2003 13:46:59 +0000 (13:46 +0000)
Restore type derivation for known/declared functions, even
when their use is declared NOTINLINE.

src/compiler/ir1tran.lisp
tests/compiler.test.sh
version.lisp-expr

index d2b0c96..542dfe0 100644 (file)
   (let ((res (make-defined-fun
              :%source-name (leaf-source-name var)
              :where-from (leaf-where-from var)
-             :type (if (eq inlinep :notinline)
+             :type (if (and (eq inlinep :notinline)
+                            (not (eq (leaf-where-from var) :declared)))
                        (specifier-type 'function)
                        (leaf-type var))
              :inlinep inlinep)))
index 87ca1c1..149ab19 100644 (file)
@@ -186,6 +186,16 @@ cat > $tmpfilename <<EOF
 EOF
 expect_clean_compile $tmpfilename
 
+# NOTINLINE on known functions shouldn't inhibit type inference
+# (spotted by APD sbcl-devel 2003-06-14)
+cat > $tmpfilename <<EOF
+    (in-package :cl-user)
+    (defun foo (x)
+      (declare (notinline list))
+      (1+ (list x)))
+EOF
+expect_failed_compile $tmpfilename
+
 rm $tmpfilename
 rm $compiled_tmpfilename
 
index 36e1709..42f97f2 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.0.72"
+"0.8.0.73"