The current implementation of swank::arglist for ABCL seems to be not quite correct. The attached patch fixes two problems:
1. In the form
(multiple-value-bind (arglist present) (or (sys::arglist ...) ...)
the value of "present" is always nil if sys::arglist returns a non-nil arglist (since, for any form but the last, "or" returns the primary value only). Hence swank::arglist always returns :not-available if sys::arglist returns a non-nil primary value, therefore no arglist info is displayed for non-generic functions. The attached patch fixes this.
2. The current implementation returns :not-available for generic functions with empty argument list. This does not seem to be quite correct since generic functions without parameters are allowed according to Section 3.4.2 of the HyperSpec. The attached patch changes this by always setting "present" to true when the function is of type "standard-generic-function"; this seems to be correct according to the definition of generic-function-lambda-list in AMOP, p. 216.
Best regards,
Matthias
On 11/11/09 9:17 PM, Matthias Hölzl wrote:
The current implementation of swank::arglist for ABCL seems to be not quite correct. The attached patch fixes two problems:
Committed (finally). Thanks for the help!