Auto merge of #14286 - Veykril:block-def-tail-mac, r=Veykril
fix: Fix block defmap not looking into tail expressions for macro calls Fixes https://github.com/rust-lang/rust-analyzer/issues/14263
This commit is contained in:
commit
3d904e024b
@ -395,3 +395,25 @@ fn foo() {
|
|||||||
"#]],
|
"#]],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn trailing_expr_macro_expands_stmts() {
|
||||||
|
check_at(
|
||||||
|
r#"
|
||||||
|
macro_rules! foo {
|
||||||
|
() => { const FOO: u32 = 0;const BAR: u32 = 0; };
|
||||||
|
}
|
||||||
|
fn f() {$0
|
||||||
|
foo!{}
|
||||||
|
};
|
||||||
|
"#,
|
||||||
|
expect![[r#"
|
||||||
|
block scope
|
||||||
|
BAR: v
|
||||||
|
FOO: v
|
||||||
|
|
||||||
|
crate
|
||||||
|
f: v
|
||||||
|
"#]],
|
||||||
|
)
|
||||||
|
}
|
||||||
|
@ -90,6 +90,13 @@ impl<'a> Ctx<'a> {
|
|||||||
_ => None,
|
_ => None,
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
if let Some(ast::Expr::MacroExpr(expr)) = block.tail_expr() {
|
||||||
|
if let Some(call) = expr.macro_call() {
|
||||||
|
if let Some(mod_item) = self.lower_mod_item(&call.into()) {
|
||||||
|
self.tree.top_level.push(mod_item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
self.tree
|
self.tree
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user