about summary refs log tree commit diff
diff options
context:
space:
mode:
authorouz-a <oguz.agcayazi@gmail.com>2022-04-17 16:52:18 +0300
committerouz-a <oguz.agcayazi@gmail.com>2022-04-17 16:52:18 +0300
commit2d2c5e118ab624913e5cc43b2d4b6b60bf3f40a0 (patch)
tree5201bf591944a3a7017261b28c0e4162561fe667
parent8ba8b223afde4c14fe6c530d60e6589d163855ec (diff)
downloadrust-2d2c5e118ab624913e5cc43b2d4b6b60bf3f40a0.tar.gz
rust-2d2c5e118ab624913e5cc43b2d4b6b60bf3f40a0.zip
little changes
-rw-r--r--compiler/rustc_middle/src/mir/patch.rs12
-rw-r--r--compiler/rustc_mir_transform/src/deref_separator.rs8
2 files changed, 9 insertions, 11 deletions
diff --git a/compiler/rustc_middle/src/mir/patch.rs b/compiler/rustc_middle/src/mir/patch.rs
index 4adbe2516da..acede4e7969 100644
--- a/compiler/rustc_middle/src/mir/patch.rs
+++ b/compiler/rustc_middle/src/mir/patch.rs
@@ -2,7 +2,6 @@ use rustc_index::vec::{Idx, IndexVec};
 use rustc_middle::mir::*;
 use rustc_middle::ty::Ty;
 use rustc_span::Span;
-use std::collections::VecDeque;
 
 /// This struct represents a patch to MIR, which can add
 /// new statements and basic blocks and patch over block
@@ -143,8 +142,7 @@ impl<'tcx> MirPatch<'tcx> {
         let mut delta = 0;
         let mut last_bb = START_BLOCK;
         let mut terminator_targets = Vec::new();
-        let mut inf_and_stmt: VecDeque<(SourceInfo, StatementKind<'_>)> = VecDeque::new();
-
+        let mut statements:Vec<Statement<'_>> = Vec::new();
         for (mut loc, stmt) in new_statements {
             if loc.block != last_bb {
                 delta = 0;
@@ -161,7 +159,7 @@ impl<'tcx> MirPatch<'tcx> {
                 let successors = term.successors().clone();
 
                 for i in successors {
-                    inf_and_stmt.push_back((source_info, stmt.clone()));
+                    statements.push(Statement{source_info,kind:stmt.clone()});
                     terminator_targets.push(i.clone());
                 }
                 delta += 1;
@@ -174,11 +172,11 @@ impl<'tcx> MirPatch<'tcx> {
             delta += 1;
         }
 
-        for target in terminator_targets.iter() {
-            let inf_and_stmt = inf_and_stmt.pop_front().unwrap();
+        for target in terminator_targets.iter().rev() {
+            let stmt = statements.pop().unwrap();
             body[*target]
                 .statements
-                .insert(0, Statement { source_info: inf_and_stmt.0, kind: inf_and_stmt.1 });
+                .insert(0, stmt);
         }
     }
 
diff --git a/compiler/rustc_mir_transform/src/deref_separator.rs b/compiler/rustc_mir_transform/src/deref_separator.rs
index 6c06294d72b..7d81bb74cd6 100644
--- a/compiler/rustc_mir_transform/src/deref_separator.rs
+++ b/compiler/rustc_mir_transform/src/deref_separator.rs
@@ -59,8 +59,8 @@ impl<'tcx> MutVisitor<'tcx> for DerefChecker<'tcx> {
                 }
 
                 // We are destroying last temp since it's no longer used.
-                if prev_temp.is_some() {
-                    self.patcher.add_statement(loc, StatementKind::StorageDead(prev_temp.unwrap()));
+                if let Some(prev_temp) = prev_temp {
+                    self.patcher.add_statement(loc, StatementKind::StorageDead(prev_temp));
                 }
 
                 prev_temp = Some(temp);
@@ -68,9 +68,9 @@ impl<'tcx> MutVisitor<'tcx> for DerefChecker<'tcx> {
         }
 
         // Since we won't be able to reach final temp, we destroy it outside the loop.
-        if prev_temp.is_some() {
+        if let Some(prev_temp) = prev_temp {
             let last_loc = Location { block: loc.block, statement_index: loc.statement_index + 1 };
-            self.patcher.add_statement(last_loc, StatementKind::StorageDead(prev_temp.unwrap()));
+            self.patcher.add_statement(last_loc, StatementKind::StorageDead(prev_temp));
         }
     }
 }