AA: look up built-ins module for deserialized declarations from built-ins
This commit is contained in:
committed by
Ilya Kirillov
parent
df95602e06
commit
5bf333f6f5
+9
-1
@@ -8,14 +8,22 @@ package org.jetbrains.kotlin.analysis.api.standalone.base.project.structure
|
||||
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
|
||||
|
||||
class KtStaticModuleProvider(
|
||||
private val builtinsModule: KtBuiltinsModule,
|
||||
val projectStructure: KtModuleProjectStructure,
|
||||
) : ProjectStructureProvider() {
|
||||
override fun getKtModuleForKtElement(element: PsiElement): KtModule {
|
||||
val containingFileAsPsiFile = element.containingFile
|
||||
val containingFileAsVirtualFile = containingFileAsPsiFile.virtualFile
|
||||
if (containingFileAsVirtualFile.extension == BuiltInSerializerProtocol.BUILTINS_FILE_EXTENSION) {
|
||||
return builtinsModule
|
||||
}
|
||||
|
||||
return projectStructure.mainModules
|
||||
.first { module ->
|
||||
module.ktModule.contentScope.contains(element)
|
||||
element in module.ktModule.contentScope
|
||||
}.ktModule
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user