From 8f5c690cdd12399a47a2af91616692583732ac5b Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 20 May 2019 01:13:50 +0300 Subject: [PATCH] New J2K: do not convert var to val if super property is var --- .../src/org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt index 70a7b9b6a84..876eed3825c 100644 --- a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt +++ b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt @@ -14,6 +14,7 @@ import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.searches.ReferencesSearch import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.CallableDescriptor +import org.jetbrains.kotlin.descriptors.VariableDescriptor import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.DiagnosticFactory import org.jetbrains.kotlin.diagnostics.DiagnosticWithParameters2 @@ -756,6 +757,8 @@ object NewJ2KPostProcessingRegistrar { fun check(element: KtProperty): Boolean { if (!element.isVar) return false if (!element.isPrivate()) return false + val descriptor = element.resolveToDescriptorIfAny() ?: return false + if (descriptor.overriddenDescriptors.any { it.safeAs()?.isVar == true }) return false return !element.hasWriteUsages() }