[LL FIR] simplify common library symbol provider
createCommonLibrarySymbolProvider is simplified to avoid module clashes and extra search ^KTIJ-27159 ^KT-58325
This commit is contained in:
committed by
Space Team
parent
79303ab2db
commit
5ebef0dfd1
+9
-11
@@ -46,17 +46,15 @@ class LLStubBasedLibrarySymbolProviderFactory(private val project: Project) : LL
|
||||
moduleDataProvider: SingleModuleDataProvider,
|
||||
packagePartProvider: PackagePartProvider,
|
||||
scope: GlobalSearchScope,
|
||||
): List<FirSymbolProvider> {
|
||||
return buildList {
|
||||
add(createStubBasedFirSymbolProviderForCommonMetadataFiles(project, scope, session, moduleDataProvider, kotlinScopeProvider))
|
||||
add(
|
||||
// klib metadata symbol provider
|
||||
createStubBasedFirSymbolProviderForKotlinNativeMetadataFiles(
|
||||
project, scope, session, moduleDataProvider, kotlinScopeProvider
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
): List<FirSymbolProvider> = listOf(
|
||||
createStubBasedFirSymbolProviderForCommonMetadataFiles(
|
||||
project = project,
|
||||
baseScope = scope,
|
||||
session = session,
|
||||
moduleDataProvider = moduleDataProvider,
|
||||
kotlinScopeProvider = kotlinScopeProvider,
|
||||
)
|
||||
)
|
||||
|
||||
override fun createNativeLibrarySymbolProvider(
|
||||
session: FirSession,
|
||||
|
||||
+8
-2
@@ -10,13 +10,13 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.search.DelegatingGlobalSearchScope
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinBuiltInFileType
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||
import org.jetbrains.kotlin.library.KLIB_METADATA_FILE_EXTENSION
|
||||
import org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragment
|
||||
import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol
|
||||
|
||||
internal fun createStubBasedFirSymbolProviderForClassFiles(
|
||||
@@ -41,7 +41,13 @@ internal fun createStubBasedFirSymbolProviderForCommonMetadataFiles(
|
||||
kotlinScopeProvider: FirKotlinScopeProvider,
|
||||
): FirSymbolProvider = createStubBasedFirSymbolProviderForScopeLimitedByFiles(
|
||||
project, baseScope, session, moduleDataProvider, kotlinScopeProvider,
|
||||
fileFilter = { file -> file.fileType == KotlinBuiltInFileType },
|
||||
fileFilter = { file ->
|
||||
val extension = file.extension
|
||||
extension == BuiltInSerializerProtocol.BUILTINS_FILE_EXTENSION ||
|
||||
extension == MetadataPackageFragment.METADATA_FILE_EXTENSION ||
|
||||
// klib metadata symbol provider
|
||||
extension == KLIB_METADATA_FILE_EXTENSION
|
||||
},
|
||||
)
|
||||
|
||||
internal fun createStubBasedFirSymbolProviderForKotlinNativeMetadataFiles(
|
||||
|
||||
Reference in New Issue
Block a user