mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-05 03:23:25 +00:00
changing non-empty glob must import something to a lint
This commit is contained in:
parent
e369d87b01
commit
de9413bd34
@ -972,8 +972,9 @@ impl<'a, 'b> ImportResolver<'a, 'b> {
|
|||||||
if !is_prelude &&
|
if !is_prelude &&
|
||||||
max_vis.get() != ty::Visibility::Invisible && // Allow empty globs.
|
max_vis.get() != ty::Visibility::Invisible && // Allow empty globs.
|
||||||
!max_vis.get().is_at_least(directive.vis.get(), &*self) {
|
!max_vis.get().is_at_least(directive.vis.get(), &*self) {
|
||||||
let msg = "A non-empty glob must import something with the glob's visibility";
|
let msg =
|
||||||
self.r.session.span_err(directive.span, msg);
|
"glob import doesn't reexport anything because no candidate is public enough";
|
||||||
|
self.r.session.buffer_lint(UNUSED_IMPORTS, directive.id, directive.span, msg);
|
||||||
}
|
}
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,21 @@
|
|||||||
|
#![warn(unused_imports)]
|
||||||
|
|
||||||
mod a {
|
mod a {
|
||||||
fn foo() {}
|
fn foo() {}
|
||||||
mod foo {}
|
mod foo {}
|
||||||
|
|
||||||
mod a {
|
mod a {
|
||||||
pub use super::foo; //~ ERROR cannot be re-exported
|
pub use super::foo; //~ ERROR cannot be re-exported
|
||||||
pub use super::*; //~ ERROR must import something with the glob's visibility
|
pub use super::*;
|
||||||
|
//~^ WARNING glob import doesn't reexport anything because no candidate is public enough
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mod b {
|
mod b {
|
||||||
pub fn foo() {}
|
pub fn foo() {}
|
||||||
mod foo { pub struct S; }
|
mod foo {
|
||||||
|
pub struct S;
|
||||||
|
}
|
||||||
|
|
||||||
pub mod a {
|
pub mod a {
|
||||||
pub use super::foo; // This is OK since the value `foo` is visible enough.
|
pub use super::foo; // This is OK since the value `foo` is visible enough.
|
||||||
|
@ -1,34 +1,40 @@
|
|||||||
error[E0364]: `foo` is private, and cannot be re-exported
|
error[E0364]: `foo` is private, and cannot be re-exported
|
||||||
--> $DIR/reexports.rs:6:17
|
--> $DIR/reexports.rs:10:17
|
||||||
|
|
|
|
||||||
LL | pub use super::foo;
|
LL | pub use super::foo;
|
||||||
| ^^^^^^^^^^
|
| ^^^^^^^^^^
|
||||||
|
|
|
|
||||||
note: consider marking `foo` as `pub` in the imported module
|
note: consider marking `foo` as `pub` in the imported module
|
||||||
--> $DIR/reexports.rs:6:17
|
--> $DIR/reexports.rs:10:17
|
||||||
|
|
|
|
||||||
LL | pub use super::foo;
|
LL | pub use super::foo;
|
||||||
| ^^^^^^^^^^
|
| ^^^^^^^^^^
|
||||||
|
|
||||||
error: A non-empty glob must import something with the glob's visibility
|
|
||||||
--> $DIR/reexports.rs:7:17
|
|
||||||
|
|
|
||||||
LL | pub use super::*;
|
|
||||||
| ^^^^^^^^
|
|
||||||
|
|
||||||
error[E0603]: module `foo` is private
|
error[E0603]: module `foo` is private
|
||||||
--> $DIR/reexports.rs:28:15
|
--> $DIR/reexports.rs:35:15
|
||||||
|
|
|
|
||||||
LL | use b::a::foo::S;
|
LL | use b::a::foo::S;
|
||||||
| ^^^
|
| ^^^
|
||||||
|
|
||||||
error[E0603]: module `foo` is private
|
error[E0603]: module `foo` is private
|
||||||
--> $DIR/reexports.rs:29:15
|
--> $DIR/reexports.rs:36:15
|
||||||
|
|
|
|
||||||
LL | use b::b::foo::S as T;
|
LL | use b::b::foo::S as T;
|
||||||
| ^^^
|
| ^^^
|
||||||
|
|
||||||
error: aborting due to 4 previous errors
|
warning: this glob doesn't reexport anything because no canditate is public enough
|
||||||
|
--> $DIR/reexports.rs:11:17
|
||||||
|
|
|
||||||
|
LL | pub use super::*;
|
||||||
|
| ^^^^^^^^
|
||||||
|
|
|
||||||
|
note: lint level defined here
|
||||||
|
--> $DIR/reexports.rs:1:9
|
||||||
|
|
|
||||||
|
LL | #![warn(unused_imports)]
|
||||||
|
| ^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: aborting due to 3 previous errors
|
||||||
|
|
||||||
Some errors have detailed explanations: E0364, E0603.
|
Some errors have detailed explanations: E0364, E0603.
|
||||||
For more information about an error, try `rustc --explain E0364`.
|
For more information about an error, try `rustc --explain E0364`.
|
||||||
|
Loading…
Reference in New Issue
Block a user