Loosen the signature of declaringJavaClass to accept Enum<E> instead of E
KT-54005
This commit is contained in:
@@ -114,5 +114,5 @@ public val <T : Annotation> T.annotationClass: KClass<out T>
|
||||
*/
|
||||
@SinceKotlin("1.7")
|
||||
@InlineOnly
|
||||
public inline val <E : Enum<E>> E.declaringJavaClass: Class<E>
|
||||
public inline val <E : Enum<E>> Enum<E>.declaringJavaClass: Class<E>
|
||||
get() = (this as java.lang.Enum<E>).declaringClass
|
||||
|
||||
@@ -43,4 +43,12 @@ class EnumDeclaringJavaClassTest {
|
||||
set.addAll(TestEnum.E.declaringJavaClass.enumConstants.toList())
|
||||
assertEquals(EnumSet.of(TestEnum.E), set)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun worksOnGenericEnum() {
|
||||
fun <T : Enum<T>> check(e: Enum<T>) {
|
||||
assertEquals<Class<*>>(e.declaringJavaClass, TestEnum::class.java)
|
||||
}
|
||||
check(TestEnum.E)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user