Remove unnecessary constraint from filterIsInstance(Class<R>) signature #KT-6516 Fixed

This commit is contained in:
Ilya Ryzhenkov
2014-12-22 22:18:41 +03:00
parent 93326d8643
commit 071eb87f27
3 changed files with 12 additions and 10 deletions
@@ -348,21 +348,21 @@ public inline fun <reified R> Stream<*>.filterIsInstance(): Stream<R> {
/**
* Returns a list containing all elements that are instances of specified class
*/
public fun <T, R : T> Array<out T>.filterIsInstance(klass: Class<R>): List<R> {
public fun <R> Array<*>.filterIsInstance(klass: Class<R>): List<R> {
return filterIsInstanceTo(ArrayList<R>(), klass)
}
/**
* Returns a list containing all elements that are instances of specified class
*/
public fun <T, R : T> Iterable<T>.filterIsInstance(klass: Class<R>): List<R> {
public fun <R> Iterable<*>.filterIsInstance(klass: Class<R>): List<R> {
return filterIsInstanceTo(ArrayList<R>(), klass)
}
/**
* Returns a stream containing all elements that are instances of specified class
*/
public fun <T, R : T> Stream<T>.filterIsInstance(klass: Class<R>): Stream<R> {
public fun <R> Stream<*>.filterIsInstance(klass: Class<R>): Stream<R> {
return FilteringStream(this, true, { klass.isInstance(it) }) as Stream<R>
}
@@ -393,7 +393,7 @@ public inline fun <reified R, C : MutableCollection<in R>> Stream<*>.filterIsIns
/**
* Appends all elements that are instances of specified class to the given *destination*
*/
public fun <T, C : MutableCollection<in R>, R : T> Array<out T>.filterIsInstanceTo(destination: C, klass: Class<R>): C {
public fun <C : MutableCollection<in R>, R> Array<*>.filterIsInstanceTo(destination: C, klass: Class<R>): C {
for (element in this) if (klass.isInstance(element)) destination.add(element as R)
return destination
}
@@ -401,7 +401,7 @@ public fun <T, C : MutableCollection<in R>, R : T> Array<out T>.filterIsInstance
/**
* Appends all elements that are instances of specified class to the given *destination*
*/
public fun <T, C : MutableCollection<in R>, R : T> Iterable<T>.filterIsInstanceTo(destination: C, klass: Class<R>): C {
public fun <C : MutableCollection<in R>, R> Iterable<*>.filterIsInstanceTo(destination: C, klass: Class<R>): C {
for (element in this) if (klass.isInstance(element)) destination.add(element as R)
return destination
}
@@ -409,7 +409,7 @@ public fun <T, C : MutableCollection<in R>, R : T> Iterable<T>.filterIsInstanceT
/**
* Appends all elements that are instances of specified class to the given *destination*
*/
public fun <T, C : MutableCollection<in R>, R : T> Stream<T>.filterIsInstanceTo(destination: C, klass: Class<R>): C {
public fun <C : MutableCollection<in R>, R> Stream<*>.filterIsInstanceTo(destination: C, klass: Class<R>): C {
for (element in this) if (klass.isInstance(element)) destination.add(element as R)
return destination
}