mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 05:23:24 +00:00
Merge #10159
10159: Add panic info for `impl_trait`/`trait_data` r=jonas-schievink a=jonas-schievink To debug https://github.com/rust-analyzer/rust-analyzer/issues/10084 further bors r+ Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
This commit is contained in:
commit
4235a4a131
2 changed files with 12 additions and 0 deletions
|
@ -154,6 +154,10 @@ impl TraitData {
|
|||
let tr_loc = tr.lookup(db);
|
||||
let item_tree = tr_loc.id.item_tree(db);
|
||||
let tr_def = &item_tree[tr_loc.id.value];
|
||||
let _cx = stdx::panic_context::enter(format!(
|
||||
"trait_data_query({:?} -> {:?} -> {:?})",
|
||||
tr, tr_loc, tr_def
|
||||
));
|
||||
let name = tr_def.name.clone();
|
||||
let is_auto = tr_def.is_auto;
|
||||
let is_unsafe = tr_def.is_unsafe;
|
||||
|
@ -341,6 +345,10 @@ fn collect_items(
|
|||
let ast_id_map = db.ast_id_map(tree_id.file_id());
|
||||
let root = db.parse_or_expand(tree_id.file_id()).unwrap();
|
||||
let call = ast_id_map.get(call.ast_id).to_node(&root);
|
||||
let _cx = stdx::panic_context::enter(format!(
|
||||
"collect_items MacroCall: {}\nexpander={:#?}",
|
||||
call, expander
|
||||
));
|
||||
let res = expander.enter_expand(db, call);
|
||||
|
||||
if let Ok(res) = res {
|
||||
|
|
|
@ -1450,6 +1450,10 @@ pub(crate) fn impl_self_ty_recover(
|
|||
pub(crate) fn impl_trait_query(db: &dyn HirDatabase, impl_id: ImplId) -> Option<Binders<TraitRef>> {
|
||||
let impl_data = db.impl_data(impl_id);
|
||||
let resolver = impl_id.resolver(db.upcast());
|
||||
let _cx = stdx::panic_context::enter(format!(
|
||||
"impl_trait_query({:?} -> {:?}) resolver={:#?}",
|
||||
impl_id, impl_data, resolver
|
||||
));
|
||||
let ctx =
|
||||
TyLoweringContext::new(db, &resolver).with_type_param_mode(TypeParamLoweringMode::Variable);
|
||||
let (self_ty, binders) = db.impl_self_ty(impl_id).into_value_and_skipped_binders();
|
||||
|
|
Loading…
Reference in a new issue