CVS difference for ai05s/ai05-0203-1.txt
--- ai05s/ai05-0203-1.txt 2010/02/23 07:31:06 1.2
+++ ai05s/ai05-0203-1.txt 2010/04/02 22:42:48 1.3
@@ -1,5 +1,7 @@
-!standard 3.9.3(8/3) 10-02-13 AI05-0203-1/01
+!standard 3.9.3(8/3) 10-04-02 AI05-0203-1/02
!class binding interpretation 10-02-13
+!status Amendment 2012 10-04-02
+!status ARG Approved 10-0-0 10-02-28
!status work item 10-02-13
!status received 09-09-24
!priority Low
@@ -29,19 +31,40 @@
!wording
-Add after the fourth sentence of 3.9.3(8/3):
+Add after the fifth sentence of 3.9.3(8/3) (as modified by AI05-0073-1):
-The type denoted by a return_subtype_indication shall not be abstract.
+The type denoted by a return_subtype_indication (see 6.5) shall not be abstract.
!discussion
In the example in the question, the function is legal because it
is returning a class-wide type, which is never abstract (3.9.3(1.2/2)).
Since any type that is covered by the class-wide type is allowed in
-the extended_return_statement, we could declare a specific abstract
+the extended_return_statement, we could use a specific abstract
type as shown. So we need to explcitly disallow this case.
---!corrigendum 3.9.3(8/3)
+!corrigendum 3.9.3(8/3)
+
+@drepl
+The type of an @fa<aggregate>, or of an object created by an @fa<object_declaration>
+or an @fa<allocator>, or a generic formal object of mode @b<in>, shall not be abstract.
+The type of the target of an assignment operation (see 5.2) shall not be abstract.
+The type of a component shall not be abstract. If the result type of a function is
+abstract, then the function shall be abstract. If a function has an access result type
+designating an abstract type, then the function shall be abstract. A generic function
+shall not have an abstract result type or an access result type designating an
+abstract type.
+@dby
+The type of an @fa<aggregate>, or of an object created by an @fa<object_declaration>
+or an @fa<allocator>, or a generic formal object of mode @b<in>, shall not be abstract.
+The type of the target of an assignment operation (see 5.2) shall not be abstract.
+The type of a component shall not be abstract. If the result type of a function is
+abstract, then the function shall be abstract. If a function has an access result type
+designating an abstract type, then the function shall be abstract. The type denoted by
+a @fa<return_subtype_indication> (see 6.5) shall not be abstract. A generic function
+shall not have an abstract result type or an access result type designating an
+abstract type.
+
!ACATS Test
Questions? Ask the ACAA Technical Agent