IR: pass DescriptorByIdSignatureFinder as parameter to DeclarationStubGeneratorimpl
This breaks dependency between serialization.common and psi2ir modules.
This commit is contained in:
committed by
TeamCityServer
parent
3f91674090
commit
6a3a375372
@@ -16,6 +16,7 @@ dependencies {
|
||||
compileOnly(project(":compiler:ir.tree"))
|
||||
compileOnly(project(":compiler:ir.psi2ir"))
|
||||
compileOnly(project(":compiler:ir.backend.common"))
|
||||
compileOnly(project(":compiler:ir.serialization.common"))
|
||||
|
||||
compileOnly(intellijCore())
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.backend
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
|
||||
import org.jetbrains.kotlin.backend.common.ir.BuiltinSymbolsBase
|
||||
import org.jetbrains.kotlin.backend.common.serialization.DescriptorByIdSignatureFinderImpl
|
||||
import org.jetbrains.kotlin.config.AnalysisFlags
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
@@ -62,6 +63,7 @@ class Fir2IrConverter(
|
||||
irGenerationExtensions: Collection<IrGenerationExtension>,
|
||||
fir2irVisitor: Fir2IrVisitor,
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
descriptorMangler: KotlinMangler.DescriptorMangler,
|
||||
extensions: StubGeneratorExtensions,
|
||||
) {
|
||||
for (firFile in allFirFiles) {
|
||||
@@ -69,7 +71,11 @@ class Fir2IrConverter(
|
||||
}
|
||||
|
||||
val irProviders =
|
||||
generateTypicalIrProviderList(irModuleFragment.descriptor, irBuiltIns, symbolTable, extensions = extensions)
|
||||
generateTypicalIrProviderList(
|
||||
irModuleFragment.descriptor, irBuiltIns, symbolTable,
|
||||
descriptorFinder = DescriptorByIdSignatureFinderImpl(irModuleFragment.descriptor, descriptorMangler),
|
||||
extensions = extensions
|
||||
)
|
||||
val externalDependenciesGenerator = ExternalDependenciesGenerator(
|
||||
symbolTable,
|
||||
irProviders
|
||||
@@ -460,7 +466,8 @@ class Fir2IrConverter(
|
||||
}
|
||||
|
||||
converter.runSourcesConversion(
|
||||
allFirFiles, irModuleFragment, irGenerationExtensions, fir2irVisitor, languageVersionSettings, generatorExtensions
|
||||
allFirFiles, irModuleFragment, irGenerationExtensions, fir2irVisitor, languageVersionSettings,
|
||||
descriptorMangler, generatorExtensions
|
||||
)
|
||||
|
||||
return Fir2IrResult(irModuleFragment, symbolTable, components)
|
||||
|
||||
+6
-6
@@ -8,10 +8,8 @@ package org.jetbrains.kotlin.backend.jvm
|
||||
import org.jetbrains.kotlin.analyzer.hasJdkCapability
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContextImpl
|
||||
import org.jetbrains.kotlin.backend.common.phaser.CompilerPhase
|
||||
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
|
||||
import org.jetbrains.kotlin.backend.common.phaser.invokeToplevel
|
||||
import org.jetbrains.kotlin.backend.common.phaser.then
|
||||
import org.jetbrains.kotlin.backend.common.phaser.*
|
||||
import org.jetbrains.kotlin.backend.common.serialization.DescriptorByIdSignatureFinderImpl
|
||||
import org.jetbrains.kotlin.backend.jvm.intrinsics.IrIntrinsicMethods
|
||||
import org.jetbrains.kotlin.backend.jvm.ir.getKtFile
|
||||
import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor
|
||||
@@ -95,7 +93,9 @@ open class JvmIrCodegenFactory(
|
||||
|
||||
val stubGenerator =
|
||||
DeclarationStubGeneratorImpl(
|
||||
psi2irContext.moduleDescriptor, symbolTable, psi2irContext.irBuiltIns, mangler, jvmGeneratorExtensions
|
||||
psi2irContext.moduleDescriptor, symbolTable, psi2irContext.irBuiltIns,
|
||||
DescriptorByIdSignatureFinderImpl(psi2irContext.moduleDescriptor, mangler),
|
||||
jvmGeneratorExtensions
|
||||
)
|
||||
val frontEndContext = object : TranslationPluginContext {
|
||||
override val moduleDescriptor: ModuleDescriptor
|
||||
@@ -290,7 +290,7 @@ open class JvmIrCodegenFactory(
|
||||
): List<IrProvider> {
|
||||
return generateTypicalIrProviderList(
|
||||
irModuleFragment.descriptor, irModuleFragment.irBuiltins, symbolTable,
|
||||
JvmDescriptorMangler(null),
|
||||
DescriptorByIdSignatureFinderImpl(irModuleFragment.descriptor, JvmDescriptorMangler(null)),
|
||||
extensions = extensions
|
||||
)
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ dependencies {
|
||||
api(project(":compiler:frontend"))
|
||||
api(project(":compiler:backend-common"))
|
||||
api(project(":compiler:ir.tree"))
|
||||
api(project(":compiler:ir.serialization.common"))
|
||||
compileOnly(intellijCore())
|
||||
}
|
||||
|
||||
|
||||
+3
-10
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.psi2ir.generators
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.serialization.DescriptorByIdSignatureFinderImpl
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.NotFoundClasses
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
@@ -21,7 +20,7 @@ class DeclarationStubGeneratorImpl(
|
||||
moduleDescriptor: ModuleDescriptor,
|
||||
symbolTable: SymbolTable,
|
||||
irBuiltins: IrBuiltIns,
|
||||
mangler: KotlinMangler.DescriptorMangler,
|
||||
override val descriptorFinder: DescriptorByIdSignatureFinder,
|
||||
extensions: StubGeneratorExtensions = StubGeneratorExtensions.EMPTY,
|
||||
) : DeclarationStubGenerator(moduleDescriptor, symbolTable, irBuiltins, extensions) {
|
||||
override val typeTranslator: TypeTranslator =
|
||||
@@ -33,12 +32,6 @@ class DeclarationStubGeneratorImpl(
|
||||
true,
|
||||
extensions
|
||||
)
|
||||
|
||||
override val descriptorFinder: DescriptorByIdSignatureFinder = DescriptorByIdSignatureFinderImpl(
|
||||
moduleDescriptor,
|
||||
mangler,
|
||||
DescriptorByIdSignatureFinderImpl.LookupMode.MODULE_WITH_DEPENDENCIES
|
||||
)
|
||||
}
|
||||
|
||||
// In most cases, IrProviders list consist of an optional deserializer and a DeclarationStubGenerator.
|
||||
@@ -46,12 +39,12 @@ fun generateTypicalIrProviderList(
|
||||
moduleDescriptor: ModuleDescriptor,
|
||||
irBuiltins: IrBuiltIns,
|
||||
symbolTable: SymbolTable,
|
||||
mangler: KotlinMangler.DescriptorMangler,
|
||||
descriptorFinder: DescriptorByIdSignatureFinder,
|
||||
deserializer: IrDeserializer? = null,
|
||||
extensions: StubGeneratorExtensions = StubGeneratorExtensions.EMPTY
|
||||
): List<IrProvider> {
|
||||
val stubGenerator = DeclarationStubGeneratorImpl(
|
||||
moduleDescriptor, symbolTable, irBuiltins, mangler, extensions
|
||||
moduleDescriptor, symbolTable, irBuiltins, descriptorFinder, extensions
|
||||
)
|
||||
return listOfNotNull(deserializer, stubGenerator)
|
||||
}
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.utils.addIfNotNull
|
||||
class DescriptorByIdSignatureFinderImpl(
|
||||
private val moduleDescriptor: ModuleDescriptor,
|
||||
private val mangler: KotlinMangler.DescriptorMangler,
|
||||
private val lookupMode: LookupMode
|
||||
private val lookupMode: LookupMode = LookupMode.MODULE_WITH_DEPENDENCIES,
|
||||
) : DescriptorByIdSignatureFinder {
|
||||
init {
|
||||
assert(lookupMode != LookupMode.MODULE_ONLY || moduleDescriptor is ModuleDescriptorImpl) {
|
||||
|
||||
+2
-1
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.test.backend.handlers
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.serialization.DescriptorByIdSignatureFinderImpl
|
||||
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.findClassAcrossModuleDependencies
|
||||
@@ -89,7 +90,7 @@ class IrTextDumpHandler(testServices: TestServices) : AbstractIrHandler(testServ
|
||||
irModule.descriptor,
|
||||
SymbolTable(signaturer, IrFactoryImpl), // TODO
|
||||
irModule.irBuiltins,
|
||||
mangler,
|
||||
DescriptorByIdSignatureFinderImpl(irModule.descriptor, mangler)
|
||||
)
|
||||
|
||||
val baseFile = testServices.moduleStructure.originalTestDataFiles.first()
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.kotlin.ir
|
||||
|
||||
import org.jetbrains.kotlin.analyzer.AnalysisResult
|
||||
import org.jetbrains.kotlin.backend.common.serialization.DescriptorByIdSignatureFinderImpl
|
||||
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureDescriptor
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmGeneratorExtensionsImpl
|
||||
import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor
|
||||
@@ -169,8 +170,8 @@ abstract class AbstractIrGeneratorTestCase : CodegenTestCase() {
|
||||
)
|
||||
val irProviders = generateTypicalIrProviderList(
|
||||
moduleDescriptor, context.irBuiltIns, context.symbolTable,
|
||||
DescriptorByIdSignatureFinderImpl(moduleDescriptor, JsManglerDesc),
|
||||
extensions = generatorExtensions,
|
||||
mangler = JsManglerDesc,
|
||||
)
|
||||
return psi2ir.generateModuleFragment(context, ktFilesToAnalyze, irProviders, emptyList())
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir
|
||||
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import junit.framework.TestCase
|
||||
import org.jetbrains.kotlin.backend.common.serialization.DescriptorByIdSignatureFinderImpl
|
||||
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureDescriptor
|
||||
import org.jetbrains.kotlin.cli.js.loadPluginsForTests
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
@@ -58,7 +59,7 @@ abstract class AbstractIrTextTestCase : AbstractIrGeneratorTestCase() {
|
||||
irModule.descriptor,
|
||||
SymbolTable(signaturer, IrFactoryImpl), // TODO
|
||||
irModule.irBuiltins,
|
||||
mangler,
|
||||
DescriptorByIdSignatureFinderImpl(irModule.descriptor, mangler)
|
||||
)
|
||||
|
||||
val path = wholeFile.path
|
||||
|
||||
+2
-1
@@ -3,6 +3,7 @@ package org.jetbrains.kotlin.backend.konan
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContextImpl
|
||||
import org.jetbrains.kotlin.backend.common.overrides.FakeOverrideChecker
|
||||
import org.jetbrains.kotlin.backend.common.serialization.DescriptorByIdSignatureFinderImpl
|
||||
import org.jetbrains.kotlin.backend.common.serialization.mangle.ManglerChecker
|
||||
import org.jetbrains.kotlin.backend.common.serialization.mangle.descriptor.Ir2DescriptorManglerAdapter
|
||||
import org.jetbrains.kotlin.backend.konan.descriptors.isForwardDeclarationModule
|
||||
@@ -59,7 +60,7 @@ internal fun Context.psiToIr(
|
||||
val stubGenerator = DeclarationStubGeneratorImpl(
|
||||
moduleDescriptor, symbolTable,
|
||||
generatorContext.irBuiltIns,
|
||||
KonanManglerDesc
|
||||
DescriptorByIdSignatureFinderImpl(moduleDescriptor, KonanManglerDesc),
|
||||
)
|
||||
val irBuiltInsOverDescriptors = generatorContext.irBuiltIns as IrBuiltInsOverDescriptors
|
||||
val functionIrClassFactory: KonanIrAbstractDescriptorBasedFunctionFactory =
|
||||
|
||||
+6
-4
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.scripting.js
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.serialization.DescriptorByIdSignatureFinderImpl
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.common.environment.setIdeaIoUseFallback
|
||||
import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
|
||||
@@ -17,8 +18,8 @@ import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext
|
||||
import org.jetbrains.kotlin.ir.backend.js.generateJsCode
|
||||
import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsManglerDesc
|
||||
import org.jetbrains.kotlin.ir.backend.js.utils.NameTables
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmDescriptorMangler
|
||||
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||
import org.jetbrains.kotlin.ir.declarations.IrScript
|
||||
import org.jetbrains.kotlin.ir.symbols.IrScriptSymbol
|
||||
@@ -74,9 +75,10 @@ class JsCoreScriptingCompiler(
|
||||
override fun getPreviousScripts() = replCompilerState.history.map { it.item.scriptSymbol }
|
||||
}
|
||||
|
||||
val mangler = JvmDescriptorMangler(null)
|
||||
val psi2irContext = psi2ir.createGeneratorContext(module, bindingContext, symbolTable, generatorExtensions)
|
||||
val providers = generateTypicalIrProviderList(module, psi2irContext.irBuiltIns, psi2irContext.symbolTable, mangler)
|
||||
val providers = generateTypicalIrProviderList(
|
||||
module, psi2irContext.irBuiltIns, psi2irContext.symbolTable, DescriptorByIdSignatureFinderImpl(module, JsManglerDesc)
|
||||
)
|
||||
val irModuleFragment = psi2ir.generateModuleFragment(psi2irContext, files, providers, emptyList(), null) // TODO: deserializer
|
||||
|
||||
val context = JsIrBackendContext(
|
||||
@@ -95,7 +97,7 @@ class JsCoreScriptingCompiler(
|
||||
irModuleFragment.descriptor,
|
||||
psi2irContext.irBuiltIns,
|
||||
psi2irContext.symbolTable,
|
||||
mangler
|
||||
DescriptorByIdSignatureFinderImpl(irModuleFragment.descriptor, JsManglerDesc)
|
||||
)
|
||||
).generateUnboundSymbolsAsDependencies()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user