AA: better error message for file w/o containing module
...instead of throwing NoSuchElementException
This commit is contained in:
committed by
Ilya Kirillov
parent
b67b37cdb3
commit
5596c3ae80
+9
-3
@@ -9,6 +9,7 @@ import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analysis.project.structure.*
|
||||
import org.jetbrains.kotlin.psi.psiUtil.contains
|
||||
import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol
|
||||
import org.jetbrains.kotlin.utils.KotlinExceptionWithAttachments
|
||||
|
||||
class KtStaticModuleProvider(
|
||||
private val builtinsModule: KtBuiltinsModule,
|
||||
@@ -31,8 +32,13 @@ class KtStaticModuleProvider(
|
||||
containingFileAsVirtualFile in binaryModule.contentScope
|
||||
}?.let { return it }
|
||||
|
||||
return projectStructure.mainModules
|
||||
.first { module -> element in module.ktModule.contentScope }
|
||||
.ktModule
|
||||
return projectStructure.mainModules.firstOrNull { module ->
|
||||
element in module.ktModule.contentScope
|
||||
}?.ktModule
|
||||
?: throw KotlinExceptionWithAttachments("Cannot find KtModule; see the attachment for more details.")
|
||||
.withAttachment(
|
||||
containingFileAsVirtualFile.path,
|
||||
allModules.joinToString(separator = System.lineSeparator()) { it.asDebugString() }
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user