Rollup merge of #64043 - matthewjasper:underscore-import-tests, r=alexcrichton
Add some more tests for underscore imports
This commit is contained in:
commit
fe1c1f8c36
11 changed files with 54 additions and 0 deletions
18
src/test/ui/underscore-imports/cycle.rs
Normal file
18
src/test/ui/underscore-imports/cycle.rs
Normal file
|
@ -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();
|
||||
}
|
23
src/test/ui/underscore-imports/shadow.rs
Normal file
23
src/test/ui/underscore-imports/shadow.rs
Normal file
|
@ -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
src/test/ui/underscore-imports/shadow.stderr
Normal file
13
src/test/ui/underscore-imports/shadow.stderr
Normal file
|
@ -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`.
|
Loading…
Reference in a new issue