You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #19522 fixed issue #19498 for the single import case. i.e previously having use self::A; mod A {} in the same file gave error "unresolved import A" while now it gives a more meaningful message - "import A conflicts with exisiting submodule", which is consistent with the error messages for the non-self import cases like
mod A {
use self::B::C::B; // error: import `B` conflicts with existing submodule
mod B { // note: note conflicting module here
mod C {
mod B {}
}
}
}
fn main() {
}
However PR #19522 does not handle the conflicts due to glob import such as this:
#![feature(globs)]
mod mod1 {
use mod1::submodule::*; // error: import `A` conflicts with type in this module
mod submodule { pub struct A {j: char} }
struct A {i: int}
}
mod mod2 {
use mod2::*; // error: unresolved import
mod submodule {}
}
fn main() {
}
As it can be seen, the error message is clear when the imported names conflicts a type (error: import A conflicts with type in this module) whereas conflicts in module names are not reported as such, but as error: unresolved import.
Also it is unclear whether for the use mod2::* and use self::* cases we need to list all existing names as conflicts, since that would be too verbose.
The text was updated successfully, but these errors were encountered:
PR #19522 fixed issue #19498 for the single import case. i.e previously having
use self::A; mod A {}
in the same file gave error "unresolved import A" while now it gives a more meaningful message - "import A conflicts with exisiting submodule", which is consistent with the error messages for the non-self import cases likeHowever PR #19522 does not handle the conflicts due to glob import such as this:
As it can be seen, the error message is clear when the imported names conflicts a type (
error: import
Aconflicts with type in this module
) whereas conflicts in module names are not reported as such, but aserror: unresolved import
.Also it is unclear whether for the
use mod2::*
anduse self::*
cases we need to list all existing names as conflicts, since that would be too verbose.The text was updated successfully, but these errors were encountered: