diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicLookupElementFactory.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicLookupElementFactory.kt index f61ba2df060..f1d856c3148 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicLookupElementFactory.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/BasicLookupElementFactory.kt @@ -175,7 +175,10 @@ class BasicLookupElementFactory( element = element.withPresentableText(DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderClassifierName(descriptor)) while (container is ClassDescriptor) { - element = element.withLookupString(container.name.asString()) + val containerName = container.name + if (!containerName.isSpecial) { + element = element.withLookupString(containerName.asString()) + } container = container.getContainingDeclaration() } } diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt index 8694f611f7b..968386b845c 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/LookupElementFactory.kt @@ -132,7 +132,7 @@ class LookupElementFactory( var parametersRenderer = DescriptorRenderer.SHORT_NAMES_IN_TYPES if (descriptor.valueParameters.size() > 1) { parametersRenderer = parametersRenderer.withOptions { - valueParametersHandler = object: DescriptorRenderer.ValueParametersHandler by DescriptorRenderer.ValueParametersHandler.DEFAULT { + valueParametersHandler = object: DescriptorRenderer.ValueParametersHandler by this.valueParametersHandler { override fun appendBeforeValueParameter(parameter: ValueParameterDescriptor, parameterIndex: Int, parameterCount: Int, builder: StringBuilder) { builder.append("..., ") } @@ -236,12 +236,12 @@ class LookupElementFactory( ): LookupElement { var element = basicFactory.createLookupElement(descriptor, qualifyNestedClasses, includeClassTypeArguments) - val weight = callableWeight(descriptor) - if (weight != null) { - element.putUserData(CALLABLE_WEIGHT_KEY, weight) // store for use in lookup elements sorting - } - if (useReceiverTypes) { + val weight = callableWeight(descriptor) + if (weight != null) { + element.putUserData(CALLABLE_WEIGHT_KEY, weight) // store for use in lookup elements sorting + } + element = element.boldIfImmediate(weight) } return element diff --git a/idea/idea-completion/testData/smartMultiFile/NestedClassAfterAs/JavaClass.java b/idea/idea-completion/testData/smartMultiFile/NestedClassAfterAs/JavaClass.java new file mode 100644 index 00000000000..e1848771535 --- /dev/null +++ b/idea/idea-completion/testData/smartMultiFile/NestedClassAfterAs/JavaClass.java @@ -0,0 +1,3 @@ +class JavaClass { + public class Nested{} +} diff --git a/idea/idea-completion/testData/smartMultiFile/NestedClassAfterAs/NestedClassAfterAs.kt b/idea/idea-completion/testData/smartMultiFile/NestedClassAfterAs/NestedClassAfterAs.kt new file mode 100644 index 00000000000..c811495ef3b --- /dev/null +++ b/idea/idea-completion/testData/smartMultiFile/NestedClassAfterAs/NestedClassAfterAs.kt @@ -0,0 +1,13 @@ +class KotlinClass { + class Nested +} + +fun foo(o: Any) { + f(o as ) +} + +fun f(p: JavaClass.Nested){} +fun f(p: KotlinClass.Nested){} + +// EXIST: { lookupString: "Nested", allLookupStrings: "JavaClass, Nested", itemText: "JavaClass.Nested", tailText: " ()" } +// EXIST: { lookupString: "Nested", allLookupStrings: "KotlinClass, Nested", itemText: "KotlinClass.Nested", tailText: " ()" } diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java index 08e46fd8129..2ccb5daec3b 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java @@ -113,6 +113,12 @@ public class MultiFileSmartCompletionTestGenerated extends AbstractMultiFileSmar doTest(fileName); } + @TestMetadata("NestedClassAfterAs") + public void testNestedClassAfterAs() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/smartMultiFile/NestedClassAfterAs/"); + doTest(fileName); + } + @TestMetadata("NoObjectDuplication") public void testNoObjectDuplication() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/smartMultiFile/NoObjectDuplication/");