non_ascii_idents
The tracking issue for this feature is: #55467
The non_ascii_idents
feature adds support for non-ASCII identifiers.
Examples
# #![allow(unused_variables)] #![feature(non_ascii_idents)] #fn main() { const ε: f64 = 0.00001f64; const Π: f64 = 3.14f64; #}
Changes to the language reference
Lexer:
IDENTIFIER :
XID_start XID_continue\*
|_
XID_continue+
An identifier is any nonempty Unicode string of the following form:
Either
- The first character has property
XID_start
- The remaining characters have property
XID_continue
Or
- The first character is
_
- The identifier is more than one character,
_
alone is not an identifier - The remaining characters have property
XID_continue
that does not occur in the set of strict keywords.
Note:
XID_start
andXID_continue
as character properties cover the character ranges used to form the more familiar C and Java language-family identifiers.