[FIR2IR] Load builtin classes instead of creating them on the fly

This change uncovered KT-61282, which was hidden because of incorrect
  module fragments used as parent for builtin classes
This commit is contained in:
Dmitriy Novozhilov
2023-08-17 11:24:39 +03:00
committed by Space Team
parent f95ed2b588
commit 3f2e996803
9 changed files with 723 additions and 1225 deletions
@@ -31,6 +31,7 @@ val ConeKotlinType.isThrowableOrNullableThrowable: Boolean get() = isAnyOfBuilti
val ConeKotlinType.isChar: Boolean get() = isBuiltinType(StandardClassIds.Char, false)
val ConeKotlinType.isCharOrNullableChar: Boolean get() = isAnyOfBuiltinType(setOf(StandardClassIds.Char))
val ConeKotlinType.isString: Boolean get() = isBuiltinType(StandardClassIds.String, false)
val ConeKotlinType.isNullableString: Boolean get() = isBuiltinType(StandardClassIds.String, true)
val ConeKotlinType.isEnum: Boolean get() = isBuiltinType(StandardClassIds.Enum, false)
@@ -564,8 +564,7 @@ class Fir2IrConverter(
components.visibilityConverter = visibilityConverter
components.typeConverter = Fir2IrTypeConverter(components)
val irBuiltIns = initializedIrBuiltIns ?: IrBuiltInsOverFir(
components, fir2IrConfiguration.languageVersionSettings, moduleDescriptor, irMangler,
fir2IrConfiguration.languageVersionSettings.getFlag(AnalysisFlags.builtInsFromSources) || kotlinBuiltIns !== DefaultBuiltIns.Instance
components, fir2IrConfiguration.languageVersionSettings, moduleDescriptor, irMangler
)
components.irBuiltIns = irBuiltIns
val conversionScope = Fir2IrConversionScope()
@@ -578,6 +577,7 @@ class Fir2IrConverter(
components.annotationsFromPluginRegistrar = Fir2IrAnnotationsFromPluginRegistrar(components)
fir2IrExtensions.registerDeclarations(commonMemberStorage.symbolTable)
irBuiltIns.initialize()
val irModuleFragment = IrModuleFragmentImpl(moduleDescriptor, irBuiltIns)
File diff suppressed because it is too large Load Diff