block_def_map: add a few macro tests

This commit is contained in:
Jonas Schievink 2021-01-28 18:53:35 +01:00
parent 00b9b2d645
commit 7177045a67

View File

@ -121,3 +121,66 @@ struct Struct {}
"#]],
);
}
#[test]
fn legacy_macro_items() {
// Checks that legacy-scoped `macro_rules!` from parent namespaces are resolved and expanded
// correctly.
check_at(
r#"
macro_rules! hit {
() => {
struct Hit {}
}
}
fn f() {
hit!();
$0
}
"#,
expect![[r#"
block scope
Hit: t
crate
f: v
"#]],
);
}
#[test]
fn macro_resolve() {
check_at(
r#"
//- /lib.rs crate:lib deps:core
use core::mark;
fn f() {
fn nested() {
mark::hit!(Hit);
$0
}
}
//- /core.rs crate:core
pub mod mark {
#[macro_export]
macro_rules! _hit {
($name:ident) => {
struct $name {}
}
}
pub use crate::_hit as hit;
}
"#,
expect![[r#"
block scope
Hit: t
block scope
nested: v
crate
f: v
mark: t
"#]],
);
}