comp.lang.ada
 help / color / mirror / Atom feed
From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: Differences with/without .all
Date: Mon, 17 Mar 2008 21:44:24 +0100
Date: 2008-03-17T21:44:24+01:00	[thread overview]
Message-ID: <871w696pxz.fsf@ludovic-brenta.org> (raw)
In-Reply-To: 647ktoF2acjggU1@mid.individual.net

Alex R. Mosteo writes:
> Hello people,
>
> Gnat is giving me an error depending on if I use the .all
> abbreviation or not.  I had the (unresearched) idea that there
> should be no differences besides the aesthetic one[*], so I'm not
> sure if gnat's wrong or I'm (guess what ;) )
>
> One way or the other, I'd like to know the explanation. The
> particular case that is giving me problems in GPL 2007 is:
>
> protected type Safe;
> type Safe_Access is access all Safe;
> function S return Safe_Access;
>
> S.Some_Procedure;
> --  This fails with
> --  Prefix of protected procedure or entry call must be variable
>
> S.all.Some_Procedure;
> --  This compiles and runs OK.
>
> Your judgment?

The compiler is correct.

6.4(9): "When there is an actual_parameter_part, the prefix can be an
implicit_dereference of an access-to-subprogram value."

In other words, in the absence of actual parameters, you must use an
explicit_dereference, i.e. you must specify ".all".

-- 
Ludovic Brenta.



  parent reply	other threads:[~2008-03-17 20:44 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-17 16:34 Differences with/without .all Alex R. Mosteo
2008-03-17 20:42 ` Randy Brukardt
2008-03-17 20:44 ` Ludovic Brenta [this message]
2008-03-17 21:17   ` Eric Hughes
2008-03-17 21:21   ` Georg Bauhaus
2008-03-17 22:51   ` Adam Beneschan
2008-03-18 15:35     ` Adam Beneschan
replies disabled

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