Common Lisp the Language, 2nd Edition
![]()
Next: Defaulting of
Initialization Up: Object
Creation and Previous: Initialization Arguments

Initialization arguments are checked for validity in each of the four
situations that use them. An initialization argument may be valid in one
situation and not another. For example, the system-supplied primary
method for make-instance defined for the class
standard-class checks the validity of its initialization
arguments and signals an error if an initialization argument is supplied
that is not declared valid in that situation.
There are two means of declaring initialization arguments valid.
:initarg slot option to defclass. The
:initarg slot option is inherited from superclasses. Thus
the set of valid initialization arguments that fill slots for a class is
the union of the initialization arguments that fill slots declared valid
by that class and its superclasses. Initialization arguments that fill
slots are valid in all four contexts.allocate-instance,
initialize-instance, and shared-initialize.
Initialization arguments declared valid by these methods are valid when
making an instance of a class.reinitialize-instance and shared-initialize.
Initialization arguments declared valid by these methods are valid when
re-initializing an instance.update-instance-for-redefined-class and
shared-initialize. Initialization arguments declared valid
by these methods are valid when updating an instance to conform to a
redefined class.update-instance-for-different-class and
shared-initialize. Initialization arguments declared valid
by these methods are valid when updating an instance to conform to the
definition of a different class.The set of valid initialization arguments for a class is the set of
valid initialization arguments that either fill slots or supply
arguments to methods, along with the predefined initialization argument
:allow-other-keys. The default value for
:allow-other-keys is nil. The meaning of
:allow-other-keys is the same here as when it is passed to
an ordinary function.

![]()
Next: Defaulting of
Initialization Up: Object
Creation and Previous: Initialization Arguments
AI.Repository@cs.cmu.edu