[swift-evolution] Prohibit invisible characters in identifier names

Sean Heber sean at fifthace.com
Mon Jun 20 13:26:00 CDT 2016


+1

l8r
Sean


> On Jun 20, 2016, at 12:51 PM, João Pinheiro via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Recently there has been a screenshot going around Twitter about C++ allowing zero-width spaces in variable names. Swift also suffers from this problem which can be abused to create ambiguous, misleading, and potentially obfuscate nefarious code.
> 
> I would like to propose a change to prohibit the use of invisible characters in identifier names.
> 
> I'm including an example of problematic code at the bottom of this email.
> 
> Sincerely,
> João Pinheiro
> 
> 
> /* The output for this code is:
> A
> B
> C
> 1
> 2
> 3
> */
> 
> func test() { print("A") }
> func t​est() { print("B") }
> func te​st() { print("C") }
> 
> let abc = 1
> let a​bc = 2
> let ab​c = 3
> 
> test()
> t​est()
> te​st()
> 
> print(abc)
> print(a​bc)
> print(ab​c)
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution



More information about the swift-evolution mailing list