[LL API] Migrate 'getKtModule()' usages to 'ProjectStructureProvider'

Ensure the contextual module is passed wherever possible.

^KT-57559 Fixed
This commit is contained in:
Yan Zhulanow
2023-04-18 17:25:34 +09:00
committed by Space Team
parent c90d094af6
commit e9c077220f
31 changed files with 187 additions and 133 deletions
@@ -8,11 +8,14 @@ package org.jetbrains.kotlin.analysis.utils.errors
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiInvalidElementAccessException
import org.jetbrains.kotlin.analysis.project.structure.KtModule
import org.jetbrains.kotlin.analysis.project.structure.getKtModule
import org.jetbrains.kotlin.analysis.utils.printer.getElementTextInContext
import org.jetbrains.kotlin.psi.KtElement
public fun ExceptionAttachmentBuilder.withPsiEntry(name: String, psi: PsiElement?) {
public fun ExceptionAttachmentBuilder.withPsiEntry(name: String, psi: PsiElement?, moduleFactory: (PsiElement) -> KtModule) {
return withPsiEntry(name, psi, psi?.let(moduleFactory))
}
public fun ExceptionAttachmentBuilder.withPsiEntry(name: String, psi: PsiElement?, module: KtModule?) {
withEntry(name, psi) { psiElement ->
when {
!psiElement.isValid -> "INVALID PSI ${PsiInvalidElementAccessException.findOutInvalidationReason(psiElement)}"
@@ -21,7 +24,7 @@ public fun ExceptionAttachmentBuilder.withPsiEntry(name: String, psi: PsiElement
}
}
if (psi != null) {
withKtModuleEntry("${name}KtModule", psi.getKtModule())
withKtModuleEntry("${name}KtModule", module)
}
}