@@ -82,7 +82,7 @@ struct MatchVisitor<'thir, 'p, 'tcx> {
8282 thir : & ' thir Thir < ' tcx > ,
8383 lint_level : HirId ,
8484 let_source : LetSource ,
85- pattern_arena : & ' p TypedArena < DeconstructedPat < ' p , ' tcx > > ,
85+ pattern_arena : & ' p TypedArena < DeconstructedPat < ' p , ' thir , ' tcx > > ,
8686 dropless_arena : & ' p DroplessArena ,
8787 /// Tracks if we encountered an error while checking this body. That the first function to
8888 /// report it stores it here. Some functions return `Result` to allow callers to short-circuit
@@ -275,9 +275,9 @@ impl<'thir, 'p, 'tcx> MatchVisitor<'thir, 'p, 'tcx> {
275275
276276 fn lower_pattern (
277277 & mut self ,
278- cx : & MatchCheckCtxt < ' p , ' tcx > ,
278+ cx : & MatchCheckCtxt < ' p , ' thir , ' tcx > ,
279279 pat : & ' thir Pat < ' tcx > ,
280- ) -> Result < & ' p DeconstructedPat < ' p , ' tcx > , ErrorGuaranteed > {
280+ ) -> Result < & ' p DeconstructedPat < ' p , ' thir , ' tcx > , ErrorGuaranteed > {
281281 if let Err ( err) = pat. pat_error_reported ( ) {
282282 self . error = Err ( err) ;
283283 Err ( err)
@@ -370,7 +370,7 @@ impl<'thir, 'p, 'tcx> MatchVisitor<'thir, 'p, 'tcx> {
370370 whole_match_span : Option < Span > ,
371371 scrutinee : Option < & Expr < ' tcx > > ,
372372 scrut_span : Span ,
373- ) -> MatchCheckCtxt < ' p , ' tcx > {
373+ ) -> MatchCheckCtxt < ' p , ' thir , ' tcx > {
374374 let refutable = match refutability {
375375 Irrefutable => false ,
376376 Refutable => true ,
@@ -550,7 +550,8 @@ impl<'thir, 'p, 'tcx> MatchVisitor<'thir, 'p, 'tcx> {
550550 pat : & ' thir Pat < ' tcx > ,
551551 refutability : RefutableFlag ,
552552 scrut : Option < & Expr < ' tcx > > ,
553- ) -> Result < ( MatchCheckCtxt < ' p , ' tcx > , UsefulnessReport < ' p , ' tcx > ) , ErrorGuaranteed > {
553+ ) -> Result < ( MatchCheckCtxt < ' p , ' thir , ' tcx > , UsefulnessReport < ' p , ' thir , ' tcx > ) , ErrorGuaranteed >
554+ {
554555 let cx = self . new_cx ( refutability, None , scrut, pat. span ) ;
555556 let pat = self . lower_pattern ( & cx, pat) ?;
556557 let arms = [ MatchArm { pat, arm_data : self . lint_level , has_guard : false } ] ;
@@ -836,9 +837,9 @@ fn report_irrefutable_let_patterns(
836837}
837838
838839/// Report unreachable arms, if any.
839- fn report_arm_reachability < ' p , ' tcx > (
840- cx : & MatchCheckCtxt < ' p , ' tcx > ,
841- report : & UsefulnessReport < ' p , ' tcx > ,
840+ fn report_arm_reachability < ' p , ' thir , ' tcx > (
841+ cx : & MatchCheckCtxt < ' p , ' thir , ' tcx > ,
842+ report : & UsefulnessReport < ' p , ' thir , ' tcx > ,
842843) {
843844 let report_unreachable_pattern = |span, hir_id, catchall : Option < Span > | {
844845 cx. tcx . emit_spanned_lint (
@@ -876,7 +877,7 @@ fn report_arm_reachability<'p, 'tcx>(
876877}
877878
878879/// Checks for common cases of "catchall" patterns that may not be intended as such.
879- fn pat_is_catchall ( pat : & DeconstructedPat < ' _ , ' _ > ) -> bool {
880+ fn pat_is_catchall ( pat : & DeconstructedPat < ' _ , ' _ , ' _ > ) -> bool {
880881 match pat. ctor ( ) {
881882 Constructor :: Wildcard => true ,
882883 Constructor :: Struct | Constructor :: Ref => pat. iter_fields ( ) . all ( |pat| pat_is_catchall ( pat) ) ,
@@ -885,12 +886,12 @@ fn pat_is_catchall(pat: &DeconstructedPat<'_, '_>) -> bool {
885886}
886887
887888/// Report that a match is not exhaustive.
888- fn report_non_exhaustive_match < ' p , ' tcx > (
889- cx : & MatchCheckCtxt < ' p , ' tcx > ,
889+ fn report_non_exhaustive_match < ' p , ' thir , ' tcx > (
890+ cx : & MatchCheckCtxt < ' p , ' thir , ' tcx > ,
890891 thir : & Thir < ' tcx > ,
891892 scrut_ty : Ty < ' tcx > ,
892893 sp : Span ,
893- witnesses : Vec < WitnessPat < ' p , ' tcx > > ,
894+ witnesses : Vec < WitnessPat < ' p , ' thir , ' tcx > > ,
894895 arms : & [ ArmId ] ,
895896 expr_span : Span ,
896897) -> ErrorGuaranteed {
@@ -1085,12 +1086,12 @@ fn report_non_exhaustive_match<'p, 'tcx>(
10851086 err. emit ( )
10861087}
10871088
1088- fn joined_uncovered_patterns < ' p , ' tcx > (
1089- cx : & MatchCheckCtxt < ' p , ' tcx > ,
1090- witnesses : & [ WitnessPat < ' p , ' tcx > ] ,
1089+ fn joined_uncovered_patterns < ' p , ' thir , ' tcx > (
1090+ cx : & MatchCheckCtxt < ' p , ' thir , ' tcx > ,
1091+ witnesses : & [ WitnessPat < ' p , ' thir , ' tcx > ] ,
10911092) -> String {
10921093 const LIMIT : usize = 3 ;
1093- let pat_to_str = |pat : & WitnessPat < ' p , ' tcx > | cx. hoist_witness_pat ( pat) . to_string ( ) ;
1094+ let pat_to_str = |pat : & WitnessPat < ' p , ' thir , ' tcx > | cx. hoist_witness_pat ( pat) . to_string ( ) ;
10941095 match witnesses {
10951096 [ ] => bug ! ( ) ,
10961097 [ witness] => format ! ( "`{}`" , cx. hoist_witness_pat( witness) ) ,
@@ -1107,8 +1108,8 @@ fn joined_uncovered_patterns<'p, 'tcx>(
11071108}
11081109
11091110fn collect_non_exhaustive_tys < ' tcx > (
1110- cx : & MatchCheckCtxt < ' _ , ' tcx > ,
1111- pat : & WitnessPat < ' _ , ' tcx > ,
1111+ cx : & MatchCheckCtxt < ' _ , ' _ , ' tcx > ,
1112+ pat : & WitnessPat < ' _ , ' _ , ' tcx > ,
11121113 non_exhaustive_tys : & mut FxIndexSet < Ty < ' tcx > > ,
11131114) {
11141115 if matches ! ( pat. ctor( ) , Constructor :: NonExhaustive ) {
@@ -1127,7 +1128,7 @@ fn collect_non_exhaustive_tys<'tcx>(
11271128fn report_adt_defined_here < ' tcx > (
11281129 tcx : TyCtxt < ' tcx > ,
11291130 ty : Ty < ' tcx > ,
1130- witnesses : & [ WitnessPat < ' _ , ' tcx > ] ,
1131+ witnesses : & [ WitnessPat < ' _ , ' _ , ' tcx > ] ,
11311132 point_at_non_local_ty : bool ,
11321133) -> Option < AdtDefinedHere < ' tcx > > {
11331134 let ty = ty. peel_refs ( ) ;
@@ -1149,10 +1150,10 @@ fn report_adt_defined_here<'tcx>(
11491150 Some ( AdtDefinedHere { adt_def_span, ty, variants } )
11501151}
11511152
1152- fn maybe_point_at_variant < ' a , ' p : ' a , ' tcx : ' p > (
1153+ fn maybe_point_at_variant < ' a , ' p : ' a , ' thir : ' p , ' tcx : ' thir > (
11531154 tcx : TyCtxt < ' tcx > ,
11541155 def : AdtDef < ' tcx > ,
1155- patterns : impl Iterator < Item = & ' a WitnessPat < ' p , ' tcx > > ,
1156+ patterns : impl Iterator < Item = & ' a WitnessPat < ' p , ' thir , ' tcx > > ,
11561157) -> Vec < Span > {
11571158 let mut covered = vec ! [ ] ;
11581159 for pattern in patterns {
0 commit comments