comp.lang.ada
 help / color / mirror / Atom feed
From: ddavenpo@redwood.hac.com (Darren C Davenport)
Subject: Ada95 visibility problem
Date: 1996/02/23
Date: 1996-02-23T00:00:00+00:00	[thread overview]
Message-ID: <4gl9on$8o4@hacgate2.hac.com> (raw)

I don't understand why a generic child package can't see components of a 
package nested in it's generic parent.  This could be a compiler problem
(GNAT 3.01) but I'm not sure.  Here's an example: (and don't
even think about commenting on style)

-------------------------------------------------------------------
generic
package x is
  package z is
    function c return integer;
  end z;
  use z;
end x;

package body x is
  package body z is
    function c return integer is begin return 1; end c;
  end z;
end x;

generic
package x.d is 
  function d return integer;
end x.d;

package body x.d is
  function d return integer is begin return c; end d;
end x.d;

with x;
package k is new x;

with x.d;
package k.l is new k.d;
-------------------------------------------------------------------

When I compile k-l.ads I get the following:

GNAT Compiler Version 3.01 Copyright 1995 Free Software Foundation, Inc.

Compiling: k-l.ads (source file time stamp: 1996-02-23 20:47:21)

==============Error messages for source file: x-d.adb
     3.   function d return integer is begin return c; end d;
                                                    |
        >>> "c" is not visible
        >>> non-visible declaration at x.ads:5

 3 lines: 2 errors 

Now, if package x is not generic all is well.  What's the difference?
An instantiation of a generic package x should be just as good as
a non-generic package x.

Thanks for any insights.

Darren




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

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-02-23  0:00 Darren C Davenport [this message]
     [not found] ` <4gsrn2$9d0@wdl1.wdl.loral.com>
1996-02-26  0:00   ` Ada95 visibility problem Gene Ouye
replies disabled

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