KT-44250 [Sealed interfaces]: completion fails for 'when' with sealed
This commit is contained in:
+6
-1
@@ -31,7 +31,7 @@ object IdeSealedClassInheritorsProvider : SealedClassInheritorsProvider() {
|
||||
val module = sealedKtClass.module ?: return emptyList()
|
||||
val moduleSourceScope = GlobalSearchScope.moduleScope(module)
|
||||
val containingPackage = sealedClass.containingPackage() ?: return emptyList()
|
||||
val psiPackage = JavaDirectoryService.getInstance().getPackage(sealedKtClass.containingFile.containingDirectory)
|
||||
val psiPackage = getPackageViaDirectoryService(sealedKtClass)
|
||||
?: JavaPsiFacade.getInstance(sealedKtClass.project).findPackage(containingPackage.asString())
|
||||
?: return emptyList()
|
||||
val packageScope = PackageScope(psiPackage, false, false)
|
||||
@@ -50,4 +50,9 @@ object IdeSealedClassInheritorsProvider : SealedClassInheritorsProvider() {
|
||||
}.filterNotNull()
|
||||
.sortedBy(ClassDescriptor::getName) // order needs to be stable (at least for tests)
|
||||
}
|
||||
|
||||
private fun getPackageViaDirectoryService(ktClass: KtClass): PsiPackage? {
|
||||
val directory = ktClass.containingFile.containingDirectory ?: return null
|
||||
return JavaDirectoryService.getInstance().getPackage(directory)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user