提交 482c6772 编写于 作者: A Andrei Klunnyi

KT-44299 [Sealed Interfaces]: when exhaustiveness in IDE considers java inheritor

^KT-44299 fixed
上级 7c4225b9
......@@ -17,6 +17,7 @@ import com.intellij.psi.search.searches.ClassInheritorsSearch.SearchParameters
import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.analyzer.moduleInfo
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.toLightClass
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
import org.jetbrains.kotlin.descriptors.ClassDescriptor
......@@ -30,6 +31,7 @@ import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
import org.jetbrains.kotlin.idea.util.module
import org.jetbrains.kotlin.js.resolve.diagnostics.findPsi
import org.jetbrains.kotlin.psi.KtClass
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.resolve.SealedClassInheritorsProvider
import org.jetbrains.kotlin.resolve.descriptorUtil.module
import org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade
......@@ -74,6 +76,7 @@ object IdeSealedClassInheritorsProvider : SealedClassInheritorsProvider() {
val resolutionFacade = getResolutionFacade(moduleDescriptor, project) ?: return emptyList()
return ClassInheritorsSearch.search(searchParameters)
.filter { psiClass -> psiClass is KtClassOrObject || psiClass is KtLightClass }
.mapNotNull { it.resolveToDescriptor(resolutionFacade) }
.sortedBy(ClassDescriptor::getName) // order needs to be stable (at least for tests)
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册