{ "kind": "File", "span": { "file_id": 0, "start": 79, "end": 1181 }, "imports": [], "decls": [ { "kind": "TypeDecl", "span": { "file_id": 0, "start": 79, "end": 224 }, "vis": null, "type_kind": "struct", "name": 11, "is_host": false, "params": [ { "span": { "file_id": 0, "start": 100, "end": 112 }, "name": 12, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 105, "end": 112 }, "name": 10 } } ], "constructors": [], "constants": [ { "span": { "file_id": 0, "start": 119, "end": 135 }, "name": 13, "value": { "kind": "Call", "span": { "file_id": 0, "start": 126, "end": 135 }, "callee": { "kind": "Ident", "span": { "file_id": 0, "start": 126, "end": 131 }, "name": 11 }, "args": [ { "kind": "BoundedLit", "span": { "file_id": 0, "start": 132, "end": 134 }, "value": 0 } ] } }, { "span": { "file_id": 0, "start": 139, "end": 159 }, "name": 14, "value": { "kind": "Call", "span": { "file_id": 0, "start": 146, "end": 159 }, "callee": { "kind": "Ident", "span": { "file_id": 0, "start": 146, "end": 151 }, "name": 11 }, "args": [ { "kind": "BoundedLit", "span": { "file_id": 0, "start": 152, "end": 158 }, "value": 65535 } ] } }, { "span": { "file_id": 0, "start": 163, "end": 181 }, "name": 15, "value": { "kind": "Call", "span": { "file_id": 0, "start": 168, "end": 181 }, "callee": { "kind": "Ident", "span": { "file_id": 0, "start": 168, "end": 173 }, "name": 11 }, "args": [ { "kind": "BoundedLit", "span": { "file_id": 0, "start": 174, "end": 180 }, "value": 63488 } ] } }, { "span": { "file_id": 0, "start": 185, "end": 204 }, "name": 16, "value": { "kind": "Call", "span": { "file_id": 0, "start": 192, "end": 204 }, "callee": { "kind": "Ident", "span": { "file_id": 0, "start": 192, "end": 197 }, "name": 11 }, "args": [ { "kind": "BoundedLit", "span": { "file_id": 0, "start": 198, "end": 203 }, "value": 2016 } ] } }, { "span": { "file_id": 0, "start": 208, "end": 224 }, "name": 17, "value": { "kind": "Call", "span": { "file_id": 0, "start": 214, "end": 224 }, "callee": { "kind": "Ident", "span": { "file_id": 0, "start": 214, "end": 219 }, "name": 11 }, "args": [ { "kind": "BoundedLit", "span": { "file_id": 0, "start": 220, "end": 223 }, "value": 31 } ] } } ], "body": null }, { "kind": "TypeDecl", "span": { "file_id": 0, "start": 229, "end": 336 }, "vis": null, "type_kind": "struct", "name": 18, "is_host": false, "params": [ { "span": { "file_id": 0, "start": 261, "end": 274 }, "name": 19, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 270, "end": 274 }, "name": 20 } }, { "span": { "file_id": 0, "start": 280, "end": 294 }, "name": 21, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 290, "end": 294 }, "name": 20 } }, { "span": { "file_id": 0, "start": 300, "end": 310 }, "name": 22, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 306, "end": 310 }, "name": 20 } }, { "span": { "file_id": 0, "start": 316, "end": 336 }, "name": 23, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 329, "end": 336 }, "name": 10 } } ], "constructors": [], "constants": [], "body": null }, { "kind": "TypeDecl", "span": { "file_id": 0, "start": 340, "end": 618 }, "vis": null, "type_kind": "struct", "name": 24, "is_host": false, "params": [ { "span": { "file_id": 0, "start": 364, "end": 379 }, "name": 25, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 368, "end": 379 }, "name": 18 } }, { "span": { "file_id": 0, "start": 385, "end": 402 }, "name": 22, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 391, "end": 402 }, "name": 18 } }, { "span": { "file_id": 0, "start": 408, "end": 425 }, "name": 26, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 414, "end": 425 }, "name": 18 } }, { "span": { "file_id": 0, "start": 431, "end": 449 }, "name": 27, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 438, "end": 449 }, "name": 18 } }, { "span": { "file_id": 0, "start": 455, "end": 469 }, "name": 28, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 458, "end": 469 }, "name": 18 } }, { "span": { "file_id": 0, "start": 475, "end": 489 }, "name": 29, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 478, "end": 489 }, "name": 18 } }, { "span": { "file_id": 0, "start": 495, "end": 509 }, "name": 30, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 498, "end": 509 }, "name": 18 } }, { "span": { "file_id": 0, "start": 515, "end": 529 }, "name": 31, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 518, "end": 529 }, "name": 18 } }, { "span": { "file_id": 0, "start": 535, "end": 549 }, "name": 32, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 538, "end": 549 }, "name": 18 } }, { "span": { "file_id": 0, "start": 555, "end": 569 }, "name": 33, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 558, "end": 569 }, "name": 18 } }, { "span": { "file_id": 0, "start": 575, "end": 593 }, "name": 34, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 582, "end": 593 }, "name": 18 } }, { "span": { "file_id": 0, "start": 599, "end": 618 }, "name": 35, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 607, "end": 618 }, "name": 18 } } ], "constructors": [], "constants": [], "body": null }, { "kind": "TypeDecl", "span": { "file_id": 0, "start": 622, "end": 685 }, "vis": null, "type_kind": "contract", "name": 36, "is_host": true, "params": [], "constructors": [], "constants": [], "body": { "kind": "TypeBody", "span": { "file_id": 0, "start": 648, "end": 685 }, "members": [], "methods": [ { "span": { "file_id": 0, "start": 654, "end": 682 }, "name": 37, "params": [ { "span": { "file_id": 0, "start": 663, "end": 675 }, "name": 38, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 670, "end": 675 }, "name": 11 } } ], "ret": { "kind": "TypeName", "span": { "file_id": 0, "start": 678, "end": 682 }, "name": 6 } } ] } }, { "kind": "TypeDecl", "span": { "file_id": 0, "start": 687, "end": 737 }, "vis": null, "type_kind": "contract", "name": 39, "is_host": true, "params": [], "constructors": [], "constants": [], "body": { "kind": "TypeBody", "span": { "file_id": 0, "start": 715, "end": 737 }, "members": [], "methods": [ { "span": { "file_id": 0, "start": 721, "end": 734 }, "name": 40, "params": [], "ret": { "kind": "TypeName", "span": { "file_id": 0, "start": 731, "end": 734 }, "name": 24 } } ] } }, { "kind": "FnDecl", "span": { "file_id": 0, "start": 739, "end": 788 }, "vis": null, "name": 41, "params": [ { "span": { "file_id": 0, "start": 746, "end": 752 }, "name": 28, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 749, "end": 752 }, "name": 42 } }, { "span": { "file_id": 0, "start": 754, "end": 760 }, "name": 29, "ty": { "kind": "TypeName", "span": { "file_id": 0, "start": 757, "end": 760 }, "name": 42 } } ], "ret": { "kind": "TypeName", "span": { "file_id": 0, "start": 763, "end": 766 }, "name": 42 }, "else_fallback": null, "body": { "kind": "Block", "span": { "file_id": 0, "start": 767, "end": 788 }, "stmts": [ { "kind": "ReturnStmt", "span": { "file_id": 0, "start": 773, "end": 786 }, "expr": { "kind": "Binary", "span": { "file_id": 0, "start": 780, "end": 785 }, "op": "+", "left": { "kind": "Ident", "span": { "file_id": 0, "start": 780, "end": 781 }, "name": 28 }, "right": { "kind": "Ident", "span": { "file_id": 0, "start": 784, "end": 785 }, "name": 29 } } } ], "tail": null } }, { "kind": "FnDecl", "span": { "file_id": 0, "start": 790, "end": 1180 }, "vis": null, "name": 43, "params": [], "ret": { "kind": "TypeName", "span": { "file_id": 0, "start": 802, "end": 806 }, "name": 6 }, "else_fallback": null, "body": { "kind": "Block", "span": { "file_id": 0, "start": 807, "end": 1180 }, "stmts": [ { "kind": "LetStmt", "span": { "file_id": 0, "start": 843, "end": 854 }, "name": 30, "is_mut": false, "ty": null, "init": { "kind": "IntLit", "span": { "file_id": 0, "start": 851, "end": 853 }, "value": 10 } }, { "kind": "LetStmt", "span": { "file_id": 0, "start": 859, "end": 870 }, "name": 31, "is_mut": false, "ty": null, "init": { "kind": "IntLit", "span": { "file_id": 0, "start": 867, "end": 869 }, "value": 20 } }, { "kind": "LetStmt", "span": { "file_id": 0, "start": 875, "end": 893 }, "name": 44, "is_mut": false, "ty": null, "init": { "kind": "Call", "span": { "file_id": 0, "start": 883, "end": 892 }, "callee": { "kind": "Ident", "span": { "file_id": 0, "start": 883, "end": 886 }, "name": 41 }, "args": [ { "kind": "Ident", "span": { "file_id": 0, "start": 887, "end": 888 }, "name": 30 }, { "kind": "Ident", "span": { "file_id": 0, "start": 890, "end": 891 }, "name": 31 } ] } }, { "kind": "ExprStmt", "span": { "file_id": 0, "start": 927, "end": 1049 }, "expr": { "kind": "IfExpr", "span": { "file_id": 0, "start": 927, "end": 1049 }, "cond": { "kind": "Binary", "span": { "file_id": 0, "start": 930, "end": 937 }, "op": "==", "left": { "kind": "Ident", "span": { "file_id": 0, "start": 930, "end": 931 }, "name": 44 }, "right": { "kind": "IntLit", "span": { "file_id": 0, "start": 935, "end": 937 }, "value": 30 } }, "then_block": { "kind": "Block", "span": { "file_id": 0, "start": 938, "end": 1006 }, "stmts": [ { "kind": "ExprStmt", "span": { "file_id": 0, "start": 976, "end": 999 }, "expr": { "kind": "Call", "span": { "file_id": 0, "start": 976, "end": 998 }, "callee": { "kind": "MemberAccess", "span": { "file_id": 0, "start": 976, "end": 985 }, "object": { "kind": "Ident", "span": { "file_id": 0, "start": 976, "end": 979 }, "name": 36 }, "member": 37 }, "args": [ { "kind": "MemberAccess", "span": { "file_id": 0, "start": 986, "end": 997 }, "object": { "kind": "Ident", "span": { "file_id": 0, "start": 986, "end": 991 }, "name": 11 }, "member": 16 } ] } } ], "tail": null }, "else_block": { "kind": "Block", "span": { "file_id": 0, "start": 1012, "end": 1049 }, "stmts": [ { "kind": "ExprStmt", "span": { "file_id": 0, "start": 1022, "end": 1043 }, "expr": { "kind": "Call", "span": { "file_id": 0, "start": 1022, "end": 1042 }, "callee": { "kind": "MemberAccess", "span": { "file_id": 0, "start": 1022, "end": 1031 }, "object": { "kind": "Ident", "span": { "file_id": 0, "start": 1022, "end": 1025 }, "name": 36 }, "member": 37 }, "args": [ { "kind": "MemberAccess", "span": { "file_id": 0, "start": 1032, "end": 1041 }, "object": { "kind": "Ident", "span": { "file_id": 0, "start": 1032, "end": 1037 }, "name": 11 }, "member": 15 } ] } } ], "tail": null } } }, { "kind": "LetStmt", "span": { "file_id": 0, "start": 1103, "end": 1123 }, "name": 45, "is_mut": false, "ty": null, "init": { "kind": "Call", "span": { "file_id": 0, "start": 1111, "end": 1122 }, "callee": { "kind": "MemberAccess", "span": { "file_id": 0, "start": 1111, "end": 1120 }, "object": { "kind": "Ident", "span": { "file_id": 0, "start": 1111, "end": 1116 }, "name": 39 }, "member": 40 }, "args": [] } } ], "tail": { "kind": "IfExpr", "span": { "file_id": 0, "start": 1128, "end": 1178 }, "cond": { "kind": "MemberAccess", "span": { "file_id": 0, "start": 1131, "end": 1139 }, "object": { "kind": "MemberAccess", "span": { "file_id": 0, "start": 1131, "end": 1134 }, "object": { "kind": "Ident", "span": { "file_id": 0, "start": 1131, "end": 1132 }, "name": 45 }, "member": 28 }, "member": 22 }, "then_block": { "kind": "Block", "span": { "file_id": 0, "start": 1140, "end": 1178 }, "stmts": [ { "kind": "ExprStmt", "span": { "file_id": 0, "start": 1150, "end": 1172 }, "expr": { "kind": "Call", "span": { "file_id": 0, "start": 1150, "end": 1171 }, "callee": { "kind": "MemberAccess", "span": { "file_id": 0, "start": 1150, "end": 1159 }, "object": { "kind": "Ident", "span": { "file_id": 0, "start": 1150, "end": 1153 }, "name": 36 }, "member": 37 }, "args": [ { "kind": "MemberAccess", "span": { "file_id": 0, "start": 1160, "end": 1170 }, "object": { "kind": "Ident", "span": { "file_id": 0, "start": 1160, "end": 1165 }, "name": 11 }, "member": 17 } ] } } ], "tail": null }, "else_block": null } } } ] }