@@ -50,13 +50,6 @@ impl<'a, 'tcx> LvalueRef<'tcx> {
50
50
LvalueRef :: new_sized ( llval, LvalueTy :: from_ty ( ty) )
51
51
}
52
52
53
- pub fn new_unsized ( llval : ValueRef , llextra : ValueRef , ty : LvalueTy < ' tcx > ) -> LvalueRef < ' tcx > {
54
- LvalueRef {
55
- llval : llval,
56
- llextra : llextra,
57
- ty : ty,
58
- }
59
- }
60
53
pub fn new_unsized_ty ( llval : ValueRef , llextra : ValueRef , ty : Ty < ' tcx > ) -> LvalueRef < ' tcx > {
61
54
LvalueRef {
62
55
llval : llval,
@@ -81,7 +74,7 @@ impl<'a, 'tcx> LvalueRef<'tcx> {
81
74
!self . llextra . is_null ( )
82
75
}
83
76
84
- pub fn struct_field_ptr (
77
+ fn struct_field_ptr (
85
78
self ,
86
79
bcx : & Builder < ' a , ' tcx > ,
87
80
st : & layout:: Struct ,
@@ -298,14 +291,12 @@ impl<'a, 'tcx> MirContext<'a, 'tcx> {
298
291
let ( llprojected, llextra) = match projection. elem {
299
292
mir:: ProjectionElem :: Deref => bug ! ( ) ,
300
293
mir:: ProjectionElem :: Field ( ref field, _) => {
301
- let is_sized = self . ccx . shared ( ) . type_is_sized ( projected_ty. to_ty ( tcx) ) ;
302
- let base = if is_sized {
303
- LvalueRef :: new_sized ( tr_base. llval , tr_base. ty )
294
+ let llextra = if self . ccx . shared ( ) . type_is_sized ( projected_ty. to_ty ( tcx) ) {
295
+ ptr:: null_mut ( )
304
296
} else {
305
- LvalueRef :: new_unsized ( tr_base. llval , tr_base . llextra , tr_base . ty )
297
+ tr_base. llextra
306
298
} ;
307
- let llprojected = base. trans_field_ptr ( bcx, field. index ( ) ) ;
308
- ( llprojected, base. llextra )
299
+ ( tr_base. trans_field_ptr ( bcx, field. index ( ) ) , llextra)
309
300
}
310
301
mir:: ProjectionElem :: Index ( ref index) => {
311
302
let index = self . trans_operand ( bcx, index) ;
0 commit comments