comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Discriminant & interface not implemented by full type
Date: Wed, 11 Mar 2009 18:44:40 -0700 (PDT)
Date: 2009-03-11T18:44:40-07:00	[thread overview]
Message-ID: <87ad6227-8c24-4788-9bb2-e2a5a2ee9048@z8g2000prd.googlegroups.com> (raw)
In-Reply-To: gp3j74$hch$1@news.motzarella.org

On Mar 9, 10:21 am, Reto Buerki <r...@codelabs.ch> wrote:
> Hi everyone,
>
> I have the following simple test application:
>
> package Full_View is
>
>    type Base_Type (Num : Integer) is tagged private;
>
>    type Base_Interface is interface;
>
>    type New_Type is new Base_Type (Num => 11) and
>      Base_Interface with private;
>
> private
>    type Base_Type (Num : Integer) is tagged record
>       My_Number : Integer := Num;
>    end record;
>
>    type New_Type is new Base_Type (Num => 11) and
>      Base_Interface with null record;
>
> end Full_View;
>
> Trying to compile this with gnat gcc 4.3 in Debian/Lenny results in the
> following error:
> full_view.ads:7:09: interface "Base_Interface" not implemented by full
> type (RM-2005 7.3 (7.3/2))
>
> When removing the (Num => 11) discrimant initialization or the
> Base_Interface interface from the New_Type type extension, the code
> compiles fine.
>
> Is this a compiler bug? Seems to me that the consistency check of the
> partial and full view of a tagged type covering interfaces does not like
> discriminants.
>
> Thanks for your help.

Sure looks like a compiler bug to me.  The program definitely doesn't
violate the RM section paragraph that the error message refers to.

                             -- Adam





  reply	other threads:[~2009-03-12  1:44 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-09 17:21 Discriminant & interface not implemented by full type Reto Buerki
2009-03-12  1:44 ` Adam Beneschan [this message]
2009-03-12  6:21 ` Per Sandberg
2009-03-12 13:07   ` Reto Buerki
replies disabled

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