From e5711929e338fa5fc5c628711c0ee10c5317c1d8 Mon Sep 17 00:00:00 2001 From: Chris Wong <lambda.fairy@gmail.com> Date: Sat, 11 Apr 2015 10:19:28 +1200 Subject: [PATCH] print-expansion for all your expansion printing needs --- .travis.yml | 2 +- maud_macros/Cargo.toml | 3 +++ maud_macros/src/lib.rs | 7 ++++++- 3 files changed, 10 insertions(+), 2 deletions(-) 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]