From 45d13fafc86b02702c200b06312a60e361a0df96 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 15 Oct 2015 19:59:31 +0300 Subject: [PATCH] StdLib generator: Allow receiver star-projections to be specified per-family. --- libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt index 3288b755317..c7d2104c571 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Engine.kt @@ -98,7 +98,7 @@ class GenericFunction(val signature: String, val keyword: String = "fun") { var toNullableT: Boolean = false - var receiverAsterisk = false + val receiverAsterisk = FamilyProperty() val buildFamilies = LinkedHashSet(defaultFamilies) val buildPrimitives = LinkedHashSet(defaultPrimitives) @@ -132,10 +132,6 @@ class GenericFunction(val signature: String, val keyword: String = "fun") { typeParams.add(t) } - fun receiverAsterisk(v: Boolean) { - receiverAsterisk = v - } - fun exclude(vararg families: Family) { buildFamilies.removeAll(families.toList()) } @@ -293,7 +289,7 @@ class GenericFunction(val signature: String, val keyword: String = "fun") { return answer.toString() } - val isAsteriskOrT = if (receiverAsterisk) "*" else "T" + val isAsteriskOrT = if (receiverAsterisk[f] == true) "*" else "T" val receiver = when (f) { Iterables -> "Iterable<$isAsteriskOrT>" Collections -> "Collection<$isAsteriskOrT>"