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: Erik Masella Subject: Re: Visibility of package within package Date: 1996/08/02 Message-ID: <4ttghf$5rt@gateway.marconi.ca>#1/1 X-Deja-AN: 171600600 organization: Canadian Marconi Company newsgroups: comp.lang.ada Date: 1996-08-02T00:00:00+00:00 List-Id: stt@henning.camb.inmet.com (Tucker Taft) writes: > 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 I seemed to have fixed the problem but don't understand how... When I initially tried the above example, I compiled the first file (containing A_Pkg and B_Pkg), then I compiled C_Pkg which caused the aformentioned error. Then I recompiled my whole project library from scratch and now C_Pkg compiled with no errors. I don't get it because C_Pkg depends directly on A_Pkg... Anyways, I guess it is a compiler/maker type of problem, but certainly not an Ada problem. Sorry for the interruption.