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")
|
@SinceKotlin("1.7")
|
||||||
@InlineOnly
|
@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
|
get() = (this as java.lang.Enum<E>).declaringClass
|
||||||
|
|||||||
@@ -43,4 +43,12 @@ class EnumDeclaringJavaClassTest {
|
|||||||
set.addAll(TestEnum.E.declaringJavaClass.enumConstants.toList())
|
set.addAll(TestEnum.E.declaringJavaClass.enumConstants.toList())
|
||||||
assertEquals(EnumSet.of(TestEnum.E), set)
|
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