From e944119f71e74b400b2847aeb104f4c79744c70b Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Fri, 2 Aug 2019 12:05:14 +0300 Subject: [PATCH] [FIR] Don't use implicit type as expected type of anonymous function --- .../fir/resolve/transformers/FirBodyResolveTransformer.kt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt index 9061c1ed2f3..e03192283cc 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt @@ -334,11 +334,8 @@ open class FirBodyResolveTransformer( fun transform(): FirAnonymousFunction { return withScopeCleanup(scopes) { scopes.addIfNotNull(receiverTypeRef?.coneTypeSafe()?.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)