X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Finterface.pure.lisp;h=3fb1cf41d2792d9203b9712ac6f7f48b72811f0d;hb=e9618f8ea11045b8616a49338966eac44d9c92e6;hp=1986498a761890c5325d41d6d244d59f73f2c73e;hpb=f17811c866c0412da17d3ee94f11cf38783301f7;p=sbcl.git diff --git a/tests/interface.pure.lisp b/tests/interface.pure.lisp index 1986498..3fb1cf4 100644 --- a/tests/interface.pure.lisp +++ b/tests/interface.pure.lisp @@ -22,12 +22,16 @@ (declare (type function function)) ;; The Lisp-level type FUNCTION can conceal a multitude of sins.. (case (sb-kernel:get-type function) - (#.sb-vm:function-header-type (sb-kernel:%function-arglist function)) - (#.sb-vm:closure-function-header-type (has-arglist-info-p - (sb-kernel:%closure-function - function))) + ((#.sb-vm:function-header-type #.sb-vm:closure-function-header-type) + (sb-kernel:%function-arglist function)) + (#.sb-vm:closure-header-type (has-arglist-info-p + (sb-kernel:%closure-function + function))) + ;; in code/describe.lisp, ll. 227 (%describe-function), we use a scheme + ;; like above, and it seems to work. -- MNA 2001-06-12 + ;; ;; (There might be other cases with arglist info also. - ;; FUNCTION-HEADER-TYPE and CLOSURE-FUNCTION-HEADER-TYPE just + ;; FUNCTION-HEADER-TYPE and CLOSURE-HEADER-TYPE just ;; happen to be the two case that I had my nose rubbed in when ;; debugging a GC problem caused by applying %FUNCTION-ARGLIST to ;; a closure. -- WHN 2001-06-05) @@ -48,19 +52,7 @@ ((sb-int:info :function :accessor-for ext-sym) (values)) ((typep fun 'generic-function) - ;; FIXME: Check the argument lists of generic functions, - ;; instead of just punting like this. (DESCRIBE seems - ;; to know how to do it, at least for #'DOCUMENTATION.) - (values)) - (;; FIXME: CONDITION slot accessors (e.g. - ;; PRINT-NOT-READABLE-OBJECT) fall into this category. - ;; They seem to have argument lists -- since at least - ;; DESCRIBE knows how to find them -- but I have - ;; neither reverse engineered how it's finding them, - ;; nor factored that into a function which can be - ;; shared with the logic here.. - (= (sb-kernel:get-type fun) sb-vm:closure-header-type) - (values)) ; ..so for now we just punt. + (sb-pcl::generic-function-pretty-arglist fun)) (t (let ((fun (symbol-function ext-sym))) (unless (has-arglist-info-p fun) @@ -74,6 +66,3 @@ ;;; FIXME: It would probably be good to require here that every ;;; external symbol either has a doc string or has some good excuse ;;; (like being an accessor for a structure which has a doc string). - -(print "done with interface.pure.lisp") -