Split coroutine desugaring kind from source What a coroutine is desugared from (gen/async gen/async) should be separate from where it comes (fn/block/closure).
never_patterns
Session::span_diagnostic
Session::dcx
struct_lint_level
HandlerInner::delay_span_bug
HandlerInner::span_delayed_bug
tcx.hir()
tcx