From 3fad68ad4cf3194f6392d7acdb07d7fd1073e936 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 9 Apr 2015 19:45:45 +0300 Subject: [PATCH] Completion: no "else" in first when entry --- .../jetbrains/kotlin/idea/completion/smart/KeywordValues.kt | 3 ++- idea/testData/completion/handlers/smart/WhenElse.kt | 1 + idea/testData/completion/handlers/smart/WhenElse.kt.after | 1 + idea/testData/completion/smart/whenEntry/1.kt | 2 +- idea/testData/completion/smart/whenEntry/2.kt | 2 +- idea/testData/completion/smart/whenEntry/WhenWithNoSubject1.kt | 2 +- 6 files changed, 7 insertions(+), 4 deletions(-) diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/KeywordValues.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/KeywordValues.kt index 445e36e2a3d..a248bb7bf78 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/KeywordValues.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/smart/KeywordValues.kt @@ -34,7 +34,8 @@ object KeywordValues { if (whenCondition != null) { val entry = whenCondition.getParent() as JetWhenEntry val whenExpression = entry.getParent() as JetWhenExpression - if (whenExpression.getElseExpression() == null && entry == whenExpression.getEntries().last) { + val entries = whenExpression.getEntries() + if (whenExpression.getElseExpression() == null && entry == entries.last() && entries.size() != 1) { val lookupElement = LookupElementBuilder.create("else").bold().withTailText(" ->") collection.add(object: LookupElementDecorator(lookupElement) { override fun handleInsert(context: InsertionContext) { diff --git a/idea/testData/completion/handlers/smart/WhenElse.kt b/idea/testData/completion/handlers/smart/WhenElse.kt index 3673e6d0039..b9edb90ad4c 100644 --- a/idea/testData/completion/handlers/smart/WhenElse.kt +++ b/idea/testData/completion/handlers/smart/WhenElse.kt @@ -1,5 +1,6 @@ fun foo(s: String) { when(s) { + "" -> return } } diff --git a/idea/testData/completion/handlers/smart/WhenElse.kt.after b/idea/testData/completion/handlers/smart/WhenElse.kt.after index b63e514dfd9..393d56f8b60 100644 --- a/idea/testData/completion/handlers/smart/WhenElse.kt.after +++ b/idea/testData/completion/handlers/smart/WhenElse.kt.after @@ -1,5 +1,6 @@ fun foo(s: String) { when(s) { + "" -> return else -> } } diff --git a/idea/testData/completion/smart/whenEntry/1.kt b/idea/testData/completion/smart/whenEntry/1.kt index 8e4771b1f20..5d94a6c49b3 100644 --- a/idea/testData/completion/smart/whenEntry/1.kt +++ b/idea/testData/completion/smart/whenEntry/1.kt @@ -13,4 +13,4 @@ fun foo(e: E) { // EXIST: { lookupString:"A", itemText:"E.A" } // EXIST: { lookupString:"B", itemText:"E.B" } // EXIST: { lookupString:"C", itemText:"E.C" } -// EXIST: {"lookupString":"else","tailText":" ->","itemText":"else"} +// ABSENT: else diff --git a/idea/testData/completion/smart/whenEntry/2.kt b/idea/testData/completion/smart/whenEntry/2.kt index 28ab1419a10..dddbdb575f4 100644 --- a/idea/testData/completion/smart/whenEntry/2.kt +++ b/idea/testData/completion/smart/whenEntry/2.kt @@ -13,4 +13,4 @@ fun foo(e: E) { // ABSENT: A // EXIST: { lookupString:"B", itemText:"E.B" } // EXIST: { lookupString:"C", itemText:"E.C" } -// ABSENT:else +// ABSENT: else diff --git a/idea/testData/completion/smart/whenEntry/WhenWithNoSubject1.kt b/idea/testData/completion/smart/whenEntry/WhenWithNoSubject1.kt index 4eb3de394a8..f4a1ffe5449 100644 --- a/idea/testData/completion/smart/whenEntry/WhenWithNoSubject1.kt +++ b/idea/testData/completion/smart/whenEntry/WhenWithNoSubject1.kt @@ -8,4 +8,4 @@ fun foo(b1: Boolean, b2: Boolean) { // EXIST: b2 // ABSENT: true // ABSENT: false -// EXIST: {"lookupString":"else","tailText":" ->","itemText":"else"} +// ABSENT: else