Extract the corresponding classes of enum entries, where they exist.

This commit is contained in:
Chris Smowton
2022-10-07 12:23:08 +01:00
parent 0d98eba604
commit 2df1d63d1c
6 changed files with 65 additions and 3 deletions

View File

@@ -155,7 +155,7 @@ open class KotlinFileExtractor(
is IrEnumEntry -> {
val parentId = useDeclarationParent(declaration.parent, false)?.cast<DbReftype>()
if (parentId != null) {
extractEnumEntry(declaration, parentId, extractFunctionBodies)
extractEnumEntry(declaration, parentId, extractPrivateMembers, extractFunctionBodies)
}
Unit
}
@@ -1254,7 +1254,7 @@ open class KotlinFileExtractor(
}
}
private fun extractEnumEntry(ee: IrEnumEntry, parentId: Label<out DbReftype>, extractTypeAccess: Boolean) {
private fun extractEnumEntry(ee: IrEnumEntry, parentId: Label<out DbReftype>, extractPrivateMembers: Boolean, extractFunctionBodies: Boolean) {
with("enum entry", ee) {
DeclarationStackAdjuster(ee).use {
val id = useEnumEntry(ee)
@@ -1265,7 +1265,7 @@ open class KotlinFileExtractor(
tw.writeHasLocation(id, locId)
tw.writeIsEnumConst(id)
if (extractTypeAccess) {
if (extractFunctionBodies) {
val fieldDeclarationId = tw.getFreshIdLabel<DbFielddecl>()
tw.writeFielddecls(fieldDeclarationId, parentId)
tw.writeFieldDeclaredIn(id, fieldDeclarationId, 0)
@@ -1273,6 +1273,10 @@ open class KotlinFileExtractor(
extractTypeAccess(type, locId, fieldDeclarationId, 0)
}
ee.correspondingClass?.let {
extractDeclaration(it, extractPrivateMembers, extractFunctionBodies)
}
}
}
}