K2: handle suspend anonymous functions properly in various compiler parts

#KT-58332 Fixed
This commit is contained in:
Mikhail Glukhikh
2023-05-05 11:56:37 +02:00
committed by Space Team
parent aec0def5ca
commit 0906258d03
24 changed files with 95 additions and 19 deletions
@@ -130,9 +130,12 @@ object FirSuspendCallChecker : FirQualifiedAccessExpressionChecker() {
private fun findEnclosingSuspendFunction(context: CheckerContext): FirFunction? {
return context.containingDeclarations.lastOrNull {
when (it) {
is FirAnonymousFunction -> it.typeRef.coneType.isSuspendOrKSuspendFunctionType(context.session)
is FirSimpleFunction -> it.isSuspend
else -> false
is FirAnonymousFunction ->
if (it.isLambda) it.typeRef.coneType.isSuspendOrKSuspendFunctionType(context.session) else it.isSuspend
is FirSimpleFunction ->
it.isSuspend
else ->
false
}
} as? FirFunction
}