From 912ddfcb2b18974c4846aa967fdb8c9b01d4ce91 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 29 Sep 2017 15:27:35 +0300 Subject: [PATCH] Build name correctly in ShadowedDeclarationsFilter So #KT-16383 Fixed Also should fix EA-104812, EA-99338, EA-107064 --- .../kotlin/idea/util/ShadowedDeclarationsFilter.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/ShadowedDeclarationsFilter.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/ShadowedDeclarationsFilter.kt index 7f39da2367a..c4dc9e1b312 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/ShadowedDeclarationsFilter.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/ShadowedDeclarationsFilter.kt @@ -118,14 +118,19 @@ class ShadowedDeclarationsFilter( ): Collection { if (descriptors.size == 1) return descriptors - val first = descriptors.first() + val first = descriptors.firstOrNull { + it is ClassDescriptor || it is ConstructorDescriptor || it is CallableDescriptor && !it.name.isSpecial + } ?: return descriptors if (first is ClassDescriptor) { // for classes with the same FQ-name we simply take the first one return listOf(first) } val isFunction = first is FunctionDescriptor - val name = first.name + val name = when (first) { + is ConstructorDescriptor -> first.constructedClass.name + else -> first.name + } val parameters = (first as CallableDescriptor).valueParameters val dummyArgumentExpressions = dummyExpressionFactory.createDummyExpressions(parameters.size)