diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt index 566fd938a2f..cd8a25f6f19 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt @@ -449,9 +449,11 @@ class Fir2IrConverter( kotlinBuiltIns, dependentComponents ) } - val signatureComposer = FirBasedSignatureComposer(mangler, dependentComposers = dependentComponents.map { it.signatureComposer as FirBasedSignatureComposer }) - val wrappedSignaturer = WrappedDescriptorSignatureComposer(signaturer, signatureComposer) - val symbolTable = SymbolTable(wrappedSignaturer, irFactory, dependentTables = dependentComponents.map { it.symbolTable }) + val signatureComposer = FirBasedSignatureComposer( + mangler, + dependentComposers = dependentComponents.map { it.signatureComposer as FirBasedSignatureComposer } + ) + val symbolTable = createSymbolTable(signaturer, signatureComposer, irFactory, dependentComponents) return createModuleFragmentWithSymbolTable( session, scopeSession, firFiles, languageVersionSettings, fir2IrExtensions, irMangler, irFactory, visibilityConverter, @@ -477,7 +479,7 @@ class Fir2IrConverter( ): Fir2IrResult { val signatureComposer = FirBasedSignatureComposer(mangler, dependentComposers = dependentComponents.map { it.signatureComposer as FirBasedSignatureComposer }) val signaturer = DescriptorSignatureComposerStub() - val symbolTable = SymbolTable(signaturer, irFactory, dependentTables = dependentComponents.map { it.symbolTable }) + val symbolTable = createSymbolTable(signaturer, signatureComposer, irFactory, dependentComponents) return createModuleFragmentWithSymbolTable( session, scopeSession, firFiles, languageVersionSettings, fir2IrExtensions, irMangler, irFactory, visibilityConverter, @@ -486,6 +488,18 @@ class Fir2IrConverter( ) } + private fun createSymbolTable( + signaturer: IdSignatureComposer, + signatureComposer: FirBasedSignatureComposer, + irFactory: IrFactory, + dependentComponents: List + ): SymbolTable = + dependentComponents.lastOrNull()?.symbolTable ?: SymbolTable( + signaturer = WrappedDescriptorSignatureComposer(signaturer, signatureComposer), + irFactory = irFactory, + dependentTables = dependentComponents.map { it.symbolTable } + ) + private fun createModuleFragmentWithSymbolTable( session: FirSession, scopeSession: ScopeSession,