@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConst
3333import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin.*
3434import org.jetbrains.kotlin.ir.expressions.IrWhen
3535import org.jetbrains.kotlin.ir.expressions.IrElseBranch
36+ import org.jetbrains.kotlin.ir.expressions.IrWhileLoop
3637import org.jetbrains.kotlin.ir.IrStatement
3738import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol
3839
@@ -288,6 +289,16 @@ class KotlinFileExtractor(val tw: TrapWriter) {
288289 tw.writeStmts_returnstmt(id, parent, idx, callable)
289290 tw.writeHasLocation(id, locId)
290291 extractExpression(s.value, id, 0 )
292+ } is IrWhileLoop -> {
293+ val id = tw.getFreshIdLabel<DbWhilestmt >()
294+ val locId = tw.getLocation(s.startOffset, s.endOffset)
295+ tw.writeStmts_whilestmt(id, parent, idx, callable)
296+ tw.writeHasLocation(id, locId)
297+ extractExpression(s.condition, id, 0 )
298+ val body = s.body
299+ if (body != null ) {
300+ extractExpression(body, id, 1 ) // TODO: The QLLs think this is a Stmt
301+ }
291302 } is IrWhen -> {
292303 val x: IrWhen = s
293304 if (s.origin == IF ) {
0 commit comments