Fix reflection internal error on enum nested classes query
#KT-10520 Fixed
This commit is contained in:
@@ -5,6 +5,11 @@ class A {
|
|||||||
companion object C
|
companion object C
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum class E {
|
||||||
|
ENTRY;
|
||||||
|
companion object {}
|
||||||
|
}
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
val obj = A::class.companionObject
|
val obj = A::class.companionObject
|
||||||
assertNotNull(obj)
|
assertNotNull(obj)
|
||||||
@@ -16,5 +21,7 @@ fun box(): String {
|
|||||||
assertNull(A.C::class.companionObject)
|
assertNull(A.C::class.companionObject)
|
||||||
assertNull(A.C::class.companionObjectInstance)
|
assertNull(A.C::class.companionObjectInstance)
|
||||||
|
|
||||||
|
assertEquals(E.Companion, E::class.companionObjectInstance)
|
||||||
|
|
||||||
return "OK"
|
return "OK"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,7 +120,8 @@ internal class KClassImpl<T : Any>(override val jClass: Class<T>) : KDeclaration
|
|||||||
}
|
}
|
||||||
|
|
||||||
override val nestedClasses: Collection<KClass<*>>
|
override val nestedClasses: Collection<KClass<*>>
|
||||||
get() = descriptor.unsubstitutedInnerClassesScope.getContributedDescriptors().map { nestedClass ->
|
get() = descriptor.unsubstitutedInnerClassesScope.getContributedDescriptors().filterNot(DescriptorUtils::isEnumEntry).map {
|
||||||
|
nestedClass ->
|
||||||
val source = (nestedClass as DeclarationDescriptorWithSource).source
|
val source = (nestedClass as DeclarationDescriptorWithSource).source
|
||||||
when (source) {
|
when (source) {
|
||||||
is KotlinJvmBinarySourceElement ->
|
is KotlinJvmBinarySourceElement ->
|
||||||
|
|||||||
Reference in New Issue
Block a user