[Analysis API FE10] fix CallableId for synthetic java property descriptors

This commit is contained in:
Ilya Kirillov
2022-06-13 15:53:19 +02:00
parent 36f370f501
commit d5113892df
2 changed files with 12 additions and 1 deletions
@@ -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<String>()
@@ -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) {
@@ -1,3 +1,3 @@
Resolved to:
0: (in JavaClass) open fun setSomething(value: kotlin.Int)
1: var JavaClass.something: kotlin.Int
1: (in JavaClass) var JavaClass.something: kotlin.Int