//! Transforms the annotated function into a generator-based coroutine.
varretT : TypeDeclPtr
if (func.result.baseType==Type.tVoid||func.result.baseType==Type.autoinfer) {
retT=qmacro_type(type<bool>)
} else {
retT=clone_type(func.result)
}
varblk=qmacro_block() {
return<-generator<$t(retT)> {
$e(func.body)
returnfalse// nolint:LINT001,LINT019 - safety net; LINT001 fires only for bodies that already end in return, so most compiles leave the directive unconsumed