Async code should not be surprising. In general, if you surround a block of
synchronous code with
async or mark a sync
unexpected should happen.
- The code should evaluate to the same value after awaiting.
- Any compilation errors should be essentially the same, modulo details around implicit futures in the return type.
|Define "behave the same"||💤|
|Create testing to ensure same behavior||💤|