comp.lang.ada
 help / color / mirror / Atom feed
From: Erik Masella <emasella@mtl.marconi.ca>
Subject: Re: Visibility of package within package
Date: 1996/08/02
Date: 1996-08-02T00:00:00+00:00	[thread overview]
Message-ID: <4ttghf$5rt@gateway.marconi.ca> (raw)


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.





             reply	other threads:[~1996-08-02  0:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-08-02  0:00 Erik Masella [this message]
  -- strict thread matches above, loose matches on Subject: below --
1996-07-31  0:00 Visibility of package within package Erik Masella
1996-08-01  0:00 ` Tucker Taft
1996-08-01  0:00   ` Chad Bremmon
1996-08-01  0:00     ` Robert A Duff
1996-08-02  0:00     ` Tucker Taft
replies disabled

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