[PL] Support handling IR error types

This commit is contained in:
Dmitriy Dolovov
2023-04-16 17:00:30 +02:00
committed by Space Team
parent 161c3fccb6
commit 16da1af525
6 changed files with 50 additions and 9 deletions
@@ -28,6 +28,8 @@ import org.jetbrains.kotlin.ir.linkage.partial.partialLinkageConfig
import org.jetbrains.kotlin.ir.util.ExternalDependenciesGenerator
import org.jetbrains.kotlin.ir.util.SymbolTable
import org.jetbrains.kotlin.ir.util.irMessageLogger
import org.jetbrains.kotlin.js.config.ErrorTolerancePolicy
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
import org.jetbrains.kotlin.library.KotlinLibrary
import org.jetbrains.kotlin.library.uniqueName
import org.jetbrains.kotlin.library.unresolvedDependencies
@@ -108,6 +110,7 @@ internal class JsIrLinkerLoader(
val symbolTable = SymbolTable(signaturer, irFactory)
val moduleDescriptor = loadedModules.keys.last()
val typeTranslator = TypeTranslatorImpl(symbolTable, compilerConfiguration.languageVersionSettings, moduleDescriptor)
val errorPolicy = compilerConfiguration[JSConfigurationKeys.ERROR_TOLERANCE_POLICY] ?: ErrorTolerancePolicy.DEFAULT
val irBuiltIns = IrBuiltInsOverDescriptors(moduleDescriptor.builtIns, typeTranslator, symbolTable)
val messageLogger = compilerConfiguration.irMessageLogger
val linker = JsIrLinker(
@@ -115,7 +118,12 @@ internal class JsIrLinkerLoader(
messageLogger = messageLogger,
builtIns = irBuiltIns,
symbolTable = symbolTable,
partialLinkageSupport = createPartialLinkageSupportForLinker(compilerConfiguration.partialLinkageConfig, irBuiltIns, messageLogger),
partialLinkageSupport = createPartialLinkageSupportForLinker(
partialLinkageConfig = compilerConfiguration.partialLinkageConfig,
allowErrorTypes = errorPolicy.allowErrors,
builtIns = irBuiltIns,
messageLogger = messageLogger
),
translationPluginContext = null,
friendModules = mapOf(mainLibrary.uniqueName to mainModuleFriends.map { it.uniqueName })
)