diff options
author | Oliver Scherer <github35764891676564198441@oli-obk.de> | 2019-01-30 15:05:50 +0100 |
---|---|---|
committer | Oliver Scherer <github35764891676564198441@oli-obk.de> | 2019-01-30 15:05:50 +0100 |
commit | 4165c890ed573cc801a27483935ccdbc01fcd75b (patch) | |
tree | 550ae74806f95f27c0151b7dd8219338ded95115 | |
parent | 154c54c875fe8892cacc2d8bc0275ecc27b4baaf (diff) | |
download | rust-4165c890ed573cc801a27483935ccdbc01fcd75b.tar.gz |
Can't use `layout_of_local` for the frame currently being created
-rw-r--r-- | src/librustc_mir/interpret/eval_context.rs | 5 |
1 files 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 |