]> git.lizzy.rs Git - rust.git/commitdiff
Reintroduce the early returns
authorOliver Schneider <oli-obk@users.noreply.github.com>
Wed, 6 Sep 2017 10:25:46 +0000 (12:25 +0200)
committerGitHub <noreply@github.com>
Wed, 6 Sep 2017 10:25:46 +0000 (12:25 +0200)
src/librustc_mir/transform/inline.rs

index dc27da81978c1147781a1c5237fab77c6518fa43..b2572b2d0aba690a83f197005ab92673a1c63d1b 100644 (file)
@@ -606,19 +606,24 @@ fn visit_local(&mut self,
                    _location: Location) {
         if *local == RETURN_POINTER {
             match self.destination {
-                Lvalue::Local(l) => *local = l,
+                Lvalue::Local(l) => {
+                    *local = l;
+                    return;
+                },
                 ref lval => bug!("Return lvalue is {:?}, not local", lval)
             }
         }
         let idx = local.index() - 1;
         if idx < self.args.len() {
             match self.args[idx] {
-                Operand::Consume(Lvalue::Local(l)) => *local = l,
+                Operand::Consume(Lvalue::Local(l)) => {
+                    *local = l;
+                    return;
+                },
                 ref op => bug!("Arg operand `{:?}` is {:?}, not local", idx, op)
             }
-        } else {
-            *local = self.local_map[Local::new(idx - self.args.len())];
         }
+        *local = self.local_map[Local::new(idx - self.args.len())];
     }
 
     fn visit_lvalue(&mut self,