[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,
|
moduleDataProvider: SingleModuleDataProvider,
|
||||||
packagePartProvider: PackagePartProvider,
|
packagePartProvider: PackagePartProvider,
|
||||||
scope: GlobalSearchScope,
|
scope: GlobalSearchScope,
|
||||||
): List<FirSymbolProvider> {
|
): List<FirSymbolProvider> = listOf(
|
||||||
return buildList {
|
createStubBasedFirSymbolProviderForCommonMetadataFiles(
|
||||||
add(createStubBasedFirSymbolProviderForCommonMetadataFiles(project, scope, session, moduleDataProvider, kotlinScopeProvider))
|
project = project,
|
||||||
add(
|
baseScope = scope,
|
||||||
// klib metadata symbol provider
|
session = session,
|
||||||
createStubBasedFirSymbolProviderForKotlinNativeMetadataFiles(
|
moduleDataProvider = moduleDataProvider,
|
||||||
project, scope, session, moduleDataProvider, kotlinScopeProvider
|
kotlinScopeProvider = kotlinScopeProvider,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun createNativeLibrarySymbolProvider(
|
override fun createNativeLibrarySymbolProvider(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
|
|||||||
+8
-2
@@ -10,13 +10,13 @@ import com.intellij.openapi.project.Project
|
|||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import com.intellij.psi.search.DelegatingGlobalSearchScope
|
import com.intellij.psi.search.DelegatingGlobalSearchScope
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
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.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.SingleModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||||
import org.jetbrains.kotlin.library.KLIB_METADATA_FILE_EXTENSION
|
import org.jetbrains.kotlin.library.KLIB_METADATA_FILE_EXTENSION
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragment
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol
|
import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol
|
||||||
|
|
||||||
internal fun createStubBasedFirSymbolProviderForClassFiles(
|
internal fun createStubBasedFirSymbolProviderForClassFiles(
|
||||||
@@ -41,7 +41,13 @@ internal fun createStubBasedFirSymbolProviderForCommonMetadataFiles(
|
|||||||
kotlinScopeProvider: FirKotlinScopeProvider,
|
kotlinScopeProvider: FirKotlinScopeProvider,
|
||||||
): FirSymbolProvider = createStubBasedFirSymbolProviderForScopeLimitedByFiles(
|
): FirSymbolProvider = createStubBasedFirSymbolProviderForScopeLimitedByFiles(
|
||||||
project, baseScope, session, moduleDataProvider, kotlinScopeProvider,
|
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(
|
internal fun createStubBasedFirSymbolProviderForKotlinNativeMetadataFiles(
|
||||||
|
|||||||
Reference in New Issue
Block a user