diff --git a/js/js.libraries/src/core/generated/_ArraysJs.kt b/js/js.libraries/src/core/generated/_ArraysJs.kt index 89ee0229421..20d7ae04055 100644 --- a/js/js.libraries/src/core/generated/_ArraysJs.kt +++ b/js/js.libraries/src/core/generated/_ArraysJs.kt @@ -7637,7 +7637,7 @@ public inline fun >> CharArray.groupBy @SinceKotlin("1.1") public inline fun Array.groupingBy(crossinline keySelector: (T) -> K): Grouping { return object : Grouping { - override fun elementIterator(): Iterator = this@groupingBy.iterator() + override fun sourceIterator(): Iterator = this@groupingBy.iterator() override fun keyOf(element: T): K = keySelector(element) } } diff --git a/js/js.libraries/src/core/generated/_CollectionsJs.kt b/js/js.libraries/src/core/generated/_CollectionsJs.kt index 00257ec17f8..f2336a83f34 100644 --- a/js/js.libraries/src/core/generated/_CollectionsJs.kt +++ b/js/js.libraries/src/core/generated/_CollectionsJs.kt @@ -1186,7 +1186,7 @@ public inline fun >> Iterable.gr @SinceKotlin("1.1") public inline fun Iterable.groupingBy(crossinline keySelector: (T) -> K): Grouping { return object : Grouping { - override fun elementIterator(): Iterator = this@groupingBy.iterator() + override fun sourceIterator(): Iterator = this@groupingBy.iterator() override fun keyOf(element: T): K = keySelector(element) } } diff --git a/js/js.libraries/src/core/generated/_SequencesJs.kt b/js/js.libraries/src/core/generated/_SequencesJs.kt index 71e6916f900..62f49f6ed8b 100644 --- a/js/js.libraries/src/core/generated/_SequencesJs.kt +++ b/js/js.libraries/src/core/generated/_SequencesJs.kt @@ -651,7 +651,7 @@ public inline fun >> Sequence.gr @SinceKotlin("1.1") public inline fun Sequence.groupingBy(crossinline keySelector: (T) -> K): Grouping { return object : Grouping { - override fun elementIterator(): Iterator = this@groupingBy.iterator() + override fun sourceIterator(): Iterator = this@groupingBy.iterator() override fun keyOf(element: T): K = keySelector(element) } } diff --git a/js/js.libraries/src/core/generated/_StringsJs.kt b/js/js.libraries/src/core/generated/_StringsJs.kt index dcad5646b53..66511b0fdee 100644 --- a/js/js.libraries/src/core/generated/_StringsJs.kt +++ b/js/js.libraries/src/core/generated/_StringsJs.kt @@ -708,7 +708,7 @@ public inline fun >> CharSequence.grou @SinceKotlin("1.1") public inline fun CharSequence.groupingBy(crossinline keySelector: (Char) -> K): Grouping { return object : Grouping { - override fun elementIterator(): Iterator = this@groupingBy.iterator() + override fun sourceIterator(): Iterator = this@groupingBy.iterator() override fun keyOf(element: Char): K = keySelector(element) } } diff --git a/libraries/stdlib/src/generated/_Arrays.kt b/libraries/stdlib/src/generated/_Arrays.kt index 9dc84c4cd93..6a8a3ebd096 100644 --- a/libraries/stdlib/src/generated/_Arrays.kt +++ b/libraries/stdlib/src/generated/_Arrays.kt @@ -7720,7 +7720,7 @@ public inline fun >> CharArray.groupBy @SinceKotlin("1.1") public inline fun Array.groupingBy(crossinline keySelector: (T) -> K): Grouping { return object : Grouping { - override fun elementIterator(): Iterator = this@groupingBy.iterator() + override fun sourceIterator(): Iterator = this@groupingBy.iterator() override fun keyOf(element: T): K = keySelector(element) } } diff --git a/libraries/stdlib/src/generated/_Collections.kt b/libraries/stdlib/src/generated/_Collections.kt index 96dc2864b4c..4d619784204 100644 --- a/libraries/stdlib/src/generated/_Collections.kt +++ b/libraries/stdlib/src/generated/_Collections.kt @@ -1197,7 +1197,7 @@ public inline fun >> Iterable.gr @SinceKotlin("1.1") public inline fun Iterable.groupingBy(crossinline keySelector: (T) -> K): Grouping { return object : Grouping { - override fun elementIterator(): Iterator = this@groupingBy.iterator() + override fun sourceIterator(): Iterator = this@groupingBy.iterator() override fun keyOf(element: T): K = keySelector(element) } } diff --git a/libraries/stdlib/src/generated/_Sequences.kt b/libraries/stdlib/src/generated/_Sequences.kt index c69da3a8f45..6fce4f81202 100644 --- a/libraries/stdlib/src/generated/_Sequences.kt +++ b/libraries/stdlib/src/generated/_Sequences.kt @@ -670,7 +670,7 @@ public inline fun >> Sequence.gr @SinceKotlin("1.1") public inline fun Sequence.groupingBy(crossinline keySelector: (T) -> K): Grouping { return object : Grouping { - override fun elementIterator(): Iterator = this@groupingBy.iterator() + override fun sourceIterator(): Iterator = this@groupingBy.iterator() override fun keyOf(element: T): K = keySelector(element) } } diff --git a/libraries/stdlib/src/generated/_Strings.kt b/libraries/stdlib/src/generated/_Strings.kt index 5ef4ca842b2..65051e84418 100644 --- a/libraries/stdlib/src/generated/_Strings.kt +++ b/libraries/stdlib/src/generated/_Strings.kt @@ -717,7 +717,7 @@ public inline fun >> CharSequence.grou @SinceKotlin("1.1") public inline fun CharSequence.groupingBy(crossinline keySelector: (Char) -> K): Grouping { return object : Grouping { - override fun elementIterator(): Iterator = this@groupingBy.iterator() + override fun sourceIterator(): Iterator = this@groupingBy.iterator() override fun keyOf(element: Char): K = keySelector(element) } } diff --git a/libraries/stdlib/src/kotlin/collections/Grouping.kt b/libraries/stdlib/src/kotlin/collections/Grouping.kt index 58282872754..760843edf75 100644 --- a/libraries/stdlib/src/kotlin/collections/Grouping.kt +++ b/libraries/stdlib/src/kotlin/collections/Grouping.kt @@ -17,8 +17,8 @@ package kotlin.collections */ @SinceKotlin("1.1") public interface Grouping { - /** Returns an [Iterator] which iterates through the elements of the source. */ - fun elementIterator(): Iterator + /** Returns an [Iterator] over the elements of the source of this grouping. */ + fun sourceIterator(): Iterator /** Extracts the key of an [element]. */ fun keyOf(element: T): K } @@ -65,7 +65,7 @@ public inline fun > Grouping.aggregateTo( destination: M, operation: (key: K, accumulator: R?, element: T, first: Boolean) -> R ): M { - for (e in this.elementIterator()) { + for (e in this.sourceIterator()) { val key = keyOf(e) val accumulator = destination[key] destination[key] = operation(key, accumulator, e, accumulator == null && !destination.containsKey(key)) diff --git a/libraries/stdlib/test/collections/GroupingTest.kt b/libraries/stdlib/test/collections/GroupingTest.kt index e32aee11238..8f1e257bb3a 100644 --- a/libraries/stdlib/test/collections/GroupingTest.kt +++ b/libraries/stdlib/test/collections/GroupingTest.kt @@ -9,7 +9,7 @@ class GroupingTest { @Test fun groupingProducers() { fun verifyGrouping(grouping: Grouping, expectedElements: List, expectedKeys: List) { - val elements = grouping.elementIterator().asSequence().toList() + val elements = grouping.sourceIterator().asSequence().toList() val keys = elements.map { grouping.keyOf(it) } // TODO: replace with grouping::keyOf when supported in JS assertEquals(expectedElements, elements) diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt index 4ac8af9d52d..9251866d8a1 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt @@ -1610,8 +1610,8 @@ public final class kotlin/collections/CollectionsKt { } public abstract interface class kotlin/collections/Grouping { - public abstract fun elementIterator ()Ljava/util/Iterator; public abstract fun keyOf (Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun sourceIterator ()Ljava/util/Iterator; } public final class kotlin/collections/GroupingKt { diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt index c8041b24f17..6c1dda927a6 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Mapping.kt @@ -408,7 +408,7 @@ fun mapping(): List { body { """ return object : Grouping { - override fun elementIterator(): Iterator = this@groupingBy.iterator() + override fun sourceIterator(): Iterator = this@groupingBy.iterator() override fun keyOf(element: T): K = keySelector(element) } """