X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Ffndb.lisp;h=255bc7ebfd42a2922fccb89353e45430be70532a;hb=9321245540a085e398a238f544364510de9ec562;hp=31f43505b429490133390177c9c7832d21b7eeb4;hpb=2010727926b091b23a246f6f659be61e27e19667;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index 31f4350..255bc7e 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -108,7 +108,14 @@ ;;; This is not FLUSHABLE, since it's required to signal an error if ;;; unbound. -(defknown (symbol-value symbol-function) (symbol) t ()) +(defknown (symbol-value) (symbol) t ()) +;;; From CLHS, "If the symbol is globally defined as a macro or a +;;; special operator, an object of implementation-dependent nature and +;;; identity is returned. If the symbol is not globally defined as +;;; either a macro or a special operator, and if the symbol is fbound, +;;; a function object is returned". Our objects of +;;; implementation-dependent nature happen to be functions. +(defknown (symbol-function) (symbol) function ()) (defknown boundp (symbol) boolean (flushable)) (defknown fboundp ((or symbol cons)) boolean (unsafely-flushable explicit-check)) @@ -946,7 +953,7 @@ (defknown (read read-preserving-whitespace read-char-no-hang read-char) (&optional streamlike t t t) t (explicit-check)) -(defknown read-delimited-list (character &optional streamlike t) t +(defknown read-delimited-list (character &optional streamlike t) list (explicit-check)) (defknown read-line (&optional streamlike t t t) (values t boolean) (explicit-check)) @@ -1195,9 +1202,10 @@ (:block-compile t)) (values (or pathname null) boolean boolean)) -(defknown disassemble (callable &key - (:stream stream) - (:use-labels t)) +;; FIXME: consider making (OR CALLABLE CONS) something like +;; EXTENDED-FUNCTION-DESIGNATOR +(defknown disassemble ((or callable cons) &key + (:stream stream) (:use-labels t)) null) (defknown fdocumentation (t symbol) @@ -1337,6 +1345,17 @@ function (flushable foldable)) +(defknown %check-vector-sequence-bounds (vector index sequence-end) + index + (unwind)) +;;; FIXME: including this information here is probably necessary to +;;; get efficient compilation of the inline expansion of +;;; %FIND-POSITION-IF, so it should maybe be in a more +;;; compiler-friendly package (SB-INT?) +(defknown sb!impl::signal-bounding-indices-bad-error + (sequence index sequence-end) + nil) ; never returns + (defknown arg-count-error (t t t t t t) nil (unsafe))