From a4a398239b1f18ded2c17db6121d22aaa6057728 Mon Sep 17 00:00:00 2001 From: Jim Sproch Date: Wed, 15 Jul 2020 17:24:25 -0700 Subject: [PATCH] Fallback to fileEntry provided by irFile --- .../jetbrains/kotlin/backend/jvm/codegen/irCodegenUtils.kt | 6 +++++- .../src/org/jetbrains/kotlin/psi2ir/PsiSourceManager.kt | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/irCodegenUtils.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/irCodegenUtils.kt index 5c4bcef0340..715e9de38fa 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/irCodegenUtils.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/irCodegenUtils.kt @@ -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, diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/PsiSourceManager.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/PsiSourceManager.kt index 5a6b8c545d8..33affe178b6 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/PsiSourceManager.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/PsiSourceManager.kt @@ -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 findPsiElement(irElement: IrElement, irFile: IrFile, psiElementClass: KClass): E? { val psiFileEntry = fileEntriesByIrFile[irFile] ?: return null