From 31b4a021a9a4788a664012beeb8eec653c76bd77 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Fri, 31 Jul 2020 14:50:29 +0300 Subject: [PATCH] [ULC] Add JvmDeclarationOriginKind.DELEGATION to DeclarationOriginKindForOrigin of delegated methods --- .../kotlin/asJava/classes/ultraLightClass.kt | 15 ++++++++++++--- .../kotlin/asJava/classes/ultraLightUtils.kt | 5 +++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt index 29d894435ce..e368530dba6 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt @@ -39,6 +39,7 @@ import org.jetbrains.kotlin.resolve.annotations.JVM_STATIC_ANNOTATION_FQ_NAME import org.jetbrains.kotlin.resolve.annotations.argumentValue import org.jetbrains.kotlin.resolve.constants.EnumValue import org.jetbrains.kotlin.resolve.jvm.annotations.JVM_OVERLOADS_FQ_NAME +import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKind import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.typeUtil.isAnyOrNullableAny @@ -341,7 +342,7 @@ open class KtUltraLightClass(classOrObject: KtClassOrObject, internal val suppor object : DataClassMethodGenerator(classOrObject, bindingContext) { private fun addFunction(descriptor: FunctionDescriptor, declarationForOrigin: KtDeclaration? = null) { - result.add(createGeneratedMethodFromDescriptor(descriptor, declarationForOrigin)) + result.add(createGeneratedMethodFromDescriptor(descriptor, JvmDeclarationOriginKind.OTHER, declarationForOrigin)) } override fun generateComponentFunction(function: FunctionDescriptor, parameter: ValueParameterDescriptor) { @@ -387,9 +388,17 @@ open class KtUltraLightClass(classOrObject: KtClassOrObject, internal val suppor when (delegate) { is PropertyDescriptor -> delegate.accessors.mapTo(result) { - createGeneratedMethodFromDescriptor(it) + createGeneratedMethodFromDescriptor( + descriptor = it, + declarationOriginKindForOrigin = JvmDeclarationOriginKind.DELEGATION + ) } - is FunctionDescriptor -> result.add(createGeneratedMethodFromDescriptor(delegate)) + is FunctionDescriptor -> result.add( + createGeneratedMethodFromDescriptor( + descriptor = delegate, + declarationOriginKindForOrigin = JvmDeclarationOriginKind.DELEGATION + ) + ) } } } diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightUtils.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightUtils.kt index d8082c6520c..75af6ba6ce5 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightUtils.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightUtils.kt @@ -236,7 +236,8 @@ fun KotlinType.cleanFromAnonymousTypes(): KotlinType? { fun KtUltraLightClass.createGeneratedMethodFromDescriptor( descriptor: FunctionDescriptor, - declarationForOrigin: KtDeclaration? = null, + declarationOriginKindForOrigin: JvmDeclarationOriginKind = JvmDeclarationOriginKind.OTHER, + declarationForOrigin: KtDeclaration? = null ): KtLightMethod { val kotlinOrigin = @@ -244,7 +245,7 @@ fun KtUltraLightClass.createGeneratedMethodFromDescriptor( ?: DescriptorToSourceUtils.descriptorToDeclaration(descriptor) as? KtDeclaration ?: kotlinOrigin - val lightMemberOrigin = LightMemberOriginForDeclaration(kotlinOrigin, JvmDeclarationOriginKind.OTHER) + val lightMemberOrigin = LightMemberOriginForDeclaration(kotlinOrigin, declarationOriginKindForOrigin) return KtUltraLightMethodForDescriptor(descriptor, lightMethod(descriptor), lightMemberOrigin, support, this) }