[swift-dev] Breaking change in lexing operators next to comments
Simon Pilkington
simonmpilkington at icloud.com
Mon Dec 14 23:51:59 CST 2015
It seems to make more sense to treat comments as this if they are not present.
As a related question, should the presence/absence of whitespace be important at all? It seems fragile if it is.
-Simon
> On 14 Dec 2015, at 9:42 PM, Chris Lattner via swift-dev <swift-dev at swift.org> wrote:
>
>>
>> On Dec 14, 2015, at 8:15 PM, Jesse Rusak via swift-dev <swift-dev at swift.org <mailto:swift-dev at swift.org>> wrote:
>>
>> Hi all,
>>
>> I’m investigating this bug: https://bugs.swift.org/browse/SR-186 <https://bugs.swift.org/browse/SR-186>
>>
>> Which appears to be a result of the fact that the logic that determines if an operator is prefix/postfix/binary does not treat comments as whitespace. So, for example:
>>
>> /* comment */!foo
>>
>> does not lex as expected because the “!" thinks it has an something on both sides and so is treated as a binary operator.
>>
>> Fixing this (by treating comments as whitespace here) will break existing code which relies on the current behavior, such as:
>>
>> foo/* comment */!
>>
>> which currently treats the “!” as a postfix operator but will change to binary. I expect these cases would be rare (maybe in some generated code?), but the results might be pretty confusing.
>>
>> Any objections to fixing this or other thoughts?
>
> There are two defensible models here:
>
> 1) comments should be treated as whitespace.
> 2) comments should be treated as if they were not present.
>
> The later model seems more ideal to me (because you can put whitespace on either side of the comment after all), but I don’t have a strong opinion about that. What do others think?
>
> -Chris
>
> _______________________________________________
> swift-dev mailing list
> swift-dev at swift.org <mailto:swift-dev at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-dev <https://lists.swift.org/mailman/listinfo/swift-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20151214/c688ceb9/attachment.html>
More information about the swift-dev
mailing list