+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