CVS difference for 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