From 00292f41258e6fc1c8591cf429ad95bcbcc1e5de Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Thu, 10 Mar 2016 11:48:25 +0300 Subject: [PATCH] KT-11030 Avoid name clash between member fields and fields that store closure of local classes --- .../org/jetbrains/kotlin/js/translate/context/UsageTracker.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/UsageTracker.kt b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/UsageTracker.kt index 38511972535..383c0b7b620 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/UsageTracker.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/context/UsageTracker.kt @@ -70,7 +70,9 @@ class UsageTracker( val suggestedName = when (this) { is ReceiverParameterDescriptor -> this.getNameForCapturedReceiver() is TypeParameterDescriptor -> Namer.isInstanceSuggestedName(this) - else -> getSuggestedName(this) + + // Append 'closure$' prefix to avoid name clash between closure and member fields in case of local classes + else -> "closure\$${getSuggestedName(this)}" } return scope.declareFreshName(suggestedName)