Support KClass.qualifiedName for non-local classes

This commit is contained in:
Alexander Udalov
2015-06-10 01:34:10 +03:00
parent df07a61a08
commit 236214305f
6 changed files with 84 additions and 14 deletions
@@ -42,9 +42,10 @@ class KClassImpl<T>(override val jClass: Class<T>) : KCallableContainerImpl(), K
override val scope: JetScope get() = descriptor.getDefaultType().getMemberScope()
override val simpleName: String? get() {
if (jClass.isAnonymousClass()) return null
val classId = classId
return when {
jClass.isAnonymousClass() -> null
classId.isLocal() -> calculateLocalClassName(jClass)
else -> classId.getShortClassName().asString()
}
@@ -61,6 +62,16 @@ class KClassImpl<T>(override val jClass: Class<T>) : KCallableContainerImpl(), K
return name.substringAfter('$')
}
override val qualifiedName: String? get() {
if (jClass.isAnonymousClass()) return null
val classId = classId
return when {
classId.isLocal() -> null
else -> classId.asSingleFqName().asString()
}
}
override val properties: Collection<KMemberProperty<T, *>>
get() = getProperties(declared = false)