projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.8.0.78.vector-nil-string.11:
[sbcl.git]
/
src
/
compiler
/
fndb.lisp
diff --git
a/src/compiler/fndb.lisp
b/src/compiler/fndb.lisp
index
80c5a7a
..
592dab1
100644
(file)
--- a/
src/compiler/fndb.lisp
+++ b/
src/compiler/fndb.lisp
@@
-455,11
+455,11
@@
(:initial-element t))
consed-sequence
(movable unsafe)
(:initial-element t))
consed-sequence
(movable unsafe)
- :derive-type (result-type-specifier-nth-arg 1))
+ :derive-type (creation-result-type-specifier-nth-arg 1))
(defknown concatenate (type-specifier &rest sequence) consed-sequence
()
(defknown concatenate (type-specifier &rest sequence) consed-sequence
()
- :derive-type (result-type-specifier-nth-arg 1))
+ :derive-type (creation-result-type-specifier-nth-arg 1))
(defknown (map %map) (type-specifier callable sequence &rest sequence)
consed-sequence
(defknown (map %map) (type-specifier callable sequence &rest sequence)
consed-sequence
@@
-474,6
+474,11
@@
(defknown %map-to-nil-on-vector (callable vector) null (flushable call))
(defknown %map-to-nil-on-sequence (callable sequence) null (flushable call))
(defknown %map-to-nil-on-vector (callable vector) null (flushable call))
(defknown %map-to-nil-on-sequence (callable sequence) null (flushable call))
+(defknown map-into (sequence callable &rest sequence)
+ sequence
+ (call)
+ :derive-type #'result-type-first-arg)
+
;;; returns the result from the predicate...
(defknown some (callable sequence &rest sequence) t
(foldable unsafely-flushable call))
;;; returns the result from the predicate...
(defknown some (callable sequence &rest sequence) t
(foldable unsafely-flushable call))
@@
-629,14
+634,15
@@
(defknown (stable-sort sort) (sequence callable &key (:key callable)) sequence
(call)
:derive-type (sequence-result-nth-arg 1))
(defknown (stable-sort sort) (sequence callable &key (:key callable)) sequence
(call)
:derive-type (sequence-result-nth-arg 1))
-(defknown sb!impl::sort-vector (vector index index function (or function null)) vector
+(defknown sb!impl::sort-vector (vector index index function (or function null))
+ * ; SORT-VECTOR works through side-effect
(call))
(defknown merge (type-specifier sequence sequence callable
&key (:key callable))
sequence
(call)
(call))
(defknown merge (type-specifier sequence sequence callable
&key (:key callable))
sequence
(call)
- :derive-type (result-type-specifier-nth-arg 1))
+ :derive-type (creation-result-type-specifier-nth-arg 1))
;;; not FLUSHABLE, despite what CMU CL's DEFKNOWN said..
(defknown read-sequence (sequence stream
;;; not FLUSHABLE, despite what CMU CL's DEFKNOWN said..
(defknown read-sequence (sequence stream
@@
-680,7
+686,7
@@
(defknown list-length (list) (or index null) (foldable unsafely-flushable))
(defknown nth (index list) t (foldable flushable))
(defknown nthcdr (index list) t (foldable unsafely-flushable))
(defknown list-length (list) (or index null) (foldable unsafely-flushable))
(defknown nth (index list) t (foldable flushable))
(defknown nthcdr (index list) t (foldable unsafely-flushable))
-(defknown last (list &optional index) list (foldable flushable))
+(defknown last (list &optional index) t (foldable flushable))
(defknown list (&rest t) list (movable flushable unsafe))
(defknown list* (t &rest t) t (movable flushable unsafe))
(defknown make-list (index &key (:initial-element t)) list
(defknown list (&rest t) list (movable flushable unsafe))
(defknown list* (t &rest t) t (movable flushable unsafe))
(defknown make-list (index &key (:initial-element t)) list
@@
-700,7
+706,7
@@
;;; not check it now :-).
(defknown nconc (&rest t) t ())
;;; not check it now :-).
(defknown nconc (&rest t) t ())
-(defknown nreconc (list t) list ())
+(defknown nreconc (list t) t ())
(defknown butlast (list &optional index) list (flushable))
(defknown nbutlast (list &optional index) list ())
(defknown ldiff (list t) list (flushable))
(defknown butlast (list &optional index) list (flushable))
(defknown nbutlast (list &optional index) list ())
(defknown ldiff (list t) list (flushable))
@@
-708,15
+714,15
@@
(defknown (nsubst subst) (t t t &key (:key callable) (:test callable)
(:test-not callable))
(defknown (nsubst subst) (t t t &key (:key callable) (:test callable)
(:test-not callable))
- list (flushable unsafe call))
+ t (flushable unsafe call))
(defknown (subst-if subst-if-not nsubst-if nsubst-if-not)
(defknown (subst-if subst-if-not nsubst-if nsubst-if-not)
- (t t t &key (:key callable))
- list (flushable unsafe call))
+ (t callable t &key (:key callable))
+ t (flushable unsafe call))
(defknown (sublis nsublis) (list t &key (:key callable) (:test callable)
(:test-not callable))
(defknown (sublis nsublis) (list t &key (:key callable) (:test callable)
(:test-not callable))
- list (flushable unsafe call))
+ t (flushable unsafe call))
(defknown member (t list &key (:key callable) (:test callable)
(:test-not callable))
(defknown member (t list &key (:key callable) (:test callable)
(:test-not callable))
@@
-1060,9
+1066,10
@@
(member nil :host :device
:directory :name
:type :version))
(member nil :host :device
:directory :name
:type :version))
- boolean
+ generalized-boolean
())
())
-(defknown pathname-match-p (pathname-designator pathname-designator) boolean
+(defknown pathname-match-p (pathname-designator pathname-designator)
+ generalized-boolean
())
(defknown translate-pathname (pathname-designator
pathname-designator
())
(defknown translate-pathname (pathname-designator
pathname-designator
@@
-1126,7
+1133,7
@@
pathname-version (flushable))
(defknown (namestring file-namestring directory-namestring host-namestring)
pathname-version (flushable))
(defknown (namestring file-namestring directory-namestring host-namestring)
- (pathname-designator) simple-string
+ (pathname-designator) (or simple-string null)
(unsafely-flushable))
(defknown enough-namestring (pathname-designator &optional pathname-designator)
(unsafely-flushable))
(defknown enough-namestring (pathname-designator &optional pathname-designator)
@@
-1143,12
+1150,7
@@
:rename-and-delete :overwrite
:append :supersede nil))
(:if-does-not-exist (member :error :create nil))
:rename-and-delete :overwrite
:append :supersede nil))
(:if-does-not-exist (member :error :create nil))
- (:external-format
- ;; FIXME: This is logically (MEMBER :DEFAULT),
- ;; but as a workaround for bug 244, we don't
- ;; declare it (to keep the compiler from trusting
- ;; the declaration unchecked).
- t))
+ (:external-format (member :default)))
(or stream null))
(defknown rename-file (pathname-designator filename)
(or stream null))
(defknown rename-file (pathname-designator filename)
@@
-1171,11
+1173,7
@@
(:verbose t)
(:print t)
(:if-does-not-exist (member :error :create nil))
(:verbose t)
(:print t)
(:if-does-not-exist (member :error :create nil))
- (:external-format
- ;; FIXME: This is logically (MEMBER :DEFAULT), but as a workaround
- ;; for bug 244, we don't declare it (to keep the compiler from
- ;; trusting the declaration unchecked).
- t))
+ (:external-format (member :default)))
t)
(defknown directory (pathname-designator &key)
t)
(defknown directory (pathname-designator &key)
@@
-1320,6
+1318,11
@@
(defknown %%primitive (t t &rest t) *)
(defknown %pop-values (t) t)
(defknown %type-check-error (t t) nil)
(defknown %%primitive (t t &rest t) *)
(defknown %pop-values (t) t)
(defknown %type-check-error (t t) nil)
+
+;; FIXME: This function does not return, but due to the implementation
+;; of FILTER-CONTINUATION we cannot write it here.
+(defknown %compile-time-type-error (t t t) *)
+
(defknown %odd-key-args-error () nil)
(defknown %unknown-key-arg-error (t) nil)
(defknown (%ldb %mask-field) (bit-index bit-index integer) unsigned-byte
(defknown %odd-key-args-error () nil)
(defknown %unknown-key-arg-error (t) nil)
(defknown (%ldb %mask-field) (bit-index bit-index integer) unsigned-byte