Skip to content

Commit 4c0b7ac

Browse files
committed
GenericParam does not need to be a HIR owner.
1 parent d04c3aa commit 4c0b7ac

File tree

4 files changed

+6
-54
lines changed

4 files changed

+6
-54
lines changed

compiler/rustc_ast_lowering/src/lib.rs

+4-12
Original file line numberDiff line numberDiff line change
@@ -520,10 +520,6 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
520520
}
521521
self.visit_fn_ret_ty(&f.decl.output)
522522
}
523-
TyKind::ImplTrait(def_node_id, _) => {
524-
self.lctx.allocate_hir_id_counter(def_node_id);
525-
visit::walk_ty(self, t);
526-
}
527523
_ => visit::walk_ty(self, t),
528524
}
529525
}
@@ -1431,14 +1427,10 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
14311427
// Add a definition for the in-band `Param`.
14321428
let def_id = self.resolver.local_def_id(def_node_id);
14331429

1434-
self.allocate_hir_id_counter(def_node_id);
1435-
1436-
let hir_bounds = self.with_hir_id_owner(def_node_id, |this| {
1437-
this.lower_param_bounds(
1438-
bounds,
1439-
ImplTraitContext::Universal(in_band_ty_params, parent_def_id),
1440-
)
1441-
});
1430+
let hir_bounds = self.lower_param_bounds(
1431+
bounds,
1432+
ImplTraitContext::Universal(in_band_ty_params, parent_def_id),
1433+
);
14421434
// Set the name to `impl Bound1 + Bound2`.
14431435
let ident = Ident::from_str_and_span(&pprust::ty_to_string(t), span);
14441436
in_band_ty_params.push(hir::GenericParam {

compiler/rustc_middle/src/hir/map/collector.rs

+2-20
Original file line numberDiff line numberDiff line change
@@ -373,26 +373,8 @@ impl<'a, 'hir> Visitor<'hir> for NodeCollector<'a, 'hir> {
373373
}
374374

375375
fn visit_generic_param(&mut self, param: &'hir GenericParam<'hir>) {
376-
if let hir::GenericParamKind::Type {
377-
synthetic: Some(hir::SyntheticTyParamKind::ImplTrait),
378-
..
379-
} = param.kind
380-
{
381-
debug_assert_eq!(
382-
param.hir_id.owner,
383-
self.definitions.opt_hir_id_to_local_def_id(param.hir_id).unwrap()
384-
);
385-
self.with_dep_node_owner(param.hir_id.owner, param, |this, hash| {
386-
this.insert_with_hash(param.span, param.hir_id, Node::GenericParam(param), hash);
387-
388-
this.with_parent(param.hir_id, |this| {
389-
intravisit::walk_generic_param(this, param);
390-
});
391-
});
392-
} else {
393-
self.insert(param.span, param.hir_id, Node::GenericParam(param));
394-
intravisit::walk_generic_param(self, param);
395-
}
376+
self.insert(param.span, param.hir_id, Node::GenericParam(param));
377+
intravisit::walk_generic_param(self, param);
396378
}
397379

398380
fn visit_trait_item(&mut self, ti: &'hir TraitItem<'hir>) {

compiler/rustc_passes/src/hir_id_validator.rs

-13
Original file line numberDiff line numberDiff line change
@@ -172,17 +172,4 @@ impl<'a, 'hir> intravisit::Visitor<'hir> for HirIdValidator<'a, 'hir> {
172172
// we are currently in. So for those it's correct that they have a
173173
// different owner.
174174
}
175-
176-
fn visit_generic_param(&mut self, param: &'hir hir::GenericParam<'hir>) {
177-
if let hir::GenericParamKind::Type {
178-
synthetic: Some(hir::SyntheticTyParamKind::ImplTrait),
179-
..
180-
} = param.kind
181-
{
182-
// Synthetic impl trait parameters are owned by the node of the desugared type.
183-
// This means it is correct for them to have a different owner.
184-
} else {
185-
intravisit::walk_generic_param(self, param);
186-
}
187-
}
188175
}

compiler/rustc_save_analysis/src/dump_visitor.rs

-9
Original file line numberDiff line numberDiff line change
@@ -320,15 +320,6 @@ impl<'tcx> DumpVisitor<'tcx> {
320320
for param in generics.params {
321321
match param.kind {
322322
hir::GenericParamKind::Lifetime { .. } => {}
323-
hir::GenericParamKind::Type {
324-
synthetic: Some(hir::SyntheticTyParamKind::ImplTrait),
325-
..
326-
} => {
327-
return self
328-
.nest_typeck_results(self.tcx.hir().local_def_id(param.hir_id), |this| {
329-
this.visit_generics(generics)
330-
});
331-
}
332323
hir::GenericParamKind::Type { .. } => {
333324
let param_ss = param.name.ident().span;
334325
let name = escape(self.span.snippet(param_ss));

0 commit comments

Comments
 (0)