From 077307b518575aa806c6cc5d8b3264f6e521b200 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 28 Apr 2015 15:43:06 +0300 Subject: [PATCH] "Move lambda argument into parentheses" intention - slightly wider range --- .../jetbrains/kotlin/psi/JetFunctionLiteralExpression.java | 5 +---- .../idea/intentions/MoveLambdaInsideParenthesesIntention.kt | 6 +++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetFunctionLiteralExpression.java b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetFunctionLiteralExpression.java index e190171e445..e3b5b5789a5 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/psi/JetFunctionLiteralExpression.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/psi/JetFunctionLiteralExpression.java @@ -44,14 +44,11 @@ public class JetFunctionLiteralExpression extends JetExpressionImpl { return getFunctionLiteral().getValueParameters(); } + @Nullable public JetBlockExpression getBodyExpression() { return getFunctionLiteral().getBodyExpression(); } - public boolean hasBlockBody() { - return getFunctionLiteral().hasBlockBody(); - } - public boolean hasDeclaredReturnType() { return getFunctionLiteral().getTypeReference() != null; } diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/MoveLambdaInsideParenthesesIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/MoveLambdaInsideParenthesesIntention.kt index dbca1fd028c..898389ccc2a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/MoveLambdaInsideParenthesesIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/MoveLambdaInsideParenthesesIntention.kt @@ -23,9 +23,9 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyzeFully public class MoveLambdaInsideParenthesesIntention : JetSelfTargetingIntention(javaClass(), "Move lambda argument into parentheses") { override fun isApplicableTo(element: JetFunctionLiteralArgument, caretOffset: Int): Boolean { - val lBrace = element.getFunctionLiteral().getLeftCurlyBrace() - val rBrace = element.getFunctionLiteral().getRightCurlyBrace() ?: return false - return caretOffset < lBrace.getTextRange().getEndOffset() || rBrace.getTextRange().containsOffset(caretOffset) + val body = element.getFunctionLiteral().getBodyExpression() ?: return true + val bodyRange = body.getTextRange() + return caretOffset <= bodyRange.getStartOffset() || caretOffset >= bodyRange.getEndOffset() } override fun applyTo(element: JetFunctionLiteralArgument, editor: Editor) {