diff options
| author | Felix S. Klock II <pnkfelix@pnkfx.org> | 2013-09-25 10:59:06 +0200 |
|---|---|---|
| committer | Felix S. Klock II <pnkfelix@pnkfx.org> | 2013-09-25 10:59:06 +0200 |
| commit | 9d0727736b237daeff2bc416ba0abb5713a35195 (patch) | |
| tree | c8b520bddd49e3bfb1ee814d7b4b49eaa40acb3e | |
| parent | 2ceebf10707d695497fa9b47b17ebdf7d1cc3c47 (diff) | |
| download | rust-9d0727736b237daeff2bc416ba0abb5713a35195.tar.gz rust-9d0727736b237daeff2bc416ba0abb5713a35195.zip | |
Fold context into CalleeTranslationVisitor.
| -rw-r--r-- | src/librustc/middle/trans/callee.rs | 23 |
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, |
