- Users can predict and understand why the compiler raises error messages. Errors are aligned with an experienced user's intuition about how Rust works.
- Error messages identify common misconceptions, suggest solutions, and are generally on par with sync Rust.
- Errors not only show that there is a problem, they help the user to fix it and to learn more about Rust (possibly directing the user to other documentation).
- The compiler may suggest crates from the ecosystem to help solve problems when appropriate.
- Lints guide the user away from common errors and help them both to get started with async Rust and to maintain async Rust programs over time.
- Rust's async implementation is high quality and reflects an attention to detail.
- No internal compiler errors
- Compiler analysis and code generation passes are precise and not unnecessarily conservative.
- Integration with low-level tooling and the like is high-quality.
- The generated code from the compiler is high quality and performant.
|Lint: Must not suspend||🦀||Gus Wynn|
|Lint: Blocking in async context||💤|
|Lint: Large copies, large generators||💤|
|Cleaner async stacktraces||💤|
|Precise generator captures||🦀||eholk|
|Sync and async behave the same||💤|