From 664d69b752e7af72c6b3a188005d148984b995cb Mon Sep 17 00:00:00 2001 From: Dmitry Borodin Date: Fri, 9 Aug 2019 21:11:58 +0200 Subject: [PATCH] Add flatMap sample KT-20357 --- .../stdlib/common/src/generated/_Arrays.kt | 18 ++++++++++++++++++ .../common/src/generated/_Collections.kt | 2 ++ libraries/stdlib/common/src/generated/_Maps.kt | 2 ++ .../stdlib/common/src/generated/_Sequences.kt | 2 ++ .../stdlib/common/src/generated/_Strings.kt | 2 ++ .../stdlib/common/src/generated/_UArrays.kt | 8 ++++++++ .../test/samples/collections/collections.kt | 6 ++++++ .../kotlin-stdlib-gen/src/templates/Mapping.kt | 1 + 8 files changed, 41 insertions(+) diff --git a/libraries/stdlib/common/src/generated/_Arrays.kt b/libraries/stdlib/common/src/generated/_Arrays.kt index 499042bd0e8..fcaf9e61d67 100644 --- a/libraries/stdlib/common/src/generated/_Arrays.kt +++ b/libraries/stdlib/common/src/generated/_Arrays.kt @@ -8407,6 +8407,8 @@ public fun CharArray.toSet(): Set { /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun Array.flatMap(transform: (T) -> Iterable): List { return flatMapTo(ArrayList(), transform) @@ -8414,6 +8416,8 @@ public inline fun Array.flatMap(transform: (T) -> Iterable): Li /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun ByteArray.flatMap(transform: (Byte) -> Iterable): List { return flatMapTo(ArrayList(), transform) @@ -8421,6 +8425,8 @@ public inline fun ByteArray.flatMap(transform: (Byte) -> Iterable): List< /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun ShortArray.flatMap(transform: (Short) -> Iterable): List { return flatMapTo(ArrayList(), transform) @@ -8428,6 +8434,8 @@ public inline fun ShortArray.flatMap(transform: (Short) -> Iterable): Lis /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun IntArray.flatMap(transform: (Int) -> Iterable): List { return flatMapTo(ArrayList(), transform) @@ -8435,6 +8443,8 @@ public inline fun IntArray.flatMap(transform: (Int) -> Iterable): List /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun LongArray.flatMap(transform: (Long) -> Iterable): List { return flatMapTo(ArrayList(), transform) @@ -8442,6 +8452,8 @@ public inline fun LongArray.flatMap(transform: (Long) -> Iterable): List< /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun FloatArray.flatMap(transform: (Float) -> Iterable): List { return flatMapTo(ArrayList(), transform) @@ -8449,6 +8461,8 @@ public inline fun FloatArray.flatMap(transform: (Float) -> Iterable): Lis /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun DoubleArray.flatMap(transform: (Double) -> Iterable): List { return flatMapTo(ArrayList(), transform) @@ -8456,6 +8470,8 @@ public inline fun DoubleArray.flatMap(transform: (Double) -> Iterable): L /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun BooleanArray.flatMap(transform: (Boolean) -> Iterable): List { return flatMapTo(ArrayList(), transform) @@ -8463,6 +8479,8 @@ public inline fun BooleanArray.flatMap(transform: (Boolean) -> Iterable): /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun CharArray.flatMap(transform: (Char) -> Iterable): List { return flatMapTo(ArrayList(), transform) diff --git a/libraries/stdlib/common/src/generated/_Collections.kt b/libraries/stdlib/common/src/generated/_Collections.kt index 6176604fea3..e5d0346ede0 100644 --- a/libraries/stdlib/common/src/generated/_Collections.kt +++ b/libraries/stdlib/common/src/generated/_Collections.kt @@ -1237,6 +1237,8 @@ public fun Iterable.toSet(): Set { /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original collection. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun Iterable.flatMap(transform: (T) -> Iterable): List { return flatMapTo(ArrayList(), transform) diff --git a/libraries/stdlib/common/src/generated/_Maps.kt b/libraries/stdlib/common/src/generated/_Maps.kt index 26780febbc5..bf0b8318552 100644 --- a/libraries/stdlib/common/src/generated/_Maps.kt +++ b/libraries/stdlib/common/src/generated/_Maps.kt @@ -39,6 +39,8 @@ public fun Map.toList(): List> { /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each entry of original map. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun Map.flatMap(transform: (Map.Entry) -> Iterable): List { return flatMapTo(ArrayList(), transform) diff --git a/libraries/stdlib/common/src/generated/_Sequences.kt b/libraries/stdlib/common/src/generated/_Sequences.kt index 955ec005263..5900d100a86 100644 --- a/libraries/stdlib/common/src/generated/_Sequences.kt +++ b/libraries/stdlib/common/src/generated/_Sequences.kt @@ -761,6 +761,8 @@ public fun Sequence.toSet(): Set { * Returns a single sequence of all elements from results of [transform] function being invoked on each element of original sequence. * * The operation is _intermediate_ and _stateless_. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public fun Sequence.flatMap(transform: (T) -> Sequence): Sequence { return FlatteningSequence(this, transform, { it.iterator() }) diff --git a/libraries/stdlib/common/src/generated/_Strings.kt b/libraries/stdlib/common/src/generated/_Strings.kt index e9b4dd5e2ac..0ccbd23fc15 100644 --- a/libraries/stdlib/common/src/generated/_Strings.kt +++ b/libraries/stdlib/common/src/generated/_Strings.kt @@ -749,6 +749,8 @@ public fun CharSequence.toSet(): Set { /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each character of original char sequence. + * + * @sample samples.collections.Collections.Transformations.flatMap */ public inline fun CharSequence.flatMap(transform: (Char) -> Iterable): List { return flatMapTo(ArrayList(), transform) diff --git a/libraries/stdlib/common/src/generated/_UArrays.kt b/libraries/stdlib/common/src/generated/_UArrays.kt index 0e6c45e57be..fe2e150ee71 100644 --- a/libraries/stdlib/common/src/generated/_UArrays.kt +++ b/libraries/stdlib/common/src/generated/_UArrays.kt @@ -3748,6 +3748,8 @@ public inline fun ShortArray.toUShortArray(): UShortArray { /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ @SinceKotlin("1.3") @ExperimentalUnsignedTypes @@ -3758,6 +3760,8 @@ public inline fun UIntArray.flatMap(transform: (UInt) -> Iterable): List< /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ @SinceKotlin("1.3") @ExperimentalUnsignedTypes @@ -3768,6 +3772,8 @@ public inline fun ULongArray.flatMap(transform: (ULong) -> Iterable): Lis /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ @SinceKotlin("1.3") @ExperimentalUnsignedTypes @@ -3778,6 +3784,8 @@ public inline fun UByteArray.flatMap(transform: (UByte) -> Iterable): Lis /** * Returns a single list of all elements yielded from results of [transform] function being invoked on each element of original array. + * + * @sample samples.collections.Collections.Transformations.flatMap */ @SinceKotlin("1.3") @ExperimentalUnsignedTypes diff --git a/libraries/stdlib/samples/test/samples/collections/collections.kt b/libraries/stdlib/samples/test/samples/collections/collections.kt index 1ddcf7318f7..be010e197b7 100644 --- a/libraries/stdlib/samples/test/samples/collections/collections.kt +++ b/libraries/stdlib/samples/test/samples/collections/collections.kt @@ -502,6 +502,12 @@ class Collections { assertPrints(numbers.map { it * it }, "[1, 4, 9]") } + @Sample + fun flatMap() { + val list = listOf("123", "45") + assertPrints(list.flatMap { it.toList() }, "[1, 2, 3, 4, 5]") + } + @Sample fun take() { val chars = ('a'..'z').toList() diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt index e74e70719c5..804a21043e6 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt @@ -290,6 +290,7 @@ object Mapping : TemplateGroupBase() { specialFor(ArraysOfUnsigned) { inlineOnly() } doc { "Returns a single list of all elements yielded from results of [transform] function being invoked on each ${f.element} of original ${f.collection}." } + sample("samples.collections.Collections.Transformations.flatMap") typeParam("R") returns("List") body {