From 914c55b57fc4c816d3f16c0f3a78b044b498cd81 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Sat, 14 Jan 2017 08:02:58 +0300 Subject: [PATCH] Refactor: use new functions in stdlib code --- js/js.libraries/src/core/collections/InternalHashCodeMap.kt | 4 ++-- js/js.libraries/src/core/collections/LinkedHashMap.kt | 3 +-- libraries/stdlib/src/kotlin/concurrent/Thread.kt | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/js/js.libraries/src/core/collections/InternalHashCodeMap.kt b/js/js.libraries/src/core/collections/InternalHashCodeMap.kt index c4a8e532fe7..d46872d8ab7 100644 --- a/js/js.libraries/src/core/collections/InternalHashCodeMap.kt +++ b/js/js.libraries/src/core/collections/InternalHashCodeMap.kt @@ -153,8 +153,8 @@ internal class InternalHashCodeMap(override val equality: EqualityComparat } private fun getChainOrNull(hashCode: Int): Array>? { - val chain = backingMap[hashCode] - return if (chain !== undefined) chain else null // satisfying { it != undefined } + val chain = backingMap[hashCode].unsafeCast>?>() + return chain.takeIf { it !== undefined } } } diff --git a/js/js.libraries/src/core/collections/LinkedHashMap.kt b/js/js.libraries/src/core/collections/LinkedHashMap.kt index 937868e1e1a..d7ad962c444 100644 --- a/js/js.libraries/src/core/collections/LinkedHashMap.kt +++ b/js/js.libraries/src/core/collections/LinkedHashMap.kt @@ -64,8 +64,7 @@ public open class LinkedHashMap : HashMap, Map { val current = next!! last = current - next = current.next - if (next === head) next = null // satisfying { it != head } + next = current.next.takeIf { it !== head } return current } diff --git a/libraries/stdlib/src/kotlin/concurrent/Thread.kt b/libraries/stdlib/src/kotlin/concurrent/Thread.kt index b9af462fb4b..276bd93738b 100644 --- a/libraries/stdlib/src/kotlin/concurrent/Thread.kt +++ b/libraries/stdlib/src/kotlin/concurrent/Thread.kt @@ -44,5 +44,5 @@ public fun thread(start: Boolean = true, isDaemon: Boolean = false, contextClass */ @kotlin.internal.InlineOnly public inline fun ThreadLocal.getOrSet(default: () -> T): T { - return get() ?: default().apply { set(this) } + return get() ?: default().also(this::set) }