From d4eb4d2c47c905b3634410a7fdfea84fe1e8cee0 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Wed, 8 May 2019 14:08:09 +0200 Subject: write generated code to disk for easier inspection now that the generated code is actually readable let's make it easier to access this commit also documents how to inspect the generated code via `rtfm-expansion.rs` and `cargo-expand` --- macros/src/lib.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'macros') diff --git a/macros/src/lib.rs b/macros/src/lib.rs index 441d6b5..736289c 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -4,6 +4,8 @@ extern crate proc_macro; use proc_macro::TokenStream; +use std::{fs, path::Path}; + use syn::parse_macro_input; mod analyze; @@ -304,5 +306,12 @@ pub fn app(args: TokenStream, input: TokenStream) -> TokenStream { let analysis = analyze::app(&app); // Code generation - codegen::app(&input.ident, &app, &analysis).into() + let ts = codegen::app(&input.ident, &app, &analysis); + + // Try to write the expanded code to disk + if Path::new("target").exists() { + fs::write("target/rtfm-expansion.rs", ts.to_string()).ok(); + } + + ts.into() } -- cgit v1.2.3