CVS difference for ai05s/ai05-0041-1.txt
--- ai05s/ai05-0041-1.txt 2007/08/21 23:28:49 1.3
+++ ai05s/ai05-0041-1.txt 2008/02/05 06:29:01 1.4
@@ -1,4 +1,4 @@
-!standard 3.7.1(7/2) 07-08-20 AI05-0041-1/03
+!standard 3.7.1(7/2) 08-02-04 AI05-0041-1/04
!standard 4.8(6/2)
!class binding interpretation 07-03-27
!status work item 07-03-27
@@ -65,39 +65,45 @@
Change the new text for 3.3(23.9/3) from AI05-0008-1 as follows:
-* it is a dereference of a pool-specific access type, and there is
- no {ancestor of its type that has a} partial view [of its type]
- that is constrained.
+ * it is a dereference of a pool-specific access type, and there is
+ no {ancestor of its type that has a constrained} partial view [of its
+ type that is constrained].
Change the new text for 3.3(23.10/3) from AI05-0008-1 as follows:
-For the purposes of determining within a generic body whether an
-object is known to be constrained, a subtype is not considered
-indefinite {and is considered to have a partial view that is constrained}
-if it is a descendant of an untagged generic formal derived type, nor
-is an access type considered pool-specific if it is a descendant of a
-formal access type.
+ For the purposes of determining within a generic body whether an
+ object is known to be constrained:
+ * if a subtype is a descendant of an untagged generic formal
+ derived type, it is not considered indefinite and is considered to
+ have a constrained partial view;
+ * if a subtype is a descendant of a formal access type, it is not
+ considered pool-specific.
+
Change 3.7.1(7/2) as follows:
-... However, in the case of an access subtype,
-a discriminant_constraint is illegal if the designated type has {an ancestor
-which has} a partial view that is constrained or, for a general access
-subtype, has default_expressions for its discriminants. In addition to
-the places where Legality Rules normally apply (see 12.3), these rules
-apply also in the private part of an instance of a generic unit. In a
-generic body, this rule is checked presuming all formal access types of
-the generic might be general access types, {all formal derived types have
-partial views that are constrained, }and all untagged discriminated formal
-types of the generic might have default_expressions for their discriminants.
+ ... However, in the case of an access subtype, a
+ discriminant_constraint is illegal if the designated type has {an
+ ancestor that has} a {constrained} partial view [that is constrained]
+ or, for a general access subtype, has default_expressions for its
+ discriminants. In addition to the places where Legality Rules
+ normally apply (see 12.3), these rules apply also in the private part
+ of an instance of a generic unit. In a generic body, this rule is
+ checked presuming all formal access types of the generic might be
+ general access types, {all untagged generic formal derived types have
+ constrained partial views,} and all untagged discriminated formal
+ types of the generic might have default_expressions for their
+ discriminants.
Change 4.8(6/2) as follows:
-... If the designated type is composite, then the subtype of the created object
-is the designated subtype when the designated subtype is constrained or there
-is {an ancestor which has} a partial view of the designated type that is
-constrained; otherwise, the created object is constrained by its initial value ...
+ ... If the designated type is composite, then the subtype of the
+ created object is the designated subtype when the designated subtype
+ is constrained or there is {an ancestor of the designated type that
+ has} a {constrained} partial view [of the designated type that is
+ constrained]; otherwise, the created object is constrained by its
+ initial value ...
!discussion
@@ -862,5 +868,38 @@
This is illegal with a tweaking of the existing (AI05-0008) assume-the-worst rule
for renames ("known to be constrained"). We may need to discuss if this tweaking
is too draconian, but I doubt it personally.
+
+****************************************************************
+
+From: Tucker Taft
+Date: Monday, February 4, 2008 11:32 PM
+
+Here is the last AI I'll be submitting before the meeting.
+It attempts to follow through on the changes specified in the
+minutes. I was supposed to "try to figure out what
+the rules ought to be" but I'm not sure I still
+remember all of the issues. This may take another
+round of discussion. [This is version /04 - ED]
+
+****************************************************************
+
+From: Randy Brukardt
+Date: Tuesday, February 5, 2008 12:24 AM
+
+> Here is the last AI I'll be submitting before the meeting.
+
+Good, 'cause the deadline was 7 hours ago, and I'm about to upload
+the AI package for the meeting to the web site.
+
+> It attempts to follow through on the changes specified in the
+> minutes. I was supposed to "try to figure out what
+> the rules ought to be" but I'm not sure I still
+> remember all of the issues. This may take another
+> round of discussion.
+
+My recollection was that you and Bob wanted to except (known) tagged
+types from *all* of the rules about constrained partial views. Not just
+for generic formal types. Maybe that isn't possible for regular tagged
+types, but it would be helpful to have some proof of that.
****************************************************************
Questions? Ask the ACAA Technical Agent