mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
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
@ -544,7 +544,13 @@ fn resolver_for_lowering_raw<'tcx>(
|
|||||||
let arenas = Resolver::arenas();
|
let arenas = Resolver::arenas();
|
||||||
let _ = tcx.registered_tools(()); // Uses `crate_for_resolver`.
|
let _ = tcx.registered_tools(()); // Uses `crate_for_resolver`.
|
||||||
let (krate, pre_configured_attrs) = tcx.crate_for_resolver(()).steal();
|
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);
|
let krate = configure_and_expand(krate, &pre_configured_attrs, &mut resolver);
|
||||||
|
|
||||||
// Make sure we don't mutate the cstore from here on.
|
// Make sure we don't mutate the cstore from here on.
|
||||||
|
@ -2026,14 +2026,17 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||||||
Applicability::MaybeIncorrect,
|
Applicability::MaybeIncorrect,
|
||||||
)),
|
)),
|
||||||
)
|
)
|
||||||
|
} else if ident.name == kw::Underscore {
|
||||||
|
(format!("`_` is not a valid crate or module name"), None)
|
||||||
} else if self.tcx.sess.is_rust_2015() {
|
} else if self.tcx.sess.is_rust_2015() {
|
||||||
(
|
(
|
||||||
format!("you might be missing crate `{ident}`"),
|
format!("you might be missing crate `{ident}`"),
|
||||||
Some((
|
Some((
|
||||||
vec![],
|
vec![(
|
||||||
format!(
|
self.current_crate_outer_attr_insert_span,
|
||||||
"consider adding `extern crate {ident}` to use the `{ident}` crate"
|
format!("extern crate {ident};\n"),
|
||||||
),
|
)],
|
||||||
|
format!("consider importing the `{ident}` crate"),
|
||||||
Applicability::MaybeIncorrect,
|
Applicability::MaybeIncorrect,
|
||||||
)),
|
)),
|
||||||
)
|
)
|
||||||
|
@ -1180,6 +1180,10 @@ pub struct Resolver<'a, 'tcx> {
|
|||||||
/// Simplified analogue of module `resolutions` but in trait impls, excluding glob delegations.
|
/// Simplified analogue of module `resolutions` but in trait impls, excluding glob delegations.
|
||||||
/// Needed because glob delegations exclude explicitly defined names.
|
/// Needed because glob delegations exclude explicitly defined names.
|
||||||
impl_binding_keys: FxHashMap<LocalDefId, FxHashSet<BindingKey>>,
|
impl_binding_keys: FxHashMap<LocalDefId, FxHashSet<BindingKey>>,
|
||||||
|
|
||||||
|
/// This is the `Span` where an `extern crate foo;` suggestion would be inserted, if `foo`
|
||||||
|
/// could be a crate that wasn't imported. For diagnostics use only.
|
||||||
|
current_crate_outer_attr_insert_span: Span,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Nothing really interesting here; it just provides memory for the rest of the crate.
|
/// Nothing really interesting here; it just provides memory for the rest of the crate.
|
||||||
@ -1342,6 +1346,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
attrs: &[ast::Attribute],
|
attrs: &[ast::Attribute],
|
||||||
crate_span: Span,
|
crate_span: Span,
|
||||||
|
current_crate_outer_attr_insert_span: Span,
|
||||||
arenas: &'a ResolverArenas<'a>,
|
arenas: &'a ResolverArenas<'a>,
|
||||||
) -> Resolver<'a, 'tcx> {
|
) -> Resolver<'a, 'tcx> {
|
||||||
let root_def_id = CRATE_DEF_ID.to_def_id();
|
let root_def_id = CRATE_DEF_ID.to_def_id();
|
||||||
@ -1525,6 +1530,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
|||||||
glob_delegation_invoc_ids: Default::default(),
|
glob_delegation_invoc_ids: Default::default(),
|
||||||
impl_unexpanded_invocations: Default::default(),
|
impl_unexpanded_invocations: Default::default(),
|
||||||
impl_binding_keys: Default::default(),
|
impl_binding_keys: Default::default(),
|
||||||
|
current_crate_outer_attr_insert_span,
|
||||||
};
|
};
|
||||||
|
|
||||||
let root_parent_scope = ParentScope::module(graph_root, &resolver);
|
let root_parent_scope = ParentScope::module(graph_root, &resolver);
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `inner`
|
|||||||
LL | pub use inner::S;
|
LL | pub use inner::S;
|
||||||
| ^^^^^ you might be missing crate `inner`
|
| ^^^^^ you might be missing crate `inner`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate inner` to use the `inner` crate
|
help: consider importing the `inner` crate
|
||||||
|
|
|
||||||
|
LL + extern crate inner;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0433]: failed to resolve: you might be missing crate `unresolved_crate`
|
|||||||
LL | use unresolved_crate::module::Name;
|
LL | use unresolved_crate::module::Name;
|
||||||
| ^^^^^^^^^^^^^^^^ you might be missing crate `unresolved_crate`
|
| ^^^^^^^^^^^^^^^^ you might be missing crate `unresolved_crate`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate unresolved_crate` to use the `unresolved_crate` crate
|
help: consider importing the `unresolved_crate` crate
|
||||||
|
|
|
||||||
|
LL + extern crate unresolved_crate;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0433]: failed to resolve: you might be missing crate `r#mod`
|
|||||||
LL | pub(in crate::r#mod) fn main() {}
|
LL | pub(in crate::r#mod) fn main() {}
|
||||||
| ^^^^^ you might be missing crate `r#mod`
|
| ^^^^^ you might be missing crate `r#mod`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate r#mod` to use the `r#mod` crate
|
help: consider importing the `r#mod` crate
|
||||||
|
|
|
||||||
|
LL + extern crate r#mod;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0433]: failed to resolve: you might be missing crate `nonexistent`
|
|||||||
LL | pub(in nonexistent) field: u8
|
LL | pub(in nonexistent) field: u8
|
||||||
| ^^^^^^^^^^^ you might be missing crate `nonexistent`
|
| ^^^^^^^^^^^ you might be missing crate `nonexistent`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate nonexistent` to use the `nonexistent` crate
|
help: consider importing the `nonexistent` crate
|
||||||
|
|
|
||||||
|
LL + extern crate nonexistent;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0433]: failed to resolve: you might be missing crate `nonexistent`
|
error[E0433]: failed to resolve: you might be missing crate `nonexistent`
|
||||||
--> $DIR/field-attributes-vis-unresolved.rs:22:12
|
--> $DIR/field-attributes-vis-unresolved.rs:22:12
|
||||||
@ -12,7 +15,10 @@ error[E0433]: failed to resolve: you might be missing crate `nonexistent`
|
|||||||
LL | pub(in nonexistent) u8
|
LL | pub(in nonexistent) u8
|
||||||
| ^^^^^^^^^^^ you might be missing crate `nonexistent`
|
| ^^^^^^^^^^^ you might be missing crate `nonexistent`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate nonexistent` to use the `nonexistent` crate
|
help: consider importing the `nonexistent` crate
|
||||||
|
|
|
||||||
|
LL + extern crate nonexistent;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `something`
|
|||||||
LL | use something::Foo;
|
LL | use something::Foo;
|
||||||
| ^^^^^^^^^ you might be missing crate `something`
|
| ^^^^^^^^^ you might be missing crate `something`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate something` to use the `something` crate
|
help: consider importing the `something` crate
|
||||||
|
|
|
||||||
|
LL + extern crate something;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `spam`
|
|||||||
LL | use spam::*;
|
LL | use spam::*;
|
||||||
| ^^^^ you might be missing crate `spam`
|
| ^^^^ you might be missing crate `spam`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate spam` to use the `spam` crate
|
help: consider importing the `spam` crate
|
||||||
|
|
|
||||||
|
LL + extern crate spam;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `spam`
|
|||||||
LL | use spam::*;
|
LL | use spam::*;
|
||||||
| ^^^^ you might be missing crate `spam`
|
| ^^^^ you might be missing crate `spam`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate spam` to use the `spam` crate
|
help: consider importing the `spam` crate
|
||||||
|
|
|
||||||
|
LL + extern crate spam;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `spam`
|
error[E0432]: unresolved import `spam`
|
||||||
--> $DIR/import-from-missing-star-3.rs:27:13
|
--> $DIR/import-from-missing-star-3.rs:27:13
|
||||||
@ -12,7 +15,10 @@ error[E0432]: unresolved import `spam`
|
|||||||
LL | use spam::*;
|
LL | use spam::*;
|
||||||
| ^^^^ you might be missing crate `spam`
|
| ^^^^ you might be missing crate `spam`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate spam` to use the `spam` crate
|
help: consider importing the `spam` crate
|
||||||
|
|
|
||||||
|
LL + extern crate spam;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `spam`
|
|||||||
LL | use spam::*;
|
LL | use spam::*;
|
||||||
| ^^^^ you might be missing crate `spam`
|
| ^^^^ you might be missing crate `spam`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate spam` to use the `spam` crate
|
help: consider importing the `spam` crate
|
||||||
|
|
|
||||||
|
LL + extern crate spam;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `main`
|
|||||||
LL | use main::bar;
|
LL | use main::bar;
|
||||||
| ^^^^ you might be missing crate `main`
|
| ^^^^ you might be missing crate `main`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate main` to use the `main` crate
|
help: consider importing the `main` crate
|
||||||
|
|
|
||||||
|
LL + extern crate main;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `unresolved`
|
|||||||
LL | pub use unresolved::f;
|
LL | pub use unresolved::f;
|
||||||
| ^^^^^^^^^^ you might be missing crate `unresolved`
|
| ^^^^^^^^^^ you might be missing crate `unresolved`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate unresolved` to use the `unresolved` crate
|
help: consider importing the `unresolved` crate
|
||||||
|
|
|
||||||
|
LL + extern crate unresolved;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
use unresolved::*;
|
use unresolved::*;
|
||||||
//~^ ERROR unresolved import `unresolved` [E0432]
|
//~^ ERROR unresolved import `unresolved` [E0432]
|
||||||
//~| NOTE you might be missing crate `unresolved`
|
//~| NOTE you might be missing crate `unresolved`
|
||||||
//~| HELP consider adding `extern crate unresolved` to use the `unresolved` crate
|
//~| HELP consider importing the `unresolved` crate
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `unresolved`
|
|||||||
LL | use unresolved::*;
|
LL | use unresolved::*;
|
||||||
| ^^^^^^^^^^ you might be missing crate `unresolved`
|
| ^^^^^^^^^^ you might be missing crate `unresolved`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate unresolved` to use the `unresolved` crate
|
help: consider importing the `unresolved` crate
|
||||||
|
|
|
||||||
|
LL + extern crate unresolved;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `abc`
|
|||||||
LL | use abc::one_el;
|
LL | use abc::one_el;
|
||||||
| ^^^ you might be missing crate `abc`
|
| ^^^ you might be missing crate `abc`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate abc` to use the `abc` crate
|
help: consider importing the `abc` crate
|
||||||
|
|
|
||||||
|
LL + extern crate abc;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `abc`
|
error[E0432]: unresolved import `abc`
|
||||||
--> $DIR/issue-33464.rs:5:5
|
--> $DIR/issue-33464.rs:5:5
|
||||||
@ -12,7 +15,10 @@ error[E0432]: unresolved import `abc`
|
|||||||
LL | use abc::{a, bbb, cccccc};
|
LL | use abc::{a, bbb, cccccc};
|
||||||
| ^^^ you might be missing crate `abc`
|
| ^^^ you might be missing crate `abc`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate abc` to use the `abc` crate
|
help: consider importing the `abc` crate
|
||||||
|
|
|
||||||
|
LL + extern crate abc;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `a_very_long_name`
|
error[E0432]: unresolved import `a_very_long_name`
|
||||||
--> $DIR/issue-33464.rs:7:5
|
--> $DIR/issue-33464.rs:7:5
|
||||||
@ -20,7 +26,10 @@ error[E0432]: unresolved import `a_very_long_name`
|
|||||||
LL | use a_very_long_name::{el, el2};
|
LL | use a_very_long_name::{el, el2};
|
||||||
| ^^^^^^^^^^^^^^^^ you might be missing crate `a_very_long_name`
|
| ^^^^^^^^^^^^^^^^ you might be missing crate `a_very_long_name`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate a_very_long_name` to use the `a_very_long_name` crate
|
help: consider importing the `a_very_long_name` crate
|
||||||
|
|
|
||||||
|
LL + extern crate a_very_long_name;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 3 previous errors
|
error: aborting due to 3 previous errors
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `issue_36881_aux`
|
|||||||
LL | use issue_36881_aux::Foo;
|
LL | use issue_36881_aux::Foo;
|
||||||
| ^^^^^^^^^^^^^^^ you might be missing crate `issue_36881_aux`
|
| ^^^^^^^^^^^^^^^ you might be missing crate `issue_36881_aux`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate issue_36881_aux` to use the `issue_36881_aux` crate
|
help: consider importing the `issue_36881_aux` crate
|
||||||
|
|
|
||||||
|
LL + extern crate issue_36881_aux;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `test`
|
|||||||
LL | use test::*;
|
LL | use test::*;
|
||||||
| ^^^^ you might be missing crate `test`
|
| ^^^^ you might be missing crate `test`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate test` to use the `test` crate
|
help: consider importing the `test` crate
|
||||||
|
|
|
||||||
|
LL + extern crate test;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0658]: use of unstable library feature 'test'
|
error[E0658]: use of unstable library feature 'test'
|
||||||
--> $DIR/issue-37887.rs:2:5
|
--> $DIR/issue-37887.rs:2:5
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `nonexistent_module`
|
|||||||
LL | use nonexistent_module::mac;
|
LL | use nonexistent_module::mac;
|
||||||
| ^^^^^^^^^^^^^^^^^^ you might be missing crate `nonexistent_module`
|
| ^^^^^^^^^^^^^^^^^^ you might be missing crate `nonexistent_module`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate nonexistent_module` to use the `nonexistent_module` crate
|
help: consider importing the `nonexistent_module` crate
|
||||||
|
|
|
||||||
|
LL + extern crate nonexistent_module;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0659]: `mac` is ambiguous
|
error[E0659]: `mac` is ambiguous
|
||||||
--> $DIR/issue-53269.rs:8:5
|
--> $DIR/issue-53269.rs:8:5
|
||||||
|
@ -13,7 +13,10 @@ error[E0432]: unresolved import `non_existent`
|
|||||||
LL | use non_existent::non_existent;
|
LL | use non_existent::non_existent;
|
||||||
| ^^^^^^^^^^^^ you might be missing crate `non_existent`
|
| ^^^^^^^^^^^^ you might be missing crate `non_existent`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate non_existent` to use the `non_existent` crate
|
help: consider importing the `non_existent` crate
|
||||||
|
|
|
||||||
|
LL + extern crate non_existent;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `doesnt_exist`
|
|||||||
LL | pub use doesnt_exist::*;
|
LL | pub use doesnt_exist::*;
|
||||||
| ^^^^^^^^^^^^ you might be missing crate `doesnt_exist`
|
| ^^^^^^^^^^^^ you might be missing crate `doesnt_exist`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate doesnt_exist` to use the `doesnt_exist` crate
|
help: consider importing the `doesnt_exist` crate
|
||||||
|
|
|
||||||
|
LL + extern crate doesnt_exist;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0433]: failed to resolve: you might be missing crate `clippy`
|
|||||||
LL | use clippy::a::b;
|
LL | use clippy::a::b;
|
||||||
| ^^^^^^ you might be missing crate `clippy`
|
| ^^^^^^ you might be missing crate `clippy`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate clippy` to use the `clippy` crate
|
help: consider importing the `clippy` crate
|
||||||
|
|
|
||||||
|
LL + extern crate clippy;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `clippy`
|
error[E0432]: unresolved import `clippy`
|
||||||
--> $DIR/tool-mod-child.rs:1:5
|
--> $DIR/tool-mod-child.rs:1:5
|
||||||
@ -12,7 +15,10 @@ error[E0432]: unresolved import `clippy`
|
|||||||
LL | use clippy::a;
|
LL | use clippy::a;
|
||||||
| ^^^^^^ you might be missing crate `clippy`
|
| ^^^^^^ you might be missing crate `clippy`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate clippy` to use the `clippy` crate
|
help: consider importing the `clippy` crate
|
||||||
|
|
|
||||||
|
LL + extern crate clippy;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0433]: failed to resolve: you might be missing crate `rustdoc`
|
error[E0433]: failed to resolve: you might be missing crate `rustdoc`
|
||||||
--> $DIR/tool-mod-child.rs:5:5
|
--> $DIR/tool-mod-child.rs:5:5
|
||||||
@ -20,7 +26,10 @@ error[E0433]: failed to resolve: you might be missing crate `rustdoc`
|
|||||||
LL | use rustdoc::a::b;
|
LL | use rustdoc::a::b;
|
||||||
| ^^^^^^^ you might be missing crate `rustdoc`
|
| ^^^^^^^ you might be missing crate `rustdoc`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate rustdoc` to use the `rustdoc` crate
|
help: consider importing the `rustdoc` crate
|
||||||
|
|
|
||||||
|
LL + extern crate rustdoc;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `rustdoc`
|
error[E0432]: unresolved import `rustdoc`
|
||||||
--> $DIR/tool-mod-child.rs:4:5
|
--> $DIR/tool-mod-child.rs:4:5
|
||||||
@ -28,7 +37,10 @@ error[E0432]: unresolved import `rustdoc`
|
|||||||
LL | use rustdoc::a;
|
LL | use rustdoc::a;
|
||||||
| ^^^^^^^ you might be missing crate `rustdoc`
|
| ^^^^^^^ you might be missing crate `rustdoc`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate rustdoc` to use the `rustdoc` crate
|
help: consider importing the `rustdoc` crate
|
||||||
|
|
|
||||||
|
LL + extern crate rustdoc;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 4 previous errors
|
error: aborting due to 4 previous errors
|
||||||
|
|
||||||
|
@ -16,7 +16,10 @@ error[E0432]: unresolved import `foo`
|
|||||||
LL | use foo::bar;
|
LL | use foo::bar;
|
||||||
| ^^^ you might be missing crate `foo`
|
| ^^^ you might be missing crate `foo`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate foo` to use the `foo` crate
|
help: consider importing the `foo` crate
|
||||||
|
|
|
||||||
|
LL + extern crate foo;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `baz`
|
error[E0432]: unresolved import `baz`
|
||||||
--> $DIR/unresolved-imports-used.rs:12:5
|
--> $DIR/unresolved-imports-used.rs:12:5
|
||||||
@ -24,7 +27,10 @@ error[E0432]: unresolved import `baz`
|
|||||||
LL | use baz::*;
|
LL | use baz::*;
|
||||||
| ^^^ you might be missing crate `baz`
|
| ^^^ you might be missing crate `baz`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate baz` to use the `baz` crate
|
help: consider importing the `baz` crate
|
||||||
|
|
|
||||||
|
LL + extern crate baz;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `foo2`
|
error[E0432]: unresolved import `foo2`
|
||||||
--> $DIR/unresolved-imports-used.rs:14:5
|
--> $DIR/unresolved-imports-used.rs:14:5
|
||||||
@ -32,7 +38,10 @@ error[E0432]: unresolved import `foo2`
|
|||||||
LL | use foo2::bar2;
|
LL | use foo2::bar2;
|
||||||
| ^^^^ you might be missing crate `foo2`
|
| ^^^^ you might be missing crate `foo2`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate foo2` to use the `foo2` crate
|
help: consider importing the `foo2` crate
|
||||||
|
|
|
||||||
|
LL + extern crate foo2;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `baz2`
|
error[E0432]: unresolved import `baz2`
|
||||||
--> $DIR/unresolved-imports-used.rs:15:5
|
--> $DIR/unresolved-imports-used.rs:15:5
|
||||||
@ -40,7 +49,10 @@ error[E0432]: unresolved import `baz2`
|
|||||||
LL | use baz2::*;
|
LL | use baz2::*;
|
||||||
| ^^^^ you might be missing crate `baz2`
|
| ^^^^ you might be missing crate `baz2`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate baz2` to use the `baz2` crate
|
help: consider importing the `baz2` crate
|
||||||
|
|
|
||||||
|
LL + extern crate baz2;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0603]: function `quz` is private
|
error[E0603]: function `quz` is private
|
||||||
--> $DIR/unresolved-imports-used.rs:9:10
|
--> $DIR/unresolved-imports-used.rs:9:10
|
||||||
|
@ -15,7 +15,10 @@ error[E0432]: unresolved import `r#extern`
|
|||||||
LL | use extern::foo;
|
LL | use extern::foo;
|
||||||
| ^^^^^^ you might be missing crate `r#extern`
|
| ^^^^^^ you might be missing crate `r#extern`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate r#extern` to use the `r#extern` crate
|
help: consider importing the `r#extern` crate
|
||||||
|
|
|
||||||
|
LL + extern crate r#extern;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0433]: failed to resolve: you might be missing crate `bad`
|
|||||||
LL | pub(in bad::path) mod m1 {}
|
LL | pub(in bad::path) mod m1 {}
|
||||||
| ^^^ you might be missing crate `bad`
|
| ^^^ you might be missing crate `bad`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate bad` to use the `bad` crate
|
help: consider importing the `bad` crate
|
||||||
|
|
|
||||||
|
LL + extern crate bad;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0742]: visibilities can only be restricted to ancestor modules
|
error[E0742]: visibilities can only be restricted to ancestor modules
|
||||||
--> $DIR/test.rs:51:12
|
--> $DIR/test.rs:51:12
|
||||||
|
@ -4,7 +4,10 @@ error[E0433]: failed to resolve: you might be missing crate `nonexistant`
|
|||||||
LL | fn global_inner(_: ::nonexistant::Foo) {
|
LL | fn global_inner(_: ::nonexistant::Foo) {
|
||||||
| ^^^^^^^^^^^ you might be missing crate `nonexistant`
|
| ^^^^^^^^^^^ you might be missing crate `nonexistant`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate nonexistant` to use the `nonexistant` crate
|
help: consider importing the `nonexistant` crate
|
||||||
|
|
|
||||||
|
LL + extern crate nonexistant;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0433]: failed to resolve: you might be missing crate `nonexistant`
|
error[E0433]: failed to resolve: you might be missing crate `nonexistant`
|
||||||
--> $DIR/editions-crate-root-2015.rs:7:30
|
--> $DIR/editions-crate-root-2015.rs:7:30
|
||||||
@ -12,7 +15,10 @@ error[E0433]: failed to resolve: you might be missing crate `nonexistant`
|
|||||||
LL | fn crate_inner(_: crate::nonexistant::Foo) {
|
LL | fn crate_inner(_: crate::nonexistant::Foo) {
|
||||||
| ^^^^^^^^^^^ you might be missing crate `nonexistant`
|
| ^^^^^^^^^^^ you might be missing crate `nonexistant`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate nonexistant` to use the `nonexistant` crate
|
help: consider importing the `nonexistant` crate
|
||||||
|
|
|
||||||
|
LL + extern crate nonexistant;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0412]: cannot find type `nonexistant` in the crate root
|
error[E0412]: cannot find type `nonexistant` in the crate root
|
||||||
--> $DIR/editions-crate-root-2015.rs:11:25
|
--> $DIR/editions-crate-root-2015.rs:11:25
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `extern_prelude`
|
|||||||
LL | use extern_prelude::S;
|
LL | use extern_prelude::S;
|
||||||
| ^^^^^^^^^^^^^^ you might be missing crate `extern_prelude`
|
| ^^^^^^^^^^^^^^ you might be missing crate `extern_prelude`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate extern_prelude` to use the `extern_prelude` crate
|
help: consider importing the `extern_prelude` crate
|
||||||
|
|
|
||||||
|
LL + extern crate extern_prelude;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0433]: failed to resolve: you might be missing crate `extern_prelude`
|
error[E0433]: failed to resolve: you might be missing crate `extern_prelude`
|
||||||
--> $DIR/extern-prelude-fail.rs:8:15
|
--> $DIR/extern-prelude-fail.rs:8:15
|
||||||
@ -12,7 +15,10 @@ error[E0433]: failed to resolve: you might be missing crate `extern_prelude`
|
|||||||
LL | let s = ::extern_prelude::S;
|
LL | let s = ::extern_prelude::S;
|
||||||
| ^^^^^^^^^^^^^^ you might be missing crate `extern_prelude`
|
| ^^^^^^^^^^^^^^ you might be missing crate `extern_prelude`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate extern_prelude` to use the `extern_prelude` crate
|
help: consider importing the `extern_prelude` crate
|
||||||
|
|
|
||||||
|
LL + extern crate extern_prelude;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0433]: failed to resolve: you might be missing crate `x`
|
|||||||
LL | use x::y::z;
|
LL | use x::y::z;
|
||||||
| ^ you might be missing crate `x`
|
| ^ you might be missing crate `x`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate x` to use the `x` crate
|
help: consider importing the `x` crate
|
||||||
|
|
|
||||||
|
LL + extern crate x;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0599]: no function or associated item named `z` found for struct `Box<_, _>` in the current scope
|
error[E0599]: no function or associated item named `z` found for struct `Box<_, _>` in the current scope
|
||||||
--> $DIR/issue-82865.rs:8:10
|
--> $DIR/issue-82865.rs:8:10
|
||||||
|
@ -22,7 +22,10 @@ error[E0433]: failed to resolve: you might be missing crate `nonexistent`
|
|||||||
LL | pub(in nonexistent) struct G;
|
LL | pub(in nonexistent) struct G;
|
||||||
| ^^^^^^^^^^^ you might be missing crate `nonexistent`
|
| ^^^^^^^^^^^ you might be missing crate `nonexistent`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate nonexistent` to use the `nonexistent` crate
|
help: consider importing the `nonexistent` crate
|
||||||
|
|
|
||||||
|
LL + extern crate nonexistent;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0433]: failed to resolve: you might be missing crate `too_soon`
|
error[E0433]: failed to resolve: you might be missing crate `too_soon`
|
||||||
--> $DIR/resolve-bad-visibility.rs:8:8
|
--> $DIR/resolve-bad-visibility.rs:8:8
|
||||||
@ -30,7 +33,10 @@ error[E0433]: failed to resolve: you might be missing crate `too_soon`
|
|||||||
LL | pub(in too_soon) struct H;
|
LL | pub(in too_soon) struct H;
|
||||||
| ^^^^^^^^ you might be missing crate `too_soon`
|
| ^^^^^^^^ you might be missing crate `too_soon`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate too_soon` to use the `too_soon` crate
|
help: consider importing the `too_soon` crate
|
||||||
|
|
|
||||||
|
LL + extern crate too_soon;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 5 previous errors
|
error: aborting due to 5 previous errors
|
||||||
|
|
||||||
|
@ -38,33 +38,25 @@ error[E0432]: unresolved import `_`
|
|||||||
--> $DIR/issue-110164.rs:8:5
|
--> $DIR/issue-110164.rs:8:5
|
||||||
|
|
|
|
||||||
LL | use _::*;
|
LL | use _::*;
|
||||||
| ^ you might be missing crate `_`
|
| ^ `_` is not a valid crate or module name
|
||||||
|
|
|
||||||
= help: consider adding `extern crate _` to use the `_` crate
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `_`
|
error[E0432]: unresolved import `_`
|
||||||
--> $DIR/issue-110164.rs:5:5
|
--> $DIR/issue-110164.rs:5:5
|
||||||
|
|
|
|
||||||
LL | use _::a;
|
LL | use _::a;
|
||||||
| ^ you might be missing crate `_`
|
| ^ `_` is not a valid crate or module name
|
||||||
|
|
|
||||||
= help: consider adding `extern crate _` to use the `_` crate
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `_`
|
error[E0432]: unresolved import `_`
|
||||||
--> $DIR/issue-110164.rs:13:9
|
--> $DIR/issue-110164.rs:13:9
|
||||||
|
|
|
|
||||||
LL | use _::a;
|
LL | use _::a;
|
||||||
| ^ you might be missing crate `_`
|
| ^ `_` is not a valid crate or module name
|
||||||
|
|
|
||||||
= help: consider adding `extern crate _` to use the `_` crate
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `_`
|
error[E0432]: unresolved import `_`
|
||||||
--> $DIR/issue-110164.rs:16:9
|
--> $DIR/issue-110164.rs:16:9
|
||||||
|
|
|
|
||||||
LL | use _::*;
|
LL | use _::*;
|
||||||
| ^ you might be missing crate `_`
|
| ^ `_` is not a valid crate or module name
|
||||||
|
|
|
||||||
= help: consider adding `extern crate _` to use the `_` crate
|
|
||||||
|
|
||||||
error: aborting due to 10 previous errors
|
error: aborting due to 10 previous errors
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ error[E0432]: unresolved import `not_existing_crate`
|
|||||||
LL | use not_existing_crate::*;
|
LL | use not_existing_crate::*;
|
||||||
| ^^^^^^^^^^^^^^^^^^ you might be missing crate `not_existing_crate`
|
| ^^^^^^^^^^^^^^^^^^ you might be missing crate `not_existing_crate`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate not_existing_crate` to use the `not_existing_crate` crate
|
help: consider importing the `not_existing_crate` crate
|
||||||
|
|
|
||||||
|
LL + extern crate not_existing_crate;
|
||||||
|
|
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
use foo::bar;
|
use foo::bar;
|
||||||
//~^ ERROR unresolved import `foo` [E0432]
|
//~^ ERROR unresolved import `foo` [E0432]
|
||||||
//~| NOTE you might be missing crate `foo`
|
//~| NOTE you might be missing crate `foo`
|
||||||
//~| HELP consider adding `extern crate foo` to use the `foo` crate
|
//~| HELP consider importing the `foo` crate
|
||||||
|
//~| SUGGESTION extern crate foo;
|
||||||
|
|
||||||
use bar::Baz as x;
|
use bar::Baz as x;
|
||||||
//~^ ERROR unresolved import `bar::Baz` [E0432]
|
//~^ ERROR unresolved import `bar::Baz` [E0432]
|
||||||
|
@ -4,10 +4,13 @@ error[E0432]: unresolved import `foo`
|
|||||||
LL | use foo::bar;
|
LL | use foo::bar;
|
||||||
| ^^^ you might be missing crate `foo`
|
| ^^^ you might be missing crate `foo`
|
||||||
|
|
|
|
||||||
= help: consider adding `extern crate foo` to use the `foo` crate
|
help: consider importing the `foo` crate
|
||||||
|
|
|
||||||
|
LL + extern crate foo;
|
||||||
|
|
|
||||||
|
|
||||||
error[E0432]: unresolved import `bar::Baz`
|
error[E0432]: unresolved import `bar::Baz`
|
||||||
--> $DIR/unresolved-import.rs:6:5
|
--> $DIR/unresolved-import.rs:7:5
|
||||||
|
|
|
|
||||||
LL | use bar::Baz as x;
|
LL | use bar::Baz as x;
|
||||||
| ^^^^^---^^^^^
|
| ^^^^^---^^^^^
|
||||||
@ -16,7 +19,7 @@ LL | use bar::Baz as x;
|
|||||||
| no `Baz` in `bar`
|
| no `Baz` in `bar`
|
||||||
|
|
||||||
error[E0432]: unresolved import `food::baz`
|
error[E0432]: unresolved import `food::baz`
|
||||||
--> $DIR/unresolved-import.rs:12:5
|
--> $DIR/unresolved-import.rs:13:5
|
||||||
|
|
|
|
||||||
LL | use food::baz;
|
LL | use food::baz;
|
||||||
| ^^^^^^---
|
| ^^^^^^---
|
||||||
@ -25,7 +28,7 @@ LL | use food::baz;
|
|||||||
| no `baz` in `food`
|
| no `baz` in `food`
|
||||||
|
|
||||||
error[E0432]: unresolved import `food::beens`
|
error[E0432]: unresolved import `food::beens`
|
||||||
--> $DIR/unresolved-import.rs:18:12
|
--> $DIR/unresolved-import.rs:19:12
|
||||||
|
|
|
|
||||||
LL | use food::{beens as Foo};
|
LL | use food::{beens as Foo};
|
||||||
| -----^^^^^^^
|
| -----^^^^^^^
|
||||||
@ -34,13 +37,13 @@ LL | use food::{beens as Foo};
|
|||||||
| help: a similar name exists in the module: `beans`
|
| help: a similar name exists in the module: `beans`
|
||||||
|
|
||||||
error[E0432]: unresolved import `MyEnum`
|
error[E0432]: unresolved import `MyEnum`
|
||||||
--> $DIR/unresolved-import.rs:43:9
|
--> $DIR/unresolved-import.rs:44:9
|
||||||
|
|
|
|
||||||
LL | use MyEnum::*;
|
LL | use MyEnum::*;
|
||||||
| ^^^^^^ help: a similar path exists: `self::MyEnum`
|
| ^^^^^^ help: a similar path exists: `self::MyEnum`
|
||||||
|
|
||||||
error[E0432]: unresolved import `Enum`
|
error[E0432]: unresolved import `Enum`
|
||||||
--> $DIR/unresolved-import.rs:54:9
|
--> $DIR/unresolved-import.rs:55:9
|
||||||
|
|
|
|
||||||
LL | use Enum::*;
|
LL | use Enum::*;
|
||||||
| ^^^^ help: a similar path exists: `self::Enum`
|
| ^^^^ help: a similar path exists: `self::Enum`
|
||||||
|
Loading…
Reference in New Issue
Block a user