From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,7b4ed0d42717e891,start X-Google-Attributes: gid103376,public From: gauthier@alphainfo.unilim.fr (Michel Gauthier) Subject: [Technical] Generic child parameterised with instance of parent Date: 1998/11/25 Message-ID: #1/1 X-Deja-AN: 415612691 Organization: Universite de Limoges Newsgroups: comp.lang.ada Date: 1998-11-25T00:00:00+00:00 List-Id: Here is the need as I can identify it (possibly not in a right way). There is a generic unit : generic type ITEM is private ; package G1 is ... What I have to do is generic with package GP is new G1 ( <> ) ; package G1 . Child is ... (the child depends logically on two instances of G1). I know that something like generic with package GZ is new G1 ( <> ) ; with package GP is new G1 ( <> ) ; package NotChild is ... would work, but I need access the private part of GZ. Since G1 in with... would denote the current instance, I added generic package G1bis renames G1 ; and adapted generic with package GP is new G1bis ( <> ) ; package G1 . Child is ... There are also instances of G1 : package P1Some is new G1 ( some_type ) ; package P1Other is new G1 ( other_type ) ; Then can be compiled. But the compiler rejects package InstChild is new P1Some . Child ( P1Other ) ; Now, the questions : 1 - is it intrinsicly illegal or is my compiler too ancient ? 2 - how can I work around the problem ? 3 - is there a known alternate design ? ---------- ---------- ---------- ---------- Michel Gauthier / Laboratoire d'informatique 123 avenue Albert Thomas / F-87060 Limoges telephone +33 5 55 43 69 73 fax +33 5 55 43 69 77 ---------- ---------- ---------- ---------- Hein, quoi, quelle annee dix-neuf cent nonante dix ? What exactly about year nineteen ninety ten ? ---------- ---------- ---------- ----------