mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
Move Accessing Slots' inside
Introspection'.
* doc/ref/goops.texi (Introspection): Move `Accessing Slots' into here, and flatten it, except for `Handling Slot Access Errors'. (GOOPS Error Handling): Move `Handling Slot Access Errors' here.
This commit is contained in:
parent
c7b154588b
commit
3617da95ab
1 changed files with 55 additions and 60 deletions
|
@ -46,7 +46,6 @@ module. You can do this at the Guile REPL by evaluating:
|
|||
* Inheritance::
|
||||
* Introspection::
|
||||
* Class Options::
|
||||
* Accessing Slots::
|
||||
* Generic Functions and Accessors::
|
||||
* Redefining a Class::
|
||||
* Changing the Class of an Instance::
|
||||
|
@ -1273,6 +1272,7 @@ GOOPS equivalents --- to be obtained dynamically, at run time.
|
|||
* Instances::
|
||||
* Slots::
|
||||
* Generic Functions::
|
||||
* Accessing Slots::
|
||||
@end menu
|
||||
|
||||
@node Classes
|
||||
|
@ -1508,40 +1508,8 @@ Return an expression that prints to show the definition of method
|
|||
@end deffn
|
||||
|
||||
|
||||
@node Class Options
|
||||
@section Class Options
|
||||
|
||||
@deffn {class option} #:metaclass metaclass
|
||||
The @code{#:metaclass} class option specifies the metaclass of the class
|
||||
being defined. @var{metaclass} must be a class that inherits from
|
||||
@code{<class>}. For the use of metaclasses, see @ref{Metaobjects and
|
||||
the Metaobject Protocol} and @ref{Terminology}.
|
||||
|
||||
If the @code{#:metaclass} option is absent, GOOPS reuses or constructs a
|
||||
metaclass for the new class by calling @code{ensure-metaclass}
|
||||
(@pxref{Class Definition Internals,, ensure-metaclass}).
|
||||
@end deffn
|
||||
|
||||
@deffn {class option} #:name name
|
||||
The @code{#:name} class option specifies the new class's name. This
|
||||
name is used to identify the class whenever related objects - the class
|
||||
itself, its instances and its subclasses - are printed.
|
||||
|
||||
If the @code{#:name} option is absent, GOOPS uses the first argument to
|
||||
@code{define-class} as the class name.
|
||||
@end deffn
|
||||
|
||||
@node Accessing Slots
|
||||
@section Accessing Slots
|
||||
|
||||
@menu
|
||||
* Instance Slots::
|
||||
* Class Slots::
|
||||
* Handling Slot Access Errors::
|
||||
@end menu
|
||||
|
||||
@node Instance Slots
|
||||
@subsection Instance Slots
|
||||
@subsection Accessing Slots
|
||||
|
||||
Any slot, regardless of its allocation, can be queried, referenced and
|
||||
set using the following four primitive procedures.
|
||||
|
@ -1633,9 +1601,6 @@ slot called @var{slot-name} (@pxref{Handling Slot Access Errors,
|
|||
slot-missing}).
|
||||
@end deffn
|
||||
|
||||
@node Class Slots
|
||||
@subsection Class Slots
|
||||
|
||||
Slots whose allocation is per-class rather than per-instance can be
|
||||
referenced and set without needing to specify any particular instance.
|
||||
|
||||
|
@ -1661,37 +1626,31 @@ allocation, @code{class-slot-ref} calls the @code{slot-missing} generic
|
|||
function with arguments @var{class} and @var{slot-name}.
|
||||
@end deffn
|
||||
|
||||
@node Handling Slot Access Errors
|
||||
@subsection Handling Slot Access Errors
|
||||
|
||||
GOOPS calls one of the following generic functions when a ``slot-ref''
|
||||
or ``slot-set!'' call specifies a non-existent slot name, or tries to
|
||||
reference a slot whose value is unbound.
|
||||
@node Class Options
|
||||
@section Class Options
|
||||
|
||||
@deffn generic slot-missing
|
||||
@deffnx method slot-missing (class <class>) slot-name
|
||||
@deffnx method slot-missing (class <class>) (object <object>) slot-name
|
||||
@deffnx method slot-missing (class <class>) (object <object>) slot-name value
|
||||
When an application attempts to reference or set a class or instance
|
||||
slot by name, and the slot name is invalid for the specified @var{class}
|
||||
or @var{object}, GOOPS calls the @code{slot-missing} generic function.
|
||||
@deffn {class option} #:metaclass metaclass
|
||||
The @code{#:metaclass} class option specifies the metaclass of the class
|
||||
being defined. @var{metaclass} must be a class that inherits from
|
||||
@code{<class>}. For the use of metaclasses, see @ref{Metaobjects and
|
||||
the Metaobject Protocol} and @ref{Terminology}.
|
||||
|
||||
The default methods all call @code{goops-error} with an appropriate
|
||||
message.
|
||||
If the @code{#:metaclass} option is absent, GOOPS reuses or constructs a
|
||||
metaclass for the new class by calling @code{ensure-metaclass}
|
||||
(@pxref{Class Definition Internals,, ensure-metaclass}).
|
||||
@end deffn
|
||||
|
||||
@deffn generic slot-unbound
|
||||
@deffnx method slot-unbound (object <object>)
|
||||
@deffnx method slot-unbound (class <class>) slot-name
|
||||
@deffnx method slot-unbound (class <class>) (object <object>) slot-name
|
||||
When an application attempts to reference a class or instance slot, and
|
||||
the slot's value is unbound, GOOPS calls the @code{slot-unbound} generic
|
||||
function.
|
||||
@deffn {class option} #:name name
|
||||
The @code{#:name} class option specifies the new class's name. This
|
||||
name is used to identify the class whenever related objects - the class
|
||||
itself, its instances and its subclasses - are printed.
|
||||
|
||||
The default methods all call @code{goops-error} with an appropriate
|
||||
message.
|
||||
If the @code{#:name} option is absent, GOOPS uses the first argument to
|
||||
@code{define-class} as the class name.
|
||||
@end deffn
|
||||
|
||||
|
||||
@node Generic Functions and Accessors
|
||||
@section Generic Functions and Accessors
|
||||
|
||||
|
@ -1942,6 +1901,42 @@ from @var{format-string} and @var{args}. Error message formatting is
|
|||
as done by @code{scm-error}.
|
||||
@end deffn
|
||||
|
||||
@menu
|
||||
* Handling Slot Access Errors::
|
||||
@end menu
|
||||
|
||||
|
||||
@node Handling Slot Access Errors
|
||||
@subsection Handling Slot Access Errors
|
||||
|
||||
GOOPS calls one of the following generic functions when a ``slot-ref''
|
||||
or ``slot-set!'' call specifies a non-existent slot name, or tries to
|
||||
reference a slot whose value is unbound.
|
||||
|
||||
@deffn generic slot-missing
|
||||
@deffnx method slot-missing (class <class>) slot-name
|
||||
@deffnx method slot-missing (class <class>) (object <object>) slot-name
|
||||
@deffnx method slot-missing (class <class>) (object <object>) slot-name value
|
||||
When an application attempts to reference or set a class or instance
|
||||
slot by name, and the slot name is invalid for the specified @var{class}
|
||||
or @var{object}, GOOPS calls the @code{slot-missing} generic function.
|
||||
|
||||
The default methods all call @code{goops-error} with an appropriate
|
||||
message.
|
||||
@end deffn
|
||||
|
||||
@deffn generic slot-unbound
|
||||
@deffnx method slot-unbound (object <object>)
|
||||
@deffnx method slot-unbound (class <class>) slot-name
|
||||
@deffnx method slot-unbound (class <class>) (object <object>) slot-name
|
||||
When an application attempts to reference a class or instance slot, and
|
||||
the slot's value is unbound, GOOPS calls the @code{slot-unbound} generic
|
||||
function.
|
||||
|
||||
The default methods all call @code{goops-error} with an appropriate
|
||||
message.
|
||||
@end deffn
|
||||
|
||||
@node Object Comparisons
|
||||
@section Object Comparisons
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue