separate definitions and HIR
owners
fix a ui test use `into` fix clippy ui test fix a run-make-fulldeps test implement `IntoQueryParam<DefId>` for `OwnerId` use `OwnerId` for more queries change the type of `ParentOwnerIterator::Item` to `(OwnerId, OwnerNode)`
This commit is contained in:
parent
bb5a016175
commit
8fe936099a
114 changed files with 659 additions and 518 deletions
|
@ -345,14 +345,14 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
body: hir::BodyId,
|
||||
) {
|
||||
let map = self.tcx.hir();
|
||||
self.nest_typeck_results(item.def_id, |v| {
|
||||
self.nest_typeck_results(item.def_id.def_id, |v| {
|
||||
let body = map.body(body);
|
||||
if let Some(fn_data) = v.save_ctxt.get_item_data(item) {
|
||||
down_cast_data!(fn_data, DefData, item.span);
|
||||
v.process_formals(body.params, &fn_data.qualname);
|
||||
v.process_generic_params(ty_params, &fn_data.qualname, item.hir_id());
|
||||
|
||||
v.dumper.dump_def(&access_from!(v.save_ctxt, item.def_id), fn_data);
|
||||
v.dumper.dump_def(&access_from!(v.save_ctxt, item.def_id.def_id), fn_data);
|
||||
}
|
||||
|
||||
for arg in decl.inputs {
|
||||
|
@ -373,10 +373,10 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
typ: &'tcx hir::Ty<'tcx>,
|
||||
expr: &'tcx hir::Expr<'tcx>,
|
||||
) {
|
||||
self.nest_typeck_results(item.def_id, |v| {
|
||||
self.nest_typeck_results(item.def_id.def_id, |v| {
|
||||
if let Some(var_data) = v.save_ctxt.get_item_data(item) {
|
||||
down_cast_data!(var_data, DefData, item.span);
|
||||
v.dumper.dump_def(&access_from!(v.save_ctxt, item.def_id), var_data);
|
||||
v.dumper.dump_def(&access_from!(v.save_ctxt, item.def_id.def_id), var_data);
|
||||
}
|
||||
v.visit_ty(&typ);
|
||||
v.visit_expr(expr);
|
||||
|
@ -473,7 +473,7 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
let span = self.span_from_span(item.ident.span);
|
||||
let attrs = self.tcx.hir().attrs(item.hir_id());
|
||||
self.dumper.dump_def(
|
||||
&access_from!(self.save_ctxt, item.def_id),
|
||||
&access_from!(self.save_ctxt, item.def_id.def_id),
|
||||
Def {
|
||||
kind,
|
||||
id: id_from_def_id(item.def_id.to_def_id()),
|
||||
|
@ -491,7 +491,7 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
);
|
||||
}
|
||||
|
||||
self.nest_typeck_results(item.def_id, |v| {
|
||||
self.nest_typeck_results(item.def_id.def_id, |v| {
|
||||
for field in def.fields() {
|
||||
v.process_struct_field_def(field, item.hir_id());
|
||||
v.visit_ty(&field.ty);
|
||||
|
@ -513,7 +513,7 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
};
|
||||
down_cast_data!(enum_data, DefData, item.span);
|
||||
|
||||
let access = access_from!(self.save_ctxt, item.def_id);
|
||||
let access = access_from!(self.save_ctxt, item.def_id.def_id);
|
||||
|
||||
for variant in enum_definition.variants {
|
||||
let name = variant.ident.name.to_string();
|
||||
|
@ -612,7 +612,7 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
}
|
||||
|
||||
let map = self.tcx.hir();
|
||||
self.nest_typeck_results(item.def_id, |v| {
|
||||
self.nest_typeck_results(item.def_id.def_id, |v| {
|
||||
v.visit_ty(&impl_.self_ty);
|
||||
if let Some(trait_ref) = &impl_.of_trait {
|
||||
v.process_path(trait_ref.hir_ref_id, &hir::QPath::Resolved(None, &trait_ref.path));
|
||||
|
@ -648,7 +648,7 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
methods.iter().map(|i| id_from_def_id(i.id.def_id.to_def_id())).collect();
|
||||
let attrs = self.tcx.hir().attrs(item.hir_id());
|
||||
self.dumper.dump_def(
|
||||
&access_from!(self.save_ctxt, item.def_id),
|
||||
&access_from!(self.save_ctxt, item.def_id.def_id),
|
||||
Def {
|
||||
kind: DefKind::Trait,
|
||||
id,
|
||||
|
@ -710,7 +710,7 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
fn process_mod(&mut self, item: &'tcx hir::Item<'tcx>) {
|
||||
if let Some(mod_data) = self.save_ctxt.get_item_data(item) {
|
||||
down_cast_data!(mod_data, DefData, item.span);
|
||||
self.dumper.dump_def(&access_from!(self.save_ctxt, item.def_id), mod_data);
|
||||
self.dumper.dump_def(&access_from!(self.save_ctxt, item.def_id.def_id), mod_data);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -980,7 +980,7 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
let body = body.map(|b| self.tcx.hir().body(b).value);
|
||||
let attrs = self.tcx.hir().attrs(trait_item.hir_id());
|
||||
self.process_assoc_const(
|
||||
trait_item.def_id,
|
||||
trait_item.def_id.def_id,
|
||||
trait_item.ident,
|
||||
&ty,
|
||||
body,
|
||||
|
@ -994,7 +994,7 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
self.process_method(
|
||||
sig,
|
||||
body,
|
||||
trait_item.def_id,
|
||||
trait_item.def_id.def_id,
|
||||
trait_item.ident,
|
||||
&trait_item.generics,
|
||||
trait_item.span,
|
||||
|
@ -1050,7 +1050,7 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
let body = self.tcx.hir().body(body);
|
||||
let attrs = self.tcx.hir().attrs(impl_item.hir_id());
|
||||
self.process_assoc_const(
|
||||
impl_item.def_id,
|
||||
impl_item.def_id.def_id,
|
||||
impl_item.ident,
|
||||
&ty,
|
||||
Some(&body.value),
|
||||
|
@ -1062,7 +1062,7 @@ impl<'tcx> DumpVisitor<'tcx> {
|
|||
self.process_method(
|
||||
sig,
|
||||
Some(body),
|
||||
impl_item.def_id,
|
||||
impl_item.def_id.def_id,
|
||||
impl_item.ident,
|
||||
&impl_item.generics,
|
||||
impl_item.span,
|
||||
|
@ -1136,10 +1136,10 @@ impl<'tcx> Visitor<'tcx> for DumpVisitor<'tcx> {
|
|||
hir::ItemKind::Use(path, hir::UseKind::Single) => {
|
||||
let sub_span = path.segments.last().unwrap().ident.span;
|
||||
if !self.span.filter_generated(sub_span) {
|
||||
let access = access_from!(self.save_ctxt, item.def_id);
|
||||
let access = access_from!(self.save_ctxt, item.def_id.def_id);
|
||||
let ref_id = self.lookup_def_id(item.hir_id()).map(id_from_def_id);
|
||||
let span = self.span_from_span(sub_span);
|
||||
let parent = self.save_ctxt.tcx.local_parent(item.def_id);
|
||||
let parent = self.save_ctxt.tcx.local_parent(item.def_id.def_id);
|
||||
self.dumper.import(
|
||||
&access,
|
||||
Import {
|
||||
|
@ -1157,16 +1157,16 @@ impl<'tcx> Visitor<'tcx> for DumpVisitor<'tcx> {
|
|||
}
|
||||
hir::ItemKind::Use(path, hir::UseKind::Glob) => {
|
||||
// Make a comma-separated list of names of imported modules.
|
||||
let names = self.tcx.names_imported_by_glob_use(item.def_id);
|
||||
let names = self.tcx.names_imported_by_glob_use(item.def_id.def_id);
|
||||
let names: Vec<_> = names.iter().map(|n| n.to_string()).collect();
|
||||
|
||||
// Otherwise it's a span with wrong macro expansion info, which
|
||||
// we don't want to track anyway, since it's probably macro-internal `use`
|
||||
if let Some(sub_span) = self.span.sub_span_of_star(item.span) {
|
||||
if !self.span.filter_generated(item.span) {
|
||||
let access = access_from!(self.save_ctxt, item.def_id);
|
||||
let access = access_from!(self.save_ctxt, item.def_id.def_id);
|
||||
let span = self.span_from_span(sub_span);
|
||||
let parent = self.save_ctxt.tcx.local_parent(item.def_id);
|
||||
let parent = self.save_ctxt.tcx.local_parent(item.def_id.def_id);
|
||||
self.dumper.import(
|
||||
&access,
|
||||
Import {
|
||||
|
@ -1187,7 +1187,7 @@ impl<'tcx> Visitor<'tcx> for DumpVisitor<'tcx> {
|
|||
let name_span = item.ident.span;
|
||||
if !self.span.filter_generated(name_span) {
|
||||
let span = self.span_from_span(name_span);
|
||||
let parent = self.save_ctxt.tcx.local_parent(item.def_id);
|
||||
let parent = self.save_ctxt.tcx.local_parent(item.def_id.def_id);
|
||||
self.dumper.import(
|
||||
&Access { public: false, reachable: false },
|
||||
Import {
|
||||
|
@ -1235,7 +1235,7 @@ impl<'tcx> Visitor<'tcx> for DumpVisitor<'tcx> {
|
|||
let attrs = self.tcx.hir().attrs(item.hir_id());
|
||||
|
||||
self.dumper.dump_def(
|
||||
&access_from!(self.save_ctxt, item.def_id),
|
||||
&access_from!(self.save_ctxt, item.def_id.def_id),
|
||||
Def {
|
||||
kind: DefKind::Type,
|
||||
id,
|
||||
|
@ -1323,7 +1323,7 @@ impl<'tcx> Visitor<'tcx> for DumpVisitor<'tcx> {
|
|||
}
|
||||
hir::TyKind::OpaqueDef(item_id, _, _) => {
|
||||
let item = self.tcx.hir().item(item_id);
|
||||
self.nest_typeck_results(item_id.def_id, |v| v.visit_item(item));
|
||||
self.nest_typeck_results(item_id.def_id.def_id, |v| v.visit_item(item));
|
||||
}
|
||||
_ => intravisit::walk_ty(self, t),
|
||||
}
|
||||
|
@ -1430,7 +1430,7 @@ impl<'tcx> Visitor<'tcx> for DumpVisitor<'tcx> {
|
|||
}
|
||||
|
||||
fn visit_foreign_item(&mut self, item: &'tcx hir::ForeignItem<'tcx>) {
|
||||
let access = access_from!(self.save_ctxt, item.def_id);
|
||||
let access = access_from!(self.save_ctxt, item.def_id.def_id);
|
||||
|
||||
match item.kind {
|
||||
hir::ForeignItemKind::Fn(decl, _, ref generics) => {
|
||||
|
|
|
@ -622,7 +622,7 @@ impl<'tcx> SaveContext<'tcx> {
|
|||
hir::QPath::TypeRelative(..) | hir::QPath::LangItem(..) => {
|
||||
// #75962: `self.typeck_results` may be different from the `hir_id`'s result.
|
||||
if self.tcx.has_typeck_results(hir_id.owner.to_def_id()) {
|
||||
self.tcx.typeck(hir_id.owner).qpath_res(qpath, hir_id)
|
||||
self.tcx.typeck(hir_id.owner.def_id).qpath_res(qpath, hir_id)
|
||||
} else {
|
||||
Res::Err
|
||||
}
|
||||
|
@ -1041,7 +1041,7 @@ fn id_from_hir_id(id: hir::HirId, scx: &SaveContext<'_>) -> rls_data::Id {
|
|||
// crate (very unlikely to actually happen).
|
||||
rls_data::Id {
|
||||
krate: LOCAL_CRATE.as_u32(),
|
||||
index: id.owner.local_def_index.as_u32() | id.local_id.as_u32().reverse_bits(),
|
||||
index: id.owner.def_id.local_def_index.as_u32() | id.local_id.as_u32().reverse_bits(),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue