AsyncCoroutineKind
CoroutineSource
similar to how we have `MatchSource`, it explains where the desugaring came from.
Please read the rustc-dev-guide chapter on Backend Agnostic Codegen.