From 18ec5d4ec19c546023188762a82e967544fdf522 Mon Sep 17 00:00:00 2001 From: Leonid Startsev Date: Mon, 15 Aug 2022 14:24:39 +0200 Subject: [PATCH] Add additional check to IrClass.findEnumValuesMethod() to avoid finding user-defined member function --- .../kotlinx/serialization/compiler/backend/ir/IrPredicates.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt index e3a228725e0..0ab0920d848 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt @@ -117,7 +117,7 @@ fun IrClass.serialName(): String { } fun IrClass.findEnumValuesMethod() = this.functions.singleOrNull { f -> - f.name == Name.identifier("values") && f.valueParameters.isEmpty() && f.extensionReceiverParameter == null + f.name == Name.identifier("values") && f.valueParameters.isEmpty() && f.extensionReceiverParameter == null && f.dispatchReceiverParameter == null } ?: throw AssertionError("Enum class does not have single .values() function") internal fun IrClass.enumEntries(): List {