blob: 62a92d5d15eb96cbc9873f24094ef89e4fcc9e4f [file] [log] [blame]
// 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);
}