X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=9fadaf96acd0d64ff0e6dec16a0004463da336ec;hb=0f3a5f2e8886d18d0b4f6485c38a42be629422ae;hp=0894e9fe0391e1fa9bb3e5a93422f35f270a693e;hpb=c58678f9ae90cb3aba995baa5d5d640c95590b44;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index 0894e9f..9fadaf9 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -162,7 +162,6 @@ ;;;; from the "Symbols" chapter: (defknown get (symbol t &optional t) t (flushable)) -(defknown sb!impl::get2 (symbol t) t (flushable)) (defknown sb!impl::get3 (symbol t t) t (flushable)) (defknown remprop (symbol t) t) (defknown symbol-plist (symbol) list (flushable)) @@ -486,6 +485,11 @@ () :derive-type (creation-result-type-specifier-nth-arg 1)) +(defknown %concatenate-to-string (&rest sequence) simple-string + (explicit-check flushable)) +(defknown %concatenate-to-base-string (&rest sequence) simple-base-string + (explicit-check flushable)) + (defknown (map %map) (type-specifier callable sequence &rest sequence) consed-sequence (call) @@ -839,8 +843,6 @@ (defknown hash-table-p (t) boolean (movable foldable flushable)) (defknown gethash (t hash-table &optional t) (values t boolean) (flushable)) ; not FOLDABLE, since hash table contents can change -(defknown sb!impl::gethash2 (t hash-table) (values t boolean) - (flushable)) ; not FOLDABLE, since hash table contents can change (defknown sb!impl::gethash3 (t hash-table t) (values t boolean) (flushable)) ; not FOLDABLE, since hash table contents can change (defknown %puthash (t hash-table t) t () @@ -1478,6 +1480,9 @@ (movable flushable explicit-check)) (defknown %instance-typep (t (or type-specifier ctype)) boolean (movable flushable explicit-check always-translatable)) +;;; We should never emit a call to %typep-wrapper +(defknown %typep-wrapper (t t (or type-specifier ctype)) t + (movable flushable always-translatable)) (defknown %cleanup-point () t) (defknown %special-bind (t t) t) @@ -1638,8 +1643,9 @@ ;;;; SETF inverses -(defknown %aset (array &rest t) t () - :destroyed-constant-args (nth-constant-args 1)) +(defknown (setf aref) (t array &rest index) t () + :destroyed-constant-args (nth-constant-args 2) + :derive-type #'result-type-first-arg) (defknown %set-row-major-aref (array index t) t () :destroyed-constant-args (nth-constant-args 1)) (defknown (%rplaca %rplacd) (cons t) t () @@ -1651,10 +1657,10 @@ :derive-type #'result-type-last-arg) (defknown %svset (simple-vector index t) t () :destroyed-constant-args (nth-constant-args 1)) -(defknown %bitset ((array bit) &rest index) bit () - :destroyed-constant-args (nth-constant-args 1)) -(defknown %sbitset ((simple-array bit) &rest index) bit () - :destroyed-constant-args (nth-constant-args 1)) +(defknown (setf bit) (bit (array bit) &rest index) bit () + :destroyed-constant-args (nth-constant-args 2)) +(defknown (setf sbit) (bit (simple-array bit) &rest index) bit () + :destroyed-constant-args (nth-constant-args 2)) (defknown %charset (string index character) character () :destroyed-constant-args (nth-constant-args 1)) (defknown %scharset (simple-string index character) character ()