Mark KAnnotatedElement.hasAnnotation as experimental
#KT-29041 Fixed
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
// !USE_EXPERIMENTAL: kotlin.ExperimentalStdlibApi
|
||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// WITH_REFLECT
|
// WITH_REFLECT
|
||||||
|
|
||||||
|
|||||||
+5
@@ -19300,6 +19300,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
|||||||
runTest("compiler/testData/codegen/box/reflection/annotations/findAnnotation.kt");
|
runTest("compiler/testData/codegen/box/reflection/annotations/findAnnotation.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("hasAnnotation.kt")
|
||||||
|
public void testHasAnnotation() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/reflection/annotations/hasAnnotation.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("localClassLiteral.kt")
|
@TestMetadata("localClassLiteral.kt")
|
||||||
public void testLocalClassLiteral() throws Exception {
|
public void testLocalClassLiteral() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/reflection/annotations/localClassLiteral.kt");
|
runTest("compiler/testData/codegen/box/reflection/annotations/localClassLiteral.kt");
|
||||||
|
|||||||
+5
@@ -19300,6 +19300,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
runTest("compiler/testData/codegen/box/reflection/annotations/findAnnotation.kt");
|
runTest("compiler/testData/codegen/box/reflection/annotations/findAnnotation.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("hasAnnotation.kt")
|
||||||
|
public void testHasAnnotation() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/reflection/annotations/hasAnnotation.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("localClassLiteral.kt")
|
@TestMetadata("localClassLiteral.kt")
|
||||||
public void testLocalClassLiteral() throws Exception {
|
public void testLocalClassLiteral() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/reflection/annotations/localClassLiteral.kt");
|
runTest("compiler/testData/codegen/box/reflection/annotations/localClassLiteral.kt");
|
||||||
|
|||||||
+5
@@ -19305,6 +19305,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/reflection/annotations/findAnnotation.kt");
|
runTest("compiler/testData/codegen/box/reflection/annotations/findAnnotation.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("hasAnnotation.kt")
|
||||||
|
public void testHasAnnotation() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/reflection/annotations/hasAnnotation.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("localClassLiteral.kt")
|
@TestMetadata("localClassLiteral.kt")
|
||||||
public void testLocalClassLiteral() throws Exception {
|
public void testLocalClassLiteral() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/reflection/annotations/localClassLiteral.kt");
|
runTest("compiler/testData/codegen/box/reflection/annotations/localClassLiteral.kt");
|
||||||
|
|||||||
@@ -1,20 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
*
|
* that can be found in the license/LICENSE.txt file.
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@file:JvmName("KAnnotatedElements")
|
@file:JvmName("KAnnotatedElements")
|
||||||
|
|
||||||
package kotlin.reflect.full
|
package kotlin.reflect.full
|
||||||
|
|
||||||
import kotlin.reflect.*
|
import kotlin.reflect.*
|
||||||
@@ -24,12 +14,13 @@ import kotlin.reflect.*
|
|||||||
*/
|
*/
|
||||||
@SinceKotlin("1.1")
|
@SinceKotlin("1.1")
|
||||||
inline fun <reified T : Annotation> KAnnotatedElement.findAnnotation(): T? =
|
inline fun <reified T : Annotation> KAnnotatedElement.findAnnotation(): T? =
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
annotations.firstOrNull { it is T } as T?
|
annotations.firstOrNull { it is T } as T?
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if this element is annotated with [T], false otherwise
|
* Returns true if this element is annotated with an annotation of type [T].
|
||||||
*/
|
*/
|
||||||
@SinceKotlin("1.4")
|
@ExperimentalStdlibApi
|
||||||
|
@SinceKotlin("1.3")
|
||||||
inline fun <reified T : Annotation> KAnnotatedElement.hasAnnotation(): Boolean =
|
inline fun <reified T : Annotation> KAnnotatedElement.hasAnnotation(): Boolean =
|
||||||
findAnnotation<T>() != null
|
findAnnotation<T>() != null
|
||||||
|
|||||||
Reference in New Issue
Block a user