From 34205c3ff0b73d85fda9bf1557715e9f82d89dac Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Mon, 13 Apr 2015 14:40:16 +0300 Subject: [PATCH] NPE in Surround with Action on empty line --- .../jetbrains/kotlin/idea/codeInsight/CodeInsightUtils.java | 2 ++ idea/testData/codeInsight/surroundWith/if/emptyLine.kt | 5 +++++ .../testData/codeInsight/surroundWith/if/emptyLine.kt.after | 5 +++++ .../codeInsight/surroundWith/SurroundWithTestGenerated.java | 6 ++++++ 4 files changed, 18 insertions(+) create mode 100644 idea/testData/codeInsight/surroundWith/if/emptyLine.kt create mode 100644 idea/testData/codeInsight/surroundWith/if/emptyLine.kt.after diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/CodeInsightUtils.java b/idea/src/org/jetbrains/kotlin/idea/codeInsight/CodeInsightUtils.java index 128f9ea5924..9a84c06224c 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/CodeInsightUtils.java +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/CodeInsightUtils.java @@ -73,6 +73,8 @@ public class CodeInsightUtils { startOffset = element1.getTextRange().getStartOffset(); endOffset = element2.getTextRange().getEndOffset(); + if (startOffset >= endOffset) return PsiElement.EMPTY_ARRAY; + PsiElement parent = PsiTreeUtil.findCommonParent(element1, element2); if (parent == null) return PsiElement.EMPTY_ARRAY; while (true) { diff --git a/idea/testData/codeInsight/surroundWith/if/emptyLine.kt b/idea/testData/codeInsight/surroundWith/if/emptyLine.kt new file mode 100644 index 00000000000..8a3a32d3803 --- /dev/null +++ b/idea/testData/codeInsight/surroundWith/if/emptyLine.kt @@ -0,0 +1,5 @@ +fun foo() { + val a = "" + + a +} \ No newline at end of file diff --git a/idea/testData/codeInsight/surroundWith/if/emptyLine.kt.after b/idea/testData/codeInsight/surroundWith/if/emptyLine.kt.after new file mode 100644 index 00000000000..1e9c54a3f18 --- /dev/null +++ b/idea/testData/codeInsight/surroundWith/if/emptyLine.kt.after @@ -0,0 +1,5 @@ +fun foo() { + val a = "" + + a +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/surroundWith/SurroundWithTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/surroundWith/SurroundWithTestGenerated.java index d32eb0ad296..67fb0fcd459 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/surroundWith/SurroundWithTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/surroundWith/SurroundWithTestGenerated.java @@ -43,6 +43,12 @@ public class SurroundWithTestGenerated extends AbstractSurroundWithTest { doTestWithIfSurrounder(fileName); } + @TestMetadata("emptyLine.kt") + public void testEmptyLine() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/codeInsight/surroundWith/if/emptyLine.kt"); + doTestWithIfSurrounder(fileName); + } + @TestMetadata("severalStatements.kt") public void testSeveralStatements() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/codeInsight/surroundWith/if/severalStatements.kt");