CVS difference for ais/ai-00385.txt

Differences between 1.3 and version 1.4
Log of other versions for file 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