From 75e1effbc55705873e0d467ff5f821356acb53c3 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Wed, 14 Sep 2022 18:33:46 +0200 Subject: [PATCH] Make Optional extensions stable since 1.8 KT-51907, KT-53277 --- .../src/kotlin/jvm/optionals/Optionals.kt | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/libraries/stdlib/jdk8/src/kotlin/jvm/optionals/Optionals.kt b/libraries/stdlib/jdk8/src/kotlin/jvm/optionals/Optionals.kt index 0b03e8323f5..75f2bade9cc 100644 --- a/libraries/stdlib/jdk8/src/kotlin/jvm/optionals/Optionals.kt +++ b/libraries/stdlib/jdk8/src/kotlin/jvm/optionals/Optionals.kt @@ -2,7 +2,7 @@ * Copyright 2010-2022 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. */ - +@file:Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") package kotlin.jvm.optionals import java.util.Optional @@ -10,30 +10,30 @@ import java.util.Optional /** * Returns this [Optional]'s value if [present][Optional.isPresent], or otherwise `null`. */ -@SinceKotlin("1.7") -@ExperimentalStdlibApi +@SinceKotlin("1.8") +@WasExperimental(ExperimentalStdlibApi::class) public fun Optional.getOrNull(): T? = orElse(null) /** * Returns this [Optional]'s value if [present][Optional.isPresent], or otherwise [defaultValue]. */ -@SinceKotlin("1.7") -@ExperimentalStdlibApi +@SinceKotlin("1.8") +@WasExperimental(ExperimentalStdlibApi::class) public fun Optional.getOrDefault(defaultValue: T): T = if (isPresent) get() else defaultValue /** * Returns this [Optional]'s value if [present][Optional.isPresent], or otherwise the result of the [defaultValue] function. */ -@SinceKotlin("1.7") -@ExperimentalStdlibApi +@SinceKotlin("1.8") +@WasExperimental(ExperimentalStdlibApi::class) public inline fun Optional.getOrElse(defaultValue: () -> T): T = if (isPresent) get() else defaultValue() /** * Appends this [Optional]'s value to the given [destination] collection if [present][Optional.isPresent]. */ -@SinceKotlin("1.7") -@ExperimentalStdlibApi +@SinceKotlin("1.8") +@WasExperimental(ExperimentalStdlibApi::class) public fun > Optional.toCollection(destination: C): C { if (isPresent) { destination.add(get()) @@ -45,8 +45,8 @@ public fun > Optional.toCollection(desti * Returns a new read-only list of this [Optional]'s value if [present][Optional.isPresent], or otherwise an empty list. * The returned list is serializable (JVM). */ -@SinceKotlin("1.7") -@ExperimentalStdlibApi +@SinceKotlin("1.8") +@WasExperimental(ExperimentalStdlibApi::class) public fun Optional.toList(): List = if (isPresent) listOf(get()) else emptyList() @@ -54,8 +54,8 @@ public fun Optional.toList(): List = * Returns a new read-only set of this [Optional]'s value if [present][Optional.isPresent], or otherwise an empty set. * The returned set is serializable (JVM). */ -@SinceKotlin("1.7") -@ExperimentalStdlibApi +@SinceKotlin("1.8") +@WasExperimental(ExperimentalStdlibApi::class) public fun Optional.toSet(): Set = if (isPresent) setOf(get()) else emptySet() @@ -63,7 +63,7 @@ public fun Optional.toSet(): Set = * Returns a new sequence for this [Optional]'s value if [present][Optional.isPresent], or otherwise an empty sequence. * The returned set is serializable (JVM). */ -@SinceKotlin("1.7") -@ExperimentalStdlibApi +@SinceKotlin("1.8") +@WasExperimental(ExperimentalStdlibApi::class) public fun Optional.asSequence(): Sequence = if (isPresent) sequenceOf(get()) else emptySequence()