From 40f907ec2fa4cd7e497f320ec49082c44f9a313d Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 11 Feb 2020 23:47:04 +0300 Subject: [PATCH] Fix compilation for 191 & as35 --- .../RenameKotlinParameterProcessor.kt.191 | 47 +++++++++++++++++++ .../RenameKotlinParameterProcessor.kt.as35 | 47 +++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinParameterProcessor.kt.191 create mode 100644 idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinParameterProcessor.kt.as35 diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinParameterProcessor.kt.191 b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinParameterProcessor.kt.191 new file mode 100644 index 00000000000..c5f3f5cad14 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinParameterProcessor.kt.191 @@ -0,0 +1,47 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.refactoring.rename + +import com.intellij.psi.PsiElement +import com.intellij.refactoring.listeners.RefactoringElementListener +import com.intellij.usageView.UsageInfo +import org.jetbrains.kotlin.asJava.namedUnwrappedElement +import org.jetbrains.kotlin.idea.refactoring.KotlinRefactoringSettings +import org.jetbrains.kotlin.psi.KtFunction +import org.jetbrains.kotlin.psi.KtNamedDeclaration +import org.jetbrains.kotlin.psi.KtParameter +import org.jetbrains.kotlin.utils.SmartList + +class RenameKotlinParameterProcessor : RenameKotlinPsiProcessor() { + override fun canProcessElement(element: PsiElement) = element is KtParameter && element.ownerFunction is KtFunction + + override fun isToSearchInComments(psiElement: PsiElement) = KotlinRefactoringSettings.instance.RENAME_SEARCH_IN_COMMENTS_FOR_VARIABLE + + override fun setToSearchInComments(element: PsiElement, enabled: Boolean) { + KotlinRefactoringSettings.instance.RENAME_SEARCH_IN_COMMENTS_FOR_VARIABLE = enabled + } + + override fun findCollisions( + element: PsiElement, + newName: String, + allRenames: MutableMap, + result: MutableList + ) { + val declaration = element.namedUnwrappedElement as? KtNamedDeclaration ?: return + + val collisions = SmartList() + checkRedeclarations(declaration, newName, collisions) + checkOriginalUsagesRetargeting(declaration, newName, result, collisions) + checkNewNameUsagesRetargeting(declaration, newName, collisions) + result += collisions + } + + override fun renameElement(element: PsiElement, newName: String, usages: Array, listener: RefactoringElementListener?) { + super.renameElement(element, newName, usages, listener) + + usages.forEach { (it as? KtResolvableCollisionUsageInfo)?.apply() } + } +} diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinParameterProcessor.kt.as35 b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinParameterProcessor.kt.as35 new file mode 100644 index 00000000000..c5f3f5cad14 --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/rename/RenameKotlinParameterProcessor.kt.as35 @@ -0,0 +1,47 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.idea.refactoring.rename + +import com.intellij.psi.PsiElement +import com.intellij.refactoring.listeners.RefactoringElementListener +import com.intellij.usageView.UsageInfo +import org.jetbrains.kotlin.asJava.namedUnwrappedElement +import org.jetbrains.kotlin.idea.refactoring.KotlinRefactoringSettings +import org.jetbrains.kotlin.psi.KtFunction +import org.jetbrains.kotlin.psi.KtNamedDeclaration +import org.jetbrains.kotlin.psi.KtParameter +import org.jetbrains.kotlin.utils.SmartList + +class RenameKotlinParameterProcessor : RenameKotlinPsiProcessor() { + override fun canProcessElement(element: PsiElement) = element is KtParameter && element.ownerFunction is KtFunction + + override fun isToSearchInComments(psiElement: PsiElement) = KotlinRefactoringSettings.instance.RENAME_SEARCH_IN_COMMENTS_FOR_VARIABLE + + override fun setToSearchInComments(element: PsiElement, enabled: Boolean) { + KotlinRefactoringSettings.instance.RENAME_SEARCH_IN_COMMENTS_FOR_VARIABLE = enabled + } + + override fun findCollisions( + element: PsiElement, + newName: String, + allRenames: MutableMap, + result: MutableList + ) { + val declaration = element.namedUnwrappedElement as? KtNamedDeclaration ?: return + + val collisions = SmartList() + checkRedeclarations(declaration, newName, collisions) + checkOriginalUsagesRetargeting(declaration, newName, result, collisions) + checkNewNameUsagesRetargeting(declaration, newName, collisions) + result += collisions + } + + override fun renameElement(element: PsiElement, newName: String, usages: Array, listener: RefactoringElementListener?) { + super.renameElement(element, newName, usages, listener) + + usages.forEach { (it as? KtResolvableCollisionUsageInfo)?.apply() } + } +}