CVS difference for ai05s/ai05-0131-1.txt
--- ai05s/ai05-0131-1.txt 2011/04/12 00:06:36 1.5
+++ ai05s/ai05-0131-1.txt 2011/05/05 07:41:16 1.6
@@ -1,4 +1,6 @@
-!standard 12.6(10) 11-03-11 AI05-0131-1/03
+!standard 8.4(8/2) 11-05-05 AI05-0131-1/04
+!standard 12.6(9)
+!standard 12.6(10)
!class binding interpretation 08-12-04
!status Amendment 2012 11-03-11
!status ARG Approved 7-0-1 11-02-20
@@ -39,7 +41,7 @@
!wording
-Add after 8.4(8.2):
+Add after 8.4(8):
Certain implicit declarations may become potentially
use-visible in certain contexts as described in 12.6.
@@ -63,7 +65,7 @@
AARM Implementation Note:
Although the above wording seems to require constructing implicit
versions of all of the primitive subprograms of type T, it should be
- clear that a compiler only need to consider those that could possibly
+ clear that a compiler only needs to consider those that could possibly
resolve to the corresponding actual subprogram. For instance, if the formal
subprogram is a procedure with two parameters, and the actual subprogram
name is Bar (either given explicitly or by default), the compiler
@@ -237,9 +239,53 @@
it is present). This shows that there is a straighforward workaround to any
ambiguities created.
+!corrigendum 8.4(8/2)
+For each package named in a @fa<use_package_clause> whose scope encloses a place,
+each declaration that occurs immediately within the declarative region of the package
+is @i<potentially use-visible> at this place if the declaration is visible at this place.
+For each type @i<T> or @i<T>'Class named in a @fa<use_type_clause> whose scope encloses
+a place, the declaration of each primitive operator of type @i<T> is potentially
+use-visible at this place if its declaration is visible at this place.
+@dinsa
+Certain implicit declarations may become potentially
+use-visible in certain contexts as described in 12.6.
+
+
+!corrigendum 12.6(9)
+
+@dinsa
+A @fa<formal_subprogram_declaration> declares a generic formal subprogram. The types
+of the formal parameters and result, if any, of the formal subprogram are those
+determined by the @fa<subtype_mark>s given in the @fa<formal_subprogram_declaration>;
+however, independent of the particular subtypes that are denoted by the @fa<subtype_mark>s,
+the nominal subtypes of the formal parameters and result, if any, are defined to be
+nonstatic, and unconstrained if of an array type [(no applicable index constraint is
+provided in a call on a formal subprogram)]. In an instance, a
+@fa<formal_subprogram_declaration> declares a view of the actual. The profile of
+this view takes its subtypes and calling convention from the original profile of
+the actual entity, while taking the formal parameter @fa<name>s and @fa<default_expression>s
+from the profile given in the @fa<formal_subprogram_declaration>. The view is a
+function or procedure, never an entry.
+@dinst
+If a @fa<subtype_mark> in the profile of the @fa<formal_subprogram_declaration>
+denotes a formal private or formal derived type and the actual type
+for this formal type is a class-wide type @i<T>'Class, then for the
+purposes of resolving the corresponding actual subprogram at the
+point of the instantiation, certain implicit declarations
+may be available as possible resolutions as follows:
+
+@xindent<For each primitive subprogram of @i<T> that is directly visible at
+the point of the instantiation, and that has at least one controlling
+formal parameter, a corresponding implicitly declared subprogram with
+the same defining name, and having the same profile as the primitive
+subprogram except that @i<T> is systematically replaced by @i<T>'Class
+in the types of its profile, is potentially use-visible.
+The body of such a subprogram is as defined in 12.5.1 for primitive
+subprograms of a formal type when the actual type is class-wide.>
---!corrigendum 12.6(10/2)
+!comment The changes to 12.6(10) were removed from AI05-0071-1, so
+!comment we don't need to mention that clause here.
!ACATS Test
Questions? Ask the ACAA Technical Agent