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; | ```
This commit is contained in:
parent
4db3d12e6f
commit
b61570ac11
33 changed files with 192 additions and 64 deletions
|
@ -544,7 +544,13 @@ fn resolver_for_lowering_raw<'tcx>(
|
|||
let arenas = Resolver::arenas();
|
||||
let _ = tcx.registered_tools(()); // Uses `crate_for_resolver`.
|
||||
let (krate, pre_configured_attrs) = tcx.crate_for_resolver(()).steal();
|
||||
let mut resolver = Resolver::new(tcx, &pre_configured_attrs, krate.spans.inner_span, &arenas);
|
||||
let mut resolver = Resolver::new(
|
||||
tcx,
|
||||
&pre_configured_attrs,
|
||||
krate.spans.inner_span,
|
||||
krate.spans.inject_use_span,
|
||||
&arenas,
|
||||
);
|
||||
let krate = configure_and_expand(krate, &pre_configured_attrs, &mut resolver);
|
||||
|
||||
// Make sure we don't mutate the cstore from here on.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue