-
Notifications
You must be signed in to change notification settings - Fork 13.4k
add several resolution test cases #120195
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
tests/ui/imports/auxiliary/glob-conflict-cross-crate-2-extern.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
mod a { | ||
pub type C = i8; | ||
} | ||
|
||
mod b { | ||
pub type C = i16; | ||
} | ||
|
||
pub use a::*; | ||
pub use b::*; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
macro_rules! m { | ||
() => { | ||
pub fn max() {} | ||
pub(crate) mod max {} | ||
}; | ||
} | ||
|
||
mod d { | ||
m! {} | ||
} | ||
|
||
mod e { | ||
pub type max = i32; | ||
} | ||
|
||
pub use self::d::*; | ||
pub use self::e::*; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
mod gio { | ||
pub trait SettingsExt { | ||
fn abc(&self) {} | ||
} | ||
impl<T> SettingsExt for T {} | ||
} | ||
|
||
mod gtk { | ||
pub trait SettingsExt { | ||
fn efg(&self) {} | ||
} | ||
impl<T> SettingsExt for T {} | ||
} | ||
|
||
pub use gtk::*; | ||
pub use gio::*; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
mod a { | ||
pub type Result<T> = std::result::Result<T, ()>; | ||
} | ||
|
||
mod b { | ||
pub type Result<T> = std::result::Result<T, ()>; | ||
} | ||
|
||
pub use a::*; | ||
pub use b::*; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
pub struct Url; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// edition: 2018 | ||
// aux-build: issue-114682-5-extern-1.rs | ||
// compile-flags: --extern issue_114682_5_extern_1 | ||
|
||
pub mod p { | ||
pub use crate::types::*; | ||
pub use crate::*; | ||
} | ||
mod types { | ||
pub mod issue_114682_5_extern_1 {} | ||
} | ||
|
||
pub use issue_114682_5_extern_1; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
mod a { | ||
pub fn log() {} | ||
} | ||
mod b { | ||
pub fn log() {} | ||
} | ||
|
||
pub use self::a::*; | ||
pub use self::b::*; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
.../imports/glob-conflict-cross-crate.stderr → ...mports/glob-conflict-cross-crate-1.stderr
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
// aux-build:glob-conflict-cross-crate-2-extern.rs | ||
|
||
extern crate glob_conflict_cross_crate_2_extern; | ||
|
||
use glob_conflict_cross_crate_2_extern::*; | ||
|
||
fn main() { | ||
let _a: C = 1; //~ ERROR cannot find type `C` in this scope | ||
//^ FIXME: `C` should be identified as an ambiguous item. | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
error[E0412]: cannot find type `C` in this scope | ||
--> $DIR/glob-conflict-cross-crate-2.rs:8:13 | ||
| | ||
LL | let _a: C = 1; | ||
| ^ not found in this scope | ||
|
||
error: aborting due to 1 previous error | ||
|
||
For more information about this error, try `rustc --explain E0412`. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// check-pass | ||
// aux-build:glob-conflict-cross-crate-2-extern.rs | ||
|
||
extern crate glob_conflict_cross_crate_2_extern; | ||
|
||
mod a { | ||
pub type C = i32; | ||
} | ||
|
||
use glob_conflict_cross_crate_2_extern::*; | ||
use a::*; | ||
|
||
fn main() { | ||
let _a: C = 1; | ||
bvanjoi marked this conversation as resolved.
Show resolved
Hide resolved
|
||
//^ FIXME: `C` should be identified as an ambiguous item. | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
// https://github.com/rust-lang/rust/pull/114682#discussion_r1420534109 | ||
|
||
#![feature(decl_macro)] | ||
|
||
macro_rules! mac { | ||
() => { | ||
pub macro A() { | ||
println!("non import") | ||
} | ||
} | ||
} | ||
|
||
mod m { | ||
pub macro A() { | ||
println!("import") | ||
} | ||
} | ||
|
||
pub use m::*; | ||
mac!(); | ||
|
||
fn main() { | ||
A!(); | ||
//~^ ERROR `A` is ambiguous | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
error[E0659]: `A` is ambiguous | ||
--> $DIR/issue-114682-1.rs:23:5 | ||
| | ||
LL | A!(); | ||
| ^ ambiguous name | ||
| | ||
= note: ambiguous because of a conflict between a name from a glob import and a macro-expanded name in the same module during import or macro resolution | ||
note: `A` could refer to the macro defined here | ||
--> $DIR/issue-114682-1.rs:7:9 | ||
| | ||
LL | / pub macro A() { | ||
LL | | println!("non import") | ||
LL | | } | ||
| |_________^ | ||
... | ||
LL | mac!(); | ||
| ------ in this macro invocation | ||
note: `A` could also refer to the macro imported here | ||
--> $DIR/issue-114682-1.rs:19:9 | ||
| | ||
LL | pub use m::*; | ||
| ^^^^ | ||
= help: consider adding an explicit import of `A` to disambiguate | ||
= note: this error originates in the macro `mac` (in Nightly builds, run with -Z macro-backtrace for more info) | ||
|
||
error: aborting due to 1 previous error | ||
|
||
For more information about this error, try `rustc --explain E0659`. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
// aux-build: issue-114682-2-extern.rs | ||
// https://github.com/rust-lang/rust/pull/114682#issuecomment-1879998900 | ||
|
||
extern crate issue_114682_2_extern; | ||
|
||
use issue_114682_2_extern::max; | ||
|
||
type A = issue_114682_2_extern::max; | ||
//~^ ERROR: expected type, found function `issue_114682_2_extern::max` | ||
// FIXME: | ||
// The above error was emitted due to `(Mod(issue_114682_2_extern), Namespace(Type), Ident(max))` | ||
// being identified as an ambiguous item. | ||
// However, there are two points worth discussing: | ||
// First, should this ambiguous item be omitted considering the maximum visibility | ||
// of `issue_114682_2_extern::m::max` in the type namespace is only within the extern crate. | ||
// Second, if we retain the ambiguous item of the extern crate, should it be treated | ||
// as an ambiguous item within the local crate for the same reasoning? | ||
|
||
fn main() {} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
error[E0573]: expected type, found function `issue_114682_2_extern::max` | ||
--> $DIR/issue-114682-2.rs:8:10 | ||
| | ||
LL | type A = issue_114682_2_extern::max; | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ not a type | ||
|
||
error: aborting due to 1 previous error | ||
|
||
For more information about this error, try `rustc --explain E0573`. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
// check-pass | ||
// aux-build: issue-114682-3-extern.rs | ||
// https://github.com/rust-lang/rust/pull/114682#issuecomment-1880625909 | ||
|
||
extern crate issue_114682_3_extern; | ||
|
||
use issue_114682_3_extern::*; | ||
|
||
mod auto { | ||
pub trait SettingsExt { | ||
fn ext(&self) {} | ||
} | ||
|
||
impl<T> SettingsExt for T {} | ||
} | ||
|
||
pub use self::auto::*; | ||
|
||
fn main() { | ||
let a: u8 = 1; | ||
a.ext(); | ||
//^ FIXME: it should report `ext` not found because `SettingsExt` | ||
// is an ambiguous item in `issue-114682-3-extern.rs`. | ||
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// check-pass | ||
// aux-build: issue-114682-4-extern.rs | ||
// https://github.com/rust-lang/rust/pull/114682#issuecomment-1880755441 | ||
|
||
extern crate issue_114682_4_extern; | ||
|
||
use issue_114682_4_extern::*; | ||
|
||
fn a() -> Result<i32, ()> { // FIXME: `Result` should be identified as an ambiguous item. | ||
Ok(1) | ||
} | ||
|
||
fn main() {} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
// check-pass | ||
// edition: 2018 | ||
// aux-build: issue-114682-5-extern-1.rs | ||
// aux-build: issue-114682-5-extern-2.rs | ||
// compile-flags: --extern issue_114682_5_extern_1 | ||
// https://github.com/rust-lang/rust/pull/114682#issuecomment-1880755441 | ||
|
||
extern crate issue_114682_5_extern_2; | ||
|
||
use issue_114682_5_extern_2::p::*; | ||
use issue_114682_5_extern_1::Url; | ||
// FIXME: The `issue_114682_5_extern_1` should be considered an ambiguous item, | ||
// as it has already been recognized as ambiguous in `issue_114682_5_extern_2`. | ||
|
||
fn main() {} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// check-pass | ||
// aux-build: issue-114682-6-extern.rs | ||
// https://github.com/rust-lang/rust/pull/114682#issuecomment-1880755441 | ||
|
||
extern crate issue_114682_6_extern; | ||
|
||
use issue_114682_6_extern::*; | ||
|
||
fn main() { | ||
let log = 2; | ||
//^ `log` should be identified as an ambiguous item. | ||
let _ = log; | ||
} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.