CVS difference for ais/ai-20218.txt

Differences between 1.7 and version 1.8
Log of other versions for file ais/ai-20218.txt

--- ais/ai-20218.txt	2003/09/19 01:42:29	1.7
+++ ais/ai-20218.txt	2003/10/29 00:42:07	1.8
@@ -1,5 +1,13 @@
-!standard 8.3(26)                                    03-09-17  AI95-00218-03/02
+!standard 8.3(26)                                    03-10-21  AI95-00218-03/03
+!standard 2.9(3)
+!standard 6.1(2)
+!standard 6.1(3)
+!standard 6.3(2)
+!standard 8.5.4(2)
+!standard 12.3(2)
 !class amendment 03-06-06
+!status Amendment 200Y 03-10-21
+!status ARG Approved 10-0-0  03-10-03
 !status work item 03-06-06
 !status received 03-06-06
 !priority Medium
@@ -123,16 +131,16 @@
 Change the first two lines of 6.3(2) to read:
 
 subprogram_body ::=
-               [overriding_indicator] subprogram_specification
+               [overriding_indicator] subprogram_specification is
 
 Add to 8.3 after paragraph 26:
 
-If an explicit declaration of an operation by a subprogram_declaration,
-abstract_subprogram_declaration, subprogram_body, subprogram_renaming_declaration or
-generic_instantiation of a subprogram has an overriding_indicator, then:
+If a subprogram_declaration, abstract_subprogram_declaration, subprogram_body,
+subprogram_renaming_declaration, or generic_instantiation of a subprogram has an
+overriding_indicator, then:
   * the operation shall be a primitive operation for some type;
   * if the overriding_indicator is "overriding", then it shall override
-    another homograph at the point of the declaration;
+    another homograph at the point of the declaration or body;
   * if the overriding_indicator is "not overriding", then it shall not override
     another homograph (at any point).
 In addition to the places where Legality Rules normally apply, these rules also
@@ -601,12 +609,121 @@
 "overloaded") suffer from the same problem, and no programmer is likely to
 mistake the meaning of "not".
 
+!corrigendum 2.9(03)
 
+@drepl
+NOTES@hr
+6 The reserved words appear in @b<lower case boldface> in this International
+Standard, except when used in the @fa<designator> of an attribute (see
+4.1.4). Lower case boldface is also used for a reserved word
+in a @fa<string_literal> used as an @fa<operator_symbol>. This is merely a
+convention @emdash programs may be written in whatever typeface is desired and
+available.
+@dby
+@b<Overriding> is a nonreserved keyword.
+
+NOTES@hr
+6 The reserved words appear in @b<lower case boldface> in this International
+Standard, except when used in the @fa<designator> of an attribute (see
+4.1.4). Lower case boldface is also used for a reserved word
+in a @fa<string_literal> used as an @fa<operator_symbol>. This is merely a
+convention @emdash programs may be written in whatever typeface is desired and
+available.
+
+!corrigendum 6.1(02)
+
+@drepl
+@xcode<@fa<subprogram_declaration ::= subprogram_specification ;>>
+@dby
+@xcode<@fa<overriding_indicator ::= [>@ft<@b<not>>@fa<] >@ft<@b<overriding>>@fa<
+subprogram_declaration ::=
+    [overriding_indicator] subprogram_specification ;>>
+
+!corrigendum 6.1(03)
 
+@drepl
+@xcode<@fa<abstract_subprogram_declaration ::= subprogram_specification >@ft<@b<is abstract>>@fa<;>>
+@dby
+@xcode<@fa<abstract_subprogram_declaration ::=
+   [overriding_indicator] subprogram_specification >@ft<@b<is abstract>>@fa<;>>
+
+!corrigendum 6.3(02)
+
+@drepl
+@xcode<@fa<subprogram_body ::=
+   subprogram_specification >@ft<@b<is>>@fa<
+     declarative_part
+   >@ft<@b<begin>>@fa<
+      handled_sequence_of_statements
+   >@ft<@b<end>>@fa< [designator];>>
+@dby
+@xcode<@fa<subprogram_body ::=
+   [overriding_indicator] subprogram_specification >@ft<@b<is>>@fa<
+     declarative_part
+   >@ft<@b<begin>>@fa<
+      handled_sequence_of_statements
+   >@ft<@b<end>>@fa< [designator];>>
+
 !corrigendum 8.3(26)
+
+@dinsa
+A non-overridable declaration is illegal if there is a homograph occurring
+immediately within the same declarative region that is visible at the place
+of the declaration, and is not hidden from all visibility by the non-overridable
+declaration. In addition, a type extension is illegal if somewhere within
+its immediate scope it has two visible components with the same name. Similarly,
+the @fa<context_clause> for a @fa<subunit> is illegal if it
+mentions (in a @fa<with_clause>) some library unit, and there is a homograph of
+the library unit that is visible at the place of the corresponding stub, and
+the homograph and the mentioned library unit are both declared immediately
+within the same declarative region. These rules also apply to dispatching
+operations declared in the visible part of an instance of a generic unit.
+However, they do not apply to other overloadable declarations in an instance;
+such declarations may have type conformant profiles in the instance, so long
+as the corresponding declarations in the generic were not type conformant.
+@dinss
+If a @fa<subprogram_declaration>, @fa<abstract_subprogram_declaration>,
+@fa<subprogram_body>, @fa<subprogram_renaming_declaration>, or
+@fa<generic_instantiation> of a subprogram has an
+@fa<overriding_indicator>, then:
+@xbullet<the operation shall be a primitive operation for some type;>
+@xbullet<if the @fa<overriding_indicator> is @b<overriding>, then it shall
+override another homograph at the point of the declaration or body;>
+@xbullet<if the @fa<overriding_indicator> is @b<not overriding>, then it shall
+not override another homograph (at any point).>
+In addition to the places where Legality Rules normally apply, these rules also
+apply in the private part of an instance of a generic unit.
+
+!corrigendum 8.5.4(2)
+
+@drepl
+@xcode<@fa<subprogram_renaming_declaration ::= subprogram_specification >@ft<@b<renames> @i<callable_entity_>>@fa<name;>>
+@dby
+@xcode<@fa<subprogram_renaming_declaration ::= [overriding_indicator]
+       subprogram_specification >@ft<@b<renames> @i<callable_entity_>>@fa<name;>>
+
+!corrigendum 12.3(2)
+
+@drepl
+@xcode<@fa<generic_instantiation ::=
+     >@ft<@b<package>>@fa< defining_program_unit_name >@ft<@b<is>
+        @b<new> @i<generic_package_>>@fa<name [generic_actual_part];
+   | >@ft<@b<procedure>>@fa< defining_program_unit_name >@ft<@b<is>
+        @b<new> @i<generic_procedure_>>@fa<name [generic_actual_part];
+   | >@ft<@b<function>>@fa< defining_designator >@ft<@b<is>
+        <@b<new> @i<generic_function_>>@fa<name [generic_actual_part];>>
+@dby
+@xcode<@fa<generic_instantiation ::=
+     >@ft<@b<package>>@fa< defining_program_unit_name >@ft<@b<is>
+        @b<new> @i<generic_package_>>@fa<name [generic_actual_part];
+   | [overriding_indicator] >@ft<@b<procedure>>@fa< defining_program_unit_name >@ft<@b<is>
+        @b<new> @i<generic_procedure_>>@fa<name [generic_actual_part];
+   | [overriding_indicator]>@ft<@b<function>>@fa< defining_designator >@ft<@b<is>
+        <@b<new> @i<generic_function_>>@fa<name [generic_actual_part];>>
 
-To be done.
+!ACATS test
 
+Tests should be created to check on the implementation of this feature.
 
 !appendix
 

Questions? Ask the ACAA Technical Agent