The generic function compute-class-potential-initargs is called to compute the initialization arguments of a class. This set of valid initargs is used by make-instance when its arguments are checked.
class is the class passed to make-instance. That is, compute-class-potential-initargs specializes on the metaclass.
initargs is either a list of valid initargs, or t
meaning that any initialization argument is allowed.
There is a supplied method on t
, which returns nil
.
The other supplied method is on standard-class
. This consults the Relevant Methods, which are the applicable methods of make-instance, allocate-instance
, initialize-instance
and shared-initialize
. If any of the Relevant Methods have a lambda list containing &allow-other-keys
then initargs is t. Otherwise initargs is a list containing:
&key
arguments from Relevant Method lambda lists, and:extra-initargs
(see defclass for details of this), andThe list initargs contains no duplicates, and the result of compute-class-potential-initargs is cached so that it is not recomputed unless one of the Relevant Methods, the class or its class precedence list is altered.
LispWorks User Guide and Reference Manual - 13 Feb 2015