diff --git a/src/libstd/fmt/parse.rs b/src/libstd/fmt/parse.rs index fd0e86d7a31..9888af9313b 100644 --- a/src/libstd/fmt/parse.rs +++ b/src/libstd/fmt/parse.rs @@ -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 } diff --git a/src/test/run-pass/ifmt.rs b/src/test/run-pass/ifmt.rs index 08d5ac5c1fb..351bad193da 100644 --- a/src/test/run-pass/ifmt.rs +++ b/src/test/run-pass/ifmt.rs @@ -87,6 +87,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");