@@ -53,7 +53,7 @@ pub fn get_ptr_and_method_ref<'a, 'tcx: 'a>(
53
53
pub fn get_vtable < ' a , ' tcx : ' a > (
54
54
fx : & mut FunctionCx < ' a , ' tcx , impl Backend > ,
55
55
ty : Ty < ' tcx > ,
56
- trait_ref : Option < ty:: PolyExistentialTraitRef < ' tcx > > ,
56
+ trait_ref : ty:: PolyExistentialTraitRef < ' tcx > ,
57
57
) -> Value {
58
58
let data_id = if let Some ( data_id) = fx. caches . vtables . get ( & ( ty, trait_ref) ) {
59
59
* data_id
@@ -72,7 +72,7 @@ pub fn get_vtable<'a, 'tcx: 'a>(
72
72
fn build_vtable < ' a , ' tcx : ' a > (
73
73
fx : & mut FunctionCx < ' a , ' tcx , impl Backend > ,
74
74
ty : Ty < ' tcx > ,
75
- trait_ref : Option < ty:: PolyExistentialTraitRef < ' tcx > > ,
75
+ trait_ref : ty:: PolyExistentialTraitRef < ' tcx > ,
76
76
) -> DataId {
77
77
let tcx = fx. tcx ;
78
78
let usize_size = fx. layout_of ( fx. tcx . types . usize ) . size . bytes ( ) as usize ;
@@ -87,18 +87,16 @@ fn build_vtable<'a, 'tcx: 'a>(
87
87
88
88
let mut components: Vec < _ > = vec ! [ Some ( drop_in_place_fn) , None , None ] ;
89
89
90
- if let Some ( trait_ref) = trait_ref {
91
- let trait_ref = trait_ref. with_self_ty ( tcx, ty) ;
92
- let methods = tcx. vtable_methods ( trait_ref) ;
93
- let methods = methods. iter ( ) . cloned ( ) . map ( |opt_mth| {
94
- opt_mth. map_or ( None , |( def_id, substs) | {
95
- Some ( fx. get_function_id (
96
- Instance :: resolve ( tcx, ParamEnv :: reveal_all ( ) , def_id, substs) . unwrap ( ) ,
97
- ) )
98
- } )
99
- } ) ;
100
- components. extend ( methods) ;
101
- }
90
+ let trait_ref = trait_ref. with_self_ty ( tcx, ty) ;
91
+ let methods = tcx. vtable_methods ( trait_ref) ;
92
+ let methods = methods. iter ( ) . cloned ( ) . map ( |opt_mth| {
93
+ opt_mth. map_or ( None , |( def_id, substs) | {
94
+ Some ( fx. get_function_id (
95
+ Instance :: resolve ( tcx, ParamEnv :: reveal_all ( ) , def_id, substs) . unwrap ( ) ,
96
+ ) )
97
+ } )
98
+ } ) ;
99
+ components. extend ( methods) ;
102
100
103
101
let mut data_ctx = DataContext :: new ( ) ;
104
102
let mut data = :: std:: iter:: repeat ( 0u8 )
0 commit comments