CVS difference for ais/ai-00211.txt

Differences between 1.9 and version 1.10
Log of other versions for file ais/ai-00211.txt

--- ais/ai-00211.txt	2000/01/26 18:24:21	1.9
+++ ais/ai-00211.txt	2000/07/13 04:31:30	1.10
@@ -1,4 +1,4 @@
-!standard 8.5.4     (7)                             00-01-24  AI95-00211/05
+!standard 8.5.4     (7)                             00-07-12  AI95-00211/06
 !class ramification 98-11-18
 !status Response 2000 00-01-24
 !status WG9 approved 99-06-12
@@ -14,41 +14,42 @@
 An abstract subprogram can be renamed, and the renamed view is also
 abstract. Such a renaming must appear in a place where the declaration
 of an abstract subprogram would be legal. Similarly, the "shall be overridden"
-property of 3.9.3(6) applies to a renamed view.
+property of 3.9.3(6) applies to a renamed view. Thus, any renaming of an
+inherited subprogram that must be overridden is illegal.
 
 !question
 
 Can an abstract subprogram be renamed? (Yes.) Can a subprogram which
 must be overridden in the sense of 3.9.3(6) be renamed? (No.)
 
-Consider an example with an abstract parent type and primitive. 8.5.4(8)
-says that the renaming uses the original inherited subprogram, not the
-overriding version.
-
-   package types is
-      type t is abstract tagged ...
-      procedure p (f : t) is abstract;
-   end types;
-   package extensions is
-      type e is new types.t with ...
-      procedure pr (f : e) renames p;  -- renaming of inherited p
+Consider an example with an abstract parent type and a primitive operation.
+8.5.4(8) says that the renaming uses the original inherited subprogram, not
+the overriding version.
+
+   package Types is
+      type T is abstract tagged ...
+      procedure P (F : T) is abstract;
+   end Types;
+   package Extensions is
+      type E is new Types.T with ...
+      procedure Pr (F : E) renames P;  -- renaming of inherited P
                                        -- Legal? (No.)
-      procedure p  (f : e);
-   end extensions;
+      procedure P  (F : E);
+   end Extensions;
 
 A similar example can be constructed with a function with a controlling
 result.
 
-   package types is
-      type t is tagged ...
-      function f return t;
-   end types;
-   package extensions is
-      type e is new types.t with ...
-      function fr return e renames f;  -- renaming of inherited f
+   package Types is
+      type T is tagged ...
+      function F return T;
+   end Types;
+   package Extensions is
+      type E is new Types.T with ...
+      function Fr return E renames F;  -- renaming of inherited F
                                        -- Legal? (No.)
-      function f  return e;
-   end extensions;
+      function F  return E;
+   end Extensions;
 
 !response
 

Questions? Ask the ACAA Technical Agent