Skip to content

Commit afc5b49

Browse files
ivandev0Space Team
authored and
Space Team
committed
[IR] Assume IrFile has at least one offset entry
This is required for scripting in the case of empty file compilation. Otherwise, JVM backend will get the wrong (non-positive) line number and will fail. #KT-67727 Fixed (cherry picked from commit 34e3c8e)
1 parent be1804c commit afc5b49

File tree

5 files changed

+13
-1
lines changed

5 files changed

+13
-1
lines changed

compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/PsiIrFileEntry.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class PsiIrFileEntry(val psiFile: PsiFile) : AbstractIrFileEntry() {
2020
init {
2121
val document = fileViewProvider.document ?: throw AssertionError("No document for $psiFile")
2222
maxOffset = document.textLength
23-
lineStartOffsets = IntArray(document.lineCount) { document.getLineStartOffset(it) }
23+
lineStartOffsets = IntArray(document.lineCount.takeIf { it != 0 } ?: 1) { document.getLineStartOffset(it) }
2424
}
2525

2626
private fun getRecognizableName(): String = psiFileName

libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ val OUT_FROM_IMPORT_TEST = listOf("Hi from common", "Hi from middle", "Hi from m
6363

6464
class MainKtsTest {
6565

66+
@Test
67+
fun testEmptyFile() {
68+
val res = evalFile(File("$TEST_DATA_ROOT/empty.main.kts"))
69+
assertSucceeded(res)
70+
}
71+
6672
@Test
6773
fun testResolveJunit() {
6874
val res = evalFile(File("$TEST_DATA_ROOT/hello-resolve-junit.main.kts"))

libraries/tools/kotlin-main-kts-test/testData/empty.main.kts

Whitespace-only changes.

plugins/scripting/scripting-tests/testData/codegen/testScripts/empty.test.kts

Whitespace-only changes.

plugins/scripting/scripting-tests/tests-gen/org/jetbrains/kotlin/scripting/test/ScriptWithCustomDefBlackBoxCodegenTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)