Are there any plans to extend the reflection API with possibility to go from children to parents, e.g. from function to class/package?
I think the biggest limitation of the reflection right now is that
KProperty only provide information about their “contents”, but not their identity/location. For example,
MyClass::foo doesn’t provide a way to get back the
MyClass which seems strange to me. Similarly, we can’t get the package of a class (there’s only
qualifiedName), we can’t get the outer class from a nested class, etc.
KDeclarationContainer seems like an initial attempt to start adding a generic parent<->children API. By looking into
kotlin.jvm.internal it seems we already have most of needed stuff, but they’re internal. We have
CallableReference.owner: KDeclarationContainer (also subtypes:
PropertyReference), we have
KPackageImpl), etc. Are there plans to make some of them public, at least for JVM?
I understand that
KProperty are abstract and they don’t have to be members of a class/package. I rather think about exposing e.g.
KFunctionReference, similar to current