rust/tests/ui/unresolved/unresolved-import.rs
Esteban Küber b61570ac11 Structured suggestion for extern crate foo when foo isn't resolved in import
When encountering a name in an import that could have come from a crate that wasn't imported, use a structured suggestion to suggest `extern crate foo;` pointing at the right place in the crate.

When encountering `_` in an import, do not suggest `extern crate _;`.

```
error[E0432]: unresolved import `spam`
  --> $DIR/import-from-missing-star-3.rs:2:9
   |
LL |     use spam::*;
   |         ^^^^ maybe a missing crate `spam`?
   |
help: consider importing the `spam` crate
   |
LL + extern crate spam;
   |
```
2024-07-29 23:49:51 +00:00

64 lines
1.2 KiB
Rust

use foo::bar;
//~^ ERROR unresolved import `foo` [E0432]
//~| NOTE you might be missing crate `foo`
//~| HELP consider importing the `foo` crate
//~| SUGGESTION extern crate foo;
use bar::Baz as x;
//~^ ERROR unresolved import `bar::Baz` [E0432]
//~| NOTE no `Baz` in `bar`
//~| HELP a similar name exists in the module
//~| SUGGESTION Bar
use food::baz;
//~^ ERROR unresolved import `food::baz`
//~| NOTE no `baz` in `food`
//~| HELP a similar name exists in the module
//~| SUGGESTION bag
use food::{beens as Foo};
//~^ ERROR unresolved import `food::beens` [E0432]
//~| NOTE no `beens` in `food`
//~| HELP a similar name exists in the module
//~| SUGGESTION beans
mod bar {
pub struct Bar;
}
mod food {
pub use self::zug::baz::{self as bag, Foobar as beans};
mod zug {
pub mod baz {
pub struct Foobar;
}
}
}
mod m {
enum MyEnum {
MyVariant
}
use MyEnum::*;
//~^ ERROR unresolved import `MyEnum` [E0432]
//~| HELP a similar path exists
//~| SUGGESTION self::MyEnum
}
mod items {
enum Enum {
Variant
}
use Enum::*;
//~^ ERROR unresolved import `Enum` [E0432]
//~| HELP a similar path exists
//~| SUGGESTION self::Enum
fn item() {}
}
fn main() {}