From 36488d21daf4de90d33f6bfe19c47ab30cf7251b Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 8 Jan 2016 13:14:21 +0100 Subject: [PATCH] remove empty modifier list after removing visibility modifier --- .../RedundantVisibilityModifierInspection.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantVisibilityModifierInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantVisibilityModifierInspection.kt index f54299667fe..c906d73777f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantVisibilityModifierInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/RedundantVisibilityModifierInspection.kt @@ -20,8 +20,13 @@ import com.intellij.codeInspection.* import com.intellij.openapi.project.Project import com.intellij.psi.PsiElementVisitor import org.jetbrains.kotlin.idea.core.implicitVisibility +import org.jetbrains.kotlin.lexer.KtModifierKeywordToken import org.jetbrains.kotlin.psi.KtDeclaration +import org.jetbrains.kotlin.psi.KtModifierList +import org.jetbrains.kotlin.psi.KtModifierListOwner import org.jetbrains.kotlin.psi.KtVisitorVoid +import org.jetbrains.kotlin.psi.addRemoveModifier.removeModifier +import org.jetbrains.kotlin.psi.psiUtil.getParentOfType import org.jetbrains.kotlin.psi.psiUtil.visibilityModifier class RedundantVisibilityModifierInspection : AbstractKotlinInspection(), CleanupLocalInspectionTool { @@ -45,7 +50,10 @@ class RedundantVisibilityModifierInspection : AbstractKotlinInspection(), Cleanu override fun getFamilyName(): String = name override fun applyFix(project: Project, descriptor: ProblemDescriptor) { - descriptor.psiElement.delete() + val modifierKeyword = descriptor.psiElement.node.elementType as KtModifierKeywordToken + val modifierListOwner = descriptor.psiElement.getParentOfType(true) + ?: throw IllegalStateException("Can't find modifier list owner for modifier") + removeModifier(modifierListOwner, modifierKeyword) } } }