diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/finder/JavaElementFinder.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/finder/JavaElementFinder.kt index 6b53fce9661..4c18266db20 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/finder/JavaElementFinder.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/finder/JavaElementFinder.kt @@ -24,6 +24,7 @@ import com.intellij.psi.* import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.util.PsiUtilCore import com.intellij.util.SmartList +import com.intellij.util.containers.ContainerUtil import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport import org.jetbrains.kotlin.asJava.classes.FakeLightClassForFileOfPackage import org.jetbrains.kotlin.asJava.toLightClass @@ -185,9 +186,13 @@ class JavaElementFinder( } private fun List.sortByClasspathPreferringNonFakeFiles(searchScope: GlobalSearchScope): List { - return this.sortedWith(byClasspathComparator(searchScope)).sortedBy { + val result = this.toMutableList() + // NOTE: this comparator might violate the contract depending on the scope passed + ContainerUtil.quickSort(result, byClasspathComparator(searchScope)) + result.sortBy { it is FakeLightClassForFileOfPackage } + return result } } }