# Steps to fix the https://github.com/rust-lang/rust/issues/80658
- [ ] Move the error message:
- from:
```
4 | async_fn()
| ^^^^^^^^^^ expected u8, found opaque type
```
- to:
```
4 | async_fn()
| ^^^^^^^^^^ expected `u8`, found future
```
- [x] move the note message:
- from:
```
note: while checking the return type of the `async fn`
--> test.rs:2:28
|
2 | async fn async_fn() -> u8 { 22 }
| ^^ checked the `Output` of this `async fn`, found opaque type
= note: expected type `u8`
found opaque type `impl Future<Output = u8>`
```
- to:
```
2 | async fn async_fn() -> u8 { 22 }
| ----- calling an async function returns a future
```
- [ ] this is missing some love to get the function signature span from the function call, [here](https://rust-lang.zulipchat.com/#narrow/stream/147480-t-compiler.2Fwg-diagnostics/topic/how.20to.20get.20the.20span.20of.20the.20function.20declaration) a possible discussion to solve the problem