Reflection: add KClass.declaredMembers

This commit is contained in:
Alexander Udalov
2016-07-12 19:55:59 +03:00
parent 30b7334e48
commit 0525b1e6c1
3 changed files with 66 additions and 0 deletions
@@ -64,6 +64,16 @@ val KClass<*>.defaultType: KType
get() = KTypeImpl((this as KClassImpl<*>).descriptor.defaultType) { jClass }
/**
* Returns all functions and properties declared in this class.
* Does not include members declared in supertypes.
*/
val KClass<*>.declaredMembers: Collection<KCallable<*>>
get() = with(this as KClassImpl) {
(getMembers(memberScope, declaredOnly = true, nonExtensions = true, extensions = true) +
getMembers(staticScope, declaredOnly = true, nonExtensions = true, extensions = true)).toList()
}
/**
* Returns all functions declared in this class, including all non-static methods declared in the class
* and the superclasses, as well as static methods declared in the class.