From 0ca5c0fcc66d5185613fe10042a5090650d02ca3 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 11 Jul 2017 15:19:42 +0300 Subject: [PATCH] Refactoring (clone remove) of LiftAssignmentOutOfTryFix Related to KT-18830 --- .../quickfix/LiftAssignmentOutOfTryFix.kt | 21 +++---------------- 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/LiftAssignmentOutOfTryFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/LiftAssignmentOutOfTryFix.kt index df300e78330..289bf25c7c2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/LiftAssignmentOutOfTryFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/LiftAssignmentOutOfTryFix.kt @@ -30,19 +30,7 @@ class LiftAssignmentOutOfTryFix(element: KtTryExpression): KotlinQuickFixAction< override fun invoke(project: Project, editor: Editor?, file: KtFile) { val element = element ?: return - val tryAssignment = BranchedFoldingUtils.getFoldableBranchedAssignment(element.tryBlock) ?: return - - val op = tryAssignment.operationReference.text - val leftText = tryAssignment.left?.text ?: return - - tryAssignment.replace(tryAssignment.right ?: return) - - for (catchClause in element.catchClauses) { - val catchAssignment = BranchedFoldingUtils.getFoldableBranchedAssignment(catchClause.catchBody) - catchAssignment?.replace(catchAssignment.right!!) - } - - element.replace(KtPsiFactory(element).createExpressionByPattern("$0 $1 $2", leftText, op, element)) + BranchedFoldingUtils.foldToAssignment(element) } companion object : KotlinSingleIntentionActionFactory() { @@ -51,11 +39,8 @@ class LiftAssignmentOutOfTryFix(element: KtTryExpression): KotlinQuickFixAction< val expression = diagnostic.psiElement as? KtExpression ?: return null val originalCatch = expression.parent.parent?.parent as? KtCatchClause ?: return null val tryExpression = originalCatch.parent as? KtTryExpression ?: return null - val tryAssignment = BranchedFoldingUtils.getFoldableBranchedAssignment(tryExpression.tryBlock) ?: return null - for (catchClause in tryExpression.catchClauses) { - val catchAssignment = BranchedFoldingUtils.getFoldableBranchedAssignment(catchClause.catchBody) ?: return null - if (!BranchedFoldingUtils.checkAssignmentsMatch(tryAssignment, catchAssignment)) return null - } + + if (BranchedFoldingUtils.getFoldableAssignmentNumber(tryExpression) < 1) return null return LiftAssignmentOutOfTryFix(tryExpression) } }