parent
829c00cb09
commit
e72d49a806
@ -1644,6 +1644,9 @@ impl<'a> Visitor<()> for Context<'a> {
|
||||
fn visit_view_item(&mut self, i: &ast::ViewItem, _: ()) {
|
||||
self.with_lint_attrs(i.attrs.as_slice(), |cx| {
|
||||
check_attrs_usage(cx, i.attrs.as_slice());
|
||||
|
||||
cx.visit_ids(|v| v.visit_view_item(i, ()));
|
||||
|
||||
visit::walk_view_item(cx, i, ());
|
||||
})
|
||||
}
|
||||
|
@ -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: ()) {
|
||||
|
@ -0,0 +1,33 @@
|
||||
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#![deny(unused_imports)]
|
||||
|
||||
// The aim of this test is to ensure that deny/allow/warn directives
|
||||
// are applied to individual "use" statements instead of silently
|
||||
// ignored.
|
||||
|
||||
#[allow(dead_code)]
|
||||
mod a { pub static x: int = 3; pub static y: int = 4; }
|
||||
|
||||
mod b {
|
||||
use a::x; //~ ERROR: unused import
|
||||
#[allow(unused_imports)]
|
||||
use a::y; // no error here
|
||||
}
|
||||
|
||||
#[allow(unused_imports)]
|
||||
mod c {
|
||||
use a::x;
|
||||
#[deny(unused_imports)]
|
||||
use a::y; //~ ERROR: unused import
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user