aboutsummaryrefslogtreecommitdiffstats
path: root/kotlinx-coroutines-core/common/src/internal/InlineList.kt
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-08-23 23:55:41 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-08-23 23:55:41 +0000
commitffe1b7dc19f3fbe1bc4a5f4f1e28c64cd68c5371 (patch)
tree747e5be83c6e6a2e2d9a164ebd03c5e45e6ec952 /kotlinx-coroutines-core/common/src/internal/InlineList.kt
parent2bbecd60d31b5d0b48847f67e741018f5ae7aa07 (diff)
parent531d55eaeac09ad6cde55687ef802d4235040985 (diff)
downloadplatform_external_kotlinx.coroutines-ffe1b7dc19f3fbe1bc4a5f4f1e28c64cd68c5371.tar.gz
platform_external_kotlinx.coroutines-ffe1b7dc19f3fbe1bc4a5f4f1e28c64cd68c5371.tar.bz2
platform_external_kotlinx.coroutines-ffe1b7dc19f3fbe1bc4a5f4f1e28c64cd68c5371.zip
Snap for 7668063 from 531d55eaeac09ad6cde55687ef802d4235040985 to simpleperf-releasesimpleperf-release
Change-Id: I844c9c61f2e31a265c36a483e1509e0e08c508d6
Diffstat (limited to 'kotlinx-coroutines-core/common/src/internal/InlineList.kt')
-rw-r--r--kotlinx-coroutines-core/common/src/internal/InlineList.kt8
1 files changed, 5 insertions, 3 deletions
diff --git a/kotlinx-coroutines-core/common/src/internal/InlineList.kt b/kotlinx-coroutines-core/common/src/internal/InlineList.kt
index 34c1e893..61bf6d01 100644
--- a/kotlinx-coroutines-core/common/src/internal/InlineList.kt
+++ b/kotlinx-coroutines-core/common/src/internal/InlineList.kt
@@ -7,14 +7,16 @@
package kotlinx.coroutines.internal
import kotlinx.coroutines.assert
+import kotlin.jvm.*
/*
* Inline class that represents a mutable list, but does not allocate an underlying storage
* for zero and one elements.
* Cannot be parametrized with `List<*>`.
*/
-internal inline class InlineList<E>(private val holder: Any? = null) {
- public operator fun plus(element: E): InlineList<E> {
+@JvmInline
+internal value class InlineList<E>(private val holder: Any? = null) {
+ operator fun plus(element: E): InlineList<E> {
assert { element !is List<*> } // Lists are prohibited
return when (holder) {
null -> InlineList(element)
@@ -31,7 +33,7 @@ internal inline class InlineList<E>(private val holder: Any? = null) {
}
}
- public inline fun forEachReversed(action: (E) -> Unit) {
+ inline fun forEachReversed(action: (E) -> Unit) {
when (holder) {
null -> return
!is ArrayList<*> -> action(holder as E)