From c1252c79639d4b10270320a7b842a4a5c8e43d36 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 27 Nov 2014 14:46:24 +0300 Subject: [PATCH] Do not search inheritors of Any --- .../completion/smart/TypeInstantiationItems.kt | 14 ++++++++------ idea/testData/completion/smart/AnyExpected.kt | 3 ++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt b/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt index c5c0fba81a4..6b16533eb9a 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt @@ -97,13 +97,15 @@ class TypeInstantiationItems( val typeArgs = type.getArguments() items.addIfNotNull(createTypeInstantiationItem(classifier, typeArgs, tail)) - inheritanceSearchers.addInheritorSearcher(classifier, classifier, typeArgs, tail) + if (!KotlinBuiltIns.getInstance().isAny(classifier)) { // do not search inheritors of Any + inheritanceSearchers.addInheritorSearcher(classifier, classifier, typeArgs, tail) - val javaAnalogFqName = KotlinToJavaTypesMap.getInstance().getKotlinToJavaFqName(DescriptorUtils.getFqNameSafe(classifier)) - if (javaAnalogFqName != null) { - val javaAnalog = moduleDescriptor.resolveTopLevelClass(javaAnalogFqName) - if (javaAnalog != null) { - inheritanceSearchers.addInheritorSearcher(javaAnalog, classifier, typeArgs, tail) + val javaAnalogFqName = KotlinToJavaTypesMap.getInstance().getKotlinToJavaFqName(DescriptorUtils.getFqNameSafe(classifier)) + if (javaAnalogFqName != null) { + val javaAnalog = moduleDescriptor.resolveTopLevelClass(javaAnalogFqName) + if (javaAnalog != null) { + inheritanceSearchers.addInheritorSearcher(javaAnalog, classifier, typeArgs, tail) + } } } } diff --git a/idea/testData/completion/smart/AnyExpected.kt b/idea/testData/completion/smart/AnyExpected.kt index 211098980db..73d4a997e72 100644 --- a/idea/testData/completion/smart/AnyExpected.kt +++ b/idea/testData/completion/smart/AnyExpected.kt @@ -6,4 +6,5 @@ val v: Any = // ABSENT: ::foo // ABSENT: ::C -// ABSENT: ::Runnable \ No newline at end of file +// ABSENT: ::Runnable +// ABSENT: C