diff --git a/idea/src/org/jetbrains/jet/plugin/completion/handlers/WithTailInsertHandler.kt b/idea/src/org/jetbrains/jet/plugin/completion/handlers/WithTailInsertHandler.kt index 1840e652f71..3592a4c96e5 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/handlers/WithTailInsertHandler.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/handlers/WithTailInsertHandler.kt @@ -90,6 +90,6 @@ class WithTailInsertHandler(val tailText: String, fun rparenthTail() = WithTailInsertHandler(")", spaceBefore = false, spaceAfter = false) fun elseTail() = WithTailInsertHandler("else", spaceBefore = true, spaceAfter = true) fun eqTail() = WithTailInsertHandler("=", spaceBefore = true, spaceAfter = true) /*TODO: use code style options*/ - fun spaceTail() = WithTailInsertHandler(" ", spaceBefore = false, spaceAfter = false) + fun spaceTail() = WithTailInsertHandler(" ", spaceBefore = false, spaceAfter = false, overwriteText = false) } } diff --git a/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnit.kt b/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnit.kt new file mode 100644 index 00000000000..4fb22014b1e --- /dev/null +++ b/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnit.kt @@ -0,0 +1,10 @@ +fun foo() { + takeHandler1 { + takeHandler2({ ret }) + } +} + +inline fun takeHandler1(handler: () -> Unit){} +inline fun takeHandler2(handler: () -> String){} + +// ELEMENT: return@takeHandler2 diff --git a/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnit.kt.after b/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnit.kt.after new file mode 100644 index 00000000000..5804d5f9252 --- /dev/null +++ b/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnit.kt.after @@ -0,0 +1,10 @@ +fun foo() { + takeHandler1 { + takeHandler2({ return@takeHandler2 }) + } +} + +inline fun takeHandler1(handler: () -> Unit){} +inline fun takeHandler2(handler: () -> String){} + +// ELEMENT: return@takeHandler2 diff --git a/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnitExplicit.kt b/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnitExplicit.kt new file mode 100644 index 00000000000..b15f7823ff2 --- /dev/null +++ b/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnitExplicit.kt @@ -0,0 +1,10 @@ +fun foo() { + takeHandler1 { + takeHandler2({ (): String -> ret }) + } +} + +inline fun takeHandler1(handler: () -> Unit){} +inline fun takeHandler2(handler: () -> String){} + +// ELEMENT: return@takeHandler2 diff --git a/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnitExplicit.kt.after b/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnitExplicit.kt.after new file mode 100644 index 00000000000..a981d8cbd7f --- /dev/null +++ b/idea/testData/completion/handlers/keywords/QualifiedReturnNonUnitExplicit.kt.after @@ -0,0 +1,10 @@ +fun foo() { + takeHandler1 { + takeHandler2({ (): String -> return@takeHandler2 }) + } +} + +inline fun takeHandler1(handler: () -> Unit){} +inline fun takeHandler2(handler: () -> String){} + +// ELEMENT: return@takeHandler2 diff --git a/idea/testData/completion/handlers/keywords/QualifiedReturnUnit.kt b/idea/testData/completion/handlers/keywords/QualifiedReturnUnit.kt new file mode 100644 index 00000000000..9eaedcefc8a --- /dev/null +++ b/idea/testData/completion/handlers/keywords/QualifiedReturnUnit.kt @@ -0,0 +1,10 @@ +fun foo() { + takeHandler1 { + takeHandler2({ ret }) + } +} + +inline fun takeHandler1(handler: () -> Unit){} +inline fun takeHandler2(handler: () -> String){} + +// ELEMENT: return@takeHandler1 diff --git a/idea/testData/completion/handlers/keywords/QualifiedReturnUnit.kt.after b/idea/testData/completion/handlers/keywords/QualifiedReturnUnit.kt.after new file mode 100644 index 00000000000..85d9e313dcc --- /dev/null +++ b/idea/testData/completion/handlers/keywords/QualifiedReturnUnit.kt.after @@ -0,0 +1,10 @@ +fun foo() { + takeHandler1 { + takeHandler2({ return@takeHandler1 }) + } +} + +inline fun takeHandler1(handler: () -> Unit){} +inline fun takeHandler2(handler: () -> String){} + +// ELEMENT: return@takeHandler1 diff --git a/idea/tests/org/jetbrains/jet/completion/handlers/KeywordCompletionHandlerTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/handlers/KeywordCompletionHandlerTestGenerated.java index 01611bf7588..f9d0a8cc916 100644 --- a/idea/tests/org/jetbrains/jet/completion/handlers/KeywordCompletionHandlerTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/completion/handlers/KeywordCompletionHandlerTestGenerated.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.completion.handlers; import com.intellij.testFramework.TestDataPath; import org.jetbrains.jet.JUnit3RunnerWithInners; import org.jetbrains.jet.JetTestUtils; +import org.jetbrains.jet.test.InnerTestClasses; import org.jetbrains.jet.test.TestMetadata; import org.junit.runner.RunWith; @@ -47,6 +48,24 @@ public class KeywordCompletionHandlerTestGenerated extends AbstractKeywordComple doTest(fileName); } + @TestMetadata("QualifiedReturnNonUnit.kt") + public void testQualifiedReturnNonUnit() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/keywords/QualifiedReturnNonUnit.kt"); + doTest(fileName); + } + + @TestMetadata("QualifiedReturnNonUnitExplicit.kt") + public void testQualifiedReturnNonUnitExplicit() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/keywords/QualifiedReturnNonUnitExplicit.kt"); + doTest(fileName); + } + + @TestMetadata("QualifiedReturnUnit.kt") + public void testQualifiedReturnUnit() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/keywords/QualifiedReturnUnit.kt"); + doTest(fileName); + } + @TestMetadata("ReturnInEmptyType.kt") public void testReturnInEmptyType() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/keywords/ReturnInEmptyType.kt");