New J2K: Remove redundant modifiers in post processing

This commit is contained in:
Ilya Kirillov
2019-03-12 12:52:06 +03:00
committed by Ilya Kirillov
parent 7adba40ea2
commit 47e722854c
@@ -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(),