Move lambda inside: protect from KNPE in getLambdaExpression
So EA-114888 Fixed
This commit is contained in:
+5
-2
@@ -22,10 +22,13 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
|||||||
import org.jetbrains.kotlin.idea.core.moveInsideParentheses
|
import org.jetbrains.kotlin.idea.core.moveInsideParentheses
|
||||||
import org.jetbrains.kotlin.psi.KtLambdaArgument
|
import org.jetbrains.kotlin.psi.KtLambdaArgument
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.containsInside
|
import org.jetbrains.kotlin.psi.psiUtil.containsInside
|
||||||
|
import org.jetbrains.kotlin.psi.unpackFunctionLiteral
|
||||||
|
|
||||||
class MoveLambdaInsideParenthesesIntention : SelfTargetingIntention<KtLambdaArgument>(KtLambdaArgument::class.java, "Move lambda argument into parentheses"), LowPriorityAction {
|
class MoveLambdaInsideParenthesesIntention : SelfTargetingIntention<KtLambdaArgument>(
|
||||||
|
KtLambdaArgument::class.java, "Move lambda argument into parentheses"
|
||||||
|
), LowPriorityAction {
|
||||||
override fun isApplicableTo(element: KtLambdaArgument, caretOffset: Int): Boolean {
|
override fun isApplicableTo(element: KtLambdaArgument, caretOffset: Int): Boolean {
|
||||||
val body = element.getLambdaExpression().bodyExpression ?: return true
|
val body = element.getArgumentExpression().unpackFunctionLiteral()?.bodyExpression ?: return true
|
||||||
return !body.textRange.containsInside(caretOffset)
|
return !body.textRange.containsInside(caretOffset)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user