[fir low level, refactoring] rename some classes to match the naming pattern

This commit is contained in:
Ilya Kirillov
2022-05-02 17:09:15 +02:00
parent 239d969f99
commit 71819a8cb9
14 changed files with 24 additions and 33 deletions
@@ -6,9 +6,8 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LockProvider
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
import org.jetbrains.kotlin.analysis.project.structure.KtModule
import org.jetbrains.kotlin.fir.declarations.FirFile
@Suppress("unused")
internal class LLFirGlobalResolveComponents(
@@ -16,5 +15,5 @@ internal class LLFirGlobalResolveComponents(
val project: Project,
) {
val phaseRunner: LLFirPhaseRunner = LLFirPhaseRunner()
val lockProvider: LockProvider<FirFile> = LockProvider()
val lockProvider: LLFirLockProvider = LLFirLockProvider()
}
@@ -9,7 +9,7 @@ import com.intellij.openapi.roots.ProjectRootModificationTracker
import com.intellij.psi.util.PsiModificationTracker
import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostics.DiagnosticsCollector
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.FirElementBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.FirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCache
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCacheImpl
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.FileStructureCache
@@ -26,7 +26,7 @@ internal class LLFirModuleResolveComponents(
val scopeProvider: FirScopeProvider,
) {
val cache: ModuleFileCache = ModuleFileCacheImpl(this)
val firFileBuilder: FirFileBuilder = FirFileBuilder(this)
val firFileBuilder: LLFirFileBuilder = LLFirFileBuilder(this)
val lazyFirDeclarationsResolver = FirLazyDeclarationResolver(this)
val scopeSessionProvider: LLFirScopeSessionProvider = LLFirScopeSessionProvider.create(
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.executeWithoutPCE
internal class LLFirPhaseRunner {
/**
* We temporary disable multi-locks to fix deadlocks problem
* @see org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LockProvider
* @see org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
*/
inline fun runPhaseWithCustomResolve(@Suppress("UNUSED_PARAMETER") phase: FirResolvePhase, crossinline resolve: () -> Unit) =
runPhaseWithCustomResolveWithoutLock(resolve)
@@ -9,7 +9,6 @@ import com.intellij.psi.PsiElement
import com.intellij.util.SmartList
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.DiagnosticCheckerFilter
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LockProvider
import org.jetbrains.kotlin.diagnostics.KtPsiDiagnostic
import org.jetbrains.kotlin.fir.declarations.FirFile
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.psi.KtFile
* Responsible for building [FirFile] by [KtFile]
*/
@ThreadSafe
internal class FirFileBuilder(
internal class LLFirFileBuilder(
val moduleComponents: LLFirModuleResolveComponents,
) {
fun buildRawFirFileWithCaching(ktFile: KtFile): FirFile = moduleComponents.cache.fileCached(ktFile) {
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder
import org.jetbrains.kotlin.analysis.api.impl.barebone.annotations.PrivateForInline
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.ResolveTreeBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.lockWithPCECheck
@@ -14,21 +13,18 @@ import kotlin.concurrent.withLock
/**
* Keyed locks provider.
* !!! We temporary remove its correct implementation to fix deadlocks problem. Do not use this until this comment is present
*/
internal class LockProvider<KEY> {
//We temporary disable multi-locks to fix deadlocks problem
internal class LLFirLockProvider {
//We temporarily disable multi-locks to fix deadlocks problem
private val globalLock = ReentrantLock()
@OptIn(PrivateForInline::class)
inline fun <R> withWriteLock(@Suppress("UNUSED_PARAMETER") key: KEY, action: () -> R): R {
inline fun <R> withWriteLock(@Suppress("UNUSED_PARAMETER") key: FirFile, action: () -> R): R {
val startTime = System.currentTimeMillis()
return globalLock.withLock { ResolveTreeBuilder.lockNode(startTime, action) }
}
@OptIn(PrivateForInline::class)
inline fun <R> withWriteLockPCECheck(@Suppress("UNUSED_PARAMETER") key: KEY, lockingIntervalMs: Long, action: () -> R): R {
inline fun <R> withWriteLockPCECheck(@Suppress("UNUSED_PARAMETER") key: FirFile, lockingIntervalMs: Long, action: () -> R): R {
val startTime = System.currentTimeMillis()
return globalLock.lockWithPCECheck(lockingIntervalMs) { ResolveTreeBuilder.lockNode(startTime, action) }
}
@@ -37,7 +33,7 @@ internal class LockProvider<KEY> {
/**
* Runs [resolve] function (which is considered to do some resolve on [firFile]) under a lock for [firFile]
*/
internal inline fun <R> LockProvider<FirFile>.runCustomResolveUnderLock(
internal inline fun <R> LLFirLockProvider.runCustomResolveUnderLock(
firFile: FirFile,
checkPCE: Boolean,
body: () -> R
@@ -10,8 +10,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDeclarationDesigna
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.tryCollectDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.getNonLocalContainingOrThisDeclaration
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.FirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LockProvider
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.runCustomResolveUnderLock
import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLFirFileAnnotationsResolveTransformer
import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLFirFirProviderInterceptor
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.FirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCache
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirElementFinder
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.executeOrReturnDefaultValueOnPCE
@@ -27,7 +27,7 @@ import java.util.*
internal class LLFirProviderHelper(
private val cache: ModuleFileCache,
private val firFileBuilder: FirFileBuilder,
private val firFileBuilder: LLFirFileBuilder,
private val declarationProvider: KotlinDeclarationProvider,
private val packageProvider: KotlinPackageProvider,
) {
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.sessions
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.FirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
import org.jetbrains.kotlin.fir.BuiltinTypes
import org.jetbrains.kotlin.fir.PrivateSessionConstructor
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.state
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirGlobalResolveComponents
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.DiagnosticCheckerFilter
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.FirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyDeclarationResolver
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionProvider
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirLibraryOrLibrarySourceResolvableModuleSession
@@ -9,7 +9,7 @@ import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirGlobalResolveComponents
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.DiagnosticCheckerFilter
import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostics.DiagnosticsCollector
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.FirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyDeclarationResolver
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionProvider
import org.jetbrains.kotlin.analysis.project.structure.KtLibraryModule
@@ -17,8 +17,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseRunner
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDeclarationDesignation
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDeclarationDesignationWithFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDesignation
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LockProvider
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCache
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.runCustomResolveUnderLock
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyDeclarationResolver
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.ResolveTreeBuilder
@@ -35,7 +34,7 @@ internal class LLFirDesignatedSupertypeResolverTransformer(
private val session: FirSession,
private val scopeSession: ScopeSession,
private val firLazyDeclarationResolver: FirLazyDeclarationResolver,
private val lockProvider: LockProvider<FirFile>,
private val lockProvider: LLFirLockProvider,
private val firProviderInterceptor: FirProviderInterceptor?,
private val checkPCE: Boolean,
) : LLFirLazyTransformer {
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.util
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirElementError
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.getNonLocalContainingOrThisDeclaration
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.FirFileBuilder
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder
import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirFile
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
* 'Non-local' stands for not local classes/functions/etc.
*/
internal fun KtDeclaration.findSourceNonLocalFirDeclaration(
firFileBuilder: FirFileBuilder,
firFileBuilder: LLFirFileBuilder,
provider: FirProvider,
containerFirFile: FirFile? = null
): FirDeclaration {
@@ -34,7 +34,7 @@ internal fun KtDeclaration.findSourceNonLocalFirDeclaration(
}
internal fun KtDeclaration.findFirDeclarationForAnyFirSourceDeclaration(
firFileBuilder: FirFileBuilder,
firFileBuilder: LLFirFileBuilder,
provider: FirProvider,
): FirDeclaration {
val nonLocalDeclaration = getNonLocalContainingOrThisDeclaration()
@@ -49,7 +49,7 @@ internal fun KtDeclaration.findFirDeclarationForAnyFirSourceDeclaration(
}
internal inline fun <reified F : FirDeclaration> KtDeclaration.findFirDeclarationForAnyFirSourceDeclarationOfType(
firFileBuilder: FirFileBuilder,
firFileBuilder: LLFirFileBuilder,
provider: FirProvider,
): FirDeclaration {
val fir = findFirDeclarationForAnyFirSourceDeclaration(firFileBuilder, provider)
@@ -58,7 +58,7 @@ internal inline fun <reified F : FirDeclaration> KtDeclaration.findFirDeclaratio
}
private fun KtDeclaration.findSourceOfNonLocalFirDeclarationByTraversingWholeTree(
firFileBuilder: FirFileBuilder,
firFileBuilder: LLFirFileBuilder,
containerFirFile: FirFile?,
): FirDeclaration? {
val firFile = containerFirFile ?: firFileBuilder.buildRawFirFileWithCaching(containingKtFile)
@@ -69,7 +69,7 @@ private fun KtDeclaration.findSourceOfNonLocalFirDeclarationByTraversingWholeTre
}
private fun KtDeclaration.findSourceNonLocalFirDeclarationByProvider(
firFileBuilder: FirFileBuilder,
firFileBuilder: LLFirFileBuilder,
provider: FirProvider,
containerFirFile: FirFile?
): FirDeclaration? {