DIP 1009--Improve Contract Usability--Preliminary Review Round 1

MysticZach via Digitalmars-d digitalmars-d at puremagic.com
Thu Jun 22 15:12:57 PDT 2017


On Thursday, 22 June 2017 at 21:56:29 UTC, Timon Gehr wrote:
> On 22.06.2017 23:51, MysticZach wrote:
>> On Thursday, 22 June 2017 at 21:41:55 UTC, MysticZach wrote:
>>>> The whole double parentheses is a bit ugly to me. Is there 
>>>> any problem with
>>>> out(return > 0)
>>>> instead of
>>>> out(r) (r > 0)
>> 
>> I'm sorry, I didn't read closely. I think that's just asking 
>> for trouble, wanting to use `return` as an identifier. Timon 
>> found a specific reason why, but in general contextual 
>> keywords are frowned upon for precisely this type of ambiguity 
>> in the meaning of the code.
>
>
> (It's not a contextual keyword. A contextual keyword is an 
> identifier that is reserved in some contexts but not others.)

I would argue that the above suggestion promotes `return` 
precisely that way. It's now an identifier in precisely that one 
context, but is reserved as a keyword in all other contexts. Not 
sure what to call it. But we're a little off topic, as we both 
agree that the above solution to the double parens isn't viable, 
right?


More information about the Digitalmars-d mailing list