From 18176cb5ee7cca7eebc20e7c733a84044cc83c38 Mon Sep 17 00:00:00 2001 From: Roman Efremov Date: Tue, 27 Feb 2024 11:08:51 +0100 Subject: [PATCH] Fix crash when compiler plugin generates top-level private suspend ...function. ^KT-61993 Fixed --- .../jetbrains/kotlin/backend/jvm/lower/FileClassLowering.kt | 3 ++- .../testData/box/topLevelPrivateSuspendFun.kt | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FileClassLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FileClassLowering.kt index 1bcd8a1aa20..dab0860e838 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FileClassLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/FileClassLowering.kt @@ -30,6 +30,7 @@ import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil import org.jetbrains.kotlin.fileClasses.JvmMultifileClassPartInfo import org.jetbrains.kotlin.fileClasses.JvmSimpleFileClassInfo import org.jetbrains.kotlin.ir.PsiIrFileEntry +import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.IrConst import org.jetbrains.kotlin.ir.expressions.IrConstKind @@ -98,7 +99,7 @@ private class FileClassLowering(val context: JvmBackendContext) : FileLoweringPa else IrDeclarationOrigin.SYNTHETIC_FILE_CLASS return context.irFactory.createClass( - startOffset = 0, + startOffset = if (fileEntry.maxOffset == UNDEFINED_OFFSET) UNDEFINED_OFFSET else 0, endOffset = fileEntry.maxOffset, origin = fileClassOrigin, name = fileClassInfo.fileClassFqName.shortName(), diff --git a/plugins/fir-plugin-prototype/testData/box/topLevelPrivateSuspendFun.kt b/plugins/fir-plugin-prototype/testData/box/topLevelPrivateSuspendFun.kt index 8499e361b47..0ffd12898f5 100644 --- a/plugins/fir-plugin-prototype/testData/box/topLevelPrivateSuspendFun.kt +++ b/plugins/fir-plugin-prototype/testData/box/topLevelPrivateSuspendFun.kt @@ -1,4 +1,3 @@ -// This test currently fails! package foo @org.jetbrains.kotlin.fir.plugin.TestTopLevelPrivateSuspendFun