Give a better error for code corrupted by smart quotes
Motivation
Consider this invalid code:
badString = “hello”
badChar = ‘x’
The errors we give for it are lexical error at character 'h'
and lexical error at character 'x'
. Unless you can see that those are surrounded by smart quotes in your code, and already know that smart quotes are a problem, that error won't be helpful.
Proposal
I propose that we give an error explicitly pointing out the smart quotes and saying they're not real quotes (similar to what Rust does: Unicode characters '“' (Left Double Quotation Mark) and '”' (Right Double Quotation Mark) look like '"' (Quotation Mark), but are not
).