| #### Note: this error code is no longer emitted by the compiler. | |
| When using coroutines (or async) all type variables must be bound so a | |
| coroutine can be constructed. | |
| Erroneous code example: | |
| ```edition2018,compile_fail,E0282 | |
| async fn bar<T>() -> () {} | |
| async fn foo() { | |
| bar().await; // error: cannot infer type for `T` | |
| } | |
| ``` | |
| In the above example `T` is unknowable by the compiler. | |
| To fix this you must bind `T` to a concrete type such as `String` | |
| so that a coroutine can then be constructed: | |
| ```edition2018 | |
| async fn bar<T>() -> () {} | |
| async fn foo() { | |
| bar::<String>().await; | |
| // ^^^^^^^^ specify type explicitly | |
| } | |
| ``` |