[IR] Add a method to get ModuleDescriptor from IrPackageFragment
Ideally, instead of this method, there should be a link to IrModuleFragment. Unfortunately, it would require to big refactoring, as some of IrPackageFragment implementations doesn't have any IrModuleFragment inside, and are not located inside any IrModuleFragment. So for now, we just implement and use everywhere a single way of getting the module descriptor, which respects a IrModuleFragment link if it exists, and fallbacks to descriptor-based method if it doesn't. ^KT-62623
This commit is contained in:
committed by
Space Team
parent
9b9ddb760a
commit
ad5831acc6
@@ -618,6 +618,14 @@ object IrTree : AbstractTreeBuilder() {
|
||||
|
||||
+symbol(packageFragmentSymbolType)
|
||||
+field("packageFragmentDescriptor", type(Packages.descriptors, "PackageFragmentDescriptor"), mutable = false)
|
||||
+field("moduleDescriptor", type(Packages.descriptors, "ModuleDescriptor"), mutable = false) {
|
||||
kdoc = """
|
||||
This should be a link to [IrModuleFragment] instead.
|
||||
|
||||
Unfortunately, some package fragments (e.g. some synthetic ones and [IrExternalPackageFragment])
|
||||
are not located in any IR module, but still have a module descriptor.
|
||||
""".trimIndent()
|
||||
}
|
||||
+field("packageFqName", type<FqName>())
|
||||
+field("fqName", type<FqName>()) {
|
||||
baseGetter = code("packageFqName")
|
||||
|
||||
Reference in New Issue
Block a user