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@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to