Remove unnecessary constraint from filterIsInstance(Class<R>) signature #KT-6516 Fixed
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -112,10 +112,10 @@ public val NodeList.outerHTML: String
|
||||
get() = toList().map { it.innerHTML }.join("")
|
||||
|
||||
/** Returns an [[Iterator]] of all the next [[Element]] siblings */
|
||||
public fun Node.nextElements(): List<Element> = nextSiblings().filterIsInstance<Node, Element>(javaClass<Element>())
|
||||
public fun Node.nextElements(): List<Element> = nextSiblings().filterIsInstance(javaClass<Element>())
|
||||
|
||||
/** Returns an [[Iterator]] of all the previous [[Element]] siblings */
|
||||
public fun Node.previousElements(): List<Element> = previousSiblings().filterIsInstance<Node, Element>(javaClass<Element>())
|
||||
public fun Node.previousElements(): List<Element> = previousSiblings().filterIsInstance(javaClass<Element>())
|
||||
|
||||
|
||||
public var Element.classSet: MutableSet<String>
|
||||
|
||||
@@ -75,8 +75,9 @@ fun specialJVM(): List<GenericFunction> {
|
||||
|
||||
templates add f("filterIsInstanceTo(destination: C, klass: Class<R>)") {
|
||||
doc { "Appends all elements that are instances of specified class to the given *destination*" }
|
||||
receiverAsterisk(true)
|
||||
typeParam("C : MutableCollection<in R>")
|
||||
typeParam("R : T")
|
||||
typeParam("R")
|
||||
returns("C")
|
||||
exclude(ArraysOfPrimitives, Strings)
|
||||
body {
|
||||
@@ -89,7 +90,8 @@ fun specialJVM(): List<GenericFunction> {
|
||||
|
||||
templates add f("filterIsInstance(klass: Class<R>)") {
|
||||
doc { "Returns a list containing all elements that are instances of specified class" }
|
||||
typeParam("R : T")
|
||||
receiverAsterisk(true)
|
||||
typeParam("R")
|
||||
returns("List<R>")
|
||||
body {
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user