From 9d0727736b237daeff2bc416ba0abb5713a35195 Mon Sep 17 00:00:00 2001 From: "Felix S. Klock II" Date: Wed, 25 Sep 2013 10:59:06 +0200 Subject: [PATCH] Fold context into CalleeTranslationVisitor. --- src/librustc/middle/trans/callee.rs | 23 ++++++++++++----------- 1 file 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,