From a6a31878a7d75cceb704fba382f15628d1ebc3e6 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 25 Feb 2014 22:17:52 +0400 Subject: [PATCH] Delete Annotations.kt, move "annotationType" to JVM stdlib --- libraries/stdlib/src/kotlin/Annotations.kt | 9 --------- libraries/stdlib/src/kotlin/JLangJVM.kt | 6 +++++- 2 files changed, 5 insertions(+), 10 deletions(-) delete mode 100644 libraries/stdlib/src/kotlin/Annotations.kt diff --git a/libraries/stdlib/src/kotlin/Annotations.kt b/libraries/stdlib/src/kotlin/Annotations.kt deleted file mode 100644 index 088341ff789..00000000000 --- a/libraries/stdlib/src/kotlin/Annotations.kt +++ /dev/null @@ -1,9 +0,0 @@ -package kotlin - -import java.lang.reflect.Proxy - -public fun T.annotationType() : Class { - val invocationHandler = Proxy.getInvocationHandler(this)!! - val method = this.javaClass.getMethod("annotationType") - return invocationHandler.invoke(this, method, array())!! as Class -} diff --git a/libraries/stdlib/src/kotlin/JLangJVM.kt b/libraries/stdlib/src/kotlin/JLangJVM.kt index 0ffde80a097..4f60e0edb2e 100644 --- a/libraries/stdlib/src/kotlin/JLangJVM.kt +++ b/libraries/stdlib/src/kotlin/JLangJVM.kt @@ -1,6 +1,7 @@ package kotlin -import java.lang.annotation.* +import java.lang.annotation.Retention +import java.lang.annotation.RetentionPolicy import kotlin.jvm.internal.Intrinsic /** @@ -27,3 +28,6 @@ Retention(RetentionPolicy.SOURCE) public annotation class volatile [Intrinsic("kotlin.synchronized")] public fun synchronized(lock: Any, block: () -> R): R = block() + +public fun T.annotationType() : Class = + (this as java.lang.annotation.Annotation).annotationType() as Class