diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2013-06-28 14:04:13 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2013-06-30 09:19:02 -0700 |
| commit | 8fe6fc11de4d6bfbffd8b961f5f1f24a338601d5 (patch) | |
| tree | dad32e62eb08d71c621bfb573c57f89c2aae6814 /src/libsyntax | |
| parent | 2b3569a1b39097481877cf8fee538c78099c5acd (diff) | |
| download | rust-8fe6fc11de4d6bfbffd8b961f5f1f24a338601d5.tar.gz rust-8fe6fc11de4d6bfbffd8b961f5f1f24a338601d5.zip | |
Change char::escape_{default,unicode} to take callbacks instead of allocating
strings
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/parse/token.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 94147825da4..a50fa416832 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -16,7 +16,6 @@ use util::interner::StrInterner; use util::interner; use std::cast; -use std::char; use std::cmp::Equiv; use std::local_data; use std::rand; @@ -166,7 +165,12 @@ pub fn to_str(in: @ident_interner, t: &Token) -> ~str { /* Literals */ LIT_INT(c, ast::ty_char) => { - ~"'" + char::escape_default(c as char) + "'" + let mut res = ~"'"; + do (c as char).escape_default |c| { + res.push_char(c); + } + res.push_char('\''); + res } LIT_INT(i, t) => { i.to_str() + ast_util::int_ty_to_str(t) diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 978561eaa67..5e685d85f95 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -27,7 +27,6 @@ use print::pp::{breaks, consistent, inconsistent, eof}; use print::pp; use print::pprust; -use std::char; use std::io; use std::u64; use std::uint; @@ -2016,7 +2015,12 @@ pub fn print_literal(s: @ps, lit: @ast::lit) { match lit.node { ast::lit_str(st) => print_string(s, st), ast::lit_int(ch, ast::ty_char) => { - word(s.s, ~"'" + char::escape_default(ch as char) + "'"); + let mut res = ~"'"; + do (ch as char).escape_default |c| { + res.push_char(c); + } + res.push_char('\''); + word(s.s, res); } ast::lit_int(i, t) => { if i < 0_i64 { |
