X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=73e3db14a0cc0ecf83464205dd311d0bd6b58580;hb=2e5263a05f55e2b56a3194ad7853e9ae18ad69af;hp=9f435170460c696efada605d10e84f006cf5de8b;hpb=93318936826bae5951fcd11c0300cec4d3288360;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index 9f43517..73e3db1 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -875,13 +875,16 @@ (defknown array-has-fill-pointer-p (array) boolean (movable foldable flushable)) -(defknown fill-pointer (vector) index (foldable unsafely-flushable)) -(defknown vector-push (t vector) (or index null) () +(defknown fill-pointer (complex-vector) index + (unsafely-flushable explicit-check)) +(defknown vector-push (t complex-vector) (or index null) + (explicit-check) :destroyed-constant-args (nth-constant-args 2)) -(defknown vector-push-extend (t vector &optional (and index (integer 1))) - index () +(defknown vector-push-extend (t complex-vector &optional (and index (integer 1))) index + (explicit-check) :destroyed-constant-args (nth-constant-args 2)) -(defknown vector-pop (vector) t () +(defknown vector-pop (complex-vector) t + (explicit-check) :destroyed-constant-args (nth-constant-args 1)) ;;; FIXME: complicated :DESTROYED-CONSTANT-ARGS @@ -1405,7 +1408,7 @@ (defknown %typep (t (or type-specifier ctype)) boolean (movable flushable explicit-check)) (defknown %instance-typep (t (or type-specifier ctype)) boolean - (movable flushable explicit-check)) + (movable flushable explicit-check always-translatable)) (defknown %cleanup-point () t) (defknown %special-bind (t t) t) @@ -1540,7 +1543,8 @@ (defknown %set-symbol-plist (symbol list) list (unsafe)) (defknown %setnth (unsigned-byte list t) t (unsafe) :destroyed-constant-args (nth-constant-args 2)) -(defknown %set-fill-pointer (vector index) index (unsafe) +(defknown %set-fill-pointer (complex-vector index) index + (unsafe explicit-check) :destroyed-constant-args (nth-constant-args 1)) ;;;; ALIEN and call-out-to-C stuff