From 46c2dc98958126df3b80f9ed9b93c66022497216 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 15 Jun 2016 14:54:45 +0300 Subject: [PATCH] Rename: Record new name for Kotlin function which is being renamed via light method #KT-12732 Fixed (cherry picked from commit 28b9d3e) --- ChangeLog.md | 1 + .../idea/refactoring/rename/RenameKotlinFunctionProcessor.kt | 3 +++ 2 files changed, 4 insertions(+) diff --git a/ChangeLog.md b/ChangeLog.md index 619b82da723..7386b5736f7 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -243,6 +243,7 @@ - [`KT-10713`](https://youtrack.jetbrains.com/issue/KT-10713) Skip read-only declarations when renaming parameters - [`KT-10687`](https://youtrack.jetbrains.com/issue/KT-10687) Qualify property references to avoid shadowing by parameters - [`KT-12543`](https://youtrack.jetbrains.com/issue/KT-12543) Qualify property references with 'this' to avoid renaming conflicts +- [`KT-12732`](https://youtrack.jetbrains.com/issue/KT-12732) Copy default parameter values to overriding function which is renamed by Java reference while its base function is unchanged #### Java to Kotlin converter diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt index 60e4ba74d75..9d2b1bac152 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinFunctionProcessor.kt @@ -85,6 +85,9 @@ class RenameKotlinFunctionProcessor : RenameKotlinPsiProcessor() { override fun prepareRenaming(element: PsiElement, newName: String?, allRenames: MutableMap, scope: SearchScope) { super.prepareRenaming(element, newName, allRenames, scope) + if (element is KtLightMethod && newName != null && getJvmName(element) == null) { + (element.kotlinOrigin as? KtNamedFunction)?.let { allRenames[it] = newName } + } val psiMethod = wrapPsiMethod(element) if (psiMethod?.containingClass != null) { javaMethodProcessorInstance.prepareRenaming(psiMethod, newName, allRenames, scope)