From: stt@houdini.camb.inmet.com (Tucker Taft)
Subject: Re: [Technical] Generic child parameterised with instance of parent
Date: 1998/11/29
Date: 1998-11-29T00:00:00+00:00 [thread overview]
Message-ID: <F36vnM.KwF.0.-s@inmet.camb.inmet.com> (raw)
In-Reply-To: 365D6AFE.D3BEE7D1@elca-matrix.ch
Mats Weber (Mats.Weber@elca-matrix.ch) wrote:
: Michel Gauthier wrote:
: > Here is the need as I can identify it (possibly not in a right way).
: > Then can be compiled. But the compiler rejects
: > package InstChild is new P1Some . Child ( P1Other ) ;
: GNAT 3.11b accepts this, and does not need the G1bis declaration, so it
: does not seem to take G1 as denoting the current instance within the
: generic formal part of G1.Child. I don't know if that is right or not.
This sounds like a bug. Everywhere inside the declarative region
of G1, G1 denotes the "current instance."
: Here is the exact code that I compiled:
: with G1.Child;
: procedure Gauthier_Generic_Child is
: type Some_Type is new Integer;
: type Other_Type is new Float;
: package P1_Some is new G1 ( some_type ) ;
: package P1_Other is new G1 ( other_type ) ;
: package InstChild is new P1_Some . Child ( P1_Other ) ;
: begin
: null;
: end;
: ---
: generic
: with package GP is new G1 ( <> ) ;
This is definitely wrong; G1 is not a generic inside G1.
: package G1 . Child is
: end;
: ---
: generic
: type ITEM is private;
: package G1 is
: end G1;
I might add that, inside a child of G1, you don't normally need to
pass in an instance of G1, because an instance of G1 must
be specified as a prefix when instantiating the child, and that instance
can be referenced inside the child by simply using the name "G1."
If you need *two* instances of the parent generic inside the child, then
you probably do need to do the generic renaming trick.
--
-Tucker Taft stt@inmet.com http://www.inmet.com/~stt/
Intermetrics, Inc. Burlington, MA USA
An AverStar Company
prev parent reply other threads:[~1998-11-29 0:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-11-25 0:00 [Technical] Generic child parameterised with instance of parent Michel Gauthier
1998-11-26 0:00 ` Mats Weber
1998-11-29 0:00 ` Tucker Taft [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox