Support serialization of java enum classes in IR
Fixes Kotlin/kotlinx.serialization#1334
This commit is contained in:
+3
-2
@@ -663,8 +663,9 @@ interface IrBuilderExtension {
|
||||
fun findEnumValuesMethod(enumClass: ClassDescriptor): IrFunction {
|
||||
assert(enumClass.kind == ClassKind.ENUM_CLASS)
|
||||
return compilerContext.referenceClass(enumClass.fqNameSafe)?.let {
|
||||
it.owner.functions.find { it.origin == IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER && it.name == Name.identifier("values") }
|
||||
?: throw AssertionError("Enum class does not have .values() function")
|
||||
it.owner.functions.singleOrNull { f ->
|
||||
f.name == Name.identifier("values") && f.valueParameters.isEmpty() && f.extensionReceiverParameter == null
|
||||
} ?: throw AssertionError("Enum class does not have single .values() function")
|
||||
} ?: error("Couldn't load class $enumClass")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user