RemoveReturnLabelFix: introduce labelName parameter

This commit is contained in:
Dmitry Gridin
2020-02-12 11:46:43 +07:00
parent 7c65bb2e3f
commit 8da05ed597
2 changed files with 5 additions and 5 deletions
@@ -26,7 +26,7 @@ class RedundantReturnLabelInspection : AbstractKotlinInspection() {
label, label,
"Redundant '@$labelName'", "Redundant '@$labelName'",
ProblemHighlightType.LIKE_UNUSED_SYMBOL, ProblemHighlightType.LIKE_UNUSED_SYMBOL,
IntentionWrapper(RemoveReturnLabelFix(returnExpression), returnExpression.containingKtFile), IntentionWrapper(RemoveReturnLabelFix(returnExpression, labelName), returnExpression.containingKtFile),
) )
}, },
) )
@@ -11,20 +11,20 @@ import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtReturnExpression import org.jetbrains.kotlin.psi.KtReturnExpression
class RemoveReturnLabelFix(element: KtReturnExpression) : KotlinQuickFixAction<KtReturnExpression>(element) { class RemoveReturnLabelFix(element: KtReturnExpression, private val labelName: String) : KotlinQuickFixAction<KtReturnExpression>(element) {
override fun invoke(project: Project, editor: Editor?, file: KtFile) { override fun invoke(project: Project, editor: Editor?, file: KtFile) {
element?.labeledExpression?.delete() element?.labeledExpression?.delete()
} }
override fun getFamilyName(): String = "Remove redundant label" override fun getFamilyName(): String = "Remove redundant label"
override fun getText(): String = "Remove redundant ${element?.getLabelName()?.let { "'@$it'" } ?: "label"}" override fun getText(): String = "Remove redundant '@$labelName'"
companion object : KotlinSingleIntentionActionFactory() { companion object : KotlinSingleIntentionActionFactory() {
override fun createAction(diagnostic: Diagnostic): KotlinQuickFixAction<KtReturnExpression>? { override fun createAction(diagnostic: Diagnostic): KotlinQuickFixAction<KtReturnExpression>? {
val returnExpression = diagnostic.psiElement as? KtReturnExpression ?: return null val returnExpression = diagnostic.psiElement as? KtReturnExpression ?: return null
return if (returnExpression.labeledExpression == null) null val labelName = returnExpression.getLabelName() ?: return null
else RemoveReturnLabelFix(returnExpression) return RemoveReturnLabelFix(returnExpression, labelName)
} }
} }
} }