[FIR] Implement overload resolution by lambda return type

#KT-43129 Fixed
This commit is contained in:
Dmitriy Novozhilov
2020-11-09 16:39:06 +03:00
parent 025ec8e8b1
commit 9f5aadd2f4
10 changed files with 258 additions and 38 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.resolve.descriptorUtil
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
@@ -15,7 +16,9 @@ val HIDES_MEMBERS_ANNOTATION_FQ_NAME = FqName("kotlin.internal.HidesMembers")
val ONLY_INPUT_TYPES_FQ_NAME = FqName("kotlin.internal.OnlyInputTypes")
val DYNAMIC_EXTENSION_FQ_NAME = FqName("kotlin.internal.DynamicExtension")
val BUILDER_INFERENCE_ANNOTATION_FQ_NAME = FqName("kotlin.BuilderInference")
val OVERLOAD_RESOLUTION_BY_LAMBDA_ANNOTATION_FQ_NAME = FqName.fromSegments(listOf("kotlin", "OverloadResolutionByLambdaReturnType"))
val OVERLOAD_RESOLUTION_BY_LAMBDA_ANNOTATION_CLASS_ID = ClassId(FqName("kotlin"), Name.identifier("OverloadResolutionByLambdaReturnType"))
val OVERLOAD_RESOLUTION_BY_LAMBDA_ANNOTATION_FQ_NAME = OVERLOAD_RESOLUTION_BY_LAMBDA_ANNOTATION_CLASS_ID.asSingleFqName()
// @HidesMembers annotation only has effect for members with these names
val HIDES_MEMBERS_NAME_LIST = setOf(Name.identifier("forEach"), Name.identifier("addSuppressed"))