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 module = sealedKtClass.module ?: return emptyList()
|
||||||
val moduleSourceScope = GlobalSearchScope.moduleScope(module)
|
val moduleSourceScope = GlobalSearchScope.moduleScope(module)
|
||||||
val containingPackage = sealedClass.containingPackage() ?: return emptyList()
|
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())
|
?: JavaPsiFacade.getInstance(sealedKtClass.project).findPackage(containingPackage.asString())
|
||||||
?: return emptyList()
|
?: return emptyList()
|
||||||
val packageScope = PackageScope(psiPackage, false, false)
|
val packageScope = PackageScope(psiPackage, false, false)
|
||||||
@@ -50,4 +50,9 @@ object IdeSealedClassInheritorsProvider : SealedClassInheritorsProvider() {
|
|||||||
}.filterNotNull()
|
}.filterNotNull()
|
||||||
.sortedBy(ClassDescriptor::getName) // order needs to be stable (at least for tests)
|
.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