StdLib generator: Allow receiver star-projections to be specified per-family.

This commit is contained in:
Ilya Gorbunov
2015-10-15 19:59:31 +03:00
parent efa285bc30
commit 45d13fafc8
@@ -98,7 +98,7 @@ class GenericFunction(val signature: String, val keyword: String = "fun") {
var toNullableT: Boolean = false var toNullableT: Boolean = false
var receiverAsterisk = false val receiverAsterisk = FamilyProperty<Boolean>()
val buildFamilies = LinkedHashSet(defaultFamilies) val buildFamilies = LinkedHashSet(defaultFamilies)
val buildPrimitives = LinkedHashSet(defaultPrimitives) val buildPrimitives = LinkedHashSet(defaultPrimitives)
@@ -132,10 +132,6 @@ class GenericFunction(val signature: String, val keyword: String = "fun") {
typeParams.add(t) typeParams.add(t)
} }
fun receiverAsterisk(v: Boolean) {
receiverAsterisk = v
}
fun exclude(vararg families: Family) { fun exclude(vararg families: Family) {
buildFamilies.removeAll(families.toList()) buildFamilies.removeAll(families.toList())
} }
@@ -293,7 +289,7 @@ class GenericFunction(val signature: String, val keyword: String = "fun") {
return answer.toString() return answer.toString()
} }
val isAsteriskOrT = if (receiverAsterisk) "*" else "T" val isAsteriskOrT = if (receiverAsterisk[f] == true) "*" else "T"
val receiver = when (f) { val receiver = when (f) {
Iterables -> "Iterable<$isAsteriskOrT>" Iterables -> "Iterable<$isAsteriskOrT>"
Collections -> "Collection<$isAsteriskOrT>" Collections -> "Collection<$isAsteriskOrT>"