Move Fir*SourceElement to frontend.common, rename to Kt* (complete)
This commit is contained in:
+7
-5
@@ -5,6 +5,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir
|
||||
|
||||
import org.jetbrains.kotlin.KtPsiSourceElement
|
||||
import org.jetbrains.kotlin.KtSourceElement
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticUtils.getLineAndColumnInPsiFile
|
||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||
import org.jetbrains.kotlin.incremental.components.Position
|
||||
@@ -15,18 +17,18 @@ import java.util.concurrent.ConcurrentHashMap
|
||||
|
||||
class IncrementalPassThroughLookupTrackerComponent(
|
||||
private val lookupTracker: LookupTracker,
|
||||
private val sourceToFilePath: (FirSourceElement) -> String
|
||||
private val sourceToFilePath: (KtSourceElement) -> String
|
||||
) : FirLookupTrackerComponent() {
|
||||
|
||||
private val requiresPosition = lookupTracker.requiresPosition
|
||||
private val sourceToFilePathsCache = ConcurrentHashMap<FirSourceElement, String>()
|
||||
private val sourceToFilePathsCache = ConcurrentHashMap<KtSourceElement, String>()
|
||||
|
||||
override fun recordLookup(name: Name, inScopes: List<String>, source: FirSourceElement?, fileSource: FirSourceElement?) {
|
||||
override fun recordLookup(name: Name, inScopes: List<String>, source: KtSourceElement?, fileSource: KtSourceElement?) {
|
||||
val definedSource = fileSource ?: source ?: throw AssertionError("Cannot record lookup for \"$name\" without a source")
|
||||
val path = sourceToFilePathsCache.getOrPut(definedSource) {
|
||||
sourceToFilePath(definedSource)
|
||||
}
|
||||
val position = if (requiresPosition && source != null && source is FirPsiSourceElement) {
|
||||
val position = if (requiresPosition && source != null && source is KtPsiSourceElement) {
|
||||
getLineAndColumnInPsiFile(source.psi.containingFile, source.psi.textRange).let { Position(it.line, it.column) }
|
||||
} else Position.NO_POSITION
|
||||
|
||||
@@ -35,7 +37,7 @@ class IncrementalPassThroughLookupTrackerComponent(
|
||||
}
|
||||
}
|
||||
|
||||
override fun recordLookup(name: Name, inScope: String, source: FirSourceElement?, fileSource: FirSourceElement?) {
|
||||
override fun recordLookup(name: Name, inScope: String, source: KtSourceElement?, fileSource: KtSourceElement?) {
|
||||
recordLookup(name, SmartList(inScope), source, fileSource)
|
||||
}
|
||||
}
|
||||
|
||||
+4
-2
@@ -6,6 +6,8 @@
|
||||
package org.jetbrains.kotlin.fir.session
|
||||
|
||||
import com.intellij.psi.PsiFile
|
||||
import org.jetbrains.kotlin.KtPsiSourceElement
|
||||
import org.jetbrains.kotlin.KtSourceElement
|
||||
import org.jetbrains.kotlin.config.JvmAnalysisFlags
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
@@ -93,8 +95,8 @@ fun FirSession.registerResolveComponents(lookupTracker: LookupTracker? = null) {
|
||||
register(FirNameConflictsTrackerComponent::class, FirNameConflictsTracker())
|
||||
register(FirModuleVisibilityChecker::class, FirModuleVisibilityChecker.Standard(this))
|
||||
if (lookupTracker != null) {
|
||||
val firFileToPath: (FirSourceElement) -> String = {
|
||||
val psiSource = (it as? FirPsiSourceElement) ?: TODO("Not implemented for non-FirPsiSourceElement")
|
||||
val firFileToPath: (KtSourceElement) -> String = {
|
||||
val psiSource = (it as? KtPsiSourceElement) ?: TODO("Not implemented for non-FirPsiSourceElement")
|
||||
((psiSource.psi as? PsiFile) ?: psiSource.psi.containingFile).virtualFile.path
|
||||
}
|
||||
register(
|
||||
|
||||
Reference in New Issue
Block a user