about summary refs log tree commit diff
path: root/src/doc
diff options
context:
space:
mode:
authorDanilo Bargen <mail@dbrgn.ch>2017-09-30 11:50:32 +0200
committerDanilo Bargen <mail@dbrgn.ch>2017-09-30 15:27:42 +0200
commiteb59952fbdb217101834325fa7e08074b735a3e0 (patch)
tree4beabbcf8bd01fcf8743dd6ba9f0f2b1c5b74907 /src/doc
parentb7041bfab3a83702a8026fb7a18d8ea7d54cc648 (diff)
downloadrust-eb59952fbdb217101834325fa7e08074b735a3e0.tar.gz
rust-eb59952fbdb217101834325fa7e08074b735a3e0.zip
Docs: Add trace_macros! to unstable book
Diffstat (limited to 'src/doc')
-rw-r--r--src/doc/unstable-book/src/language-features/trace-macros.md39
1 files changed, 39 insertions, 0 deletions
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
+```