diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/util/Collections.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/util/Collections.kt deleted file mode 100644 index e4829751c8f..00000000000 --- a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/util/Collections.kt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright 2010-2021 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. - */ - -package org.jetbrains.kotlin.fir.util - -private open class FrozenReversedListReadOnly( - private val delegate: List -) : AbstractList() { - override val size: Int = delegate.size - override fun get(index: Int): T = delegate[size - 1 - index] -} - -fun List.asReversedFrozen(): List = FrozenReversedListReadOnly(this) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolveTask.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolveTask.kt index 436ec1b2574..7bdd4035717 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolveTask.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolveTask.kt @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.fir.scopes.impl.FirWhenSubjectImportingScope import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitBuiltinTypeRef -import org.jetbrains.kotlin.fir.util.asReversedFrozen import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind import org.jetbrains.kotlin.resolve.descriptorUtil.HIDES_MEMBERS_NAME_LIST @@ -32,7 +31,7 @@ internal class TowerDataElementsForName( name: Name, towerDataContext: FirTowerDataContext ) { - val nonLocalTowerDataElements = towerDataContext.nonLocalTowerDataElements.asReversedFrozen() + val nonLocalTowerDataElements = towerDataContext.nonLocalTowerDataElements.asReversed() val reversedFilteredLocalScopes by lazy(LazyThreadSafetyMode.NONE) { buildList { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt index 8e4a89e2613..02ec6a6ee38 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt @@ -302,18 +302,9 @@ open class FirTypeResolveTransformer( override fun transformTypeRef(typeRef: FirTypeRef, data: Any?): FirResolvedTypeRef { return typeResolverTransformer.withFile(currentFile) { - val scopes = scopes - // optimized implementation of reversed Iterable on top of PersistentList - val reversedScopes = object : Iterable { - override fun iterator() = object : Iterator { - private val iter = scopes.listIterator(scopes.size) - override fun hasNext() = iter.hasPrevious() - override fun next() = iter.previous() - } - } typeRef.transform( typeResolverTransformer, - ScopeClassDeclaration(reversedScopes, classDeclarationsStack, containerDeclaration = currentDeclaration) + ScopeClassDeclaration(scopes.asReversed(), classDeclarationsStack, containerDeclaration = currentDeclaration) ) } } diff --git a/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt b/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt index b9d1fb939ac..3a47c9e52e5 100644 --- a/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt +++ b/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt @@ -5,8 +5,6 @@ package org.jetbrains.kotlin.fir.resolve.dfa -import org.jetbrains.kotlin.fir.util.asReversedFrozen - abstract class Stack { abstract val size: Int abstract fun top(): T @@ -41,5 +39,5 @@ private class StackImpl(vararg values: T) : Stack() { stack.clear() } - override fun all(): List = stack.asReversedFrozen() + override fun all(): List = stack.asReversed() }