FIR: handle suspend functions in SAM resolution properly

This commit is contained in:
Mikhail Glukhikh
2020-04-20 09:50:18 +03:00
parent aada7bfe51
commit c5dea02074
2 changed files with 3 additions and 3 deletions
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.fir.scopes.impl.withReplacedConeType
import org.jetbrains.kotlin.fir.symbols.*
import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.types.builder.FirResolvedTypeRefBuilder
import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
@@ -223,8 +222,8 @@ fun createFunctionalType(
parameters: List<ConeKotlinType>,
receiverType: ConeKotlinType?,
rawReturnType: ConeKotlinType,
isKFunctionType: Boolean = false,
isSuspend: Boolean = false
isSuspend: Boolean,
isKFunctionType: Boolean = false
): ConeLookupTagBasedType {
val receiverAndParameterTypes = listOfNotNull(receiverType) + parameters + listOf(rawReturnType)
@@ -355,5 +355,6 @@ private fun FirSimpleFunction.getFunctionTypeForAbstractMethod(): ConeLookupTagB
return createFunctionalType(
parameterTypes, receiverType = null,
rawReturnType = returnTypeRef.coneTypeSafe() ?: ConeKotlinErrorType("No type for return type of $this"),
isSuspend = this.isSuspend
)
}