diff --git a/libraries/stdlib/src/kotlin/JLangJVM.kt b/libraries/stdlib/src/kotlin/JLangJVM.kt index 6f72fc37919..e045ab4955f 100644 --- a/libraries/stdlib/src/kotlin/JLangJVM.kt +++ b/libraries/stdlib/src/kotlin/JLangJVM.kt @@ -2,9 +2,25 @@ package kotlin import java.lang.Class import java.lang.Object +import java.lang.annotation.* import jet.runtime.Intrinsic +/** + * This annotation indicates what exceptions should be declared by a function when compiled to a JVM method + * + * Example: + * + * throws(javaClass()) + * fun readFile(name: String): String {...} + * + * will be translated to + * + * String readFile(String name) throws IOException {...} + */ +Retention(RetentionPolicy.SOURCE) +public annotation class throws(vararg val exceptionClasses: Class) + [Intrinsic("kotlin.javaClass.property")] public val T.javaClass : Class get() = (this as java.lang.Object).getClass() as Class