Parse underscores in identifiers for format!

Closes #9119
This commit is contained in:
Alex Crichton 2013-09-12 00:50:19 -07:00
parent 03ca1befb3
commit a018a5c343
2 changed files with 3 additions and 2 deletions

View File

@ -554,7 +554,7 @@ impl<'self> Parser<'self> {
/// characters.
fn word(&mut self) -> &'self str {
let start = match self.cur.clone().next() {
Some((pos, c)) if char::is_alphabetic(c) => {
Some((pos, c)) if char::is_XID_start(c) => {
self.cur.next();
pos
}
@ -563,7 +563,7 @@ impl<'self> Parser<'self> {
let mut end;
loop {
match self.cur.clone().next() {
Some((_, c)) if char::is_alphanumeric(c) => {
Some((_, c)) if char::is_XID_continue(c) => {
self.cur.next();
}
Some((pos, _)) => { end = pos; break }

View File

@ -82,6 +82,7 @@ pub fn main() {
t!(format!("{foo} {1} {bar} {0}", 0, 1, foo=2, bar=3), "2 1 3 0");
t!(format!("{} {0:s}", "a"), "a a");
t!(format!("{} {0}", "a"), "a a");
t!(format!("{foo_bar}", foo_bar=1), "1");
// Methods should probably work
t!(format!("{0, plural, =1{a#} =2{b#} zero{c#} other{d#}}", 0u), "c0");