1.0.46.10: define STRING-WITH-FILL-POINTER type properly
authorNikodemus Siivola <nikodemus@random-state.net>
Sun, 20 Feb 2011 10:51:39 +0000 (10:51 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Sun, 20 Feb 2011 10:51:39 +0000 (10:51 +0000)
 ...can't rely on the evaluation order of type clauses: types aren't
 expressions but set specifications.

src/code/stream.lisp
version.lisp-expr

index 2b43d83..3065d16 100644 (file)
@@ -1571,9 +1571,14 @@ benefit of the function GET-OUTPUT-STREAM-STRING.")
 
 ;;; FIXME: need to support (VECTOR NIL), ideally without destroying all hope
 ;;; of efficiency.
+(declaim (inline vector-with-fill-pointer))
+(defun vector-with-fill-pointer-p (x)
+  (and (vectorp x)
+       (array-has-fill-pointer-p x)))
+
 (deftype string-with-fill-pointer ()
-  '(and (or (vector character) (vector base-char))
-        (satisfies array-has-fill-pointer-p)))
+  `(and (or (vector character) (vector base-char))
+        (satisfies vector-with-fill-pointer-p)))
 
 (defstruct (fill-pointer-output-stream
             (:include ansi-stream
index d0a2090..67b7d81 100644 (file)
@@ -20,4 +20,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".)
-"1.0.46.9"
+"1.0.46.10"