[Analysis API FE10] fix CallableId for synthetic java property descriptors
This commit is contained in:
+11
@@ -412,6 +412,9 @@ internal val CallableMemberDescriptor.callableIdIfNotLocal: CallableId?
|
|||||||
get() = calculateCallableId(allowLocal = false)
|
get() = calculateCallableId(allowLocal = false)
|
||||||
|
|
||||||
internal fun CallableMemberDescriptor.calculateCallableId(allowLocal: Boolean): CallableId? {
|
internal fun CallableMemberDescriptor.calculateCallableId(allowLocal: Boolean): CallableId? {
|
||||||
|
if (this is SyntheticJavaPropertyDescriptor) {
|
||||||
|
return getMethod.calculateCallableId(allowLocal)?.copy(callableName = name)
|
||||||
|
}
|
||||||
var current: DeclarationDescriptor = containingDeclaration
|
var current: DeclarationDescriptor = containingDeclaration
|
||||||
|
|
||||||
val localName = mutableListOf<String>()
|
val localName = mutableListOf<String>()
|
||||||
@@ -427,6 +430,14 @@ internal fun CallableMemberDescriptor.calculateCallableId(allowLocal: Boolean):
|
|||||||
pathToLocal = if (localName.isNotEmpty()) FqName.fromSegments(localName.asReversed()) else null
|
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 -> {
|
is ClassDescriptor -> {
|
||||||
if (current.kind == ClassKind.ENUM_ENTRY) {
|
if (current.kind == ClassKind.ENUM_ENTRY) {
|
||||||
if (!allowLocal) {
|
if (!allowLocal) {
|
||||||
|
|||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
Resolved to:
|
Resolved to:
|
||||||
0: (in JavaClass) open fun setSomething(value: kotlin.Int)
|
0: (in JavaClass) open fun setSomething(value: kotlin.Int)
|
||||||
1: var JavaClass.something: kotlin.Int
|
1: (in JavaClass) var JavaClass.something: kotlin.Int
|
||||||
Reference in New Issue
Block a user