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 5423570282f..eb3d33ac304 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 @@ -170,9 +170,9 @@ class KotlinCompletionContributor : CompletionContributor() { private fun isInClassHeader(tokenBefore: PsiElement?): Boolean { val classOrObject = tokenBefore?.parents?.firstIsInstanceOrNull() ?: return false val name = classOrObject.nameIdentifier ?: return false - val body = classOrObject.getBody() ?: return false + val headerEnd = classOrObject.body?.startOffset ?: classOrObject.endOffset val offset = tokenBefore.startOffset - return name.endOffset <= offset && offset <= body.startOffset + return name.endOffset <= offset && offset <= headerEnd } private fun specialLambdaSignatureDummyIdentifier(tokenBefore: PsiElement?): String? { diff --git a/idea/idea-completion/testData/basic/common/KT31762.kt b/idea/idea-completion/testData/basic/common/KT31762.kt new file mode 100644 index 00000000000..bfa60ad5eea --- /dev/null +++ b/idea/idea-completion/testData/basic/common/KT31762.kt @@ -0,0 +1,6 @@ +enum class A { AAA } +enum class E(val one: A, val two: A) { + EE(A., A.AAA) +} + +// EXIST: AAA \ 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 1188ace753c..56a43051a87 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 @@ -440,6 +440,11 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes runTest("idea/idea-completion/testData/basic/common/KT13780_1.kt"); } + @TestMetadata("KT31762.kt") + public void testKT31762() throws Exception { + runTest("idea/idea-completion/testData/basic/common/KT31762.kt"); + } + @TestMetadata("KT33903_1.kt") public void testKT33903_1() throws Exception { runTest("idea/idea-completion/testData/basic/common/KT33903_1.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 a3489e07400..9d5c3d2d843 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 @@ -440,6 +440,11 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT runTest("idea/idea-completion/testData/basic/common/KT13780_1.kt"); } + @TestMetadata("KT31762.kt") + public void testKT31762() throws Exception { + runTest("idea/idea-completion/testData/basic/common/KT31762.kt"); + } + @TestMetadata("KT33903_1.kt") public void testKT33903_1() throws Exception { runTest("idea/idea-completion/testData/basic/common/KT33903_1.kt");