diff options
| author | bors <bors@rust-lang.org> | 2014-05-02 07:06:50 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-05-02 07:06:50 -0700 |
| commit | b5d6b07370b665df6b54fa20e971e61041a233b0 (patch) | |
| tree | 4a43dbe1601f640ebb8bade6d67898c74bdea0e6 /src/libsyntax/ext | |
| parent | e97d4e6c190764de1240c2e8a5ac253a60faac6b (diff) | |
| parent | 1ad0cba5e6a837fdebf5f5543d4b169929972705 (diff) | |
| download | rust-b5d6b07370b665df6b54fa20e971e61041a233b0.tar.gz rust-b5d6b07370b665df6b54fa20e971e61041a233b0.zip | |
auto merge of #13879 : huonw/rust/more-re, r=alexcrichton
Commits for details. This shouldn't change the generated code at all (except for switching to `LitBinary` from an explicit ExprVec of individual ExprLit bytes for `prefix_bytes`).
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/bytes.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/ext/concat.rs | 3 | ||||
| -rw-r--r-- | src/libsyntax/ext/format.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ext/quote.rs | 23 |
4 files changed, 26 insertions, 6 deletions
diff --git a/src/libsyntax/ext/bytes.rs b/src/libsyntax/ext/bytes.rs index f4680b27084..c6349d616ec 100644 --- a/src/libsyntax/ext/bytes.rs +++ b/src/libsyntax/ext/bytes.rs @@ -16,8 +16,6 @@ use ext::base::*; use ext::base; use ext::build::AstBuilder; -use std::char; - pub fn expand_syntax_ext(cx: &mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) -> ~base::MacResult { // Gather all argument expressions let exprs = match get_exprs_from_tts(cx, sp, tts) { @@ -59,7 +57,7 @@ pub fn expand_syntax_ext(cx: &mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) -> // char literal, push to vector expression ast::LitChar(v) => { - if char::from_u32(v).unwrap().is_ascii() { + if v.is_ascii() { bytes.push(cx.expr_u8(expr.span, v as u8)); } else { cx.span_err(expr.span, "non-ascii char literal in bytes!") diff --git a/src/libsyntax/ext/concat.rs b/src/libsyntax/ext/concat.rs index 123271c5b5e..fe7fa636e7d 100644 --- a/src/libsyntax/ext/concat.rs +++ b/src/libsyntax/ext/concat.rs @@ -14,7 +14,6 @@ use ext::base; use ext::build::AstBuilder; use parse::token; -use std::char; use std::strbuf::StrBuf; pub fn expand_syntax_ext(cx: &mut base::ExtCtxt, @@ -35,7 +34,7 @@ pub fn expand_syntax_ext(cx: &mut base::ExtCtxt, accumulator.push_str(s.get()); } ast::LitChar(c) => { - accumulator.push_char(char::from_u32(c).unwrap()); + accumulator.push_char(c); } ast::LitInt(i, _) | ast::LitIntUnsuffixed(i) => { accumulator.push_str(format!("{}", i)); diff --git a/src/libsyntax/ext/format.rs b/src/libsyntax/ext/format.rs index 84021f6362b..df79b105444 100644 --- a/src/libsyntax/ext/format.rs +++ b/src/libsyntax/ext/format.rs @@ -561,7 +561,7 @@ impl<'a, 'b> Context<'a, 'b> { // Translate the format let fill = match arg.format.fill { Some(c) => c, None => ' ' }; - let fill = self.ecx.expr_lit(sp, ast::LitChar(fill as u32)); + let fill = self.ecx.expr_lit(sp, ast::LitChar(fill)); let align = match arg.format.align { parse::AlignLeft => { self.ecx.path_global(sp, self.parsepath("AlignLeft")) diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs index 68b0ef40b16..fc7f7722354 100644 --- a/src/libsyntax/ext/quote.rs +++ b/src/libsyntax/ext/quote.rs @@ -125,6 +125,26 @@ pub mod rt { } } + impl ToSource for () { + fn to_source(&self) -> ~str { + "()".to_owned() + } + } + + impl ToSource for bool { + fn to_source(&self) -> ~str { + let lit = dummy_spanned(ast::LitBool(*self)); + pprust::lit_to_str(&lit) + } + } + + impl ToSource for char { + fn to_source(&self) -> ~str { + let lit = dummy_spanned(ast::LitChar(*self)); + pprust::lit_to_str(&lit) + } + } + impl ToSource for int { fn to_source(&self) -> ~str { let lit = dummy_spanned(ast::LitInt(*self as i64, ast::TyI)); @@ -227,6 +247,9 @@ pub mod rt { impl_to_tokens!(@ast::Expr) impl_to_tokens!(ast::Block) impl_to_tokens_self!(&'a str) + impl_to_tokens!(()) + impl_to_tokens!(char) + impl_to_tokens!(bool) impl_to_tokens!(int) impl_to_tokens!(i8) impl_to_tokens!(i16) |
