diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt index d985b7bc24e..661e54bb70b 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt @@ -76,7 +76,8 @@ object BOUND_RECEIVER_PARAMETER : IrDeclarationOriginImpl("BOUND_RECEIVER_PARAME class LocalDeclarationsLowering( val context: CommonBackendContext, val localNameProvider: LocalNameProvider = LocalNameProvider.DEFAULT, - val visibilityPolicy: VisibilityPolicy = VisibilityPolicy.DEFAULT + val visibilityPolicy: VisibilityPolicy = VisibilityPolicy.DEFAULT, + val suggestUniqueNames: Boolean = true, // When `true` appends a `-#index` suffix to lifted declaration names ) : BodyLoweringPass { @@ -562,7 +563,7 @@ class LocalDeclarationsLowering( localFunctions[declaration]?.let { val baseName = if (declaration.name.isSpecial) "lambda" else declaration.name if (it.index >= 0) - return "$baseName-${it.index}" + return if (suggestUniqueNames) "$baseName-${it.index}" else "$baseName" } return localNameProvider.localName(declaration) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt index f0c30bdb8e6..dadefdf2e4c 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt @@ -405,7 +405,7 @@ private val localDelegatedPropertiesLoweringPhase = makeBodyLoweringPhase( ) private val localDeclarationsLoweringPhase = makeBodyLoweringPhase( - ::LocalDeclarationsLowering, + { context -> LocalDeclarationsLowering(context, suggestUniqueNames = false) }, name = "LocalDeclarationsLowering", description = "Move local declarations into nearest declaration container", prerequisite = setOf(sharedVariablesLoweringPhase, localDelegatedPropertiesLoweringPhase)