@@ -86,7 +86,7 @@ struct MatchVisitor<'thir, 'p, 'tcx> {
8686 thir : & ' thir Thir < ' tcx > ,
8787 lint_level : HirId ,
8888 let_source : LetSource ,
89- pattern_arena : & ' p TypedArena < DeconstructedPat < ' p , ' tcx > > ,
89+ pattern_arena : & ' p TypedArena < DeconstructedPat < ' p , ' thir , ' tcx > > ,
9090 dropless_arena : & ' p DroplessArena ,
9191 /// Tracks if we encountered an error while checking this body. That the first function to
9292 /// report it stores it here. Some functions return `Result` to allow callers to short-circuit
@@ -279,9 +279,9 @@ impl<'thir, 'p, 'tcx> MatchVisitor<'thir, 'p, 'tcx> {
279279
280280 fn lower_pattern (
281281 & mut self ,
282- cx : & MatchCheckCtxt < ' p , ' tcx > ,
282+ cx : & MatchCheckCtxt < ' p , ' thir , ' tcx > ,
283283 pat : & ' thir Pat < ' tcx > ,
284- ) -> Result < & ' p DeconstructedPat < ' p , ' tcx > , ErrorGuaranteed > {
284+ ) -> Result < & ' p DeconstructedPat < ' p , ' thir , ' tcx > , ErrorGuaranteed > {
285285 if let Err ( err) = pat. pat_error_reported ( ) {
286286 self . error = Err ( err) ;
287287 Err ( err)
@@ -374,7 +374,7 @@ impl<'thir, 'p, 'tcx> MatchVisitor<'thir, 'p, 'tcx> {
374374 whole_match_span : Option < Span > ,
375375 scrutinee : Option < & Expr < ' tcx > > ,
376376 scrut_span : Span ,
377- ) -> MatchCheckCtxt < ' p , ' tcx > {
377+ ) -> MatchCheckCtxt < ' p , ' thir , ' tcx > {
378378 let refutable = match refutability {
379379 Irrefutable => false ,
380380 Refutable => true ,
@@ -554,7 +554,8 @@ impl<'thir, 'p, 'tcx> MatchVisitor<'thir, 'p, 'tcx> {
554554 pat : & ' thir Pat < ' tcx > ,
555555 refutability : RefutableFlag ,
556556 scrut : Option < & Expr < ' tcx > > ,
557- ) -> Result < ( MatchCheckCtxt < ' p , ' tcx > , UsefulnessReport < ' p , ' tcx > ) , ErrorGuaranteed > {
557+ ) -> Result < ( MatchCheckCtxt < ' p , ' thir , ' tcx > , UsefulnessReport < ' p , ' thir , ' tcx > ) , ErrorGuaranteed >
558+ {
558559 let cx = self . new_cx ( refutability, None , scrut, pat. span ) ;
559560 let pat = self . lower_pattern ( & cx, pat) ?;
560561 let arms = [ MatchArm { pat, arm_data : self . lint_level , has_guard : false } ] ;
@@ -840,9 +841,9 @@ fn report_irrefutable_let_patterns(
840841}
841842
842843/// Report unreachable arms, if any.
843- fn report_arm_reachability < ' p , ' tcx > (
844- cx : & MatchCheckCtxt < ' p , ' tcx > ,
845- report : & UsefulnessReport < ' p , ' tcx > ,
844+ fn report_arm_reachability < ' p , ' thir , ' tcx > (
845+ cx : & MatchCheckCtxt < ' p , ' thir , ' tcx > ,
846+ report : & UsefulnessReport < ' p , ' thir , ' tcx > ,
846847) {
847848 let report_unreachable_pattern = |span, hir_id, catchall : Option < Span > | {
848849 cx. tcx . emit_spanned_lint (
@@ -880,7 +881,7 @@ fn report_arm_reachability<'p, 'tcx>(
880881}
881882
882883/// Checks for common cases of "catchall" patterns that may not be intended as such.
883- fn pat_is_catchall ( pat : & DeconstructedPat < ' _ , ' _ > ) -> bool {
884+ fn pat_is_catchall ( pat : & DeconstructedPat < ' _ , ' _ , ' _ > ) -> bool {
884885 match pat. ctor ( ) {
885886 Constructor :: Wildcard => true ,
886887 Constructor :: Struct | Constructor :: Ref => pat. iter_fields ( ) . all ( |pat| pat_is_catchall ( pat) ) ,
@@ -889,12 +890,12 @@ fn pat_is_catchall(pat: &DeconstructedPat<'_, '_>) -> bool {
889890}
890891
891892/// Report that a match is not exhaustive.
892- fn report_non_exhaustive_match < ' p , ' tcx > (
893- cx : & MatchCheckCtxt < ' p , ' tcx > ,
893+ fn report_non_exhaustive_match < ' p , ' thir , ' tcx > (
894+ cx : & MatchCheckCtxt < ' p , ' thir , ' tcx > ,
894895 thir : & Thir < ' tcx > ,
895896 scrut_ty : Ty < ' tcx > ,
896897 sp : Span ,
897- witnesses : Vec < WitnessPat < ' p , ' tcx > > ,
898+ witnesses : Vec < WitnessPat < ' p , ' thir , ' tcx > > ,
898899 arms : & [ ArmId ] ,
899900 expr_span : Span ,
900901) -> ErrorGuaranteed {
@@ -1089,12 +1090,12 @@ fn report_non_exhaustive_match<'p, 'tcx>(
10891090 err. emit ( )
10901091}
10911092
1092- fn joined_uncovered_patterns < ' p , ' tcx > (
1093- cx : & MatchCheckCtxt < ' p , ' tcx > ,
1094- witnesses : & [ WitnessPat < ' p , ' tcx > ] ,
1093+ fn joined_uncovered_patterns < ' p , ' thir , ' tcx > (
1094+ cx : & MatchCheckCtxt < ' p , ' thir , ' tcx > ,
1095+ witnesses : & [ WitnessPat < ' p , ' thir , ' tcx > ] ,
10951096) -> String {
10961097 const LIMIT : usize = 3 ;
1097- let pat_to_str = |pat : & WitnessPat < ' p , ' tcx > | cx. hoist_witness_pat ( pat) . to_string ( ) ;
1098+ let pat_to_str = |pat : & WitnessPat < ' p , ' thir , ' tcx > | cx. hoist_witness_pat ( pat) . to_string ( ) ;
10981099 match witnesses {
10991100 [ ] => bug ! ( ) ,
11001101 [ witness] => format ! ( "`{}`" , cx. hoist_witness_pat( witness) ) ,
@@ -1111,8 +1112,8 @@ fn joined_uncovered_patterns<'p, 'tcx>(
11111112}
11121113
11131114fn collect_non_exhaustive_tys < ' tcx > (
1114- cx : & MatchCheckCtxt < ' _ , ' tcx > ,
1115- pat : & WitnessPat < ' _ , ' tcx > ,
1115+ cx : & MatchCheckCtxt < ' _ , ' _ , ' tcx > ,
1116+ pat : & WitnessPat < ' _ , ' _ , ' tcx > ,
11161117 non_exhaustive_tys : & mut FxIndexSet < Ty < ' tcx > > ,
11171118) {
11181119 if matches ! ( pat. ctor( ) , Constructor :: NonExhaustive ) {
@@ -1131,7 +1132,7 @@ fn collect_non_exhaustive_tys<'tcx>(
11311132fn report_adt_defined_here < ' tcx > (
11321133 tcx : TyCtxt < ' tcx > ,
11331134 ty : Ty < ' tcx > ,
1134- witnesses : & [ WitnessPat < ' _ , ' tcx > ] ,
1135+ witnesses : & [ WitnessPat < ' _ , ' _ , ' tcx > ] ,
11351136 point_at_non_local_ty : bool ,
11361137) -> Option < AdtDefinedHere < ' tcx > > {
11371138 let ty = ty. peel_refs ( ) ;
@@ -1153,10 +1154,10 @@ fn report_adt_defined_here<'tcx>(
11531154 Some ( AdtDefinedHere { adt_def_span, ty, variants } )
11541155}
11551156
1156- fn maybe_point_at_variant < ' a , ' p : ' a , ' tcx : ' p > (
1157+ fn maybe_point_at_variant < ' a , ' p : ' a , ' thir : ' p , ' tcx : ' thir > (
11571158 tcx : TyCtxt < ' tcx > ,
11581159 def : AdtDef < ' tcx > ,
1159- patterns : impl Iterator < Item = & ' a WitnessPat < ' p , ' tcx > > ,
1160+ patterns : impl Iterator < Item = & ' a WitnessPat < ' p , ' thir , ' tcx > > ,
11601161) -> Vec < Span > {
11611162 let mut covered = vec ! [ ] ;
11621163 for pattern in patterns {
0 commit comments