EA-210533: fix NPE in LiftReturnOrAssignmentInspection
It may be still active after its application due to slow IDEA responsiveness Do not try to apply it again on invalid PSI elements
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -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 {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
+1
-1
@@ -491,7 +491,7 @@ class LiftAssignmentInspectionBasedProcessing :
|
||||
} ?: false
|
||||
|
||||
override fun apply(element: KtExpression) {
|
||||
BranchedFoldingUtils.foldToAssignment(element)
|
||||
BranchedFoldingUtils.tryFoldToAssignment(element)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user