From 8599763cb9df1bc201d353a316e42ef0bc36892a Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Wed, 7 Jun 2017 18:24:43 +0300 Subject: [PATCH] Do not perform type checks for function literals in visitor in NI mode They are type-checked as arguments for the corresponding expressions. --- .../kotlin/types/expressions/FunctionsTypingVisitor.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/FunctionsTypingVisitor.kt b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/FunctionsTypingVisitor.kt index f58156fbe62..dfbba26582a 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/FunctionsTypingVisitor.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/FunctionsTypingVisitor.kt @@ -36,6 +36,7 @@ import org.jetbrains.kotlin.resolve.BindingContext.EXPECTED_RETURN_TYPE import org.jetbrains.kotlin.resolve.BindingContextUtils import org.jetbrains.kotlin.resolve.BindingTrace import org.jetbrains.kotlin.resolve.FunctionDescriptorUtil +import org.jetbrains.kotlin.resolve.calls.USE_NEW_INFERENCE import org.jetbrains.kotlin.resolve.checkers.UnderscoreChecker import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil import org.jetbrains.kotlin.resolve.scopes.LexicalWritableScope @@ -130,7 +131,7 @@ internal class FunctionsTypingVisitor(facade: ExpressionTypingInternals) : Expre val resultType = functionDescriptor.createFunctionType(suspendFunctionTypeExpected) - if (functionalTypeExpected) + if (USE_NEW_INFERENCE && functionalTypeExpected) createTypeInfo(resultType, context) else components.dataFlowAnalyzer.createCheckedTypeInfo(resultType, context, function)