From 3fd4d90cca92feca6b9776da005f37184f1d6447 Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Fri, 17 Dec 2021 14:49:34 +0000 Subject: [PATCH] Native: remove harmful assertions from NaiveSourceBasedFileEntryImpl These assertions checked that nobody requests line and column number for the UNDEFINED_OFFSET. But diagnostic and crash reporting tools might request line and column, and crashing during crash reporting is not great. So handle UNDEFINED_OFFSET gracefully instead, in a conventional manner. --- .../src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt index 7861d72e64a..b067ebc54b9 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/AdditionalIrUtils.kt @@ -206,14 +206,14 @@ class NaiveSourceBasedFileEntryImpl( } override fun getLineNumber(offset: Int): Int { - assert(offset != UNDEFINED_OFFSET) if (offset == SYNTHETIC_OFFSET) return 0 + if (offset < 0) return -1 return calculatedBeforeLineNumbers.get(offset) } override fun getColumnNumber(offset: Int): Int { - assert(offset != UNDEFINED_OFFSET) if (offset == SYNTHETIC_OFFSET) return 0 + if (offset < 0) return -1 val lineNumber = getLineNumber(offset) return offset - lineStartOffsets[lineNumber] }