diff --git a/idea/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinCallableInsertHandler.kt b/idea/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinCallableInsertHandler.kt index 75998775b61..23d7299c0ae 100644 --- a/idea/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinCallableInsertHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinCallableInsertHandler.kt @@ -152,11 +152,11 @@ public class KotlinFunctionInsertHandler(val caretPosition : CaretPosition, val val closingBracket = if (braces) '}' else ')' if (completionChar == Lookup.REPLACE_SELECT_CHAR) { - offset = skipSpaces(chars, offset) - if (offset < document.getTextLength()) { - if (chars[offset] == '<') { + val offset1 = skipSpaces(chars, offset) + if (offset1 < document.getTextLength()) { + if (chars[offset1] == '<') { PsiDocumentManager.getInstance(context.getProject()).commitDocument(document) - val token = context.getFile().findElementAt(offset)!! + val token = context.getFile().findElementAt(offset1)!! if (token.getNode().getElementType() == JetTokens.LT) { val parent = token.getParent() if (parent is JetTypeArgumentList && parent.getText().indexOf('\n') < 0/* if type argument list is on multiple lines this is more likely wrong parsing*/) { diff --git a/idea/testData/completion/handlers/basic/GenericFunctionWithTab2.kt b/idea/testData/completion/handlers/basic/GenericFunctionWithTab2.kt new file mode 100644 index 00000000000..2fef4ef3f2c --- /dev/null +++ b/idea/testData/completion/handlers/basic/GenericFunctionWithTab2.kt @@ -0,0 +1,6 @@ +fun foo() {} + +fun use() = f () + +// ELEMENT: foo +// CHAR: '\t' diff --git a/idea/testData/completion/handlers/basic/GenericFunctionWithTab2.kt.after b/idea/testData/completion/handlers/basic/GenericFunctionWithTab2.kt.after new file mode 100644 index 00000000000..32cce2aaf11 --- /dev/null +++ b/idea/testData/completion/handlers/basic/GenericFunctionWithTab2.kt.after @@ -0,0 +1,6 @@ +fun foo() {} + +fun use() = foo () + +// ELEMENT: foo +// CHAR: '\t' diff --git a/idea/testData/completion/handlers/basic/SpaceAfterParenthesisBug.kt b/idea/testData/completion/handlers/basic/SpaceAfterParenthesisBug.kt new file mode 100644 index 00000000000..42489726bbe --- /dev/null +++ b/idea/testData/completion/handlers/basic/SpaceAfterParenthesisBug.kt @@ -0,0 +1,8 @@ +class Pair(val first: Int, val second: Int) + +fun foo(p: Pair) { + if (p.first < p.second) +} + +// ELEMENT: hashCode +// CHAR: '\t' diff --git a/idea/testData/completion/handlers/basic/SpaceAfterParenthesisBug.kt.after b/idea/testData/completion/handlers/basic/SpaceAfterParenthesisBug.kt.after new file mode 100644 index 00000000000..a0ad3a76e5f --- /dev/null +++ b/idea/testData/completion/handlers/basic/SpaceAfterParenthesisBug.kt.after @@ -0,0 +1,8 @@ +class Pair(val first: Int, val second: Int) + +fun foo(p: Pair) { + if (p.hashCode() < p.second) +} + +// ELEMENT: hashCode +// CHAR: '\t' diff --git a/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTestGenerated.java index 11b1367ec9e..420588cd828 100644 --- a/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/completion/handlers/BasicCompletionHandlerTestGenerated.java @@ -63,6 +63,12 @@ public class BasicCompletionHandlerTestGenerated extends AbstractBasicCompletion doTest(fileName); } + @TestMetadata("GenericFunctionWithTab2.kt") + public void testGenericFunctionWithTab2() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/basic/GenericFunctionWithTab2.kt"); + doTest(fileName); + } + @TestMetadata("NestedTypeArg.kt") public void testNestedTypeArg() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/basic/NestedTypeArg.kt"); @@ -75,6 +81,12 @@ public class BasicCompletionHandlerTestGenerated extends AbstractBasicCompletion doTest(fileName); } + @TestMetadata("SpaceAfterParenthesisBug.kt") + public void testSpaceAfterParenthesisBug() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/basic/SpaceAfterParenthesisBug.kt"); + doTest(fileName); + } + @TestMetadata("SuperTypeArg.kt") public void testSuperTypeArg() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/handlers/basic/SuperTypeArg.kt");