Files
codeql/java/ql/test/kotlin/library-tests/exprs/PrintAst.expected
2022-05-10 19:51:21 +01:00

3233 lines
159 KiB
Plaintext

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] <Expr>;
# 113| 0: [VarAccess] b2
#-----| 1: (branch)
# 113| 0: [BooleanLiteral] true
# 113| 1: [ExprStmt] <Expr>;
# 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] <Expr>;
# 114| 0: [BooleanLiteral] true
#-----| 1: (branch)
# 114| 0: [BooleanLiteral] true
# 114| 1: [ExprStmt] <Expr>;
# 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] <Expr>;
# 132| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
# 132| 0: [TypeAccess] Unit
# 132| 1: [StmtExpr] <Stmt>
# 132| 0: [BlockStmt] { ... }
# 132| 0: [LocalVariableDeclStmt] var ...;
# 132| 1: [LocalVariableDeclExpr] tmp0
# 132| 0: [VarAccess] variable
# 132| 1: [ExprStmt] <Expr>;
# 132| 0: [AssignExpr] ...=...
# 132| 0: [VarAccess] variable
# 132| 1: [MethodAccess] dec(...)
# 132| -1: [VarAccess] tmp0
# 132| 2: [ExprStmt] <Expr>;
# 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] <Expr>;
# 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] <implicit cast>
# 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] <Expr>;
# 154| 0: [ImplicitCastExpr] <implicit cast>
# 154| 0: [TypeAccess] Subclass1
# 154| 1: [StmtExpr] <Stmt>
# 154| 0: [BlockStmt] { ... }
# 154| 0: [ExprStmt] <Expr>;
# 154| 0: [VarAccess] x
#-----| 1: (branch)
# 154| 0: [BooleanLiteral] true
# 154| 1: [BlockStmt] { ... }
# 154| 0: [ExprStmt] <Expr>;
# 154| 0: [VarAccess] y
# 155| 2: [LocalVariableDeclStmt] var ...;
# 155| 1: [LocalVariableDeclExpr] q
# 155| 0: [IntegerLiteral] 1
# 156| 3: [ExprStmt] <Expr>;
# 156| 0: [WhenExpr] when ...
#-----| 0: (branch)
# 156| 0: [InstanceOfExpr] ...instanceof...
# 156| 0: [VarAccess] x
# 156| 1: [TypeAccess] Subclass1
# 156| 1: [BlockStmt] { ... }
# 156| 0: [ExprStmt] <Expr>;
# 156| 0: [AssignExpr] ...=...
# 156| 0: [VarAccess] q
# 156| 1: [IntegerLiteral] 2
#-----| 1: (branch)
# 156| 0: [BooleanLiteral] true
# 156| 1: [BlockStmt] { ... }
# 156| 0: [ExprStmt] <Expr>;
# 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] <Expr>;
# 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] <implicit not null>
# 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] <Expr>;
# 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] <Expr>;
# 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] <Expr>;
# 264| 0: [AssignAddExpr] ...+=...
# 264| 0: [VarAccess] updated
# 264| 1: [IntegerLiteral] 1
# 265| 2: [ExprStmt] <Expr>;
# 265| 0: [AssignSubExpr] ...-=...
# 265| 0: [VarAccess] updated
# 265| 1: [IntegerLiteral] 1
# 266| 3: [ExprStmt] <Expr>;
# 266| 0: [AssignMulExpr] ...*=...
# 266| 0: [VarAccess] updated
# 266| 1: [IntegerLiteral] 1
# 267| 4: [ExprStmt] <Expr>;
# 267| 0: [AssignDivExpr] .../=...
# 267| 0: [VarAccess] updated
# 267| 1: [IntegerLiteral] 1
# 268| 5: [ExprStmt] <Expr>;
# 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] <Expr>;
# 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] <Expr>;
# 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] <Expr>;
# 172| 0: [ClassInstanceExpr] new Enum(...)
# 172| -3: [TypeAccess] Unit
# 172| 0: [TypeAccess] Color
# 172| 1: [BlockStmt] { ... }
# 172| 0: [ExprStmt] <Expr>;
# 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] <Expr>;
# 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] <Stmt>
# 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] <Expr>;
# 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] <Expr>;
# 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] <Expr>;
# 16| 0: [MethodAccess] functionExpression0a(...)
# 16| 0: [LambdaExpr] ...->...
# 16| -4: [AnonymousClass] new Function0<Integer>(...) { ... }
# 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<Integer>
# 16| 0: [TypeAccess] Integer
# 17| 1: [ExprStmt] <Expr>;
# 17| 0: [MethodAccess] functionExpression0b(...)
# 17| 0: [LambdaExpr] ...->...
# 17| -4: [AnonymousClass] new Function0<Object>(...) { ... }
# 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<Object>
# 17| 0: [TypeAccess] Object
# 18| 2: [ExprStmt] <Expr>;
# 18| 0: [MethodAccess] functionExpression0c(...)
# 18| 0: [LambdaExpr] ...->...
# 18| -4: [AnonymousClass] new Function0<Object>(...) { ... }
# 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<Object>
# 18| 0: [TypeAccess] Object
# 19| 3: [ExprStmt] <Expr>;
# 19| 0: [MethodAccess] functionExpression1a(...)
# 19| 0: [IntegerLiteral] 5
# 19| 1: [LambdaExpr] ...->...
# 19| -4: [AnonymousClass] new Function1<Integer,Integer>(...) { ... }
# 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<Integer,Integer>
# 19| 0: [TypeAccess] Integer
# 19| 1: [TypeAccess] Integer
# 20| 4: [ExprStmt] <Expr>;
# 20| 0: [MethodAccess] functionExpression1a(...)
# 20| 0: [IntegerLiteral] 5
# 20| 1: [LambdaExpr] ...->...
# 20| -4: [AnonymousClass] new Function1<Integer,Integer>(...) { ... }
# 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<Integer,Integer>
# 20| 0: [TypeAccess] Integer
# 20| 1: [TypeAccess] Integer
# 21| 5: [ExprStmt] <Expr>;
# 21| 0: [MethodAccess] functionExpression1a(...)
# 21| 0: [IntegerLiteral] 5
# 21| 1: [LambdaExpr] ...->...
# 21| -4: [AnonymousClass] new Function1<Integer,Integer>(...) { ... }
# 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<Integer,Integer>
# 21| 0: [TypeAccess] Integer
# 21| 1: [TypeAccess] Integer
# 22| 6: [ExprStmt] <Expr>;
# 22| 0: [MethodAccess] functionExpression1a(...)
# 22| 0: [IntegerLiteral] 5
# 22| 1: [ClassInstanceExpr] new MyLambda(...)
# 22| -3: [TypeAccess] MyLambda
# 23| 7: [ExprStmt] <Expr>;
# 23| 0: [MethodAccess] functionExpression1b(...)
# 23| 0: [IntegerLiteral] 5
# 23| 1: [LambdaExpr] ...->...
# 23| -4: [AnonymousClass] new Function1<Object,Object>(...) { ... }
# 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<Object,Object>
# 23| 0: [TypeAccess] Object
# 23| 1: [TypeAccess] Object
# 24| 8: [ExprStmt] <Expr>;
# 24| 0: [MethodAccess] functionExpression2(...)
# 24| 0: [IntegerLiteral] 5
# 24| 1: [LambdaExpr] ...->...
# 24| -4: [AnonymousClass] new Function2<Integer,Integer,Integer>(...) { ... }
# 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<Integer,Integer,Integer>
# 24| 0: [TypeAccess] Integer
# 24| 1: [TypeAccess] Integer
# 24| 2: [TypeAccess] Integer
# 25| 9: [ExprStmt] <Expr>;
# 25| 0: [MethodAccess] functionExpression2(...)
# 25| 0: [IntegerLiteral] 5
# 25| 1: [LambdaExpr] ...->...
# 25| -4: [AnonymousClass] new Function2<Integer,Integer,Integer>(...) { ... }
# 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<Integer,Integer,Integer>
# 25| 0: [TypeAccess] Integer
# 25| 1: [TypeAccess] Integer
# 25| 2: [TypeAccess] Integer
# 26| 10: [ExprStmt] <Expr>;
# 26| 0: [MethodAccess] functionExpression3(...)
# 26| 0: [IntegerLiteral] 5
# 26| 1: [LambdaExpr] ...->...
# 26| -4: [AnonymousClass] new Function2<Integer,Integer,Integer>(...) { ... }
# 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<Integer,Integer,Integer>
# 26| 0: [TypeAccess] Integer
# 26| 1: [TypeAccess] Integer
# 26| 2: [TypeAccess] Integer
# 27| 11: [ExprStmt] <Expr>;
# 27| 0: [MethodAccess] functionExpression4(...)
# 27| 0: [IntegerLiteral] 5
# 27| 1: [LambdaExpr] ...->...
# 27| -4: [AnonymousClass] new Function1<Integer,Function1<Integer,Double>>(...) { ... }
# 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<Integer,Double>(...) { ... }
# 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<Integer,Double>
# 27| 0: [TypeAccess] Integer
# 27| 1: [TypeAccess] Double
# 27| -3: [TypeAccess] Function1<Integer,Function1<Integer,Double>>
# 27| 0: [TypeAccess] Integer
# 27| 1: [TypeAccess] Function1<Integer,Double>
# 27| 0: [TypeAccess] Integer
# 27| 1: [TypeAccess] Double
# 29| 12: [ExprStmt] <Expr>;
# 29| 0: [MethodAccess] functionExpression22(...)
# 29| 0: [IntegerLiteral] 5
# 29| 1: [LambdaExpr] ...->...
# 29| -4: [AnonymousClass] new Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Unit>(...) { ... }
# 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] <Expr>;
# 29| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
# 29| 0: [TypeAccess] Unit
# 29| 1: [IntegerLiteral] 5
# 29| -3: [TypeAccess] Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Unit>
# 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] <Expr>;
# 30| 0: [MethodAccess] functionExpression23(...)
# 30| 0: [IntegerLiteral] 5
# 30| 1: [LambdaExpr] ...->...
# 30| -4: [AnonymousClass] new FunctionN<String>(...) { ... }
# 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<String>
# 30| 0: [TypeAccess] String
# 32| 14: [ExprStmt] <Expr>;
# 32| 0: [MethodAccess] functionExpression0a(...)
# 32| 0: [MemberRefExpr] ...::...
# 32| -4: [AnonymousClass] new Function0<Integer>(...) { ... }
# 32| 1: [Constructor]
#-----| 4: (Parameters)
# 32| 0: [Parameter] <dispatchReceiver>
# 32| 5: [BlockStmt] { ... }
# 32| 0: [SuperConstructorInvocationStmt] super(...)
# 32| 1: [ExprStmt] <Expr>;
# 32| 0: [AssignExpr] ...=...
# 32| 0: [VarAccess] this.<dispatchReceiver>
# 32| -1: [ThisAccess] this
# 32| 1: [VarAccess] <dispatchReceiver>
# 32| 1: [Method] invoke
# 32| 5: [BlockStmt] { ... }
# 32| 0: [ReturnStmt] return ...
# 32| 0: [MethodAccess] f0(...)
# 32| -1: [VarAccess] this.<dispatchReceiver>
# 32| -1: [ThisAccess] this
# 32| 1: [FieldDeclaration] FuncRef <dispatchReceiver>;
# 32| -1: [TypeAccess] FuncRef
# 32| -3: [TypeAccess] Function0<Integer>
# 32| 0: [TypeAccess] Integer
# 32| 0: [ClassInstanceExpr] new FuncRef(...)
# 32| -3: [TypeAccess] FuncRef
# 33| 15: [ExprStmt] <Expr>;
# 33| 0: [MethodAccess] functionExpression0a(...)
# 33| 0: [MemberRefExpr] ...::...
# 33| -4: [AnonymousClass] new Function0<Integer>(...) { ... }
# 33| 1: [Constructor]
#-----| 4: (Parameters)
# 33| 0: [Parameter] <dispatchReceiver>
# 33| 5: [BlockStmt] { ... }
# 33| 0: [SuperConstructorInvocationStmt] super(...)
# 33| 1: [ExprStmt] <Expr>;
# 33| 0: [AssignExpr] ...=...
# 33| 0: [VarAccess] this.<dispatchReceiver>
# 33| -1: [ThisAccess] this
# 33| 1: [VarAccess] <dispatchReceiver>
# 33| 1: [Method] invoke
# 33| 5: [BlockStmt] { ... }
# 33| 0: [ReturnStmt] return ...
# 33| 0: [MethodAccess] f0(...)
# 33| -1: [VarAccess] this.<dispatchReceiver>
# 33| -1: [ThisAccess] this
# 33| 1: [FieldDeclaration] Companion <dispatchReceiver>;
# 33| -1: [TypeAccess] Companion
# 33| -3: [TypeAccess] Function0<Integer>
# 33| 0: [TypeAccess] Integer
# 33| 0: [VarAccess] Companion
# 34| 16: [ExprStmt] <Expr>;
# 34| 0: [MethodAccess] functionExpression1a(...)
# 34| 0: [IntegerLiteral] 5
# 34| 1: [MemberRefExpr] ...::...
# 34| -4: [AnonymousClass] new Function1<Integer,Integer>(...) { ... }
# 34| 1: [Constructor]
#-----| 4: (Parameters)
# 34| 0: [Parameter] <dispatchReceiver>
# 34| 5: [BlockStmt] { ... }
# 34| 0: [SuperConstructorInvocationStmt] super(...)
# 34| 1: [ExprStmt] <Expr>;
# 34| 0: [AssignExpr] ...=...
# 34| 0: [VarAccess] this.<dispatchReceiver>
# 34| -1: [ThisAccess] this
# 34| 1: [VarAccess] <dispatchReceiver>
# 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.<dispatchReceiver>
# 34| -1: [ThisAccess] this
# 34| 0: [VarAccess] a0
# 34| 1: [FieldDeclaration] FuncRef <dispatchReceiver>;
# 34| -1: [TypeAccess] FuncRef
# 34| -3: [TypeAccess] Function1<Integer,Integer>
# 34| 0: [TypeAccess] Integer
# 34| 1: [TypeAccess] Integer
# 34| 0: [ClassInstanceExpr] new FuncRef(...)
# 34| -3: [TypeAccess] FuncRef
# 35| 17: [ExprStmt] <Expr>;
# 35| 0: [MethodAccess] functionExpression1c(...)
# 35| 0: [IntegerLiteral] 5
# 35| 1: [MemberRefExpr] ...::...
# 35| -4: [AnonymousClass] new Function2<FuncRef,Integer,Integer>(...) { ... }
# 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<FuncRef,Integer,Integer>
# 35| 0: [TypeAccess] FuncRef
# 35| 1: [TypeAccess] Integer
# 35| 2: [TypeAccess] Integer
# 36| 18: [ExprStmt] <Expr>;
# 36| 0: [MethodAccess] functionExpression1a(...)
# 36| 0: [IntegerLiteral] 5
# 36| 1: [MemberRefExpr] ...::...
# 36| -4: [AnonymousClass] new Function1<Integer,Integer>(...) { ... }
# 36| 1: [Constructor]
#-----| 4: (Parameters)
# 36| 0: [Parameter] <extensionReceiver>
# 36| 5: [BlockStmt] { ... }
# 36| 0: [SuperConstructorInvocationStmt] super(...)
# 36| 1: [ExprStmt] <Expr>;
# 36| 0: [AssignExpr] ...=...
# 36| 0: [VarAccess] this.<extensionReceiver>
# 36| -1: [ThisAccess] this
# 36| 1: [VarAccess] <extensionReceiver>
# 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.<extensionReceiver>
# 36| -1: [ThisAccess] this
# 36| 1: [VarAccess] a0
# 36| 1: [FieldDeclaration] int <extensionReceiver>;
# 36| -1: [TypeAccess] int
# 36| -3: [TypeAccess] Function1<Integer,Integer>
# 36| 0: [TypeAccess] Integer
# 36| 1: [TypeAccess] Integer
# 36| 0: [IntegerLiteral] 3
# 37| 19: [ExprStmt] <Expr>;
# 37| 0: [MethodAccess] functionExpression3(...)
# 37| 0: [IntegerLiteral] 5
# 37| 1: [MemberRefExpr] ...::...
# 37| -4: [AnonymousClass] new Function2<Integer,Integer,Integer>(...) { ... }
# 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<Integer,Integer,Integer>
# 37| 0: [TypeAccess] Integer
# 37| 1: [TypeAccess] Integer
# 37| 2: [TypeAccess] Integer
# 38| 20: [ExprStmt] <Expr>;
# 38| 0: [MethodAccess] functionExpression22(...)
# 38| 0: [IntegerLiteral] 5
# 38| 1: [MemberRefExpr] ...::...
# 38| -4: [AnonymousClass] new Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Unit>(...) { ... }
# 38| 1: [Constructor]
#-----| 4: (Parameters)
# 38| 0: [Parameter] <dispatchReceiver>
# 38| 5: [BlockStmt] { ... }
# 38| 0: [SuperConstructorInvocationStmt] super(...)
# 38| 1: [ExprStmt] <Expr>;
# 38| 0: [AssignExpr] ...=...
# 38| 0: [VarAccess] this.<dispatchReceiver>
# 38| -1: [ThisAccess] this
# 38| 1: [VarAccess] <dispatchReceiver>
# 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.<dispatchReceiver>
# 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 <dispatchReceiver>;
# 38| -1: [TypeAccess] FuncRef
# 38| -3: [TypeAccess] Function22<Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Integer,Unit>
# 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] <Expr>;
# 39| 0: [MethodAccess] functionExpression23(...)
# 39| 0: [IntegerLiteral] 5
# 39| 1: [MemberRefExpr] ...::...
# 39| -4: [AnonymousClass] new FunctionN<String>(...) { ... }
# 39| 1: [Constructor]
#-----| 4: (Parameters)
# 39| 0: [Parameter] <dispatchReceiver>
# 39| 5: [BlockStmt] { ... }
# 39| 0: [SuperConstructorInvocationStmt] super(...)
# 39| 1: [ExprStmt] <Expr>;
# 39| 0: [AssignExpr] ...=...
# 39| 0: [VarAccess] this.<dispatchReceiver>
# 39| -1: [ThisAccess] this
# 39| 1: [VarAccess] <dispatchReceiver>
# 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.<dispatchReceiver>
# 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 <dispatchReceiver>;
# 39| -1: [TypeAccess] FuncRef
# 39| -3: [TypeAccess] FunctionN<String>
# 39| 0: [TypeAccess] String
# 39| 0: [ClassInstanceExpr] new FuncRef(...)
# 39| -3: [TypeAccess] FuncRef
# 40| 22: [ExprStmt] <Expr>;
# 40| 0: [MethodAccess] functionExpression23c(...)
# 40| 0: [IntegerLiteral] 5
# 40| 1: [MemberRefExpr] ...::...
# 40| -4: [AnonymousClass] new FunctionN<String>(...) { ... }
# 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<String>
# 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] <Expr>;
# 43| 0: [MethodAccess] functionExpression0a(...)
# 43| 0: [MemberRefExpr] ...::...
# 43| -4: [AnonymousClass] new Function0<Integer>(...) { ... }
# 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<Integer>
# 43| 0: [TypeAccess] Integer
# 45| 25: [ExprStmt] <Expr>;
# 45| 0: [MethodAccess] fn(...)
# 45| -2: [TypeAccess] FuncRef
# 45| 0: [MemberRefExpr] ...::...
# 45| -4: [AnonymousClass] new Function0<FuncRef>(...) { ... }
# 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<FuncRef>
# 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] <this>
# 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] <Expr>;
# 69| 0: [MethodAccess] fn(...)
# 69| -1: [ThisAccess] this
# 69| 0: [LambdaExpr] ...->...
# 69| -4: [AnonymousClass] new Function1<Generic<Generic<Integer>>,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<Generic<Generic<Integer>>,String>
# 69| 0: [TypeAccess] Generic<Generic<Integer>>
# 69| 0: [TypeAccess] Generic<Integer>
# 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] <Expr>;
# 6| 0: [AssignExpr] ...=...
# 6| 0: [VarAccess] x
# 6| 1: [IntegerLiteral] 6
# 7| 3: [ExprStmt] <Expr>;
# 7| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
# 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] <Expr>;
# 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] <this>
# 9| 1: [Parameter] i
# 9| 5: [BlockStmt] { ... }
# 9| 0: [ReturnStmt] return ...
# 9| 0: [IntegerLiteral] 5
# 10| 6: [ExprStmt] <Expr>;
# 10| 0: [ImplicitCoercionToUnitExpr] <implicit coercion to unit>
# 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<Integer>(...)
# 10| -3: [TypeAccess] C1<Integer>
# 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] <fn>
# 2| 5: [BlockStmt] { ... }
# 2| 0: [SuperConstructorInvocationStmt] super(...)
# 2| 1: [ExprStmt] <Expr>;
# 2| 0: [AssignExpr] ...=...
# 2| 0: [VarAccess] this.<fn>
# 2| -1: [ThisAccess] this
# 2| 1: [VarAccess] <fn>
# 2| 1: [FieldDeclaration] Function1<Integer,Boolean> <fn>;
# 2| -1: [TypeAccess] Function1<Integer,Boolean>
# 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] <fn>
# 2| 0: [VarAccess] i
# 2| -3: [TypeAccess] IntPredicate
# 2| 0: [LambdaExpr] ...->...
# 2| -4: [AnonymousClass] new Function1<Integer,Boolean>(...) { ... }
# 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<Integer,Boolean>
# 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] <fn>
# 4| 5: [BlockStmt] { ... }
# 4| 0: [SuperConstructorInvocationStmt] super(...)
# 4| 1: [ExprStmt] <Expr>;
# 4| 0: [AssignExpr] ...=...
# 4| 0: [VarAccess] this.<fn>
# 4| -1: [ThisAccess] this
# 4| 1: [VarAccess] <fn>
# 4| 1: [FieldDeclaration] Function2<Integer,Integer,Unit> <fn>;
# 4| -1: [TypeAccess] Function2<Integer,Integer,Unit>
# 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] <fn>
# 4| 0: [VarAccess] i
# 4| 1: [VarAccess] j
# 4| -3: [TypeAccess] InterfaceFn1
# 4| 0: [LambdaExpr] ...->...
# 4| -4: [AnonymousClass] new Function2<Integer,Integer,Unit>(...) { ... }
# 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] <Expr>;
# 4| 0: [VarAccess] INSTANCE
# 4| -3: [TypeAccess] Function2<Integer,Integer,Unit>
# 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] <fn>
# 5| 5: [BlockStmt] { ... }
# 5| 0: [SuperConstructorInvocationStmt] super(...)
# 5| 1: [ExprStmt] <Expr>;
# 5| 0: [AssignExpr] ...=...
# 5| 0: [VarAccess] this.<fn>
# 5| -1: [ThisAccess] this
# 5| 1: [VarAccess] <fn>
# 5| 1: [FieldDeclaration] Function2<Integer,Integer,Unit> <fn>;
# 5| -1: [TypeAccess] Function2<Integer,Integer,Unit>
# 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] <fn>
# 5| 0: [VarAccess] i
# 5| 1: [VarAccess] j
# 5| -3: [TypeAccess] InterfaceFn1
# 5| 0: [MemberRefExpr] ...::...
# 5| -4: [AnonymousClass] new Function2<Integer,Integer,Unit>(...) { ... }
# 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<Integer,Integer,Unit>
# 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] <fn>
# 7| 5: [BlockStmt] { ... }
# 7| 0: [SuperConstructorInvocationStmt] super(...)
# 7| 1: [ExprStmt] <Expr>;
# 7| 0: [AssignExpr] ...=...
# 7| 0: [VarAccess] this.<fn>
# 7| -1: [ThisAccess] this
# 7| 1: [VarAccess] <fn>
# 7| 1: [FieldDeclaration] Function2<String,Integer,Boolean> <fn>;
# 7| -1: [TypeAccess] Function2<String,Integer,Boolean>
# 7| 0: [TypeAccess] String
# 7| 1: [TypeAccess] Integer
# 7| 2: [TypeAccess] Boolean
# 27| 3: [ExtensionMethod] ext
#-----| 4: (Parameters)
# 27| 0: [Parameter] <this>
# 27| 1: [Parameter] i
# 7| 5: [BlockStmt] { ... }
# 7| 0: [ReturnStmt] return ...
# 7| 0: [MethodAccess] invoke(...)
# 7| -1: [VarAccess] <fn>
# 7| 0: [VarAccess] <this>
# 7| 1: [VarAccess] i
# 7| -3: [TypeAccess] InterfaceFnExt1
# 7| 0: [LambdaExpr] ...->...
# 7| -4: [AnonymousClass] new Function2<String,Integer,Boolean>(...) { ... }
# 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<String,Integer,Boolean>
# 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] <fn>
# 9| 5: [BlockStmt] { ... }
# 9| 0: [SuperConstructorInvocationStmt] super(...)
# 9| 1: [ExprStmt] <Expr>;
# 9| 0: [AssignExpr] ...=...
# 9| 0: [VarAccess] this.<fn>
# 9| -1: [ThisAccess] this
# 9| 1: [VarAccess] <fn>
# 9| 1: [FieldDeclaration] Function1<Integer,Boolean> <fn>;
# 9| -1: [TypeAccess] Function1<Integer,Boolean>
# 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] <fn>
# 9| 0: [VarAccess] i
# 9| -3: [TypeAccess] IntPredicate
# 9| 0: [WhenExpr] when ...
#-----| 0: (branch)
# 9| 0: [VarAccess] b
# 9| 1: [ExprStmt] <Expr>;
# 9| 0: [LambdaExpr] ...->...
# 9| -4: [AnonymousClass] new Function1<Integer,Boolean>(...) { ... }
# 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<Integer,Boolean>
# 9| 0: [TypeAccess] Integer
# 9| 1: [TypeAccess] Boolean
#-----| 1: (branch)
# 9| 0: [BooleanLiteral] true
# 11| 1: [ExprStmt] <Expr>;
# 11| 0: [LambdaExpr] ...->...
# 11| -4: [AnonymousClass] new Function1<Integer,Boolean>(...) { ... }
# 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<Integer,Boolean>
# 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<Boolean>(...) { ... }
# 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<Boolean>
# 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] <fn>
# 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] <fn>
# 42| 5: [BlockStmt] { ... }
# 42| 0: [SuperConstructorInvocationStmt] super(...)
# 42| 1: [ExprStmt] <Expr>;
# 42| 0: [AssignExpr] ...=...
# 42| 0: [VarAccess] this.<fn>
# 42| -1: [ThisAccess] this
# 42| 1: [VarAccess] <fn>
# 42| 2: [FieldDeclaration] FunctionN<Boolean> <fn>;
# 42| -1: [TypeAccess] FunctionN<Boolean>
# 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] <fn>
# 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] <fn>
# 43| 5: [BlockStmt] { ... }
# 43| 0: [SuperConstructorInvocationStmt] super(...)
# 43| 1: [ExprStmt] <Expr>;
# 43| 0: [AssignExpr] ...=...
# 43| 0: [VarAccess] this.<fn>
# 43| -1: [ThisAccess] this
# 43| 1: [VarAccess] <fn>
# 43| 2: [FieldDeclaration] FunctionN<Boolean> <fn>;
# 43| -1: [TypeAccess] FunctionN<Boolean>
# 43| 0: [TypeAccess] Boolean
# 43| -3: [TypeAccess] BigArityPredicate
# 43| 0: [LambdaExpr] ...->...
# 43| -4: [AnonymousClass] new FunctionN<Boolean>(...) { ... }
# 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<Boolean>
# 43| 0: [TypeAccess] Boolean
# 46| 3: [LocalVariableDeclStmt] var ...;
# 46| 1: [LocalVariableDeclExpr] d
# 46| 0: [CastExpr] (...)...
# 46| 0: [TypeAccess] SomePredicate<Integer>
# 46| 0: [TypeAccess] Integer
# 46| 1: [ClassInstanceExpr] new (...)
# 46| -4: [AnonymousClass] new SomePredicate<Integer>(...) { ... }
# 46| 1: [Constructor]
#-----| 4: (Parameters)
# 46| 0: [Parameter] <fn>
# 46| 5: [BlockStmt] { ... }
# 46| 0: [SuperConstructorInvocationStmt] super(...)
# 46| 1: [ExprStmt] <Expr>;
# 46| 0: [AssignExpr] ...=...
# 46| 0: [VarAccess] this.<fn>
# 46| -1: [ThisAccess] this
# 46| 1: [VarAccess] <fn>
# 46| 1: [FieldDeclaration] Function1<Integer,Boolean> <fn>;
# 46| -1: [TypeAccess] Function1<Integer,Boolean>
# 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] <fn>
# 46| 0: [VarAccess] i
# 46| -3: [TypeAccess] SomePredicate<Integer>
# 46| 0: [TypeAccess] Integer
# 46| 0: [LambdaExpr] ...->...
# 46| -4: [AnonymousClass] new Function1<Integer,Boolean>(...) { ... }
# 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<Integer,Boolean>
# 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] <this>
# 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] <Stmt>
# 2| 0: [BlockStmt] { ... }
# 2| 0: [LocalVariableDeclStmt] var ...;
# 2| 1: [LocalVariableDeclExpr] tmp0_subject
# 2| 0: [VarAccess] i
# 2| 1: [ExprStmt] <Expr>;
# 2| 0: [WhenExpr] when ...
#-----| 0: (branch)
# 3| 0: [ValueEQExpr] ... (value equals) ...
# 3| 0: [VarAccess] tmp0_subject
# 3| 1: [IntegerLiteral] 0
# 3| 1: [ExprStmt] <Expr>;
# 3| 0: [IntegerLiteral] 1
#-----| 1: (branch)
# 4| 0: [ValueEQExpr] ... (value equals) ...
# 4| 0: [VarAccess] tmp0_subject
# 4| 1: [IntegerLiteral] 1
# 4| 1: [ExprStmt] <Expr>;
# 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] <Expr>;
# 7| 0: [IntegerLiteral] 999