Improving Compiler Error Messages

Michel Fortin michel.fortin at michelf.com
Mon May 3 13:06:25 PDT 2010


On 2010-05-03 15:33:53 -0400, Michel Fortin <michel.fortin at michelf.com> said:

> On 2010-05-03 05:53:34 -0400, Jacob Carlborg <doob at me.com> said:
> 
>> foo((int i) { writeln(i); });
> 
> I agree that the semicolon looks out of place for one-line function bodies.
> 
> The semicolon could be made optional for the last statement in a block. 
> Just have it be a statement separator instead of a terminator. That'd 
> be consistent with commas in enums, array literals, and function 
> arguments.
> 
> foo((int i) { writeln(i) });

It could even be taken a little further: make the last statement the 
implicit return value of a function:

	{ a < b } same as { return a < b; }

Adding back the semicolon would bring back the current behaviour (it's 
just like adding an empty statement):

	{ a < b; } same as { a < b; return; }

It'd be nice for functional style predicates.

-- 
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/



More information about the Digitalmars-d mailing list