From: Shark8 <onewingedshark@gmail.com>
Subject: Re: Visibility of Indexing aspects
Date: Sat, 14 Jul 2018 10:04:48 -0700 (PDT)
Date: 2018-07-14T10:04:48-07:00 [thread overview]
Message-ID: <c33b46b9-f08e-4e33-ace3-4cb83a13197b@googlegroups.com> (raw)
In-Reply-To: <40d568da-4715-42de-8e28-98da39a5c974@googlegroups.com>
On Saturday, July 14, 2018 at 8:18:38 AM UTC-6, Jere wrote:
> I was going through an Ada library and noticed that they
> were able to add an indexing aspect to a type in the private
> section of a package but have the indexing work for types
> declared using the public view of the type. It's a neat feature,
> but I wasn't sure if this was intentional or a GNAT bug?
> I searched through sections 13.1 and 4.1.6 of the RM, but no
> mention that I could find of the private/public requirements
> for the Variable_Indexing and Constant_Indexing aspects.
>
> Is there something I missed in the RM, is this a GNAT bug, or
> something else?
I'm not sure what your problem is; it's perfectly fine to attach the predicate in the Private section:
Package Tmp_2 is
Type K(<>) is private;
Private
Function Valid( Input : String ) Return Boolean;
Type K is new String
with Dynamic_Predicate => Valid( String(K) );
Function Valid( Input : String ) Return Boolean is
(for all CH of Input => CH /= ' ');
End Tmp_2;
In fact, the subprograms refereed to in the predicate don't need to be visible at the point of declaration:
Package Tmp is
Type K(<>) is private
with Dynamic_Predicate => Valid( String(K) );
Private
Function Valid( Input : String ) Return Boolean;
Type K is new String;
Function Valid( Input : String ) Return Boolean is
(for all CH of Input => CH /= ' ');
End Tmp;
next prev parent reply other threads:[~2018-07-14 17:04 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-14 14:18 Visibility of Indexing aspects Jere
2018-07-14 17:04 ` Shark8 [this message]
2018-07-14 18:29 ` Jere
2018-07-14 18:41 ` Dmitry A. Kazakov
2018-07-14 23:00 ` Shark8
2018-07-14 23:28 ` Jere
2018-07-15 14:41 ` AdaMagica
2018-07-15 15:33 ` Jere
2018-07-16 3:22 ` AdaMagica
2018-07-17 0:35 ` Jere
2018-07-17 9:46 ` AdaMagica
2018-07-17 10:11 ` AdaMagica
2018-07-20 12:08 ` Jere
2018-07-20 16:11 ` AdaMagica
2018-07-20 22:03 ` Dan'l Miller
2018-07-20 22:07 ` Jere
2018-07-21 10:33 ` AdaMagica
2018-07-24 3:32 ` Randy Brukardt
2018-07-24 17:15 ` Dan'l Miller
2018-07-25 5:37 ` Randy Brukardt
2018-07-25 18:26 ` Dan'l Miller
2018-07-25 19:58 ` AdaMagica
2018-07-25 20:57 ` Dan'l Miller
2018-07-26 0:12 ` Randy Brukardt
2018-07-26 2:41 ` Dan'l Miller
2018-07-26 19:09 ` Randy Brukardt
2018-07-26 20:31 ` Shark8
2018-07-26 21:25 ` Dan'l Miller
2018-07-27 22:05 ` Randy Brukardt
2018-07-28 0:35 ` Dan'l Miller
2018-07-27 21:58 ` Randy Brukardt
2018-07-20 22:23 ` Jere
2018-07-20 22:25 ` Jere
2018-07-21 5:58 ` J-P. Rosen
-- strict thread matches above, loose matches on Subject: below --
2018-08-02 20:31 Randy Brukardt
2018-08-03 0:43 ` Dan'l Miller
2018-08-03 20:56 ` Randy Brukardt
2018-08-03 21:32 ` Dan'l Miller
2018-08-06 21:46 ` Randy Brukardt
2018-08-06 22:12 ` Dmitry A. Kazakov
2018-08-07 15:13 ` Dan'l Miller
2018-08-07 22:41 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox