diff --git a/compiler/testData/codegen/box/reflection/annotations/hasAnnotation.kt b/compiler/testData/codegen/box/reflection/annotations/hasAnnotation.kt index c46cf570849..f353d675ced 100644 --- a/compiler/testData/codegen/box/reflection/annotations/hasAnnotation.kt +++ b/compiler/testData/codegen/box/reflection/annotations/hasAnnotation.kt @@ -1,3 +1,4 @@ +// !USE_EXPERIMENTAL: kotlin.ExperimentalStdlibApi // TARGET_BACKEND: JVM // WITH_REFLECT diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 63e7346d7d8..cce3b97c3c3 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -19300,6 +19300,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { 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") public void testLocalClassLiteral() throws Exception { runTest("compiler/testData/codegen/box/reflection/annotations/localClassLiteral.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index da212f0c48d..73ee5b60117 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -19300,6 +19300,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes 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") public void testLocalClassLiteral() throws Exception { runTest("compiler/testData/codegen/box/reflection/annotations/localClassLiteral.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 44d76521bb1..b0235dbdf88 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -19305,6 +19305,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes 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") public void testLocalClassLiteral() throws Exception { runTest("compiler/testData/codegen/box/reflection/annotations/localClassLiteral.kt"); diff --git a/core/reflection.jvm/src/kotlin/reflect/full/KAnnotatedElements.kt b/core/reflection.jvm/src/kotlin/reflect/full/KAnnotatedElements.kt index 5e16e718b73..63e62de2512 100644 --- a/core/reflection.jvm/src/kotlin/reflect/full/KAnnotatedElements.kt +++ b/core/reflection.jvm/src/kotlin/reflect/full/KAnnotatedElements.kt @@ -1,20 +1,10 @@ /* - * Copyright 2010-2016 JetBrains s.r.o. - * - * 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. + * 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. */ @file:JvmName("KAnnotatedElements") + package kotlin.reflect.full import kotlin.reflect.* @@ -24,12 +14,13 @@ import kotlin.reflect.* */ @SinceKotlin("1.1") inline fun KAnnotatedElement.findAnnotation(): T? = - @Suppress("UNCHECKED_CAST") - annotations.firstOrNull { it is T } as T? + @Suppress("UNCHECKED_CAST") + 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 KAnnotatedElement.hasAnnotation(): Boolean = - findAnnotation() != null \ No newline at end of file + findAnnotation() != null