From 4165c890ed573cc801a27483935ccdbc01fcd75b Mon Sep 17 00:00:00 2001 From: Oliver Scherer Date: Wed, 30 Jan 2019 15:05:50 +0100 Subject: [PATCH] Can't use `layout_of_local` for the frame currently being created --- src/librustc_mir/interpret/eval_context.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/librustc_mir/interpret/eval_context.rs b/src/librustc_mir/interpret/eval_context.rs index d890e2fbe46..bb4f5c131d6 100644 --- a/src/librustc_mir/interpret/eval_context.rs +++ b/src/librustc_mir/interpret/eval_context.rs @@ -509,9 +509,10 @@ impl<'a, 'mir, 'tcx: 'mir, M: Machine<'a, 'mir, 'tcx>> EvalContext<'a, 'mir, 'tc for (idx, local) in locals.iter_enumerated_mut() { match local.state { LocalState::Live(_) => { - // This needs to be peoperly initialized. - let layout = self.layout_of_local(self.frame(), idx, None)?; + // This needs to be properly initialized. + let layout = self.layout_of(mir.local_decls[idx].ty)?; local.state = LocalState::Live(self.uninit_operand(layout)?); + local.layout = Cell::new(Some(layout)); } LocalState::Dead => { // Nothing to do