diff --git a/idea/src/org/jetbrains/jet/plugin/completion/KeywordCompletion.kt b/idea/src/org/jetbrains/jet/plugin/completion/KeywordCompletion.kt index b019a09737b..8e51f4bd890 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/KeywordCompletion.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/KeywordCompletion.kt @@ -46,6 +46,8 @@ object KeywordCompletion { .filter { it !in NON_ACTUAL_KEYWORDS } .map { it as JetKeywordToken } + private val KEYWORD_TO_DUMMY_POSTFIX = mapOf(OUT_KEYWORD to " X") + public fun complete(parameters: CompletionParameters, prefixMatcher: PrefixMatcher, collector: LookupElementsCollector) { val position = parameters.getPosition() @@ -155,7 +157,8 @@ object KeywordCompletion { private fun buildFilterByText(prefixText: String, project: Project): (JetKeywordToken) -> Boolean { val psiFactory = JetPsiFactory(project) return { keywordTokenType -> - val file = psiFactory.createFile(prefixText + keywordTokenType.getValue()) + val postfix = KEYWORD_TO_DUMMY_POSTFIX[keywordTokenType] ?: "" + val file = psiFactory.createFile(prefixText + keywordTokenType.getValue() + postfix) val elementAt = file.findElementAt(prefixText.length)!! val nodeType = elementAt.getNode()!!.getElementType() when { diff --git a/idea/testData/completion/keywords/InClassTypeParameters.kt b/idea/testData/completion/keywords/InClassTypeParameters.kt index 899e31954c0..872388e13a8 100644 --- a/idea/testData/completion/keywords/InClassTypeParameters.kt +++ b/idea/testData/completion/keywords/InClassTypeParameters.kt @@ -1,5 +1,5 @@ class T<> // EXIST: in -/*TODO: // EXIST: out*/ -// NUMBER: 1 \ No newline at end of file +// EXIST: out +// NUMBER: 2 \ No newline at end of file diff --git a/idea/testData/completion/keywords/InMemberFunParametersList.kt b/idea/testData/completion/keywords/InMemberFunParametersList.kt index 91e21b93f64..c1ea943f23f 100644 --- a/idea/testData/completion/keywords/InMemberFunParametersList.kt +++ b/idea/testData/completion/keywords/InMemberFunParametersList.kt @@ -9,4 +9,5 @@ class TestSample() { // EXIST: val // EXIST: var // EXIST: in -// NUMBER: 3 \ No newline at end of file +// EXIST: out +// NUMBER: 4 \ No newline at end of file diff --git a/idea/testData/completion/keywords/InNotFinishedGenericWithFunAfter.kt b/idea/testData/completion/keywords/InNotFinishedGenericWithFunAfter.kt index 98f6b0fde2e..23bb0532d4a 100644 --- a/idea/testData/completion/keywords/InNotFinishedGenericWithFunAfter.kt +++ b/idea/testData/completion/keywords/InNotFinishedGenericWithFunAfter.kt @@ -3,5 +3,5 @@ class Test< fun testing() {} // EXIST: in -/*TODO: // EXIST: out*/ -// NUMBER: 1 \ No newline at end of file +// EXIST: out +// NUMBER: 2 \ No newline at end of file diff --git a/idea/testData/completion/keywords/InTopFunParametersList.kt b/idea/testData/completion/keywords/InTopFunParametersList.kt index 723b9c822f8..c08fc81ba6c 100644 --- a/idea/testData/completion/keywords/InTopFunParametersList.kt +++ b/idea/testData/completion/keywords/InTopFunParametersList.kt @@ -6,4 +6,5 @@ fun test() { // EXIST: val // EXIST: var // EXIST: in -// NUMBER: 3 \ No newline at end of file +// EXIST: out +// NUMBER: 4 \ No newline at end of file