Rollup merge of #111428 - bvanjoi:fix-109250, r=Nilstrieb
refactor(resolve): clean up the early error return caused by non-call closes https://github.com/rust-lang/rust/issues/109250 It seems no bad happened, r? ``@Nilstrieb``
This commit is contained in:
commit
f65281534f
@ -3543,10 +3543,6 @@ fn smart_resolve_path_fragment(
|
||||
//
|
||||
// Similar thing, for types, happens in `report_errors` above.
|
||||
let report_errors_for_call = |this: &mut Self, parent_err: Spanned<ResolutionError<'a>>| {
|
||||
if !source.is_call() {
|
||||
return Some(parent_err);
|
||||
}
|
||||
|
||||
// Before we start looking for candidates, we have to get our hands
|
||||
// on the type user is trying to perform invocation on; basically:
|
||||
// we're transforming `HashMap::new` into just `HashMap`.
|
||||
|
@ -36,7 +36,10 @@ error[E0433]: failed to resolve: use of undeclared type `I`
|
||||
--> $DIR/equality-bound.rs:9:41
|
||||
|
|
||||
LL | fn sum3<J: Iterator>(i: J) -> i32 where I::Item = i32 {
|
||||
| ^ use of undeclared type `I`
|
||||
| ^
|
||||
| |
|
||||
| use of undeclared type `I`
|
||||
| help: a type parameter with a similar name exists: `J`
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
@ -4,18 +4,21 @@ error[E0433]: failed to resolve: use of undeclared crate or module `env`
|
||||
LL | env::current_dir;
|
||||
| ^^^ use of undeclared crate or module `env`
|
||||
|
||||
error[E0433]: failed to resolve: use of undeclared crate or module `vec`
|
||||
--> $DIR/builtin-prelude-no-accidents.rs:7:14
|
||||
|
|
||||
LL | type B = vec::Vec<u8>;
|
||||
| ^^^
|
||||
| |
|
||||
| use of undeclared crate or module `vec`
|
||||
| help: a struct with a similar name exists (notice the capitalization): `Vec`
|
||||
|
||||
error[E0433]: failed to resolve: use of undeclared crate or module `panic`
|
||||
--> $DIR/builtin-prelude-no-accidents.rs:6:14
|
||||
|
|
||||
LL | type A = panic::PanicInfo;
|
||||
| ^^^^^ use of undeclared crate or module `panic`
|
||||
|
||||
error[E0433]: failed to resolve: use of undeclared crate or module `vec`
|
||||
--> $DIR/builtin-prelude-no-accidents.rs:7:14
|
||||
|
|
||||
LL | type B = vec::Vec<u8>;
|
||||
| ^^^ use of undeclared crate or module `vec`
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0433`.
|
||||
|
@ -1,9 +1,3 @@
|
||||
error[E0433]: failed to resolve: use of undeclared crate or module `dyn`
|
||||
--> $DIR/dyn-trait-compatibility.rs:3:11
|
||||
|
|
||||
LL | type A1 = dyn::dyn;
|
||||
| ^^^ use of undeclared crate or module `dyn`
|
||||
|
||||
error[E0412]: cannot find type `dyn` in this scope
|
||||
--> $DIR/dyn-trait-compatibility.rs:1:11
|
||||
|
|
||||
@ -46,6 +40,12 @@ error[E0412]: cannot find type `dyn` in this scope
|
||||
LL | type A3 = dyn<<dyn as dyn>::dyn>;
|
||||
| ^^^ not found in this scope
|
||||
|
||||
error[E0433]: failed to resolve: use of undeclared crate or module `dyn`
|
||||
--> $DIR/dyn-trait-compatibility.rs:3:11
|
||||
|
|
||||
LL | type A1 = dyn::dyn;
|
||||
| ^^^ use of undeclared crate or module `dyn`
|
||||
|
||||
error: aborting due to 8 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0405, E0412, E0433.
|
||||
|
@ -1,9 +1,3 @@
|
||||
error[E0433]: failed to resolve: use of undeclared type `E`
|
||||
--> $DIR/pattern-error-continue.rs:33:9
|
||||
|
|
||||
LL | E::V => {}
|
||||
| ^ use of undeclared type `E`
|
||||
|
||||
error[E0532]: expected tuple struct or tuple variant, found unit variant `A::D`
|
||||
--> $DIR/pattern-error-continue.rs:18:9
|
||||
|
|
||||
@ -56,6 +50,15 @@ note: function defined here
|
||||
LL | fn f(_c: char) {}
|
||||
| ^ --------
|
||||
|
||||
error[E0433]: failed to resolve: use of undeclared type `E`
|
||||
--> $DIR/pattern-error-continue.rs:33:9
|
||||
|
|
||||
LL | E::V => {}
|
||||
| ^
|
||||
| |
|
||||
| use of undeclared type `E`
|
||||
| help: an enum with a similar name exists: `A`
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0023, E0308, E0433, E0532.
|
||||
|
3
tests/ui/resolve/issue-109250.rs
Normal file
3
tests/ui/resolve/issue-109250.rs
Normal file
@ -0,0 +1,3 @@
|
||||
fn main() { //~ HELP consider importing
|
||||
HashMap::new; //~ ERROR failed to resolve: use of undeclared type `HashMap`
|
||||
}
|
14
tests/ui/resolve/issue-109250.stderr
Normal file
14
tests/ui/resolve/issue-109250.stderr
Normal file
@ -0,0 +1,14 @@
|
||||
error[E0433]: failed to resolve: use of undeclared type `HashMap`
|
||||
--> $DIR/issue-109250.rs:2:5
|
||||
|
|
||||
LL | HashMap::new;
|
||||
| ^^^^^^^ use of undeclared type `HashMap`
|
||||
|
|
||||
help: consider importing this struct
|
||||
|
|
||||
LL + use std::collections::HashMap;
|
||||
|
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0433`.
|
@ -3,12 +3,26 @@ error[E0433]: failed to resolve: `V` is a variant, not a module
|
||||
|
|
||||
LL | E::V::associated_item;
|
||||
| ^ `V` is a variant, not a module
|
||||
|
|
||||
help: there is an enum variant `E::V`; try using the variant's enum
|
||||
|
|
||||
LL | E;
|
||||
| ~
|
||||
|
||||
error[E0433]: failed to resolve: `V` is a variant, not a module
|
||||
--> $DIR/resolve-variant-assoc-item.rs:6:5
|
||||
|
|
||||
LL | V::associated_item;
|
||||
| ^ `V` is a variant, not a module
|
||||
|
|
||||
help: there is an enum variant `E::V`; try using the variant's enum
|
||||
|
|
||||
LL | E;
|
||||
| ~
|
||||
help: an enum with a similar name exists
|
||||
|
|
||||
LL | E::associated_item;
|
||||
| ~
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
@ -1,9 +1,3 @@
|
||||
error[E0433]: failed to resolve: use of undeclared type `NonExistent`
|
||||
--> $DIR/type-path-err-node-types.rs:15:5
|
||||
|
|
||||
LL | NonExistent::Assoc::<u8>;
|
||||
| ^^^^^^^^^^^ use of undeclared type `NonExistent`
|
||||
|
||||
error[E0412]: cannot find type `Nonexistent` in this scope
|
||||
--> $DIR/type-path-err-node-types.rs:7:12
|
||||
|
|
||||
@ -22,6 +16,12 @@ error[E0425]: cannot find value `nonexistent` in this scope
|
||||
LL | nonexistent.nonexistent::<u8>();
|
||||
| ^^^^^^^^^^^ not found in this scope
|
||||
|
||||
error[E0433]: failed to resolve: use of undeclared type `NonExistent`
|
||||
--> $DIR/type-path-err-node-types.rs:15:5
|
||||
|
|
||||
LL | NonExistent::Assoc::<u8>;
|
||||
| ^^^^^^^^^^^ use of undeclared type `NonExistent`
|
||||
|
||||
error[E0282]: type annotations needed
|
||||
--> $DIR/type-path-err-node-types.rs:23:14
|
||||
|
|
||||
|
Loading…
Reference in New Issue
Block a user