diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/IdeSealedClassInheritorsProvider.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/IdeSealedClassInheritorsProvider.kt index 7f0268cd7c8..13fdb4c15d7 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/IdeSealedClassInheritorsProvider.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/compiler/IdeSealedClassInheritorsProvider.kt @@ -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) + } } \ No newline at end of file