[FIR2IR] Use single IrBuiltInsOverFir for all MPP source modules
^KT-56229 Fixed
This commit is contained in:
committed by
Space Team
parent
001b11f285
commit
e601b01be2
+3
-1
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.AbstractFirAnalyzerFacade
|
|||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrExtensions
|
import org.jetbrains.kotlin.fir.backend.Fir2IrExtensions
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrResult
|
import org.jetbrains.kotlin.fir.backend.Fir2IrResult
|
||||||
|
import org.jetbrains.kotlin.fir.backend.IrBuiltInsOverFir
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.psi
|
import org.jetbrains.kotlin.fir.psi
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
@@ -43,7 +44,8 @@ class LowLevelFirAnalyzerFacade(
|
|||||||
fir2IrExtensions: Fir2IrExtensions,
|
fir2IrExtensions: Fir2IrExtensions,
|
||||||
signatureComposer: FirBasedSignatureComposer,
|
signatureComposer: FirBasedSignatureComposer,
|
||||||
symbolTable: SymbolTable,
|
symbolTable: SymbolTable,
|
||||||
dependentComponents: List<Fir2IrComponents>
|
dependentComponents: List<Fir2IrComponents>,
|
||||||
|
irBuiltIns: IrBuiltInsOverFir?
|
||||||
): Fir2IrResult = shouldNotBeCalled()
|
): Fir2IrResult = shouldNotBeCalled()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -600,7 +600,8 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
|
|||||||
kotlinBuiltIns = builtInsModule ?: DefaultBuiltIns.Instance, // TODO: consider passing externally
|
kotlinBuiltIns = builtInsModule ?: DefaultBuiltIns.Instance, // TODO: consider passing externally
|
||||||
signatureComposer = signatureComposer,
|
signatureComposer = signatureComposer,
|
||||||
symbolTable = symbolTable,
|
symbolTable = symbolTable,
|
||||||
dependentComponents = emptyList()
|
dependentComponents = emptyList(),
|
||||||
|
initializedIrBuiltIns = null
|
||||||
).also {
|
).also {
|
||||||
(it.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = librariesDescriptors }
|
(it.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = librariesDescriptors }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,7 @@ import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
|||||||
import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor
|
import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor
|
||||||
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
import org.jetbrains.kotlin.fir.backend.*
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConverter
|
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrExtensions
|
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrResult
|
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.Fir2IrJvmSpecialAnnotationSymbolProvider
|
import org.jetbrains.kotlin.fir.backend.jvm.Fir2IrJvmSpecialAnnotationSymbolProvider
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmVisibilityConverter
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmVisibilityConverter
|
||||||
@@ -57,7 +54,8 @@ fun FirResult.convertToIrAndActualize(
|
|||||||
linkViaSignatures = linkViaSignatures,
|
linkViaSignatures = linkViaSignatures,
|
||||||
signatureComposer = signatureComposer,
|
signatureComposer = signatureComposer,
|
||||||
symbolTable = symbolTable,
|
symbolTable = symbolTable,
|
||||||
dependentComponents = emptyList()
|
dependentComponents = emptyList(),
|
||||||
|
irBuiltIns = null
|
||||||
)
|
)
|
||||||
result = platformOutput.convertToIr(
|
result = platformOutput.convertToIr(
|
||||||
fir2IrExtensions,
|
fir2IrExtensions,
|
||||||
@@ -65,7 +63,8 @@ fun FirResult.convertToIrAndActualize(
|
|||||||
linkViaSignatures = linkViaSignatures,
|
linkViaSignatures = linkViaSignatures,
|
||||||
signatureComposer = signatureComposer,
|
signatureComposer = signatureComposer,
|
||||||
symbolTable = symbolTable,
|
symbolTable = symbolTable,
|
||||||
dependentComponents = listOf(commonIrOutput.components)
|
dependentComponents = listOf(commonIrOutput.components),
|
||||||
|
irBuiltIns = commonIrOutput.components.irBuiltIns
|
||||||
)
|
)
|
||||||
IrActualizer.actualize(
|
IrActualizer.actualize(
|
||||||
result.irModuleFragment,
|
result.irModuleFragment,
|
||||||
@@ -78,7 +77,8 @@ fun FirResult.convertToIrAndActualize(
|
|||||||
linkViaSignatures = linkViaSignatures,
|
linkViaSignatures = linkViaSignatures,
|
||||||
signatureComposer = signatureComposer,
|
signatureComposer = signatureComposer,
|
||||||
symbolTable = symbolTable,
|
symbolTable = symbolTable,
|
||||||
dependentComponents = emptyList()
|
dependentComponents = emptyList(),
|
||||||
|
irBuiltIns = null
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +91,8 @@ private fun ModuleCompilerAnalyzedOutput.convertToIr(
|
|||||||
linkViaSignatures: Boolean,
|
linkViaSignatures: Boolean,
|
||||||
signatureComposer: FirBasedSignatureComposer,
|
signatureComposer: FirBasedSignatureComposer,
|
||||||
symbolTable: SymbolTable,
|
symbolTable: SymbolTable,
|
||||||
dependentComponents: List<Fir2IrComponents>
|
dependentComponents: List<Fir2IrComponents>,
|
||||||
|
irBuiltIns: IrBuiltInsOverFir?
|
||||||
): Fir2IrResult {
|
): Fir2IrResult {
|
||||||
return Fir2IrConverter.createModuleFragmentWithSignaturesIfNeeded(
|
return Fir2IrConverter.createModuleFragmentWithSignaturesIfNeeded(
|
||||||
session, scopeSession, fir,
|
session, scopeSession, fir,
|
||||||
@@ -103,6 +104,7 @@ private fun ModuleCompilerAnalyzedOutput.convertToIr(
|
|||||||
generateSignatures = linkViaSignatures,
|
generateSignatures = linkViaSignatures,
|
||||||
signatureComposer = signatureComposer,
|
signatureComposer = signatureComposer,
|
||||||
symbolTable = symbolTable,
|
symbolTable = symbolTable,
|
||||||
dependentComponents = dependentComponents
|
dependentComponents = dependentComponents,
|
||||||
|
initializedIrBuiltIns = irBuiltIns
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,9 +79,6 @@ class Fir2IrClassifierStorage(
|
|||||||
with(typeConverter) { toIrType(typeContext) }
|
with(typeConverter) { toIrType(typeContext) }
|
||||||
|
|
||||||
fun preCacheBuiltinClasses() {
|
fun preCacheBuiltinClasses() {
|
||||||
// dependentStorages are only actual for MPP scenario
|
|
||||||
// There is no need to precache them twice: the same library session is used and FIR and IR elements are the same
|
|
||||||
if (dependentStorages.isNotEmpty()) return
|
|
||||||
for ((classId, irBuiltinSymbol) in typeConverter.classIdToSymbolMap) {
|
for ((classId, irBuiltinSymbol) in typeConverter.classIdToSymbolMap) {
|
||||||
val firClass = ConeClassLikeLookupTagImpl(classId).toSymbol(session)!!.fir as FirRegularClass
|
val firClass = ConeClassLikeLookupTagImpl(classId).toSymbol(session)!!.fir as FirRegularClass
|
||||||
val irClass = irBuiltinSymbol.owner
|
val irClass = irBuiltinSymbol.owner
|
||||||
|
|||||||
@@ -61,12 +61,15 @@ class Fir2IrConverter(
|
|||||||
irGenerationExtensions: Collection<IrGenerationExtension>,
|
irGenerationExtensions: Collection<IrGenerationExtension>,
|
||||||
fir2irVisitor: Fir2IrVisitor,
|
fir2irVisitor: Fir2IrVisitor,
|
||||||
fir2IrExtensions: Fir2IrExtensions,
|
fir2IrExtensions: Fir2IrExtensions,
|
||||||
|
runPreCacheBuiltinClasses: Boolean
|
||||||
) {
|
) {
|
||||||
session.lazyDeclarationResolver.disableLazyResolveContractChecks()
|
session.lazyDeclarationResolver.disableLazyResolveContractChecks()
|
||||||
for (firFile in allFirFiles) {
|
for (firFile in allFirFiles) {
|
||||||
registerFileAndClasses(firFile, irModuleFragment)
|
registerFileAndClasses(firFile, irModuleFragment)
|
||||||
}
|
}
|
||||||
classifierStorage.preCacheBuiltinClasses()
|
if (runPreCacheBuiltinClasses) {
|
||||||
|
classifierStorage.preCacheBuiltinClasses()
|
||||||
|
}
|
||||||
// The file processing is performed phase-to-phase:
|
// The file processing is performed phase-to-phase:
|
||||||
// 1. Creation of all non-local regular classes
|
// 1. Creation of all non-local regular classes
|
||||||
// 2. Class header processing (type parameters, supertypes, this receiver)
|
// 2. Class header processing (type parameters, supertypes, this receiver)
|
||||||
@@ -459,7 +462,8 @@ class Fir2IrConverter(
|
|||||||
kotlinBuiltIns: KotlinBuiltIns,
|
kotlinBuiltIns: KotlinBuiltIns,
|
||||||
signatureComposer: FirBasedSignatureComposer,
|
signatureComposer: FirBasedSignatureComposer,
|
||||||
symbolTable: SymbolTable,
|
symbolTable: SymbolTable,
|
||||||
dependentComponents: List<Fir2IrComponents>
|
dependentComponents: List<Fir2IrComponents>,
|
||||||
|
initializedIrBuiltIns: IrBuiltInsOverFir?
|
||||||
): Fir2IrResult {
|
): Fir2IrResult {
|
||||||
val moduleDescriptor = FirModuleDescriptor(session, kotlinBuiltIns)
|
val moduleDescriptor = FirModuleDescriptor(session, kotlinBuiltIns)
|
||||||
val components = Fir2IrComponentsStorage(
|
val components = Fir2IrComponentsStorage(
|
||||||
@@ -477,7 +481,7 @@ class Fir2IrConverter(
|
|||||||
components.visibilityConverter = visibilityConverter
|
components.visibilityConverter = visibilityConverter
|
||||||
val typeConverter = Fir2IrTypeConverter(components)
|
val typeConverter = Fir2IrTypeConverter(components)
|
||||||
components.typeConverter = typeConverter
|
components.typeConverter = typeConverter
|
||||||
val irBuiltIns = dependentComponents.lastOrNull()?.irBuiltIns ?: IrBuiltInsOverFir(
|
val irBuiltIns = initializedIrBuiltIns ?: IrBuiltInsOverFir(
|
||||||
components, languageVersionSettings, moduleDescriptor, irMangler,
|
components, languageVersionSettings, moduleDescriptor, irMangler,
|
||||||
languageVersionSettings.getFlag(AnalysisFlags.builtInsFromSources) || kotlinBuiltIns !== DefaultBuiltIns.Instance
|
languageVersionSettings.getFlag(AnalysisFlags.builtInsFromSources) || kotlinBuiltIns !== DefaultBuiltIns.Instance
|
||||||
)
|
)
|
||||||
@@ -505,7 +509,8 @@ class Fir2IrConverter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
converter.runSourcesConversion(
|
converter.runSourcesConversion(
|
||||||
allFirFiles, irModuleFragment, irGenerationExtensions, fir2irVisitor, fir2IrExtensions
|
allFirFiles, irModuleFragment, irGenerationExtensions, fir2irVisitor, fir2IrExtensions,
|
||||||
|
runPreCacheBuiltinClasses = initializedIrBuiltIns == null
|
||||||
)
|
)
|
||||||
|
|
||||||
return Fir2IrResult(irModuleFragment, components, moduleDescriptor)
|
return Fir2IrResult(irModuleFragment, components, moduleDescriptor)
|
||||||
|
|||||||
+6
@@ -33082,6 +33082,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
|
|||||||
runTest("compiler/testData/codegen/box/multiplatform/multiModule/getRidOfDoubleBindingInFir2IrLazyProperty.kt");
|
runTest("compiler/testData/codegen/box/multiplatform/multiModule/getRidOfDoubleBindingInFir2IrLazyProperty.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("independentCommonSourceModules.kt")
|
||||||
|
public void testIndependentCommonSourceModules() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/multiplatform/multiModule/independentCommonSourceModules.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("kt-51753-1.kt")
|
@TestMetadata("kt-51753-1.kt")
|
||||||
public void testKt_51753_1() throws Exception {
|
public void testKt_51753_1() throws Exception {
|
||||||
|
|||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
// TARGET_BACKEND: JVM_IR
|
||||||
|
// !LANGUAGE: +MultiPlatformProjects
|
||||||
|
|
||||||
|
// MODULE: common1
|
||||||
|
// TARGET_PLATFORM: Common
|
||||||
|
// FILE: common1.kt
|
||||||
|
|
||||||
|
fun o() = "O"
|
||||||
|
|
||||||
|
// MODULE: common2
|
||||||
|
// TARGET_PLATFORM: Common
|
||||||
|
// FILE: common2.kt
|
||||||
|
|
||||||
|
fun k() = "K"
|
||||||
|
|
||||||
|
// MODULE: jvm()()(common1, common2)
|
||||||
|
// TARGET_PLATFORM: JVM
|
||||||
|
// FILE: main.kt
|
||||||
|
|
||||||
|
fun box() = o() + k()
|
||||||
+6
@@ -33082,6 +33082,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/multiplatform/multiModule/getRidOfDoubleBindingInFir2IrLazyProperty.kt");
|
runTest("compiler/testData/codegen/box/multiplatform/multiModule/getRidOfDoubleBindingInFir2IrLazyProperty.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("independentCommonSourceModules.kt")
|
||||||
|
public void testIndependentCommonSourceModules() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/multiplatform/multiModule/independentCommonSourceModules.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("kt-51753-1.kt")
|
@TestMetadata("kt-51753-1.kt")
|
||||||
public void testKt_51753_1() throws Exception {
|
public void testKt_51753_1() throws Exception {
|
||||||
|
|||||||
+2
-1
@@ -136,7 +136,8 @@ fun AbstractFirAnalyzerFacade.convertToJsIr(
|
|||||||
kotlinBuiltIns = builtIns ?: DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
kotlinBuiltIns = builtIns ?: DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
||||||
signatureComposer = signatureComposer,
|
signatureComposer = signatureComposer,
|
||||||
symbolTable = symbolTable,
|
symbolTable = symbolTable,
|
||||||
dependentComponents = emptyList()
|
dependentComponents = emptyList(),
|
||||||
|
initializedIrBuiltIns = null
|
||||||
).also {
|
).also {
|
||||||
(it.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = dependencies }
|
(it.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = dependencies }
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.container.get
|
|||||||
import org.jetbrains.kotlin.fir.FirAnalyzerFacade
|
import org.jetbrains.kotlin.fir.FirAnalyzerFacade
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrConverter
|
import org.jetbrains.kotlin.fir.backend.Fir2IrConverter
|
||||||
|
import org.jetbrains.kotlin.fir.backend.IrBuiltInsOverFir
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
||||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
|
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
|
||||||
@@ -80,6 +81,7 @@ class Fir2IrResultsConverter(
|
|||||||
signatureComposerCreator = { JvmIdSignatureDescriptor(JvmDescriptorMangler(null)) },
|
signatureComposerCreator = { JvmIdSignatureDescriptor(JvmDescriptorMangler(null)) },
|
||||||
manglerCreator = { FirJvmKotlinMangler() }
|
manglerCreator = { FirJvmKotlinMangler() }
|
||||||
)
|
)
|
||||||
|
var irBuiltIns: IrBuiltInsOverFir? = null
|
||||||
|
|
||||||
for ((index, firOutputPart) in inputArtifact.partsForDependsOnModules.withIndex()) {
|
for ((index, firOutputPart) in inputArtifact.partsForDependsOnModules.withIndex()) {
|
||||||
val dependentComponents = mutableListOf<Fir2IrComponents>()
|
val dependentComponents = mutableListOf<Fir2IrComponents>()
|
||||||
@@ -93,6 +95,7 @@ class Fir2IrResultsConverter(
|
|||||||
fir2IrExtensions, signatureComposer, symbolTable, dependentComponents, irBuiltIns
|
fir2IrExtensions, signatureComposer, symbolTable, dependentComponents, irBuiltIns
|
||||||
)
|
)
|
||||||
componentsMap[firOutputPart.module.name] = components
|
componentsMap[firOutputPart.module.name] = components
|
||||||
|
irBuiltIns = components.irBuiltIns
|
||||||
|
|
||||||
val irPart = JvmIrCodegenFactory.JvmIrBackendInput(
|
val irPart = JvmIrCodegenFactory.JvmIrBackendInput(
|
||||||
irModuleFragment,
|
irModuleFragment,
|
||||||
|
|||||||
@@ -139,6 +139,7 @@ object GenerationUtils {
|
|||||||
signatureComposer = signatureComposer,
|
signatureComposer = signatureComposer,
|
||||||
symbolTable = symbolTable,
|
symbolTable = symbolTable,
|
||||||
dependentComponents = emptyList(),
|
dependentComponents = emptyList(),
|
||||||
|
irBuiltIns = null
|
||||||
)
|
)
|
||||||
val dummyBindingContext = NoScopeRecordCliBindingTrace().bindingContext
|
val dummyBindingContext = NoScopeRecordCliBindingTrace().bindingContext
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ abstract class AbstractFirAnalyzerFacade {
|
|||||||
fir2IrExtensions: Fir2IrExtensions,
|
fir2IrExtensions: Fir2IrExtensions,
|
||||||
signatureComposer: FirBasedSignatureComposer,
|
signatureComposer: FirBasedSignatureComposer,
|
||||||
symbolTable: SymbolTable,
|
symbolTable: SymbolTable,
|
||||||
dependentComponents: List<Fir2IrComponents>
|
dependentComponents: List<Fir2IrComponents>,
|
||||||
|
irBuiltIns: IrBuiltInsOverFir?
|
||||||
): Fir2IrResult
|
): Fir2IrResult
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,7 +109,8 @@ class FirAnalyzerFacade(
|
|||||||
fir2IrExtensions: Fir2IrExtensions,
|
fir2IrExtensions: Fir2IrExtensions,
|
||||||
signatureComposer: FirBasedSignatureComposer,
|
signatureComposer: FirBasedSignatureComposer,
|
||||||
symbolTable: SymbolTable,
|
symbolTable: SymbolTable,
|
||||||
dependentComponents: List<Fir2IrComponents>
|
dependentComponents: List<Fir2IrComponents>,
|
||||||
|
irBuiltIns: IrBuiltInsOverFir?
|
||||||
): Fir2IrResult {
|
): Fir2IrResult {
|
||||||
if (_scopeSession == null) runResolution()
|
if (_scopeSession == null) runResolution()
|
||||||
|
|
||||||
@@ -124,7 +126,8 @@ class FirAnalyzerFacade(
|
|||||||
kotlinBuiltIns = DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
kotlinBuiltIns = DefaultBuiltIns.Instance, // TODO: consider passing externally,
|
||||||
signatureComposer = signatureComposer,
|
signatureComposer = signatureComposer,
|
||||||
symbolTable = symbolTable,
|
symbolTable = symbolTable,
|
||||||
dependentComponents = dependentComponents
|
dependentComponents = dependentComponents,
|
||||||
|
initializedIrBuiltIns = irBuiltIns
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -89,7 +89,8 @@ internal fun PhaseContext.fir2Ir(
|
|||||||
kotlinBuiltIns = builtInsModule ?: DefaultBuiltIns.Instance, // TODO: consider passing externally
|
kotlinBuiltIns = builtInsModule ?: DefaultBuiltIns.Instance, // TODO: consider passing externally
|
||||||
signatureComposer = signatureComposer,
|
signatureComposer = signatureComposer,
|
||||||
symbolTable = symbolTable,
|
symbolTable = symbolTable,
|
||||||
dependentComponents = emptyList()
|
dependentComponents = emptyList(),
|
||||||
|
initializedIrBuiltIns = null
|
||||||
).also {
|
).also {
|
||||||
(it.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = librariesDescriptors }
|
(it.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = librariesDescriptors }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user