From e3fb74b6561d704594cfd60cc53618f2614a3f28 Mon Sep 17 00:00:00 2001 From: Abduqodiri Qurbonzoda Date: Mon, 1 Jun 2020 19:09:00 +0300 Subject: [PATCH] Promote KClass.cast/safeCast, KAnnotatedElement.hasAnnotation() to stable --- .../src/kotlin/reflect/full/KAnnotatedElements.kt | 5 +++-- libraries/stdlib/src/kotlin/reflect/KClasses.kt | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/reflection.jvm/src/kotlin/reflect/full/KAnnotatedElements.kt b/core/reflection.jvm/src/kotlin/reflect/full/KAnnotatedElements.kt index 659d40a1b13..5d519e4410b 100644 --- a/core/reflection.jvm/src/kotlin/reflect/full/KAnnotatedElements.kt +++ b/core/reflection.jvm/src/kotlin/reflect/full/KAnnotatedElements.kt @@ -20,7 +20,8 @@ inline fun KAnnotatedElement.findAnnotation(): T? = /** * Returns true if this element is annotated with an annotation of type [T]. */ -@ExperimentalStdlibApi -@SinceKotlin("1.3") +@SinceKotlin("1.4") +@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") +@WasExperimental(ExperimentalStdlibApi::class) inline fun KAnnotatedElement.hasAnnotation(): Boolean = findAnnotation() != null diff --git a/libraries/stdlib/src/kotlin/reflect/KClasses.kt b/libraries/stdlib/src/kotlin/reflect/KClasses.kt index 92097bd51a1..edd67db15b8 100644 --- a/libraries/stdlib/src/kotlin/reflect/KClasses.kt +++ b/libraries/stdlib/src/kotlin/reflect/KClasses.kt @@ -19,8 +19,8 @@ import kotlin.internal.LowPriorityInOverloadResolution * @see [KClass.isInstance] * @see [KClass.safeCast] */ -@SinceKotlin("1.3") -@ExperimentalStdlibApi +@SinceKotlin("1.4") +@WasExperimental(ExperimentalStdlibApi::class) @LowPriorityInOverloadResolution fun KClass.cast(value: Any?): T { if (!isInstance(value)) throw ClassCastException("Value cannot be cast to $qualifiedOrSimpleName") @@ -39,8 +39,8 @@ internal expect val KClass<*>.qualifiedOrSimpleName: String? * @see [KClass.isInstance] * @see [KClass.cast] */ -@SinceKotlin("1.3") -@ExperimentalStdlibApi +@SinceKotlin("1.4") +@WasExperimental(ExperimentalStdlibApi::class) @LowPriorityInOverloadResolution fun KClass.safeCast(value: Any?): T? { return if (isInstance(value)) value as T else null