Extract new smap creation logic into separate class LineNumberMapper

This commit is contained in:
Ivan Kylchik
2022-12-19 13:11:16 +01:00
committed by Space Team
parent bb401c39d9
commit b31114fa52
4 changed files with 323 additions and 250 deletions
@@ -68,7 +68,7 @@ class ProvisionalFunctionExpressionLowering :
valueArgumentsCount = function.valueParameters.size,
reflectionTarget = null,
origin = origin
).copyAttributes(expression) // TODO better to copy just name
).copyAttributes(expression)
)
)
}
@@ -129,9 +129,9 @@ class ReturnableBlockTransformer(val context: CommonBackendContext, val containe
val newStatements = expression.statements.mapIndexed { i, s ->
if (expression.statements.size == 1 && s is IrInlinedFunctionBlock) {
val transformed = s.statements.mapIndexed { j, it -> transformSingleStatement(it, j == s.statements.lastIndex) }
s.statements.clear()
s.statements.addAll(transformed)
for ((j, statement) in s.statements.withIndex()) {
s.statements[j] = transformSingleStatement(statement, j == s.statements.lastIndex)
}
s
} else {
transformSingleStatement(s, i == expression.statements.lastIndex)