DIP 1009--Improve Contract Usability--Preliminary Review Round 1
Steven Schveighoffer via Digitalmars-d
digitalmars-d at puremagic.com
Fri Jun 23 11:42:55 PDT 2017
On 6/23/17 2:24 PM, Moritz Maxeiner wrote:
> On Friday, 23 June 2017 at 17:31:15 UTC, MysticZach wrote:
>> [...]
>>
>> Yeah, my take is that the grammar for `assert`s applies to the new
>> syntax as well. If the grammar for asserts is this:
>>
>> AssertExpression:
>> assert ( AssertParameters )
>>
>> ... then the grammar for the new syntax is:
>>
>> InExpression:
>> in ( AssertParameters )
>>
>> OutExpression:
>> out ( ; AssertParameters )
>> out ( Identifier ; AssertParameters )
>
> I'm all for this syntax, just one spec/implementation question:
> If the new contract syntax (formally) shares grammar rules with assert,
> won't that cause more work for people who want to update the assert
> syntax later (since they will have to take contracts into account)?
No. Asserts are the meat of in/out contracts, these are actually
asserts. Anything you do to the assert grammar should be done here as well.
-Steve
More information about the Digitalmars-d
mailing list