about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2017-08-25 07:17:37 -0700
committerAlex Crichton <alex@alexcrichton.com>2017-08-25 07:17:37 -0700
commit303a26406a136e24dcfe083e2c4b07f4cdad3d93 (patch)
treedf87d3958b81a2a5e7dbfa70e2cb7b0cab3b71f2
parentb28aeeb04e7bdc53a2a7601e8a04f4e19a7cfe58 (diff)
downloadrust-303a26406a136e24dcfe083e2c4b07f4cdad3d93.tar.gz
rust-303a26406a136e24dcfe083e2c4b07f4cdad3d93.zip
Reorder slightly in `visit_basic_block_data`
-rw-r--r--src/librustc_mir/transform/generator.rs24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/librustc_mir/transform/generator.rs b/src/librustc_mir/transform/generator.rs
index b4d6bb09a15..748db9ac803 100644
--- a/src/librustc_mir/transform/generator.rs
+++ b/src/librustc_mir/transform/generator.rs
@@ -140,18 +140,6 @@ impl<'a, 'tcx> MutVisitor<'tcx> for TransformVisitor<'a, 'tcx> {
     fn visit_basic_block_data(&mut self,
                               block: BasicBlock,
                               data: &mut BasicBlockData<'tcx>) {
-        let ret_val = match data.terminator().kind {
-            TerminatorKind::Return => Some((1,
-                self.return_block,
-                Operand::Consume(Lvalue::Local(self.new_ret_local)),
-                None)),
-            TerminatorKind::Yield { ref value, resume, drop } => Some((0,
-                resume,
-                value.clone(),
-                drop)),
-            _ => None
-        };
-
         // Remove StorageLive and StorageDead statements for remapped locals
         data.retain_statements(|s| {
             match s.kind {
@@ -166,6 +154,18 @@ impl<'a, 'tcx> MutVisitor<'tcx> for TransformVisitor<'a, 'tcx> {
             }
         });
 
+        let ret_val = match data.terminator().kind {
+            TerminatorKind::Return => Some((1,
+                self.return_block,
+                Operand::Consume(Lvalue::Local(self.new_ret_local)),
+                None)),
+            TerminatorKind::Yield { ref value, resume, drop } => Some((0,
+                resume,
+                value.clone(),
+                drop)),
+            _ => None
+        };
+
         if let Some((state_idx, resume, v, drop)) = ret_val {
             let bb_idx = {
                 let bb_targets = &mut self.bb_targets;