From eb59952fbdb217101834325fa7e08074b735a3e0 Mon Sep 17 00:00:00 2001 From: Danilo Bargen Date: Sat, 30 Sep 2017 11:50:32 +0200 Subject: [PATCH] Docs: Add trace_macros! to unstable book --- .../src/language-features/trace-macros.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/doc/unstable-book/src/language-features/trace-macros.md diff --git a/src/doc/unstable-book/src/language-features/trace-macros.md b/src/doc/unstable-book/src/language-features/trace-macros.md new file mode 100644 index 00000000000..41aa286e69b --- /dev/null +++ b/src/doc/unstable-book/src/language-features/trace-macros.md @@ -0,0 +1,39 @@ +# `trace_macros` + +The tracking issue for this feature is [#29598]. + +[#29598]: https://github.com/rust-lang/rust/issues/29598 + +------------------------ + +With `trace_macros` you can trace the expansion of macros in your code. + +## Examples + +```rust +#![feature(trace_macros)] + +fn main() { + trace_macros!(true); + println!("Hello, Rust!"); + trace_macros!(false); +} +``` + +The `cargo build` output: + +```txt +note: trace_macro + --> src/main.rs:5:5 + | +5 | println!("Hello, Rust!"); + | ^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: expanding `println! { "Hello, Rust!" }` + = note: to `print ! ( concat ! ( "Hello, Rust!" , "\n" ) )` + = note: expanding `print! { concat ! ( "Hello, Rust!" , "\n" ) }` + = note: to `$crate :: io :: _print ( format_args ! ( concat ! ( "Hello, Rust!" , "\n" ) ) + )` + + Finished dev [unoptimized + debuginfo] target(s) in 0.60 secs +```