From 03992188ea3cf322889b953d007e4a831f7c55bf Mon Sep 17 00:00:00 2001 From: Kacy Fortner Date: Wed, 29 Jul 2026 11:05:59 +0000 Subject: [PATCH] route a call through a loop variable to the loop's storage slot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit giving a for loop variable its own slot fixed the over-release and the clobbering, but a call through that variable still named the source variable: `for f in fns:` stored into __loopvar_0_f while `f(x)` emitted `call r f`. the consumer resolves a non-function callee by variable name, found no `f`, and fell through to the unresolved-function stub — a compile-clean program that died at runtime with "call to a function the compiler could not resolve". indexing the list worked all along, which is how it hid. the callee resolution now consults the loop-slot mapping the loads and stores already use, only for a bare identifier that is not a declared function — so a plain function call cannot be captured by a loop variable that happens not to shadow it, and everything else is unchanged. the case covers the plain loop call, nested loops with two live fn variables, rebinding the name after the loop, and a mixed-type pair of fn lists. --- self-host/bootstrap/ir_driver.ir | 11067 +++++++++++---------- self-host/ir_emitter_core.pith | 10 + tests/cases/test_loop_var_fn_call.pith | 44 + tests/expected/test_loop_var_fn_call.txt | 5 + 4 files changed, 5644 insertions(+), 5482 deletions(-) create mode 100644 tests/cases/test_loop_var_fn_call.pith create mode 100644 tests/expected/test_loop_var_fn_call.txt diff --git a/self-host/bootstrap/ir_driver.ir b/self-host/bootstrap/ir_driver.ir index 2b0d877d..ca630e9a 100644 --- a/self-host/bootstrap/ir_driver.ir +++ b/self-host/bootstrap/ir_driver.ir @@ -144282,506 +144282,609 @@ store callee_node 3 iconst 4 0 store callee 4 iconst 5 0 -store arg_regs 5 +store callee_n 5 iconst 6 0 -store ret_type 6 -load 7 explicit_generic_types -call 8 pith_list_new_cstr list 0 -call 9 pith_list_release_handle void 1 7 -store explicit_generic_types 8 -load 10 node -field 11 10 16 list children -call 12 pith_list_len int 1 11 -iconst 13 0 -gt 14 12 13 -brif 14 L2519 L2520 +store loop_slot 6 +iconst 7 0 +store arg_regs 7 +iconst 8 0 +store ret_type 8 +load 9 explicit_generic_types +call 10 pith_list_new_cstr list 0 +call 11 pith_list_release_handle void 1 9 +store explicit_generic_types 10 +load 12 node +field 13 12 16 list children +call 14 pith_list_len int 1 13 +iconst 15 0 +gt 16 14 15 +brif 16 L2519 L2520 label L2519 -load 15 callee_node -load 16 node -field 17 16 16 list children -iconst 18 0 -call 19 pith_list_get_value_strict int 2 17 18 -call 20 ast_get_node struct:Node 1 19 -call 21 pith_struct_release void 1 15 -store callee_node 20 -load 22 callee_node -field 23 22 0 string kind -strref 24 m46s35 -call 25 pith_cstring_eq bool 2 23 24 -call 26 pith_cstring_release void 1 24 -brif 25 L2522 L2523 +load 17 callee_node +load 18 node +field 19 18 16 list children +iconst 20 0 +call 21 pith_list_get_value_strict int 2 19 20 +call 22 ast_get_node struct:Node 1 21 +call 23 pith_struct_release void 1 17 +store callee_node 22 +load 24 callee_node +field 25 24 0 string kind +strref 26 m46s35 +call 27 pith_cstring_eq bool 2 25 26 +call 28 pith_cstring_release void 1 26 +brif 27 L2522 L2523 label L2522 -load 27 idx -load 28 node -load 29 node -field 30 29 16 list children -iconst 31 0 -call 32 pith_list_get_value_strict int 2 30 31 -load 33 callee_node -call 34 ir_emitter_core_ir_emit_index_decode_call int 4 27 28 32 33 -store special_r 34 -load 35 special_r -iconst 36 0 -gte 37 35 36 -brif 37 L2525 L2526 +load 29 idx +load 30 node +load 31 node +field 32 31 16 list children +iconst 33 0 +call 34 pith_list_get_value_strict int 2 32 33 +load 35 callee_node +call 36 ir_emitter_core_ir_emit_index_decode_call int 4 29 30 34 35 +store special_r 36 +load 37 special_r +iconst 38 0 +gte 39 37 38 +brif 39 L2525 L2526 label L2525 -load 38 special_r -load 39 explicit_generic_types -call 40 pith_list_release_handle void 1 39 -load 41 callee_node -call 42 pith_struct_release void 1 41 -load 43 callee +load 40 special_r +load 41 explicit_generic_types +call 42 pith_list_release_handle void 1 41 +load 43 callee_node call 44 pith_struct_release void 1 43 -load 45 arg_regs -call 46 pith_list_release_handle void 1 45 -load 47 ret_type -call 48 pith_cstring_release void 1 47 -ret 38 +load 45 callee +call 46 pith_struct_release void 1 45 +load 47 callee_n +call 48 pith_struct_release void 1 47 +load 49 loop_slot +call 50 pith_cstring_release void 1 49 +load 51 arg_regs +call 52 pith_list_release_handle void 1 51 +load 53 ret_type +call 54 pith_cstring_release void 1 53 +ret 40 label L2526 label L2524 -load 49 explicit_generic_types -load 50 callee_node -call 51 ir_emitter_core_ir_explicit_generic_concrete_types list_string 1 50 -call 52 pith_list_release_handle void 1 49 -store explicit_generic_types 51 +load 55 explicit_generic_types +load 56 callee_node +call 57 ir_emitter_core_ir_explicit_generic_concrete_types list_string 1 56 +call 58 pith_list_release_handle void 1 55 +store explicit_generic_types 57 jmp L2521 label L2523 label L2521 -load 53 node -field 54 53 16 list children -iconst 55 0 -call 56 pith_list_get_value_strict int 2 54 55 -load 57 callee_node -call 58 ir_emitter_core_ir_callee_is_function_expr bool 2 56 57 -brif 58 L2528 L2529 +load 59 node +field 60 59 16 list children +iconst 61 0 +call 62 pith_list_get_value_strict int 2 60 61 +load 63 callee_node +call 64 ir_emitter_core_ir_callee_is_function_expr bool 2 62 63 +brif 64 L2528 L2529 label L2528 -load 59 idx -load 60 node -load 61 node -field 62 61 16 list children -iconst 63 0 -call 64 pith_list_get_value_strict int 2 62 63 -call 65 ir_emitter_core_ir_emit_indirect_expr_call int 3 59 60 64 -load 66 explicit_generic_types -call 67 pith_list_release_handle void 1 66 -load 68 callee_node -call 69 pith_struct_release void 1 68 -load 70 callee -call 71 pith_struct_release void 1 70 -load 72 arg_regs +load 65 idx +load 66 node +load 67 node +field 68 67 16 list children +iconst 69 0 +call 70 pith_list_get_value_strict int 2 68 69 +call 71 ir_emitter_core_ir_emit_indirect_expr_call int 3 65 66 70 +load 72 explicit_generic_types call 73 pith_list_release_handle void 1 72 -load 74 ret_type -call 75 pith_cstring_release void 1 74 -ret 65 +load 74 callee_node +call 75 pith_struct_release void 1 74 +load 76 callee +call 77 pith_struct_release void 1 76 +load 78 callee_n +call 79 pith_struct_release void 1 78 +load 80 loop_slot +call 81 pith_cstring_release void 1 80 +load 82 arg_regs +call 83 pith_list_release_handle void 1 82 +load 84 ret_type +call 85 pith_cstring_release void 1 84 +ret 71 label L2529 label L2527 jmp L2518 label L2520 label L2518 -load 76 callee -strref 77 m46s822 -iconst 78 0 -iconst 80 2 -call 79 pith_struct_alloc struct:ResolvedCallee 1 80 -sstore 79 0 77 -sstore 79 1 78 -funcref 81 ir_emitter_core___dtor_ResolvedCallee -call 82 pith_struct_set_dtor void 2 79 81 -call 83 pith_struct_release void 1 76 -store callee 79 -load 84 node -field 85 84 16 list children -call 86 pith_list_len int 1 85 -iconst 87 0 -gt 88 86 87 -brif 88 L2531 L2532 +load 86 callee +strref 87 m46s822 +iconst 88 0 +iconst 90 2 +call 89 pith_struct_alloc struct:ResolvedCallee 1 90 +sstore 89 0 87 +sstore 89 1 88 +funcref 91 ir_emitter_core___dtor_ResolvedCallee +call 92 pith_struct_set_dtor void 2 89 91 +call 93 pith_struct_release void 1 86 +store callee 89 +load 94 node +field 95 94 16 list children +call 96 pith_list_len int 1 95 +iconst 97 0 +gt 98 96 97 +brif 98 L2531 L2532 label L2531 -load 89 callee -load 90 node -field 91 90 16 list children -iconst 92 0 -call 93 pith_list_get_value_strict int 2 91 92 -call 94 ir_emitter_core_ir_resolve_static_callee struct:ResolvedCallee 1 93 -call 95 pith_struct_release void 1 89 -store callee 94 -load 96 callee -field 97 96 0 string name -call 98 string_len int 1 97 -iconst 99 0 -eq 100 98 99 -brif 100 L2534 L2535 -label L2534 -load 101 callee -strref 102 m46s822 -iconst 103 0 -iconst 105 2 -call 104 pith_struct_alloc struct:ResolvedCallee 1 105 -sstore 104 0 102 -sstore 104 1 103 -funcref 106 ir_emitter_core___dtor_ResolvedCallee -call 107 pith_struct_set_dtor void 2 104 106 -call 108 pith_struct_release void 1 101 +load 99 callee +load 100 node +field 101 100 16 list children +iconst 102 0 +call 103 pith_list_get_value_strict int 2 101 102 +call 104 ir_emitter_core_ir_resolve_static_callee struct:ResolvedCallee 1 103 +call 105 pith_struct_release void 1 99 store callee 104 +load 106 callee +field 107 106 0 string name +call 108 string_len int 1 107 +iconst 109 0 +eq 110 108 109 +brif 110 L2534 L2535 +label L2534 +load 111 callee +strref 112 m46s822 +iconst 113 0 +iconst 115 2 +call 114 pith_struct_alloc struct:ResolvedCallee 1 115 +sstore 114 0 112 +sstore 114 1 113 +funcref 116 ir_emitter_core___dtor_ResolvedCallee +call 117 pith_struct_set_dtor void 2 114 116 +call 118 pith_struct_release void 1 111 +store callee 114 jmp L2533 label L2535 label L2533 -jmp L2530 -label L2532 -label L2530 -iconst 109 0 -store __and_109_2539 109 -load 110 callee -field 111 110 0 string name -strref 112 m46s1240 -call 113 pith_cstring_eq bool 2 111 112 -call 114 pith_cstring_release void 1 112 -store __and_109_2539 113 -brif 113 L2539 L2540 +load 119 callee_n +load 120 node +field 121 120 16 list children +iconst 122 0 +call 123 pith_list_get_value_strict int 2 121 122 +call 124 ast_get_node struct:Node 1 123 +call 125 pith_struct_release void 1 119 +store callee_n 124 +iconst 126 0 +store __and_126_2539 126 +load 127 callee_n +field 128 127 0 string kind +strref 129 m46s37 +call 130 pith_cstring_eq bool 2 128 129 +call 131 pith_cstring_release void 1 129 +store __and_126_2539 130 +brif 130 L2539 L2540 label L2539 -load 115 node -field 116 115 16 list children -call 117 pith_list_len int 1 116 -iconst 118 2 -gte 119 117 118 -store __and_109_2539 119 +load 132 callee +field 133 132 0 string name +call 134 ir_method_tables_ir_is_declared_callable bool 1 133 +iconst 136 1 +sub 135 136 134 +store __and_126_2539 135 label L2540 -load 120 __and_109_2539 -brif 120 L2537 L2538 +load 137 __and_126_2539 +brif 137 L2537 L2538 label L2537 -load 121 node -field 122 121 16 list children -iconst 123 1 -call 124 pith_list_get_value_strict int 2 122 123 -call 125 ir_call_helpers_ir_call_arg_expr_index int 1 124 -call 126 ir_emitter_core_ir_emit_byte_operand int 1 125 -store byte_r 126 -load 127 byte_r -iconst 128 0 -gte 129 127 128 -brif 129 L2542 L2543 +load 138 loop_slot +load 139 callee +field 140 139 0 string name +call 141 ir_emitter_core_ir_loop_var_slot string 1 140 +call 142 pith_cstring_release void 1 138 +store loop_slot 141 +load 143 loop_slot +call 144 string_len int 1 143 +iconst 145 0 +gt 146 144 145 +brif 146 L2542 L2543 label L2542 -load 130 byte_r -load 131 explicit_generic_types -call 132 pith_list_release_handle void 1 131 -load 133 callee_node -call 134 pith_struct_release void 1 133 -load 135 callee -call 136 pith_struct_release void 1 135 -load 137 arg_regs -call 138 pith_list_release_handle void 1 137 -load 139 ret_type -call 140 pith_cstring_release void 1 139 -ret 130 +load 147 callee +load 148 loop_slot +call 149 pith_cstring_retain void 1 148 +load 150 callee +field 151 150 8 bool imported +iconst 153 2 +call 152 pith_struct_alloc struct:ResolvedCallee 1 153 +sstore 152 0 148 +sstore 152 1 151 +funcref 154 ir_emitter_core___dtor_ResolvedCallee +call 155 pith_struct_set_dtor void 2 152 154 +call 156 pith_struct_release void 1 147 +store callee 152 +jmp L2541 label L2543 label L2541 jmp L2536 label L2538 label L2536 -load 141 idx -load 142 node -load 143 callee -field 144 143 0 string name -call 145 ir_emitter_core_ir_emit_higher_order_list_call int 3 141 142 144 -store higher_order_r 145 -load 146 higher_order_r -iconst 147 0 -gte 148 146 147 -brif 148 L2545 L2546 -label L2545 -load 149 higher_order_r -load 150 explicit_generic_types -call 151 pith_list_release_handle void 1 150 -load 152 callee_node -call 153 pith_struct_release void 1 152 -load 154 callee -call 155 pith_struct_release void 1 154 -load 156 arg_regs -call 157 pith_list_release_handle void 1 156 -load 158 ret_type -call 159 pith_cstring_release void 1 158 -ret 149 -label L2546 -label L2544 -load 160 idx -load 161 node -load 162 callee -field 163 162 0 string name -call 164 ir_emitter_core_ir_static_struct_init_call int 3 160 161 163 -store struct_r 164 -load 165 struct_r -iconst 166 0 +jmp L2530 +label L2532 +label L2530 +iconst 157 0 +store __and_157_2547 157 +load 158 callee +field 159 158 0 string name +strref 160 m46s1240 +call 161 pith_cstring_eq bool 2 159 160 +call 162 pith_cstring_release void 1 160 +store __and_157_2547 161 +brif 161 L2547 L2548 +label L2547 +load 163 node +field 164 163 16 list children +call 165 pith_list_len int 1 164 +iconst 166 2 gte 167 165 166 -brif 167 L2548 L2549 +store __and_157_2547 167 label L2548 -load 168 struct_r -load 169 explicit_generic_types -call 170 pith_list_release_handle void 1 169 -load 171 callee_node -call 172 pith_struct_release void 1 171 -load 173 callee -call 174 pith_struct_release void 1 173 -load 175 arg_regs -call 176 pith_list_release_handle void 1 175 -load 177 ret_type -call 178 pith_cstring_release void 1 177 -ret 168 +load 168 __and_157_2547 +brif 168 L2545 L2546 +label L2545 +load 169 node +field 170 169 16 list children +iconst 171 1 +call 172 pith_list_get_value_strict int 2 170 171 +call 173 ir_call_helpers_ir_call_arg_expr_index int 1 172 +call 174 ir_emitter_core_ir_emit_byte_operand int 1 173 +store byte_r 174 +load 175 byte_r +iconst 176 0 +gte 177 175 176 +brif 177 L2550 L2551 +label L2550 +load 178 byte_r +load 179 explicit_generic_types +call 180 pith_list_release_handle void 1 179 +load 181 callee_node +call 182 pith_struct_release void 1 181 +load 183 callee +call 184 pith_struct_release void 1 183 +load 185 callee_n +call 186 pith_struct_release void 1 185 +load 187 loop_slot +call 188 pith_cstring_release void 1 187 +load 189 arg_regs +call 190 pith_list_release_handle void 1 189 +load 191 ret_type +call 192 pith_cstring_release void 1 191 +ret 178 +label L2551 label L2549 -label L2547 -load 179 callee -load 180 idx -load 181 node -load 182 callee -load 183 explicit_generic_types -call 184 ir_emitter_core_ir_specialize_static_callee struct:ResolvedCallee 4 180 181 182 183 -call 185 pith_struct_release void 1 179 -store callee 184 -load 186 arg_regs -load 187 node -iconst 188 1 -call 189 ir_emitter_core_ir_collect_call_arg_regs list 2 187 188 -call 190 pith_list_release_handle void 1 186 -store arg_regs 189 -iconst 191 0 -store __and_191_2553 191 -load 192 callee -field 193 192 0 string name -strref 194 m46s323 -call 195 pith_cstring_eq bool 2 193 194 -call 196 pith_cstring_release void 1 194 -store __and_191_2553 195 -brif 195 L2553 L2554 -label L2553 -load 197 arg_regs -call 198 pith_list_len int 1 197 +jmp L2544 +label L2546 +label L2544 +load 193 idx +load 194 node +load 195 callee +field 196 195 0 string name +call 197 ir_emitter_core_ir_emit_higher_order_list_call int 3 193 194 196 +store higher_order_r 197 +load 198 higher_order_r iconst 199 0 -eq 200 198 199 -store __and_191_2553 200 +gte 200 198 199 +brif 200 L2553 L2554 +label L2553 +load 201 higher_order_r +load 202 explicit_generic_types +call 203 pith_list_release_handle void 1 202 +load 204 callee_node +call 205 pith_struct_release void 1 204 +load 206 callee +call 207 pith_struct_release void 1 206 +load 208 callee_n +call 209 pith_struct_release void 1 208 +load 210 loop_slot +call 211 pith_cstring_release void 1 210 +load 212 arg_regs +call 213 pith_list_release_handle void 1 212 +load 214 ret_type +call 215 pith_cstring_release void 1 214 +ret 201 label L2554 -load 201 __and_191_2553 -brif 201 L2551 L2552 -label L2551 -call 202 ir_builder_ir_reg int 0 -store zero_r 202 -strref 203 m46s832 -load 204 zero_r -call 205 int_to_string string 1 204 -concat 206 203 205 -call 207 pith_cstring_release void 1 203 -call 208 pith_cstring_release void 1 205 -strref 209 m46s831 -concat 210 206 209 -call 211 pith_cstring_release void 1 206 -call 212 pith_cstring_release void 1 209 -call 213 ir_builder_ir_emit void 1 210 -call 214 pith_cstring_release void 1 210 -load 215 arg_regs -load 216 zero_r -call 217 pith_list_push_value void 2 215 216 -jmp L2550 label L2552 -label L2550 -iconst 218 0 -store __and_218_2558 218 -iconst 219 0 -store __and_219_2558 219 -load 220 ir_emitter_core_ir_emit_tests -store __and_219_2558 220 -brif 220 L2558 L2559 -label L2558 -load 221 callee -field 222 221 0 string name -strref 223 m46s1239 -call 224 pith_cstring_eq bool 2 222 223 -call 225 pith_cstring_release void 1 223 -store __and_219_2558 224 -label L2559 -load 226 __and_219_2558 -store __and_218_2558 226 -brif 226 L2560 L2561 -label L2560 -load 227 arg_regs -call 228 pith_list_len int 1 227 -iconst 229 1 -gte 230 228 229 -store __and_218_2558 230 -label L2561 -load 231 __and_218_2558 -brif 231 L2556 L2557 +load 216 idx +load 217 node +load 218 callee +field 219 218 0 string name +call 220 ir_emitter_core_ir_static_struct_init_call int 3 216 217 219 +store struct_r 220 +load 221 struct_r +iconst 222 0 +gte 223 221 222 +brif 223 L2556 L2557 label L2556 -load 232 arg_regs -call 233 ir_emitter_core_ir_emit_test_assert int 1 232 -load 234 explicit_generic_types -call 235 pith_list_release_handle void 1 234 -load 236 callee_node -call 237 pith_struct_release void 1 236 -load 238 callee -call 239 pith_struct_release void 1 238 -load 240 arg_regs -call 241 pith_list_release_handle void 1 240 -load 242 ret_type -call 243 pith_cstring_release void 1 242 -ret 233 +load 224 struct_r +load 225 explicit_generic_types +call 226 pith_list_release_handle void 1 225 +load 227 callee_node +call 228 pith_struct_release void 1 227 +load 229 callee +call 230 pith_struct_release void 1 229 +load 231 callee_n +call 232 pith_struct_release void 1 231 +load 233 loop_slot +call 234 pith_cstring_release void 1 233 +load 235 arg_regs +call 236 pith_list_release_handle void 1 235 +load 237 ret_type +call 238 pith_cstring_release void 1 237 +ret 224 label L2557 label L2555 -iconst 244 0 -store __and_244_2565 244 -iconst 245 0 -store __and_245_2565 245 -load 246 ir_emitter_core_ir_emit_tests -store __and_245_2565 246 -brif 246 L2565 L2566 -label L2565 -load 247 callee -field 248 247 0 string name -strref 249 m46s387 -call 250 pith_cstring_eq bool 2 248 249 -call 251 pith_cstring_release void 1 249 -store __and_245_2565 250 +load 239 callee +load 240 idx +load 241 node +load 242 callee +load 243 explicit_generic_types +call 244 ir_emitter_core_ir_specialize_static_callee struct:ResolvedCallee 4 240 241 242 243 +call 245 pith_struct_release void 1 239 +store callee 244 +load 246 arg_regs +load 247 node +iconst 248 1 +call 249 ir_emitter_core_ir_collect_call_arg_regs list 2 247 248 +call 250 pith_list_release_handle void 1 246 +store arg_regs 249 +iconst 251 0 +store __and_251_2561 251 +load 252 callee +field 253 252 0 string name +strref 254 m46s323 +call 255 pith_cstring_eq bool 2 253 254 +call 256 pith_cstring_release void 1 254 +store __and_251_2561 255 +brif 255 L2561 L2562 +label L2561 +load 257 arg_regs +call 258 pith_list_len int 1 257 +iconst 259 0 +eq 260 258 259 +store __and_251_2561 260 +label L2562 +load 261 __and_251_2561 +brif 261 L2559 L2560 +label L2559 +call 262 ir_builder_ir_reg int 0 +store zero_r 262 +strref 263 m46s832 +load 264 zero_r +call 265 int_to_string string 1 264 +concat 266 263 265 +call 267 pith_cstring_release void 1 263 +call 268 pith_cstring_release void 1 265 +strref 269 m46s831 +concat 270 266 269 +call 271 pith_cstring_release void 1 266 +call 272 pith_cstring_release void 1 269 +call 273 ir_builder_ir_emit void 1 270 +call 274 pith_cstring_release void 1 270 +load 275 arg_regs +load 276 zero_r +call 277 pith_list_push_value void 2 275 276 +jmp L2558 +label L2560 +label L2558 +iconst 278 0 +store __and_278_2566 278 +iconst 279 0 +store __and_279_2566 279 +load 280 ir_emitter_core_ir_emit_tests +store __and_279_2566 280 +brif 280 L2566 L2567 label L2566 -load 252 __and_245_2565 -store __and_244_2565 252 -brif 252 L2567 L2568 +load 281 callee +field 282 281 0 string name +strref 283 m46s1239 +call 284 pith_cstring_eq bool 2 282 283 +call 285 pith_cstring_release void 1 283 +store __and_279_2566 284 label L2567 -load 253 arg_regs -call 254 pith_list_len int 1 253 -iconst 255 2 -gte 256 254 255 -store __and_244_2565 256 +load 286 __and_279_2566 +store __and_278_2566 286 +brif 286 L2568 L2569 label L2568 -load 257 __and_244_2565 -brif 257 L2563 L2564 -label L2563 -load 258 node -load 259 arg_regs -call 260 ir_emitter_core_ir_emit_test_assert_eq int 2 258 259 -load 261 explicit_generic_types -call 262 pith_list_release_handle void 1 261 -load 263 callee_node -call 264 pith_struct_release void 1 263 -load 265 callee -call 266 pith_struct_release void 1 265 -load 267 arg_regs -call 268 pith_list_release_handle void 1 267 -load 269 ret_type -call 270 pith_cstring_release void 1 269 -ret 260 -label L2564 -label L2562 -call 271 ir_builder_ir_reg int 0 -store r 271 -load 272 callee -load 273 idx -call 274 ir_emitter_core_ir_callee_uses_result_abi bool 2 272 273 -store uses_result_abi 274 -load 275 ret_type -load 276 idx -load 277 uses_result_abi -load 278 callee -field 279 278 0 string name -call 280 ir_emitter_core_ir_call_retkind_for_name string 3 276 277 279 -call 281 pith_cstring_release void 1 275 -store ret_type 280 -load 282 r -load 283 callee -field 284 283 0 string name -load 285 ret_type -load 286 arg_regs -call 287 pith_list_len int 1 286 -load 288 arg_regs -call 289 ir_call_helpers_ir_join_arg_regs string 1 288 -call 290 ir_call_emit_ir_emit_call_text void 5 282 284 285 287 289 -call 291 pith_cstring_release void 1 289 -load 292 node -load 293 ret_type -load 294 r -load 295 arg_regs -call 296 ir_emitter_core_ir_attach_generic_construction_dtor void 4 292 293 294 295 -load 297 node -call 298 ir_emitter_core_ir_is_generic_struct_construction_call bool 1 297 -iconst 300 1 -sub 299 300 298 -brif 299 L2570 L2571 -label L2570 -load 301 node -iconst 302 1 -load 303 arg_regs -call 304 ir_emitter_core_ir_release_owned_string_args void 3 301 302 303 -jmp L2569 -label L2571 +load 287 arg_regs +call 288 pith_list_len int 1 287 +iconst 289 1 +gte 290 288 289 +store __and_278_2566 290 label L2569 -iconst 305 0 -store __and_305_2575 305 -iconst 306 0 -store __and_306_2575 306 -load 307 uses_result_abi -store __and_306_2575 307 -brif 307 L2575 L2576 +load 291 __and_278_2566 +brif 291 L2564 L2565 +label L2564 +load 292 arg_regs +call 293 ir_emitter_core_ir_emit_test_assert int 1 292 +load 294 explicit_generic_types +call 295 pith_list_release_handle void 1 294 +load 296 callee_node +call 297 pith_struct_release void 1 296 +load 298 callee +call 299 pith_struct_release void 1 298 +load 300 callee_n +call 301 pith_struct_release void 1 300 +load 302 loop_slot +call 303 pith_cstring_release void 1 302 +load 304 arg_regs +call 305 pith_list_release_handle void 1 304 +load 306 ret_type +call 307 pith_cstring_release void 1 306 +ret 293 +label L2565 +label L2563 +iconst 308 0 +store __and_308_2573 308 +iconst 309 0 +store __and_309_2573 309 +load 310 ir_emitter_core_ir_emit_tests +store __and_309_2573 310 +brif 310 L2573 L2574 +label L2573 +load 311 callee +field 312 311 0 string name +strref 313 m46s387 +call 314 pith_cstring_eq bool 2 312 313 +call 315 pith_cstring_release void 1 313 +store __and_309_2573 314 +label L2574 +load 316 __and_309_2573 +store __and_308_2573 316 +brif 316 L2575 L2576 label L2575 -load 308 ret_type -strref 309 m46s23 -call 311 pith_cstring_eq bool 2 308 309 -iconst 312 1 -sub 310 312 311 -call 313 pith_cstring_release void 1 309 -store __and_306_2575 310 +load 317 arg_regs +call 318 pith_list_len int 1 317 +iconst 319 2 +gte 320 318 319 +store __and_308_2573 320 label L2576 -load 314 __and_306_2575 -store __and_305_2575 314 -brif 314 L2577 L2578 -label L2577 -load 315 idx -call 316 ir_type_helpers_ir_checked_result_kind string 1 315 -strref 317 m46s23 -call 318 pith_cstring_eq bool 2 316 317 -call 319 pith_cstring_release void 1 316 -call 320 pith_cstring_release void 1 317 -store __and_305_2575 318 -label L2578 -load 321 __and_305_2575 -brif 321 L2573 L2574 -label L2573 -load 322 r -load 323 ret_type -load 324 callee -field 325 324 0 string name -call 326 ir_emitter_core_ir_emit_wrapped_legacy_result int 3 322 323 325 -load 327 explicit_generic_types -call 328 pith_list_release_handle void 1 327 -load 329 callee_node +load 321 __and_308_2573 +brif 321 L2571 L2572 +label L2571 +load 322 node +load 323 arg_regs +call 324 ir_emitter_core_ir_emit_test_assert_eq int 2 322 323 +load 325 explicit_generic_types +call 326 pith_list_release_handle void 1 325 +load 327 callee_node +call 328 pith_struct_release void 1 327 +load 329 callee call 330 pith_struct_release void 1 329 -load 331 callee +load 331 callee_n call 332 pith_struct_release void 1 331 -load 333 arg_regs -call 334 pith_list_release_handle void 1 333 -load 335 ret_type -call 336 pith_cstring_release void 1 335 -ret 326 -label L2574 +load 333 loop_slot +call 334 pith_cstring_release void 1 333 +load 335 arg_regs +call 336 pith_list_release_handle void 1 335 +load 337 ret_type +call 338 pith_cstring_release void 1 337 +ret 324 label L2572 -load 337 r -load 338 explicit_generic_types -call 339 pith_list_release_handle void 1 338 -load 340 callee_node -call 341 pith_struct_release void 1 340 -load 342 callee -call 343 pith_struct_release void 1 342 -load 344 arg_regs -call 345 pith_list_release_handle void 1 344 -load 346 ret_type -call 347 pith_cstring_release void 1 346 -ret 337 -load 348 explicit_generic_types -call 349 pith_list_release_handle void 1 348 -load 350 callee_node -call 351 pith_struct_release void 1 350 -load 352 callee -call 353 pith_struct_release void 1 352 +label L2570 +call 339 ir_builder_ir_reg int 0 +store r 339 +load 340 callee +load 341 idx +call 342 ir_emitter_core_ir_callee_uses_result_abi bool 2 340 341 +store uses_result_abi 342 +load 343 ret_type +load 344 idx +load 345 uses_result_abi +load 346 callee +field 347 346 0 string name +call 348 ir_emitter_core_ir_call_retkind_for_name string 3 344 345 347 +call 349 pith_cstring_release void 1 343 +store ret_type 348 +load 350 r +load 351 callee +field 352 351 0 string name +load 353 ret_type load 354 arg_regs -call 355 pith_list_release_handle void 1 354 -load 356 ret_type -call 357 pith_cstring_release void 1 356 -iconst 358 0 -ret 358 +call 355 pith_list_len int 1 354 +load 356 arg_regs +call 357 ir_call_helpers_ir_join_arg_regs string 1 356 +call 358 ir_call_emit_ir_emit_call_text void 5 350 352 353 355 357 +call 359 pith_cstring_release void 1 357 +load 360 node +load 361 ret_type +load 362 r +load 363 arg_regs +call 364 ir_emitter_core_ir_attach_generic_construction_dtor void 4 360 361 362 363 +load 365 node +call 366 ir_emitter_core_ir_is_generic_struct_construction_call bool 1 365 +iconst 368 1 +sub 367 368 366 +brif 367 L2578 L2579 +label L2578 +load 369 node +iconst 370 1 +load 371 arg_regs +call 372 ir_emitter_core_ir_release_owned_string_args void 3 369 370 371 +jmp L2577 +label L2579 +label L2577 +iconst 373 0 +store __and_373_2583 373 +iconst 374 0 +store __and_374_2583 374 +load 375 uses_result_abi +store __and_374_2583 375 +brif 375 L2583 L2584 +label L2583 +load 376 ret_type +strref 377 m46s23 +call 379 pith_cstring_eq bool 2 376 377 +iconst 380 1 +sub 378 380 379 +call 381 pith_cstring_release void 1 377 +store __and_374_2583 378 +label L2584 +load 382 __and_374_2583 +store __and_373_2583 382 +brif 382 L2585 L2586 +label L2585 +load 383 idx +call 384 ir_type_helpers_ir_checked_result_kind string 1 383 +strref 385 m46s23 +call 386 pith_cstring_eq bool 2 384 385 +call 387 pith_cstring_release void 1 384 +call 388 pith_cstring_release void 1 385 +store __and_373_2583 386 +label L2586 +load 389 __and_373_2583 +brif 389 L2581 L2582 +label L2581 +load 390 r +load 391 ret_type +load 392 callee +field 393 392 0 string name +call 394 ir_emitter_core_ir_emit_wrapped_legacy_result int 3 390 391 393 +load 395 explicit_generic_types +call 396 pith_list_release_handle void 1 395 +load 397 callee_node +call 398 pith_struct_release void 1 397 +load 399 callee +call 400 pith_struct_release void 1 399 +load 401 callee_n +call 402 pith_struct_release void 1 401 +load 403 loop_slot +call 404 pith_cstring_release void 1 403 +load 405 arg_regs +call 406 pith_list_release_handle void 1 405 +load 407 ret_type +call 408 pith_cstring_release void 1 407 +ret 394 +label L2582 +label L2580 +load 409 r +load 410 explicit_generic_types +call 411 pith_list_release_handle void 1 410 +load 412 callee_node +call 413 pith_struct_release void 1 412 +load 414 callee +call 415 pith_struct_release void 1 414 +load 416 callee_n +call 417 pith_struct_release void 1 416 +load 418 loop_slot +call 419 pith_cstring_release void 1 418 +load 420 arg_regs +call 421 pith_list_release_handle void 1 420 +load 422 ret_type +call 423 pith_cstring_release void 1 422 +ret 409 +load 424 explicit_generic_types +call 425 pith_list_release_handle void 1 424 +load 426 callee_node +call 427 pith_struct_release void 1 426 +load 428 callee +call 429 pith_struct_release void 1 428 +load 430 callee_n +call 431 pith_struct_release void 1 430 +load 432 loop_slot +call 433 pith_cstring_release void 1 432 +load 434 arg_regs +call 435 pith_list_release_handle void 1 434 +load 436 ret_type +call 437 pith_cstring_release void 1 436 +iconst 438 0 +ret 438 endfunc func ir_emitter_core_ir_emit_map_entry_insert 4 void param map_r @@ -144789,7 +144892,7 @@ param has_int_keys param entry param val_target iconst 4 0 -store __or_4_2582 4 +store __or_4_2590 4 load 5 entry field 6 5 0 string kind strref 7 m46s62 @@ -144797,23 +144900,23 @@ call 9 pith_cstring_eq bool 2 6 7 iconst 10 1 sub 8 10 9 call 11 pith_cstring_release void 1 7 -store __or_4_2582 8 -brif 8 L2583 L2582 -label L2582 +store __or_4_2590 8 +brif 8 L2591 L2590 +label L2590 load 12 entry field 13 12 16 list children call 14 pith_list_len int 1 13 iconst 15 2 lt 16 14 15 -store __or_4_2582 16 -label L2583 -load 17 __or_4_2582 -brif 17 L2580 L2581 -label L2580 +store __or_4_2590 16 +label L2591 +load 17 __or_4_2590 +brif 17 L2588 L2589 +label L2588 iconst 18 0 ret 18 -label L2581 -label L2579 +label L2589 +label L2587 load 19 entry field 20 19 16 list children iconst 21 0 @@ -144828,8 +144931,8 @@ load 28 val_target call 29 ir_emitter_core_ir_emit_value_for_target int 2 27 28 store v_r 29 load 30 has_int_keys -brif 30 L2585 L2586 -label L2585 +brif 30 L2593 L2594 +label L2593 call 31 ir_builder_ir_reg int 0 strref 32 m46s694 strref 33 m46s828 @@ -144839,8 +144942,8 @@ load 36 v_r call 37 ir_call_emit_ir_emit_call3 void 6 31 32 33 34 35 36 call 38 pith_cstring_release void 1 32 call 39 pith_cstring_release void 1 33 -jmp L2584 -label L2586 +jmp L2592 +label L2594 call 40 ir_builder_ir_reg int 0 strref 41 m46s693 strref 42 m46s828 @@ -144850,7 +144953,7 @@ load 45 v_r call 46 ir_call_emit_ir_emit_call3 void 6 40 41 42 43 44 45 call 47 pith_cstring_release void 1 41 call 48 pith_cstring_release void 1 42 -label L2584 +label L2592 iconst 49 0 ret 49 endfunc @@ -144878,44 +144981,44 @@ store tid 12 load 13 tid iconst 14 0 gte 15 13 14 -brif 15 L2588 L2589 -label L2588 +brif 15 L2596 L2597 +label L2596 load 16 info load 17 tid call 18 types_get_type_info struct:TypeInfo 1 17 call 19 pith_struct_release void 1 16 store info 18 iconst 20 0 -store __and_20_2593 20 +store __and_20_2601 20 load 21 info field 22 21 0 string kind strref 23 m46s19 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 -store __and_20_2593 24 -brif 24 L2593 L2594 -label L2593 +store __and_20_2601 24 +brif 24 L2601 L2602 +label L2601 load 26 info field 27 26 80 int value_type iconst 28 0 gte 29 27 28 -store __and_20_2593 29 -label L2594 -load 30 __and_20_2593 -brif 30 L2591 L2592 -label L2591 +store __and_20_2601 29 +label L2602 +load 30 __and_20_2601 +brif 30 L2599 L2600 +label L2599 load 31 val_target load 32 info field 33 32 80 int value_type call 34 ir_type_helpers_ir_type_from_tid string 1 33 call 35 pith_cstring_release void 1 31 store val_target 34 -jmp L2590 -label L2592 -label L2590 -jmp L2587 -label L2589 -label L2587 +jmp L2598 +label L2600 +label L2598 +jmp L2595 +label L2597 +label L2595 iconst 36 0 store val_is_string 36 load 37 node @@ -144923,8 +145026,8 @@ field 38 37 16 list children call 39 pith_list_len int 1 38 iconst 40 0 gt 41 39 40 -brif 41 L2596 L2597 -label L2596 +brif 41 L2604 L2605 +label L2604 load 42 entry0 load 43 node field 44 43 16 list children @@ -144934,25 +145037,25 @@ call 47 ast_get_node struct:Node 1 46 call 48 pith_struct_release void 1 42 store entry0 47 iconst 49 0 -store __and_49_2601 49 +store __and_49_2609 49 load 50 entry0 field 51 50 0 string kind strref 52 m46s62 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 -store __and_49_2601 53 -brif 53 L2601 L2602 -label L2601 +store __and_49_2609 53 +brif 53 L2609 L2610 +label L2609 load 55 entry0 field 56 55 16 list children call 57 pith_list_len int 1 56 iconst 58 2 gte 59 57 58 -store __and_49_2601 59 -label L2602 -load 60 __and_49_2601 -brif 60 L2599 L2600 -label L2599 +store __and_49_2609 59 +label L2610 +load 60 __and_49_2609 +brif 60 L2607 L2608 +label L2607 load 61 entry0 field 62 61 16 list children iconst 63 1 @@ -144963,53 +145066,53 @@ call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 65 call 69 pith_cstring_release void 1 66 store val_is_string 67 -jmp L2598 -label L2600 -label L2598 -jmp L2595 -label L2597 -label L2595 +jmp L2606 +label L2608 +label L2606 +jmp L2603 +label L2605 +label L2603 load 70 has_int_keys -brif 70 L2604 L2605 -label L2604 +brif 70 L2612 L2613 +label L2612 load 71 val_is_string -brif 71 L2607 L2608 -label L2607 +brif 71 L2615 L2616 +label L2615 load 72 map_r strref 73 m46s742 strref 74 m46s670 call 75 ir_call_emit_ir_emit_call0 void 3 72 73 74 call 76 pith_cstring_release void 1 73 call 77 pith_cstring_release void 1 74 -jmp L2606 -label L2608 +jmp L2614 +label L2616 load 78 map_r strref 79 m46s746 strref 80 m46s670 call 81 ir_call_emit_ir_emit_call0 void 3 78 79 80 call 82 pith_cstring_release void 1 79 call 83 pith_cstring_release void 1 80 -label L2606 -jmp L2603 -label L2605 +label L2614 +jmp L2611 +label L2613 load 84 val_is_string -brif 84 L2609 L2610 -label L2609 +brif 84 L2617 L2618 +label L2617 load 85 map_r strref 86 m46s744 strref 87 m46s19 call 88 ir_call_emit_ir_emit_call0 void 3 85 86 87 call 89 pith_cstring_release void 1 86 call 90 pith_cstring_release void 1 87 -jmp L2603 -label L2610 +jmp L2611 +label L2618 load 91 map_r strref 92 m46s748 strref 93 m46s19 call 94 ir_call_emit_ir_emit_call0 void 3 91 92 93 call 95 pith_cstring_release void 1 92 call 96 pith_cstring_release void 1 93 -label L2603 +label L2611 load 97 node field 98 97 16 list children call 99 pith_auto_len int 1 98 @@ -145017,12 +145120,12 @@ iconst 100 0 store __for_idx_337 100 store __for_len_337 99 store __for_iter_337 98 -label L2611 +label L2619 load 101 __for_idx_337 load 102 __for_len_337 lt 103 101 102 -brif 103 L2612 L2614 -label L2612 +brif 103 L2620 L2622 +label L2620 load 104 __for_iter_337 load 105 __for_idx_337 call 106 pith_list_get_value unknown 2 104 105 @@ -145034,13 +145137,13 @@ call 110 ast_get_node struct:Node 1 109 load 111 val_target call 112 ir_emitter_core_ir_emit_map_entry_insert void 4 107 108 110 111 call 113 pith_struct_release void 1 110 -label L2613 +label L2621 load 114 __for_idx_337 iconst 115 1 add 116 114 115 store __for_idx_337 116 -jmp L2611 -label L2614 +jmp L2619 +label L2622 load 117 map_r load 118 val_target call 119 pith_cstring_release void 1 118 @@ -145080,31 +145183,31 @@ call 13 ir_type_helpers_ir_checked_type string 1 12 call 14 pith_cstring_release void 1 11 store checked 13 iconst 15 0 -store __or_15_2618 15 +store __or_15_2626 15 load 16 checked strref 17 m46s669 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 -store __or_15_2618 18 -brif 18 L2619 L2618 -label L2618 +store __or_15_2626 18 +brif 18 L2627 L2626 +label L2626 load 20 checked strref 21 m46s18 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -store __or_15_2618 22 -label L2619 -load 24 __or_15_2618 -brif 24 L2616 L2617 -label L2616 +store __or_15_2626 22 +label L2627 +load 24 __or_15_2626 +brif 24 L2624 L2625 +label L2624 load 25 literal_type load 26 checked call 27 pith_cstring_retain void 1 26 call 28 pith_cstring_release void 1 25 store literal_type 26 -jmp L2615 -label L2617 -label L2615 +jmp L2623 +label L2625 +label L2623 load 29 set_r load 30 literal_type call 31 ir_collection_helpers_ir_set_new_name string 1 30 @@ -145118,12 +145221,12 @@ iconst 38 0 store __for_idx_338 38 store __for_len_338 37 store __for_iter_338 36 -label L2620 +label L2628 load 39 __for_idx_338 load 40 __for_len_338 lt 41 39 40 -brif 41 L2621 L2623 -label L2621 +brif 41 L2629 L2631 +label L2629 load 42 __for_iter_338 load 43 __for_idx_338 call 44 pith_list_get_value unknown 2 42 43 @@ -145140,13 +145243,13 @@ load 52 elem_r call 53 ir_call_emit_ir_emit_call2 void 5 47 49 50 51 52 call 54 pith_cstring_release void 1 49 call 55 pith_cstring_release void 1 50 -label L2622 +label L2630 load 56 __for_idx_338 iconst 57 1 add 58 56 57 store __for_idx_338 58 -jmp L2620 -label L2623 +jmp L2628 +label L2631 load 59 set_r load 60 literal_type call 61 pith_cstring_release void 1 60 @@ -145163,57 +145266,57 @@ endfunc func ir_emitter_core_ir_is_list_store_name 1 bool param emit_name iconst 1 0 -store __or_1_2624 1 +store __or_1_2632 1 iconst 2 0 -store __or_2_2624 2 +store __or_2_2632 2 iconst 3 0 -store __or_3_2624 3 +store __or_3_2632 3 iconst 4 0 -store __or_4_2624 4 +store __or_4_2632 4 load 5 emit_name strref 6 m46s268 call 7 pith_cstring_eq bool 2 5 6 call 8 pith_cstring_release void 1 6 -store __or_4_2624 7 -brif 7 L2625 L2624 -label L2624 +store __or_4_2632 7 +brif 7 L2633 L2632 +label L2632 load 9 emit_name strref 10 m46s749 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 -store __or_4_2624 11 -label L2625 -load 13 __or_4_2624 -store __or_3_2624 13 -brif 13 L2627 L2626 -label L2626 +store __or_4_2632 11 +label L2633 +load 13 __or_4_2632 +store __or_3_2632 13 +brif 13 L2635 L2634 +label L2634 load 14 emit_name strref 15 m46s750 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 -store __or_3_2624 16 -label L2627 -load 18 __or_3_2624 -store __or_2_2624 18 -brif 18 L2629 L2628 -label L2628 +store __or_3_2632 16 +label L2635 +load 18 __or_3_2632 +store __or_2_2632 18 +brif 18 L2637 L2636 +label L2636 load 19 emit_name strref 20 m46s18 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 -store __or_2_2624 21 -label L2629 -load 23 __or_2_2624 -store __or_1_2624 23 -brif 23 L2631 L2630 -label L2630 +store __or_2_2632 21 +label L2637 +load 23 __or_2_2632 +store __or_1_2632 23 +brif 23 L2639 L2638 +label L2638 load 24 emit_name strref 25 m46s774 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 -store __or_1_2624 26 -label L2631 -load 28 __or_1_2624 +store __or_1_2632 26 +label L2639 +load 28 __or_1_2632 ret 28 iconst 29 0 ret 29 @@ -145223,80 +145326,80 @@ param emit_name param store_kind load 2 emit_name call 3 ir_emitter_core_ir_is_channel_send_name bool 1 2 -brif 3 L2633 L2634 -label L2633 +brif 3 L2641 L2642 +label L2641 load 4 store_kind call 5 string_len int 1 4 iconst 6 0 gt 7 5 6 ret 7 -label L2634 -label L2632 +label L2642 +label L2640 iconst 8 0 -store __or_8_2638 8 +store __or_8_2646 8 load 9 store_kind strref 10 m46s674 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 -store __or_8_2638 11 -brif 11 L2639 L2638 -label L2638 +store __or_8_2646 11 +brif 11 L2647 L2646 +label L2646 load 13 store_kind strref 14 m46s824 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 -store __or_8_2638 15 -label L2639 -load 17 __or_8_2638 -brif 17 L2636 L2637 -label L2636 +store __or_8_2646 15 +label L2647 +load 17 __or_8_2646 +brif 17 L2644 L2645 +label L2644 load 18 emit_name call 19 ir_emitter_core_ir_is_list_store_name bool 1 18 iconst 21 1 sub 20 21 19 ret 20 -label L2637 -label L2635 +label L2645 +label L2643 iconst 22 0 -store __or_22_2640 22 +store __or_22_2648 22 iconst 23 0 -store __or_23_2640 23 +store __or_23_2648 23 iconst 24 0 -store __or_24_2640 24 +store __or_24_2648 24 load 25 store_kind strref 26 m46s20 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 -store __or_24_2640 27 -brif 27 L2641 L2640 -label L2640 +store __or_24_2648 27 +brif 27 L2649 L2648 +label L2648 load 29 store_kind strref 30 m46s19 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 -store __or_24_2640 31 -label L2641 -load 33 __or_24_2640 -store __or_23_2640 33 -brif 33 L2643 L2642 -label L2642 +store __or_24_2648 31 +label L2649 +load 33 __or_24_2648 +store __or_23_2648 33 +brif 33 L2651 L2650 +label L2650 load 34 store_kind strref 35 m46s18 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 -store __or_23_2640 36 -label L2643 -load 38 __or_23_2640 -store __or_22_2640 38 -brif 38 L2645 L2644 -label L2644 +store __or_23_2648 36 +label L2651 +load 38 __or_23_2648 +store __or_22_2648 38 +brif 38 L2653 L2652 +label L2652 load 39 store_kind strref 40 m46s15 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 -store __or_22_2640 41 -label L2645 -load 43 __or_22_2640 +store __or_22_2648 41 +label L2653 +load 43 __or_22_2648 ret 43 iconst 44 0 ret 44 @@ -145304,77 +145407,77 @@ endfunc func ir_emitter_core_ir_container_store_takes_count 1 bool param store_kind iconst 1 0 -store __or_1_2649 1 +store __or_1_2657 1 load 2 store_kind strref 3 m46s675 call 4 pith_cstring_eq bool 2 2 3 call 5 pith_cstring_release void 1 3 -store __or_1_2649 4 -brif 4 L2650 L2649 -label L2649 +store __or_1_2657 4 +brif 4 L2658 L2657 +label L2657 load 6 store_kind strref 7 m46s674 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -store __or_1_2649 8 -label L2650 -load 10 __or_1_2649 -brif 10 L2647 L2648 -label L2647 +store __or_1_2657 8 +label L2658 +load 10 __or_1_2657 +brif 10 L2655 L2656 +label L2655 iconst 11 1 ret 11 -label L2648 -label L2646 +label L2656 +label L2654 load 12 store_kind strref 13 m46s15 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L2652 L2653 -label L2652 +brif 14 L2660 L2661 +label L2660 iconst 16 1 ret 16 -label L2653 -label L2651 +label L2661 +label L2659 iconst 17 0 -store __or_17_2654 17 +store __or_17_2662 17 iconst 18 0 -store __or_18_2654 18 +store __or_18_2662 18 iconst 19 0 -store __or_19_2654 19 +store __or_19_2662 19 load 20 store_kind strref 21 m46s20 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -store __or_19_2654 22 -brif 22 L2655 L2654 -label L2654 +store __or_19_2662 22 +brif 22 L2663 L2662 +label L2662 load 24 store_kind strref 25 m46s19 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 -store __or_19_2654 26 -label L2655 -load 28 __or_19_2654 -store __or_18_2654 28 -brif 28 L2657 L2656 -label L2656 +store __or_19_2662 26 +label L2663 +load 28 __or_19_2662 +store __or_18_2662 28 +brif 28 L2665 L2664 +label L2664 load 29 store_kind strref 30 m46s18 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 -store __or_18_2654 31 -label L2657 -load 33 __or_18_2654 -store __or_17_2654 33 -brif 33 L2659 L2658 -label L2658 +store __or_18_2662 31 +label L2665 +load 33 __or_18_2662 +store __or_17_2662 33 +brif 33 L2667 L2666 +label L2666 load 34 store_kind strref 35 m46s824 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 -store __or_17_2654 36 -label L2659 -load 38 __or_17_2654 +store __or_17_2662 36 +label L2667 +load 38 __or_17_2662 ret 38 iconst 39 0 ret 39 @@ -145382,93 +145485,93 @@ endfunc func ir_emitter_core_ir_owned_container_store_name 1 string param emit_name iconst 1 0 -store __or_1_2663 1 +store __or_1_2671 1 iconst 2 0 -store __or_2_2663 2 +store __or_2_2671 2 load 3 emit_name strref 4 m46s268 call 5 pith_cstring_eq bool 2 3 4 call 6 pith_cstring_release void 1 4 -store __or_2_2663 5 -brif 5 L2664 L2663 -label L2663 +store __or_2_2671 5 +brif 5 L2672 L2671 +label L2671 load 7 emit_name strref 8 m46s749 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -store __or_2_2663 9 -label L2664 -load 11 __or_2_2663 -store __or_1_2663 11 -brif 11 L2666 L2665 -label L2665 +store __or_2_2671 9 +label L2672 +load 11 __or_2_2671 +store __or_1_2671 11 +brif 11 L2674 L2673 +label L2673 load 12 emit_name strref 13 m46s750 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -store __or_1_2663 14 -label L2666 -load 16 __or_1_2663 -brif 16 L2661 L2662 -label L2661 +store __or_1_2671 14 +label L2674 +load 16 __or_1_2671 +brif 16 L2669 L2670 +label L2669 strref 17 m46s1151 ret 17 -label L2662 -label L2660 +label L2670 +label L2668 iconst 18 0 -store __or_18_2670 18 +store __or_18_2678 18 load 19 emit_name strref 20 m46s18 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 -store __or_18_2670 21 -brif 21 L2671 L2670 -label L2670 +store __or_18_2678 21 +brif 21 L2679 L2678 +label L2678 load 23 emit_name strref 24 m46s774 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 -store __or_18_2670 25 -label L2671 -load 27 __or_18_2670 -brif 27 L2668 L2669 -label L2668 +store __or_18_2678 25 +label L2679 +load 27 __or_18_2678 +brif 27 L2676 L2677 +label L2676 strref 28 m46s1238 ret 28 -label L2669 -label L2667 +label L2677 +label L2675 iconst 29 0 -store __or_29_2675 29 +store __or_29_2683 29 load 30 emit_name strref 31 m46s247 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 -store __or_29_2675 32 -brif 32 L2676 L2675 -label L2675 +store __or_29_2683 32 +brif 32 L2684 L2683 +label L2683 load 34 emit_name strref 35 m46s693 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 -store __or_29_2675 36 -label L2676 -load 38 __or_29_2675 -brif 38 L2673 L2674 -label L2673 +store __or_29_2683 36 +label L2684 +load 38 __or_29_2683 +brif 38 L2681 L2682 +label L2681 strref 39 m46s1237 ret 39 -label L2674 -label L2672 +label L2682 +label L2680 load 40 emit_name strref 41 m46s694 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 -brif 42 L2678 L2679 -label L2678 +brif 42 L2686 L2687 +label L2686 strref 44 m46s1236 ret 44 -label L2679 -label L2677 +label L2687 +label L2685 strref 45 m46s82 ret 45 iconst 46 0 @@ -145480,62 +145583,62 @@ load 1 elem_kind strref 2 m46s675 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 -brif 3 L2681 L2682 -label L2681 +brif 3 L2689 L2690 +label L2689 strref 5 m46s762 ret 5 -label L2682 -label L2680 +label L2690 +label L2688 load 6 elem_kind strref 7 m46s20 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -brif 8 L2684 L2685 -label L2684 +brif 8 L2692 L2693 +label L2692 strref 10 m46s760 ret 10 -label L2685 -label L2683 +label L2693 +label L2691 load 11 elem_kind strref 12 m46s19 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 -brif 13 L2687 L2688 -label L2687 +brif 13 L2695 L2696 +label L2695 strref 15 m46s758 ret 15 -label L2688 -label L2686 +label L2696 +label L2694 load 16 elem_kind strref 17 m46s15 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 -brif 18 L2690 L2691 -label L2690 +brif 18 L2698 L2699 +label L2698 strref 20 m46s756 ret 20 -label L2691 -label L2689 +label L2699 +label L2697 load 21 elem_kind strref 22 m46s674 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 -brif 23 L2693 L2694 -label L2693 +brif 23 L2701 L2702 +label L2701 strref 25 m46s754 ret 25 -label L2694 -label L2692 +label L2702 +label L2700 load 26 elem_kind strref 27 m46s824 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 -brif 28 L2696 L2697 -label L2696 +brif 28 L2704 L2705 +label L2704 strref 30 m46s752 ret 30 -label L2697 -label L2695 +label L2705 +label L2703 strref 31 m46s764 ret 31 iconst 32 0 @@ -145566,32 +145669,32 @@ store tid 13 load 14 tid iconst 15 0 gte 16 14 15 -brif 16 L2699 L2700 -label L2699 +brif 16 L2707 L2708 +label L2707 load 17 info load 18 tid call 19 types_get_type_info struct:TypeInfo 1 18 call 20 pith_struct_release void 1 17 store info 19 iconst 21 0 -store __and_21_2704 21 +store __and_21_2712 21 load 22 info field 23 22 0 string kind strref 24 m46s20 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 -store __and_21_2704 25 -brif 25 L2704 L2705 -label L2704 +store __and_21_2712 25 +brif 25 L2712 L2713 +label L2712 load 27 info field 28 27 64 int inner iconst 29 0 gte 30 28 29 -store __and_21_2704 30 -label L2705 -load 31 __and_21_2704 -brif 31 L2702 L2703 -label L2702 +store __and_21_2712 30 +label L2713 +load 31 __and_21_2712 +brif 31 L2710 L2711 +label L2710 load 32 elem_target load 33 info field 34 33 64 int inner @@ -145603,31 +145706,31 @@ load 38 elem_target call 39 ir_struct_registry_ir_rc_kind string 1 38 call 40 pith_cstring_release void 1 37 store elem_kind 39 -jmp L2701 -label L2703 -label L2701 -jmp L2698 -label L2700 -label L2698 +jmp L2709 +label L2711 +label L2709 +jmp L2706 +label L2708 +label L2706 iconst 41 0 -store __and_41_2709 41 +store __and_41_2717 41 load 42 elem_kind call 43 string_len int 1 42 iconst 44 0 eq 45 43 44 -store __and_41_2709 45 -brif 45 L2709 L2710 -label L2709 +store __and_41_2717 45 +brif 45 L2717 L2718 +label L2717 load 46 node field 47 46 16 list children call 48 pith_list_len int 1 47 iconst 49 0 gt 50 48 49 -store __and_41_2709 50 -label L2710 -load 51 __and_41_2709 -brif 51 L2707 L2708 -label L2707 +store __and_41_2717 50 +label L2718 +load 51 __and_41_2717 +brif 51 L2715 L2716 +label L2715 load 52 elem_kind load 53 node field 54 53 16 list children @@ -145638,9 +145741,9 @@ call 58 ir_struct_registry_ir_rc_kind string 1 57 call 59 pith_cstring_release void 1 57 call 60 pith_cstring_release void 1 52 store elem_kind 58 -jmp L2706 -label L2708 -label L2706 +jmp L2714 +label L2716 +label L2714 call 61 ir_builder_ir_reg int 0 store list_r 61 load 62 ctor @@ -145667,12 +145770,12 @@ iconst 80 0 store __for_idx_339 80 store __for_len_339 79 store __for_iter_339 78 -label L2711 +label L2719 load 81 __for_idx_339 load 82 __for_len_339 lt 83 81 82 -brif 83 L2712 L2714 -label L2712 +brif 83 L2720 L2722 +label L2720 load 84 __for_iter_339 load 85 __for_idx_339 call 86 pith_list_get_value unknown 2 84 85 @@ -145690,33 +145793,33 @@ call 95 ir_call_emit_ir_emit_call2 void 5 90 91 92 93 94 call 96 pith_cstring_release void 1 91 call 97 pith_cstring_release void 1 92 iconst 98 0 -store __and_98_2718 98 +store __and_98_2726 98 load 99 retaining -store __and_98_2718 99 -brif 99 L2718 L2719 -label L2718 +store __and_98_2726 99 +brif 99 L2726 L2727 +label L2726 load 100 __loopvar_339_child call 101 ir_emitter_core_ir_string_expr_is_borrowed bool 1 100 iconst 103 1 sub 102 103 101 -store __and_98_2718 102 -label L2719 -load 104 __and_98_2718 -brif 104 L2716 L2717 -label L2716 +store __and_98_2726 102 +label L2727 +load 104 __and_98_2726 +brif 104 L2724 L2725 +label L2724 load 105 elem_r load 106 elem_kind call 107 ir_ownership_ir_rc_release_reg void 2 105 106 -jmp L2715 -label L2717 -label L2715 -label L2713 +jmp L2723 +label L2725 +label L2723 +label L2721 load 108 __for_idx_339 iconst 109 1 add 110 108 109 store __for_idx_339 110 -jmp L2711 -label L2714 +jmp L2719 +label L2722 load 111 list_r load 112 elem_kind call 113 pith_cstring_release void 1 112 @@ -145750,12 +145853,12 @@ iconst 6 0 store __for_idx_340 6 store __for_len_340 5 store __for_iter_340 4 -label L2720 +label L2728 load 7 __for_idx_340 load 8 __for_len_340 lt 9 7 8 -brif 9 L2721 L2723 -label L2721 +brif 9 L2729 L2731 +label L2729 load 10 __for_iter_340 load 11 __for_idx_340 call 12 pith_list_get_value unknown 2 10 11 @@ -145766,8 +145869,8 @@ load 14 __loopvar_340_i load 15 elem_nodes call 16 pith_list_len int 1 15 lt 17 14 16 -brif 17 L2725 L2726 -label L2725 +brif 17 L2733 L2734 +label L2733 load 18 tuple_kind load 19 elem_nodes load 20 __loopvar_340_i @@ -145778,32 +145881,32 @@ call 24 pith_cstring_release void 1 22 call 25 pith_cstring_release void 1 18 store tuple_kind 23 iconst 26 0 -store __and_26_2730 26 +store __and_26_2738 26 load 27 tuple_kind call 28 string_len int 1 27 iconst 29 0 gt 30 28 29 -store __and_26_2730 30 -brif 30 L2730 L2731 -label L2730 +store __and_26_2738 30 +brif 30 L2738 L2739 +label L2738 load 31 elem_nodes load 32 __loopvar_340_i call 33 pith_list_get_value_strict int 2 31 32 call 34 ir_emitter_core_ir_string_expr_is_borrowed bool 1 33 -store __and_26_2730 34 -label L2731 -load 35 __and_26_2730 -brif 35 L2728 L2729 -label L2728 +store __and_26_2738 34 +label L2739 +load 35 __and_26_2738 +brif 35 L2736 L2737 +label L2736 load 36 __loopvar_340_elem_reg load 37 tuple_kind call 38 ir_ownership_ir_rc_retain_reg void 2 36 37 -jmp L2727 -label L2729 -label L2727 -jmp L2724 -label L2726 -label L2724 +jmp L2735 +label L2737 +label L2735 +jmp L2732 +label L2734 +label L2732 strref 39 m46s1038 load 40 tuple_r call 41 int_to_string string 1 40 @@ -145830,13 +145933,13 @@ call 61 pith_cstring_release void 1 55 call 62 pith_cstring_release void 1 59 call 63 ir_builder_ir_emit void 1 60 call 64 pith_cstring_release void 1 60 -label L2722 +label L2730 load 65 __for_idx_340 iconst 66 1 add 67 65 66 store __for_idx_340 67 -jmp L2720 -label L2723 +jmp L2728 +label L2731 load 68 tuple_kind call 69 pith_cstring_release void 1 68 iconst 70 0 @@ -145848,82 +145951,82 @@ load 1 kind strref 2 m46s675 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 -brif 3 L2733 L2734 -label L2733 +brif 3 L2741 L2742 +label L2741 strref 5 m46s903 ret 5 -label L2734 -label L2732 +label L2742 +label L2740 load 6 kind strref 7 m46s20 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -brif 8 L2736 L2737 -label L2736 +brif 8 L2744 L2745 +label L2744 strref 10 m46s1235 ret 10 -label L2737 -label L2735 +label L2745 +label L2743 load 11 kind strref 12 m46s19 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 -brif 13 L2739 L2740 -label L2739 +brif 13 L2747 L2748 +label L2747 strref 15 m46s1018 ret 15 -label L2740 -label L2738 +label L2748 +label L2746 load 16 kind strref 17 m46s18 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 -brif 18 L2742 L2743 -label L2742 +brif 18 L2750 L2751 +label L2750 strref 20 m46s1234 ret 20 -label L2743 -label L2741 +label L2751 +label L2749 load 21 kind strref 22 m46s674 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 -brif 23 L2745 L2746 -label L2745 +brif 23 L2753 L2754 +label L2753 strref 25 m46s1071 ret 25 -label L2746 -label L2744 +label L2754 +label L2752 load 26 kind strref 27 m46s15 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 -brif 28 L2748 L2749 -label L2748 +brif 28 L2756 L2757 +label L2756 strref 30 m46s1233 ret 30 -label L2749 -label L2747 +label L2757 +label L2755 load 31 kind strref 32 m46s824 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 -brif 33 L2751 L2752 -label L2751 +brif 33 L2759 L2760 +label L2759 strref 35 m46s1232 ret 35 -label L2752 -label L2750 +label L2760 +label L2758 load 36 kind strref 37 m46s23 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 -brif 38 L2754 L2755 -label L2754 +brif 38 L2762 L2763 +label L2762 strref 40 m46s1231 ret 40 -label L2755 -label L2753 +label L2763 +label L2761 strref 41 m46s177 ret 41 iconst 42 0 @@ -145935,82 +146038,82 @@ load 1 code strref 2 m46s903 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 -brif 3 L2757 L2758 -label L2757 +brif 3 L2765 L2766 +label L2765 strref 5 m46s675 ret 5 -label L2758 -label L2756 +label L2766 +label L2764 load 6 code strref 7 m46s1235 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -brif 8 L2760 L2761 -label L2760 +brif 8 L2768 L2769 +label L2768 strref 10 m46s20 ret 10 -label L2761 -label L2759 +label L2769 +label L2767 load 11 code strref 12 m46s1018 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 -brif 13 L2763 L2764 -label L2763 +brif 13 L2771 L2772 +label L2771 strref 15 m46s19 ret 15 -label L2764 -label L2762 +label L2772 +label L2770 load 16 code strref 17 m46s1234 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 -brif 18 L2766 L2767 -label L2766 +brif 18 L2774 L2775 +label L2774 strref 20 m46s18 ret 20 -label L2767 -label L2765 +label L2775 +label L2773 load 21 code strref 22 m46s1071 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 -brif 23 L2769 L2770 -label L2769 +brif 23 L2777 L2778 +label L2777 strref 25 m46s674 ret 25 -label L2770 -label L2768 +label L2778 +label L2776 load 26 code strref 27 m46s1233 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 -brif 28 L2772 L2773 -label L2772 +brif 28 L2780 L2781 +label L2780 strref 30 m46s15 ret 30 -label L2773 -label L2771 +label L2781 +label L2779 load 31 code strref 32 m46s1232 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 -brif 33 L2775 L2776 -label L2775 +brif 33 L2783 L2784 +label L2783 strref 35 m46s824 ret 35 -label L2776 -label L2774 +label L2784 +label L2782 load 36 code strref 37 m46s1231 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 -brif 38 L2778 L2779 -label L2778 +brif 38 L2786 L2787 +label L2786 strref 40 m46s23 ret 40 -label L2779 -label L2777 +label L2787 +label L2785 strref 41 m46s82 ret 41 iconst 42 0 @@ -146030,12 +146133,12 @@ iconst 7 0 store __for_idx_341 7 store __for_len_341 6 store __for_iter_341 5 -label L2780 +label L2788 load 8 __for_idx_341 load 9 __for_len_341 lt 10 8 9 -brif 10 L2781 L2783 -label L2781 +brif 10 L2789 L2791 +label L2789 load 11 __for_iter_341 load 12 __for_idx_341 call 13 pith_list_get_value unknown 2 11 12 @@ -146052,13 +146155,13 @@ concat 22 15 20 call 23 pith_cstring_release void 1 20 call 24 pith_cstring_release void 1 14 store sig 22 -label L2782 +label L2790 load 25 __for_idx_341 iconst 26 1 add 27 25 26 store __for_idx_341 27 -jmp L2780 -label L2783 +jmp L2788 +label L2791 load 28 sig ret 28 load 29 sig @@ -146089,13 +146192,13 @@ func ir_emitter_core_ir_tuple_sig_has_rc 1 bool param sig iconst 1 0 store i 1 -label L2784 +label L2792 load 2 i load 3 sig call 4 string_len int 1 3 lt 5 2 4 -brif 5 L2785 L2786 -label L2785 +brif 5 L2793 L2794 +label L2793 load 6 sig load 7 i load 8 i @@ -146108,18 +146211,18 @@ iconst 15 1 sub 13 15 14 call 16 pith_cstring_release void 1 11 call 17 pith_cstring_release void 1 12 -brif 13 L2788 L2789 -label L2788 +brif 13 L2796 L2797 +label L2796 iconst 18 1 ret 18 -label L2789 -label L2787 +label L2797 +label L2795 load 19 i iconst 20 1 add 21 19 20 store i 21 -jmp L2784 -label L2786 +jmp L2792 +label L2794 iconst 22 0 ret 22 iconst 23 0 @@ -146139,51 +146242,51 @@ load 7 sig call 8 ir_emitter_core_ir_tuple_sig_has_rc bool 1 7 iconst 10 1 sub 9 10 8 -brif 9 L2791 L2792 -label L2791 +brif 9 L2799 L2800 +label L2799 load 11 sig call 12 pith_cstring_release void 1 11 iconst 13 0 ret 13 -label L2792 -label L2790 +label L2800 +label L2798 load 14 ir_emitter_core_ir_tuple_dtor_sigs load 15 sig iconst 16 -1 -store __list_index_result_L2796 16 +store __list_index_result_L2804 16 iconst 17 0 -store __list_index_i_L2797 17 +store __list_index_i_L2805 17 call 18 pith_list_len int 1 14 -label L2798 -load 19 __list_index_i_L2797 +label L2806 +load 19 __list_index_i_L2805 lt 20 19 18 -brif 20 L2799 L2802 -label L2799 +brif 20 L2807 L2810 +label L2807 call 21 pith_list_get_value string 2 14 19 call 22 pith_cstring_eq bool 2 21 15 -brif 22 L2800 L2801 -label L2800 -store __list_index_result_L2796 19 -jmp L2802 -label L2801 +brif 22 L2808 L2809 +label L2808 +store __list_index_result_L2804 19 +jmp L2810 +label L2809 iconst 23 1 add 24 19 23 -store __list_index_i_L2797 24 -jmp L2798 -label L2802 -load 25 __list_index_result_L2796 +store __list_index_i_L2805 24 +jmp L2806 +label L2810 +load 25 __list_index_result_L2804 iconst 26 0 gte 27 25 26 iconst 29 1 sub 28 29 27 -brif 28 L2794 L2795 -label L2794 +brif 28 L2802 L2803 +label L2802 load 30 ir_emitter_core_ir_tuple_dtor_sigs load 31 sig call 32 pith_list_push_value void 2 30 31 -jmp L2793 -label L2795 -label L2793 +jmp L2801 +label L2803 +label L2801 call 33 ir_builder_ir_reg int 0 store fr 33 strref 34 m46s902 @@ -146254,12 +146357,12 @@ iconst 13 0 store __for_idx_342 13 store __for_len_342 12 store __for_iter_342 11 -label L2803 +label L2811 load 14 __for_idx_342 load 15 __for_len_342 lt 16 14 15 -brif 16 L2804 L2806 -label L2804 +brif 16 L2812 L2814 +label L2812 load 17 __for_iter_342 load 18 __for_idx_342 call 19 pith_list_get_value unknown 2 17 18 @@ -146274,28 +146377,28 @@ field 25 24 0 string kind strref 26 m46s56 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 -brif 27 L2808 L2809 -label L2808 +brif 27 L2816 L2817 +label L2816 load 29 elem_regs call 30 ir_optionals_ir_emit_optional_none_value int 0 call 31 pith_list_push_value void 2 29 30 -jmp L2807 -label L2809 +jmp L2815 +label L2817 load 32 elem_regs load 33 __loopvar_342_child call 34 ir_emitter_core_ir_expr int 1 33 call 35 pith_list_push_value void 2 32 34 -label L2807 +label L2815 load 36 elem_nodes load 37 __loopvar_342_child call 38 pith_list_push_value void 2 36 37 -label L2805 +label L2813 load 39 __for_idx_342 iconst 40 1 add 41 39 40 store __for_idx_342 41 -jmp L2803 -label L2806 +jmp L2811 +label L2814 call 42 ir_builder_ir_reg int 0 store r 42 call 43 ir_builder_ir_reg int 0 @@ -146374,8 +146477,8 @@ store max_count 2 load 3 ir_struct_registry_ir_enum_variant_lists load 4 enum_name call 5 contains_key bool 2 3 4 -brif 5 L2811 L2812 -label L2811 +brif 5 L2819 L2820 +label L2819 load 6 ir_struct_registry_ir_enum_variant_lists load 7 enum_name call 8 map_get_strict string 2 6 7 @@ -146387,12 +146490,12 @@ iconst 13 0 store __for_idx_343 13 store __for_len_343 12 store __for_iter_343 10 -label L2813 +label L2821 load 14 __for_idx_343 load 15 __for_len_343 lt 16 14 15 -brif 16 L2814 L2816 -label L2814 +brif 16 L2822 L2824 +label L2822 load 17 __for_iter_343 load 18 __for_idx_343 call 19 pith_list_get_value_unchecked string 2 17 18 @@ -146410,8 +146513,8 @@ store vkey 26 load 29 ir_struct_registry_ir_enum_payload_kinds load 30 vkey call 31 contains_key bool 2 29 30 -brif 31 L2818 L2819 -label L2818 +brif 31 L2826 L2827 +label L2826 load 32 ir_struct_registry_ir_enum_payload_kinds load 33 vkey call 34 map_get_strict string 2 32 33 @@ -146424,28 +146527,28 @@ store count 38 load 40 count load 41 max_count gt 42 40 41 -brif 42 L2821 L2822 -label L2821 +brif 42 L2829 L2830 +label L2829 load 43 count store max_count 43 -jmp L2820 -label L2822 -label L2820 -jmp L2817 -label L2819 -label L2817 -label L2815 +jmp L2828 +label L2830 +label L2828 +jmp L2825 +label L2827 +label L2825 +label L2823 load 44 __for_idx_343 iconst 45 1 add 46 44 45 store __for_idx_343 46 -jmp L2813 -label L2816 +jmp L2821 +label L2824 load 47 __for_iter_343 call 48 pith_list_release_handle void 1 47 -jmp L2810 -label L2812 -label L2810 +jmp L2818 +label L2820 +label L2818 load 49 max_count load 50 vkey call 51 pith_cstring_release void 1 50 @@ -146465,13 +146568,13 @@ store slots 4 load 5 payload_count load 6 slots gt 7 5 6 -brif 7 L2824 L2825 -label L2824 +brif 7 L2832 L2833 +label L2832 load 8 payload_count store slots 8 -jmp L2823 -label L2825 -label L2823 +jmp L2831 +label L2833 +label L2831 call 9 ir_builder_ir_reg int 0 store count_r 9 strref 10 m46s832 @@ -146564,8 +146667,8 @@ store kinds 6 load 8 ir_struct_registry_ir_enum_payload_kinds load 9 variant_key call 10 contains_key bool 2 8 9 -brif 10 L2827 L2828 -label L2827 +brif 10 L2835 L2836 +label L2835 load 11 kinds load 12 ir_struct_registry_ir_enum_payload_kinds load 13 variant_key @@ -146575,9 +146678,9 @@ call 16 pith_string_split_to_list list_string 2 14 15 call 17 pith_cstring_release void 1 15 call 18 pith_list_release_handle void 1 11 store kinds 16 -jmp L2826 -label L2828 -label L2826 +jmp L2834 +label L2836 +label L2834 load 19 enum_name load 20 variant_key load 21 kinds @@ -146586,13 +146689,13 @@ call 23 ir_emitter_core_ir_emit_variant_alloc int 3 19 20 22 store r 23 iconst 24 0 store i 24 -label L2829 +label L2837 load 25 i load 26 kinds call 27 pith_list_len int 1 26 lt 28 25 27 -brif 28 L2830 L2831 -label L2830 +brif 28 L2838 L2839 +label L2838 load 29 node load 30 i call 31 ir_emitter_core_ir_method_call_arg_expr int 2 29 30 @@ -146600,8 +146703,8 @@ store arg_idx 31 load 32 arg_idx iconst 33 0 gte 34 32 33 -brif 34 L2833 L2834 -label L2833 +brif 34 L2841 L2842 +label L2841 load 35 arg_idx call 36 ir_emitter_core_ir_expr int 1 35 store arg_r 36 @@ -146613,27 +146716,27 @@ call 41 ir_struct_registry_ir_rc_kind string 1 40 call 42 pith_cstring_release void 1 37 store payload_kind 41 iconst 43 0 -store __and_43_2838 43 +store __and_43_2846 43 load 44 payload_kind call 45 string_len int 1 44 iconst 46 0 gt 47 45 46 -store __and_43_2838 47 -brif 47 L2838 L2839 -label L2838 +store __and_43_2846 47 +brif 47 L2846 L2847 +label L2846 load 48 arg_idx call 49 ir_emitter_core_ir_string_expr_is_borrowed bool 1 48 -store __and_43_2838 49 -label L2839 -load 50 __and_43_2838 -brif 50 L2836 L2837 -label L2836 +store __and_43_2846 49 +label L2847 +load 50 __and_43_2846 +brif 50 L2844 L2845 +label L2844 load 51 arg_r load 52 payload_kind call 53 ir_ownership_ir_rc_retain_reg void 2 51 52 -jmp L2835 -label L2837 -label L2835 +jmp L2843 +label L2845 +label L2843 strref 54 m46s1038 load 55 r call 56 int_to_string string 1 55 @@ -146662,15 +146765,15 @@ call 78 pith_cstring_release void 1 72 call 79 pith_cstring_release void 1 76 call 80 ir_builder_ir_emit void 1 77 call 81 pith_cstring_release void 1 77 -jmp L2832 -label L2834 -label L2832 +jmp L2840 +label L2842 +label L2840 load 82 i iconst 83 1 add 84 82 83 store i 84 -jmp L2829 -label L2831 +jmp L2837 +label L2839 load 85 r load 86 kinds call 87 pith_list_release_handle void 1 86 @@ -146708,8 +146811,8 @@ field 13 12 16 list children call 14 pith_list_len int 1 13 iconst 15 0 eq 16 14 15 -brif 16 L2841 L2842 -label L2841 +brif 16 L2849 L2850 +label L2849 call 17 ir_builder_ir_reg int 0 store r 17 strref 18 m46s832 @@ -146736,8 +146839,8 @@ call 38 pith_cstring_release void 1 37 load 39 weak_struct call 40 pith_cstring_release void 1 39 ret 30 -label L2842 -label L2840 +label L2850 +label L2848 load 41 recv_node load 42 node field 43 42 16 list children @@ -146751,8 +146854,8 @@ field 49 48 0 string kind strref 50 m46s37 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 50 -brif 51 L2844 L2845 -label L2844 +brif 51 L2852 L2853 +label L2852 load 53 lookup_key load 54 recv_node field 55 54 8 string value @@ -146767,27 +146870,27 @@ store lookup_key 60 load 63 ir_struct_registry_ir_struct_field_index_lookup load 64 lookup_key call 65 contains_key bool 2 63 64 -brif 65 L2847 L2848 -label L2847 +brif 65 L2855 L2856 +label L2855 load 66 ir_struct_registry_ir_struct_field_lookup load 67 lookup_key call 68 contains_key bool 2 66 67 -brif 68 L2850 L2851 -label L2850 +brif 68 L2858 L2859 +label L2858 load 69 ir_struct_registry_ir_struct_field_lookup load 70 lookup_key call 71 map_get_strict string 2 69 70 load 72 recv_node field 73 72 8 string value call 74 pith_cstring_eq bool 2 71 73 -brif 74 L2853 L2854 -label L2853 +brif 74 L2861 L2862 +label L2861 load 75 ir_struct_registry_ir_boxed_enums load 76 recv_node field 77 76 8 string value call 78 contains_key bool 2 75 77 -brif 78 L2856 L2857 -label L2856 +brif 78 L2864 L2865 +label L2864 load 79 recv_node field 80 79 8 string value load 81 lookup_key @@ -146804,8 +146907,8 @@ call 91 pith_cstring_release void 1 90 load 92 weak_struct call 93 pith_cstring_release void 1 92 ret 83 -label L2857 -label L2855 +label L2865 +label L2863 call 94 ir_builder_ir_reg int 0 store r 94 strref 95 m46s832 @@ -146837,17 +146940,17 @@ call 120 pith_cstring_release void 1 119 load 121 weak_struct call 122 pith_cstring_release void 1 121 ret 112 +label L2862 +label L2860 +jmp L2857 +label L2859 +label L2857 +jmp L2854 +label L2856 label L2854 -label L2852 -jmp L2849 +jmp L2851 +label L2853 label L2851 -label L2849 -jmp L2846 -label L2848 -label L2846 -jmp L2843 -label L2845 -label L2843 load 123 node field 124 123 16 list children iconst 125 0 @@ -146858,14 +146961,14 @@ store obj_r 127 load 128 obj_r iconst 129 0 lt 130 128 129 -brif 130 L2859 L2860 -label L2859 +brif 130 L2867 L2868 +label L2867 load 131 recv_idx call 132 ir_emitter_core_ir_expr int 1 131 store obj_r 132 -jmp L2858 -label L2860 -label L2858 +jmp L2866 +label L2868 +label L2866 call 133 ir_builder_ir_reg int 0 store r 133 load 134 r @@ -146873,8 +146976,8 @@ load 135 obj_r load 136 recv_idx load 137 fname call 138 ir_field_helpers_ir_emit_tuple_field_access bool 4 134 135 136 137 -brif 138 L2862 L2863 -label L2862 +brif 138 L2870 L2871 +label L2870 load 139 r load 140 fname call 141 pith_cstring_release void 1 140 @@ -146887,8 +146990,8 @@ call 147 pith_cstring_release void 1 146 load 148 weak_struct call 149 pith_cstring_release void 1 148 ret 139 -label L2863 -label L2861 +label L2871 +label L2869 load 150 lk load 151 recv_idx load 152 fname @@ -146900,8 +147003,8 @@ load 156 lk call 157 contains_key bool 2 155 156 iconst 159 1 sub 158 159 157 -brif 158 L2865 L2866 -label L2865 +brif 158 L2873 L2874 +label L2873 load 160 obj_r load 161 recv_idx load 162 fname @@ -146910,8 +147013,8 @@ store checked_r 163 load 164 checked_r iconst 165 0 gte 166 164 165 -brif 166 L2868 L2869 -label L2868 +brif 166 L2876 L2877 +label L2876 load 167 checked_r load 168 fname call 169 pith_cstring_release void 1 168 @@ -146924,11 +147027,11 @@ call 175 pith_cstring_release void 1 174 load 176 weak_struct call 177 pith_cstring_release void 1 176 ret 167 -label L2869 -label L2867 -jmp L2864 -label L2866 -label L2864 +label L2877 +label L2875 +jmp L2872 +label L2874 +label L2872 load 178 r load 179 obj_r load 180 lk @@ -146945,8 +147048,8 @@ call 190 string_len int 1 189 iconst 191 1 add 192 190 191 gt 193 188 192 -brif 193 L2871 L2872 -label L2871 +brif 193 L2879 L2880 +label L2879 load 194 weak_struct load 195 lk iconst 196 0 @@ -146963,8 +147066,8 @@ store weak_struct 204 load 206 weak_struct load 207 fname call 208 ir_emitter_core_ir_struct_field_is_weak bool 2 206 207 -brif 208 L2874 L2875 -label L2874 +brif 208 L2882 L2883 +label L2882 load 209 r call 210 ir_optionals_ir_emit_weak_read int 1 209 load 211 fname @@ -146978,11 +147081,11 @@ call 218 pith_cstring_release void 1 217 load 219 weak_struct call 220 pith_cstring_release void 1 219 ret 210 -label L2875 -label L2873 -jmp L2870 -label L2872 -label L2870 +label L2883 +label L2881 +jmp L2878 +label L2880 +label L2878 load 221 r load 222 fname call 223 pith_cstring_release void 1 222 @@ -147155,8 +147258,8 @@ load 17 legacy_kind strref 18 m46s672 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -brif 19 L2877 L2878 -label L2877 +brif 19 L2885 L2886 +label L2885 strref 21 m46s1044 load 22 zero_r call 23 int_to_string string 1 22 @@ -147169,8 +147272,8 @@ call 29 pith_cstring_release void 1 24 call 30 pith_cstring_release void 1 27 call 31 ir_builder_ir_emit void 1 28 call 32 pith_cstring_release void 1 28 -jmp L2876 -label L2878 +jmp L2884 +label L2886 strref 33 m46s832 load 34 zero_r call 35 int_to_string string 1 34 @@ -147183,7 +147286,7 @@ call 41 pith_cstring_release void 1 36 call 42 pith_cstring_release void 1 39 call 43 ir_builder_ir_emit void 1 40 call 44 pith_cstring_release void 1 40 -label L2876 +label L2884 call 45 ir_builder_ir_reg int 0 store cond_r 45 strref 46 m46s1035 @@ -147251,30 +147354,30 @@ call 104 ir_call_emit_ir_emit_label void 1 103 load 105 raw_r store ok_r 105 iconst 106 0 -store __or_106_2882 106 +store __or_106_2890 106 load 107 legacy_kind strref 108 m46s806 call 109 pith_cstring_eq bool 2 107 108 call 110 pith_cstring_release void 1 108 -store __or_106_2882 109 -brif 109 L2883 L2882 -label L2882 +store __or_106_2890 109 +brif 109 L2891 L2890 +label L2890 load 111 legacy_kind strref 112 m46s805 call 113 pith_cstring_eq bool 2 111 112 call 114 pith_cstring_release void 1 112 -store __or_106_2882 113 -label L2883 -load 115 __or_106_2882 -brif 115 L2880 L2881 -label L2880 +store __or_106_2890 113 +label L2891 +load 115 __or_106_2890 +brif 115 L2888 L2889 +label L2888 load 116 raw_r load 117 legacy_kind call 118 ir_result_abi_ir_decode_result_value int 2 116 117 store ok_r 118 -jmp L2879 -label L2881 -label L2879 +jmp L2887 +label L2889 +label L2887 load 119 ok_r call 120 ir_emitter_core_ir_emit_ok_result_tuple int 1 119 store ok_tuple 120 @@ -147374,8 +147477,8 @@ store obj_tid 7 load 8 obj_tid iconst 9 0 gte 10 8 9 -brif 10 L2885 L2886 -label L2885 +brif 10 L2893 L2894 +label L2893 load 11 obj_info load 12 obj_tid call 13 types_get_type_info struct:TypeInfo 1 12 @@ -147386,14 +147489,14 @@ field 16 15 0 string kind strref 17 m46s22 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 -brif 18 L2888 L2889 -label L2888 +brif 18 L2896 L2897 +label L2896 load 20 fname strref 21 m46s182 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L2891 L2892 -label L2891 +brif 22 L2899 L2900 +label L2899 load 24 obj_r load 25 obj_tid strref 26 m46s182 @@ -147402,14 +147505,14 @@ call 28 pith_cstring_release void 1 26 load 29 obj_info call 30 pith_struct_release void 1 29 ret 27 -label L2892 -label L2890 +label L2900 +label L2898 load 31 fname strref 32 m46s181 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 -brif 33 L2894 L2895 -label L2894 +brif 33 L2902 L2903 +label L2902 load 35 obj_r load 36 obj_tid strref 37 m46s181 @@ -147418,40 +147521,40 @@ call 39 pith_cstring_release void 1 37 load 40 obj_info call 41 pith_struct_release void 1 40 ret 38 -label L2895 -label L2893 +label L2903 +label L2901 iconst 42 0 -store __or_42_2899 42 +store __or_42_2907 42 load 43 fname strref 44 m46s184 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 -store __or_42_2899 45 -brif 45 L2900 L2899 -label L2899 +store __or_42_2907 45 +brif 45 L2908 L2907 +label L2907 load 47 fname strref 48 m46s183 call 49 pith_cstring_eq bool 2 47 48 call 50 pith_cstring_release void 1 48 -store __or_42_2899 49 -label L2900 -load 51 __or_42_2899 -brif 51 L2897 L2898 -label L2897 +store __or_42_2907 49 +label L2908 +load 51 __or_42_2907 +brif 51 L2905 L2906 +label L2905 load 52 obj_r load 53 fname call 54 ir_result_abi_ir_emit_result_flag_field int 2 52 53 load 55 obj_info call 56 pith_struct_release void 1 55 ret 54 -label L2898 -label L2896 -jmp L2887 -label L2889 -label L2887 -jmp L2884 -label L2886 -label L2884 +label L2906 +label L2904 +jmp L2895 +label L2897 +label L2895 +jmp L2892 +label L2894 +label L2892 iconst 57 0 iconst 58 1 sub 59 57 58 @@ -147477,16 +147580,16 @@ load 7 node field 8 7 16 list children call 9 pith_list_len int 1 8 gte 10 6 9 -brif 10 L2902 L2903 -label L2902 +brif 10 L2910 L2911 +label L2910 iconst 11 0 iconst 12 1 sub 13 11 12 load 14 cn call 15 pith_struct_release void 1 14 ret 13 -label L2903 -label L2901 +label L2911 +label L2909 load 16 node field 17 16 16 list children load 18 actual_index @@ -147498,25 +147601,25 @@ call 22 ast_get_node struct:Node 1 21 call 23 pith_struct_release void 1 20 store cn 22 iconst 24 0 -store __and_24_2907 24 +store __and_24_2915 24 load 25 cn field 26 25 0 string kind strref 27 m46s42 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 -store __and_24_2907 28 -brif 28 L2907 L2908 -label L2907 +store __and_24_2915 28 +brif 28 L2915 L2916 +label L2915 load 30 cn field 31 30 16 list children call 32 pith_list_len int 1 31 iconst 33 0 gt 34 32 33 -store __and_24_2907 34 -label L2908 -load 35 __and_24_2907 -brif 35 L2905 L2906 -label L2905 +store __and_24_2915 34 +label L2916 +load 35 __and_24_2915 +brif 35 L2913 L2914 +label L2913 load 36 cn field 37 36 16 list children iconst 38 0 @@ -147524,8 +147627,8 @@ call 39 pith_list_get_value_strict int 2 37 38 load 40 cn call 41 pith_struct_release void 1 40 ret 39 -label L2906 -label L2904 +label L2914 +label L2912 load 42 child load 43 cn call 44 pith_struct_release void 1 43 @@ -147545,25 +147648,25 @@ call 4 ast_get_node struct:Node 1 3 call 5 pith_struct_release void 1 2 store node 4 iconst 6 0 -store __and_6_2912 6 +store __and_6_2920 6 load 7 node field 8 7 0 string kind strref 9 m46s512 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 -store __and_6_2912 10 -brif 10 L2912 L2913 -label L2912 +store __and_6_2920 10 +brif 10 L2920 L2921 +label L2920 load 12 node field 13 12 16 list children call 14 pith_list_len int 1 13 iconst 15 0 gt 16 14 15 -store __and_6_2912 16 -label L2913 -load 17 __and_6_2912 -brif 17 L2910 L2911 -label L2910 +store __and_6_2920 16 +label L2921 +load 17 __and_6_2920 +brif 17 L2918 L2919 +label L2918 load 18 node field 19 18 16 list children iconst 20 0 @@ -147572,86 +147675,86 @@ call 22 ir_emitter_core_ir_extraction_operand_class string 1 21 load 23 node call 24 pith_struct_release void 1 23 ret 22 -label L2911 -label L2909 +label L2919 +label L2917 iconst 25 0 -store __or_25_2917 25 +store __or_25_2925 25 iconst 26 0 -store __or_26_2917 26 +store __or_26_2925 26 load 27 node field 28 27 0 string kind strref 29 m46s44 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -store __or_26_2917 30 -brif 30 L2918 L2917 -label L2917 +store __or_26_2925 30 +brif 30 L2926 L2925 +label L2925 load 32 node field 33 32 0 string kind strref 34 m46s129 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 -store __or_26_2917 35 -label L2918 -load 37 __or_26_2917 -store __or_25_2917 37 -brif 37 L2920 L2919 -label L2919 +store __or_26_2925 35 +label L2926 +load 37 __or_26_2925 +store __or_25_2925 37 +brif 37 L2928 L2927 +label L2927 load 38 node field 39 38 0 string kind strref 40 m46s498 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 -store __or_25_2917 41 -label L2920 -load 43 __or_25_2917 -brif 43 L2915 L2916 -label L2915 +store __or_25_2925 41 +label L2928 +load 43 __or_25_2925 +brif 43 L2923 L2924 +label L2923 strref 44 m46s1227 load 45 node call 46 pith_struct_release void 1 45 ret 44 -label L2916 -label L2914 +label L2924 +label L2922 iconst 47 0 -store __or_47_2924 47 +store __or_47_2932 47 iconst 48 0 -store __or_48_2924 48 +store __or_48_2932 48 load 49 node field 50 49 0 string kind strref 51 m46s37 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 -store __or_48_2924 52 -brif 52 L2925 L2924 -label L2924 +store __or_48_2932 52 +brif 52 L2933 L2932 +label L2932 load 54 node field 55 54 0 string kind strref 56 m46s36 call 57 pith_cstring_eq bool 2 55 56 call 58 pith_cstring_release void 1 56 -store __or_48_2924 57 -label L2925 -load 59 __or_48_2924 -store __or_47_2924 59 -brif 59 L2927 L2926 -label L2926 +store __or_48_2932 57 +label L2933 +load 59 __or_48_2932 +store __or_47_2932 59 +brif 59 L2935 L2934 +label L2934 load 60 node field 61 60 0 string kind strref 62 m46s35 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 -store __or_47_2924 63 -label L2927 -load 65 __or_47_2924 -brif 65 L2922 L2923 -label L2922 +store __or_47_2932 63 +label L2935 +load 65 __or_47_2932 +brif 65 L2930 L2931 +label L2930 strref 66 m46s1202 load 67 node call 68 pith_struct_release void 1 67 ret 66 -label L2923 -label L2921 +label L2931 +label L2929 strref 69 m46s1226 load 70 node call 71 pith_struct_release void 1 70 @@ -147755,14 +147858,14 @@ load 74 operand_class strref 75 m46s1202 call 76 pith_cstring_eq bool 2 74 75 call 77 pith_cstring_release void 1 75 -brif 76 L2929 L2930 -label L2929 +brif 76 L2937 L2938 +label L2937 load 78 idx call 79 ir_emitter_core_ir_string_expr_is_borrowed bool 1 78 iconst 81 1 sub 80 81 79 -brif 80 L2932 L2933 -label L2932 +brif 80 L2940 L2941 +label L2940 load 82 ok_value_r load 83 recv_tid strref 84 m46s182 @@ -147772,11 +147875,11 @@ call 87 ir_struct_registry_ir_rc_kind string 1 85 call 88 pith_cstring_release void 1 85 call 89 ir_ownership_ir_rc_retain_reg void 2 82 87 call 90 pith_cstring_release void 1 87 -jmp L2931 -label L2933 -label L2931 -jmp L2928 -label L2930 +jmp L2939 +label L2941 +label L2939 +jmp L2936 +label L2938 call 91 ir_builder_ir_reg int 0 strref 92 m46s898 strref 93 m46s828 @@ -147784,7 +147887,7 @@ load 94 recv_r call 95 ir_call_emit_ir_emit_call1 void 4 91 92 93 94 call 96 pith_cstring_release void 1 92 call 97 pith_cstring_release void 1 93 -label L2928 +label L2936 strref 98 m46s830 load 99 temp_name concat 100 98 99 @@ -147817,8 +147920,8 @@ call 126 pith_cstring_eq bool 2 123 124 iconst 127 1 sub 125 127 126 call 128 pith_cstring_release void 1 124 -brif 125 L2935 L2936 -label L2935 +brif 125 L2943 L2944 +label L2943 load 129 recv_r load 130 recv_tid call 131 ir_emitter_core_ir_emit_release_result_error void 2 129 130 @@ -147829,9 +147932,9 @@ load 135 recv_r call 136 ir_call_emit_ir_emit_call1 void 4 132 133 134 135 call 137 pith_cstring_release void 1 133 call 138 pith_cstring_release void 1 134 -jmp L2934 -label L2936 -label L2934 +jmp L2942 +label L2944 +label L2942 strref 139 m46s830 load 140 temp_name concat 141 139 140 @@ -147915,8 +148018,8 @@ store err_tid 12 load 13 recv_tid iconst 14 0 gte 15 13 14 -brif 15 L2938 L2939 -label L2938 +brif 15 L2946 L2947 +label L2946 load 16 recv_info load 17 recv_tid call 18 types_get_type_info struct:TypeInfo 1 17 @@ -147927,20 +148030,20 @@ field 21 20 0 string kind strref 22 m46s22 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 -brif 23 L2941 L2942 -label L2941 +brif 23 L2949 L2950 +label L2949 load 25 recv_info field 26 25 64 int inner store ok_tid 26 load 27 recv_info field 28 27 80 int value_type store err_tid 28 -jmp L2940 -label L2942 -label L2940 -jmp L2937 -label L2939 -label L2937 +jmp L2948 +label L2950 +label L2948 +jmp L2945 +label L2947 +label L2945 load 29 recv_r strref 30 m46s184 call 31 ir_result_abi_ir_emit_result_flag_field int 2 29 30 @@ -148102,24 +148205,24 @@ load 8 value_type strref 9 m46s675 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 -brif 10 L2944 L2945 -label L2944 +brif 10 L2952 L2953 +label L2952 load 12 value_r load 13 value_type call 14 pith_cstring_release void 1 13 load 15 value_info call 16 pith_struct_release void 1 15 ret 12 -label L2945 -label L2943 +label L2953 +label L2951 call 17 ir_builder_ir_reg int 0 store out_r 17 load 18 value_type strref 19 m46s673 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 -brif 20 L2947 L2948 -label L2947 +brif 20 L2955 L2956 +label L2955 load 22 out_r strref 23 m46s663 strref 24 m46s675 @@ -148133,14 +148236,14 @@ call 31 pith_cstring_release void 1 30 load 32 value_info call 33 pith_struct_release void 1 32 ret 29 -label L2948 -label L2946 +label L2956 +label L2954 load 34 value_type strref 35 m46s672 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 -brif 36 L2950 L2951 -label L2950 +brif 36 L2958 L2959 +label L2958 load 38 out_r strref 39 m46s664 strref 40 m46s675 @@ -148154,14 +148257,14 @@ call 47 pith_cstring_release void 1 46 load 48 value_info call 49 pith_struct_release void 1 48 ret 45 -label L2951 -label L2949 +label L2959 +label L2957 load 50 value_type strref 51 m46s671 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 -brif 52 L2953 L2954 -label L2953 +brif 52 L2961 L2962 +label L2961 load 54 out_r strref 55 m46s662 strref 56 m46s675 @@ -148175,13 +148278,13 @@ call 63 pith_cstring_release void 1 62 load 64 value_info call 65 pith_struct_release void 1 64 ret 61 -label L2954 -label L2952 +label L2962 +label L2960 load 66 value_tid iconst 67 0 gte 68 66 67 -brif 68 L2956 L2957 -label L2956 +brif 68 L2964 L2965 +label L2964 load 69 value_info load 70 value_tid call 71 types_get_type_info struct:TypeInfo 1 70 @@ -148192,8 +148295,8 @@ field 74 73 0 string kind strref 75 m46s22 call 76 pith_cstring_eq bool 2 74 75 call 77 pith_cstring_release void 1 75 -brif 76 L2959 L2960 -label L2959 +brif 76 L2967 L2968 +label L2967 load 78 value_r load 79 value_tid call 80 ir_emitter_core_ir_emit_result_value_to_string int 2 78 79 @@ -148202,11 +148305,11 @@ call 82 pith_cstring_release void 1 81 load 83 value_info call 84 pith_struct_release void 1 83 ret 80 -label L2960 -label L2958 -jmp L2955 -label L2957 -label L2955 +label L2968 +label L2966 +jmp L2963 +label L2965 +label L2963 load 85 value_r load 86 value_type call 87 pith_cstring_release void 1 86 @@ -148274,39 +148377,39 @@ call 20 pith_cstring_retain void 1 19 call 21 pith_cstring_release void 1 17 store call_name 19 iconst 22 0 -store __and_22_2964 22 +store __and_22_2972 22 load 23 call_name call 24 string_len int 1 23 iconst 25 0 eq 26 24 25 -store __and_22_2964 26 -brif 26 L2964 L2965 -label L2964 +store __and_22_2972 26 +brif 26 L2972 L2973 +label L2972 load 27 handler_node field 28 27 0 string kind strref 29 m46s37 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -store __and_22_2964 30 -label L2965 -load 32 __and_22_2964 -brif 32 L2962 L2963 -label L2962 +store __and_22_2972 30 +label L2973 +load 32 __and_22_2972 +brif 32 L2970 L2971 +label L2970 load 33 call_name load 34 handler_node field 35 34 8 string value call 36 pith_cstring_retain void 1 35 call 37 pith_cstring_release void 1 33 store call_name 35 -jmp L2961 -label L2963 -label L2961 +jmp L2969 +label L2971 +label L2969 load 38 call_name call 39 string_len int 1 38 iconst 40 0 gt 41 39 40 -brif 41 L2967 L2968 -label L2967 +brif 41 L2975 L2976 +label L2975 call 42 ir_builder_ir_reg int 0 store out_r 42 load 43 legacy_kind @@ -148323,16 +148426,16 @@ load 51 legacy_kind call 52 string_len int 1 51 iconst 53 0 gt 54 52 53 -brif 54 L2970 L2971 -label L2970 +brif 54 L2978 L2979 +label L2978 load 55 call_type load 56 legacy_kind call 57 pith_cstring_retain void 1 56 call 58 pith_cstring_release void 1 55 store call_type 56 -jmp L2969 -label L2971 -label L2969 +jmp L2977 +label L2979 +label L2977 load 59 out_r load 60 call_name load 61 call_type @@ -148346,23 +148449,23 @@ call 68 pith_cstring_release void 1 65 call 69 ir_call_emit_ir_emit_call_text void 5 59 60 61 62 66 call 70 pith_cstring_release void 1 66 iconst 71 0 -store __and_71_2975 71 +store __and_71_2983 71 load 72 legacy_kind call 73 string_len int 1 72 iconst 74 0 gt 75 73 74 -store __and_71_2975 75 -brif 75 L2975 L2976 -label L2975 +store __and_71_2983 75 +brif 75 L2983 L2984 +label L2983 load 76 ret_type strref 77 m46s23 call 78 pith_cstring_eq bool 2 76 77 call 79 pith_cstring_release void 1 77 -store __and_71_2975 78 -label L2976 -load 80 __and_71_2975 -brif 80 L2973 L2974 -label L2973 +store __and_71_2983 78 +label L2984 +load 80 __and_71_2983 +brif 80 L2981 L2982 +label L2981 load 81 out_r load 82 legacy_kind load 83 call_name @@ -148380,8 +148483,8 @@ call 94 pith_cstring_release void 1 93 load 95 handler_name call 96 pith_cstring_release void 1 95 ret 84 -label L2974 -label L2972 +label L2982 +label L2980 load 97 out_r load 98 handler_node call 99 pith_struct_release void 1 98 @@ -148396,8 +148499,8 @@ call 107 pith_cstring_release void 1 106 load 108 handler_name call 109 pith_cstring_release void 1 108 ret 97 -label L2968 -label L2966 +label L2976 +label L2974 load 110 handler_idx call 111 ir_emitter_core_ir_expr int 1 110 store handler_r 111 @@ -148654,7 +148757,7 @@ call 4 ast_get_node struct:Node 1 3 call 5 pith_struct_release void 1 2 store recv_node 4 iconst 6 0 -store __or_6_2980 6 +store __or_6_2988 6 load 7 recv_node field 8 7 0 string kind strref 9 m46s129 @@ -148662,25 +148765,25 @@ call 11 pith_cstring_eq bool 2 8 9 iconst 12 1 sub 10 12 11 call 13 pith_cstring_release void 1 9 -store __or_6_2980 10 -brif 10 L2981 L2980 -label L2980 +store __or_6_2988 10 +brif 10 L2989 L2988 +label L2988 load 14 recv_node field 15 14 16 list children call 16 pith_list_len int 1 15 iconst 17 0 eq 18 16 17 -store __or_6_2980 18 -label L2981 -load 19 __or_6_2980 -brif 19 L2978 L2979 -label L2978 +store __or_6_2988 18 +label L2989 +load 19 __or_6_2988 +brif 19 L2986 L2987 +label L2986 call 20 ir_result_abi_ir_zero_reg int 0 load 21 recv_node call 22 pith_struct_release void 1 21 ret 20 -label L2979 -label L2977 +label L2987 +label L2985 load 23 recv_node field 24 23 16 list children iconst 25 0 @@ -148715,7 +148818,7 @@ call 4 ast_get_node struct:Node 1 3 call 5 pith_struct_release void 1 2 store send_node 4 iconst 6 0 -store __or_6_2985 6 +store __or_6_2993 6 load 7 send_node field 8 7 0 string kind strref 9 m46s129 @@ -148723,25 +148826,25 @@ call 11 pith_cstring_eq bool 2 8 9 iconst 12 1 sub 10 12 11 call 13 pith_cstring_release void 1 9 -store __or_6_2985 10 -brif 10 L2986 L2985 -label L2985 +store __or_6_2993 10 +brif 10 L2994 L2993 +label L2993 load 14 send_node field 15 14 16 list children call 16 pith_list_len int 1 15 iconst 17 0 eq 18 16 17 -store __or_6_2985 18 -label L2986 -load 19 __or_6_2985 -brif 19 L2983 L2984 -label L2983 +store __or_6_2993 18 +label L2994 +load 19 __or_6_2993 +brif 19 L2991 L2992 +label L2991 call 20 ir_result_abi_ir_zero_reg int 0 load 21 send_node call 22 pith_struct_release void 1 21 ret 20 -label L2984 -label L2982 +label L2992 +label L2990 load 23 send_node field 24 23 16 list children iconst 25 0 @@ -148755,14 +148858,14 @@ store arg_idx 30 load 31 arg_idx iconst 32 0 lt 33 31 32 -brif 33 L2988 L2989 -label L2988 +brif 33 L2996 L2997 +label L2996 call 34 ir_result_abi_ir_zero_reg int 0 load 35 send_node call 36 pith_struct_release void 1 35 ret 34 -label L2989 -label L2987 +label L2997 +label L2995 load 37 arg_idx call 38 ir_emitter_core_ir_expr int 1 37 store val_r 38 @@ -148810,21 +148913,21 @@ load 15 bind_name call 16 string_len int 1 15 iconst 17 0 gt 18 16 17 -brif 18 L2991 L2992 -label L2991 +brif 18 L2999 L3000 +label L2999 load 19 bind_type call 20 string_len int 1 19 iconst 21 0 gt 22 20 21 -brif 22 L2994 L2995 -label L2994 +brif 22 L3002 L3003 +label L3002 load 23 ir_builder_ir_var_types load 24 bind_name load 25 bind_type call 26 map_insert void 3 23 24 25 -jmp L2993 -label L2995 -label L2993 +jmp L3001 +label L3003 +label L3001 strref 27 m46s830 load 28 bind_name concat 29 27 28 @@ -148840,9 +148943,9 @@ call 38 pith_cstring_release void 1 32 call 39 pith_cstring_release void 1 36 call 40 ir_builder_ir_emit void 1 37 call 41 pith_cstring_release void 1 37 -jmp L2990 -label L2992 -label L2990 +jmp L2998 +label L3000 +label L2998 load 42 body_node load 43 body_idx call 44 ast_get_node struct:Node 1 43 @@ -148855,41 +148958,41 @@ field 48 47 0 string kind strref 49 m46s65 call 50 pith_cstring_eq bool 2 48 49 call 51 pith_cstring_release void 1 49 -brif 50 L2997 L2998 -label L2997 +brif 50 L3005 L3006 +label L3005 load 52 body_node field 53 52 16 list children call 54 pith_list_len int 1 53 iconst 55 0 gt 56 54 55 -brif 56 L3000 L3001 -label L3000 +brif 56 L3008 L3009 +label L3008 load 57 body_node field 58 57 16 list children iconst 59 0 call 60 pith_list_get_value_strict int 2 58 59 call 61 ir_emitter_core_ir_expr int 1 60 store body_r 61 -jmp L2999 -label L3001 -label L2999 -jmp L2996 -label L2998 +jmp L3007 +label L3009 +label L3007 +jmp L3004 +label L3006 load 62 body_node field 63 62 0 string kind strref 64 m46s64 call 65 pith_cstring_eq bool 2 63 64 call 66 pith_cstring_release void 1 64 -brif 65 L3002 L3003 -label L3002 +brif 65 L3010 L3011 +label L3010 load 67 body_idx call 68 ir_emitter_core_ir_block int 1 67 -jmp L2996 -label L3003 +jmp L3004 +label L3011 load 69 body_idx call 70 ir_emitter_core_ir_expr int 1 69 store body_r 70 -label L2996 +label L3004 load 71 saved_vars call 72 pith_map_retain_handle void 1 71 store ir_builder_ir_var_regs 71 @@ -148930,12 +149033,12 @@ iconst 9 0 store __for_idx_344 9 store __for_len_344 8 store __for_iter_344 7 -label L3004 +label L3012 load 10 __for_idx_344 load 11 __for_len_344 lt 12 10 11 -brif 12 L3005 L3007 -label L3005 +brif 12 L3013 L3015 +label L3013 load 13 __for_iter_344 load 14 __for_idx_344 call 15 pith_list_get_value unknown 2 13 14 @@ -148946,38 +149049,38 @@ call 18 ast_get_node struct:Node 1 17 call 19 pith_struct_release void 1 16 store arm_node 18 iconst 20 0 -store __or_20_3011 20 +store __or_20_3019 20 load 21 arm_node field 22 21 0 string kind strref 23 m46s138 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 -store __or_20_3011 24 -brif 24 L3012 L3011 -label L3011 +store __or_20_3019 24 +brif 24 L3020 L3019 +label L3019 load 26 arm_node field 27 26 0 string kind strref 28 m46s137 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 -store __or_20_3011 29 -label L3012 -load 31 __or_20_3011 -brif 31 L3009 L3010 -label L3009 +store __or_20_3019 29 +label L3020 +load 31 __or_20_3019 +brif 31 L3017 L3018 +label L3017 load 32 probe_arms load 33 __loopvar_344_arm_idx call 34 pith_list_push_value void 2 32 33 -jmp L3008 -label L3010 -label L3008 -label L3006 +jmp L3016 +label L3018 +label L3016 +label L3014 load 35 __for_idx_344 iconst 36 1 add 37 35 36 store __for_idx_344 37 -jmp L3004 -label L3007 +jmp L3012 +label L3015 load 38 probe_arms load 39 arm_node call 40 pith_struct_release void 1 39 @@ -149008,12 +149111,12 @@ iconst 11 0 store __for_idx_345 11 store __for_len_345 10 store __for_iter_345 9 -label L3013 +label L3021 load 12 __for_idx_345 load 13 __for_len_345 lt 14 12 13 -brif 14 L3014 L3016 -label L3014 +brif 14 L3022 L3024 +label L3022 load 15 __for_iter_345 load 16 __for_idx_345 call 17 pith_list_get_value unknown 2 15 16 @@ -149024,57 +149127,57 @@ call 20 ast_get_node struct:Node 1 19 call 21 pith_struct_release void 1 18 store arm_node 20 iconst 22 0 -store __and_22_3020 22 +store __and_22_3028 22 load 23 arm_node field 24 23 0 string kind strref 25 m46s136 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 -store __and_22_3020 26 -brif 26 L3020 L3021 -label L3020 +store __and_22_3028 26 +brif 26 L3028 L3029 +label L3028 load 28 timeout_idx iconst 29 0 lt 30 28 29 -store __and_22_3020 30 -label L3021 -load 31 __and_22_3020 -brif 31 L3018 L3019 -label L3018 +store __and_22_3028 30 +label L3029 +load 31 __and_22_3028 +brif 31 L3026 L3027 +label L3026 load 32 __loopvar_345_child store timeout_idx 32 -jmp L3017 -label L3019 +jmp L3025 +label L3027 iconst 33 0 -store __and_33_3024 33 +store __and_33_3032 33 load 34 arm_node field 35 34 0 string kind strref 36 m46s135 call 37 pith_cstring_eq bool 2 35 36 call 38 pith_cstring_release void 1 36 -store __and_33_3024 37 -brif 37 L3024 L3025 -label L3024 +store __and_33_3032 37 +brif 37 L3032 L3033 +label L3032 load 39 default_idx iconst 40 0 lt 41 39 40 -store __and_33_3024 41 -label L3025 -load 42 __and_33_3024 -brif 42 L3022 L3023 -label L3022 +store __and_33_3032 41 +label L3033 +load 42 __and_33_3032 +brif 42 L3030 L3031 +label L3030 load 43 __loopvar_345_child store default_idx 43 -jmp L3017 +jmp L3025 +label L3031 +label L3025 label L3023 -label L3017 -label L3015 load 44 __for_idx_345 iconst 45 1 add 46 44 45 store __for_idx_345 46 -jmp L3013 -label L3016 +jmp L3021 +label L3024 load 47 node call 48 ir_emitter_core_ir_select_probe_arm_indices list 1 47 load 49 timeout_idx @@ -149110,25 +149213,25 @@ call 8 ast_get_node struct:Node 1 7 call 9 pith_struct_release void 1 6 store arm_node 8 iconst 10 0 -store __and_10_3029 10 +store __and_10_3037 10 load 11 arm_node field 12 11 0 string kind strref 13 m46s138 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -store __and_10_3029 14 -brif 14 L3029 L3030 -label L3029 +store __and_10_3037 14 +brif 14 L3037 L3038 +label L3037 load 16 arm_node field 17 16 16 list children call 18 pith_list_len int 1 17 iconst 19 2 gte 20 18 19 -store __and_10_3029 20 -label L3030 -load 21 __and_10_3029 -brif 21 L3027 L3028 -label L3027 +store __and_10_3037 20 +label L3038 +load 21 __and_10_3037 +brif 21 L3035 L3036 +label L3035 load 22 arm_node field 23 22 16 list children iconst 24 0 @@ -149208,28 +149311,28 @@ call 92 ir_builder_ir_emit void 1 90 call 93 pith_cstring_release void 1 90 load 94 next_l call 95 ir_call_emit_ir_emit_label void 1 94 -jmp L3026 -label L3028 +jmp L3034 +label L3036 iconst 96 0 -store __and_96_3033 96 +store __and_96_3041 96 load 97 arm_node field 98 97 0 string kind strref 99 m46s137 call 100 pith_cstring_eq bool 2 98 99 call 101 pith_cstring_release void 1 99 -store __and_96_3033 100 -brif 100 L3033 L3034 -label L3033 +store __and_96_3041 100 +brif 100 L3041 L3042 +label L3041 load 102 arm_node field 103 102 16 list children call 104 pith_list_len int 1 103 iconst 105 2 gte 106 104 105 -store __and_96_3033 106 -label L3034 -load 107 __and_96_3033 -brif 107 L3031 L3032 -label L3031 +store __and_96_3041 106 +label L3042 +load 107 __and_96_3041 +brif 107 L3039 L3040 +label L3039 load 108 arm_node field 109 108 16 list children iconst 110 0 @@ -149302,9 +149405,9 @@ call 172 ir_builder_ir_emit void 1 170 call 173 pith_cstring_release void 1 170 load 174 next_l call 175 ir_call_emit_ir_emit_label void 1 174 -jmp L3026 -label L3032 -label L3026 +jmp L3034 +label L3040 +label L3034 load 176 arm_node call 177 pith_struct_release void 1 176 load 178 hit_l @@ -149323,16 +149426,16 @@ store timeout_node 2 load 3 timeout_idx iconst 4 0 lt 5 3 4 -brif 5 L3036 L3037 -label L3036 +brif 5 L3044 L3045 +label L3044 strref 6 m46s82 load 7 deadline_name call 8 pith_cstring_release void 1 7 load 9 timeout_node call 10 pith_struct_release void 1 9 ret 6 -label L3037 -label L3035 +label L3045 +label L3043 load 11 deadline_name strref 12 m46s1223 call 13 ir_builder_ir_new_temp_name string 1 12 @@ -149419,14 +149522,14 @@ store offset_name 1 load 2 probe_count iconst 3 1 lte 4 2 3 -brif 4 L3039 L3040 -label L3039 +brif 4 L3047 L3048 +label L3047 strref 5 m46s82 load 6 offset_name call 7 pith_cstring_release void 1 6 ret 5 -label L3040 -label L3038 +label L3048 +label L3046 load 8 offset_name strref 9 m46s1222 call 10 ir_builder_ir_new_temp_name string 1 9 @@ -149520,12 +149623,12 @@ call 26 ir_builder_ir_emit void 1 24 call 27 pith_cstring_release void 1 24 iconst 28 0 store i 28 -label L3041 +label L3049 load 29 i load 30 probe_count lt 31 29 30 -brif 31 L3042 L3043 -label L3042 +brif 31 L3050 L3051 +label L3050 load 32 case_l call 33 ir_builder_ir_label string 0 call 34 pith_cstring_release void 1 32 @@ -149607,12 +149710,12 @@ load 105 case_l call 106 ir_call_emit_ir_emit_label void 1 105 iconst 107 0 store j 107 -label L3044 +label L3052 load 108 j load 109 probe_count lt 110 108 109 -brif 110 L3045 L3046 -label L3045 +brif 110 L3053 L3054 +label L3053 load 111 i load 112 j add 113 111 112 @@ -149629,8 +149732,8 @@ load 122 j iconst 123 1 add 124 122 123 store j 124 -jmp L3044 -label L3046 +jmp L3052 +label L3054 strref 125 m46s833 load 126 probe_done_l concat 127 125 126 @@ -149643,8 +149746,8 @@ load 133 i iconst 134 1 add 135 133 134 store i 135 -jmp L3041 -label L3043 +jmp L3049 +label L3051 load 136 probe_done_l call 137 ir_call_emit_ir_emit_label void 1 136 load 138 probe_done_l @@ -149667,17 +149770,17 @@ store probe_count 5 load 6 probe_count iconst 7 0 eq 8 6 7 -brif 8 L3048 L3049 -label L3048 +brif 8 L3056 L3057 +label L3056 iconst 9 0 ret 9 -label L3049 -label L3047 +label L3057 +label L3055 load 10 probe_count iconst 11 1 eq 12 10 11 -brif 12 L3051 L3052 -label L3051 +brif 12 L3059 L3060 +label L3059 load 13 probe_arms iconst 14 0 call 15 pith_list_get_value_strict int 2 13 14 @@ -149686,8 +149789,8 @@ load 17 end_l call 18 ir_emitter_core_ir_emit_select_probe_arm void 3 15 16 17 iconst 19 0 ret 19 -label L3052 -label L3050 +label L3060 +label L3058 load 20 probe_arms load 21 offset_name load 22 result_temp @@ -149705,14 +149808,14 @@ store default_node 3 load 4 default_idx iconst 5 0 lt 6 4 5 -brif 6 L3054 L3055 -label L3054 +brif 6 L3062 L3063 +label L3062 load 7 default_node call 8 pith_struct_release void 1 7 iconst 9 0 ret 9 -label L3055 -label L3053 +label L3063 +label L3061 load 10 default_node load 11 default_idx call 12 ast_get_node struct:Node 1 11 @@ -149723,14 +149826,14 @@ field 15 14 16 list children call 16 pith_list_len int 1 15 iconst 17 0 eq 18 16 17 -brif 18 L3057 L3058 -label L3057 +brif 18 L3065 L3066 +label L3065 load 19 default_node call 20 pith_struct_release void 1 19 iconst 21 0 ret 21 -label L3058 -label L3056 +label L3066 +label L3064 load 22 default_node field 23 22 16 list children iconst 24 0 @@ -149782,8 +149885,8 @@ store timeout_node 6 load 7 timeout_idx iconst 8 0 lt 9 7 8 -brif 9 L3060 L3061 -label L3060 +brif 9 L3068 L3069 +label L3068 load 10 timeout_l call 11 pith_cstring_release void 1 10 load 12 wait_l @@ -149792,8 +149895,8 @@ load 14 timeout_node call 15 pith_struct_release void 1 14 iconst 16 0 ret 16 -label L3061 -label L3059 +label L3069 +label L3067 call 17 ir_builder_ir_reg int 0 store now_r 17 load 18 now_r @@ -149933,12 +150036,12 @@ param offset_name load 2 probe_count iconst 3 1 lte 4 2 3 -brif 4 L3063 L3064 -label L3063 +brif 4 L3071 L3072 +label L3071 iconst 5 0 ret 5 -label L3064 -label L3062 +label L3072 +label L3070 call 6 ir_builder_ir_reg int 0 store next_offset_r 6 call 7 ir_builder_ir_reg int 0 @@ -150224,43 +150327,43 @@ endfunc func ir_emitter_core_ir_is_channel_send_name 1 bool param emit_name iconst 1 0 -store __or_1_3068 1 +store __or_1_3076 1 load 2 emit_name strref 3 m46s128 call 4 pith_cstring_eq bool 2 2 3 call 5 pith_cstring_release void 1 3 -store __or_1_3068 4 -brif 4 L3069 L3068 -label L3068 +store __or_1_3076 4 +brif 4 L3077 L3076 +label L3076 load 6 emit_name strref 7 m46s658 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -store __or_1_3068 8 -label L3069 -load 10 __or_1_3068 -brif 10 L3066 L3067 -label L3066 +store __or_1_3076 8 +label L3077 +load 10 __or_1_3076 +brif 10 L3074 L3075 +label L3074 iconst 11 1 ret 11 -label L3067 -label L3065 +label L3075 +label L3073 iconst 12 0 -store __or_12_3070 12 +store __or_12_3078 12 load 13 emit_name strref 14 m46s214 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 -store __or_12_3070 15 -brif 15 L3071 L3070 -label L3070 +store __or_12_3078 15 +brif 15 L3079 L3078 +label L3078 load 17 emit_name strref 18 m46s657 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -store __or_12_3070 19 -label L3071 -load 21 __or_12_3070 +store __or_12_3078 19 +label L3079 +load 21 __or_12_3078 ret 21 iconst 22 0 ret 22 @@ -150273,36 +150376,36 @@ store variant_r 2 load 3 variant_r iconst 4 0 gte 5 3 4 -brif 5 L3073 L3074 -label L3073 +brif 5 L3081 L3082 +label L3081 load 6 variant_r ret 6 -label L3074 -label L3072 +label L3082 +label L3080 load 7 idx call 8 ir_emitter_core_ir_emit_typed_receiver_method int 1 7 store typed_r 8 load 9 typed_r iconst 10 0 gte 11 9 10 -brif 11 L3076 L3077 -label L3076 +brif 11 L3084 L3085 +label L3084 load 12 typed_r ret 12 -label L3077 -label L3075 +label L3085 +label L3083 load 13 idx call 14 ir_emitter_core_ir_emit_module_alias_method int 1 13 store alias_r 14 load 15 alias_r iconst 16 0 gte 17 15 16 -brif 17 L3079 L3080 -label L3079 +brif 17 L3087 L3088 +label L3087 load 18 alias_r ret 18 -label L3080 -label L3078 +label L3088 +label L3086 load 19 idx call 20 ir_emitter_core_ir_emit_general_method_call int 1 19 ret 20 @@ -150340,8 +150443,8 @@ field 18 17 16 list children call 19 pith_list_len int 1 18 iconst 20 0 gt 21 19 20 -brif 21 L3082 L3083 -label L3082 +brif 21 L3090 L3091 +label L3090 load 22 ctor_recv load 23 node field 24 23 16 list children @@ -150351,24 +150454,24 @@ call 27 ast_get_node struct:Node 1 26 call 28 pith_struct_release void 1 22 store ctor_recv 27 iconst 29 0 -store __and_29_3087 29 +store __and_29_3095 29 load 30 ctor_recv field 31 30 0 string kind strref 32 m46s37 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 -store __and_29_3087 33 -brif 33 L3087 L3088 -label L3087 +store __and_29_3095 33 +brif 33 L3095 L3096 +label L3095 load 35 ir_struct_registry_ir_boxed_enums load 36 ctor_recv field 37 36 8 string value call 38 contains_key bool 2 35 37 -store __and_29_3087 38 -label L3088 -load 39 __and_29_3087 -brif 39 L3085 L3086 -label L3085 +store __and_29_3095 38 +label L3096 +load 39 __and_29_3095 +brif 39 L3093 L3094 +label L3093 load 40 ctor_key load 41 ctor_recv field 42 41 8 string value @@ -150383,8 +150486,8 @@ store ctor_key 47 load 50 ir_struct_registry_ir_struct_field_index_lookup load 51 ctor_key call 52 contains_key bool 2 50 51 -brif 52 L3090 L3091 -label L3090 +brif 52 L3098 L3099 +label L3098 load 53 node load 54 ctor_recv field 55 54 8 string value @@ -150403,31 +150506,31 @@ call 67 pith_struct_release void 1 66 load 68 qual_key call 69 pith_cstring_release void 1 68 ret 57 -label L3091 -label L3089 -jmp L3084 -label L3086 -label L3084 +label L3099 +label L3097 +jmp L3092 +label L3094 +label L3092 iconst 70 0 -store __and_70_3095 70 +store __and_70_3103 70 load 71 ctor_recv field 72 71 0 string kind strref 73 m46s36 call 74 pith_cstring_eq bool 2 72 73 call 75 pith_cstring_release void 1 73 -store __and_70_3095 74 -brif 74 L3095 L3096 -label L3095 +store __and_70_3103 74 +brif 74 L3103 L3104 +label L3103 load 76 ctor_recv field 77 76 16 list children call 78 pith_list_len int 1 77 iconst 79 0 gt 80 78 79 -store __and_70_3095 80 -label L3096 -load 81 __and_70_3095 -brif 81 L3093 L3094 -label L3093 +store __and_70_3103 80 +label L3104 +load 81 __and_70_3103 +brif 81 L3101 L3102 +label L3101 load 82 qual_mod load 83 ctor_recv field 84 83 16 list children @@ -150437,36 +150540,36 @@ call 87 ast_get_node struct:Node 1 86 call 88 pith_struct_release void 1 82 store qual_mod 87 iconst 89 0 -store __and_89_3100 89 +store __and_89_3108 89 iconst 90 0 -store __and_90_3100 90 +store __and_90_3108 90 load 91 qual_mod field 92 91 0 string kind strref 93 m46s37 call 94 pith_cstring_eq bool 2 92 93 call 95 pith_cstring_release void 1 93 -store __and_90_3100 94 -brif 94 L3100 L3101 -label L3100 +store __and_90_3108 94 +brif 94 L3108 L3109 +label L3108 load 96 ir_alias_registry_ir_module_aliases load 97 qual_mod field 98 97 8 string value call 99 contains_key bool 2 96 98 -store __and_90_3100 99 -label L3101 -load 100 __and_90_3100 -store __and_89_3100 100 -brif 100 L3102 L3103 -label L3102 +store __and_90_3108 99 +label L3109 +load 100 __and_90_3108 +store __and_89_3108 100 +brif 100 L3110 L3111 +label L3110 load 101 ir_struct_registry_ir_boxed_enums load 102 ctor_recv field 103 102 8 string value call 104 contains_key bool 2 101 103 -store __and_89_3100 104 -label L3103 -load 105 __and_89_3100 -brif 105 L3098 L3099 -label L3098 +store __and_89_3108 104 +label L3111 +load 105 __and_89_3108 +brif 105 L3106 L3107 +label L3106 load 106 qual_key load 107 ctor_recv field 108 107 8 string value @@ -150481,8 +150584,8 @@ store qual_key 113 load 116 ir_struct_registry_ir_struct_field_index_lookup load 117 qual_key call 118 contains_key bool 2 116 117 -brif 118 L3105 L3106 -label L3105 +brif 118 L3113 L3114 +label L3113 load 119 node load 120 ctor_recv field 121 120 8 string value @@ -150501,17 +150604,17 @@ call 133 pith_struct_release void 1 132 load 134 qual_key call 135 pith_cstring_release void 1 134 ret 123 -label L3106 -label L3104 -jmp L3097 -label L3099 -label L3097 -jmp L3092 -label L3094 -label L3092 -jmp L3081 -label L3083 -label L3081 +label L3114 +label L3112 +jmp L3105 +label L3107 +label L3105 +jmp L3100 +label L3102 +label L3100 +jmp L3089 +label L3091 +label L3089 iconst 136 0 iconst 137 1 sub 138 136 137 @@ -150578,8 +150681,8 @@ field 20 19 16 list children call 21 pith_list_len int 1 20 iconst 22 0 gt 23 21 22 -brif 23 L3108 L3109 -label L3108 +brif 23 L3116 L3117 +label L3116 load 24 node field 25 24 16 list children iconst 26 0 @@ -150589,91 +150692,91 @@ store recv_tid 28 load 29 recv_tid iconst 30 0 gte 31 29 30 -brif 31 L3111 L3112 -label L3111 +brif 31 L3119 L3120 +label L3119 load 32 recv_info load 33 recv_tid call 34 types_get_type_info struct:TypeInfo 1 33 call 35 pith_struct_release void 1 32 store recv_info 34 iconst 36 0 -store __and_36_3116 36 +store __and_36_3124 36 load 37 recv_info field 38 37 0 string kind strref 39 m46s497 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 -store __and_36_3116 40 -brif 40 L3116 L3117 -label L3116 +store __and_36_3124 40 +brif 40 L3124 L3125 +label L3124 load 42 mname strref 43 m46s270 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 -store __and_36_3116 44 -label L3117 -load 46 __and_36_3116 -brif 46 L3114 L3115 -label L3114 +store __and_36_3124 44 +label L3125 +load 46 __and_36_3124 +brif 46 L3122 L3123 +label L3122 iconst 47 0 -store __or_47_3121 47 +store __or_47_3129 47 iconst 48 0 -store __or_48_3121 48 +store __or_48_3129 48 iconst 49 0 -store __or_49_3121 49 +store __or_49_3129 49 iconst 50 0 -store __or_50_3121 50 +store __or_50_3129 50 load 51 recv_info field 52 51 8 string name strref 53 m46s496 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 -store __or_50_3121 54 -brif 54 L3122 L3121 -label L3121 +store __or_50_3129 54 +brif 54 L3130 L3129 +label L3129 load 56 recv_info field 57 56 8 string name strref 58 m46s491 call 59 pith_cstring_eq bool 2 57 58 call 60 pith_cstring_release void 1 58 -store __or_50_3121 59 -label L3122 -load 61 __or_50_3121 -store __or_49_3121 61 -brif 61 L3124 L3123 -label L3123 +store __or_50_3129 59 +label L3130 +load 61 __or_50_3129 +store __or_49_3129 61 +brif 61 L3132 L3131 +label L3131 load 62 recv_info field 63 62 8 string name strref 64 m46s490 call 65 pith_cstring_eq bool 2 63 64 call 66 pith_cstring_release void 1 64 -store __or_49_3121 65 -label L3124 -load 67 __or_49_3121 -store __or_48_3121 67 -brif 67 L3126 L3125 -label L3125 +store __or_49_3129 65 +label L3132 +load 67 __or_49_3129 +store __or_48_3129 67 +brif 67 L3134 L3133 +label L3133 load 68 recv_info field 69 68 8 string name strref 70 m46s489 call 71 pith_cstring_eq bool 2 69 70 call 72 pith_cstring_release void 1 70 -store __or_48_3121 71 -label L3126 -load 73 __or_48_3121 -store __or_47_3121 73 -brif 73 L3128 L3127 -label L3127 +store __or_48_3129 71 +label L3134 +load 73 __or_48_3129 +store __or_47_3129 73 +brif 73 L3136 L3135 +label L3135 load 74 recv_info field 75 74 8 string name strref 76 m46s488 call 77 pith_cstring_eq bool 2 75 76 call 78 pith_cstring_release void 1 76 -store __or_47_3121 77 -label L3128 -load 79 __or_47_3121 -brif 79 L3119 L3120 -label L3119 +store __or_47_3129 77 +label L3136 +load 79 __or_47_3129 +brif 79 L3127 L3128 +label L3127 load 80 node field 81 80 16 list children iconst 82 0 @@ -150707,24 +150810,24 @@ call 107 pith_cstring_release void 1 106 load 108 end_l call 109 pith_cstring_release void 1 108 ret 93 -label L3120 -label L3118 -jmp L3113 -label L3115 -label L3113 +label L3128 +label L3126 +jmp L3121 +label L3123 +label L3121 load 110 recv_info field 111 110 0 string kind strref 112 m46s22 call 113 pith_cstring_eq bool 2 111 112 call 114 pith_cstring_release void 1 112 -brif 113 L3130 L3131 -label L3130 +brif 113 L3138 L3139 +label L3138 load 115 mname strref 116 m46s285 call 117 pith_cstring_eq bool 2 115 116 call 118 pith_cstring_release void 1 116 -brif 117 L3133 L3134 -label L3133 +brif 117 L3141 L3142 +label L3141 load 119 idx load 120 node call 121 ir_emitter_core_ir_emit_result_unwrap_or int 2 119 120 @@ -150745,14 +150848,14 @@ call 135 pith_cstring_release void 1 134 load 136 end_l call 137 pith_cstring_release void 1 136 ret 121 -label L3134 -label L3132 +label L3142 +label L3140 load 138 mname strref 139 m46s283 call 140 pith_cstring_eq bool 2 138 139 call 141 pith_cstring_release void 1 139 -brif 140 L3136 L3137 -label L3136 +brif 140 L3144 L3145 +label L3144 load 142 idx load 143 node call 144 ir_emitter_core_ir_emit_result_or_else int 2 142 143 @@ -150773,14 +150876,14 @@ call 158 pith_cstring_release void 1 157 load 159 end_l call 160 pith_cstring_release void 1 159 ret 144 -label L3137 -label L3135 +label L3145 +label L3143 load 161 mname strref 162 m46s270 call 163 pith_cstring_eq bool 2 161 162 call 164 pith_cstring_release void 1 162 -brif 163 L3139 L3140 -label L3139 +brif 163 L3147 L3148 +label L3147 load 165 node call 166 ir_emitter_core_ir_emit_result_to_string int 1 165 load 167 node @@ -150800,30 +150903,30 @@ call 180 pith_cstring_release void 1 179 load 181 end_l call 182 pith_cstring_release void 1 181 ret 166 -label L3140 -label L3138 -jmp L3129 -label L3131 -label L3129 +label L3148 +label L3146 +jmp L3137 +label L3139 +label L3137 iconst 183 0 -store __and_183_3144 183 +store __and_183_3152 183 load 184 recv_info field 185 184 0 string kind strref 186 m46s21 call 187 pith_cstring_eq bool 2 185 186 call 188 pith_cstring_release void 1 186 -store __and_183_3144 187 -brif 187 L3144 L3145 -label L3144 +store __and_183_3152 187 +brif 187 L3152 L3153 +label L3152 load 189 mname strref 190 m46s6 call 191 pith_cstring_eq bool 2 189 190 call 192 pith_cstring_release void 1 190 -store __and_183_3144 191 -label L3145 -load 193 __and_183_3144 -brif 193 L3142 L3143 -label L3142 +store __and_183_3152 191 +label L3153 +load 193 __and_183_3152 +brif 193 L3150 L3151 +label L3150 load 194 node field 195 194 16 list children iconst 196 0 @@ -150858,27 +150961,27 @@ call 222 pith_cstring_release void 1 221 load 223 end_l call 224 pith_cstring_release void 1 223 ret 208 -label L3143 -label L3141 +label L3151 +label L3149 iconst 225 0 -store __and_225_3149 225 +store __and_225_3157 225 load 226 recv_info field 227 226 0 string kind strref 228 m46s21 call 229 pith_cstring_eq bool 2 227 228 call 230 pith_cstring_release void 1 228 -store __and_225_3149 229 -brif 229 L3149 L3150 -label L3149 +store __and_225_3157 229 +brif 229 L3157 L3158 +label L3157 load 231 mname strref 232 m46s285 call 233 pith_cstring_eq bool 2 231 232 call 234 pith_cstring_release void 1 232 -store __and_225_3149 233 -label L3150 -load 235 __and_225_3149 -brif 235 L3147 L3148 -label L3147 +store __and_225_3157 233 +label L3158 +load 235 __and_225_3157 +brif 235 L3155 L3156 +label L3155 load 236 node field 237 236 16 list children iconst 238 0 @@ -150949,26 +151052,26 @@ load 294 recv_tid call 295 ir_optionals_ir_optional_value_field int 2 293 294 store inner_r 295 iconst 296 0 -store __and_296_3154 296 +store __and_296_3162 296 load 297 inner_kind call 298 string_len int 1 297 iconst 299 0 gt 300 298 299 -store __and_296_3154 300 -brif 300 L3154 L3155 -label L3154 +store __and_296_3162 300 +brif 300 L3162 L3163 +label L3162 load 301 owns_subject -store __and_296_3154 301 -label L3155 -load 302 __and_296_3154 -brif 302 L3152 L3153 -label L3152 +store __and_296_3162 301 +label L3163 +load 302 __and_296_3162 +brif 302 L3160 L3161 +label L3160 load 303 inner_r load 304 inner_kind call 305 ir_ownership_ir_rc_retain_reg void 2 303 304 -jmp L3151 -label L3153 -label L3151 +jmp L3159 +label L3161 +label L3159 strref 306 m46s830 load 307 tmp concat 308 306 307 @@ -151017,8 +151120,8 @@ call 348 pith_cstring_release void 1 344 load 349 end_l call 350 ir_call_emit_ir_emit_label void 1 349 load 351 owns_subject -brif 351 L3157 L3158 -label L3157 +brif 351 L3165 L3166 +label L3165 call 352 ir_builder_ir_reg int 0 strref 353 m46s898 strref 354 m46s828 @@ -151026,9 +151129,9 @@ load 355 obj_r call 356 ir_call_emit_ir_emit_call1 void 4 352 353 354 355 call 357 pith_cstring_release void 1 353 call 358 pith_cstring_release void 1 354 -jmp L3156 -label L3158 -label L3156 +jmp L3164 +label L3166 +label L3164 call 359 ir_builder_ir_reg int 0 store out_r 359 strref 360 m46s829 @@ -151064,45 +151167,45 @@ call 389 pith_cstring_release void 1 388 load 390 end_l call 391 pith_cstring_release void 1 390 ret 375 -label L3148 -label L3146 -jmp L3110 -label L3112 -label L3110 -jmp L3107 -label L3109 -label L3107 +label L3156 +label L3154 +jmp L3118 +label L3120 +label L3118 +jmp L3115 +label L3117 +label L3115 iconst 392 0 -store __and_392_3162 392 +store __and_392_3170 392 iconst 393 0 -store __and_393_3162 393 +store __and_393_3170 393 load 394 mname strref 395 m46s6 call 396 pith_cstring_eq bool 2 394 395 call 397 pith_cstring_release void 1 395 -store __and_393_3162 396 -brif 396 L3162 L3163 -label L3162 +store __and_393_3170 396 +brif 396 L3170 L3171 +label L3170 load 398 ir_emitter_core_ir_current_impl_subst_params call 399 pith_list_len int 1 398 iconst 400 0 gt 401 399 400 -store __and_393_3162 401 -label L3163 -load 402 __and_393_3162 -store __and_392_3162 402 -brif 402 L3164 L3165 -label L3164 +store __and_393_3170 401 +label L3171 +load 402 __and_393_3170 +store __and_392_3170 402 +brif 402 L3172 L3173 +label L3172 load 403 node field 404 403 16 list children call 405 pith_list_len int 1 404 iconst 406 1 eq 407 405 406 -store __and_392_3162 407 -label L3165 -load 408 __and_392_3162 -brif 408 L3160 L3161 -label L3160 +store __and_392_3170 407 +label L3173 +load 408 __and_392_3170 +brif 408 L3168 L3169 +label L3168 load 409 node field 410 409 16 list children iconst 411 0 @@ -151150,8 +151253,8 @@ call 450 pith_cstring_release void 1 449 load 451 end_l call 452 pith_cstring_release void 1 451 ret 436 -label L3161 -label L3159 +label L3169 +label L3167 iconst 453 0 iconst 454 1 sub 455 453 454 @@ -151225,8 +151328,8 @@ load 18 alias_fname call 19 string_len int 1 18 iconst 20 0 gt 21 19 20 -brif 21 L3167 L3168 -label L3167 +brif 21 L3175 L3176 +label L3175 load 22 call_name load 23 alias_fname call 24 pith_cstring_retain void 1 23 @@ -151238,32 +151341,32 @@ store alias_expr_tid 27 load 28 alias_expr_tid iconst 29 0 gte 30 28 29 -brif 30 L3170 L3171 -label L3170 +brif 30 L3178 L3179 +label L3178 load 31 alias_expr_info load 32 alias_expr_tid call 33 types_get_type_info struct:TypeInfo 1 32 call 34 pith_struct_release void 1 31 store alias_expr_info 33 iconst 35 0 -store __and_35_3175 35 +store __and_35_3183 35 load 36 alias_expr_info field 37 36 0 string kind strref 38 m46s15 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 -store __and_35_3175 39 -brif 39 L3175 L3176 -label L3175 +store __and_35_3183 39 +brif 39 L3183 L3184 +label L3183 load 41 alias_expr_info field 42 41 8 string name load 43 call_name call 44 pith_cstring_eq bool 2 42 43 -store __and_35_3175 44 -label L3176 -load 45 __and_35_3175 -brif 45 L3173 L3174 -label L3173 +store __and_35_3183 44 +label L3184 +load 45 __and_35_3183 +brif 45 L3181 L3182 +label L3181 load 46 ctor_args call 47 pith_list_new_default list 0 call 48 pith_list_release_handle void 1 46 @@ -151275,12 +151378,12 @@ iconst 52 0 store __for_idx_346 52 store __for_len_346 51 store __for_iter_346 50 -label L3177 +label L3185 load 53 __for_idx_346 load 54 __for_len_346 lt 55 53 54 -brif 55 L3178 L3180 -label L3178 +brif 55 L3186 L3188 +label L3186 load 56 __for_iter_346 load 57 __for_idx_346 call 58 pith_list_get_value unknown 2 56 57 @@ -151290,21 +151393,21 @@ store __loopvar_346_ci 59 load 60 __loopvar_346_ci iconst 61 0 eq 62 60 61 -brif 62 L3182 L3183 -label L3182 -jmp L3179 -label L3183 -label L3181 +brif 62 L3190 L3191 +label L3190 +jmp L3187 +label L3191 +label L3189 load 63 ctor_args load 64 __loopvar_346_child call 65 pith_list_push_value void 2 63 64 -label L3179 +label L3187 load 66 __for_idx_346 iconst 67 1 add 68 66 67 store __for_idx_346 68 -jmp L3177 -label L3180 +jmp L3185 +label L3188 load 69 call_name load 70 ctor_args load 71 alias_expr_tid @@ -151328,15 +151431,15 @@ call 88 pith_list_release_handle void 1 87 load 89 ret_type call 90 pith_cstring_release void 1 89 ret 72 -label L3174 -label L3172 -jmp L3169 -label L3171 -label L3169 +label L3182 +label L3180 +jmp L3177 +label L3179 +label L3177 load 91 call_name call 92 ir_generics_ir_is_generic_function_name bool 1 91 -brif 92 L3185 L3186 -label L3185 +brif 92 L3193 L3194 +label L3193 load 93 generic_ret_type load 94 idx call 95 ir_type_helpers_ir_checked_type string 1 94 @@ -151346,16 +151449,16 @@ load 97 generic_ret_type call 98 string_len int 1 97 iconst 99 0 eq 100 98 99 -brif 100 L3188 L3189 -label L3188 +brif 100 L3196 L3197 +label L3196 load 101 generic_ret_type load 102 idx call 103 ir_emitter_core_ir_infer_type string 1 102 call 104 pith_cstring_release void 1 101 store generic_ret_type 103 -jmp L3187 -label L3189 -label L3187 +jmp L3195 +label L3197 +label L3195 load 105 mct load 106 call_name load 107 node @@ -151374,9 +151477,9 @@ load 118 generic_ret_type call 119 ir_generics_ir_queue_generic_specialization string 3 116 117 118 call 120 pith_cstring_release void 1 115 store call_name 119 -jmp L3184 -label L3186 -label L3184 +jmp L3192 +label L3194 +label L3192 load 121 arg_regs load 122 node iconst 123 1 @@ -151419,36 +151522,36 @@ iconst 153 1 load 154 arg_regs call 155 ir_emitter_core_ir_release_owned_string_args void 3 152 153 154 iconst 156 0 -store __and_156_3193 156 +store __and_156_3201 156 iconst 157 0 -store __and_157_3193 157 +store __and_157_3201 157 load 158 uses_result_abi -store __and_157_3193 158 -brif 158 L3193 L3194 -label L3193 +store __and_157_3201 158 +brif 158 L3201 L3202 +label L3201 load 159 ret_type strref 160 m46s23 call 162 pith_cstring_eq bool 2 159 160 iconst 163 1 sub 161 163 162 call 164 pith_cstring_release void 1 160 -store __and_157_3193 161 -label L3194 -load 165 __and_157_3193 -store __and_156_3193 165 -brif 165 L3195 L3196 -label L3195 +store __and_157_3201 161 +label L3202 +load 165 __and_157_3201 +store __and_156_3201 165 +brif 165 L3203 L3204 +label L3203 load 166 idx call 167 ir_type_helpers_ir_checked_result_kind string 1 166 strref 168 m46s23 call 169 pith_cstring_eq bool 2 167 168 call 170 pith_cstring_release void 1 167 call 171 pith_cstring_release void 1 168 -store __and_156_3193 169 -label L3196 -load 172 __and_156_3193 -brif 172 L3191 L3192 -label L3191 +store __and_156_3201 169 +label L3204 +load 172 __and_156_3201 +brif 172 L3199 L3200 +label L3199 load 173 r load 174 ret_type load 175 call_name @@ -151472,8 +151575,8 @@ call 192 pith_list_release_handle void 1 191 load 193 ret_type call 194 pith_cstring_release void 1 193 ret 176 -label L3192 -label L3190 +label L3200 +label L3198 load 195 r load 196 node call 197 pith_struct_release void 1 196 @@ -151494,8 +151597,8 @@ call 211 pith_list_release_handle void 1 210 load 212 ret_type call 213 pith_cstring_release void 1 212 ret 195 -label L3168 -label L3166 +label L3176 +label L3174 iconst 214 0 iconst 215 1 sub 216 214 215 @@ -151601,8 +151704,8 @@ store self_hosted_list_r 36 load 37 self_hosted_list_r iconst 38 0 gte 39 37 38 -brif 39 L3198 L3199 -label L3198 +brif 39 L3206 L3207 +label L3206 load 40 self_hosted_list_r load 41 node call 42 pith_struct_release void 1 41 @@ -151639,8 +151742,8 @@ call 72 pith_list_release_handle void 1 71 load 73 recv_kind call 74 pith_cstring_release void 1 73 ret 40 -label L3199 -label L3197 +label L3207 +label L3205 load 75 cf_struct load 76 obj_type call 77 ir_method_tables_ir_strip_type_args string 1 76 @@ -151650,8 +151753,8 @@ load 79 cf_struct call 80 string_len int 1 79 iconst 81 0 gt 82 80 81 -brif 82 L3201 L3202 -label L3201 +brif 82 L3209 L3210 +label L3209 load 83 field_key load 84 cf_struct strref 85 m46s26 @@ -151669,22 +151772,22 @@ call 95 ir_emitter_core_ir_lookup_impl_method_name string 2 93 94 call 96 pith_cstring_release void 1 92 store existing_method 95 iconst 97 0 -store __and_97_3206 97 +store __and_97_3214 97 load 98 ir_struct_registry_ir_struct_field_index_lookup load 99 field_key call 100 contains_key bool 2 98 99 -store __and_97_3206 100 -brif 100 L3206 L3207 -label L3206 +store __and_97_3214 100 +brif 100 L3214 L3215 +label L3214 load 101 existing_method call 102 string_len int 1 101 iconst 103 0 eq 104 102 103 -store __and_97_3206 104 -label L3207 -load 105 __and_97_3206 -brif 105 L3204 L3205 -label L3204 +store __and_97_3214 104 +label L3215 +load 105 __and_97_3214 +brif 105 L3212 L3213 +label L3212 load 106 node field 107 106 16 list children iconst 108 0 @@ -151760,7 +151863,7 @@ call 173 pith_list_release_handle void 1 171 store arg_regs 172 iconst 174 0 store ai 174 -label L3208 +label L3216 load 175 ai load 176 node field 177 176 16 list children @@ -151768,8 +151871,8 @@ call 178 pith_list_len int 1 177 iconst 179 1 sub 180 178 179 lt 181 175 180 -brif 181 L3209 L3210 -label L3209 +brif 181 L3217 L3218 +label L3217 load 182 node load 183 ai call 184 ir_emitter_core_ir_method_call_arg_expr int 2 182 183 @@ -151782,8 +151885,8 @@ load 189 ai iconst 190 1 add 191 189 190 store ai 191 -jmp L3208 -label L3210 +jmp L3216 +label L3218 call 192 ir_builder_ir_reg int 0 store r 192 strref 193 m46s1033 @@ -151852,11 +151955,11 @@ call 255 pith_list_release_handle void 1 254 load 256 recv_kind call 257 pith_cstring_release void 1 256 ret 223 -label L3205 -label L3203 -jmp L3200 -label L3202 -label L3200 +label L3213 +label L3211 +jmp L3208 +label L3210 +label L3208 load 258 emit_name load 259 mname load 260 obj_type @@ -151864,14 +151967,14 @@ call 261 ir_metadata_ir_method_emit_name string 2 259 260 call 262 pith_cstring_release void 1 258 store emit_name 261 iconst 263 0 -store __and_263_3214 263 +store __and_263_3222 263 load 264 emit_name strref 265 m46s707 call 266 pith_cstring_eq bool 2 264 265 call 267 pith_cstring_release void 1 265 -store __and_263_3214 266 -brif 266 L3214 L3215 -label L3214 +store __and_263_3222 266 +brif 266 L3222 L3223 +label L3222 load 268 node field 269 268 16 list children iconst 270 0 @@ -151881,30 +151984,30 @@ strref 273 m46s671 call 274 pith_cstring_eq bool 2 272 273 call 275 pith_cstring_release void 1 272 call 276 pith_cstring_release void 1 273 -store __and_263_3214 274 -label L3215 -load 277 __and_263_3214 -brif 277 L3212 L3213 -label L3212 +store __and_263_3222 274 +label L3223 +load 277 __and_263_3222 +brif 277 L3220 L3221 +label L3220 load 278 emit_name strref 279 m46s1214 call 280 pith_cstring_release void 1 278 store emit_name 279 -jmp L3211 -label L3213 -label L3211 +jmp L3219 +label L3221 +label L3219 load 281 emit_name call 282 ir_metadata_ir_is_bool_returning_method bool 1 281 -brif 282 L3217 L3218 -label L3217 +brif 282 L3225 L3226 +label L3225 load 283 ir_builder_ir_var_types strref 284 m46s1213 strref 285 m46s673 call 286 pith_map_insert_cstr_owned void 3 283 284 285 call 287 pith_cstring_release void 1 284 -jmp L3216 -label L3218 -label L3216 +jmp L3224 +label L3226 +label L3224 load 288 impl_name load 289 obj_type load 290 mname @@ -151915,33 +152018,33 @@ load 293 impl_name call 294 string_len int 1 293 iconst 295 0 eq 296 294 295 -brif 296 L3220 L3221 -label L3220 +brif 296 L3228 L3229 +label L3228 load 297 impl_name load 298 obj_type load 299 mname call 300 ir_emitter_core_ir_lookup_impl_method_name string 2 298 299 call 301 pith_cstring_release void 1 297 store impl_name 300 -jmp L3219 -label L3221 -label L3219 +jmp L3227 +label L3229 +label L3227 load 302 impl_name call 303 string_len int 1 302 iconst 304 0 gt 305 303 304 store impl_dispatch 305 load 306 impl_dispatch -brif 306 L3223 L3224 -label L3223 +brif 306 L3231 L3232 +label L3231 load 307 emit_name load 308 impl_name call 309 pith_cstring_retain void 1 308 call 310 pith_cstring_release void 1 307 store emit_name 308 -jmp L3222 -label L3224 -label L3222 +jmp L3230 +label L3232 +label L3230 load 311 call_regs load 312 node call 313 ir_emitter_core_ir_collect_method_call_regs list 1 312 @@ -151957,15 +152060,15 @@ call 320 pith_list_release_handle void 1 318 store arg_regs 319 iconst 321 0 store ci 321 -label L3225 +label L3233 load 322 ci iconst 323 1 add 324 322 323 load 325 call_regs call 326 pith_list_len int 1 325 lt 327 324 326 -brif 327 L3226 L3227 -label L3226 +brif 327 L3234 L3235 +label L3234 load 328 arg_regs load 329 call_regs load 330 ci @@ -151977,8 +152080,8 @@ load 335 ci iconst 336 1 add 337 335 336 store ci 337 -jmp L3225 -label L3227 +jmp L3233 +label L3235 call 338 ir_builder_ir_reg int 0 store r 338 load 339 emit_name @@ -152003,122 +152106,122 @@ call 354 pith_cstring_release void 1 349 store ret_type 353 load 355 emit_name call 356 ir_metadata_ir_is_void_method bool 1 355 -brif 356 L3229 L3230 -label L3229 +brif 356 L3237 L3238 +label L3237 load 357 ret_type strref 358 m46s828 call 359 pith_cstring_release void 1 357 store ret_type 358 -jmp L3228 -label L3230 -label L3228 +jmp L3236 +label L3238 +label L3236 iconst 360 0 iconst 361 1 sub 362 360 361 store store_value_pos 362 iconst 363 0 -store __or_363_3234 363 +store __or_363_3242 363 iconst 364 0 -store __or_364_3234 364 +store __or_364_3242 364 iconst 365 0 -store __or_365_3234 365 +store __or_365_3242 365 load 366 emit_name call 367 ir_emitter_core_ir_is_channel_send_name bool 1 366 -store __or_365_3234 367 -brif 367 L3235 L3234 -label L3234 +store __or_365_3242 367 +brif 367 L3243 L3242 +label L3242 load 368 emit_name strref 369 m46s268 call 370 pith_cstring_eq bool 2 368 369 call 371 pith_cstring_release void 1 369 -store __or_365_3234 370 -label L3235 -load 372 __or_365_3234 -store __or_364_3234 372 -brif 372 L3237 L3236 -label L3236 +store __or_365_3242 370 +label L3243 +load 372 __or_365_3242 +store __or_364_3242 372 +brif 372 L3245 L3244 +label L3244 load 373 emit_name strref 374 m46s749 call 375 pith_cstring_eq bool 2 373 374 call 376 pith_cstring_release void 1 374 -store __or_364_3234 375 -label L3237 -load 377 __or_364_3234 -store __or_363_3234 377 -brif 377 L3239 L3238 -label L3238 +store __or_364_3242 375 +label L3245 +load 377 __or_364_3242 +store __or_363_3242 377 +brif 377 L3247 L3246 +label L3246 load 378 emit_name strref 379 m46s750 call 380 pith_cstring_eq bool 2 378 379 call 381 pith_cstring_release void 1 379 -store __or_363_3234 380 -label L3239 -load 382 __or_363_3234 -brif 382 L3232 L3233 -label L3232 +store __or_363_3242 380 +label L3247 +load 382 __or_363_3242 +brif 382 L3240 L3241 +label L3240 iconst 383 0 store store_value_pos 383 -jmp L3231 -label L3233 +jmp L3239 +label L3241 iconst 384 0 -store __or_384_3242 384 +store __or_384_3250 384 iconst 385 0 -store __or_385_3242 385 +store __or_385_3250 385 iconst 386 0 -store __or_386_3242 386 +store __or_386_3250 386 iconst 387 0 -store __or_387_3242 387 +store __or_387_3250 387 load 388 emit_name strref 389 m46s247 call 390 pith_cstring_eq bool 2 388 389 call 391 pith_cstring_release void 1 389 -store __or_387_3242 390 -brif 390 L3243 L3242 -label L3242 +store __or_387_3250 390 +brif 390 L3251 L3250 +label L3250 load 392 emit_name strref 393 m46s693 call 394 pith_cstring_eq bool 2 392 393 call 395 pith_cstring_release void 1 393 -store __or_387_3242 394 -label L3243 -load 396 __or_387_3242 -store __or_386_3242 396 -brif 396 L3245 L3244 -label L3244 +store __or_387_3250 394 +label L3251 +load 396 __or_387_3250 +store __or_386_3250 396 +brif 396 L3253 L3252 +label L3252 load 397 emit_name strref 398 m46s694 call 399 pith_cstring_eq bool 2 397 398 call 400 pith_cstring_release void 1 398 -store __or_386_3242 399 -label L3245 -load 401 __or_386_3242 -store __or_385_3242 401 -brif 401 L3247 L3246 -label L3246 +store __or_386_3250 399 +label L3253 +load 401 __or_386_3250 +store __or_385_3250 401 +brif 401 L3255 L3254 +label L3254 load 402 emit_name strref 403 m46s18 call 404 pith_cstring_eq bool 2 402 403 call 405 pith_cstring_release void 1 403 -store __or_385_3242 404 -label L3247 -load 406 __or_385_3242 -store __or_384_3242 406 -brif 406 L3249 L3248 -label L3248 +store __or_385_3250 404 +label L3255 +load 406 __or_385_3250 +store __or_384_3250 406 +brif 406 L3257 L3256 +label L3256 load 407 emit_name strref 408 m46s774 call 409 pith_cstring_eq bool 2 407 408 call 410 pith_cstring_release void 1 408 -store __or_384_3242 409 -label L3249 -load 411 __or_384_3242 -brif 411 L3240 L3241 -label L3240 +store __or_384_3250 409 +label L3257 +load 411 __or_384_3250 +brif 411 L3248 L3249 +label L3248 iconst 412 1 store store_value_pos 412 -jmp L3231 -label L3241 -label L3231 +jmp L3239 +label L3249 +label L3239 load 413 call_name load 414 emit_name call 415 pith_cstring_retain void 1 414 @@ -152127,25 +152230,25 @@ store call_name 414 load 417 impl_dispatch iconst 419 1 sub 418 419 417 -brif 418 L3251 L3252 -label L3251 +brif 418 L3259 L3260 +label L3259 iconst 420 0 -store __and_420_3256 420 +store __and_420_3264 420 load 421 store_value_pos iconst 422 0 gte 423 421 422 -store __and_420_3256 423 -brif 423 L3256 L3257 -label L3256 +store __and_420_3264 423 +brif 423 L3264 L3265 +label L3264 load 424 store_value_pos load 425 arg_regs call 426 pith_list_len int 1 425 lt 427 424 426 -store __and_420_3256 427 -label L3257 -load 428 __and_420_3256 -brif 428 L3254 L3255 -label L3254 +store __and_420_3264 427 +label L3265 +load 428 __and_420_3264 +brif 428 L3262 L3263 +label L3262 load 429 node load 430 store_value_pos call 431 ir_emitter_core_ir_method_call_arg_expr int 2 429 430 @@ -152153,8 +152256,8 @@ store value_expr 431 load 432 value_expr iconst 433 0 gte 434 432 433 -brif 434 L3259 L3260 -label L3259 +brif 434 L3267 L3268 +label L3267 load 435 store_kind load 436 value_expr call 437 ir_emitter_core_ir_infer_type string 1 436 @@ -152164,27 +152267,27 @@ call 440 pith_cstring_release void 1 435 store store_kind 438 load 441 value_expr call 442 ir_emitter_core_ir_string_expr_is_borrowed bool 1 441 -brif 442 L3262 L3263 -label L3262 +brif 442 L3270 L3271 +label L3270 load 443 emit_name load 444 store_kind call 445 ir_emitter_core_ir_container_store_needs_retain bool 2 443 444 -brif 445 L3265 L3266 -label L3265 +brif 445 L3273 L3274 +label L3273 load 446 arg_regs load 447 store_value_pos call 448 pith_list_get_value_strict int 2 446 447 load 449 store_kind call 450 ir_ownership_ir_rc_retain_reg void 2 448 449 -jmp L3264 -label L3266 -label L3264 -jmp L3261 -label L3263 +jmp L3272 +label L3274 +label L3272 +jmp L3269 +label L3271 load 451 store_kind call 452 ir_emitter_core_ir_container_store_takes_count bool 1 451 -brif 452 L3267 L3268 -label L3267 +brif 452 L3275 L3276 +label L3275 load 453 owned_store load 454 emit_name call 455 ir_emitter_core_ir_owned_container_store_name string 1 454 @@ -152194,28 +152297,28 @@ load 457 owned_store call 458 string_len int 1 457 iconst 459 0 gt 460 458 459 -brif 460 L3270 L3271 -label L3270 +brif 460 L3278 L3279 +label L3278 load 461 call_name load 462 owned_store call 463 pith_cstring_retain void 1 462 call 464 pith_cstring_release void 1 461 store call_name 462 +jmp L3277 +label L3279 +label L3277 jmp L3269 -label L3271 +label L3276 label L3269 -jmp L3261 +jmp L3266 label L3268 +label L3266 +jmp L3261 +label L3263 label L3261 jmp L3258 -label L3260 -label L3258 -jmp L3253 -label L3255 -label L3253 -jmp L3250 -label L3252 -label L3250 +label L3260 +label L3258 load 465 call_args load 466 obj_r load 467 arg_regs @@ -152223,22 +152326,22 @@ call 468 ir_call_helpers_ir_method_call_arg_regs list 2 466 467 call 469 pith_list_release_handle void 1 465 store call_args 468 iconst 470 0 -store __and_470_3275 470 +store __and_470_3283 470 load 471 emit_name strref 472 m46s661 call 473 pith_cstring_eq bool 2 471 472 call 474 pith_cstring_release void 1 472 -store __and_470_3275 473 -brif 473 L3275 L3276 -label L3275 +store __and_470_3283 473 +brif 473 L3283 L3284 +label L3283 load 475 impl_dispatch iconst 477 1 sub 476 477 475 -store __and_470_3275 476 -label L3276 -load 478 __and_470_3275 -brif 478 L3273 L3274 -label L3273 +store __and_470_3283 476 +label L3284 +load 478 __and_470_3283 +brif 478 L3281 L3282 +label L3281 load 479 obj_r load 480 node call 481 pith_struct_release void 1 480 @@ -152275,8 +152378,8 @@ call 511 pith_list_release_handle void 1 510 load 512 recv_kind call 513 pith_cstring_release void 1 512 ret 479 -label L3274 -label L3272 +label L3282 +label L3280 load 514 r load 515 call_name load 516 ret_type @@ -152295,8 +152398,8 @@ field 528 527 16 list children call 529 pith_list_len int 1 528 iconst 530 0 gt 531 529 530 -brif 531 L3278 L3279 -label L3278 +brif 531 L3286 L3287 +label L3286 load 532 node field 533 532 16 list children iconst 534 0 @@ -152310,72 +152413,72 @@ call 540 pith_cstring_release void 1 538 call 541 pith_cstring_release void 1 536 store recv_kind 539 iconst 542 0 -store __and_542_3283 542 +store __and_542_3291 542 load 543 recv_kind call 544 string_len int 1 543 iconst 545 0 gt 546 544 545 -store __and_542_3283 546 -brif 546 L3283 L3284 -label L3283 +store __and_542_3291 546 +brif 546 L3291 L3292 +label L3291 load 547 recv_idx call 548 ir_emitter_core_ir_string_expr_is_borrowed bool 1 547 iconst 550 1 sub 549 550 548 -store __and_542_3283 549 -label L3284 -load 551 __and_542_3283 -brif 551 L3281 L3282 -label L3281 +store __and_542_3291 549 +label L3292 +load 551 __and_542_3291 +brif 551 L3289 L3290 +label L3289 load 552 emit_name call 553 ir_metadata_ir_is_void_method bool 1 552 iconst 555 1 sub 554 555 553 -brif 554 L3286 L3287 -label L3286 +brif 554 L3294 L3295 +label L3294 load 556 obj_r load 557 recv_kind call 558 ir_ownership_ir_rc_release_reg void 2 556 557 +jmp L3293 +label L3295 +label L3293 +jmp L3288 +label L3290 +label L3288 jmp L3285 label L3287 label L3285 -jmp L3280 -label L3282 -label L3280 -jmp L3277 -label L3279 -label L3277 iconst 559 0 -store __and_559_3291 559 +store __and_559_3299 559 iconst 560 0 -store __and_560_3291 560 +store __and_560_3299 560 load 561 uses_result_abi -store __and_560_3291 561 -brif 561 L3291 L3292 -label L3291 +store __and_560_3299 561 +brif 561 L3299 L3300 +label L3299 load 562 ret_type strref 563 m46s23 call 565 pith_cstring_eq bool 2 562 563 iconst 566 1 sub 564 566 565 call 567 pith_cstring_release void 1 563 -store __and_560_3291 564 -label L3292 -load 568 __and_560_3291 -store __and_559_3291 568 -brif 568 L3293 L3294 -label L3293 +store __and_560_3299 564 +label L3300 +load 568 __and_560_3299 +store __and_559_3299 568 +brif 568 L3301 L3302 +label L3301 load 569 idx call 570 ir_type_helpers_ir_checked_result_kind string 1 569 strref 571 m46s23 call 572 pith_cstring_eq bool 2 570 571 call 573 pith_cstring_release void 1 570 call 574 pith_cstring_release void 1 571 -store __and_559_3291 572 -label L3294 -load 575 __and_559_3291 -brif 575 L3289 L3290 -label L3289 +store __and_559_3299 572 +label L3302 +load 575 __and_559_3299 +brif 575 L3297 L3298 +label L3297 load 576 r load 577 ret_type load 578 emit_name @@ -152415,12 +152518,12 @@ call 611 pith_list_release_handle void 1 610 load 612 recv_kind call 613 pith_cstring_release void 1 612 ret 579 -label L3290 -label L3288 +label L3298 +label L3296 load 614 emit_name call 615 ir_metadata_ir_is_void_method bool 1 614 -brif 615 L3296 L3297 -label L3296 +brif 615 L3304 L3305 +label L3304 load 616 obj_r load 617 node call 618 pith_struct_release void 1 617 @@ -152457,8 +152560,8 @@ call 648 pith_list_release_handle void 1 647 load 649 recv_kind call 650 pith_cstring_release void 1 649 ret 616 -label L3297 -label L3295 +label L3305 +label L3303 load 651 r load 652 node call 653 pith_struct_release void 1 652 @@ -152548,8 +152651,8 @@ field 8 7 0 string kind strref 9 m46s509 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 -brif 10 L3299 L3300 -label L3299 +brif 10 L3307 L3308 +label L3307 load 12 si load 13 cn field 14 13 8 string value @@ -152579,15 +152682,15 @@ call 35 pith_struct_release void 1 34 load 36 si call 37 pith_cstring_release void 1 36 ret 33 -label L3300 -label L3298 +label L3308 +label L3306 load 38 cn field 39 38 0 string kind strref 40 m46s510 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 -brif 41 L3302 L3303 -label L3302 +brif 41 L3310 L3311 +label L3310 load 43 cn call 44 ir_emitter_core_ir_emit_interp_spec_part int 1 43 load 45 cn @@ -152595,8 +152698,8 @@ call 46 pith_struct_release void 1 45 load 47 si call 48 pith_cstring_release void 1 47 ret 44 -label L3303 -label L3301 +label L3311 +label L3309 load 49 child call 50 ir_emitter_core_ir_string_interp_expr_part int 1 49 load 51 cn @@ -152625,29 +152728,29 @@ field 7 6 0 string kind strref 8 m46s510 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L3305 L3306 -label L3305 +brif 9 L3313 L3314 +label L3313 iconst 11 1 load 12 cn call 13 pith_struct_release void 1 12 ret 11 -label L3306 -label L3304 +label L3314 +label L3312 load 14 cn field 15 14 0 string kind strref 16 m46s509 call 17 pith_cstring_eq bool 2 15 16 call 18 pith_cstring_release void 1 16 -brif 17 L3308 L3309 -label L3308 +brif 17 L3316 L3317 +label L3316 iconst 19 1 load 20 cn call 21 pith_struct_release void 1 20 ret 19 -label L3309 -label L3307 +label L3317 +label L3315 iconst 22 0 -store __or_22_3310 22 +store __or_22_3318 22 load 23 child call 24 ir_emitter_core_ir_infer_type string 1 23 strref 25 m46s675 @@ -152656,16 +152759,16 @@ iconst 28 1 sub 26 28 27 call 29 pith_cstring_release void 1 24 call 30 pith_cstring_release void 1 25 -store __or_22_3310 26 -brif 26 L3311 L3310 -label L3310 +store __or_22_3318 26 +brif 26 L3319 L3318 +label L3318 load 31 child call 32 ir_emitter_core_ir_string_expr_is_borrowed bool 1 31 iconst 34 1 sub 33 34 32 -store __or_22_3310 33 -label L3311 -load 35 __or_22_3310 +store __or_22_3318 33 +label L3319 +load 35 __or_22_3318 load 36 cn call 37 pith_struct_release void 1 36 ret 35 @@ -152699,13 +152802,13 @@ field 14 13 16 list children call 15 pith_list_retain_handle void 1 14 call 16 pith_list_release_handle void 1 12 store kids4_children 14 -label L3312 +label L3320 load 17 _fi4 load 18 kids4_children call 19 pith_list_len int 1 18 lt 20 17 19 -brif 20 L3313 L3314 -label L3313 +brif 20 L3321 L3322 +label L3321 load 21 kids4_children load 22 _fi4 call 23 pith_list_get_value_strict int 2 21 22 @@ -152719,14 +152822,14 @@ store part_owned 27 load 28 result_r iconst 29 0 lt 30 28 29 -brif 30 L3316 L3317 -label L3316 +brif 30 L3324 L3325 +label L3324 load 31 part_r store result_r 31 load 32 part_owned store result_owned 32 -jmp L3315 -label L3317 +jmp L3323 +label L3325 call 33 ir_builder_ir_reg int 0 store nr 33 strref 34 m46s1212 @@ -152756,37 +152859,37 @@ call 57 pith_cstring_release void 1 54 call 58 ir_builder_ir_emit void 1 55 call 59 pith_cstring_release void 1 55 load 60 result_owned -brif 60 L3319 L3320 -label L3319 +brif 60 L3327 L3328 +label L3327 load 61 result_r call 62 ir_ownership_ir_string_release_reg void 1 61 -jmp L3318 -label L3320 -label L3318 +jmp L3326 +label L3328 +label L3326 load 63 part_owned -brif 63 L3322 L3323 -label L3322 +brif 63 L3330 L3331 +label L3330 load 64 part_r call 65 ir_ownership_ir_string_release_reg void 1 64 -jmp L3321 -label L3323 -label L3321 +jmp L3329 +label L3331 +label L3329 load 66 nr store result_r 66 iconst 67 1 store result_owned 67 -label L3315 +label L3323 load 68 _fi4 iconst 69 1 add 70 68 69 store _fi4 70 -jmp L3312 -label L3314 +jmp L3320 +label L3322 load 71 result_r iconst 72 0 lt 73 71 72 -brif 73 L3325 L3326 -label L3325 +brif 73 L3333 L3334 +label L3333 call 74 ir_builder_ir_reg int 0 store result_r 74 strref 75 m46s888 @@ -152809,19 +152912,19 @@ call 91 ir_builder_ir_emit void 1 88 call 92 pith_cstring_release void 1 88 iconst 93 1 store result_owned 93 -jmp L3324 -label L3326 -label L3324 +jmp L3332 +label L3334 +label L3332 load 94 result_owned iconst 96 1 sub 95 96 94 -brif 95 L3328 L3329 -label L3328 +brif 95 L3336 L3337 +label L3336 load 97 result_r call 98 ir_ownership_ir_string_retain_reg void 1 97 -jmp L3327 -label L3329 -label L3327 +jmp L3335 +label L3337 +label L3335 load 99 result_r load 100 node call 101 pith_struct_release void 1 100 @@ -152853,13 +152956,13 @@ sub 9 7 8 store body_idx 9 iconst 10 0 store i 10 -label L3330 +label L3338 load 11 i load 12 idx call 13 ast_node_child_count int 1 12 lt 14 11 13 -brif 14 L3331 L3332 -label L3331 +brif 14 L3339 L3340 +label L3339 load 15 idx load 16 i call 17 ast_node_child int 2 15 16 @@ -152874,45 +152977,45 @@ field 23 22 0 string kind strref 24 m46s68 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 -brif 25 L3334 L3335 -label L3334 +brif 25 L3342 L3343 +label L3342 load 27 params load 28 cn field 29 28 8 string value call 30 pith_list_push_value void 2 27 29 -jmp L3333 -label L3335 +jmp L3341 +label L3343 iconst 31 0 -store __or_31_3338 31 +store __or_31_3346 31 load 32 cn field 33 32 0 string kind strref 34 m46s65 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 -store __or_31_3338 35 -brif 35 L3339 L3338 -label L3338 +store __or_31_3346 35 +brif 35 L3347 L3346 +label L3346 load 37 cn field 38 37 0 string kind strref 39 m46s64 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 -store __or_31_3338 40 -label L3339 -load 42 __or_31_3338 -brif 42 L3336 L3337 -label L3336 +store __or_31_3346 40 +label L3347 +load 42 __or_31_3346 +brif 42 L3344 L3345 +label L3344 load 43 child store body_idx 43 -jmp L3333 -label L3337 -label L3333 +jmp L3341 +label L3345 +label L3341 load 44 i iconst 45 1 add 46 44 45 store i 46 -jmp L3330 -label L3332 +jmp L3338 +label L3340 load 47 captures call 48 pith_list_new_cstr list 0 call 49 pith_list_release_handle void 1 47 @@ -152920,17 +153023,17 @@ store captures 48 load 50 body_idx iconst 51 0 gte 52 50 51 -brif 52 L3341 L3342 -label L3341 +brif 52 L3349 L3350 +label L3349 load 53 captures load 54 body_idx load 55 params call 56 ir_emitter_core_ir_find_free_vars list_string 2 54 55 call 57 pith_list_release_handle void 1 53 store captures 56 -jmp L3340 -label L3342 -label L3340 +jmp L3348 +label L3350 +label L3348 load 58 params call 59 pith_list_retain_handle void 1 58 load 60 body_idx @@ -152980,12 +153083,12 @@ iconst 3 0 store __for_idx_347 3 store __for_len_347 2 store __for_iter_347 1 -label L3343 +label L3351 load 4 __for_idx_347 load 5 __for_len_347 lt 6 4 5 -brif 6 L3344 L3346 -label L3344 +brif 6 L3352 L3354 +label L3352 load 7 __for_iter_347 load 8 __for_idx_347 call 9 pith_list_get_value_unchecked string 2 7 8 @@ -153002,13 +153105,13 @@ concat 17 15 16 call 18 pith_cstring_release void 1 15 call 19 ir_builder_ir_emit void 1 17 call 20 pith_cstring_release void 1 17 -label L3345 +label L3353 load 21 __for_idx_347 iconst 22 1 add 23 21 22 store __for_idx_347 23 -jmp L3343 -label L3346 +jmp L3351 +label L3354 iconst 24 0 ret 24 endfunc @@ -153018,30 +153121,30 @@ load 1 expr_idx call 2 ir_emitter_core_ir_expr int 1 1 store br 2 iconst 3 0 -store __and_3_3350 3 +store __and_3_3358 3 load 4 expr_idx call 5 ir_emitter_core_ir_infer_type string 1 4 strref 6 m46s675 call 7 pith_cstring_eq bool 2 5 6 call 8 pith_cstring_release void 1 5 call 9 pith_cstring_release void 1 6 -store __and_3_3350 7 -brif 7 L3350 L3351 -label L3350 +store __and_3_3358 7 +brif 7 L3358 L3359 +label L3358 load 10 expr_idx call 11 ir_emitter_core_ir_string_expr_is_borrowed bool 1 10 -store __and_3_3350 11 -label L3351 -load 12 __and_3_3350 -brif 12 L3348 L3349 -label L3348 +store __and_3_3358 11 +label L3359 +load 12 __and_3_3358 +brif 12 L3356 L3357 +label L3356 load 13 br strref 14 m46s675 call 15 ir_ownership_ir_rc_retain_reg void 2 13 14 call 16 pith_cstring_release void 1 14 -jmp L3347 -label L3349 -label L3347 +jmp L3355 +label L3357 +label L3355 strref 17 m46s849 load 18 br call 19 int_to_string string 1 18 @@ -153058,54 +153161,54 @@ param body_idx load 1 body_idx iconst 2 0 lt 3 1 2 -brif 3 L3353 L3354 -label L3353 +brif 3 L3361 L3362 +label L3361 iconst 4 0 ret 4 -label L3354 -label L3352 +label L3362 +label L3360 iconst 5 0 -store __and_5_3358 5 +store __and_5_3366 5 load 6 body_idx call 7 ast_node_kind string 1 6 strref 8 m46s65 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 7 call 11 pith_cstring_release void 1 8 -store __and_5_3358 9 -brif 9 L3358 L3359 -label L3358 +store __and_5_3366 9 +brif 9 L3366 L3367 +label L3366 load 12 body_idx call 13 ast_node_child_count int 1 12 iconst 14 0 gt 15 13 14 -store __and_5_3358 15 -label L3359 -load 16 __and_5_3358 -brif 16 L3356 L3357 -label L3356 +store __and_5_3366 15 +label L3367 +load 16 __and_5_3366 +brif 16 L3364 L3365 +label L3364 load 17 body_idx iconst 18 0 call 19 ast_node_child int 2 17 18 call 20 ir_emitter_core_ir_emit_lambda_expr_return void 1 19 iconst 21 0 ret 21 -label L3357 -label L3355 +label L3365 +label L3363 load 22 body_idx call 23 ast_node_kind string 1 22 strref 24 m46s64 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 23 call 27 pith_cstring_release void 1 24 -brif 25 L3361 L3362 -label L3361 +brif 25 L3369 L3370 +label L3369 load 28 body_idx call 29 ir_emitter_core_ir_block int 1 28 iconst 30 0 ret 30 -label L3362 -label L3360 +label L3370 +label L3368 load 31 body_idx call 32 ir_emitter_core_ir_emit_lambda_expr_return void 1 31 iconst 33 0 @@ -153428,8 +153531,8 @@ field 29 28 16 list children call 30 pith_list_len int 1 29 iconst 31 0 gt 32 30 31 -brif 32 L3364 L3365 -label L3364 +brif 32 L3372 L3373 +label L3372 load 33 callee load 34 call_node field 35 34 16 list children @@ -153443,8 +153546,8 @@ field 41 40 0 string name call 42 string_len int 1 41 iconst 43 0 eq 44 42 43 -brif 44 L3367 L3368 -label L3367 +brif 44 L3375 L3376 +label L3375 load 45 captures load 46 call_node field 47 46 16 list children @@ -153454,19 +153557,19 @@ call 50 pith_list_new_default list 0 call 51 ir_emitter_core_ir_find_free_vars list_string 2 49 50 call 52 pith_list_release_handle void 1 45 store captures 51 -jmp L3366 -label L3368 -label L3366 +jmp L3374 +label L3376 +label L3374 iconst 53 1 store i 53 -label L3369 +label L3377 load 54 i load 55 call_node field 56 55 16 list children call 57 pith_list_len int 1 56 lt 58 54 57 -brif 58 L3370 L3371 -label L3370 +brif 58 L3378 L3379 +label L3378 load 59 free_in_arg load 60 call_node field 61 60 16 list children @@ -153478,13 +153581,13 @@ call 66 pith_list_release_handle void 1 59 store free_in_arg 65 iconst 67 0 store j 67 -label L3372 +label L3380 load 68 j load 69 free_in_arg call 70 pith_list_len int 1 69 lt 71 68 70 -brif 71 L3373 L3374 -label L3373 +brif 71 L3381 L3382 +label L3381 load 72 captures load 73 free_in_arg load 74 j @@ -153492,31 +153595,31 @@ call 75 pith_list_get_value_strict string 2 73 74 call 76 ir_ast_helpers_ir_list_contains bool 2 72 75 iconst 78 1 sub 77 78 76 -brif 77 L3376 L3377 -label L3376 +brif 77 L3384 L3385 +label L3384 load 79 captures load 80 free_in_arg load 81 j call 82 pith_list_get_value_strict string 2 80 81 call 83 pith_list_push_value void 2 79 82 -jmp L3375 -label L3377 -label L3375 +jmp L3383 +label L3385 +label L3383 load 84 j iconst 85 1 add 86 84 85 store j 86 -jmp L3372 -label L3374 +jmp L3380 +label L3382 load 87 i iconst 88 1 add 89 87 88 store i 89 -jmp L3369 +jmp L3377 +label L3379 +jmp L3371 +label L3373 label L3371 -jmp L3363 -label L3365 -label L3363 load 90 saved_builder call 91 ir_builder_ir_builder_snapshot struct:IrBuilderSnapshot 0 call 92 pith_struct_release void 1 90 @@ -153628,38 +153731,38 @@ param name load 1 ir_alias_registry_ir_import_renames load 2 name call 3 contains_key bool 2 1 2 -brif 3 L3379 L3380 -label L3379 +brif 3 L3387 L3388 +label L3387 load 4 ir_alias_registry_ir_import_renames load 5 name call 6 map_get_strict string 2 4 5 call 7 pith_cstring_retain void 1 6 ret 6 -label L3380 -label L3378 +label L3388 +label L3386 iconst 8 0 -store __and_8_3384 8 +store __and_8_3392 8 load 9 ir_alias_registry_ir_active_generic_module_path call 10 string_len int 1 9 iconst 11 0 gt 12 10 11 -store __and_8_3384 12 -brif 12 L3384 L3385 -label L3384 +store __and_8_3392 12 +brif 12 L3392 L3393 +label L3392 load 13 ir_alias_registry_ir_active_generic_module_path load 14 name call 15 ir_alias_registry_ir_import_declares_global bool 2 13 14 -store __and_8_3384 15 -label L3385 -load 16 __and_8_3384 -brif 16 L3382 L3383 -label L3382 +store __and_8_3392 15 +label L3393 +load 16 __and_8_3392 +brif 16 L3390 L3391 +label L3390 load 17 ir_alias_registry_ir_active_generic_module_path load 18 name call 19 ir_names_ir_import_target_name string 2 17 18 ret 19 -label L3383 -label L3381 +label L3391 +label L3389 load 20 name call 21 pith_cstring_retain void 1 20 ret 20 @@ -153672,27 +153775,27 @@ param name iconst 2 0 store callee 2 iconst 3 0 -store __or_3_3389 3 +store __or_3_3397 3 load 4 ir_builder_ir_var_regs load 5 name call 6 contains_key bool 2 4 5 -store __or_3_3389 6 -brif 6 L3390 L3389 -label L3389 +store __or_3_3397 6 +brif 6 L3398 L3397 +label L3397 load 7 ir_builder_ir_var_types load 8 name call 9 contains_key bool 2 7 8 -store __or_3_3389 9 -label L3390 -load 10 __or_3_3389 -brif 10 L3387 L3388 -label L3387 +store __or_3_3397 9 +label L3398 +load 10 __or_3_3397 +brif 10 L3395 L3396 +label L3395 iconst 11 0 load 12 callee call 13 pith_struct_release void 1 12 ret 11 -label L3388 -label L3386 +label L3396 +label L3394 load 14 callee load 15 name call 16 ir_emitter_core_ir_ident_callee struct:ResolvedCallee 1 15 @@ -153725,8 +153828,8 @@ field 8 7 0 string kind strref 9 m46s37 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 -brif 10 L3392 L3393 -label L3392 +brif 10 L3400 L3401 +label L3400 load 12 idx load 13 node field 14 13 8 string value @@ -153736,28 +153839,28 @@ call 17 pith_struct_release void 1 16 load 18 recv_node call 19 pith_struct_release void 1 18 ret 15 -label L3393 -label L3391 +label L3401 +label L3399 iconst 20 0 -store __and_20_3397 20 +store __and_20_3405 20 load 21 node field 22 21 0 string kind strref 23 m46s36 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 -store __and_20_3397 24 -brif 24 L3397 L3398 -label L3397 +store __and_20_3405 24 +brif 24 L3405 L3406 +label L3405 load 26 node field 27 26 16 list children call 28 pith_list_len int 1 27 iconst 29 0 gt 30 28 29 -store __and_20_3397 30 -label L3398 -load 31 __and_20_3397 -brif 31 L3395 L3396 -label L3395 +store __and_20_3405 30 +label L3406 +load 31 __and_20_3405 +brif 31 L3403 L3404 +label L3403 load 32 recv_node load 33 node field 34 33 16 list children @@ -153767,45 +153870,45 @@ call 37 ast_get_node struct:Node 1 36 call 38 pith_struct_release void 1 32 store recv_node 37 iconst 39 0 -store __and_39_3402 39 +store __and_39_3410 39 load 40 recv_node field 41 40 0 string kind strref 42 m46s37 call 43 pith_cstring_eq bool 2 41 42 call 44 pith_cstring_release void 1 42 -store __and_39_3402 43 -brif 43 L3402 L3403 -label L3402 +store __and_39_3410 43 +brif 43 L3410 L3411 +label L3410 load 45 ir_alias_registry_ir_module_aliases load 46 recv_node field 47 46 8 string value call 48 contains_key bool 2 45 47 -store __and_39_3402 48 -label L3403 -load 49 __and_39_3402 +store __and_39_3410 48 +label L3411 +load 49 __and_39_3410 iconst 51 1 sub 50 51 49 -brif 50 L3400 L3401 -label L3400 +brif 50 L3408 L3409 +label L3408 iconst 52 0 load 53 node call 54 pith_struct_release void 1 53 load 55 recv_node call 56 pith_struct_release void 1 55 ret 52 -label L3401 -label L3399 +label L3409 +label L3407 load 57 idx call 58 checker_c_get_expr_type int 1 57 store expr_tid 58 iconst 59 0 -store __or_59_3407 59 +store __or_59_3415 59 load 60 expr_tid iconst 61 0 lt 62 60 61 -store __or_59_3407 62 -brif 62 L3408 L3407 -label L3407 +store __or_59_3415 62 +brif 62 L3416 L3415 +label L3415 load 63 expr_tid call 64 types_get_type_info struct:TypeInfo 1 63 field 65 64 0 string kind @@ -153814,19 +153917,19 @@ call 68 pith_cstring_eq bool 2 65 66 iconst 69 1 sub 67 69 68 call 70 pith_cstring_release void 1 66 -store __or_59_3407 67 -label L3408 -load 71 __or_59_3407 -brif 71 L3405 L3406 -label L3405 +store __or_59_3415 67 +label L3416 +load 71 __or_59_3415 +brif 71 L3413 L3414 +label L3413 iconst 72 0 load 73 node call 74 pith_struct_release void 1 73 load 75 recv_node call 76 pith_struct_release void 1 75 ret 72 -label L3406 -label L3404 +label L3414 +label L3412 load 77 idx call 78 ir_emitter_core_ir_resolve_static_callee struct:ResolvedCallee 1 77 field 79 78 0 string name @@ -153838,8 +153941,8 @@ call 84 pith_struct_release void 1 83 load 85 recv_node call 86 pith_struct_release void 1 85 ret 82 -label L3396 -label L3394 +label L3404 +label L3402 iconst 87 0 load 88 node call 89 pith_struct_release void 1 88 @@ -153879,8 +153982,8 @@ store arg_regs 11 load 12 ir_emitter_core_ir_named_fn_value_wrappers load 13 target_name call 14 contains_key bool 2 12 13 -brif 14 L3410 L3411 -label L3410 +brif 14 L3418 L3419 +label L3418 load 15 ir_emitter_core_ir_named_fn_value_wrappers load 16 target_name call 17 map_get_strict string 2 15 16 @@ -153906,8 +154009,8 @@ call 36 pith_cstring_release void 1 35 load 37 arg_regs call 38 pith_list_release_handle void 1 37 ret 17 -label L3411 -label L3409 +label L3419 +label L3417 load 39 wrapper_name strref 40 m46s1209 load 41 ir_emitter_core_ir_lambda_count @@ -153938,15 +154041,15 @@ load 60 ret_type call 61 string_len int 1 60 iconst 62 0 eq 63 61 62 -brif 63 L3413 L3414 -label L3413 +brif 63 L3421 L3422 +label L3421 load 64 ret_type strref 65 m46s822 call 66 pith_cstring_release void 1 64 store ret_type 65 -jmp L3412 -label L3414 -label L3412 +jmp L3420 +label L3422 +label L3420 load 67 saved_builder call 68 ir_builder_ir_builder_snapshot struct:IrBuilderSnapshot 0 call 69 pith_struct_release void 1 67 @@ -153974,17 +154077,17 @@ field 85 84 0 string kind strref 86 m46s24 call 87 pith_cstring_eq bool 2 85 86 call 88 pith_cstring_release void 1 86 -brif 87 L3416 L3417 -label L3416 +brif 87 L3424 L3425 +label L3424 load 89 info field 90 89 48 list param_types call 91 pith_list_len int 1 90 iconst 92 1 add 93 91 92 store param_count 93 -jmp L3415 -label L3417 -label L3415 +jmp L3423 +label L3425 +label L3423 load 94 wrapper_name load 95 param_count load 96 ret_type @@ -153999,18 +154102,18 @@ field 103 102 0 string kind strref 104 m46s24 call 105 pith_cstring_eq bool 2 103 104 call 106 pith_cstring_release void 1 104 -brif 105 L3419 L3420 -label L3419 +brif 105 L3427 L3428 +label L3427 iconst 107 0 store i 107 -label L3421 +label L3429 load 108 i load 109 info field 110 109 48 list param_types call 111 pith_list_len int 1 110 lt 112 108 111 -brif 112 L3422 L3423 -label L3422 +brif 112 L3430 L3431 +label L3430 load 113 arg_name strref 114 m46s1208 load 115 i @@ -154031,11 +154134,11 @@ load 128 i iconst 129 1 add 130 128 129 store i 130 -jmp L3421 -label L3423 -jmp L3418 -label L3420 -label L3418 +jmp L3429 +label L3431 +jmp L3426 +label L3428 +label L3426 load 131 arg_regs call 132 pith_list_new_default list 0 call 133 pith_list_release_handle void 1 131 @@ -154046,12 +154149,12 @@ iconst 136 0 store __for_idx_348 136 store __for_len_348 135 store __for_iter_348 134 -label L3424 +label L3432 load 137 __for_idx_348 load 138 __for_len_348 lt 139 137 138 -brif 139 L3425 L3427 -label L3425 +brif 139 L3433 L3435 +label L3433 load 140 __for_iter_348 load 141 __for_idx_348 call 142 pith_list_get_value_unchecked string 2 140 141 @@ -154076,19 +154179,19 @@ call 158 pith_cstring_release void 1 155 load 159 arg_regs load 160 arg_r call 161 pith_list_push_value void 2 159 160 -label L3426 +label L3434 load 162 __for_idx_348 iconst 163 1 add 164 162 163 store __for_idx_348 164 -jmp L3424 -label L3427 +jmp L3432 +label L3435 load 165 ret_type strref 166 m46s828 call 167 pith_cstring_eq bool 2 165 166 call 168 pith_cstring_release void 1 166 -brif 167 L3429 L3430 -label L3429 +brif 167 L3437 L3438 +label L3437 call 169 ir_builder_ir_reg int 0 store call_r 169 load 170 call_r @@ -154123,8 +154226,8 @@ call 197 pith_cstring_release void 1 193 call 198 pith_cstring_release void 1 195 call 199 ir_builder_ir_emit void 1 196 call 200 pith_cstring_release void 1 196 -jmp L3428 -label L3430 +jmp L3436 +label L3438 call 201 ir_builder_ir_reg int 0 store call_r 201 load 202 call_r @@ -154144,7 +154247,7 @@ call 215 pith_cstring_release void 1 211 call 216 pith_cstring_release void 1 213 call 217 ir_builder_ir_emit void 1 214 call 218 pith_cstring_release void 1 214 -label L3428 +label L3436 call 219 ir_emitter_core_ir_emit_lambda_default_return void 0 load 220 saved_builder load 221 saved_vars @@ -154212,8 +154315,8 @@ store r 4 load 5 idx load 6 name call 7 ir_emitter_core_ir_ident_is_function_value bool 2 5 6 -brif 7 L3432 L3433 -label L3432 +brif 7 L3440 L3441 +label L3440 load 8 callee load 9 name call 10 ir_emitter_core_ir_ident_callee struct:ResolvedCallee 1 9 @@ -154247,8 +154350,8 @@ call 35 pith_struct_release void 1 34 load 36 wrapper_name call 37 pith_cstring_release void 1 36 ret 33 -label L3433 -label L3431 +label L3441 +label L3439 load 38 r load 39 name call 40 ir_emitter_core_ir_emit_name_load void 2 38 39 @@ -154275,12 +154378,12 @@ iconst 4 0 store __for_idx_349 4 store __for_len_349 3 store __for_iter_349 2 -label L3434 +label L3442 load 5 __for_idx_349 load 6 __for_len_349 lt 7 5 6 -brif 7 L3435 L3437 -label L3435 +brif 7 L3443 L3445 +label L3443 load 8 __for_iter_349 load 9 __for_idx_349 call 10 pith_list_get_value unknown 2 8 9 @@ -154291,38 +154394,38 @@ call 13 ast_get_node struct:Node 1 12 call 14 pith_struct_release void 1 11 store an 13 iconst 15 0 -store __and_15_3441 15 +store __and_15_3449 15 load 16 an field 17 16 0 string kind strref 18 m46s42 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -store __and_15_3441 19 -brif 19 L3441 L3442 -label L3441 +store __and_15_3449 19 +brif 19 L3449 L3450 +label L3449 load 21 an field 22 21 8 string value call 23 string_len int 1 22 iconst 24 0 gt 25 23 24 -store __and_15_3441 25 -label L3442 -load 26 __and_15_3441 -brif 26 L3439 L3440 -label L3439 +store __and_15_3449 25 +label L3450 +load 26 __and_15_3449 +brif 26 L3447 L3448 +label L3447 iconst 27 1 load 28 an call 29 pith_struct_release void 1 28 ret 27 -label L3440 -label L3438 -label L3436 +label L3448 +label L3446 +label L3444 load 30 __for_idx_349 iconst 31 1 add 32 30 31 store __for_idx_349 32 -jmp L3434 -label L3437 +jmp L3442 +label L3445 iconst 33 0 load 34 an call 35 pith_struct_release void 1 34 @@ -154340,8 +154443,8 @@ store info 2 load 3 tid iconst 4 0 gte 5 3 4 -brif 5 L3444 L3445 -label L3444 +brif 5 L3452 L3453 +label L3452 load 6 info load 7 tid call 8 types_get_type_info struct:TypeInfo 1 7 @@ -154352,19 +154455,19 @@ field 11 10 0 string kind strref 12 m46s15 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 -brif 13 L3447 L3448 -label L3447 +brif 13 L3455 L3456 +label L3455 load 15 info field 16 15 16 list_string fields call 17 pith_list_len int 1 16 load 18 info call 19 pith_struct_release void 1 18 ret 17 -label L3448 -label L3446 -jmp L3443 -label L3445 -label L3443 +label L3456 +label L3454 +jmp L3451 +label L3453 +label L3451 load 20 sname call 21 ir_struct_registry_ir_struct_field_count int 1 20 load 22 info @@ -154384,44 +154487,44 @@ store info 3 load 4 tid iconst 5 0 gte 6 4 5 -brif 6 L3450 L3451 -label L3450 +brif 6 L3458 L3459 +label L3458 load 7 info load 8 tid call 9 types_get_type_info struct:TypeInfo 1 8 call 10 pith_struct_release void 1 7 store info 9 iconst 11 0 -store __and_11_3455 11 +store __and_11_3463 11 iconst 12 0 -store __and_12_3455 12 +store __and_12_3463 12 load 13 info field 14 13 0 string kind strref 15 m46s15 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 -store __and_12_3455 16 -brif 16 L3455 L3456 -label L3455 +store __and_12_3463 16 +brif 16 L3463 L3464 +label L3463 load 18 field_index iconst 19 0 gte 20 18 19 -store __and_12_3455 20 -label L3456 -load 21 __and_12_3455 -store __and_11_3455 21 -brif 21 L3457 L3458 -label L3457 +store __and_12_3463 20 +label L3464 +load 21 __and_12_3463 +store __and_11_3463 21 +brif 21 L3465 L3466 +label L3465 load 22 field_index load 23 info field 24 23 16 list_string fields call 25 pith_list_len int 1 24 lt 26 22 25 -store __and_11_3455 26 -label L3458 -load 27 __and_11_3455 -brif 27 L3453 L3454 -label L3453 +store __and_11_3463 26 +label L3466 +load 27 __and_11_3463 +brif 27 L3461 L3462 +label L3461 load 28 info field 29 28 16 list_string fields load 30 field_index @@ -154430,11 +154533,11 @@ call 32 pith_cstring_retain void 1 31 load 33 info call 34 pith_struct_release void 1 33 ret 31 -label L3454 -label L3452 -jmp L3449 -label L3451 -label L3449 +label L3462 +label L3460 +jmp L3457 +label L3459 +label L3457 load 35 sname load 36 field_index call 37 ir_struct_registry_ir_struct_field_name_at string 2 35 36 @@ -154455,8 +154558,8 @@ store info 3 load 4 tid iconst 5 0 gte 6 4 5 -brif 6 L3460 L3461 -label L3460 +brif 6 L3468 L3469 +label L3468 load 7 info load 8 tid call 9 types_get_type_info struct:TypeInfo 1 8 @@ -154467,8 +154570,8 @@ field 12 11 0 string kind strref 13 m46s15 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L3463 L3464 -label L3463 +brif 14 L3471 L3472 +label L3471 load 16 info field 17 16 16 list_string fields call 18 pith_auto_len int 1 17 @@ -154476,12 +154579,12 @@ iconst 19 0 store __for_idx_350 19 store __for_len_350 18 store __for_iter_350 17 -label L3465 +label L3473 load 20 __for_idx_350 load 21 __for_len_350 lt 22 20 21 -brif 22 L3466 L3468 -label L3466 +brif 22 L3474 L3476 +label L3474 load 23 __for_iter_350 load 24 __for_idx_350 call 25 pith_list_get_value_unchecked string 2 23 24 @@ -154489,23 +154592,23 @@ store __loopvar_350_name 25 load 26 __for_idx_350 store __loopvar_350_i 26 iconst 27 0 -store __and_27_3472 27 +store __and_27_3480 27 load 28 __loopvar_350_name load 29 field_name call 30 pith_cstring_eq bool 2 28 29 -store __and_27_3472 30 -brif 30 L3472 L3473 -label L3472 +store __and_27_3480 30 +brif 30 L3480 L3481 +label L3480 load 31 __loopvar_350_i load 32 info field 33 32 24 list field_types call 34 pith_list_len int 1 33 lt 35 31 34 -store __and_27_3472 35 -label L3473 -load 36 __and_27_3472 -brif 36 L3470 L3471 -label L3470 +store __and_27_3480 35 +label L3481 +load 36 __and_27_3480 +brif 36 L3478 L3479 +label L3478 load 37 info field 38 37 24 list field_types load 39 __loopvar_350_i @@ -154514,21 +154617,21 @@ call 41 ir_type_helpers_ir_type_from_tid string 1 40 load 42 info call 43 pith_struct_release void 1 42 ret 41 -label L3471 -label L3469 -label L3467 +label L3479 +label L3477 +label L3475 load 44 __for_idx_350 iconst 45 1 add 46 44 45 store __for_idx_350 46 -jmp L3465 -label L3468 -jmp L3462 -label L3464 -label L3462 -jmp L3459 -label L3461 -label L3459 +jmp L3473 +label L3476 +jmp L3470 +label L3472 +label L3470 +jmp L3467 +label L3469 +label L3467 load 47 sname load 48 field_name call 49 ir_struct_registry_ir_struct_field_type_name string 2 47 48 @@ -154564,12 +154667,12 @@ call 13 pith_list_release_handle void 1 11 store field_regs 12 iconst 14 0 store field_idx 14 -label L3474 +label L3482 load 15 field_idx load 16 total_fields lt 17 15 16 -brif 17 L3475 L3476 -label L3475 +brif 17 L3483 L3484 +label L3483 load 18 field_name load 19 sname load 20 tid @@ -154594,12 +154697,12 @@ iconst 35 0 store __for_idx_351 35 store __for_len_351 34 store __for_iter_351 33 -label L3477 +label L3485 load 36 __for_idx_351 load 37 __for_len_351 lt 38 36 37 -brif 38 L3478 L3480 -label L3478 +brif 38 L3486 L3488 +label L3486 load 39 __for_iter_351 load 40 __for_idx_351 call 41 pith_list_get_value unknown 2 39 40 @@ -154610,93 +154713,93 @@ call 44 ast_get_node struct:Node 1 43 call 45 pith_struct_release void 1 42 store an 44 iconst 46 0 -store __and_46_3484 46 +store __and_46_3492 46 iconst 47 0 -store __and_47_3484 47 +store __and_47_3492 47 load 48 an field 49 48 0 string kind strref 50 m46s42 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 50 -store __and_47_3484 51 -brif 51 L3484 L3485 -label L3484 +store __and_47_3492 51 +brif 51 L3492 L3493 +label L3492 load 53 an field 54 53 8 string value load 55 field_name call 56 pith_cstring_eq bool 2 54 55 -store __and_47_3484 56 -label L3485 -load 57 __and_47_3484 -store __and_46_3484 57 -brif 57 L3486 L3487 -label L3486 +store __and_47_3492 56 +label L3493 +load 57 __and_47_3492 +store __and_46_3492 57 +brif 57 L3494 L3495 +label L3494 load 58 an field 59 58 16 list children call 60 pith_list_len int 1 59 iconst 61 0 gt 62 60 61 -store __and_46_3484 62 -label L3487 -load 63 __and_46_3484 -brif 63 L3482 L3483 -label L3482 +store __and_46_3492 62 +label L3495 +load 63 __and_46_3492 +brif 63 L3490 L3491 +label L3490 load 64 an field 65 64 16 list children iconst 66 0 call 67 pith_list_get_value_strict int 2 65 66 store value_node 67 -jmp L3481 -label L3483 -label L3481 -label L3479 +jmp L3489 +label L3491 +label L3489 +label L3487 load 68 __for_idx_351 iconst 69 1 add 70 68 69 store __for_idx_351 70 -jmp L3477 -label L3480 +jmp L3485 +label L3488 load 71 sname load 72 field_name call 73 ir_emitter_core_ir_struct_field_is_weak bool 2 71 72 -brif 73 L3489 L3490 -label L3489 +brif 73 L3497 L3498 +label L3497 load 74 value_node store init_node 74 load 75 init_node iconst 76 0 lt 77 75 76 -brif 77 L3492 L3493 -label L3492 +brif 77 L3500 L3501 +label L3500 load 78 sname load 79 field_name call 80 ir_struct_registry_ir_struct_field_default_node int 2 78 79 store init_node 80 -jmp L3491 -label L3493 -label L3491 +jmp L3499 +label L3501 +label L3499 load 81 init_node iconst 82 0 gte 83 81 82 -brif 83 L3495 L3496 -label L3495 +brif 83 L3503 L3504 +label L3503 load 84 field_regs load 85 init_node call 86 ir_emitter_core_ir_emit_weak_payload int 1 85 call 87 pith_list_push_value void 2 84 86 -jmp L3494 -label L3496 +jmp L3502 +label L3504 load 88 field_regs call 89 ir_result_abi_ir_zero_reg int 0 call 90 pith_list_push_value void 2 88 89 -label L3494 -jmp L3488 -label L3490 +label L3502 +jmp L3496 +label L3498 load 91 value_node iconst 92 0 gte 93 91 92 -brif 93 L3497 L3498 -label L3497 +brif 93 L3505 L3506 +label L3505 load 94 value_node load 95 field_type call 96 ir_emitter_core_ir_emit_value_for_target int 2 94 95 @@ -154707,46 +154810,46 @@ call 99 ir_struct_registry_ir_rc_kind string 1 98 call 100 pith_cstring_release void 1 97 store named_field_kind 99 iconst 101 0 -store __and_101_3502 101 +store __and_101_3510 101 iconst 102 0 -store __and_102_3502 102 +store __and_102_3510 102 load 103 named_field_kind call 104 string_len int 1 103 iconst 105 0 gt 106 104 105 -store __and_102_3502 106 -brif 106 L3502 L3503 -label L3502 +store __and_102_3510 106 +brif 106 L3510 L3511 +label L3510 load 107 named_field_kind strref 108 m46s23 call 110 pith_cstring_eq bool 2 107 108 iconst 111 1 sub 109 111 110 call 112 pith_cstring_release void 1 108 -store __and_102_3502 109 -label L3503 -load 113 __and_102_3502 -store __and_101_3502 113 -brif 113 L3504 L3505 -label L3504 +store __and_102_3510 109 +label L3511 +load 113 __and_102_3510 +store __and_101_3510 113 +brif 113 L3512 L3513 +label L3512 load 114 value_node call 115 ir_emitter_core_ir_string_expr_is_borrowed bool 1 114 -store __and_101_3502 115 -label L3505 -load 116 __and_101_3502 -brif 116 L3500 L3501 -label L3500 +store __and_101_3510 115 +label L3513 +load 116 __and_101_3510 +brif 116 L3508 L3509 +label L3508 load 117 fr load 118 named_field_kind call 119 ir_ownership_ir_rc_retain_reg void 2 117 118 -jmp L3499 -label L3501 -label L3499 +jmp L3507 +label L3509 +label L3507 load 120 field_regs load 121 fr call 122 pith_list_push_value void 2 120 121 -jmp L3488 -label L3498 +jmp L3496 +label L3506 load 123 sname load 124 field_name call 125 ir_struct_registry_ir_struct_field_default_node int 2 123 124 @@ -154754,26 +154857,26 @@ store default_idx 125 load 126 default_idx iconst 127 0 gte 128 126 127 -brif 128 L3507 L3508 -label L3507 +brif 128 L3515 L3516 +label L3515 load 129 field_regs load 130 default_idx load 131 field_type call 132 ir_emitter_core_ir_emit_value_for_target int 2 130 131 call 133 pith_list_push_value void 2 129 132 -jmp L3506 -label L3508 +jmp L3514 +label L3516 load 134 field_regs call 135 ir_result_abi_ir_zero_reg int 0 call 136 pith_list_push_value void 2 134 135 -label L3506 -label L3488 +label L3514 +label L3496 load 137 field_idx iconst 138 1 add 139 137 138 store field_idx 139 -jmp L3474 -label L3476 +jmp L3482 +label L3484 call 140 ir_builder_ir_reg int 0 store r 140 call 141 ir_builder_ir_reg int 0 @@ -154811,12 +154914,12 @@ iconst 171 0 store __for_idx_352 171 store __for_len_352 170 store __for_iter_352 169 -label L3509 +label L3517 load 172 __for_idx_352 load 173 __for_len_352 lt 174 172 173 -brif 174 L3510 L3512 -label L3510 +brif 174 L3518 L3520 +label L3518 load 175 __for_iter_352 load 176 __for_idx_352 call 177 pith_list_get_value unknown 2 175 176 @@ -154849,13 +154952,13 @@ call 201 pith_cstring_release void 1 195 call 202 pith_cstring_release void 1 199 call 203 ir_builder_ir_emit void 1 200 call 204 pith_cstring_release void 1 200 -label L3511 +label L3519 load 205 __for_idx_352 iconst 206 1 add 207 205 206 store __for_idx_352 207 -jmp L3509 -label L3512 +jmp L3517 +label L3520 load 208 r load 209 sname call 210 ir_emitter_core_ir_emit_attach_dtor void 2 208 209 @@ -154900,8 +155003,8 @@ iconst 7 0 store pos_field_kind 7 load 8 arg_nodes call 9 ir_emitter_core_ir_struct_args_have_names bool 1 8 -brif 9 L3514 L3515 -label L3514 +brif 9 L3522 L3523 +label L3522 load 10 sname load 11 arg_nodes load 12 tid @@ -154917,21 +155020,21 @@ call 21 pith_cstring_release void 1 20 load 22 pos_field_kind call 23 pith_cstring_release void 1 22 ret 13 -label L3515 -label L3513 +label L3523 +label L3521 load 24 field_regs call 25 pith_list_new_default list 0 call 26 pith_list_release_handle void 1 24 store field_regs 25 iconst 27 0 store field_idx 27 -label L3516 +label L3524 load 28 field_idx load 29 arg_nodes call 30 pith_list_len int 1 29 lt 31 28 30 -brif 31 L3517 L3518 -label L3517 +brif 31 L3525 L3526 +label L3525 load 32 arg_nodes load 33 field_idx call 34 pith_list_get_value_strict int 2 32 33 @@ -154958,65 +155061,65 @@ store ftype 49 load 51 child store value_idx 51 iconst 52 0 -store __and_52_3522 52 +store __and_52_3530 52 load 53 cn field 54 53 0 string kind strref 55 m46s1207 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 -store __and_52_3522 56 -brif 56 L3522 L3523 -label L3522 +store __and_52_3530 56 +brif 56 L3530 L3531 +label L3530 load 58 cn field 59 58 16 list children call 60 pith_list_len int 1 59 iconst 61 0 gt 62 60 61 -store __and_52_3522 62 -label L3523 -load 63 __and_52_3522 -brif 63 L3520 L3521 -label L3520 +store __and_52_3530 62 +label L3531 +load 63 __and_52_3530 +brif 63 L3528 L3529 +label L3528 load 64 cn field 65 64 16 list children iconst 66 0 call 67 pith_list_get_value_strict int 2 65 66 store value_idx 67 -jmp L3519 -label L3521 +jmp L3527 +label L3529 iconst 68 0 -store __and_68_3526 68 +store __and_68_3534 68 load 69 cn field 70 69 0 string kind strref 71 m46s42 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 -store __and_68_3526 72 -brif 72 L3526 L3527 -label L3526 +store __and_68_3534 72 +brif 72 L3534 L3535 +label L3534 load 74 cn field 75 74 16 list children call 76 pith_list_len int 1 75 iconst 77 0 gt 78 76 77 -store __and_68_3526 78 -label L3527 -load 79 __and_68_3526 -brif 79 L3524 L3525 -label L3524 +store __and_68_3534 78 +label L3535 +load 79 __and_68_3534 +brif 79 L3532 L3533 +label L3532 load 80 cn field 81 80 16 list children iconst 82 0 call 83 pith_list_get_value_strict int 2 81 82 store value_idx 83 -jmp L3519 -label L3525 -label L3519 +jmp L3527 +label L3533 +label L3527 load 84 sname load 85 field_name call 86 ir_emitter_core_ir_struct_field_is_weak bool 2 84 85 -brif 86 L3529 L3530 -label L3529 +brif 86 L3537 L3538 +label L3537 load 87 field_regs load 88 value_idx call 89 ir_emitter_core_ir_emit_weak_payload int 1 88 @@ -155025,9 +155128,9 @@ load 91 field_idx iconst 92 1 add 93 91 92 store field_idx 93 -jmp L3516 -label L3530 -label L3528 +jmp L3524 +label L3538 +label L3536 load 94 value_idx load 95 ftype call 96 ir_emitter_core_ir_emit_value_for_target int 2 94 95 @@ -155038,41 +155141,41 @@ call 99 ir_struct_registry_ir_rc_kind string 1 98 call 100 pith_cstring_release void 1 97 store pos_field_kind 99 iconst 101 0 -store __and_101_3534 101 +store __and_101_3542 101 iconst 102 0 -store __and_102_3534 102 +store __and_102_3542 102 load 103 pos_field_kind call 104 string_len int 1 103 iconst 105 0 gt 106 104 105 -store __and_102_3534 106 -brif 106 L3534 L3535 -label L3534 +store __and_102_3542 106 +brif 106 L3542 L3543 +label L3542 load 107 pos_field_kind strref 108 m46s23 call 110 pith_cstring_eq bool 2 107 108 iconst 111 1 sub 109 111 110 call 112 pith_cstring_release void 1 108 -store __and_102_3534 109 -label L3535 -load 113 __and_102_3534 -store __and_101_3534 113 -brif 113 L3536 L3537 -label L3536 +store __and_102_3542 109 +label L3543 +load 113 __and_102_3542 +store __and_101_3542 113 +brif 113 L3544 L3545 +label L3544 load 114 value_idx call 115 ir_emitter_core_ir_string_expr_is_borrowed bool 1 114 -store __and_101_3534 115 -label L3537 -load 116 __and_101_3534 -brif 116 L3532 L3533 -label L3532 +store __and_101_3542 115 +label L3545 +load 116 __and_101_3542 +brif 116 L3540 L3541 +label L3540 load 117 fr load 118 pos_field_kind call 119 ir_ownership_ir_rc_retain_reg void 2 117 118 -jmp L3531 -label L3533 -label L3531 +jmp L3539 +label L3541 +label L3539 load 120 field_regs load 121 fr call 122 pith_list_push_value void 2 120 121 @@ -155080,18 +155183,18 @@ load 123 field_idx iconst 124 1 add 125 123 124 store field_idx 125 -jmp L3516 -label L3518 +jmp L3524 +label L3526 load 126 sname load 127 tid call 128 ir_emitter_core_ir_ctor_field_count int 2 126 127 store total_fields 128 -label L3538 +label L3546 load 129 field_idx load 130 total_fields lt 131 129 130 -brif 131 L3539 L3540 -label L3539 +brif 131 L3547 L3548 +label L3547 load 132 field_name load 133 sname load 134 tid @@ -155106,8 +155209,8 @@ store default_idx 140 load 141 default_idx iconst 142 0 gte 143 141 142 -brif 143 L3542 L3543 -label L3542 +brif 143 L3550 L3551 +label L3550 load 144 field_regs load 145 default_idx load 146 sname @@ -155117,18 +155220,18 @@ call 149 ir_emitter_core_ir_ctor_field_type_name string 3 146 147 148 call 150 ir_emitter_core_ir_emit_value_for_target int 2 145 149 call 151 pith_cstring_release void 1 149 call 152 pith_list_push_value void 2 144 150 -jmp L3541 -label L3543 +jmp L3549 +label L3551 load 153 field_regs call 154 ir_result_abi_ir_zero_reg int 0 call 155 pith_list_push_value void 2 153 154 -label L3541 +label L3549 load 156 field_idx iconst 157 1 add 158 156 157 store field_idx 158 -jmp L3538 -label L3540 +jmp L3546 +label L3548 call 159 ir_builder_ir_reg int 0 store r 159 call 160 ir_builder_ir_reg int 0 @@ -155166,12 +155269,12 @@ iconst 190 0 store __for_idx_353 190 store __for_len_353 189 store __for_iter_353 188 -label L3544 +label L3552 load 191 __for_idx_353 load 192 __for_len_353 lt 193 191 192 -brif 193 L3545 L3547 -label L3545 +brif 193 L3553 L3555 +label L3553 load 194 __for_iter_353 load 195 __for_idx_353 call 196 pith_list_get_value unknown 2 194 195 @@ -155204,13 +155307,13 @@ call 220 pith_cstring_release void 1 214 call 221 pith_cstring_release void 1 218 call 222 ir_builder_ir_emit void 1 219 call 223 pith_cstring_release void 1 219 -label L3546 +label L3554 load 224 __for_idx_353 iconst 225 1 add 226 224 225 store __for_idx_353 226 -jmp L3544 -label L3547 +jmp L3552 +label L3555 load 227 r load 228 sname call 229 ir_emitter_core_ir_emit_attach_dtor void 2 227 228 @@ -155262,8 +155365,8 @@ field 3 2 16 list children call 4 pith_list_len int 1 3 iconst 5 0 gt 6 4 5 -brif 6 L3549 L3550 -label L3549 +brif 6 L3557 L3558 +label L3557 load 7 inner load 8 node field 9 8 16 list children @@ -155277,8 +155380,8 @@ field 15 14 0 string kind strref 16 m46s44 call 17 pith_cstring_eq bool 2 15 16 call 18 pith_cstring_release void 1 16 -brif 17 L3552 L3553 -label L3552 +brif 17 L3560 L3561 +label L3560 load 19 node field 20 19 16 list children iconst 21 0 @@ -155298,11 +155401,11 @@ load 32 r load 33 inner call 34 pith_struct_release void 1 33 ret 32 -label L3553 -label L3551 -jmp L3548 -label L3550 -label L3548 +label L3561 +label L3559 +jmp L3556 +label L3558 +label L3556 call 35 ir_builder_ir_reg int 0 store r 35 strref 36 m46s832 @@ -155345,8 +155448,8 @@ field 8 7 16 list children call 9 pith_list_len int 1 8 iconst 10 0 gt 11 9 10 -brif 11 L3555 L3556 -label L3555 +brif 11 L3563 L3564 +label L3563 load 12 result_kind load 13 node field 14 13 16 list children @@ -155365,8 +155468,8 @@ load 24 result_kind strref 25 m46s23 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 -brif 26 L3558 L3559 -label L3558 +brif 26 L3566 L3567 +label L3566 load 28 operand_class load 29 node field 30 29 16 list children @@ -155435,8 +155538,8 @@ call 86 pith_cstring_eq bool 2 83 84 iconst 87 1 sub 85 87 86 call 88 pith_cstring_release void 1 84 -brif 85 L3561 L3562 -label L3561 +brif 85 L3569 L3570 +label L3569 call 89 ir_builder_ir_reg int 0 strref 90 m46s898 strref 91 m46s828 @@ -155444,9 +155547,9 @@ load 92 val_r call 93 ir_call_emit_ir_emit_call1 void 4 89 90 91 92 call 94 pith_cstring_release void 1 90 call 95 pith_cstring_release void 1 91 -jmp L3560 -label L3562 -label L3560 +jmp L3568 +label L3570 +label L3568 strref 96 m46s833 load 97 merge_l concat 98 96 97 @@ -155456,26 +155559,26 @@ call 101 pith_cstring_release void 1 98 load 102 err_l call 103 ir_call_emit_ir_emit_label void 1 102 iconst 104 0 -store __and_104_3566 104 +store __and_104_3574 104 load 105 ir_emitter_core_ir_emit_tests -store __and_104_3566 105 -brif 105 L3566 L3567 -label L3566 +store __and_104_3574 105 +brif 105 L3574 L3575 +label L3574 load 106 ir_emitter_core_ir_emitting_test_func -store __and_104_3566 106 -label L3567 -load 107 __and_104_3566 -brif 107 L3564 L3565 -label L3564 +store __and_104_3574 106 +label L3575 +load 107 __and_104_3574 +brif 107 L3572 L3573 +label L3572 call 108 ir_emitter_core_ir_test_assert_fail_return void 0 -jmp L3563 -label L3565 +jmp L3571 +label L3573 load 109 operand_class strref 110 m46s1202 call 111 pith_cstring_eq bool 2 109 110 call 112 pith_cstring_release void 1 110 -brif 111 L3568 L3569 -label L3568 +brif 111 L3576 L3577 +label L3576 load 113 err_kind load 114 operand_tid strref 115 m46s181 @@ -155495,14 +155598,14 @@ load 126 err_kind call 127 string_len int 1 126 iconst 128 0 gt 129 127 128 -brif 129 L3571 L3572 -label L3571 +brif 129 L3579 L3580 +label L3579 load 130 err_r load 131 err_kind call 132 ir_ownership_ir_rc_retain_reg void 2 130 131 -jmp L3570 -label L3572 -label L3570 +jmp L3578 +label L3580 +label L3578 load 133 err_r call 134 ir_emitter_core_ir_emit_err_result_tuple int 1 133 store fresh_err_r 134 @@ -155519,8 +155622,8 @@ call 144 pith_cstring_release void 1 140 call 145 pith_cstring_release void 1 142 call 146 ir_builder_ir_emit void 1 143 call 147 pith_cstring_release void 1 143 -jmp L3563 -label L3569 +jmp L3571 +label L3577 iconst 148 1 call 149 ir_emitter_core_ir_defer_emit_to_function_frame void 1 148 strref 150 m46s82 @@ -155534,7 +155637,7 @@ call 157 pith_cstring_release void 1 153 call 158 pith_cstring_release void 1 155 call 159 ir_builder_ir_emit void 1 156 call 160 pith_cstring_release void 1 156 -label L3563 +label L3571 load 161 merge_l call 162 ir_call_emit_ir_emit_label void 1 161 load 163 decoded_r @@ -155551,36 +155654,36 @@ call 173 pith_cstring_release void 1 172 load 174 err_kind call 175 pith_cstring_release void 1 174 ret 163 -label L3559 -label L3557 +label L3567 +label L3565 load 176 val_r store cond_r 176 load 177 val_r store decoded_r 177 load 178 result_kind call 179 ir_result_abi_ir_uses_result_abi bool 1 178 -brif 179 L3574 L3575 -label L3574 +brif 179 L3582 L3583 +label L3582 load 180 val_r load 181 result_kind call 182 ir_result_abi_ir_decode_result_value int 2 180 181 store decoded_r 182 -jmp L3573 -label L3575 +jmp L3581 +label L3583 load 183 result_kind call 184 string_len int 1 183 iconst 185 0 gt 186 184 185 -brif 186 L3576 L3577 -label L3576 +brif 186 L3584 L3585 +label L3584 call 187 ir_builder_ir_reg int 0 store zero_cmp 187 load 188 result_kind strref 189 m46s672 call 190 pith_cstring_eq bool 2 188 189 call 191 pith_cstring_release void 1 189 -brif 190 L3579 L3580 -label L3579 +brif 190 L3587 L3588 +label L3587 strref 192 m46s1044 load 193 zero_cmp call 194 int_to_string string 1 193 @@ -155593,8 +155696,8 @@ call 200 pith_cstring_release void 1 195 call 201 pith_cstring_release void 1 198 call 202 ir_builder_ir_emit void 1 199 call 203 pith_cstring_release void 1 199 -jmp L3578 -label L3580 +jmp L3586 +label L3588 strref 204 m46s832 load 205 zero_cmp call 206 int_to_string string 1 205 @@ -155607,7 +155710,7 @@ call 212 pith_cstring_release void 1 207 call 213 pith_cstring_release void 1 210 call 214 ir_builder_ir_emit void 1 211 call 215 pith_cstring_release void 1 211 -label L3578 +label L3586 call 216 ir_builder_ir_reg int 0 store cond_r 216 strref 217 m46s1035 @@ -155636,9 +155739,9 @@ call 239 pith_cstring_release void 1 233 call 240 pith_cstring_release void 1 237 call 241 ir_builder_ir_emit void 1 238 call 242 pith_cstring_release void 1 238 -jmp L3573 -label L3577 -label L3573 +jmp L3581 +label L3585 +label L3581 load 243 ok_l call 244 ir_builder_ir_label string 0 call 245 pith_cstring_release void 1 243 @@ -155684,20 +155787,20 @@ call 281 pith_cstring_release void 1 278 load 282 err_l call 283 ir_call_emit_ir_emit_label void 1 282 iconst 284 0 -store __and_284_3584 284 +store __and_284_3592 284 load 285 ir_emitter_core_ir_emit_tests -store __and_284_3584 285 -brif 285 L3584 L3585 -label L3584 +store __and_284_3592 285 +brif 285 L3592 L3593 +label L3592 load 286 ir_emitter_core_ir_emitting_test_func -store __and_284_3584 286 -label L3585 -load 287 __and_284_3584 -brif 287 L3582 L3583 -label L3582 +store __and_284_3592 286 +label L3593 +load 287 __and_284_3592 +brif 287 L3590 L3591 +label L3590 call 288 ir_emitter_core_ir_test_assert_fail_return void 0 -jmp L3581 -label L3583 +jmp L3589 +label L3591 iconst 289 1 call 290 ir_emitter_core_ir_defer_emit_to_function_frame void 1 289 strref 291 m46s82 @@ -155725,7 +155828,7 @@ call 311 pith_cstring_release void 1 307 call 312 pith_cstring_release void 1 309 call 313 ir_builder_ir_emit void 1 310 call 314 pith_cstring_release void 1 310 -label L3581 +label L3589 load 315 merge_l call 316 ir_call_emit_ir_emit_label void 1 315 load 317 decoded_r @@ -155742,8 +155845,8 @@ call 327 pith_cstring_release void 1 326 load 328 err_kind call 329 pith_cstring_release void 1 328 ret 317 -label L3556 -label L3554 +label L3564 +label L3562 call 330 ir_builder_ir_reg int 0 store r 330 strref 331 m46s832 @@ -155802,8 +155905,8 @@ field 6 5 16 list children call 7 pith_list_len int 1 6 iconst 8 0 gt 9 7 8 -brif 9 L3587 L3588 -label L3587 +brif 9 L3595 L3596 +label L3595 load 10 node field 11 10 16 list children iconst 12 0 @@ -155836,53 +155939,53 @@ load 34 err_kind call 35 string_len int 1 34 iconst 36 0 gt 37 35 36 -brif 37 L3590 L3591 -label L3590 +brif 37 L3598 L3599 +label L3598 iconst 38 0 -store __and_38_3595 38 +store __and_38_3603 38 load 39 expr_node field 40 39 0 string kind strref 41 m46s37 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 -store __and_38_3595 42 -brif 42 L3595 L3596 -label L3595 +store __and_38_3603 42 +brif 42 L3603 L3604 +label L3603 load 44 expr_node field 45 44 8 string value call 46 ir_emitter_core_ir_rc_local_kind string 1 45 load 47 err_kind call 48 pith_cstring_eq bool 2 46 47 call 49 pith_cstring_release void 1 46 -store __and_38_3595 48 -label L3596 -load 50 __and_38_3595 -brif 50 L3593 L3594 -label L3593 +store __and_38_3603 48 +label L3604 +load 50 __and_38_3603 +brif 50 L3601 L3602 +label L3601 load 51 exclude load 52 expr_node field 53 52 8 string value call 54 pith_cstring_retain void 1 53 call 55 pith_cstring_release void 1 51 store exclude 53 -jmp L3592 -label L3594 +jmp L3600 +label L3602 load 56 node field 57 56 16 list children iconst 58 0 call 59 pith_list_get_value_strict int 2 57 58 call 60 ir_emitter_core_ir_string_expr_is_borrowed bool 1 59 -brif 60 L3597 L3598 -label L3597 +brif 60 L3605 L3606 +label L3605 load 61 err_r load 62 err_kind call 63 ir_ownership_ir_rc_retain_reg void 2 61 62 -jmp L3592 -label L3598 -label L3592 -jmp L3589 -label L3591 -label L3589 +jmp L3600 +label L3606 +label L3600 +jmp L3597 +label L3599 +label L3597 load 64 err_r call 65 ir_emitter_core_ir_emit_err_result_tuple int 1 64 store tuple_r 65 @@ -155898,8 +156001,8 @@ call 74 pith_cstring_release void 1 70 call 75 pith_cstring_release void 1 72 call 76 ir_builder_ir_emit void 1 73 call 77 pith_cstring_release void 1 73 -jmp L3586 -label L3588 +jmp L3594 +label L3596 iconst 78 1 call 79 ir_emitter_core_ir_defer_emit_to_function_frame void 1 78 strref 80 m46s82 @@ -155914,7 +156017,7 @@ call 88 pith_cstring_release void 1 83 call 89 pith_cstring_release void 1 86 call 90 ir_builder_ir_emit void 1 87 call 91 pith_cstring_release void 1 87 -label L3586 +label L3594 load 92 ub call 93 ir_builder_ir_label string 0 call 94 pith_cstring_release void 1 92 @@ -155996,8 +156099,8 @@ load 27 obj_type call 28 string_len int 1 27 iconst 29 0 eq 30 28 29 -brif 30 L3600 L3601 -label L3600 +brif 30 L3608 L3609 +label L3608 load 31 obj_type load 32 node field 33 32 16 list children @@ -156006,15 +156109,15 @@ call 35 pith_list_get_value_strict int 2 33 34 call 36 ir_emitter_core_ir_infer_type string 1 35 call 37 pith_cstring_release void 1 31 store obj_type 36 -jmp L3599 -label L3601 -label L3599 +jmp L3607 +label L3609 +label L3607 load 38 value_type call 39 string_len int 1 38 iconst 40 0 eq 41 39 40 -brif 41 L3603 L3604 -label L3603 +brif 41 L3611 L3612 +label L3611 load 42 value_type load 43 node field 44 43 16 list children @@ -156023,36 +156126,36 @@ call 46 pith_list_get_value_strict int 2 44 45 call 47 ir_emitter_core_ir_lookup_map_value_type_for_expr string 1 46 call 48 pith_cstring_release void 1 42 store value_type 47 -jmp L3602 -label L3604 -label L3602 +jmp L3610 +label L3612 +label L3610 load 49 value_type call 50 string_len int 1 49 iconst 51 0 eq 52 50 51 -brif 52 L3606 L3607 -label L3606 +brif 52 L3614 L3615 +label L3614 load 53 value_type load 54 idx call 55 ir_emitter_core_ir_infer_type string 1 54 call 56 pith_cstring_release void 1 53 store value_type 55 -jmp L3605 -label L3607 -label L3605 +jmp L3613 +label L3615 +label L3613 iconst 57 0 -store __and_57_3611 57 +store __and_57_3619 57 load 58 ir_emitter_core_ir_current_func_returns_result -store __and_57_3611 58 -brif 58 L3611 L3612 -label L3611 +store __and_57_3619 58 +brif 58 L3619 L3620 +label L3619 load 59 obj_type call 60 ir_emitter_core_ir_index_supports_propagate bool 1 59 -store __and_57_3611 60 -label L3612 -load 61 __and_57_3611 -brif 61 L3609 L3610 -label L3609 +store __and_57_3619 60 +label L3620 +load 61 __and_57_3619 +brif 61 L3617 L3618 +label L3617 load 62 node field 63 62 16 list children iconst 64 1 @@ -156069,8 +156172,8 @@ call 74 pith_cstring_release void 1 73 load 75 call_name call 76 pith_cstring_release void 1 75 ret 70 -label L3610 -label L3608 +label L3618 +label L3616 load 77 call_name load 78 obj_type call 79 ir_collection_helpers_ir_index_get_call_name string 1 78 @@ -156080,8 +156183,8 @@ load 81 obj_type strref 82 m46s675 call 83 pith_cstring_eq bool 2 81 82 call 84 pith_cstring_release void 1 82 -brif 83 L3614 L3615 -label L3614 +brif 83 L3622 L3623 +label L3622 load 85 r load 86 call_name strref 87 m46s675 @@ -156089,14 +156192,14 @@ load 88 obj_r load 89 idx_r call 90 ir_call_emit_ir_emit_call2 void 5 85 86 87 88 89 call 91 pith_cstring_release void 1 87 -jmp L3613 -label L3615 +jmp L3621 +label L3623 load 92 obj_type strref 93 m46s674 call 94 pith_cstring_eq bool 2 92 93 call 95 pith_cstring_release void 1 93 -brif 94 L3616 L3617 -label L3616 +brif 94 L3624 L3625 +label L3624 load 96 r load 97 call_name strref 98 m46s671 @@ -156104,47 +156207,47 @@ load 99 obj_r load 100 idx_r call 101 ir_call_emit_ir_emit_call2 void 5 96 97 98 99 100 call 102 pith_cstring_release void 1 98 -jmp L3613 -label L3617 +jmp L3621 +label L3625 iconst 103 0 -store __or_103_3620 103 +store __or_103_3628 103 load 104 obj_type strref 105 m46s670 call 106 pith_cstring_eq bool 2 104 105 call 107 pith_cstring_release void 1 105 -store __or_103_3620 106 -brif 106 L3621 L3620 -label L3620 +store __or_103_3628 106 +brif 106 L3629 L3628 +label L3628 load 108 obj_type strref 109 m46s19 call 110 pith_cstring_eq bool 2 108 109 call 111 pith_cstring_release void 1 109 -store __or_103_3620 110 -label L3621 -load 112 __or_103_3620 -brif 112 L3618 L3619 -label L3618 +store __or_103_3628 110 +label L3629 +load 112 __or_103_3628 +brif 112 L3626 L3627 +label L3626 load 113 value_type call 114 string_len int 1 113 iconst 115 0 eq 116 114 115 -brif 116 L3623 L3624 -label L3623 +brif 116 L3631 L3632 +label L3631 load 117 value_type strref 118 m46s822 call 119 pith_cstring_release void 1 117 store value_type 118 -jmp L3622 -label L3624 -label L3622 +jmp L3630 +label L3632 +label L3630 load 120 r load 121 call_name load 122 value_type load 123 obj_r load 124 idx_r call 125 ir_call_emit_ir_emit_call2 void 5 120 121 122 123 124 -jmp L3613 -label L3619 +jmp L3621 +label L3627 load 126 r load 127 call_name load 128 idx @@ -156153,7 +156256,7 @@ load 130 obj_r load 131 idx_r call 132 ir_call_emit_ir_emit_call2 void 5 126 127 129 130 131 call 133 pith_cstring_release void 1 129 -label L3613 +label L3621 load 134 node field 135 134 16 list children iconst 136 1 @@ -156195,42 +156298,42 @@ load 1 obj_type strref 2 m46s19 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 -brif 3 L3626 L3627 -label L3626 +brif 3 L3634 L3635 +label L3634 iconst 5 1 ret 5 -label L3627 -label L3625 +label L3635 +label L3633 load 6 obj_type strref 7 m46s670 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -brif 8 L3629 L3630 -label L3629 +brif 8 L3637 L3638 +label L3637 iconst 10 1 ret 10 -label L3630 -label L3628 +label L3638 +label L3636 load 11 obj_type strref 12 m46s20 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 -brif 13 L3632 L3633 -label L3632 +brif 13 L3640 L3641 +label L3640 iconst 15 1 ret 15 -label L3633 -label L3631 +label L3641 +label L3639 load 16 obj_type strref 17 m46s668 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 -brif 18 L3635 L3636 -label L3635 +brif 18 L3643 L3644 +label L3643 iconst 20 1 ret 20 -label L3636 -label L3634 +label L3644 +label L3642 iconst 21 0 ret 21 iconst 22 0 @@ -156319,15 +156422,15 @@ load 65 val_kind call 66 string_len int 1 65 iconst 67 0 eq 68 66 67 -brif 68 L3638 L3639 -label L3638 +brif 68 L3646 L3647 +label L3646 load 69 val_kind strref 70 m46s822 call 71 pith_cstring_release void 1 69 store val_kind 70 -jmp L3637 -label L3639 -label L3637 +jmp L3645 +label L3647 +label L3645 call 72 ir_builder_ir_reg int 0 store unwrapped_r 72 strref 73 m46s837 @@ -156381,20 +156484,20 @@ call 120 ir_call_emit_ir_emit_call1 void 4 116 117 118 119 call 121 pith_cstring_release void 1 117 call 122 pith_cstring_release void 1 118 iconst 123 0 -store __and_123_3643 123 +store __and_123_3651 123 load 124 ir_emitter_core_ir_emit_tests -store __and_123_3643 124 -brif 124 L3643 L3644 -label L3643 -load 125 ir_emitter_core_ir_emitting_test_func -store __and_123_3643 125 -label L3644 -load 126 __and_123_3643 -brif 126 L3641 L3642 -label L3641 +store __and_123_3651 124 +brif 124 L3651 L3652 +label L3651 +load 125 ir_emitter_core_ir_emitting_test_func +store __and_123_3651 125 +label L3652 +load 126 __and_123_3651 +brif 126 L3649 L3650 +label L3649 call 127 ir_emitter_core_ir_test_assert_fail_return void 0 -jmp L3640 -label L3642 +jmp L3648 +label L3650 iconst 128 1 call 129 ir_emitter_core_ir_defer_emit_to_function_frame void 1 128 strref 130 m46s82 @@ -156432,7 +156535,7 @@ call 159 pith_cstring_release void 1 154 call 160 pith_cstring_release void 1 157 call 161 ir_builder_ir_emit void 1 158 call 162 pith_cstring_release void 1 158 -label L3640 +label L3648 load 163 merge_l call 164 ir_call_emit_ir_emit_label void 1 163 load 165 unwrapped_r @@ -156470,22 +156573,22 @@ load 1 obj_type strref 2 m46s19 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 -brif 3 L3646 L3647 -label L3646 +brif 3 L3654 L3655 +label L3654 strref 5 m46s685 ret 5 -label L3647 -label L3645 +label L3655 +label L3653 load 6 obj_type strref 7 m46s670 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -brif 8 L3649 L3650 -label L3649 +brif 8 L3657 L3658 +label L3657 strref 10 m46s686 ret 10 -label L3650 -label L3648 +label L3658 +label L3656 strref 11 m46s704 ret 11 iconst 12 0 @@ -156512,7 +156615,7 @@ call 10 ast_get_node struct:Node 1 9 call 11 pith_struct_release void 1 8 store target 10 iconst 12 0 -store __or_12_3654 12 +store __or_12_3662 12 load 13 target field 14 13 0 string kind strref 15 m46s35 @@ -156520,19 +156623,19 @@ call 17 pith_cstring_eq bool 2 14 15 iconst 18 1 sub 16 18 17 call 19 pith_cstring_release void 1 15 -store __or_12_3654 16 -brif 16 L3655 L3654 -label L3654 +store __or_12_3662 16 +brif 16 L3663 L3662 +label L3662 load 20 target field 21 20 16 list children call 22 pith_list_len int 1 21 iconst 23 2 lt 24 22 23 -store __or_12_3654 24 -label L3655 -load 25 __or_12_3654 -brif 25 L3652 L3653 -label L3652 +store __or_12_3662 24 +label L3663 +load 25 __or_12_3662 +brif 25 L3660 L3661 +label L3660 iconst 26 0 load 27 target call 28 pith_struct_release void 1 27 @@ -156547,8 +156650,8 @@ call 36 pith_cstring_release void 1 35 load 37 owned_store call 38 pith_cstring_release void 1 37 ret 26 -label L3653 -label L3651 +label L3661 +label L3659 load 39 target field 40 39 16 list children iconst 41 0 @@ -156578,8 +156681,8 @@ load 60 obj_type call 61 string_len int 1 60 iconst 62 0 eq 63 61 62 -brif 63 L3657 L3658 -label L3657 +brif 63 L3665 L3666 +label L3665 load 64 obj_type load 65 target field 66 65 16 list children @@ -156588,15 +156691,15 @@ call 68 pith_list_get_value_strict int 2 66 67 call 69 ir_emitter_core_ir_infer_type string 1 68 call 70 pith_cstring_release void 1 64 store obj_type 69 -jmp L3656 -label L3658 -label L3656 +jmp L3664 +label L3666 +label L3664 load 71 value_type call 72 string_len int 1 71 iconst 73 0 eq 74 72 73 -brif 74 L3660 L3661 -label L3660 +brif 74 L3668 L3669 +label L3668 load 75 value_type load 76 target field 77 76 16 list children @@ -156605,23 +156708,23 @@ call 79 pith_list_get_value_strict int 2 77 78 call 80 ir_emitter_core_ir_lookup_map_value_type_for_expr string 1 79 call 81 pith_cstring_release void 1 75 store value_type 80 -jmp L3659 -label L3661 -label L3659 +jmp L3667 +label L3669 +label L3667 load 82 value_type call 83 string_len int 1 82 iconst 84 0 eq 85 83 84 -brif 85 L3663 L3664 -label L3663 +brif 85 L3671 L3672 +label L3671 load 86 value_type load 87 value_idx call 88 ir_emitter_core_ir_infer_type string 1 87 call 89 pith_cstring_release void 1 86 store value_type 88 -jmp L3662 -label L3664 -label L3662 +jmp L3670 +label L3672 +label L3670 load 90 value_idx load 91 value_type call 92 ir_emitter_core_ir_emit_value_for_target int 2 90 91 @@ -156638,74 +156741,74 @@ call 100 pith_cstring_release void 1 97 store set_name 99 load 101 value_idx call 102 ir_emitter_core_ir_string_expr_is_borrowed bool 1 101 -brif 102 L3666 L3667 -label L3666 +brif 102 L3674 L3675 +label L3674 iconst 103 0 -store __or_103_3671 103 +store __or_103_3679 103 iconst 104 0 -store __or_104_3671 104 +store __or_104_3679 104 iconst 105 0 -store __or_105_3671 105 +store __or_105_3679 105 iconst 106 0 -store __or_106_3671 106 +store __or_106_3679 106 load 107 idx_store_kind strref 108 m46s20 call 109 pith_cstring_eq bool 2 107 108 call 110 pith_cstring_release void 1 108 -store __or_106_3671 109 -brif 109 L3672 L3671 -label L3671 +store __or_106_3679 109 +brif 109 L3680 L3679 +label L3679 load 111 idx_store_kind strref 112 m46s19 call 113 pith_cstring_eq bool 2 111 112 call 114 pith_cstring_release void 1 112 -store __or_106_3671 113 -label L3672 -load 115 __or_106_3671 -store __or_105_3671 115 -brif 115 L3674 L3673 -label L3673 +store __or_106_3679 113 +label L3680 +load 115 __or_106_3679 +store __or_105_3679 115 +brif 115 L3682 L3681 +label L3681 load 116 idx_store_kind strref 117 m46s18 call 118 pith_cstring_eq bool 2 116 117 call 119 pith_cstring_release void 1 117 -store __or_105_3671 118 -label L3674 -load 120 __or_105_3671 -store __or_104_3671 120 -brif 120 L3676 L3675 -label L3675 +store __or_105_3679 118 +label L3682 +load 120 __or_105_3679 +store __or_104_3679 120 +brif 120 L3684 L3683 +label L3683 load 121 idx_store_kind strref 122 m46s674 call 123 pith_cstring_eq bool 2 121 122 call 124 pith_cstring_release void 1 122 -store __or_104_3671 123 -label L3676 -load 125 __or_104_3671 -store __or_103_3671 125 -brif 125 L3678 L3677 -label L3677 +store __or_104_3679 123 +label L3684 +load 125 __or_104_3679 +store __or_103_3679 125 +brif 125 L3686 L3685 +label L3685 load 126 idx_store_kind strref 127 m46s15 call 128 pith_cstring_eq bool 2 126 127 call 129 pith_cstring_release void 1 127 -store __or_103_3671 128 -label L3678 -load 130 __or_103_3671 -brif 130 L3669 L3670 -label L3669 +store __or_103_3679 128 +label L3686 +load 130 __or_103_3679 +brif 130 L3677 L3678 +label L3677 load 131 value_r load 132 idx_store_kind call 133 ir_ownership_ir_rc_retain_reg void 2 131 132 -jmp L3668 -label L3670 -label L3668 -jmp L3665 -label L3667 +jmp L3676 +label L3678 +label L3676 +jmp L3673 +label L3675 load 134 idx_store_kind call 135 ir_emitter_core_ir_container_store_takes_count bool 1 134 -brif 135 L3679 L3680 -label L3679 +brif 135 L3687 L3688 +label L3687 load 136 owned_store load 137 set_name call 138 ir_emitter_core_ir_owned_container_store_name string 1 137 @@ -156715,19 +156818,19 @@ load 140 owned_store call 141 string_len int 1 140 iconst 142 0 gt 143 141 142 -brif 143 L3682 L3683 -label L3682 +brif 143 L3690 L3691 +label L3690 load 144 set_name load 145 owned_store call 146 pith_cstring_retain void 1 145 call 147 pith_cstring_release void 1 144 store set_name 145 -jmp L3681 -label L3683 -label L3681 -jmp L3665 -label L3680 -label L3665 +jmp L3689 +label L3691 +label L3689 +jmp L3673 +label L3688 +label L3673 call 148 ir_builder_ir_reg int 0 load 149 set_name strref 150 m46s828 @@ -156781,146 +156884,146 @@ call 4 ast_get_node struct:Node 1 3 call 5 pith_struct_release void 1 2 store node 4 iconst 6 0 -store __or_6_3687 6 +store __or_6_3695 6 iconst 7 0 -store __or_7_3687 7 +store __or_7_3695 7 load 8 node field 9 8 0 string kind strref 10 m46s519 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 -store __or_7_3687 11 -brif 11 L3688 L3687 -label L3687 +store __or_7_3695 11 +brif 11 L3696 L3695 +label L3695 load 13 node field 14 13 0 string kind strref 15 m46s671 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 -store __or_7_3687 16 -label L3688 -load 18 __or_7_3687 -store __or_6_3687 18 -brif 18 L3690 L3689 -label L3689 +store __or_7_3695 16 +label L3696 +load 18 __or_7_3695 +store __or_6_3695 18 +brif 18 L3698 L3697 +label L3697 load 19 node field 20 19 0 string kind strref 21 m46s1047 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -store __or_6_3687 22 -label L3690 -load 24 __or_6_3687 -brif 24 L3685 L3686 -label L3685 +store __or_6_3695 22 +label L3698 +load 24 __or_6_3695 +brif 24 L3693 L3694 +label L3693 load 25 node call 26 ir_literals_ir_emit_int_literal int 1 25 load 27 node call 28 pith_struct_release void 1 27 ret 26 -label L3686 -label L3684 +label L3694 +label L3692 iconst 29 0 -store __or_29_3694 29 +store __or_29_3702 29 iconst 30 0 -store __or_30_3694 30 +store __or_30_3702 30 load 31 node field 32 31 0 string kind strref 33 m46s517 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 -store __or_30_3694 34 -brif 34 L3695 L3694 -label L3694 +store __or_30_3702 34 +brif 34 L3703 L3702 +label L3702 load 36 node field 37 36 0 string kind strref 38 m46s675 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 -store __or_30_3694 39 -label L3695 -load 41 __or_30_3694 -store __or_29_3694 41 -brif 41 L3697 L3696 -label L3696 +store __or_30_3702 39 +label L3703 +load 41 __or_30_3702 +store __or_29_3702 41 +brif 41 L3705 L3704 +label L3704 load 42 node field 43 42 0 string kind strref 44 m46s1025 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 -store __or_29_3694 45 -label L3697 -load 47 __or_29_3694 -brif 47 L3692 L3693 -label L3692 +store __or_29_3702 45 +label L3705 +load 47 __or_29_3702 +brif 47 L3700 L3701 +label L3700 load 48 node call 49 ir_literals_ir_emit_string_literal int 1 48 load 50 node call 51 pith_struct_release void 1 50 ret 49 -label L3693 -label L3691 +label L3701 +label L3699 iconst 52 0 -store __or_52_3701 52 +store __or_52_3709 52 load 53 node field 54 53 0 string kind strref 55 m46s518 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 -store __or_52_3701 56 -brif 56 L3702 L3701 -label L3701 +store __or_52_3709 56 +brif 56 L3710 L3709 +label L3709 load 58 node field 59 58 0 string kind strref 60 m46s672 call 61 pith_cstring_eq bool 2 59 60 call 62 pith_cstring_release void 1 60 -store __or_52_3701 61 -label L3702 -load 63 __or_52_3701 -brif 63 L3699 L3700 -label L3699 +store __or_52_3709 61 +label L3710 +load 63 __or_52_3709 +brif 63 L3707 L3708 +label L3707 load 64 node call 65 ir_literals_ir_emit_float_literal int 1 64 load 66 node call 67 pith_struct_release void 1 66 ret 65 -label L3700 -label L3698 +label L3708 +label L3706 iconst 68 0 -store __or_68_3706 68 +store __or_68_3714 68 load 69 node field 70 69 0 string kind strref 71 m46s673 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 -store __or_68_3706 72 -brif 72 L3707 L3706 -label L3706 +store __or_68_3714 72 +brif 72 L3715 L3714 +label L3714 load 74 node field 75 74 0 string kind strref 76 m46s516 call 77 pith_cstring_eq bool 2 75 76 call 78 pith_cstring_release void 1 76 -store __or_68_3706 77 -label L3707 -load 79 __or_68_3706 -brif 79 L3704 L3705 -label L3704 +store __or_68_3714 77 +label L3715 +load 79 __or_68_3714 +brif 79 L3712 L3713 +label L3712 load 80 node call 81 ir_literals_ir_emit_bool_literal int 1 80 load 82 node call 83 pith_struct_release void 1 82 ret 81 -label L3705 -label L3703 +label L3713 +label L3711 load 84 node field 85 84 0 string kind strref 86 m46s37 call 87 pith_cstring_eq bool 2 85 86 call 88 pith_cstring_release void 1 86 -brif 87 L3709 L3710 -label L3709 +brif 87 L3717 L3718 +label L3717 load 89 idx load 90 node field 91 90 8 string value @@ -156928,15 +157031,15 @@ call 92 ir_emitter_core_ir_emit_ident_load int 2 89 91 load 93 node call 94 pith_struct_release void 1 93 ret 92 -label L3710 -label L3708 +label L3718 +label L3716 load 95 node field 96 95 0 string kind strref 97 m46s515 call 98 pith_cstring_eq bool 2 96 97 call 99 pith_cstring_release void 1 97 -brif 98 L3712 L3713 -label L3712 +brif 98 L3720 L3721 +label L3720 load 100 idx strref 101 m46s515 call 102 ir_emitter_core_ir_emit_ident_load int 2 100 101 @@ -156944,57 +157047,57 @@ call 103 pith_cstring_release void 1 101 load 104 node call 105 pith_struct_release void 1 104 ret 102 -label L3713 -label L3711 +label L3721 +label L3719 load 106 node field 107 106 0 string kind strref 108 m46s513 call 109 pith_cstring_eq bool 2 107 108 call 110 pith_cstring_release void 1 108 -brif 109 L3715 L3716 -label L3715 +brif 109 L3723 L3724 +label L3723 load 111 node call 112 ir_emitter_core_ir_emit_unary_expr int 1 111 load 113 node call 114 pith_struct_release void 1 113 ret 112 -label L3716 -label L3714 +label L3724 +label L3722 load 115 node field 116 115 0 string kind strref 117 m46s514 call 118 pith_cstring_eq bool 2 116 117 call 119 pith_cstring_release void 1 117 -brif 118 L3718 L3719 -label L3718 +brif 118 L3726 L3727 +label L3726 load 120 node call 121 ir_emitter_core_ir_emit_binary_expr int 1 120 load 122 node call 123 pith_struct_release void 1 122 ret 121 -label L3719 -label L3717 +label L3727 +label L3725 load 124 node field 125 124 0 string kind strref 126 m46s44 call 127 pith_cstring_eq bool 2 125 126 call 128 pith_cstring_release void 1 126 -brif 127 L3721 L3722 -label L3721 +brif 127 L3729 L3730 +label L3729 load 129 idx load 130 node call 131 ir_emitter_core_ir_emit_static_call int 2 129 130 load 132 node call 133 pith_struct_release void 1 132 ret 131 -label L3722 +label L3730 load 134 idx load 135 node call 136 ir_emitter_core_ir_expr_complex int 2 134 135 load 137 node call 138 pith_struct_release void 1 137 ret 136 -label L3720 +label L3728 load 139 node call 140 pith_struct_release void 1 139 iconst 141 0 @@ -157043,8 +157146,8 @@ field 12 11 16 list children call 13 pith_list_len int 1 12 iconst 14 0 gt 15 13 14 -brif 15 L3724 L3725 -label L3724 +brif 15 L3732 L3733 +label L3732 load 16 recv_node load 17 node field 18 17 16 list children @@ -157054,46 +157157,46 @@ call 21 ast_get_node struct:Node 1 20 call 22 pith_struct_release void 1 16 store recv_node 21 iconst 23 0 -store __and_23_3729 23 +store __and_23_3737 23 load 24 recv_node field 25 24 0 string kind strref 26 m46s37 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 -store __and_23_3729 27 -brif 27 L3729 L3730 -label L3729 +store __and_23_3737 27 +brif 27 L3737 L3738 +label L3737 load 29 ir_alias_registry_ir_module_aliases load 30 recv_node field 31 30 8 string value call 32 contains_key bool 2 29 31 -store __and_23_3729 32 -label L3730 -load 33 __and_23_3729 -brif 33 L3727 L3728 -label L3727 +store __and_23_3737 32 +label L3738 +load 33 __and_23_3737 +brif 33 L3735 L3736 +label L3735 load 34 idx call 35 checker_c_get_expr_type int 1 34 store expr_tid 35 iconst 36 0 -store __and_36_3734 36 +store __and_36_3742 36 load 37 expr_tid iconst 38 0 gte 39 37 38 -store __and_36_3734 39 -brif 39 L3734 L3735 -label L3734 +store __and_36_3742 39 +brif 39 L3742 L3743 +label L3742 load 40 expr_tid call 41 types_get_type_info struct:TypeInfo 1 40 field 42 41 0 string kind strref 43 m46s24 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 -store __and_36_3734 44 -label L3735 -load 46 __and_36_3734 -brif 46 L3732 L3733 -label L3732 +store __and_36_3742 44 +label L3743 +load 46 __and_36_3742 +brif 46 L3740 L3741 +label L3740 load 47 callee load 48 idx call 49 ir_emitter_core_ir_resolve_static_callee struct:ResolvedCallee 1 48 @@ -157104,8 +157207,8 @@ field 52 51 0 string name call 53 string_len int 1 52 iconst 54 0 gt 55 53 54 -brif 55 L3737 L3738 -label L3737 +brif 55 L3745 L3746 +label L3745 call 56 ir_builder_ir_reg int 0 store r 56 load 57 wrapper @@ -157142,11 +157245,11 @@ call 86 pith_cstring_release void 1 85 load 87 module_path call 88 pith_cstring_release void 1 87 ret 78 -label L3738 -label L3736 -jmp L3731 -label L3733 -label L3731 +label L3746 +label L3744 +jmp L3739 +label L3741 +label L3739 load 89 module_path load 90 ir_alias_registry_ir_module_aliases load 91 recv_node @@ -157158,8 +157261,8 @@ store module_path 93 load 96 module_path load 97 fname call 98 ir_alias_registry_ir_import_declares_global bool 2 96 97 -brif 98 L3740 L3741 -label L3740 +brif 98 L3748 L3749 +label L3748 call 99 ir_builder_ir_reg int 0 store r 99 strref 100 m46s829 @@ -157192,11 +157295,11 @@ call 126 pith_cstring_release void 1 125 load 127 module_path call 128 pith_cstring_release void 1 127 ret 118 -label L3741 -label L3739 -jmp L3726 -label L3728 -label L3726 +label L3749 +label L3747 +jmp L3734 +label L3736 +label L3734 load 129 node field 130 129 16 list children iconst 131 0 @@ -157211,8 +157314,8 @@ store result_r 137 load 138 result_r iconst 139 0 gte 140 138 139 -brif 140 L3743 L3744 -label L3743 +brif 140 L3751 L3752 +label L3751 load 141 result_r load 142 fname call 143 pith_cstring_release void 1 142 @@ -157225,8 +157328,8 @@ call 149 pith_cstring_release void 1 148 load 150 module_path call 151 pith_cstring_release void 1 150 ret 141 -label L3744 -label L3742 +label L3752 +label L3750 load 152 idx load 153 node load 154 obj_r @@ -157242,8 +157345,8 @@ call 163 pith_cstring_release void 1 162 load 164 module_path call 165 pith_cstring_release void 1 164 ret 155 -label L3725 -label L3723 +label L3733 +label L3731 load 166 idx load 167 node iconst 168 0 @@ -157281,12 +157384,12 @@ field 2 1 16 list children call 3 pith_list_len int 1 2 iconst 4 0 eq 5 3 4 -brif 5 L3746 L3747 -label L3746 +brif 5 L3754 L3755 +label L3754 call 6 ir_emitter_core_ir_emit_zero_value int 0 ret 6 -label L3747 -label L3745 +label L3755 +label L3753 load 7 node field 8 7 16 list children iconst 9 0 @@ -157325,8 +157428,8 @@ load 11 err_kind call 12 string_len int 1 11 iconst 13 0 gt 14 12 13 -brif 14 L3749 L3750 -label L3749 +brif 14 L3757 L3758 +label L3757 load 15 result_r load 16 result_tid strref 17 m46s181 @@ -157336,9 +157439,9 @@ store err_r 18 load 20 err_r load 21 err_kind call 22 ir_ownership_ir_rc_release_reg void 2 20 21 -jmp L3748 -label L3750 -label L3748 +jmp L3756 +label L3758 +label L3756 load 23 err_kind call 24 pith_cstring_release void 1 23 iconst 25 0 @@ -157409,8 +157512,8 @@ load 51 ok_kind call 52 string_len int 1 51 iconst 53 0 gt 54 52 53 -brif 54 L3752 L3753 -label L3752 +brif 54 L3760 L3761 +label L3760 load 55 result_r load 56 result_tid strref 57 m46s182 @@ -157420,9 +157523,9 @@ store ok_r 58 load 60 ok_r load 61 ok_kind call 62 ir_ownership_ir_rc_release_reg void 2 60 61 -jmp L3751 -label L3753 -label L3751 +jmp L3759 +label L3761 +label L3759 strref 63 m46s833 load 64 done_l concat 65 63 64 @@ -157549,8 +157652,8 @@ load 70 operand_class strref 71 m46s1202 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 -brif 72 L3755 L3756 -label L3755 +brif 72 L3763 L3764 +label L3763 load 74 ok_value_r load 75 result_tid strref 76 m46s182 @@ -157560,8 +157663,8 @@ call 79 ir_struct_registry_ir_rc_kind string 1 77 call 80 pith_cstring_release void 1 77 call 81 ir_ownership_ir_rc_retain_reg void 2 74 79 call 82 pith_cstring_release void 1 79 -jmp L3754 -label L3756 +jmp L3762 +label L3764 call 83 ir_builder_ir_reg int 0 strref 84 m46s898 strref 85 m46s828 @@ -157569,7 +157672,7 @@ load 86 result_r call 87 ir_call_emit_ir_emit_call1 void 4 83 84 85 86 call 88 pith_cstring_release void 1 84 call 89 pith_cstring_release void 1 85 -label L3754 +label L3762 strref 90 m46s830 load 91 temp_name concat 92 90 91 @@ -157599,8 +157702,8 @@ call 116 pith_cstring_eq bool 2 113 114 iconst 117 1 sub 115 117 116 call 118 pith_cstring_release void 1 114 -brif 115 L3758 L3759 -label L3758 +brif 115 L3766 L3767 +label L3766 load 119 result_r load 120 result_tid call 121 ir_emitter_core_ir_emit_release_result_error void 2 119 120 @@ -157611,9 +157714,9 @@ load 125 result_r call 126 ir_call_emit_ir_emit_call1 void 4 122 123 124 125 call 127 pith_cstring_release void 1 123 call 128 pith_cstring_release void 1 124 -jmp L3757 -label L3759 -label L3757 +jmp L3765 +label L3767 +label L3765 load 129 node field 130 129 16 list children iconst 131 1 @@ -157625,8 +157728,8 @@ field 135 134 16 list children iconst 136 1 call 137 pith_list_get_value_strict int 2 135 136 call 138 ir_emitter_core_ir_string_expr_is_borrowed bool 1 137 -brif 138 L3761 L3762 -label L3761 +brif 138 L3769 L3770 +label L3769 load 139 fallback_r load 140 node field 141 140 16 list children @@ -157637,9 +157740,9 @@ call 145 ir_struct_registry_ir_rc_kind string 1 144 call 146 pith_cstring_release void 1 144 call 147 ir_ownership_ir_rc_retain_reg void 2 139 145 call 148 pith_cstring_release void 1 145 -jmp L3760 -label L3762 -label L3760 +jmp L3768 +label L3770 +label L3768 strref 149 m46s830 load 150 temp_name concat 151 149 150 @@ -157706,16 +157809,16 @@ field 2 1 16 list children call 3 pith_list_len int 1 2 iconst 4 0 gt 5 3 4 -brif 5 L3764 L3765 -label L3764 +brif 5 L3772 L3773 +label L3772 load 6 node field 7 6 16 list children iconst 8 0 call 9 pith_list_get_value_strict int 2 7 8 call 10 ir_emitter_core_ir_expr int 1 9 ret 10 -label L3765 -label L3763 +label L3773 +label L3771 call 11 ir_emitter_core_ir_emit_zero_value int 0 ret 11 iconst 12 0 @@ -157737,13 +157840,13 @@ load 8 kind strref 9 m46s502 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 -brif 10 L3767 L3768 -label L3767 +brif 10 L3775 L3776 +label L3775 load 12 idx load 13 ir_match_emit_ir_tail_match_node eq 14 12 13 -brif 14 L3770 L3771 -label L3770 +brif 14 L3778 L3779 +label L3778 load 15 idx load 16 node closure_ref 17 ir_emitter_core___fnval_0 @@ -157757,8 +157860,8 @@ call 24 pith_cstring_release void 1 23 load 25 checked_lit call 26 pith_cstring_release void 1 25 ret 22 -label L3771 -label L3769 +label L3779 +label L3777 load 27 idx load 28 node closure_ref 29 ir_emitter_core___fnval_0 @@ -157771,14 +157874,14 @@ call 35 pith_cstring_release void 1 34 load 36 checked_lit call 37 pith_cstring_release void 1 36 ret 31 -label L3768 -label L3766 +label L3776 +label L3774 load 38 kind strref 39 m46s507 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 -brif 40 L3773 L3774 -label L3773 +brif 40 L3781 L3782 +label L3781 load 42 node closure_ref 43 ir_emitter_core___fnval_0 call 44 ir_match_emit_ir_emit_if_expr int 2 42 43 @@ -157788,14 +157891,14 @@ call 47 pith_cstring_release void 1 46 load 48 checked_lit call 49 pith_cstring_release void 1 48 ret 44 -label L3774 -label L3772 +label L3782 +label L3780 load 50 kind strref 51 m46s129 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 -brif 52 L3776 L3777 -label L3776 +brif 52 L3784 L3785 +label L3784 load 54 idx call 55 ir_emitter_core_ir_emit_method_call int 1 54 load 56 kind @@ -157803,14 +157906,14 @@ call 57 pith_cstring_release void 1 56 load 58 checked_lit call 59 pith_cstring_release void 1 58 ret 55 -label L3777 -label L3775 +label L3785 +label L3783 load 60 kind strref 61 m46s511 call 62 pith_cstring_eq bool 2 60 61 call 63 pith_cstring_release void 1 61 -brif 62 L3779 L3780 -label L3779 +brif 62 L3787 L3788 +label L3787 load 64 idx call 65 ir_emitter_core_ir_emit_string_interp int 1 64 load 66 kind @@ -157818,37 +157921,37 @@ call 67 pith_cstring_release void 1 66 load 68 checked_lit call 69 pith_cstring_release void 1 68 ret 65 -label L3780 -label L3778 +label L3788 +label L3786 load 70 kind strref 71 m46s19 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 -brif 72 L3782 L3783 -label L3782 +brif 72 L3790 L3791 +label L3790 load 74 checked_lit load 75 idx call 76 ir_type_helpers_ir_checked_type string 1 75 call 77 pith_cstring_release void 1 74 store checked_lit 76 iconst 78 0 -store __or_78_3787 78 +store __or_78_3795 78 load 79 checked_lit strref 80 m46s18 call 81 pith_cstring_eq bool 2 79 80 call 82 pith_cstring_release void 1 80 -store __or_78_3787 81 -brif 81 L3788 L3787 -label L3787 +store __or_78_3795 81 +brif 81 L3796 L3795 +label L3795 load 83 checked_lit strref 84 m46s669 call 85 pith_cstring_eq bool 2 83 84 call 86 pith_cstring_release void 1 84 -store __or_78_3787 85 -label L3788 -load 87 __or_78_3787 -brif 87 L3785 L3786 -label L3785 +store __or_78_3795 85 +label L3796 +load 87 __or_78_3795 +brif 87 L3793 L3794 +label L3793 load 88 idx load 89 node call 90 ir_emitter_core_ir_emit_set_literal int 2 88 89 @@ -157857,8 +157960,8 @@ call 92 pith_cstring_release void 1 91 load 93 checked_lit call 94 pith_cstring_release void 1 93 ret 90 -label L3786 -label L3784 +label L3794 +label L3792 load 95 idx load 96 node call 97 ir_emitter_core_ir_emit_map_literal int 2 95 96 @@ -157867,14 +157970,14 @@ call 99 pith_cstring_release void 1 98 load 100 checked_lit call 101 pith_cstring_release void 1 100 ret 97 -label L3783 -label L3781 +label L3791 +label L3789 load 102 kind strref 103 m46s18 call 104 pith_cstring_eq bool 2 102 103 call 105 pith_cstring_release void 1 103 -brif 104 L3790 L3791 -label L3790 +brif 104 L3798 L3799 +label L3798 load 106 idx load 107 node call 108 ir_emitter_core_ir_emit_set_literal int 2 106 107 @@ -157883,14 +157986,14 @@ call 110 pith_cstring_release void 1 109 load 111 checked_lit call 112 pith_cstring_release void 1 111 ret 108 -label L3791 -label L3789 +label L3799 +label L3797 load 113 kind strref 114 m46s20 call 115 pith_cstring_eq bool 2 113 114 call 116 pith_cstring_release void 1 114 -brif 115 L3793 L3794 -label L3793 +brif 115 L3801 L3802 +label L3801 load 117 idx load 118 node call 119 ir_emitter_core_ir_emit_list_literal int 2 117 118 @@ -157899,14 +158002,14 @@ call 121 pith_cstring_release void 1 120 load 122 checked_lit call 123 pith_cstring_release void 1 122 ret 119 -label L3794 -label L3792 +label L3802 +label L3800 load 124 kind strref 125 m46s23 call 126 pith_cstring_eq bool 2 124 125 call 127 pith_cstring_release void 1 125 -brif 126 L3796 L3797 -label L3796 +brif 126 L3804 L3805 +label L3804 load 128 node call 129 ir_emitter_core_ir_emit_tuple_literal int 1 128 load 130 kind @@ -157914,14 +158017,14 @@ call 131 pith_cstring_release void 1 130 load 132 checked_lit call 133 pith_cstring_release void 1 132 ret 129 -label L3797 -label L3795 +label L3805 +label L3803 load 134 kind strref 135 m46s500 call 136 pith_cstring_eq bool 2 134 135 call 137 pith_cstring_release void 1 135 -brif 136 L3799 L3800 -label L3799 +brif 136 L3807 L3808 +label L3807 load 138 idx load 139 node call 140 ir_emitter_core_ir_emit_struct_init int 2 138 139 @@ -157930,14 +158033,14 @@ call 142 pith_cstring_release void 1 141 load 143 checked_lit call 144 pith_cstring_release void 1 143 ret 140 -label L3800 -label L3798 +label L3808 +label L3806 load 145 kind strref 146 m46s36 call 147 pith_cstring_eq bool 2 145 146 call 148 pith_cstring_release void 1 146 -brif 147 L3802 L3803 -label L3802 +brif 147 L3810 L3811 +label L3810 load 149 idx load 150 node call 151 ir_emitter_core_ir_emit_field_access_expr int 2 149 150 @@ -157946,14 +158049,14 @@ call 153 pith_cstring_release void 1 152 load 154 checked_lit call 155 pith_cstring_release void 1 154 ret 151 -label L3803 -label L3801 +label L3811 +label L3809 load 156 kind strref 157 m46s501 call 158 pith_cstring_eq bool 2 156 157 call 159 pith_cstring_release void 1 157 -brif 158 L3805 L3806 -label L3805 +brif 158 L3813 L3814 +label L3813 load 160 idx call 161 ir_emitter_core_ir_emit_lambda int 1 160 load 162 kind @@ -157961,14 +158064,14 @@ call 163 pith_cstring_release void 1 162 load 164 checked_lit call 165 pith_cstring_release void 1 164 ret 161 -label L3806 -label L3804 +label L3814 +label L3812 load 166 kind strref 167 m46s499 call 168 pith_cstring_eq bool 2 166 167 call 169 pith_cstring_release void 1 167 -brif 168 L3808 L3809 -label L3808 +brif 168 L3816 L3817 +label L3816 load 170 node call 171 ir_emitter_core_ir_emit_spawn_expr int 1 170 load 172 kind @@ -157976,14 +158079,14 @@ call 173 pith_cstring_release void 1 172 load 174 checked_lit call 175 pith_cstring_release void 1 174 ret 171 -label L3809 -label L3807 +label L3817 +label L3815 load 176 kind strref 177 m46s498 call 178 pith_cstring_eq bool 2 176 177 call 179 pith_cstring_release void 1 177 -brif 178 L3811 L3812 -label L3811 +brif 178 L3819 L3820 +label L3819 load 180 node call 181 ir_emitter_core_ir_emit_await_expr int 1 180 load 182 kind @@ -157991,14 +158094,14 @@ call 183 pith_cstring_release void 1 182 load 184 checked_lit call 185 pith_cstring_release void 1 184 ret 181 -label L3812 -label L3810 +label L3820 +label L3818 load 186 kind strref 187 m46s506 call 188 pith_cstring_eq bool 2 186 187 call 189 pith_cstring_release void 1 187 -brif 188 L3814 L3815 -label L3814 +brif 188 L3822 L3823 +label L3822 load 190 node call 191 ir_emitter_core_ir_emit_optional_unwrap int 1 190 load 192 kind @@ -158006,26 +158109,26 @@ call 193 pith_cstring_release void 1 192 load 194 checked_lit call 195 pith_cstring_release void 1 194 ret 191 -label L3815 -label L3813 +label L3823 +label L3821 iconst 196 0 -store __or_196_3819 196 +store __or_196_3827 196 load 197 kind strref 198 m46s505 call 199 pith_cstring_eq bool 2 197 198 call 200 pith_cstring_release void 1 198 -store __or_196_3819 199 -brif 199 L3820 L3819 -label L3819 +store __or_196_3827 199 +brif 199 L3828 L3827 +label L3827 load 201 kind strref 202 m46s550 call 203 pith_cstring_eq bool 2 201 202 call 204 pith_cstring_release void 1 202 -store __or_196_3819 203 -label L3820 -load 205 __or_196_3819 -brif 205 L3817 L3818 -label L3817 +store __or_196_3827 203 +label L3828 +load 205 __or_196_3827 +brif 205 L3825 L3826 +label L3825 load 206 node call 207 ir_emitter_core_ir_emit_try_expr int 1 206 load 208 kind @@ -158033,14 +158136,14 @@ call 209 pith_cstring_release void 1 208 load 210 checked_lit call 211 pith_cstring_release void 1 210 ret 207 -label L3818 -label L3816 +label L3826 +label L3824 load 212 kind strref 213 m46s504 call 214 pith_cstring_eq bool 2 212 213 call 215 pith_cstring_release void 1 213 -brif 214 L3822 L3823 -label L3822 +brif 214 L3830 L3831 +label L3830 load 216 node call 217 ir_emitter_core_ir_emit_catch_expr int 1 216 load 218 kind @@ -158048,14 +158151,14 @@ call 219 pith_cstring_release void 1 218 load 220 checked_lit call 221 pith_cstring_release void 1 220 ret 217 -label L3823 -label L3821 +label L3831 +label L3829 load 222 kind strref 223 m46s503 call 224 pith_cstring_eq bool 2 222 223 call 225 pith_cstring_release void 1 223 -brif 224 L3825 L3826 -label L3825 +brif 224 L3833 L3834 +label L3833 load 226 node call 227 ir_emitter_core_ir_emit_select_expr int 1 226 load 228 kind @@ -158063,14 +158166,14 @@ call 229 pith_cstring_release void 1 228 load 230 checked_lit call 231 pith_cstring_release void 1 230 ret 227 -label L3826 -label L3824 +label L3834 +label L3832 load 232 kind strref 233 m46s557 call 234 pith_cstring_eq bool 2 232 233 call 235 pith_cstring_release void 1 233 -brif 234 L3828 L3829 -label L3828 +brif 234 L3836 L3837 +label L3836 load 236 node call 237 ir_emitter_core_ir_emit_fail_expr int 1 236 load 238 kind @@ -158078,14 +158181,14 @@ call 239 pith_cstring_release void 1 238 load 240 checked_lit call 241 pith_cstring_release void 1 240 ret 237 -label L3829 -label L3827 +label L3837 +label L3835 load 242 kind strref 243 m46s512 call 244 pith_cstring_eq bool 2 242 243 call 245 pith_cstring_release void 1 243 -brif 244 L3831 L3832 -label L3831 +brif 244 L3839 L3840 +label L3839 load 246 node call 247 ir_emitter_core_ir_emit_grouped_expr int 1 246 load 248 kind @@ -158093,14 +158196,14 @@ call 249 pith_cstring_release void 1 248 load 250 checked_lit call 251 pith_cstring_release void 1 250 ret 247 -label L3832 -label L3830 +label L3840 +label L3838 load 252 kind strref 253 m46s35 call 254 pith_cstring_eq bool 2 252 253 call 255 pith_cstring_release void 1 253 -brif 254 L3834 L3835 -label L3834 +brif 254 L3842 L3843 +label L3842 load 256 idx load 257 node call 258 ir_emitter_core_ir_emit_index_expr int 2 256 257 @@ -158109,8 +158212,8 @@ call 260 pith_cstring_release void 1 259 load 261 checked_lit call 262 pith_cstring_release void 1 261 ret 258 -label L3835 -label L3833 +label L3843 +label L3841 call 263 ir_emitter_core_ir_emit_zero_value int 0 load 264 kind call 265 pith_cstring_release void 1 264 @@ -158141,8 +158244,8 @@ field 7 6 16 list children call 8 pith_list_len int 1 7 iconst 9 0 gt 10 8 9 -brif 10 L3837 L3838 -label L3837 +brif 10 L3845 L3846 +label L3845 load 11 node field 12 11 16 list children iconst 13 0 @@ -158162,15 +158265,15 @@ call 24 ast_get_node struct:Node 1 23 call 25 pith_struct_release void 1 19 store expr_node 24 iconst 26 0 -store __and_26_3842 26 +store __and_26_3850 26 load 27 expr_node field 28 27 0 string kind strref 29 m46s37 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -store __and_26_3842 30 -brif 30 L3842 L3843 -label L3842 +store __and_26_3850 30 +brif 30 L3850 L3851 +label L3850 load 32 expr_node field 33 32 8 string value call 34 ir_emitter_core_ir_rc_local_kind string 1 33 @@ -158178,19 +158281,19 @@ call 35 string_len int 1 34 call 36 pith_cstring_release void 1 34 iconst 37 0 gt 38 35 37 -store __and_26_3842 38 -label L3843 -load 39 __and_26_3842 -brif 39 L3840 L3841 -label L3840 +store __and_26_3850 38 +label L3851 +load 39 __and_26_3850 +brif 39 L3848 L3849 +label L3848 load 40 exclude load 41 expr_node field 42 41 8 string value call 43 pith_cstring_retain void 1 42 call 44 pith_cstring_release void 1 40 store exclude 42 -jmp L3839 -label L3841 +jmp L3847 +label L3849 load 45 ret_kind load 46 node field 47 46 16 list children @@ -158204,31 +158307,31 @@ call 54 pith_cstring_release void 1 51 call 55 pith_cstring_release void 1 45 store ret_kind 53 iconst 56 0 -store __and_56_3847 56 +store __and_56_3855 56 load 57 ret_kind call 58 string_len int 1 57 iconst 59 0 gt 60 58 59 -store __and_56_3847 60 -brif 60 L3847 L3848 -label L3847 +store __and_56_3855 60 +brif 60 L3855 L3856 +label L3855 load 61 node field 62 61 16 list children iconst 63 0 call 64 pith_list_get_value_strict int 2 62 63 call 65 ir_emitter_core_ir_string_expr_is_borrowed bool 1 64 -store __and_56_3847 65 -label L3848 -load 66 __and_56_3847 -brif 66 L3845 L3846 -label L3845 +store __and_56_3855 65 +label L3856 +load 66 __and_56_3855 +brif 66 L3853 L3854 +label L3853 load 67 r load 68 ret_kind call 69 ir_ownership_ir_rc_retain_reg void 2 67 68 -jmp L3844 -label L3846 -label L3844 -label L3839 +jmp L3852 +label L3854 +label L3852 +label L3847 load 70 result_kind load 71 node field 72 71 16 list children @@ -158250,8 +158353,8 @@ store expr_kind 83 load 85 expr_tid iconst 86 0 gte 87 85 86 -brif 87 L3850 L3851 -label L3850 +brif 87 L3858 L3859 +label L3858 load 88 expr_kind load 89 expr_tid call 90 types_get_type_info struct:TypeInfo 1 89 @@ -158259,25 +158362,25 @@ field 91 90 0 string kind call 92 pith_cstring_retain void 1 91 call 93 pith_cstring_release void 1 88 store expr_kind 91 -jmp L3849 -label L3851 -label L3849 +jmp L3857 +label L3859 +label L3857 load 94 ir_emitter_core_ir_current_func_optional_inner_kind call 95 string_len int 1 94 iconst 96 0 gt 97 95 96 -brif 97 L3853 L3854 -label L3853 +brif 97 L3861 L3862 +label L3861 iconst 98 0 -store __and_98_3855 98 +store __and_98_3863 98 load 99 expr_node field 100 99 0 string kind strref 101 m46s37 call 102 pith_cstring_eq bool 2 100 101 call 103 pith_cstring_release void 1 101 -store __and_98_3855 102 -brif 102 L3855 L3856 -label L3855 +store __and_98_3863 102 +brif 102 L3863 L3864 +label L3863 load 104 expr_node field 105 104 8 string value call 106 ir_emitter_core_ir_rc_local_kind string 1 105 @@ -158285,97 +158388,97 @@ strref 107 m46s23 call 108 pith_cstring_eq bool 2 106 107 call 109 pith_cstring_release void 1 106 call 110 pith_cstring_release void 1 107 -store __and_98_3855 108 -label L3856 -load 111 __and_98_3855 +store __and_98_3863 108 +label L3864 +load 111 __and_98_3863 store ident_tuple_local 111 iconst 112 0 -store __or_112_3857 112 +store __or_112_3865 112 load 113 expr_kind strref 114 m46s21 call 115 pith_cstring_eq bool 2 113 114 call 116 pith_cstring_release void 1 114 -store __or_112_3857 115 -brif 115 L3858 L3857 -label L3857 +store __or_112_3865 115 +brif 115 L3866 L3865 +label L3865 iconst 117 0 -store __and_117_3859 117 +store __and_117_3867 117 iconst 118 0 -store __or_118_3859 118 +store __or_118_3867 118 load 119 result_kind strref 120 m46s23 call 121 pith_cstring_eq bool 2 119 120 call 122 pith_cstring_release void 1 120 -store __or_118_3859 121 -brif 121 L3860 L3859 -label L3859 +store __or_118_3867 121 +brif 121 L3868 L3867 +label L3867 load 123 ident_tuple_local -store __or_118_3859 123 -label L3860 -load 124 __or_118_3859 -store __and_117_3859 124 -brif 124 L3861 L3862 -label L3861 +store __or_118_3867 123 +label L3868 +load 124 __or_118_3867 +store __and_117_3867 124 +brif 124 L3869 L3870 +label L3869 load 125 ir_emitter_core_ir_current_func_optional_inner_kind strref 126 m46s23 call 128 pith_cstring_eq bool 2 125 126 iconst 129 1 sub 127 129 128 call 130 pith_cstring_release void 1 126 -store __and_117_3859 127 -label L3862 -load 131 __and_117_3859 -store __or_112_3857 131 -label L3858 -load 132 __or_112_3857 +store __and_117_3867 127 +label L3870 +load 131 __and_117_3867 +store __or_112_3865 131 +label L3866 +load 132 __or_112_3865 store already_optional 132 load 133 expr_node field 134 133 0 string kind strref 135 m46s56 call 136 pith_cstring_eq bool 2 134 135 call 137 pith_cstring_release void 1 135 -brif 136 L3864 L3865 -label L3864 +brif 136 L3872 L3873 +label L3872 call 138 ir_optionals_ir_emit_optional_none_value int 0 store r 138 -jmp L3863 -label L3865 +jmp L3871 +label L3873 load 139 already_optional iconst 140 0 eq 141 139 140 -brif 141 L3866 L3867 -label L3866 +brif 141 L3874 L3875 +label L3874 load 142 r call 143 ir_optionals_ir_emit_optional_some_value int 1 142 store r 143 -jmp L3863 -label L3867 -label L3863 -jmp L3852 -label L3854 +jmp L3871 +label L3875 +label L3871 +jmp L3860 +label L3862 load 144 ir_builder_ir_current_func_return_kind strref 145 m46s23 call 146 pith_cstring_eq bool 2 144 145 call 147 pith_cstring_release void 1 145 -brif 146 L3868 L3869 -label L3868 +brif 146 L3876 L3877 +label L3876 load 148 result_kind strref 149 m46s23 call 151 pith_cstring_eq bool 2 148 149 iconst 152 1 sub 150 152 151 call 153 pith_cstring_release void 1 149 -brif 150 L3871 L3872 -label L3871 +brif 150 L3879 L3880 +label L3879 load 154 r call 155 ir_emitter_core_ir_emit_ok_result_tuple int 1 154 store r 155 -jmp L3870 -label L3872 -label L3870 -jmp L3852 -label L3869 -label L3852 +jmp L3878 +label L3880 +label L3878 +jmp L3860 +label L3877 +label L3860 iconst 156 0 call 157 ir_emitter_core_ir_defer_emit_to_function_frame void 1 156 load 158 exclude @@ -158388,8 +158491,8 @@ call 164 pith_cstring_release void 1 160 call 165 pith_cstring_release void 1 162 call 166 ir_builder_ir_emit void 1 163 call 167 pith_cstring_release void 1 163 -jmp L3836 -label L3838 +jmp L3844 +label L3846 iconst 168 0 call 169 ir_emitter_core_ir_defer_emit_to_function_frame void 1 168 strref 170 m46s82 @@ -158417,7 +158520,7 @@ call 190 pith_cstring_release void 1 186 call 191 pith_cstring_release void 1 188 call 192 ir_builder_ir_emit void 1 189 call 193 pith_cstring_release void 1 189 -label L3836 +label L3844 iconst 194 1 store ir_call_emit_ir_last_was_ret 194 load 195 exclude @@ -158450,35 +158553,35 @@ store substituted 7 iconst 8 0 store ctor 8 iconst 9 0 -store __or_9_3876 9 +store __or_9_3884 9 iconst 10 0 -store __or_10_3876 10 +store __or_10_3884 10 load 11 bind_target strref 12 m46s20 call 14 pith_cstring_eq bool 2 11 12 iconst 15 1 sub 13 15 14 call 16 pith_cstring_release void 1 12 -store __or_10_3876 13 -brif 13 L3877 L3876 -label L3876 +store __or_10_3884 13 +brif 13 L3885 L3884 +label L3884 load 17 val_idx iconst 18 0 lt 19 17 18 -store __or_10_3876 19 -label L3877 -load 20 __or_10_3876 -store __or_9_3876 20 -brif 20 L3879 L3878 -label L3878 +store __or_10_3884 19 +label L3885 +load 20 __or_10_3884 +store __or_9_3884 20 +brif 20 L3887 L3886 +label L3886 load 21 type_idx iconst 22 0 lt 23 21 22 -store __or_9_3876 23 -label L3879 -load 24 __or_9_3876 -brif 24 L3874 L3875 -label L3874 +store __or_9_3884 23 +label L3887 +load 24 __or_9_3884 +brif 24 L3882 L3883 +label L3882 strref 25 m46s82 load 26 vn call 27 pith_struct_release void 1 26 @@ -158493,26 +158596,26 @@ call 35 pith_cstring_release void 1 34 load 36 ctor call 37 pith_cstring_release void 1 36 ret 25 -label L3875 -label L3873 +label L3883 +label L3881 iconst 38 0 -store __and_38_3883 38 +store __and_38_3891 38 load 39 ir_alias_registry_ir_active_generic_params call 40 pith_list_len int 1 39 iconst 41 0 eq 42 40 41 -store __and_38_3883 42 -brif 42 L3883 L3884 -label L3883 +store __and_38_3891 42 +brif 42 L3891 L3892 +label L3891 load 43 ir_emitter_core_ir_current_impl_subst_params call 44 pith_list_len int 1 43 iconst 45 0 eq 46 44 45 -store __and_38_3883 46 -label L3884 -load 47 __and_38_3883 -brif 47 L3881 L3882 -label L3881 +store __and_38_3891 46 +label L3892 +load 47 __and_38_3891 +brif 47 L3889 L3890 +label L3889 strref 48 m46s82 load 49 vn call 50 pith_struct_release void 1 49 @@ -158527,15 +158630,15 @@ call 58 pith_cstring_release void 1 57 load 59 ctor call 60 pith_cstring_release void 1 59 ret 48 -label L3882 -label L3880 +label L3890 +label L3888 load 61 vn load 62 val_idx call 63 ast_get_node struct:Node 1 62 call 64 pith_struct_release void 1 61 store vn 63 iconst 65 0 -store __or_65_3888 65 +store __or_65_3896 65 load 66 vn field 67 66 0 string kind strref 68 m46s20 @@ -158543,19 +158646,19 @@ call 70 pith_cstring_eq bool 2 67 68 iconst 71 1 sub 69 71 70 call 72 pith_cstring_release void 1 68 -store __or_65_3888 69 -brif 69 L3889 L3888 -label L3888 +store __or_65_3896 69 +brif 69 L3897 L3896 +label L3896 load 73 vn field 74 73 16 list children call 75 pith_list_len int 1 74 iconst 76 0 gt 77 75 76 -store __or_65_3888 77 -label L3889 -load 78 __or_65_3888 -brif 78 L3886 L3887 -label L3886 +store __or_65_3896 77 +label L3897 +load 78 __or_65_3896 +brif 78 L3894 L3895 +label L3894 strref 79 m46s82 load 80 vn call 81 pith_struct_release void 1 80 @@ -158570,17 +158673,17 @@ call 89 pith_cstring_release void 1 88 load 90 ctor call 91 pith_cstring_release void 1 90 ret 79 -label L3887 -label L3885 +label L3895 +label L3893 load 92 tn load 93 type_idx call 94 ast_get_node struct:Node 1 93 call 95 pith_struct_release void 1 92 store tn 94 iconst 96 0 -store __or_96_3893 96 +store __or_96_3901 96 iconst 97 0 -store __or_97_3893 97 +store __or_97_3901 97 load 98 tn field 99 98 0 string kind strref 100 m46s327 @@ -158588,9 +158691,9 @@ call 102 pith_cstring_eq bool 2 99 100 iconst 103 1 sub 101 103 102 call 104 pith_cstring_release void 1 100 -store __or_97_3893 101 -brif 101 L3894 L3893 -label L3893 +store __or_97_3901 101 +brif 101 L3902 L3901 +label L3901 load 105 tn field 106 105 8 string value strref 107 m46s326 @@ -158598,22 +158701,22 @@ call 109 pith_cstring_eq bool 2 106 107 iconst 110 1 sub 108 110 109 call 111 pith_cstring_release void 1 107 -store __or_97_3893 108 -label L3894 -load 112 __or_97_3893 -store __or_96_3893 112 -brif 112 L3896 L3895 -label L3895 +store __or_97_3901 108 +label L3902 +load 112 __or_97_3901 +store __or_96_3901 112 +brif 112 L3904 L3903 +label L3903 load 113 tn field 114 113 16 list children call 115 pith_list_len int 1 114 iconst 116 0 eq 117 115 116 -store __or_96_3893 117 -label L3896 -load 118 __or_96_3893 -brif 118 L3891 L3892 -label L3891 +store __or_96_3901 117 +label L3904 +load 118 __or_96_3901 +brif 118 L3899 L3900 +label L3899 strref 119 m46s82 load 120 vn call 121 pith_struct_release void 1 120 @@ -158628,8 +158731,8 @@ call 129 pith_cstring_release void 1 128 load 130 ctor call 131 pith_cstring_release void 1 130 ret 119 -label L3892 -label L3890 +label L3900 +label L3898 load 132 elem load 133 tn field 134 133 16 list children @@ -158644,8 +158747,8 @@ call 141 string_len int 1 140 call 142 pith_cstring_release void 1 140 iconst 143 0 eq 144 141 143 -brif 144 L3898 L3899 -label L3898 +brif 144 L3906 L3907 +label L3906 load 145 inner load 146 tn field 147 146 16 list children @@ -158659,8 +158762,8 @@ field 153 152 0 string kind strref 154 m46s328 call 155 pith_cstring_eq bool 2 153 154 call 156 pith_cstring_release void 1 154 -brif 155 L3901 L3902 -label L3901 +brif 155 L3909 L3910 +label L3909 load 157 substituted load 158 inner field 159 158 8 string value @@ -158673,22 +158776,22 @@ field 164 163 8 string value call 166 pith_cstring_eq bool 2 162 164 iconst 167 1 sub 165 167 166 -brif 165 L3904 L3905 -label L3904 +brif 165 L3912 L3913 +label L3912 load 168 elem load 169 substituted call 170 ir_alias_registry_ir_resolve_type_hint string 1 169 call 171 pith_cstring_release void 1 168 store elem 170 -jmp L3903 +jmp L3911 +label L3913 +label L3911 +jmp L3908 +label L3910 +label L3908 +jmp L3905 +label L3907 label L3905 -label L3903 -jmp L3900 -label L3902 -label L3900 -jmp L3897 -label L3899 -label L3897 load 172 ctor load 173 elem call 174 ir_struct_registry_ir_rc_kind string 1 173 @@ -158700,8 +158803,8 @@ load 178 ctor strref 179 m46s764 call 180 pith_cstring_eq bool 2 178 179 call 181 pith_cstring_release void 1 179 -brif 180 L3907 L3908 -label L3907 +brif 180 L3915 L3916 +label L3915 strref 182 m46s82 load 183 vn call 184 pith_struct_release void 1 183 @@ -158716,8 +158819,8 @@ call 192 pith_cstring_release void 1 191 load 193 ctor call 194 pith_cstring_release void 1 193 ret 182 -label L3908 -label L3906 +label L3916 +label L3914 load 195 ctor load 196 vn call 197 pith_struct_release void 1 196 @@ -158789,46 +158892,46 @@ load 24 parts field 25 24 16 int type_idx store type_idx 25 iconst 26 0 -store __and_26_3912 26 +store __and_26_3920 26 load 27 type_idx iconst 28 0 lt 29 27 28 -store __and_26_3912 29 -brif 29 L3912 L3913 -label L3912 +store __and_26_3920 29 +brif 29 L3920 L3921 +label L3920 load 30 val_idx iconst 31 0 gte 32 30 31 -store __and_26_3912 32 -label L3913 -load 33 __and_26_3912 -brif 33 L3910 L3911 -label L3910 +store __and_26_3920 32 +label L3921 +load 33 __and_26_3920 +brif 33 L3918 L3919 +label L3918 load 34 vn load 35 val_idx call 36 ast_get_node struct:Node 1 35 call 37 pith_struct_release void 1 34 store vn 36 iconst 38 0 -store __and_38_3917 38 +store __and_38_3925 38 load 39 vn field 40 39 0 string kind strref 41 m46s44 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 -store __and_38_3917 42 -brif 42 L3917 L3918 -label L3917 +store __and_38_3925 42 +brif 42 L3925 L3926 +label L3925 load 44 vn field 45 44 16 list children call 46 pith_list_len int 1 45 iconst 47 0 gt 48 46 47 -store __and_38_3917 48 -label L3918 -load 49 __and_38_3917 -brif 49 L3915 L3916 -label L3915 +store __and_38_3925 48 +label L3926 +load 49 __and_38_3925 +brif 49 L3923 L3924 +label L3923 load 50 callee_n load 51 vn field 52 51 16 list children @@ -158838,24 +158941,24 @@ call 55 ast_get_node struct:Node 1 54 call 56 pith_struct_release void 1 50 store callee_n 55 iconst 57 0 -store __and_57_3922 57 +store __and_57_3930 57 load 58 callee_n field 59 58 0 string kind strref 60 m46s37 call 61 pith_cstring_eq bool 2 59 60 call 62 pith_cstring_release void 1 60 -store __and_57_3922 61 -brif 61 L3922 L3923 -label L3922 +store __and_57_3930 61 +brif 61 L3930 L3931 +label L3930 load 63 ir_emitter_core_ir_closure_return_kinds load 64 callee_n field 65 64 8 string value call 66 contains_key bool 2 63 65 -store __and_57_3922 66 -label L3923 -load 67 __and_57_3922 -brif 67 L3920 L3921 -label L3920 +store __and_57_3930 66 +label L3931 +load 67 __and_57_3930 +brif 67 L3928 L3929 +label L3928 load 68 ir_builder_ir_var_types load 69 name load 70 ir_emitter_core_ir_closure_return_kinds @@ -158863,43 +158966,43 @@ load 71 callee_n field 72 71 8 string value call 73 map_get_strict string 2 70 72 call 74 map_insert void 3 68 69 73 -jmp L3919 -label L3921 -label L3919 -jmp L3914 -label L3916 +jmp L3927 +label L3929 +label L3927 +jmp L3922 +label L3924 iconst 75 0 -store __and_75_3926 75 +store __and_75_3934 75 iconst 76 0 -store __and_76_3926 76 +store __and_76_3934 76 load 77 vn field 78 77 0 string kind strref 79 m46s36 call 80 pith_cstring_eq bool 2 78 79 call 81 pith_cstring_release void 1 79 -store __and_76_3926 80 -brif 80 L3926 L3927 -label L3926 +store __and_76_3934 80 +brif 80 L3934 L3935 +label L3934 load 82 vn field 83 82 16 list children call 84 pith_list_len int 1 83 iconst 85 0 gt 86 84 85 -store __and_76_3926 86 -label L3927 -load 87 __and_76_3926 -store __and_75_3926 87 -brif 87 L3928 L3929 -label L3928 +store __and_76_3934 86 +label L3935 +load 87 __and_76_3934 +store __and_75_3934 87 +brif 87 L3936 L3937 +label L3936 load 88 ir_emitter_core_ir_current_impl_type call 89 string_len int 1 88 iconst 90 0 gt 91 89 90 -store __and_75_3926 91 -label L3929 -load 92 __and_75_3926 -brif 92 L3924 L3925 -label L3924 +store __and_75_3934 91 +label L3937 +load 92 __and_75_3934 +brif 92 L3932 L3933 +label L3932 load 93 recv load 94 vn field 95 94 16 list children @@ -158913,8 +159016,8 @@ field 101 100 0 string kind strref 102 m46s515 call 103 pith_cstring_eq bool 2 101 102 call 104 pith_cstring_release void 1 102 -brif 103 L3931 L3932 -label L3931 +brif 103 L3939 L3940 +label L3939 load 105 field_kind load 106 ir_emitter_core_ir_current_impl_type call 107 ir_method_tables_ir_strip_type_args string 1 106 @@ -158928,24 +159031,24 @@ load 113 field_kind call 114 string_len int 1 113 iconst 115 0 gt 116 114 115 -brif 116 L3934 L3935 -label L3934 +brif 116 L3942 L3943 +label L3942 load 117 ir_emitter_core_ir_closure_return_kinds load 118 name load 119 field_kind call 120 map_insert void 3 117 118 119 -jmp L3933 -label L3935 +jmp L3941 +label L3943 +label L3941 +jmp L3938 +label L3940 +label L3938 +jmp L3922 label L3933 -jmp L3930 -label L3932 -label L3930 -jmp L3914 -label L3925 -label L3914 -jmp L3909 -label L3911 -label L3909 +label L3922 +jmp L3917 +label L3919 +label L3917 load 121 target_type strref 122 m46s82 call 123 pith_cstring_release void 1 121 @@ -158953,8 +159056,8 @@ store target_type 122 load 124 type_idx iconst 125 0 gte 126 124 125 -brif 126 L3937 L3938 -label L3937 +brif 126 L3945 L3946 +label L3945 load 127 target_type load 128 type_idx call 129 ir_alias_registry_ir_resolve_type_node string 1 128 @@ -158964,15 +159067,15 @@ load 131 target_type call 132 string_len int 1 131 iconst 133 0 gt 134 132 133 -brif 134 L3940 L3941 -label L3940 +brif 134 L3948 L3949 +label L3948 load 135 ir_builder_ir_var_types load 136 name load 137 target_type call 138 map_insert void 3 135 136 137 -jmp L3939 -label L3941 -label L3939 +jmp L3947 +label L3949 +label L3947 load 139 map_value_type load 140 type_idx call 141 ir_alias_registry_ir_resolve_map_value_type_node string 1 140 @@ -158982,23 +159085,23 @@ load 143 map_value_type call 144 string_len int 1 143 iconst 145 0 gt 146 144 145 -brif 146 L3943 L3944 -label L3943 +brif 146 L3951 L3952 +label L3951 load 147 ir_emitter_core_ir_map_value_types load 148 name load 149 map_value_type call 150 map_insert void 3 147 148 149 -jmp L3942 +jmp L3950 +label L3952 +label L3950 +jmp L3944 +label L3946 label L3944 -label L3942 -jmp L3936 -label L3938 -label L3936 load 151 val_idx iconst 152 0 gte 153 151 152 -brif 153 L3946 L3947 -label L3946 +brif 153 L3954 L3955 +label L3954 load 154 bind_kind load 155 name call 156 ir_emitter_core_ir_rc_local_kind string 1 155 @@ -159014,26 +159117,26 @@ iconst 163 1 sub 164 162 163 store old_r 164 iconst 165 0 -store __and_165_3951 165 +store __and_165_3959 165 load 166 tracked -store __and_165_3951 166 -brif 166 L3951 L3952 -label L3951 +store __and_165_3959 166 +brif 166 L3959 L3960 +label L3959 load 167 bind_kind call 168 ir_ownership_ir_rc_release_enabled bool 1 167 -store __and_165_3951 168 -label L3952 -load 169 __and_165_3951 -brif 169 L3949 L3950 -label L3949 +store __and_165_3959 168 +label L3960 +load 169 __and_165_3959 +brif 169 L3957 L3958 +label L3957 call 170 ir_builder_ir_reg int 0 store old_r 170 load 171 old_r load 172 name call 173 ir_emitter_core_ir_emit_name_load void 2 171 172 -jmp L3948 -label L3950 -label L3948 +jmp L3956 +label L3958 +label L3956 load 174 bind_target load 175 name load 176 target_type @@ -159055,8 +159158,8 @@ load 188 annot_ctor call 189 string_len int 1 188 iconst 190 0 gt 191 189 190 -brif 191 L3954 L3955 -label L3954 +brif 191 L3962 L3963 +label L3962 call 192 ir_builder_ir_reg int 0 store r 192 load 193 r @@ -159064,66 +159167,66 @@ load 194 annot_ctor strref 195 m46s20 call 196 ir_call_emit_ir_emit_call0 void 3 193 194 195 call 197 pith_cstring_release void 1 195 -jmp L3953 -label L3955 -label L3953 +jmp L3961 +label L3963 +label L3961 load 198 r iconst 199 0 lt 200 198 199 -brif 200 L3957 L3958 -label L3957 +brif 200 L3965 L3966 +label L3965 load 201 val_idx load 202 bind_target call 203 ir_emitter_core_ir_emit_value_for_target int 2 201 202 store r 203 -jmp L3956 -label L3958 -label L3956 +jmp L3964 +label L3966 +label L3964 iconst 204 0 -store __and_204_3962 204 +store __and_204_3970 204 iconst 205 0 -store __and_205_3962 205 +store __and_205_3970 205 load 206 tracked -store __and_205_3962 206 -brif 206 L3962 L3963 -label L3962 +store __and_205_3970 206 +brif 206 L3970 L3971 +label L3970 load 207 bind_target strref 208 m46s23 call 210 pith_cstring_eq bool 2 207 208 iconst 211 1 sub 209 211 210 call 212 pith_cstring_release void 1 208 -store __and_205_3962 209 -label L3963 -load 213 __and_205_3962 -store __and_204_3962 213 -brif 213 L3964 L3965 -label L3964 +store __and_205_3970 209 +label L3971 +load 213 __and_205_3970 +store __and_204_3970 213 +brif 213 L3972 L3973 +label L3972 load 214 val_idx call 215 ir_emitter_core_ir_string_expr_is_borrowed bool 1 214 -store __and_204_3962 215 -label L3965 -load 216 __and_204_3962 -brif 216 L3960 L3961 -label L3960 +store __and_204_3970 215 +label L3973 +load 216 __and_204_3970 +brif 216 L3968 L3969 +label L3968 load 217 r load 218 bind_kind call 219 ir_ownership_ir_rc_retain_reg void 2 217 218 -jmp L3959 -label L3961 -label L3959 +jmp L3967 +label L3969 +label L3967 load 220 old_r iconst 221 0 gte 222 220 221 -brif 222 L3967 L3968 -label L3967 +brif 222 L3975 L3976 +label L3975 load 223 old_r load 224 bind_kind load 225 name call 226 ir_emitter_core_ir_rc_release_local void 3 223 224 225 -jmp L3966 -label L3968 -label L3966 +jmp L3974 +label L3976 +label L3974 load 227 ir_builder_ir_var_regs load 228 name load 229 r @@ -159136,8 +159239,8 @@ load 235 name call 236 contains_key bool 2 234 235 iconst 238 1 sub 237 238 236 -brif 237 L3970 L3971 -label L3970 +brif 237 L3978 L3979 +label L3978 load 239 inferred load 240 val_idx call 241 ir_emitter_core_ir_infer_type string 1 240 @@ -159147,21 +159250,21 @@ load 243 inferred call 244 string_len int 1 243 iconst 245 0 gt 246 244 245 -brif 246 L3973 L3974 -label L3973 +brif 246 L3981 L3982 +label L3981 load 247 ir_builder_ir_var_types load 248 name load 249 inferred call 250 map_insert void 3 247 248 249 -jmp L3972 -label L3974 -label L3972 -jmp L3969 -label L3971 -label L3969 -jmp L3945 -label L3947 -label L3945 +jmp L3980 +label L3982 +label L3980 +jmp L3977 +label L3979 +label L3977 +jmp L3953 +label L3955 +label L3953 load 251 parts call 252 pith_struct_release void 1 251 load 253 name @@ -159208,8 +159311,8 @@ field 10 9 16 list children call 11 pith_list_len int 1 10 iconst 12 2 gte 13 11 12 -brif 13 L3976 L3977 -label L3976 +brif 13 L3984 L3985 +label L3984 load 14 node field 15 14 16 list children iconst 16 0 @@ -159219,8 +159322,8 @@ field 19 18 16 list children iconst 20 1 call 21 pith_list_get_value_strict int 2 19 20 call 22 ir_emitter_core_ir_emit_index_assignment bool 2 17 21 -brif 22 L3979 L3980 -label L3979 +brif 22 L3987 L3988 +label L3987 load 23 name call 24 pith_cstring_release void 1 23 load 25 legacy_kind @@ -159229,18 +159332,18 @@ load 27 legacy_target call 28 pith_cstring_release void 1 27 iconst 29 0 ret 29 -label L3980 -label L3978 -jmp L3975 -label L3977 -label L3975 +label L3988 +label L3986 +jmp L3983 +label L3985 +label L3983 load 30 node field 31 30 16 list children call 32 pith_list_len int 1 31 iconst 33 0 gt 34 32 33 -brif 34 L3982 L3983 -label L3982 +brif 34 L3990 L3991 +label L3990 load 35 legacy_kind load 36 name call 37 ir_emitter_core_ir_lookup_name_type string 1 36 @@ -159260,82 +159363,82 @@ iconst 48 1 sub 49 47 48 store old_r 49 iconst 50 0 -store __and_50_3987 50 +store __and_50_3995 50 load 51 legacy_kind call 52 string_len int 1 51 iconst 53 0 gt 54 52 53 -store __and_50_3987 54 -brif 54 L3987 L3988 -label L3987 +store __and_50_3995 54 +brif 54 L3995 L3996 +label L3995 load 55 legacy_kind call 56 ir_ownership_ir_rc_release_enabled bool 1 55 -store __and_50_3987 56 -label L3988 -load 57 __and_50_3987 -brif 57 L3985 L3986 -label L3985 +store __and_50_3995 56 +label L3996 +load 57 __and_50_3995 +brif 57 L3993 L3994 +label L3993 iconst 58 0 -store __or_58_3992 58 +store __or_58_4000 58 load 59 tracked -store __or_58_3992 59 -brif 59 L3993 L3992 -label L3992 +store __or_58_4000 59 +brif 59 L4001 L4000 +label L4000 iconst 60 0 -store __and_60_3994 60 +store __and_60_4002 60 load 61 legacy_kind strref 62 m46s675 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 -store __and_60_3994 63 -brif 63 L3994 L3995 -label L3994 +store __and_60_4002 63 +brif 63 L4002 L4003 +label L4002 load 65 ir_alias_registry_ir_global_string_names load 66 name iconst 67 -1 -store __list_index_result_L3996 67 +store __list_index_result_L4004 67 iconst 68 0 -store __list_index_i_L3997 68 +store __list_index_i_L4005 68 call 69 pith_list_len int 1 65 -label L3998 -load 70 __list_index_i_L3997 +label L4006 +load 70 __list_index_i_L4005 lt 71 70 69 -brif 71 L3999 L4002 -label L3999 +brif 71 L4007 L4010 +label L4007 call 72 pith_list_get_value string 2 65 70 call 73 pith_cstring_eq bool 2 72 66 -brif 73 L4000 L4001 -label L4000 -store __list_index_result_L3996 70 -jmp L4002 -label L4001 +brif 73 L4008 L4009 +label L4008 +store __list_index_result_L4004 70 +jmp L4010 +label L4009 iconst 74 1 add 75 70 74 -store __list_index_i_L3997 75 -jmp L3998 -label L4002 -load 76 __list_index_result_L3996 +store __list_index_i_L4005 75 +jmp L4006 +label L4010 +load 76 __list_index_result_L4004 iconst 77 0 gte 78 76 77 -store __and_60_3994 78 -label L3995 -load 79 __and_60_3994 -store __or_58_3992 79 -label L3993 -load 80 __or_58_3992 -brif 80 L3990 L3991 -label L3990 +store __and_60_4002 78 +label L4003 +load 79 __and_60_4002 +store __or_58_4000 79 +label L4001 +load 80 __or_58_4000 +brif 80 L3998 L3999 +label L3998 call 81 ir_builder_ir_reg int 0 store old_r 81 load 82 old_r load 83 name call 84 ir_emitter_core_ir_emit_name_load void 2 82 83 -jmp L3989 -label L3991 -label L3989 -jmp L3984 -label L3986 -label L3984 +jmp L3997 +label L3999 +label L3997 +jmp L3992 +label L3994 +label L3992 load 85 legacy_target load 86 name load 87 name @@ -159352,56 +159455,56 @@ load 96 legacy_target call 97 ir_emitter_core_ir_emit_value_for_target int 2 95 96 store r 97 iconst 98 0 -store __and_98_4006 98 +store __and_98_4014 98 iconst 99 0 -store __and_99_4006 99 +store __and_99_4014 99 load 100 legacy_kind call 101 string_len int 1 100 iconst 102 0 gt 103 101 102 -store __and_99_4006 103 -brif 103 L4006 L4007 -label L4006 +store __and_99_4014 103 +brif 103 L4014 L4015 +label L4014 load 104 legacy_target strref 105 m46s23 call 107 pith_cstring_eq bool 2 104 105 iconst 108 1 sub 106 108 107 call 109 pith_cstring_release void 1 105 -store __and_99_4006 106 -label L4007 -load 110 __and_99_4006 -store __and_98_4006 110 -brif 110 L4008 L4009 -label L4008 +store __and_99_4014 106 +label L4015 +load 110 __and_99_4014 +store __and_98_4014 110 +brif 110 L4016 L4017 +label L4016 load 111 node field 112 111 16 list children iconst 113 0 call 114 pith_list_get_value_strict int 2 112 113 call 115 ir_emitter_core_ir_string_expr_is_borrowed bool 1 114 -store __and_98_4006 115 -label L4009 -load 116 __and_98_4006 -brif 116 L4004 L4005 -label L4004 +store __and_98_4014 115 +label L4017 +load 116 __and_98_4014 +brif 116 L4012 L4013 +label L4012 load 117 r load 118 legacy_kind call 119 ir_ownership_ir_rc_retain_reg void 2 117 118 -jmp L4003 -label L4005 -label L4003 +jmp L4011 +label L4013 +label L4011 load 120 old_r iconst 121 0 gte 122 120 121 -brif 122 L4011 L4012 -label L4011 +brif 122 L4019 L4020 +label L4019 load 123 old_r load 124 legacy_kind load 125 name call 126 ir_emitter_core_ir_rc_release_local void 3 123 124 125 -jmp L4010 -label L4012 -label L4010 +jmp L4018 +label L4020 +label L4018 load 127 ir_builder_ir_var_regs load 128 name load 129 r @@ -159409,9 +159512,9 @@ call 130 map_insert void 3 127 128 129 load 131 name load 132 r call 133 ir_emitter_core_ir_emit_name_store void 2 131 132 -jmp L3981 -label L3983 -label L3981 +jmp L3989 +label L3991 +label L3989 load 134 name call 135 pith_cstring_release void 1 134 load 136 legacy_kind @@ -159441,8 +159544,8 @@ store direct 9 load 11 ir_struct_registry_ir_struct_field_index_lookup load 12 direct call 13 contains_key bool 2 11 12 -brif 13 L4014 L4015 -label L4014 +brif 13 L4022 L4023 +label L4022 load 14 direct load 15 recv_type call 16 pith_cstring_release void 1 15 @@ -159451,8 +159554,8 @@ call 18 pith_cstring_release void 1 17 load 19 base_key call 20 pith_cstring_release void 1 19 ret 14 -label L4015 -label L4013 +label L4023 +label L4021 load 21 recv_type load 22 recv_idx call 23 ir_emitter_core_ir_field_receiver_type string 1 22 @@ -159468,8 +159571,8 @@ load 30 recv_type call 32 pith_cstring_eq bool 2 29 30 iconst 33 1 sub 31 33 32 -brif 31 L4017 L4018 -label L4017 +brif 31 L4025 L4026 +label L4025 load 34 base_key load 35 base strref 36 m46s26 @@ -159483,8 +159586,8 @@ store base_key 40 load 43 ir_struct_registry_ir_struct_field_index_lookup load 44 base_key call 45 contains_key bool 2 43 44 -brif 45 L4020 L4021 -label L4020 +brif 45 L4028 L4029 +label L4028 load 46 base_key load 47 direct call 48 pith_cstring_release void 1 47 @@ -159493,11 +159596,11 @@ call 50 pith_cstring_release void 1 49 load 51 base call 52 pith_cstring_release void 1 51 ret 46 -label L4021 -label L4019 -jmp L4016 -label L4018 -label L4016 +label L4029 +label L4027 +jmp L4024 +label L4026 +label L4024 strref 53 m46s82 load 54 direct call 55 pith_cstring_release void 1 54 @@ -159540,7 +159643,7 @@ call 10 ast_get_node struct:Node 1 9 call 11 pith_struct_release void 1 8 store target 10 iconst 12 0 -store __or_12_4025 12 +store __or_12_4033 12 load 13 target field 14 13 0 string kind strref 15 m46s36 @@ -159548,19 +159651,19 @@ call 17 pith_cstring_eq bool 2 14 15 iconst 18 1 sub 16 18 17 call 19 pith_cstring_release void 1 15 -store __or_12_4025 16 -brif 16 L4026 L4025 -label L4025 +store __or_12_4033 16 +brif 16 L4034 L4033 +label L4033 load 20 target field 21 20 16 list children call 22 pith_list_len int 1 21 iconst 23 0 eq 24 22 23 -store __or_12_4025 24 -label L4026 -load 25 __or_12_4025 -brif 25 L4023 L4024 -label L4023 +store __or_12_4033 24 +label L4034 +load 25 __or_12_4033 +brif 25 L4031 L4032 +label L4031 iconst 26 0 load 27 target call 28 pith_struct_release void 1 27 @@ -159575,8 +159678,8 @@ call 36 pith_cstring_release void 1 35 load 37 weak_struct call 38 pith_cstring_release void 1 37 ret 26 -label L4024 -label L4022 +label L4032 +label L4030 load 39 fname load 40 target_idx call 41 ast_node_value string 1 40 @@ -159597,8 +159700,8 @@ load 52 lookup_key call 53 string_len int 1 52 iconst 54 0 eq 55 53 54 -brif 55 L4028 L4029 -label L4028 +brif 55 L4036 L4037 +label L4036 iconst 56 0 load 57 target call 58 pith_struct_release void 1 57 @@ -159613,8 +159716,8 @@ call 66 pith_cstring_release void 1 65 load 67 weak_struct call 68 pith_cstring_release void 1 67 ret 56 -label L4029 -label L4027 +label L4037 +label L4035 load 69 ir_struct_registry_ir_struct_field_index_lookup load 70 lookup_key call 71 map_get_strict string 2 69 70 @@ -159633,16 +159736,16 @@ load 80 value_type call 81 string_len int 1 80 iconst 82 0 eq 83 81 82 -brif 83 L4031 L4032 -label L4031 +brif 83 L4039 L4040 +label L4039 load 84 value_type load 85 value_idx call 86 ir_emitter_core_ir_infer_type string 1 85 call 87 pith_cstring_release void 1 84 store value_type 86 -jmp L4030 -label L4032 -label L4030 +jmp L4038 +label L4040 +label L4038 load 88 fassign_kind load 89 value_type call 90 ir_struct_registry_ir_rc_kind string 1 89 @@ -159664,8 +159767,8 @@ store weak_struct 102 load 104 weak_struct load 105 fname call 106 ir_emitter_core_ir_struct_field_is_weak bool 2 104 105 -brif 106 L4034 L4035 -label L4034 +brif 106 L4042 L4043 +label L4042 call 107 ir_builder_ir_reg int 0 store old_w 107 load 108 old_w @@ -159736,28 +159839,28 @@ call 170 pith_cstring_release void 1 169 load 171 weak_struct call 172 pith_cstring_release void 1 171 ret 160 -label L4035 -label L4033 +label L4043 +label L4041 iconst 173 0 iconst 174 1 sub 175 173 174 store old_r 175 iconst 176 0 -store __and_176_4039 176 +store __and_176_4047 176 load 177 fassign_kind call 178 string_len int 1 177 iconst 179 0 gt 180 178 179 -store __and_176_4039 180 -brif 180 L4039 L4040 -label L4039 +store __and_176_4047 180 +brif 180 L4047 L4048 +label L4047 load 181 fassign_kind call 182 ir_ownership_ir_rc_release_enabled bool 1 181 -store __and_176_4039 182 -label L4040 -load 183 __and_176_4039 -brif 183 L4037 L4038 -label L4037 +store __and_176_4047 182 +label L4048 +load 183 __and_176_4047 +brif 183 L4045 L4046 +label L4045 call 184 ir_builder_ir_reg int 0 store old_r 184 load 185 old_r @@ -159766,49 +159869,49 @@ load 187 lookup_key load 188 fname load 189 value_type call 190 ir_alias_registry_ir_emit_named_field_access void 5 185 186 187 188 189 -jmp L4036 -label L4038 -label L4036 +jmp L4044 +label L4046 +label L4044 load 191 value_idx load 192 value_type call 193 ir_emitter_core_ir_emit_value_for_target int 2 191 192 store value_r 193 iconst 194 0 -store __and_194_4044 194 +store __and_194_4052 194 iconst 195 0 -store __and_195_4044 195 +store __and_195_4052 195 load 196 fassign_kind call 197 string_len int 1 196 iconst 198 0 gt 199 197 198 -store __and_195_4044 199 -brif 199 L4044 L4045 -label L4044 +store __and_195_4052 199 +brif 199 L4052 L4053 +label L4052 load 200 fassign_kind strref 201 m46s23 call 203 pith_cstring_eq bool 2 200 201 iconst 204 1 sub 202 204 203 call 205 pith_cstring_release void 1 201 -store __and_195_4044 202 -label L4045 -load 206 __and_195_4044 -store __and_194_4044 206 -brif 206 L4046 L4047 -label L4046 +store __and_195_4052 202 +label L4053 +load 206 __and_195_4052 +store __and_194_4052 206 +brif 206 L4054 L4055 +label L4054 load 207 value_idx call 208 ir_emitter_core_ir_string_expr_is_borrowed bool 1 207 -store __and_194_4044 208 -label L4047 -load 209 __and_194_4044 -brif 209 L4042 L4043 -label L4042 +store __and_194_4052 208 +label L4055 +load 209 __and_194_4052 +brif 209 L4050 L4051 +label L4050 load 210 value_r load 211 fassign_kind call 212 ir_ownership_ir_rc_retain_reg void 2 210 211 -jmp L4041 -label L4043 -label L4041 +jmp L4049 +label L4051 +label L4049 strref 213 m46s1038 load 214 obj_r call 215 int_to_string string 1 214 @@ -159838,14 +159941,14 @@ call 238 pith_cstring_release void 1 234 load 239 old_r iconst 240 0 gte 241 239 240 -brif 241 L4049 L4050 -label L4049 +brif 241 L4057 L4058 +label L4057 load 242 old_r load 243 fassign_kind call 244 ir_ownership_ir_rc_release_reg void 2 242 243 -jmp L4048 -label L4050 -label L4048 +jmp L4056 +label L4058 +label L4056 iconst 245 1 load 246 target call 247 pith_struct_release void 1 246 @@ -159891,7 +159994,7 @@ call 8 ast_get_node struct:Node 1 7 call 9 pith_struct_release void 1 6 store target 8 iconst 10 0 -store __or_10_4054 10 +store __or_10_4062 10 load 11 target field 12 11 0 string kind strref 13 m46s36 @@ -159899,19 +160002,19 @@ call 15 pith_cstring_eq bool 2 12 13 iconst 16 1 sub 14 16 15 call 17 pith_cstring_release void 1 13 -store __or_10_4054 14 -brif 14 L4055 L4054 -label L4054 +store __or_10_4062 14 +brif 14 L4063 L4062 +label L4062 load 18 target field 19 18 16 list children call 20 pith_list_len int 1 19 iconst 21 0 eq 22 20 21 -store __or_10_4054 22 -label L4055 -load 23 __or_10_4054 -brif 23 L4052 L4053 -label L4052 +store __or_10_4062 22 +label L4063 +load 23 __or_10_4062 +brif 23 L4060 L4061 +label L4060 iconst 24 0 load 25 target call 26 pith_struct_release void 1 25 @@ -159920,8 +160023,8 @@ call 28 pith_cstring_release void 1 27 load 29 lookup_key call 30 pith_cstring_release void 1 29 ret 24 -label L4053 -label L4051 +label L4061 +label L4059 load 31 fname load 32 target_idx call 33 ast_node_value string 1 32 @@ -159942,8 +160045,8 @@ load 44 lookup_key call 45 string_len int 1 44 iconst 46 0 eq 47 45 46 -brif 47 L4057 L4058 -label L4057 +brif 47 L4065 L4066 +label L4065 iconst 48 0 load 49 target call 50 pith_struct_release void 1 49 @@ -159952,8 +160055,8 @@ call 52 pith_cstring_release void 1 51 load 53 lookup_key call 54 pith_cstring_release void 1 53 ret 48 -label L4058 -label L4056 +label L4066 +label L4064 load 55 ir_struct_registry_ir_struct_field_index_lookup load 56 lookup_key call 57 map_get_strict string 2 55 56 @@ -160049,24 +160152,24 @@ call 11 pith_cstring_retain void 1 10 call 12 pith_cstring_release void 1 8 store op 10 iconst 13 0 -store __and_13_4062 13 +store __and_13_4070 13 load 14 op strref 15 m46s546 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 -store __and_13_4062 16 -brif 16 L4062 L4063 -label L4062 +store __and_13_4070 16 +brif 16 L4070 L4071 +label L4070 load 18 node field 19 18 16 list children call 20 pith_list_len int 1 19 iconst 21 2 gte 22 20 21 -store __and_13_4062 22 -label L4063 -load 23 __and_13_4062 -brif 23 L4060 L4061 -label L4060 +store __and_13_4070 22 +label L4071 +load 23 __and_13_4070 +brif 23 L4068 L4069 +label L4068 load 24 node field 25 24 16 list children iconst 26 0 @@ -160076,8 +160179,8 @@ field 29 28 16 list children iconst 30 1 call 31 pith_list_get_value_strict int 2 29 30 call 32 ir_emitter_core_ir_emit_index_assignment bool 2 27 31 -brif 32 L4065 L4066 -label L4065 +brif 32 L4073 L4074 +label L4073 load 33 op call 34 pith_cstring_release void 1 33 load 35 tn @@ -160094,8 +160197,8 @@ load 45 compound_op call 46 pith_cstring_release void 1 45 iconst 47 0 ret 47 -label L4066 -label L4064 +label L4074 +label L4072 load 48 node field 49 48 16 list children iconst 50 0 @@ -160105,8 +160208,8 @@ field 53 52 16 list children iconst 54 1 call 55 pith_list_get_value_strict int 2 53 54 call 56 ir_emitter_core_ir_emit_field_assignment bool 2 51 55 -brif 56 L4068 L4069 -label L4068 +brif 56 L4076 L4077 +label L4076 load 57 op call 58 pith_cstring_release void 1 57 load 59 tn @@ -160123,8 +160226,8 @@ load 69 compound_op call 70 pith_cstring_release void 1 69 iconst 71 0 ret 71 -label L4069 -label L4067 +label L4077 +label L4075 load 72 tn load 73 node field 74 73 16 list children @@ -160157,8 +160260,8 @@ load 96 assign_kind call 97 string_len int 1 96 iconst 98 0 eq 99 97 98 -brif 99 L4071 L4072 -label L4071 +brif 99 L4079 L4080 +label L4079 load 100 assign_kind load 101 name call 102 ir_emitter_core_ir_lookup_name_type string 1 101 @@ -160166,9 +160269,9 @@ call 103 ir_struct_registry_ir_rc_kind string 1 102 call 104 pith_cstring_release void 1 102 call 105 pith_cstring_release void 1 100 store assign_kind 103 -jmp L4070 -label L4072 -label L4070 +jmp L4078 +label L4080 +label L4078 load 106 name call 107 ir_emitter_core_ir_rc_local_kind string 1 106 call 108 string_len int 1 107 @@ -160181,82 +160284,82 @@ iconst 113 1 sub 114 112 113 store old_r 114 iconst 115 0 -store __and_115_4076 115 +store __and_115_4084 115 load 116 assign_kind call 117 string_len int 1 116 iconst 118 0 gt 119 117 118 -store __and_115_4076 119 -brif 119 L4076 L4077 -label L4076 +store __and_115_4084 119 +brif 119 L4084 L4085 +label L4084 load 120 assign_kind call 121 ir_ownership_ir_rc_release_enabled bool 1 120 -store __and_115_4076 121 -label L4077 -load 122 __and_115_4076 -brif 122 L4074 L4075 -label L4074 +store __and_115_4084 121 +label L4085 +load 122 __and_115_4084 +brif 122 L4082 L4083 +label L4082 iconst 123 0 -store __or_123_4081 123 +store __or_123_4089 123 load 124 tracked -store __or_123_4081 124 -brif 124 L4082 L4081 -label L4081 +store __or_123_4089 124 +brif 124 L4090 L4089 +label L4089 iconst 125 0 -store __and_125_4083 125 +store __and_125_4091 125 load 126 assign_kind strref 127 m46s675 call 128 pith_cstring_eq bool 2 126 127 call 129 pith_cstring_release void 1 127 -store __and_125_4083 128 -brif 128 L4083 L4084 -label L4083 +store __and_125_4091 128 +brif 128 L4091 L4092 +label L4091 load 130 ir_alias_registry_ir_global_string_names load 131 name iconst 132 -1 -store __list_index_result_L4085 132 +store __list_index_result_L4093 132 iconst 133 0 -store __list_index_i_L4086 133 +store __list_index_i_L4094 133 call 134 pith_list_len int 1 130 -label L4087 -load 135 __list_index_i_L4086 +label L4095 +load 135 __list_index_i_L4094 lt 136 135 134 -brif 136 L4088 L4091 -label L4088 +brif 136 L4096 L4099 +label L4096 call 137 pith_list_get_value string 2 130 135 call 138 pith_cstring_eq bool 2 137 131 -brif 138 L4089 L4090 -label L4089 -store __list_index_result_L4085 135 -jmp L4091 -label L4090 +brif 138 L4097 L4098 +label L4097 +store __list_index_result_L4093 135 +jmp L4099 +label L4098 iconst 139 1 add 140 135 139 -store __list_index_i_L4086 140 -jmp L4087 -label L4091 -load 141 __list_index_result_L4085 +store __list_index_i_L4094 140 +jmp L4095 +label L4099 +load 141 __list_index_result_L4093 iconst 142 0 gte 143 141 142 -store __and_125_4083 143 -label L4084 -load 144 __and_125_4083 -store __or_123_4081 144 -label L4082 -load 145 __or_123_4081 -brif 145 L4079 L4080 -label L4079 +store __and_125_4091 143 +label L4092 +load 144 __and_125_4091 +store __or_123_4089 144 +label L4090 +load 145 __or_123_4089 +brif 145 L4087 L4088 +label L4087 call 146 ir_builder_ir_reg int 0 store old_r 146 load 147 old_r load 148 name call 149 ir_emitter_core_ir_emit_name_load void 2 147 148 -jmp L4078 -label L4080 -label L4078 -jmp L4073 -label L4075 -label L4073 +jmp L4086 +label L4088 +label L4086 +jmp L4081 +label L4083 +label L4081 load 150 assign_target load 151 name load 152 target_type @@ -160271,55 +160374,55 @@ load 159 assign_target call 160 ir_emitter_core_ir_emit_value_for_target int 2 158 159 store r 160 iconst 161 0 -store __and_161_4095 161 +store __and_161_4103 161 iconst 162 0 -store __and_162_4095 162 +store __and_162_4103 162 load 163 assign_kind call 164 string_len int 1 163 iconst 165 0 gt 166 164 165 -store __and_162_4095 166 -brif 166 L4095 L4096 -label L4095 +store __and_162_4103 166 +brif 166 L4103 L4104 +label L4103 load 167 assign_target strref 168 m46s23 call 170 pith_cstring_eq bool 2 167 168 iconst 171 1 sub 169 171 170 call 172 pith_cstring_release void 1 168 -store __and_162_4095 169 -label L4096 -load 173 __and_162_4095 -store __and_161_4095 173 -brif 173 L4097 L4098 -label L4097 +store __and_162_4103 169 +label L4104 +load 173 __and_162_4103 +store __and_161_4103 173 +brif 173 L4105 L4106 +label L4105 load 174 node field 175 174 16 list children iconst 176 1 call 177 pith_list_get_value_strict int 2 175 176 call 178 ir_emitter_core_ir_string_expr_is_borrowed bool 1 177 -store __and_161_4095 178 -label L4098 -load 179 __and_161_4095 -brif 179 L4093 L4094 -label L4093 +store __and_161_4103 178 +label L4106 +load 179 __and_161_4103 +brif 179 L4101 L4102 +label L4101 load 180 r load 181 assign_kind call 182 ir_ownership_ir_rc_retain_reg void 2 180 181 -jmp L4092 -label L4094 -label L4092 +jmp L4100 +label L4102 +label L4100 load 183 old_r iconst 184 0 gte 185 183 184 -brif 185 L4100 L4101 -label L4100 +brif 185 L4108 L4109 +label L4108 load 186 old_r load 187 assign_kind call 188 ir_ownership_ir_rc_release_reg void 2 186 187 -jmp L4099 -label L4101 -label L4099 +jmp L4107 +label L4109 +label L4107 load 189 name load 190 r call 191 ir_emitter_core_ir_emit_name_store void 2 189 190 @@ -160339,32 +160442,32 @@ load 204 compound_op call 205 pith_cstring_release void 1 204 iconst 206 0 ret 206 -label L4061 -label L4059 +label L4069 +label L4067 load 207 compound_op load 208 op call 209 ir_operator_helpers_ir_compound_assignment_ir_op string 1 208 call 210 pith_cstring_release void 1 207 store compound_op 209 iconst 211 0 -store __and_211_4105 211 +store __and_211_4113 211 load 212 compound_op call 213 string_len int 1 212 iconst 214 0 gt 215 213 214 -store __and_211_4105 215 -brif 215 L4105 L4106 -label L4105 +store __and_211_4113 215 +brif 215 L4113 L4114 +label L4113 load 216 node field 217 216 16 list children call 218 pith_list_len int 1 217 iconst 219 2 gte 220 218 219 -store __and_211_4105 220 -label L4106 -load 221 __and_211_4105 -brif 221 L4103 L4104 -label L4103 +store __and_211_4113 220 +label L4114 +load 221 __and_211_4113 +brif 221 L4111 L4112 +label L4111 load 222 node field 223 222 16 list children iconst 224 0 @@ -160375,8 +160478,8 @@ iconst 228 1 call 229 pith_list_get_value_strict int 2 227 228 load 230 compound_op call 231 ir_emitter_core_ir_emit_field_compound_assignment bool 3 225 229 230 -brif 231 L4108 L4109 -label L4108 +brif 231 L4116 L4117 +label L4116 load 232 op call 233 pith_cstring_release void 1 232 load 234 tn @@ -160393,8 +160496,8 @@ load 244 compound_op call 245 pith_cstring_release void 1 244 iconst 246 0 ret 246 -label L4109 -label L4107 +label L4117 +label L4115 load 247 tn load 248 node field 249 248 16 list children @@ -160430,9 +160533,9 @@ call 273 ir_operator_helpers_ir_emit_simple_binary void 4 269 270 271 272 load 274 name load 275 res call 276 ir_emitter_core_ir_emit_name_store void 2 274 275 -jmp L4102 -label L4104 -label L4102 +jmp L4110 +label L4112 +label L4110 load 277 op call 278 pith_cstring_release void 1 277 load 279 tn @@ -160459,8 +160562,8 @@ load 4 branch field 5 4 0 int cond_idx iconst 6 0 gte 7 5 6 -brif 7 L4111 L4112 -label L4111 +brif 7 L4119 L4120 +label L4119 load 8 branch field 9 8 0 int cond_idx call 10 ir_emitter_core_ir_expr int 1 9 @@ -160487,9 +160590,9 @@ concat 29 25 28 call 30 pith_cstring_release void 1 25 call 31 ir_builder_ir_emit void 1 29 call 32 pith_cstring_release void 1 29 -jmp L4110 -label L4112 -label L4110 +jmp L4118 +label L4120 +label L4118 load 33 then_label call 34 ir_call_emit_ir_emit_label void 1 33 iconst 35 0 @@ -160498,28 +160601,28 @@ load 36 branch field 37 36 8 int body_idx iconst 38 0 gte 39 37 38 -brif 39 L4114 L4115 -label L4114 +brif 39 L4122 L4123 +label L4122 load 40 branch field 41 40 8 int body_idx call 42 ir_emitter_core_ir_block int 1 41 -jmp L4113 -label L4115 -label L4113 +jmp L4121 +label L4123 +label L4121 load 43 ir_call_emit_ir_last_was_ret iconst 45 1 sub 44 45 43 -brif 44 L4117 L4118 -label L4117 +brif 44 L4125 L4126 +label L4125 strref 46 m46s833 load 47 end_label concat 48 46 47 call 49 pith_cstring_release void 1 46 call 50 ir_builder_ir_emit void 1 48 call 51 pith_cstring_release void 1 48 -jmp L4116 -label L4118 -label L4116 +jmp L4124 +label L4126 +label L4124 load 52 next_label call 53 ir_call_emit_ir_emit_label void 1 52 iconst 54 0 @@ -160593,8 +160696,8 @@ load 58 index_name call 59 string_len int 1 58 iconst 60 0 gt 61 59 60 -brif 61 L4120 L4121 -label L4120 +brif 61 L4128 L4129 +label L4128 call 62 ir_builder_ir_reg int 0 store idx_val 62 strref 63 m46s829 @@ -160619,9 +160722,9 @@ load 81 ir_builder_ir_var_types load 82 index_name strref 83 m46s671 call 84 pith_map_insert_cstr_owned void 3 81 82 83 -jmp L4119 -label L4121 -label L4119 +jmp L4127 +label L4129 +label L4127 load 85 item_ret_kind call 86 pith_cstring_release void 1 85 iconst 87 0 @@ -160650,109 +160753,109 @@ load 13 kind strref 14 m46s554 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 -brif 15 L4123 L4124 -label L4123 +brif 15 L4131 L4132 +label L4131 load 17 node field 18 17 16 list children call 19 pith_list_len int 1 18 iconst 20 0 gt 21 19 20 -brif 21 L4126 L4127 -label L4126 +brif 21 L4134 L4135 +label L4134 load 22 node field 23 22 16 list children iconst 24 0 call 25 pith_list_get_value_strict int 2 23 24 iconst 26 0 call 27 ir_emitter_core_ir_defer_register void 2 25 26 -jmp L4125 -label L4127 -label L4125 +jmp L4133 +label L4135 +label L4133 load 28 node call 29 pith_struct_release void 1 28 load 30 kind call 31 pith_cstring_release void 1 30 iconst 32 0 ret 32 -label L4124 -label L4122 +label L4132 +label L4130 load 33 kind strref 34 m46s553 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 -brif 35 L4129 L4130 -label L4129 +brif 35 L4137 L4138 +label L4137 load 37 node field 38 37 16 list children call 39 pith_list_len int 1 38 iconst 40 0 gt 41 39 40 -brif 41 L4132 L4133 -label L4132 +brif 41 L4140 L4141 +label L4140 load 42 node field 43 42 16 list children iconst 44 0 call 45 pith_list_get_value_strict int 2 43 44 iconst 46 1 call 47 ir_emitter_core_ir_defer_register void 2 45 46 -jmp L4131 -label L4133 -label L4131 +jmp L4139 +label L4141 +label L4139 load 48 node call 49 pith_struct_release void 1 48 load 50 kind call 51 pith_cstring_release void 1 50 iconst 52 0 ret 52 -label L4130 -label L4128 +label L4138 +label L4136 load 53 kind call 54 ir_control_helpers_ir_stmt_is_expr bool 1 53 -brif 54 L4135 L4136 -label L4135 +brif 54 L4143 L4144 +label L4143 load 55 idx call 56 ir_emitter_core_ir_expr int 1 55 store r 56 iconst 57 0 -store __or_57_4140 57 +store __or_57_4148 57 load 58 kind strref 59 m46s44 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 -store __or_57_4140 60 -brif 60 L4141 L4140 -label L4140 +store __or_57_4148 60 +brif 60 L4149 L4148 +label L4148 load 62 kind strref 63 m46s129 call 64 pith_cstring_eq bool 2 62 63 call 65 pith_cstring_release void 1 63 -store __or_57_4140 64 -label L4141 -load 66 __or_57_4140 -brif 66 L4138 L4139 -label L4138 +store __or_57_4148 64 +label L4149 +load 66 __or_57_4148 +brif 66 L4146 L4147 +label L4146 load 67 idx call 68 checker_c_get_expr_type int 1 67 store stmt_tid 68 iconst 69 0 -store __and_69_4145 69 +store __and_69_4153 69 load 70 stmt_tid iconst 71 0 gte 72 70 71 -store __and_69_4145 72 -brif 72 L4145 L4146 -label L4145 +store __and_69_4153 72 +brif 72 L4153 L4154 +label L4153 load 73 stmt_tid call 74 types_get_type_info struct:TypeInfo 1 73 field 75 74 0 string kind strref 76 m46s22 call 77 pith_cstring_eq bool 2 75 76 call 78 pith_cstring_release void 1 76 -store __and_69_4145 77 -label L4146 -load 79 __and_69_4145 -brif 79 L4143 L4144 -label L4143 +store __and_69_4153 77 +label L4154 +load 79 __and_69_4153 +brif 79 L4151 L4152 +label L4151 load 80 r load 81 stmt_tid call 82 ir_emitter_core_ir_emit_discard_result void 2 80 81 @@ -160762,50 +160865,50 @@ load 85 kind call 86 pith_cstring_release void 1 85 iconst 87 0 ret 87 -label L4144 -label L4142 -jmp L4137 -label L4139 -label L4137 +label L4152 +label L4150 +jmp L4145 +label L4147 +label L4145 iconst 88 0 -store __and_88_4150 88 +store __and_88_4158 88 load 89 idx call 90 ir_emitter_core_ir_infer_type string 1 89 strref 91 m46s675 call 92 pith_cstring_eq bool 2 90 91 call 93 pith_cstring_release void 1 90 call 94 pith_cstring_release void 1 91 -store __and_88_4150 92 -brif 92 L4150 L4151 -label L4150 +store __and_88_4158 92 +brif 92 L4158 L4159 +label L4158 load 95 idx call 96 ir_emitter_core_ir_string_expr_is_borrowed bool 1 95 iconst 98 1 sub 97 98 96 -store __and_88_4150 97 -label L4151 -load 99 __and_88_4150 -brif 99 L4148 L4149 -label L4148 +store __and_88_4158 97 +label L4159 +load 99 __and_88_4158 +brif 99 L4156 L4157 +label L4156 load 100 r call 101 ir_ownership_ir_string_release_reg void 1 100 -jmp L4147 -label L4149 -label L4147 +jmp L4155 +label L4157 +label L4155 load 102 node call 103 pith_struct_release void 1 102 load 104 kind call 105 pith_cstring_release void 1 104 iconst 106 0 ret 106 -label L4136 -label L4134 +label L4144 +label L4142 load 107 kind strref 108 m46s64 call 109 pith_cstring_eq bool 2 107 108 call 110 pith_cstring_release void 1 108 -brif 109 L4153 L4154 -label L4153 +brif 109 L4161 L4162 +label L4161 load 111 idx call 112 ir_emitter_core_ir_block int 1 111 load 113 node @@ -160814,14 +160917,14 @@ load 115 kind call 116 pith_cstring_release void 1 115 iconst 117 0 ret 117 -label L4154 -label L4152 +label L4162 +label L4160 load 118 kind strref 119 m46s558 call 120 pith_cstring_eq bool 2 118 119 call 121 pith_cstring_release void 1 119 -brif 120 L4156 L4157 -label L4156 +brif 120 L4164 L4165 +label L4164 load 122 node call 123 ir_emitter_core_ir_emit_return_stmt void 1 122 load 124 node @@ -160830,26 +160933,26 @@ load 126 kind call 127 pith_cstring_release void 1 126 iconst 128 0 ret 128 -label L4157 -label L4155 +label L4165 +label L4163 iconst 129 0 -store __or_129_4161 129 +store __or_129_4169 129 load 130 kind strref 131 m46s551 call 132 pith_cstring_eq bool 2 130 131 call 133 pith_cstring_release void 1 131 -store __or_129_4161 132 -brif 132 L4162 L4161 -label L4161 +store __or_129_4169 132 +brif 132 L4170 L4169 +label L4169 load 134 kind strref 135 m46s552 call 136 pith_cstring_eq bool 2 134 135 call 137 pith_cstring_release void 1 135 -store __or_129_4161 136 -label L4162 -load 138 __or_129_4161 -brif 138 L4159 L4160 -label L4159 +store __or_129_4169 136 +label L4170 +load 138 __or_129_4169 +brif 138 L4167 L4168 +label L4167 load 139 node call 140 ir_emitter_core_ir_emit_bind_stmt void 1 139 load 141 node @@ -160858,14 +160961,14 @@ load 143 kind call 144 pith_cstring_release void 1 143 iconst 145 0 ret 145 -label L4160 -label L4158 +label L4168 +label L4166 load 146 kind strref 147 m46s1201 call 148 pith_cstring_eq bool 2 146 147 call 149 pith_cstring_release void 1 147 -brif 148 L4164 L4165 -label L4164 +brif 148 L4172 L4173 +label L4172 load 150 node call 151 ir_emitter_core_ir_emit_assign_stmt void 1 150 load 152 node @@ -160874,14 +160977,14 @@ load 154 kind call 155 pith_cstring_release void 1 154 iconst 156 0 ret 156 -label L4165 -label L4163 +label L4173 +label L4171 load 157 kind strref 158 m46s574 call 159 pith_cstring_eq bool 2 157 158 call 160 pith_cstring_release void 1 158 -brif 159 L4167 L4168 -label L4167 +brif 159 L4175 L4176 +label L4175 load 161 node call 162 ir_emitter_core_ir_emit_compound_assignment void 1 161 load 163 node @@ -160890,8 +160993,8 @@ load 165 kind call 166 pith_cstring_release void 1 165 iconst 167 0 ret 167 -label L4168 -label L4166 +label L4176 +label L4174 load 168 idx load 169 node call 170 ir_emitter_core_ir_stmt_control void 2 168 169 @@ -160933,12 +161036,12 @@ iconst 17 0 store __for_idx_354 17 store __for_len_354 16 store __for_iter_354 15 -label L4169 +label L4177 load 18 __for_idx_354 load 19 __for_len_354 lt 20 18 19 -brif 20 L4170 L4172 -label L4170 +brif 20 L4178 L4180 +label L4178 load 21 __for_iter_354 load 22 __for_idx_354 call 23 pith_list_get_value unknown 2 21 22 @@ -160953,32 +161056,32 @@ field 29 28 0 string kind strref 30 m46s532 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 -brif 31 L4174 L4175 -label L4174 +brif 31 L4182 L4183 +label L4182 load 33 elif_indices load 34 __loopvar_354_child call 35 pith_list_push_value void 2 33 34 -jmp L4173 -label L4175 +jmp L4181 +label L4183 load 36 cn field 37 36 0 string kind strref 38 m46s530 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 -brif 39 L4176 L4177 -label L4176 +brif 39 L4184 L4185 +label L4184 load 41 __loopvar_354_child store else_idx 41 -jmp L4173 -label L4177 -label L4173 -label L4171 +jmp L4181 +label L4185 +label L4181 +label L4179 load 42 __for_idx_354 iconst 43 1 add 44 42 43 store __for_idx_354 44 -jmp L4169 -label L4172 +jmp L4177 +label L4180 load 45 main_branch load 46 node call 47 ir_control_helpers_ir_collect_if_branch struct:IrIfBranch 1 46 @@ -161007,12 +161110,12 @@ iconst 65 0 store __for_idx_355 65 store __for_len_355 64 store __for_iter_355 63 -label L4178 +label L4186 load 66 __for_idx_355 load 67 __for_len_355 lt 68 66 67 -brif 68 L4179 L4181 -label L4179 +brif 68 L4187 L4189 +label L4187 load 69 __for_iter_355 load 70 __for_idx_355 call 71 pith_list_get_value unknown 2 69 70 @@ -161031,23 +161134,23 @@ load 81 end_label call 82 ir_emitter_core_ir_emit_if_branch void 4 78 79 80 81 call 83 pith_cstring_release void 1 79 call 84 pith_cstring_release void 1 80 -label L4180 +label L4188 load 85 __for_idx_355 iconst 86 1 add 87 85 86 store __for_idx_355 87 -jmp L4178 -label L4181 +jmp L4186 +label L4189 load 88 else_idx iconst 89 0 gte 90 88 89 -brif 90 L4183 L4184 -label L4183 +brif 90 L4191 L4192 +label L4191 load 91 else_idx call 92 ir_emitter_core_ir_block int 1 91 -jmp L4182 -label L4184 -label L4182 +jmp L4190 +label L4192 +label L4190 load 93 end_label call 94 ir_call_emit_ir_emit_label void 1 93 load 95 elif_indices @@ -161082,8 +161185,8 @@ field 8 7 0 string kind strref 9 m46s85 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 -brif 10 L4186 L4187 -label L4186 +brif 10 L4194 L4195 +label L4194 call 12 ir_builder_ir_reg int 0 store r 12 load 13 r @@ -161095,8 +161198,8 @@ load 18 r load 19 pat call 20 pith_struct_release void 1 19 ret 18 -label L4187 -label L4185 +label L4195 +label L4193 load 21 pat_idx load 22 subj_r call 23 ir_match_emit_ir_emit_match_cond int 2 21 22 @@ -161128,8 +161231,8 @@ field 11 10 0 string kind strref 12 m46s85 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 -brif 13 L4189 L4190 -label L4189 +brif 13 L4197 L4198 +label L4197 load 15 subj_idx call 16 checker_c_get_expr_type int 1 15 store subj_tid 16 @@ -161145,32 +161248,32 @@ call 24 map_insert void 3 20 22 23 load 25 subj_tid iconst 26 0 gte 27 25 26 -brif 27 L4192 L4193 -label L4192 +brif 27 L4200 L4201 +label L4200 load 28 info load 29 subj_tid call 30 types_get_type_info struct:TypeInfo 1 29 call 31 pith_struct_release void 1 28 store info 30 iconst 32 0 -store __and_32_4197 32 +store __and_32_4205 32 load 33 info field 34 33 0 string kind strref 35 m46s21 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 -store __and_32_4197 36 -brif 36 L4197 L4198 -label L4197 +store __and_32_4205 36 +brif 36 L4205 L4206 +label L4205 load 38 info field 39 38 64 int inner iconst 40 0 gte 41 39 40 -store __and_32_4197 41 -label L4198 -load 42 __and_32_4197 -brif 42 L4195 L4196 -label L4195 +store __and_32_4205 41 +label L4206 +load 42 __and_32_4205 +brif 42 L4203 L4204 +label L4203 load 43 inner_kind load 44 info field 45 44 64 int inner @@ -161181,22 +161284,22 @@ load 48 inner_kind call 49 string_len int 1 48 iconst 50 0 gt 51 49 50 -brif 51 L4200 L4201 -label L4200 +brif 51 L4208 L4209 +label L4208 load 52 ir_builder_ir_var_types load 53 pat field 54 53 8 string value load 55 inner_kind call 56 map_insert void 3 52 54 55 +jmp L4207 +label L4209 +label L4207 +jmp L4202 +label L4204 +label L4202 jmp L4199 label L4201 label L4199 -jmp L4194 -label L4196 -label L4194 -jmp L4191 -label L4193 -label L4191 strref 57 m46s830 load 58 pat field 59 58 8 string value @@ -161221,8 +161324,8 @@ load 77 inner_kind call 78 pith_cstring_release void 1 77 iconst 79 0 ret 79 -label L4190 -label L4188 +label L4198 +label L4196 load 80 pat_idx load 81 subj_r strref 82 m46s82 @@ -161242,50 +161345,50 @@ param idx iconst 1 0 store kind 1 iconst 2 0 -store __or_2_4205 2 +store __or_2_4213 2 load 3 ir_alias_registry_ir_active_generic_params call 4 pith_list_len int 1 3 iconst 5 0 gt 6 4 5 -store __or_2_4205 6 -brif 6 L4206 L4205 -label L4205 +store __or_2_4213 6 +brif 6 L4214 L4213 +label L4213 load 7 ir_emitter_core_ir_current_impl_subst_params call 8 pith_list_len int 1 7 iconst 9 0 gt 10 8 9 -store __or_2_4205 10 -label L4206 -load 11 __or_2_4205 -brif 11 L4203 L4204 -label L4203 +store __or_2_4213 10 +label L4214 +load 11 __or_2_4213 +brif 11 L4211 L4212 +label L4211 iconst 12 0 load 13 kind call 14 pith_cstring_release void 1 13 ret 12 -label L4204 -label L4202 +label L4212 +label L4210 load 15 kind load 16 idx call 17 ast_node_kind string 1 16 call 18 pith_cstring_release void 1 15 store kind 17 iconst 19 0 -store __or_19_4207 19 +store __or_19_4215 19 load 20 kind strref 21 m46s44 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -store __or_19_4207 22 -brif 22 L4208 L4207 -label L4207 +store __or_19_4215 22 +brif 22 L4216 L4215 +label L4215 load 24 kind strref 25 m46s129 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 -store __or_19_4207 26 -label L4208 -load 28 __or_19_4207 +store __or_19_4215 26 +label L4216 +load 28 __or_19_4215 load 29 kind call 30 pith_cstring_release void 1 29 ret 28 @@ -161307,8 +161410,8 @@ field 5 4 16 list children call 6 pith_list_len int 1 5 iconst 7 3 lt 8 6 7 -brif 8 L4210 L4211 -label L4210 +brif 8 L4218 L4219 +label L4218 load 9 then_l call 10 pith_cstring_release void 1 9 load 11 else_l @@ -161317,8 +161420,8 @@ load 13 end_l call 14 pith_cstring_release void 1 13 iconst 15 0 ret 15 -label L4211 -label L4209 +label L4219 +label L4217 load 16 node field 17 16 16 list children iconst 18 1 @@ -161394,17 +161497,17 @@ call 80 ir_emitter_core_ir_block int 1 79 load 81 ir_call_emit_ir_last_was_ret iconst 83 1 sub 82 83 81 -brif 82 L4213 L4214 -label L4213 +brif 82 L4221 L4222 +label L4221 strref 84 m46s833 load 85 end_l concat 86 84 85 call 87 pith_cstring_release void 1 84 call 88 ir_builder_ir_emit void 1 86 call 89 pith_cstring_release void 1 86 -jmp L4212 -label L4214 -label L4212 +jmp L4220 +label L4222 +label L4220 load 90 else_l call 91 ir_call_emit_ir_emit_label void 1 90 iconst 92 0 @@ -161414,21 +161517,21 @@ field 94 93 16 list children call 95 pith_list_len int 1 94 iconst 96 3 gt 97 95 96 -brif 97 L4216 L4217 -label L4216 +brif 97 L4224 L4225 +label L4224 load 98 node field 99 98 16 list children iconst 100 3 call 101 pith_list_get_value_strict int 2 99 100 call 102 ir_emitter_core_ir_block int 1 101 -jmp L4215 -label L4217 -label L4215 +jmp L4223 +label L4225 +label L4223 load 103 end_l call 104 ir_call_emit_ir_emit_label void 1 103 load 105 owns_subject -brif 105 L4219 L4220 -label L4219 +brif 105 L4227 L4228 +label L4227 call 106 ir_builder_ir_reg int 0 strref 107 m46s898 strref 108 m46s828 @@ -161436,9 +161539,9 @@ load 109 subj_r call 110 ir_call_emit_ir_emit_call1 void 4 106 107 108 109 call 111 pith_cstring_release void 1 107 call 112 pith_cstring_release void 1 108 -jmp L4218 -label L4220 -label L4218 +jmp L4226 +label L4228 +label L4226 iconst 113 0 store ir_call_emit_ir_last_was_ret 113 load 114 then_l @@ -161463,8 +161566,8 @@ field 5 4 16 list children call 6 pith_list_len int 1 5 iconst 7 3 lt 8 6 7 -brif 8 L4222 L4223 -label L4222 +brif 8 L4230 L4231 +label L4230 load 9 head_label call 10 pith_cstring_release void 1 9 load 11 body_label @@ -161473,8 +161576,8 @@ load 13 end_label call 14 pith_cstring_release void 1 13 iconst 15 0 ret 15 -label L4223 -label L4221 +label L4231 +label L4229 load 16 head_label call 17 ir_builder_ir_label string 0 call 18 pith_cstring_release void 1 16 @@ -161572,8 +161675,8 @@ iconst 100 1 sub 101 99 100 call 102 remove void 2 97 101 load 103 owns_subject -brif 103 L4225 L4226 -label L4225 +brif 103 L4233 L4234 +label L4233 call 104 ir_builder_ir_reg int 0 strref 105 m46s898 strref 106 m46s828 @@ -161581,9 +161684,9 @@ load 107 subj_r call 108 ir_call_emit_ir_emit_call1 void 4 104 105 106 107 call 109 pith_cstring_release void 1 105 call 110 pith_cstring_release void 1 106 -jmp L4224 -label L4226 -label L4224 +jmp L4232 +label L4234 +label L4232 strref 111 m46s833 load 112 head_label concat 113 111 112 @@ -161593,8 +161696,8 @@ call 116 pith_cstring_release void 1 113 load 117 end_label call 118 ir_call_emit_ir_emit_label void 1 117 load 119 owns_subject -brif 119 L4228 L4229 -label L4228 +brif 119 L4236 L4237 +label L4236 call 120 ir_builder_ir_reg int 0 strref 121 m46s898 strref 122 m46s828 @@ -161602,9 +161705,9 @@ load 123 subj_r call 124 ir_call_emit_ir_emit_call1 void 4 120 121 122 123 call 125 pith_cstring_release void 1 121 call 126 pith_cstring_release void 1 122 -jmp L4227 -label L4229 -label L4227 +jmp L4235 +label L4237 +label L4235 iconst 127 0 store ir_call_emit_ir_last_was_ret 127 load 128 head_label @@ -161643,8 +161746,8 @@ field 16 15 16 list children call 17 pith_list_len int 1 16 iconst 18 2 gte 19 17 18 -brif 19 L4231 L4232 -label L4231 +brif 19 L4239 L4240 +label L4239 load 20 node field 21 20 16 list children iconst 22 0 @@ -161708,9 +161811,9 @@ concat 76 74 75 call 77 pith_cstring_release void 1 74 call 78 ir_builder_ir_emit void 1 76 call 79 pith_cstring_release void 1 76 -jmp L4230 -label L4232 -label L4230 +jmp L4238 +label L4240 +label L4238 load 80 end_label call 81 ir_call_emit_ir_emit_label void 1 80 load 82 head_label @@ -161742,8 +161845,8 @@ field 10 9 16 list children call 11 pith_list_len int 1 10 iconst 12 2 gte 13 11 12 -brif 13 L4234 L4235 -label L4234 +brif 13 L4242 L4243 +label L4242 load 14 node field 15 14 16 list children iconst 16 0 @@ -161753,8 +161856,8 @@ field 19 18 0 string kind strref 20 m46s523 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 -brif 21 L4237 L4238 -label L4237 +brif 21 L4245 L4246 +label L4245 load 23 node load 24 names call 25 ir_emitter_core_ir_emit_for_range_stmt void 2 23 24 @@ -161768,8 +161871,8 @@ load 32 next_name call 33 pith_cstring_release void 1 32 iconst 34 0 ret 34 -label L4238 -label L4236 +label L4246 +label L4244 load 35 iter_struct load 36 node field 37 36 16 list children @@ -161779,34 +161882,34 @@ call 40 ir_emitter_core_ir_infer_type string 1 39 call 41 pith_cstring_release void 1 35 store iter_struct 40 iconst 42 0 -store __and_42_4242 42 +store __and_42_4250 42 load 43 iter_struct call 44 string_len int 1 43 iconst 45 0 gt 46 44 45 -store __and_42_4242 46 -brif 46 L4242 L4243 -label L4242 +store __and_42_4250 46 +brif 46 L4250 L4251 +label L4250 load 47 iter_struct strref 48 m46s335 call 49 pith_cstring_contains bool 2 47 48 call 50 pith_cstring_release void 1 48 iconst 51 0 eq 52 49 51 -store __and_42_4242 52 -label L4243 -load 53 __and_42_4242 -brif 53 L4240 L4241 -label L4240 +store __and_42_4250 52 +label L4251 +load 53 __and_42_4250 +brif 53 L4248 L4249 +label L4248 iconst 54 0 store gi 54 -label L4244 +label L4252 load 55 gi load 56 ir_alias_registry_ir_active_generic_concrete_types call 57 pith_list_len int 1 56 lt 58 55 57 -brif 58 L4245 L4246 -label L4245 +brif 58 L4253 L4254 +label L4253 load 59 concrete load 60 ir_alias_registry_ir_active_generic_concrete_types load 61 gi @@ -161819,8 +161922,8 @@ call 66 ir_method_tables_ir_strip_type_args string 1 65 load 67 iter_struct call 68 pith_cstring_eq bool 2 66 67 call 69 pith_cstring_release void 1 66 -brif 68 L4248 L4249 -label L4248 +brif 68 L4256 L4257 +label L4256 load 70 iter_struct load 71 concrete call 72 pith_cstring_retain void 1 71 @@ -161829,18 +161932,18 @@ store iter_struct 71 load 74 ir_alias_registry_ir_active_generic_concrete_types call 75 pith_list_len int 1 74 store gi 75 -jmp L4247 -label L4249 -label L4247 +jmp L4255 +label L4257 +label L4255 load 76 gi iconst 77 1 add 78 76 77 store gi 78 -jmp L4244 -label L4246 -jmp L4239 -label L4241 -label L4239 +jmp L4252 +label L4254 +jmp L4247 +label L4249 +label L4247 load 79 next_name load 80 iter_struct strref 81 m46s1200 @@ -161852,8 +161955,8 @@ load 85 next_name call 86 string_len int 1 85 iconst 87 0 eq 88 86 87 -brif 88 L4251 L4252 -label L4251 +brif 88 L4259 L4260 +label L4259 load 89 next_name load 90 iter_struct strref 91 m46s1200 @@ -161861,15 +161964,15 @@ call 92 ir_emitter_core_ir_lookup_impl_method_name string 2 90 91 call 93 pith_cstring_release void 1 91 call 94 pith_cstring_release void 1 89 store next_name 92 -jmp L4250 -label L4252 -label L4250 +jmp L4258 +label L4260 +label L4258 load 95 next_name call 96 string_len int 1 95 iconst 97 0 gt 98 96 97 -brif 98 L4254 L4255 -label L4254 +brif 98 L4262 L4263 +label L4262 load 99 node load 100 names load 101 next_name @@ -161884,14 +161987,14 @@ load 109 next_name call 110 pith_cstring_release void 1 109 iconst 111 0 ret 111 -label L4255 -label L4253 +label L4263 +label L4261 load 112 node load 113 names call 114 ir_emitter_core_ir_emit_for_indexed_stmt void 2 112 113 -jmp L4233 -label L4235 -label L4233 +jmp L4241 +label L4243 +label L4241 load 115 names call 116 pith_struct_release void 1 115 load 117 iter_struct @@ -161962,16 +162065,16 @@ call 37 pith_list_get_value_strict int 2 35 36 call 38 ir_emitter_core_ir_string_expr_is_borrowed bool 1 37 iconst 40 1 sub 39 40 38 -brif 39 L4257 L4258 -label L4257 +brif 39 L4265 L4266 +label L4265 load 41 iter_release_kind load 42 iter_type call 43 ir_struct_registry_ir_rc_kind string 1 42 call 44 pith_cstring_release void 1 41 store iter_release_kind 43 -jmp L4256 -label L4258 -label L4256 +jmp L4264 +label L4266 +label L4264 load 45 conversion_call load 46 iter_type call 47 ir_collection_helpers_ir_for_iter_conversion_call string 1 46 @@ -161981,8 +162084,8 @@ load 49 conversion_call call 50 string_len int 1 49 iconst 51 0 gt 52 50 51 -brif 52 L4260 L4261 -label L4260 +brif 52 L4268 L4269 +label L4268 call 53 ir_builder_ir_reg int 0 store converted_r 53 load 54 converted_r @@ -161996,14 +162099,14 @@ load 61 iter_release_kind call 62 string_len int 1 61 iconst 63 0 gt 64 62 63 -brif 64 L4263 L4264 -label L4263 +brif 64 L4271 L4272 +label L4271 load 65 iter_r load 66 iter_release_kind call 67 ir_ownership_ir_rc_release_reg void 2 65 66 -jmp L4262 -label L4264 -label L4262 +jmp L4270 +label L4272 +label L4270 load 68 converted_r store iter_r 68 load 69 iter_release_kind @@ -162013,9 +162116,9 @@ call 72 ir_struct_registry_ir_rc_kind string 1 71 call 73 pith_cstring_release void 1 71 call 74 pith_cstring_release void 1 69 store iter_release_kind 72 -jmp L4259 -label L4261 -label L4259 +jmp L4267 +label L4269 +label L4267 load 75 ir_emitter_core_ir_for_count store fid 75 load 76 ir_emitter_core_ir_for_count @@ -162267,8 +162370,8 @@ load 303 iter_release_kind call 304 string_len int 1 303 iconst 305 0 gt 306 304 305 -brif 306 L4266 L4267 -label L4266 +brif 306 L4274 L4275 +label L4274 load 307 ir_emitter_core_ir_loop_iter_vars load 308 ft call 309 pith_list_push_value void 2 307 308 @@ -162277,17 +162380,17 @@ load 311 iter_release_kind call 312 pith_list_push_value void 2 310 311 iconst 313 1 store pushed_iter 313 -jmp L4265 -label L4267 -label L4265 +jmp L4273 +label L4275 +label L4273 load 314 node field 315 314 16 list children iconst 316 1 call 317 pith_list_get_value_strict int 2 315 316 call 318 ir_emitter_core_ir_block int 1 317 load 319 pushed_iter -brif 319 L4269 L4270 -label L4269 +brif 319 L4277 L4278 +label L4277 load 320 ir_emitter_core_ir_loop_iter_vars load 321 ir_emitter_core_ir_loop_iter_vars call 322 pith_list_len int 1 321 @@ -162299,10 +162402,10 @@ load 327 ir_emitter_core_ir_loop_iter_kinds call 328 pith_list_len int 1 327 iconst 329 1 sub 330 328 329 -call 331 remove void 2 326 330 -jmp L4268 -label L4270 -label L4268 +call 331 remove void 2 326 330 +jmp L4276 +label L4278 +label L4276 call 332 ir_emitter_core_ir_defer_loop_exit void 0 load 333 names field 334 333 8 string index_name @@ -162412,8 +162515,8 @@ load 434 iter_release_kind call 435 string_len int 1 434 iconst 436 0 gt 437 435 436 -brif 437 L4272 L4273 -label L4272 +brif 437 L4280 L4281 +label L4280 call 438 ir_builder_ir_reg int 0 store fin_r 438 strref 439 m46s829 @@ -162434,9 +162537,9 @@ call 453 pith_cstring_release void 1 450 load 454 fin_r load 455 iter_release_kind call 456 ir_ownership_ir_rc_release_reg void 2 454 455 -jmp L4271 -label L4273 -label L4271 +jmp L4279 +label L4281 +label L4279 load 457 iter_type call 458 pith_cstring_release void 1 457 load 459 item_kind @@ -162587,8 +162690,8 @@ call 95 pith_cstring_release void 1 92 call 96 ir_builder_ir_emit void 1 93 call 97 pith_cstring_release void 1 93 load 98 has_index -brif 98 L4275 L4276 -label L4275 +brif 98 L4283 L4284 +label L4283 call 99 ir_builder_ir_reg int 0 store zero_r 99 strref 100 m46s832 @@ -162618,9 +162721,9 @@ call 123 pith_cstring_release void 1 117 call 124 pith_cstring_release void 1 121 call 125 ir_builder_ir_emit void 1 122 call 126 pith_cstring_release void 1 122 -jmp L4274 -label L4276 -label L4274 +jmp L4282 +label L4284 +label L4282 load 127 head_l call 128 ir_builder_ir_label string 0 call 129 pith_cstring_release void 1 127 @@ -162680,15 +162783,15 @@ strref 175 m46s465 call 176 pith_cstring_release void 1 174 store cmp_op 175 load 177 inclusive -brif 177 L4278 L4279 -label L4278 +brif 177 L4286 L4287 +label L4286 load 178 cmp_op strref 179 m46s459 call 180 pith_cstring_release void 1 178 store cmp_op 179 -jmp L4277 -label L4279 -label L4277 +jmp L4285 +label L4287 +label L4285 load 181 cmp_op strref 182 m46s336 concat 183 181 182 @@ -162791,8 +162894,8 @@ field 276 275 0 string value_name load 277 bind_r call 278 ir_emitter_core_ir_emit_name_store void 2 276 277 load 279 has_index -brif 279 L4281 L4282 -label L4281 +brif 279 L4289 L4290 +label L4289 call 280 ir_builder_ir_reg int 0 store pos_r 280 strref 281 m46s829 @@ -162819,9 +162922,9 @@ load 301 names field 302 301 8 string index_name load 303 pos_r call 304 ir_emitter_core_ir_emit_name_store void 2 302 303 -jmp L4280 -label L4282 -label L4280 +jmp L4288 +label L4290 +label L4288 load 305 ir_emitter_core_ir_break_stack load 306 end_l call 307 ir_utils_ir_push_string list_string 2 305 306 @@ -162934,8 +163037,8 @@ call 408 pith_cstring_release void 1 405 call 409 ir_builder_ir_emit void 1 406 call 410 pith_cstring_release void 1 406 load 411 has_index -brif 411 L4284 L4285 -label L4284 +brif 411 L4292 L4293 +label L4292 call 412 ir_builder_ir_reg int 0 store p3 412 strref 413 m46s829 @@ -163010,9 +163113,9 @@ call 479 pith_cstring_release void 1 473 call 480 pith_cstring_release void 1 477 call 481 ir_builder_ir_emit void 1 478 call 482 pith_cstring_release void 1 478 -jmp L4283 -label L4285 -label L4283 +jmp L4291 +label L4293 +label L4291 strref 483 m46s833 load 484 head_l concat 485 483 484 @@ -163120,8 +163223,8 @@ call 54 pith_cstring_release void 1 51 call 55 ir_builder_ir_emit void 1 52 call 56 pith_cstring_release void 1 52 load 57 has_index -brif 57 L4287 L4288 -label L4287 +brif 57 L4295 L4296 +label L4295 call 58 ir_builder_ir_reg int 0 store zero_r 58 strref 59 m46s832 @@ -163151,9 +163254,9 @@ call 82 pith_cstring_release void 1 76 call 83 pith_cstring_release void 1 80 call 84 ir_builder_ir_emit void 1 81 call 85 pith_cstring_release void 1 81 -jmp L4286 -label L4288 -label L4286 +jmp L4294 +label L4296 +label L4294 load 86 elem_kind load 87 node field 88 87 16 list children @@ -163169,15 +163272,15 @@ load 96 elem_kind call 97 string_len int 1 96 iconst 98 0 eq 99 97 98 -brif 99 L4290 L4291 -label L4290 +brif 99 L4298 L4299 +label L4298 load 100 elem_kind strref 101 m46s822 call 102 pith_cstring_release void 1 100 store elem_kind 101 -jmp L4289 -label L4291 -label L4289 +jmp L4297 +label L4299 +label L4297 load 103 head_l call 104 ir_builder_ir_label string 0 call 105 pith_cstring_release void 1 103 @@ -163328,8 +163431,8 @@ field 239 238 0 string value_name load 240 val_r call 241 ir_emitter_core_ir_emit_name_store void 2 239 240 load 242 has_index -brif 242 L4293 L4294 -label L4293 +brif 242 L4301 L4302 +label L4301 call 243 ir_builder_ir_reg int 0 store pos_r 243 strref 244 m46s829 @@ -163356,9 +163459,9 @@ load 264 names field 265 264 8 string index_name load 266 pos_r call 267 ir_emitter_core_ir_emit_name_store void 2 265 266 -jmp L4292 -label L4294 -label L4292 +jmp L4300 +label L4302 +label L4300 load 268 ir_emitter_core_ir_break_stack load 269 end_l call 270 ir_utils_ir_push_string list_string 2 268 269 @@ -163404,8 +163507,8 @@ call 307 ir_call_emit_ir_emit_call1 void 4 303 304 305 306 call 308 pith_cstring_release void 1 304 call 309 pith_cstring_release void 1 305 load 310 has_index -brif 310 L4296 L4297 -label L4296 +brif 310 L4304 L4305 +label L4304 call 311 ir_builder_ir_reg int 0 store p3 311 strref 312 m46s829 @@ -163480,9 +163583,9 @@ call 378 pith_cstring_release void 1 372 call 379 pith_cstring_release void 1 376 call 380 ir_builder_ir_emit void 1 377 call 381 pith_cstring_release void 1 377 -jmp L4295 -label L4297 -label L4295 +jmp L4303 +label L4305 +label L4303 strref 382 m46s833 load 383 head_l concat 384 382 383 @@ -163523,100 +163626,100 @@ func ir_emitter_core_ir_stmt_control 2 void param idx param node iconst 2 0 -store __or_2_4301 2 +store __or_2_4309 2 load 3 node field 4 3 0 string kind strref 5 m46s1190 call 6 pith_cstring_eq bool 2 4 5 call 7 pith_cstring_release void 1 5 -store __or_2_4301 6 -brif 6 L4302 L4301 -label L4301 +store __or_2_4309 6 +brif 6 L4310 L4309 +label L4309 load 8 node field 9 8 0 string kind strref 10 m46s573 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 -store __or_2_4301 11 -label L4302 -load 13 __or_2_4301 -brif 13 L4299 L4300 -label L4299 +store __or_2_4309 11 +label L4310 +load 13 __or_2_4309 +brif 13 L4307 L4308 +label L4307 load 14 node call 15 ir_emitter_core_ir_emit_if_stmt void 1 14 -jmp L4298 -label L4300 +jmp L4306 +label L4308 load 16 node field 17 16 0 string kind strref 18 m46s571 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -brif 19 L4303 L4304 -label L4303 +brif 19 L4311 L4312 +label L4311 load 21 node call 22 ir_emitter_core_ir_emit_if_let_stmt void 1 21 -jmp L4298 -label L4304 +jmp L4306 +label L4312 load 23 node field 24 23 0 string kind strref 25 m46s570 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 -brif 26 L4305 L4306 -label L4305 +brif 26 L4313 L4314 +label L4313 load 28 node call 29 ir_emitter_core_ir_emit_while_let_stmt void 1 28 -jmp L4298 -label L4306 +jmp L4306 +label L4314 iconst 30 0 -store __or_30_4309 30 +store __or_30_4317 30 load 31 node field 32 31 0 string kind strref 33 m46s1189 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 -store __or_30_4309 34 -brif 34 L4310 L4309 -label L4309 +store __or_30_4317 34 +brif 34 L4318 L4317 +label L4317 load 36 node field 37 36 0 string kind strref 38 m46s572 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 -store __or_30_4309 39 -label L4310 -load 41 __or_30_4309 -brif 41 L4307 L4308 -label L4307 +store __or_30_4317 39 +label L4318 +load 41 __or_30_4317 +brif 41 L4315 L4316 +label L4315 load 42 node call 43 ir_emitter_core_ir_emit_while_stmt void 1 42 -jmp L4298 -label L4308 +jmp L4306 +label L4316 iconst 44 0 -store __or_44_4313 44 +store __or_44_4321 44 load 45 node field 46 45 0 string kind strref 47 m46s1188 call 48 pith_cstring_eq bool 2 46 47 call 49 pith_cstring_release void 1 47 -store __or_44_4313 48 -brif 48 L4314 L4313 -label L4313 +store __or_44_4321 48 +brif 48 L4322 L4321 +label L4321 load 50 node field 51 50 0 string kind strref 52 m46s569 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 -store __or_44_4313 53 -label L4314 -load 55 __or_44_4313 -brif 55 L4311 L4312 -label L4311 +store __or_44_4321 53 +label L4322 +load 55 __or_44_4321 +brif 55 L4319 L4320 +label L4319 load 56 node call 57 ir_emitter_core_ir_emit_for_stmt void 1 56 -jmp L4298 -label L4312 -label L4298 +jmp L4306 +label L4320 +label L4306 iconst 58 0 ret 58 endfunc @@ -163630,59 +163733,59 @@ call 4 ast_node_kind string 1 3 call 5 pith_cstring_release void 1 2 store kind 4 iconst 6 0 -store __or_6_4318 6 +store __or_6_4326 6 iconst 7 0 -store __or_7_4318 7 +store __or_7_4326 7 iconst 8 0 -store __or_8_4318 8 +store __or_8_4326 8 load 9 kind strref 10 m46s64 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 -store __or_8_4318 11 -brif 11 L4319 L4318 -label L4318 +store __or_8_4326 11 +brif 11 L4327 L4326 +label L4326 load 13 kind strref 14 m46s531 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 -store __or_8_4318 15 -label L4319 -load 17 __or_8_4318 -store __or_7_4318 17 -brif 17 L4321 L4320 -label L4320 +store __or_8_4326 15 +label L4327 +load 17 __or_8_4326 +store __or_7_4326 17 +brif 17 L4329 L4328 +label L4328 load 18 kind strref 19 m46s530 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 -store __or_7_4318 20 -label L4321 -load 22 __or_7_4318 -store __or_6_4318 22 -brif 22 L4323 L4322 -label L4322 +store __or_7_4326 20 +label L4329 +load 22 __or_7_4326 +store __or_6_4326 22 +brif 22 L4331 L4330 +label L4330 load 23 kind strref 24 m46s65 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 -store __or_6_4318 25 -label L4323 -load 27 __or_6_4318 -brif 27 L4316 L4317 -label L4316 +store __or_6_4326 25 +label L4331 +load 27 __or_6_4326 +brif 27 L4324 L4325 +label L4324 call 28 ir_emitter_core_ir_defer_push_scope void 0 iconst 29 0 store i 29 load 30 idx call 31 ast_node_child_count int 1 30 store child_count 31 -label L4324 +label L4332 load 32 i load 33 child_count lt 34 32 33 -brif 34 L4325 L4326 -label L4325 +brif 34 L4333 L4334 +label L4333 load 35 idx load 36 i call 37 ast_node_child int 2 35 36 @@ -163691,23 +163794,23 @@ load 39 i iconst 40 1 add 41 39 40 store i 41 -jmp L4324 -label L4326 +jmp L4332 +label L4334 call 42 ir_emitter_core_ir_defer_pop_scope_emit void 0 -jmp L4315 -label L4317 +jmp L4323 +label L4325 load 43 kind strref 44 m46s556 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 -brif 45 L4328 L4329 -label L4328 +brif 45 L4336 L4337 +label L4336 load 47 ir_emitter_core_ir_break_stack call 48 pith_list_len int 1 47 iconst 49 0 gt 50 48 49 -brif 50 L4331 L4332 -label L4331 +brif 50 L4339 L4340 +label L4339 call 51 ir_emitter_core_ir_defer_emit_for_loop_jump void 0 strref 52 m46s833 load 53 ir_emitter_core_ir_break_stack @@ -163722,27 +163825,27 @@ call 61 ir_builder_ir_emit void 1 59 call 62 pith_cstring_release void 1 59 iconst 63 1 store ir_call_emit_ir_last_was_ret 63 -jmp L4330 -label L4332 -label L4330 +jmp L4338 +label L4340 +label L4338 iconst 64 0 load 65 kind call 66 pith_cstring_release void 1 65 ret 64 -label L4329 -label L4327 +label L4337 +label L4335 load 67 kind strref 68 m46s555 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 -brif 69 L4334 L4335 -label L4334 +brif 69 L4342 L4343 +label L4342 load 71 ir_emitter_core_ir_continue_stack call 72 pith_list_len int 1 71 iconst 73 0 gt 74 72 73 -brif 74 L4337 L4338 -label L4337 +brif 74 L4345 L4346 +label L4345 call 75 ir_emitter_core_ir_defer_emit_for_loop_jump void 0 strref 76 m46s833 load 77 ir_emitter_core_ir_continue_stack @@ -163757,18 +163860,18 @@ call 85 ir_builder_ir_emit void 1 83 call 86 pith_cstring_release void 1 83 iconst 87 1 store ir_call_emit_ir_last_was_ret 87 -jmp L4336 -label L4338 -label L4336 +jmp L4344 +label L4346 +label L4344 iconst 88 0 load 89 kind call 90 pith_cstring_release void 1 89 ret 88 -label L4335 -label L4333 +label L4343 +label L4341 load 91 idx call 92 ir_emitter_core_ir_stmt void 1 91 -label L4315 +label L4323 iconst 93 0 load 94 kind call 95 pith_cstring_release void 1 94 @@ -163788,25 +163891,25 @@ call 4 ast_get_node struct:Node 1 3 call 5 pith_struct_release void 1 2 store node 4 iconst 6 0 -store __and_6_4342 6 +store __and_6_4350 6 load 7 node field 8 7 0 string kind strref 9 m46s68 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 -store __and_6_4342 10 -brif 10 L4342 L4343 -label L4342 +store __and_6_4350 10 +brif 10 L4350 L4351 +label L4350 load 12 node field 13 12 16 list children call 14 pith_list_len int 1 13 iconst 15 0 gt 16 14 15 -store __and_6_4342 16 -label L4343 -load 17 __and_6_4342 -brif 17 L4340 L4341 -label L4340 +store __and_6_4350 16 +label L4351 +load 17 __and_6_4350 +brif 17 L4348 L4349 +label L4348 load 18 node field 19 18 16 list children iconst 20 0 @@ -163815,8 +163918,8 @@ call 22 ir_alias_registry_ir_resolve_type_node string 1 21 load 23 node call 24 pith_struct_release void 1 23 ret 22 -label L4341 -label L4339 +label L4349 +label L4347 strref 25 m46s165 load 26 node call 27 pith_struct_release void 1 26 @@ -163847,13 +163950,13 @@ call 12 pith_list_release_handle void 1 8 store nk 10 iconst 13 0 store i 13 -label L4344 +label L4352 load 14 i load 15 nk call 16 pith_list_len int 1 15 lt 17 14 16 -brif 17 L4345 L4346 -label L4345 +brif 17 L4353 L4354 +label L4353 load 18 cn load 19 nk load 20 i @@ -163866,8 +163969,8 @@ field 25 24 0 string kind strref 26 m46s65 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 -brif 27 L4348 L4349 -label L4348 +brif 27 L4356 L4357 +label L4356 load 29 nk load 30 i call 31 pith_list_get_value_strict int 2 29 30 @@ -163878,20 +163981,20 @@ call 35 pith_list_release_handle void 1 34 load 36 cn call 37 pith_struct_release void 1 36 ret 31 -label L4349 -label L4347 +label L4357 +label L4355 load 38 i iconst 39 1 add 40 38 39 store i 40 -jmp L4344 -label L4346 +jmp L4352 +label L4354 load 41 nk call 42 pith_list_len int 1 41 iconst 43 0 gt 44 42 43 -brif 44 L4351 L4352 -label L4351 +brif 44 L4359 L4360 +label L4359 load 45 nk load 46 nk call 47 pith_list_len int 1 46 @@ -163905,8 +164008,8 @@ call 54 pith_list_release_handle void 1 53 load 55 cn call 56 pith_struct_release void 1 55 ret 50 -label L4352 -label L4350 +label L4360 +label L4358 iconst 57 0 iconst 58 1 sub 59 57 58 @@ -163953,12 +164056,12 @@ iconst 16 0 store __for_idx_356 16 store __for_len_356 15 store __for_iter_356 14 -label L4353 +label L4361 load 17 __for_idx_356 load 18 __for_len_356 lt 19 17 18 -brif 19 L4354 L4356 -label L4354 +brif 19 L4362 L4364 +label L4362 load 20 __for_iter_356 load 21 __for_idx_356 call 22 pith_list_get_value unknown 2 20 21 @@ -163973,22 +164076,22 @@ field 28 27 0 string kind strref 29 m46s68 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L4358 L4359 -label L4358 +brif 30 L4366 L4367 +label L4366 load 32 count iconst 33 1 add 34 32 33 store count 34 -jmp L4357 -label L4359 -label L4357 -label L4355 +jmp L4365 +label L4367 +label L4365 +label L4363 load 35 __for_idx_356 iconst 36 1 add 37 35 36 store __for_idx_356 37 -jmp L4353 -label L4356 +jmp L4361 +label L4364 load 38 count load 39 node call 40 pith_struct_release void 1 39 @@ -164022,7 +164125,7 @@ call 7 ast_get_node struct:Node 1 6 call 8 pith_struct_release void 1 5 store node 7 iconst 9 0 -store __or_9_4363 9 +store __or_9_4371 9 load 10 node field 11 10 0 string kind strref 12 m46s68 @@ -164030,19 +164133,19 @@ call 14 pith_cstring_eq bool 2 11 12 iconst 15 1 sub 13 15 14 call 16 pith_cstring_release void 1 12 -store __or_9_4363 13 -brif 13 L4364 L4363 -label L4363 +store __or_9_4371 13 +brif 13 L4372 L4371 +label L4371 load 17 node field 18 17 16 list children call 19 pith_list_len int 1 18 iconst 20 0 eq 21 19 20 -store __or_9_4363 21 -label L4364 -load 22 __or_9_4363 -brif 22 L4361 L4362 -label L4361 +store __or_9_4371 21 +label L4372 +load 22 __or_9_4371 +brif 22 L4369 L4370 +label L4369 load 23 node call 24 pith_struct_release void 1 23 load 25 tn @@ -164053,8 +164156,8 @@ load 29 ret_kind call 30 pith_cstring_release void 1 29 iconst 31 0 ret 31 -label L4362 -label L4360 +label L4370 +label L4368 load 32 tn load 33 node field 34 33 16 list children @@ -164064,7 +164167,7 @@ call 37 ast_get_node struct:Node 1 36 call 38 pith_struct_release void 1 32 store tn 37 iconst 39 0 -store __or_39_4368 39 +store __or_39_4376 39 load 40 tn field 41 40 0 string kind strref 42 m46s318 @@ -164072,19 +164175,19 @@ call 44 pith_cstring_eq bool 2 41 42 iconst 45 1 sub 43 45 44 call 46 pith_cstring_release void 1 42 -store __or_39_4368 43 -brif 43 L4369 L4368 -label L4368 +store __or_39_4376 43 +brif 43 L4377 L4376 +label L4376 load 47 tn field 48 47 16 list children call 49 pith_list_len int 1 48 iconst 50 0 eq 51 49 50 -store __or_39_4368 51 -label L4369 -load 52 __or_39_4368 -brif 52 L4366 L4367 -label L4366 +store __or_39_4376 51 +label L4377 +load 52 __or_39_4376 +brif 52 L4374 L4375 +label L4374 load 53 node call 54 pith_struct_release void 1 53 load 55 tn @@ -164095,8 +164198,8 @@ load 59 ret_kind call 60 pith_cstring_release void 1 59 iconst 61 0 ret 61 -label L4367 -label L4365 +label L4375 +label L4373 load 62 last load 63 tn field 64 63 16 list children @@ -164110,7 +164213,7 @@ call 71 ast_get_node struct:Node 1 70 call 72 pith_struct_release void 1 62 store last 71 iconst 73 0 -store __or_73_4373 73 +store __or_73_4381 73 load 74 last field 75 74 0 string kind strref 76 m46s313 @@ -164118,19 +164221,19 @@ call 78 pith_cstring_eq bool 2 75 76 iconst 79 1 sub 77 79 78 call 80 pith_cstring_release void 1 76 -store __or_73_4373 77 -brif 77 L4374 L4373 -label L4373 +store __or_73_4381 77 +brif 77 L4382 L4381 +label L4381 load 81 last field 82 81 16 list children call 83 pith_list_len int 1 82 iconst 84 0 eq 85 83 84 -store __or_73_4373 85 -label L4374 -load 86 __or_73_4373 -brif 86 L4371 L4372 -label L4371 +store __or_73_4381 85 +label L4382 +load 86 __or_73_4381 +brif 86 L4379 L4380 +label L4379 load 87 node call 88 pith_struct_release void 1 87 load 89 tn @@ -164141,8 +164244,8 @@ load 93 ret_kind call 94 pith_cstring_release void 1 93 iconst 95 0 ret 95 -label L4372 -label L4370 +label L4380 +label L4378 load 96 ret_kind load 97 last field 98 97 16 list children @@ -164155,16 +164258,16 @@ load 103 ret_kind call 104 string_len int 1 103 iconst 105 0 gt 106 104 105 -brif 106 L4376 L4377 -label L4376 +brif 106 L4384 L4385 +label L4384 load 107 ir_emitter_core_ir_closure_return_kinds load 108 node field 109 108 8 string value load 110 ret_kind call 111 map_insert void 3 107 109 110 -jmp L4375 -label L4377 -label L4375 +jmp L4383 +label L4385 +label L4383 load 112 node call 113 pith_struct_release void 1 112 load 114 tn @@ -164189,15 +164292,15 @@ load 7 param_type call 8 string_len int 1 7 iconst 9 0 gt 10 8 9 -brif 10 L4379 L4380 -label L4379 +brif 10 L4387 L4388 +label L4387 load 11 ir_builder_ir_var_types load 12 name load 13 param_type call 14 map_insert void 3 11 12 13 -jmp L4378 -label L4380 -label L4378 +jmp L4386 +label L4388 +label L4386 strref 15 m46s1187 load 16 name concat 17 15 16 @@ -164234,12 +164337,12 @@ iconst 16 0 store __for_idx_357 16 store __for_len_357 15 store __for_iter_357 14 -label L4381 +label L4389 load 17 __for_idx_357 load 18 __for_len_357 lt 19 17 18 -brif 19 L4382 L4384 -label L4382 +brif 19 L4390 L4392 +label L4390 load 20 __for_iter_357 load 21 __for_idx_357 call 22 pith_list_get_value unknown 2 20 21 @@ -164254,8 +164357,8 @@ field 28 27 0 string kind strref 29 m46s68 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L4386 L4387 -label L4386 +brif 30 L4394 L4395 +label L4394 load 32 ptype load 33 __loopvar_357_child call 34 ir_emitter_core_ir_extract_param_type string 1 33 @@ -164265,33 +164368,33 @@ load 36 ir_emitter_core_ir_current_impl_type call 37 string_len int 1 36 iconst 38 0 gt 39 37 38 -brif 39 L4389 L4390 -label L4389 +brif 39 L4397 L4398 +label L4397 load 40 ptype load 41 ir_emitter_core_ir_current_impl_type load 42 ptype call 43 ir_method_tables_ir_resolve_assoc_type string 2 41 42 call 44 pith_cstring_release void 1 40 store ptype 43 -jmp L4388 -label L4390 -label L4388 +jmp L4396 +label L4398 +label L4396 load 45 cn field 46 45 8 string value load 47 ptype call 48 ir_emitter_core_ir_emit_named_param void 2 46 47 load 49 __loopvar_357_child call 50 ir_emitter_core_ir_record_closure_param_return void 1 49 -jmp L4385 -label L4387 -label L4385 -label L4383 +jmp L4393 +label L4395 +label L4393 +label L4391 load 51 __for_idx_357 iconst 52 1 add 53 51 52 store __for_idx_357 53 -jmp L4381 -label L4384 +jmp L4389 +label L4392 load 54 node call 55 pith_struct_release void 1 54 load 56 nk @@ -164323,12 +164426,12 @@ iconst 11 0 store __for_idx_358 11 store __for_len_358 10 store __for_iter_358 9 -label L4391 +label L4399 load 12 __for_idx_358 load 13 __for_len_358 lt 14 12 13 -brif 14 L4392 L4394 -label L4392 +brif 14 L4400 L4402 +label L4400 load 15 __for_iter_358 load 16 __for_idx_358 call 17 pith_list_get_value unknown 2 15 16 @@ -164343,8 +164446,8 @@ field 23 22 0 string kind strref 24 m46s313 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 -brif 25 L4396 L4397 -label L4396 +brif 25 L4404 L4405 +label L4404 load 27 cn field 28 27 16 list children call 29 pith_auto_len int 1 28 @@ -164352,12 +164455,12 @@ iconst 30 0 store __for_idx_359 30 store __for_len_359 29 store __for_iter_359 28 -label L4398 +label L4406 load 31 __for_idx_359 load 32 __for_len_359 lt 33 31 32 -brif 33 L4399 L4401 -label L4399 +brif 33 L4407 L4409 +label L4407 load 34 __for_iter_359 load 35 __for_idx_359 call 36 pith_list_get_value unknown 2 34 35 @@ -164368,51 +164471,51 @@ call 39 ast_get_node struct:Node 1 38 call 40 pith_struct_release void 1 37 store rn 39 iconst 41 0 -store __or_41_4405 41 +store __or_41_4413 41 iconst 42 0 -store __or_42_4405 42 +store __or_42_4413 42 iconst 43 0 -store __or_43_4405 43 +store __or_43_4413 43 load 44 rn field 45 44 0 string kind strref 46 m46s328 call 47 pith_cstring_eq bool 2 45 46 call 48 pith_cstring_release void 1 46 -store __or_43_4405 47 -brif 47 L4406 L4405 -label L4405 +store __or_43_4413 47 +brif 47 L4414 L4413 +label L4413 load 49 rn field 50 49 0 string kind strref 51 m46s327 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 -store __or_43_4405 52 -label L4406 -load 54 __or_43_4405 -store __or_42_4405 54 -brif 54 L4408 L4407 -label L4407 +store __or_43_4413 52 +label L4414 +load 54 __or_43_4413 +store __or_42_4413 54 +brif 54 L4416 L4415 +label L4415 load 55 rn field 56 55 0 string kind strref 57 m46s320 call 58 pith_cstring_eq bool 2 56 57 call 59 pith_cstring_release void 1 57 -store __or_42_4405 58 -label L4408 -load 60 __or_42_4405 -store __or_41_4405 60 -brif 60 L4410 L4409 -label L4409 +store __or_42_4413 58 +label L4416 +load 60 __or_42_4413 +store __or_41_4413 60 +brif 60 L4418 L4417 +label L4417 load 61 rn field 62 61 0 string kind strref 63 m46s321 call 64 pith_cstring_eq bool 2 62 63 call 65 pith_cstring_release void 1 63 -store __or_41_4405 64 -label L4410 -load 66 __or_41_4405 -brif 66 L4403 L4404 -label L4403 +store __or_41_4413 64 +label L4418 +load 66 __or_41_4413 +brif 66 L4411 L4412 +label L4411 load 67 __loopvar_359_returns_child call 68 ir_alias_registry_ir_resolve_type_node string 1 67 load 69 node @@ -164422,25 +164525,25 @@ call 72 pith_struct_release void 1 71 load 73 rn call 74 pith_struct_release void 1 73 ret 68 -label L4404 -label L4402 -label L4400 +label L4412 +label L4410 +label L4408 load 75 __for_idx_359 iconst 76 1 add 77 75 76 store __for_idx_359 77 -jmp L4398 +jmp L4406 +label L4409 +jmp L4403 +label L4405 +label L4403 label L4401 -jmp L4395 -label L4397 -label L4395 -label L4393 load 78 __for_idx_358 iconst 79 1 add 80 78 79 store __for_idx_358 80 -jmp L4391 -label L4394 +jmp L4399 +label L4402 strref 81 m46s822 load 82 node call 83 pith_struct_release void 1 82 @@ -164478,12 +164581,12 @@ iconst 11 0 store __for_idx_360 11 store __for_len_360 10 store __for_iter_360 9 -label L4411 +label L4419 load 12 __for_idx_360 load 13 __for_len_360 lt 14 12 13 -brif 14 L4412 L4414 -label L4412 +brif 14 L4420 L4422 +label L4420 load 15 __for_iter_360 load 16 __for_idx_360 call 17 pith_list_get_value unknown 2 15 16 @@ -164498,8 +164601,8 @@ field 23 22 0 string kind strref 24 m46s313 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 -brif 25 L4416 L4417 -label L4416 +brif 25 L4424 L4425 +label L4424 load 27 cn field 28 27 16 list children call 29 pith_auto_len int 1 28 @@ -164507,12 +164610,12 @@ iconst 30 0 store __for_idx_361 30 store __for_len_361 29 store __for_iter_361 28 -label L4418 +label L4426 load 31 __for_idx_361 load 32 __for_len_361 lt 33 31 32 -brif 33 L4419 L4421 -label L4419 +brif 33 L4427 L4429 +label L4427 load 34 __for_iter_361 load 35 __for_idx_361 call 36 pith_list_get_value unknown 2 34 35 @@ -164523,25 +164626,25 @@ call 39 ast_get_node struct:Node 1 38 call 40 pith_struct_release void 1 37 store rn 39 iconst 41 0 -store __and_41_4425 41 +store __and_41_4433 41 load 42 rn field 43 42 0 string kind strref 44 m46s321 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 -store __and_41_4425 45 -brif 45 L4425 L4426 -label L4425 +store __and_41_4433 45 +brif 45 L4433 L4434 +label L4433 load 47 rn field 48 47 16 list children call 49 pith_list_len int 1 48 iconst 50 0 gt 51 49 50 -store __and_41_4425 51 -label L4426 -load 52 __and_41_4425 -brif 52 L4423 L4424 -label L4423 +store __and_41_4433 51 +label L4434 +load 52 __and_41_4433 +brif 52 L4431 L4432 +label L4431 load 53 rn field 54 53 16 list children iconst 55 0 @@ -164554,25 +164657,25 @@ call 61 pith_struct_release void 1 60 load 62 rn call 63 pith_struct_release void 1 62 ret 57 -label L4424 -label L4422 -label L4420 +label L4432 +label L4430 +label L4428 load 64 __for_idx_361 iconst 65 1 add 66 64 65 store __for_idx_361 66 -jmp L4418 +jmp L4426 +label L4429 +jmp L4423 +label L4425 +label L4423 label L4421 -jmp L4415 -label L4417 -label L4415 -label L4413 load 67 __for_idx_360 iconst 68 1 add 69 67 68 store __for_idx_360 69 -jmp L4411 -label L4414 +jmp L4419 +label L4422 strref 70 m46s82 load 71 node call 72 pith_struct_release void 1 71 @@ -164610,12 +164713,12 @@ iconst 11 0 store __for_idx_362 11 store __for_len_362 10 store __for_iter_362 9 -label L4427 +label L4435 load 12 __for_idx_362 load 13 __for_len_362 lt 14 12 13 -brif 14 L4428 L4430 -label L4428 +brif 14 L4436 L4438 +label L4436 load 15 __for_iter_362 load 16 __for_idx_362 call 17 pith_list_get_value unknown 2 15 16 @@ -164630,8 +164733,8 @@ field 23 22 0 string kind strref 24 m46s313 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 -brif 25 L4432 L4433 -label L4432 +brif 25 L4440 L4441 +label L4440 load 27 cn field 28 27 16 list children call 29 pith_auto_len int 1 28 @@ -164639,12 +164742,12 @@ iconst 30 0 store __for_idx_363 30 store __for_len_363 29 store __for_iter_363 28 -label L4434 +label L4442 load 31 __for_idx_363 load 32 __for_len_363 lt 33 31 32 -brif 33 L4435 L4437 -label L4435 +brif 33 L4443 L4445 +label L4443 load 34 __for_iter_363 load 35 __for_idx_363 call 36 pith_list_get_value unknown 2 34 35 @@ -164659,8 +164762,8 @@ field 42 41 0 string kind strref 43 m46s320 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 -brif 44 L4439 L4440 -label L4439 +brif 44 L4447 L4448 +label L4447 iconst 46 1 load 47 node call 48 pith_struct_release void 1 47 @@ -164669,25 +164772,25 @@ call 50 pith_struct_release void 1 49 load 51 rn call 52 pith_struct_release void 1 51 ret 46 -label L4440 -label L4438 -label L4436 +label L4448 +label L4446 +label L4444 load 53 __for_idx_363 iconst 54 1 add 55 53 54 store __for_idx_363 55 -jmp L4434 +jmp L4442 +label L4445 +jmp L4439 +label L4441 +label L4439 label L4437 -jmp L4431 -label L4433 -label L4431 -label L4429 load 56 __for_idx_362 iconst 57 1 add 58 56 57 store __for_idx_362 58 -jmp L4427 -label L4430 +jmp L4435 +label L4438 iconst 59 0 load 60 node call 61 pith_struct_release void 1 60 @@ -164722,8 +164825,8 @@ load 7 type_name call 8 string_len int 1 7 iconst 9 0 eq 10 8 9 -brif 10 L4442 L4443 -label L4442 +brif 10 L4450 L4451 +label L4450 strref 11 m46s82 load 12 key call 13 pith_cstring_release void 1 12 @@ -164736,8 +164839,8 @@ call 19 pith_cstring_release void 1 18 load 20 base_key call 21 pith_cstring_release void 1 20 ret 11 -label L4443 -label L4441 +label L4451 +label L4449 load 22 key load 23 type_name load 24 method_name @@ -164747,8 +164850,8 @@ store key 25 load 27 ir_method_tables_ir_impl_methods load 28 key call 29 contains_key bool 2 27 28 -brif 29 L4445 L4446 -label L4445 +brif 29 L4453 L4454 +label L4453 load 30 ir_method_tables_ir_impl_methods load 31 key call 32 map_get_strict string 2 30 31 @@ -164764,8 +164867,8 @@ call 41 pith_cstring_release void 1 40 load 42 base_key call 43 pith_cstring_release void 1 42 ret 32 -label L4446 -label L4444 +label L4454 +label L4452 load 44 resolved load 45 type_name call 46 ir_alias_registry_ir_resolve_type_hint string 1 45 @@ -164776,8 +164879,8 @@ load 49 type_name call 51 pith_cstring_eq bool 2 48 49 iconst 52 1 sub 50 52 51 -brif 50 L4448 L4449 -label L4448 +brif 50 L4456 L4457 +label L4456 load 53 resolved_key load 54 resolved load 55 method_name @@ -164787,8 +164890,8 @@ store resolved_key 56 load 58 ir_method_tables_ir_impl_methods load 59 resolved_key call 60 contains_key bool 2 58 59 -brif 60 L4451 L4452 -label L4451 +brif 60 L4459 L4460 +label L4459 load 61 ir_method_tables_ir_impl_methods load 62 resolved_key call 63 map_get_strict string 2 61 62 @@ -164804,17 +164907,17 @@ call 72 pith_cstring_release void 1 71 load 73 base_key call 74 pith_cstring_release void 1 73 ret 63 -label L4452 -label L4450 -jmp L4447 -label L4449 -label L4447 +label L4460 +label L4458 +jmp L4455 +label L4457 +label L4455 load 75 type_name strref 76 m46s335 call 77 pith_cstring_contains bool 2 75 76 call 78 pith_cstring_release void 1 76 -brif 77 L4454 L4455 -label L4454 +brif 77 L4462 L4463 +label L4462 load 79 base load 80 type_name iconst 81 0 @@ -164834,8 +164937,8 @@ store base_key 91 load 93 ir_method_tables_ir_impl_methods load 94 base_key call 95 contains_key bool 2 93 94 -brif 95 L4457 L4458 -label L4457 +brif 95 L4465 L4466 +label L4465 load 96 ir_method_tables_ir_impl_methods load 97 base_key call 98 map_get_strict string 2 96 97 @@ -164851,11 +164954,11 @@ call 107 pith_cstring_release void 1 106 load 108 base_key call 109 pith_cstring_release void 1 108 ret 98 -label L4458 -label L4456 -jmp L4453 -label L4455 -label L4453 +label L4466 +label L4464 +jmp L4461 +label L4463 +label L4461 strref 110 m46s82 load 111 key call 112 pith_cstring_release void 1 111 @@ -164893,12 +164996,12 @@ iconst 6 0 store __for_idx_364 6 store __for_len_364 5 store __for_iter_364 4 -label L4459 +label L4467 load 7 __for_idx_364 load 8 __for_len_364 lt 9 7 8 -brif 9 L4460 L4462 -label L4460 +brif 9 L4468 L4470 +label L4468 load 10 __for_iter_364 load 11 __for_idx_364 call 12 pith_list_get_value unknown 2 10 11 @@ -164913,21 +165016,21 @@ field 18 17 0 string kind strref 19 m46s588 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 -brif 20 L4464 L4465 -label L4464 +brif 20 L4472 L4473 +label L4472 load 22 node load 23 module_path call 24 ir_emitter_core_ir_collect_impl_method_signatures void 2 22 23 -jmp L4463 -label L4465 -label L4463 -label L4461 +jmp L4471 +label L4473 +label L4471 +label L4469 load 25 __for_idx_364 iconst 26 1 add 27 25 26 store __for_idx_364 27 -jmp L4459 -label L4462 +jmp L4467 +label L4470 load 28 __for_iter_364 call 29 pith_list_release_handle void 1 28 load 30 node @@ -164947,12 +165050,12 @@ iconst 6 0 store __for_idx_365 6 store __for_len_365 5 store __for_iter_365 4 -label L4466 +label L4474 load 7 __for_idx_365 load 8 __for_len_365 lt 9 7 8 -brif 9 L4467 L4469 -label L4467 +brif 9 L4475 L4477 +label L4475 load 10 __for_iter_365 load 11 __for_idx_365 call 12 pith_list_get_value unknown 2 10 11 @@ -164963,34 +165066,34 @@ call 15 ast_get_node struct:Node 1 14 call 16 pith_struct_release void 1 13 store node 15 iconst 17 0 -store __and_17_4473 17 +store __and_17_4481 17 load 18 node field 19 18 0 string kind call 20 ir_generics_ir_is_fn_decl_kind bool 1 19 -store __and_17_4473 20 -brif 20 L4473 L4474 -label L4473 +store __and_17_4481 20 +brif 20 L4481 L4482 +label L4481 load 21 node call 22 ir_generics_ir_has_generic_params bool 1 21 -store __and_17_4473 22 -label L4474 -load 23 __and_17_4473 -brif 23 L4471 L4472 -label L4471 +store __and_17_4481 22 +label L4482 +load 23 __and_17_4481 +brif 23 L4479 L4480 +label L4479 load 24 __loopvar_365_item_idx load 25 node load 26 module_path call 27 ir_generics_ir_record_generic_function_decl void 3 24 25 26 -jmp L4470 -label L4472 -label L4470 -label L4468 +jmp L4478 +label L4480 +label L4478 +label L4476 load 28 __for_idx_365 iconst 29 1 add 30 28 29 store __for_idx_365 30 -jmp L4466 -label L4469 +jmp L4474 +label L4477 load 31 __for_iter_365 call 32 pith_list_release_handle void 1 31 load 33 node @@ -165008,15 +165111,15 @@ load 4 name call 5 contains_key bool 2 3 4 iconst 7 1 sub 6 7 5 -brif 6 L4476 L4477 -label L4476 +brif 6 L4484 L4485 +label L4484 load 8 node call 9 ir_emitter_core_ir_generic_arg_types list_string 1 8 load 10 inferred call 11 pith_list_release_handle void 1 10 ret 9 -label L4477 -label L4475 +label L4485 +label L4483 load 12 inferred load 13 name load 14 node @@ -165055,12 +165158,12 @@ iconst 11 0 store __for_idx_366 11 store __for_len_366 10 store __for_iter_366 9 -label L4478 +label L4486 load 12 __for_idx_366 load 13 __for_len_366 lt 14 12 13 -brif 14 L4479 L4481 -label L4479 +brif 14 L4487 L4489 +label L4487 load 15 __for_iter_366 load 16 __for_idx_366 call 17 pith_list_get_value unknown 2 15 16 @@ -165071,37 +165174,37 @@ call 20 ast_get_node struct:Node 1 19 call 21 pith_struct_release void 1 18 store cn 20 iconst 22 0 -store __and_22_4485 22 +store __and_22_4493 22 iconst 23 0 -store __and_23_4485 23 +store __and_23_4493 23 load 24 cn field 25 24 0 string kind strref 26 m46s68 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 -store __and_23_4485 27 -brif 27 L4485 L4486 -label L4485 +store __and_23_4493 27 +brif 27 L4493 L4494 +label L4493 load 29 cn field 30 29 8 string value load 31 param_name call 32 pith_cstring_eq bool 2 30 31 -store __and_23_4485 32 -label L4486 -load 33 __and_23_4485 -store __and_22_4485 33 -brif 33 L4487 L4488 -label L4487 +store __and_23_4493 32 +label L4494 +load 33 __and_23_4493 +store __and_22_4493 33 +brif 33 L4495 L4496 +label L4495 load 34 cn field 35 34 16 list children call 36 pith_list_len int 1 35 iconst 37 0 gt 38 36 37 -store __and_22_4485 38 -label L4488 -load 39 __and_22_4485 -brif 39 L4483 L4484 -label L4483 +store __and_22_4493 38 +label L4496 +load 39 __and_22_4493 +brif 39 L4491 L4492 +label L4491 load 40 cn field 41 40 16 list children iconst 42 0 @@ -165111,15 +165214,15 @@ call 45 pith_struct_release void 1 44 load 46 cn call 47 pith_struct_release void 1 46 ret 43 -label L4484 -label L4482 -label L4480 +label L4492 +label L4490 +label L4488 load 48 __for_idx_366 iconst 49 1 add 50 48 49 store __for_idx_366 50 -jmp L4478 -label L4481 +jmp L4486 +label L4489 iconst 51 0 iconst 52 1 sub 53 51 52 @@ -165151,21 +165254,21 @@ store ccn 7 iconst 8 0 store acn 8 iconst 9 0 -store __or_9_4492 9 +store __or_9_4500 9 load 10 callee_idx iconst 11 0 lt 12 10 11 -store __or_9_4492 12 -brif 12 L4493 L4492 -label L4492 +store __or_9_4500 12 +brif 12 L4501 L4500 +label L4500 load 13 caller_idx iconst 14 0 lt 15 13 14 -store __or_9_4492 15 -label L4493 -load 16 __or_9_4492 -brif 16 L4490 L4491 -label L4490 +store __or_9_4500 15 +label L4501 +load 16 __or_9_4500 +brif 16 L4498 L4499 +label L4498 load 17 cn call 18 pith_struct_release void 1 17 load 19 an @@ -165178,8 +165281,8 @@ load 25 acn call 26 pith_struct_release void 1 25 iconst 27 0 ret 27 -label L4491 -label L4489 +label L4499 +label L4497 load 28 cn load 29 callee_idx call 30 ast_get_node struct:Node 1 29 @@ -165195,40 +165298,40 @@ field 37 36 0 string kind strref 38 m46s328 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 -brif 39 L4495 L4496 -label L4495 +brif 39 L4503 L4504 +label L4503 load 41 callee_params load 42 cn field 43 42 8 string value iconst 44 -1 -store __list_index_result_L4500 44 +store __list_index_result_L4508 44 iconst 45 0 -store __list_index_i_L4501 45 +store __list_index_i_L4509 45 call 46 pith_list_len int 1 41 -label L4502 -load 47 __list_index_i_L4501 +label L4510 +load 47 __list_index_i_L4509 lt 48 47 46 -brif 48 L4503 L4506 -label L4503 +brif 48 L4511 L4514 +label L4511 call 49 pith_list_get_value string 2 41 47 call 50 pith_cstring_eq bool 2 49 43 -brif 50 L4504 L4505 -label L4504 -store __list_index_result_L4500 47 -jmp L4506 -label L4505 +brif 50 L4512 L4513 +label L4512 +store __list_index_result_L4508 47 +jmp L4514 +label L4513 iconst 51 1 add 52 47 51 -store __list_index_i_L4501 52 -jmp L4502 -label L4506 -load 53 __list_index_result_L4500 +store __list_index_i_L4509 52 +jmp L4510 +label L4514 +load 53 __list_index_result_L4508 iconst 54 0 gte 55 53 54 iconst 57 1 sub 56 57 55 -brif 56 L4498 L4499 -label L4498 +brif 56 L4506 L4507 +label L4506 load 58 cn call 59 pith_struct_release void 1 58 load 60 an @@ -165241,8 +165344,8 @@ load 66 acn call 67 pith_struct_release void 1 66 iconst 68 0 ret 68 -label L4499 -label L4497 +label L4507 +label L4505 load 69 an field 70 69 0 string kind strref 71 m46s328 @@ -165250,8 +165353,8 @@ call 73 pith_cstring_eq bool 2 70 71 iconst 74 1 sub 72 74 73 call 75 pith_cstring_release void 1 71 -brif 72 L4508 L4509 -label L4508 +brif 72 L4516 L4517 +label L4516 load 76 cn call 77 pith_struct_release void 1 76 load 78 an @@ -165264,8 +165367,8 @@ load 84 acn call 85 pith_struct_release void 1 84 iconst 86 0 ret 86 -label L4509 -label L4507 +label L4517 +label L4515 load 87 resolved load 88 an field 89 88 8 string value @@ -165277,32 +165380,32 @@ store resolved 92 load 94 ir_alias_registry_ir_active_generic_params load 95 resolved iconst 96 -1 -store __list_index_result_L4513 96 +store __list_index_result_L4521 96 iconst 97 0 -store __list_index_i_L4514 97 +store __list_index_i_L4522 97 call 98 pith_list_len int 1 94 -label L4515 -load 99 __list_index_i_L4514 +label L4523 +load 99 __list_index_i_L4522 lt 100 99 98 -brif 100 L4516 L4519 -label L4516 +brif 100 L4524 L4527 +label L4524 call 101 pith_list_get_value string 2 94 99 call 102 pith_cstring_eq bool 2 101 95 -brif 102 L4517 L4518 -label L4517 -store __list_index_result_L4513 99 -jmp L4519 -label L4518 +brif 102 L4525 L4526 +label L4525 +store __list_index_result_L4521 99 +jmp L4527 +label L4526 iconst 103 1 add 104 99 103 -store __list_index_i_L4514 104 -jmp L4515 -label L4519 -load 105 __list_index_result_L4513 +store __list_index_i_L4522 104 +jmp L4523 +label L4527 +load 105 __list_index_result_L4521 iconst 106 0 gte 107 105 106 -brif 107 L4511 L4512 -label L4511 +brif 107 L4519 L4520 +label L4519 load 108 cn call 109 pith_struct_release void 1 108 load 110 an @@ -165315,24 +165418,24 @@ load 116 acn call 117 pith_struct_release void 1 116 iconst 118 0 ret 118 -label L4512 -label L4510 +label L4520 +label L4518 load 119 bindings load 120 cn field 121 120 8 string value call 122 contains_key bool 2 119 121 iconst 124 1 sub 123 124 122 -brif 123 L4521 L4522 -label L4521 +brif 123 L4529 L4530 +label L4529 load 125 bindings load 126 cn field 127 126 8 string value load 128 resolved call 129 map_insert void 3 125 127 128 -jmp L4520 -label L4522 -label L4520 +jmp L4528 +label L4530 +label L4528 load 130 cn call 131 pith_struct_release void 1 130 load 132 an @@ -165345,64 +165448,64 @@ load 138 acn call 139 pith_struct_release void 1 138 iconst 140 0 ret 140 -label L4496 -label L4494 +label L4504 +label L4502 iconst 141 0 -store __and_141_4526 141 +store __and_141_4534 141 iconst 142 0 -store __and_142_4526 142 +store __and_142_4534 142 load 143 cn field 144 143 0 string kind strref 145 m46s327 call 146 pith_cstring_eq bool 2 144 145 call 147 pith_cstring_release void 1 145 -store __and_142_4526 146 -brif 146 L4526 L4527 -label L4526 +store __and_142_4534 146 +brif 146 L4534 L4535 +label L4534 load 148 an field 149 148 0 string kind strref 150 m46s327 call 151 pith_cstring_eq bool 2 149 150 call 152 pith_cstring_release void 1 150 -store __and_142_4526 151 -label L4527 -load 153 __and_142_4526 -store __and_141_4526 153 -brif 153 L4528 L4529 -label L4528 +store __and_142_4534 151 +label L4535 +load 153 __and_142_4534 +store __and_141_4534 153 +brif 153 L4536 L4537 +label L4536 load 154 cn field 155 154 8 string value load 156 an field 157 156 8 string value call 158 pith_cstring_eq bool 2 155 157 -store __and_141_4526 158 -label L4529 -load 159 __and_141_4526 -brif 159 L4524 L4525 -label L4524 +store __and_141_4534 158 +label L4537 +load 159 __and_141_4534 +brif 159 L4532 L4533 +label L4532 iconst 160 0 store i 160 -label L4530 +label L4538 iconst 161 0 -store __and_161_4533 161 +store __and_161_4541 161 load 162 i load 163 cn field 164 163 16 list children call 165 pith_list_len int 1 164 lt 166 162 165 -store __and_161_4533 166 -brif 166 L4533 L4534 -label L4533 +store __and_161_4541 166 +brif 166 L4541 L4542 +label L4541 load 167 i load 168 an field 169 168 16 list children call 170 pith_list_len int 1 169 lt 171 167 170 -store __and_161_4533 171 -label L4534 -load 172 __and_161_4533 -brif 172 L4531 L4532 -label L4531 +store __and_161_4541 171 +label L4542 +load 172 __and_161_4541 +brif 172 L4539 L4540 +label L4539 load 173 cn field 174 173 16 list children load 175 i @@ -165418,8 +165521,8 @@ load 184 i iconst 185 1 add 186 184 185 store i 186 -jmp L4530 -label L4532 +jmp L4538 +label L4540 load 187 cn call 188 pith_struct_release void 1 187 load 189 an @@ -165432,40 +165535,40 @@ load 195 acn call 196 pith_struct_release void 1 195 iconst 197 0 ret 197 -label L4525 -label L4523 +label L4533 +label L4531 iconst 198 0 -store __and_198_4538 198 +store __and_198_4546 198 load 199 cn field 200 199 0 string kind strref 201 m46s318 call 202 pith_cstring_eq bool 2 200 201 call 203 pith_cstring_release void 1 201 -store __and_198_4538 202 -brif 202 L4538 L4539 -label L4538 +store __and_198_4546 202 +brif 202 L4546 L4547 +label L4546 load 204 an field 205 204 0 string kind strref 206 m46s318 call 207 pith_cstring_eq bool 2 205 206 call 208 pith_cstring_release void 1 206 -store __and_198_4538 207 -label L4539 -load 209 __and_198_4538 -brif 209 L4536 L4537 -label L4536 +store __and_198_4546 207 +label L4547 +load 209 __and_198_4546 +brif 209 L4544 L4545 +label L4544 iconst 210 0 store ci 210 iconst 211 0 store ai 211 -label L4540 +label L4548 load 212 ci load 213 cn field 214 213 16 list children call 215 pith_list_len int 1 214 lt 216 212 215 -brif 216 L4541 L4542 -label L4541 +brif 216 L4549 L4550 +label L4549 load 217 ccn load 218 cn field 219 218 16 list children @@ -165474,17 +165577,17 @@ call 221 pith_list_get_value_strict int 2 219 220 call 222 ast_get_node struct:Node 1 221 call 223 pith_struct_release void 1 217 store ccn 222 -label L4543 +label L4551 iconst 224 0 -store __and_224_4546 224 +store __and_224_4554 224 load 225 ai load 226 an field 227 226 16 list children call 228 pith_list_len int 1 227 lt 229 225 228 -store __and_224_4546 229 -brif 229 L4546 L4547 -label L4546 +store __and_224_4554 229 +brif 229 L4554 L4555 +label L4554 load 230 an field 231 230 16 list children load 232 ai @@ -165496,44 +165599,44 @@ field 237 236 0 string kind call 239 pith_cstring_eq bool 2 235 237 iconst 240 1 sub 238 240 239 -store __and_224_4546 238 -label L4547 -load 241 __and_224_4546 -brif 241 L4544 L4545 -label L4544 +store __and_224_4554 238 +label L4555 +load 241 __and_224_4554 +brif 241 L4552 L4553 +label L4552 load 242 ai iconst 243 1 add 244 242 243 store ai 244 -jmp L4543 -label L4545 +jmp L4551 +label L4553 load 245 ai load 246 an field 247 246 16 list children call 248 pith_list_len int 1 247 lt 249 245 248 -brif 249 L4549 L4550 -label L4549 +brif 249 L4557 L4558 +label L4557 iconst 250 0 -store __and_250_4554 250 +store __and_250_4562 250 load 251 ccn field 252 251 0 string kind strref 253 m46s68 call 254 pith_cstring_eq bool 2 252 253 call 255 pith_cstring_release void 1 253 -store __and_250_4554 254 -brif 254 L4554 L4555 -label L4554 +store __and_250_4562 254 +brif 254 L4562 L4563 +label L4562 load 256 ccn field 257 256 16 list children call 258 pith_list_len int 1 257 iconst 259 0 gt 260 258 259 -store __and_250_4554 260 -label L4555 -load 261 __and_250_4554 -brif 261 L4552 L4553 -label L4552 +store __and_250_4562 260 +label L4563 +load 261 __and_250_4562 +brif 261 L4560 L4561 +label L4560 load 262 acn load 263 an field 264 263 16 list children @@ -165547,8 +165650,8 @@ field 270 269 16 list children call 271 pith_list_len int 1 270 iconst 272 0 gt 273 271 272 -brif 273 L4557 L4558 -label L4557 +brif 273 L4565 L4566 +label L4565 load 274 ccn field 275 274 16 list children iconst 276 0 @@ -165560,31 +165663,31 @@ call 281 pith_list_get_value_strict int 2 279 280 load 282 callee_params load 283 bindings call 284 ir_emitter_core_ir_unify_generic_param_nodes void 4 277 281 282 283 -jmp L4556 -label L4558 -label L4556 -jmp L4551 -label L4553 +jmp L4564 +label L4566 +label L4564 +jmp L4559 +label L4561 iconst 285 0 -store __and_285_4561 285 +store __and_285_4569 285 load 286 ccn field 287 286 0 string kind strref 288 m46s313 call 289 pith_cstring_eq bool 2 287 288 call 290 pith_cstring_release void 1 288 -store __and_285_4561 289 -brif 289 L4561 L4562 -label L4561 +store __and_285_4569 289 +brif 289 L4569 L4570 +label L4569 load 291 ccn field 292 291 16 list children call 293 pith_list_len int 1 292 iconst 294 0 gt 295 293 294 -store __and_285_4561 295 -label L4562 -load 296 __and_285_4561 -brif 296 L4559 L4560 -label L4559 +store __and_285_4569 295 +label L4570 +load 296 __and_285_4569 +brif 296 L4567 L4568 +label L4567 load 297 acn load 298 an field 299 298 16 list children @@ -165598,8 +165701,8 @@ field 305 304 16 list children call 306 pith_list_len int 1 305 iconst 307 0 gt 308 306 307 -brif 308 L4564 L4565 -label L4564 +brif 308 L4572 L4573 +label L4572 load 309 ccn field 310 309 16 list children iconst 311 0 @@ -165611,28 +165714,28 @@ call 316 pith_list_get_value_strict int 2 314 315 load 317 callee_params load 318 bindings call 319 ir_emitter_core_ir_unify_generic_param_nodes void 4 312 316 317 318 -jmp L4563 -label L4565 -label L4563 -jmp L4551 -label L4560 -label L4551 +jmp L4571 +label L4573 +label L4571 +jmp L4559 +label L4568 +label L4559 load 320 ai iconst 321 1 add 322 320 321 store ai 322 -jmp L4548 -label L4550 -label L4548 +jmp L4556 +label L4558 +label L4556 load 323 ci iconst 324 1 add 325 323 324 store ci 325 -jmp L4540 -label L4542 -jmp L4535 -label L4537 -label L4535 +jmp L4548 +label L4550 +jmp L4543 +label L4545 +label L4543 load 326 cn call 327 pith_struct_release void 1 326 load 328 an @@ -165667,34 +165770,34 @@ store filled 9 load 10 inferred strref 11 m46s822 iconst 12 -1 -store __list_index_result_L4569 12 +store __list_index_result_L4577 12 iconst 13 0 -store __list_index_i_L4570 13 +store __list_index_i_L4578 13 call 14 pith_list_len int 1 10 -label L4571 -load 15 __list_index_i_L4570 +label L4579 +load 15 __list_index_i_L4578 lt 16 15 14 -brif 16 L4572 L4575 -label L4572 +brif 16 L4580 L4583 +label L4580 call 17 pith_list_get_value string 2 10 15 call 18 pith_cstring_eq bool 2 17 11 -brif 18 L4573 L4574 -label L4573 -store __list_index_result_L4569 15 -jmp L4575 -label L4574 +brif 18 L4581 L4582 +label L4581 +store __list_index_result_L4577 15 +jmp L4583 +label L4582 iconst 19 1 add 20 15 19 -store __list_index_i_L4570 20 -jmp L4571 -label L4575 -load 21 __list_index_result_L4569 +store __list_index_i_L4578 20 +jmp L4579 +label L4583 +load 21 __list_index_result_L4577 iconst 22 0 gte 23 21 22 iconst 25 1 sub 24 25 23 -brif 24 L4567 L4568 -label L4567 +brif 24 L4575 L4576 +label L4575 load 26 inferred call 27 pith_list_retain_handle void 1 26 load 28 callee_params @@ -165712,25 +165815,25 @@ call 39 pith_cstring_release void 1 38 load 40 filled call 41 pith_list_release_handle void 1 40 ret 26 -label L4568 -label L4566 +label L4576 +label L4574 iconst 42 0 -store __or_42_4579 42 +store __or_42_4587 42 load 43 ir_alias_registry_ir_active_generic_params call 44 pith_list_len int 1 43 iconst 45 0 eq 46 44 45 -store __or_42_4579 46 -brif 46 L4580 L4579 -label L4579 +store __or_42_4587 46 +brif 46 L4588 L4587 +label L4587 load 47 ir_alias_registry_ir_active_generic_decl_idx iconst 48 0 lt 49 47 48 -store __or_42_4579 49 -label L4580 -load 50 __or_42_4579 -brif 50 L4577 L4578 -label L4577 +store __or_42_4587 49 +label L4588 +load 50 __or_42_4587 +brif 50 L4585 L4586 +label L4585 load 51 inferred call 52 pith_list_retain_handle void 1 51 load 53 callee_params @@ -165748,8 +165851,8 @@ call 64 pith_cstring_release void 1 63 load 65 filled call 66 pith_list_release_handle void 1 65 ret 51 -label L4578 -label L4576 +label L4586 +label L4584 load 67 ir_generics_ir_generic_decl_indices load 68 name call 69 map_get_strict int 2 67 68 @@ -165774,12 +165877,12 @@ iconst 83 0 store __for_idx_367 83 store __for_len_367 82 store __for_iter_367 81 -label L4581 +label L4589 load 84 __for_idx_367 load 85 __for_len_367 lt 86 84 85 -brif 86 L4582 L4584 -label L4582 +brif 86 L4590 L4592 +label L4590 load 87 __for_iter_367 load 88 __for_idx_367 call 89 pith_list_get_value unknown 2 87 88 @@ -165789,11 +165892,11 @@ store __loopvar_367_i 90 load 91 __loopvar_367_i iconst 92 0 eq 93 91 92 -brif 93 L4586 L4587 -label L4586 -jmp L4583 -label L4587 -label L4585 +brif 93 L4594 L4595 +label L4594 +jmp L4591 +label L4595 +label L4593 load 94 __loopvar_367_child store expr_idx 94 load 95 cn @@ -165806,26 +165909,26 @@ field 100 99 0 string kind strref 101 m46s42 call 102 pith_cstring_eq bool 2 100 101 call 103 pith_cstring_release void 1 101 -brif 102 L4589 L4590 -label L4589 +brif 102 L4597 L4598 +label L4597 load 104 cn field 105 104 16 list children call 106 pith_list_len int 1 105 iconst 107 0 eq 108 106 107 -brif 108 L4592 L4593 -label L4592 -jmp L4583 -label L4593 -label L4591 +brif 108 L4600 L4601 +label L4600 +jmp L4591 +label L4601 +label L4599 load 109 cn field 110 109 16 list children iconst 111 0 call 112 pith_list_get_value_strict int 2 110 111 store expr_idx 112 -jmp L4588 -label L4590 -label L4588 +jmp L4596 +label L4598 +label L4596 load 113 en load 114 expr_idx call 115 ast_get_node struct:Node 1 114 @@ -165836,8 +165939,8 @@ field 118 117 0 string kind strref 119 m46s37 call 120 pith_cstring_eq bool 2 118 119 call 121 pith_cstring_release void 1 119 -brif 120 L4595 L4596 -label L4595 +brif 120 L4603 L4604 +label L4603 load 122 ir_alias_registry_ir_active_generic_decl_idx load 123 en field 124 123 8 string value @@ -165846,8 +165949,8 @@ store caller_type_idx 125 load 126 caller_type_idx iconst 127 0 gte 128 126 127 -brif 128 L4598 L4599 -label L4598 +brif 128 L4606 L4607 +label L4606 load 129 declared load 130 caller_type_idx call 131 ir_alias_registry_ir_resolve_type_node string 1 130 @@ -165860,22 +165963,22 @@ call 136 ir_emitter_core_ir_lookup_name_type string 1 135 call 137 pith_cstring_release void 1 133 store tracked 136 iconst 138 0 -store __or_138_4603 138 +store __or_138_4611 138 load 139 tracked call 140 string_len int 1 139 iconst 141 0 eq 142 140 141 -store __or_138_4603 142 -brif 142 L4604 L4603 -label L4603 +store __or_138_4611 142 +brif 142 L4612 L4611 +label L4611 load 143 tracked load 144 declared call 145 pith_cstring_eq bool 2 143 144 -store __or_138_4603 145 -label L4604 -load 146 __or_138_4603 -brif 146 L4601 L4602 -label L4601 +store __or_138_4611 145 +label L4612 +load 146 __or_138_4611 +brif 146 L4609 L4610 +label L4609 load 147 callee_decl load 148 callee_decl load 149 arg_pos @@ -165888,26 +165991,26 @@ load 154 caller_type_idx load 155 callee_params load 156 bindings call 157 ir_emitter_core_ir_unify_generic_param_nodes void 4 153 154 155 156 -jmp L4600 +jmp L4608 +label L4610 +label L4608 +jmp L4605 +label L4607 +label L4605 +jmp L4602 +label L4604 label L4602 -label L4600 -jmp L4597 -label L4599 -label L4597 -jmp L4594 -label L4596 -label L4594 load 158 arg_pos iconst 159 1 add 160 158 159 store arg_pos 160 -label L4583 +label L4591 load 161 __for_idx_367 iconst 162 1 add 163 161 162 store __for_idx_367 163 -jmp L4581 -label L4584 +jmp L4589 +label L4592 load 164 filled call 165 pith_list_new_cstr list 0 call 166 pith_list_release_handle void 1 164 @@ -165918,12 +166021,12 @@ iconst 169 0 store __for_idx_368 169 store __for_len_368 168 store __for_iter_368 167 -label L4605 +label L4613 load 170 __for_idx_368 load 171 __for_len_368 lt 172 170 171 -brif 172 L4606 L4608 -label L4606 +brif 172 L4614 L4616 +label L4614 load 173 __for_iter_368 load 174 __for_idx_368 call 175 pith_list_get_value_unchecked string 2 173 174 @@ -165931,36 +166034,36 @@ store __loopvar_368_concrete 175 load 176 __for_idx_368 store __loopvar_368_i 176 iconst 177 0 -store __and_177_4612 177 +store __and_177_4620 177 iconst 178 0 -store __and_178_4612 178 +store __and_178_4620 178 load 179 __loopvar_368_concrete strref 180 m46s822 call 181 pith_cstring_eq bool 2 179 180 call 182 pith_cstring_release void 1 180 -store __and_178_4612 181 -brif 181 L4612 L4613 -label L4612 +store __and_178_4620 181 +brif 181 L4620 L4621 +label L4620 load 183 __loopvar_368_i load 184 callee_params call 185 pith_list_len int 1 184 lt 186 183 185 -store __and_178_4612 186 -label L4613 -load 187 __and_178_4612 -store __and_177_4612 187 -brif 187 L4614 L4615 -label L4614 +store __and_178_4620 186 +label L4621 +load 187 __and_178_4620 +store __and_177_4620 187 +brif 187 L4622 L4623 +label L4622 load 188 bindings load 189 callee_params load 190 __loopvar_368_i call 191 pith_list_get_value_strict string 2 189 190 call 192 contains_key bool 2 188 191 -store __and_177_4612 192 -label L4615 -load 193 __and_177_4612 -brif 193 L4610 L4611 -label L4610 +store __and_177_4620 192 +label L4623 +load 193 __and_177_4620 +brif 193 L4618 L4619 +label L4618 load 194 filled load 195 bindings load 196 callee_params @@ -165968,19 +166071,19 @@ load 197 __loopvar_368_i call 198 pith_list_get_value_strict string 2 196 197 call 199 map_get_strict string 2 195 198 call 200 pith_list_push_value void 2 194 199 -jmp L4609 -label L4611 +jmp L4617 +label L4619 load 201 filled load 202 __loopvar_368_concrete call 203 pith_list_push_value void 2 201 202 -label L4609 -label L4607 +label L4617 +label L4615 load 204 __for_idx_368 iconst 205 1 add 206 204 205 store __for_idx_368 206 -jmp L4605 -label L4608 +jmp L4613 +label L4616 load 207 filled load 208 callee_params call 209 pith_list_release_handle void 1 208 @@ -166028,8 +166131,8 @@ field 8 7 0 string kind strref 9 m46s37 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 -brif 10 L4617 L4618 -label L4617 +brif 10 L4625 L4626 +label L4625 load 12 resolved load 13 type_node field 14 13 8 string value @@ -166042,14 +166145,14 @@ load 19 resolved call 20 string_len int 1 19 iconst 21 0 gt 22 20 21 -brif 22 L4620 L4621 -label L4620 +brif 22 L4628 L4629 +label L4628 load 23 resolved load 24 type_node call 25 pith_struct_release void 1 24 ret 23 -label L4621 -label L4619 +label L4629 +label L4627 load 26 type_node field 27 26 8 string value call 28 ir_alias_registry_ir_resolve_type_hint string 1 27 @@ -166058,8 +166161,8 @@ call 30 pith_struct_release void 1 29 load 31 resolved call 32 pith_cstring_release void 1 31 ret 28 -label L4618 -label L4616 +label L4626 +label L4624 load 33 type_idx load 34 ir_alias_registry_ir_active_generic_params load 35 ir_alias_registry_ir_active_generic_concrete_types @@ -166086,14 +166189,14 @@ call 4 pith_list_release_handle void 1 2 store concrete_types 3 iconst 5 1 store i 5 -label L4622 +label L4630 load 6 i load 7 index_node field 8 7 16 list children call 9 pith_list_len int 1 8 lt 10 6 9 -brif 10 L4623 L4624 -label L4623 +brif 10 L4631 L4632 +label L4631 load 11 concrete_types load 12 index_node field 13 12 16 list children @@ -166105,8 +166208,8 @@ load 18 i iconst 19 1 add 20 18 19 store i 20 -jmp L4622 -label L4624 +jmp L4630 +label L4632 load 21 concrete_types ret 21 load 22 concrete_types @@ -166137,12 +166240,12 @@ iconst 13 0 store __for_idx_369 13 store __for_len_369 12 store __for_iter_369 11 -label L4625 +label L4633 load 14 __for_idx_369 load 15 __for_len_369 lt 16 14 15 -brif 16 L4626 L4628 -label L4626 +brif 16 L4634 L4636 +label L4634 load 17 __for_iter_369 load 18 __for_idx_369 call 19 pith_list_get_value unknown 2 17 18 @@ -166157,8 +166260,8 @@ field 25 24 0 string kind strref 26 m46s68 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 -brif 27 L4630 L4631 -label L4630 +brif 27 L4638 L4639 +label L4638 load 29 param_type strref 30 m46s82 call 31 pith_cstring_release void 1 29 @@ -166167,8 +166270,8 @@ load 32 param_idx load 33 param_types call 34 pith_list_len int 1 33 lt 35 32 34 -brif 35 L4633 L4634 -label L4633 +brif 35 L4641 L4642 +label L4641 load 36 param_type load 37 param_types load 38 param_idx @@ -166176,9 +166279,9 @@ call 39 pith_list_get_value_strict string 2 37 38 call 40 pith_cstring_retain void 1 39 call 41 pith_cstring_release void 1 36 store param_type 39 -jmp L4632 -label L4634 -label L4632 +jmp L4640 +label L4642 +label L4640 load 42 cn field 43 42 8 string value load 44 param_type @@ -166189,16 +166292,16 @@ load 48 param_idx iconst 49 1 add 50 48 49 store param_idx 50 -jmp L4629 -label L4631 -label L4629 -label L4627 +jmp L4637 +label L4639 +label L4637 +label L4635 load 51 __for_idx_369 iconst 52 1 add 53 51 52 store __for_idx_369 53 -jmp L4625 -label L4628 +jmp L4633 +label L4636 load 54 node call 55 pith_struct_release void 1 54 load 56 cn @@ -166229,12 +166332,12 @@ iconst 11 0 store __for_idx_370 11 store __for_len_370 10 store __for_iter_370 9 -label L4635 +label L4643 load 12 __for_idx_370 load 13 __for_len_370 lt 14 12 13 -brif 14 L4636 L4638 -label L4636 +brif 14 L4644 L4646 +label L4644 load 15 __for_iter_370 load 16 __for_idx_370 call 17 pith_list_get_value unknown 2 15 16 @@ -166243,12 +166346,12 @@ load 18 __for_idx_370 store __loopvar_370_i 18 load 19 __loopvar_370_i iconst 20 0 -eq 21 19 20 -brif 21 L4640 L4641 -label L4640 -jmp L4637 -label L4641 -label L4639 +eq 21 19 20 +brif 21 L4648 L4649 +label L4648 +jmp L4645 +label L4649 +label L4647 load 22 child_kind load 23 __loopvar_370_child call 24 ast_node_kind string 1 23 @@ -166260,8 +166363,8 @@ load 27 child_kind strref 28 m46s42 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 -brif 29 L4643 L4644 -label L4643 +brif 29 L4651 L4652 +label L4651 load 31 cn load 32 __loopvar_370_child call 33 ast_get_node struct:Node 1 32 @@ -166272,19 +166375,19 @@ field 36 35 16 list children call 37 pith_list_len int 1 36 iconst 38 0 gt 39 37 38 -brif 39 L4646 L4647 -label L4646 +brif 39 L4654 L4655 +label L4654 load 40 cn field 41 40 16 list children iconst 42 0 call 43 pith_list_get_value_strict int 2 41 42 store expr_idx 43 -jmp L4645 -label L4647 -label L4645 -jmp L4642 -label L4644 -label L4642 +jmp L4653 +label L4655 +label L4653 +jmp L4650 +label L4652 +label L4650 load 44 checked load 45 expr_idx call 46 ir_type_helpers_ir_checked_type string 1 45 @@ -166294,25 +166397,25 @@ load 48 checked call 49 string_len int 1 48 iconst 50 0 gt 51 49 50 -brif 51 L4649 L4650 -label L4649 +brif 51 L4657 L4658 +label L4657 load 52 arg_types load 53 checked call 54 pith_list_push_value void 2 52 53 -jmp L4648 -label L4650 +jmp L4656 +label L4658 load 55 arg_types load 56 expr_idx call 57 ir_emitter_core_ir_infer_type string 1 56 call 58 pith_list_push_value_owned void 2 55 57 -label L4648 -label L4637 +label L4656 +label L4645 load 59 __for_idx_370 iconst 60 1 add 61 59 60 store __for_idx_370 61 -jmp L4635 -label L4638 +jmp L4643 +label L4646 load 62 arg_types load 63 child_kind call 64 pith_cstring_release void 1 63 @@ -166351,12 +166454,12 @@ iconst 10 0 store __for_idx_371 10 store __for_len_371 9 store __for_iter_371 8 -label L4651 +label L4659 load 11 __for_idx_371 load 12 __for_len_371 lt 13 11 12 -brif 13 L4652 L4654 -label L4652 +brif 13 L4660 L4662 +label L4660 load 14 __for_iter_371 load 15 __for_idx_371 call 16 pith_list_get_value unknown 2 14 15 @@ -166366,11 +166469,11 @@ store __loopvar_371_i 17 load 18 __loopvar_371_i iconst 19 0 eq 20 18 19 -brif 20 L4656 L4657 -label L4656 -jmp L4653 -label L4657 -label L4655 +brif 20 L4664 L4665 +label L4664 +jmp L4661 +label L4665 +label L4663 load 21 child_kind load 22 __loopvar_371_child call 23 ast_node_kind string 1 22 @@ -166382,8 +166485,8 @@ load 26 child_kind strref 27 m46s42 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 -brif 28 L4659 L4660 -label L4659 +brif 28 L4667 L4668 +label L4667 load 30 cn load 31 __loopvar_371_child call 32 ast_get_node struct:Node 1 31 @@ -166394,30 +166497,30 @@ field 35 34 16 list children call 36 pith_list_len int 1 35 iconst 37 0 gt 38 36 37 -brif 38 L4662 L4663 -label L4662 +brif 38 L4670 L4671 +label L4670 load 39 cn field 40 39 16 list children iconst 41 0 call 42 pith_list_get_value_strict int 2 40 41 store expr_idx 42 -jmp L4661 -label L4663 -label L4661 -jmp L4658 -label L4660 -label L4658 +jmp L4669 +label L4671 +label L4669 +jmp L4666 +label L4668 +label L4666 load 43 arg_tids load 44 expr_idx call 45 checker_c_get_expr_type int 1 44 call 46 pith_list_push_value void 2 43 45 -label L4653 +label L4661 load 47 __for_idx_371 iconst 48 1 add 49 47 48 store __for_idx_371 49 -jmp L4651 -label L4654 +jmp L4659 +label L4662 load 50 arg_tids load 51 child_kind call 52 pith_cstring_release void 1 51 @@ -166447,8 +166550,8 @@ call 7 pith_cstring_contains bool 2 5 6 call 8 pith_cstring_release void 1 6 iconst 9 0 eq 10 7 9 -brif 10 L4665 L4666 -label L4665 +brif 10 L4673 L4674 +label L4673 load 11 type_name call 12 pith_cstring_retain void 1 11 load 13 parts @@ -166456,8 +166559,8 @@ call 14 pith_list_release_handle void 1 13 load 15 akey call 16 pith_cstring_release void 1 15 ret 11 -label L4666 -label L4664 +label L4674 +label L4672 load 17 parts load 18 type_name strref 19 m46s26 @@ -166469,8 +166572,8 @@ load 23 parts call 24 pith_list_len int 1 23 iconst 25 2 neq 26 24 25 -brif 26 L4668 L4669 -label L4668 +brif 26 L4676 L4677 +label L4676 load 27 type_name call 28 pith_cstring_retain void 1 27 load 29 parts @@ -166478,8 +166581,8 @@ call 30 pith_list_release_handle void 1 29 load 31 akey call 32 pith_cstring_release void 1 31 ret 27 -label L4669 -label L4667 +label L4677 +label L4675 iconst 33 0 store i 33 load 34 params @@ -166488,35 +166591,35 @@ iconst 36 0 store __for_idx_372 36 store __for_len_372 35 store __for_iter_372 34 -label L4670 +label L4678 load 37 __for_idx_372 load 38 __for_len_372 lt 39 37 38 -brif 39 L4671 L4673 -label L4671 +brif 39 L4679 L4681 +label L4679 load 40 __for_iter_372 load 41 __for_idx_372 call 42 pith_list_get_value_unchecked string 2 40 41 store __loopvar_372_p 42 iconst 43 0 -store __and_43_4677 43 +store __and_43_4685 43 load 44 __loopvar_372_p load 45 parts iconst 46 0 call 47 pith_list_get_value_strict string 2 45 46 call 48 pith_cstring_eq bool 2 44 47 -store __and_43_4677 48 -brif 48 L4677 L4678 -label L4677 +store __and_43_4685 48 +brif 48 L4685 L4686 +label L4685 load 49 i load 50 concrete call 51 pith_list_len int 1 50 lt 52 49 51 -store __and_43_4677 52 -label L4678 -load 53 __and_43_4677 -brif 53 L4675 L4676 -label L4675 +store __and_43_4685 52 +label L4686 +load 53 __and_43_4685 +brif 53 L4683 L4684 +label L4683 load 54 akey load 55 concrete load 56 i @@ -166536,8 +166639,8 @@ store akey 66 load 69 ir_method_tables_ir_assoc_bindings load 70 akey call 71 contains_key bool 2 69 70 -brif 71 L4680 L4681 -label L4680 +brif 71 L4688 L4689 +label L4688 load 72 ir_method_tables_ir_assoc_bindings load 73 akey call 74 map_get_strict string 2 72 73 @@ -166547,22 +166650,22 @@ call 77 pith_list_release_handle void 1 76 load 78 akey call 79 pith_cstring_release void 1 78 ret 74 -label L4681 -label L4679 -jmp L4674 -label L4676 -label L4674 +label L4689 +label L4687 +jmp L4682 +label L4684 +label L4682 load 80 i iconst 81 1 add 82 80 81 store i 82 -label L4672 +label L4680 load 83 __for_idx_372 iconst 84 1 add 85 83 84 store __for_idx_372 85 -jmp L4670 -label L4673 +jmp L4678 +label L4681 load 86 type_name call 87 pith_cstring_retain void 1 86 load 88 parts @@ -166608,8 +166711,8 @@ load 14 key call 15 contains_key bool 2 13 14 iconst 17 1 sub 16 17 15 -brif 16 L4683 L4684 -label L4683 +brif 16 L4691 L4692 +label L4691 load 18 base_name call 19 pith_cstring_release void 1 18 load 20 decl_node @@ -166636,8 +166739,8 @@ load 40 saved_param_optional_tids call 41 pith_map_release_handle void 1 40 iconst 42 0 ret 42 -label L4684 -label L4682 +label L4692 +label L4690 load 43 base_name load 44 key iconst 45 9 @@ -166654,8 +166757,8 @@ load 54 base_name call 55 contains_key bool 2 53 54 iconst 57 1 sub 56 57 55 -brif 56 L4686 L4687 -label L4686 +brif 56 L4694 L4695 +label L4694 load 58 base_name call 59 pith_cstring_release void 1 58 load 60 decl_node @@ -166682,8 +166785,8 @@ load 80 saved_param_optional_tids call 81 pith_map_release_handle void 1 80 iconst 82 0 ret 82 -label L4687 -label L4685 +label L4695 +label L4693 load 83 ir_generics_ir_generic_decl_indices load 84 base_name call 85 map_get_strict int 2 83 84 @@ -166746,12 +166849,12 @@ iconst 131 0 store __for_idx_373 131 store __for_len_373 130 store __for_iter_373 129 -label L4688 +label L4696 load 132 __for_idx_373 load 133 __for_len_373 lt 134 132 133 -brif 134 L4689 L4691 -label L4689 +brif 134 L4697 L4699 +label L4697 load 135 __for_iter_373 load 136 __for_idx_373 call 137 pith_list_get_value_unchecked string 2 135 136 @@ -166762,13 +166865,13 @@ load 140 generic_params load 141 concrete_types call 142 ir_emitter_core_ir_resolve_assoc_in_generic string 3 139 140 141 call 143 pith_list_push_value_owned void 2 138 142 -label L4690 +label L4698 load 144 __for_idx_373 iconst 145 1 add 146 144 145 store __for_idx_373 146 -jmp L4688 -label L4691 +jmp L4696 +label L4699 load 147 param_types load 148 resolved_param_types call 149 pith_list_retain_handle void 1 148 @@ -166811,18 +166914,18 @@ store ir_alias_registry_ir_active_param_optional_tids 175 load 176 ir_generics_ir_generic_decl_module_paths load 177 base_name call 178 contains_key bool 2 176 177 -brif 178 L4693 L4694 -label L4693 +brif 178 L4701 L4702 +label L4701 load 179 ir_generics_ir_generic_decl_module_paths load 180 base_name call 181 map_get_strict string 2 179 180 call 182 pith_cstring_retain void 1 181 store ir_alias_registry_ir_active_generic_module_path 181 -jmp L4692 -label L4694 +jmp L4700 +label L4702 strref 183 m46s82 store ir_alias_registry_ir_active_generic_module_path 183 -label L4692 +label L4700 load 184 ret_type call 185 ir_emitter_core_ir_prepare_func_emission void 1 184 load 186 ir_emitter_core_ir_current_func_optional_inner_kind @@ -166851,24 +166954,24 @@ load 206 spec_name load 207 ret_type call 208 map_insert void 3 205 206 207 iconst 209 0 -store __and_209_4698 209 +store __and_209_4706 209 load 210 concrete_types call 211 pith_list_len int 1 210 iconst 212 1 eq 213 211 212 -store __and_209_4698 213 -brif 213 L4698 L4699 -label L4698 +store __and_209_4706 213 +brif 213 L4706 L4707 +label L4706 load 214 base_name iconst 215 0 load 216 ir_alias_registry_ir_active_generic_module_path load 217 decl_idx call 218 ir_decode_calls_ir_is_config_decode_specialization bool 4 214 215 216 217 -store __and_209_4698 218 -label L4699 -load 219 __and_209_4698 -brif 219 L4696 L4697 -label L4696 +store __and_209_4706 218 +label L4707 +load 219 __and_209_4706 +brif 219 L4704 L4705 +label L4704 load 220 concrete_types iconst 221 0 call 222 pith_list_get_value_strict string 2 220 221 @@ -166880,27 +166983,27 @@ call 227 ir_decode_emit_ir_emit_config_decode_specialization_body void 5 222 223 call 228 pith_closure_release void 1 224 call 229 pith_closure_release void 1 225 call 230 pith_closure_release void 1 226 -jmp L4695 -label L4697 +jmp L4703 +label L4705 iconst 231 0 -store __and_231_4702 231 +store __and_231_4710 231 load 232 concrete_types call 233 pith_list_len int 1 232 iconst 234 1 eq 235 233 234 -store __and_231_4702 235 -brif 235 L4702 L4703 -label L4702 +store __and_231_4710 235 +brif 235 L4710 L4711 +label L4710 load 236 base_name iconst 237 1 load 238 ir_alias_registry_ir_active_generic_module_path load 239 decl_idx call 240 ir_decode_calls_ir_is_config_decode_specialization bool 4 236 237 238 239 -store __and_231_4702 240 -label L4703 -load 241 __and_231_4702 -brif 241 L4700 L4701 -label L4700 +store __and_231_4710 240 +label L4711 +load 241 __and_231_4710 +brif 241 L4708 L4709 +label L4708 load 242 concrete_types iconst 243 0 call 244 pith_list_get_value_strict string 2 242 243 @@ -166912,26 +167015,26 @@ call 249 ir_decode_emit_ir_emit_config_decode_specialization_body void 5 244 245 call 250 pith_closure_release void 1 246 call 251 pith_closure_release void 1 247 call 252 pith_closure_release void 1 248 -jmp L4695 -label L4701 +jmp L4703 +label L4709 iconst 253 0 -store __and_253_4706 253 +store __and_253_4714 253 load 254 concrete_types call 255 pith_list_len int 1 254 iconst 256 1 eq 257 255 256 -store __and_253_4706 257 -brif 257 L4706 L4707 -label L4706 +store __and_253_4714 257 +brif 257 L4714 L4715 +label L4714 load 258 base_name load 259 ir_alias_registry_ir_active_generic_module_path load 260 decl_idx call 261 ir_decode_calls_ir_is_toml_decode_specialization bool 3 258 259 260 -store __and_253_4706 261 -label L4707 -load 262 __and_253_4706 -brif 262 L4704 L4705 -label L4704 +store __and_253_4714 261 +label L4715 +load 262 __and_253_4714 +brif 262 L4712 L4713 +label L4712 load 263 concrete_types iconst 264 0 call 265 pith_list_get_value_strict string 2 263 264 @@ -166943,26 +167046,26 @@ call 270 ir_decode_emit_ir_emit_toml_decode_specialization_body void 5 265 266 2 call 271 pith_closure_release void 1 267 call 272 pith_closure_release void 1 268 call 273 pith_closure_release void 1 269 -jmp L4695 -label L4705 +jmp L4703 +label L4713 iconst 274 0 -store __and_274_4710 274 +store __and_274_4718 274 load 275 concrete_types call 276 pith_list_len int 1 275 iconst 277 1 eq 278 276 277 -store __and_274_4710 278 -brif 278 L4710 L4711 -label L4710 +store __and_274_4718 278 +brif 278 L4718 L4719 +label L4718 load 279 base_name load 280 ir_alias_registry_ir_active_generic_module_path load 281 decl_idx call 282 ir_decode_calls_ir_is_toml_decode_text_specialization bool 3 279 280 281 -store __and_274_4710 282 -label L4711 -load 283 __and_274_4710 -brif 283 L4708 L4709 -label L4708 +store __and_274_4718 282 +label L4719 +load 283 __and_274_4718 +brif 283 L4716 L4717 +label L4716 load 284 concrete_types iconst 285 0 call 286 pith_list_get_value_strict string 2 284 285 @@ -166970,26 +167073,26 @@ load 287 ir_alias_registry_ir_active_generic_module_path load 288 concrete_types load 289 ret_type call 290 ir_decode_emit_ir_emit_toml_decode_text_specialization_body void 4 286 287 288 289 -jmp L4695 -label L4709 +jmp L4703 +label L4717 iconst 291 0 -store __and_291_4714 291 +store __and_291_4722 291 load 292 concrete_types call 293 pith_list_len int 1 292 iconst 294 1 eq 295 293 294 -store __and_291_4714 295 -brif 295 L4714 L4715 -label L4714 +store __and_291_4722 295 +brif 295 L4722 L4723 +label L4722 load 296 base_name load 297 ir_alias_registry_ir_active_generic_module_path load 298 decl_idx call 299 ir_decode_calls_ir_is_toml_decode_path_specialization bool 3 296 297 298 -store __and_291_4714 299 -label L4715 -load 300 __and_291_4714 -brif 300 L4712 L4713 -label L4712 +store __and_291_4722 299 +label L4723 +load 300 __and_291_4722 +brif 300 L4720 L4721 +label L4720 load 301 concrete_types iconst 302 0 call 303 pith_list_get_value_strict string 2 301 302 @@ -167001,26 +167104,26 @@ call 308 ir_decode_emit_ir_emit_toml_decode_path_specialization_body void 5 303 call 309 pith_closure_release void 1 305 call 310 pith_closure_release void 1 306 call 311 pith_closure_release void 1 307 -jmp L4695 -label L4713 +jmp L4703 +label L4721 iconst 312 0 -store __and_312_4718 312 +store __and_312_4726 312 load 313 concrete_types call 314 pith_list_len int 1 313 iconst 315 1 eq 316 314 315 -store __and_312_4718 316 -brif 316 L4718 L4719 -label L4718 +store __and_312_4726 316 +brif 316 L4726 L4727 +label L4726 load 317 base_name load 318 ir_alias_registry_ir_active_generic_module_path load 319 decl_idx call 320 ir_decode_calls_ir_is_toml_decode_text_path_specialization bool 3 317 318 319 -store __and_312_4718 320 -label L4719 -load 321 __and_312_4718 -brif 321 L4716 L4717 -label L4716 +store __and_312_4726 320 +label L4727 +load 321 __and_312_4726 +brif 321 L4724 L4725 +label L4724 load 322 concrete_types iconst 323 0 call 324 pith_list_get_value_strict string 2 322 323 @@ -167028,27 +167131,27 @@ load 325 ir_alias_registry_ir_active_generic_module_path load 326 concrete_types load 327 ret_type call 328 ir_decode_emit_ir_emit_toml_decode_text_path_specialization_body void 4 324 325 326 327 -jmp L4695 -label L4717 +jmp L4703 +label L4725 iconst 329 0 -store __and_329_4722 329 +store __and_329_4730 329 load 330 concrete_types call 331 pith_list_len int 1 330 iconst 332 1 eq 333 331 332 -store __and_329_4722 333 -brif 333 L4722 L4723 -label L4722 +store __and_329_4730 333 +brif 333 L4730 L4731 +label L4730 load 334 base_name load 335 ir_alias_registry_ir_active_generic_module_path load 336 decl_idx iconst 337 0 call 338 ir_decode_calls_ir_is_json_decode_specialization bool 4 334 335 336 337 -store __and_329_4722 338 -label L4723 -load 339 __and_329_4722 -brif 339 L4720 L4721 -label L4720 +store __and_329_4730 338 +label L4731 +load 339 __and_329_4730 +brif 339 L4728 L4729 +label L4728 load 340 concrete_types iconst 341 0 call 342 pith_list_get_value_strict string 2 340 341 @@ -167059,27 +167162,27 @@ closure_ref 346 ir_emitter_core___fnval_3 call 347 ir_decode_emit_ir_emit_json_decode_specialization_body void 5 342 343 344 345 346 call 348 pith_closure_release void 1 345 call 349 pith_closure_release void 1 346 -jmp L4695 -label L4721 +jmp L4703 +label L4729 iconst 350 0 -store __and_350_4726 350 +store __and_350_4734 350 load 351 concrete_types call 352 pith_list_len int 1 351 iconst 353 1 eq 354 352 353 -store __and_350_4726 354 -brif 354 L4726 L4727 -label L4726 +store __and_350_4734 354 +brif 354 L4734 L4735 +label L4734 load 355 base_name load 356 ir_alias_registry_ir_active_generic_module_path load 357 decl_idx iconst 358 1 call 359 ir_decode_calls_ir_is_json_decode_specialization bool 4 355 356 357 358 -store __and_350_4726 359 -label L4727 -load 360 __and_350_4726 -brif 360 L4724 L4725 -label L4724 +store __and_350_4734 359 +label L4735 +load 360 __and_350_4734 +brif 360 L4732 L4733 +label L4732 load 361 concrete_types iconst 362 0 call 363 pith_list_get_value_strict string 2 361 362 @@ -167090,26 +167193,26 @@ closure_ref 367 ir_emitter_core___fnval_3 call 368 ir_decode_emit_ir_emit_json_decode_specialization_body void 5 363 364 365 366 367 call 369 pith_closure_release void 1 366 call 370 pith_closure_release void 1 367 -jmp L4695 -label L4725 +jmp L4703 +label L4733 iconst 371 0 -store __and_371_4730 371 +store __and_371_4738 371 load 372 concrete_types call 373 pith_list_len int 1 372 iconst 374 1 eq 375 373 374 -store __and_371_4730 375 -brif 375 L4730 L4731 -label L4730 +store __and_371_4738 375 +brif 375 L4738 L4739 +label L4738 load 376 base_name load 377 ir_alias_registry_ir_active_generic_module_path load 378 decl_idx call 379 ir_decode_calls_ir_is_json_decode_object_specialization bool 3 376 377 378 -store __and_371_4730 379 -label L4731 -load 380 __and_371_4730 -brif 380 L4728 L4729 -label L4728 +store __and_371_4738 379 +label L4739 +load 380 __and_371_4738 +brif 380 L4736 L4737 +label L4736 load 381 concrete_types iconst 382 0 call 383 pith_list_get_value_strict string 2 381 382 @@ -167119,26 +167222,26 @@ closure_ref 386 ir_emitter_core___fnval_3 call 387 ir_decode_emit_ir_emit_json_decode_object_specialization_body void 4 383 384 385 386 call 388 pith_closure_release void 1 385 call 389 pith_closure_release void 1 386 -jmp L4695 -label L4729 +jmp L4703 +label L4737 iconst 390 0 -store __and_390_4734 390 +store __and_390_4742 390 load 391 concrete_types call 392 pith_list_len int 1 391 iconst 393 1 eq 394 392 393 -store __and_390_4734 394 -brif 394 L4734 L4735 -label L4734 +store __and_390_4742 394 +brif 394 L4742 L4743 +label L4742 load 395 base_name load 396 ir_alias_registry_ir_active_generic_module_path load 397 decl_idx call 398 ir_decode_calls_ir_is_json_decode_path_specialization bool 3 395 396 397 -store __and_390_4734 398 -label L4735 -load 399 __and_390_4734 -brif 399 L4732 L4733 -label L4732 +store __and_390_4742 398 +label L4743 +load 399 __and_390_4742 +brif 399 L4740 L4741 +label L4740 load 400 concrete_types iconst 401 0 call 402 pith_list_get_value_strict string 2 400 401 @@ -167148,11 +167251,11 @@ closure_ref 405 ir_emitter_core___fnval_3 call 406 ir_decode_emit_ir_emit_json_decode_path_specialization_body void 4 402 403 404 405 call 407 pith_closure_release void 1 404 call 408 pith_closure_release void 1 405 -jmp L4695 -label L4733 +jmp L4703 +label L4741 load 409 body_idx call 410 ir_emitter_core_ir_finish_func_emission void 1 409 -label L4695 +label L4703 load 411 saved_params call 412 pith_list_retain_handle void 1 411 store ir_alias_registry_ir_active_generic_params 411 @@ -167218,8 +167321,8 @@ load 13 arg_tids call 14 pith_list_len int 1 13 iconst 15 0 eq 16 14 15 -brif 16 L4737 L4738 -label L4737 +brif 16 L4745 L4746 +label L4745 load 17 result load 18 arg_tids call 19 pith_list_release_handle void 1 18 @@ -167228,8 +167331,8 @@ call 21 pith_struct_release void 1 20 load 22 cn call 23 pith_struct_release void 1 22 ret 17 -label L4738 -label L4736 +label L4746 +label L4744 load 24 node load 25 fn_idx call 26 ast_get_node struct:Node 1 25 @@ -167244,12 +167347,12 @@ iconst 32 0 store __for_idx_374 32 store __for_len_374 31 store __for_iter_374 30 -label L4739 +label L4747 load 33 __for_idx_374 load 34 __for_len_374 lt 35 33 34 -brif 35 L4740 L4742 -label L4740 +brif 35 L4748 L4750 +label L4748 load 36 __for_iter_374 load 37 __for_idx_374 call 38 pith_list_get_value unknown 2 36 37 @@ -167264,62 +167367,62 @@ field 44 43 0 string kind strref 45 m46s68 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 -brif 46 L4744 L4745 -label L4744 +brif 46 L4752 L4753 +label L4752 load 48 param_idx load 49 arg_tids call 50 pith_list_len int 1 49 lt 51 48 50 -brif 51 L4747 L4748 -label L4747 +brif 51 L4755 L4756 +label L4755 load 52 arg_tids load 53 param_idx call 54 pith_list_get_value_strict int 2 52 53 store tid 54 iconst 55 0 -store __and_55_4752 55 +store __and_55_4760 55 load 56 tid iconst 57 0 gte 58 56 57 -store __and_55_4752 58 -brif 58 L4752 L4753 -label L4752 +store __and_55_4760 58 +brif 58 L4760 L4761 +label L4760 load 59 tid call 60 types_get_type_info struct:TypeInfo 1 59 field 61 60 0 string kind strref 62 m46s21 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 -store __and_55_4752 63 -label L4753 -load 65 __and_55_4752 -brif 65 L4750 L4751 -label L4750 +store __and_55_4760 63 +label L4761 +load 65 __and_55_4760 +brif 65 L4758 L4759 +label L4758 load 66 result load 67 cn field 68 67 8 string value load 69 tid call 70 map_insert void 3 66 68 69 -jmp L4749 -label L4751 -label L4749 -jmp L4746 -label L4748 -label L4746 +jmp L4757 +label L4759 +label L4757 +jmp L4754 +label L4756 +label L4754 load 71 param_idx iconst 72 1 add 73 71 72 store param_idx 73 -jmp L4743 -label L4745 -label L4743 -label L4741 +jmp L4751 +label L4753 +label L4751 +label L4749 load 74 __for_idx_374 iconst 75 1 add 76 74 75 store __for_idx_374 76 -jmp L4739 -label L4742 +jmp L4747 +label L4750 load 77 result load 78 arg_tids call 79 pith_list_release_handle void 1 78 @@ -167344,13 +167447,13 @@ iconst 0 0 store key 0 iconst 1 0 store i 1 -label L4754 +label L4762 load 2 i load 3 ir_generics_ir_generic_specialization_keys call 4 pith_list_len int 1 3 lt 5 2 4 -brif 5 L4755 L4756 -label L4755 +brif 5 L4763 L4764 +label L4763 load 6 key load 7 ir_generics_ir_generic_specialization_keys load 8 i @@ -167363,23 +167466,23 @@ load 13 key call 14 contains_key bool 2 12 13 iconst 16 1 sub 15 16 14 -brif 15 L4758 L4759 -label L4758 +brif 15 L4766 L4767 +label L4766 load 17 key call 18 ir_emitter_core_ir_emit_generic_specialization void 1 17 load 19 ir_generics_ir_generic_emitted_specializations load 20 key iconst 21 1 call 22 map_insert void 3 19 20 21 -jmp L4757 -label L4759 -label L4757 +jmp L4765 +label L4767 +label L4765 load 23 i iconst 24 1 add 25 23 24 store i 25 -jmp L4754 -label L4756 +jmp L4762 +label L4764 load 26 key call 27 pith_cstring_release void 1 26 iconst 28 0 @@ -167401,16 +167504,16 @@ load 8 impl_type call 9 string_len int 1 8 iconst 10 0 eq 11 9 10 -brif 11 L4761 L4762 -label L4761 +brif 11 L4769 L4770 +label L4769 load 12 impl_type call 13 pith_cstring_release void 1 12 load 14 method_node call 15 pith_struct_release void 1 14 iconst 16 0 ret 16 -label L4762 -label L4760 +label L4770 +label L4768 load 17 node field 18 17 16 list children call 19 pith_auto_len int 1 18 @@ -167418,12 +167521,12 @@ iconst 20 0 store __for_idx_375 20 store __for_len_375 19 store __for_iter_375 18 -label L4763 +label L4771 load 21 __for_idx_375 load 22 __for_len_375 lt 23 21 22 -brif 23 L4764 L4766 -label L4764 +brif 23 L4772 L4774 +label L4772 load 24 __for_iter_375 load 25 __for_idx_375 call 26 pith_list_get_value unknown 2 24 25 @@ -167439,23 +167542,23 @@ store method_node 31 load 33 method_node field 34 33 0 string kind call 35 ir_generics_ir_is_fn_decl_kind bool 1 34 -brif 35 L4768 L4769 -label L4768 +brif 35 L4776 L4777 +label L4776 load 36 impl_type load 37 method_idx load 38 method_node load 39 module_path call 40 ir_emitter_core_ir_record_impl_method_signature void 4 36 37 38 39 -jmp L4767 -label L4769 -label L4767 -label L4765 +jmp L4775 +label L4777 +label L4775 +label L4773 load 41 __for_idx_375 iconst 42 1 add 43 41 42 store __for_idx_375 43 -jmp L4763 -label L4766 +jmp L4771 +label L4774 load 44 node call 45 ir_emitter_core_ir_inherited_default_indices list 1 44 call 46 pith_auto_len int 1 45 @@ -167463,12 +167566,12 @@ iconst 47 0 store __for_idx_376 47 store __for_len_376 46 store __for_iter_376 45 -label L4770 +label L4778 load 48 __for_idx_376 load 49 __for_len_376 lt 50 48 49 -brif 50 L4771 L4773 -label L4771 +brif 50 L4779 L4781 +label L4779 load 51 __for_iter_376 load 52 __for_idx_376 call 53 pith_list_get_value unknown 2 51 52 @@ -167480,13 +167583,13 @@ call 57 ast_get_node struct:Node 1 56 load 58 module_path call 59 ir_emitter_core_ir_record_impl_method_signature void 4 54 55 57 58 call 60 pith_struct_release void 1 57 -label L4772 +label L4780 load 61 __for_idx_376 iconst 62 1 add 63 61 62 store __for_idx_376 63 -jmp L4770 -label L4773 +jmp L4778 +label L4781 load 64 __for_iter_376 call 65 pith_list_release_handle void 1 64 load 66 impl_type @@ -167529,8 +167632,8 @@ load 22 module_path call 23 string_len int 1 22 iconst 24 0 gt 25 23 24 -brif 25 L4775 L4776 -label L4775 +brif 25 L4783 L4784 +label L4783 load 26 full_name load 27 module_path load 28 impl_type @@ -167538,9 +167641,9 @@ load 29 method_name call 30 ir_names_ir_import_impl_method_name string 3 27 28 29 call 31 pith_cstring_release void 1 26 store full_name 30 -jmp L4774 -label L4776 -label L4774 +jmp L4782 +label L4784 +label L4782 load 32 key load 33 impl_type load 34 method_name @@ -167667,8 +167770,8 @@ param body_idx load 1 body_idx iconst 2 0 gte 3 1 2 -brif 3 L4778 L4779 -label L4778 +brif 3 L4786 L4787 +label L4786 load 4 body_idx call 5 ir_match_emit_ir_function_tail_match int 1 4 store ir_match_emit_ir_tail_match_node 5 @@ -167678,9 +167781,9 @@ iconst 8 0 iconst 9 1 sub 10 8 9 store ir_match_emit_ir_tail_match_node 10 -jmp L4777 -label L4779 -label L4777 +jmp L4785 +label L4787 +label L4785 call 11 ir_emitter_core_ir_emit_default_return int 0 iconst 12 0 ret 12 @@ -167700,12 +167803,12 @@ iconst 8 0 store __for_idx_377 8 store __for_len_377 7 store __for_iter_377 6 -label L4780 +label L4788 load 9 __for_idx_377 load 10 __for_len_377 lt 11 9 10 -brif 11 L4781 L4783 -label L4781 +brif 11 L4789 L4791 +label L4789 load 12 __for_iter_377 load 13 __for_idx_377 call 14 pith_list_get_value unknown 2 12 13 @@ -167716,21 +167819,21 @@ field 17 16 0 string kind strref 18 m46s587 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -brif 19 L4785 L4786 -label L4785 +brif 19 L4793 L4794 +label L4793 load 21 tests load 22 __loopvar_377_item_idx call 23 pith_list_push_value void 2 21 22 -jmp L4784 -label L4786 -label L4784 -label L4782 +jmp L4792 +label L4794 +label L4792 +label L4790 load 24 __for_idx_377 iconst 25 1 add 26 24 25 store __for_idx_377 26 -jmp L4780 -label L4783 +jmp L4788 +label L4791 load 27 __for_iter_377 call 28 pith_list_release_handle void 1 27 load 29 tests @@ -167792,8 +167895,8 @@ load 10 tests call 11 pith_list_len int 1 10 iconst 12 0 eq 13 11 12 -brif 13 L4788 L4789 -label L4788 +brif 13 L4796 L4797 +label L4796 load 14 tests call 15 pith_list_release_handle void 1 14 load 16 run_l @@ -167806,8 +167909,8 @@ load 22 child_l call 23 pith_cstring_release void 1 22 iconst 24 0 ret 24 -label L4789 -label L4787 +label L4797 +label L4795 strref 25 m46s671 call 26 ir_emitter_core_ir_prepare_func_emission void 1 25 call 27 pith_cstring_release void 1 25 @@ -167823,12 +167926,12 @@ iconst 36 0 store __for_idx_378 36 store __for_len_378 35 store __for_iter_378 34 -label L4790 +label L4798 load 37 __for_idx_378 load 38 __for_len_378 lt 39 37 38 -brif 39 L4791 L4793 -label L4791 +brif 39 L4799 L4801 +label L4799 load 40 __for_iter_378 load 41 __for_idx_378 call 42 pith_list_get_value unknown 2 40 41 @@ -168001,13 +168104,13 @@ call 198 ir_builder_ir_emit void 1 196 call 199 pith_cstring_release void 1 196 load 200 skip_l call 201 ir_call_emit_ir_emit_label void 1 200 -label L4792 +label L4800 load 202 __for_idx_378 iconst 203 1 add 204 202 203 store __for_idx_378 204 -jmp L4790 -label L4793 +jmp L4798 +label L4801 call 205 ir_builder_ir_reg int 0 store summary_r 205 load 206 summary_r @@ -168265,12 +168368,12 @@ iconst 5 0 store __for_idx_379 5 store __for_len_379 4 store __for_iter_379 3 -label L4794 +label L4802 load 6 __for_idx_379 load 7 __for_len_379 lt 8 6 7 -brif 8 L4795 L4797 -label L4795 +brif 8 L4803 L4805 +label L4803 load 9 __for_iter_379 load 10 __for_idx_379 call 11 pith_list_get_value unknown 2 9 10 @@ -168285,23 +168388,23 @@ field 17 16 0 string kind strref 18 m46s328 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -brif 19 L4799 L4800 -label L4799 +brif 19 L4807 L4808 +label L4807 load 21 tn field 22 21 8 string value call 23 pith_cstring_retain void 1 22 load 24 tn call 25 pith_struct_release void 1 24 ret 22 -label L4800 -label L4798 -label L4796 +label L4808 +label L4806 +label L4804 load 26 __for_idx_379 iconst 27 1 add 28 26 27 store __for_idx_379 28 -jmp L4794 -label L4797 +jmp L4802 +label L4805 strref 29 m46s82 load 30 tn call 31 pith_struct_release void 1 30 @@ -168318,26 +168421,26 @@ field 2 1 0 string kind strref 3 m46s590 call 4 pith_cstring_eq bool 2 2 3 call 5 pith_cstring_release void 1 3 -brif 4 L4802 L4803 -label L4802 +brif 4 L4810 L4811 +label L4810 load 6 node field 7 6 8 string value call 8 ir_alias_registry_ir_register_import_alias void 1 7 -jmp L4801 -label L4803 +jmp L4809 +label L4811 load 9 node field 10 9 0 string kind strref 11 m46s591 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 -brif 12 L4804 L4805 -label L4804 +brif 12 L4812 L4813 +label L4812 load 14 node field 15 14 8 string value call 16 ir_alias_registry_ir_collect_from_import_renames void 1 15 -jmp L4801 -label L4805 -label L4801 +jmp L4809 +label L4813 +label L4809 iconst 17 0 ret 17 endfunc @@ -168356,12 +168459,12 @@ iconst 7 0 store __for_idx_380 7 store __for_len_380 6 store __for_iter_380 5 -label L4806 +label L4814 load 8 __for_idx_380 load 9 __for_len_380 lt 10 8 9 -brif 10 L4807 L4809 -label L4807 +brif 10 L4815 L4817 +label L4815 load 11 __for_iter_380 load 12 __for_idx_380 call 13 pith_list_get_value unknown 2 11 12 @@ -168376,8 +168479,8 @@ field 19 18 0 string kind strref 20 m46s603 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 -brif 21 L4811 L4812 -label L4811 +brif 21 L4819 L4820 +label L4819 load 23 aname load 24 cn field 25 24 8 string value @@ -168387,8 +168490,8 @@ store aname 25 load 28 ir_alias_registry_ir_type_aliases load 29 aname call 30 contains_key bool 2 28 29 -brif 30 L4814 L4815 -label L4814 +brif 30 L4822 L4823 +label L4822 load 31 target load 32 ir_alias_registry_ir_type_aliases load 33 aname @@ -168399,8 +168502,8 @@ store target 34 load 37 ir_struct_registry_ir_struct_names load 38 target call 39 contains_key bool 2 37 38 -brif 39 L4817 L4818 -label L4817 +brif 39 L4825 L4826 +label L4825 load 40 ir_struct_registry_ir_struct_names load 41 aname load 42 ir_struct_registry_ir_struct_names @@ -168420,22 +168523,22 @@ concat 55 51 54 call 56 pith_cstring_release void 1 51 call 57 ir_builder_ir_emit void 1 55 call 58 pith_cstring_release void 1 55 -jmp L4816 +jmp L4824 +label L4826 +label L4824 +jmp L4821 +label L4823 +label L4821 +jmp L4818 +label L4820 label L4818 label L4816 -jmp L4813 -label L4815 -label L4813 -jmp L4810 -label L4812 -label L4810 -label L4808 load 59 __for_idx_380 iconst 60 1 add 61 59 60 store __for_idx_380 61 -jmp L4806 -label L4809 +jmp L4814 +label L4817 load 62 __for_iter_380 call 63 pith_list_release_handle void 1 62 load 64 cn @@ -168460,12 +168563,12 @@ iconst 6 0 store __for_idx_381 6 store __for_len_381 5 store __for_iter_381 4 -label L4819 +label L4827 load 7 __for_idx_381 load 8 __for_len_381 lt 9 7 8 -brif 9 L4820 L4822 -label L4820 +brif 9 L4828 L4830 +label L4828 load 10 __for_iter_381 load 11 __for_idx_381 call 12 pith_list_get_value unknown 2 10 11 @@ -168480,37 +168583,37 @@ field 18 17 0 string kind strref 19 m46s313 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 -brif 20 L4824 L4825 -label L4824 +brif 20 L4832 L4833 +label L4832 load 22 node field 23 22 8 string value load 24 returns_node call 25 ir_emitter_core_ir_record_returns_clause void 2 23 24 iconst 26 1 store has_returns 26 -jmp L4823 -label L4825 -label L4823 -label L4821 +jmp L4831 +label L4833 +label L4831 +label L4829 load 27 __for_idx_381 iconst 28 1 add 29 27 28 store __for_idx_381 29 -jmp L4819 -label L4822 +jmp L4827 +label L4830 load 30 has_returns iconst 32 1 sub 31 32 30 -brif 31 L4827 L4828 -label L4827 +brif 31 L4835 L4836 +label L4835 load 33 ir_method_tables_ir_func_returns load 34 node field 35 34 8 string value strref 36 m46s828 call 37 pith_map_insert_cstr_owned void 3 33 35 36 -jmp L4826 -label L4828 -label L4826 +jmp L4834 +label L4836 +label L4834 load 38 returns_node call 39 pith_struct_release void 1 38 iconst 40 0 @@ -168530,12 +168633,12 @@ iconst 7 0 store __for_idx_382 7 store __for_len_382 6 store __for_iter_382 5 -label L4829 +label L4837 load 8 __for_idx_382 load 9 __for_len_382 lt 10 8 9 -brif 10 L4830 L4832 -label L4830 +brif 10 L4838 L4840 +label L4838 load 11 __for_iter_382 load 12 __for_idx_382 call 13 pith_list_get_value unknown 2 11 12 @@ -168550,35 +168653,35 @@ field 19 18 0 string kind strref 20 m46s313 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 -brif 21 L4834 L4835 -label L4834 +brif 21 L4842 L4843 +label L4842 load 23 name load 24 returns_node call 25 ir_emitter_core_ir_record_returns_clause void 2 23 24 iconst 26 1 store has_returns 26 -jmp L4833 -label L4835 -label L4833 -label L4831 +jmp L4841 +label L4843 +label L4841 +label L4839 load 27 __for_idx_382 iconst 28 1 add 29 27 28 store __for_idx_382 29 -jmp L4829 -label L4832 +jmp L4837 +label L4840 load 30 has_returns iconst 32 1 sub 31 32 30 -brif 31 L4837 L4838 -label L4837 +brif 31 L4845 L4846 +label L4845 load 33 ir_method_tables_ir_func_returns load 34 name strref 35 m46s828 call 36 pith_map_insert_cstr_owned void 3 33 34 35 -jmp L4836 -label L4838 -label L4836 +jmp L4844 +label L4846 +label L4844 load 37 returns_node call 38 pith_struct_release void 1 37 iconst 39 0 @@ -168596,12 +168699,12 @@ iconst 6 0 store __for_idx_383 6 store __for_len_383 5 store __for_iter_383 4 -label L4839 +label L4847 load 7 __for_idx_383 load 8 __for_len_383 lt 9 7 8 -brif 9 L4840 L4842 -label L4840 +brif 9 L4848 L4850 +label L4848 load 10 __for_iter_383 load 11 __for_idx_383 call 12 pith_list_get_value unknown 2 10 11 @@ -168612,86 +168715,86 @@ call 15 ast_get_node struct:Node 1 14 call 16 pith_struct_release void 1 13 store type_node 15 iconst 17 0 -store __or_17_4846 17 +store __or_17_4854 17 iconst 18 0 -store __or_18_4846 18 +store __or_18_4854 18 iconst 19 0 -store __or_19_4846 19 +store __or_19_4854 19 load 20 type_node field 21 20 0 string kind strref 22 m46s328 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 -store __or_19_4846 23 -brif 23 L4847 L4846 -label L4846 +store __or_19_4854 23 +brif 23 L4855 L4854 +label L4854 load 25 type_node field 26 25 0 string kind strref 27 m46s327 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 -store __or_19_4846 28 -label L4847 -load 30 __or_19_4846 -store __or_18_4846 30 -brif 30 L4849 L4848 -label L4848 +store __or_19_4854 28 +label L4855 +load 30 __or_19_4854 +store __or_18_4854 30 +brif 30 L4857 L4856 +label L4856 load 31 type_node field 32 31 0 string kind strref 33 m46s320 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 -store __or_18_4846 34 -label L4849 -load 36 __or_18_4846 -store __or_17_4846 36 -brif 36 L4851 L4850 -label L4850 +store __or_18_4854 34 +label L4857 +load 36 __or_18_4854 +store __or_17_4854 36 +brif 36 L4859 L4858 +label L4858 load 37 type_node field 38 37 0 string kind strref 39 m46s321 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 -store __or_17_4846 40 -label L4851 -load 42 __or_17_4846 -brif 42 L4844 L4845 -label L4844 +store __or_17_4854 40 +label L4859 +load 42 __or_17_4854 +brif 42 L4852 L4853 +label L4852 load 43 ir_method_tables_ir_func_returns load 44 name load 45 __loopvar_383_type_idx call 46 ir_alias_registry_ir_resolve_type_node string 1 45 call 47 pith_map_insert_cstr_owned void 3 43 44 46 -jmp L4843 -label L4845 -label L4843 +jmp L4851 +label L4853 +label L4851 iconst 48 0 -store __or_48_4855 48 +store __or_48_4863 48 load 49 type_node field 50 49 0 string kind strref 51 m46s22 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 -store __or_48_4855 52 -brif 52 L4856 L4855 -label L4855 +store __or_48_4863 52 +brif 52 L4864 L4863 +label L4863 load 54 type_node field 55 54 0 string kind strref 56 m46s320 call 57 pith_cstring_eq bool 2 55 56 call 58 pith_cstring_release void 1 56 -store __or_48_4855 57 -label L4856 -load 59 __or_48_4855 -brif 59 L4853 L4854 -label L4853 +store __or_48_4863 57 +label L4864 +load 59 __or_48_4863 +brif 59 L4861 L4862 +label L4861 load 60 type_node field 61 60 16 list children call 62 pith_list_len int 1 61 iconst 63 0 gt 64 62 63 -brif 64 L4858 L4859 -label L4858 +brif 64 L4866 L4867 +label L4866 load 65 ir_emitter_core_ir_func_result_ok_kinds load 66 name load 67 type_node @@ -168702,19 +168805,19 @@ call 71 ir_alias_registry_ir_resolve_type_node string 1 70 call 72 ir_alias_registry_ir_retkind string 1 71 call 73 pith_cstring_release void 1 71 call 74 pith_map_insert_cstr_owned void 3 65 66 72 -jmp L4857 -label L4859 -label L4857 -jmp L4852 -label L4854 -label L4852 -label L4841 +jmp L4865 +label L4867 +label L4865 +jmp L4860 +label L4862 +label L4860 +label L4849 load 75 __for_idx_383 iconst 76 1 add 77 75 76 store __for_idx_383 77 -jmp L4839 -label L4842 +jmp L4847 +label L4850 load 78 type_node call 79 pith_struct_release void 1 78 iconst 80 0 @@ -168759,12 +168862,12 @@ iconst 24 0 store __for_idx_384 24 store __for_len_384 23 store __for_iter_384 22 -label L4860 +label L4868 load 25 __for_idx_384 load 26 __for_len_384 lt 27 25 26 -brif 27 L4861 L4863 -label L4861 +brif 27 L4869 L4871 +label L4869 load 28 __for_iter_384 load 29 __for_idx_384 call 30 pith_list_get_value unknown 2 28 29 @@ -168775,38 +168878,38 @@ call 33 ast_get_node struct:Node 1 32 call 34 pith_struct_release void 1 31 store gcn 33 iconst 35 0 -store __or_35_4867 35 +store __or_35_4875 35 iconst 36 0 -store __or_36_4867 36 +store __or_36_4875 36 load 37 gcn field 38 37 0 string kind strref 39 m46s328 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 -store __or_36_4867 40 -brif 40 L4868 L4867 -label L4867 +store __or_36_4875 40 +brif 40 L4876 L4875 +label L4875 load 42 gcn field 43 42 0 string kind strref 44 m46s327 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 -store __or_36_4867 45 -label L4868 -load 47 __or_36_4867 -store __or_35_4867 47 -brif 47 L4870 L4869 -label L4869 +store __or_36_4875 45 +label L4876 +load 47 __or_36_4875 +store __or_35_4875 47 +brif 47 L4878 L4877 +label L4877 load 48 gcn field 49 48 0 string kind strref 50 m46s321 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 50 -store __or_35_4867 51 -label L4870 -load 53 __or_35_4867 -brif 53 L4865 L4866 -label L4865 +store __or_35_4875 51 +label L4878 +load 53 __or_35_4875 +brif 53 L4873 L4874 +label L4873 load 54 global_type load 55 __loopvar_384_gc call 56 ir_alias_registry_ir_resolve_type_node string 1 55 @@ -168816,25 +168919,25 @@ load 58 global_map_value_type call 59 string_len int 1 58 iconst 60 0 eq 61 59 60 -brif 61 L4872 L4873 -label L4872 +brif 61 L4880 L4881 +label L4880 load 62 global_map_value_type load 63 __loopvar_384_gc call 64 ir_alias_registry_ir_resolve_map_value_type_node string 1 63 call 65 pith_cstring_release void 1 62 store global_map_value_type 64 -jmp L4871 -label L4873 -label L4871 -jmp L4864 -label L4866 +jmp L4879 +label L4881 +label L4879 +jmp L4872 +label L4874 load 66 gcn field 67 66 0 string kind strref 68 m46s519 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 -brif 69 L4874 L4875 -label L4874 +brif 69 L4882 L4883 +label L4882 load 71 init_val load 72 gcn field 73 72 8 string value @@ -168845,24 +168948,24 @@ load 76 global_type call 77 string_len int 1 76 iconst 78 0 eq 79 77 78 -brif 79 L4877 L4878 -label L4877 +brif 79 L4885 L4886 +label L4885 load 80 global_type strref 81 m46s671 call 82 pith_cstring_release void 1 80 store global_type 81 -jmp L4876 -label L4878 -label L4876 -jmp L4864 -label L4875 +jmp L4884 +label L4886 +label L4884 +jmp L4872 +label L4883 load 83 gcn field 84 83 0 string kind strref 85 m46s517 call 86 pith_cstring_eq bool 2 84 85 call 87 pith_cstring_release void 1 85 -brif 86 L4879 L4880 -label L4879 +brif 86 L4887 L4888 +label L4887 load 88 si load 89 gcn field 90 89 8 string value @@ -168880,24 +168983,24 @@ load 99 global_type call 100 string_len int 1 99 iconst 101 0 eq 102 100 101 -brif 102 L4882 L4883 -label L4882 +brif 102 L4890 L4891 +label L4890 load 103 global_type strref 104 m46s675 call 105 pith_cstring_release void 1 103 store global_type 104 -jmp L4881 -label L4883 -label L4881 -jmp L4864 -label L4880 +jmp L4889 +label L4891 +label L4889 +jmp L4872 +label L4888 load 106 gcn field 107 106 0 string kind strref 108 m46s20 call 109 pith_cstring_eq bool 2 107 108 call 110 pith_cstring_release void 1 108 -brif 109 L4884 L4885 -label L4884 +brif 109 L4892 L4893 +label L4892 load 111 init_val strref 112 m46s20 call 113 pith_cstring_release void 1 111 @@ -168906,24 +169009,24 @@ load 114 global_type call 115 string_len int 1 114 iconst 116 0 eq 117 115 116 -brif 117 L4887 L4888 -label L4887 +brif 117 L4895 L4896 +label L4895 load 118 global_type strref 119 m46s20 call 120 pith_cstring_release void 1 118 -store global_type 119 -jmp L4886 -label L4888 -label L4886 -jmp L4864 -label L4885 +store global_type 119 +jmp L4894 +label L4896 +label L4894 +jmp L4872 +label L4893 load 121 gcn field 122 121 0 string kind strref 123 m46s19 call 124 pith_cstring_eq bool 2 122 123 call 125 pith_cstring_release void 1 123 -brif 124 L4889 L4890 -label L4889 +brif 124 L4897 L4898 +label L4897 load 126 init_val strref 127 m46s19 call 128 pith_cstring_release void 1 126 @@ -168932,24 +169035,24 @@ load 129 global_type call 130 string_len int 1 129 iconst 131 0 eq 132 130 131 -brif 132 L4892 L4893 -label L4892 +brif 132 L4900 L4901 +label L4900 load 133 global_type strref 134 m46s19 call 135 pith_cstring_release void 1 133 store global_type 134 -jmp L4891 -label L4893 -label L4891 -jmp L4864 -label L4890 +jmp L4899 +label L4901 +label L4899 +jmp L4872 +label L4898 load 136 gcn field 137 136 0 string kind strref 138 m46s18 call 139 pith_cstring_eq bool 2 137 138 call 140 pith_cstring_release void 1 138 -brif 139 L4894 L4895 -label L4894 +brif 139 L4902 L4903 +label L4902 load 141 init_val load 142 __loopvar_384_gc call 143 ir_type_helpers_ir_checked_type string 1 142 @@ -168959,128 +169062,128 @@ load 145 init_val call 146 string_len int 1 145 iconst 147 0 eq 148 146 147 -brif 148 L4897 L4898 -label L4897 +brif 148 L4905 L4906 +label L4905 load 149 init_val load 150 __loopvar_384_gc call 151 ir_emitter_core_ir_infer_type string 1 150 call 152 pith_cstring_release void 1 149 store init_val 151 -jmp L4896 -label L4898 -label L4896 +jmp L4904 +label L4906 +label L4904 load 153 init_val call 154 string_len int 1 153 iconst 155 0 eq 156 154 155 -brif 156 L4900 L4901 -label L4900 +brif 156 L4908 L4909 +label L4908 load 157 init_val strref 158 m46s18 call 159 pith_cstring_release void 1 157 store init_val 158 -jmp L4899 -label L4901 -label L4899 +jmp L4907 +label L4909 +label L4907 load 160 global_type call 161 string_len int 1 160 iconst 162 0 eq 163 161 162 -brif 163 L4903 L4904 -label L4903 +brif 163 L4911 L4912 +label L4911 load 164 global_type load 165 init_val call 166 pith_cstring_retain void 1 165 call 167 pith_cstring_release void 1 164 store global_type 165 -jmp L4902 -label L4904 -label L4902 -jmp L4864 -label L4895 +jmp L4910 +label L4912 +label L4910 +jmp L4872 +label L4903 load 168 gcn field 169 168 0 string kind strref 170 m46s516 call 171 pith_cstring_eq bool 2 169 170 call 172 pith_cstring_release void 1 170 -brif 171 L4905 L4906 -label L4905 +brif 171 L4913 L4914 +label L4913 load 173 gcn field 174 173 8 string value strref 175 m46s75 call 176 pith_cstring_eq bool 2 174 175 call 177 pith_cstring_release void 1 175 -brif 176 L4908 L4909 -label L4908 +brif 176 L4916 L4917 +label L4916 load 178 init_val strref 179 m46s176 call 180 pith_cstring_release void 1 178 store init_val 179 -jmp L4907 -label L4909 +jmp L4915 +label L4917 load 181 init_val strref 182 m46s177 call 183 pith_cstring_release void 1 181 store init_val 182 -label L4907 +label L4915 load 184 global_type call 185 string_len int 1 184 iconst 186 0 eq 187 185 186 -brif 187 L4911 L4912 -label L4911 +brif 187 L4919 L4920 +label L4919 load 188 global_type strref 189 m46s673 call 190 pith_cstring_release void 1 188 store global_type 189 -jmp L4910 -label L4912 -label L4910 -jmp L4864 -label L4906 -label L4864 -label L4862 +jmp L4918 +label L4920 +label L4918 +jmp L4872 +label L4914 +label L4872 +label L4870 load 191 __for_idx_384 iconst 192 1 add 193 191 192 store __for_idx_384 193 -jmp L4860 -label L4863 +jmp L4868 +label L4871 load 194 global_type call 195 string_len int 1 194 iconst 196 0 gt 197 195 196 -brif 197 L4914 L4915 -label L4914 +brif 197 L4922 L4923 +label L4922 load 198 gname load 199 global_type call 200 ir_alias_registry_ir_record_global_type void 2 198 199 -jmp L4913 -label L4915 -label L4913 +jmp L4921 +label L4923 +label L4921 load 201 global_map_value_type call 202 string_len int 1 201 iconst 203 0 gt 204 202 203 -brif 204 L4917 L4918 -label L4917 +brif 204 L4925 L4926 +label L4925 load 205 ir_alias_registry_ir_global_map_value_types load 206 gname load 207 global_map_value_type call 208 map_insert void 3 205 206 207 -jmp L4916 -label L4918 -label L4916 +jmp L4924 +label L4926 +label L4924 load 209 is_threadlocal -brif 209 L4920 L4921 -label L4920 +brif 209 L4928 L4929 +label L4928 load 210 ir_emitter_core_ir_threadlocal_slots load 211 gname call 212 contains_key bool 2 210 211 iconst 214 1 sub 213 214 212 -brif 213 L4923 L4924 -label L4923 +brif 213 L4931 L4932 +label L4931 load 215 ir_emitter_core_ir_threadlocal_slots load 216 gname load 217 ir_emitter_core_ir_next_tls_slot @@ -169089,9 +169192,9 @@ load 219 ir_emitter_core_ir_next_tls_slot iconst 220 1 add 221 219 220 store ir_emitter_core_ir_next_tls_slot 221 -jmp L4922 -label L4924 -label L4922 +jmp L4930 +label L4932 +label L4930 load 222 ir_emitter_core_ir_threadlocal_kinds load 223 gname load 224 global_type @@ -169110,8 +169213,8 @@ load 236 si call 237 pith_cstring_release void 1 236 iconst 238 0 ret 238 -label L4921 -label L4919 +label L4929 +label L4927 strref 239 m46s1176 load 240 gname concat 241 239 240 @@ -169163,12 +169266,12 @@ iconst 11 0 store __for_idx_385 11 store __for_len_385 10 store __for_iter_385 9 -label L4925 +label L4933 load 12 __for_idx_385 load 13 __for_len_385 lt 14 12 13 -brif 14 L4926 L4928 -label L4926 +brif 14 L4934 L4936 +label L4934 load 15 __for_iter_385 load 16 __for_idx_385 call 17 pith_list_get_value unknown 2 15 16 @@ -169185,11 +169288,11 @@ call 26 pith_cstring_eq bool 2 23 24 iconst 27 1 sub 25 27 26 call 28 pith_cstring_release void 1 24 -brif 25 L4930 L4931 -label L4930 -jmp L4927 -label L4931 -label L4929 +brif 25 L4938 L4939 +label L4938 +jmp L4935 +label L4939 +label L4937 load 29 binding load 30 cn field 31 30 16 list children @@ -169203,11 +169306,11 @@ field 37 36 0 string kind call 38 ir_ast_helpers_ir_is_binding_kind bool 1 37 iconst 40 1 sub 39 40 38 -brif 39 L4933 L4934 -label L4933 -jmp L4927 -label L4934 -label L4932 +brif 39 L4941 L4942 +label L4941 +jmp L4935 +label L4942 +label L4940 load 41 gname load 42 binding call 43 ir_ast_helpers_ir_binding_name string 1 42 @@ -169226,32 +169329,32 @@ load 52 parts field 53 52 16 int type_idx iconst 54 0 gte 55 53 54 -brif 55 L4936 L4937 -label L4936 +brif 55 L4944 L4945 +label L4944 load 56 target load 57 parts field 58 57 16 int type_idx call 59 ir_alias_registry_ir_resolve_type_node string 1 58 call 60 pith_cstring_release void 1 56 store target 59 -jmp L4935 -label L4937 -label L4935 +jmp L4943 +label L4945 +label L4943 load 61 target call 62 string_len int 1 61 iconst 63 0 eq 64 62 63 -brif 64 L4939 L4940 -label L4939 +brif 64 L4947 L4948 +label L4947 load 65 target load 66 parts field 67 66 8 int val_idx call 68 ir_emitter_core_ir_infer_type string 1 67 call 69 pith_cstring_release void 1 65 store target 68 -jmp L4938 -label L4940 -label L4938 +jmp L4946 +label L4948 +label L4946 load 70 target call 71 ir_emitter_core_ir_prepare_func_emission void 1 70 strref 72 m46s1175 @@ -169279,42 +169382,42 @@ call 91 ir_struct_registry_ir_rc_kind string 1 90 call 92 pith_cstring_release void 1 89 store gkind 91 iconst 93 0 -store __and_93_4944 93 +store __and_93_4952 93 iconst 94 0 -store __and_94_4944 94 +store __and_94_4952 94 load 95 gkind call 96 string_len int 1 95 iconst 97 0 gt 98 96 97 -store __and_94_4944 98 -brif 98 L4944 L4945 -label L4944 +store __and_94_4952 98 +brif 98 L4952 L4953 +label L4952 load 99 gtarget strref 100 m46s23 call 102 pith_cstring_eq bool 2 99 100 iconst 103 1 sub 101 103 102 call 104 pith_cstring_release void 1 100 -store __and_94_4944 101 -label L4945 -load 105 __and_94_4944 -store __and_93_4944 105 -brif 105 L4946 L4947 -label L4946 +store __and_94_4952 101 +label L4953 +load 105 __and_94_4952 +store __and_93_4952 105 +brif 105 L4954 L4955 +label L4954 load 106 parts field 107 106 8 int val_idx call 108 ir_emitter_core_ir_string_expr_is_borrowed bool 1 107 -store __and_93_4944 108 -label L4947 -load 109 __and_93_4944 -brif 109 L4942 L4943 -label L4942 +store __and_93_4952 108 +label L4955 +load 109 __and_93_4952 +brif 109 L4950 L4951 +label L4950 load 110 r load 111 gkind call 112 ir_ownership_ir_rc_retain_reg void 2 110 111 -jmp L4941 -label L4943 -label L4941 +jmp L4949 +label L4951 +label L4949 strref 113 m46s849 load 114 r call 115 int_to_string string 1 114 @@ -169326,13 +169429,13 @@ call 120 pith_cstring_release void 1 116 strref 121 m46s877 call 122 ir_builder_ir_emit void 1 121 call 123 pith_cstring_release void 1 121 -label L4927 +label L4935 load 124 __for_idx_385 iconst 125 1 add 126 124 125 store __for_idx_385 126 -jmp L4925 -label L4928 +jmp L4933 +label L4936 load 127 cn call 128 pith_struct_release void 1 127 load 129 binding @@ -169485,21 +169588,21 @@ endfunc func ir_emitter_core_ir_name_is_threadlocal 1 bool param name iconst 1 0 -store __and_1_4948 1 +store __and_1_4956 1 load 2 ir_emitter_core_ir_threadlocal_slots load 3 name call 4 contains_key bool 2 2 3 -store __and_1_4948 4 -brif 4 L4948 L4949 -label L4948 +store __and_1_4956 4 +brif 4 L4956 L4957 +label L4956 load 5 ir_builder_ir_var_regs load 6 name call 7 contains_key bool 2 5 6 iconst 9 1 sub 8 9 7 -store __and_1_4948 8 -label L4949 -load 10 __and_1_4948 +store __and_1_4956 8 +label L4957 +load 10 __and_1_4956 ret 10 iconst 11 0 ret 11 @@ -169518,8 +169621,8 @@ load 7 loop_slot call 8 string_len int 1 7 iconst 9 0 gt 10 8 9 -brif 10 L4951 L4952 -label L4951 +brif 10 L4959 L4960 +label L4959 strref 11 m46s829 load 12 dest_r call 13 int_to_string string 1 12 @@ -169535,17 +169638,17 @@ concat 22 18 21 call 23 pith_cstring_release void 1 18 call 24 ir_builder_ir_emit void 1 22 call 25 pith_cstring_release void 1 22 -jmp L4950 -label L4952 +jmp L4958 +label L4960 load 26 name call 27 ir_emitter_core_ir_name_is_threadlocal bool 1 26 -brif 27 L4953 L4954 -label L4953 +brif 27 L4961 L4962 +label L4961 load 28 dest_r load 29 name call 30 ir_emitter_core_ir_emit_tls_load void 2 28 29 -jmp L4950 -label L4954 +jmp L4958 +label L4962 strref 31 m46s829 load 32 dest_r call 33 int_to_string string 1 32 @@ -169563,7 +169666,7 @@ call 44 pith_cstring_release void 1 38 call 45 pith_cstring_release void 1 42 call 46 ir_builder_ir_emit void 1 43 call 47 pith_cstring_release void 1 43 -label L4950 +label L4958 load 48 loop_slot call 49 pith_cstring_release void 1 48 iconst 50 0 @@ -169583,8 +169686,8 @@ load 7 loop_slot call 8 string_len int 1 7 iconst 9 0 gt 10 8 9 -brif 10 L4956 L4957 -label L4956 +brif 10 L4964 L4965 +label L4964 strref 11 m46s830 load 12 loop_slot concat 13 11 12 @@ -169600,17 +169703,17 @@ call 22 pith_cstring_release void 1 16 call 23 pith_cstring_release void 1 20 call 24 ir_builder_ir_emit void 1 21 call 25 pith_cstring_release void 1 21 -jmp L4955 -label L4957 +jmp L4963 +label L4965 load 26 name call 27 ir_emitter_core_ir_name_is_threadlocal bool 1 26 -brif 27 L4958 L4959 -label L4958 +brif 27 L4966 L4967 +label L4966 load 28 name load 29 val_r call 30 ir_emitter_core_ir_emit_tls_store void 2 28 29 -jmp L4955 -label L4959 +jmp L4963 +label L4967 strref 31 m46s830 load 32 name call 33 ir_emitter_core_ir_resolve_storage_name string 1 32 @@ -169628,7 +169731,7 @@ call 44 pith_cstring_release void 1 38 call 45 pith_cstring_release void 1 42 call 46 ir_builder_ir_emit void 1 43 call 47 pith_cstring_release void 1 43 -label L4955 +label L4963 load 48 loop_slot call 49 pith_cstring_release void 1 48 iconst 50 0 @@ -169639,13 +169742,13 @@ param dest_r param name load 2 name call 3 ir_emitter_core_ir_name_is_threadlocal bool 1 2 -brif 3 L4961 L4962 -label L4961 +brif 3 L4969 L4970 +label L4969 load 4 dest_r load 5 name call 6 ir_emitter_core_ir_emit_tls_load void 2 4 5 -jmp L4960 -label L4962 +jmp L4968 +label L4970 strref 7 m46s829 load 8 dest_r call 9 int_to_string string 1 8 @@ -169663,7 +169766,7 @@ call 20 pith_cstring_release void 1 14 call 21 pith_cstring_release void 1 18 call 22 ir_builder_ir_emit void 1 19 call 23 pith_cstring_release void 1 19 -label L4960 +label L4968 iconst 24 0 ret 24 endfunc @@ -169680,12 +169783,12 @@ iconst 6 0 store __for_idx_386 6 store __for_len_386 5 store __for_iter_386 4 -label L4963 +label L4971 load 7 __for_idx_386 load 8 __for_len_386 lt 9 7 8 -brif 9 L4964 L4966 -label L4964 +brif 9 L4972 L4974 +label L4972 load 10 __for_iter_386 load 11 __for_idx_386 call 12 pith_list_get_value unknown 2 10 11 @@ -169700,8 +169803,8 @@ field 18 17 0 string kind strref 19 m46s589 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 -brif 20 L4968 L4969 -label L4968 +brif 20 L4976 L4977 +label L4976 load 22 inner load 23 cn field 24 23 16 list children @@ -169713,34 +169816,34 @@ store inner 27 load 29 inner field 30 29 0 string kind call 31 ir_ast_helpers_ir_is_binding_kind bool 1 30 -brif 31 L4971 L4972 -label L4971 +brif 31 L4979 L4980 +label L4979 load 32 inner iconst 33 1 call 34 ir_emitter_core_ir_emit_global_binding void 2 32 33 -jmp L4970 -label L4972 -label L4970 -jmp L4967 -label L4969 +jmp L4978 +label L4980 +label L4978 +jmp L4975 +label L4977 load 35 cn field 36 35 0 string kind call 37 ir_ast_helpers_ir_is_binding_kind bool 1 36 -brif 37 L4973 L4974 -label L4973 +brif 37 L4981 L4982 +label L4981 load 38 cn iconst 39 0 call 40 ir_emitter_core_ir_emit_global_binding void 2 38 39 -jmp L4967 -label L4974 -label L4967 -label L4965 +jmp L4975 +label L4982 +label L4975 +label L4973 load 41 __for_idx_386 iconst 42 1 add 43 41 42 store __for_idx_386 43 -jmp L4963 -label L4966 +jmp L4971 +label L4974 load 44 cn call 45 pith_struct_release void 1 44 load 46 inner @@ -169757,14 +169860,14 @@ load 3 raw_name call 4 ir_emitter_core_ir_struct_needs_dtor bool 1 3 iconst 6 1 sub 5 6 4 -brif 5 L4976 L4977 -label L4976 +brif 5 L4984 L4985 +label L4984 load 7 sname call 8 pith_cstring_release void 1 7 iconst 9 0 ret 9 -label L4977 -label L4975 +label L4985 +label L4983 load 10 sname load 11 raw_name call 12 ir_struct_registry_ir_struct_base_name string 1 11 @@ -169846,12 +169949,12 @@ iconst 24 0 store __for_idx_387 24 store __for_len_387 23 store __for_iter_387 22 -label L4978 +label L4986 load 25 __for_idx_387 load 26 __for_len_387 lt 27 25 26 -brif 27 L4979 L4981 -label L4979 +brif 27 L4987 L4989 +label L4987 load 28 __for_iter_387 load 29 __for_idx_387 call 30 pith_list_get_value_unchecked string 2 28 29 @@ -169933,13 +170036,13 @@ call 101 pith_cstring_release void 1 97 strref 102 m46s877 call 103 ir_builder_ir_emit void 1 102 call 104 pith_cstring_release void 1 102 -label L4980 +label L4988 load 105 __for_idx_387 iconst 106 1 add 107 105 106 store __for_idx_387 107 -jmp L4978 -label L4981 +jmp L4986 +label L4989 load 108 kinds call 109 pith_list_release_handle void 1 108 iconst 110 0 @@ -169959,12 +170062,12 @@ iconst 6 0 store __for_idx_388 6 store __for_len_388 5 store __for_iter_388 4 -label L4982 +label L4990 load 7 __for_idx_388 load 8 __for_len_388 lt 9 7 8 -brif 9 L4983 L4985 -label L4983 +brif 9 L4991 L4993 +label L4991 load 10 __for_iter_388 load 11 __for_idx_388 call 12 pith_list_get_value_unchecked string 2 10 11 @@ -169975,28 +170078,28 @@ call 15 pith_cstring_index_of int 2 13 14 call 16 pith_cstring_release void 1 14 iconst 17 0 gte 18 15 17 -brif 18 L4987 L4988 -label L4987 -jmp L4984 -label L4988 -label L4986 +brif 18 L4995 L4996 +label L4995 +jmp L4992 +label L4996 +label L4994 load 19 ir_struct_registry_ir_boxed_enums load 20 __loopvar_388_sname call 21 contains_key bool 2 19 20 -brif 21 L4990 L4991 -label L4990 -jmp L4984 -label L4991 -label L4989 +brif 21 L4998 L4999 +label L4998 +jmp L4992 +label L4999 +label L4997 load 22 __loopvar_388_sname call 23 ir_emitter_core_ir_struct_needs_dtor bool 1 22 iconst 25 1 sub 24 25 23 -brif 24 L4993 L4994 -label L4993 -jmp L4984 -label L4994 -label L4992 +brif 24 L5001 L5002 +label L5001 +jmp L4992 +label L5002 +label L5000 strref 26 m46s1167 load 27 __loopvar_388_sname concat 28 26 27 @@ -170028,12 +170131,12 @@ call 52 ir_struct_registry_ir_struct_field_count int 1 51 store count 52 iconst 53 0 store i 53 -label L4995 +label L5003 load 54 i load 55 count lt 56 54 55 -brif 56 L4996 L4997 -label L4996 +brif 56 L5004 L5005 +label L5004 load 57 fname load 58 __loopvar_388_sname load 59 i @@ -170054,8 +170157,8 @@ store fkind 69 load 71 __loopvar_388_sname load 72 fname call 73 ir_emitter_core_ir_struct_field_is_weak bool 2 71 72 -brif 73 L4999 L5000 -label L4999 +brif 73 L5007 L5008 +label L5007 call 74 ir_builder_ir_reg int 0 store fr 74 strref 75 m46s837 @@ -170112,14 +170215,14 @@ call 124 pith_cstring_release void 1 118 call 125 pith_cstring_release void 1 122 call 126 ir_builder_ir_emit void 1 123 call 127 pith_cstring_release void 1 123 -jmp L4998 -label L5000 +jmp L5006 +label L5008 load 128 fkind call 129 string_len int 1 128 iconst 130 0 gt 131 129 130 -brif 131 L5001 L5002 -label L5001 +brif 131 L5009 L5010 +label L5009 call 132 ir_builder_ir_reg int 0 store fr 132 strref 133 m46s837 @@ -170160,15 +170263,15 @@ call 167 pith_cstring_release void 1 164 load 168 fr load 169 fkind call 170 ir_ownership_ir_rc_release_reg void 2 168 169 -jmp L4998 -label L5002 -label L4998 +jmp L5006 +label L5010 +label L5006 load 171 i iconst 172 1 add 173 171 172 store i 173 -jmp L4995 -label L4997 +jmp L5003 +label L5005 call 174 ir_builder_ir_reg int 0 store zr 174 strref 175 m46s832 @@ -170194,13 +170297,13 @@ call 194 pith_cstring_release void 1 190 strref 195 m46s877 call 196 ir_builder_ir_emit void 1 195 call 197 pith_cstring_release void 1 195 -label L4984 +label L4992 load 198 __for_idx_388 iconst 199 1 add 200 198 199 store __for_idx_388 200 -jmp L4982 -label L4985 +jmp L4990 +label L4993 load 201 __for_iter_388 call 202 pith_list_release_handle void 1 201 load 203 fname @@ -170232,12 +170335,12 @@ iconst 9 0 store __for_idx_389 9 store __for_len_389 8 store __for_iter_389 7 -label L5003 +label L5011 load 10 __for_idx_389 load 11 __for_len_389 lt 12 10 11 -brif 12 L5004 L5006 -label L5004 +brif 12 L5012 L5014 +label L5012 load 13 __for_iter_389 load 14 __for_idx_389 call 15 pith_list_get_value_unchecked string 2 13 14 @@ -170246,21 +170349,21 @@ load 16 __loopvar_389_ename call 17 ir_emitter_core_ir_enum_needs_dtor bool 1 16 iconst 19 1 sub 18 19 17 -brif 18 L5008 L5009 -label L5008 -jmp L5005 -label L5009 -label L5007 +brif 18 L5016 L5017 +label L5016 +jmp L5013 +label L5017 +label L5015 load 20 ir_struct_registry_ir_enum_variant_lists load 21 __loopvar_389_ename call 22 contains_key bool 2 20 21 iconst 24 1 sub 23 24 22 -brif 23 L5011 L5012 -label L5011 -jmp L5005 -label L5012 -label L5010 +brif 23 L5019 L5020 +label L5019 +jmp L5013 +label L5020 +label L5018 strref 25 m46s1167 load 26 __loopvar_389_ename concat 27 25 26 @@ -170321,13 +170424,13 @@ call 79 pith_list_release_handle void 1 72 store variants 77 iconst 80 0 store vi 80 -label L5013 +label L5021 load 81 vi load 82 variants call 83 pith_list_len int 1 82 lt 84 81 83 -brif 84 L5014 L5015 -label L5014 +brif 84 L5022 L5023 +label L5022 load 85 vkey load 86 __loopvar_389_ename strref 87 m46s26 @@ -170343,8 +170446,8 @@ store vkey 93 load 96 ir_struct_registry_ir_enum_payload_kinds load 97 vkey call 98 contains_key bool 2 96 97 -brif 98 L5017 L5018 -label L5017 +brif 98 L5025 L5026 +label L5025 load 99 kinds load 100 ir_struct_registry_ir_enum_payload_kinds load 101 vkey @@ -170358,13 +170461,13 @@ iconst 107 0 store has_rc 107 iconst 108 0 store c 108 -label L5019 +label L5027 load 109 c load 110 kinds call 111 pith_list_len int 1 110 lt 112 109 111 -brif 112 L5020 L5021 -label L5020 +brif 112 L5028 L5029 +label L5028 load 113 kinds load 114 c call 115 pith_list_get_value_strict string 2 113 114 @@ -170373,22 +170476,22 @@ call 117 string_len int 1 116 call 118 pith_cstring_release void 1 116 iconst 119 0 gt 120 117 119 -brif 120 L5023 L5024 -label L5023 +brif 120 L5031 L5032 +label L5031 iconst 121 1 store has_rc 121 -jmp L5022 -label L5024 -label L5022 +jmp L5030 +label L5032 +label L5030 load 122 c iconst 123 1 add 124 122 123 store c 124 -jmp L5019 -label L5021 +jmp L5027 +label L5029 load 125 has_rc -brif 125 L5026 L5027 -label L5026 +brif 125 L5034 L5035 +label L5034 call 126 ir_builder_ir_reg int 0 store vtag 126 strref 127 m46s832 @@ -170470,13 +170573,13 @@ load 199 hit_l call 200 ir_call_emit_ir_emit_label void 1 199 iconst 201 0 store s 201 -label L5028 +label L5036 load 202 s load 203 kinds call 204 pith_list_len int 1 203 lt 205 202 204 -brif 205 L5029 L5030 -label L5029 +brif 205 L5037 L5038 +label L5037 load 206 rk load 207 kinds load 208 s @@ -170488,8 +170591,8 @@ load 212 rk call 213 string_len int 1 212 iconst 214 0 gt 215 213 214 -brif 215 L5032 L5033 -label L5032 +brif 215 L5040 L5041 +label L5040 call 216 ir_builder_ir_reg int 0 store slot_r 216 strref 217 m46s837 @@ -170534,29 +170637,29 @@ call 255 pith_cstring_release void 1 251 load 256 slot_r load 257 rk call 258 ir_ownership_ir_rc_release_reg void 2 256 257 -jmp L5031 -label L5033 -label L5031 +jmp L5039 +label L5041 +label L5039 load 259 s iconst 260 1 add 261 259 260 store s 261 -jmp L5028 -label L5030 +jmp L5036 +label L5038 load 262 skip_l call 263 ir_call_emit_ir_emit_label void 1 262 -jmp L5025 -label L5027 -label L5025 -jmp L5016 -label L5018 -label L5016 +jmp L5033 +label L5035 +label L5033 +jmp L5024 +label L5026 +label L5024 load 264 vi iconst 265 1 add 266 264 265 store vi 266 -jmp L5013 -label L5015 +jmp L5021 +label L5023 call 267 ir_builder_ir_reg int 0 store zr 267 strref 268 m46s832 @@ -170582,13 +170685,13 @@ call 287 pith_cstring_release void 1 283 strref 288 m46s877 call 289 ir_builder_ir_emit void 1 288 call 290 pith_cstring_release void 1 288 -label L5005 +label L5013 load 291 __for_idx_389 iconst 292 1 add 293 291 292 store __for_idx_389 293 -jmp L5003 -label L5006 +jmp L5011 +label L5014 load 294 __for_iter_389 call 295 pith_list_release_handle void 1 294 load 296 variants @@ -170615,12 +170718,12 @@ iconst 3 0 store __for_idx_390 3 store __for_len_390 2 store __for_iter_390 1 -label L5034 +label L5042 load 4 __for_idx_390 load 5 __for_len_390 lt 6 4 5 -brif 6 L5035 L5037 -label L5035 +brif 6 L5043 L5045 +label L5043 load 7 __for_iter_390 load 8 __for_idx_390 call 9 pith_list_get_value_unchecked string 2 7 8 @@ -170651,13 +170754,13 @@ call 31 ir_builder_ir_emit void 1 28 call 32 pith_cstring_release void 1 28 iconst 33 0 store i 33 -label L5038 +label L5046 load 34 i load 35 __loopvar_390_sig call 36 string_len int 1 35 lt 37 34 36 -brif 37 L5039 L5040 -label L5039 +brif 37 L5047 L5048 +label L5047 load 38 kind load 39 __loopvar_390_sig load 40 i @@ -170673,8 +170776,8 @@ load 48 kind call 49 string_len int 1 48 iconst 50 0 gt 51 49 50 -brif 51 L5042 L5043 -label L5042 +brif 51 L5050 L5051 +label L5050 call 52 ir_builder_ir_reg int 0 store fr 52 strref 53 m46s837 @@ -170717,15 +170820,15 @@ call 89 pith_cstring_release void 1 85 load 90 fr load 91 kind call 92 ir_ownership_ir_rc_release_reg void 2 90 91 -jmp L5041 -label L5043 -label L5041 +jmp L5049 +label L5051 +label L5049 load 93 i iconst 94 1 add 95 93 94 store i 95 -jmp L5038 -label L5040 +jmp L5046 +label L5048 call 96 ir_builder_ir_reg int 0 store zr 96 strref 97 m46s832 @@ -170751,13 +170854,13 @@ call 116 pith_cstring_release void 1 112 strref 117 m46s877 call 118 ir_builder_ir_emit void 1 117 call 119 pith_cstring_release void 1 117 -label L5036 +label L5044 load 120 __for_idx_390 iconst 121 1 add 122 120 121 store __for_idx_390 122 -jmp L5034 -label L5037 +jmp L5042 +label L5045 load 123 kind call 124 pith_cstring_release void 1 123 iconst 125 0 @@ -170789,12 +170892,12 @@ iconst 12 0 store __for_idx_391 12 store __for_len_391 11 store __for_iter_391 10 -label L5044 +label L5052 load 13 __for_idx_391 load 14 __for_len_391 lt 15 13 14 -brif 15 L5045 L5047 -label L5045 +brif 15 L5053 L5055 +label L5053 load 16 __for_iter_391 load 17 __for_idx_391 call 18 pith_list_get_value_unchecked string 2 16 17 @@ -170804,11 +170907,11 @@ load 20 __loopvar_391_ename call 21 contains_key bool 2 19 20 iconst 23 1 sub 22 23 21 -brif 22 L5049 L5050 -label L5049 -jmp L5046 -label L5050 -label L5048 +brif 22 L5057 L5058 +label L5057 +jmp L5054 +label L5058 +label L5056 strref 24 m46s1158 load 25 __loopvar_391_ename concat 26 24 25 @@ -171027,13 +171130,13 @@ concat 226 222 225 call 227 pith_cstring_release void 1 222 call 228 ir_builder_ir_emit void 1 226 call 229 pith_cstring_release void 1 226 -label L5051 +label L5059 load 230 vi load 231 variants call 232 pith_list_len int 1 231 lt 233 230 232 -brif 233 L5052 L5053 -label L5052 +brif 233 L5060 L5061 +label L5060 load 234 vkey load 235 __loopvar_391_ename strref 236 m46s26 @@ -171049,8 +171152,8 @@ store vkey 242 load 245 ir_struct_registry_ir_enum_payload_kinds load 246 vkey call 247 contains_key bool 2 245 246 -brif 247 L5055 L5056 -label L5055 +brif 247 L5063 L5064 +label L5063 load 248 chain_l call 249 ir_call_emit_ir_emit_label void 1 248 load 250 chain_l @@ -171143,13 +171246,13 @@ call 332 pith_list_release_handle void 1 325 store kinds 330 iconst 333 0 store k 333 -label L5057 +label L5065 load 334 k load 335 kinds call 336 pith_list_len int 1 335 lt 337 334 336 -brif 337 L5058 L5059 -label L5058 +brif 337 L5066 L5067 +label L5066 call 338 ir_builder_ir_reg int 0 store fa 338 strref 339 m46s837 @@ -171240,8 +171343,8 @@ call 421 pith_list_get_value_strict string 2 419 420 strref 422 m46s675 call 423 pith_cstring_eq bool 2 421 422 call 424 pith_cstring_release void 1 422 -brif 423 L5061 L5062 -label L5061 +brif 423 L5069 L5070 +label L5069 load 425 cmp_r strref 426 m46s722 strref 427 m46s673 @@ -171250,15 +171353,15 @@ load 429 fb call 430 ir_call_emit_ir_emit_call2 void 5 425 426 427 428 429 call 431 pith_cstring_release void 1 426 call 432 pith_cstring_release void 1 427 -jmp L5060 -label L5062 +jmp L5068 +label L5070 load 433 ir_struct_registry_ir_boxed_enums load 434 kinds load 435 k call 436 pith_list_get_value_strict string 2 434 435 call 437 contains_key bool 2 433 436 -brif 437 L5063 L5064 -label L5063 +brif 437 L5071 L5072 +label L5071 load 438 cmp_r strref 439 m46s1158 load 440 kinds @@ -171272,8 +171375,8 @@ load 447 fb call 448 ir_call_emit_ir_emit_call2 void 5 438 443 445 446 447 call 449 pith_cstring_release void 1 443 call 450 pith_cstring_release void 1 445 -jmp L5060 -label L5064 +jmp L5068 +label L5072 strref 451 m46s839 load 452 cmp_r call 453 int_to_string string 1 452 @@ -171300,7 +171403,7 @@ call 473 pith_cstring_release void 1 467 call 474 pith_cstring_release void 1 471 call 475 ir_builder_ir_emit void 1 472 call 476 pith_cstring_release void 1 472 -label L5060 +label L5068 load 477 next_slot_l call 478 ir_builder_ir_label string 0 call 479 pith_cstring_release void 1 477 @@ -171333,23 +171436,23 @@ load 504 k iconst 505 1 add 506 504 505 store k 506 -jmp L5057 -label L5059 +jmp L5065 +label L5067 strref 507 m46s833 load 508 true_l concat 509 507 508 call 510 pith_cstring_release void 1 507 call 511 ir_builder_ir_emit void 1 509 call 512 pith_cstring_release void 1 509 -jmp L5054 -label L5056 -label L5054 +jmp L5062 +label L5064 +label L5062 load 513 vi iconst 514 1 add 515 513 514 store vi 515 -jmp L5051 -label L5053 +jmp L5059 +label L5061 load 516 chain_l call 517 ir_call_emit_ir_emit_label void 1 516 strref 518 m46s833 @@ -171409,13 +171512,13 @@ call 569 pith_cstring_release void 1 565 strref 570 m46s877 call 571 ir_builder_ir_emit void 1 570 call 572 pith_cstring_release void 1 570 -label L5046 +label L5054 load 573 __for_idx_391 iconst 574 1 add 575 573 574 store __for_idx_391 575 -jmp L5044 -label L5047 +jmp L5052 +label L5055 load 576 __for_iter_391 call 577 pith_list_release_handle void 1 576 load 578 true_l @@ -171454,16 +171557,16 @@ load 7 parts field 8 7 8 int val_idx iconst 9 0 lt 10 8 9 -brif 10 L5066 L5067 -label L5066 +brif 10 L5074 L5075 +label L5074 iconst 11 0 load 12 parts call 13 pith_struct_release void 1 12 load 14 vk call 15 pith_cstring_release void 1 14 ret 11 -label L5067 -label L5065 +label L5075 +label L5073 load 16 vk load 17 parts field 18 17 8 int val_idx @@ -171473,93 +171576,93 @@ call 21 pith_cstring_retain void 1 20 call 22 pith_cstring_release void 1 16 store vk 20 iconst 23 0 -store __or_23_5071 23 +store __or_23_5079 23 iconst 24 0 -store __or_24_5071 24 +store __or_24_5079 24 iconst 25 0 -store __or_25_5071 25 +store __or_25_5079 25 load 26 vk strref 27 m46s519 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 -store __or_25_5071 28 -brif 28 L5072 L5071 -label L5071 +store __or_25_5079 28 +brif 28 L5080 L5079 +label L5079 load 30 vk strref 31 m46s516 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 -store __or_25_5071 32 -label L5072 -load 34 __or_25_5071 -store __or_24_5071 34 -brif 34 L5074 L5073 -label L5073 +store __or_25_5079 32 +label L5080 +load 34 __or_25_5079 +store __or_24_5079 34 +brif 34 L5082 L5081 +label L5081 load 35 vk strref 36 m46s75 call 37 pith_cstring_eq bool 2 35 36 call 38 pith_cstring_release void 1 36 -store __or_24_5071 37 -label L5074 -load 39 __or_24_5071 -store __or_23_5071 39 -brif 39 L5076 L5075 -label L5075 +store __or_24_5079 37 +label L5082 +load 39 __or_24_5079 +store __or_23_5079 39 +brif 39 L5084 L5083 +label L5083 load 40 vk strref 41 m46s74 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 -store __or_23_5071 42 -label L5076 -load 44 __or_23_5071 -brif 44 L5069 L5070 -label L5069 +store __or_23_5079 42 +label L5084 +load 44 __or_23_5079 +brif 44 L5077 L5078 +label L5077 iconst 45 0 load 46 parts call 47 pith_struct_release void 1 46 load 48 vk call 49 pith_cstring_release void 1 48 ret 45 -label L5070 -label L5068 +label L5078 +label L5076 iconst 50 0 -store __or_50_5080 50 +store __or_50_5088 50 iconst 51 0 -store __or_51_5080 51 +store __or_51_5088 51 load 52 vk strref 53 m46s517 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 -store __or_51_5080 54 -brif 54 L5081 L5080 -label L5080 +store __or_51_5088 54 +brif 54 L5089 L5088 +label L5088 load 56 vk strref 57 m46s675 call 58 pith_cstring_eq bool 2 56 57 call 59 pith_cstring_release void 1 57 -store __or_51_5080 58 -label L5081 -load 60 __or_51_5080 -store __or_50_5080 60 -brif 60 L5083 L5082 -label L5082 +store __or_51_5088 58 +label L5089 +load 60 __or_51_5088 +store __or_50_5088 60 +brif 60 L5091 L5090 +label L5090 load 61 vk strref 62 m46s1025 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 -store __or_50_5080 63 -label L5083 -load 65 __or_50_5080 -brif 65 L5078 L5079 -label L5078 +store __or_50_5088 63 +label L5091 +load 65 __or_50_5088 +brif 65 L5086 L5087 +label L5086 iconst 66 0 load 67 parts call 68 pith_struct_release void 1 67 load 69 vk call 70 pith_cstring_release void 1 69 ret 66 -label L5079 -label L5077 +label L5087 +label L5085 iconst 71 1 load 72 parts call 73 pith_struct_release void 1 72 @@ -171596,12 +171699,12 @@ iconst 11 0 store __for_idx_392 11 store __for_len_392 10 store __for_iter_392 9 -label L5084 +label L5092 load 12 __for_idx_392 load 13 __for_len_392 lt 14 12 13 -brif 14 L5085 L5087 -label L5085 +brif 14 L5093 L5095 +label L5093 load 15 __for_iter_392 load 16 __for_idx_392 call 17 pith_list_get_value unknown 2 15 16 @@ -171612,37 +171715,37 @@ call 20 ir_ast_helpers_ir_unwrap_pub_node struct:Node 1 19 call 21 pith_struct_release void 1 18 store cn 20 iconst 22 0 -store __and_22_5091 22 +store __and_22_5099 22 load 23 cn field 24 23 0 string kind call 25 ir_ast_helpers_ir_is_binding_kind bool 1 24 -store __and_22_5091 25 -brif 25 L5091 L5092 -label L5091 +store __and_22_5099 25 +brif 25 L5099 L5100 +label L5099 load 26 cn call 27 ir_emitter_core_ir_global_needs_runtime_init bool 1 26 -store __and_22_5091 27 -label L5092 -load 28 __and_22_5091 -brif 28 L5089 L5090 -label L5089 +store __and_22_5099 27 +label L5100 +load 28 __and_22_5099 +brif 28 L5097 L5098 +label L5097 iconst 29 1 store has_runtime_inits 29 -jmp L5088 -label L5090 -label L5088 -label L5086 +jmp L5096 +label L5098 +label L5096 +label L5094 load 30 __for_idx_392 iconst 31 1 add 32 30 31 store __for_idx_392 32 -jmp L5084 -label L5087 +jmp L5092 +label L5095 load 33 has_runtime_inits iconst 35 1 sub 34 35 33 -brif 34 L5094 L5095 -label L5094 +brif 34 L5102 L5103 +label L5102 load 36 cn call 37 pith_struct_release void 1 36 load 38 gname @@ -171657,8 +171760,8 @@ load 46 gkind call 47 pith_cstring_release void 1 46 iconst 48 0 ret 48 -label L5095 -label L5093 +label L5103 +label L5101 strref 49 m46s1157 iconst 50 0 strref 51 m46s671 @@ -171672,12 +171775,12 @@ iconst 58 0 store __for_idx_393 58 store __for_len_393 57 store __for_iter_393 56 -label L5096 +label L5104 load 59 __for_idx_393 load 60 __for_len_393 lt 61 59 60 -brif 61 L5097 L5099 -label L5097 +brif 61 L5105 L5107 +label L5105 load 62 __for_iter_393 load 63 __for_idx_393 call 64 pith_list_get_value unknown 2 62 63 @@ -171688,20 +171791,20 @@ call 67 ir_ast_helpers_ir_unwrap_pub_node struct:Node 1 66 call 68 pith_struct_release void 1 65 store cn 67 iconst 69 0 -store __and_69_5103 69 +store __and_69_5111 69 load 70 cn field 71 70 0 string kind call 72 ir_ast_helpers_ir_is_binding_kind bool 1 71 -store __and_69_5103 72 -brif 72 L5103 L5104 -label L5103 +store __and_69_5111 72 +brif 72 L5111 L5112 +label L5111 load 73 cn call 74 ir_emitter_core_ir_global_needs_runtime_init bool 1 73 -store __and_69_5103 74 -label L5104 -load 75 __and_69_5103 -brif 75 L5101 L5102 -label L5101 +store __and_69_5111 74 +label L5112 +load 75 __and_69_5111 +brif 75 L5109 L5110 +label L5109 load 76 gname load 77 cn call 78 ir_ast_helpers_ir_binding_name string 1 77 @@ -171720,32 +171823,32 @@ load 87 parts field 88 87 16 int type_idx iconst 89 0 gte 90 88 89 -brif 90 L5106 L5107 -label L5106 +brif 90 L5114 L5115 +label L5114 load 91 target load 92 parts field 93 92 16 int type_idx call 94 ir_alias_registry_ir_resolve_type_node string 1 93 call 95 pith_cstring_release void 1 91 store target 94 -jmp L5105 -label L5107 -label L5105 +jmp L5113 +label L5115 +label L5113 load 96 target call 97 string_len int 1 96 iconst 98 0 eq 99 97 98 -brif 99 L5109 L5110 -label L5109 +brif 99 L5117 L5118 +label L5117 load 100 target load 101 parts field 102 101 8 int val_idx call 103 ir_emitter_core_ir_infer_type string 1 102 call 104 pith_cstring_release void 1 100 store target 103 -jmp L5108 -label L5110 -label L5108 +jmp L5116 +label L5118 +label L5116 load 105 gtarget load 106 gname load 107 target @@ -171763,42 +171866,42 @@ call 116 ir_struct_registry_ir_rc_kind string 1 115 call 117 pith_cstring_release void 1 114 store gkind 116 iconst 118 0 -store __and_118_5114 118 +store __and_118_5122 118 iconst 119 0 -store __and_119_5114 119 +store __and_119_5122 119 load 120 gkind call 121 string_len int 1 120 iconst 122 0 gt 123 121 122 -store __and_119_5114 123 -brif 123 L5114 L5115 -label L5114 +store __and_119_5122 123 +brif 123 L5122 L5123 +label L5122 load 124 gtarget strref 125 m46s23 call 127 pith_cstring_eq bool 2 124 125 iconst 128 1 sub 126 128 127 call 129 pith_cstring_release void 1 125 -store __and_119_5114 126 -label L5115 -load 130 __and_119_5114 -store __and_118_5114 130 -brif 130 L5116 L5117 -label L5116 +store __and_119_5122 126 +label L5123 +load 130 __and_119_5122 +store __and_118_5122 130 +brif 130 L5124 L5125 +label L5124 load 131 parts field 132 131 8 int val_idx call 133 ir_emitter_core_ir_string_expr_is_borrowed bool 1 132 -store __and_118_5114 133 -label L5117 -load 134 __and_118_5114 -brif 134 L5112 L5113 -label L5112 +store __and_118_5122 133 +label L5125 +load 134 __and_118_5122 +brif 134 L5120 L5121 +label L5120 load 135 r load 136 gkind call 137 ir_ownership_ir_rc_retain_reg void 2 135 136 -jmp L5111 -label L5113 -label L5111 +jmp L5119 +label L5121 +label L5119 strref 138 m46s830 load 139 gname concat 140 138 139 @@ -171814,16 +171917,16 @@ call 149 pith_cstring_release void 1 143 call 150 pith_cstring_release void 1 147 call 151 ir_builder_ir_emit void 1 148 call 152 pith_cstring_release void 1 148 -jmp L5100 -label L5102 -label L5100 -label L5098 +jmp L5108 +label L5110 +label L5108 +label L5106 load 153 __for_idx_393 iconst 154 1 add 155 153 154 store __for_idx_393 155 -jmp L5096 -label L5099 +jmp L5104 +label L5107 call 156 ir_builder_ir_reg int 0 store dr 156 strref 157 m46s832 @@ -171880,12 +171983,12 @@ iconst 8 0 store __for_idx_394 8 store __for_len_394 7 store __for_iter_394 6 -label L5118 +label L5126 load 9 __for_idx_394 load 10 __for_len_394 lt 11 9 10 -brif 11 L5119 L5121 -label L5119 +brif 11 L5127 L5129 +label L5127 load 12 __for_iter_394 load 13 __for_idx_394 call 14 pith_list_get_value unknown 2 12 13 @@ -171896,67 +171999,67 @@ call 17 ast_get_node struct:Node 1 16 call 18 pith_struct_release void 1 15 store actual_node 17 iconst 19 0 -store __or_19_5125 19 +store __or_19_5133 19 load 20 actual_node field 21 20 0 string kind strref 22 m46s618 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 -store __or_19_5125 23 -brif 23 L5126 L5125 -label L5125 +store __or_19_5133 23 +brif 23 L5134 L5133 +label L5133 load 25 actual_node field 26 25 0 string kind strref 27 m46s576 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 -store __or_19_5125 28 -label L5126 -load 30 __or_19_5125 -brif 30 L5123 L5124 -label L5123 +store __or_19_5133 28 +label L5134 +load 30 __or_19_5133 +brif 30 L5131 L5132 +label L5131 load 31 actual_node call 32 ir_generics_ir_has_generic_params bool 1 31 -brif 32 L5128 L5129 -label L5128 -jmp L5120 -label L5129 -label L5127 +brif 32 L5136 L5137 +label L5136 +jmp L5128 +label L5137 +label L5135 iconst 33 0 -store __and_33_5133 33 +store __and_33_5141 33 load 34 ir_emitter_core_ir_emit_tests -store __and_33_5133 34 -brif 34 L5133 L5134 -label L5133 +store __and_33_5141 34 +brif 34 L5141 L5142 +label L5141 load 35 actual_node field 36 35 8 string value strref 37 m46s1156 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 -store __and_33_5133 38 -label L5134 -load 40 __and_33_5133 +store __and_33_5141 38 +label L5142 +load 40 __and_33_5141 iconst 42 1 sub 41 42 40 -brif 41 L5131 L5132 -label L5131 +brif 41 L5139 L5140 +label L5139 load 43 __loopvar_394_item_idx call 44 ir_emitter_core_ir_func void 1 43 +jmp L5138 +label L5140 +label L5138 jmp L5130 label L5132 -label L5130 -jmp L5122 -label L5124 load 45 actual_node field 46 45 0 string kind strref 47 m46s587 call 48 pith_cstring_eq bool 2 46 47 call 49 pith_cstring_release void 1 47 -brif 48 L5135 L5136 -label L5135 +brif 48 L5143 L5144 +label L5143 load 50 ir_emitter_core_ir_emit_tests -brif 50 L5138 L5139 -label L5138 +brif 50 L5146 L5147 +label L5146 load 51 __loopvar_394_item_idx load 52 test_ord call 53 ir_emitter_core_ir_emit_test_func void 2 51 52 @@ -171964,18 +172067,18 @@ load 54 test_ord iconst 55 1 add 56 54 55 store test_ord 56 -jmp L5137 -label L5139 -label L5137 -jmp L5122 -label L5136 +jmp L5145 +label L5147 +label L5145 +jmp L5130 +label L5144 load 57 actual_node field 58 57 0 string kind strref 59 m46s588 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 -brif 60 L5140 L5141 -label L5140 +brif 60 L5148 L5149 +label L5148 load 62 impl_type load 63 actual_node call 64 ir_emitter_core_ir_impl_target_type string 1 63 @@ -171984,26 +172087,26 @@ store impl_type 64 load 66 actual_node load 67 impl_type call 68 ir_emitter_core_ir_emit_impl_methods void 2 66 67 -jmp L5122 -label L5141 -label L5122 -label L5120 +jmp L5130 +label L5149 +label L5130 +label L5128 load 69 __for_idx_394 iconst 70 1 add 71 69 70 store __for_idx_394 71 -jmp L5118 -label L5121 +jmp L5126 +label L5129 load 72 __for_iter_394 call 73 pith_list_release_handle void 1 72 load 74 ir_emitter_core_ir_emit_tests -brif 74 L5143 L5144 -label L5143 +brif 74 L5151 L5152 +label L5151 load 75 root_idx call 76 ir_emitter_core_ir_emit_test_main void 1 75 -jmp L5142 -label L5144 -label L5142 +jmp L5150 +label L5152 +label L5150 load 77 actual_node call 78 pith_struct_release void 1 77 load 79 impl_type @@ -172043,12 +172146,12 @@ iconst 10 0 store __for_idx_395 10 store __for_len_395 9 store __for_iter_395 8 -label L5145 +label L5153 load 11 __for_idx_395 load 12 __for_len_395 lt 13 11 12 -brif 13 L5146 L5148 -label L5146 +brif 13 L5154 L5156 +label L5154 load 14 __for_iter_395 load 15 __for_idx_395 call 16 pith_list_get_value_unchecked string 2 14 15 @@ -172060,13 +172163,13 @@ call 20 pith_cstring_release void 1 18 call 21 ir_builder_ir_str string 1 19 call 22 pith_cstring_release void 1 19 call 23 pith_cstring_release void 1 21 -label L5147 +label L5155 load 24 __for_idx_395 iconst 25 1 add 26 24 25 store __for_idx_395 26 -jmp L5145 -label L5148 +jmp L5153 +label L5156 load 27 builtin_names call 28 pith_list_release_handle void 1 27 iconst 29 0 @@ -172086,12 +172189,12 @@ iconst 6 0 store __for_idx_396 6 store __for_len_396 5 store __for_iter_396 4 -label L5149 +label L5157 load 7 __for_idx_396 load 8 __for_len_396 lt 9 7 8 -brif 9 L5150 L5152 -label L5150 +brif 9 L5158 L5160 +label L5158 load 10 __for_iter_396 load 11 __for_idx_396 call 12 pith_list_get_value unknown 2 10 11 @@ -172103,13 +172206,13 @@ load 15 ir_emitter_core_ir_preloaded_import_paths load 16 __loopvar_396_i call 17 pith_list_get_value_strict string 2 15 16 call 18 ir_alias_registry_ir_collect_preloaded_root_metadata void 2 14 17 -label L5151 +label L5159 load 19 __for_idx_396 iconst 20 1 add 21 19 20 store __for_idx_396 21 -jmp L5149 -label L5152 +jmp L5157 +label L5160 iconst 22 0 ret 22 endfunc @@ -172135,12 +172238,12 @@ iconst 11 0 store __for_idx_397 11 store __for_len_397 10 store __for_iter_397 9 -label L5153 +label L5161 load 12 __for_idx_397 load 13 __for_len_397 lt 14 12 13 -brif 14 L5154 L5156 -label L5154 +brif 14 L5162 L5164 +label L5162 load 15 __for_iter_397 load 16 __for_idx_397 call 17 pith_list_get_value unknown 2 15 16 @@ -172155,8 +172258,8 @@ load 22 __loopvar_397_preload_i load 23 ir_emitter_core_ir_preloaded_import_paths call 24 pith_list_len int 1 23 lt 25 22 24 -brif 25 L5158 L5159 -label L5158 +brif 25 L5166 L5167 +label L5166 load 26 module_path load 27 ir_emitter_core_ir_preloaded_import_paths load 28 __loopvar_397_preload_i @@ -172164,9 +172267,9 @@ call 29 pith_list_get_value_strict string 2 27 28 call 30 pith_cstring_retain void 1 29 call 31 pith_cstring_release void 1 26 store module_path 29 -jmp L5157 -label L5159 -label L5157 +jmp L5165 +label L5167 +label L5165 load 32 __loopvar_397_root call 33 ir_tree_cache_ir_root_items list 1 32 call 34 pith_auto_len int 1 33 @@ -172174,12 +172277,12 @@ iconst 35 0 store __for_idx_398 35 store __for_len_398 34 store __for_iter_398 33 -label L5160 +label L5168 load 36 __for_idx_398 load 37 __for_len_398 lt 38 36 37 -brif 38 L5161 L5163 -label L5161 +brif 38 L5169 L5171 +label L5169 load 39 __for_iter_398 load 40 __for_idx_398 call 41 pith_list_get_value unknown 2 39 40 @@ -172192,8 +172295,8 @@ store node 44 load 46 node field 47 46 0 string kind call 48 ir_generics_ir_is_fn_decl_kind bool 1 47 -brif 48 L5165 L5166 -label L5165 +brif 48 L5173 L5174 +label L5173 load 49 module_path load 50 node field 51 50 8 string value @@ -172201,28 +172304,28 @@ call 52 ir_names_ir_import_target_name string 2 49 51 load 53 node call 54 ir_emitter_core_ir_record_function_return_as void 2 52 53 call 55 pith_cstring_release void 1 52 -jmp L5164 -label L5166 -label L5164 -label L5162 +jmp L5172 +label L5174 +label L5172 +label L5170 load 56 __for_idx_398 iconst 57 1 add 58 56 57 store __for_idx_398 58 -jmp L5160 -label L5163 +jmp L5168 +label L5171 load 59 __for_iter_398 call 60 pith_list_release_handle void 1 59 load 61 __loopvar_397_root load 62 module_path call 63 ir_emitter_core_ir_collect_generic_function_decls_from_root void 2 61 62 -label L5155 +label L5163 load 64 __for_idx_397 iconst 65 1 add 66 64 65 store __for_idx_397 66 -jmp L5153 -label L5156 +jmp L5161 +label L5164 load 67 root_idx call 68 ir_tree_cache_ir_root_items list 1 67 call 69 pith_auto_len int 1 68 @@ -172230,12 +172333,12 @@ iconst 70 0 store __for_idx_399 70 store __for_len_399 69 store __for_iter_399 68 -label L5167 +label L5175 load 71 __for_idx_399 load 72 __for_len_399 lt 73 71 72 -brif 73 L5168 L5170 -label L5168 +brif 73 L5176 L5178 +label L5176 load 74 __for_iter_399 load 75 __for_idx_399 call 76 pith_list_get_value unknown 2 74 75 @@ -172252,8 +172355,8 @@ field 84 83 0 string kind strref 85 m46s603 call 86 pith_cstring_eq bool 2 84 85 call 87 pith_cstring_release void 1 85 -brif 86 L5172 L5173 -label L5172 +brif 86 L5180 L5181 +label L5180 load 88 target load 89 node call 90 ir_emitter_core_ir_type_alias_target string 1 89 @@ -172263,47 +172366,47 @@ load 92 target call 93 string_len int 1 92 iconst 94 0 gt 95 93 94 -brif 95 L5175 L5176 -label L5175 +brif 95 L5183 L5184 +label L5183 load 96 ir_alias_registry_ir_type_aliases load 97 node field 98 97 8 string value load 99 target call 100 map_insert void 3 96 98 99 -jmp L5174 -label L5176 -label L5174 -jmp L5171 -label L5173 +jmp L5182 +label L5184 +label L5182 +jmp L5179 +label L5181 load 101 node field 102 101 0 string kind call 103 ir_generics_ir_is_fn_decl_kind bool 1 102 -brif 103 L5177 L5178 -label L5177 +brif 103 L5185 L5186 +label L5185 load 104 node call 105 ir_emitter_core_ir_record_function_return void 1 104 load 106 node call 107 ir_generics_ir_has_generic_params bool 1 106 -brif 107 L5180 L5181 -label L5180 +brif 107 L5188 L5189 +label L5188 load 108 __loopvar_399_item_idx load 109 node strref 110 m46s82 call 111 ir_generics_ir_record_generic_function_decl void 3 108 109 110 call 112 pith_cstring_release void 1 110 +jmp L5187 +label L5189 +label L5187 jmp L5179 -label L5181 +label L5186 label L5179 -jmp L5171 -label L5178 -label L5171 -label L5169 +label L5177 load 113 __for_idx_399 iconst 114 1 add 115 113 114 store __for_idx_399 115 -jmp L5167 -label L5170 +jmp L5175 +label L5178 load 116 __for_iter_399 call 117 pith_list_release_handle void 1 116 load 118 module_path @@ -172342,13 +172445,13 @@ call 19 map_clear void 1 18 call 20 ir_emitter_core_ir_register_known_import_structs void 0 iconst 21 0 store iface_i 21 -label L5182 +label L5190 load 22 iface_i load 23 ir_emitter_core_ir_preloaded_import_roots call 24 pith_list_len int 1 23 lt 25 22 24 -brif 25 L5183 L5184 -label L5183 +brif 25 L5191 L5192 +label L5191 load 26 ir_emitter_core_ir_preloaded_import_roots load 27 iface_i call 28 pith_list_get_value_strict int 2 26 27 @@ -172361,21 +172464,21 @@ load 34 iface_i iconst 35 1 add 36 34 35 store iface_i 36 -jmp L5182 -label L5184 +jmp L5190 +label L5192 load 37 root_idx call 38 ir_emitter_core_ir_index_interfaces_in_root void 1 37 load 39 root_idx call 40 ir_emitter_core_ir_collect_assoc_bindings_in_root void 1 39 iconst 41 0 store preload_i 41 -label L5185 +label L5193 load 42 preload_i load 43 ir_emitter_core_ir_preloaded_import_roots call 44 pith_list_len int 1 43 lt 45 42 44 -brif 45 L5186 L5187 -label L5186 +brif 45 L5194 L5195 +label L5194 load 46 ir_emitter_core_ir_preloaded_import_roots load 47 preload_i call 48 pith_list_get_value_strict int 2 46 47 @@ -172392,8 +172495,8 @@ load 58 preload_i iconst 59 1 add 60 58 59 store preload_i 60 -jmp L5185 -label L5187 +jmp L5193 +label L5195 load 61 root_idx call 62 ir_tree_cache_ir_root_items list 1 61 call 63 pith_auto_len int 1 62 @@ -172401,12 +172504,12 @@ iconst 64 0 store __for_idx_400 64 store __for_len_400 63 store __for_iter_400 62 -label L5188 +label L5196 load 65 __for_idx_400 load 66 __for_len_400 lt 67 65 66 -brif 67 L5189 L5191 -label L5189 +brif 67 L5197 L5199 +label L5197 load 68 __for_iter_400 load 69 __for_idx_400 call 70 pith_list_get_value unknown 2 68 69 @@ -172417,77 +172520,77 @@ call 73 ast_get_node struct:Node 1 72 call 74 pith_struct_release void 1 71 store node 73 iconst 75 0 -store __or_75_5195 75 +store __or_75_5203 75 load 76 node field 77 76 0 string kind strref 78 m46s31 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 -store __or_75_5195 79 -brif 79 L5196 L5195 -label L5195 +store __or_75_5203 79 +brif 79 L5204 L5203 +label L5203 load 81 node field 82 81 0 string kind strref 83 m46s15 call 84 pith_cstring_eq bool 2 82 83 call 85 pith_cstring_release void 1 83 -store __or_75_5195 84 -label L5196 -load 86 __or_75_5195 -brif 86 L5193 L5194 -label L5193 +store __or_75_5203 84 +label L5204 +load 86 __or_75_5203 +brif 86 L5201 L5202 +label L5201 load 87 __loopvar_400_item_idx load 88 node iconst 89 1 call 90 ir_emitter_core_ir_collect_struct_decl void 3 87 88 89 -jmp L5192 -label L5194 +jmp L5200 +label L5202 iconst 91 0 -store __or_91_5199 91 +store __or_91_5207 91 load 92 node field 93 92 0 string kind strref 94 m46s30 call 95 pith_cstring_eq bool 2 93 94 call 96 pith_cstring_release void 1 94 -store __or_91_5199 95 -brif 95 L5200 L5199 -label L5199 +store __or_91_5207 95 +brif 95 L5208 L5207 +label L5207 load 97 node field 98 97 0 string kind strref 99 m46s14 call 100 pith_cstring_eq bool 2 98 99 call 101 pith_cstring_release void 1 99 -store __or_91_5199 100 -label L5200 -load 102 __or_91_5199 -brif 102 L5197 L5198 -label L5197 +store __or_91_5207 100 +label L5208 +load 102 __or_91_5207 +brif 102 L5205 L5206 +label L5205 load 103 node iconst 104 1 call 105 ir_emitter_core_ir_collect_enum_decl void 2 103 104 -jmp L5192 -label L5198 +jmp L5200 +label L5206 load 106 node field 107 106 0 string kind strref 108 m46s588 call 109 pith_cstring_eq bool 2 107 108 call 110 pith_cstring_release void 1 108 -brif 109 L5201 L5202 -label L5201 +brif 109 L5209 L5210 +label L5209 load 111 node strref 112 m46s82 call 113 ir_emitter_core_ir_collect_impl_method_signatures void 2 111 112 call 114 pith_cstring_release void 1 112 -jmp L5192 -label L5202 -label L5192 -label L5190 +jmp L5200 +label L5210 +label L5200 +label L5198 load 115 __for_idx_400 iconst 116 1 add 117 115 116 store __for_idx_400 117 -jmp L5188 -label L5191 +jmp L5196 +label L5199 load 118 __for_iter_400 call 119 pith_list_release_handle void 1 118 load 120 root_idx @@ -172542,12 +172645,12 @@ iconst 7 0 store __for_idx_401 7 store __for_len_401 6 store __for_iter_401 5 -label L5203 +label L5211 load 8 __for_idx_401 load 9 __for_len_401 lt 10 8 9 -brif 10 L5204 L5206 -label L5204 +brif 10 L5212 L5214 +label L5212 load 11 __for_iter_401 load 12 __for_idx_401 call 13 pith_list_get_value unknown 2 11 12 @@ -172564,24 +172667,24 @@ field 20 19 0 string kind strref 21 m46s577 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L5208 L5209 -label L5208 +brif 22 L5216 L5217 +label L5216 load 24 node field 25 24 16 list children iconst 26 0 call 27 pith_list_get_value_strict int 2 25 26 call 28 ast_get_node struct:Node 1 27 store actual_node 28 -jmp L5207 -label L5209 -label L5207 +jmp L5215 +label L5217 +label L5215 load 29 actual_node field 30 29 0 string kind strref 31 m46s588 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 -brif 32 L5211 L5212 -label L5211 +brif 32 L5219 L5220 +label L5219 load 34 impl_type load 35 actual_node call 36 ir_emitter_core_ir_impl_target_type string 1 35 @@ -172591,24 +172694,24 @@ load 38 impl_type call 39 string_len int 1 38 iconst 40 0 gt 41 39 40 -brif 41 L5214 L5215 -label L5214 +brif 41 L5222 L5223 +label L5222 load 42 actual_node load 43 impl_type call 44 ir_emitter_core_ir_register_impl_method_specialization_names void 2 42 43 -jmp L5213 -label L5215 +jmp L5221 +label L5223 +label L5221 +jmp L5218 +label L5220 +label L5218 label L5213 -jmp L5210 -label L5212 -label L5210 -label L5205 load 45 __for_idx_401 iconst 46 1 add 47 45 46 store __for_idx_401 47 -jmp L5203 -label L5206 +jmp L5211 +label L5214 load 48 __for_iter_401 call 49 pith_list_release_handle void 1 48 load 50 node @@ -172639,8 +172742,8 @@ load 9 impl_type call 10 checker_has_generic_declaration bool 1 9 iconst 12 1 sub 11 12 10 -brif 11 L5217 L5218 -label L5217 +brif 11 L5225 L5226 +label L5225 load 13 sdecl call 14 pith_struct_release void 1 13 load 15 struct_params @@ -172657,8 +172760,8 @@ load 25 child_node call 26 pith_struct_release void 1 25 iconst 27 0 ret 27 -label L5218 -label L5216 +label L5226 +label L5224 load 28 sdecl load 29 impl_type call 30 checker_get_generic_declaration_index int 1 29 @@ -172674,8 +172777,8 @@ load 37 struct_params call 38 pith_list_len int 1 37 iconst 39 0 eq 40 38 39 -brif 40 L5220 L5221 -label L5220 +brif 40 L5228 L5229 +label L5228 load 41 sdecl call 42 pith_struct_release void 1 41 load 43 struct_params @@ -172692,8 +172795,8 @@ load 53 child_node call 54 pith_struct_release void 1 53 iconst 55 0 ret 55 -label L5221 -label L5219 +label L5229 +label L5227 load 56 instance_tids load 57 checker_struct_instance_tids call 58 pith_list_retain_handle void 1 57 @@ -172705,12 +172808,12 @@ iconst 62 0 store __for_idx_402 62 store __for_len_402 61 store __for_iter_402 60 -label L5222 +label L5230 load 63 __for_idx_402 load 64 __for_len_402 lt 65 63 64 -brif 65 L5223 L5225 -label L5223 +brif 65 L5231 L5233 +label L5231 load 66 __for_iter_402 load 67 __for_idx_402 call 68 pith_list_get_value unknown 2 66 67 @@ -172722,21 +172825,21 @@ load 72 impl_type call 74 pith_cstring_eq bool 2 71 72 iconst 75 1 sub 73 75 74 -brif 73 L5227 L5228 -label L5227 -jmp L5224 -label L5228 -label L5226 +brif 73 L5235 L5236 +label L5235 +jmp L5232 +label L5236 +label L5234 load 76 checker_struct_instance_type_args load 77 __loopvar_402_inst_tid call 78 map_contains_ikey bool 2 76 77 iconst 80 1 sub 79 80 78 -brif 79 L5230 L5231 -label L5230 -jmp L5224 -label L5231 -label L5229 +brif 79 L5238 L5239 +label L5238 +jmp L5232 +label L5239 +label L5237 load 81 arg_tids load 82 checker_struct_instance_type_args load 83 __loopvar_402_inst_tid @@ -172754,12 +172857,12 @@ iconst 92 0 store __for_idx_403 92 store __for_len_403 91 store __for_iter_403 90 -label L5232 +label L5240 load 93 __for_idx_403 load 94 __for_len_403 lt 95 93 94 -brif 95 L5233 L5235 -label L5233 +brif 95 L5241 L5243 +label L5241 load 96 __for_iter_403 load 97 __for_idx_403 call 98 pith_list_get_value unknown 2 96 97 @@ -172768,13 +172871,13 @@ load 99 arg_names load 100 __loopvar_403_at call 101 ir_type_helpers_ir_type_from_tid string 1 100 call 102 pith_list_push_value_owned void 2 99 101 -label L5234 +label L5242 load 103 __for_idx_403 iconst 104 1 add 105 103 104 store __for_idx_403 105 -jmp L5232 -label L5235 +jmp L5240 +label L5243 load 106 instance_type_name load 107 __loopvar_402_inst_tid call 108 types_get_type_name string 1 107 @@ -172787,12 +172890,12 @@ iconst 113 0 store __for_idx_404 113 store __for_len_404 112 store __for_iter_404 111 -label L5236 +label L5244 load 114 __for_idx_404 load 115 __for_len_404 lt 116 114 115 -brif 116 L5237 L5239 -label L5237 +brif 116 L5245 L5247 +label L5245 load 117 __for_iter_404 load 118 __for_idx_404 call 119 pith_list_get_value unknown 2 117 118 @@ -172807,30 +172910,30 @@ field 125 124 0 string kind strref 126 m46s576 call 127 pith_cstring_eq bool 2 125 126 call 128 pith_cstring_release void 1 126 -brif 127 L5241 L5242 -label L5241 +brif 127 L5249 L5250 +label L5249 load 129 child_node load 130 impl_type load 131 instance_type_name load 132 arg_names call 133 ir_method_tables_ir_register_one_specialized_method_name void 4 129 130 131 132 -jmp L5240 -label L5242 -label L5240 -label L5238 +jmp L5248 +label L5250 +label L5248 +label L5246 load 134 __for_idx_404 iconst 135 1 add 136 134 135 store __for_idx_404 136 -jmp L5236 -label L5239 -label L5224 +jmp L5244 +label L5247 +label L5232 load 137 __for_idx_402 iconst 138 1 add 139 137 138 store __for_idx_402 139 -jmp L5222 -label L5225 +jmp L5230 +label L5233 load 140 sdecl call 141 pith_struct_release void 1 140 load 142 struct_params @@ -172880,13 +172983,13 @@ call 8 pith_struct_release void 1 5 store root 7 iconst 9 0 store preload_i 9 -label L5243 +label L5251 load 10 preload_i load 11 ir_emitter_core_ir_preloaded_import_roots call 12 pith_list_len int 1 11 lt 13 10 12 -brif 13 L5244 L5245 -label L5244 +brif 13 L5252 L5253 +label L5252 load 14 ir_emitter_core_ir_preloaded_import_roots load 15 preload_i call 16 pith_list_get_value_strict int 2 14 15 @@ -172899,16 +173002,16 @@ load 22 preload_i iconst 23 1 add 24 22 23 store preload_i 24 -jmp L5243 -label L5245 +jmp L5251 +label L5253 load 25 root_idx call 26 ir_emitter_core_ir_collect_strings void 1 25 load 27 root_idx call 28 ir_emitter_core_ir_collect_struct_field_strings void 1 27 call 29 ir_emitter_core_ir_preseed_result_error_strings void 0 load 30 ir_emitter_core_ir_emit_tests -brif 30 L5247 L5248 -label L5247 +brif 30 L5255 L5256 +label L5255 load 31 root_idx call 32 ir_emitter_core_ir_collect_test_decls list 1 31 call 33 pith_auto_len int 1 32 @@ -172916,12 +173019,12 @@ iconst 34 0 store __for_idx_405 34 store __for_len_405 33 store __for_iter_405 32 -label L5249 +label L5257 load 35 __for_idx_405 load 36 __for_len_405 lt 37 35 36 -brif 37 L5250 L5252 -label L5250 +brif 37 L5258 L5260 +label L5258 load 38 __for_iter_405 load 39 __for_idx_405 call 40 pith_list_get_value unknown 2 38 39 @@ -172933,18 +173036,18 @@ field 44 43 8 string value call 45 ir_builder_ir_str string 1 44 call 46 pith_cstring_release void 1 41 store _name_id 45 -label L5251 +label L5259 load 47 __for_idx_405 iconst 48 1 add 49 47 48 store __for_idx_405 49 -jmp L5249 -label L5252 +jmp L5257 +label L5260 load 50 __for_iter_405 call 51 pith_list_release_handle void 1 50 -jmp L5246 -label L5248 -label L5246 +jmp L5254 +label L5256 +label L5254 call 52 ir_builder_ir_emit_string_table void 0 load 53 root_idx call 54 ir_emitter_core_ir_collect_root_import_metadata void 1 53 diff --git a/self-host/ir_emitter_core.pith b/self-host/ir_emitter_core.pith index 1ce6e0da..32d330cf 100644 --- a/self-host/ir_emitter_core.pith +++ b/self-host/ir_emitter_core.pith @@ -3355,6 +3355,16 @@ fn ir_emit_static_call(idx: Int, node: Node) -> Int: callee = ir_resolve_static_callee(node.children[0]) if callee.name.len() == 0: callee = ResolvedCallee("unknown", false) + # a call through a loop variable: `for f in fns:` binds f to a loop + # slot, so the call has to name that slot or the consumer will look up + # a variable that does not exist and fall through to the error stub. + # only a name that is not a declared function can be a variable call, + # which keeps a loop variable that shadows nothing extra out of this. + callee_n := get_node(node.children[0]) + if callee_n.kind == "ident" and not ir_is_declared_callable(callee.name): + loop_slot := ir_loop_var_slot(callee.name) + if loop_slot.len() > 0: + callee = ResolvedCallee(loop_slot, callee.imported) # ord of any byte operand is just that byte: ord(s[i]) reads it with byte_at # instead of minting a one-character string, and ord("/") folds to a # constant. the argument is wrapped in an "arg" node, so unwrap it first. diff --git a/tests/cases/test_loop_var_fn_call.pith b/tests/cases/test_loop_var_fn_call.pith new file mode 100644 index 00000000..612e72ec --- /dev/null +++ b/tests/cases/test_loop_var_fn_call.pith @@ -0,0 +1,44 @@ +# calling a function through a `for` loop variable. +# +# the loop variable lives in its own storage slot (that is what keeps it from +# clobbering an outer binding of the same name), so a call through it has to +# name that slot. it used to name the source variable instead, the consumer +# found no such variable, and the call fell through to the runtime's +# unresolved-function stub — a compile-clean program that died at runtime. +# indexing the list always worked, which is why this hid for a while. + +fn double(x: Int) -> Int: + return x * 2 + +fn add_one(x: Int) -> Int: + return x + 1 + +fn describe(x: Int) -> String: + return "value-" + x.to_string() + +fn main(): + fns: List[fn(Int) -> Int] := [double, add_one] + + # the plain loop call + mut total := 0 + for f in fns: + total = total + f(10) + print("loop total={total}") + + # nested loops, two live fn loop variables at once + mut nested := 0 + for f in fns: + for g in fns: + nested = nested + f(g(1)) + print("nested={nested}") + + # rebinding the loop variable's name after the loop still calls the + # rebound value, not the loop slot + f := describe + print("rebound={f(7)}") + + # a loop variable calling with another loop variable's result, mixed types + words: List[fn(Int) -> String] := [describe] + for w in words: + for n in fns: + print("mixed={w(n(3))}") diff --git a/tests/expected/test_loop_var_fn_call.txt b/tests/expected/test_loop_var_fn_call.txt new file mode 100644 index 00000000..13f0e2e9 --- /dev/null +++ b/tests/expected/test_loop_var_fn_call.txt @@ -0,0 +1,5 @@ +loop total=31 +nested=14 +rebound=value-7 +mixed=value-6 +mixed=value-4