comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Ada 95 and Class attribute for none-tagged incomplete type
Date: Fri, 14 Aug 2009 15:01:15 -0400
Date: 2009-08-14T15:01:15-04:00	[thread overview]
Message-ID: <wcc3a7uusn8.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: h62oqn$iq2$1@munin.nbi.dk

"Randy Brukardt" <randy@rrsoftware.com> writes:

>...All this special rule eliminates is the need to declare 
> an incomplete type in this one unusual case (the private type in cases like 
> this is best declared as tagged, so this shouldn't happen very often). Seems 
> like a pile of work for an implementation and for the language just to 
> eliminate one line in a private part.

The problem is that declaring that incomplete type is illegal.
Eliminating the need for one _illegal_ line isn't such a bad thing.  ;-)

package P is
   type Priv is private;
private
   type Priv is tagged; -- Illegal!
   type Acc is access all Priv'Class;
   type Priv is tagged
      record
         Next : Acc;
      end record;
end P;

We could have made it legal, I suppose.  But having three views of a
type might make more trouble for the compiler than the existing
rules.

On the third hand, compilers have to deal with:

package P is
   type Priv is private;
private
   task type Priv is ...;
end P;

package body P is
   task body Priv is separate;
end P;

separate (P)
task body Priv is ...;

where there are four things called Priv, which are all really the same
thing.

- Bob




  reply	other threads:[~2009-08-14 19:01 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-02  6:55 Ada 95 and Class attribute for none-tagged incomplete type Hibou57 (Yannick Duchêne)
2009-08-03 15:26 ` Adam Beneschan
2009-08-03 18:45   ` Dmitry A. Kazakov
2009-08-13  1:50   ` Randy Brukardt
2009-08-13  8:18     ` Niklas Holsti
2009-08-13 13:16       ` Robert A Duff
2009-08-14  4:21         ` Randy Brukardt
2009-08-14 19:01           ` Robert A Duff [this message]
2009-08-14 23:41             ` Randy Brukardt
2009-08-15 14:33               ` Robert A Duff
2009-08-14  4:17       ` Randy Brukardt
replies disabled

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