diff --git a/libraries/stdlib/samples/test/samples/collections/arrays.kt b/libraries/stdlib/samples/test/samples/collections/arrays.kt index 3a03e983632..f5ee7ee975d 100644 --- a/libraries/stdlib/samples/test/samples/collections/arrays.kt +++ b/libraries/stdlib/samples/test/samples/collections/arrays.kt @@ -32,6 +32,18 @@ class Arrays { val array: Array? = arrayOf('a', 'b', 'c') assertPrints(array.orEmpty().contentToString(), "[a, b, c]") } + + @Sample + fun arrayIsNullOrEmpty() { + val nullArray: Array? = null + assertTrue(nullArray.isNullOrEmpty()) + + val emptyArray = emptyArray() + assertTrue(emptyArray.isNullOrEmpty()) + + val array = arrayOf('a', 'b', 'c') + assertFalse(array.isNullOrEmpty()) + } } class Transformations { diff --git a/libraries/stdlib/samples/test/samples/collections/collections.kt b/libraries/stdlib/samples/test/samples/collections/collections.kt index 74e94c21a69..fe68b8b1545 100644 --- a/libraries/stdlib/samples/test/samples/collections/collections.kt +++ b/libraries/stdlib/samples/test/samples/collections/collections.kt @@ -53,13 +53,13 @@ class Collections { @Sample fun collectionIsNullOrEmpty() { - val nullCollection: Collection? = null - assertTrue(nullCollection.isNullOrEmpty()) + val nullList: List? = null + assertTrue(nullList.isNullOrEmpty()) - val emptyCollection: Collection? = listOf() - assertTrue(emptyCollection.isNullOrEmpty()) + val empty: List? = emptyList() + assertTrue(empty.isNullOrEmpty()) - val collection: Collection? = listOf('a', 'b', 'c') + val collection: List? = listOf('a', 'b', 'c') assertFalse(collection.isNullOrEmpty()) } diff --git a/libraries/stdlib/src/kotlin/collections/Arrays.kt b/libraries/stdlib/src/kotlin/collections/Arrays.kt index a3150f3c8ee..eefa0ab87eb 100644 --- a/libraries/stdlib/src/kotlin/collections/Arrays.kt +++ b/libraries/stdlib/src/kotlin/collections/Arrays.kt @@ -37,3 +37,9 @@ public fun Array>.unzip(): Pair, List> { } return listT to listR } + +/** + * Returns `true` if this array is null or empty. + * @sample samples.collections.Arrays.Usage.arrayIsNullOrEmpty + */ +public fun Array<*>?.isNullOrEmpty(): Boolean = this == null || this.isEmpty() diff --git a/libraries/stdlib/src/kotlin/collections/Maps.kt b/libraries/stdlib/src/kotlin/collections/Maps.kt index 5b0547e158a..23b7d47cdf2 100644 --- a/libraries/stdlib/src/kotlin/collections/Maps.kt +++ b/libraries/stdlib/src/kotlin/collections/Maps.kt @@ -140,6 +140,10 @@ private const val INT_MAX_POWER_OF_TWO: Int = Int.MAX_VALUE / 2 + 1 @kotlin.internal.InlineOnly public inline fun Map.isNotEmpty(): Boolean = !isEmpty() +/** Returns `true` if this map is null or empty. */ +@kotlin.internal.InlineOnly +public inline fun Map?.isNullOrEmpty(): Boolean = this == null || isEmpty() + /** * Returns the [Map] if its not `null`, or the empty [Map] otherwise. */