Merge #7482
7482: block_def_map: add a few macro tests r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
This commit is contained in:
commit
fa1b500d2f
1 changed files with 63 additions and 0 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue