From 45d460a5fae8562be39fc62d0083ad72e995b924 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Wed, 27 Apr 2016 12:53:25 +0300 Subject: [PATCH] Dropped redundant code which was required for lambda signature completion when the syntax was different #KT-12033 Fixed --- .../completion/KotlinCompletionContributor.kt | 17 +++++------------ .../testData/basic/common/KT12033.kt | 8 ++++++++ .../test/JSBasicCompletionTestGenerated.java | 6 ++++++ .../test/JvmBasicCompletionTestGenerated.java | 6 ++++++ 4 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 idea/idea-completion/testData/basic/common/KT12033.kt diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt index 288ff0f90ff..1d1e779efb0 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt @@ -180,19 +180,12 @@ class KotlinCompletionContributor : CompletionContributor() { val lambda = leaf?.parents?.firstOrNull { it is KtFunctionLiteral } ?: return null - val lambdaChild = leaf!!.parents.takeWhile { it != lambda }.lastOrNull() ?: return null - if (lambdaChild is KtParameterList) return CompletionUtilCore.DUMMY_IDENTIFIER_TRIMMED + val lambdaChild = leaf!!.parents.takeWhile { it != lambda }.lastOrNull() - if (lambdaChild !is KtBlockExpression) return null - val blockChild = leaf.parents.takeWhile { it != lambdaChild }.lastOrNull() - if (blockChild !is PsiErrorElement) return null - val inIncompleteSignature = blockChild.siblings(forward = false, withItself = false).all { - when (it) { - is PsiWhiteSpace, is PsiComment -> true - else -> false - } - } - return if (inIncompleteSignature) CompletionUtilCore.DUMMY_IDENTIFIER_TRIMMED + "->" else null + return if (lambdaChild is KtParameterList) + CompletionUtilCore.DUMMY_IDENTIFIER_TRIMMED + else + null } diff --git a/idea/idea-completion/testData/basic/common/KT12033.kt b/idea/idea-completion/testData/basic/common/KT12033.kt new file mode 100644 index 00000000000..f5e61745318 --- /dev/null +++ b/idea/idea-completion/testData/basic/common/KT12033.kt @@ -0,0 +1,8 @@ +fun main(foo: Foo) { + foo.apply { + is + } +} +class Foo(val isValid: String) + +// EXIST: isValid \ No newline at end of file diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java index 9e856fbea74..c43b18c5df5 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java @@ -469,6 +469,12 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes doTest(fileName); } + @TestMetadata("KT12033.kt") + public void testKT12033() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/KT12033.kt"); + doTest(fileName); + } + @TestMetadata("LocalMultideclarationValues.kt") public void testLocalMultideclarationValues() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/LocalMultideclarationValues.kt"); diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java index e5ab8cf7efa..268c682347b 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java @@ -469,6 +469,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT doTest(fileName); } + @TestMetadata("KT12033.kt") + public void testKT12033() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/KT12033.kt"); + doTest(fileName); + } + @TestMetadata("LocalMultideclarationValues.kt") public void testLocalMultideclarationValues() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/LocalMultideclarationValues.kt");