@@ -9,7 +9,7 @@ use crate::mir::visit::MirVisitable;
9
9
use crate :: ty:: codec:: { TyDecoder , TyEncoder } ;
10
10
use crate :: ty:: fold:: { FallibleTypeFolder , TypeFoldable } ;
11
11
use crate :: ty:: print:: { FmtPrinter , Printer } ;
12
- use crate :: ty:: visit:: { TypeVisitable , TypeVisitableExt , TypeVisitor } ;
12
+ use crate :: ty:: visit:: TypeVisitableExt ;
13
13
use crate :: ty:: { self , List , Ty , TyCtxt } ;
14
14
use crate :: ty:: { AdtDef , InstanceDef , ScalarInt , UserTypeAnnotationIndex } ;
15
15
use crate :: ty:: { GenericArg , InternalSubsts , SubstsRef } ;
@@ -36,7 +36,7 @@ use either::Either;
36
36
37
37
use std:: borrow:: Cow ;
38
38
use std:: fmt:: { self , Debug , Display , Formatter , Write } ;
39
- use std:: ops:: { ControlFlow , Index , IndexMut } ;
39
+ use std:: ops:: { Index , IndexMut } ;
40
40
use std:: { iter, mem} ;
41
41
42
42
pub use self :: query:: * ;
@@ -2722,6 +2722,7 @@ impl<'tcx> UserTypeProjections {
2722
2722
/// `field[0]` (aka `.0`), indicating that the type of `s` is
2723
2723
/// determined by finding the type of the `.0` field from `T`.
2724
2724
#[ derive( Clone , Debug , TyEncodable , TyDecodable , Hash , HashStable , PartialEq ) ]
2725
+ #[ derive( TypeFoldable , TypeVisitable ) ]
2725
2726
pub struct UserTypeProjection {
2726
2727
pub base : UserTypeAnnotationIndex ,
2727
2728
pub projs : Vec < ProjectionKind > ,
@@ -2765,28 +2766,6 @@ impl UserTypeProjection {
2765
2766
}
2766
2767
}
2767
2768
2768
- impl < ' tcx > TypeFoldable < TyCtxt < ' tcx > > for UserTypeProjection {
2769
- fn try_fold_with < F : FallibleTypeFolder < TyCtxt < ' tcx > > > (
2770
- self ,
2771
- folder : & mut F ,
2772
- ) -> Result < Self , F :: Error > {
2773
- Ok ( UserTypeProjection {
2774
- base : self . base . try_fold_with ( folder) ?,
2775
- projs : self . projs . try_fold_with ( folder) ?,
2776
- } )
2777
- }
2778
- }
2779
-
2780
- impl < ' tcx > TypeVisitable < TyCtxt < ' tcx > > for UserTypeProjection {
2781
- fn visit_with < Vs : TypeVisitor < TyCtxt < ' tcx > > > (
2782
- & self ,
2783
- visitor : & mut Vs ,
2784
- ) -> ControlFlow < Vs :: BreakTy > {
2785
- self . base . visit_with ( visitor)
2786
- // Note: there's nothing in `self.proj` to visit.
2787
- }
2788
- }
2789
-
2790
2769
rustc_index:: newtype_index! {
2791
2770
#[ derive( HashStable ) ]
2792
2771
#[ debug_format = "promoted[{}]" ]
0 commit comments