diff --git a/.travis.yml b/.travis.yml index b67e5f7..73a0e4b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,3 @@ language: rust script: - - ( cd maud_macros && cargo test --verbose ) + - ( cd maud_macros && cargo test --features print-expansion --verbose ) diff --git a/maud_macros/Cargo.toml b/maud_macros/Cargo.toml index 6729b4d..99769df 100644 --- a/maud_macros/Cargo.toml +++ b/maud_macros/Cargo.toml @@ -12,6 +12,9 @@ description = """ Compile-time HTML templates. """ +[features] +print-expansion = [] + [dependencies.maud] path = "../maud" version = "=0.3.4" diff --git a/maud_macros/src/lib.rs b/maud_macros/src/lib.rs index beb9243..49ecf90 100644 --- a/maud_macros/src/lib.rs +++ b/maud_macros/src/lib.rs @@ -10,13 +10,18 @@ extern crate maud; use syntax::ast::TokenTree; use syntax::codemap::Span; use syntax::ext::base::{ExtCtxt, MacEager, MacResult}; +use syntax::print::pprust; use rustc::plugin::Registry; mod parse; mod render; fn expand_html<'cx>(cx: &'cx mut ExtCtxt, sp: Span, args: &[TokenTree]) -> Box<MacResult + 'cx> { - MacEager::expr(parse::parse(cx, args, sp)) + let expr = parse::parse(cx, args, sp); + if cfg!(feature = "print-expansion") { + println!("{}", pprust::expr_to_string(&expr)); + } + MacEager::expr(expr) } #[plugin_registrar]