From 32357a0d3f6df0ea4a51fe265edc3a17e9722b5b Mon Sep 17 00:00:00 2001 From: jgarcia Date: Mon, 11 Sep 2006 08:45:52 +0000 Subject: [PATCH] FUNCTION-LAMBDA-LIST no longer returns &aux variables, default values, etc, from a function. --- src/lsp/top.lsp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/lsp/top.lsp b/src/lsp/top.lsp index a30d8a21c..9a85980f9 100644 --- a/src/lsp/top.lsp +++ b/src/lsp/top.lsp @@ -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)