Kotlin: Add blocks

This commit is contained in:
Ian Lynagh
2021-08-11 13:03:20 +01:00
parent a8a6b4c09f
commit 0c429e4f80
3 changed files with 19 additions and 2 deletions

View File

@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin.*
import org.jetbrains.kotlin.ir.expressions.IrWhen
import org.jetbrains.kotlin.ir.expressions.IrElseBranch
import org.jetbrains.kotlin.ir.expressions.IrWhileLoop
import org.jetbrains.kotlin.ir.expressions.IrBlock
import org.jetbrains.kotlin.ir.IrStatement
import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol
@@ -338,6 +339,14 @@ class KotlinFileExtractor(val tw: TrapWriter) {
tw.writeStmts_returnstmt(id, parent, idx, callable)
tw.writeHasLocation(id, locId)
extractExpression(e.value, callable, id, 0)
} is IrBlock -> {
val id = tw.getFreshIdLabel<DbBlock>()
val locId = tw.getLocation(e.startOffset, e.endOffset)
tw.writeStmts_block(id, parent, idx, callable)
tw.writeHasLocation(id, locId)
e.statements.forEachIndexed { i, s ->
extractStatement(s, callable, id, i)
}
} is IrWhileLoop -> {
val id = tw.getFreshIdLabel<DbWhilestmt>()
val locId = tw.getLocation(e.startOffset, e.endOffset)