diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/LiftReturnOrAssignmentInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/LiftReturnOrAssignmentInspection.kt index 59b3b7dfd2b..27b0681195e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/LiftReturnOrAssignmentInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/LiftReturnOrAssignmentInspection.kt @@ -93,7 +93,7 @@ class LiftReturnOrAssignmentInspection @JvmOverloads constructor(private val ski override fun getFamilyName() = name override fun applyFix(project: Project, descriptor: ProblemDescriptor) { - BranchedFoldingUtils.foldToAssignment(descriptor.psiElement as KtExpression) + BranchedFoldingUtils.tryFoldToAssignment(descriptor.psiElement as KtExpression) } } diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/BranchedFoldingUtils.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/BranchedFoldingUtils.kt index c6e69627f17..44de4d9a3d1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/BranchedFoldingUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/BranchedFoldingUtils.kt @@ -183,7 +183,7 @@ object BranchedFoldingUtils { fun canFoldToReturn(expression: KtExpression?): Boolean = getFoldableReturnNumber(expression) > 0 - fun foldToAssignment(expression: KtExpression) { + fun tryFoldToAssignment(expression: KtExpression) { var lhs: KtExpression? = null var op: String? = null val psiFactory = KtPsiFactory(expression) @@ -214,7 +214,9 @@ object BranchedFoldingUtils { } } lift(expression) - expression.replace(psiFactory.createExpressionByPattern("$0 $1 $2", lhs!!, op!!, expression)) + if (lhs != null && op != null) { + expression.replace(psiFactory.createExpressionByPattern("$0 $1 $2", lhs!!, op!!, expression)) + } } fun foldToReturn(expression: KtExpression): KtExpression { diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/LiftAssignmentOutOfTryFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/LiftAssignmentOutOfTryFix.kt index 5ee90cd96e8..dae698f722a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/LiftAssignmentOutOfTryFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/LiftAssignmentOutOfTryFix.kt @@ -22,7 +22,7 @@ class LiftAssignmentOutOfTryFix(element: KtTryExpression) : KotlinQuickFixAction override fun invoke(project: Project, editor: Editor?, file: KtFile) { val element = element ?: return - BranchedFoldingUtils.foldToAssignment(element) + BranchedFoldingUtils.tryFoldToAssignment(element) } companion object : KotlinSingleIntentionActionFactory() { diff --git a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/processings/inspeсtionLikeProcessings.kt b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/processings/inspeсtionLikeProcessings.kt index 4f0c7cfdc90..53149e66a45 100644 --- a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/processings/inspeсtionLikeProcessings.kt +++ b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/processings/inspeсtionLikeProcessings.kt @@ -491,7 +491,7 @@ class LiftAssignmentInspectionBasedProcessing : } ?: false override fun apply(element: KtExpression) { - BranchedFoldingUtils.foldToAssignment(element) + BranchedFoldingUtils.tryFoldToAssignment(element) } }