CVS difference for ais/ai-00211.txt

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

--- ais/ai-00211.txt	1998/11/22 01:11:01	1.4
+++ ais/ai-00211.txt	1999/04/01 22:03:08	1.5
@@ -1,21 +1,22 @@
-!standard 8.5.4     (7)                             98-11-18  AI95-00211/01
+!standard 8.5.4     (7)                             99-04-01  AI95-00211/02
 !class ramification 98-11-18
+!status ARG Approved (with changes) 8-0-1  99-03-24
 !status work item 98-11-18
 !priority Medium
 !difficulty Easy
 !subject Can an abstract subprogram be renamed?
 
-!summary 98-11-18
+!summary
 
 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.
 
-!question 98-11-18
+!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? (Yes.)
+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
@@ -28,7 +29,7 @@
    package extensions is
       type e is new types.t with ...
       procedure pr (f : e) renames p;  -- renaming of inherited p
-                                       -- Legal? (Yes, but see response.)
+                                       -- Legal? (No.)
       procedure p  (f : e);
    end extensions;
 
@@ -42,28 +43,26 @@
    package extensions is
       type e is new types.t with ...
       function fr return e renames f;  -- renaming of inherited f
-                                       -- Legal? (Yes, but see response.)
+                                       -- Legal? (No.)
       function f  return e;
    end extensions;
 
-!response 98-11-18
+!response
 
 The intent of the language is that an abstract subprogram can be renamed,
 and the renamed view is also abstract. All of the rules about declaring
 abstract subprograms apply at the point of the renaming (in particular,
 3.9.3(3)).
 
-Similarly, it is possible (but not useful) to rename an inherited subprogram
-which must be overridden because of the rules of 3.9.3(6). The intent of
-the language is that the "shall be overridden" property also applies to the
-renamed view. Since the renamed view still must be overridden, such a 
-renaming serves no useful purpose.
+Similarly, it is possible to write a renaming of an inherited subprogram
+which must be overridden because of the rules of 3.9.3(6). The intent
+of the language is that the "shall be overridden" property also applies
+to the renamed view. However, it is not possible to give an overriding
+for the renamed view (as the overriding specification would be an illegal
+homograph of the renamed subprogram). Thus, any renaming of an inherited
+subprogram that must be overridden is illegal.
 
-In the both examples, the renaming is legal. However, both examples are
-illegal as written since the overridding required by 3.9.3(6) is absent.
-
-
-!appendix 98-11-18
+!appendix
 
 !topic Renames of inherited abstract subprograms
 !reference RM95-8.5.4(8)

Questions? Ask the ACAA Technical Agent