K2: Use deserialized type annotation for lambda type resolution.

This commit adds code to check whether a deserialized cone type is a
special function type kind or not when resolving the type of a lambda
expression (anonymous function). If it is a special function kind, it
sets the type of lambda based on the special function kind.

^KT-64994 Fixed
This commit is contained in:
Jaebaek Seo
2024-02-12 16:58:43 -08:00
committed by Space Cloud
parent 10a422180a
commit 171ea3571c
19 changed files with 406 additions and 5 deletions
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.callRes
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.callResolver.AbstractResolveCandidatesTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compileTimeConstantProvider.AbstractCompileTimeConstantEvaluatorTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compilerFacility.AbstractCompilerFacilityTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compilerFacility.AbstractFirPluginPrototypeMultiBinaryModuleCompilerFacilityTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.compilerFacility.AbstractMultiModuleCompilerFacilityTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.containingDeclarationProvider.AbstractContainingDeclarationProviderByDelegatedMemberScopeTest
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.containingDeclarationProvider.AbstractContainingDeclarationProviderByMemberScopeTest
@@ -116,6 +117,12 @@ internal fun AnalysisApiTestGroup.generateAnalysisApiTests() {
test(AbstractMultiModuleCompilerFacilityTest::class, filter = testModuleKindIs(TestModuleKind.LibraryBinary)) {
model("compilationMultiBinaryModule", pattern = TestGeneratorUtil.KT)
}
test(
AbstractFirPluginPrototypeMultiBinaryModuleCompilerFacilityTest::class, filter = testModuleKindIs(TestModuleKind.LibraryBinary)
) {
model("firPluginPrototypeMultiBinaryModule", pattern = TestGeneratorUtil.KT)
}
}
group(filter = testModuleKindIs(TestModuleKind.Source, TestModuleKind.ScriptSource)) {