Functions on iterators are deprecated

This commit is contained in:
Ilya Ryzhenkov
2014-03-17 19:39:13 +04:00
committed by Andrey Breslav
parent 33415c2333
commit f07b7cc58d
@@ -19,18 +19,7 @@ package org.jetbrains.jet.utils
import java.util.LinkedHashMap
import java.util.ArrayList
public fun <K, V> Iterable<V>.valuesToMap(key: (V) -> K): Map<K, V> {
return iterator().valuesToMap(key)
}
public fun <K, V> Iterable<K>.keysToMap(value: (K) -> V): Map<K, V> {
return iterator().keysToMap(value)
}
public fun <K, V: Any> Iterable<K>.keysToMapExceptNulls(value: (K) -> V?): Map<K, V> {
return iterator().keysToMapExceptNulls(value)
}
[deprecated("use streams instead")]
public fun <K, V> Iterator<V>.valuesToMap(key: (V) -> K): Map<K, V> {
val map = LinkedHashMap<K, V>()
for (v in this) {
@@ -39,6 +28,7 @@ public fun <K, V> Iterator<V>.valuesToMap(key: (V) -> K): Map<K, V> {
return map
}
[deprecated("use streams instead")]
public fun <K, V> Iterator<K>.keysToMap(value: (K) -> V): Map<K, V> {
val map = LinkedHashMap<K, V>()
for (k in this) {
@@ -47,6 +37,7 @@ public fun <K, V> Iterator<K>.keysToMap(value: (K) -> V): Map<K, V> {
return map
}
[deprecated("use streams instead")]
public fun <K, V: Any> Iterator<K>.keysToMapExceptNulls(value: (K) -> V?): Map<K, V> {
val map = LinkedHashMap<K, V>()
for (k in this) {
@@ -58,6 +49,33 @@ public fun <K, V: Any> Iterator<K>.keysToMapExceptNulls(value: (K) -> V?): Map<K
return map
}
public fun <K, V> Iterable<V>.valuesToMap(key: (V) -> K): Map<K, V> {
val map = LinkedHashMap<K, V>()
for (v in this) {
map[key(v)] = v
}
return map
}
public fun <K, V> Iterable<K>.keysToMap(value: (K) -> V): Map<K, V> {
val map = LinkedHashMap<K, V>()
for (k in this) {
map[k] = value(k)
}
return map
}
public fun <K, V: Any> Iterable<K>.keysToMapExceptNulls(value: (K) -> V?): Map<K, V> {
val map = LinkedHashMap<K, V>()
for (k in this) {
val v = value(k)
if (v != null) {
map[k] = v
}
}
return map
}
public fun <T, C: Collection<T>> C.ifEmpty(body: () -> C): C = if (isEmpty()) body() else this
public fun <T> Iterable<Iterable<T>>.flatten(): List<T> {