Skip to content

Commit d7cc37c

Browse files
committed
Remember late_bound in GenericParamDefKind.
1 parent 8529bda commit d7cc37c

File tree

27 files changed

+57
-51
lines changed

27 files changed

+57
-51
lines changed

compiler/rustc_codegen_llvm/src/coverageinfo/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ fn declare_unused_fn<'tcx>(cx: &CodegenCx<'_, 'tcx>, def_id: DefId) -> Instance<
189189
let instance = Instance::new(
190190
def_id,
191191
InternalSubsts::for_item(tcx, def_id, |param, _| {
192-
if let ty::GenericParamDefKind::Lifetime = param.kind {
192+
if let ty::GenericParamDefKind::Lifetime { .. } = param.kind {
193193
tcx.lifetimes.re_erased.into()
194194
} else {
195195
tcx.mk_param_from_def(param)

compiler/rustc_hir_analysis/src/astconv/generics.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
254254
match (args.peek(), params.peek()) {
255255
(Some(&arg), Some(&param)) => {
256256
match (arg, &param.kind, arg_count.explicit_late_bound) {
257-
(GenericArg::Lifetime(_), GenericParamDefKind::Lifetime, _)
257+
(GenericArg::Lifetime(_), GenericParamDefKind::Lifetime { .. }, _)
258258
| (
259259
GenericArg::Type(_) | GenericArg::Infer(_),
260260
GenericParamDefKind::Type { .. },
@@ -271,7 +271,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
271271
}
272272
(
273273
GenericArg::Infer(_) | GenericArg::Type(_) | GenericArg::Const(_),
274-
GenericParamDefKind::Lifetime,
274+
GenericParamDefKind::Lifetime { .. },
275275
_,
276276
) => {
277277
// We expected a lifetime argument, but got a type or const

compiler/rustc_hir_analysis/src/astconv/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
418418
};
419419

420420
match (&param.kind, arg) {
421-
(GenericParamDefKind::Lifetime, GenericArg::Lifetime(lt)) => {
421+
(GenericParamDefKind::Lifetime { .. }, GenericArg::Lifetime(lt)) => {
422422
self.astconv.ast_region_to_region(lt, Some(param)).into()
423423
}
424424
(&GenericParamDefKind::Type { has_default, .. }, GenericArg::Type(ty)) => {
@@ -458,7 +458,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
458458
) -> subst::GenericArg<'tcx> {
459459
let tcx = self.astconv.tcx();
460460
match param.kind {
461-
GenericParamDefKind::Lifetime => self
461+
GenericParamDefKind::Lifetime { .. } => self
462462
.astconv
463463
.re_infer(Some(param), self.span)
464464
.unwrap_or_else(|| {
@@ -2720,7 +2720,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
27202720
let substs = InternalSubsts::for_item(tcx, def_id, |param, _| {
27212721
if let Some(i) = (param.index as usize).checked_sub(generics.parent_count) {
27222722
// Our own parameters are the resolved lifetimes.
2723-
if let GenericParamDefKind::Lifetime = param.kind {
2723+
if let GenericParamDefKind::Lifetime { .. } = param.kind {
27242724
if let hir::GenericArg::Lifetime(lifetime) = &lifetimes[i] {
27252725
self.ast_region_to_region(lifetime, None).into()
27262726
} else {
@@ -2739,7 +2739,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
27392739
// For `impl Trait` in the types of statics, constants,
27402740
// locals and type aliases. These capture all parent
27412741
// lifetimes, so they can use their identity subst.
2742-
GenericParamDefKind::Lifetime
2742+
GenericParamDefKind::Lifetime { .. }
27432743
if matches!(
27442744
origin,
27452745
hir::OpaqueTyOrigin::FnReturn(..) | hir::OpaqueTyOrigin::AsyncFn(..)

compiler/rustc_hir_analysis/src/check/compare_method.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,11 +1128,11 @@ fn compare_synthetic_generics<'tcx>(
11281128
let trait_m_generics = tcx.generics_of(trait_m.def_id);
11291129
let impl_m_type_params = impl_m_generics.params.iter().filter_map(|param| match param.kind {
11301130
GenericParamDefKind::Type { synthetic, .. } => Some((param.def_id, synthetic)),
1131-
GenericParamDefKind::Lifetime | GenericParamDefKind::Const { .. } => None,
1131+
GenericParamDefKind::Lifetime { .. } | GenericParamDefKind::Const { .. } => None,
11321132
});
11331133
let trait_m_type_params = trait_m_generics.params.iter().filter_map(|param| match param.kind {
11341134
GenericParamDefKind::Type { synthetic, .. } => Some((param.def_id, synthetic)),
1135-
GenericParamDefKind::Lifetime | GenericParamDefKind::Const { .. } => None,
1135+
GenericParamDefKind::Lifetime { .. } | GenericParamDefKind::Const { .. } => None,
11361136
});
11371137
for ((impl_def_id, impl_synthetic), (trait_def_id, trait_synthetic)) in
11381138
iter::zip(impl_m_type_params, trait_m_type_params)
@@ -1652,7 +1652,7 @@ pub fn check_type_bounds<'tcx>(
16521652
))
16531653
.into()
16541654
}
1655-
GenericParamDefKind::Lifetime => {
1655+
GenericParamDefKind::Lifetime { .. } => {
16561656
let kind = ty::BoundRegionKind::BrNamed(param.def_id, param.name);
16571657
let bound_var = ty::BoundVariableKind::Region(kind);
16581658
bound_vars.push(bound_var);

compiler/rustc_hir_analysis/src/check/wfcheck.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,7 +1296,7 @@ fn check_where_clauses<'tcx>(wfcx: &WfCheckingCtxt<'_, 'tcx>, span: Span, def_id
12961296
| GenericParamDefKind::Const { has_default } => {
12971297
has_default && def.index >= generics.parent_count as u32
12981298
}
1299-
GenericParamDefKind::Lifetime => unreachable!(),
1299+
GenericParamDefKind::Lifetime { .. } => unreachable!(),
13001300
};
13011301

13021302
// Check that concrete defaults are well-formed. See test `type-check-defaults.rs`.
@@ -1339,7 +1339,7 @@ fn check_where_clauses<'tcx>(wfcx: &WfCheckingCtxt<'_, 'tcx>, span: Span, def_id
13391339
}
13401340
}
13411341
// Doesn't have defaults.
1342-
GenericParamDefKind::Lifetime => {}
1342+
GenericParamDefKind::Lifetime { .. } => {}
13431343
}
13441344
}
13451345

@@ -1353,7 +1353,7 @@ fn check_where_clauses<'tcx>(wfcx: &WfCheckingCtxt<'_, 'tcx>, span: Span, def_id
13531353
// First we build the defaulted substitution.
13541354
let substs = InternalSubsts::for_item(tcx, def_id.to_def_id(), |param, _| {
13551355
match param.kind {
1356-
GenericParamDefKind::Lifetime => {
1356+
GenericParamDefKind::Lifetime { .. } => {
13571357
// All regions are identity.
13581358
tcx.mk_param_from_def(param)
13591359
}

compiler/rustc_hir_analysis/src/collect/generics_of.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ pub(super) fn generics_of(tcx: TyCtxt<'_>, def_id: DefId) -> ty::Generics {
243243
index: own_start + i as u32,
244244
def_id: tcx.hir().local_def_id(param.hir_id).to_def_id(),
245245
pure_wrt_drop: param.pure_wrt_drop,
246-
kind: ty::GenericParamDefKind::Lifetime,
246+
kind: ty::GenericParamDefKind::Lifetime { late_bound: false },
247247
}));
248248

249249
// Now create the real type and const parameters.

compiler/rustc_hir_analysis/src/impl_wf_check.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ fn enforce_impl_params_are_constrained(tcx: TyCtxt<'_>, impl_def_id: LocalDefId)
123123
report_unused_parameter(tcx, tcx.def_span(param.def_id), "type", param_ty.name);
124124
}
125125
}
126-
ty::GenericParamDefKind::Lifetime => {
126+
ty::GenericParamDefKind::Lifetime { .. } => {
127127
let param_lt = cgp::Parameter::from(param.to_early_bound_region_data());
128128
if lifetimes_in_associated_types.contains(&param_lt) && // (*)
129129
!input_parameters.contains(&param_lt)

compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,7 +1273,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
12731273
arg: &GenericArg<'_>,
12741274
) -> ty::GenericArg<'tcx> {
12751275
match (&param.kind, arg) {
1276-
(GenericParamDefKind::Lifetime, GenericArg::Lifetime(lt)) => {
1276+
(GenericParamDefKind::Lifetime { .. }, GenericArg::Lifetime(lt)) => {
12771277
<dyn AstConv<'_>>::ast_region_to_region(self.fcx, lt, Some(param)).into()
12781278
}
12791279
(GenericParamDefKind::Type { .. }, GenericArg::Type(ty)) => {
@@ -1301,7 +1301,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
13011301
) -> ty::GenericArg<'tcx> {
13021302
let tcx = self.fcx.tcx();
13031303
match param.kind {
1304-
GenericParamDefKind::Lifetime => {
1304+
GenericParamDefKind::Lifetime { .. } => {
13051305
self.fcx.re_infer(Some(param), self.span).unwrap().into()
13061306
}
13071307
GenericParamDefKind::Type { has_default, .. } => {

compiler/rustc_hir_typeck/src/method/confirm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ impl<'a, 'tcx> ConfirmContext<'a, 'tcx> {
371371
arg: &GenericArg<'_>,
372372
) -> subst::GenericArg<'tcx> {
373373
match (&param.kind, arg) {
374-
(GenericParamDefKind::Lifetime, GenericArg::Lifetime(lt)) => {
374+
(GenericParamDefKind::Lifetime { .. }, GenericArg::Lifetime(lt)) => {
375375
<dyn AstConv<'_>>::ast_region_to_region(self.cfcx.fcx, lt, Some(param))
376376
.into()
377377
}

compiler/rustc_hir_typeck/src/method/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
277277
// Construct a trait-reference `self_ty : Trait<input_tys>`
278278
let substs = InternalSubsts::for_item(self.tcx, trait_def_id, |param, _| {
279279
match param.kind {
280-
GenericParamDefKind::Lifetime | GenericParamDefKind::Const { .. } => {}
280+
GenericParamDefKind::Lifetime { .. } | GenericParamDefKind::Const { .. } => {}
281281
GenericParamDefKind::Type { .. } => {
282282
if param.index == 0 {
283283
return self_ty.into();
@@ -317,7 +317,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
317317
// Construct a trait-reference `self_ty : Trait<input_tys>`
318318
let substs = InternalSubsts::for_item(self.tcx, trait_def_id, |param, _| {
319319
match param.kind {
320-
GenericParamDefKind::Lifetime | GenericParamDefKind::Const { .. } => {}
320+
GenericParamDefKind::Lifetime { .. } | GenericParamDefKind::Const { .. } => {}
321321
GenericParamDefKind::Type { .. } => {
322322
if param.index == 0 {
323323
return self_ty.into();

0 commit comments

Comments
 (0)