Fix reflection internal error on enum nested classes query

#KT-10520 Fixed
This commit is contained in:
Alexander Udalov
2015-12-27 20:17:55 +03:00
parent 688a1b6305
commit 890c961383
2 changed files with 9 additions and 1 deletions
@@ -5,6 +5,11 @@ class A {
companion object C
}
enum class E {
ENTRY;
companion object {}
}
fun box(): String {
val obj = A::class.companionObject
assertNotNull(obj)
@@ -16,5 +21,7 @@ fun box(): String {
assertNull(A.C::class.companionObject)
assertNull(A.C::class.companionObjectInstance)
assertEquals(E.Companion, E::class.companionObjectInstance)
return "OK"
}
@@ -120,7 +120,8 @@ internal class KClassImpl<T : Any>(override val jClass: Class<T>) : KDeclaration
}
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
when (source) {
is KotlinJvmBinarySourceElement ->