mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
37c54db477
When encountering `use foo::*;` where `foo` fails to be found, and we later encounter resolution errors, we silence those later errors. A single case of the above, for an *existing* import on a big codebase would otherwise have a huge number of knock-down spurious errors. Ideally, instead of a global flag to silence all subsequent resolve errors, we'd want to introduce an unameable binding in the appropriate rib as a sentinel when there's a failed glob import, so when we encounter a resolve error we can search for that sentinel and if found, and only then, silence that error. The current approach is just a quick proof of concept to iterate over. Partially address #96799.
10 lines
256 B
Rust
10 lines
256 B
Rust
// This checks that a path that cannot be resolved because of an indeterminate import
|
|
// does not trigger an ICE.
|
|
|
|
mod foo {
|
|
pub use self::*; //~ ERROR unresolved
|
|
}
|
|
|
|
fn main() {
|
|
foo::f(); // cannot find function `f` in module `foo`, but silenced
|
|
}
|