[FIR] Fix ambiguity of Throws and other std annotations importing

Including `SharedImmutable` and `ThreadLocal`

Simplify code, remove `DefaultImportPriority.KOTLIN_THROWS`

Introduce `FirNativeClassMapper`
This commit is contained in:
Ivan Kochurkin
2023-11-14 17:22:13 +01:00
committed by Space Team
parent adf4f823ae
commit 115d685d91
151 changed files with 656 additions and 931 deletions
+1
View File
@@ -7,6 +7,7 @@ dependencies {
api(project(":core:descriptors.jvm"))
api(project(":compiler:frontend.java"))
api(project(":compiler:fir:java"))
api(project(":compiler:fir:native"))
api(project(":compiler:fir:raw-fir:psi2fir"))
api(project(":compiler:fir:raw-fir:light-tree2fir"))
api(project(":compiler:fir:fir2ir"))
@@ -9,12 +9,15 @@ import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.fir.BinaryModuleData
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.SessionConfiguration
import org.jetbrains.kotlin.fir.backend.native.FirNativeClassMapper
import org.jetbrains.kotlin.fir.checkers.registerNativeCheckers
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirBuiltinSyntheticFunctionInterfaceProvider
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.fir.scopes.FirPlatformClassMapper
import org.jetbrains.kotlin.fir.session.FirSessionFactoryHelper.registerDefaultComponents
import org.jetbrains.kotlin.library.isNativeStdlib
import org.jetbrains.kotlin.library.metadata.impl.KlibResolvedModuleDescriptorsFactoryImpl.Companion.FORWARD_DECLARATIONS_MODULE_NAME
@@ -22,6 +25,7 @@ import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary
import org.jetbrains.kotlin.name.Name
object FirNativeSessionFactory : FirAbstractSessionFactory() {
@OptIn(SessionConfiguration::class)
fun createLibrarySession(
mainModuleName: Name,
resolvedLibraries: List<KotlinResolvedLibrary>,
@@ -39,6 +43,7 @@ object FirNativeSessionFactory : FirAbstractSessionFactory() {
extensionRegistrars,
registerExtraComponents = { session ->
session.registerDefaultComponents()
session.register(FirPlatformClassMapper::class, FirNativeClassMapper())
registerExtraComponents(session)
},
createKotlinScopeProvider = { FirKotlinScopeProvider() },
@@ -64,6 +69,7 @@ object FirNativeSessionFactory : FirAbstractSessionFactory() {
})
}
@OptIn(SessionConfiguration::class)
fun createModuleBasedSession(
moduleData: FirModuleData,
sessionProvider: FirProjectSessionProvider,
@@ -83,6 +89,7 @@ object FirNativeSessionFactory : FirAbstractSessionFactory() {
init,
registerExtraComponents = {
it.registerDefaultComponents()
it.register(FirPlatformClassMapper::class, FirNativeClassMapper())
registerExtraComponents(it)
},
registerExtraCheckers = { it.registerNativeCheckers() },