From f887a2927991d1b4f53cb1f3661cb97a8fe61761 Mon Sep 17 00:00:00 2001 From: Brian Plummer Date: Sat, 22 Feb 2020 12:15:38 -0500 Subject: [PATCH] Add sample for filter --- libraries/stdlib/common/src/generated/_Arrays.kt | 2 ++ libraries/stdlib/common/src/generated/_Collections.kt | 2 ++ libraries/stdlib/common/src/generated/_Sequences.kt | 2 ++ .../samples/test/samples/collections/collections.kt | 9 +++++++++ .../tools/kotlin-stdlib-gen/src/templates/Filtering.kt | 1 + 5 files changed, 16 insertions(+) diff --git a/libraries/stdlib/common/src/generated/_Arrays.kt b/libraries/stdlib/common/src/generated/_Arrays.kt index 57fa0ba8c69..8502e49381f 100644 --- a/libraries/stdlib/common/src/generated/_Arrays.kt +++ b/libraries/stdlib/common/src/generated/_Arrays.kt @@ -3590,6 +3590,8 @@ public inline fun CharArray.dropWhile(predicate: (Char) -> Boolean): List /** * Returns a list containing only elements matching the given [predicate]. + * + * @sample samples.collections.Collections.Filtering.filter */ public inline fun Array.filter(predicate: (T) -> Boolean): List { return filterTo(ArrayList(), predicate) diff --git a/libraries/stdlib/common/src/generated/_Collections.kt b/libraries/stdlib/common/src/generated/_Collections.kt index 4af0334c34a..ec2da4aa578 100644 --- a/libraries/stdlib/common/src/generated/_Collections.kt +++ b/libraries/stdlib/common/src/generated/_Collections.kt @@ -699,6 +699,8 @@ public inline fun Iterable.dropWhile(predicate: (T) -> Boolean): List /** * Returns a list containing only elements matching the given [predicate]. + * + * @sample samples.collections.Collections.Filtering.filter */ public inline fun Iterable.filter(predicate: (T) -> Boolean): List { return filterTo(ArrayList(), predicate) diff --git a/libraries/stdlib/common/src/generated/_Sequences.kt b/libraries/stdlib/common/src/generated/_Sequences.kt index 4fa25ae4a2a..845378d2886 100644 --- a/libraries/stdlib/common/src/generated/_Sequences.kt +++ b/libraries/stdlib/common/src/generated/_Sequences.kt @@ -375,6 +375,8 @@ public fun Sequence.dropWhile(predicate: (T) -> Boolean): Sequence { * Returns a sequence containing only elements matching the given [predicate]. * * The operation is _intermediate_ and _stateless_. + * + * @sample samples.collections.Collections.Filtering.filter */ public fun Sequence.filter(predicate: (T) -> Boolean): Sequence { return FilteringSequence(this, true, predicate) diff --git a/libraries/stdlib/samples/test/samples/collections/collections.kt b/libraries/stdlib/samples/test/samples/collections/collections.kt index 93e8bf841c3..98e8bc6b331 100644 --- a/libraries/stdlib/samples/test/samples/collections/collections.kt +++ b/libraries/stdlib/samples/test/samples/collections/collections.kt @@ -803,6 +803,15 @@ class Collections { } class Filtering { + + @Sample + fun filter() { + val numbers: List = listOf(1, 2, 3, 4) + val evenNumbers = numbers.filter { number -> number.rem(2) == 0 } + + assertPrints(evenNumbers, "[2, 4]") + } + @Sample fun filterNotNull() { val numbers: List = listOf(1, 2, null, 4) diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Filtering.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Filtering.kt index 744eb794b08..ee67fc970ff 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Filtering.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Filtering.kt @@ -548,6 +548,7 @@ object Filtering : TemplateGroupBase() { specialFor(ArraysOfUnsigned) { inlineOnly() } doc { "Returns a ${f.mapResult} containing only ${f.element.pluralize()} matching the given [predicate]." } + sample("samples.collections.Collections.Filtering.filter") returns("List") body { """