@@ -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:: * ;
@@ -2709,6 +2709,7 @@ impl<'tcx> UserTypeProjections {
2709
2709
/// `field[0]` (aka `.0`), indicating that the type of `s` is
2710
2710
/// determined by finding the type of the `.0` field from `T`.
2711
2711
#[ derive( Clone , Debug , TyEncodable , TyDecodable , Hash , HashStable , PartialEq ) ]
2712
+ #[ derive( TypeFoldable , TypeVisitable ) ]
2712
2713
pub struct UserTypeProjection {
2713
2714
pub base : UserTypeAnnotationIndex ,
2714
2715
pub projs : Vec < ProjectionKind > ,
@@ -2752,28 +2753,6 @@ impl UserTypeProjection {
2752
2753
}
2753
2754
}
2754
2755
2755
- impl < ' tcx > TypeFoldable < TyCtxt < ' tcx > > for UserTypeProjection {
2756
- fn try_fold_with < F : FallibleTypeFolder < TyCtxt < ' tcx > > > (
2757
- self ,
2758
- folder : & mut F ,
2759
- ) -> Result < Self , F :: Error > {
2760
- Ok ( UserTypeProjection {
2761
- base : self . base . try_fold_with ( folder) ?,
2762
- projs : self . projs . try_fold_with ( folder) ?,
2763
- } )
2764
- }
2765
- }
2766
-
2767
- impl < ' tcx > TypeVisitable < TyCtxt < ' tcx > > for UserTypeProjection {
2768
- fn visit_with < Vs : TypeVisitor < TyCtxt < ' tcx > > > (
2769
- & self ,
2770
- visitor : & mut Vs ,
2771
- ) -> ControlFlow < Vs :: BreakTy > {
2772
- self . base . visit_with ( visitor)
2773
- // Note: there's nothing in `self.proj` to visit.
2774
- }
2775
- }
2776
-
2777
2756
rustc_index:: newtype_index! {
2778
2757
#[ derive( HashStable ) ]
2779
2758
#[ debug_format = "promoted[{}]" ]
0 commit comments