From cf0cf095c22649f6d1c2b7c66041cf5f4a4e9335 Mon Sep 17 00:00:00 2001 From: Chris Wong <lambda.fairy@gmail.com> Date: Sat, 26 Sep 2015 13:56:52 +1200 Subject: [PATCH] Revert "Add `#call_box` instruction" This reverts commit 0311bab45ba045106c4bcd96844a0f7afaab29d7. --- maud_macros/src/parse.rs | 5 ---- maud_macros/src/render.rs | 10 -------- maud_macros/tests/tests.rs | 47 +++++++++++++++----------------------- 3 files changed, 18 insertions(+), 44 deletions(-) diff --git a/maud_macros/src/parse.rs b/maud_macros/src/parse.rs index e575f60..68f6003 100644 --- a/maud_macros/src/parse.rs +++ b/maud_macros/src/parse.rs @@ -158,11 +158,6 @@ impl<'cx, 'i> Parser<'cx, 'i> { let func = try!(self.splice(sp)); self.render.emit_call(func); }, - [pound!(), ident!(sp, name), ..] if name.name == "call_box" => { - self.shift(2); - let func = try!(self.splice(sp)); - self.render.emit_call_box(func); - }, // Splice [ref tt @ dollar!(), dollar!(), ..] => { self.shift(2); diff --git a/maud_macros/src/render.rs b/maud_macros/src/render.rs index fb2d20b..35e31e5 100644 --- a/maud_macros/src/render.rs +++ b/maud_macros/src/render.rs @@ -198,16 +198,6 @@ impl<'cx> Renderer<'cx> { let stmt = self.wrap_try(expr); self.push(stmt); } - - pub fn emit_call_box(&mut self, func: P<Expr>) { - let w = self.writer; - let expr = quote_expr!(self.cx, - ::std::boxed::FnBox::call_box( - $func, - (&mut *$w as &mut ::std::fmt::Write,))); - let stmt = self.wrap_try(expr); - self.push(stmt); - } } fn html_escape(s: &str) -> String { diff --git a/maud_macros/tests/tests.rs b/maud_macros/tests/tests.rs index 673f026..cbbb8d6 100644 --- a/maud_macros/tests/tests.rs +++ b/maud_macros/tests/tests.rs @@ -1,8 +1,10 @@ -#![feature(fnbox, plugin)] +#![feature(plugin)] #![plugin(maud_macros)] extern crate maud; +use std::fmt; + #[test] fn literals() { let mut s = String::new(); @@ -272,35 +274,22 @@ mod issue_10 { } } -mod subtemplates { - use std::fmt; - +#[test] +fn call() { fn ducks(w: &mut fmt::Write) -> fmt::Result { write!(w, "Ducks") } - - #[test] - fn call() { - let mut s = String::new(); - let swans = |yes| - if yes { - |w: &mut fmt::Write| write!(w, "Swans") - } else { - panic!("oh noes") - }; - html!(s, { - #call ducks - #call (|w: &mut fmt::Write| write!(w, "Geese")) - #call swans(true) - }).unwrap(); - assert_eq!(s, "DucksGeeseSwans"); - } - - #[test] - fn call_box() { - let mut s = String::new(); - let ducks = Box::new(ducks); - html!(s, #call_box ducks).unwrap(); - assert_eq!(s, "Ducks"); - } + let mut s = String::new(); + let swans = |yes| + if yes { + |w: &mut fmt::Write| write!(w, "Swans") + } else { + panic!("oh noes") + }; + html!(s, { + #call ducks + #call (|w: &mut fmt::Write| write!(w, "Geese")) + #call swans(true) + }).unwrap(); + assert_eq!(s, "DucksGeeseSwans"); }