CVS difference for ais/ai-00230.txt

Differences between 1.20 and version 1.21
Log of other versions for file ais/ai-00230.txt

--- ais/ai-00230.txt	2004/12/09 19:55:18	1.20
+++ ais/ai-00230.txt	2005/01/07 03:07:28	1.21
@@ -1,7 +1,8 @@
-!standard 03.04.01(06)                               04-11-15  AI95-00230/13
+!standard 03.04.01(06)                               04-12-09  AI95-00230/14
 !standard 03.06(07)
 !standard 03.06(22/1)
 !standard 03.07(10)
+!standard 03.07(27)
 !standard 03.08(18/1)
 !standard 03.10(12)
 !standard 03.10(13)
@@ -172,6 +173,17 @@
 Eliminate paragraph 3.7(10) (which allows access discriminants only
 on limited types).
 
+Change 3.7(27) as follows:
+
+   {For an access discriminant of a limited type, its} [An]
+   access_definition is elaborated when the value of [a corresponding]
+   {the} access discriminant is defined, either
+   by evaluation of its default_expresssion or by elaboration of a
+   discriminant_constraint. {For an access discriminant of a nonlimited
+   type, its access_definition is elaborated when the full_type_declaration
+   with the known_discriminant_part is elaborated.} The elaboration of
+   an access_definition ...
+
 Change paragraph 3.8(18/1) as follows:
 
    ... For the elaboration of a component_definition of a
@@ -208,12 +220,21 @@
 
 Change paragraph 3.10.2(12) as follows:
 
-   The accessibility level of the anonymous access type of an access
-   discriminant {specified for a limited type} is the same as that of the
-   containing object or associated constrained subtype. {For other
-   components having an anonymous access type, the accessibility level
-   of the access type is the same as the level of the containing
-   composite type.}
+   The accessibility level of the anonymous access type {of a component
+   is that of the master that elaborated its access_definition. This
+   is the same as the level of the type whose definition encloses the
+   access_definition except in the case} of an access discriminant
+   {specified for a limited type, in which case it} is the same as that
+   of the containing object or associated constrained subtype.
+
+AARM NOTE: For a type extension, for other than discriminants
+   of a limited type, the components inherited from
+   the parent have the same accessibility as they did in the parent;
+   those in the extension part have the accessibility determined
+   by the scope where the type extension is declared.
+   Similarly, the components of a derived untagged type other than
+   discrimiantns of a limited type have the same accessibility as they did
+   in the parent.
 
 Change the end of the note 3.10.2(34) as follows:
    ... anonymous access types do not{, but they can use the predefined
@@ -568,6 +589,26 @@
 12.3), this rule applies also in the private part of an instance of a generic
 unit.
 
+!corrigendum 3.7(27)
+
+@drepl
+An @fa<access_definition> is elaborated when the value of a corresponding
+access discriminant is defined, either by evaluation of its
+@fa<default_expression> or by elaboration of a @fa<discriminant_constraint>.
+The elaboration of an @fa<access_definition> creates the anonymous access
+type. When the expression defining the access discriminant is evaluated, it is
+converted to this anonymous access type (see 4.6).
+@dby
+For an access discriminant of a limited type, its @fa<access_definition> is
+elaborated when the value of the access discriminant is defined, either
+by evaluation of its @fa<default_expresssion> or by elaboration of a
+@fa<discriminant_constraint>. For an access discriminant of a nonlimited
+type, its @fa<access_definition> is elaborated when the
+@nt{full_type_declaration> with the @fa<known_discriminant_part> is elaborated.
+The elaboration of an @fa<access_definition> creates the anonymous access
+type. When the expression defining the access discriminant is evaluated, it is
+converted to this anonymous access type (see 4.6).
+
 !corrigendum 3.8(18/1)
 
 @drepl
@@ -660,12 +701,12 @@
 @xbullet<The accessibility level of the anonymous access type defined by an
 @fa<access_definition> of an @fa<object_renaming_declaration> is the same as
 that of the renamed view.>
-@xbullet<The accessibility level of the anonymous access type of an access
-discriminant for a limited type is the same as that of the
-containing object or associated constrained subtype. For other
-components having an anonymous access type, the accessibility level
-of the access type is the same as the level of the containing
-composite type.>
+@xbullet<The accessibility level of the anonymous access type of a component
+is that of the master that elaborated its @fa<access_definition>. This
+is the same as the level of the type whose definition encloses the
+@fa<access_definition> except in the case of an access discriminant
+specified for a limited type, in which case it is the same as that
+of the containing object or associated constrained subtype.>
 
 
 !corrigendum 3.10.2(34)

Questions? Ask the ACAA Technical Agent