exprs.kt: # 0| [CompilationUnit] exprs # 0| 1: [Class] ExprsKt # 4| 1: [Method] topLevelMethod #-----| 4: (Parameters) # 4| 0: [Parameter] x # 4| 1: [Parameter] y # 5| 2: [Parameter] byx # 5| 3: [Parameter] byy # 6| 4: [Parameter] sx # 6| 5: [Parameter] sy # 7| 6: [Parameter] lx # 7| 7: [Parameter] ly # 8| 8: [Parameter] dx # 8| 9: [Parameter] dy # 9| 10: [Parameter] fx # 9| 11: [Parameter] fy # 10| 5: [BlockStmt] { ... } # 11| 0: [LocalVariableDeclStmt] var ...; # 11| 1: [LocalVariableDeclExpr] i1 # 11| 0: [IntegerLiteral] 1 # 12| 1: [LocalVariableDeclStmt] var ...; # 12| 1: [LocalVariableDeclExpr] i2 # 12| 0: [AddExpr] ... + ... # 12| 0: [VarAccess] x # 12| 1: [VarAccess] y # 13| 2: [LocalVariableDeclStmt] var ...; # 13| 1: [LocalVariableDeclExpr] i3 # 13| 0: [SubExpr] ... - ... # 13| 0: [VarAccess] x # 13| 1: [VarAccess] y # 14| 3: [LocalVariableDeclStmt] var ...; # 14| 1: [LocalVariableDeclExpr] i4 # 14| 0: [DivExpr] ... / ... # 14| 0: [VarAccess] x # 14| 1: [VarAccess] y # 15| 4: [LocalVariableDeclStmt] var ...; # 15| 1: [LocalVariableDeclExpr] i5 # 15| 0: [RemExpr] ... % ... # 15| 0: [VarAccess] x # 15| 1: [VarAccess] y # 16| 5: [LocalVariableDeclStmt] var ...; # 16| 1: [LocalVariableDeclExpr] i6 # 16| 0: [MethodAccess] shl(...) # 16| -1: [VarAccess] x # 16| 0: [VarAccess] y # 17| 6: [LocalVariableDeclStmt] var ...; # 17| 1: [LocalVariableDeclExpr] i7 # 17| 0: [MethodAccess] shr(...) # 17| -1: [VarAccess] x # 17| 0: [VarAccess] y # 18| 7: [LocalVariableDeclStmt] var ...; # 18| 1: [LocalVariableDeclExpr] i8 # 18| 0: [MethodAccess] ushr(...) # 18| -1: [VarAccess] x # 18| 0: [VarAccess] y # 19| 8: [LocalVariableDeclStmt] var ...; # 19| 1: [LocalVariableDeclExpr] i9 # 19| 0: [MethodAccess] and(...) # 19| -1: [VarAccess] x # 19| 0: [VarAccess] y # 20| 9: [LocalVariableDeclStmt] var ...; # 20| 1: [LocalVariableDeclExpr] i10 # 20| 0: [MethodAccess] or(...) # 20| -1: [VarAccess] x # 20| 0: [VarAccess] y # 21| 10: [LocalVariableDeclStmt] var ...; # 21| 1: [LocalVariableDeclExpr] i11 # 21| 0: [MethodAccess] xor(...) # 21| -1: [VarAccess] x # 21| 0: [VarAccess] y # 22| 11: [LocalVariableDeclStmt] var ...; # 22| 1: [LocalVariableDeclExpr] i12 # 22| 0: [MethodAccess] inv(...) # 22| -1: [VarAccess] x # 23| 12: [LocalVariableDeclStmt] var ...; # 23| 1: [LocalVariableDeclExpr] i13 # 23| 0: [ValueEQExpr] ... (value equals) ... # 23| 0: [VarAccess] x # 23| 1: [VarAccess] y # 24| 13: [LocalVariableDeclStmt] var ...; # 24| 1: [LocalVariableDeclExpr] i14 # 24| 0: [ValueNEExpr] ... (value not-equals) ... # 24| 0: [VarAccess] x # 24| 1: [VarAccess] y # 25| 14: [LocalVariableDeclStmt] var ...; # 25| 1: [LocalVariableDeclExpr] i15 # 25| 0: [LTExpr] ... < ... # 25| 0: [VarAccess] x # 25| 1: [VarAccess] y # 26| 15: [LocalVariableDeclStmt] var ...; # 26| 1: [LocalVariableDeclExpr] i16 # 26| 0: [LEExpr] ... <= ... # 26| 0: [VarAccess] x # 26| 1: [VarAccess] y # 27| 16: [LocalVariableDeclStmt] var ...; # 27| 1: [LocalVariableDeclExpr] i17 # 27| 0: [GTExpr] ... > ... # 27| 0: [VarAccess] x # 27| 1: [VarAccess] y # 28| 17: [LocalVariableDeclStmt] var ...; # 28| 1: [LocalVariableDeclExpr] i18 # 28| 0: [GEExpr] ... >= ... # 28| 0: [VarAccess] x # 28| 1: [VarAccess] y # 29| 18: [LocalVariableDeclStmt] var ...; # 29| 1: [LocalVariableDeclExpr] i19 # 29| 0: [EQExpr] ... == ... # 29| 0: [VarAccess] x # 29| 1: [VarAccess] y # 30| 19: [LocalVariableDeclStmt] var ...; # 30| 1: [LocalVariableDeclExpr] i20 # 30| 0: [NEExpr] ... != ... # 30| 0: [VarAccess] x # 30| 1: [VarAccess] y # 31| 20: [LocalVariableDeclStmt] var ...; # 31| 1: [LocalVariableDeclExpr] i21 # 31| 0: [MethodAccess] contains(...) # 31| -1: [MethodAccess] rangeTo(...) # 31| -1: [VarAccess] x # 31| 0: [VarAccess] y # 31| 0: [VarAccess] x # 32| 21: [LocalVariableDeclStmt] var ...; # 32| 1: [LocalVariableDeclExpr] i22 # 32| 0: [MethodAccess] not(...) # 32| -1: [MethodAccess] contains(...) # 32| -1: [MethodAccess] rangeTo(...) # 32| -1: [VarAccess] x # 32| 0: [VarAccess] y # 32| 0: [VarAccess] x # 34| 22: [LocalVariableDeclStmt] var ...; # 34| 1: [LocalVariableDeclExpr] by1 # 34| 0: [DoubleLiteral] 1.0 # 35| 23: [LocalVariableDeclStmt] var ...; # 35| 1: [LocalVariableDeclExpr] by2 # 35| 0: [AddExpr] ... + ... # 35| 0: [VarAccess] byx # 35| 1: [VarAccess] byy # 36| 24: [LocalVariableDeclStmt] var ...; # 36| 1: [LocalVariableDeclExpr] by3 # 36| 0: [SubExpr] ... - ... # 36| 0: [VarAccess] byx # 36| 1: [VarAccess] byy # 37| 25: [LocalVariableDeclStmt] var ...; # 37| 1: [LocalVariableDeclExpr] by4 # 37| 0: [DivExpr] ... / ... # 37| 0: [VarAccess] byx # 37| 1: [VarAccess] byy # 38| 26: [LocalVariableDeclStmt] var ...; # 38| 1: [LocalVariableDeclExpr] by5 # 38| 0: [RemExpr] ... % ... # 38| 0: [VarAccess] byx # 38| 1: [VarAccess] byy # 39| 27: [LocalVariableDeclStmt] var ...; # 39| 1: [LocalVariableDeclExpr] by6 # 39| 0: [ValueEQExpr] ... (value equals) ... # 39| 0: [MethodAccess] toInt(...) # 39| -1: [VarAccess] byx # 39| 1: [MethodAccess] toInt(...) # 39| -1: [VarAccess] byy # 40| 28: [LocalVariableDeclStmt] var ...; # 40| 1: [LocalVariableDeclExpr] by7 # 40| 0: [ValueNEExpr] ... (value not-equals) ... # 40| 0: [MethodAccess] toInt(...) # 40| -1: [VarAccess] byx # 40| 1: [MethodAccess] toInt(...) # 40| -1: [VarAccess] byy # 41| 29: [LocalVariableDeclStmt] var ...; # 41| 1: [LocalVariableDeclExpr] by8 # 41| 0: [LTExpr] ... < ... # 41| 0: [MethodAccess] toInt(...) # 41| -1: [VarAccess] byx # 41| 1: [MethodAccess] toInt(...) # 41| -1: [VarAccess] byy # 42| 30: [LocalVariableDeclStmt] var ...; # 42| 1: [LocalVariableDeclExpr] by9 # 42| 0: [LEExpr] ... <= ... # 42| 0: [MethodAccess] toInt(...) # 42| -1: [VarAccess] byx # 42| 1: [MethodAccess] toInt(...) # 42| -1: [VarAccess] byy # 43| 31: [LocalVariableDeclStmt] var ...; # 43| 1: [LocalVariableDeclExpr] by10 # 43| 0: [GTExpr] ... > ... # 43| 0: [MethodAccess] toInt(...) # 43| -1: [VarAccess] byx # 43| 1: [MethodAccess] toInt(...) # 43| -1: [VarAccess] byy # 44| 32: [LocalVariableDeclStmt] var ...; # 44| 1: [LocalVariableDeclExpr] by11 # 44| 0: [GEExpr] ... >= ... # 44| 0: [MethodAccess] toInt(...) # 44| -1: [VarAccess] byx # 44| 1: [MethodAccess] toInt(...) # 44| -1: [VarAccess] byy # 45| 33: [LocalVariableDeclStmt] var ...; # 45| 1: [LocalVariableDeclExpr] by12 # 45| 0: [EQExpr] ... == ... # 45| 0: [VarAccess] byx # 45| 1: [VarAccess] byy # 46| 34: [LocalVariableDeclStmt] var ...; # 46| 1: [LocalVariableDeclExpr] by13 # 46| 0: [NEExpr] ... != ... # 46| 0: [VarAccess] byx # 46| 1: [VarAccess] byy # 48| 35: [LocalVariableDeclStmt] var ...; # 48| 1: [LocalVariableDeclExpr] s1 # 48| 0: [DoubleLiteral] 1.0 # 49| 36: [LocalVariableDeclStmt] var ...; # 49| 1: [LocalVariableDeclExpr] s2 # 49| 0: [AddExpr] ... + ... # 49| 0: [VarAccess] sx # 49| 1: [VarAccess] sy # 50| 37: [LocalVariableDeclStmt] var ...; # 50| 1: [LocalVariableDeclExpr] s3 # 50| 0: [SubExpr] ... - ... # 50| 0: [VarAccess] sx # 50| 1: [VarAccess] sy # 51| 38: [LocalVariableDeclStmt] var ...; # 51| 1: [LocalVariableDeclExpr] s4 # 51| 0: [DivExpr] ... / ... # 51| 0: [VarAccess] sx # 51| 1: [VarAccess] sy # 52| 39: [LocalVariableDeclStmt] var ...; # 52| 1: [LocalVariableDeclExpr] s5 # 52| 0: [RemExpr] ... % ... # 52| 0: [VarAccess] sx # 52| 1: [VarAccess] sy # 53| 40: [LocalVariableDeclStmt] var ...; # 53| 1: [LocalVariableDeclExpr] s6 # 53| 0: [ValueEQExpr] ... (value equals) ... # 53| 0: [MethodAccess] toInt(...) # 53| -1: [VarAccess] sx # 53| 1: [MethodAccess] toInt(...) # 53| -1: [VarAccess] sy # 54| 41: [LocalVariableDeclStmt] var ...; # 54| 1: [LocalVariableDeclExpr] s7 # 54| 0: [ValueNEExpr] ... (value not-equals) ... # 54| 0: [MethodAccess] toInt(...) # 54| -1: [VarAccess] sx # 54| 1: [MethodAccess] toInt(...) # 54| -1: [VarAccess] sy # 55| 42: [LocalVariableDeclStmt] var ...; # 55| 1: [LocalVariableDeclExpr] s8 # 55| 0: [LTExpr] ... < ... # 55| 0: [MethodAccess] toInt(...) # 55| -1: [VarAccess] sx # 55| 1: [MethodAccess] toInt(...) # 55| -1: [VarAccess] sy # 56| 43: [LocalVariableDeclStmt] var ...; # 56| 1: [LocalVariableDeclExpr] s9 # 56| 0: [LEExpr] ... <= ... # 56| 0: [MethodAccess] toInt(...) # 56| -1: [VarAccess] sx # 56| 1: [MethodAccess] toInt(...) # 56| -1: [VarAccess] sy # 57| 44: [LocalVariableDeclStmt] var ...; # 57| 1: [LocalVariableDeclExpr] s10 # 57| 0: [GTExpr] ... > ... # 57| 0: [MethodAccess] toInt(...) # 57| -1: [VarAccess] sx # 57| 1: [MethodAccess] toInt(...) # 57| -1: [VarAccess] sy # 58| 45: [LocalVariableDeclStmt] var ...; # 58| 1: [LocalVariableDeclExpr] s11 # 58| 0: [GEExpr] ... >= ... # 58| 0: [MethodAccess] toInt(...) # 58| -1: [VarAccess] sx # 58| 1: [MethodAccess] toInt(...) # 58| -1: [VarAccess] sy # 59| 46: [LocalVariableDeclStmt] var ...; # 59| 1: [LocalVariableDeclExpr] s12 # 59| 0: [EQExpr] ... == ... # 59| 0: [VarAccess] sx # 59| 1: [VarAccess] sy # 60| 47: [LocalVariableDeclStmt] var ...; # 60| 1: [LocalVariableDeclExpr] s13 # 60| 0: [NEExpr] ... != ... # 60| 0: [VarAccess] sx # 60| 1: [VarAccess] sy # 62| 48: [LocalVariableDeclStmt] var ...; # 62| 1: [LocalVariableDeclExpr] l1 # 62| 0: [DoubleLiteral] 1.0 # 63| 49: [LocalVariableDeclStmt] var ...; # 63| 1: [LocalVariableDeclExpr] l2 # 63| 0: [AddExpr] ... + ... # 63| 0: [VarAccess] lx # 63| 1: [VarAccess] ly # 64| 50: [LocalVariableDeclStmt] var ...; # 64| 1: [LocalVariableDeclExpr] l3 # 64| 0: [SubExpr] ... - ... # 64| 0: [VarAccess] lx # 64| 1: [VarAccess] ly # 65| 51: [LocalVariableDeclStmt] var ...; # 65| 1: [LocalVariableDeclExpr] l4 # 65| 0: [DivExpr] ... / ... # 65| 0: [VarAccess] lx # 65| 1: [VarAccess] ly # 66| 52: [LocalVariableDeclStmt] var ...; # 66| 1: [LocalVariableDeclExpr] l5 # 66| 0: [RemExpr] ... % ... # 66| 0: [VarAccess] lx # 66| 1: [VarAccess] ly # 67| 53: [LocalVariableDeclStmt] var ...; # 67| 1: [LocalVariableDeclExpr] l6 # 67| 0: [MethodAccess] shl(...) # 67| -1: [VarAccess] lx # 67| 0: [VarAccess] y # 68| 54: [LocalVariableDeclStmt] var ...; # 68| 1: [LocalVariableDeclExpr] l7 # 68| 0: [MethodAccess] shr(...) # 68| -1: [VarAccess] lx # 68| 0: [VarAccess] y # 69| 55: [LocalVariableDeclStmt] var ...; # 69| 1: [LocalVariableDeclExpr] l8 # 69| 0: [MethodAccess] ushr(...) # 69| -1: [VarAccess] lx # 69| 0: [VarAccess] y # 70| 56: [LocalVariableDeclStmt] var ...; # 70| 1: [LocalVariableDeclExpr] l9 # 70| 0: [MethodAccess] and(...) # 70| -1: [VarAccess] lx # 70| 0: [VarAccess] ly # 71| 57: [LocalVariableDeclStmt] var ...; # 71| 1: [LocalVariableDeclExpr] l10 # 71| 0: [MethodAccess] or(...) # 71| -1: [VarAccess] lx # 71| 0: [VarAccess] ly # 72| 58: [LocalVariableDeclStmt] var ...; # 72| 1: [LocalVariableDeclExpr] l11 # 72| 0: [MethodAccess] xor(...) # 72| -1: [VarAccess] lx # 72| 0: [VarAccess] ly # 73| 59: [LocalVariableDeclStmt] var ...; # 73| 1: [LocalVariableDeclExpr] l12 # 73| 0: [MethodAccess] inv(...) # 73| -1: [VarAccess] lx # 74| 60: [LocalVariableDeclStmt] var ...; # 74| 1: [LocalVariableDeclExpr] l13 # 74| 0: [ValueEQExpr] ... (value equals) ... # 74| 0: [VarAccess] lx # 74| 1: [VarAccess] ly # 75| 61: [LocalVariableDeclStmt] var ...; # 75| 1: [LocalVariableDeclExpr] l14 # 75| 0: [ValueNEExpr] ... (value not-equals) ... # 75| 0: [VarAccess] lx # 75| 1: [VarAccess] ly # 76| 62: [LocalVariableDeclStmt] var ...; # 76| 1: [LocalVariableDeclExpr] l15 # 76| 0: [LTExpr] ... < ... # 76| 0: [VarAccess] lx # 76| 1: [VarAccess] ly # 77| 63: [LocalVariableDeclStmt] var ...; # 77| 1: [LocalVariableDeclExpr] l16 # 77| 0: [LEExpr] ... <= ... # 77| 0: [VarAccess] lx # 77| 1: [VarAccess] ly # 78| 64: [LocalVariableDeclStmt] var ...; # 78| 1: [LocalVariableDeclExpr] l17 # 78| 0: [GTExpr] ... > ... # 78| 0: [VarAccess] lx # 78| 1: [VarAccess] ly # 79| 65: [LocalVariableDeclStmt] var ...; # 79| 1: [LocalVariableDeclExpr] l18 # 79| 0: [GEExpr] ... >= ... # 79| 0: [VarAccess] lx # 79| 1: [VarAccess] ly # 80| 66: [LocalVariableDeclStmt] var ...; # 80| 1: [LocalVariableDeclExpr] l19 # 80| 0: [EQExpr] ... == ... # 80| 0: [VarAccess] lx # 80| 1: [VarAccess] ly # 81| 67: [LocalVariableDeclStmt] var ...; # 81| 1: [LocalVariableDeclExpr] l20 # 81| 0: [NEExpr] ... != ... # 81| 0: [VarAccess] lx # 81| 1: [VarAccess] ly # 83| 68: [LocalVariableDeclStmt] var ...; # 83| 1: [LocalVariableDeclExpr] d1 # 83| 0: [DoubleLiteral] 1.0 # 84| 69: [LocalVariableDeclStmt] var ...; # 84| 1: [LocalVariableDeclExpr] d2 # 84| 0: [AddExpr] ... + ... # 84| 0: [VarAccess] dx # 84| 1: [VarAccess] dy # 85| 70: [LocalVariableDeclStmt] var ...; # 85| 1: [LocalVariableDeclExpr] d3 # 85| 0: [SubExpr] ... - ... # 85| 0: [VarAccess] dx # 85| 1: [VarAccess] dy # 86| 71: [LocalVariableDeclStmt] var ...; # 86| 1: [LocalVariableDeclExpr] d4 # 86| 0: [DivExpr] ... / ... # 86| 0: [VarAccess] dx # 86| 1: [VarAccess] dy # 87| 72: [LocalVariableDeclStmt] var ...; # 87| 1: [LocalVariableDeclExpr] d5 # 87| 0: [RemExpr] ... % ... # 87| 0: [VarAccess] dx # 87| 1: [VarAccess] dy # 88| 73: [LocalVariableDeclStmt] var ...; # 88| 1: [LocalVariableDeclExpr] d6 # 88| 0: [EQExpr] ... == ... # 88| 0: [VarAccess] dx # 88| 1: [VarAccess] dy # 89| 74: [LocalVariableDeclStmt] var ...; # 89| 1: [LocalVariableDeclExpr] d7 # 89| 0: [NEExpr] ... != ... # 89| 0: [VarAccess] dx # 89| 1: [VarAccess] dy # 90| 75: [LocalVariableDeclStmt] var ...; # 90| 1: [LocalVariableDeclExpr] d8 # 90| 0: [LTExpr] ... < ... # 90| 0: [VarAccess] dx # 90| 1: [VarAccess] dy # 91| 76: [LocalVariableDeclStmt] var ...; # 91| 1: [LocalVariableDeclExpr] d9 # 91| 0: [LEExpr] ... <= ... # 91| 0: [VarAccess] dx # 91| 1: [VarAccess] dy # 92| 77: [LocalVariableDeclStmt] var ...; # 92| 1: [LocalVariableDeclExpr] d10 # 92| 0: [GTExpr] ... > ... # 92| 0: [VarAccess] dx # 92| 1: [VarAccess] dy # 93| 78: [LocalVariableDeclStmt] var ...; # 93| 1: [LocalVariableDeclExpr] d11 # 93| 0: [GEExpr] ... >= ... # 93| 0: [VarAccess] dx # 93| 1: [VarAccess] dy # 94| 79: [LocalVariableDeclStmt] var ...; # 94| 1: [LocalVariableDeclExpr] d12 # 94| 0: [EQExpr] ... == ... # 94| 0: [VarAccess] dx # 94| 1: [VarAccess] dy # 95| 80: [LocalVariableDeclStmt] var ...; # 95| 1: [LocalVariableDeclExpr] d13 # 95| 0: [NEExpr] ... != ... # 95| 0: [VarAccess] dx # 95| 1: [VarAccess] dy # 97| 81: [LocalVariableDeclStmt] var ...; # 97| 1: [LocalVariableDeclExpr] f1 # 97| 0: [DoubleLiteral] 1.0 # 98| 82: [LocalVariableDeclStmt] var ...; # 98| 1: [LocalVariableDeclExpr] f2 # 98| 0: [AddExpr] ... + ... # 98| 0: [VarAccess] fx # 98| 1: [VarAccess] fy # 99| 83: [LocalVariableDeclStmt] var ...; # 99| 1: [LocalVariableDeclExpr] f3 # 99| 0: [SubExpr] ... - ... # 99| 0: [VarAccess] fx # 99| 1: [VarAccess] fy # 100| 84: [LocalVariableDeclStmt] var ...; # 100| 1: [LocalVariableDeclExpr] f4 # 100| 0: [DivExpr] ... / ... # 100| 0: [VarAccess] fx # 100| 1: [VarAccess] fy # 101| 85: [LocalVariableDeclStmt] var ...; # 101| 1: [LocalVariableDeclExpr] f5 # 101| 0: [RemExpr] ... % ... # 101| 0: [VarAccess] fx # 101| 1: [VarAccess] fy # 102| 86: [LocalVariableDeclStmt] var ...; # 102| 1: [LocalVariableDeclExpr] f6 # 102| 0: [EQExpr] ... == ... # 102| 0: [VarAccess] fx # 102| 1: [VarAccess] fy # 103| 87: [LocalVariableDeclStmt] var ...; # 103| 1: [LocalVariableDeclExpr] f7 # 103| 0: [NEExpr] ... != ... # 103| 0: [VarAccess] fx # 103| 1: [VarAccess] fy # 104| 88: [LocalVariableDeclStmt] var ...; # 104| 1: [LocalVariableDeclExpr] f8 # 104| 0: [LTExpr] ... < ... # 104| 0: [VarAccess] fx # 104| 1: [VarAccess] fy # 105| 89: [LocalVariableDeclStmt] var ...; # 105| 1: [LocalVariableDeclExpr] f9 # 105| 0: [LEExpr] ... <= ... # 105| 0: [VarAccess] fx # 105| 1: [VarAccess] fy # 106| 90: [LocalVariableDeclStmt] var ...; # 106| 1: [LocalVariableDeclExpr] f10 # 106| 0: [GTExpr] ... > ... # 106| 0: [VarAccess] fx # 106| 1: [VarAccess] fy # 107| 91: [LocalVariableDeclStmt] var ...; # 107| 1: [LocalVariableDeclExpr] f11 # 107| 0: [GEExpr] ... >= ... # 107| 0: [VarAccess] fx # 107| 1: [VarAccess] fy # 108| 92: [LocalVariableDeclStmt] var ...; # 108| 1: [LocalVariableDeclExpr] f12 # 108| 0: [EQExpr] ... == ... # 108| 0: [VarAccess] fx # 108| 1: [VarAccess] fy # 109| 93: [LocalVariableDeclStmt] var ...; # 109| 1: [LocalVariableDeclExpr] f13 # 109| 0: [NEExpr] ... != ... # 109| 0: [VarAccess] fx # 109| 1: [VarAccess] fy # 111| 94: [LocalVariableDeclStmt] var ...; # 111| 1: [LocalVariableDeclExpr] b1 # 111| 0: [BooleanLiteral] true # 112| 95: [LocalVariableDeclStmt] var ...; # 112| 1: [LocalVariableDeclExpr] b2 # 112| 0: [BooleanLiteral] false # 113| 96: [LocalVariableDeclStmt] var ...; # 113| 1: [LocalVariableDeclExpr] b3 # 113| 0: [WhenExpr] when ... #-----| 0: (branch) # 113| 0: [VarAccess] b1 # 113| 1: [ExprStmt] ; # 113| 0: [VarAccess] b2 #-----| 1: (branch) # 113| 0: [BooleanLiteral] true # 113| 1: [ExprStmt] ; # 113| 0: [BooleanLiteral] false # 114| 97: [LocalVariableDeclStmt] var ...; # 114| 1: [LocalVariableDeclExpr] b4 # 114| 0: [WhenExpr] when ... #-----| 0: (branch) # 114| 0: [VarAccess] b1 # 114| 1: [ExprStmt] ; # 114| 0: [BooleanLiteral] true #-----| 1: (branch) # 114| 0: [BooleanLiteral] true # 114| 1: [ExprStmt] ; # 114| 0: [VarAccess] b2 # 115| 98: [LocalVariableDeclStmt] var ...; # 115| 1: [LocalVariableDeclExpr] b5 # 115| 0: [MethodAccess] not(...) # 115| -1: [VarAccess] b1 # 117| 99: [LocalVariableDeclStmt] var ...; # 117| 1: [LocalVariableDeclExpr] c # 117| 0: [CharacterLiteral] x # 118| 100: [LocalVariableDeclStmt] var ...; # 118| 1: [LocalVariableDeclExpr] str # 118| 0: [StringLiteral] string lit # 119| 101: [LocalVariableDeclStmt] var ...; # 119| 1: [LocalVariableDeclExpr] strWithQuote # 119| 0: [StringLiteral] string " lit # 120| 102: [LocalVariableDeclStmt] var ...; # 120| 1: [LocalVariableDeclExpr] b6 # 120| 0: [InstanceOfExpr] ...instanceof... # 120| 0: [VarAccess] i1 # 120| 1: [TypeAccess] int # 121| 103: [LocalVariableDeclStmt] var ...; # 121| 1: [LocalVariableDeclExpr] b7 # 121| 0: [NotInstanceOfExpr] ... !is ... # 121| 0: [VarAccess] i1 # 121| 1: [TypeAccess] int # 122| 104: [LocalVariableDeclStmt] var ...; # 122| 1: [LocalVariableDeclExpr] b8 # 122| 0: [CastExpr] (...)... # 122| 0: [TypeAccess] boolean # 122| 1: [VarAccess] b7 # 123| 105: [LocalVariableDeclStmt] var ...; # 123| 1: [LocalVariableDeclExpr] str1 # 123| 0: [StringLiteral] string lit # 124| 106: [LocalVariableDeclStmt] var ...; # 124| 1: [LocalVariableDeclExpr] str2 # 124| 0: [StringLiteral] string lit # 125| 107: [LocalVariableDeclStmt] var ...; # 125| 1: [LocalVariableDeclExpr] str3 # 125| 0: [NullLiteral] null # 126| 108: [LocalVariableDeclStmt] var ...; # 126| 1: [LocalVariableDeclExpr] str4 # 126| 0: [StringTemplateExpr] "..." # 126| 0: [StringLiteral] foo # 126| 1: [VarAccess] str1 # 126| 2: [StringLiteral] bar # 126| 3: [VarAccess] str2 # 126| 4: [StringLiteral] baz # 127| 109: [LocalVariableDeclStmt] var ...; # 127| 1: [LocalVariableDeclExpr] str5 # 127| 0: [StringTemplateExpr] "..." # 127| 0: [StringLiteral] foo # 127| 1: [AddExpr] ... + ... # 127| 0: [VarAccess] str1 # 127| 1: [VarAccess] str2 # 127| 2: [StringLiteral] bar # 127| 3: [AddExpr] ... + ... # 127| 0: [VarAccess] str2 # 127| 1: [VarAccess] str1 # 127| 4: [StringLiteral] baz # 128| 110: [LocalVariableDeclStmt] var ...; # 128| 1: [LocalVariableDeclExpr] str6 # 128| 0: [AddExpr] ... + ... # 128| 0: [VarAccess] str1 # 128| 1: [VarAccess] str2 # 130| 111: [LocalVariableDeclStmt] var ...; # 130| 1: [LocalVariableDeclExpr] variable # 130| 0: [IntegerLiteral] 10 # 131| 112: [WhileStmt] while (...) # 131| 0: [GTExpr] ... > ... # 131| 0: [VarAccess] variable # 131| 1: [IntegerLiteral] 0 # 131| 1: [BlockStmt] { ... } # 132| 0: [ExprStmt] ; # 132| 0: [ImplicitCoercionToUnitExpr] # 132| 0: [TypeAccess] Unit # 132| 1: [StmtExpr] # 132| 0: [BlockStmt] { ... } # 132| 0: [LocalVariableDeclStmt] var ...; # 132| 1: [LocalVariableDeclExpr] tmp0 # 132| 0: [VarAccess] variable # 132| 1: [ExprStmt] ; # 132| 0: [AssignExpr] ...=... # 132| 0: [VarAccess] variable # 132| 1: [MethodAccess] dec(...) # 132| -1: [VarAccess] tmp0 # 132| 2: [ExprStmt] ; # 132| 0: [VarAccess] tmp0 # 135| 113: [ReturnStmt] return ... # 135| 0: [AddExpr] ... + ... # 135| 0: [IntegerLiteral] 123 # 135| 1: [IntegerLiteral] 456 # 138| 2: [Method] getClass # 138| 5: [BlockStmt] { ... } # 139| 0: [LocalVariableDeclStmt] var ...; # 139| 1: [LocalVariableDeclExpr] d # 139| 0: [ClassExpr] ::class # 139| 0: [BooleanLiteral] true # 150| 3: [Method] typeTests #-----| 4: (Parameters) # 150| 0: [Parameter] x # 150| 1: [Parameter] y # 150| 5: [BlockStmt] { ... } # 151| 0: [ExprStmt] ; # 151| 0: [WhenExpr] when ... #-----| 0: (branch) # 151| 0: [InstanceOfExpr] ...instanceof... # 151| 0: [VarAccess] x # 151| 1: [TypeAccess] Subclass1 # 151| 1: [BlockStmt] { ... } # 152| 0: [LocalVariableDeclStmt] var ...; # 152| 1: [LocalVariableDeclExpr] x1 # 152| 0: [ImplicitCastExpr] # 152| 0: [TypeAccess] Subclass1 # 152| 1: [VarAccess] x # 154| 1: [LocalVariableDeclStmt] var ...; # 154| 1: [LocalVariableDeclExpr] y1 # 154| 0: [WhenExpr] when ... #-----| 0: (branch) # 154| 0: [InstanceOfExpr] ...instanceof... # 154| 0: [VarAccess] x # 154| 1: [TypeAccess] Subclass1 # 154| 1: [ExprStmt] ; # 154| 0: [ImplicitCastExpr] # 154| 0: [TypeAccess] Subclass1 # 154| 1: [StmtExpr] # 154| 0: [BlockStmt] { ... } # 154| 0: [ExprStmt] ; # 154| 0: [VarAccess] x #-----| 1: (branch) # 154| 0: [BooleanLiteral] true # 154| 1: [BlockStmt] { ... } # 154| 0: [ExprStmt] ; # 154| 0: [VarAccess] y # 155| 2: [LocalVariableDeclStmt] var ...; # 155| 1: [LocalVariableDeclExpr] q # 155| 0: [IntegerLiteral] 1 # 156| 3: [ExprStmt] ; # 156| 0: [WhenExpr] when ... #-----| 0: (branch) # 156| 0: [InstanceOfExpr] ...instanceof... # 156| 0: [VarAccess] x # 156| 1: [TypeAccess] Subclass1 # 156| 1: [BlockStmt] { ... } # 156| 0: [ExprStmt] ; # 156| 0: [AssignExpr] ...=... # 156| 0: [VarAccess] q # 156| 1: [IntegerLiteral] 2 #-----| 1: (branch) # 156| 0: [BooleanLiteral] true # 156| 1: [BlockStmt] { ... } # 156| 0: [ExprStmt] ; # 156| 0: [AssignExpr] ...=... # 156| 0: [VarAccess] q # 156| 1: [IntegerLiteral] 3 # 159| 4: [Method] foo #-----| 4: (Parameters) # 159| 0: [Parameter] p # 159| 5: [BlockStmt] { ... } # 160| 0: [LocalVariableDeclStmt] var ...; # 160| 1: [LocalVariableDeclExpr] r # 160| 0: [MethodAccess] getBounds(...) # 160| -1: [VarAccess] p # 161| 1: [ExprStmt] ; # 161| 0: [WhenExpr] when ... #-----| 0: (branch) # 161| 0: [ValueNEExpr] ... (value not-equals) ... # 161| 0: [VarAccess] r # 161| 1: [NullLiteral] null # 161| 1: [BlockStmt] { ... } # 162| 0: [LocalVariableDeclStmt] var ...; # 162| 1: [LocalVariableDeclExpr] r2 # 162| 0: [ImplicitNotNullExpr] # 162| 0: [TypeAccess] Rectangle # 162| 1: [VarAccess] r # 163| 1: [LocalVariableDeclStmt] var ...; # 163| 1: [LocalVariableDeclExpr] height # 163| 0: [VarAccess] r2.height # 163| -1: [VarAccess] r2 # 164| 2: [ExprStmt] ; # 164| 0: [AssignExpr] ...=... # 164| 0: [VarAccess] r2.height # 164| -1: [VarAccess] r2 # 164| 1: [IntegerLiteral] 3 # 178| 5: [Method] enums # 178| 5: [BlockStmt] { ... } # 179| 0: [LocalVariableDeclStmt] var ...; # 179| 1: [LocalVariableDeclExpr] south # 179| 0: [VarAccess] SOUTH # 180| 1: [LocalVariableDeclStmt] var ...; # 180| 1: [LocalVariableDeclExpr] green # 180| 0: [VarAccess] GREEN # 195| 6: [Method] notNullAssertion #-----| 4: (Parameters) # 195| 0: [Parameter] x # 195| 5: [BlockStmt] { ... } # 196| 0: [LocalVariableDeclStmt] var ...; # 196| 1: [LocalVariableDeclExpr] y # 196| 0: [NotNullExpr] ...!! # 196| 0: [VarAccess] x # 214| 7: [Method] todo # 214| 5: [BlockStmt] { ... } # 215| 0: [ExprStmt] ; # 215| 0: [MethodAccess] TODO(...) # 215| -1: [TypeAccess] StandardKt # 219| 8: [Method] fnClassRef # 219| 5: [BlockStmt] { ... } # 220| 0: [LocalVariableDeclStmt] var ...; # 220| 1: [LocalVariableDeclExpr] x # 220| 0: [TypeLiteral] SomeClass1.class # 220| 0: [TypeAccess] SomeClass1 # 223| 9: [Method] equalityTests #-----| 4: (Parameters) # 223| 0: [Parameter] notNullPrimitive # 223| 1: [Parameter] nullablePrimitive # 223| 2: [Parameter] notNullReftype # 223| 3: [Parameter] nullableReftype # 223| 5: [BlockStmt] { ... } # 224| 0: [LocalVariableDeclStmt] var ...; # 224| 1: [LocalVariableDeclExpr] b1 # 224| 0: [ValueEQExpr] ... (value equals) ... # 224| 0: [VarAccess] notNullPrimitive # 224| 1: [VarAccess] notNullPrimitive # 225| 1: [LocalVariableDeclStmt] var ...; # 225| 1: [LocalVariableDeclExpr] b2 # 225| 0: [ValueEQExpr] ... (value equals) ... # 225| 0: [VarAccess] notNullPrimitive # 225| 1: [VarAccess] nullablePrimitive # 226| 2: [LocalVariableDeclStmt] var ...; # 226| 1: [LocalVariableDeclExpr] b3 # 226| 0: [ValueEQExpr] ... (value equals) ... # 226| 0: [VarAccess] nullablePrimitive # 226| 1: [VarAccess] nullablePrimitive # 227| 3: [LocalVariableDeclStmt] var ...; # 227| 1: [LocalVariableDeclExpr] b4 # 227| 0: [ValueEQExpr] ... (value equals) ... # 227| 0: [VarAccess] notNullReftype # 227| 1: [VarAccess] notNullReftype # 228| 4: [LocalVariableDeclStmt] var ...; # 228| 1: [LocalVariableDeclExpr] b5 # 228| 0: [ValueEQExpr] ... (value equals) ... # 228| 0: [VarAccess] notNullReftype # 228| 1: [VarAccess] nullableReftype # 229| 5: [LocalVariableDeclStmt] var ...; # 229| 1: [LocalVariableDeclExpr] b6 # 229| 0: [ValueEQExpr] ... (value equals) ... # 229| 0: [VarAccess] nullableReftype # 229| 1: [VarAccess] nullableReftype # 230| 6: [LocalVariableDeclStmt] var ...; # 230| 1: [LocalVariableDeclExpr] b7 # 230| 0: [ValueNEExpr] ... (value not-equals) ... # 230| 0: [VarAccess] notNullPrimitive # 230| 1: [VarAccess] notNullPrimitive # 231| 7: [LocalVariableDeclStmt] var ...; # 231| 1: [LocalVariableDeclExpr] b8 # 231| 0: [ValueNEExpr] ... (value not-equals) ... # 231| 0: [VarAccess] notNullPrimitive # 231| 1: [VarAccess] nullablePrimitive # 232| 8: [LocalVariableDeclStmt] var ...; # 232| 1: [LocalVariableDeclExpr] b9 # 232| 0: [ValueNEExpr] ... (value not-equals) ... # 232| 0: [VarAccess] nullablePrimitive # 232| 1: [VarAccess] nullablePrimitive # 233| 9: [LocalVariableDeclStmt] var ...; # 233| 1: [LocalVariableDeclExpr] b10 # 233| 0: [ValueNEExpr] ... (value not-equals) ... # 233| 0: [VarAccess] notNullReftype # 233| 1: [VarAccess] notNullReftype # 234| 10: [LocalVariableDeclStmt] var ...; # 234| 1: [LocalVariableDeclExpr] b11 # 234| 0: [ValueNEExpr] ... (value not-equals) ... # 234| 0: [VarAccess] notNullReftype # 234| 1: [VarAccess] nullableReftype # 235| 11: [LocalVariableDeclStmt] var ...; # 235| 1: [LocalVariableDeclExpr] b12 # 235| 0: [ValueNEExpr] ... (value not-equals) ... # 235| 0: [VarAccess] nullableReftype # 235| 1: [VarAccess] nullableReftype # 236| 12: [LocalVariableDeclStmt] var ...; # 236| 1: [LocalVariableDeclExpr] b13 # 236| 0: [ValueEQExpr] ... (value equals) ... # 236| 0: [VarAccess] notNullPrimitive # 236| 1: [NullLiteral] null # 237| 13: [LocalVariableDeclStmt] var ...; # 237| 1: [LocalVariableDeclExpr] b14 # 237| 0: [ValueEQExpr] ... (value equals) ... # 237| 0: [VarAccess] nullablePrimitive # 237| 1: [NullLiteral] null # 238| 14: [LocalVariableDeclStmt] var ...; # 238| 1: [LocalVariableDeclExpr] b15 # 238| 0: [ValueEQExpr] ... (value equals) ... # 238| 0: [VarAccess] notNullReftype # 238| 1: [NullLiteral] null # 239| 15: [LocalVariableDeclStmt] var ...; # 239| 1: [LocalVariableDeclExpr] b16 # 239| 0: [ValueEQExpr] ... (value equals) ... # 239| 0: [VarAccess] nullableReftype # 239| 1: [NullLiteral] null # 240| 16: [LocalVariableDeclStmt] var ...; # 240| 1: [LocalVariableDeclExpr] b17 # 240| 0: [ValueNEExpr] ... (value not-equals) ... # 240| 0: [VarAccess] notNullPrimitive # 240| 1: [NullLiteral] null # 241| 17: [LocalVariableDeclStmt] var ...; # 241| 1: [LocalVariableDeclExpr] b18 # 241| 0: [ValueNEExpr] ... (value not-equals) ... # 241| 0: [VarAccess] nullablePrimitive # 241| 1: [NullLiteral] null # 242| 18: [LocalVariableDeclStmt] var ...; # 242| 1: [LocalVariableDeclExpr] b19 # 242| 0: [ValueNEExpr] ... (value not-equals) ... # 242| 0: [VarAccess] notNullReftype # 242| 1: [NullLiteral] null # 243| 19: [LocalVariableDeclStmt] var ...; # 243| 1: [LocalVariableDeclExpr] b20 # 243| 0: [ValueNEExpr] ... (value not-equals) ... # 243| 0: [VarAccess] nullableReftype # 243| 1: [NullLiteral] null # 246| 10: [Method] mulOperators #-----| 4: (Parameters) # 246| 0: [Parameter] x # 246| 1: [Parameter] y # 247| 2: [Parameter] byx # 247| 3: [Parameter] byy # 248| 4: [Parameter] sx # 248| 5: [Parameter] sy # 249| 6: [Parameter] lx # 249| 7: [Parameter] ly # 250| 8: [Parameter] dx # 250| 9: [Parameter] dy # 251| 10: [Parameter] fx # 251| 11: [Parameter] fy # 251| 5: [BlockStmt] { ... } # 253| 0: [LocalVariableDeclStmt] var ...; # 253| 1: [LocalVariableDeclExpr] i # 253| 0: [MulExpr] ... * ... # 253| 0: [VarAccess] x # 253| 1: [VarAccess] y # 254| 1: [LocalVariableDeclStmt] var ...; # 254| 1: [LocalVariableDeclExpr] b # 254| 0: [MulExpr] ... * ... # 254| 0: [VarAccess] byx # 254| 1: [VarAccess] byy # 255| 2: [LocalVariableDeclStmt] var ...; # 255| 1: [LocalVariableDeclExpr] l # 255| 0: [MulExpr] ... * ... # 255| 0: [VarAccess] lx # 255| 1: [VarAccess] ly # 256| 3: [LocalVariableDeclStmt] var ...; # 256| 1: [LocalVariableDeclExpr] d # 256| 0: [MulExpr] ... * ... # 256| 0: [VarAccess] dx # 256| 1: [VarAccess] dy # 257| 4: [LocalVariableDeclStmt] var ...; # 257| 1: [LocalVariableDeclExpr] f # 257| 0: [MulExpr] ... * ... # 257| 0: [VarAccess] fx # 257| 1: [VarAccess] fy # 261| 11: [Method] inPlaceOperators # 261| 5: [BlockStmt] { ... } # 263| 0: [LocalVariableDeclStmt] var ...; # 263| 1: [LocalVariableDeclExpr] updated # 263| 0: [IntegerLiteral] 0 # 264| 1: [ExprStmt] ; # 264| 0: [AssignAddExpr] ...+=... # 264| 0: [VarAccess] updated # 264| 1: [IntegerLiteral] 1 # 265| 2: [ExprStmt] ; # 265| 0: [AssignSubExpr] ...-=... # 265| 0: [VarAccess] updated # 265| 1: [IntegerLiteral] 1 # 266| 3: [ExprStmt] ; # 266| 0: [AssignMulExpr] ...*=... # 266| 0: [VarAccess] updated # 266| 1: [IntegerLiteral] 1 # 267| 4: [ExprStmt] ; # 267| 0: [AssignDivExpr] .../=... # 267| 0: [VarAccess] updated # 267| 1: [IntegerLiteral] 1 # 268| 5: [ExprStmt] ; # 268| 0: [AssignRemExpr] ...%=... # 268| 0: [VarAccess] updated # 268| 1: [IntegerLiteral] 1 # 142| 2: [Class] C # 142| 1: [Constructor] C #-----| 4: (Parameters) # 142| 0: [Parameter] n # 142| 5: [BlockStmt] { ... } # 142| 0: [SuperConstructorInvocationStmt] super(...) # 142| 1: [BlockStmt] { ... } # 142| 0: [ExprStmt] ; # 142| 0: [KtInitializerAssignExpr] ...=... # 142| 0: [VarAccess] n # 142| 2: [Method] getN # 142| 5: [BlockStmt] { ... } # 142| 0: [ReturnStmt] return ... # 142| 0: [VarAccess] this.n # 142| -1: [ThisAccess] this # 142| 2: [FieldDeclaration] int n; # 142| -1: [TypeAccess] int # 142| 0: [VarAccess] n # 143| 4: [Method] foo # 143| 5: [BlockStmt] { ... } # 143| 0: [ReturnStmt] return ... # 143| 0: [ClassInstanceExpr] new C(...) # 143| -3: [TypeAccess] C # 143| 0: [IntegerLiteral] 42 # 146| 3: [Class] Root # 146| 1: [Constructor] Root # 146| 5: [BlockStmt] { ... } # 146| 0: [SuperConstructorInvocationStmt] super(...) # 147| 4: [Class] Subclass1 # 147| 1: [Constructor] Subclass1 # 147| 5: [BlockStmt] { ... } # 147| 0: [SuperConstructorInvocationStmt] super(...) # 148| 5: [Class] Subclass2 # 148| 1: [Constructor] Subclass2 # 148| 5: [BlockStmt] { ... } # 148| 0: [SuperConstructorInvocationStmt] super(...) # 168| 6: [Class] Direction # 0| 1: [Method] values # 0| 1: [Method] valueOf #-----| 4: (Parameters) # 0| 0: [Parameter] value # 168| 3: [Constructor] Direction # 168| 5: [BlockStmt] { ... } # 168| 0: [ExprStmt] ; # 168| 0: [ClassInstanceExpr] new Enum(...) # 168| -3: [TypeAccess] Unit # 168| 0: [TypeAccess] Direction # 172| 7: [Class] Color # 0| 1: [Method] values # 0| 1: [Method] valueOf #-----| 4: (Parameters) # 0| 0: [Parameter] value # 172| 3: [Constructor] Color #-----| 4: (Parameters) # 172| 0: [Parameter] rgb # 172| 5: [BlockStmt] { ... } # 172| 0: [ExprStmt] ; # 172| 0: [ClassInstanceExpr] new Enum(...) # 172| -3: [TypeAccess] Unit # 172| 0: [TypeAccess] Color # 172| 1: [BlockStmt] { ... } # 172| 0: [ExprStmt] ; # 172| 0: [KtInitializerAssignExpr] ...=... # 172| 0: [VarAccess] rgb # 172| 4: [Method] getRgb # 172| 5: [BlockStmt] { ... } # 172| 0: [ReturnStmt] return ... # 172| 0: [VarAccess] this.rgb # 172| -1: [ThisAccess] this # 172| 4: [FieldDeclaration] int rgb; # 172| -1: [TypeAccess] int # 172| 0: [VarAccess] rgb # 183| 8: [Interface] Interface1 # 185| 9: [Class] Class1 # 185| 1: [Constructor] Class1 # 185| 5: [BlockStmt] { ... } # 185| 0: [SuperConstructorInvocationStmt] super(...) # 185| 1: [BlockStmt] { ... } # 186| 0: [ExprStmt] ; # 186| 0: [KtInitializerAssignExpr] ...=... # 186| 0: [VarAccess] a1 # 186| 2: [Method] getA1 # 186| 5: [BlockStmt] { ... } # 186| 0: [ReturnStmt] return ... # 186| 0: [VarAccess] this.a1 # 186| -1: [ThisAccess] this # 186| 2: [FieldDeclaration] int a1; # 186| -1: [TypeAccess] int # 186| 0: [IntegerLiteral] 1 # 187| 4: [Method] getObject # 187| 5: [BlockStmt] { ... } # 188| 0: [LocalVariableDeclStmt] var ...; # 188| 1: [LocalVariableDeclExpr] a2 # 188| 0: [IntegerLiteral] 2 # 189| 1: [ReturnStmt] return ... # 189| 0: [StmtExpr] # 189| 0: [BlockStmt] { ... } # 189| 0: [LocalTypeDeclStmt] class ... # 189| 0: [AnonymousClass,LocalClass] new Interface1(...) { ... } # 189| 1: [Constructor] # 189| 5: [BlockStmt] { ... } # 189| 0: [SuperConstructorInvocationStmt] super(...) # 189| 1: [BlockStmt] { ... } # 190| 0: [ExprStmt] ; # 190| 0: [KtInitializerAssignExpr] ...=... # 190| 0: [VarAccess] a3 # 190| 2: [Method] getA3 # 190| 5: [BlockStmt] { ... } # 190| 0: [ReturnStmt] return ... # 190| 0: [VarAccess] this.a3 # 190| -1: [ThisAccess] this # 190| 2: [FieldDeclaration] String a3; # 190| -1: [TypeAccess] String # 190| 0: [MethodAccess] toString(...) # 190| -1: [AddExpr] ... + ... # 190| 0: [MethodAccess] getA1(...) # 190| -1: [ThisAccess] this # 190| 1: [VarAccess] a2 # 189| 1: [ExprStmt] ; # 189| 0: [ClassInstanceExpr] new (...) # 189| -3: [TypeAccess] Interface1 # 199| 10: [Class] Class2 # 199| 1: [Constructor] Class2 # 199| 5: [BlockStmt] { ... } # 199| 0: [SuperConstructorInvocationStmt] super(...) # 200| 2: [Method] x #-----| 4: (Parameters) # 200| 0: [Parameter] aa # 200| 1: [Parameter] s # 200| 5: [BlockStmt] { ... } # 202| 0: [LocalVariableDeclStmt] var ...; # 202| 1: [LocalVariableDeclExpr] a # 202| 0: [MethodAccess] valueOf(...) # 202| -1: [TypeAccess] String # 202| 0: [VarAccess] aa # 203| 1: [LocalVariableDeclStmt] var ...; # 203| 1: [LocalVariableDeclExpr] b0 # 203| 0: [MethodAccess] stringPlus(...) # 203| -1: [TypeAccess] Intrinsics # 203| 0: [VarAccess] s # 203| 1: [IntegerLiteral] 5 # 204| 2: [LocalVariableDeclStmt] var ...; # 204| 1: [LocalVariableDeclExpr] b1 # 204| 0: [AddExpr] ... + ... # 204| 0: [VarAccess] s # 204| 1: [IntegerLiteral] 5 # 205| 3: [LocalVariableDeclStmt] var ...; # 205| 1: [LocalVariableDeclExpr] b2 # 205| 0: [MethodAccess] plus(...) # 205| -1: [NotNullExpr] ...!! # 205| 0: [VarAccess] s # 205| 0: [IntegerLiteral] 5 # 206| 4: [LocalVariableDeclStmt] var ...; # 206| 1: [LocalVariableDeclExpr] b3 # 206| 0: [AddExpr] ... + ... # 206| 0: [NotNullExpr] ...!! # 206| 0: [VarAccess] s # 206| 1: [IntegerLiteral] 5 # 207| 5: [LocalVariableDeclStmt] var ...; # 207| 1: [LocalVariableDeclExpr] c0 # 207| 0: [MethodAccess] values(...) # 207| -1: [TypeAccess] Color # 208| 6: [LocalVariableDeclStmt] var ...; # 208| 1: [LocalVariableDeclExpr] c1 # 208| 0: [MethodAccess] values(...) # 208| -1: [TypeAccess] Color # 209| 7: [LocalVariableDeclStmt] var ...; # 209| 1: [LocalVariableDeclExpr] d0 # 209| 0: [MethodAccess] valueOf(...) # 209| -1: [TypeAccess] Color # 209| 0: [StringLiteral] GREEN # 210| 8: [LocalVariableDeclStmt] var ...; # 210| 1: [LocalVariableDeclExpr] d1 # 210| 0: [MethodAccess] valueOf(...) # 210| -1: [TypeAccess] Color # 210| 0: [StringLiteral] GREEN # 218| 11: [Class] SomeClass1 # 218| 1: [Constructor] SomeClass1 # 218| 5: [BlockStmt] { ... } # 218| 0: [SuperConstructorInvocationStmt] super(...) funcExprs.kt: # 0| [CompilationUnit] funcExprs # 0| 1: [Class] FuncExprsKt # 1| 1: [Method] functionExpression0a #-----| 4: (Parameters) # 1| 0: [Parameter] f # 1| 5: [BlockStmt] { ... } # 2| 2: [Method] functionExpression0b #-----| 4: (Parameters) # 2| 0: [Parameter] f # 2| 5: [BlockStmt] { ... } # 3| 3: [Method] functionExpression0c #-----| 4: (Parameters) # 3| 0: [Parameter] f # 3| 5: [BlockStmt] { ... } # 4| 4: [Method] functionExpression1a #-----| 4: (Parameters) # 4| 0: [Parameter] x # 4| 1: [Parameter] f # 4| 5: [BlockStmt] { ... } # 5| 5: [Method] functionExpression1b #-----| 4: (Parameters) # 5| 0: [Parameter] x # 5| 1: [Parameter] f # 5| 5: [BlockStmt] { ... } # 6| 6: [Method] functionExpression1c #-----| 4: (Parameters) # 6| 0: [Parameter] x # 6| 1: [Parameter] f # 6| 5: [BlockStmt] { ... } # 7| 7: [Method] functionExpression2 #-----| 4: (Parameters) # 7| 0: [Parameter] x # 7| 1: [Parameter] f # 7| 5: [BlockStmt] { ... } # 8| 8: [Method] functionExpression3 #-----| 4: (Parameters) # 8| 0: [Parameter] x # 8| 1: [Parameter] f # 8| 5: [BlockStmt] { ... } # 9| 9: [Method] functionExpression4 #-----| 4: (Parameters) # 9| 0: [Parameter] x # 9| 1: [Parameter] f # 9| 5: [BlockStmt] { ... } # 11| 10: [Method] functionExpression22 #-----| 4: (Parameters) # 11| 0: [Parameter] x # 11| 1: [Parameter] f # 11| 5: [BlockStmt] { ... } # 12| 11: [Method] functionExpression23 #-----| 4: (Parameters) # 12| 0: [Parameter] x # 12| 1: [Parameter] f # 12| 5: [BlockStmt] { ... } # 13| 12: [Method] functionExpression23c #-----| 4: (Parameters) # 13| 0: [Parameter] x # 13| 1: [Parameter] f # 13| 5: [BlockStmt] { ... } # 15| 13: [Method] call # 15| 5: [BlockStmt] { ... } # 16| 0: [ExprStmt] ; # 16| 0: [MethodAccess] functionExpression0a(...) # 16| 0: [LambdaExpr] ...->... # 16| -4: [AnonymousClass] new Function0(...) { ... } # 16| 1: [Constructor] # 16| 5: [BlockStmt] { ... } # 16| 0: [SuperConstructorInvocationStmt] super(...) # 16| 1: [Method] invoke # 16| 5: [BlockStmt] { ... } # 16| 0: [ReturnStmt] return ... # 16| 0: [IntegerLiteral] 5 # 16| -3: [TypeAccess] Function0 # 16| 0: [TypeAccess] Integer # 17| 1: [ExprStmt] ; # 17| 0: [MethodAccess] functionExpression0b(...) # 17| 0: [LambdaExpr] ...->... # 17| -4: [AnonymousClass] new Function0(...) { ... } # 17| 1: [Constructor] # 17| 5: [BlockStmt] { ... } # 17| 0: [SuperConstructorInvocationStmt] super(...) # 17| 1: [Method] invoke # 17| 5: [BlockStmt] { ... } # 17| 0: [ReturnStmt] return ... # 17| 0: [IntegerLiteral] 5 # 17| -3: [TypeAccess] Function0 # 17| 0: [TypeAccess] Object # 18| 2: [ExprStmt] ; # 18| 0: [MethodAccess] functionExpression0c(...) # 18| 0: [LambdaExpr] ...->... # 18| -4: [AnonymousClass] new Function0(...) { ... } # 18| 1: [Constructor] # 18| 5: [BlockStmt] { ... } # 18| 0: [SuperConstructorInvocationStmt] super(...) # 18| 1: [Method] invoke # 18| 5: [BlockStmt] { ... } # 18| 0: [ReturnStmt] return ... # 18| 0: [IntegerLiteral] 5 # 18| -3: [TypeAccess] Function0 # 18| 0: [TypeAccess] Object # 19| 3: [ExprStmt] ; # 19| 0: [MethodAccess] functionExpression1a(...) # 19| 0: [IntegerLiteral] 5 # 19| 1: [LambdaExpr] ...->... # 19| -4: [AnonymousClass] new Function1(...) { ... } # 19| 1: [Constructor] # 19| 5: [BlockStmt] { ... } # 19| 0: [SuperConstructorInvocationStmt] super(...) # 19| 1: [Method] invoke #-----| 4: (Parameters) # 19| 0: [Parameter] a # 19| 5: [BlockStmt] { ... } # 19| 0: [ReturnStmt] return ... # 19| 0: [IntegerLiteral] 5 # 19| -3: [TypeAccess] Function1 # 19| 0: [TypeAccess] Integer # 19| 1: [TypeAccess] Integer # 20| 4: [ExprStmt] ; # 20| 0: [MethodAccess] functionExpression1a(...) # 20| 0: [IntegerLiteral] 5 # 20| 1: [LambdaExpr] ...->... # 20| -4: [AnonymousClass] new Function1(...) { ... } # 20| 1: [Constructor] # 20| 5: [BlockStmt] { ... } # 20| 0: [SuperConstructorInvocationStmt] super(...) # 20| 1: [Method] invoke #-----| 4: (Parameters) # 20| 0: [Parameter] it # 20| 5: [BlockStmt] { ... } # 20| 0: [ReturnStmt] return ... # 20| 0: [VarAccess] it # 20| -3: [TypeAccess] Function1 # 20| 0: [TypeAccess] Integer # 20| 1: [TypeAccess] Integer # 21| 5: [ExprStmt] ; # 21| 0: [MethodAccess] functionExpression1a(...) # 21| 0: [IntegerLiteral] 5 # 21| 1: [LambdaExpr] ...->... # 21| -4: [AnonymousClass] new Function1(...) { ... } # 21| 1: [Constructor] # 21| 5: [BlockStmt] { ... } # 21| 0: [SuperConstructorInvocationStmt] super(...) # 21| 1: [Method] invoke #-----| 4: (Parameters) # 21| 0: [Parameter] $noName_0 # 21| 5: [BlockStmt] { ... } # 21| 0: [ReturnStmt] return ... # 21| 0: [IntegerLiteral] 5 # 21| -3: [TypeAccess] Function1 # 21| 0: [TypeAccess] Integer # 21| 1: [TypeAccess] Integer # 22| 6: [ExprStmt] ; # 22| 0: [MethodAccess] functionExpression1a(...) # 22| 0: [IntegerLiteral] 5 # 22| 1: [ClassInstanceExpr] new MyLambda(...) # 22| -3: [TypeAccess] MyLambda # 23| 7: [ExprStmt] ; # 23| 0: [MethodAccess] functionExpression1b(...) # 23| 0: [IntegerLiteral] 5 # 23| 1: [LambdaExpr] ...->... # 23| -4: [AnonymousClass] new Function1(...) { ... } # 23| 1: [Constructor] # 23| 5: [BlockStmt] { ... } # 23| 0: [SuperConstructorInvocationStmt] super(...) # 23| 1: [Method] invoke #-----| 4: (Parameters) # 23| 0: [Parameter] a # 23| 5: [BlockStmt] { ... } # 23| 0: [ReturnStmt] return ... # 23| 0: [VarAccess] a # 23| -3: [TypeAccess] Function1 # 23| 0: [TypeAccess] Object # 23| 1: [TypeAccess] Object # 24| 8: [ExprStmt] ; # 24| 0: [MethodAccess] functionExpression2(...) # 24| 0: [IntegerLiteral] 5 # 24| 1: [LambdaExpr] ...->... # 24| -4: [AnonymousClass] new Function2(...) { ... } # 24| 1: [Constructor] # 24| 5: [BlockStmt] { ... } # 24| 0: [SuperConstructorInvocationStmt] super(...) # 24| 1: [Method] invoke #-----| 4: (Parameters) # 24| 0: [Parameter] $noName_0 # 24| 1: [Parameter] $noName_1 # 24| 5: [BlockStmt] { ... } # 24| 0: [ReturnStmt] return ... # 24| 0: [IntegerLiteral] 5 # 24| -3: [TypeAccess] Function2 # 24| 0: [TypeAccess] Integer # 24| 1: [TypeAccess] Integer # 24| 2: [TypeAccess] Integer # 25| 9: [ExprStmt] ; # 25| 0: [MethodAccess] functionExpression2(...) # 25| 0: [IntegerLiteral] 5 # 25| 1: [LambdaExpr] ...->... # 25| -4: [AnonymousClass] new Function2(...) { ... } # 25| 1: [Constructor] # 25| 5: [BlockStmt] { ... } # 25| 0: [SuperConstructorInvocationStmt] super(...) # 25| 1: [Method] invoke #-----| 4: (Parameters) # 25| 0: [Parameter] $noName_0 # 25| 1: [Parameter] $noName_1 # 25| 5: [BlockStmt] { ... } # 25| 0: [ReturnStmt] return ... # 25| 0: [IntegerLiteral] 5 # 25| -3: [TypeAccess] Function2 # 25| 0: [TypeAccess] Integer # 25| 1: [TypeAccess] Integer # 25| 2: [TypeAccess] Integer # 26| 10: [ExprStmt] ; # 26| 0: [MethodAccess] functionExpression3(...) # 26| 0: [IntegerLiteral] 5 # 26| 1: [LambdaExpr] ...->... # 26| -4: [AnonymousClass] new Function2(...) { ... } # 26| 1: [Constructor] # 26| 5: [BlockStmt] { ... } # 26| 0: [SuperConstructorInvocationStmt] super(...) # 26| 1: [ExtensionMethod] invoke #-----| 4: (Parameters) # 26| 0: [Parameter] $this$functionExpression3 # 26| 1: [Parameter] a # 26| 5: [BlockStmt] { ... } # 26| 0: [ReturnStmt] return ... # 26| 0: [AddExpr] ... + ... # 26| 0: [ThisAccess] this # 26| 1: [VarAccess] a # 26| -3: [TypeAccess] Function2 # 26| 0: [TypeAccess] Integer # 26| 1: [TypeAccess] Integer # 26| 2: [TypeAccess] Integer # 27| 11: [ExprStmt] ; # 27| 0: [MethodAccess] functionExpression4(...) # 27| 0: [IntegerLiteral] 5 # 27| 1: [LambdaExpr] ...->... # 27| -4: [AnonymousClass] new Function1>(...) { ... } # 27| 1: [Constructor] # 27| 5: [BlockStmt] { ... } # 27| 0: [SuperConstructorInvocationStmt] super(...) # 27| 1: [Method] invoke #-----| 4: (Parameters) # 27| 0: [Parameter] a # 27| 5: [BlockStmt] { ... } # 27| 0: [ReturnStmt] return ... # 27| 0: [LambdaExpr] ...->... # 27| -4: [AnonymousClass] new Function1(...) { ... } # 27| 1: [Constructor] # 27| 5: [BlockStmt] { ... } # 27| 0: [SuperConstructorInvocationStmt] super(...) # 27| 1: [Method] invoke #-----| 4: (Parameters) # 27| 0: [Parameter] b # 27| 5: [BlockStmt] { ... } # 27| 0: [ReturnStmt] return ... # 27| 0: [DoubleLiteral] 5.0 # 27| -3: [TypeAccess] Function1 # 27| 0: [TypeAccess] Integer # 27| 1: [TypeAccess] Double # 27| -3: [TypeAccess] Function1> # 27| 0: [TypeAccess] Integer # 27| 1: [TypeAccess] Function1 # 27| 0: [TypeAccess] Integer # 27| 1: [TypeAccess] Double # 29| 12: [ExprStmt] ; # 29| 0: [MethodAccess] functionExpression22(...) # 29| 0: [IntegerLiteral] 5 # 29| 1: [LambdaExpr] ...->... # 29| -4: [AnonymousClass] new Function22(...) { ... } # 29| 1: [Constructor] # 29| 5: [BlockStmt] { ... } # 29| 0: [SuperConstructorInvocationStmt] super(...) # 29| 1: [Method] invoke #-----| 4: (Parameters) # 29| 0: [Parameter] a0 # 29| 1: [Parameter] a1 # 29| 2: [Parameter] a2 # 29| 3: [Parameter] a3 # 29| 4: [Parameter] a4 # 29| 5: [Parameter] a5 # 29| 6: [Parameter] a6 # 29| 7: [Parameter] a7 # 29| 8: [Parameter] a8 # 29| 9: [Parameter] a9 # 29| 10: [Parameter] a10 # 29| 11: [Parameter] a11 # 29| 12: [Parameter] a12 # 29| 13: [Parameter] a13 # 29| 14: [Parameter] a14 # 29| 15: [Parameter] a15 # 29| 16: [Parameter] a16 # 29| 17: [Parameter] a17 # 29| 18: [Parameter] a18 # 29| 19: [Parameter] a19 # 29| 20: [Parameter] a20 # 29| 21: [Parameter] a21 # 29| 5: [BlockStmt] { ... } # 29| 0: [ExprStmt] ; # 29| 0: [ImplicitCoercionToUnitExpr] # 29| 0: [TypeAccess] Unit # 29| 1: [IntegerLiteral] 5 # 29| -3: [TypeAccess] Function22 # 29| 0: [TypeAccess] Integer # 29| 1: [TypeAccess] Integer # 29| 2: [TypeAccess] Integer # 29| 3: [TypeAccess] Integer # 29| 4: [TypeAccess] Integer # 29| 5: [TypeAccess] Integer # 29| 6: [TypeAccess] Integer # 29| 7: [TypeAccess] Integer # 29| 8: [TypeAccess] Integer # 29| 9: [TypeAccess] Integer # 29| 10: [TypeAccess] Integer # 29| 11: [TypeAccess] Integer # 29| 12: [TypeAccess] Integer # 29| 13: [TypeAccess] Integer # 29| 14: [TypeAccess] Integer # 29| 15: [TypeAccess] Integer # 29| 16: [TypeAccess] Integer # 29| 17: [TypeAccess] Integer # 29| 18: [TypeAccess] Integer # 29| 19: [TypeAccess] Integer # 29| 20: [TypeAccess] Integer # 29| 21: [TypeAccess] Integer # 29| 22: [TypeAccess] Unit # 30| 13: [ExprStmt] ; # 30| 0: [MethodAccess] functionExpression23(...) # 30| 0: [IntegerLiteral] 5 # 30| 1: [LambdaExpr] ...->... # 30| -4: [AnonymousClass] new FunctionN(...) { ... } # 30| 1: [Constructor] # 30| 5: [BlockStmt] { ... } # 30| 0: [SuperConstructorInvocationStmt] super(...) # 30| 1: [Method] invoke #-----| 4: (Parameters) # 30| 0: [Parameter] a0 # 30| 1: [Parameter] a1 # 30| 2: [Parameter] a2 # 30| 3: [Parameter] a3 # 30| 4: [Parameter] a4 # 30| 5: [Parameter] a5 # 30| 6: [Parameter] a6 # 30| 7: [Parameter] a7 # 30| 8: [Parameter] a8 # 30| 9: [Parameter] a9 # 30| 10: [Parameter] a10 # 30| 11: [Parameter] a11 # 30| 12: [Parameter] a12 # 30| 13: [Parameter] a13 # 30| 14: [Parameter] a14 # 30| 15: [Parameter] a15 # 30| 16: [Parameter] a16 # 30| 17: [Parameter] a17 # 30| 18: [Parameter] a18 # 30| 19: [Parameter] a19 # 30| 20: [Parameter] a20 # 30| 21: [Parameter] a21 # 30| 22: [Parameter] a22 # 30| 5: [BlockStmt] { ... } # 30| 0: [ReturnStmt] return ... # 30| 0: [StringLiteral] # 30| 1: [Method] invoke #-----| 4: (Parameters) # 30| 0: [Parameter] a0 # 30| 5: [BlockStmt] { ... } # 30| 0: [ReturnStmt] return ... # 30| 0: [MethodAccess] invoke(...) # 30| -1: [ThisAccess] this # 30| 0: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 0 # 30| 1: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 1 # 30| 2: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 2 # 30| 3: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 3 # 30| 4: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 4 # 30| 5: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 5 # 30| 6: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 6 # 30| 7: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 7 # 30| 8: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 8 # 30| 9: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 9 # 30| 10: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 10 # 30| 11: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 11 # 30| 12: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 12 # 30| 13: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 13 # 30| 14: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 14 # 30| 15: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 15 # 30| 16: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 16 # 30| 17: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 17 # 30| 18: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 18 # 30| 19: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 19 # 30| 20: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 20 # 30| 21: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 21 # 30| 22: [CastExpr] (...)... # 30| 0: [TypeAccess] int # 30| 1: [ArrayAccess] ...[...] # 30| 0: [VarAccess] a0 # 30| 1: [IntegerLiteral] 22 # 30| -3: [TypeAccess] FunctionN # 30| 0: [TypeAccess] String # 32| 14: [ExprStmt] ; # 32| 0: [MethodAccess] functionExpression0a(...) # 32| 0: [MemberRefExpr] ...::... # 32| -4: [AnonymousClass] new Function0(...) { ... } # 32| 1: [Constructor] #-----| 4: (Parameters) # 32| 0: [Parameter] # 32| 5: [BlockStmt] { ... } # 32| 0: [SuperConstructorInvocationStmt] super(...) # 32| 1: [ExprStmt] ; # 32| 0: [AssignExpr] ...=... # 32| 0: [VarAccess] this. # 32| -1: [ThisAccess] this # 32| 1: [VarAccess] # 32| 1: [Method] invoke # 32| 5: [BlockStmt] { ... } # 32| 0: [ReturnStmt] return ... # 32| 0: [MethodAccess] f0(...) # 32| -1: [VarAccess] this. # 32| -1: [ThisAccess] this # 32| 1: [FieldDeclaration] FuncRef ; # 32| -1: [TypeAccess] FuncRef # 32| -3: [TypeAccess] Function0 # 32| 0: [TypeAccess] Integer # 32| 0: [ClassInstanceExpr] new FuncRef(...) # 32| -3: [TypeAccess] FuncRef # 33| 15: [ExprStmt] ; # 33| 0: [MethodAccess] functionExpression0a(...) # 33| 0: [MemberRefExpr] ...::... # 33| -4: [AnonymousClass] new Function0(...) { ... } # 33| 1: [Constructor] #-----| 4: (Parameters) # 33| 0: [Parameter] # 33| 5: [BlockStmt] { ... } # 33| 0: [SuperConstructorInvocationStmt] super(...) # 33| 1: [ExprStmt] ; # 33| 0: [AssignExpr] ...=... # 33| 0: [VarAccess] this. # 33| -1: [ThisAccess] this # 33| 1: [VarAccess] # 33| 1: [Method] invoke # 33| 5: [BlockStmt] { ... } # 33| 0: [ReturnStmt] return ... # 33| 0: [MethodAccess] f0(...) # 33| -1: [VarAccess] this. # 33| -1: [ThisAccess] this # 33| 1: [FieldDeclaration] Companion ; # 33| -1: [TypeAccess] Companion # 33| -3: [TypeAccess] Function0 # 33| 0: [TypeAccess] Integer # 33| 0: [VarAccess] Companion # 34| 16: [ExprStmt] ; # 34| 0: [MethodAccess] functionExpression1a(...) # 34| 0: [IntegerLiteral] 5 # 34| 1: [MemberRefExpr] ...::... # 34| -4: [AnonymousClass] new Function1(...) { ... } # 34| 1: [Constructor] #-----| 4: (Parameters) # 34| 0: [Parameter] # 34| 5: [BlockStmt] { ... } # 34| 0: [SuperConstructorInvocationStmt] super(...) # 34| 1: [ExprStmt] ; # 34| 0: [AssignExpr] ...=... # 34| 0: [VarAccess] this. # 34| -1: [ThisAccess] this # 34| 1: [VarAccess] # 34| 1: [Method] invoke #-----| 4: (Parameters) # 34| 0: [Parameter] a0 # 34| 5: [BlockStmt] { ... } # 34| 0: [ReturnStmt] return ... # 34| 0: [MethodAccess] f1(...) # 34| -1: [VarAccess] this. # 34| -1: [ThisAccess] this # 34| 0: [VarAccess] a0 # 34| 1: [FieldDeclaration] FuncRef ; # 34| -1: [TypeAccess] FuncRef # 34| -3: [TypeAccess] Function1 # 34| 0: [TypeAccess] Integer # 34| 1: [TypeAccess] Integer # 34| 0: [ClassInstanceExpr] new FuncRef(...) # 34| -3: [TypeAccess] FuncRef # 35| 17: [ExprStmt] ; # 35| 0: [MethodAccess] functionExpression1c(...) # 35| 0: [IntegerLiteral] 5 # 35| 1: [MemberRefExpr] ...::... # 35| -4: [AnonymousClass] new Function2(...) { ... } # 35| 1: [Constructor] # 35| 5: [BlockStmt] { ... } # 35| 0: [SuperConstructorInvocationStmt] super(...) # 35| 1: [Method] invoke #-----| 4: (Parameters) # 35| 0: [Parameter] a0 # 35| 1: [Parameter] a1 # 35| 5: [BlockStmt] { ... } # 35| 0: [ReturnStmt] return ... # 35| 0: [MethodAccess] f1(...) # 35| -1: [VarAccess] a0 # 35| 0: [VarAccess] a1 # 35| -3: [TypeAccess] Function2 # 35| 0: [TypeAccess] FuncRef # 35| 1: [TypeAccess] Integer # 35| 2: [TypeAccess] Integer # 36| 18: [ExprStmt] ; # 36| 0: [MethodAccess] functionExpression1a(...) # 36| 0: [IntegerLiteral] 5 # 36| 1: [MemberRefExpr] ...::... # 36| -4: [AnonymousClass] new Function1(...) { ... } # 36| 1: [Constructor] #-----| 4: (Parameters) # 36| 0: [Parameter] # 36| 5: [BlockStmt] { ... } # 36| 0: [SuperConstructorInvocationStmt] super(...) # 36| 1: [ExprStmt] ; # 36| 0: [AssignExpr] ...=... # 36| 0: [VarAccess] this. # 36| -1: [ThisAccess] this # 36| 1: [VarAccess] # 36| 1: [Method] invoke #-----| 4: (Parameters) # 36| 0: [Parameter] a0 # 36| 5: [BlockStmt] { ... } # 36| 0: [ReturnStmt] return ... # 36| 0: [MethodAccess] f3(...) # 36| 0: [VarAccess] this. # 36| -1: [ThisAccess] this # 36| 1: [VarAccess] a0 # 36| 1: [FieldDeclaration] int ; # 36| -1: [TypeAccess] int # 36| -3: [TypeAccess] Function1 # 36| 0: [TypeAccess] Integer # 36| 1: [TypeAccess] Integer # 36| 0: [IntegerLiteral] 3 # 37| 19: [ExprStmt] ; # 37| 0: [MethodAccess] functionExpression3(...) # 37| 0: [IntegerLiteral] 5 # 37| 1: [MemberRefExpr] ...::... # 37| -4: [AnonymousClass] new Function2(...) { ... } # 37| 1: [Constructor] # 37| 5: [BlockStmt] { ... } # 37| 0: [SuperConstructorInvocationStmt] super(...) # 37| 1: [Method] invoke #-----| 4: (Parameters) # 37| 0: [Parameter] a0 # 37| 1: [Parameter] a1 # 37| 5: [BlockStmt] { ... } # 37| 0: [ReturnStmt] return ... # 37| 0: [MethodAccess] f3(...) # 37| 0: [VarAccess] a0 # 37| 1: [VarAccess] a1 # 37| -3: [TypeAccess] Function2 # 37| 0: [TypeAccess] Integer # 37| 1: [TypeAccess] Integer # 37| 2: [TypeAccess] Integer # 38| 20: [ExprStmt] ; # 38| 0: [MethodAccess] functionExpression22(...) # 38| 0: [IntegerLiteral] 5 # 38| 1: [MemberRefExpr] ...::... # 38| -4: [AnonymousClass] new Function22(...) { ... } # 38| 1: [Constructor] #-----| 4: (Parameters) # 38| 0: [Parameter] # 38| 5: [BlockStmt] { ... } # 38| 0: [SuperConstructorInvocationStmt] super(...) # 38| 1: [ExprStmt] ; # 38| 0: [AssignExpr] ...=... # 38| 0: [VarAccess] this. # 38| -1: [ThisAccess] this # 38| 1: [VarAccess] # 38| 1: [Method] invoke #-----| 4: (Parameters) # 38| 0: [Parameter] a0 # 38| 1: [Parameter] a1 # 38| 2: [Parameter] a2 # 38| 3: [Parameter] a3 # 38| 4: [Parameter] a4 # 38| 5: [Parameter] a5 # 38| 6: [Parameter] a6 # 38| 7: [Parameter] a7 # 38| 8: [Parameter] a8 # 38| 9: [Parameter] a9 # 38| 10: [Parameter] a10 # 38| 11: [Parameter] a11 # 38| 12: [Parameter] a12 # 38| 13: [Parameter] a13 # 38| 14: [Parameter] a14 # 38| 15: [Parameter] a15 # 38| 16: [Parameter] a16 # 38| 17: [Parameter] a17 # 38| 18: [Parameter] a18 # 38| 19: [Parameter] a19 # 38| 20: [Parameter] a20 # 38| 21: [Parameter] a21 # 38| 5: [BlockStmt] { ... } # 38| 0: [ReturnStmt] return ... # 38| 0: [MethodAccess] f22(...) # 38| -1: [VarAccess] this. # 38| -1: [ThisAccess] this # 38| 0: [VarAccess] a0 # 38| 1: [VarAccess] a1 # 38| 2: [VarAccess] a2 # 38| 3: [VarAccess] a3 # 38| 4: [VarAccess] a4 # 38| 5: [VarAccess] a5 # 38| 6: [VarAccess] a6 # 38| 7: [VarAccess] a7 # 38| 8: [VarAccess] a8 # 38| 9: [VarAccess] a9 # 38| 10: [VarAccess] a10 # 38| 11: [VarAccess] a11 # 38| 12: [VarAccess] a12 # 38| 13: [VarAccess] a13 # 38| 14: [VarAccess] a14 # 38| 15: [VarAccess] a15 # 38| 16: [VarAccess] a16 # 38| 17: [VarAccess] a17 # 38| 18: [VarAccess] a18 # 38| 19: [VarAccess] a19 # 38| 20: [VarAccess] a20 # 38| 21: [VarAccess] a21 # 38| 1: [FieldDeclaration] FuncRef ; # 38| -1: [TypeAccess] FuncRef # 38| -3: [TypeAccess] Function22 # 38| 0: [TypeAccess] Integer # 38| 1: [TypeAccess] Integer # 38| 2: [TypeAccess] Integer # 38| 3: [TypeAccess] Integer # 38| 4: [TypeAccess] Integer # 38| 5: [TypeAccess] Integer # 38| 6: [TypeAccess] Integer # 38| 7: [TypeAccess] Integer # 38| 8: [TypeAccess] Integer # 38| 9: [TypeAccess] Integer # 38| 10: [TypeAccess] Integer # 38| 11: [TypeAccess] Integer # 38| 12: [TypeAccess] Integer # 38| 13: [TypeAccess] Integer # 38| 14: [TypeAccess] Integer # 38| 15: [TypeAccess] Integer # 38| 16: [TypeAccess] Integer # 38| 17: [TypeAccess] Integer # 38| 18: [TypeAccess] Integer # 38| 19: [TypeAccess] Integer # 38| 20: [TypeAccess] Integer # 38| 21: [TypeAccess] Integer # 38| 22: [TypeAccess] Unit # 38| 0: [ClassInstanceExpr] new FuncRef(...) # 38| -3: [TypeAccess] FuncRef # 39| 21: [ExprStmt] ; # 39| 0: [MethodAccess] functionExpression23(...) # 39| 0: [IntegerLiteral] 5 # 39| 1: [MemberRefExpr] ...::... # 39| -4: [AnonymousClass] new FunctionN(...) { ... } # 39| 1: [Constructor] #-----| 4: (Parameters) # 39| 0: [Parameter] # 39| 5: [BlockStmt] { ... } # 39| 0: [SuperConstructorInvocationStmt] super(...) # 39| 1: [ExprStmt] ; # 39| 0: [AssignExpr] ...=... # 39| 0: [VarAccess] this. # 39| -1: [ThisAccess] this # 39| 1: [VarAccess] # 39| 1: [Method] invoke #-----| 4: (Parameters) # 39| 0: [Parameter] a0 # 39| 5: [BlockStmt] { ... } # 39| 0: [ReturnStmt] return ... # 39| 0: [MethodAccess] f23(...) # 39| -1: [VarAccess] this. # 39| -1: [ThisAccess] this # 39| 0: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 0 # 39| 1: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 1 # 39| 2: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 2 # 39| 3: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 3 # 39| 4: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 4 # 39| 5: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 5 # 39| 6: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 6 # 39| 7: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 7 # 39| 8: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 8 # 39| 9: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 9 # 39| 10: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 10 # 39| 11: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 11 # 39| 12: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 12 # 39| 13: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 13 # 39| 14: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 14 # 39| 15: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 15 # 39| 16: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 16 # 39| 17: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 17 # 39| 18: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 18 # 39| 19: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 19 # 39| 20: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 20 # 39| 21: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 21 # 39| 22: [CastExpr] (...)... # 39| 0: [TypeAccess] int # 39| 1: [ArrayAccess] ...[...] # 39| 0: [VarAccess] a0 # 39| 1: [IntegerLiteral] 22 # 39| 1: [FieldDeclaration] FuncRef ; # 39| -1: [TypeAccess] FuncRef # 39| -3: [TypeAccess] FunctionN # 39| 0: [TypeAccess] String # 39| 0: [ClassInstanceExpr] new FuncRef(...) # 39| -3: [TypeAccess] FuncRef # 40| 22: [ExprStmt] ; # 40| 0: [MethodAccess] functionExpression23c(...) # 40| 0: [IntegerLiteral] 5 # 40| 1: [MemberRefExpr] ...::... # 40| -4: [AnonymousClass] new FunctionN(...) { ... } # 40| 1: [Constructor] # 40| 5: [BlockStmt] { ... } # 40| 0: [SuperConstructorInvocationStmt] super(...) # 40| 1: [Method] invoke #-----| 4: (Parameters) # 40| 0: [Parameter] a0 # 40| 5: [BlockStmt] { ... } # 40| 0: [ReturnStmt] return ... # 40| 0: [MethodAccess] f23(...) # 40| -1: [CastExpr] (...)... # 40| 0: [TypeAccess] FuncRef # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 0 # 40| 0: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 1 # 40| 1: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 2 # 40| 2: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 3 # 40| 3: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 4 # 40| 4: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 5 # 40| 5: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 6 # 40| 6: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 7 # 40| 7: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 8 # 40| 8: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 9 # 40| 9: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 10 # 40| 10: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 11 # 40| 11: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 12 # 40| 12: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 13 # 40| 13: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 14 # 40| 14: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 15 # 40| 15: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 16 # 40| 16: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 17 # 40| 17: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 18 # 40| 18: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 19 # 40| 19: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 20 # 40| 20: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 21 # 40| 21: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 22 # 40| 22: [CastExpr] (...)... # 40| 0: [TypeAccess] int # 40| 1: [ArrayAccess] ...[...] # 40| 0: [VarAccess] a0 # 40| 1: [IntegerLiteral] 23 # 40| -3: [TypeAccess] FunctionN # 40| 0: [TypeAccess] String # 42| 23: [LocalTypeDeclStmt] class ... # 42| 0: [LocalClass] # 42| 1: [Constructor] # 42| 5: [BlockStmt] { ... } # 42| 0: [SuperConstructorInvocationStmt] super(...) # 42| 1: [Method] local # 42| 5: [BlockStmt] { ... } # 42| 0: [ReturnStmt] return ... # 42| 0: [IntegerLiteral] 5 # 43| 24: [ExprStmt] ; # 43| 0: [MethodAccess] functionExpression0a(...) # 43| 0: [MemberRefExpr] ...::... # 43| -4: [AnonymousClass] new Function0(...) { ... } # 43| 1: [Constructor] # 43| 5: [BlockStmt] { ... } # 43| 0: [SuperConstructorInvocationStmt] super(...) # 43| 1: [Method] invoke # 43| 5: [BlockStmt] { ... } # 43| 0: [ReturnStmt] return ... # 43| 0: [MethodAccess] local(...) # 43| -3: [TypeAccess] Function0 # 43| 0: [TypeAccess] Integer # 45| 25: [ExprStmt] ; # 45| 0: [MethodAccess] fn(...) # 45| -2: [TypeAccess] FuncRef # 45| 0: [MemberRefExpr] ...::... # 45| -4: [AnonymousClass] new Function0(...) { ... } # 45| 1: [Constructor] # 45| 5: [BlockStmt] { ... } # 45| 0: [SuperConstructorInvocationStmt] super(...) # 45| 1: [Method] invoke # 45| 5: [BlockStmt] { ... } # 45| 0: [ReturnStmt] return ... # 45| 0: [ClassInstanceExpr] new FuncRef(...) # 45| -3: [TypeAccess] FuncRef # 45| -3: [TypeAccess] Function0 # 45| 0: [TypeAccess] FuncRef # 52| 14: [Method] fn #-----| 2: (Generic Parameters) # 52| 0: [TypeVariable] T #-----| 4: (Parameters) # 52| 0: [Parameter] l # 52| 5: [BlockStmt] { ... } # 53| 15: [ExtensionMethod] f3 #-----| 4: (Parameters) # 53| 0: [Parameter] # 53| 1: [Parameter] a # 53| 5: [BlockStmt] { ... } # 53| 0: [ReturnStmt] return ... # 53| 0: [IntegerLiteral] 5 # 48| 2: [Class] MyLambda # 48| 1: [Constructor] MyLambda # 48| 5: [BlockStmt] { ... } # 48| 0: [SuperConstructorInvocationStmt] super(...) # 49| 2: [Method] invoke #-----| 4: (Parameters) # 49| 0: [Parameter] x # 49| 5: [BlockStmt] { ... } # 49| 0: [ReturnStmt] return ... # 49| 0: [IntegerLiteral] 5 # 55| 3: [Class] FuncRef # 55| 1: [Constructor] FuncRef # 55| 5: [BlockStmt] { ... } # 55| 0: [SuperConstructorInvocationStmt] super(...) # 56| 2: [Class] Companion # 56| 1: [Constructor] Companion # 56| 5: [BlockStmt] { ... } # 56| 0: [SuperConstructorInvocationStmt] super(...) # 57| 2: [Method] f0 # 57| 5: [BlockStmt] { ... } # 57| 0: [ReturnStmt] return ... # 57| 0: [IntegerLiteral] 5 # 59| 3: [Method] f0 # 59| 5: [BlockStmt] { ... } # 59| 0: [ReturnStmt] return ... # 59| 0: [IntegerLiteral] 5 # 60| 4: [Method] f1 #-----| 4: (Parameters) # 60| 0: [Parameter] a # 60| 5: [BlockStmt] { ... } # 60| 0: [ReturnStmt] return ... # 60| 0: [IntegerLiteral] 5 # 61| 5: [Method] f22 #-----| 4: (Parameters) # 61| 0: [Parameter] a0 # 61| 1: [Parameter] a1 # 61| 2: [Parameter] a2 # 61| 3: [Parameter] a3 # 61| 4: [Parameter] a4 # 61| 5: [Parameter] a5 # 61| 6: [Parameter] a6 # 61| 7: [Parameter] a7 # 61| 8: [Parameter] a8 # 61| 9: [Parameter] a9 # 61| 10: [Parameter] a10 # 62| 11: [Parameter] a11 # 62| 12: [Parameter] a12 # 62| 13: [Parameter] a13 # 62| 14: [Parameter] a14 # 62| 15: [Parameter] a15 # 62| 16: [Parameter] a16 # 62| 17: [Parameter] a17 # 62| 18: [Parameter] a18 # 62| 19: [Parameter] a19 # 62| 20: [Parameter] a20 # 62| 21: [Parameter] a21 # 62| 5: [BlockStmt] { ... } # 63| 6: [Method] f23 #-----| 4: (Parameters) # 63| 0: [Parameter] a0 # 63| 1: [Parameter] a1 # 63| 2: [Parameter] a2 # 63| 3: [Parameter] a3 # 63| 4: [Parameter] a4 # 63| 5: [Parameter] a5 # 63| 6: [Parameter] a6 # 63| 7: [Parameter] a7 # 63| 8: [Parameter] a8 # 63| 9: [Parameter] a9 # 63| 10: [Parameter] a10 # 64| 11: [Parameter] a11 # 64| 12: [Parameter] a12 # 64| 13: [Parameter] a13 # 64| 14: [Parameter] a14 # 64| 15: [Parameter] a15 # 64| 16: [Parameter] a16 # 64| 17: [Parameter] a17 # 64| 18: [Parameter] a18 # 64| 19: [Parameter] a19 # 64| 20: [Parameter] a20 # 64| 21: [Parameter] a21 # 64| 22: [Parameter] a22 # 64| 5: [BlockStmt] { ... } # 64| 0: [ReturnStmt] return ... # 64| 0: [StringLiteral] # 67| 4: [Class] Class3 # 67| 1: [Constructor] Class3 # 67| 5: [BlockStmt] { ... } # 67| 0: [SuperConstructorInvocationStmt] super(...) # 68| 2: [Method] call # 68| 5: [BlockStmt] { ... } # 69| 0: [ExprStmt] ; # 69| 0: [MethodAccess] fn(...) # 69| -1: [ThisAccess] this # 69| 0: [LambdaExpr] ...->... # 69| -4: [AnonymousClass] new Function1>,String>(...) { ... } # 69| 1: [Constructor] # 69| 5: [BlockStmt] { ... } # 69| 0: [SuperConstructorInvocationStmt] super(...) # 69| 1: [Method] invoke #-----| 4: (Parameters) # 69| 0: [Parameter] a # 69| 5: [BlockStmt] { ... } # 69| 0: [ReturnStmt] return ... # 69| 0: [StringLiteral] a # 69| -3: [TypeAccess] Function1>,String> # 69| 0: [TypeAccess] Generic> # 69| 0: [TypeAccess] Generic # 69| 0: [TypeAccess] Integer # 69| 1: [TypeAccess] String # 71| 3: [Method] fn #-----| 4: (Parameters) # 71| 0: [Parameter] f # 71| 5: [BlockStmt] { ... } # 73| 4: [Class,GenericType,ParameterizedType] Generic #-----| -2: (Generic Parameters) # 73| 0: [TypeVariable] T # 73| 1: [Constructor] Generic # 73| 5: [BlockStmt] { ... } # 73| 0: [SuperConstructorInvocationStmt] super(...) localFunctionCalls.kt: # 0| [CompilationUnit] localFunctionCalls # 0| 1: [Class] LocalFunctionCallsKt # 3| 1: [Method] x # 3| 5: [BlockStmt] { ... } # 4| 0: [LocalVariableDeclStmt] var ...; # 4| 1: [LocalVariableDeclExpr] x # 4| 0: [IntegerLiteral] 5 # 5| 1: [LocalTypeDeclStmt] class ... # 5| 0: [AnonymousClass,LocalClass] new Object(...) { ... } # 5| 1: [Constructor] # 5| 5: [BlockStmt] { ... } # 5| 0: [SuperConstructorInvocationStmt] super(...) # 5| 1: [Method] a #-----| 2: (Generic Parameters) # 5| 0: [TypeVariable] T #-----| 4: (Parameters) # 5| 0: [Parameter] i # 5| 5: [BlockStmt] { ... } # 5| 0: [ReturnStmt] return ... # 5| 0: [AddExpr] ... + ... # 5| 0: [VarAccess] i # 5| 1: [VarAccess] x # 6| 2: [ExprStmt] ; # 6| 0: [AssignExpr] ...=... # 6| 0: [VarAccess] x # 6| 1: [IntegerLiteral] 6 # 7| 3: [ExprStmt] ; # 7| 0: [ImplicitCoercionToUnitExpr] # 7| 0: [TypeAccess] Unit # 7| 1: [MethodAccess] a(...) # 7| -2: [TypeAccess] String # 7| -1: [ClassInstanceExpr] new (...) # 7| -3: [TypeAccess] Object # 7| 0: [IntegerLiteral] 42 # 8| 4: [ExprStmt] ; # 8| 0: [AssignExpr] ...=... # 8| 0: [VarAccess] x # 8| 1: [IntegerLiteral] 7 # 9| 5: [LocalTypeDeclStmt] class ... # 9| 0: [AnonymousClass,LocalClass] new Object(...) { ... } # 9| 1: [Constructor] # 9| 5: [BlockStmt] { ... } # 9| 0: [SuperConstructorInvocationStmt] super(...) # 9| 1: [ExtensionMethod] f1 #-----| 2: (Generic Parameters) # 9| 0: [TypeVariable] T1 #-----| 4: (Parameters) # 9| 0: [Parameter] # 9| 1: [Parameter] i # 9| 5: [BlockStmt] { ... } # 9| 0: [ReturnStmt] return ... # 9| 0: [IntegerLiteral] 5 # 10| 6: [ExprStmt] ; # 10| 0: [ImplicitCoercionToUnitExpr] # 10| 0: [TypeAccess] Unit # 10| 1: [MethodAccess] f1(...) # 10| -2: [TypeAccess] Integer # 10| -1: [ClassInstanceExpr] new (...) # 10| -3: [TypeAccess] Object # 10| 0: [ClassInstanceExpr] new C1(...) # 10| -3: [TypeAccess] C1 # 10| 0: [TypeAccess] Integer # 10| 1: [IntegerLiteral] 42 # 13| 2: [Class,GenericType,ParameterizedType] C1 #-----| -2: (Generic Parameters) # 13| 0: [TypeVariable] T # 13| 1: [Constructor] C1 # 13| 5: [BlockStmt] { ... } # 13| 0: [SuperConstructorInvocationStmt] super(...) samConversion.kt: # 0| [CompilationUnit] samConversion # 0| 1: [Class] SamConversionKt # 1| 1: [Method] main #-----| 4: (Parameters) # 1| 0: [Parameter] b # 1| 5: [BlockStmt] { ... } # 2| 0: [LocalVariableDeclStmt] var ...; # 2| 1: [LocalVariableDeclExpr] isEven # 2| 0: [CastExpr] (...)... # 2| 0: [TypeAccess] IntPredicate # 2| 1: [ClassInstanceExpr] new (...) # 2| -4: [AnonymousClass] new IntPredicate(...) { ... } # 2| 1: [Constructor] #-----| 4: (Parameters) # 2| 0: [Parameter] # 2| 5: [BlockStmt] { ... } # 2| 0: [SuperConstructorInvocationStmt] super(...) # 2| 1: [ExprStmt] ; # 2| 0: [AssignExpr] ...=... # 2| 0: [VarAccess] this. # 2| -1: [ThisAccess] this # 2| 1: [VarAccess] # 2| 1: [FieldDeclaration] Function1 ; # 2| -1: [TypeAccess] Function1 # 2| 0: [TypeAccess] Integer # 2| 1: [TypeAccess] Boolean # 17| 3: [Method] accept #-----| 4: (Parameters) # 17| 0: [Parameter] i # 2| 5: [BlockStmt] { ... } # 2| 0: [ReturnStmt] return ... # 2| 0: [MethodAccess] invoke(...) # 2| -1: [VarAccess] # 2| 0: [VarAccess] i # 2| -3: [TypeAccess] IntPredicate # 2| 0: [LambdaExpr] ...->... # 2| -4: [AnonymousClass] new Function1(...) { ... } # 2| 1: [Constructor] # 2| 5: [BlockStmt] { ... } # 2| 0: [SuperConstructorInvocationStmt] super(...) # 2| 1: [Method] invoke #-----| 4: (Parameters) # 2| 0: [Parameter] it # 2| 5: [BlockStmt] { ... } # 2| 0: [ReturnStmt] return ... # 2| 0: [ValueEQExpr] ... (value equals) ... # 2| 0: [RemExpr] ... % ... # 2| 0: [VarAccess] it # 2| 1: [IntegerLiteral] 2 # 2| 1: [IntegerLiteral] 0 # 2| -3: [TypeAccess] Function1 # 2| 0: [TypeAccess] Integer # 2| 1: [TypeAccess] Boolean # 4| 1: [LocalVariableDeclStmt] var ...; # 4| 1: [LocalVariableDeclExpr] i0 # 4| 0: [CastExpr] (...)... # 4| 0: [TypeAccess] InterfaceFn1 # 4| 1: [ClassInstanceExpr] new (...) # 4| -4: [AnonymousClass] new InterfaceFn1(...) { ... } # 4| 1: [Constructor] #-----| 4: (Parameters) # 4| 0: [Parameter] # 4| 5: [BlockStmt] { ... } # 4| 0: [SuperConstructorInvocationStmt] super(...) # 4| 1: [ExprStmt] ; # 4| 0: [AssignExpr] ...=... # 4| 0: [VarAccess] this. # 4| -1: [ThisAccess] this # 4| 1: [VarAccess] # 4| 1: [FieldDeclaration] Function2 ; # 4| -1: [TypeAccess] Function2 # 4| 0: [TypeAccess] Integer # 4| 1: [TypeAccess] Integer # 4| 2: [TypeAccess] Unit # 23| 3: [Method] fn1 #-----| 4: (Parameters) # 23| 0: [Parameter] i # 23| 1: [Parameter] j # 4| 5: [BlockStmt] { ... } # 4| 0: [ReturnStmt] return ... # 4| 0: [MethodAccess] invoke(...) # 4| -1: [VarAccess] # 4| 0: [VarAccess] i # 4| 1: [VarAccess] j # 4| -3: [TypeAccess] InterfaceFn1 # 4| 0: [LambdaExpr] ...->... # 4| -4: [AnonymousClass] new Function2(...) { ... } # 4| 1: [Constructor] # 4| 5: [BlockStmt] { ... } # 4| 0: [SuperConstructorInvocationStmt] super(...) # 4| 1: [Method] invoke #-----| 4: (Parameters) # 4| 0: [Parameter] a # 4| 1: [Parameter] b # 4| 5: [BlockStmt] { ... } # 4| 0: [ExprStmt] ; # 4| 0: [VarAccess] INSTANCE # 4| -3: [TypeAccess] Function2 # 4| 0: [TypeAccess] Integer # 4| 1: [TypeAccess] Integer # 4| 2: [TypeAccess] Unit # 5| 2: [LocalVariableDeclStmt] var ...; # 5| 1: [LocalVariableDeclExpr] i1 # 5| 0: [CastExpr] (...)... # 5| 0: [TypeAccess] InterfaceFn1 # 5| 1: [ClassInstanceExpr] new (...) # 5| -4: [AnonymousClass] new InterfaceFn1(...) { ... } # 5| 1: [Constructor] #-----| 4: (Parameters) # 5| 0: [Parameter] # 5| 5: [BlockStmt] { ... } # 5| 0: [SuperConstructorInvocationStmt] super(...) # 5| 1: [ExprStmt] ; # 5| 0: [AssignExpr] ...=... # 5| 0: [VarAccess] this. # 5| -1: [ThisAccess] this # 5| 1: [VarAccess] # 5| 1: [FieldDeclaration] Function2 ; # 5| -1: [TypeAccess] Function2 # 5| 0: [TypeAccess] Integer # 5| 1: [TypeAccess] Integer # 5| 2: [TypeAccess] Unit # 23| 3: [Method] fn1 #-----| 4: (Parameters) # 23| 0: [Parameter] i # 23| 1: [Parameter] j # 5| 5: [BlockStmt] { ... } # 5| 0: [ReturnStmt] return ... # 5| 0: [MethodAccess] invoke(...) # 5| -1: [VarAccess] # 5| 0: [VarAccess] i # 5| 1: [VarAccess] j # 5| -3: [TypeAccess] InterfaceFn1 # 5| 0: [MemberRefExpr] ...::... # 5| -4: [AnonymousClass] new Function2(...) { ... } # 5| 1: [Constructor] # 5| 5: [BlockStmt] { ... } # 5| 0: [SuperConstructorInvocationStmt] super(...) # 5| 1: [Method] invoke #-----| 4: (Parameters) # 5| 0: [Parameter] a0 # 5| 1: [Parameter] a1 # 5| 5: [BlockStmt] { ... } # 5| 0: [ReturnStmt] return ... # 5| 0: [MethodAccess] fn2(...) # 5| 0: [VarAccess] a0 # 5| 1: [VarAccess] a1 # 5| -3: [TypeAccess] Function2 # 5| 0: [TypeAccess] Integer # 5| 1: [TypeAccess] Integer # 5| 2: [TypeAccess] Unit # 7| 3: [LocalVariableDeclStmt] var ...; # 7| 1: [LocalVariableDeclExpr] i # 7| 0: [CastExpr] (...)... # 7| 0: [TypeAccess] InterfaceFnExt1 # 7| 1: [ClassInstanceExpr] new (...) # 7| -4: [AnonymousClass] new InterfaceFnExt1(...) { ... } # 7| 1: [Constructor] #-----| 4: (Parameters) # 7| 0: [Parameter] # 7| 5: [BlockStmt] { ... } # 7| 0: [SuperConstructorInvocationStmt] super(...) # 7| 1: [ExprStmt] ; # 7| 0: [AssignExpr] ...=... # 7| 0: [VarAccess] this. # 7| -1: [ThisAccess] this # 7| 1: [VarAccess] # 7| 1: [FieldDeclaration] Function2 ; # 7| -1: [TypeAccess] Function2 # 7| 0: [TypeAccess] String # 7| 1: [TypeAccess] Integer # 7| 2: [TypeAccess] Boolean # 27| 3: [ExtensionMethod] ext #-----| 4: (Parameters) # 27| 0: [Parameter] # 27| 1: [Parameter] i # 7| 5: [BlockStmt] { ... } # 7| 0: [ReturnStmt] return ... # 7| 0: [MethodAccess] invoke(...) # 7| -1: [VarAccess] # 7| 0: [VarAccess] # 7| 1: [VarAccess] i # 7| -3: [TypeAccess] InterfaceFnExt1 # 7| 0: [LambdaExpr] ...->... # 7| -4: [AnonymousClass] new Function2(...) { ... } # 7| 1: [Constructor] # 7| 5: [BlockStmt] { ... } # 7| 0: [SuperConstructorInvocationStmt] super(...) # 7| 1: [ExtensionMethod] invoke #-----| 4: (Parameters) # 7| 0: [Parameter] $this$InterfaceFnExt1 # 7| 1: [Parameter] i # 7| 5: [BlockStmt] { ... } # 7| 0: [ReturnStmt] return ... # 7| 0: [ValueEQExpr] ... (value equals) ... # 7| 0: [ThisAccess] this # 7| 1: [StringLiteral] # 7| -3: [TypeAccess] Function2 # 7| 0: [TypeAccess] String # 7| 1: [TypeAccess] Integer # 7| 2: [TypeAccess] Boolean # 9| 4: [LocalVariableDeclStmt] var ...; # 9| 1: [LocalVariableDeclExpr] x # 9| 0: [CastExpr] (...)... # 9| 0: [TypeAccess] IntPredicate # 9| 1: [ClassInstanceExpr] new (...) # 9| -4: [AnonymousClass] new IntPredicate(...) { ... } # 9| 1: [Constructor] #-----| 4: (Parameters) # 9| 0: [Parameter] # 9| 5: [BlockStmt] { ... } # 9| 0: [SuperConstructorInvocationStmt] super(...) # 9| 1: [ExprStmt] ; # 9| 0: [AssignExpr] ...=... # 9| 0: [VarAccess] this. # 9| -1: [ThisAccess] this # 9| 1: [VarAccess] # 9| 1: [FieldDeclaration] Function1 ; # 9| -1: [TypeAccess] Function1 # 9| 0: [TypeAccess] Integer # 9| 1: [TypeAccess] Boolean # 17| 3: [Method] accept #-----| 4: (Parameters) # 17| 0: [Parameter] i # 9| 5: [BlockStmt] { ... } # 9| 0: [ReturnStmt] return ... # 9| 0: [MethodAccess] invoke(...) # 9| -1: [VarAccess] # 9| 0: [VarAccess] i # 9| -3: [TypeAccess] IntPredicate # 9| 0: [WhenExpr] when ... #-----| 0: (branch) # 9| 0: [VarAccess] b # 9| 1: [ExprStmt] ; # 9| 0: [LambdaExpr] ...->... # 9| -4: [AnonymousClass] new Function1(...) { ... } # 9| 1: [Constructor] # 9| 5: [BlockStmt] { ... } # 9| 0: [SuperConstructorInvocationStmt] super(...) # 9| 1: [Method] invoke #-----| 4: (Parameters) # 10| 0: [Parameter] j # 10| 5: [BlockStmt] { ... } # 10| 0: [ReturnStmt] return ... # 10| 0: [ValueEQExpr] ... (value equals) ... # 10| 0: [RemExpr] ... % ... # 10| 0: [VarAccess] j # 10| 1: [IntegerLiteral] 2 # 10| 1: [IntegerLiteral] 0 # 9| -3: [TypeAccess] Function1 # 9| 0: [TypeAccess] Integer # 9| 1: [TypeAccess] Boolean #-----| 1: (branch) # 9| 0: [BooleanLiteral] true # 11| 1: [ExprStmt] ; # 11| 0: [LambdaExpr] ...->... # 11| -4: [AnonymousClass] new Function1(...) { ... } # 11| 1: [Constructor] # 11| 5: [BlockStmt] { ... } # 11| 0: [SuperConstructorInvocationStmt] super(...) # 11| 1: [Method] invoke #-----| 4: (Parameters) # 12| 0: [Parameter] j # 12| 5: [BlockStmt] { ... } # 12| 0: [ReturnStmt] return ... # 12| 0: [ValueEQExpr] ... (value equals) ... # 12| 0: [RemExpr] ... % ... # 12| 0: [VarAccess] j # 12| 1: [IntegerLiteral] 2 # 12| 1: [IntegerLiteral] 1 # 11| -3: [TypeAccess] Function1 # 11| 0: [TypeAccess] Integer # 11| 1: [TypeAccess] Boolean # 20| 2: [Method] fn2 #-----| 4: (Parameters) # 20| 0: [Parameter] i # 20| 1: [Parameter] j # 20| 5: [BlockStmt] { ... } # 36| 3: [Method] ff #-----| 4: (Parameters) # 36| 0: [Parameter] i0 # 36| 1: [Parameter] i1 # 36| 2: [Parameter] i2 # 36| 3: [Parameter] i3 # 36| 4: [Parameter] i4 # 36| 5: [Parameter] i5 # 36| 6: [Parameter] i6 # 36| 7: [Parameter] i7 # 36| 8: [Parameter] i8 # 36| 9: [Parameter] i9 # 37| 10: [Parameter] i10 # 37| 11: [Parameter] i11 # 37| 12: [Parameter] i12 # 37| 13: [Parameter] i13 # 37| 14: [Parameter] i14 # 37| 15: [Parameter] i15 # 37| 16: [Parameter] i16 # 37| 17: [Parameter] i17 # 37| 18: [Parameter] i18 # 37| 19: [Parameter] i19 # 38| 20: [Parameter] i20 # 38| 21: [Parameter] i21 # 38| 22: [Parameter] i22 # 38| 5: [BlockStmt] { ... } # 38| 0: [ReturnStmt] return ... # 38| 0: [BooleanLiteral] true # 40| 4: [Method] fn #-----| 4: (Parameters) # 40| 0: [Parameter] boo # 40| 5: [BlockStmt] { ... } # 41| 0: [LocalVariableDeclStmt] var ...; # 41| 1: [LocalVariableDeclExpr] a # 41| 0: [MemberRefExpr] ...::... # 41| -4: [AnonymousClass] new FunctionN(...) { ... } # 41| 1: [Constructor] # 41| 5: [BlockStmt] { ... } # 41| 0: [SuperConstructorInvocationStmt] super(...) # 41| 1: [Method] invoke #-----| 4: (Parameters) # 41| 0: [Parameter] a0 # 41| 5: [BlockStmt] { ... } # 41| 0: [ReturnStmt] return ... # 41| 0: [MethodAccess] ff(...) # 41| 0: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 0 # 41| 1: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 1 # 41| 2: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 2 # 41| 3: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 3 # 41| 4: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 4 # 41| 5: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 5 # 41| 6: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 6 # 41| 7: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 7 # 41| 8: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 8 # 41| 9: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 9 # 41| 10: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 10 # 41| 11: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 11 # 41| 12: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 12 # 41| 13: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 13 # 41| 14: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 14 # 41| 15: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 15 # 41| 16: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 16 # 41| 17: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 17 # 41| 18: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 18 # 41| 19: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 19 # 41| 20: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 20 # 41| 21: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 21 # 41| 22: [CastExpr] (...)... # 41| 0: [TypeAccess] int # 41| 1: [ArrayAccess] ...[...] # 41| 0: [VarAccess] a0 # 41| 1: [IntegerLiteral] 22 # 41| -3: [TypeAccess] FunctionN # 41| 0: [TypeAccess] Boolean # 42| 1: [LocalVariableDeclStmt] var ...; # 42| 1: [LocalVariableDeclExpr] b # 42| 0: [CastExpr] (...)... # 42| 0: [TypeAccess] BigArityPredicate # 42| 1: [ClassInstanceExpr] new (...) # 42| -4: [AnonymousClass] new BigArityPredicate(...) { ... } # 31| 1: [Method] accept #-----| 4: (Parameters) # 31| 0: [Parameter] i0 # 31| 1: [Parameter] i1 # 31| 2: [Parameter] i2 # 31| 3: [Parameter] i3 # 31| 4: [Parameter] i4 # 31| 5: [Parameter] i5 # 31| 6: [Parameter] i6 # 31| 7: [Parameter] i7 # 31| 8: [Parameter] i8 # 31| 9: [Parameter] i9 # 32| 10: [Parameter] i10 # 32| 11: [Parameter] i11 # 32| 12: [Parameter] i12 # 32| 13: [Parameter] i13 # 32| 14: [Parameter] i14 # 32| 15: [Parameter] i15 # 32| 16: [Parameter] i16 # 32| 17: [Parameter] i17 # 32| 18: [Parameter] i18 # 32| 19: [Parameter] i19 # 33| 20: [Parameter] i20 # 33| 21: [Parameter] i21 # 33| 22: [Parameter] i22 # 42| 5: [BlockStmt] { ... } # 42| 0: [ReturnStmt] return ... # 42| 0: [MethodAccess] invoke(...) # 42| -1: [VarAccess] # 42| 0: [ArrayCreationExpr] new Object[] # 42| -2: [ArrayInit] {...} # 42| 0: [VarAccess] i0 # 42| 1: [VarAccess] i1 # 42| 2: [VarAccess] i2 # 42| 3: [VarAccess] i3 # 42| 4: [VarAccess] i4 # 42| 5: [VarAccess] i5 # 42| 6: [VarAccess] i6 # 42| 7: [VarAccess] i7 # 42| 8: [VarAccess] i8 # 42| 9: [VarAccess] i9 # 42| 10: [VarAccess] i10 # 42| 11: [VarAccess] i11 # 42| 12: [VarAccess] i12 # 42| 13: [VarAccess] i13 # 42| 14: [VarAccess] i14 # 42| 15: [VarAccess] i15 # 42| 16: [VarAccess] i16 # 42| 17: [VarAccess] i17 # 42| 18: [VarAccess] i18 # 42| 19: [VarAccess] i19 # 42| 20: [VarAccess] i20 # 42| 21: [VarAccess] i21 # 42| 22: [VarAccess] i22 # 42| -1: [TypeAccess] Object # 42| 0: [IntegerLiteral] 23 # 42| 2: [Constructor] #-----| 4: (Parameters) # 42| 0: [Parameter] # 42| 5: [BlockStmt] { ... } # 42| 0: [SuperConstructorInvocationStmt] super(...) # 42| 1: [ExprStmt] ; # 42| 0: [AssignExpr] ...=... # 42| 0: [VarAccess] this. # 42| -1: [ThisAccess] this # 42| 1: [VarAccess] # 42| 2: [FieldDeclaration] FunctionN ; # 42| -1: [TypeAccess] FunctionN # 42| 0: [TypeAccess] Boolean # 42| -3: [TypeAccess] BigArityPredicate # 42| 0: [VarAccess] a # 43| 2: [LocalVariableDeclStmt] var ...; # 43| 1: [LocalVariableDeclExpr] c # 43| 0: [CastExpr] (...)... # 43| 0: [TypeAccess] BigArityPredicate # 43| 1: [ClassInstanceExpr] new (...) # 43| -4: [AnonymousClass] new BigArityPredicate(...) { ... } # 31| 1: [Method] accept #-----| 4: (Parameters) # 31| 0: [Parameter] i0 # 31| 1: [Parameter] i1 # 31| 2: [Parameter] i2 # 31| 3: [Parameter] i3 # 31| 4: [Parameter] i4 # 31| 5: [Parameter] i5 # 31| 6: [Parameter] i6 # 31| 7: [Parameter] i7 # 31| 8: [Parameter] i8 # 31| 9: [Parameter] i9 # 32| 10: [Parameter] i10 # 32| 11: [Parameter] i11 # 32| 12: [Parameter] i12 # 32| 13: [Parameter] i13 # 32| 14: [Parameter] i14 # 32| 15: [Parameter] i15 # 32| 16: [Parameter] i16 # 32| 17: [Parameter] i17 # 32| 18: [Parameter] i18 # 32| 19: [Parameter] i19 # 33| 20: [Parameter] i20 # 33| 21: [Parameter] i21 # 33| 22: [Parameter] i22 # 43| 5: [BlockStmt] { ... } # 43| 0: [ReturnStmt] return ... # 43| 0: [MethodAccess] invoke(...) # 43| -1: [VarAccess] # 43| 0: [ArrayCreationExpr] new Object[] # 43| -2: [ArrayInit] {...} # 43| 0: [VarAccess] i0 # 43| 1: [VarAccess] i1 # 43| 2: [VarAccess] i2 # 43| 3: [VarAccess] i3 # 43| 4: [VarAccess] i4 # 43| 5: [VarAccess] i5 # 43| 6: [VarAccess] i6 # 43| 7: [VarAccess] i7 # 43| 8: [VarAccess] i8 # 43| 9: [VarAccess] i9 # 43| 10: [VarAccess] i10 # 43| 11: [VarAccess] i11 # 43| 12: [VarAccess] i12 # 43| 13: [VarAccess] i13 # 43| 14: [VarAccess] i14 # 43| 15: [VarAccess] i15 # 43| 16: [VarAccess] i16 # 43| 17: [VarAccess] i17 # 43| 18: [VarAccess] i18 # 43| 19: [VarAccess] i19 # 43| 20: [VarAccess] i20 # 43| 21: [VarAccess] i21 # 43| 22: [VarAccess] i22 # 43| -1: [TypeAccess] Object # 43| 0: [IntegerLiteral] 23 # 43| 2: [Constructor] #-----| 4: (Parameters) # 43| 0: [Parameter] # 43| 5: [BlockStmt] { ... } # 43| 0: [SuperConstructorInvocationStmt] super(...) # 43| 1: [ExprStmt] ; # 43| 0: [AssignExpr] ...=... # 43| 0: [VarAccess] this. # 43| -1: [ThisAccess] this # 43| 1: [VarAccess] # 43| 2: [FieldDeclaration] FunctionN ; # 43| -1: [TypeAccess] FunctionN # 43| 0: [TypeAccess] Boolean # 43| -3: [TypeAccess] BigArityPredicate # 43| 0: [LambdaExpr] ...->... # 43| -4: [AnonymousClass] new FunctionN(...) { ... } # 43| 1: [Constructor] # 43| 5: [BlockStmt] { ... } # 43| 0: [SuperConstructorInvocationStmt] super(...) # 43| 1: [Method] invoke #-----| 4: (Parameters) # 43| 0: [Parameter] i0 # 43| 1: [Parameter] i1 # 43| 2: [Parameter] i2 # 43| 3: [Parameter] i3 # 43| 4: [Parameter] i4 # 43| 5: [Parameter] i5 # 43| 6: [Parameter] i6 # 43| 7: [Parameter] i7 # 43| 8: [Parameter] i8 # 43| 9: [Parameter] i9 # 44| 10: [Parameter] i10 # 44| 11: [Parameter] i11 # 44| 12: [Parameter] i12 # 44| 13: [Parameter] i13 # 44| 14: [Parameter] i14 # 44| 15: [Parameter] i15 # 44| 16: [Parameter] i16 # 44| 17: [Parameter] i17 # 44| 18: [Parameter] i18 # 44| 19: [Parameter] i19 # 45| 20: [Parameter] i20 # 45| 21: [Parameter] i21 # 45| 22: [Parameter] i22 # 45| 5: [BlockStmt] { ... } # 45| 0: [ReturnStmt] return ... # 45| 0: [BooleanLiteral] true # 43| 1: [Method] invoke #-----| 4: (Parameters) # 43| 0: [Parameter] a0 # 43| 5: [BlockStmt] { ... } # 43| 0: [ReturnStmt] return ... # 43| 0: [MethodAccess] invoke(...) # 43| -1: [ThisAccess] this # 43| 0: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 0 # 43| 1: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 1 # 43| 2: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 2 # 43| 3: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 3 # 43| 4: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 4 # 43| 5: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 5 # 43| 6: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 6 # 43| 7: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 7 # 43| 8: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 8 # 43| 9: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 9 # 43| 10: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 10 # 43| 11: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 11 # 43| 12: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 12 # 43| 13: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 13 # 43| 14: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 14 # 43| 15: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 15 # 43| 16: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 16 # 43| 17: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 17 # 43| 18: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 18 # 43| 19: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 19 # 43| 20: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 20 # 43| 21: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 21 # 43| 22: [CastExpr] (...)... # 43| 0: [TypeAccess] int # 43| 1: [ArrayAccess] ...[...] # 43| 0: [VarAccess] a0 # 43| 1: [IntegerLiteral] 22 # 43| -3: [TypeAccess] FunctionN # 43| 0: [TypeAccess] Boolean # 46| 3: [LocalVariableDeclStmt] var ...; # 46| 1: [LocalVariableDeclExpr] d # 46| 0: [CastExpr] (...)... # 46| 0: [TypeAccess] SomePredicate # 46| 0: [TypeAccess] Integer # 46| 1: [ClassInstanceExpr] new (...) # 46| -4: [AnonymousClass] new SomePredicate(...) { ... } # 46| 1: [Constructor] #-----| 4: (Parameters) # 46| 0: [Parameter] # 46| 5: [BlockStmt] { ... } # 46| 0: [SuperConstructorInvocationStmt] super(...) # 46| 1: [ExprStmt] ; # 46| 0: [AssignExpr] ...=... # 46| 0: [VarAccess] this. # 46| -1: [ThisAccess] this # 46| 1: [VarAccess] # 46| 1: [FieldDeclaration] Function1 ; # 46| -1: [TypeAccess] Function1 # 46| 0: [TypeAccess] Integer # 46| 1: [TypeAccess] Boolean # 50| 3: [Method] fn #-----| 4: (Parameters) # 50| 0: [Parameter] i # 46| 5: [BlockStmt] { ... } # 46| 0: [ReturnStmt] return ... # 46| 0: [MethodAccess] invoke(...) # 46| -1: [VarAccess] # 46| 0: [VarAccess] i # 46| -3: [TypeAccess] SomePredicate # 46| 0: [TypeAccess] Integer # 46| 0: [LambdaExpr] ...->... # 46| -4: [AnonymousClass] new Function1(...) { ... } # 46| 1: [Constructor] # 46| 5: [BlockStmt] { ... } # 46| 0: [SuperConstructorInvocationStmt] super(...) # 46| 1: [Method] invoke #-----| 4: (Parameters) # 46| 0: [Parameter] a # 46| 5: [BlockStmt] { ... } # 46| 0: [ReturnStmt] return ... # 46| 0: [BooleanLiteral] true # 46| -3: [TypeAccess] Function1 # 46| 0: [TypeAccess] Integer # 46| 1: [TypeAccess] Boolean # 16| 2: [Interface] IntPredicate # 17| 1: [Method] accept #-----| 4: (Parameters) # 17| 0: [Parameter] i # 22| 3: [Interface] InterfaceFn1 # 23| 1: [Method] fn1 #-----| 4: (Parameters) # 23| 0: [Parameter] i # 23| 1: [Parameter] j # 26| 4: [Interface] InterfaceFnExt1 # 27| 1: [ExtensionMethod] ext #-----| 4: (Parameters) # 27| 0: [Parameter] # 27| 1: [Parameter] i # 30| 5: [Interface] BigArityPredicate # 31| 1: [Method] accept #-----| 4: (Parameters) # 31| 0: [Parameter] i0 # 31| 1: [Parameter] i1 # 31| 2: [Parameter] i2 # 31| 3: [Parameter] i3 # 31| 4: [Parameter] i4 # 31| 5: [Parameter] i5 # 31| 6: [Parameter] i6 # 31| 7: [Parameter] i7 # 31| 8: [Parameter] i8 # 31| 9: [Parameter] i9 # 32| 10: [Parameter] i10 # 32| 11: [Parameter] i11 # 32| 12: [Parameter] i12 # 32| 13: [Parameter] i13 # 32| 14: [Parameter] i14 # 32| 15: [Parameter] i15 # 32| 16: [Parameter] i16 # 32| 17: [Parameter] i17 # 32| 18: [Parameter] i18 # 32| 19: [Parameter] i19 # 33| 20: [Parameter] i20 # 33| 21: [Parameter] i21 # 33| 22: [Parameter] i22 # 49| 6: [GenericType,Interface,ParameterizedType] SomePredicate #-----| -2: (Generic Parameters) # 49| 0: [TypeVariable] T # 50| 1: [Method] fn #-----| 4: (Parameters) # 50| 0: [Parameter] i whenExpr.kt: # 0| [CompilationUnit] whenExpr # 0| 1: [Class] WhenExprKt # 1| 1: [Method] testWhen #-----| 4: (Parameters) # 1| 0: [Parameter] i # 1| 5: [BlockStmt] { ... } # 2| 0: [ReturnStmt] return ... # 2| 0: [StmtExpr] # 2| 0: [BlockStmt] { ... } # 2| 0: [LocalVariableDeclStmt] var ...; # 2| 1: [LocalVariableDeclExpr] tmp0_subject # 2| 0: [VarAccess] i # 2| 1: [ExprStmt] ; # 2| 0: [WhenExpr] when ... #-----| 0: (branch) # 3| 0: [ValueEQExpr] ... (value equals) ... # 3| 0: [VarAccess] tmp0_subject # 3| 1: [IntegerLiteral] 0 # 3| 1: [ExprStmt] ; # 3| 0: [IntegerLiteral] 1 #-----| 1: (branch) # 4| 0: [ValueEQExpr] ... (value equals) ... # 4| 0: [VarAccess] tmp0_subject # 4| 1: [IntegerLiteral] 1 # 4| 1: [ExprStmt] ; # 4| 0: [IntegerLiteral] 2 #-----| 2: (branch) # 5| 0: [ValueEQExpr] ... (value equals) ... # 5| 0: [VarAccess] tmp0_subject # 5| 1: [IntegerLiteral] 2 # 5| 1: [ReturnStmt] return ... # 5| 0: [IntegerLiteral] 3 #-----| 3: (branch) # 6| 0: [ValueEQExpr] ... (value equals) ... # 6| 0: [VarAccess] tmp0_subject # 6| 1: [IntegerLiteral] 3 # 6| 1: [ThrowStmt] throw ... # 6| 0: [ClassInstanceExpr] new Exception(...) # 6| -3: [TypeAccess] Exception # 6| 0: [StringLiteral] No threes please #-----| 4: (branch) # 7| 0: [BooleanLiteral] true # 7| 1: [ExprStmt] ; # 7| 0: [IntegerLiteral] 999