From e76dddd61078e1636ad8dc2ed02d53d37ae987e1 Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Wed, 4 Mar 2020 20:37:16 +0800 Subject: Add more log --- crates/ra_hir_expand/src/db.rs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'crates/ra_hir_expand') diff --git a/crates/ra_hir_expand/src/db.rs b/crates/ra_hir_expand/src/db.rs index 32e0d5ced..d29985d0b 100644 --- a/crates/ra_hir_expand/src/db.rs +++ b/crates/ra_hir_expand/src/db.rs @@ -181,6 +181,15 @@ pub(crate) fn parse_macro( err, node.value ); + + 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); -- cgit v1.2.3 From 028595548bea83508c9626835ac84409c83778ed Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Wed, 4 Mar 2020 22:29:55 +0800 Subject: Fix #3436 --- crates/ra_hir_expand/src/db.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'crates/ra_hir_expand') diff --git a/crates/ra_hir_expand/src/db.rs b/crates/ra_hir_expand/src/db.rs index d29985d0b..73137f33b 100644 --- a/crates/ra_hir_expand/src/db.rs +++ b/crates/ra_hir_expand/src/db.rs @@ -181,13 +181,9 @@ pub(crate) fn parse_macro( err, node.value ); - - let mut parent = loc.kind.file_id().call_node(db); + let mut parent = loc.kind.file_id().call_node(db); while let Some(node) = parent.clone() { - log::warn!( - "parent: macro_call: {:#})", - node.value - ); + log::warn!("parent: macro_call: {:#})", node.value); parent = node.file_id.call_node(db); } } -- cgit v1.2.3 From c7b0c72dd7d288f066e916f3e217e51c26e3aa47 Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Thu, 5 Mar 2020 00:12:39 +0800 Subject: Fix whitespace in tests --- crates/ra_hir_expand/src/builtin_derive.rs | 2 +- crates/ra_hir_expand/src/builtin_macro.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'crates/ra_hir_expand') diff --git a/crates/ra_hir_expand/src/builtin_derive.rs b/crates/ra_hir_expand/src/builtin_derive.rs index 87224481c..a5b50a832 100644 --- a/crates/ra_hir_expand/src/builtin_derive.rs +++ b/crates/ra_hir_expand/src/builtin_derive.rs @@ -266,7 +266,7 @@ mod tests { BuiltinDeriveExpander::Copy, ); - assert_eq!(expanded, "impl <>std::marker::CopyforFoo <>{}"); + assert_eq!(expanded, "impl< >std::marker::CopyforFoo< >{}"); } #[test] diff --git a/crates/ra_hir_expand/src/builtin_macro.rs b/crates/ra_hir_expand/src/builtin_macro.rs index 1f380b571..b2c8a911f 100644 --- a/crates/ra_hir_expand/src/builtin_macro.rs +++ b/crates/ra_hir_expand/src/builtin_macro.rs @@ -367,7 +367,7 @@ mod tests { "#, ); - assert_eq!(expanded, "std::option::Option::None:: <&str>"); + assert_eq!(expanded, "std::option::Option::None:: < &str>"); } #[test] @@ -414,7 +414,7 @@ mod tests { assert_eq!( expanded, - r#"std::fmt::Arguments::new_v1(&[] ,&[std::fmt::ArgumentV1::new(&(arg1(a,b,c)),std::fmt::Display::fmt),std::fmt::ArgumentV1::new(&(arg2),std::fmt::Display::fmt),])"# + r#"std::fmt::Arguments::new_v1(&[], &[std::fmt::ArgumentV1::new(&(arg1(a,b,c)),std::fmt::Display::fmt),std::fmt::ArgumentV1::new(&(arg2),std::fmt::Display::fmt),])"# ); } } -- cgit v1.2.3 From 0c79e1d304d2498abfceefec4d5907b187596c6a Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Thu, 5 Mar 2020 03:02:51 +0800 Subject: Add comment for parents logging --- crates/ra_hir_expand/src/db.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'crates/ra_hir_expand') diff --git a/crates/ra_hir_expand/src/db.rs b/crates/ra_hir_expand/src/db.rs index 73137f33b..f3a84cacc 100644 --- a/crates/ra_hir_expand/src/db.rs +++ b/crates/ra_hir_expand/src/db.rs @@ -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::>() + .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); -- cgit v1.2.3