Bubble up the TyCtxtFeed
This commit is contained in:
parent
7606c13961
commit
2149c45e03
2 changed files with 15 additions and 12 deletions
|
@ -38,14 +38,16 @@ impl<'a, 'b, 'tcx> DefCollector<'a, 'b, 'tcx> {
|
||||||
"create_def(node_id={:?}, def_kind={:?}, parent_def={:?})",
|
"create_def(node_id={:?}, def_kind={:?}, parent_def={:?})",
|
||||||
node_id, def_kind, parent_def
|
node_id, def_kind, parent_def
|
||||||
);
|
);
|
||||||
self.resolver.create_def(
|
self.resolver
|
||||||
parent_def,
|
.create_def(
|
||||||
node_id,
|
parent_def,
|
||||||
name,
|
node_id,
|
||||||
def_kind,
|
name,
|
||||||
self.expansion.to_expn_id(),
|
def_kind,
|
||||||
span.with_parent(None),
|
self.expansion.to_expn_id(),
|
||||||
)
|
span.with_parent(None),
|
||||||
|
)
|
||||||
|
.def_id()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn with_parent<F: FnOnce(&mut Self)>(&mut self, parent_def: LocalDefId, f: F) {
|
fn with_parent<F: FnOnce(&mut Self)>(&mut self, parent_def: LocalDefId, f: F) {
|
||||||
|
|
|
@ -52,7 +52,7 @@ use rustc_middle::metadata::ModChild;
|
||||||
use rustc_middle::middle::privacy::EffectiveVisibilities;
|
use rustc_middle::middle::privacy::EffectiveVisibilities;
|
||||||
use rustc_middle::query::Providers;
|
use rustc_middle::query::Providers;
|
||||||
use rustc_middle::span_bug;
|
use rustc_middle::span_bug;
|
||||||
use rustc_middle::ty::{self, MainDefinition, RegisteredTools, TyCtxt};
|
use rustc_middle::ty::{self, MainDefinition, RegisteredTools, TyCtxt, TyCtxtFeed};
|
||||||
use rustc_middle::ty::{ResolverGlobalCtxt, ResolverOutputs};
|
use rustc_middle::ty::{ResolverGlobalCtxt, ResolverOutputs};
|
||||||
use rustc_query_system::ich::StableHashingContext;
|
use rustc_query_system::ich::StableHashingContext;
|
||||||
use rustc_session::lint::builtin::PRIVATE_MACRO_USE;
|
use rustc_session::lint::builtin::PRIVATE_MACRO_USE;
|
||||||
|
@ -1251,7 +1251,7 @@ impl<'tcx> Resolver<'_, 'tcx> {
|
||||||
def_kind: DefKind,
|
def_kind: DefKind,
|
||||||
expn_id: ExpnId,
|
expn_id: ExpnId,
|
||||||
span: Span,
|
span: Span,
|
||||||
) -> LocalDefId {
|
) -> TyCtxtFeed<'tcx, LocalDefId> {
|
||||||
let data = def_kind.def_path_data(name);
|
let data = def_kind.def_path_data(name);
|
||||||
assert!(
|
assert!(
|
||||||
!self.node_id_to_def_id.contains_key(&node_id),
|
!self.node_id_to_def_id.contains_key(&node_id),
|
||||||
|
@ -1262,7 +1262,8 @@ impl<'tcx> Resolver<'_, 'tcx> {
|
||||||
);
|
);
|
||||||
|
|
||||||
// FIXME: remove `def_span` body, pass in the right spans here and call `tcx.at().create_def()`
|
// FIXME: remove `def_span` body, pass in the right spans here and call `tcx.at().create_def()`
|
||||||
let def_id = self.tcx.create_def(parent, name, def_kind).def_id();
|
let feed = self.tcx.create_def(parent, name, def_kind);
|
||||||
|
let def_id = feed.def_id();
|
||||||
|
|
||||||
// Create the definition.
|
// Create the definition.
|
||||||
if expn_id != ExpnId::root() {
|
if expn_id != ExpnId::root() {
|
||||||
|
@ -1283,7 +1284,7 @@ impl<'tcx> Resolver<'_, 'tcx> {
|
||||||
}
|
}
|
||||||
assert_eq!(self.def_id_to_node_id.push(node_id), def_id);
|
assert_eq!(self.def_id_to_node_id.push(node_id), def_id);
|
||||||
|
|
||||||
def_id
|
feed
|
||||||
}
|
}
|
||||||
|
|
||||||
fn item_generics_num_lifetimes(&self, def_id: DefId) -> usize {
|
fn item_generics_num_lifetimes(&self, def_id: DefId) -> usize {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue