FIR2IR: don't create a new symbol table for conversion with dependents
This commit is contained in:
committed by
Space Team
parent
52a3ba6aae
commit
6b7a5c9aa0
@@ -449,9 +449,11 @@ class Fir2IrConverter(
|
|||||||
kotlinBuiltIns, dependentComponents
|
kotlinBuiltIns, dependentComponents
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val signatureComposer = FirBasedSignatureComposer(mangler, dependentComposers = dependentComponents.map { it.signatureComposer as FirBasedSignatureComposer })
|
val signatureComposer = FirBasedSignatureComposer(
|
||||||
val wrappedSignaturer = WrappedDescriptorSignatureComposer(signaturer, signatureComposer)
|
mangler,
|
||||||
val symbolTable = SymbolTable(wrappedSignaturer, irFactory, dependentTables = dependentComponents.map { it.symbolTable })
|
dependentComposers = dependentComponents.map { it.signatureComposer as FirBasedSignatureComposer }
|
||||||
|
)
|
||||||
|
val symbolTable = createSymbolTable(signaturer, signatureComposer, irFactory, dependentComponents)
|
||||||
return createModuleFragmentWithSymbolTable(
|
return createModuleFragmentWithSymbolTable(
|
||||||
session, scopeSession, firFiles, languageVersionSettings,
|
session, scopeSession, firFiles, languageVersionSettings,
|
||||||
fir2IrExtensions, irMangler, irFactory, visibilityConverter,
|
fir2IrExtensions, irMangler, irFactory, visibilityConverter,
|
||||||
@@ -477,7 +479,7 @@ class Fir2IrConverter(
|
|||||||
): Fir2IrResult {
|
): Fir2IrResult {
|
||||||
val signatureComposer = FirBasedSignatureComposer(mangler, dependentComposers = dependentComponents.map { it.signatureComposer as FirBasedSignatureComposer })
|
val signatureComposer = FirBasedSignatureComposer(mangler, dependentComposers = dependentComponents.map { it.signatureComposer as FirBasedSignatureComposer })
|
||||||
val signaturer = DescriptorSignatureComposerStub()
|
val signaturer = DescriptorSignatureComposerStub()
|
||||||
val symbolTable = SymbolTable(signaturer, irFactory, dependentTables = dependentComponents.map { it.symbolTable })
|
val symbolTable = createSymbolTable(signaturer, signatureComposer, irFactory, dependentComponents)
|
||||||
return createModuleFragmentWithSymbolTable(
|
return createModuleFragmentWithSymbolTable(
|
||||||
session, scopeSession, firFiles, languageVersionSettings,
|
session, scopeSession, firFiles, languageVersionSettings,
|
||||||
fir2IrExtensions, irMangler, irFactory, visibilityConverter,
|
fir2IrExtensions, irMangler, irFactory, visibilityConverter,
|
||||||
@@ -486,6 +488,18 @@ class Fir2IrConverter(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun createSymbolTable(
|
||||||
|
signaturer: IdSignatureComposer,
|
||||||
|
signatureComposer: FirBasedSignatureComposer,
|
||||||
|
irFactory: IrFactory,
|
||||||
|
dependentComponents: List<Fir2IrComponents>
|
||||||
|
): SymbolTable =
|
||||||
|
dependentComponents.lastOrNull()?.symbolTable ?: SymbolTable(
|
||||||
|
signaturer = WrappedDescriptorSignatureComposer(signaturer, signatureComposer),
|
||||||
|
irFactory = irFactory,
|
||||||
|
dependentTables = dependentComponents.map { it.symbolTable }
|
||||||
|
)
|
||||||
|
|
||||||
private fun createModuleFragmentWithSymbolTable(
|
private fun createModuleFragmentWithSymbolTable(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
scopeSession: ScopeSession,
|
scopeSession: ScopeSession,
|
||||||
|
|||||||
Reference in New Issue
Block a user