Possible enhancement: Concise return statements

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Aug 15 13:57:51 PDT 2011


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).

Andrei


More information about the Digitalmars-d mailing list