Version 1.1 of acs/ac-00195.txt
!standard 3.4.1(2/2) 10-02-22 AC95-00195/01
!class confirmation 10-02-22
!status received no action 10-02-22
!status received 10-02-18
!subject Interface types can be derived
!summary
!appendix
!topic Interface types can be derived types
!reference 3.9.4
!from Adam Beneschan 10-02-18
!discussion
More of a wording nitpick than anything, but: In the declaration
type I2 is interface and I1;
I don't see anything in the RM that explicitly says that I2 is derived from I1.
As far as I can tell, the notion of a "derived type" or a "type being derived
from" another type is defined only in 3.4 which says a derived type is created
by a derived_type_definition, which this isn't. This could matter in a case
like
type I1 is interface;
generic
type Formal_Type is abstract new I1 with private;
package Gen_Pack is ...
type I2 is interface and I1;
package Gen_Inst is new Gen_Pack (I2);
The rules require I2 to be a descendant of I1, and the definition of
"descendant" is in terms of "derived from"; so for this to be legal (which I
think it is), the RM needs to say somewhere that I2 is derived from, or
descended from, I1.
3.9.4(13-15) make it clear that it's intended that interface types can be
derived. But it probably ought to be stated explicitly somewhere.
****************************************************************
From: Adam Beneschan
Date: Thursday, February 18, 2010 1:10 PM
> I don't see anything in the RM that explicitly says that I2 is derived
> from I1.
Scratch that---I found it in 3.4.1(2), I think. Please ignore my last mail.
****************************************************************
From: Randy Brukardt
Date: Thursday, February 18, 2010 1:34 PM
For the enlightenment of everybody else, an interface type isn't a derived type
(that requires a derived_type_declaration), but any type with progenitors is
technically "derived from" those progenitors. The descendant relationship
requires "derived from", not "derived type". Hope that clears it up. :-)
****************************************************************
Questions? Ask the ACAA Technical Agent