From d40bbf6acbcc55de7cd4be701cad67021e07777f Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Tue, 22 Sep 2015 15:20:45 +0300 Subject: [PATCH] Allow to annotate generated code as jvm-only. --- libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt | 5 +++++ .../tools/kotlin-stdlib-gen/src/templates/SpecialJVM.kt | 2 ++ 2 files changed, 7 insertions(+) diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt index b1d148641ce..f127b6d133b 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt @@ -105,6 +105,7 @@ class GenericFunction(val signature: String, val keyword: String = "fun") { val doc = FamilyProperty() val platformName = PrimitiveProperty() val inline = FamilyProperty() + val jvmOnly = FamilyProperty() val typeParams = ArrayList() val returns = FamilyProperty() val operator = FamilyProperty() @@ -364,6 +365,10 @@ class GenericFunction(val signature: String, val keyword: String = "fun") { ?.let { platformName -> builder.append("@kotlin.jvm.JvmName(\"${platformName}\")\n")} } + if (jvmOnly[f] ?: false) { + builder.append("@kotlin.jvm.JvmVersion\n") + } + annotations[f]?.let { builder.append(it).append('\n') } builder.append("public ") diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJVM.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJVM.kt index 4e7fdac0d63..8817bcc4d15 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJVM.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJVM.kt @@ -258,5 +258,7 @@ fun specialJVM(): List { } } + templates.forEach { it.jvmOnly(true) } + return templates } \ No newline at end of file