X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-introspect%2Fsb-introspect.lisp;h=5ba8bdc350a76d04a015b9fe6c93a5572b3d8ea0;hb=edb227f57bcf629a9e8c3b8e6e1b37d644d8f217;hp=76b64527327d1eeb4f05e1493e01fab76c3c4540;hpb=29086bb980d535d7686c54f551e351a50205468e;p=sbcl.git diff --git a/contrib/sb-introspect/sb-introspect.lisp b/contrib/sb-introspect/sb-introspect.lisp index 76b6452..5ba8bdc 100644 --- a/contrib/sb-introspect/sb-introspect.lisp +++ b/contrib/sb-introspect/sb-introspect.lisp @@ -25,6 +25,7 @@ (defpackage :sb-introspect (:use "CL") (:export "FUNCTION-ARGLIST" + "FUNCTION-LAMBDA-LIST" "DEFTYPE-LAMBDA-LIST" "VALID-FUNCTION-NAME-P" "FIND-DEFINITION-SOURCE" @@ -414,22 +415,30 @@ If an unsupported TYPE is requested, the function will return NIL. ;; FIXME there may be other structure predicate functions (member self (list *struct-predicate*)))) -;;; FIXME: maybe this should be renamed as FUNCTION-LAMBDA-LIST? (defun function-arglist (function) + "Deprecated alias for FUNCTION-LAMBDA-LIST." + (function-lambda-list function)) + +(define-compiler-macro function-arglist (function) + (sb-int:deprecation-warning 'function-arglist 'function-lambda-list) + `(function-lambda-list ,function)) + +(defun function-lambda-list (function) "Describe the lambda list for the extended function designator FUNCTION. -Works for special-operators, macros, simple functions, -interpreted functions, and generic functions. Signals error if -not found" +Works for special-operators, macros, simple functions, interpreted functions, +and generic functions. Signals an error if FUNCTION is not a valid extended +function designator." (cond ((valid-function-name-p function) - (function-arglist (or (and (symbolp function) - (macro-function function)) - (fdefinition function)))) + (function-lambda-list (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-kernel:%simple-fun-arglist (sb-kernel:%fun-fun function))))) + (t + (sb-kernel:%simple-fun-arglist (sb-kernel:%fun-fun function))))) (defun deftype-lambda-list (typespec-operator) "Returns the lambda list of TYPESPEC-OPERATOR as first return