From: Adam Beneschan <adam@irvine.com>
Subject: Re: Ada2012 : Expression functions and extended return statements
Date: Fri, 6 Jan 2012 08:38:49 -0800 (PST)
Date: 2012-01-06T08:38:49-08:00 [thread overview]
Message-ID: <02c279d0-7603-4670-af1a-cbf5894231ea@f1g2000yqi.googlegroups.com> (raw)
In-Reply-To: 9d181c23-2d64-4947-a6f7-64e0dcda357b@f11g2000yql.googlegroups.com
On Jan 6, 8:33 am, Adam Beneschan <a...@irvine.com> wrote:
> On Jan 6, 12:45 am, Martin <mar...@thedowies.com> wrote:
>
>
>
>
>
> > Also, on the topic of extended return statements...
>
> > What's the rational for having to explicitly repeat the return type?
> > Seems rather redundant to my eyes. I wouldn't have minded:
>
> > function Bar return Some_Type is
> > begin
> > return Result : <> do
> > -- something to initialise 'Result'
> > end return;
> > end Bar;
>
> > or even
>
> > function Bar return Some_Type is
> > begin
> > return Result do
> > -- something to initialise 'Result'
> > end return;
> > end Bar;
>
> > In this case, 'Result' can't be anything other than of type
> > 'Some_Type' can it?
>
> Yes, it can. If Some_Type is a class-wide type, Result's type must be
> a specific type. If Some_Type is, say, an unconstrained array type,
> Result's type must be a constrained subtype.
Oops, I goofed. Result's type doesn't *have* to be a specific,
constrained subtype, if there is an initial value (which could be a
function call, say); the specific type and subtype are then determined
from the value. If there is no initial value, however, then Result's
type does have to be constrained.
-- Adam
next prev parent reply other threads:[~2012-01-06 16:40 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-06 8:45 Ada2012 : Expression functions and extended return statements Martin
2012-01-06 9:45 ` stefan-lucks
2012-01-06 10:02 ` Martin
2012-01-06 11:23 ` Peter C. Chapin
2012-01-06 11:37 ` Martin
2012-01-06 13:13 ` Dmitry A. Kazakov
2012-01-06 14:45 ` Martin Dowie
2012-01-06 15:07 ` Martin
2012-01-06 16:40 ` Robert A Duff
2012-01-06 17:04 ` Martin Dowie
2012-01-19 7:47 ` David Thompson
2012-01-06 17:20 ` Dmitry A. Kazakov
2012-01-07 1:47 ` Randy Brukardt
2012-01-07 9:21 ` Dmitry A. Kazakov
2012-01-06 16:45 ` Adam Beneschan
2012-01-06 16:36 ` Adam Beneschan
2012-01-07 14:54 ` stefan-lucks
2012-01-07 15:11 ` Dmitry A. Kazakov
2012-01-08 9:41 ` stefan-lucks
2012-01-09 6:16 ` Randy Brukardt
2012-01-06 15:11 ` J-P. Rosen
2012-01-06 15:26 ` Martin
2012-01-07 1:50 ` Randy Brukardt
2012-01-07 10:12 ` Martin
2012-01-07 12:22 ` Simon Wright
2012-01-07 17:10 ` Martin
2012-01-09 6:21 ` Randy Brukardt
2012-01-09 7:57 ` Martin Dowie
2012-01-31 23:34 ` Yannick Duchêne (Hibou57)
2012-01-06 16:33 ` Adam Beneschan
2012-01-06 16:38 ` Adam Beneschan [this message]
2012-01-06 22:12 ` Robert A Duff
2012-01-31 23:20 ` Yannick Duchêne (Hibou57)
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox