From d5113892dff46297806bff51335d2e9e515e915e Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 13 Jun 2022 15:53:19 +0200 Subject: [PATCH] [Analysis API FE10] fix CallableId for synthetic java property descriptors --- .../symbols/descriptorBased/base/Kt1DescUtils.kt | 11 +++++++++++ .../SyntheticProperty.descriptors.txt | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/Kt1DescUtils.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/Kt1DescUtils.kt index c690a1a6b23..ac881a71f0f 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/Kt1DescUtils.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/Kt1DescUtils.kt @@ -412,6 +412,9 @@ internal val CallableMemberDescriptor.callableIdIfNotLocal: CallableId? get() = calculateCallableId(allowLocal = false) internal fun CallableMemberDescriptor.calculateCallableId(allowLocal: Boolean): CallableId? { + if (this is SyntheticJavaPropertyDescriptor) { + return getMethod.calculateCallableId(allowLocal)?.copy(callableName = name) + } var current: DeclarationDescriptor = containingDeclaration val localName = mutableListOf() @@ -427,6 +430,14 @@ internal fun CallableMemberDescriptor.calculateCallableId(allowLocal: Boolean): pathToLocal = if (localName.isNotEmpty()) FqName.fromSegments(localName.asReversed()) else null ) } + is ModuleDescriptor -> { + return CallableId( + packageName = FqName.ROOT, + className = if (className.isNotEmpty()) FqName.fromSegments(className.asReversed()) else null, + callableName = name, + pathToLocal = if (localName.isNotEmpty()) FqName.fromSegments(localName.asReversed()) else null + ) + } is ClassDescriptor -> { if (current.kind == ClassKind.ENUM_ENTRY) { if (!allowLocal) { diff --git a/analysis/analysis-api/testData/referenceResolve/SyntheticProperty.descriptors.txt b/analysis/analysis-api/testData/referenceResolve/SyntheticProperty.descriptors.txt index ddef9f37661..231213935a1 100644 --- a/analysis/analysis-api/testData/referenceResolve/SyntheticProperty.descriptors.txt +++ b/analysis/analysis-api/testData/referenceResolve/SyntheticProperty.descriptors.txt @@ -1,3 +1,3 @@ Resolved to: 0: (in JavaClass) open fun setSomething(value: kotlin.Int) -1: var JavaClass.something: kotlin.Int \ No newline at end of file +1: (in JavaClass) var JavaClass.something: kotlin.Int \ No newline at end of file