CVS difference for ais/ai-00230.txt
--- ais/ai-00230.txt 2001/10/03 22:10:10 1.5
+++ ais/ai-00230.txt 2001/10/09 00:47:09 1.6
@@ -8,9 +8,9 @@
!summary
-More general use of anonymous access types is proposed, to allow the flexibility
-of implicit conversion and run-time accessibility checking to be used in
-more contexts, including as components, stand-alone variables, and as
+More general use of anonymous access types is proposed, to allow the
+flexibility of implicit conversion and run-time accessibility checking to be
+used in more contexts, including as components, stand-alone variables, and as
return types.
!problem
@@ -40,14 +40,15 @@
appropriately compatible designated subtypes (as defined by 4.6(13-17)).
The accessibility level of an anonymous access type is determined at the time
-when the access_definition is elaborated. For a function return type, this
+when the access_definition is elaborated. For a function return type, this
happens at the time the function returns.
For a subtype of an anonymous access type, the accessibility level is the level
-of the subtype declaration. For a constant declaration, the level is the same as
-the level of the type of the initial value. For a function return, the level is
-the same as the level of the type of the returned value, which must be shallower
-than the level of the execution of the function (for obvious reasons).
+of the subtype declaration. For a constant declaration, the level is the same
+as the level of the type of the initial value. For a function return, the
+level is the same as the level of the type of the returned value, which must be
+shallower than the level of the execution of the function (for obvious
+reasons).
There is a special predefined equality (and matching inequality) operator
declared in package Standard which requires at least one of the parameters to
@@ -55,9 +56,9 @@
anonymous access type.
An anonymous access type uses the default storage pool associated with its
-accessibility level. If an anonymous access type is used as the parent in a
-derived type declaration, the derived type is a "normal" access type, without any
-implicit conversion from other access types. An anonymous access type may
+accessibility level. If an anonymous access type is used as the parent in a
+derived type declaration, the derived type is a "normal" access type, without
+any implicit conversion from other access types. An anonymous access type may
be passed to a generic when the formal is an access type or a private type.
!wording
@@ -84,8 +85,9 @@
generalization of access_definition proposed in AI-231 is in effect.]
Explicit access type conversions can be used to provide the desired
-substitutability, but scattering type conversions around muddies the waters, and
-makes it harder to find the few type conversions that are really "significant."
+substitutability, but scattering type conversions around muddies the waters,
+and makes it harder to find the few type conversions that are really
+"significant."
This AI proposes to generalize the use of anonymous access types, as declared
by an access_definition. It avoids any incompatibility issues by not changing
@@ -110,7 +112,7 @@
We have proposed to allow named subtypes of anonymous access types, which is
admittedly a mind-bending concept. However, subtypes have exactly the right
-implicit convertibility semantics, which is not in general shared by types. So
+implicit convertibility semantics, which is not in general shared by types. So
by using subtype declarations to introduce these, hopefully we are suggesting
the implicit convertibility. [Note that a recent suggestion regarding the
"incomplete type stub" is to actually call these "subtype stubs" for a similar
Questions? Ask the ACAA Technical Agent