CVS difference for ais/ai-00251.txt

Differences between 1.17 and version 1.18
Log of other versions for file ais/ai-00251.txt

--- ais/ai-00251.txt	2003/10/29 22:54:10	1.17
+++ ais/ai-00251.txt	2003/11/20 06:01:50	1.18
@@ -1,4 +1,4 @@
-!standard 03.04    (02)                            03-10-15  AI95-00251/09
+!standard 03.04    (02)                            03-11-04  AI95-00251/10
 !standard 03.09.01 (02)
 !class amendment 00-12-04
 !status work item 00-12-04
@@ -282,13 +282,12 @@
 
       * If two or more homographs are implicitly declared at the same place:
 
-        - At most one shall be a non-null non-abstract subprogram, and it
-          overrides all the others;
+        - If one is a non-null non-abstract subprogram, then it overrides
+          all which are null or abstract subprograms.
 
         - If all are null procedures or abstract subprograms, then any null
           procedure overrides all abstract subprograms; if more than one
-          homograph remains that is not thus overridden, then their profiles
-          shall be fully conformant with one another, and one is chosen
+          homograph remains that is not thus overridden, then one is chosen
           arbitrarily to override the others.
 
       * For an implicit declaration of a primitive subprogram in a generic unit,
@@ -301,6 +300,32 @@
         tagged types, the body of a new one can be executed by a call to an
         old one.
 
+Replace 26/1 with:
+
+    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 context_clause for a subunit is illegal if it
+    mentions (in a 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.
+
+    If two or more homographs are implicitly declared at the same place then
+    at most one shall be a non-null non-abstract subprogram. If all are null or
+    abstract, then all of the null subprograms shall be fully conformant with
+    one another. If all are abstract, then all of the subprograms shall be fully
+    conformant with one another.
+
+    All of 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.
+
+
 12.5 Formal Types
 
     Add to syntax
@@ -4055,6 +4080,32 @@
 to be resolved somehow.  In the present version of 8.3, legality
 rules only appear in 8.3(26/1) (plus the Name Resolution rules
 in 24-25).
+
+****************************************************************
+
+From: Stephen W. Baird
+Sent: Thursday, November 4, 2003  5:27 PM
+
+Gary wrote (on 10/15/03):
+> Both of the above bulleted paragraphs contain legality wording
+> (the uses of "shall"), but until now this set of paragraphs has
+> been classified strictly as static semantics.  That seems like
+> a problematic departure from the current structure and needs
+> to be resolved somehow.  In the present version of 8.3, legality
+> rules only appear in 8.3(26/1) (plus the Name Resolution rules
+> in 24-25).
+
+Good point. In response, here is another attempt at section 8.3.  I moved the
+problematic legality rules out of the static semantics section and into the
+middle of 26/1, which is then split into 3 paragraphs.
+
+Gary also wrote -
+> Remove the hyphens for consistency with RM style
+
+You are right, but bear in mind that this is only an ASCII approximation
+to what will end up in the RM.
+
+[Editor's note: This wording is in version /10.]
 
 ****************************************************************
 

Questions? Ask the ACAA Technical Agent