diff --git a/Interop/Runtime/src/main/kotlin/kotlinx/cinterop/Types.kt b/Interop/Runtime/src/main/kotlin/kotlinx/cinterop/Types.kt index abc1626e1a6..cc244f922ca 100644 --- a/Interop/Runtime/src/main/kotlin/kotlinx/cinterop/Types.kt +++ b/Interop/Runtime/src/main/kotlin/kotlinx/cinterop/Types.kt @@ -214,6 +214,9 @@ sealed class CPrimitiveVar : CVariable { open class Type(size: Int) : CVariable.Type(size.toLong(), align = size) } +interface CEnum { + val value: Number +} abstract class CEnumVar : CPrimitiveVar() // generics below are used for typedef support diff --git a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt index 6467f876e46..44e7ab9763e 100644 --- a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt +++ b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt @@ -612,7 +612,7 @@ class StubGenerator( val baseTypeMirror = mirror(e.baseType) - block("enum class ${e.kotlinName.asSimpleName()}(val value: ${e.baseType.kotlinType})") { + block("enum class ${e.kotlinName.asSimpleName()}(override val value: ${e.baseType.kotlinType}) : CEnum") { e.constants.forEach { out("${it.name.asSimpleName()}(${it.value}),") }