mirror of
https://github.com/rust-lang/rust.git
synced 2025-01-26 06:35:27 +00:00
resolve: Fix some more asserts in import validation
This commit is contained in:
parent
e593431bc7
commit
fe548e311a
@ -864,7 +864,8 @@ impl<'a, 'b:'a, 'c: 'b> ImportResolver<'a, 'b, 'c> {
|
||||
}
|
||||
PathResult::NonModule(path_res) if path_res.base_def() == Def::Err => {
|
||||
// The error was already reported earlier.
|
||||
assert!(directive.imported_module.get().is_none());
|
||||
assert!(!self.ambiguity_errors.is_empty() ||
|
||||
directive.imported_module.get().is_none());
|
||||
return None;
|
||||
}
|
||||
PathResult::Indeterminate | PathResult::NonModule(..) => unreachable!(),
|
||||
|
@ -1,3 +1,5 @@
|
||||
pub mod issue_56125 {}
|
||||
|
||||
pub mod last_segment {
|
||||
pub mod issue_56125 {}
|
||||
}
|
||||
|
@ -2,11 +2,24 @@
|
||||
// compile-flags:--extern issue_56125
|
||||
// aux-build:issue-56125.rs
|
||||
|
||||
use issue_56125::last_segment::*;
|
||||
//~^ ERROR `issue_56125` is ambiguous
|
||||
//~| ERROR unresolved import `issue_56125::last_segment`
|
||||
use issue_56125::non_last_segment::non_last_segment::*;
|
||||
//~^ ERROR `issue_56125` is ambiguous
|
||||
//~| ERROR failed to resolve: could not find `non_last_segment` in `issue_56125`
|
||||
#![feature(uniform_paths)]
|
||||
|
||||
mod m1 {
|
||||
use issue_56125::last_segment::*;
|
||||
//~^ ERROR `issue_56125` is ambiguous
|
||||
//~| ERROR unresolved import `issue_56125::last_segment`
|
||||
}
|
||||
|
||||
mod m2 {
|
||||
use issue_56125::non_last_segment::non_last_segment::*;
|
||||
//~^ ERROR `issue_56125` is ambiguous
|
||||
//~| ERROR failed to resolve: could not find `non_last_segment` in `issue_56125`
|
||||
}
|
||||
|
||||
mod m3 {
|
||||
mod empty {}
|
||||
use empty::issue_56125; //~ ERROR unresolved import `empty::issue_56125`
|
||||
use issue_56125::*; //~ ERROR `issue_56125` is ambiguous
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
@ -1,46 +1,67 @@
|
||||
error[E0433]: failed to resolve: could not find `non_last_segment` in `issue_56125`
|
||||
--> $DIR/issue-56125.rs:8:18
|
||||
--> $DIR/issue-56125.rs:14:22
|
||||
|
|
||||
LL | use issue_56125::non_last_segment::non_last_segment::*;
|
||||
| ^^^^^^^^^^^^^^^^ could not find `non_last_segment` in `issue_56125`
|
||||
LL | use issue_56125::non_last_segment::non_last_segment::*;
|
||||
| ^^^^^^^^^^^^^^^^ could not find `non_last_segment` in `issue_56125`
|
||||
|
||||
error[E0432]: unresolved import `issue_56125::last_segment`
|
||||
--> $DIR/issue-56125.rs:5:18
|
||||
--> $DIR/issue-56125.rs:8:22
|
||||
|
|
||||
LL | use issue_56125::last_segment::*;
|
||||
| ^^^^^^^^^^^^ could not find `last_segment` in `issue_56125`
|
||||
LL | use issue_56125::last_segment::*;
|
||||
| ^^^^^^^^^^^^ could not find `last_segment` in `issue_56125`
|
||||
|
||||
error[E0432]: unresolved import `empty::issue_56125`
|
||||
--> $DIR/issue-56125.rs:21:9
|
||||
|
|
||||
LL | use empty::issue_56125; //~ ERROR unresolved import `empty::issue_56125`
|
||||
| ^^^^^^^^^^^^^^^^^^ no `issue_56125` in `m3::empty`
|
||||
|
||||
error[E0659]: `issue_56125` is ambiguous (name vs any other name during import resolution)
|
||||
--> $DIR/issue-56125.rs:5:5
|
||||
--> $DIR/issue-56125.rs:8:9
|
||||
|
|
||||
LL | use issue_56125::last_segment::*;
|
||||
| ^^^^^^^^^^^ ambiguous name
|
||||
LL | use issue_56125::last_segment::*;
|
||||
| ^^^^^^^^^^^ ambiguous name
|
||||
|
|
||||
= note: `issue_56125` could refer to an extern crate passed with `--extern`
|
||||
= help: use `::issue_56125` to refer to this extern crate unambiguously
|
||||
note: `issue_56125` could also refer to the module imported here
|
||||
--> $DIR/issue-56125.rs:5:5
|
||||
--> $DIR/issue-56125.rs:8:9
|
||||
|
|
||||
LL | use issue_56125::last_segment::*;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
LL | use issue_56125::last_segment::*;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= help: use `self::issue_56125` to refer to this module unambiguously
|
||||
|
||||
error[E0659]: `issue_56125` is ambiguous (name vs any other name during import resolution)
|
||||
--> $DIR/issue-56125.rs:8:5
|
||||
--> $DIR/issue-56125.rs:14:9
|
||||
|
|
||||
LL | use issue_56125::non_last_segment::non_last_segment::*;
|
||||
| ^^^^^^^^^^^ ambiguous name
|
||||
LL | use issue_56125::non_last_segment::non_last_segment::*;
|
||||
| ^^^^^^^^^^^ ambiguous name
|
||||
|
|
||||
= note: `issue_56125` could refer to an extern crate passed with `--extern`
|
||||
= help: use `::issue_56125` to refer to this extern crate unambiguously
|
||||
note: `issue_56125` could also refer to the module imported here
|
||||
--> $DIR/issue-56125.rs:5:5
|
||||
--> $DIR/issue-56125.rs:14:9
|
||||
|
|
||||
LL | use issue_56125::last_segment::*;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
LL | use issue_56125::non_last_segment::non_last_segment::*;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
= help: use `self::issue_56125` to refer to this module unambiguously
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
error[E0659]: `issue_56125` is ambiguous (name vs any other name during import resolution)
|
||||
--> $DIR/issue-56125.rs:22:9
|
||||
|
|
||||
LL | use issue_56125::*; //~ ERROR `issue_56125` is ambiguous
|
||||
| ^^^^^^^^^^^ ambiguous name
|
||||
|
|
||||
= note: `issue_56125` could refer to an extern crate passed with `--extern`
|
||||
= help: use `::issue_56125` to refer to this extern crate unambiguously
|
||||
note: `issue_56125` could also refer to the unresolved item imported here
|
||||
--> $DIR/issue-56125.rs:21:9
|
||||
|
|
||||
LL | use empty::issue_56125; //~ ERROR unresolved import `empty::issue_56125`
|
||||
| ^^^^^^^^^^^^^^^^^^
|
||||
= help: use `self::issue_56125` to refer to this unresolved item unambiguously
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
|
||||
Some errors occurred: E0432, E0433, E0659.
|
||||
For more information about an error, try `rustc --explain E0432`.
|
||||
|
Loading…
Reference in New Issue
Block a user