CVS difference for ais/ai-00385.txt
--- ais/ai-00385.txt 2004/12/09 19:55:37 1.3
+++ ais/ai-00385.txt 2005/04/13 05:37:19 1.4
@@ -1,7 +1,8 @@
-!standard 03.03.01 (02) 04-12-01 AI95-00385/03
+!standard 03.03.01 (02) 05-03-23 AI95-00385/04
!standard 03.03.01 (08)
!standard 03.03.01 (16)
!standard 03.10.02 (11)
+!standard 07.04 (05)
!class amendment 04-10-25
!status Amendment 200Y 04-12-01
!status ARG Approved 8-1-1 04-11-19
@@ -39,7 +40,8 @@
!proposal
It is proposed that stand-alone objects be permitted of an anonymous access
-type.
+type. We also need to allow deferred constants to be of an anonymous access
+type, by extending their matching rules.
!wording
@@ -73,6 +75,16 @@
defined by an access_definition of an object_declaration is
the same as that of the declared object.
+Modify 7.4(5)
+
+ The deferred and full constants shall have the same type{,
+ or shall have statically matching anonymous access subtypes}.
+
+Change the start of 7.4(6) to
+
+ If the deferred constant declaration includes a subtype_indication
+ that defines a constrained subtype, ...
+
!discussion
The restriction on access variables was found to be frustrating when starting
@@ -286,16 +298,42 @@
@fa<single_protected_declaration> is first elaborated.
This creates the nominal subtype (and the anonymous
type in the last four cases).>
+
+!comment AI-416 considers this redundant.
+!comment !corrigendum 3.10.2(11)
+!comment
+!comment @dinsa
+!comment @xbullet<The accessibility level of a derived access type is that of
+!comment its ultimate ancestor.>
+!comment @dinss
+!comment @xbullet<The accessibility level of the anonymous access type
+!comment defined by an @fa<access_definition> of an @fa<object_declaration> is
+!comment the same as that of the declared object.>
-!corrigendum 3.10.2(11)
+!corrigendum 7.4(5)
-@dinsa
-@xbullet<The accessibility level of a derived access type is that of
-its ultimate ancestor.>
-@dinss
-@xbullet<The accessibility level of the anonymous access type
-defined by an @fa<access_definition> of an @fa<object_declaration> is
-the same as that of the declared object.>
+@drepl
+@xbullet<The deferred and full constants shall have the same type;>
+@dby
+@xbullet<The deferred and full constants shall have the same type, or
+shall have statically matching anonymous access subtypes;>
+
+!corrigendum 7.4(6)
+
+@drepl
+@xbullet<If the subtype defined by the @fa<subtype_indication> in the deferred
+declaration is constrained, then the subtype defined by the
+@fa<subtype_indication> in the full declaration shall match it statically. On
+the other hand, if the subtype of the deferred constant is unconstrained, then
+the full declaration is still allowed to impose a constraint. The constant
+itself will be constrained, like all constants;>
+@dby
+@xbullet<If the deferred constant declaration includes a subtype_indication
+that defines a constrained subtype, then the subtype defined by the
+@fa<subtype_indication> in the full declaration shall match it statically. On
+the other hand, if the subtype of the deferred constant is unconstrained, then
+the full declaration is still allowed to impose a constraint. The constant
+itself will be constrained, like all constants;>
!ACATS test
Questions? Ask the ACAA Technical Agent