KT-42589 Add listOf, setOf, mapOf overloads for a single value to common src-set
`listOf`, `setOf` and `mapOf` overloads were defined in some source-sets but common source-set was missing it. This change adds common definition of these methods and also add declarations for source-sets that were previously missing it. ^KT-42589 fixed
This commit is contained in:
committed by
Space Team
parent
aa85e6d95c
commit
50841e7cb0
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@@ -13,11 +13,13 @@ import kotlin.internal.InlineOnly
|
||||
import kotlin.internal.apiVersionIsAtLeast
|
||||
|
||||
/**
|
||||
* Returns an immutable list containing only the specified object [element].
|
||||
* Returns a new read-only list containing only the specified object [element].
|
||||
*
|
||||
* The returned list is serializable.
|
||||
*
|
||||
* @sample samples.collections.Collections.Lists.singletonReadOnlyList
|
||||
*/
|
||||
public fun <T> listOf(element: T): List<T> = java.util.Collections.singletonList(element)
|
||||
public actual fun <T> listOf(element: T): List<T> = java.util.Collections.singletonList(element)
|
||||
|
||||
@PublishedApi
|
||||
@SinceKotlin("1.3")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@@ -15,16 +15,15 @@ import java.util.TreeMap
|
||||
import java.util.concurrent.ConcurrentMap
|
||||
import kotlin.collections.builders.MapBuilder
|
||||
|
||||
|
||||
/**
|
||||
* Returns an immutable map, mapping only the specified key to the
|
||||
* Returns a new read-only map, mapping only the specified key to the
|
||||
* specified value.
|
||||
*
|
||||
* The returned map is serializable.
|
||||
*
|
||||
* @sample samples.collections.Maps.Instantiation.mapFromPairs
|
||||
*/
|
||||
public fun <K, V> mapOf(pair: Pair<K, V>): Map<K, V> = java.util.Collections.singletonMap(pair.first, pair.second)
|
||||
public actual fun <K, V> mapOf(pair: Pair<K, V>): Map<K, V> = java.util.Collections.singletonMap(pair.first, pair.second)
|
||||
|
||||
@PublishedApi
|
||||
@SinceKotlin("1.3")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@@ -10,12 +10,14 @@ package kotlin.collections
|
||||
|
||||
import kotlin.collections.builders.SetBuilder
|
||||
|
||||
|
||||
/**
|
||||
* Returns an immutable set containing only the specified object [element].
|
||||
* Returns a new read-only set containing only the specified object [element].
|
||||
*
|
||||
* The returned set is serializable.
|
||||
*
|
||||
* @sample samples.collections.Collections.Sets.singletonReadOnlySet
|
||||
*/
|
||||
public fun <T> setOf(element: T): Set<T> = java.util.Collections.singleton(element)
|
||||
public actual fun <T> setOf(element: T): Set<T> = java.util.Collections.singleton(element)
|
||||
|
||||
@PublishedApi
|
||||
@SinceKotlin("1.3")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@@ -184,10 +184,14 @@ class CollectionJVMTest {
|
||||
|
||||
@Test fun emptyMapIsSerializable() = testSingletonSerialization(emptyMap<Any, Any>())
|
||||
|
||||
private fun testSingletonSerialization(value: Any) {
|
||||
private fun checkSerializeAndDeserialize(value: Any): Any {
|
||||
val result = serializeAndDeserialize(value)
|
||||
|
||||
assertEquals(value, result)
|
||||
return result
|
||||
}
|
||||
|
||||
private fun testSingletonSerialization(value: Any) {
|
||||
val result = checkSerializeAndDeserialize(value)
|
||||
assertSame(value, result)
|
||||
}
|
||||
|
||||
@@ -245,7 +249,6 @@ class CollectionJVMTest {
|
||||
testCollectionBuilderSerialization(source)
|
||||
}
|
||||
|
||||
|
||||
private fun testCollectionBuilderSerialization(value: Any) {
|
||||
val result = serializeAndDeserialize(value)
|
||||
assertEquals(value, result)
|
||||
@@ -260,4 +263,14 @@ class CollectionJVMTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test fun singletonListIsSerializable() = testSingletonCollectionSerialization(listOf(42))
|
||||
|
||||
@Test fun singletonSetIsSerializable() = testSingletonCollectionSerialization(setOf(42))
|
||||
|
||||
@Test fun singletonMapIsSerializable() = testSingletonCollectionSerialization(mapOf("hello" to "world"))
|
||||
|
||||
private fun testSingletonCollectionSerialization(value: Any) {
|
||||
val deserialized = checkSerializeAndDeserialize(value)
|
||||
assertReadOnly(deserialized)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user