Auto merge of #139938 - matthiaskrgr:rollup-19ddpus, r=matthiaskrgr · rust-lang/rust@79a272c (original) (raw)

`@@ -16,7 +16,7 @@ use rustc_errors::ErrorGuaranteed;

`

16

16

`use rustc_hir::def::{DefKind, Res};

`

17

17

`use rustc_hir::intravisit::{self, InferKind, Visitor, VisitorExt};

`

18

18

`use rustc_hir::{

`

19

``

`-

self as hir, AmbigArg, GenericArg, GenericParam, GenericParamKind, HirId, LifetimeName, Node,

`

``

19

`+

self as hir, AmbigArg, GenericArg, GenericParam, GenericParamKind, HirId, LifetimeKind, Node,

`

20

20

`};

`

21

21

`use rustc_macros::extension;

`

22

22

`use rustc_middle::hir::nested_filter;

`

`@@ -646,14 +646,14 @@ impl<'a, 'tcx> Visitor<'tcx> for BoundVarContext<'a, 'tcx> {

`

646

646

`arg: &'tcx hir::PreciseCapturingArg<'tcx>,

`

647

647

`) -> Self::Result {

`

648

648

`match *arg {

`

649

``

`-

hir::PreciseCapturingArg::Lifetime(lt) => match lt.res {

`

650

``

`-

LifetimeName::Param(def_id) => {

`

``

649

`+

hir::PreciseCapturingArg::Lifetime(lt) => match lt.kind {

`

``

650

`+

LifetimeKind::Param(def_id) => {

`

651

651

`self.resolve_lifetime_ref(def_id, lt);

`

652

652

`}

`

653

``

`-

LifetimeName::Error => {}

`

654

``

`-

LifetimeName::ImplicitObjectLifetimeDefault

`

655

``

`-

| LifetimeName::Infer

`

656

``

`-

| LifetimeName::Static => {

`

``

653

`+

LifetimeKind::Error => {}

`

``

654

`+

LifetimeKind::ImplicitObjectLifetimeDefault

`

``

655

`+

| LifetimeKind::Infer

`

``

656

`+

| LifetimeKind::Static => {

`

657

657

`self.tcx.dcx().emit_err(errors::BadPreciseCapture {

`

658

658

`span: lt.ident.span,

`

659

659

`kind: "lifetime",

`

`@@ -774,26 +774,26 @@ impl<'a, 'tcx> Visitor<'tcx> for BoundVarContext<'a, 'tcx> {

`

774

774

`);

`

775

775

`}

`

776

776

`});

`

777

``

`-

match lifetime.res {

`

778

``

`-

LifetimeName::ImplicitObjectLifetimeDefault => {

`

``

777

`+

match lifetime.kind {

`

``

778

`+

LifetimeKind::ImplicitObjectLifetimeDefault => {

`

779

779

`// If the user does not write anything, we

`

780

780

`// use the object lifetime defaulting

`

781

781

`` // rules. So e.g., Box<dyn Debug> becomes

``

782

782

`` // Box<dyn Debug + 'static>.

``

783

783

`self.resolve_object_lifetime_default(&*lifetime)

`

784

784

`}

`

785

``

`-

LifetimeName::Infer => {

`

``

785

`+

LifetimeKind::Infer => {

`

786

786

`` // If the user writes '_, we use the ordinary elision

``

787

787

`` // rules. So the '_ in e.g., Box<dyn Debug + '_> will be

``

788

788

`` // resolved the same as the '_ in &'_ Foo.

``

789

789

`//

`

790

790

`// cc #48468

`

791

791

`}

`

792

``

`-

LifetimeName::Param(..) | LifetimeName::Static => {

`

``

792

`+

LifetimeKind::Param(..) | LifetimeKind::Static => {

`

793

793

`// If the user wrote an explicit name, use that.

`

794

794

`self.visit_lifetime(&*lifetime);

`

795

795

`}

`

796

``

`-

LifetimeName::Error => {}

`

``

796

`+

LifetimeKind::Error => {}

`

797

797

`}

`

798

798

`}

`

799

799

` hir::TyKind::Ref(lifetime_ref, ref mt) => {

`

`@@ -873,17 +873,17 @@ impl<'a, 'tcx> Visitor<'tcx> for BoundVarContext<'a, 'tcx> {

`

873

873

``

874

874

`#[instrument(level = "debug", skip(self))]

`

875

875

`fn visit_lifetime(&mut self, lifetime_ref: &'tcx hir::Lifetime) {

`

876

``

`-

match lifetime_ref.res {

`

877

``

`-

hir::LifetimeName::Static => {

`

``

876

`+

match lifetime_ref.kind {

`

``

877

`+

hir::LifetimeKind::Static => {

`

878

878

`self.insert_lifetime(lifetime_ref, ResolvedArg::StaticLifetime)

`

879

879

`}

`

880

``

`-

hir::LifetimeName::Param(param_def_id) => {

`

``

880

`+

hir::LifetimeKind::Param(param_def_id) => {

`

881

881

`self.resolve_lifetime_ref(param_def_id, lifetime_ref)

`

882

882

`}

`

883

883

`` // If we've already reported an error, just ignore lifetime_ref.

``

884

``

`-

hir::LifetimeName::Error => {}

`

``

884

`+

hir::LifetimeKind::Error => {}

`

885

885

`// Those will be resolved by typechecking.

`

886

``

`-

hir::LifetimeName::ImplicitObjectLifetimeDefault | hir::LifetimeName::Infer => {}

`

``

886

`+

hir::LifetimeKind::ImplicitObjectLifetimeDefault | hir::LifetimeKind::Infer => {}

`

887

887

`}

`

888

888

`}

`

889

889

``

`@@ -1063,15 +1063,15 @@ fn object_lifetime_default(tcx: TyCtxt<'_>, param_def_id: LocalDefId) -> ObjectL

`

1063

1063

``

1064

1064

`for bound in bound.bounds {

`

1065

1065

`if let hir::GenericBound::Outlives(lifetime) = bound {

`

1066

``

`-

set.insert(lifetime.res);

`

``

1066

`+

set.insert(lifetime.kind);

`

1067

1067

`}

`

1068

1068

`}

`

1069

1069

`}

`

1070

1070

``

1071

1071

`match set {

`

1072

1072

`Set1::Empty => ObjectLifetimeDefault::Empty,

`

1073

``

`-

Set1::One(hir::LifetimeName::Static) => ObjectLifetimeDefault::Static,

`

1074

``

`-

Set1::One(hir::LifetimeName::Param(param_def_id)) => {

`

``

1073

`+

Set1::One(hir::LifetimeKind::Static) => ObjectLifetimeDefault::Static,

`

``

1074

`+

Set1::One(hir::LifetimeKind::Param(param_def_id)) => {

`

1075

1075

`ObjectLifetimeDefault::Param(param_def_id.to_def_id())

`

1076

1076

`}

`

1077

1077

` _ => ObjectLifetimeDefault::Ambiguous,

`

`@@ -1241,7 +1241,7 @@ impl<'a, 'tcx> BoundVarContext<'a, 'tcx> {

`

1241

1241

`// Fresh lifetimes in APIT used to be allowed in async fns and forbidden in

`

1242

1242

`// regular fns.

`

1243

1243

`if let Some(hir::PredicateOrigin::ImplTrait) = where_bound_origin

`

1244

``

`-

&& let hir::LifetimeName::Param(param_id) = lifetime_ref.res

`

``

1244

`+

&& let hir::LifetimeKind::Param(param_id) = lifetime_ref.kind

`

1245

1245

` && let Some(generics) =

`

1246

1246

`self.tcx.hir_get_generics(self.tcx.local_parent(param_id))

`

1247

1247

` && let Some(param) = generics.params.iter().find(|p| p.def_id == param_id)

`

`@@ -2440,7 +2440,7 @@ fn is_late_bound_map(

`

2440

2440

`}

`

2441

2441

``

2442

2442

`fn visit_lifetime(&mut self, lifetime_ref: &'v hir::Lifetime) {

`

2443

``

`-

if let hir::LifetimeName::Param(def_id) = lifetime_ref.res {

`

``

2443

`+

if let hir::LifetimeKind::Param(def_id) = lifetime_ref.kind {

`

2444

2444

`self.regions.insert(def_id);

`

2445

2445

`}

`

2446

2446

`}

`

`@@ -2453,7 +2453,7 @@ fn is_late_bound_map(

`

2453

2453

``

2454

2454

`impl<'tcx> Visitor<'tcx> for AllCollector {

`

2455

2455

`fn visit_lifetime(&mut self, lifetime_ref: &'tcx hir::Lifetime) {

`

2456

``

`-

if let hir::LifetimeName::Param(def_id) = lifetime_ref.res {

`

``

2456

`+

if let hir::LifetimeKind::Param(def_id) = lifetime_ref.kind {

`

2457

2457

`self.regions.insert(def_id);

`

2458

2458

`}

`

2459

2459

`}

`