comp.lang.ada
 help / color / mirror / Atom feed
From: Vincent Marciante <vincent.marciante@l3harris.com>
Subject: Re: [Ada95] Private non-generic children of generics not allowed
Date: Thu, 29 Apr 2021 03:20:06 -0700 (PDT)	[thread overview]
Message-ID: <e05ca45e-a201-43e7-8397-0b3f7089b2d0n@googlegroups.com> (raw)
In-Reply-To: <7e2ece3d-893c-43fb-bf81-6002dbd0bc3dn@googlegroups.com>

On Thursday, April 29, 2021 at 4:57:21 AM UTC-4, AdaMagica wrote:
> Vincent Marciante schrieb am Montag, 26. April 2021 um 17:43:36 UTC+2: 
> > Why can't 
> > _private_ children of a generic _always_ for use only in the implementation of the parent unit be allowed?
> The reason is quite simple. If the generic parent is instantiated more than once, a nongeneric child (private or public) would be used by all of them. This does not make sense.

I am asking about a _new_ rule that would make private non-generic child units of generics be like 
ones declared in the body of a generic but with their body stubbed and presented in a separate
(_not_ being shared by instances - _not_ being usable/visible in the spec of the generic).

That would allow only the separate bodies of subprograms of the generic that need to use 
the private (nongeneric) child of the generic to bring it into context by with'ng it.  That would 
allow easier restriction of visibility - better information hiding.

(My specific need is in trying to keep down code duplication in a few different implementations 
of a generic package: separate body parts/files for each different implementation appear in different 
subdirectories and the build system picks the correct ones depending on the variant being built.
Without what we are talking about, I think that I am going to have to declare the would-be private 
child in the currently shared generic body, possibly rearrange the code ordering in that body so 
that only the - already separate - units that actually need it see it and provide a "null'd out" separate 
implementation for the system variants that do not at all need the functionality of the would-be 
child unit.  That "jumping through hoops" is somewhat distasteful to me and I think _might_ be made 
avoidable in the future with a language rule change - _unless_ I am not appreciating some problem 
which I expect that a language lawyer would be able to ?easily? point out.)

  reply	other threads:[~2021-04-29 10:20 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-26 15:43 [Ada95] Private non-generic children of generics not allowed Vincent Marciante
2021-04-26 16:41 ` AdaMagica
2021-04-26 16:53   ` Vincent Marciante
2021-04-26 17:16     ` AdaMagica
2021-04-28 12:09       ` Vincent Marciante
2021-04-28 17:57         ` AdaMagica
2021-04-29  8:57 ` AdaMagica
2021-04-29 10:20   ` Vincent Marciante [this message]
2021-04-29 11:02     ` Egil H H
2021-04-29 17:17       ` Vincent Marciante
2021-04-29 17:43         ` AdaMagica
2021-04-29 19:29           ` Vincent Marciante
2021-04-30 12:56             ` AdaMagica
2022-04-28  0:07               ` Thomas
2022-05-19 19:59                 ` Indra Anita
replies disabled

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