diff --git a/src/librustc/lint/context.rs b/src/librustc/lint/context.rs index e3eac2e6068..f9a71f3c52b 100644 --- a/src/librustc/lint/context.rs +++ b/src/librustc/lint/context.rs @@ -555,7 +555,6 @@ impl<'a> EarlyContext<'a> { { let mut v = ast_util::IdVisitor { operation: self, - pass_through_items: false, visited_outermost: false, }; f(&mut v); @@ -583,11 +582,7 @@ impl<'a, 'tcx> LateContext<'a, 'tcx> { fn visit_ids(&mut self, f: F) where F: FnOnce(&mut util::IdVisitor) { - let mut v = util::IdVisitor { - operation: self, - pass_through_items: false, - visited_outermost: false, - }; + let mut v = util::IdVisitor::new(self); f(&mut v); } } diff --git a/src/librustc/metadata/inline.rs b/src/librustc/metadata/inline.rs index a5ca68e4350..52b34586089 100644 --- a/src/librustc/metadata/inline.rs +++ b/src/librustc/metadata/inline.rs @@ -48,11 +48,7 @@ impl InlinedItem { } pub fn visit_ids(&self, operation: &mut O) { - let mut id_visitor = IdVisitor { - operation: operation, - pass_through_items: true, - visited_outermost: false, - }; + let mut id_visitor = IdVisitor::new(operation); self.visit(&mut id_visitor); } diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs index f46e55e2441..39ec3ef5b00 100644 --- a/src/librustc/middle/check_match.rs +++ b/src/librustc/middle/check_match.rs @@ -485,11 +485,7 @@ impl<'a, 'tcx> Folder for StaticInliner<'a, 'tcx> { renaming_map: renaming_map, }; - let mut id_visitor = front_util::IdVisitor { - operation: &mut renaming_recorder, - pass_through_items: true, - visited_outermost: false, - }; + let mut id_visitor = front_util::IdVisitor::new(&mut renaming_recorder); id_visitor.visit_expr(const_expr); } diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index f1c88232fc4..44334762d90 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -289,7 +289,6 @@ pub trait IdVisitingOperation { pub struct IdVisitor<'a, O:'a> { pub operation: &'a mut O, - pub pass_through_items: bool, pub visited_outermost: bool, } @@ -319,12 +318,10 @@ impl<'a, 'v, O: IdVisitingOperation> Visitor<'v> for IdVisitor<'a, O> { } fn visit_item(&mut self, item: &Item) { - if !self.pass_through_items { - if self.visited_outermost { - return - } else { - self.visited_outermost = true - } + if self.visited_outermost { + return + } else { + self.visited_outermost = true } self.operation.visit_id(item.id); @@ -390,12 +387,10 @@ impl<'a, 'v, O: IdVisitingOperation> Visitor<'v> for IdVisitor<'a, O> { block: &'v Block, span: Span, node_id: NodeId) { - if !self.pass_through_items { - match function_kind { - FnKind::Method(..) if self.visited_outermost => return, - FnKind::Method(..) => self.visited_outermost = true, - _ => {} - } + match function_kind { + FnKind::Method(..) if self.visited_outermost => return, + FnKind::Method(..) => self.visited_outermost = true, + _ => {} } self.operation.visit_id(node_id); @@ -420,10 +415,8 @@ impl<'a, 'v, O: IdVisitingOperation> Visitor<'v> for IdVisitor<'a, O> { block, span); - if !self.pass_through_items { - if let FnKind::Method(..) = function_kind { - self.visited_outermost = false; - } + if let FnKind::Method(..) = function_kind { + self.visited_outermost = false; } } @@ -497,7 +490,6 @@ pub fn compute_id_range_for_fn_body(fk: FnKind, let mut visitor = IdRangeComputingVisitor::new(); let mut id_visitor = IdVisitor { operation: &mut visitor, - pass_through_items: false, visited_outermost: false, }; id_visitor.visit_fn(fk, decl, body, sp, id);