1.0.30.6: fix minor bug in DESCRIBE
authorNikodemus Siivola <nikodemus@random-state.net>
Tue, 28 Jul 2009 17:41:39 +0000 (17:41 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Tue, 28 Jul 2009 17:41:39 +0000 (17:41 +0000)
 * Generic functions defined by non-toplevel DEFMETHODs may
   have an :ASSUMED :WHERE-FROM in globaldb.

NEWS
src/code/describe.lisp
tests/interface.impure.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index b111249..bc57154 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,8 @@ changes relative to sbcl-1.0.30:
   * bug fix: minor violation of "otherwise inaccessible" rule for stack
     allocation could cause objects users might reasonably expect to
     be heap allocated to be stack allocated.
+  * bug fix: DESCRIBE signalled an error for generic functions under
+    certain circumstances. (reported by Leslie Polzer)
 
 changes in sbcl-1.0.30 relative to sbcl-1.0.29:
   * minor incompatible change: SB-THREAD:JOIN-THREAD-ERROR-THREAD and
index b66fffd..468f4c0 100644 (file)
                                        (ecase (info :function :where-from name)
                                          (:declared "Declared")
                                          ;; This is hopefully clearer to users
-                                         ((:defined-method :defined) "Derived"))))))
+                                         ((:defined-method :defined) "Derived")
+                                         (:assumed))))))
                      (if (typep fun 'generic-function)
                          (values fun
                                  "a generic function"
             (format stream "~%~A names ~A:" name what)
             (pprint-indent :block 2 stream))
           (describe-lambda-list lambda-list stream)
-          (when ftype
+          (when (and ftype from)
             (format stream "~@:_~A type: ~S" from ftype))
           (describe-documentation name 'function stream)
           (when (car inline)
index 3be4ec4..6f697a5 100644 (file)
 #+sb-doc
 (with-test (:name (documentation built-in-function))
   (assert (documentation 'cons 'function)))
+
+(with-test (:name :describe-generic-function-with-assumed-type)
+  ;; Signalled an error at one point
+  (flet ((zoo () (gogo)))
+    (defmethod gogo () nil)
+    (describe 'gogo)))
 \f
 ;;;; success
index a7bca07..a54376b 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.30.5"
+"1.0.30.6"