From 5168ccc1593f4898ee7cd743bfb730b68b175cb0 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Mon, 10 Aug 2015 19:56:58 +0300 Subject: [PATCH] Add/Remove Modifier: Do not add modifier if it's already present in the modifier list --- .../src/org/jetbrains/kotlin/psi/addRemoveModifier.kt | 2 ++ .../kotlin/idea/refactoring/pullUp/KotlinPullUpHelper.kt | 2 +- .../jetbrains/kotlin/idea/refactoring/pullUp/pullUpUtils.kt | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt b/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt index 8cec1539d33..78f655f8f65 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/addRemoveModifier.kt @@ -55,6 +55,8 @@ internal fun addAnnotationEntry(owner: JetModifierListOwner, annotationEntry: Je } internal fun addModifier(modifierList: JetModifierList, modifier: JetModifierKeywordToken, defaultVisibilityModifier: JetModifierKeywordToken) { + if (modifierList.hasModifier(modifier)) return + val newModifier = JetPsiFactory(modifierList).createModifier(modifier) val modifierToReplace = MODIFIERS_TO_REPLACE[modifier] ?.map { modifierList.getModifier(it) } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpHelper.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpHelper.kt index dc7999af90e..a3fe38a4abd 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpHelper.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/KotlinPullUpHelper.kt @@ -540,7 +540,7 @@ class KotlinPullUpHelper( if (member.hasModifier(JetTokens.ABSTRACT_KEYWORD)) { member.delete() } - else if (!member.hasModifier(JetTokens.OVERRIDE_KEYWORD)) { + else { member.addModifierWithSpace(JetTokens.OVERRIDE_KEYWORD) } } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/pullUpUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/pullUpUtils.kt index a2ea11de072..4d7e99a570d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/pullUpUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/pullUp/pullUpUtils.kt @@ -71,6 +71,7 @@ fun JetNamedDeclaration.addAnnotationWithSpace(annotationEntry: JetAnnotationEnt } fun JetClass.makeAbstract() { - if (isInterface() || hasModifier(JetTokens.ABSTRACT_KEYWORD)) return - addModifierWithSpace(JetTokens.ABSTRACT_KEYWORD) + if (!isInterface()) { + addModifierWithSpace(JetTokens.ABSTRACT_KEYWORD) + } } \ No newline at end of file