From b76854eddf70bc9946f390839b148bdc52c3f186 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Wed, 14 Sep 2022 18:17:33 +0200 Subject: [PATCH] Simplify signatures of Optional extensions getOrDefault and getOrElse Two generic types are not need to cover the same use cases. KT-50484 --- libraries/stdlib/jdk8/src/kotlin/jvm/optionals/Optionals.kt | 4 ++-- libraries/stdlib/jdk8/test/jvm/optionals/OptionalsTest.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/stdlib/jdk8/src/kotlin/jvm/optionals/Optionals.kt b/libraries/stdlib/jdk8/src/kotlin/jvm/optionals/Optionals.kt index 538870eaf91..0b03e8323f5 100644 --- a/libraries/stdlib/jdk8/src/kotlin/jvm/optionals/Optionals.kt +++ b/libraries/stdlib/jdk8/src/kotlin/jvm/optionals/Optionals.kt @@ -19,14 +19,14 @@ public fun Optional.getOrNull(): T? = orElse(null) */ @SinceKotlin("1.7") @ExperimentalStdlibApi -public fun Optional.getOrDefault(defaultValue: R): R = if (isPresent) get() else defaultValue +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 -public inline fun Optional.getOrElse(defaultValue: () -> R): R = +public inline fun Optional.getOrElse(defaultValue: () -> T): T = if (isPresent) get() else defaultValue() /** diff --git a/libraries/stdlib/jdk8/test/jvm/optionals/OptionalsTest.kt b/libraries/stdlib/jdk8/test/jvm/optionals/OptionalsTest.kt index 822c822e495..195d949363b 100644 --- a/libraries/stdlib/jdk8/test/jvm/optionals/OptionalsTest.kt +++ b/libraries/stdlib/jdk8/test/jvm/optionals/OptionalsTest.kt @@ -23,7 +23,7 @@ class OptionalsTest { // Return type can be a supertype assertNull(Optional.empty().getOrDefault(null)) - assertEquals(5.0, Optional.empty().getOrDefault(5.0)) + assertEquals(5.0, Optional.empty().getOrDefault(5.0)) } @Test @@ -33,7 +33,7 @@ class OptionalsTest { // Return type can be a supertype assertNull(Optional.empty().getOrElse { null }) - assertEquals(5.0, Optional.empty().getOrElse { 5.0 }) + assertEquals(5.0, Optional.empty().getOrElse { 5.0 }) } @Test