comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: generic unit : compilation error ! please help me
Date: Fri, 24 Feb 2006 11:51:21 +0100
Date: 2006-02-24T11:51:21+01:00	[thread overview]
Message-ID: <hhcgadm63k6s.kxskbzzn8quc.dlg@40tude.net> (raw)
In-Reply-To: 1140772786.942747.88370@j33g2000cwa.googlegroups.com

On 24 Feb 2006 01:19:47 -0800, nblanpain@hotmail.com wrote:

> ## parent.ads ## :
> generic
>    type T_Real is digits <>;
> package Parent is
>    type T_Parent is tagged private;
>    type T_Parent_Access is access all T_Parent;
> private
>    type T_Parent is tagged record
>       Real : T_Real;
>    end record;
> end Parent;
> 
> ## child.ads ##
> with Parent;
> generic
>    type T_Real is digits <>;
>    with package Par is new Parent (T_Real);
> package Child is
>    type T_Child is new Par.T_Parent with private;
>    type T_Child_Access is access all T_Child;
> private
>    type T_Child is new Par.T_Parent with record
>       Real2 : T_Real;
>    end record;
> end Child;
> 
> ## parent-test_unit.ads ##
> generic
> package Parent.Test_Unit is
>    subtype T_Unit_To_Test is Parent.T_Parent;
>    subtype T_Unit_To_Test_Access is Parent.T_Parent_Access;
>    type T_Unit_To_Test_Class_Access is access all T_Unit_To_Test'Class;
>    type T_Test_Unit is tagged private;
>    type T_Test_Unit_Access is access all T_Test_Unit;
>    procedure Set_Unit_To_Test
>      (This : in out T_Test_Unit;
>       Utt  : in T_Unit_To_Test_Class_Access);
> private
>    type T_Test_Unit is tagged record
>       Unit_To_Test : T_Unit_To_Test_Class_Access;
>    end record;
> end Parent.Test_Unit;
> 
> ## parent-test_unit.adb ##
> package body Parent.Test_Unit is
>    procedure Set_Unit_To_Test
>      (This : in out T_Test_Unit;
>       Utt  : in T_Unit_To_Test_Class_Access) is
>    begin
>       This.Unit_To_Test := Utt;
>    end Set_Unit_To_Test;
> end Parent.Test_Unit;
> 
> ## child-test_unit.ads ##
> with Parent.Test_Unit;
> generic
>    with package Parent_Test_Unit is new Parent.Test_Unit;

with package Parent_Test_Unit is new Par.Test_Unit;

Parent of Child and Parent of Parent.Test_Unit should be the same beast.

> package Child.Test_Unit is
>    subtype T_Unit_To_Test is Child.T_Child;
>    subtype T_Unit_To_Test_Access is Child.T_Child_Access;
>    type T_Unit_To_Test_Class_Access is access all T_Unit_To_Test'Class;
>    type T_Test_Unit is new Parent_Test_Unit.T_Test_Unit with private;
>    type T_Test_Unit_Access is access all T_Test_Unit;
>    procedure Set_Unit_To_Test
>      (This : in out T_Test_Unit;
>       Utt  : in T_Unit_To_Test_Class_Access);
> private
>    type T_Test_Unit is new Parent_Test_Unit.T_Test_Unit with record
>       Unit_To_Test2 : T_Unit_To_Test_Class_Access;
>    end record;
> end Child.Test_Unit;
> 
> ## child-test_unit.adb ##
> package body Child.Test_Unit is
>    procedure Set_Unit_To_Test
>      (This : in out T_Test_Unit;
>       Utt  : in T_Unit_To_Test_Class_Access) is
>    begin
>       Parent_Test_Unit.Set_Unit_To_Test
>         (Parent_Test_Unit.T_Test_Unit (This),
>          Parent_Test_Unit.T_Unit_To_Test_Class_Access (Utt));    --
> error !!!!!!!
>       This.Unit_To_Test2 := Utt;
>    end Set_Unit_To_Test;
> end Child.Test_Unit;

P.S. Don't use pointers, generics and Hungarian notation.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



      parent reply	other threads:[~2006-02-24 10:51 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1140772786.942747.88370@j33g2000cwa.googlegroups.com>
2006-02-24 10:51 ` generic unit : compilation error ! please help me Stephen Leake
2006-02-24 10:51 ` Dmitry A. Kazakov [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