+1 on this. Josh Wisenbaker’s example says enough. Yikes!

> On Jun 23, 2016, at 3:18 PM, David Sweeris via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> +1
> I didn't even know there were any invisible characters until this thread came 
> up.
> 
> - Dave Sweeris
> 
> On Jun 23, 2016, at 15:13, Xiaodi Wu via swift-evolution 
> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
> 
>> On Thu, Jun 23, 2016 at 2:54 PM, João Pinheiro <j...@joaopinheiro.org 
>> <mailto:j...@joaopinheiro.org>> wrote:
>> 
>> > On 23 Jun 2016, at 20:43, Xiaodi Wu <xiaodi...@gmail.com 
>> > <mailto:xiaodi...@gmail.com>> wrote:
>> > That's cool, although my preferred solution would be more closely aligned 
>> > with UAX #31: overtly disallow the glyphs in Table 4 (instead of ignoring 
>> > them) except in the specific scenarios for ZWJ and ZWNJ identified in UAX 
>> > #31, then afterwards internally represent the identifier as its 
>> > NFC-normalized string.
>> 
>> Explicitly disallowing them was my initial idea, but I think it would end up 
>> being a confusing error for users to encounter. Ignoring the invisible 
>> characters and leaving it up to a linter to remove them is less likely to 
>> cause confusion for users.
>> 
>> I'll be sure to describe the alternative of explicitly prohibiting them in 
>> the proposal though.
>> 
>> I would strongly urge you to propose explicitly prohibiting them just as UAX 
>> #31 recommends. Their reasoning is that these characters, which include 
>> those that reverse text direction or control joining, can cause one 
>> identifier to be maliciously changed to look like another. If you ignore 
>> these characters instead of prohibiting them, an identifier that visually 
>> appears as one string could in fact be a different one to the compiler.
>> 
>> Moreover, a compiler error can be made helpful by saying that the offending 
>> character is potentially invisible and it can come with a fix-it to remove 
>> the offending character. I don't think that would confuse the user at all. 
>> It would be more confusing if invisible characters that caused one thing to 
>> look identical to another were silently permitted.
>> 
>> 
>> Sincerely,
>> João Pinheiro
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to