mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-01 19:23:50 +00:00
block_def_map: add a few macro tests
This commit is contained in:
parent
00b9b2d645
commit
7177045a67
@ -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
|
||||
"#]],
|
||||
);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user