[FIR] Don't use implicit type as expected type of anonymous function

This commit is contained in:
Dmitriy Novozhilov
2019-08-02 12:05:14 +03:00
parent 7861396246
commit e944119f71
@@ -334,11 +334,8 @@ open class FirBodyResolveTransformer(
fun transform(): FirAnonymousFunction {
return withScopeCleanup(scopes) {
scopes.addIfNotNull(receiverTypeRef?.coneTypeSafe<ConeKotlinType>()?.scope(session, scopeSession))
val result =
super.transformAnonymousFunction(
anonymousFunction,
lambdaResolution.expectedReturnTypeRef ?: anonymousFunction.returnTypeRef
).single as FirAnonymousFunction
val expectedReturnType = lambdaResolution.expectedReturnTypeRef ?: anonymousFunction.returnTypeRef.takeUnless { it is FirImplicitTypeRef }
val result = super.transformAnonymousFunction(anonymousFunction, expectedReturnType).single as FirAnonymousFunction
val body = result.body
if (result.returnTypeRef is FirImplicitTypeRef && body != null) {
result.transformReturnTypeRef(this, body.resultType)