Move lambda inside: protect from KNPE in getLambdaExpression

So EA-114888 Fixed
This commit is contained in:
Mikhail Glukhikh
2018-01-18 17:50:41 +03:00
parent f675d9fd81
commit b1bff24cde
@@ -22,10 +22,13 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.core.moveInsideParentheses
import org.jetbrains.kotlin.psi.KtLambdaArgument
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 {
val body = element.getLambdaExpression().bodyExpression ?: return true
val body = element.getArgumentExpression().unpackFunctionLiteral()?.bodyExpression ?: return true
return !body.textRange.containsInside(caretOffset)
}