IR: fix offsets in irTemporary

The variable generated by IrStatementBuilder.irTemporary doesn't inherit
startOffset and endOffset from the builder. In particular, as a result,
temporary variables generated for elvis operator left operand have
UNDEFINED_OFFSET.

Additionally, ProvisionalFunctionExpressionLowering copies the offsets
of a variable to lowered lambda in the variable initializer. With the
problem described above, this causes invalid debug information in
Kotlin/Native, see KT-49360.

Fix irTemporary by using builder's offsets for the variable.

^KT-49360 Fixed
This commit is contained in:
Svyatoslav Scherbina
2021-11-12 11:45:09 +03:00
committed by Space
parent fb859c0270
commit 2f5706597a
8 changed files with 181 additions and 1 deletions
+3
View File
@@ -0,0 +1,3 @@
fun intN(): Int? = null
fun test() = intN() ?: 1