Re-introduce option for macro_arg to prevent calling macros with empty inputs

This commit is contained in:
Lukas Wirth 2023-04-16 20:17:58 +02:00
parent a2a3fecae3
commit 4ea5d7f6a0
7 changed files with 56 additions and 28 deletions

View file

@ -258,7 +258,13 @@ impl HirFileId {
let macro_def = db.macro_def(loc.def).ok()?;
let (parse, exp_map) = db.parse_macro_expansion(macro_file).value;
let macro_arg = db.macro_arg(macro_file.macro_call_id);
let macro_arg = db.macro_arg(macro_file.macro_call_id).unwrap_or_else(|| {
Arc::new((
tt::Subtree { delimiter: tt::Delimiter::UNSPECIFIED, token_trees: Vec::new() },
Default::default(),
Default::default(),
))
});
let def = loc.def.ast_id().left().and_then(|id| {
let def_tt = match id.to_node(db) {