X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fglobaldb.lisp;h=69c579c04c6e2d7c80de70f793d9bfe94700b16e;hb=7044d862b9d82dc086b2ccb59dc4b372cd731b4e;hp=50a425e71d26c8b7df43fe700209deb43c21af4f;hpb=0408e5d19ea46776d7bdad4a46f643e5e9c27bfe;p=sbcl.git diff --git a/src/compiler/globaldb.lisp b/src/compiler/globaldb.lisp index 50a425e..69c579c 100644 --- a/src/compiler/globaldb.lisp +++ b/src/compiler/globaldb.lisp @@ -118,7 +118,7 @@ #-no-ansi-print-object (:print-object (lambda (x s) (print-unreadable-object (x s :type t) - (prin1 (class-info-name x))))) + (prin1 (class-info-name x) s)))) (:copier nil)) ;; name of this class (name nil :type keyword :read-only t) @@ -344,7 +344,6 @@ ;;;; generic interfaces -;;; FIXME: used only in this file, needn't be in runtime (defmacro do-info ((env &key (name (gensym)) (class (gensym)) (type (gensym)) (type-number (gensym)) (value (gensym)) known-volatile) &body body) @@ -1035,12 +1034,6 @@ (define-info-type :class :function - :type :documentation - :type-spec (or string null) - :default nil) - -(define-info-type - :class :function :type :definition :type-spec (or fdefn null) :default nil) @@ -1059,10 +1052,16 @@ (define-info-type :class :variable :type :kind - :type-spec (member :special :constant :macro :global :alien) + :type-spec (member :special :constant :macro :global :alien :unknown) :default (if (typep name '(or boolean keyword)) :constant - :global)) + :unknown)) + +(define-info-type + :class :variable + :type :always-bound + :type-spec boolean + :default nil) ;;; the declared type for this variable (define-info-type @@ -1200,6 +1199,10 @@ (when (info :type :kind name) (error 'declaration-type-conflict-error :format-arguments (list name))))) +(define-info-type + :class :declaration + :type :handler + :type-spec (or function null)) (define-info-class :alien-type) (define-info-type