diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/JvmClassMapping.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/JvmClassMapping.kt index e5a9da0c3ed..6f0b36f85fc 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/JvmClassMapping.kt +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/JvmClassMapping.kt @@ -114,5 +114,5 @@ public val T.annotationClass: KClass */ @SinceKotlin("1.7") @InlineOnly -public inline val > E.declaringJavaClass: Class +public inline val > Enum.declaringJavaClass: Class get() = (this as java.lang.Enum).declaringClass diff --git a/libraries/stdlib/jvm/test/enums/EnumDeclaringJavaClassTest.kt b/libraries/stdlib/jvm/test/enums/EnumDeclaringJavaClassTest.kt index 05935988f43..4e740ec09e1 100644 --- a/libraries/stdlib/jvm/test/enums/EnumDeclaringJavaClassTest.kt +++ b/libraries/stdlib/jvm/test/enums/EnumDeclaringJavaClassTest.kt @@ -43,4 +43,12 @@ class EnumDeclaringJavaClassTest { set.addAll(TestEnum.E.declaringJavaClass.enumConstants.toList()) assertEquals(EnumSet.of(TestEnum.E), set) } + + @Test + fun worksOnGenericEnum() { + fun > check(e: Enum) { + assertEquals>(e.declaringJavaClass, TestEnum::class.java) + } + check(TestEnum.E) + } }