On Mon, Aug 15, 2011 at 1:57 PM, Andrei Alexandrescu < seewebsiteforem...@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: ...- --- .. -..;