DIP 1009--Improve Contract Usability--Preliminary Review Round 1
Timon Gehr via Digitalmars-d
digitalmars-d at puremagic.com
Thu Jun 22 15:28:14 PDT 2017
On 23.06.2017 00:12, MysticZach wrote:
> 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,
It's not an identifier.
> but is reserved as a keyword in all other contexts. Not sure what to call it.
It's an overloaded keyword.
> But we're a little off topic, as we both agree that the above solution
> to the double parens isn't viable, right?
I think it is viable in principle, but verbose and not really in line
with the existing out contract syntax.
More information about the Digitalmars-d
mailing list