@@ -15,7 +15,6 @@ use abi::FnType;
15
15
use adt;
16
16
use common:: * ;
17
17
use machine;
18
- use rustc:: traits:: Reveal ;
19
18
use rustc:: ty:: { self , Ty , TypeFoldable } ;
20
19
21
20
use type_:: Type ;
@@ -124,37 +123,31 @@ pub fn sizing_type_of<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, t: Ty<'tcx>) -> Typ
124
123
cx. llsizingtypes ( ) . borrow_mut ( ) . insert ( t, llsizingty) ;
125
124
126
125
// FIXME(eddyb) Temporary sanity check for ty::layout.
127
- let layout = cx. tcx ( ) . normalizing_infer_ctxt ( Reveal :: All ) . enter ( |infcx| {
128
- t. layout ( & infcx)
129
- } ) ;
130
- match layout {
131
- Ok ( layout) => {
132
- if !type_is_sized ( cx. tcx ( ) , t) {
133
- if !layout. is_unsized ( ) {
134
- bug ! ( "layout should be unsized for type `{}` / {:#?}" ,
135
- t, layout) ;
136
- }
137
-
138
- // Unsized types get turned into a fat pointer for LLVM.
139
- return llsizingty;
140
- }
141
- let r = layout. size ( & cx. tcx ( ) . data_layout ) . bytes ( ) ;
142
- let l = machine:: llsize_of_alloc ( cx, llsizingty) ;
143
- if r != l {
144
- bug ! ( "size differs (rustc: {}, llvm: {}) for type `{}` / {:#?}" ,
145
- r, l, t, layout) ;
146
- }
147
- let r = layout. align ( & cx. tcx ( ) . data_layout ) . abi ( ) ;
148
- let l = machine:: llalign_of_min ( cx, llsizingty) as u64 ;
149
- if r != l {
150
- bug ! ( "align differs (rustc: {}, llvm: {}) for type `{}` / {:#?}" ,
151
- r, l, t, layout) ;
152
- }
153
- }
154
- Err ( e) => {
155
- bug ! ( "failed to get layout for `{}`: {}" , t, e) ;
126
+ let layout = cx. layout_of ( t) ;
127
+ if !type_is_sized ( cx. tcx ( ) , t) {
128
+ if !layout. is_unsized ( ) {
129
+ bug ! ( "layout should be unsized for type `{}` / {:#?}" ,
130
+ t, layout) ;
156
131
}
132
+
133
+ // Unsized types get turned into a fat pointer for LLVM.
134
+ return llsizingty;
135
+ }
136
+
137
+ let r = layout. size ( & cx. tcx ( ) . data_layout ) . bytes ( ) ;
138
+ let l = machine:: llsize_of_alloc ( cx, llsizingty) ;
139
+ if r != l {
140
+ bug ! ( "size differs (rustc: {}, llvm: {}) for type `{}` / {:#?}" ,
141
+ r, l, t, layout) ;
157
142
}
143
+
144
+ let r = layout. align ( & cx. tcx ( ) . data_layout ) . abi ( ) ;
145
+ let l = machine:: llalign_of_min ( cx, llsizingty) as u64 ;
146
+ if r != l {
147
+ bug ! ( "align differs (rustc: {}, llvm: {}) for type `{}` / {:#?}" ,
148
+ r, l, t, layout) ;
149
+ }
150
+
158
151
llsizingty
159
152
}
160
153
0 commit comments