From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: How many Ada compiler bugs are here?
Date: Fri, 13 Jan 2012 11:00:34 +0100
Date: 2012-01-13T11:00:34+01:00 [thread overview]
Message-ID: <15d37z3l8zllg$.3z2pj9cy5kvq.dlg@40tude.net> (raw)
In-Reply-To: 6d352870-d204-4137-a562-5a0b67db1f80@h13g2000vbn.googlegroups.com
On Fri, 13 Jan 2012 01:35:58 -0800 (PST), AdaMagica wrote:
> On 13 Jan., 10:07, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
> wrote:
>> On Fri, 13 Jan 2012 00:47:35 -0800 (PST), AdaMagica wrote:
>>> On 13 Jan., 09:23, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
>>> wrote:
>>>> On Thu, 12 Jan 2012 17:26:34 -0800 (PST), Adam Beneschan wrote:
>>>>> But then again, with extended returns, you don't need to cook up a
>>>>> value. �The code:
>>
>>>>> � � � � �-- �needed to please the compiler:
>>>>> � � � � �return (Ada.Finalization.Limited_Controlled
>>>>> � � � � � � � � � �with others => <>);
>>
>>>>> could be written more simply as
>>
>>>>> � � � � �return Dummy : T;
>>
>>>> Not when T requires initialization, i.e. publicly has boxed discriminants.
>>> Of course this is legal since it's in the scope of the full view (it's
>>> a definite type in the full view, an indefinite only in the partial
>>> view).
>>
>> Only if you have that full view in the function body.
>>
> What do you want to say? Isn't that exactly what I said?
package P is
type T (<>) is private;
private
type T is new Integer;
end P;
with P; use P;
package Q is
function Foo return T;
end Q;
package body Q is
function Foo return T is
begin
raise Constraint_Error;
return Dummy : T; -- No, that won't work!
end Foo;
end Q;
The requirement to have a meaningless return might turn to be a serious
trouble. The example above might look constructed, but things like this
happen relatively frequently in large projects. And when they do, it forces
interfaces and package hierarchies reworked. Nasty thing.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2012-01-13 10:00 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-12 23:20 How many Ada compiler bugs are here? Maciej Sobczak
2012-01-13 0:21 ` Randy Brukardt
2012-01-13 1:26 ` Adam Beneschan
2012-01-13 8:23 ` Dmitry A. Kazakov
2012-01-13 8:47 ` AdaMagica
2012-01-13 9:07 ` Dmitry A. Kazakov
2012-01-13 9:35 ` AdaMagica
2012-01-13 10:00 ` Dmitry A. Kazakov [this message]
2012-01-13 10:38 ` georg bauhaus
2012-01-13 11:39 ` Dmitry A. Kazakov
2012-01-13 12:43 ` Georg Bauhaus
2012-01-13 13:06 ` AdaMagica
2012-01-13 13:16 ` AdaMagica
2012-01-13 13:22 ` Georg Bauhaus
2012-01-13 13:29 ` Dmitry A. Kazakov
2012-01-13 10:52 ` AdaMagica
2012-01-13 11:35 ` Dmitry A. Kazakov
2012-01-13 12:58 ` AdaMagica
2012-01-13 13:43 ` Dmitry A. Kazakov
2012-01-13 15:06 ` Robert A Duff
2012-01-13 15:46 ` Dmitry A. Kazakov
2012-01-13 17:42 ` georg bauhaus
2012-01-13 18:52 ` Dmitry A. Kazakov
2012-01-14 0:26 ` Randy Brukardt
2012-01-14 9:49 ` Dmitry A. Kazakov
2012-01-19 1:35 ` Randy Brukardt
2012-01-19 10:33 ` Dmitry A. Kazakov
2012-01-14 2:41 ` Robert A Duff
2012-01-13 17:23 ` Adam Beneschan
2012-01-14 2:41 ` Robert A Duff
2012-01-13 17:15 ` Adam Beneschan
2012-01-13 20:06 ` Blady
2012-01-13 23:30 ` Adam Beneschan
2012-01-14 13:29 ` Brian Drummond
2012-01-19 1:47 ` Randy Brukardt
2012-01-19 4:24 ` Adam Beneschan
2012-01-20 0:04 ` Randy Brukardt
2012-01-14 10:20 ` Maciej Sobczak
2012-01-14 14:03 ` Brian Drummond
2012-01-16 16:35 ` Adam Beneschan
2012-01-20 10:43 ` Brian Drummond
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox