@@ -233,14 +233,14 @@ impl<'b, 'a, 'tcx:'b> ConstPropagator<'b, 'a, 'tcx> {
233
233
}
234
234
}
235
235
236
- fn eval_place ( & mut self , place : & Place < ' tcx > ) -> Option < Const < ' tcx > > {
236
+ fn eval_place ( & mut self , place : & Place < ' tcx > , source_info : SourceInfo ) -> Option < Const < ' tcx > > {
237
237
match * place {
238
238
Place :: Local ( loc) => self . places [ loc] . clone ( ) ,
239
239
Place :: Projection ( ref proj) => match proj. elem {
240
240
ProjectionElem :: Field ( field, _) => {
241
241
trace ! ( "field proj on {:?}" , proj. base) ;
242
- let ( base, ty, span) = self . eval_place ( & proj. base ) ?;
243
- let valty = self . use_ecx ( span , |this| {
242
+ let ( base, ty, span) = self . eval_place ( & proj. base , source_info ) ?;
243
+ let valty = self . use_ecx ( source_info , |this| {
244
244
this. ecx . read_field ( base, None , field, ty)
245
245
} ) ?;
246
246
Some ( ( valty. value , valty. ty , span) )
@@ -254,7 +254,8 @@ impl<'b, 'a, 'tcx:'b> ConstPropagator<'b, 'a, 'tcx> {
254
254
fn eval_operand ( & mut self , op : & Operand < ' tcx > , source_info : SourceInfo ) -> Option < Const < ' tcx > > {
255
255
match * op {
256
256
Operand :: Constant ( ref c) => self . eval_constant ( c, source_info) ,
257
- Operand :: Move ( ref place) | Operand :: Copy ( ref place) => self . eval_place ( place) ,
257
+ | Operand :: Move ( ref place)
258
+ | Operand :: Copy ( ref place) => self . eval_place ( place, source_info) ,
258
259
}
259
260
}
260
261
0 commit comments