Skip to content

Instantly share code, notes, and snippets.

@bshepherdson
Last active March 21, 2016 17:23
Show Gist options
  • Save bshepherdson/0063c8bd2f7e69feb753 to your computer and use it in GitHub Desktop.
Save bshepherdson/0063c8bd2f7e69feb753 to your computer and use it in GitHub Desktop.
#0 0x000a7150 in ast_id (ast=0x67a17080) at src/libponyc/ast/ast.c:416
#1 0x000e3a68 in is_sub_cap_and_eph (sub=0x63825f40, super=0x67a230c0, errors=0x0) at src/libponyc/type/subtype.c:79
#2 0x000e5f6c in is_typeparam_sub_typeparam (sub=0x63825f40, super=0x67a230c0, errors=0x0) at src/libponyc/type/subtype.c:1066
#3 0x000e6178 in is_typeparam_base_sub_x (sub=0x63825f40, super=0x67a230c0, errors=0x0) at src/libponyc/type/subtype.c:1135
#4 0x000e61ec in is_typeparam_sub_x (sub=0x63825f40, super=0x67a230c0, errors=0x0) at src/libponyc/type/subtype.c:1149
#5 0x000e69c4 in is_subtype (sub=0x63825f40, super=0x67a230c0, errors=0x0) at src/libponyc/type/subtype.c:1401
#6 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c560, super=0x67a1d1a0, errors=0x0) at src/libponyc/type/subtype.c:620
#7 0x000e5200 in is_tuple_sub_x (sub=0x6380c560, super=0x67a1d1a0, errors=0x0) at src/libponyc/type/subtype.c:671
#8 0x000e6994 in is_subtype (sub=0x6380c560, super=0x67a1d1a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#9 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c500, super=0x67a0ef40, errors=0x0) at src/libponyc/type/subtype.c:620
#10 0x000e5200 in is_tuple_sub_x (sub=0x6380c500, super=0x67a0ef40, errors=0x0) at src/libponyc/type/subtype.c:671
#11 0x000e6994 in is_subtype (sub=0x6380c500, super=0x67a0ef40, errors=0x0) at src/libponyc/type/subtype.c:1395
#12 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835ae0, super=0x67a0d580, errors=0x0) at src/libponyc/type/subtype.c:620
#13 0x000e5200 in is_tuple_sub_x (sub=0x63835ae0, super=0x67a0d580, errors=0x0) at src/libponyc/type/subtype.c:671
#14 0x000e6994 in is_subtype (sub=0x63835ae0, super=0x67a0d580, errors=0x0) at src/libponyc/type/subtype.c:1395
#15 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c5a0, super=0x67791860, errors=0x0) at src/libponyc/type/subtype.c:620
#16 0x000e5200 in is_tuple_sub_x (sub=0x6380c5a0, super=0x67791860, errors=0x0) at src/libponyc/type/subtype.c:671
#17 0x000e6994 in is_subtype (sub=0x6380c5a0, super=0x67791860, errors=0x0) at src/libponyc/type/subtype.c:1395
#18 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c5c0, super=0x67a0ef20, errors=0x0) at src/libponyc/type/subtype.c:620
#19 0x000e5200 in is_tuple_sub_x (sub=0x6380c5c0, super=0x67a0ef20, errors=0x0) at src/libponyc/type/subtype.c:671
#20 0x000e6994 in is_subtype (sub=0x6380c5c0, super=0x67a0ef20, errors=0x0) at src/libponyc/type/subtype.c:1395
#21 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c5e0, super=0x67a1de00, errors=0x0) at src/libponyc/type/subtype.c:620
#22 0x000e5200 in is_tuple_sub_x (sub=0x6380c5e0, super=0x67a1de00, errors=0x0) at src/libponyc/type/subtype.c:671
#23 0x000e6994 in is_subtype (sub=0x6380c5e0, super=0x67a1de00, errors=0x0) at src/libponyc/type/subtype.c:1395
#24 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c580, super=0x67a0d5e0, errors=0x0) at src/libponyc/type/subtype.c:620
#25 0x000e5200 in is_tuple_sub_x (sub=0x6380c580, super=0x67a0d5e0, errors=0x0) at src/libponyc/type/subtype.c:671
#26 0x000e6994 in is_subtype (sub=0x6380c580, super=0x67a0d5e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#27 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835ac0, super=0x67a0efe0, errors=0x0) at src/libponyc/type/subtype.c:620
#28 0x000e5200 in is_tuple_sub_x (sub=0x63835ac0, super=0x67a0efe0, errors=0x0) at src/libponyc/type/subtype.c:671
#29 0x000e6994 in is_subtype (sub=0x63835ac0, super=0x67a0efe0, errors=0x0) at src/libponyc/type/subtype.c:1395
#30 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c620, super=0x67a27bc0, errors=0x0) at src/libponyc/type/subtype.c:620
#31 0x000e5200 in is_tuple_sub_x (sub=0x6380c620, super=0x67a27bc0, errors=0x0) at src/libponyc/type/subtype.c:671
#32 0x000e6994 in is_subtype (sub=0x6380c620, super=0x67a27bc0, errors=0x0) at src/libponyc/type/subtype.c:1395
#33 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c640, super=0x67a0ef60, errors=0x0) at src/libponyc/type/subtype.c:620
#34 0x000e5200 in is_tuple_sub_x (sub=0x6380c640, super=0x67a0ef60, errors=0x0) at src/libponyc/type/subtype.c:671
#35 0x000e6994 in is_subtype (sub=0x6380c640, super=0x67a0ef60, errors=0x0) at src/libponyc/type/subtype.c:1395
#36 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c660, super=0x67a09940, errors=0x0) at src/libponyc/type/subtype.c:620
#37 0x000e5200 in is_tuple_sub_x (sub=0x6380c660, super=0x67a09940, errors=0x0) at src/libponyc/type/subtype.c:671
#38 0x000e6994 in is_subtype (sub=0x6380c660, super=0x67a09940, errors=0x0) at src/libponyc/type/subtype.c:1395
#39 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c600, super=0x67a0e040, errors=0x0) at src/libponyc/type/subtype.c:620
#40 0x000e5200 in is_tuple_sub_x (sub=0x6380c600, super=0x67a0e040, errors=0x0) at src/libponyc/type/subtype.c:671
#41 0x000e6994 in is_subtype (sub=0x6380c600, super=0x67a0e040, errors=0x0) at src/libponyc/type/subtype.c:1395
#42 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835aa0, super=0x67a21a80, errors=0x0) at src/libponyc/type/subtype.c:620
#43 0x000e5200 in is_tuple_sub_x (sub=0x63835aa0, super=0x67a21a80, errors=0x0) at src/libponyc/type/subtype.c:671
#44 0x000e6994 in is_subtype (sub=0x63835aa0, super=0x67a21a80, errors=0x0) at src/libponyc/type/subtype.c:1395
#45 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c6a0, super=0x67a0efc0, errors=0x0) at src/libponyc/type/subtype.c:620
#46 0x000e5200 in is_tuple_sub_x (sub=0x6380c6a0, super=0x67a0efc0, errors=0x0) at src/libponyc/type/subtype.c:671
#47 0x000e6994 in is_subtype (sub=0x6380c6a0, super=0x67a0efc0, errors=0x0) at src/libponyc/type/subtype.c:1395
#48 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c6c0, super=0x677918c0, errors=0x0) at src/libponyc/type/subtype.c:620
#49 0x000e5200 in is_tuple_sub_x (sub=0x6380c6c0, super=0x677918c0, errors=0x0) at src/libponyc/type/subtype.c:671
#50 0x000e6994 in is_subtype (sub=0x6380c6c0, super=0x677918c0, errors=0x0) at src/libponyc/type/subtype.c:1395
#51 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c6e0, super=0x6778c740, errors=0x0) at src/libponyc/type/subtype.c:620
#52 0x000e5200 in is_tuple_sub_x (sub=0x6380c6e0, super=0x6778c740, errors=0x0) at src/libponyc/type/subtype.c:671
#53 0x000e6994 in is_subtype (sub=0x6380c6e0, super=0x6778c740, errors=0x0) at src/libponyc/type/subtype.c:1395
#54 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c680, super=0x677918a0, errors=0x0) at src/libponyc/type/subtype.c:620
#55 0x000e5200 in is_tuple_sub_x (sub=0x6380c680, super=0x677918a0, errors=0x0) at src/libponyc/type/subtype.c:671
#56 0x000e6994 in is_subtype (sub=0x6380c680, super=0x677918a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#57 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835a80, super=0x67a0e020, errors=0x0) at src/libponyc/type/subtype.c:620
#58 0x000e5200 in is_tuple_sub_x (sub=0x63835a80, super=0x67a0e020, errors=0x0) at src/libponyc/type/subtype.c:671
#59 0x000e6994 in is_subtype (sub=0x63835a80, super=0x67a0e020, errors=0x0) at src/libponyc/type/subtype.c:1395
#60 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c720, super=0x67a0efa0, errors=0x0) at src/libponyc/type/subtype.c:620
#61 0x000e5200 in is_tuple_sub_x (sub=0x6380c720, super=0x67a0efa0, errors=0x0) at src/libponyc/type/subtype.c:671
#62 0x000e6994 in is_subtype (sub=0x6380c720, super=0x67a0efa0, errors=0x0) at src/libponyc/type/subtype.c:1395
#63 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c740, super=0x67a0d5c0, errors=0x0) at src/libponyc/type/subtype.c:620
#64 0x000e5200 in is_tuple_sub_x (sub=0x6380c740, super=0x67a0d5c0, errors=0x0) at src/libponyc/type/subtype.c:671
#65 0x000e6994 in is_subtype (sub=0x6380c740, super=0x67a0d5c0, errors=0x0) at src/libponyc/type/subtype.c:1395
#66 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c760, super=0x67a1d1e0, errors=0x0) at src/libponyc/type/subtype.c:620
#67 0x000e5200 in is_tuple_sub_x (sub=0x6380c760, super=0x67a1d1e0, errors=0x0) at src/libponyc/type/subtype.c:671
#68 0x000e6994 in is_subtype (sub=0x6380c760, super=0x67a1d1e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#69 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c700, super=0x67a27ba0, errors=0x0) at src/libponyc/type/subtype.c:620
#70 0x000e5200 in is_tuple_sub_x (sub=0x6380c700, super=0x67a27ba0, errors=0x0) at src/libponyc/type/subtype.c:671
#71 0x000e6994 in is_subtype (sub=0x6380c700, super=0x67a27ba0, errors=0x0) at src/libponyc/type/subtype.c:1395
#72 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835a60, super=0x67791880, errors=0x0) at src/libponyc/type/subtype.c:620
#73 0x000e5200 in is_tuple_sub_x (sub=0x63835a60, super=0x67791880, errors=0x0) at src/libponyc/type/subtype.c:671
#74 0x000e6994 in is_subtype (sub=0x63835a60, super=0x67791880, errors=0x0) at src/libponyc/type/subtype.c:1395
#75 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c7a0, super=0x67a0e060, errors=0x0) at src/libponyc/type/subtype.c:620
#76 0x000e5200 in is_tuple_sub_x (sub=0x6380c7a0, super=0x67a0e060, errors=0x0) at src/libponyc/type/subtype.c:671
#77 0x000e6994 in is_subtype (sub=0x6380c7a0, super=0x67a0e060, errors=0x0) at src/libponyc/type/subtype.c:1395
#78 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c7c0, super=0x67a21ae0, errors=0x0) at src/libponyc/type/subtype.c:620
#79 0x000e5200 in is_tuple_sub_x (sub=0x6380c7c0, super=0x67a21ae0, errors=0x0) at src/libponyc/type/subtype.c:671
#80 0x000e6994 in is_subtype (sub=0x6380c7c0, super=0x67a21ae0, errors=0x0) at src/libponyc/type/subtype.c:1395
#81 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c7e0, super=0x67a09960, errors=0x0) at src/libponyc/type/subtype.c:620
#82 0x000e5200 in is_tuple_sub_x (sub=0x6380c7e0, super=0x67a09960, errors=0x0) at src/libponyc/type/subtype.c:671
#83 0x000e6994 in is_subtype (sub=0x6380c7e0, super=0x67a09960, errors=0x0) at src/libponyc/type/subtype.c:1395
#84 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380c780, super=0x67a0ef80, errors=0x0) at src/libponyc/type/subtype.c:620
#85 0x000e5200 in is_tuple_sub_x (sub=0x6380c780, super=0x67a0ef80, errors=0x0) at src/libponyc/type/subtype.c:671
#86 0x000e6994 in is_subtype (sub=0x6380c780, super=0x67a0ef80, errors=0x0) at src/libponyc/type/subtype.c:1395
#87 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835a40, super=0x67a21ac0, errors=0x0) at src/libponyc/type/subtype.c:620
#88 0x000e5200 in is_tuple_sub_x (sub=0x63835a40, super=0x67a21ac0, errors=0x0) at src/libponyc/type/subtype.c:671
#89 0x000e6994 in is_subtype (sub=0x63835a40, super=0x67a21ac0, errors=0x0) at src/libponyc/type/subtype.c:1395
#90 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b820, super=0x67a21840, errors=0x0) at src/libponyc/type/subtype.c:620
#91 0x000e5200 in is_tuple_sub_x (sub=0x6380b820, super=0x67a21840, errors=0x0) at src/libponyc/type/subtype.c:671
#92 0x000e6994 in is_subtype (sub=0x6380b820, super=0x67a21840, errors=0x0) at src/libponyc/type/subtype.c:1395
#93 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b840, super=0x67a0d5a0, errors=0x0) at src/libponyc/type/subtype.c:620
#94 0x000e5200 in is_tuple_sub_x (sub=0x6380b840, super=0x67a0d5a0, errors=0x0) at src/libponyc/type/subtype.c:671
#95 0x000e6994 in is_subtype (sub=0x6380b840, super=0x67a0d5a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#96 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b860, super=0x67a1d160, errors=0x0) at src/libponyc/type/subtype.c:620
#97 0x000e5200 in is_tuple_sub_x (sub=0x6380b860, super=0x67a1d160, errors=0x0) at src/libponyc/type/subtype.c:671
#98 0x000e6994 in is_subtype (sub=0x6380b860, super=0x67a1d160, errors=0x0) at src/libponyc/type/subtype.c:1395
#99 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b800, super=0x67a0e000, errors=0x0) at src/libponyc/type/subtype.c:620
#100 0x000e5200 in is_tuple_sub_x (sub=0x6380b800, super=0x67a0e000, errors=0x0) at src/libponyc/type/subtype.c:671
#101 0x000e6994 in is_subtype (sub=0x6380b800, super=0x67a0e000, errors=0x0) at src/libponyc/type/subtype.c:1395
#102 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835a20, super=0x67a27b80, errors=0x0) at src/libponyc/type/subtype.c:620
#103 0x000e5200 in is_tuple_sub_x (sub=0x63835a20, super=0x67a27b80, errors=0x0) at src/libponyc/type/subtype.c:671
#104 0x000e6994 in is_subtype (sub=0x63835a20, super=0x67a27b80, errors=0x0) at src/libponyc/type/subtype.c:1395
#105 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b8a0, super=0x67a0e0a0, errors=0x0) at src/libponyc/type/subtype.c:620
#106 0x000e5200 in is_tuple_sub_x (sub=0x6380b8a0, super=0x67a0e0a0, errors=0x0) at src/libponyc/type/subtype.c:671
#107 0x000e6994 in is_subtype (sub=0x6380b8a0, super=0x67a0e0a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#108 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b8c0, super=0x67a224e0, errors=0x0) at src/libponyc/type/subtype.c:620
#109 0x000e5200 in is_tuple_sub_x (sub=0x6380b8c0, super=0x67a224e0, errors=0x0) at src/libponyc/type/subtype.c:671
#110 0x000e6994 in is_subtype (sub=0x6380b8c0, super=0x67a224e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#111 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b8e0, super=0x67a1d140, errors=0x0) at src/libponyc/type/subtype.c:620
#112 0x000e5200 in is_tuple_sub_x (sub=0x6380b8e0, super=0x67a1d140, errors=0x0) at src/libponyc/type/subtype.c:671
#113 0x000e6994 in is_subtype (sub=0x6380b8e0, super=0x67a1d140, errors=0x0) at src/libponyc/type/subtype.c:1395
#114 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b880, super=0x67a27a40, errors=0x0) at src/libponyc/type/subtype.c:620
#115 0x000e5200 in is_tuple_sub_x (sub=0x6380b880, super=0x67a27a40, errors=0x0) at src/libponyc/type/subtype.c:671
#116 0x000e6994 in is_subtype (sub=0x6380b880, super=0x67a27a40, errors=0x0) at src/libponyc/type/subtype.c:1395
#117 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835a00, super=0x67a27b60, errors=0x0) at src/libponyc/type/subtype.c:620
#118 0x000e5200 in is_tuple_sub_x (sub=0x63835a00, super=0x67a27b60, errors=0x0) at src/libponyc/type/subtype.c:671
#119 0x000e6994 in is_subtype (sub=0x63835a00, super=0x67a27b60, errors=0x0) at src/libponyc/type/subtype.c:1395
#120 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b920, super=0x67a0e0c0, errors=0x0) at src/libponyc/type/subtype.c:620
#121 0x000e5200 in is_tuple_sub_x (sub=0x6380b920, super=0x67a0e0c0, errors=0x0) at src/libponyc/type/subtype.c:671
#122 0x000e6994 in is_subtype (sub=0x6380b920, super=0x67a0e0c0, errors=0x0) at src/libponyc/type/subtype.c:1395
#123 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b940, super=0x677927e0, errors=0x0) at src/libponyc/type/subtype.c:620
#124 0x000e5200 in is_tuple_sub_x (sub=0x6380b940, super=0x677927e0, errors=0x0) at src/libponyc/type/subtype.c:671
#125 0x000e6994 in is_subtype (sub=0x6380b940, super=0x677927e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#126 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b960, super=0x6778c6e0, errors=0x0) at src/libponyc/type/subtype.c:620
#127 0x000e5200 in is_tuple_sub_x (sub=0x6380b960, super=0x6778c6e0, errors=0x0) at src/libponyc/type/subtype.c:671
#128 0x000e6994 in is_subtype (sub=0x6380b960, super=0x6778c6e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#129 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b900, super=0x67791840, errors=0x0) at src/libponyc/type/subtype.c:620
#130 0x000e5200 in is_tuple_sub_x (sub=0x6380b900, super=0x67791840, errors=0x0) at src/libponyc/type/subtype.c:671
#131 0x000e6994 in is_subtype (sub=0x6380b900, super=0x67791840, errors=0x0) at src/libponyc/type/subtype.c:1395
#132 0x000e4fe0 in is_tuple_sub_tuple (sub=0x638359e0, super=0x67a0e120, errors=0x0) at src/libponyc/type/subtype.c:620
#133 0x000e5200 in is_tuple_sub_x (sub=0x638359e0, super=0x67a0e120, errors=0x0) at src/libponyc/type/subtype.c:671
#134 0x000e6994 in is_subtype (sub=0x638359e0, super=0x67a0e120, errors=0x0) at src/libponyc/type/subtype.c:1395
#135 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b9a0, super=0x67a293e0, errors=0x0) at src/libponyc/type/subtype.c:620
#136 0x000e5200 in is_tuple_sub_x (sub=0x6380b9a0, super=0x67a293e0, errors=0x0) at src/libponyc/type/subtype.c:671
#137 0x000e6994 in is_subtype (sub=0x6380b9a0, super=0x67a293e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#138 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b9c0, super=0x67a0e0e0, errors=0x0) at src/libponyc/type/subtype.c:620
#139 0x000e5200 in is_tuple_sub_x (sub=0x6380b9c0, super=0x67a0e0e0, errors=0x0) at src/libponyc/type/subtype.c:671
#140 0x000e6994 in is_subtype (sub=0x6380b9c0, super=0x67a0e0e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#141 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b9e0, super=0x67a1d080, errors=0x0) at src/libponyc/type/subtype.c:620
#142 0x000e5200 in is_tuple_sub_x (sub=0x6380b9e0, super=0x67a1d080, errors=0x0) at src/libponyc/type/subtype.c:671
#143 0x000e6994 in is_subtype (sub=0x6380b9e0, super=0x67a1d080, errors=0x0) at src/libponyc/type/subtype.c:1395
#144 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380b980, super=0x67a0e100, errors=0x0) at src/libponyc/type/subtype.c:620
#145 0x000e5200 in is_tuple_sub_x (sub=0x6380b980, super=0x67a0e100, errors=0x0) at src/libponyc/type/subtype.c:671
#146 0x000e6994 in is_subtype (sub=0x6380b980, super=0x67a0e100, errors=0x0) at src/libponyc/type/subtype.c:1395
#147 0x000e4fe0 in is_tuple_sub_tuple (sub=0x638359c0, super=0x67791820, errors=0x0) at src/libponyc/type/subtype.c:620
#148 0x000e5200 in is_tuple_sub_x (sub=0x638359c0, super=0x67791820, errors=0x0) at src/libponyc/type/subtype.c:671
#149 0x000e6994 in is_subtype (sub=0x638359c0, super=0x67791820, errors=0x0) at src/libponyc/type/subtype.c:1395
#150 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ba20, super=0x67a0d560, errors=0x0) at src/libponyc/type/subtype.c:620
#151 0x000e5200 in is_tuple_sub_x (sub=0x6380ba20, super=0x67a0d560, errors=0x0) at src/libponyc/type/subtype.c:671
#152 0x000e6994 in is_subtype (sub=0x6380ba20, super=0x67a0d560, errors=0x0) at src/libponyc/type/subtype.c:1395
#153 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ba40, super=0x67a0d500, errors=0x0) at src/libponyc/type/subtype.c:620
#154 0x000e5200 in is_tuple_sub_x (sub=0x6380ba40, super=0x67a0d500, errors=0x0) at src/libponyc/type/subtype.c:671
#155 0x000e6994 in is_subtype (sub=0x6380ba40, super=0x67a0d500, errors=0x0) at src/libponyc/type/subtype.c:1395
#156 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ba60, super=0x67a1d120, errors=0x0) at src/libponyc/type/subtype.c:620
#157 0x000e5200 in is_tuple_sub_x (sub=0x6380ba60, super=0x67a1d120, errors=0x0) at src/libponyc/type/subtype.c:671
#158 0x000e6994 in is_subtype (sub=0x6380ba60, super=0x67a1d120, errors=0x0) at src/libponyc/type/subtype.c:1395
#159 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ba00, super=0x67a22500, errors=0x0) at src/libponyc/type/subtype.c:620
#160 0x000e5200 in is_tuple_sub_x (sub=0x6380ba00, super=0x67a22500, errors=0x0) at src/libponyc/type/subtype.c:671
#161 0x000e6994 in is_subtype (sub=0x6380ba00, super=0x67a22500, errors=0x0) at src/libponyc/type/subtype.c:1395
#162 0x000e4fe0 in is_tuple_sub_tuple (sub=0x638359a0, super=0x67a0e160, errors=0x0) at src/libponyc/type/subtype.c:620
#163 0x000e5200 in is_tuple_sub_x (sub=0x638359a0, super=0x67a0e160, errors=0x0) at src/libponyc/type/subtype.c:671
#164 0x000e6994 in is_subtype (sub=0x638359a0, super=0x67a0e160, errors=0x0) at src/libponyc/type/subtype.c:1395
#165 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380baa0, super=0x67791800, errors=0x0) at src/libponyc/type/subtype.c:620
#166 0x000e5200 in is_tuple_sub_x (sub=0x6380baa0, super=0x67791800, errors=0x0) at src/libponyc/type/subtype.c:671
#167 0x000e6994 in is_subtype (sub=0x6380baa0, super=0x67791800, errors=0x0) at src/libponyc/type/subtype.c:1395
#168 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380bac0, super=0x67a0e080, errors=0x0) at src/libponyc/type/subtype.c:620
#169 0x000e5200 in is_tuple_sub_x (sub=0x6380bac0, super=0x67a0e080, errors=0x0) at src/libponyc/type/subtype.c:671
#170 0x000e6994 in is_subtype (sub=0x6380bac0, super=0x67a0e080, errors=0x0) at src/libponyc/type/subtype.c:1395
#171 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380bae0, super=0x67a1d100, errors=0x0) at src/libponyc/type/subtype.c:620
#172 0x000e5200 in is_tuple_sub_x (sub=0x6380bae0, super=0x67a1d100, errors=0x0) at src/libponyc/type/subtype.c:671
#173 0x000e6994 in is_subtype (sub=0x6380bae0, super=0x67a1d100, errors=0x0) at src/libponyc/type/subtype.c:1395
#174 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ba80, super=0x67a0e1e0, errors=0x0) at src/libponyc/type/subtype.c:620
#175 0x000e5200 in is_tuple_sub_x (sub=0x6380ba80, super=0x67a0e1e0, errors=0x0) at src/libponyc/type/subtype.c:671
#176 0x000e6994 in is_subtype (sub=0x6380ba80, super=0x67a0e1e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#177 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835980, super=0x67a0e140, errors=0x0) at src/libponyc/type/subtype.c:620
#178 0x000e5200 in is_tuple_sub_x (sub=0x63835980, super=0x67a0e140, errors=0x0) at src/libponyc/type/subtype.c:671
#179 0x000e6994 in is_subtype (sub=0x63835980, super=0x67a0e140, errors=0x0) at src/libponyc/type/subtype.c:1395
#180 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380bb20, super=0x67a21a00, errors=0x0) at src/libponyc/type/subtype.c:620
#181 0x000e5200 in is_tuple_sub_x (sub=0x6380bb20, super=0x67a21a00, errors=0x0) at src/libponyc/type/subtype.c:671
#182 0x000e6994 in is_subtype (sub=0x6380bb20, super=0x67a21a00, errors=0x0) at src/libponyc/type/subtype.c:1395
#183 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380bb40, super=0x67a0e1a0, errors=0x0) at src/libponyc/type/subtype.c:620
#184 0x000e5200 in is_tuple_sub_x (sub=0x6380bb40, super=0x67a0e1a0, errors=0x0) at src/libponyc/type/subtype.c:671
#185 0x000e6994 in is_subtype (sub=0x6380bb40, super=0x67a0e1a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#186 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380bb60, super=0x67a23000, errors=0x0) at src/libponyc/type/subtype.c:620
#187 0x000e5200 in is_tuple_sub_x (sub=0x6380bb60, super=0x67a23000, errors=0x0) at src/libponyc/type/subtype.c:671
#188 0x000e6994 in is_subtype (sub=0x6380bb60, super=0x67a23000, errors=0x0) at src/libponyc/type/subtype.c:1395
#189 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380bb00, super=0x67a21a60, errors=0x0) at src/libponyc/type/subtype.c:620
#190 0x000e5200 in is_tuple_sub_x (sub=0x6380bb00, super=0x67a21a60, errors=0x0) at src/libponyc/type/subtype.c:671
#191 0x000e6994 in is_subtype (sub=0x6380bb00, super=0x67a21a60, errors=0x0) at src/libponyc/type/subtype.c:1395
#192 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835960, super=0x67a0e1c0, errors=0x0) at src/libponyc/type/subtype.c:620
#193 0x000e5200 in is_tuple_sub_x (sub=0x63835960, super=0x67a0e1c0, errors=0x0) at src/libponyc/type/subtype.c:671
#194 0x000e6994 in is_subtype (sub=0x63835960, super=0x67a0e1c0, errors=0x0) at src/libponyc/type/subtype.c:1395
#195 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380bba0, super=0x67a0d540, errors=0x0) at src/libponyc/type/subtype.c:620
#196 0x000e5200 in is_tuple_sub_x (sub=0x6380bba0, super=0x67a0d540, errors=0x0) at src/libponyc/type/subtype.c:671
#197 0x000e6994 in is_subtype (sub=0x6380bba0, super=0x67a0d540, errors=0x0) at src/libponyc/type/subtype.c:1395
#198 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380bbc0, super=0x67a22780, errors=0x0) at src/libponyc/type/subtype.c:620
#199 0x000e5200 in is_tuple_sub_x (sub=0x6380bbc0, super=0x67a22780, errors=0x0) at src/libponyc/type/subtype.c:671
#200 0x000e6994 in is_subtype (sub=0x6380bbc0, super=0x67a22780, errors=0x0) at src/libponyc/type/subtype.c:1395
#201 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380bbe0, super=0x68082f00, errors=0x0) at src/libponyc/type/subtype.c:620
#202 0x000e5200 in is_tuple_sub_x (sub=0x6380bbe0, super=0x68082f00, errors=0x0) at src/libponyc/type/subtype.c:671
#203 0x000e6994 in is_subtype (sub=0x6380bbe0, super=0x68082f00, errors=0x0) at src/libponyc/type/subtype.c:1395
#204 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380bb80, super=0x67792760, errors=0x0) at src/libponyc/type/subtype.c:620
#205 0x000e5200 in is_tuple_sub_x (sub=0x6380bb80, super=0x67792760, errors=0x0) at src/libponyc/type/subtype.c:671
#206 0x000e6994 in is_subtype (sub=0x6380bb80, super=0x67792760, errors=0x0) at src/libponyc/type/subtype.c:1395
#207 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835940, super=0x67a0e240, errors=0x0) at src/libponyc/type/subtype.c:620
#208 0x000e5200 in is_tuple_sub_x (sub=0x63835940, super=0x67a0e240, errors=0x0) at src/libponyc/type/subtype.c:671
#209 0x000e6994 in is_subtype (sub=0x63835940, super=0x67a0e240, errors=0x0) at src/libponyc/type/subtype.c:1395
#210 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ac20, super=0x67a0e180, errors=0x0) at src/libponyc/type/subtype.c:620
#211 0x000e5200 in is_tuple_sub_x (sub=0x6380ac20, super=0x67a0e180, errors=0x0) at src/libponyc/type/subtype.c:671
#212 0x000e6994 in is_subtype (sub=0x6380ac20, super=0x67a0e180, errors=0x0) at src/libponyc/type/subtype.c:1395
#213 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ac40, super=0x67a27b40, errors=0x0) at src/libponyc/type/subtype.c:620
#214 0x000e5200 in is_tuple_sub_x (sub=0x6380ac40, super=0x67a27b40, errors=0x0) at src/libponyc/type/subtype.c:671
#215 0x000e6994 in is_subtype (sub=0x6380ac40, super=0x67a27b40, errors=0x0) at src/libponyc/type/subtype.c:1395
#216 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ac60, super=0x67a28520, errors=0x0) at src/libponyc/type/subtype.c:620
#217 0x000e5200 in is_tuple_sub_x (sub=0x6380ac60, super=0x67a28520, errors=0x0) at src/libponyc/type/subtype.c:671
#218 0x000e6994 in is_subtype (sub=0x6380ac60, super=0x67a28520, errors=0x0) at src/libponyc/type/subtype.c:1395
#219 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ac00, super=0x67a0e220, errors=0x0) at src/libponyc/type/subtype.c:620
#220 0x000e5200 in is_tuple_sub_x (sub=0x6380ac00, super=0x67a0e220, errors=0x0) at src/libponyc/type/subtype.c:671
#221 0x000e6994 in is_subtype (sub=0x6380ac00, super=0x67a0e220, errors=0x0) at src/libponyc/type/subtype.c:1395
#222 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835920, super=0x677927c0, errors=0x0) at src/libponyc/type/subtype.c:620
#223 0x000e5200 in is_tuple_sub_x (sub=0x63835920, super=0x677927c0, errors=0x0) at src/libponyc/type/subtype.c:671
#224 0x000e6994 in is_subtype (sub=0x63835920, super=0x677927c0, errors=0x0) at src/libponyc/type/subtype.c:1395
#225 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380aca0, super=0x67a0e200, errors=0x0) at src/libponyc/type/subtype.c:620
#226 0x000e5200 in is_tuple_sub_x (sub=0x6380aca0, super=0x67a0e200, errors=0x0) at src/libponyc/type/subtype.c:671
#227 0x000e6994 in is_subtype (sub=0x6380aca0, super=0x67a0e200, errors=0x0) at src/libponyc/type/subtype.c:1395
#228 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380acc0, super=0x67a27b20, errors=0x0) at src/libponyc/type/subtype.c:620
#229 0x000e5200 in is_tuple_sub_x (sub=0x6380acc0, super=0x67a27b20, errors=0x0) at src/libponyc/type/subtype.c:671
#230 0x000e6994 in is_subtype (sub=0x6380acc0, super=0x67a27b20, errors=0x0) at src/libponyc/type/subtype.c:1395
#231 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ace0, super=0x67a28540, errors=0x0) at src/libponyc/type/subtype.c:620
#232 0x000e5200 in is_tuple_sub_x (sub=0x6380ace0, super=0x67a28540, errors=0x0) at src/libponyc/type/subtype.c:671
#233 0x000e6994 in is_subtype (sub=0x6380ace0, super=0x67a28540, errors=0x0) at src/libponyc/type/subtype.c:1395
#234 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ac80, super=0x67a0e2a0, errors=0x0) at src/libponyc/type/subtype.c:620
#235 0x000e5200 in is_tuple_sub_x (sub=0x6380ac80, super=0x67a0e2a0, errors=0x0) at src/libponyc/type/subtype.c:671
#236 0x000e6994 in is_subtype (sub=0x6380ac80, super=0x67a0e2a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#237 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835900, super=0x67a0e260, errors=0x0) at src/libponyc/type/subtype.c:620
#238 0x000e5200 in is_tuple_sub_x (sub=0x63835900, super=0x67a0e260, errors=0x0) at src/libponyc/type/subtype.c:671
#239 0x000e6994 in is_subtype (sub=0x63835900, super=0x67a0e260, errors=0x0) at src/libponyc/type/subtype.c:1395
#240 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ad20, super=0x677927a0, errors=0x0) at src/libponyc/type/subtype.c:620
#241 0x000e5200 in is_tuple_sub_x (sub=0x6380ad20, super=0x677927a0, errors=0x0) at src/libponyc/type/subtype.c:671
#242 0x000e6994 in is_subtype (sub=0x6380ad20, super=0x677927a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#243 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ad40, super=0x67a21aa0, errors=0x0) at src/libponyc/type/subtype.c:620
#244 0x000e5200 in is_tuple_sub_x (sub=0x6380ad40, super=0x67a21aa0, errors=0x0) at src/libponyc/type/subtype.c:671
#245 0x000e6994 in is_subtype (sub=0x6380ad40, super=0x67a21aa0, errors=0x0) at src/libponyc/type/subtype.c:1395
#246 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ad60, super=0x67a1d0e0, errors=0x0) at src/libponyc/type/subtype.c:620
#247 0x000e5200 in is_tuple_sub_x (sub=0x6380ad60, super=0x67a1d0e0, errors=0x0) at src/libponyc/type/subtype.c:671
#248 0x000e6994 in is_subtype (sub=0x6380ad60, super=0x67a1d0e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#249 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ad00, super=0x67a0d520, errors=0x0) at src/libponyc/type/subtype.c:620
#250 0x000e5200 in is_tuple_sub_x (sub=0x6380ad00, super=0x67a0d520, errors=0x0) at src/libponyc/type/subtype.c:671
#251 0x000e6994 in is_subtype (sub=0x6380ad00, super=0x67a0d520, errors=0x0) at src/libponyc/type/subtype.c:1395
#252 0x000e4fe0 in is_tuple_sub_tuple (sub=0x638358e0, super=0x67a08f20, errors=0x0) at src/libponyc/type/subtype.c:620
#253 0x000e5200 in is_tuple_sub_x (sub=0x638358e0, super=0x67a08f20, errors=0x0) at src/libponyc/type/subtype.c:671
#254 0x000e6994 in is_subtype (sub=0x638358e0, super=0x67a08f20, errors=0x0) at src/libponyc/type/subtype.c:1395
#255 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ada0, super=0x67a27a60, errors=0x0) at src/libponyc/type/subtype.c:620
#256 0x000e5200 in is_tuple_sub_x (sub=0x6380ada0, super=0x67a27a60, errors=0x0) at src/libponyc/type/subtype.c:671
#257 0x000e6994 in is_subtype (sub=0x6380ada0, super=0x67a27a60, errors=0x0) at src/libponyc/type/subtype.c:1395
#258 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380adc0, super=0x67a27ae0, errors=0x0) at src/libponyc/type/subtype.c:620
#259 0x000e5200 in is_tuple_sub_x (sub=0x6380adc0, super=0x67a27ae0, errors=0x0) at src/libponyc/type/subtype.c:671
#260 0x000e6994 in is_subtype (sub=0x6380adc0, super=0x67a27ae0, errors=0x0) at src/libponyc/type/subtype.c:1395
#261 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ade0, super=0x67a09900, errors=0x0) at src/libponyc/type/subtype.c:620
#262 0x000e5200 in is_tuple_sub_x (sub=0x6380ade0, super=0x67a09900, errors=0x0) at src/libponyc/type/subtype.c:671
#263 0x000e6994 in is_subtype (sub=0x6380ade0, super=0x67a09900, errors=0x0) at src/libponyc/type/subtype.c:1395
#264 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ad80, super=0x67a0e280, errors=0x0) at src/libponyc/type/subtype.c:620
#265 0x000e5200 in is_tuple_sub_x (sub=0x6380ad80, super=0x67a0e280, errors=0x0) at src/libponyc/type/subtype.c:671
#266 0x000e6994 in is_subtype (sub=0x6380ad80, super=0x67a0e280, errors=0x0) at src/libponyc/type/subtype.c:1395
#267 0x000e4fe0 in is_tuple_sub_tuple (sub=0x638358c0, super=0x67a0e2c0, errors=0x0) at src/libponyc/type/subtype.c:620
#268 0x000e5200 in is_tuple_sub_x (sub=0x638358c0, super=0x67a0e2c0, errors=0x0) at src/libponyc/type/subtype.c:671
#269 0x000e6994 in is_subtype (sub=0x638358c0, super=0x67a0e2c0, errors=0x0) at src/libponyc/type/subtype.c:1395
#270 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ae20, super=0x67a27b00, errors=0x0) at src/libponyc/type/subtype.c:620
#271 0x000e5200 in is_tuple_sub_x (sub=0x6380ae20, super=0x67a27b00, errors=0x0) at src/libponyc/type/subtype.c:671
#272 0x000e6994 in is_subtype (sub=0x6380ae20, super=0x67a27b00, errors=0x0) at src/libponyc/type/subtype.c:1395
#273 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ae40, super=0x67792780, errors=0x0) at src/libponyc/type/subtype.c:620
#274 0x000e5200 in is_tuple_sub_x (sub=0x6380ae40, super=0x67792780, errors=0x0) at src/libponyc/type/subtype.c:671
#275 0x000e6994 in is_subtype (sub=0x6380ae40, super=0x67792780, errors=0x0) at src/libponyc/type/subtype.c:1395
#276 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ae60, super=0x694a4c20, errors=0x0) at src/libponyc/type/subtype.c:620
#277 0x000e5200 in is_tuple_sub_x (sub=0x6380ae60, super=0x694a4c20, errors=0x0) at src/libponyc/type/subtype.c:671
#278 0x000e6994 in is_subtype (sub=0x6380ae60, super=0x694a4c20, errors=0x0) at src/libponyc/type/subtype.c:1395
#279 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ae00, super=0x67a225a0, errors=0x0) at src/libponyc/type/subtype.c:620
#280 0x000e5200 in is_tuple_sub_x (sub=0x6380ae00, super=0x67a225a0, errors=0x0) at src/libponyc/type/subtype.c:671
#281 0x000e6994 in is_subtype (sub=0x6380ae00, super=0x67a225a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#282 0x000e4fe0 in is_tuple_sub_tuple (sub=0x638358a0, super=0x67a22520, errors=0x0) at src/libponyc/type/subtype.c:620
#283 0x000e5200 in is_tuple_sub_x (sub=0x638358a0, super=0x67a22520, errors=0x0) at src/libponyc/type/subtype.c:671
#284 0x000e6994 in is_subtype (sub=0x638358a0, super=0x67a22520, errors=0x0) at src/libponyc/type/subtype.c:1395
#285 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380aea0, super=0x67a0d480, errors=0x0) at src/libponyc/type/subtype.c:620
#286 0x000e5200 in is_tuple_sub_x (sub=0x6380aea0, super=0x67a0d480, errors=0x0) at src/libponyc/type/subtype.c:671
#287 0x000e6994 in is_subtype (sub=0x6380aea0, super=0x67a0d480, errors=0x0) at src/libponyc/type/subtype.c:1395
#288 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380aec0, super=0x67a21a20, errors=0x0) at src/libponyc/type/subtype.c:620
#289 0x000e5200 in is_tuple_sub_x (sub=0x6380aec0, super=0x67a21a20, errors=0x0) at src/libponyc/type/subtype.c:671
#290 0x000e6994 in is_subtype (sub=0x6380aec0, super=0x67a21a20, errors=0x0) at src/libponyc/type/subtype.c:1395
#291 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380aee0, super=0x67a23f60, errors=0x0) at src/libponyc/type/subtype.c:620
#292 0x000e5200 in is_tuple_sub_x (sub=0x6380aee0, super=0x67a23f60, errors=0x0) at src/libponyc/type/subtype.c:671
#293 0x000e6994 in is_subtype (sub=0x6380aee0, super=0x67a23f60, errors=0x0) at src/libponyc/type/subtype.c:1395
#294 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380ae80, super=0x67a0e2e0, errors=0x0) at src/libponyc/type/subtype.c:620
#295 0x000e5200 in is_tuple_sub_x (sub=0x6380ae80, super=0x67a0e2e0, errors=0x0) at src/libponyc/type/subtype.c:671
#296 0x000e6994 in is_subtype (sub=0x6380ae80, super=0x67a0e2e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#297 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835880, super=0x677926e0, errors=0x0) at src/libponyc/type/subtype.c:620
#298 0x000e5200 in is_tuple_sub_x (sub=0x63835880, super=0x677926e0, errors=0x0) at src/libponyc/type/subtype.c:671
#299 0x000e6994 in is_subtype (sub=0x63835880, super=0x677926e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#300 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380af20, super=0x67a0e320, errors=0x0) at src/libponyc/type/subtype.c:620
#301 0x000e5200 in is_tuple_sub_x (sub=0x6380af20, super=0x67a0e320, errors=0x0) at src/libponyc/type/subtype.c:671
#302 0x000e6994 in is_subtype (sub=0x6380af20, super=0x67a0e320, errors=0x0) at src/libponyc/type/subtype.c:1395
#303 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380af40, super=0x67a0e300, errors=0x0) at src/libponyc/type/subtype.c:620
#304 0x000e5200 in is_tuple_sub_x (sub=0x6380af40, super=0x67a0e300, errors=0x0) at src/libponyc/type/subtype.c:671
#305 0x000e6994 in is_subtype (sub=0x6380af40, super=0x67a0e300, errors=0x0) at src/libponyc/type/subtype.c:1395
#306 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380af60, super=0x67a23fe0, errors=0x0) at src/libponyc/type/subtype.c:620
#307 0x000e5200 in is_tuple_sub_x (sub=0x6380af60, super=0x67a23fe0, errors=0x0) at src/libponyc/type/subtype.c:671
#308 0x000e6994 in is_subtype (sub=0x6380af60, super=0x67a23fe0, errors=0x0) at src/libponyc/type/subtype.c:1395
#309 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380af00, super=0x67a0e360, errors=0x0) at src/libponyc/type/subtype.c:620
#310 0x000e5200 in is_tuple_sub_x (sub=0x6380af00, super=0x67a0e360, errors=0x0) at src/libponyc/type/subtype.c:671
#311 0x000e6994 in is_subtype (sub=0x6380af00, super=0x67a0e360, errors=0x0) at src/libponyc/type/subtype.c:1395
#312 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835860, super=0x67a0d4e0, errors=0x0) at src/libponyc/type/subtype.c:620
#313 0x000e5200 in is_tuple_sub_x (sub=0x63835860, super=0x67a0d4e0, errors=0x0) at src/libponyc/type/subtype.c:671
#314 0x000e6994 in is_subtype (sub=0x63835860, super=0x67a0d4e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#315 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380afa0, super=0x67792740, errors=0x0) at src/libponyc/type/subtype.c:620
#316 0x000e5200 in is_tuple_sub_x (sub=0x6380afa0, super=0x67792740, errors=0x0) at src/libponyc/type/subtype.c:671
#317 0x000e6994 in is_subtype (sub=0x6380afa0, super=0x67792740, errors=0x0) at src/libponyc/type/subtype.c:1395
#318 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380afc0, super=0x67a0e340, errors=0x0) at src/libponyc/type/subtype.c:620
#319 0x000e5200 in is_tuple_sub_x (sub=0x6380afc0, super=0x67a0e340, errors=0x0) at src/libponyc/type/subtype.c:671
#320 0x000e6994 in is_subtype (sub=0x6380afc0, super=0x67a0e340, errors=0x0) at src/libponyc/type/subtype.c:1395
#321 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380afe0, super=0x67a1d0a0, errors=0x0) at src/libponyc/type/subtype.c:620
#322 0x000e5200 in is_tuple_sub_x (sub=0x6380afe0, super=0x67a1d0a0, errors=0x0) at src/libponyc/type/subtype.c:671
#323 0x000e6994 in is_subtype (sub=0x6380afe0, super=0x67a1d0a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#324 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380af80, super=0x67a21980, errors=0x0) at src/libponyc/type/subtype.c:620
#325 0x000e5200 in is_tuple_sub_x (sub=0x6380af80, super=0x67a21980, errors=0x0) at src/libponyc/type/subtype.c:671
#326 0x000e6994 in is_subtype (sub=0x6380af80, super=0x67a21980, errors=0x0) at src/libponyc/type/subtype.c:1395
#327 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835840, super=0x67a27ac0, errors=0x0) at src/libponyc/type/subtype.c:620
#328 0x000e5200 in is_tuple_sub_x (sub=0x63835840, super=0x67a27ac0, errors=0x0) at src/libponyc/type/subtype.c:671
#329 0x000e6994 in is_subtype (sub=0x63835840, super=0x67a27ac0, errors=0x0) at src/libponyc/type/subtype.c:1395
#330 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a020, super=0x67a0e3a0, errors=0x0) at src/libponyc/type/subtype.c:620
#331 0x000e5200 in is_tuple_sub_x (sub=0x6380a020, super=0x67a0e3a0, errors=0x0) at src/libponyc/type/subtype.c:671
#332 0x000e6994 in is_subtype (sub=0x6380a020, super=0x67a0e3a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#333 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a040, super=0x67a0e3c0, errors=0x0) at src/libponyc/type/subtype.c:620
#334 0x000e5200 in is_tuple_sub_x (sub=0x6380a040, super=0x67a0e3c0, errors=0x0) at src/libponyc/type/subtype.c:671
#335 0x000e6994 in is_subtype (sub=0x6380a040, super=0x67a0e3c0, errors=0x0) at src/libponyc/type/subtype.c:1395
#336 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a060, super=0x67a1d0c0, errors=0x0) at src/libponyc/type/subtype.c:620
#337 0x000e5200 in is_tuple_sub_x (sub=0x6380a060, super=0x67a1d0c0, errors=0x0) at src/libponyc/type/subtype.c:671
#338 0x000e6994 in is_subtype (sub=0x6380a060, super=0x67a1d0c0, errors=0x0) at src/libponyc/type/subtype.c:1395
#339 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a000, super=0x67a0e380, errors=0x0) at src/libponyc/type/subtype.c:620
#340 0x000e5200 in is_tuple_sub_x (sub=0x6380a000, super=0x67a0e380, errors=0x0) at src/libponyc/type/subtype.c:671
#341 0x000e6994 in is_subtype (sub=0x6380a000, super=0x67a0e380, errors=0x0) at src/libponyc/type/subtype.c:1395
#342 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835820, super=0x67a0e3e0, errors=0x0) at src/libponyc/type/subtype.c:620
#343 0x000e5200 in is_tuple_sub_x (sub=0x63835820, super=0x67a0e3e0, errors=0x0) at src/libponyc/type/subtype.c:671
#344 0x000e6994 in is_subtype (sub=0x63835820, super=0x67a0e3e0, errors=0x0) at src/libponyc/type/subtype.c:1395
#345 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a0a0, super=0x67a21a40, errors=0x0) at src/libponyc/type/subtype.c:620
#346 0x000e5200 in is_tuple_sub_x (sub=0x6380a0a0, super=0x67a21a40, errors=0x0) at src/libponyc/type/subtype.c:671
#347 0x000e6994 in is_subtype (sub=0x6380a0a0, super=0x67a21a40, errors=0x0) at src/libponyc/type/subtype.c:1395
#348 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a0c0, super=0x67792720, errors=0x0) at src/libponyc/type/subtype.c:620
#349 0x000e5200 in is_tuple_sub_x (sub=0x6380a0c0, super=0x67792720, errors=0x0) at src/libponyc/type/subtype.c:671
#350 0x000e6994 in is_subtype (sub=0x6380a0c0, super=0x67792720, errors=0x0) at src/libponyc/type/subtype.c:1395
#351 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a0e0, super=0x6c94fe40, errors=0x0) at src/libponyc/type/subtype.c:620
#352 0x000e5200 in is_tuple_sub_x (sub=0x6380a0e0, super=0x6c94fe40, errors=0x0) at src/libponyc/type/subtype.c:671
#353 0x000e6994 in is_subtype (sub=0x6380a0e0, super=0x6c94fe40, errors=0x0) at src/libponyc/type/subtype.c:1395
#354 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a080, super=0x67792700, errors=0x0) at src/libponyc/type/subtype.c:620
#355 0x000e5200 in is_tuple_sub_x (sub=0x6380a080, super=0x67792700, errors=0x0) at src/libponyc/type/subtype.c:671
#356 0x000e6994 in is_subtype (sub=0x6380a080, super=0x67792700, errors=0x0) at src/libponyc/type/subtype.c:1395
#357 0x000e4fe0 in is_tuple_sub_tuple (sub=0x63835800, super=0x67a0d4a0, errors=0x0) at src/libponyc/type/subtype.c:620
#358 0x000e5200 in is_tuple_sub_x (sub=0x63835800, super=0x67a0d4a0, errors=0x0) at src/libponyc/type/subtype.c:671
#359 0x000e6994 in is_subtype (sub=0x63835800, super=0x67a0d4a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#360 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a120, super=0x67a27aa0, errors=0x0) at src/libponyc/type/subtype.c:620
#361 0x000e5200 in is_tuple_sub_x (sub=0x6380a120, super=0x67a27aa0, errors=0x0) at src/libponyc/type/subtype.c:671
#362 0x000e6994 in is_subtype (sub=0x6380a120, super=0x67a27aa0, errors=0x0) at src/libponyc/type/subtype.c:1395
#363 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a140, super=0x67a0d440, errors=0x0) at src/libponyc/type/subtype.c:620
#364 0x000e5200 in is_tuple_sub_x (sub=0x6380a140, super=0x67a0d440, errors=0x0) at src/libponyc/type/subtype.c:671
#365 0x000e6994 in is_subtype (sub=0x6380a140, super=0x67a0d440, errors=0x0) at src/libponyc/type/subtype.c:1395
#366 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a160, super=0x67a1d000, errors=0x0) at src/libponyc/type/subtype.c:620
#367 0x000e5200 in is_tuple_sub_x (sub=0x6380a160, super=0x67a1d000, errors=0x0) at src/libponyc/type/subtype.c:671
#368 0x000e6994 in is_subtype (sub=0x6380a160, super=0x67a1d000, errors=0x0) at src/libponyc/type/subtype.c:1395
#369 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a100, super=0x67a08f40, errors=0x0) at src/libponyc/type/subtype.c:620
#370 0x000e5200 in is_tuple_sub_x (sub=0x6380a100, super=0x67a08f40, errors=0x0) at src/libponyc/type/subtype.c:671
#371 0x000e6994 in is_subtype (sub=0x6380a100, super=0x67a08f40, errors=0x0) at src/libponyc/type/subtype.c:1395
#372 0x000e4fe0 in is_tuple_sub_tuple (sub=0x638367e0, super=0x67a21820, errors=0x0) at src/libponyc/type/subtype.c:620
#373 0x000e5200 in is_tuple_sub_x (sub=0x638367e0, super=0x67a21820, errors=0x0) at src/libponyc/type/subtype.c:671
#374 0x000e6994 in is_subtype (sub=0x638367e0, super=0x67a21820, errors=0x0) at src/libponyc/type/subtype.c:1395
#375 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a1a0, super=0x67a219c0, errors=0x0) at src/libponyc/type/subtype.c:620
#376 0x000e5200 in is_tuple_sub_x (sub=0x6380a1a0, super=0x67a219c0, errors=0x0) at src/libponyc/type/subtype.c:671
#377 0x000e6994 in is_subtype (sub=0x6380a1a0, super=0x67a219c0, errors=0x0) at src/libponyc/type/subtype.c:1395
#378 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a1c0, super=0x67a0d4c0, errors=0x0) at src/libponyc/type/subtype.c:620
#379 0x000e5200 in is_tuple_sub_x (sub=0x6380a1c0, super=0x67a0d4c0, errors=0x0) at src/libponyc/type/subtype.c:671
#380 0x000e6994 in is_subtype (sub=0x6380a1c0, super=0x67a0d4c0, errors=0x0) at src/libponyc/type/subtype.c:1395
#381 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a1e0, super=0x67a219a0, errors=0x0) at src/libponyc/type/subtype.c:620
#382 0x000e5200 in is_tuple_sub_x (sub=0x6380a1e0, super=0x67a219a0, errors=0x0) at src/libponyc/type/subtype.c:671
#383 0x000e6994 in is_subtype (sub=0x6380a1e0, super=0x67a219a0, errors=0x0) at src/libponyc/type/subtype.c:1395
#384 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a180, super=0x719f4120, errors=0x0) at src/libponyc/type/subtype.c:620
#385 0x000e5200 in is_tuple_sub_x (sub=0x6380a180, super=0x719f4120, errors=0x0) at src/libponyc/type/subtype.c:671
#386 0x000e6994 in is_subtype (sub=0x6380a180, super=0x719f4120, errors=0x0) at src/libponyc/type/subtype.c:1395
#387 0x000e4fe0 in is_tuple_sub_tuple (sub=0x638367c0, super=0x67a23f80, errors=0x0) at src/libponyc/type/subtype.c:620
#388 0x000e5200 in is_tuple_sub_x (sub=0x638367c0, super=0x67a23f80, errors=0x0) at src/libponyc/type/subtype.c:671
#389 0x000e6994 in is_subtype (sub=0x638367c0, super=0x67a23f80, errors=0x0) at src/libponyc/type/subtype.c:1395
#390 0x000e4fe0 in is_tuple_sub_tuple (sub=0x6380a220, super=0x67a03920, errors=0x0) at src/libponyc/type/subtype.c:620
#391 0x000e5200 in is_tuple_sub_x (sub=0x6380a220, super=0x67a03920, errors=0x0) at src/libponyc/type/subtype.c:671
#392 0x000e6994 in is_subtype (sub=0x6380a220, super=0x67a03920, errors=0x0) at src/libponyc/type/subtype.c:1395
#393 0x000e6a58 in is_eqtype (a=0x6380a220, b=0x67a03920, errors=0x0) at src/libponyc/type/subtype.c:1425
#394 0x000e3c04 in is_eq_typeargs (a=0x638367a0, b=0x676972a0, errors=0x0) at src/libponyc/type/subtype.c:109
#395 0x000e368c in exact_nominal (a=0x638367a0, b=0x676972a0) at src/libponyc/type/subtype.c:31
#396 0x000e373c in push_assume (sub=0x638367a0, super=0x637ac6c0) at src/libponyc/type/subtype.c:45
#397 0x000e5390 in is_nominal_sub_interface (sub=0x638367a0, super=0x637ac6c0, errors=0x7efff418) at src/libponyc/type/subtype.c:727
#398 0x000e5c50 in is_nominal_sub_nominal (sub=0x638367a0, super=0x637ac6c0, errors=0x7efff418) at src/libponyc/type/subtype.c:964
#399 0x000e5eb0 in is_nominal_sub_x (sub=0x638367a0, super=0x637ac6c0, errors=0x7efff418) at src/libponyc/type/subtype.c:1041
#400 0x000e69ac in is_subtype (sub=0x638367a0, super=0x637ac6c0, errors=0x7efff418) at src/libponyc/type/subtype.c:1398
#401 0x000e40f0 in is_reified_fun_sub_fun (sub=0x63809520, super=0x6374f680, errors=0x7efff418) at src/libponyc/type/subtype.c:228
#402 0x000e4a08 in is_fun_sub_fun (sub=0x63a12660, super=0x6374f680, errors=0x7efff418) at src/libponyc/type/subtype.c:418
#403 0x000e55f4 in is_nominal_sub_interface (sub=0x639b01a0, super=0x63926ee0, errors=0x7efff418) at src/libponyc/type/subtype.c:789
#404 0x000e5c50 in is_nominal_sub_nominal (sub=0x639b01a0, super=0x63926ee0, errors=0x7efff418) at src/libponyc/type/subtype.c:964
#405 0x000e5eb0 in is_nominal_sub_x (sub=0x639b01a0, super=0x63926ee0, errors=0x7efff418) at src/libponyc/type/subtype.c:1041
#406 0x000e69ac in is_subtype (sub=0x639b01a0, super=0x63926ee0, errors=0x7efff418) at src/libponyc/type/subtype.c:1398
#407 0x000e40f0 in is_reified_fun_sub_fun (sub=0x63983e80, super=0x638c9d60, errors=0x7efff418) at src/libponyc/type/subtype.c:228
#408 0x000e4a08 in is_fun_sub_fun (sub=0x63b8b6a0, super=0x638c9d60, errors=0x7efff418) at src/libponyc/type/subtype.c:418
#409 0x000e55f4 in is_nominal_sub_interface (sub=0x63b290a0, super=0x63a9fc00, errors=0x7efff418) at src/libponyc/type/subtype.c:789
#410 0x000e5c50 in is_nominal_sub_nominal (sub=0x63b290a0, super=0x63a9fc00, errors=0x7efff418) at src/libponyc/type/subtype.c:964
#411 0x000e5eb0 in is_nominal_sub_x (sub=0x63b290a0, super=0x63a9fc00, errors=0x7efff418) at src/libponyc/type/subtype.c:1041
#412 0x000e69ac in is_subtype (sub=0x63b290a0, super=0x63a9fc00, errors=0x7efff418) at src/libponyc/type/subtype.c:1398
#413 0x000e40f0 in is_reified_fun_sub_fun (sub=0x63afcce0, super=0x63a43940, errors=0x7efff418) at src/libponyc/type/subtype.c:228
#414 0x000e4a08 in is_fun_sub_fun (sub=0x63d03fe0, super=0x63a43940, errors=0x7efff418) at src/libponyc/type/subtype.c:418
#415 0x000e55f4 in is_nominal_sub_interface (sub=0x63ca18a0, super=0x63c19220, errors=0x7efff418) at src/libponyc/type/subtype.c:789
#416 0x000e5c50 in is_nominal_sub_nominal (sub=0x63ca18a0, super=0x63c19220, errors=0x7efff418) at src/libponyc/type/subtype.c:964
#417 0x000e5eb0 in is_nominal_sub_x (sub=0x63ca18a0, super=0x63c19220, errors=0x7efff418) at src/libponyc/type/subtype.c:1041
#418 0x000e69ac in is_subtype (sub=0x63ca18a0, super=0x63c19220, errors=0x7efff418) at src/libponyc/type/subtype.c:1398
#419 0x000e40f0 in is_reified_fun_sub_fun (sub=0x63c75440, super=0x63bbce20, errors=0x7efff418) at src/libponyc/type/subtype.c:228
#420 0x000e4a08 in is_fun_sub_fun (sub=0x63e7aa20, super=0x63bbce20, errors=0x7efff418) at src/libponyc/type/subtype.c:418
#421 0x000e55f4 in is_nominal_sub_interface (sub=0x63e191a0, super=0x63d90940, errors=0x7efff418) at src/libponyc/type/subtype.c:789
#422 0x000e5c50 in is_nominal_sub_nominal (sub=0x63e191a0, super=0x63d90940, errors=0x7efff418) at src/libponyc/type/subtype.c:964
#423 0x000e5eb0 in is_nominal_sub_x (sub=0x63e191a0, super=0x63d90940, errors=0x7efff418) at src/libponyc/type/subtype.c:1041
#424 0x000e69ac in is_subtype (sub=0x63e191a0, super=0x63d90940, errors=0x7efff418) at src/libponyc/type/subtype.c:1398
#425 0x000e40f0 in is_reified_fun_sub_fun (sub=0x63decca0, super=0x63d34400, errors=0x7efff418) at src/libponyc/type/subtype.c:228
#426 0x000e4a08 in is_fun_sub_fun (sub=0x63ff0960, super=0x63d34400, errors=0x7efff418) at src/libponyc/type/subtype.c:418
#427 0x000e55f4 in is_nominal_sub_interface (sub=0x63f8ffa0, super=0x63f07560, errors=0x7efff418) at src/libponyc/type/subtype.c:789
#428 0x000e5c50 in is_nominal_sub_nominal (sub=0x63f8ffa0, super=0x63f07560, errors=0x7efff418) at src/libponyc/type/subtype.c:964
#429 0x000e5eb0 in is_nominal_sub_x (sub=0x63f8ffa0, super=0x63f07560, errors=0x7efff418) at src/libponyc/type/subtype.c:1041
#430 0x000e69ac in is_subtype (sub=0x63f8ffa0, super=0x63f07560, errors=0x7efff418) at src/libponyc/type/subtype.c:1398
#431 0x000e40f0 in is_reified_fun_sub_fun (sub=0x63f63a00, super=0x63eabee0, errors=0x7efff418) at src/libponyc/type/subtype.c:228
#432 0x000e4a08 in is_fun_sub_fun (sub=0x64165da0, super=0x63eabee0, errors=0x7efff418) at src/libponyc/type/subtype.c:418
#433 0x000e55f4 in is_nominal_sub_interface (sub=0x641052a0, super=0x6407d680, errors=0x7efff418) at src/libponyc/type/subtype.c:789
#434 0x000e5c50 in is_nominal_sub_nominal (sub=0x641052a0, super=0x6407d680, errors=0x7efff418) at src/libponyc/type/subtype.c:964
#435 0x000e5eb0 in is_nominal_sub_x (sub=0x641052a0, super=0x6407d680, errors=0x7efff418) at src/libponyc/type/subtype.c:1041
#436 0x000e69ac in is_subtype (sub=0x641052a0, super=0x6407d680, errors=0x7efff418) at src/libponyc/type/subtype.c:1398
#437 0x000e40f0 in is_reified_fun_sub_fun (sub=0x640d8c60, super=0x64021ec0, errors=0x7efff418) at src/libponyc/type/subtype.c:228
#438 0x000e4a08 in is_fun_sub_fun (sub=0x642daae0, super=0x64021ec0, errors=0x7efff418) at src/libponyc/type/subtype.c:418
#439 0x000e55f4 in is_nominal_sub_interface (sub=0x64279ea0, super=0x641f20a0, errors=0x7efff418) at src/libponyc/type/subtype.c:789
Quit
// Dummy interface so that we can write [A: ParserItem #read].
// Since it's an empty interface, anything can silently be an instance of it.
interface val ParserItem
interface ParseBuffer
fun head(): U8 ?
fun eof(): Bool
fun clone(): ParseBuffer
fun tail(): ParseBuffer
class _StringBuffer is ParseBuffer
let _str: String val
var _pos: USize
new create(s: String val) =>
_str = s
_pos = 0
new _positioned(s: String val, p: USize) =>
_str = s
_pos = p
fun head(): U8 ? => _str(_pos)
fun eof(): Bool => _pos >= _str.size()
fun clone(): ParseBuffer => _StringBuffer._positioned(_str, _pos)
fun tail(): ParseBuffer => _StringBuffer._positioned(_str, _pos + 1)
interface Parser[A: ParserItem #read]
fun op_or(p: Parser[A]): Parser[A] =>
PTry[A](this, p)
fun add[B](p: Parser[B]): Parser[(A, B)] =>
PThen[A, B](this, p)
fun parse(buf: ParseBuffer): (A, ParseBuffer) ?
class PThen[A: (ParserItem #read), B: (ParserItem #read)] is Parser[(A, B)]
"""Parses the left side, then the right side, returning a pair for their
results."""
let _lhs: Parser[A]
let _rhs: Parser[B]
new create(l: Parser[A], r: Parser[B]) =>
_lhs = l
_rhs = r
fun parse(buf: ParseBuffer): ((A, B), ParseBuffer) ? =>
(let lr, let buf') = _lhs.parse(buf)
(let rr, let buf'') = _rhs.parse(buf')
((lr, rr), buf'')
class PTry[A: ParserItem #read] is Parser[A]
"""Tries the left-hand parser. If it succeeds, returns that value. If it
fails, tries the right-hand parser."""
let _lhs: Parser[A] box
let _rhs: Parser[A] box
new create(l: Parser[A] box, r: Parser[A] box) =>
_lhs = l
_rhs = r
fun parse(buf: ParseBuffer): (A, ParseBuffer) ? =>
try
_lhs.parse(buf)
else
_rhs.parse(buf)
end
class PSeq[A: ParserItem #read] is Parser[Array[A]]
"""Performs each parser in sequence, returning an Array."""
let _parsers: Array[Parser[A] box] box
new create(parsers: Array[Parser[A] box] box) =>
_parsers = parsers
fun parse(buf: ParseBuffer): (Array[A] ref, ParseBuffer) ? =>
var ret: Array[A] ref = Array[A]()
var b = buf
for p in _parsers.values() do
(let res, let buf') = p.parse(b)
ret.push(res)
b = buf'
end
(ret, b)
class PChar is Parser[U8]
"""Parses a literal character."""
let _char: U8
new create(c: U8) => _char = c
fun parse(buf: ParseBuffer): (U8, ParseBuffer) ? =>
let c = buf.head()
if c != _char then
error
end
(c, buf.tail())
class PLiteral is Parser[String box]
"""Parses a literal String exactly."""
let _str: String box
new create(s: String) => _str = s
fun parse(buf: ParseBuffer): (String box, ParseBuffer) ? =>
var b = buf
for c in _str.values() do
let h = b.head()
if c != h then error end
b = b.tail()
end
(_str, b)
class PRange is Parser[U8]
"""Parses any character between a given pair, inclusive."""
let _lo: U8
let _hi: U8
new create(lo: U8, hi: U8) =>
_lo = lo
_hi = hi
fun parse(buf: ParseBuffer): (U8, ParseBuffer) ? =>
let c = buf.head()
if (_lo <= c) and (c <= _hi) then
(c, buf.tail())
else
error
end
class PAnyChar is Parser[U8]
"""Parses any single character."""
new create() => None
fun parse(buf: ParseBuffer): (U8, ParseBuffer) ? => (buf.head(), buf.tail())
// TODO: It should be possible(?) to drop the A from PNot; it doesn't care what
// the internal value is. Or use Any?
class PNot[A: ParserItem #read] is Parser[None]
"""Parser that fails when its inner parser succeeds, and succeeds when its
inner parser fails."""
let _inner: Parser[A]
new create(p: Parser[A]) =>
_inner = p
fun parse(buf: ParseBuffer): (None, ParseBuffer) ? =>
try
let a = _inner.parse(buf)
else
return (None, buf)
end
error
class POptional[A: ParserItem #read] is Parser[(A | None)]
"""Runs an inner parser. If it succeeds, this returns its result. If it fails,
no input is consumed and this succeeds with None."""
let _inner: Parser[A]
new create(p: Parser[A]) =>
_inner = p
fun parse(buf: ParseBuffer): ((A | None), ParseBuffer) =>
try
_inner.parse(buf)
else
(None, buf)
end
class PFail[A: ParserItem #read] is Parser[A]
new create() => None
fun parse(buf: ParseBuffer): (A, ParseBuffer) ? => error
class PMany[A: ParserItem #read] is Parser[Array[A]]
"""Parses a series of items, with an optional minimum and maximum number of
results."""
let _inner: Parser[A]
let _min: USize
let _max: USize
new create(p: Parser[A], min: USize = 0, max: USize = USize.max_value()) =>
_inner = p
_min = min
_max = max
fun parse(buf: ParseBuffer): (Array[A], ParseBuffer) ? =>
var ret = Array[A]()
var b = buf
var i: USize = 0
while i < _max do
try
(let res, let b') = _inner.parse(b)
ret.push(res)
b = b'
else
break
end
i = i + 1
end
if i < _min then error end
(ret, b)
class PSepBy[A: (ParserItem #read), B: (ParserItem #read)] is Parser[Array[A]]
"""Parses a series of items separated by another parser. Returns an array of
the results of the first parser. If you want to save the separator values (for
eg. parsing operators at some precedence level), see PChainL and PChainR."""
let _inner: Parser[A]
let _sep: Parser[B]
new create(p: Parser[A], sep: Parser[B]) =>
_inner = p
_sep = sep
fun parse(buf: ParseBuffer): (Array[A], ParseBuffer) ? =>
var ret = Array[A]()
var b = buf
var i: USize = 0
while true do
if i > 0 then
try
(_, let b') = _sep.parse(b)
b = b'
else
break
end
end
try
(let res, let b') = _inner.parse(b)
b = b'
ret.push(res)
else
error // Ending on a separator is wrong outright.
end
end
(ret, b)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment