IR: only require all type parameter references to be local with new inference

This commit is contained in:
Georgy Bronnikov
2020-04-05 12:47:26 +03:00
parent 08ff52bee4
commit 166b506f63
10 changed files with 35 additions and 16 deletions
@@ -83,7 +83,8 @@ class JsCoreScriptingCompiler(
irModuleFragment.descriptor,
psi2irContext.irBuiltIns,
psi2irContext.symbolTable
)
),
environment.configuration.languageVersionSettings
).generateUnboundSymbolsAsDependencies()
environment.configuration.put(JSConfigurationKeys.MODULE_KIND, ModuleKind.PLAIN)
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureDe
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.config.languageVersionSettings
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
@@ -54,7 +55,8 @@ class JsScriptDependencyCompiler(
val irDependencies = dependencies.map { jsLinker.deserializeFullModule(it) }
val irProviders = generateTypicalIrProviderList(moduleDescriptor, irBuiltIns, symbolTable, deserializer = jsLinker)
ExternalDependenciesGenerator(symbolTable, irProviders).generateUnboundSymbolsAsDependencies()
ExternalDependenciesGenerator(symbolTable, irProviders, configuration.languageVersionSettings)
.generateUnboundSymbolsAsDependencies()
moduleFragment.patchDeclarationParents()
val backendContext = JsIrBackendContext(
@@ -67,7 +69,8 @@ class JsScriptDependencyCompiler(
true
)
ExternalDependenciesGenerator(symbolTable, irProviders).generateUnboundSymbolsAsDependencies()
ExternalDependenciesGenerator(symbolTable, irProviders, configuration.languageVersionSettings)
.generateUnboundSymbolsAsDependencies()
moduleFragment.patchDeclarationParents()
moduleFragment.files += irDependencies.flatMap { it.files }