Skip to content

Commit

Permalink
Rollup merge of rust-lang#64043 - matthewjasper:underscore-import-tes…
Browse files Browse the repository at this point in the history
…ts, r=alexcrichton

Add some more tests for underscore imports
  • Loading branch information
Centril authored Sep 4, 2019
2 parents c334526 + 754a875 commit 04bf85d
Show file tree
Hide file tree
Showing 11 changed files with 54 additions and 0 deletions.
File renamed without changes.
File renamed without changes.
18 changes: 18 additions & 0 deletions src/test/ui/underscore-imports/cycle.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Check that cyclic glob imports are allowed with underscore imports

// check-pass

mod x {
pub use crate::y::*;
pub use std::ops::Deref as _;
}

mod y {
pub use crate::x::*;
pub use std::ops::Deref as _;
}

pub fn main() {
use x::*;
(&0).deref();
}
File renamed without changes.
23 changes: 23 additions & 0 deletions src/test/ui/underscore-imports/shadow.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// Check that underscore imports don't cause glob imports to be unshadowed

mod a {
pub use std::ops::Deref as Shadow;
}

mod b {
pub use crate::a::*;
macro_rules! m {
($i:ident) => { pub struct $i; }
}
m!(Shadow);
}

mod c {
use crate::b::Shadow as _; // Only imports the struct

fn f(x: &()) {
x.deref(); //~ ERROR no method named `deref` found
}
}

fn main() {}
13 changes: 13 additions & 0 deletions src/test/ui/underscore-imports/shadow.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
error[E0599]: no method named `deref` found for type `&()` in the current scope
--> $DIR/shadow.rs:19:11
|
LL | x.deref();
| ^^^^^
|
= help: items from traits can only be used if the trait is in scope
= note: the following trait is implemented but not in scope, perhaps add a `use` for it:
`use std::ops::Deref;`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0599`.

0 comments on commit 04bf85d

Please sign in to comment.