FIR: eliminate most usages of FirSession.service() and getService()
This commit is contained in:
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
|||||||
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
|
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
|
||||||
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
||||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||||
@@ -164,7 +164,7 @@ abstract class AbstractSimpleFileBenchmark {
|
|||||||
val builder = RawFirBuilder(session, stubMode = false)
|
val builder = RawFirBuilder(session, stubMode = false)
|
||||||
|
|
||||||
val totalTransformer = FirTotalResolveTransformer()
|
val totalTransformer = FirTotalResolveTransformer()
|
||||||
val firFile = builder.buildFirFile(file).also((session.getService(FirProvider::class) as FirProviderImpl)::recordFile)
|
val firFile = builder.buildFirFile(file).also((session.firProvider as FirProviderImpl)::recordFile)
|
||||||
|
|
||||||
for (transformer in totalTransformer.transformers) {
|
for (transformer in totalTransformer.transformers) {
|
||||||
transformer.transformFile(firFile, null)
|
transformer.transformFile(firFile, null)
|
||||||
|
|||||||
+2
-3
@@ -55,10 +55,9 @@ import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
|||||||
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
|
import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
|
||||||
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.idea.MainFunctionDetector
|
import org.jetbrains.kotlin.idea.MainFunctionDetector
|
||||||
import org.jetbrains.kotlin.javac.JavacWrapper
|
import org.jetbrains.kotlin.javac.JavacWrapper
|
||||||
import org.jetbrains.kotlin.load.kotlin.ModuleVisibilityManager
|
import org.jetbrains.kotlin.load.kotlin.ModuleVisibilityManager
|
||||||
@@ -330,7 +329,7 @@ object KotlinToJVMBytecodeCompiler {
|
|||||||
val resolveTransformer = FirTotalResolveTransformer()
|
val resolveTransformer = FirTotalResolveTransformer()
|
||||||
val firFiles = ktFiles.map {
|
val firFiles = ktFiles.map {
|
||||||
val firFile = builder.buildFirFile(it)
|
val firFile = builder.buildFirFile(it)
|
||||||
(session.service<FirProvider>() as FirProviderImpl).recordFile(firFile)
|
(session.firProvider as FirProviderImpl).recordFile(firFile)
|
||||||
firFile
|
firFile
|
||||||
}.also {
|
}.also {
|
||||||
try {
|
try {
|
||||||
|
|||||||
+2
-6
@@ -17,11 +17,7 @@ import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor
|
|||||||
import org.jetbrains.kotlin.fir.descriptors.FirPackageFragmentDescriptor
|
import org.jetbrains.kotlin.fir.descriptors.FirPackageFragmentDescriptor
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirVariable
|
import org.jetbrains.kotlin.fir.expressions.FirVariable
|
||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.*
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.getOrPut
|
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||||
@@ -46,7 +42,7 @@ class Fir2IrDeclarationStorage(
|
|||||||
) {
|
) {
|
||||||
private val firSymbolProvider = session.firSymbolProvider
|
private val firSymbolProvider = session.firSymbolProvider
|
||||||
|
|
||||||
private val firProvider = session.service<FirProvider>()
|
private val firProvider = session.firProvider
|
||||||
|
|
||||||
private val fragmentCache = mutableMapOf<FqName, IrExternalPackageFragment>()
|
private val fragmentCache = mutableMapOf<FqName, IrExternalPackageFragment>()
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM
|
|||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConverter
|
import org.jetbrains.kotlin.fir.backend.Fir2IrConverter
|
||||||
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
||||||
import org.jetbrains.kotlin.ir.AbstractIrTextTestCase
|
import org.jetbrains.kotlin.ir.AbstractIrTextTestCase
|
||||||
@@ -81,7 +81,7 @@ abstract class AbstractFir2IrTextTest : AbstractIrTextTestCase() {
|
|||||||
val resolveTransformer = FirTotalResolveTransformer()
|
val resolveTransformer = FirTotalResolveTransformer()
|
||||||
val firFiles = psiFiles.map {
|
val firFiles = psiFiles.map {
|
||||||
val firFile = builder.buildFirFile(it)
|
val firFile = builder.buildFirFile(it)
|
||||||
(session.service<FirProvider>() as FirProviderImpl).recordFile(firFile)
|
(session.firProvider as FirProviderImpl).recordFile(firFile)
|
||||||
firFile
|
firFile
|
||||||
}.also {
|
}.also {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -26,11 +26,10 @@ import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.classId
|
import org.jetbrains.kotlin.fir.declarations.classId
|
||||||
import org.jetbrains.kotlin.fir.declarations.superConeTypes
|
import org.jetbrains.kotlin.fir.declarations.superConeTypes
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.directExpansionType
|
import org.jetbrains.kotlin.fir.resolve.directExpansionType
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirSupertypeResolverTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirSupertypeResolverTransformer
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
@@ -45,7 +44,7 @@ class FirJavaElementFinder(
|
|||||||
project: Project
|
project: Project
|
||||||
) : PsiElementFinder(), KotlinFinderMarker {
|
) : PsiElementFinder(), KotlinFinderMarker {
|
||||||
private val psiManager = PsiManager.getInstance(project)
|
private val psiManager = PsiManager.getInstance(project)
|
||||||
private val firProvider = session.service<FirProvider>()
|
private val firProvider = session.firProvider
|
||||||
|
|
||||||
override fun findPackage(qualifiedName: String): PsiPackage? {
|
override fun findPackage(qualifiedName: String): PsiPackage? {
|
||||||
if (firProvider.getClassNamesInPackage(FqName(qualifiedName)).isEmpty()) return null
|
if (firProvider.getClassNamesInPackage(FqName(qualifiedName)).isEmpty()) return null
|
||||||
|
|||||||
@@ -26,11 +26,10 @@ import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.classId
|
import org.jetbrains.kotlin.fir.declarations.classId
|
||||||
import org.jetbrains.kotlin.fir.declarations.superConeTypes
|
import org.jetbrains.kotlin.fir.declarations.superConeTypes
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.directExpansionType
|
import org.jetbrains.kotlin.fir.resolve.directExpansionType
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirSupertypeResolverTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirSupertypeResolverTransformer
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
@@ -45,7 +44,7 @@ class FirJavaElementFinder(
|
|||||||
project: Project
|
project: Project
|
||||||
) : PsiElementFinder(), KotlinFinderMarker {
|
) : PsiElementFinder(), KotlinFinderMarker {
|
||||||
private val psiManager = PsiManager.getInstance(project)
|
private val psiManager = PsiManager.getInstance(project)
|
||||||
private val firProvider = session.service<FirProvider>()
|
private val firProvider = session.firProvider
|
||||||
|
|
||||||
override fun findPackage(qualifiedName: String): PsiPackage? {
|
override fun findPackage(qualifiedName: String): PsiPackage? {
|
||||||
if (firProvider.getClassNamesInPackage(FqName(qualifiedName)).isEmpty()) return null
|
if (firProvider.getClassNamesInPackage(FqName(qualifiedName)).isEmpty()) return null
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class FirJavaModuleBasedSession(
|
|||||||
FirSymbolProvider::class,
|
FirSymbolProvider::class,
|
||||||
FirCompositeSymbolProvider(
|
FirCompositeSymbolProvider(
|
||||||
listOf(
|
listOf(
|
||||||
service<FirProvider>(),
|
firProvider,
|
||||||
JavaSymbolProvider(this, sessionProvider.project, scope),
|
JavaSymbolProvider(this, sessionProvider.project, scope),
|
||||||
dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this)
|
dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -20,11 +20,9 @@ import org.jetbrains.kotlin.fir.java.enhancement.readOnlyToMutable
|
|||||||
import org.jetbrains.kotlin.fir.java.types.FirJavaTypeRef
|
import org.jetbrains.kotlin.fir.java.types.FirJavaTypeRef
|
||||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReferenceImpl
|
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReferenceImpl
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.constructClassType
|
import org.jetbrains.kotlin.fir.resolve.constructClassType
|
||||||
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.getClassDeclaredCallableSymbols
|
import org.jetbrains.kotlin.fir.resolve.getClassDeclaredCallableSymbols
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||||
|
|||||||
-2
@@ -26,8 +26,6 @@ import org.jetbrains.kotlin.fir.references.FirResolvedCallableReferenceImpl
|
|||||||
import org.jetbrains.kotlin.fir.resolve.*
|
import org.jetbrains.kotlin.fir.resolve.*
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope
|
import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.*
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
|
import org.jetbrains.kotlin.fir.types.impl.FirErrorTypeRefImpl
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.resolve
|
|||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
@@ -35,7 +34,7 @@ abstract class FirProvider : FirSymbolProvider() {
|
|||||||
abstract fun getFirCallableContainerFile(symbol: FirCallableSymbol<*>): FirFile?
|
abstract fun getFirCallableContainerFile(symbol: FirCallableSymbol<*>): FirFile?
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun getInstance(session: FirSession): FirProvider = session.service()
|
fun getInstance(session: FirSession): FirProvider = session.firProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract fun getFirFilesByPackage(fqName: FqName): List<FirFile>
|
abstract fun getFirFilesByPackage(fqName: FqName): List<FirFile>
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.fir.FirSession
|
|||||||
import org.jetbrains.kotlin.fir.FirSessionComponent
|
import org.jetbrains.kotlin.fir.FirSessionComponent
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.*
|
import org.jetbrains.kotlin.fir.symbols.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ inline fun <K, V, VA : V> MutableMap<K, V>.getOrPut(key: K, defaultValue: (K) ->
|
|||||||
}
|
}
|
||||||
|
|
||||||
val FirSession.firSymbolProvider: FirSymbolProvider by componentArrayAccessor()
|
val FirSession.firSymbolProvider: FirSymbolProvider by componentArrayAccessor()
|
||||||
|
val FirSession.firProvider: FirProvider by componentArrayAccessor()
|
||||||
val FirSession.correspondingSupertypesCache: FirCorrespondingSupertypesCache by componentArrayAccessor()
|
val FirSession.correspondingSupertypesCache: FirCorrespondingSupertypesCache by componentArrayAccessor()
|
||||||
|
|
||||||
fun ConeClassLikeLookupTag.toSymbol(useSiteSession: FirSession): FirClassLikeSymbol<*>? {
|
fun ConeClassLikeLookupTag.toSymbol(useSiteSession: FirSession): FirClassLikeSymbol<*>? {
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope
|
|||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirClassUseSiteScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirClassUseSiteScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirSuperTypeScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirSuperTypeScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope
|
import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
|
||||||
|
|||||||
@@ -8,8 +8,7 @@ package org.jetbrains.kotlin.fir.resolve.calls
|
|||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
|
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||||
@@ -183,7 +182,7 @@ internal object CheckVisibility : CheckerStage() {
|
|||||||
symbol.packageFqName() == callInfo.containingFile.packageFqName
|
symbol.packageFqName() == callInfo.containingFile.packageFqName
|
||||||
Visibilities.PRIVATE, Visibilities.PRIVATE_TO_THIS -> {
|
Visibilities.PRIVATE, Visibilities.PRIVATE_TO_THIS -> {
|
||||||
if (declaration.session == callInfo.session) {
|
if (declaration.session == callInfo.session) {
|
||||||
val provider = callInfo.session.service<FirProvider>()
|
val provider = callInfo.session.firProvider
|
||||||
val candidateFile = when (symbol) {
|
val candidateFile = when (symbol) {
|
||||||
is FirCallableSymbol<*> -> provider.getFirCallableContainerFile(symbol)
|
is FirCallableSymbol<*> -> provider.getFirCallableContainerFile(symbol)
|
||||||
is FirClassLikeSymbol<*> -> provider.getFirClassifierContainerFile(symbol.classId)
|
is FirClassLikeSymbol<*> -> provider.getFirClassifierContainerFile(symbol.classId)
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
|||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirAbstractImportingScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirAbstractImportingScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirExplicitSimpleImportingScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirExplicitSimpleImportingScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.processClassifiersByNameWithAction
|
import org.jetbrains.kotlin.fir.scopes.processClassifiersByNameWithAction
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.types.ConeAbbreviatedType
|
import org.jetbrains.kotlin.fir.types.ConeAbbreviatedType
|
||||||
|
|||||||
+2
-5
@@ -8,10 +8,7 @@ package org.jetbrains.kotlin.fir.resolve.impl
|
|||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirQualifierResolver
|
import org.jetbrains.kotlin.fir.resolve.*
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirTypeResolver
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.constructType
|
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirPosition
|
import org.jetbrains.kotlin.fir.scopes.FirPosition
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||||
@@ -24,7 +21,7 @@ import org.jetbrains.kotlin.name.ClassId
|
|||||||
class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver {
|
class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver {
|
||||||
|
|
||||||
private val symbolProvider by lazy {
|
private val symbolProvider by lazy {
|
||||||
session.getService(FirSymbolProvider::class)
|
session.firSymbolProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
private data class ClassIdInSession(val session: FirSession, val id: ClassId)
|
private data class ClassIdInSession(val session: FirSession, val id: ClassId)
|
||||||
|
|||||||
+3
-3
@@ -172,11 +172,11 @@ class FirSupertypeResolverTransformer : FirAbstractTreeTransformer(phase = FirRe
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
val sessionForSupertype = session.getService(FirSymbolProvider::class).getSessionForClass(superTypeClassId) ?: continue
|
val sessionForSupertype = session.firSymbolProvider.getSessionForClass(superTypeClassId) ?: continue
|
||||||
|
|
||||||
val firClassForSupertype =
|
val firClassForSupertype =
|
||||||
sessionForSupertype
|
sessionForSupertype
|
||||||
.getService(FirSymbolProvider::class)
|
.firSymbolProvider
|
||||||
.getClassLikeSymbolByFqName(superTypeClassId)
|
.getClassLikeSymbolByFqName(superTypeClassId)
|
||||||
?.fir
|
?.fir
|
||||||
|
|
||||||
@@ -185,7 +185,7 @@ class FirSupertypeResolverTransformer : FirAbstractTreeTransformer(phase = FirRe
|
|||||||
(firClassForSupertype is FirClass &&
|
(firClassForSupertype is FirClass &&
|
||||||
firClassForSupertype.superTypeRefs.any { it !is FirResolvedTypeRef })
|
firClassForSupertype.superTypeRefs.any { it !is FirResolvedTypeRef })
|
||||||
) {
|
) {
|
||||||
val provider = sessionForSupertype.getService(FirProvider::class)
|
val provider = sessionForSupertype.firProvider
|
||||||
val firForSuperClassFile = provider.getFirClassifierContainerFile(superTypeClassId)
|
val firForSuperClassFile = provider.getFirClassifierContainerFile(superTypeClassId)
|
||||||
|
|
||||||
ResolveSuperTypesTask(
|
ResolveSuperTypesTask(
|
||||||
|
|||||||
+2
-3
@@ -11,9 +11,8 @@ import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.service
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
|
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
@@ -59,7 +58,7 @@ class ReturnTypeCalculatorWithJump(val session: FirSession, val scopeSession: Sc
|
|||||||
val symbol = declaration.symbol as FirCallableSymbol<*>
|
val symbol = declaration.symbol as FirCallableSymbol<*>
|
||||||
val id = symbol.callableId
|
val id = symbol.callableId
|
||||||
|
|
||||||
val provider = session.service<FirProvider>()
|
val provider = session.firProvider
|
||||||
|
|
||||||
val file = provider.getFirCallableContainerFile(symbol)
|
val file = provider.getFirCallableContainerFile(symbol)
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.fir.resolve.calls.hasNullableSuperType
|
|||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.firUnsafe
|
import org.jetbrains.kotlin.fir.resolve.transformers.firUnsafe
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
|
|||||||
+2
-1
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
|
|||||||
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
import org.jetbrains.kotlin.fir.java.FirLibrarySession
|
||||||
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -83,7 +84,7 @@ abstract class AbstractFirDiagnosticsSmokeTest : BaseDiagnosticsTest() {
|
|||||||
ktFiles.mapTo(firFiles) {
|
ktFiles.mapTo(firFiles) {
|
||||||
val firFile = firBuilder.buildFirFile(it)
|
val firFile = firBuilder.buildFirFile(it)
|
||||||
|
|
||||||
(session.service<FirProvider>() as FirProviderImpl).recordFile(firFile)
|
(session.firProvider as FirProviderImpl).recordFile(firFile)
|
||||||
|
|
||||||
firFile
|
firFile
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir
|
|||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||||
import org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.compileKotlinToDirAndGetModule
|
import org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.compileKotlinToDirAndGetModule
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
@@ -58,7 +58,7 @@ abstract class AbstractFirLoadCompiledKotlin : AbstractFirResolveWithSessionTest
|
|||||||
packageFqName: FqName,
|
packageFqName: FqName,
|
||||||
testDataPath: String
|
testDataPath: String
|
||||||
) {
|
) {
|
||||||
val provider = session.getService(FirSymbolProvider::class)
|
val provider = session.firSymbolProvider
|
||||||
|
|
||||||
val builder = StringBuilder()
|
val builder = StringBuilder()
|
||||||
val firRenderer = FirRenderer(builder)
|
val firRenderer = FirRenderer(builder)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
|||||||
import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM
|
import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM
|
||||||
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
@@ -36,7 +36,7 @@ abstract class AbstractFirResolveTestCase : AbstractFirResolveWithSessionTestCas
|
|||||||
val transformer = FirTotalResolveTransformer()
|
val transformer = FirTotalResolveTransformer()
|
||||||
return ktFiles.map {
|
return ktFiles.map {
|
||||||
val firFile = builder.buildFirFile(it)
|
val firFile = builder.buildFirFile(it)
|
||||||
(session.service<FirProvider>() as FirProviderImpl).recordFile(firFile)
|
(session.firProvider as FirProviderImpl).recordFile(firFile)
|
||||||
firFile
|
firFile
|
||||||
}.also {
|
}.also {
|
||||||
try {
|
try {
|
||||||
|
|||||||
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir
|
|||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
@@ -34,7 +34,7 @@ class BuiltInsDeserializationForFirTestCase : AbstractFirResolveWithSessionTestC
|
|||||||
|
|
||||||
private fun checkPackageContent(packageFqName: FqName) {
|
private fun checkPackageContent(packageFqName: FqName) {
|
||||||
val session = createSession(environment, GlobalSearchScope.allScope(project))
|
val session = createSession(environment, GlobalSearchScope.allScope(project))
|
||||||
val provider = session.getService(FirSymbolProvider::class)
|
val provider = session.firSymbolProvider
|
||||||
|
|
||||||
val builder = StringBuilder()
|
val builder = StringBuilder()
|
||||||
val firRenderer = FirRenderer(builder)
|
val firRenderer = FirRenderer(builder)
|
||||||
|
|||||||
@@ -8,16 +8,13 @@ import com.intellij.openapi.fileEditor.FileDocumentManager
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitorVoid
|
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitorVoid
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.sumByLong
|
import org.jetbrains.kotlin.utils.addToStdlib.sumByLong
|
||||||
@@ -29,7 +26,7 @@ import kotlin.system.measureNanoTime
|
|||||||
|
|
||||||
fun checkFirProvidersConsistency(firFiles: List<FirFile>) {
|
fun checkFirProvidersConsistency(firFiles: List<FirFile>) {
|
||||||
for ((session, files) in firFiles.groupBy { it.fileSession }) {
|
for ((session, files) in firFiles.groupBy { it.fileSession }) {
|
||||||
val provider = session.service<FirProvider>() as FirProviderImpl
|
val provider = session.firProvider as FirProviderImpl
|
||||||
provider.ensureConsistent(files)
|
provider.ensureConsistent(files)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -101,7 +98,7 @@ class FirResolveBench(val withProgress: Boolean) {
|
|||||||
var firFile: FirFile? = null
|
var firFile: FirFile? = null
|
||||||
val time = measureNanoTime {
|
val time = measureNanoTime {
|
||||||
firFile = builder.buildFirFile(file)
|
firFile = builder.buildFirFile(file)
|
||||||
(builder.session.service<FirProvider>() as FirProviderImpl).recordFile(firFile!!)
|
(builder.session.firProvider as FirProviderImpl).recordFile(firFile!!)
|
||||||
}
|
}
|
||||||
val after = vmStateSnapshot()
|
val after = vmStateSnapshot()
|
||||||
val diff = after - before
|
val diff = after - before
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import com.intellij.testFramework.TestDataPath
|
|||||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||||
@@ -72,7 +72,7 @@ class FirResolveTestTotalKotlin : AbstractFirResolveWithSessionTestCase() {
|
|||||||
val totalTransformer = FirTotalResolveTransformer()
|
val totalTransformer = FirTotalResolveTransformer()
|
||||||
val firFiles = ktFiles.toList().progress("Loading FIR").map {
|
val firFiles = ktFiles.toList().progress("Loading FIR").map {
|
||||||
val firFile = builder.buildFirFile(it)
|
val firFile = builder.buildFirFile(it)
|
||||||
(session.service<FirProvider>() as FirProviderImpl).recordFile(firFile)
|
(session.firProvider as FirProviderImpl).recordFile(firFile)
|
||||||
firFile
|
firFile
|
||||||
}.toList()
|
}.toList()
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.expressions.*
|
|||||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.directExpansionType
|
import org.jetbrains.kotlin.fir.resolve.directExpansionType
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.firUnsafe
|
import org.jetbrains.kotlin.fir.resolve.transformers.firUnsafe
|
||||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
@@ -279,7 +280,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
|
|||||||
inner class FirRenderer : FirVisitor<Unit, StringBuilder>() {
|
inner class FirRenderer : FirVisitor<Unit, StringBuilder>() {
|
||||||
private val session = firFile.session
|
private val session = firFile.session
|
||||||
private val filePackage = firFile.packageFqName.toString().replace(".", "/")
|
private val filePackage = firFile.packageFqName.toString().replace(".", "/")
|
||||||
private val symbolProvider = firFile.session.getService(FirSymbolProvider::class)
|
private val symbolProvider = firFile.session.firSymbolProvider
|
||||||
|
|
||||||
private fun removeCurrentFilePackage(fqName: String): String {
|
private fun removeCurrentFilePackage(fqName: String): String {
|
||||||
return if (fqName.startsWith(filePackage) && !fqName.substring(filePackage.length + 1).contains("/")) {
|
return if (fqName.startsWith(filePackage) && !fqName.substring(filePackage.length + 1).contains("/")) {
|
||||||
|
|||||||
+2
-3
@@ -15,10 +15,9 @@ import org.jetbrains.kotlin.compiler.visualizer.FirVisualizer
|
|||||||
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
||||||
import org.jetbrains.kotlin.fir.createSession
|
import org.jetbrains.kotlin.fir.createSession
|
||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.jetbrains.kotlin.visualizer.AbstractVisualizer
|
import org.jetbrains.kotlin.visualizer.AbstractVisualizer
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
@@ -40,7 +39,7 @@ abstract class AbstractFirVisualizer : AbstractVisualizer() {
|
|||||||
val transformer = FirTotalResolveTransformer()
|
val transformer = FirTotalResolveTransformer()
|
||||||
val firFiles = ktFiles.map {
|
val firFiles = ktFiles.map {
|
||||||
val firFile = builder.buildFirFile(it)
|
val firFile = builder.buildFirFile(it)
|
||||||
(session.service<FirProvider>() as FirProviderImpl).recordFile(firFile)
|
(session.firProvider as FirProviderImpl).recordFile(firFile)
|
||||||
firFile
|
firFile
|
||||||
}.also {
|
}.also {
|
||||||
try {
|
try {
|
||||||
|
|||||||
+2
-2
@@ -14,9 +14,9 @@ import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
|
|||||||
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirCompositeSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.impl.FirCompositeSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirDependenciesSymbolProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.impl.FirDependenciesSymbolProviderImpl
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.types.FirCorrespondingSupertypesCache
|
import org.jetbrains.kotlin.fir.types.FirCorrespondingSupertypesCache
|
||||||
|
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ class FirIdeJavaModuleBasedSession(
|
|||||||
FirSymbolProvider::class,
|
FirSymbolProvider::class,
|
||||||
FirCompositeSymbolProvider(
|
FirCompositeSymbolProvider(
|
||||||
listOf(
|
listOf(
|
||||||
service<FirProvider>(),
|
firProvider,
|
||||||
JavaSymbolProvider(this, sessionProvider.project, scope),
|
JavaSymbolProvider(this, sessionProvider.project, scope),
|
||||||
dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this)
|
dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -23,15 +23,14 @@ import org.jetbrains.kotlin.fir.java.JavaSymbolProvider
|
|||||||
import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass
|
import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass
|
||||||
import org.jetbrains.kotlin.fir.java.declarations.FirJavaMethod
|
import org.jetbrains.kotlin.fir.java.declarations.FirJavaMethod
|
||||||
import org.jetbrains.kotlin.fir.java.scopes.JavaClassEnhancementScope
|
import org.jetbrains.kotlin.fir.java.scopes.JavaClassEnhancementScope
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirProvider
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirCompositeSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.impl.FirCompositeSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirCompositeScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirCompositeScope
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
||||||
import org.jetbrains.kotlin.idea.caches.project.isLibraryClasses
|
import org.jetbrains.kotlin.idea.caches.project.isLibraryClasses
|
||||||
@@ -103,7 +102,7 @@ abstract class AbstractFirMultiModuleResolveTest : AbstractMultiModuleTest() {
|
|||||||
files.forEach {
|
files.forEach {
|
||||||
val file = psiManager.findFile(it) as? KtFile ?: return@forEach
|
val file = psiManager.findFile(it) as? KtFile ?: return@forEach
|
||||||
val firFile = builder.buildFirFile(file)
|
val firFile = builder.buildFirFile(file)
|
||||||
(session.service<FirProvider>() as FirProviderImpl).recordFile(firFile)
|
(session.firProvider as FirProviderImpl).recordFile(firFile)
|
||||||
firFiles += firFile
|
firFiles += firFile
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -132,7 +131,7 @@ abstract class AbstractFirMultiModuleResolveTest : AbstractMultiModuleTest() {
|
|||||||
val javaFirDump = StringBuilder().also { builder ->
|
val javaFirDump = StringBuilder().also { builder ->
|
||||||
val renderer = FirRenderer(builder)
|
val renderer = FirRenderer(builder)
|
||||||
for (session in sessions) {
|
for (session in sessions) {
|
||||||
val symbolProvider = session.service<FirSymbolProvider>() as FirCompositeSymbolProvider
|
val symbolProvider = session.firSymbolProvider as FirCompositeSymbolProvider
|
||||||
val javaProvider = symbolProvider.providers.filterIsInstance<JavaSymbolProvider>().first()
|
val javaProvider = symbolProvider.providers.filterIsInstance<JavaSymbolProvider>().first()
|
||||||
for (javaClass in javaProvider.getJavaTopLevelClasses().sortedBy { it.name }) {
|
for (javaClass in javaProvider.getJavaTopLevelClasses().sortedBy { it.name }) {
|
||||||
if (javaClass !is FirJavaClass || javaClass in processedJavaClasses) continue
|
if (javaClass !is FirJavaClass || javaClass in processedJavaClasses) continue
|
||||||
@@ -159,7 +158,7 @@ abstract class AbstractFirMultiModuleResolveTest : AbstractMultiModuleTest() {
|
|||||||
} else {
|
} else {
|
||||||
enhancementScope.processFunctionsByName(declaration.name) { symbol ->
|
enhancementScope.processFunctionsByName(declaration.name) { symbol ->
|
||||||
val enhanced = symbol.fir
|
val enhanced = symbol.fir
|
||||||
if (enhanced != null && enhanced !in renderedDeclarations) {
|
if (enhanced !in renderedDeclarations) {
|
||||||
enhanced.accept(renderer, null)
|
enhanced.accept(renderer, null)
|
||||||
renderer.newLine()
|
renderer.newLine()
|
||||||
renderedDeclarations += enhanced
|
renderedDeclarations += enhanced
|
||||||
|
|||||||
Reference in New Issue
Block a user