Files
kotlin-fork/compiler/testData/codegen/box/annotations/mustBeDocumented.kt
T
Ivan Kylchik c7435ba760 Replace all occurrences of WITH_RUNTIME with WITH_STDLIB
We are going to deprecate `WITH_RUNTIME` directive. The main reason
behind this change is that `WITH_STDLIB` directive better describes
its meaning, specifically it will add kotlin stdlib to test's classpath.
2021-11-17 15:26:38 +03:00

31 lines
778 B
Kotlin
Vendored

// TARGET_BACKEND: JVM
// WITH_STDLIB
// FULL_JDK
// SKIP_JDK6
import java.lang.annotation.Documented
annotation class NoDocumented
@MustBeDocumented
annotation class ExplicitMustBeDocumented
@Documented
annotation class ExplicitJavaDocumented
@MustBeDocumented
@Documented
annotation class ExplicitBoth
inline fun <reified A> isDocumented(): Boolean =
A::class.java.getDeclaredAnnotation(Documented::class.java) != null
fun box(): String {
if (isDocumented<NoDocumented>()) return "Fail NoDocumented"
if (!isDocumented<ExplicitMustBeDocumented>()) return "Fail ExplicitMustBeDocumented"
if (!isDocumented<ExplicitJavaDocumented>()) return "Fail ExplicitJavaDocumented"
if (!isDocumented<ExplicitBoth>()) return "Fail ExplicitBoth"
return "OK"
}