From 47e722854c56f16a639873a7d66975be1df08090 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 12 Mar 2019 12:52:06 +0300 Subject: [PATCH] New J2K: Remove redundant modifiers in post processing --- .../kotlin/nj2k/NewJ2kPostProcessings.kt | 26 +++++++++++++++++++ 1 file changed, 26 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 21c1385f44e..bee6e92eb78 100644 --- a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt +++ b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/NewJ2kPostProcessings.kt @@ -97,6 +97,32 @@ object NewJ2KPostProcessingRegistrar { SingleOneTimeProcessing(registerGeneralInspectionBasedProcessing(RedundantSetterInspection())), SingleOneTimeProcessing(ConvertDataClass()), RepeatableProcessingGroup( + registerGeneralInspectionBasedProcessing(RedundantModalityModifierInspection()), + registerGeneralInspectionBasedProcessing(RedundantVisibilityModifierInspection()), + registerDiagnosticBasedProcessing(Errors.REDUNDANT_OPEN_IN_INTERFACE) { element: KtDeclaration, diagnostic -> + element.removeModifier(KtTokens.OPEN_KEYWORD) + }, + object : NewJ2kPostProcessing { + override val writeActionNeeded: Boolean = true + + override fun createAction(element: KtElement, diagnostics: Diagnostics): (() -> Unit)? { + if (element !is KtClass) return null + + fun check(klass: KtClass): Boolean { + return klass.isValid + && klass.isInterface() + && klass.hasModifier(KtTokens.OPEN_KEYWORD) + } + + if (!check(element)) return null + return { + if (check(element)) { + element.removeModifier(KtTokens.OPEN_KEYWORD) + } + } + } + }, + registerGeneralInspectionBasedProcessing(ExplicitThisInspection()), RemoveExplicitTypeArgumentsProcessing(), RemoveRedundantOverrideVisibilityProcessing(),