X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=contrib%2Fsb-introspect%2Fsb-introspect.lisp;h=777ab6d70d38cc649ad831729b6268beff4d7b98;hb=c6ca3162c8abd6ae9cce613f5df5778405806e60;hp=debda196cbf50555cb8b9529e521e9c3ee321fa6;hpb=e15ca902a6c4eb6e4695e71400edbbd57c5e57cd;p=sbcl.git diff --git a/contrib/sb-introspect/sb-introspect.lisp b/contrib/sb-introspect/sb-introspect.lisp index debda19..777ab6d 100644 --- a/contrib/sb-introspect/sb-introspect.lisp +++ b/contrib/sb-introspect/sb-introspect.lisp @@ -318,6 +318,11 @@ If an unsupported TYPE is requested, the function will return NIL. (sb-pcl::unparse-specializers (sb-mop:method-specializers object))))) source)) + #+sb-eval + (sb-eval:interpreted-function + (let ((source (translate-source-location + (sb-eval:interpreted-function-source-location object)))) + source)) (function (cond ((struct-accessor-p object) (find-definition-source @@ -389,14 +394,18 @@ If an unsupported TYPE is requested, the function will return NIL. ;;; FIXME: maybe this should be renamed as FUNCTION-LAMBDA-LIST? (defun function-arglist (function) "Describe the lambda list for the extended function designator FUNCTION. -Works for special-operators, macros, simple functions and generic -functions. Signals error if not found" +Works for special-operators, macros, simple functions, +interpreted functions, and generic functions. Signals error if +not found" (cond ((valid-function-name-p function) (function-arglist (or (and (symbolp function) (macro-function function)) (fdefinition function)))) ((typep function 'generic-function) (sb-pcl::generic-function-pretty-arglist function)) + #+sb-eval + ((typep function 'sb-eval:interpreted-function) + (sb-eval:interpreted-function-lambda-list function)) (t (sb-impl::%simple-fun-arglist (sb-impl::%closure-fun function)))))