FUNCTION-LAMBDA-LIST no longer returns &aux variables, default values, etc, from a function.

This commit is contained in:
jgarcia 2006-09-11 08:45:52 +00:00
parent 0f0f33b993
commit 32357a0d3f

View file

@ -590,15 +590,17 @@ under certain conditions; see file 'Copyright' for details.")
(generic-function-lambda-list function))
((not (typep function 'compiled-function))
(function-lambda-list (fdefinition function)))
((let ((f (function-lambda-expression function)))
(when f
(if (eq (first f) 'lambda)
(second f)
(third f)))))
;; Reconstruct the lambda list from the bytecodes
((multiple-value-bind (lex-env bytecodes data)
(si::bc-split function)
(when bytecodes
(reconstruct-bytecodes-lambda-list (coerce data 'list)))))))
(reconstruct-bytecodes-lambda-list (coerce data 'list)))))
;; Convert the lambda form into bytecodes and reconstruct lambda
;; list The reason for doing this is to strip information such as
;; default values, &aux, etc. It also makes the output of
;; FUNCTION-LAMDBA-LIST more uniform.
((let ((f (function-lambda-expression function)))
(function-lambda-list (eval f))))))
(defun tpl-variables-command (&optional no-values)
(let*((*print-level* 2)