about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorDavid Creswick <dcrewi@gyrae.net>2014-04-22 20:09:21 -0500
committerDavid Creswick <dcrewi@gyrae.net>2014-04-22 21:25:27 -0500
commite72d49a806e26ca901376bcdc395dbf5e8895150 (patch)
treeba795eca6699d483e4bf5bf72d073101621c6e4d /src/libsyntax
parent829c00cb09ac093307a6edc5bbca92c4ad9dbda2 (diff)
downloadrust-e72d49a806e26ca901376bcdc395dbf5e8895150.tar.gz
rust-e72d49a806e26ca901376bcdc395dbf5e8895150.zip
Apply lint attrs to individual "use" declarations
Fixes #10534
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ast_util.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs
index 437f865b449..551fb054131 100644
--- a/src/libsyntax/ast_util.rs
+++ b/src/libsyntax/ast_util.rs
@@ -1,4 +1,4 @@
-// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
+// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
 // file at the top-level directory of this distribution and at
 // http://rust-lang.org/COPYRIGHT.
 //
@@ -396,6 +396,13 @@ impl<'a, O: IdVisitingOperation> Visitor<()> for IdVisitor<'a, O> {
     }
 
     fn visit_view_item(&mut self, view_item: &ViewItem, env: ()) {
+        if !self.pass_through_items {
+            if self.visited_outermost {
+                return;
+            } else {
+                self.visited_outermost = true;
+            }
+        }
         match view_item.node {
             ViewItemExternCrate(_, _, node_id) => {
                 self.operation.visit_id(node_id)
@@ -417,7 +424,8 @@ impl<'a, O: IdVisitingOperation> Visitor<()> for IdVisitor<'a, O> {
                 }
             }
         }
-        visit::walk_view_item(self, view_item, env)
+        visit::walk_view_item(self, view_item, env);
+        self.visited_outermost = false;
     }
 
     fn visit_foreign_item(&mut self, foreign_item: &ForeignItem, env: ()) {