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
+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) {
|
||||
|
||||
Reference in New Issue
Block a user