@@ -118,7 +118,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
118
118
let mut drops = Vec :: new ( ) ;
119
119
self . drop ( lval, ty, & mut drops) ?;
120
120
self . goto_block ( target) ;
121
- self . eval_drop_impls ( drops) ?;
121
+ self . eval_drop_impls ( drops, terminator . source_info . span ) ?;
122
122
}
123
123
124
124
Assert { ref cond, expected, ref msg, target, .. } => {
@@ -151,12 +151,10 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
151
151
Ok ( ( ) )
152
152
}
153
153
154
- pub fn eval_drop_impls ( & mut self , drops : Vec < ( DefId , Value , & ' tcx Substs < ' tcx > ) > ) -> EvalResult < ' tcx , ( ) > {
155
- let span = self . frame ( ) . span ;
154
+ pub fn eval_drop_impls ( & mut self , drops : Vec < ( DefId , Value , & ' tcx Substs < ' tcx > ) > , span : Span ) -> EvalResult < ' tcx , ( ) > {
156
155
// add them to the stack in reverse order, because the impl that needs to run the last
157
156
// is the one that needs to be at the bottom of the stack
158
157
for ( drop_def_id, self_arg, substs) in drops. into_iter ( ) . rev ( ) {
159
- // FIXME: supply a real span
160
158
let mir = self . load_mir ( drop_def_id) ?;
161
159
trace ! ( "substs for drop glue: {:?}" , substs) ;
162
160
self . push_stack_frame (
0 commit comments