Add comment for parents logging

This commit is contained in:
Edwin Cheng 2020-03-05 03:02:51 +08:00
parent c7b0c72dd7
commit 0c79e1d304

View file

@ -176,16 +176,21 @@ pub(crate) fn parse_macro(
MacroCallId::LazyMacro(id) => {
let loc: MacroCallLoc = db.lookup_intern_macro(id);
let node = loc.kind.node(db);
// collect parent information for warning log
let parents = std::iter::successors(loc.kind.file_id().call_node(db), |it| {
it.file_id.call_node(db)
})
.map(|n| format!("{:#}", n.value))
.collect::<Vec<_>>()
.join("\n");
log::warn!(
"fail on macro_parse: (reason: {} macro_call: {:#})",
"fail on macro_parse: (reason: {} macro_call: {:#}) parents: {}",
err,
node.value
node.value,
parents
);
let mut parent = loc.kind.file_id().call_node(db);
while let Some(node) = parent.clone() {
log::warn!("parent: macro_call: {:#})", node.value);
parent = node.file_id.call_node(db);
}
}
_ => {
log::warn!("fail on macro_parse: (reason: {})", err);