From 2c404a654bba20fda726f4976f209fc1f233169f Mon Sep 17 00:00:00 2001 From: Georgy Bronnikov Date: Fri, 9 Oct 2020 18:36:26 +0300 Subject: [PATCH] JVM_IR: avoid scope violation in BridgeLowering --- .../kotlin/ir/backend/js/lower/BridgesConstruction.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/BridgesConstruction.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/BridgesConstruction.kt index ac5637364e8..dd5a8bd9d08 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/BridgesConstruction.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/BridgesConstruction.kt @@ -136,8 +136,9 @@ abstract class BridgesConstruction(val context: JsCommonBackendContext) : Declar }.apply { parent = function.parent copyTypeParametersFrom(bridge) - copyReceiverParametersFrom(bridge) - valueParameters += bridge.valueParameters.map { p -> p.copyTo(this) } + val substitutionMap = makeTypeParameterSubstitutionMap(bridge, this) + copyReceiverParametersFrom(bridge, substitutionMap) + valueParameters += bridge.valueParameters.map { p -> p.copyTo(this, type = p.type.substitute(substitutionMap)) } annotations += bridge.annotations overriddenSymbols += delegateTo.overriddenSymbols overriddenSymbols += bridge.symbol