[fir low level, refactoring] rename some classes to match the naming pattern
This commit is contained in:
+2
-3
@@ -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()
|
||||
}
|
||||
+2
-2
@@ -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(
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
-1
@@ -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
|
||||
|
||||
|
||||
+1
-1
@@ -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
-9
@@ -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
|
||||
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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,
|
||||
) {
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+2
-3
@@ -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 {
|
||||
|
||||
+6
-6
@@ -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? {
|
||||
|
||||
Reference in New Issue
Block a user