Possible enhancement: Concise return statements

Andrew Wiley wiley.andrew.j at gmail.com
Mon Aug 15 14:15:58 PDT 2011


On Mon, Aug 15, 2011 at 1:57 PM, Andrei Alexandrescu <
SeeWebsiteForEmail at erdani.org> wrote:

> On 8/15/11 2:19 PM, Jacob Carlborg wrote:
>
>> On 2011-08-15 21:00, Walter Bright wrote:
>>
>>> On 8/15/2011 3:54 AM, Timon Gehr wrote:
>>>
>>>> 'When the last ExpressionStatement in a function body is missing the
>>>> ';', it is
>>>> implicitly returned.'
>>>>
>>>
>>> This has been proposed several times before, it was also proposed for
>>> C++0x. The difficulty is it makes having a ; or not substantially alter
>>> the semantics. The history of these languages is that the presence or
>>> absence of ; can be hard to spot, as in:
>>>
>>> for (int i = 0; i < 10; i++);
>>> ... do this ...
>>>
>>> which has cost at least one expert developer I know an entire afternoon
>>> staring at it convinced there was a compiler bug because his loop
>>> executed only once.
>>>
>>> (And this is why D disallows this syntax.)
>>>
>>
>> Can't we always automatically return the last expression, even if it
>> ends with a semicolon?
>>
>
> Then two semicolons mean return void :o).


If you want void, you have to use this as your last expression:
...- --- .. -..;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20110815/8b3edf8a/attachment.html>


More information about the Digitalmars-d mailing list