@@ -261,7 +261,7 @@ impl IntRange {
261
261
/// Lint on likely incorrect range patterns (#63987)
262
262
pub ( super ) fn lint_overlapping_range_endpoints < ' a , ' p : ' a , ' tcx : ' a > (
263
263
& self ,
264
- pcx : PatCtxt < ' _ , ' p , ' tcx > ,
264
+ pcx : & PatCtxt < ' _ , ' p , ' tcx > ,
265
265
pats : impl Iterator < Item = & ' a DeconstructedPat < ' p , ' tcx > > ,
266
266
column_count : usize ,
267
267
hir_id : HirId ,
@@ -696,7 +696,7 @@ impl<'tcx> Constructor<'tcx> {
696
696
/// `EvalResult::Deny { .. }`.
697
697
///
698
698
/// This means that the variant has a stdlib unstable feature marking it.
699
- pub ( super ) fn is_unstable_variant ( & self , pcx : PatCtxt < ' _ , ' _ , ' tcx > ) -> bool {
699
+ pub ( super ) fn is_unstable_variant ( & self , pcx : & PatCtxt < ' _ , ' _ , ' tcx > ) -> bool {
700
700
if let Constructor :: Variant ( idx) = self && let ty:: Adt ( adt, _) = pcx. ty . kind ( ) {
701
701
let variant_def_id = adt. variant ( * idx) . def_id ;
702
702
// Filter variants that depend on a disabled unstable feature.
@@ -710,7 +710,7 @@ impl<'tcx> Constructor<'tcx> {
710
710
711
711
/// Checks if the `Constructor` is a `Constructor::Variant` with a `#[doc(hidden)]`
712
712
/// attribute from a type not local to the current crate.
713
- pub ( super ) fn is_doc_hidden_variant ( & self , pcx : PatCtxt < ' _ , ' _ , ' tcx > ) -> bool {
713
+ pub ( super ) fn is_doc_hidden_variant ( & self , pcx : & PatCtxt < ' _ , ' _ , ' tcx > ) -> bool {
714
714
if let Constructor :: Variant ( idx) = self && let ty:: Adt ( adt, _) = pcx. ty . kind ( ) {
715
715
let variant_def_id = adt. variants ( ) [ * idx] . def_id ;
716
716
return pcx. cx . tcx . is_doc_hidden ( variant_def_id) && !variant_def_id. is_local ( ) ;
@@ -731,7 +731,7 @@ impl<'tcx> Constructor<'tcx> {
731
731
732
732
/// The number of fields for this constructor. This must be kept in sync with
733
733
/// `Fields::wildcards`.
734
- pub ( super ) fn arity ( & self , pcx : PatCtxt < ' _ , ' _ , ' tcx > ) -> usize {
734
+ pub ( super ) fn arity ( & self , pcx : & PatCtxt < ' _ , ' _ , ' tcx > ) -> usize {
735
735
match self {
736
736
Single | Variant ( _) => match pcx. ty . kind ( ) {
737
737
ty:: Tuple ( fs) => fs. len ( ) ,
@@ -775,7 +775,7 @@ impl<'tcx> Constructor<'tcx> {
775
775
/// matrix, unless all of them are.
776
776
pub ( super ) fn split < ' a > (
777
777
& self ,
778
- pcx : PatCtxt < ' _ , ' _ , ' tcx > ,
778
+ pcx : & PatCtxt < ' _ , ' _ , ' tcx > ,
779
779
ctors : impl Iterator < Item = & ' a Constructor < ' tcx > > + Clone ,
780
780
) -> SmallVec < [ Self ; 1 ] >
781
781
where
@@ -811,7 +811,7 @@ impl<'tcx> Constructor<'tcx> {
811
811
/// this checks for inclusion.
812
812
// We inline because this has a single call site in `Matrix::specialize_constructor`.
813
813
#[ inline]
814
- pub ( super ) fn is_covered_by < ' p > ( & self , pcx : PatCtxt < ' _ , ' p , ' tcx > , other : & Self ) -> bool {
814
+ pub ( super ) fn is_covered_by < ' p > ( & self , pcx : & PatCtxt < ' _ , ' p , ' tcx > , other : & Self ) -> bool {
815
815
// This must be kept in sync with `is_covered_by_any`.
816
816
match ( self , other) {
817
817
// Wildcards cover anything
@@ -865,7 +865,7 @@ impl<'tcx> Constructor<'tcx> {
865
865
/// assumed to have been split from a wildcard.
866
866
fn is_covered_by_any < ' p > (
867
867
& self ,
868
- pcx : PatCtxt < ' _ , ' p , ' tcx > ,
868
+ pcx : & PatCtxt < ' _ , ' p , ' tcx > ,
869
869
used_ctors : & [ Constructor < ' tcx > ] ,
870
870
) -> bool {
871
871
if used_ctors. is_empty ( ) {
@@ -918,7 +918,7 @@ pub(super) struct SplitWildcard<'tcx> {
918
918
}
919
919
920
920
impl < ' tcx > SplitWildcard < ' tcx > {
921
- pub ( super ) fn new < ' p > ( pcx : PatCtxt < ' _ , ' p , ' tcx > ) -> Self {
921
+ pub ( super ) fn new < ' p > ( pcx : & PatCtxt < ' _ , ' p , ' tcx > ) -> Self {
922
922
debug ! ( "SplitWildcard::new({:?})" , pcx. ty) ;
923
923
let cx = pcx. cx ;
924
924
let make_range = |start, end| {
@@ -1044,7 +1044,7 @@ impl<'tcx> SplitWildcard<'tcx> {
1044
1044
/// do what you want.
1045
1045
pub ( super ) fn split < ' a > (
1046
1046
& mut self ,
1047
- pcx : PatCtxt < ' _ , ' _ , ' tcx > ,
1047
+ pcx : & PatCtxt < ' _ , ' _ , ' tcx > ,
1048
1048
ctors : impl Iterator < Item = & ' a Constructor < ' tcx > > + Clone ,
1049
1049
) where
1050
1050
' tcx : ' a ,
@@ -1056,21 +1056,21 @@ impl<'tcx> SplitWildcard<'tcx> {
1056
1056
}
1057
1057
1058
1058
/// Whether there are any value constructors for this type that are not present in the matrix.
1059
- fn any_missing ( & self , pcx : PatCtxt < ' _ , ' _ , ' tcx > ) -> bool {
1059
+ fn any_missing ( & self , pcx : & PatCtxt < ' _ , ' _ , ' tcx > ) -> bool {
1060
1060
self . iter_missing ( pcx) . next ( ) . is_some ( )
1061
1061
}
1062
1062
1063
1063
/// Iterate over the constructors for this type that are not present in the matrix.
1064
1064
pub ( super ) fn iter_missing < ' a , ' p > (
1065
1065
& ' a self ,
1066
- pcx : PatCtxt < ' a , ' p , ' tcx > ,
1066
+ pcx : & ' a PatCtxt < ' a , ' p , ' tcx > ,
1067
1067
) -> impl Iterator < Item = & ' a Constructor < ' tcx > > + Captures < ' p > {
1068
1068
self . all_ctors . iter ( ) . filter ( move |ctor| !ctor. is_covered_by_any ( pcx, & self . matrix_ctors ) )
1069
1069
}
1070
1070
1071
1071
/// Return the set of constructors resulting from splitting the wildcard. As explained at the
1072
1072
/// top of the file, if any constructors are missing we can ignore the present ones.
1073
- fn into_ctors ( self , pcx : PatCtxt < ' _ , ' _ , ' tcx > ) -> SmallVec < [ Constructor < ' tcx > ; 1 ] > {
1073
+ fn into_ctors ( self , pcx : & PatCtxt < ' _ , ' _ , ' tcx > ) -> SmallVec < [ Constructor < ' tcx > ; 1 ] > {
1074
1074
if self . any_missing ( pcx) {
1075
1075
// Some constructors are missing, thus we can specialize with the special `Missing`
1076
1076
// constructor, which stands for those constructors that are not seen in the matrix,
@@ -1285,7 +1285,7 @@ impl<'p, 'tcx> DeconstructedPat<'p, 'tcx> {
1285
1285
/// Construct a pattern that matches everything that starts with this constructor.
1286
1286
/// For example, if `ctor` is a `Constructor::Variant` for `Option::Some`, we get the pattern
1287
1287
/// `Some(_)`.
1288
- pub ( super ) fn wild_from_ctor ( pcx : PatCtxt < ' _ , ' p , ' tcx > , ctor : Constructor < ' tcx > ) -> Self {
1288
+ pub ( super ) fn wild_from_ctor ( pcx : & PatCtxt < ' _ , ' p , ' tcx > , ctor : Constructor < ' tcx > ) -> Self {
1289
1289
let fields = Fields :: wildcards ( pcx. cx , pcx. ty , & ctor) ;
1290
1290
DeconstructedPat :: new ( ctor, fields, pcx. ty , DUMMY_SP )
1291
1291
}
0 commit comments