detect () to avoid redundant <> suggestion for type

fix #104379
This commit is contained in:
Yiming Lei 2022-11-16 10:13:51 -08:00
parent 63c748ee23
commit 867582eb97
4 changed files with 44 additions and 8 deletions

View file

@ -7,4 +7,12 @@ fn main() {
let x: &u32 = item;
assert_eq!(x, &1);
}
let iter_fun2 = <(&[u32])>::iter;
//~^ no function or associated item named `iter` found for reference `&[u32]` in the current scope [E0599]
//~| function or associated item not found in `&[u32]`
//~| HELP the function `iter` is implemented on `[u32]`
for item2 in iter_fun2(&[1,1]) {
let x: &u32 = item2;
assert_eq!(x, &1);
}
}

View file

@ -9,6 +9,17 @@ help: the function `iter` is implemented on `[u32]`
LL | let iter_fun = <[u32]>::iter;
| ~~~~~
error: aborting due to previous error
error[E0599]: no function or associated item named `iter` found for reference `&[u32]` in the current scope
--> $DIR/issue-103271.rs:10:33
|
LL | let iter_fun2 = <(&[u32])>::iter;
| ^^^^ function or associated item not found in `&[u32]`
|
help: the function `iter` is implemented on `[u32]`
|
LL | let iter_fun2 = <([u32])>::iter;
| ~~~~~
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0599`.