AA: look up built-ins module for deserialized declarations from built-ins

This commit is contained in:
Jinseong Jeon
2022-09-06 13:43:31 -07:00
committed by Ilya Kirillov
parent df95602e06
commit 5bf333f6f5
5 changed files with 41 additions and 3 deletions
@@ -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
}
}