comp.lang.ada
 help / color / mirror / Atom feed
From: Jere <jhb.chat@gmail.com>
Subject: Re: Visibility issue
Date: Thu, 17 Sep 2020 09:10:26 -0700 (PDT)	[thread overview]
Message-ID: <1946b772-2351-420a-97d9-f79444d37017n@googlegroups.com> (raw)
In-Reply-To: <db9dac7c-afe7-41ee-b395-fd1651768444n@googlegroups.com>

On Friday, September 11, 2020 at 6:37:29 AM UTC-4, Daniel wrote:
> Hello, 
> I want to use a tagged type as a link to communicate users of a library, in the way to make one part visible to them and also to hide some content that is only needed for the implementing of the library. 
> 
> Lets say i have the "Library" packages to expose things to users, and Implementing_Library packages to deal with the implementation: 
> 
> package Library.Users is 
> type User_type is tagged with private; 
> procedure foo_public (S: User_Type); 
> private 
> type User_Type is tagged with record 
> hide_content_to_user : Natural; 
> end record; 
> function Access_to_hide_content return User_type; 
> end Library.Users; 
> 
> private with Library.Users; 
> package Internal_Library_Implementing is 
> -- Some internal public developer stuff 
> private 
> --Here I want to get access to User_Type hide content. 
> end Internal_Library_Implementing; 
> 
> I've tried using "private with" but gnat says the next: 
> move subprogram to the visible part (RM 3.9.3(10)) 
> private function with tagged result must override visible-part function 
> 
> Compiler says Im forced to make all private User_type functions public. 
> So, are there more ways to see the hided content of this tagged type without extending the type itself in a child package? I needed to see this content outside of Library package.

One side note and I hope you don't take this comment negatively but instead as a chance
to improve communication:  

I started out trying to take what you provided and figure out a solution and quickly 
realized that I would need to take hours to create an example to even work with
because none of the examples you provided were close to compilable.  I quickly
gave up and moved to higher level discussion.  If you really want more direct answers
consider making a small fully compilable example for people to play with and make
adjustments too.  For things you want but wouldn't compile, place inline comments 
in your code clearly specifying what you want to change or what is missing.  That
gives others a workable template to play with.  They can take your example, 
compile it and then make changes to try and implement some of the requirements
better without having to guess at what you really want.

Again, not saying that to be negative, but wanted to at least give that feedback to
help you get better answers in the future.

  parent reply	other threads:[~2020-09-17 16:10 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-11 10:37 Visibility issue Daniel
2020-09-11 11:51 ` Maxim Reznik
2020-09-11 20:11   ` Daniel
2020-09-11 14:23 ` Jeffrey R. Carter
2020-09-11 20:17   ` Daniel
2020-09-11 22:36     ` Jeffrey R. Carter
2020-09-14 10:47       ` Daniel
2020-09-14 16:10         ` Jeffrey R. Carter
2020-09-15 19:11           ` Daniel
2020-09-15 20:03             ` Jeffrey R. Carter
2020-09-11 21:05 ` Dmitry A. Kazakov
2020-09-14 11:33   ` Daniel
2020-09-14 14:42     ` Dmitry A. Kazakov
2020-09-15 19:35       ` Daniel
2020-09-16  7:14         ` Dmitry A. Kazakov
2020-09-16 10:23           ` Daniel
2020-09-16 10:58             ` Dmitry A. Kazakov
2020-09-16 14:35               ` Daniel
2020-09-16 14:49                 ` Jeffrey R. Carter
2020-09-16 15:05                 ` Dmitry A. Kazakov
2020-09-16 20:09                   ` Daniel
2020-09-16 21:48                     ` Simon Wright
2020-09-17 13:31                       ` Daniel
2020-09-17 15:00                         ` Dmitry A. Kazakov
2020-09-17 15:32                           ` Daniel
2020-09-17 16:47                             ` Dmitry A. Kazakov
2020-09-18  8:05                         ` Simon Wright
2020-09-14 16:18 ` Simon Wright
2020-09-17 15:58 ` Jere
2020-09-17 16:10 ` Jere [this message]
2020-09-18  8:08   ` Simon Wright
2020-09-17 21:47 ` Shark8
replies disabled

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