X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fearly-low.lisp;h=cbe9c779a08ede1b7a10c8ef03013e3d5c3c94e4;hb=440baf2d4f88579609615c6cbf598c336fb07445;hp=d762907b74832e685afb64215269ad6807c6cb6f;hpb=3a5eefac8a65dfd36729031f0a9b9dd8c022b7f2;p=sbcl.git diff --git a/src/pcl/early-low.lisp b/src/pcl/early-low.lisp index d762907..cbe9c77 100644 --- a/src/pcl/early-low.lisp +++ b/src/pcl/early-low.lisp @@ -44,6 +44,12 @@ ;;; and use that to replace all three variables.) (defvar *pcl-package* (find-package "SB-PCL")) +(declaim (inline defstruct-classoid-p)) +(defun defstruct-classoid-p (classoid) + ;; It is non-obvious to me why STRUCTURE-CLASSOID-P doesn't + ;; work instead of this. -- NS 2008-03-14 + (typep (layout-info (classoid-layout classoid)) 'defstruct-description)) + ;;; This excludes structure types created with the :TYPE option to ;;; DEFSTRUCT. It also doesn't try to deal with types created by ;;; hairy DEFTYPEs, e.g. @@ -53,12 +59,10 @@ ;;; it needs a more mnemonic name. -- WHN 19991204 (defun structure-type-p (type) (and (symbolp type) - (not (condition-type-p type)) (let ((classoid (find-classoid type nil))) (and classoid - (typep (layout-info - (classoid-layout classoid)) - 'defstruct-description))))) + (not (condition-classoid-p classoid)) + (defstruct-classoid-p classoid))))) ;;; Symbol contruction utilities (defun format-symbol (package format-string &rest format-arguments) @@ -88,7 +92,6 @@ *the-class-slot-object* *the-class-structure-object* - *the-class-std-object* *the-class-standard-object* *the-class-funcallable-standard-object* *the-class-class* @@ -100,11 +103,15 @@ *the-class-std-class* *the-class-standard-class* *the-class-funcallable-standard-class* + *the-class-forward-referenced-class* *the-class-method* *the-class-standard-method* *the-class-standard-reader-method* *the-class-standard-writer-method* *the-class-standard-boundp-method* + *the-class-global-reader-method* + *the-class-global-writer-method* + *the-class-global-boundp-method* *the-class-standard-generic-function* *the-class-standard-effective-slot-definition*