CVS difference for ais/ai-00317.txt

Differences between 1.11 and version 1.12
Log of other versions for file ais/ai-00317.txt

--- ais/ai-00317.txt	2004/07/27 23:00:57	1.11
+++ ais/ai-00317.txt	2004/11/03 00:53:42	1.12
@@ -1,4 +1,4 @@
-!standard  12.07 (03)                                  04-06-17  AI95-00317/08
+!standard  12.07 (03)                                  04-10-15  AI95-00317/09
 !standard  12.07 (05)
 !standard  12.07 (10)
 !class amendment
@@ -78,13 +78,18 @@
 Replace 12.7(3) with:
 
     formal_package_actual_part ::=
-        (<>)
+        ([OTHERS =>] <>)
       | [generic_actual_part]
-      | ([generic_association {, generic_association},] OTHERS => <>)
+      | (formal_package_association {, formal_package_association}
+            [, OTHERS => <>])
 
-    Any positional generic_associations shall precede any named
-    generic_associations.
+    formal_package_association ::=
+        generic_association
+      | generic_formal_parameter_selector_name => <>
 
+    Any positional formal_package_associations shall precede any named
+    formal_package_associations.
+
 Replace 12.7(5) with the following:
 
   The actual shall be an instance of the template. If the
@@ -94,8 +99,8 @@
   parameter of the formal package, determined as follows:
 
      * If the formal_package_actual_part includes generic_associations
-       as well as "OTHERS => <>", then only the actual parameters specified
-       explicitly in these generic_associations are required to match;
+       as well as associations with "<>", then only the actual parameters
+       specified explicitly with generic_associations are required to match;
 
      * Otherwise, all actual parameters shall match, whether the actual
        parameter is given explicitly or by default.
@@ -128,6 +133,15 @@
 are specified, the formal package capability becomes significantly more
 useful, without measurably increasing the complexity of supporting the
 capability.
+
+We have generalized the syntax since the original proposal, to bring
+it in line with AI-287 syntax proposed for aggregates with defaulted
+components.  This allows a programmer to indicate specific parameters
+don't require matching, without resorting to the use of "others =>".
+Avoiding "others" provides some additional safety when additional generic
+formal parameters are added, since the programmer then gets to make
+an explicit choice whether a new formal parameter should be given
+a corresponding explicit actual, or a box.
 
 
 There is an issue of which names are visible outside an instance:

Questions? Ask the ACAA Technical Agent