Do not search inheritors of Any

This commit is contained in:
Valentin Kipyatkov
2014-11-27 14:46:24 +03:00
parent 9af2877f97
commit c1252c7963
2 changed files with 10 additions and 7 deletions
@@ -97,13 +97,15 @@ class TypeInstantiationItems(
val typeArgs = type.getArguments() val typeArgs = type.getArguments()
items.addIfNotNull(createTypeInstantiationItem(classifier, typeArgs, tail)) 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)) val javaAnalogFqName = KotlinToJavaTypesMap.getInstance().getKotlinToJavaFqName(DescriptorUtils.getFqNameSafe(classifier))
if (javaAnalogFqName != null) { if (javaAnalogFqName != null) {
val javaAnalog = moduleDescriptor.resolveTopLevelClass(javaAnalogFqName) val javaAnalog = moduleDescriptor.resolveTopLevelClass(javaAnalogFqName)
if (javaAnalog != null) { if (javaAnalog != null) {
inheritanceSearchers.addInheritorSearcher(javaAnalog, classifier, typeArgs, tail) inheritanceSearchers.addInheritorSearcher(javaAnalog, classifier, typeArgs, tail)
}
} }
} }
} }
@@ -7,3 +7,4 @@ val v: Any = <caret>
// ABSENT: ::foo // ABSENT: ::foo
// ABSENT: ::C // ABSENT: ::C
// ABSENT: ::Runnable // ABSENT: ::Runnable
// ABSENT: C