From 7ee35af7213610d70c322a2b758ff58adc9a2c43 Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Mon, 16 Nov 2020 20:44:35 +0100 Subject: [PATCH] IC mangling: Use correct mangling scheme when checking for duplicate signatures. --- .../state/BuilderFactoryForDuplicateSignatureDiagnostics.kt | 3 ++- .../src/org/jetbrains/kotlin/codegen/state/GenerationState.kt | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/BuilderFactoryForDuplicateSignatureDiagnostics.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/BuilderFactoryForDuplicateSignatureDiagnostics.kt index 02a238b1c6a..2c689fec4c5 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/BuilderFactoryForDuplicateSignatureDiagnostics.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/BuilderFactoryForDuplicateSignatureDiagnostics.kt @@ -50,13 +50,14 @@ class BuilderFactoryForDuplicateSignatureDiagnostics( private val diagnostics: DiagnosticSink, moduleName: String, languageVersionSettings: LanguageVersionSettings, + useOldInlineClassesManglingScheme: Boolean, shouldGenerate: (JvmDeclarationOrigin) -> Boolean, ) : SignatureCollectingClassBuilderFactory(builderFactory, shouldGenerate) { private val mapAsmMethod: (FunctionDescriptor) -> Method = KotlinTypeMapper( // Avoid errors when some classes are not loaded for some reason bindingContext, ClassBuilderMode.LIGHT_CLASSES, moduleName, languageVersionSettings, isIrBackend = false, - useOldInlineClassesManglingScheme = false + useOldInlineClassesManglingScheme = useOldInlineClassesManglingScheme )::mapAsmMethod private val reportDiagnosticsTasks = ArrayList<() -> Unit>() diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt index 0315e9373fd..f61afe8ca9a 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt @@ -322,6 +322,7 @@ class GenerationState private constructor( else BuilderFactoryForDuplicateSignatureDiagnostics( it, bindingContext, diagnostics, this.moduleName, languageVersionSettings, + useOldManglingSchemeForFunctionsWithInlineClassesInSignatures, shouldGenerate = { origin -> !shouldOnlyCollectSignatures(origin) }, ).apply { duplicateSignatureFactory = this } },