From 81cbfb926794cf407e93918605decf372a004dfd Mon Sep 17 00:00:00 2001 From: Chris Wong <lambda.fairy@gmail.com> Date: Wed, 7 Jan 2015 17:54:43 +1300 Subject: [PATCH] Use shiny new slicing syntax --- maud_macros/src/lib.rs | 4 ++-- maud_macros/src/parse.rs | 4 ++-- maud_macros/src/render.rs | 11 ++++++----- maud_macros/tests/tests.rs | 16 ++++++++-------- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/maud_macros/src/lib.rs b/maud_macros/src/lib.rs index 0aa8a8f..8cc4962 100644 --- a/maud_macros/src/lib.rs +++ b/maud_macros/src/lib.rs @@ -1,5 +1,5 @@ #![crate_type = "dylib"] -#![feature(globs, plugin_registrar, quote, macro_rules)] +#![feature(globs, plugin_registrar, quote, macro_rules, slicing_syntax)] extern crate syntax; extern crate rustc; @@ -16,7 +16,7 @@ mod render; fn expand_html<'cx>(cx: &'cx mut ExtCtxt, sp: Span, args: &[TokenTree]) -> Box<MacResult + 'cx> { match parse::parse(cx, args) { Some(markups) => { - let expr = render::render(cx, &*markups); + let expr = render::render(cx, markups[]); MacExpr::new(expr) }, None => DummyResult::any(sp), diff --git a/maud_macros/src/parse.rs b/maud_macros/src/parse.rs index 6cf16cd..6ff0dab 100644 --- a/maud_macros/src/parse.rs +++ b/maud_macros/src/parse.rs @@ -206,7 +206,7 @@ impl<'cx, 's, 'i> Parser<'cx, 's, 'i> { match self.input { [TtDelimited(_, ref d), ..] if d.delim == token::DelimToken::Brace => { self.shift(1); - Parser { cx: self.cx, input: &*d.tts }.markups() + Parser { cx: self.cx, input: d.tts[] }.markups() .map(Markup::Block) }, _ => None, @@ -228,7 +228,7 @@ fn lit_to_string(cx: &mut ExtCtxt, lit: Lit, minus: bool) -> Option<String> { return None; }, LitChar(c) => result.push(c), - LitInt(x, _) => result.push_str(&*x.to_string()), + LitInt(x, _) => result.push_str(x.to_string()[]), LitFloat(s, _) | LitFloatUnsuffixed(s) => result.push_str(s.get()), LitBool(b) => result.push_str(if b { "true" } else { "false" }), }; diff --git a/maud_macros/src/render.rs b/maud_macros/src/render.rs index 7d4fceb..ed6db94 100644 --- a/maud_macros/src/render.rs +++ b/maud_macros/src/render.rs @@ -27,7 +27,7 @@ fn render_markup(cx: &mut ExtCtxt, markup: &Markup, w: Ident, out: &mut Vec<P<St for markup in markups.iter() { render_markup(cx, markup, w, out); } - } + }, Value(ref value) => { let expr = render_value(cx, value, w, false); out.push(quote_stmt!(cx, $expr)); @@ -41,14 +41,15 @@ fn render_value(cx: &mut ExtCtxt, value: &Value, w: Ident, is_attr: bool) -> P<E let &Value { ref value, escape } = value; match *value { Literal(ref s) => { - let s = &*match escape { - NoEscape => (&**s).into_cow(), + let s = match escape { + NoEscape => s[].into_cow(), Escape => if is_attr { - escape::attribute(&**s).into_cow() + escape::attribute(s[]).into_cow() } else { - escape::non_attribute(&**s).into_cow() + escape::non_attribute(s[]).into_cow() }, }; + let s = s[]; quote_expr!(cx, { try!($w.write_str($s)) }) diff --git a/maud_macros/tests/tests.rs b/maud_macros/tests/tests.rs index cd8b576..3b94a28 100644 --- a/maud_macros/tests/tests.rs +++ b/maud_macros/tests/tests.rs @@ -7,14 +7,14 @@ extern crate maud; fn it_works() { let template = html!("du\tcks" -23 3.14 '\n' "geese"); let s = maud::render(template); - assert_eq!(&*s, "du\tcks-233.14\ngeese"); + assert_eq!(s, "du\tcks-233.14\ngeese"); } #[test] fn escaping() { let template = html!("<flim&flam>"); let s = maud::render(template); - assert_eq!(&*s, "<flim&flam>"); + assert_eq!(s, "<flim&flam>"); } #[test] @@ -27,7 +27,7 @@ fn blocks() { } " swans" }); - assert_eq!(&*s, "hello ducks geese swans"); + assert_eq!(s, "hello ducks geese swans"); } mod splice { @@ -36,13 +36,13 @@ mod splice { #[test] fn literal() { let s = maud::render(html! { $"<pinkie>" }); - assert_eq!(&*s, "<pinkie>"); + assert_eq!(s, "<pinkie>"); } #[test] fn raw_literal() { let s = maud::render(html! { $$"<pinkie>" }); - assert_eq!(&*s, "<pinkie>"); + assert_eq!(s, "<pinkie>"); } #[test] @@ -56,7 +56,7 @@ mod splice { result } }); - assert_eq!(&*s, "3628800"); + assert_eq!(s, "3628800"); } static BEST_PONY: &'static str = "Pinkie Pie"; @@ -64,7 +64,7 @@ mod splice { #[test] fn statics() { let s = maud::render(html! { $BEST_PONY }); - assert_eq!(&*s, "Pinkie Pie"); + assert_eq!(s, "Pinkie Pie"); } // FIXME: See <https://github.com/rust-lang/rust/issues/15962> @@ -74,7 +74,7 @@ mod splice { fn closure() { let best_pony = "Pinkie Pie"; let s = maud::render(html! { $best_pony }); - assert_eq!(&*s, "Pinkie Pie"); + assert_eq!(s, "Pinkie Pie"); } */ }