comp.lang.ada
 help / color / mirror / Atom feed
From: stt@houdini.camb.inmet.com (Tucker Taft)
Subject: Re: Abstract realizations can't be inherited??
Date: 1998/08/29
Date: 1998-08-29T00:00:00+00:00	[thread overview]
Message-ID: <EyGJID.858.0.-s@inmet.camb.inmet.com> (raw)
In-Reply-To: 6s6gku$gk6$1@nnrp1.dejanews.com

dennison@telepath.com wrote:

: ...
: I had to move on, so that code isn't around in that form any more. However, I
: rigged up a dummy example, and I think I see my problem. ...My problem with
: the code anyway :-).

: package Thingamabob is
:    type Instance is abstract tagged null record;

:    procedure Foo (On : in out Instance) is abstract;

: end Thingamabob;

: package Thingamabob.Big is
:    type Instance is new Thingamabob.Instance with private;

: private
:    procedure Foo (On : in out Instance);

:    type Instance is new Thingamabob.Instance with null record;
: end Thingamabob.Big;

: with Thingamabob.Big;
: package Big_And_Hairy_Thingamabob is
:    type Instance is new Thingamabob.Big.Instance with private;

: private

:    type Instance is new Thingamabob.Big.Instance with null record;
: end Big_And_Hairy_Thingamabob;

: This gives me the error. But if I move the declartion of Thingamabob.Big.Foo
: out of the private section, it works ok. So it looks like the real problem is
: that I can't inherit a routine declared in the private section. That seems a
: little more sensible.

: The thing that makes that a little odd is that I can directly call
: Thingamabob.Big.Foo, even though its declared in the private section. So for
: the purposes of calling it isn't really "private", but for the purposes of
: inheritance it is. %-(

This sounds like a compiler bug.  If a type is non-abstract, then by
defintion all of its primitive procedures are non-abstract, even
if an overriding is done in the private part.

Time to file a bug report...

: --
: T.E.D.

--
-Tucker Taft   stt@inmet.com   http://www.inmet.com/~stt/
Intermetrics, Inc.  Burlington, MA  USA




  reply	other threads:[~1998-08-29  0:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-08-27  0:00 Abstract realizations can't be inherited?? dennison
1998-08-27  0:00 ` dewar
1998-08-27  0:00 ` Tucker Taft
1998-08-28  0:00   ` dennison
1998-08-29  0:00     ` Tucker Taft [this message]
1998-08-31  0:00       ` dennison
1998-08-31  0:00         ` Tucker Taft
1998-08-31  0:00           ` dennison
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox