From 478b5070efa527ddefd0a7b59e9f2adb290fb6a3 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 16 Dec 2014 13:42:08 +0100 Subject: [PATCH] KT-6019 Join lines should remove code block in when entry body #KT-6019 Fixed --- .../joinLines/JoinBlockIntoSingleStatementHandler.kt | 4 +++- idea/testData/joinLines/removeBraces/WhenEntry.kt | 7 +++++++ idea/testData/joinLines/removeBraces/WhenEntry.kt.after | 5 +++++ .../intentions/declarations/JoinLinesTestGenerated.java | 6 ++++++ 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 idea/testData/joinLines/removeBraces/WhenEntry.kt create mode 100644 idea/testData/joinLines/removeBraces/WhenEntry.kt.after diff --git a/idea/src/org/jetbrains/jet/plugin/joinLines/JoinBlockIntoSingleStatementHandler.kt b/idea/src/org/jetbrains/jet/plugin/joinLines/JoinBlockIntoSingleStatementHandler.kt index a86b97e6287..eaaf01bb6af 100644 --- a/idea/src/org/jetbrains/jet/plugin/joinLines/JoinBlockIntoSingleStatementHandler.kt +++ b/idea/src/org/jetbrains/jet/plugin/joinLines/JoinBlockIntoSingleStatementHandler.kt @@ -23,6 +23,7 @@ import org.jetbrains.jet.lang.psi.JetFile import org.jetbrains.jet.lexer.JetTokens import org.jetbrains.jet.lang.psi.JetBlockExpression import org.jetbrains.jet.lang.psi.JetContainerNode +import org.jetbrains.jet.lang.psi.JetWhenEntry public class JoinBlockIntoSingleStatementHandler : JoinRawLinesHandlerDelegate { override fun tryJoinRawLines(document: Document, file: PsiFile, start: Int, end: Int): Int { @@ -34,7 +35,8 @@ public class JoinBlockIntoSingleStatementHandler : JoinRawLinesHandlerDelegate { val block = brace.getParent() as? JetBlockExpression ?: return -1 val statement = block.getStatements().singleOrNull() ?: return -1 - if (block.getParent() !is JetContainerNode) return -1 + val parent = block.getParent() + if (parent !is JetContainerNode && parent !is JetWhenEntry) return -1 if (block.getNode().getChildren(JetTokens.COMMENTS).isNotEmpty()) return -1 // otherwise we will loose comments val newStatement = block.replace(statement) diff --git a/idea/testData/joinLines/removeBraces/WhenEntry.kt b/idea/testData/joinLines/removeBraces/WhenEntry.kt new file mode 100644 index 00000000000..b843f1eec3b --- /dev/null +++ b/idea/testData/joinLines/removeBraces/WhenEntry.kt @@ -0,0 +1,7 @@ +fun foo(p: Int) { + when (p) { + 1 -> { + println() + } + } +} \ No newline at end of file diff --git a/idea/testData/joinLines/removeBraces/WhenEntry.kt.after b/idea/testData/joinLines/removeBraces/WhenEntry.kt.after new file mode 100644 index 00000000000..5405c23d2e9 --- /dev/null +++ b/idea/testData/joinLines/removeBraces/WhenEntry.kt.after @@ -0,0 +1,5 @@ +fun foo(p: Int) { + when (p) { + 1 -> println() + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/intentions/declarations/JoinLinesTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/intentions/declarations/JoinLinesTestGenerated.java index a6d72b6fcb1..f08b4dd02eb 100644 --- a/idea/tests/org/jetbrains/jet/plugin/intentions/declarations/JoinLinesTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/intentions/declarations/JoinLinesTestGenerated.java @@ -234,6 +234,12 @@ public class JoinLinesTestGenerated extends AbstractJoinLinesTest { doTest(fileName); } + @TestMetadata("WhenEntry.kt") + public void testWhenEntry() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/joinLines/removeBraces/WhenEntry.kt"); + doTest(fileName); + } + @TestMetadata("While.kt") public void testWhile() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/joinLines/removeBraces/While.kt");