From 366017d267d68f25fab31b9abda5ced3db949ee4 Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Thu, 3 Jun 2021 19:08:03 +0300 Subject: [PATCH] [FIR] Replace PersistentList with MutableList in BodyResolveContext, LocalClassesNavigation --- .../transformers/body/resolve/BodyResolveContext.kt | 12 +++++------- .../body/resolve/LocalClassesNavigation.kt | 7 +++---- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt index 4db0ea288ea..adfe5bc437d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt @@ -73,7 +73,7 @@ class BodyResolveContext( get() = towerDataContextsForClassParts.towerDataContextForCallableReferences @set:PrivateForInline - var containers: PersistentList = persistentListOf() + var containers: MutableList = mutableListOf() @set:PrivateForInline var containingClass: FirRegularClass? = null @@ -108,25 +108,23 @@ class BodyResolveContext( @PrivateForInline inline fun withContainer(declaration: FirDeclaration, f: () -> T): T { - val oldContainers = containers - containers = containers.add(declaration) + containers.add(declaration) return try { f() } finally { - containers = oldContainers + containers.removeAt(containers.size - 1) } } @PrivateForInline private inline fun withContainerClass(declaration: FirRegularClass, f: () -> T): T { - val oldContainers = containers val oldContainingClass = containingClass - containers = containers.add(declaration) + containers.add(declaration) containingClass = declaration return try { f() } finally { - containers = oldContainers + containers.removeAt(containers.size - 1) containingClass = oldContainingClass } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesNavigation.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesNavigation.kt index a5912811fd1..32a3a770148 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesNavigation.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesNavigation.kt @@ -49,7 +49,7 @@ private class NavigationInfoVisitor : FirDefaultVisitor() { val resultingMap: MutableMap, FirClassLikeDeclaration<*>> = mutableMapOf() val parentForClass: MutableMap, FirClassLikeDeclaration<*>?> = mutableMapOf() val allMembers: MutableList> = mutableListOf() - private var currentPath: PersistentList> = persistentListOf() + private val currentPath: MutableList> = mutableListOf() override fun visitElement(element: FirElement, data: Any?) {} @@ -63,12 +63,11 @@ private class NavigationInfoVisitor : FirDefaultVisitor() { override fun > visitClass(klass: FirClass, data: Any?) { parentForClass[klass] = currentPath.lastOrNull() - val prev = currentPath - currentPath = currentPath.add(klass) + currentPath.add(klass) klass.acceptChildren(this, null) - currentPath = prev + currentPath.removeAt(currentPath.size - 1) } override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Any?) {