Fallback to fileEntry provided by irFile

This commit is contained in:
Jim Sproch
2020-07-15 17:24:25 -07:00
committed by Roman
parent c901e82a55
commit a4a398239b
2 changed files with 6 additions and 2 deletions
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.backend.common.ir.ir2string
import org.jetbrains.kotlin.backend.common.lower.allOverridden
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
import org.jetbrains.kotlin.backend.jvm.lower.MultifileFacadeFileEntry
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltIns.FQ_NAMES
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
@@ -88,7 +89,10 @@ fun JvmBackendContext.getSourceMapper(declaration: IrClass): SourceMapper {
// NOTE: apparently inliner requires the source range to cover the
// whole file the class is declared in rather than the class only.
// TODO: revise
val endLineNumber = fileEntry?.getSourceRangeInfo(0, fileEntry.maxOffset)?.endLineNumber ?: 0
val endLineNumber = when {
fileEntry is MultifileFacadeFileEntry -> 0
else -> fileEntry?.getSourceRangeInfo(0, fileEntry.maxOffset)?.endLineNumber ?: 0
}
return SourceMapper(
SourceInfo.createInfoForIr(
endLineNumber + 1,
@@ -113,7 +113,7 @@ class PsiSourceManager : SourceManager {
(irFile.fileEntry as? PsiFileEntry)?.let { ktFileByFileEntry[it] }
override fun getFileEntry(irFile: IrFile): SourceManager.FileEntry? =
fileEntriesByIrFile[irFile]
fileEntriesByIrFile[irFile] ?: irFile.fileEntry
fun <E : PsiElement> findPsiElement(irElement: IrElement, irFile: IrFile, psiElementClass: KClass<E>): E? {
val psiFileEntry = fileEntriesByIrFile[irFile] ?: return null