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();

compiler/rustc_hir_typeck/src/method/probe.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1787,7 +1787,7 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> {
17871787
substs[i]
17881788
} else {
17891789
match param.kind {
1790-
GenericParamDefKind::Lifetime => {
1790+
GenericParamDefKind::Lifetime { .. } => {
17911791
// In general, during probe we erase regions.
17921792
self.tcx.lifetimes.re_erased.into()
17931793
}
@@ -1813,7 +1813,7 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> {
18131813

18141814
fn fresh_item_substs(&self, def_id: DefId) -> SubstsRef<'tcx> {
18151815
InternalSubsts::for_item(self.tcx, def_id, |param, _| match param.kind {
1816-
GenericParamDefKind::Lifetime => self.tcx.lifetimes.re_erased.into(),
1816+
GenericParamDefKind::Lifetime { .. } => self.tcx.lifetimes.re_erased.into(),
18171817
GenericParamDefKind::Type { .. } => self
18181818
.next_ty_var(TypeVariableOrigin {
18191819
kind: TypeVariableOriginKind::SubstitutionPlaceholder,

compiler/rustc_infer/src/infer/error_reporting/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2518,7 +2518,7 @@ impl<'tcx> TypeErrCtxt<'_, 'tcx> {
25182518
let lts_names =
25192519
iter::successors(Some(generics), |g| g.parent.map(|p| self.tcx.generics_of(p)))
25202520
.flat_map(|g| &g.params)
2521-
.filter(|p| matches!(p.kind, ty::GenericParamDefKind::Lifetime))
2521+
.filter(|p| matches!(p.kind, ty::GenericParamDefKind::Lifetime { .. }))
25222522
.map(|p| p.name.as_str())
25232523
.collect::<Vec<_>>();
25242524
possible

compiler/rustc_infer/src/infer/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1177,7 +1177,7 @@ impl<'tcx> InferCtxt<'tcx> {
11771177

11781178
pub fn var_for_def(&self, span: Span, param: &ty::GenericParamDef) -> GenericArg<'tcx> {
11791179
match param.kind {
1180-
GenericParamDefKind::Lifetime => {
1180+
GenericParamDefKind::Lifetime { .. } => {
11811181
// Create a region inference variable for the given
11821182
// region parameter definition.
11831183
self.next_region_var(EarlyBoundRegion(span, param.name)).into()

compiler/rustc_middle/src/ty/context.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2434,7 +2434,7 @@ impl<'tcx> TyCtxt<'tcx> {
24342434
let adt_def = self.adt_def(wrapper_def_id);
24352435
let substs =
24362436
InternalSubsts::for_item(self, wrapper_def_id, |param, substs| match param.kind {
2437-
GenericParamDefKind::Lifetime | GenericParamDefKind::Const { .. } => bug!(),
2437+
GenericParamDefKind::Lifetime { .. } | GenericParamDefKind::Const { .. } => bug!(),
24382438
GenericParamDefKind::Type { has_default, .. } => {
24392439
if param.index == 0 {
24402440
ty_param.into()
@@ -2617,7 +2617,7 @@ impl<'tcx> TyCtxt<'tcx> {
26172617

26182618
pub fn mk_param_from_def(self, param: &ty::GenericParamDef) -> GenericArg<'tcx> {
26192619
match param.kind {
2620-
GenericParamDefKind::Lifetime => {
2620+
GenericParamDefKind::Lifetime { .. } => {
26212621
self.mk_region(ty::ReEarlyBound(param.to_early_bound_region_data())).into()
26222622
}
26232623
GenericParamDefKind::Type { .. } => self.mk_ty_param(param.index, param.name).into(),

compiler/rustc_middle/src/ty/generics.rs

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,22 @@ use super::{EarlyBoundRegion, InstantiatedPredicates, ParamConst, ParamTy, Predi
1010

1111
#[derive(Clone, Debug, TyEncodable, TyDecodable, HashStable)]
1212
pub enum GenericParamDefKind {
13-
Lifetime,
13+
Lifetime { late_bound: bool },
1414
Type { has_default: bool, synthetic: bool },
1515
Const { has_default: bool },
1616
}
1717

1818
impl GenericParamDefKind {
1919
pub fn descr(&self) -> &'static str {
2020
match self {
21-
GenericParamDefKind::Lifetime => "lifetime",
21+
GenericParamDefKind::Lifetime { .. } => "lifetime",
2222
GenericParamDefKind::Type { .. } => "type",
2323
GenericParamDefKind::Const { .. } => "constant",
2424
}
2525
}
2626
pub fn to_ord(&self) -> ast::ParamKindOrd {
2727
match self {
28-
GenericParamDefKind::Lifetime => ast::ParamKindOrd::Lifetime,
28+
GenericParamDefKind::Lifetime { .. } => ast::ParamKindOrd::Lifetime,
2929
GenericParamDefKind::Type { .. } | GenericParamDefKind::Const { .. } => {
3030
ast::ParamKindOrd::TypeOrConst
3131
}
@@ -34,7 +34,7 @@ impl GenericParamDefKind {
3434

3535
pub fn is_ty_or_const(&self) -> bool {
3636
match self {
37-
GenericParamDefKind::Lifetime => false,
37+
GenericParamDefKind::Lifetime { .. } => false,
3838
GenericParamDefKind::Type { .. } | GenericParamDefKind::Const { .. } => true,
3939
}
4040
}
@@ -63,7 +63,7 @@ pub struct GenericParamDef {
6363

6464
impl GenericParamDef {
6565
pub fn to_early_bound_region_data(&self) -> ty::EarlyBoundRegion {
66-
if let GenericParamDefKind::Lifetime = self.kind {
66+
if let GenericParamDefKind::Lifetime { .. } = self.kind {
6767
ty::EarlyBoundRegion { def_id: self.def_id, index: self.index, name: self.name }
6868
} else {
6969
bug!("cannot convert a non-lifetime parameter def to an early bound region")
@@ -74,7 +74,7 @@ impl GenericParamDef {
7474
match self.kind {
7575
GenericParamDefKind::Type { has_default, .. }
7676
| GenericParamDefKind::Const { has_default } => has_default,
77-
GenericParamDefKind::Lifetime => false,
77+
GenericParamDefKind::Lifetime { .. } => false,
7878
}
7979
}
8080

@@ -97,6 +97,7 @@ impl GenericParamDef {
9797
#[derive(Default)]
9898
pub struct GenericParamCount {
9999
pub lifetimes: usize,
100+
pub early_lifetimes: usize,
100101
pub types: usize,
101102
pub consts: usize,
102103
}
@@ -149,7 +150,10 @@ impl<'tcx> Generics {
149150

150151
for param in &self.params {
151152
match param.kind {
152-
GenericParamDefKind::Lifetime => own_counts.lifetimes += 1,
153+
GenericParamDefKind::Lifetime { late_bound } => {
154+
own_counts.lifetimes += 1;
155+
own_counts.early_lifetimes += !late_bound as usize;
156+
}
153157
GenericParamDefKind::Type { .. } => own_counts.types += 1,
154158
GenericParamDefKind::Const { .. } => own_counts.consts += 1,
155159
}
@@ -163,7 +167,7 @@ impl<'tcx> Generics {
163167

164168
for param in &self.params {
165169
match param.kind {
166-
GenericParamDefKind::Lifetime => (),
170+
GenericParamDefKind::Lifetime { .. } => (),
167171
GenericParamDefKind::Type { has_default, .. } => {
168172
own_defaults.types += has_default as usize;
169173
}
@@ -195,7 +199,7 @@ impl<'tcx> Generics {
195199
GenericParamDefKind::Type { .. } | GenericParamDefKind::Const { .. } => {
196200
return true;
197201
}
198-
GenericParamDefKind::Lifetime => {}
202+
GenericParamDefKind::Lifetime { .. } => {}
199203
}
200204
}
201205
false
@@ -219,7 +223,7 @@ impl<'tcx> Generics {
219223
) -> &'tcx GenericParamDef {
220224
let param = self.param_at(param.index as usize, tcx);
221225
match param.kind {
222-
GenericParamDefKind::Lifetime => param,
226+
GenericParamDefKind::Lifetime { .. } => param,
223227
_ => bug!("expected lifetime parameter, but found another generic parameter"),
224228
}
225229
}

compiler/rustc_middle/src/ty/instance.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ impl<'tcx> Instance<'tcx> {
314314

315315
pub fn mono(tcx: TyCtxt<'tcx>, def_id: DefId) -> Instance<'tcx> {
316316
let substs = InternalSubsts::for_item(tcx, def_id, |param, _| match param.kind {
317-
ty::GenericParamDefKind::Lifetime => tcx.lifetimes.re_erased.into(),
317+
ty::GenericParamDefKind::Lifetime { .. } => tcx.lifetimes.re_erased.into(),
318318
ty::GenericParamDefKind::Type { .. } => {
319319
bug!("Instance::mono: {:?} has type parameters", def_id)
320320
}

compiler/rustc_monomorphize/src/collector.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1370,7 +1370,7 @@ fn create_mono_items_for_default_impls<'tcx>(
13701370

13711371
let substs =
13721372
InternalSubsts::for_item(tcx, method.def_id, |param, _| match param.kind {
1373-
GenericParamDefKind::Lifetime => tcx.lifetimes.re_erased.into(),
1373+
GenericParamDefKind::Lifetime { .. } => tcx.lifetimes.re_erased.into(),
13741374
GenericParamDefKind::Type { .. }
13751375
| GenericParamDefKind::Const { .. } => {
13761376
trait_ref.substs[param.index as usize]

compiler/rustc_monomorphize/src/polymorphize.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ fn mark_used_by_default_parameters<'tcx>(
178178
| DefKind::Impl => {
179179
for param in &generics.params {
180180
debug!(?param, "(other)");
181-
if let ty::GenericParamDefKind::Lifetime = param.kind {
181+
if let ty::GenericParamDefKind::Lifetime { .. } = param.kind {
182182
unused_parameters.clear(param.index);
183183
}
184184
}

compiler/rustc_privacy/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,7 @@ impl ReachEverythingInTheInterfaceVisitor<'_, '_> {
855855
fn generics(&mut self) -> &mut Self {
856856
for param in &self.ev.tcx.generics_of(self.item_def_id).params {
857857
match param.kind {
858-
GenericParamDefKind::Lifetime => {}
858+
GenericParamDefKind::Lifetime { .. } => {}
859859
GenericParamDefKind::Type { has_default, .. } => {
860860
if has_default {
861861
self.visit(self.ev.tcx.type_of(param.def_id));
@@ -1753,7 +1753,7 @@ impl SearchInterfaceForPrivateItemsVisitor<'_> {
17531753
fn generics(&mut self) -> &mut Self {
17541754
for param in &self.tcx.generics_of(self.item_def_id).params {
17551755
match param.kind {
1756-
GenericParamDefKind::Lifetime => {}
1756+
GenericParamDefKind::Lifetime { .. } => {}
17571757
GenericParamDefKind::Type { has_default, .. } => {
17581758
if has_default {
17591759
self.visit(self.tcx.type_of(param.def_id));

compiler/rustc_trait_selection/src/traits/error_reporting/on_unimplemented.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ impl<'tcx> TypeErrCtxtExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
186186
GenericParamDefKind::Type { .. } | GenericParamDefKind::Const { .. } => {
187187
substs[param.index as usize].to_string()
188188
}
189-
GenericParamDefKind::Lifetime => continue,
189+
GenericParamDefKind::Lifetime { .. } => continue,
190190
};
191191
let name = param.name;
192192
flags.push((name, Some(value)));

0 commit comments

Comments
 (0)