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,3bb18a1e628df747 X-Google-Attributes: gid103376,public From: stt@henning.camb.inmet.com (Tucker Taft) Subject: Re: Visibility of package within package Date: 1996/08/02 Message-ID: #1/1 X-Deja-AN: 171555046 sender: news@inmet.camb.inmet.com (USENET news) x-nntp-posting-host: henning.camb.inmet.com references: <32009A4C.147C@comm.hq.af.mil> organization: Intermetrics, Inc. newsgroups: comp.lang.ada Date: 1996-08-02T00:00:00+00:00 List-Id: Erik Masella (emasella@mtl.marconi.ca) wrote: > Could anybody explain to me why the following will not work: > > with Generic_Pkg; > package A_Pkg is > package B_Pkg is new Generic_Pkg(...); > .. > end A_Pkg; > > -------------------------------- > > with A_Pkg; > package body C_Pkg is > procedure Init is > begin > A_Pkg.B_Pkg.Do_Something(...); > end Init; > end C_Pkg; > > ==> Why isn't B_Pkg visible within C_Pkg? From what I understand, > "Software Engineering with Ada" from Booch (2nd ed.) says at p.383 that > this is possible (but he did not use generics). > > I'd greatly appreciate some insight into this. Tucker Taft wrote: > Your code looks OK, but it is hard to be sure without a complete > example, since we don't know what is inside "Generic_Pkg". When > you have mysteries like this, it is most useful to include an > actual listing with error messages from the compiler. Surprisingly > often, there is some other problem than the one you first suspect. > > In any case, it is possible that the compiler has a bug, but your > example is so simple and straightforward that it seems more likely > that something else is wrong. Chad Bremmon (chad.bremmon@comm.hq.af.mil) wrote: > Don't you still have to with in "With A_Pkg.BPkg;" inside of your C_Pkg ? No. B_Pkg is not a separate library unit. You only need to mention library units in "with" clauses. B_Pkg is physically nested inside A_Pkg, so it is a mystery why the above doesn't compile. Again, a complete example, with compiler messages, is the only way to figure it out. > Chad : > : Erik Masella : > : emasella@mtl.marconi.ca -Tucker Taft stt@inmet.com http://www.inmet.com/~stt/ Intermetrics, Inc. Cambridge, MA USA