Implement UArray.contains(element) workaround for JS
This commit is contained in:
committed by
Ilya Gorbunov
parent
c1b523ddef
commit
ae47130c8e
@@ -351,7 +351,13 @@ class UnsignedArrayGenerator(val type: UnsignedType, out: PrintWriter) : BuiltIn
|
||||
override fun next$elementType() = if (index < array.size) array[index++].to$elementType() else throw NoSuchElementException(index.toString())
|
||||
}
|
||||
|
||||
override fun contains(element: $elementType): Boolean = storage.contains(element.to$storageElementType())
|
||||
override fun contains(element: $elementType): Boolean {
|
||||
// TODO: Eliminate this check after KT-30016 gets fixed.
|
||||
// Currently JS BE does not generate special bridge method for this method.
|
||||
if ((element as Any?) !is $elementType) return false
|
||||
|
||||
return storage.contains(element.to$storageElementType())
|
||||
}
|
||||
|
||||
override fun containsAll(elements: Collection<$elementType>): Boolean {
|
||||
if ((elements as Collection<Any?>).any { it as? $elementType == null }) return false
|
||||
|
||||
@@ -37,7 +37,13 @@ internal constructor(@PublishedApi internal val storage: ByteArray) : Collection
|
||||
override fun nextUByte() = if (index < array.size) array[index++].toUByte() else throw NoSuchElementException(index.toString())
|
||||
}
|
||||
|
||||
override fun contains(element: UByte): Boolean = storage.contains(element.toByte())
|
||||
override fun contains(element: UByte): Boolean {
|
||||
// TODO: Eliminate this check after KT-30016 gets fixed.
|
||||
// Currently JS BE does not generate special bridge method for this method.
|
||||
if ((element as Any?) !is UByte) return false
|
||||
|
||||
return storage.contains(element.toByte())
|
||||
}
|
||||
|
||||
override fun containsAll(elements: Collection<UByte>): Boolean {
|
||||
if ((elements as Collection<Any?>).any { it as? UByte == null }) return false
|
||||
|
||||
@@ -37,7 +37,13 @@ internal constructor(@PublishedApi internal val storage: IntArray) : Collection<
|
||||
override fun nextUInt() = if (index < array.size) array[index++].toUInt() else throw NoSuchElementException(index.toString())
|
||||
}
|
||||
|
||||
override fun contains(element: UInt): Boolean = storage.contains(element.toInt())
|
||||
override fun contains(element: UInt): Boolean {
|
||||
// TODO: Eliminate this check after KT-30016 gets fixed.
|
||||
// Currently JS BE does not generate special bridge method for this method.
|
||||
if ((element as Any?) !is UInt) return false
|
||||
|
||||
return storage.contains(element.toInt())
|
||||
}
|
||||
|
||||
override fun containsAll(elements: Collection<UInt>): Boolean {
|
||||
if ((elements as Collection<Any?>).any { it as? UInt == null }) return false
|
||||
|
||||
@@ -37,7 +37,13 @@ internal constructor(@PublishedApi internal val storage: LongArray) : Collection
|
||||
override fun nextULong() = if (index < array.size) array[index++].toULong() else throw NoSuchElementException(index.toString())
|
||||
}
|
||||
|
||||
override fun contains(element: ULong): Boolean = storage.contains(element.toLong())
|
||||
override fun contains(element: ULong): Boolean {
|
||||
// TODO: Eliminate this check after KT-30016 gets fixed.
|
||||
// Currently JS BE does not generate special bridge method for this method.
|
||||
if ((element as Any?) !is ULong) return false
|
||||
|
||||
return storage.contains(element.toLong())
|
||||
}
|
||||
|
||||
override fun containsAll(elements: Collection<ULong>): Boolean {
|
||||
if ((elements as Collection<Any?>).any { it as? ULong == null }) return false
|
||||
|
||||
@@ -37,7 +37,13 @@ internal constructor(@PublishedApi internal val storage: ShortArray) : Collectio
|
||||
override fun nextUShort() = if (index < array.size) array[index++].toUShort() else throw NoSuchElementException(index.toString())
|
||||
}
|
||||
|
||||
override fun contains(element: UShort): Boolean = storage.contains(element.toShort())
|
||||
override fun contains(element: UShort): Boolean {
|
||||
// TODO: Eliminate this check after KT-30016 gets fixed.
|
||||
// Currently JS BE does not generate special bridge method for this method.
|
||||
if ((element as Any?) !is UShort) return false
|
||||
|
||||
return storage.contains(element.toShort())
|
||||
}
|
||||
|
||||
override fun containsAll(elements: Collection<UShort>): Boolean {
|
||||
if ((elements as Collection<Any?>).any { it as? UShort == null }) return false
|
||||
|
||||
Reference in New Issue
Block a user