_Subset of https://github.com/rust-lang/rust/issues/63502_
When encountering
#![feature(async_await)]
use std::io::Error;
fn make_unit() -> Result<(), Error> {
Ok(())
}
fn main() {
let fut = async {
make_unit()?;
Ok(())
};
}
Do not suggest "consider giving fut the explicit type impl std::future::Future, with the type parameters specified ", as introduced in https://github.com/rust-lang/rust/pull/61361, when encountering impl Trait:
Also, the case for closures (CC https://github.com/rust-lang/rust/issues/46680):
error[E0282]: type annotations needed for `[closure@src/main.rs:3:13: 6:6]`
--> src/main.rs:4:9
|
3 | let x = || {
| - consider giving `x` the explicit type `[closure@src/main.rs:3:13: 6:6]`, with the type parameters specified
4 | Err(())?;
| ^^^^^^^^ cannot infer type
Btw, when we have the ability to ascribe a type let fut: impl Trait = async { ... }; then it does seem reasonable to suggest it again, so we should open an issue for undoing the fix to this issue.
then it does seem reasonable to suggest it again
Indeed, but suggestions should only be provided when they can be applied, either gated on nightly or not provided at all if depending on nightly features.
Most helpful comment
Indeed, but suggestions should only be provided when they can be applied, either gated on nightly or not provided at all if depending on nightly features.