On Tuesday, 16 May 2017 at 19:25:25 UTC, Steven Schveighoffer wrote:
On 5/16/17 2:48 PM, Eugene Wissner wrote:
On Tuesday, 16 May 2017 at 18:34:06 UTC, Steven Schveighoffer wrote:

1) Consistency with functions without contracts.

This only applies to the "naked" version which has ugly }{ in it. The other options people are asking about are replacing body with a keyword, which I think you agree would be bad for consistency?

Yeah, I think function or something else is a worse alternative. Better leave body as is than replace it with another word. I can name my variables body_ if I need.

2) I wouldn't like to have body optional because: it introduces an additional style guide rule: there will be people who will omit it and
people who will say: explicitely is better, always use body.

Currently, body is required. It would still be required. Just not a keyword. I'm specifically asking if just removing the 'keyword-ness' of it is not doable for some reason.

Note: body is optional for non-contract functions (yes, void foo() body { } is valid). I don't see a rash of people promoting having body there.

I wasn't aware of it. Mea culpa.

3) Syntax highlighting: Editors that work with regex will mark body in
all contexts as a keyword.

This is a solved problem. Create a C# file, then write 'get' or 'set' somewhere that's not inside a property, and see if it's highlighted differently.

4) I know body isn't reserved anywhere, I can use it without thinking abot the contexts (good for new comers who may think body is a reserved
keyword if it is used as such in some contexts).

I think maybe you misunderstand what I was asking.

-Steve

What I meant If I read a documentation on dlang.org that some identifier is reserved for some purpose I automatically think it can't be used as variable name. I don't want to check the list of reserved keywords every time I doubt. The same I never named my variables linux or Windows because they are used in version blocks. I have never tested if I can name my variable linux or Windows. Don't know if it makes sense.

Reply via email to