[LL FIR] introduce platform-aware LL FIR session factories
KT-58769
This commit is contained in:
committed by
Space Team
parent
e11f7daae4
commit
2a79643dcf
+3
-2
@@ -50,9 +50,10 @@ object FirNativeSessionFactory : FirAbstractSessionFactory() {
|
||||
).apply {
|
||||
bindSession(session)
|
||||
}
|
||||
val kotlinLibraries = resolvedLibraries.map { it.library }
|
||||
listOfNotNull(
|
||||
KlibBasedSymbolProvider(session, moduleDataProvider, kotlinScopeProvider, resolvedLibraries.map { it.library }),
|
||||
NativeForwardDeclarationsSymbolProvider(session, forwardDeclarationsModuleData, kotlinScopeProvider, resolvedLibraries),
|
||||
KlibBasedSymbolProvider(session, moduleDataProvider, kotlinScopeProvider, kotlinLibraries),
|
||||
NativeForwardDeclarationsSymbolProvider(session, forwardDeclarationsModuleData, kotlinScopeProvider, kotlinLibraries),
|
||||
FirBuiltinSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
|
||||
FirExtensionSyntheticFunctionInterfaceProvider.createIfNeeded(session, builtinsModuleData, kotlinScopeProvider),
|
||||
FirCloneableSymbolProvider(session, builtinsModuleData, kotlinScopeProvider),
|
||||
|
||||
+3
-4
@@ -24,10 +24,10 @@ import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.constructClassType
|
||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||
import org.jetbrains.kotlin.library.includedForwardDeclarations
|
||||
import org.jetbrains.kotlin.library.isInterop
|
||||
import org.jetbrains.kotlin.library.metadata.impl.ForwardDeclarationKind
|
||||
import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -36,7 +36,7 @@ class NativeForwardDeclarationsSymbolProvider(
|
||||
session: FirSession,
|
||||
private val forwardDeclarationsModuleData: FirModuleData,
|
||||
private val kotlinScopeProvider: FirKotlinScopeProvider,
|
||||
private val resolvedLibraries: Collection<KotlinResolvedLibrary>,
|
||||
private val kotlinLibraries: Collection<KotlinLibrary>,
|
||||
) : FirSymbolProvider(session) {
|
||||
private companion object {
|
||||
private val validPackages = ForwardDeclarationKind.packageFqNameToKind.keys
|
||||
@@ -44,8 +44,7 @@ class NativeForwardDeclarationsSymbolProvider(
|
||||
|
||||
private val includedForwardDeclarations: Set<ClassId> by lazy {
|
||||
buildSet {
|
||||
for (resolvedLibrary in resolvedLibraries) {
|
||||
val library = resolvedLibrary.library
|
||||
for (library in kotlinLibraries) {
|
||||
if (!library.isInterop) continue
|
||||
|
||||
for (fqName in library.includedForwardDeclarations) {
|
||||
|
||||
Reference in New Issue
Block a user