From f5a070107601c8aabaf3a4aff1970144fb0fb85e Mon Sep 17 00:00:00 2001 From: Ilya Ryzhenkov Date: Fri, 30 May 2014 16:31:15 +0400 Subject: [PATCH] Support generating "deprecated" functions. --- .../kotlin-stdlib-gen/src/templates/Engine.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt index ef1fb5b59be..3eb52665191 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt @@ -41,6 +41,9 @@ class GenericFunction(val signature: String) : Comparable { val buildFamilies = HashSet(defaultFamilies.toList()) private val buildPrimitives = HashSet(PrimitiveType.values().toList()) + var deprecate: String = "" + val deprecates = HashMap() + var doc: String = "" val docs = HashMap() @@ -73,6 +76,16 @@ class GenericFunction(val signature: String) : Comparable { } } + fun deprecate(vararg families: Family, b: () -> String) { + if (families.isEmpty()) + deprecate = b() + else { + for (f in families) { + deprecates[f] = b() + } + } + } + fun returns(vararg families: Family, b: () -> String) { if (families.isEmpty()) defaultReturnType = b() @@ -225,6 +238,10 @@ class GenericFunction(val signature: String) : Comparable { } builder.append(" */\n") } + val deprecated = deprecates[f] ?: deprecate + if (deprecated != "") { + builder.append("deprecated(\"$deprecated\")\n") + } builder.append("public ") if (inlineFamilies[f] ?: defaultInline)