@@ -319,15 +319,19 @@ class KotlinFileExtractor(val tw: TrapWriter) {
319319 }
320320 }
321321
322- fun extractVariable (v : IrVariable , parent : Label <out DbStmtparent >, idx : Int ) {
323- val id = tw.getFreshIdLabel<DbLocalvariabledeclexpr >()
322+ fun extractVariable (v : IrVariable , callable : Label <out DbCallable > ) {
323+ val id = tw.getFreshIdLabel<DbLocalvar >()
324324 val locId = tw.getLocation(v.startOffset, v.endOffset)
325325 val typeId = useType(v.type)
326- tw.writeExprs_localvariabledeclexpr(id, typeId, parent, idx)
326+ val decId = tw.getFreshIdLabel<DbLocalvariabledeclexpr >()
327+ tw.writeLocalvars(id, v.name.asString(), typeId, decId)
327328 tw.writeHasLocation(id, locId)
328- val varId = tw.getFreshIdLabel<DbLocalvar >()
329- tw.writeLocalvars(varId, v.name.asString(), typeId, id)
330- tw.writeHasLocation(varId, locId)
329+ tw.writeExprs_localvariabledeclexpr(decId, typeId, id, 0 )
330+ tw.writeHasLocation(id, locId)
331+ val i = v.initializer
332+ if (i != null ) {
333+ extractExpression(i, callable, decId, 0 )
334+ }
331335 }
332336
333337 fun extractStatement (s : IrStatement , callable : Label <out DbCallable >, parent : Label <out DbStmtparent >, idx : Int ) {
@@ -336,7 +340,7 @@ class KotlinFileExtractor(val tw: TrapWriter) {
336340 extractExpression(s, callable, parent, idx)
337341 }
338342 is IrVariable -> {
339- extractVariable(s, parent, idx )
343+ extractVariable(s, callable )
340344 }
341345 else -> {
342346 extractorBug(" Unrecognised IrStatement: " + s.javaClass)
0 commit comments