X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Ffndb.lisp;h=30439400a81a4ff126f41a9f8fb7d12caaa93dae;hb=22c1de0a40df83bb5628974010a879cb2c17ff53;hp=e394ac4e8dfb417e0377472c88a59a7c882f7789;hpb=4bc9a2b01540f3a7cbf4499b4689b292fe406139;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index e394ac4..3043940 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -455,11 +455,11 @@ (: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 () - :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 @@ -642,7 +642,7 @@ &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 @@ -684,9 +684,9 @@ (foldable flushable call)) (defknown endp (list) boolean (foldable flushable movable)) (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) t (foldable flushable)) +(defknown nth (unsigned-byte list) t (foldable flushable)) +(defknown nthcdr (unsigned-byte list) t (foldable unsafely-flushable)) +(defknown last (list &optional unsigned-byte) 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 @@ -707,8 +707,8 @@ (defknown nconc (&rest t) t ()) (defknown nreconc (list t) t ()) -(defknown butlast (list &optional index) list (flushable)) -(defknown nbutlast (list &optional index) list ()) +(defknown butlast (list &optional unsigned-byte) list (flushable)) +(defknown nbutlast (list &optional unsigned-byte) list ()) (defknown ldiff (list t) list (flushable)) (defknown (rplaca rplacd) (cons t) list (unsafe)) @@ -919,7 +919,10 @@ (defknown make-echo-stream (stream stream) stream (flushable)) (defknown make-string-input-stream (string &optional index index) stream (flushable unsafe)) -(defknown make-string-output-stream () stream (flushable)) +(defknown make-string-output-stream + (&key (:element-type type-specifier)) + stream + (flushable)) (defknown get-output-stream-string (stream) simple-string ()) (defknown streamp (t) boolean (movable foldable flushable)) (defknown stream-element-type (stream) type-specifier @@ -1179,12 +1182,32 @@ (defknown directory (pathname-designator &key) list ()) -;;;; from the "Errors" chapter: - -(defknown error (t &rest t) nil) ; never returns -(defknown cerror (string t &rest t) null) +;;;; from the "Conditions" chapter: + +(defknown cell-error-name (cell-error) t) +(defknown error (t &rest t) nil) +(defknown cerror (format-control t &rest t) null) +(defknown invalid-method-error (t format-control &rest t) *) ; FIXME: first arg is METHOD +(defknown method-combination-error (format-control &rest t) *) +(defknown signal (t &rest t) null) +(defknown simple-condition-format-control (condition) + format-control) +(defknown simple-condition-format-arguments (condition) + list) (defknown warn (t &rest t) null) -(defknown break (&optional t &rest t) null) +(defknown invoke-debugger (condition) nil) +(defknown break (&optional format-control &rest t) null) +(defknown make-condition (type-specifier &rest t) condition) +(defknown compute-restarts (&optional (or condition null)) list) +(defknown find-restart (restart-designator &optional (or condition null)) + (or restart null)) +(defknown invoke-restart (restart-designator &rest t) *) +(defknown invoke-restart-interactively (restart-designator) *) +(defknown restart-name (restart) symbol) +(defknown (abort muffle-warning) (&optional (or condition null)) nil) +(defknown continue (&optional (or condition null)) null) +(defknown (store-value use-value) (t &optional (or condition null)) + null) ;;; and analogous SBCL extension: (defknown bug (t &rest t) nil) ; never returns @@ -1393,7 +1416,7 @@ (defknown (setf fdocumentation) ((or string null) t symbol) (or string null) ()) -(defknown %setnth (index list t) t (unsafe)) +(defknown %setnth (unsigned-byte list t) t (unsafe)) (defknown %set-fill-pointer (vector index) index (unsafe)) ;;;; miscellaneous internal utilities