Fix CCE caused by KotlinPackageSourcesMemberNamesIndex
FileContentImpl::getPsiFile is not-nullable and at the same time it contains an explicit case of its fileType to LanguageFileType that leads to the following exception in case when kt-file is marked as plain text: java.lang.ClassCastException: com.intellij.openapi.file.exclude.EnforcedPlainTextFileTypeFactory$1 cannot be cast to com.intellij.openapi.fileTypes.LanguageFileType at com.intellij.util.indexing.FileContentImpl.createFileFromText(FileContentImpl.java:135) at com.intellij.util.indexing.FileContentImpl.getPsiFile(FileContentImpl.java:104) #EA-114338 Fixed
This commit is contained in:
+4
-1
@@ -30,10 +30,13 @@ object KotlinPackageSourcesMemberNamesIndex : FileBasedIndexExtension<String, Co
|
||||
override fun getInputFilter(): FileBasedIndex.InputFilter =
|
||||
FileBasedIndex.InputFilter { file -> file.extension == KotlinFileType.EXTENSION }
|
||||
|
||||
override fun getVersion(): Int = 1
|
||||
override fun getVersion(): Int = 2
|
||||
|
||||
override fun getIndexer(): DataIndexer<String, Collection<String>, FileContent> =
|
||||
DataIndexer { inputData ->
|
||||
// Check if ".kt" file is marked as plain text
|
||||
if (inputData.fileType !is KotlinFileType) return@DataIndexer emptyMap()
|
||||
|
||||
val ktFile = inputData.psiFile as? KtFile ?: return@DataIndexer emptyMap()
|
||||
val packageName = ktFile.packageDirective?.fqName?.asString() ?: ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user