mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-14 02:49:40 +00:00
Fix wrong span for nested empty groups
This commit is contained in:
parent
a0dcecff90
commit
0847ac0265
@ -102,11 +102,18 @@ impl<'a, 'b> Visitor<'a> for UnusedImportCheckVisitor<'a, 'b> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let ast::UseTreeKind::Nested(ref items) = use_tree.kind {
|
if let ast::UseTreeKind::Nested(ref items) = use_tree.kind {
|
||||||
|
// If it's the parent group, cover the entire use item
|
||||||
|
let span = if nested {
|
||||||
|
use_tree.span
|
||||||
|
} else {
|
||||||
|
self.item_span
|
||||||
|
};
|
||||||
|
|
||||||
if items.len() == 0 {
|
if items.len() == 0 {
|
||||||
self.unused_imports
|
self.unused_imports
|
||||||
.entry(self.base_id)
|
.entry(self.base_id)
|
||||||
.or_insert_with(NodeMap)
|
.or_insert_with(NodeMap)
|
||||||
.insert(id, self.item_span);
|
.insert(id, span);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let base_id = self.base_id;
|
let base_id = self.base_id;
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
error: unused import: `*`
|
|
||||||
--> $DIR/owl-import-generates-unused-import-lint.rs:18:14
|
|
||||||
|
|
|
||||||
18 | use foo::{*, *}; //~ ERROR unused import: `*`
|
|
||||||
| ^
|
|
||||||
|
|
|
||||||
note: lint level defined here
|
|
||||||
--> $DIR/owl-import-generates-unused-import-lint.rs:12:9
|
|
||||||
|
|
|
||||||
12 | #![deny(unused_imports)]
|
|
||||||
| ^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
error: aborting due to previous error
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
|
||||||
// file at the top-level directory of this distribution and at
|
// file at the top-level directory of this distribution and at
|
||||||
// http://rust-lang.org/COPYRIGHT.
|
// http://rust-lang.org/COPYRIGHT.
|
||||||
//
|
//
|
||||||
@ -9,13 +9,26 @@
|
|||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
#![feature(use_nested_groups)]
|
#![feature(use_nested_groups)]
|
||||||
|
#![allow(dead_code)]
|
||||||
#![deny(unused_imports)]
|
#![deny(unused_imports)]
|
||||||
|
|
||||||
mod foo {
|
mod foo {
|
||||||
pub enum Bar {}
|
pub mod bar {
|
||||||
|
pub mod baz {
|
||||||
|
pub struct Bar();
|
||||||
|
}
|
||||||
|
pub mod foobar {}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct Foo();
|
||||||
}
|
}
|
||||||
|
|
||||||
use foo::{*, *}; //~ ERROR unused import: `*`
|
use foo::{Foo, bar::{baz::{}, foobar::*}, *};
|
||||||
|
//~^ ERROR unused imports: `*`, `Foo`, `baz::{}`, `foobar::*`
|
||||||
|
use foo::bar::baz::{*, *};
|
||||||
|
//~^ ERROR unused import: `*`
|
||||||
|
use foo::{};
|
||||||
|
//~^ ERROR unused import: `use foo::{};`
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let _: Bar;
|
let _: Bar;
|
26
src/test/ui/use-nested-groups-unused-imports.stderr
Normal file
26
src/test/ui/use-nested-groups-unused-imports.stderr
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
error: unused imports: `*`, `Foo`, `baz::{}`, `foobar::*`
|
||||||
|
--> $DIR/use-nested-groups-unused-imports.rs:26:11
|
||||||
|
|
|
||||||
|
26 | use foo::{Foo, bar::{baz::{}, foobar::*}, *};
|
||||||
|
| ^^^ ^^^^^^^ ^^^^^^^^^ ^
|
||||||
|
|
|
||||||
|
note: lint level defined here
|
||||||
|
--> $DIR/use-nested-groups-unused-imports.rs:13:9
|
||||||
|
|
|
||||||
|
13 | #![deny(unused_imports)]
|
||||||
|
| ^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: unused import: `*`
|
||||||
|
--> $DIR/use-nested-groups-unused-imports.rs:28:24
|
||||||
|
|
|
||||||
|
28 | use foo::bar::baz::{*, *};
|
||||||
|
| ^
|
||||||
|
|
||||||
|
error: unused import: `use foo::{};`
|
||||||
|
--> $DIR/use-nested-groups-unused-imports.rs:30:1
|
||||||
|
|
|
||||||
|
30 | use foo::{};
|
||||||
|
| ^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: aborting due to 3 previous errors
|
||||||
|
|
Loading…
Reference in New Issue
Block a user