non_ascii_idents
The tracking issue for this feature is: #28979
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.