CVS difference for ai05s/ai05-0087-1.txt
--- ai05s/ai05-0087-1.txt 2008/01/31 03:50:43 1.1
+++ ai05s/ai05-0087-1.txt 2008/03/07 06:15:20 1.2
@@ -1,18 +1,19 @@
-!standard 12.5.1(5.1/2) 08-01-30 AI05-0087-1/01
+!standard 12.5.1(5.1/2) 08-02-22 AI05-0087-1/02
!standard 7.5(5/2)
!class binding interpretation 08-01-30
+!status ARG Approved 8-0-1 08-02-10
!status work item 08-01-30
!status received 08-01-23
!priority Low
!difficulty Medium
!qualifier Omission
-!subject Formal non-limited derived types should not have limited actual types
+!subject Formal nonlimited derived types should not have limited actual types
!summary
-Formal non-limited derived types should not have limited actual types.
+Formal nonlimited derived types should not have limited actual types.
-A class-wide type is limited if it's specific type is limited.
+A class-wide type is limited if its specific type is limited.
!question
@@ -39,7 +40,7 @@
null;
end Tsk;
- type Has_Task is new Ifc with
+ type Has_Task is limited new Ifc with
record
F : Tsk;
end record;
@@ -49,21 +50,21 @@
Store (X, Y);
end;
-Should the instantiation be rejected? (Yes.)
+Is the instantiation legal? (No.)
-7.5(3-7) seems to imply that most class-wide types are non-limited, even if
+7.5(3-7) seems to imply that most class-wide types are nonlimited, even if
the specific type is limited. That is a change from Ada 95; was this
intended? (No.)
!recommendation
-(See Summary.)
+(See summary.)
!wording
Replace the deleted paragraph 7.5(5/2) with:
-* a class-wide type whose associated specific type is limited;
+* a class-wide type whose specific type is limited;
Change 12.5.1(5.1/2) as follows:
@@ -75,29 +76,29 @@
formal derived type, the actual type shall be a
synchronized tagged type.
- AARM Ramification:
- A type derived from a limited interface could be non-limited; we
+ AARM Discussion:
+ A type derived from a limited interface could be nonlimited; we
do not want a limited type derived from such an interface to match
- a non-limited formal derived type. (Otherwise, we could assign limited
+ a nonlimited formal derived type. (Otherwise, we could assign limited
objects.)
!discussion
There was no intent that the class-wide type associated with a limited specific
-type to be non-limited; that would open up ways to assign tasks and the like.
+type be nonlimited; that would open up ways to assign tasks and the like.
So we add explicit wording clarifying that class-wide types are limited if their
specific type is.
-We certainly don't want the example in the question be to be legal, so we
+We certainly don't want the example in the question to be legal, so we
must add wording to prevent it.
-!corrigendum 7.5(5/2)
+!corrigendum 7.5(4/2)
@dinsa
@xbullet<a type with the reserved word @b<limited>, @b<synchronized>, @b<task>,
or @b<protected> in its definition;
@dinst
-@xbullet<a class-wide type whose associated specific type is limited;>
+@xbullet<a class-wide type whose specific type is limited;>
!corrigendum 12.5.1(5.1/2)
Questions? Ask the ACAA Technical Agent