| // Test crate used to check the `--generate-macro-expansion` option. | |
| //@ compile-flags: -Zunstable-options --generate-macro-expansion --generate-link-to-definition | |
| mod other; | |
| #[macro_export] | |
| macro_rules! bar { | |
| ($x:ident) => {{ | |
| $x += 2; | |
| $x *= 2; | |
| }} | |
| } | |
| macro_rules! bar2 { | |
| () => { | |
| fn foo2() -> impl std::fmt::Display { | |
| String::new() | |
| } | |
| } | |
| } | |
| macro_rules! bar3 { | |
| () => { | |
| fn foo3() {} | |
| fn foo4() -> String { String::new() } | |
| } | |
| } | |
| bar2!(); | |
| bar3!(); | |
| #[derive(Debug, PartialEq)] | |
| pub struct Bar; | |
| #[derive(Debug | |
| )] | |
| pub struct Bar2; | |
| fn y_f(_: &str, _: &str, _: &str) {} | |
| fn foo() { | |
| let mut y = 0; | |
| bar!(y); | |
| println!(" | |
| {y} | |
| "); | |
| // comment | |
| println!(" | |
| {y} | |
| "); | |
| let s = y_f("\ | |
| bla", stringify!(foo), stringify!(bar)); | |
| // Macro from another file. | |
| other_macro!(y); | |
| } |