Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit b676edd

Browse files
committedJun 14, 2022
Do not modify the resolver outputs.
1 parent 603746a commit b676edd

File tree

4 files changed

+83
-75
lines changed

4 files changed

+83
-75
lines changed
 

‎compiler/rustc_ast_lowering/src/asm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
242242

243243
// Wrap the expression in an AnonConst.
244244
let parent_def_id = self.current_hir_id_owner;
245-
let node_id = self.resolver.next_node_id();
245+
let node_id = self.next_node_id();
246246
self.create_def(
247247
parent_def_id,
248248
node_id,

‎compiler/rustc_ast_lowering/src/expr.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
355355
for (idx, arg) in args.into_iter().enumerate() {
356356
if legacy_args_idx.contains(&idx) {
357357
let parent_def_id = self.current_hir_id_owner;
358-
let node_id = self.resolver.next_node_id();
358+
let node_id = self.next_node_id();
359359

360360
// Add a definition for the in-band const def.
361361
self.create_def(
@@ -724,7 +724,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
724724
};
725725

726726
// `::std::task::Poll::Ready(result) => break result`
727-
let loop_node_id = self.resolver.next_node_id();
727+
let loop_node_id = self.next_node_id();
728728
let loop_hir_id = self.lower_node_id(loop_node_id);
729729
let ready_arm = {
730730
let x_ident = Ident::with_dummy_span(sym::result);

‎compiler/rustc_ast_lowering/src/item.rs

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ impl<'a, 'hir> ItemLowerer<'a, 'hir> {
6262
owner: NodeId,
6363
f: impl FnOnce(&mut LoweringContext<'_, 'hir>) -> hir::OwnerNode<'hir>,
6464
) {
65+
let next_node_id = self.resolver.next_node_id;
6566
let mut lctx = LoweringContext {
6667
// Pseudo-globals.
6768
sess: &self.sess,
@@ -79,6 +80,8 @@ impl<'a, 'hir> ItemLowerer<'a, 'hir> {
7980
node_id_to_local_id: Default::default(),
8081
local_id_to_def_id: SortedMap::new(),
8182
trait_map: Default::default(),
83+
local_node_id_to_def_id: FxHashMap::default(),
84+
next_node_id,
8285

8386
// Lowering state.
8487
catch_scope: None,
@@ -126,8 +129,7 @@ impl<'a, 'hir> ItemLowerer<'a, 'hir> {
126129

127130
#[instrument(level = "debug", skip(self, c))]
128131
fn lower_crate(&mut self, c: &Crate) {
129-
debug_assert_eq!(self.resolver.local_def_id(CRATE_NODE_ID), CRATE_DEF_ID);
130-
132+
debug_assert_eq!(self.resolver.node_id_to_def_id[&CRATE_NODE_ID], CRATE_DEF_ID);
131133
self.with_lctx(CRATE_NODE_ID, |lctx| {
132134
let module = lctx.lower_mod(&c.items, &c.spans);
133135
lctx.lower_attrs(hir::CRATE_HIR_ID, &c.attrs);
@@ -141,7 +143,7 @@ impl<'a, 'hir> ItemLowerer<'a, 'hir> {
141143
}
142144

143145
fn lower_assoc_item(&mut self, item: &AssocItem, ctxt: AssocCtxt) {
144-
let def_id = self.resolver.local_def_id(item.id);
146+
let def_id = self.resolver.node_id_to_def_id[&item.id];
145147

146148
let parent_id = {
147149
let parent = self.definitions.def_key(def_id).parent;
@@ -185,7 +187,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
185187
}
186188

187189
pub(super) fn lower_item_ref(&mut self, i: &Item) -> SmallVec<[hir::ItemId; 1]> {
188-
let mut node_ids = smallvec![hir::ItemId { def_id: self.resolver.local_def_id(i.id) }];
190+
let mut node_ids = smallvec![hir::ItemId { def_id: self.local_def_id(i.id) }];
189191
if let ItemKind::Use(ref use_tree) = &i.kind {
190192
self.lower_item_id_use_tree(use_tree, i.id, &mut node_ids);
191193
}
@@ -201,7 +203,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
201203
match tree.kind {
202204
UseTreeKind::Nested(ref nested_vec) => {
203205
for &(ref nested, id) in nested_vec {
204-
vec.push(hir::ItemId { def_id: self.resolver.local_def_id(id) });
206+
vec.push(hir::ItemId { def_id: self.local_def_id(id) });
205207
self.lower_item_id_use_tree(nested, id, vec);
206208
}
207209
}
@@ -210,7 +212,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
210212
for (_, &id) in
211213
iter::zip(self.expect_full_res_from_use(base_id).skip(1), &[id1, id2])
212214
{
213-
vec.push(hir::ItemId { def_id: self.resolver.local_def_id(id) });
215+
vec.push(hir::ItemId { def_id: self.local_def_id(id) });
214216
}
215217
}
216218
}
@@ -475,7 +477,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
475477
}
476478
ItemKind::MacroDef(MacroDef { ref body, macro_rules }) => {
477479
let body = P(self.lower_mac_args(body));
478-
let macro_kind = self.resolver.decl_macro_kind(self.resolver.local_def_id(id));
480+
let macro_kind = self.resolver.decl_macro_kind(self.local_def_id(id));
479481
hir::ItemKind::Macro(ast::MacroDef { body, macro_rules }, macro_kind)
480482
}
481483
ItemKind::MacCall(..) => {
@@ -535,7 +537,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
535537
// Essentially a single `use` which imports two names is desugared into
536538
// two imports.
537539
for new_node_id in [id1, id2] {
538-
let new_id = self.resolver.local_def_id(new_node_id);
540+
let new_id = self.local_def_id(new_node_id);
539541
let Some(res) = resolutions.next() else {
540542
// Associate an HirId to both ids even if there is no resolution.
541543
let _old = self.children.insert(
@@ -548,7 +550,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
548550
let ident = *ident;
549551
let mut path = path.clone();
550552
for seg in &mut path.segments {
551-
seg.id = self.resolver.next_node_id();
553+
seg.id = self.next_node_id();
552554
}
553555
let span = path.span;
554556

@@ -611,13 +613,13 @@ impl<'hir> LoweringContext<'_, 'hir> {
611613

612614
// Add all the nested `PathListItem`s to the HIR.
613615
for &(ref use_tree, id) in trees {
614-
let new_hir_id = self.resolver.local_def_id(id);
616+
let new_hir_id = self.local_def_id(id);
615617

616618
let mut prefix = prefix.clone();
617619

618620
// Give the segments new node-ids since they are being cloned.
619621
for seg in &mut prefix.segments {
620-
seg.id = self.resolver.next_node_id();
622+
seg.id = self.next_node_id();
621623
}
622624

623625
// Each `use` import is an item and thus are owners of the
@@ -691,7 +693,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
691693

692694
fn lower_foreign_item_ref(&mut self, i: &ForeignItem) -> hir::ForeignItemRef {
693695
hir::ForeignItemRef {
694-
id: hir::ForeignItemId { def_id: self.resolver.local_def_id(i.id) },
696+
id: hir::ForeignItemId { def_id: self.local_def_id(i.id) },
695697
ident: self.lower_ident(i.ident),
696698
span: self.lower_span(i.span),
697699
}
@@ -847,7 +849,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
847849
}
848850
AssocItemKind::MacCall(..) => unimplemented!(),
849851
};
850-
let id = hir::TraitItemId { def_id: self.resolver.local_def_id(i.id) };
852+
let id = hir::TraitItemId { def_id: self.local_def_id(i.id) };
851853
let defaultness = hir::Defaultness::Default { has_value: has_default };
852854
hir::TraitItemRef {
853855
id,
@@ -927,7 +929,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
927929
let has_value = true;
928930
let (defaultness, _) = self.lower_defaultness(i.kind.defaultness(), has_value);
929931
hir::ImplItemRef {
930-
id: hir::ImplItemId { def_id: self.resolver.local_def_id(i.id) },
932+
id: hir::ImplItemId { def_id: self.local_def_id(i.id) },
931933
ident: self.lower_ident(i.ident),
932934
span: self.lower_span(i.span),
933935
defaultness,
@@ -1339,7 +1341,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
13391341
generics
13401342
.params
13411343
.iter()
1342-
.any(|p| def_id == self.resolver.local_def_id(p.id).to_def_id())
1344+
.any(|p| def_id == self.local_def_id(p.id).to_def_id())
13431345
}
13441346
// Either the `bounded_ty` is not a plain type parameter, or
13451347
// it's not found in the generic type parameters list.
@@ -1443,7 +1445,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
14431445
match kind {
14441446
GenericParamKind::Const { .. } => None,
14451447
GenericParamKind::Type { .. } => {
1446-
let def_id = self.resolver.local_def_id(id).to_def_id();
1448+
let def_id = self.local_def_id(id).to_def_id();
14471449
let ty_path = self.arena.alloc(hir::Path {
14481450
span: param_span,
14491451
res: Res::Def(DefKind::TyParam, def_id),
@@ -1466,7 +1468,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
14661468
let res = self.resolver.get_lifetime_res(id).unwrap_or_else(|| {
14671469
panic!("Missing resolution for lifetime {:?} at {:?}", id, ident.span)
14681470
});
1469-
let lt_id = self.resolver.next_node_id();
1471+
let lt_id = self.next_node_id();
14701472
let lifetime = self.new_named_lifetime_with_res(lt_id, ident_span, ident, res);
14711473
Some(hir::WherePredicate::RegionPredicate(hir::WhereRegionPredicate {
14721474
lifetime,

‎compiler/rustc_ast_lowering/src/lib.rs

Lines changed: 61 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,10 @@ struct LoweringContext<'a, 'hir: 'a> {
133133
/// NodeIds that are lowered inside the current HIR owner.
134134
node_id_to_local_id: FxHashMap<NodeId, hir::ItemLocalId>,
135135

136+
// The next_node_id is reset for each item.
137+
next_node_id: ast::NodeId,
138+
local_node_id_to_def_id: FxHashMap<ast::NodeId, LocalDefId>,
139+
136140
allow_try_trait: Option<Lrc<[Symbol]>>,
137141
allow_gen_future: Option<Lrc<[Symbol]>>,
138142
allow_into_future: Option<Lrc<[Symbol]>>,
@@ -167,9 +171,6 @@ trait ResolverAstLoweringExt {
167171
fn get_label_res(&self, id: NodeId) -> Option<NodeId>;
168172
fn get_lifetime_res(&self, id: NodeId) -> Option<LifetimeRes>;
169173
fn take_extra_lifetime_params(&mut self, id: NodeId) -> Vec<(Ident, NodeId, LifetimeRes)>;
170-
fn next_node_id(&mut self) -> NodeId;
171-
fn opt_local_def_id(&self, node: NodeId) -> Option<LocalDefId>;
172-
fn local_def_id(&self, node: NodeId) -> LocalDefId;
173174
fn decl_macro_kind(&self, def_id: LocalDefId) -> MacroKind;
174175
}
175176

@@ -229,24 +230,6 @@ impl ResolverAstLoweringExt for ResolverOutputs {
229230
self.extra_lifetime_params_map.remove(&id).unwrap_or_default()
230231
}
231232

232-
fn next_node_id(&mut self) -> NodeId {
233-
let next = self
234-
.next_node_id
235-
.as_usize()
236-
.checked_add(1)
237-
.expect("input too large; ran out of NodeIds");
238-
self.next_node_id = NodeId::from_usize(next);
239-
self.next_node_id
240-
}
241-
242-
fn opt_local_def_id(&self, node: NodeId) -> Option<LocalDefId> {
243-
self.node_id_to_def_id.get(&node).copied()
244-
}
245-
246-
fn local_def_id(&self, node: NodeId) -> LocalDefId {
247-
self.opt_local_def_id(node).unwrap_or_else(|| panic!("no entry for node id: `{:?}`", node))
248-
}
249-
250233
fn decl_macro_kind(&self, def_id: LocalDefId) -> MacroKind {
251234
self.builtin_macro_kinds.get(&def_id).copied().unwrap_or(MacroKind::Bang)
252235
}
@@ -359,17 +342,17 @@ enum AstOwner<'a> {
359342
}
360343

361344
fn index_crate<'a>(
362-
resolver: &ResolverOutputs,
345+
node_id_to_def_id: &FxHashMap<NodeId, LocalDefId>,
363346
krate: &'a Crate,
364347
) -> IndexVec<LocalDefId, AstOwner<'a>> {
365-
let mut indexer = Indexer { resolver, index: IndexVec::new() };
348+
let mut indexer = Indexer { node_id_to_def_id, index: IndexVec::new() };
366349
indexer.index.ensure_contains_elem(CRATE_DEF_ID, || AstOwner::NonOwner);
367350
indexer.index[CRATE_DEF_ID] = AstOwner::Crate(krate);
368351
visit::walk_crate(&mut indexer, krate);
369352
return indexer.index;
370353

371354
struct Indexer<'s, 'a> {
372-
resolver: &'s ResolverOutputs,
355+
node_id_to_def_id: &'s FxHashMap<NodeId, LocalDefId>,
373356
index: IndexVec<LocalDefId, AstOwner<'a>>,
374357
}
375358

@@ -380,21 +363,21 @@ fn index_crate<'a>(
380363
}
381364

382365
fn visit_item(&mut self, item: &'a ast::Item) {
383-
let def_id = self.resolver.local_def_id(item.id);
366+
let def_id = self.node_id_to_def_id[&item.id];
384367
self.index.ensure_contains_elem(def_id, || AstOwner::NonOwner);
385368
self.index[def_id] = AstOwner::Item(item);
386369
visit::walk_item(self, item)
387370
}
388371

389372
fn visit_assoc_item(&mut self, item: &'a ast::AssocItem, ctxt: visit::AssocCtxt) {
390-
let def_id = self.resolver.local_def_id(item.id);
373+
let def_id = self.node_id_to_def_id[&item.id];
391374
self.index.ensure_contains_elem(def_id, || AstOwner::NonOwner);
392375
self.index[def_id] = AstOwner::AssocItem(item, ctxt);
393376
visit::walk_assoc_item(self, item, ctxt);
394377
}
395378

396379
fn visit_foreign_item(&mut self, item: &'a ast::ForeignItem) {
397-
let def_id = self.resolver.local_def_id(item.id);
380+
let def_id = self.node_id_to_def_id[&item.id];
398381
self.index.ensure_contains_elem(def_id, || AstOwner::NonOwner);
399382
self.index[def_id] = AstOwner::ForeignItem(item);
400383
visit::walk_foreign_item(self, item);
@@ -436,7 +419,7 @@ pub fn lower_crate<'hir>(
436419
) -> &'hir hir::Crate<'hir> {
437420
let _prof_timer = sess.prof.verbose_generic_activity("hir_lowering");
438421

439-
let ast_index = index_crate(resolver, krate);
422+
let ast_index = index_crate(&resolver.node_id_to_def_id, krate);
440423

441424
let mut owners =
442425
IndexVec::from_fn_n(|_| hir::MaybeOwner::Phantom, definitions.def_index_count());
@@ -488,11 +471,11 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
488471
span: Span,
489472
) -> LocalDefId {
490473
assert!(
491-
!self.resolver.node_id_to_def_id.contains_key(&node_id),
474+
self.opt_local_def_id(node_id).is_none(),
492475
"adding a def'n for node-id {:?} and data {:?} but a previous def'n exists: {:?}",
493476
node_id,
494477
data,
495-
self.definitions.def_key(self.resolver.node_id_to_def_id[&node_id]),
478+
self.definitions.def_key(self.local_def_id(node_id)),
496479
);
497480

498481
let def_id = self.definitions.create_def(parent, data, expn_id, span);
@@ -502,20 +485,41 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
502485
// we don't need a mapping from `NodeId` to `LocalDefId`.
503486
if node_id != ast::DUMMY_NODE_ID {
504487
debug!("create_def: def_id_to_node_id[{:?}] <-> {:?}", def_id, node_id);
505-
self.resolver.node_id_to_def_id.insert(node_id, def_id);
488+
self.local_node_id_to_def_id.insert(node_id, def_id);
506489
}
507-
assert_eq!(self.resolver.def_id_to_node_id.push(node_id), def_id);
508490

509491
def_id
510492
}
511493

494+
fn next_node_id(&mut self) -> NodeId {
495+
let next = self
496+
.next_node_id
497+
.as_usize()
498+
.checked_add(1)
499+
.expect("input too large; ran out of NodeIds");
500+
self.next_node_id = NodeId::from_usize(next);
501+
self.next_node_id
502+
}
503+
504+
fn opt_local_def_id(&self, node: NodeId) -> Option<LocalDefId> {
505+
if node <= self.resolver.next_node_id {
506+
self.resolver.node_id_to_def_id.get(&node).copied()
507+
} else {
508+
self.local_node_id_to_def_id.get(&node).copied()
509+
}
510+
}
511+
512+
fn local_def_id(&self, node: NodeId) -> LocalDefId {
513+
self.opt_local_def_id(node).unwrap_or_else(|| panic!("no entry for node id: `{:?}`", node))
514+
}
515+
512516
#[instrument(level = "debug", skip(self, f))]
513517
fn with_hir_id_owner(
514518
&mut self,
515519
owner: NodeId,
516520
f: impl FnOnce(&mut Self) -> hir::OwnerNode<'hir>,
517521
) {
518-
let def_id = self.resolver.local_def_id(owner);
522+
let def_id = self.local_def_id(owner);
519523

520524
let current_attrs = std::mem::take(&mut self.attrs);
521525
let current_bodies = std::mem::take(&mut self.bodies);
@@ -527,6 +531,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
527531
std::mem::replace(&mut self.item_local_id_counter, hir::ItemLocalId::new(1));
528532
let current_impl_trait_defs = std::mem::take(&mut self.impl_trait_defs);
529533
let current_impl_trait_bounds = std::mem::take(&mut self.impl_trait_bounds);
534+
// Do not reset `next_node_id` and `node_id_to_def_id` as we want to refer to the
535+
// subdefinitions' nodes.
530536

531537
// Always allocate the first `HirId` for the owner itself.
532538
let _old = self.node_id_to_local_id.insert(owner, hir::ItemLocalId::new(0));
@@ -633,7 +639,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
633639
self.item_local_id_counter.increment_by(1);
634640

635641
assert_ne!(local_id, hir::ItemLocalId::new(0));
636-
if let Some(def_id) = self.resolver.opt_local_def_id(ast_node_id) {
642+
if let Some(def_id) = self.opt_local_def_id(ast_node_id) {
637643
// Do not override a `MaybeOwner::Owner` that may already here.
638644
self.children.entry(def_id).or_insert(hir::MaybeOwner::NonOwner(hir_id));
639645
self.local_id_to_def_id.insert(local_id, def_id);
@@ -649,7 +655,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
649655
}
650656

651657
fn next_id(&mut self) -> hir::HirId {
652-
let node_id = self.resolver.next_node_id();
658+
let node_id = self.next_node_id();
653659
self.lower_node_id(node_id)
654660
}
655661

@@ -991,7 +997,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
991997
// constructing the HIR for `impl bounds...` and then lowering that.
992998

993999
let parent_def_id = self.current_hir_id_owner;
994-
let impl_trait_node_id = self.resolver.next_node_id();
1000+
let impl_trait_node_id = self.next_node_id();
9951001
self.create_def(
9961002
parent_def_id,
9971003
impl_trait_node_id,
@@ -1001,7 +1007,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
10011007
);
10021008

10031009
self.with_dyn_type_scope(false, |this| {
1004-
let node_id = this.resolver.next_node_id();
1010+
let node_id = this.next_node_id();
10051011
let ty = this.lower_ty(
10061012
&Ty {
10071013
id: node_id,
@@ -1101,7 +1107,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
11011107
// Construct an AnonConst where the expr is the "ty"'s path.
11021108

11031109
let parent_def_id = self.current_hir_id_owner;
1104-
let node_id = self.resolver.next_node_id();
1110+
let node_id = self.next_node_id();
11051111

11061112
// Add a definition for the in-band const def.
11071113
self.create_def(
@@ -1180,7 +1186,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
11801186
debug_assert_eq!(start.plus(1), end);
11811187
start
11821188
} else {
1183-
self.resolver.next_node_id()
1189+
self.next_node_id()
11841190
};
11851191
let span = self.sess.source_map().next_point(t.span.shrink_to_lo());
11861192
Lifetime { ident: Ident::new(kw::UnderscoreLifetime, span), id }
@@ -1323,7 +1329,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
13231329
// frequently opened issues show.
13241330
let opaque_ty_span = self.mark_span_with_reason(DesugaringKind::OpaqueTy, span, None);
13251331

1326-
let opaque_ty_def_id = self.resolver.local_def_id(opaque_ty_node_id);
1332+
let opaque_ty_def_id = self.local_def_id(opaque_ty_node_id);
13271333

13281334
let mut collected_lifetimes = FxHashMap::default();
13291335
self.with_hir_id_owner(opaque_ty_node_id, |lctx| {
@@ -1341,7 +1347,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
13411347
let lifetime_defs = lctx.arena.alloc_from_iter(collected_lifetimes.iter().map(
13421348
|(_, &(span, p_id, p_name, _))| {
13431349
let hir_id = lctx.lower_node_id(p_id);
1344-
debug_assert_ne!(lctx.resolver.opt_local_def_id(p_id), None);
1350+
debug_assert_ne!(lctx.opt_local_def_id(p_id), None);
13451351

13461352
let kind = if p_name.ident().name == kw::UnderscoreLifetime {
13471353
hir::LifetimeParamKind::Elided
@@ -1380,7 +1386,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
13801386

13811387
let lifetimes = self.arena.alloc_from_iter(collected_lifetimes.into_iter().map(
13821388
|(_, (span, _, p_name, res))| {
1383-
let id = self.resolver.next_node_id();
1389+
let id = self.next_node_id();
13841390
let ident = Ident::new(p_name.ident().name, span);
13851391
let l = self.new_named_lifetime_with_res(id, span, ident, res);
13861392
hir::GenericArg::Lifetime(l)
@@ -1489,7 +1495,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
14891495
FnRetTy::Ty(ref ty) => {
14901496
let context = match fn_node_id {
14911497
Some(fn_node_id) if kind.impl_trait_return_allowed() => {
1492-
let fn_def_id = self.resolver.local_def_id(fn_node_id);
1498+
let fn_def_id = self.local_def_id(fn_node_id);
14931499
ImplTraitContext::ReturnPositionOpaqueTy {
14941500
origin: hir::OpaqueTyOrigin::FnReturn(fn_def_id),
14951501
}
@@ -1563,8 +1569,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
15631569

15641570
let opaque_ty_span = self.mark_span_with_reason(DesugaringKind::Async, span, None);
15651571

1566-
let opaque_ty_def_id = self.resolver.local_def_id(opaque_ty_node_id);
1567-
let fn_def_id = self.resolver.local_def_id(fn_node_id);
1572+
let opaque_ty_def_id = self.local_def_id(opaque_ty_node_id);
1573+
let fn_def_id = self.local_def_id(fn_node_id);
15681574

15691575
// When we create the opaque type for this async fn, it is going to have
15701576
// to capture all the lifetimes involved in the signature (including in the
@@ -1614,8 +1620,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
16141620
debug!(?extra_lifetime_params);
16151621
for (ident, outer_node_id, outer_res) in extra_lifetime_params {
16161622
let Ident { name, span } = ident;
1617-
let outer_def_id = self.resolver.local_def_id(outer_node_id);
1618-
let inner_node_id = self.resolver.next_node_id();
1623+
let outer_def_id = self.local_def_id(outer_node_id);
1624+
let inner_node_id = self.next_node_id();
16191625

16201626
// Add a definition for the in scope lifetime def.
16211627
self.create_def(
@@ -1665,7 +1671,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
16651671
let generic_params =
16661672
this.arena.alloc_from_iter(captures.iter().map(|(_, &(span, p_id, p_name, _))| {
16671673
let hir_id = this.lower_node_id(p_id);
1668-
debug_assert_ne!(this.resolver.opt_local_def_id(p_id), None);
1674+
debug_assert_ne!(this.opt_local_def_id(p_id), None);
16691675

16701676
let kind = if p_name.ident().name == kw::UnderscoreLifetime {
16711677
hir::LifetimeParamKind::Elided
@@ -1717,7 +1723,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
17171723
// generate `'_`.
17181724
let generic_args =
17191725
self.arena.alloc_from_iter(captures.into_iter().map(|(_, (span, _, p_name, res))| {
1720-
let id = self.resolver.next_node_id();
1726+
let id = self.next_node_id();
17211727
let ident = Ident::new(p_name.ident().name, span);
17221728
let l = self.new_named_lifetime_with_res(id, span, ident, res);
17231729
hir::GenericArg::Lifetime(l)
@@ -1811,9 +1817,9 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
18111817
if let Some(mut captured_lifetimes) = self.captured_lifetimes.take() {
18121818
if !captured_lifetimes.binders_to_ignore.contains(&binder) {
18131819
match captured_lifetimes.captures.entry(param) {
1814-
Entry::Occupied(o) => param = self.resolver.local_def_id(o.get().1),
1820+
Entry::Occupied(o) => param = self.local_def_id(o.get().1),
18151821
Entry::Vacant(v) => {
1816-
let p_id = self.resolver.next_node_id();
1822+
let p_id = self.next_node_id();
18171823
let p_def_id = self.create_def(
18181824
captured_lifetimes.parent_def_id,
18191825
p_id,
@@ -1837,9 +1843,9 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
18371843
if let Some(mut captured_lifetimes) = self.captured_lifetimes.take() {
18381844
if !captured_lifetimes.binders_to_ignore.contains(&binder) {
18391845
match captured_lifetimes.captures.entry(param) {
1840-
Entry::Occupied(o) => param = self.resolver.local_def_id(o.get().1),
1846+
Entry::Occupied(o) => param = self.local_def_id(o.get().1),
18411847
Entry::Vacant(v) => {
1842-
let p_id = self.resolver.next_node_id();
1848+
let p_id = self.next_node_id();
18431849
let p_def_id = self.create_def(
18441850
captured_lifetimes.parent_def_id,
18451851
p_id,
@@ -1862,7 +1868,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
18621868
let mut l_name = None;
18631869
if let Some(mut captured_lifetimes) = self.captured_lifetimes.take() {
18641870
if !captured_lifetimes.binders_to_ignore.contains(&binder) {
1865-
let p_id = self.resolver.next_node_id();
1871+
let p_id = self.next_node_id();
18661872
let p_def_id = self.create_def(
18671873
captured_lifetimes.parent_def_id,
18681874
p_id,
@@ -2011,7 +2017,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
20112017
bounds: &[GenericBound],
20122018
) -> (hir::GenericParam<'hir>, Option<hir::WherePredicate<'hir>>, hir::TyKind<'hir>) {
20132019
// Add a definition for the in-band `Param`.
2014-
let def_id = self.resolver.local_def_id(node_id);
2020+
let def_id = self.local_def_id(node_id);
20152021

20162022
let hir_bounds = self.lower_param_bounds(bounds, ImplTraitContext::Universal);
20172023
// Set the name to `impl Bound1 + Bound2`.

0 commit comments

Comments
 (0)
Please sign in to comment.