X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-introspect%2Ftest-driver.lisp;h=4c0ac1ff648e658f1a269a938690017ed232f870;hb=ae09f8fd7765f6cab6ad317a13e27ff22ab0c11e;hp=9ae4e63dd924296290040496625d484a55d8e90a;hpb=ab93f40187b6b7c2ca047503fdd4dfac0fc356eb;p=sbcl.git diff --git a/contrib/sb-introspect/test-driver.lisp b/contrib/sb-introspect/test-driver.lisp index 9ae4e63..4c0ac1f 100644 --- a/contrib/sb-introspect/test-driver.lisp +++ b/contrib/sb-introspect/test-driver.lisp @@ -7,12 +7,12 @@ (with-compilation-unit (:source-plist (list :test-outer "OUT")) (load (compile-file (merge-pathnames "test.lisp" *load-pathname*)))) -(assert (equal (function-arglist 'cl-user::one) +(assert (equal (function-lambda-list 'cl-user::one) '(cl-user::a cl-user::b cl-user::c))) -(assert (equal (function-arglist 'the) +(assert (equal (function-lambda-list 'the) '(sb-c::value-type sb-c::form))) -(assert (equal (function-arglist #'(sb-pcl::slow-method cl-user::j (t))) +(assert (equal (function-lambda-list #'(sb-pcl::slow-method cl-user::j (t))) '(sb-pcl::method-args sb-pcl::next-methods))) (let ((source (find-definition-source #'cl-user::one))) @@ -76,11 +76,11 @@ (sb-profile:unprofile cl-user::one) -;;;; Check correctness of FUNCTION-ARGLIST. +;;;; Check correctness of FUNCTION-LAMBDA-LIST. -(assert (equal (function-arglist 'cl-user::one) +(assert (equal (function-lambda-list 'cl-user::one) '(cl-user::a cl-user::b cl-user::c))) -(assert (equal (function-arglist 'the) +(assert (equal (function-lambda-list 'the) '(sb-c::value-type sb-c::form))) ;;; Check wrt. interplay of generic functions and their methods. @@ -99,7 +99,7 @@ ;; (multiple-value-bind (required optional restp rest keyp keys allowp auxp aux morep more-context more-count) - (sb-int:parse-lambda-list (function-arglist #'xuuq)) + (sb-int:parse-lambda-list (function-lambda-list #'xuuq)) (assert (equal required '(gf.a gf.b))) (assert (null optional)) (assert (and restp (eql rest 'gf.rest))) @@ -117,11 +117,26 @@ (defmethod kroolz (r1 r2 &optional opt &aux aux) (declare (ignore r1 r2 opt aux)) 'kroolz) -(assert (equal (function-arglist #'kroolz) '(r1 r2 &optional opt))) +(assert (equal (function-lambda-list #'kroolz) '(r1 r2 &optional opt))) ;;;; Test finding a type that isn't one (assert (not (find-definition-sources-by-name 'fboundp :type))) +;;;; Check correctness of DEFTYPE-LAMBDA-LIST. +(deftype foobar-type + (&whole w &environment e r1 r2 &optional o &rest rest &key k1 k2 k3) + (declare (ignore w e r1 r2 o rest k1 k2 k3)) + nil) + +(assert (multiple-value-bind (arglist found?) (deftype-lambda-list 'foobar-type) + (and found? + (equal arglist '(&whole w &environment e + r1 r2 &optional o &rest rest &key k1 k2 k3))))) + +(assert (equal (multiple-value-list (deftype-lambda-list (gensym))) + '(nil nil))) + + ;;;; Test the xref facility (load (merge-pathnames "xref-test.lisp" *load-pathname*))