From 3617da95abed21923b67fc7c355b4b7b25d32853 Mon Sep 17 00:00:00 2001 From: Neil Jerram Date: Fri, 14 Jan 2011 20:06:34 +0000 Subject: [PATCH] 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. --- doc/ref/goops.texi | 115 ++++++++++++++++++++++----------------------- 1 file changed, 55 insertions(+), 60 deletions(-) diff --git a/doc/ref/goops.texi b/doc/ref/goops.texi index 6dcb74449..077b8527e 100644 --- a/doc/ref/goops.texi +++ b/doc/ref/goops.texi @@ -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{}. 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 ) slot-name -@deffnx method slot-missing (class ) (object ) slot-name -@deffnx method slot-missing (class ) (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{}. 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 ) -@deffnx method slot-unbound (class ) slot-name -@deffnx method slot-unbound (class ) (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 ) slot-name +@deffnx method slot-missing (class ) (object ) slot-name +@deffnx method slot-missing (class ) (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 ) +@deffnx method slot-unbound (class ) slot-name +@deffnx method slot-unbound (class ) (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