about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2013-09-25 10:59:06 +0200
committerFelix S. Klock II <pnkfelix@pnkfx.org>2013-09-25 10:59:06 +0200
commit9d0727736b237daeff2bc416ba0abb5713a35195 (patch)
treec8b520bddd49e3bfb1ee814d7b4b49eaa40acb3e
parent2ceebf10707d695497fa9b47b17ebdf7d1cc3c47 (diff)
downloadrust-9d0727736b237daeff2bc416ba0abb5713a35195.tar.gz
rust-9d0727736b237daeff2bc416ba0abb5713a35195.zip
Fold context into CalleeTranslationVisitor.
-rw-r--r--src/librustc/middle/trans/callee.rs23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/librustc/middle/trans/callee.rs b/src/librustc/middle/trans/callee.rs
index 54c905a4c16..a327b2e1939 100644
--- a/src/librustc/middle/trans/callee.rs
+++ b/src/librustc/middle/trans/callee.rs
@@ -570,18 +570,20 @@ pub fn trans_lang_call_with_type_params(bcx: @mut Block,
 }
 
 
-struct CalleeTranslationVisitor;
+struct CalleeTranslationVisitor {
+    flag: bool,
+}
 
-impl Visitor<@mut bool> for CalleeTranslationVisitor {
+impl Visitor<()> for CalleeTranslationVisitor {
 
-    fn visit_item(&mut self, _:@ast::item, _:@mut bool) { }
+    fn visit_item(&mut self, _:@ast::item, _:()) { }
 
-    fn visit_expr(&mut self, e:@ast::Expr, cx:@mut bool) {
+    fn visit_expr(&mut self, e:@ast::Expr, _:()) {
 
-            if !*cx {
+            if !self.flag {
                 match e.node {
-                  ast::ExprRet(_) => *cx = true,
-                  _ => visit::walk_expr(self, e, cx),
+                  ast::ExprRet(_) => self.flag = true,
+                  _ => visit::walk_expr(self, e, ()),
                 }
             }
     }
@@ -589,10 +591,9 @@ impl Visitor<@mut bool> for CalleeTranslationVisitor {
 }
 
 pub fn body_contains_ret(body: &ast::Block) -> bool {
-    let cx = @mut false;
-    let mut v = CalleeTranslationVisitor;
-    visit::walk_block(&mut v, body, cx);
-    *cx
+    let mut v = CalleeTranslationVisitor{ flag: false };
+    visit::walk_block(&mut v, body, ());
+    v.flag
 }
 
 pub fn trans_call_inner(in_cx: @mut Block,