1.0.0.12: fix docstrings.lisp to deal with unfinalized classes
authorNikodemus Siivola <nikodemus@random-state.net>
Sat, 2 Dec 2006 13:08:42 +0000 (13:08 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Sat, 2 Dec 2006 13:08:42 +0000 (13:08 +0000)
  * needed since with the *max-emf-precumentation-methods* change
    classes like sb-bsd-socket:local-socket don't get finalized
    untill the first instance is created.

doc/manual/docstrings.lisp
version.lisp-expr

index b703642..e5db38a 100644 (file)
@@ -118,6 +118,11 @@ you deserve to lose.")
 (defmethod specializer-name ((specializer class))
   (class-name specializer))
 
+(defun ensure-class-precedence-list (class)
+  (unless (class-finalized-p class)
+    (finalize-inheritance class))
+  (class-precedence-list class))
+
 (defun specialized-lambda-list (method)
   ;; courtecy of AMOP p. 61
   (let* ((specializers (method-specializers method))
@@ -699,7 +704,7 @@ followed another tabulation label or a tabulation body."
       ;; class precedence list
       (format *texinfo-output* "Class precedence list: @code{~(~{@w{~A}~^, ~}~)}~%~%"
               (remove-if (lambda (class)  (hide-superclass-p name class))
-                         (mapcar #'class-name (class-precedence-list (find-class name)))))
+                         (mapcar #'class-name (ensure-class-precedence-list (find-class name)))))
       ;; slots
       (let ((slots (remove-if (lambda (slot) (hide-slot-p name slot))
                               (class-direct-slots (find-class name)))))
index 37ddb33..d70f6ba 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.0.11"
+"1.0.0.12"