diff --git a/core/util.runtime/src/org/jetbrains/kotlin/utils/SmartSet.kt b/core/util.runtime/src/org/jetbrains/kotlin/utils/SmartSet.kt index 5ae11c45876..a5bbddef5ee 100644 --- a/core/util.runtime/src/org/jetbrains/kotlin/utils/SmartSet.kt +++ b/core/util.runtime/src/org/jetbrains/kotlin/utils/SmartSet.kt @@ -25,22 +25,22 @@ import java.util.* * Also, [iterator] returns an iterator which does not support [MutableIterator.remove]. */ @Suppress("UNCHECKED_CAST") -class SmartSet private constructor() : AbstractSet() { +class SmartSet private constructor() /* : AbstractSet() */ { companion object { private val ARRAY_THRESHOLD = 5 @JvmStatic - fun create() = SmartSet() + fun create(): MutableSet = LinkedHashSet() @JvmStatic - fun create(set: Set) = SmartSet().apply { this.addAll(set) } + fun create(set: Set): MutableSet = LinkedHashSet(set) } // null if size = 0, object if size = 1, array of objects if size < threshold, linked hash set otherwise private var data: Any? = null private var size: Int = 0 - +/* override fun iterator(): MutableIterator = when { size == 0 -> Collections.emptySet().iterator() size == 1 -> SingletonIterator(data as T) @@ -86,7 +86,7 @@ class SmartSet private constructor() : AbstractSet() { size < ARRAY_THRESHOLD -> o in data as Array else -> o in data as Set } - +*/ private class SingletonIterator(private val element: T) : MutableIterator { private var hasNext = true