sem_disp.adb (Check_Dispatching_Operation): If the operation implements an operation inherited from a progenitor interface...
2007-08-16 Ed Schonberg <schonberg@adacore.com> * sem_disp.adb (Check_Dispatching_Operation): If the operation implements an operation inherited from a progenitor interface, verify that they are subtype-conformant. From-SVN: r127549
This commit is contained in:
parent
3b8b727095
commit
ace980d5d8
@ -1333,8 +1333,10 @@ package body Sem_Disp is
|
||||
then
|
||||
-- Ada 2005 (AI-251): Update the attribute alias of all the aliased
|
||||
-- entities of the overridden primitive to reference New_Op, and also
|
||||
-- propagate them the new value of the attribute
|
||||
-- Is_Abstract_Subprogram.
|
||||
-- propagate the proper value of Is_Abstract_Subprogram. Verify
|
||||
-- that the new operation is subtype conformant with the interface
|
||||
-- operations that it implements (for operations inherited from the
|
||||
-- parent itself, this check is made when building the derived type).
|
||||
|
||||
Elmt := First_Elmt (Primitive_Operations (Tagged_Type));
|
||||
while Present (Elmt) loop
|
||||
@ -1351,6 +1353,7 @@ package body Sem_Disp is
|
||||
and then Alias (Prim) = Prev_Op
|
||||
then
|
||||
Set_Alias (Prim, New_Op);
|
||||
Check_Subtype_Conformant (New_Op, Prim);
|
||||
Set_Is_Abstract_Subprogram
|
||||
(Prim, Is_Abstract_Subprogram (New_Op));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user