From 9b46f3a11df21454c100f9e00009b8f51b96c628 Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Sat, 11 Jul 2026 18:13:40 +0300 Subject: [PATCH] # fold-1: fold becomes an imperative construct (first syntax-reform construct) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `fold` is now a thin imperative sugar over `for`: fold = for { body } ==> { var = init; for { body }; } The accumulator is a real mutable var, ASSIGNED in the body (`acc = f(acc,x)` / `acc += x`), not yielded as the tail value; the whole-fold value is the accumulator after the loop. Multiple accumulators are multiple vars (`fold a=0, b=1 for ..`). break/continue/return are legal in the body (it is a plain `for`). A closure in the body captures the accumulator VAR. The named reduction sugars (all/exists/count/find/find_opt/filter/vector, spelled `name(for ...)`) are a separate construct, unchanged. Highlights (full history in docs/fold1_report.md): - Simultaneous tuple assignment `(a,b) = (b,a+b)`: a parse-time desugar (materialize RHS into a temp before any store) — the Fibonacci/swap idiom. - FB-023 fixed: a latent C-gen soundness hole (single-use temp reading mutable memory inlined past an aliasing store), surfaced by the swap; fixed with a recursive movement_unsafe_read guard in find_single_use_vals. - Token-precise spans: the reform-prep-1 batch spans now give each token its own span; a side win is 12 negative goldens with tighter, correct carets. - The whole 68K-line corpus AND the self-hosting compiler migrated to the new form (census docs/fold_census.md: 261 sites, zero closure-captures-accumulator sites, so the var-capture semantics change is behavior-neutral). Compiler migration handled a silent-bug class where an accumulator name shadows its own iteration collection / a body val — every such site renames the accumulator. - An old-style value body warns "'fold' accumulator 's' is never assigned … the body must UPDATE the accumulator ('s = ' / 's += ...')". Verification: full ladder green (unit 168, negative 90, T4 IR 63, cfold, corpus O0/O3); bootstrap fixpoint holds (the compiler self-builds deterministically after migrating its own folds); -pr-resolve census unaffected. CLAUDE.md fold gotcha rewritten; language_changes_brief.md §2 -> IMPLEMENTED. Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 21 +- compiler/Ast.fx | 4 +- compiler/Ast_typecheck.fx | 276 +- compiler/C_gen_code.fx | 434 +- compiler/C_gen_fdecls.fx | 21 +- compiler/C_gen_types.fx | 55 +- compiler/Compiler.fx | 47 +- compiler/K_annotate.fx | 15 +- compiler/K_cfold_dealias.fx | 5 +- compiler/K_fast_idx.fx | 64 +- compiler/K_flatten.fx | 8 +- compiler/K_form.fx | 5 +- compiler/K_freevars.fx | 5 +- compiler/K_fuse_loops.fx | 50 +- compiler/K_inline.fx | 8 +- compiler/K_lift.fx | 17 +- compiler/K_loop_inv.fx | 10 +- compiler/K_mangle.fx | 9 +- compiler/K_normalize.fx | 215 +- compiler/K_remove_unused.fx | 21 +- compiler/K_tailrec.fx | 31 +- compiler/Parser.fx | 302 +- compiler/bootstrap/Ast.c | 5324 +++-- compiler/bootstrap/Ast_pp.c | 245 +- compiler/bootstrap/Ast_typecheck.c | 9445 ++++---- compiler/bootstrap/C_form.c | 295 +- compiler/bootstrap/C_gen_code.c | 19080 ++++++++-------- compiler/bootstrap/C_gen_fdecls.c | 855 +- compiler/bootstrap/C_gen_types.c | 3501 ++- compiler/bootstrap/C_post_adjust_decls.c | 54 +- compiler/bootstrap/C_post_rename_locals.c | 159 +- compiler/bootstrap/C_pp.c | 153 +- compiler/bootstrap/Compiler.c | 1191 +- compiler/bootstrap/Filename.c | 82 +- compiler/bootstrap/K_annotate.c | 908 +- compiler/bootstrap/K_cfold_dealias.c | 611 +- compiler/bootstrap/K_copy_n_skip.c | 897 +- compiler/bootstrap/K_declosure.c | 835 +- compiler/bootstrap/K_fast_idx.c | 1799 +- compiler/bootstrap/K_flatten.c | 225 +- compiler/bootstrap/K_form.c | 2451 +- compiler/bootstrap/K_freevars.c | 1341 +- compiler/bootstrap/K_fuse_loops.c | 785 +- compiler/bootstrap/K_inline.c | 2014 +- compiler/bootstrap/K_lift.c | 1055 +- compiler/bootstrap/K_lift_simple.c | 418 +- compiler/bootstrap/K_loop_inv.c | 449 +- compiler/bootstrap/K_mangle.c | 361 +- compiler/bootstrap/K_normalize.c | 6101 +++-- compiler/bootstrap/K_nothrow_wrappers.c | 3 +- compiler/bootstrap/K_optim_matop.c | 936 +- compiler/bootstrap/K_pp.c | 83 +- compiler/bootstrap/K_remove_unused.c | 1265 +- compiler/bootstrap/K_tailrec.c | 465 +- compiler/bootstrap/Lexer.c | 1842 +- compiler/bootstrap/Options.c | 677 +- compiler/bootstrap/PP.c | 694 +- compiler/bootstrap/Parser.c | 6988 +++--- compiler/bootstrap/String.c | 289 +- docs/fold1_brief.md | 4 +- docs/fold1_report.md | 92 + docs/fold_census.md | 475 + docs/found_bugs.md | 29 + docs/language_changes_brief.md | 2 +- examples/btree.fx | 2 +- examples/fst.fx | 5 +- examples/knucleotide.fx | 2 +- examples/nbody.fx | 6 +- examples/spectralnorm.fx | 8 +- lib/Array.fx | 66 +- lib/Builtins.fx | 38 +- lib/Deque.fx | 8 +- lib/Json.fx | 21 +- lib/List.fx | 6 +- lib/Map.fx | 2 +- lib/NN/Ast.fx | 2 +- lib/NN/FromOnnx.fx | 2 +- lib/NN/InferShapes.fx | 29 +- lib/NN/Inference.fx | 2 +- lib/NN/OpDetect.fx | 10 +- lib/NN/OpQuantized.fx | 2 +- lib/Re2.fx | 10 +- lib/Set.fx | 5 +- lib/String.fx | 43 +- lib/Sys.fx | 6 +- lib/UTest.fx | 4 +- test/ir/fold.ast.golden | 12 +- test/ir/fold.fx | 2 +- test/ir/fold.k.golden | 10 +- test/ir/fold.k0.golden | 10 +- test/myops.fx | 2 +- test/negative/109_import_inside_function.err | 6 +- test/negative/201_if_branches_differ.err | 4 +- test/negative/212_negate_string.err | 2 +- test/negative/216_break_outside_loop.err | 4 +- test/negative/218_bare_return_nonvoid.err | 4 +- test/negative/230_recovery_independent.err | 12 +- test/negative/232_recovery_firewall.err | 4 +- test/negative/234_recovery_maxerrors.err | 8 +- test/negative/236_parallel_continue.err | 4 +- test/negative/503_break_outside_loop.err | 4 +- test/negative/504_continue_outside_loop.err | 4 +- test/negative/701_exception_in_function.err | 6 +- test/negative/707_tuple_assign_non_lvalue.err | 3 + test/negative/707_tuple_assign_non_lvalue.fx | 4 + .../negative/708_fold2_unused_accumulator.err | 5 + test/negative/708_fold2_unused_accumulator.fx | 7 + test/negative/709_fold_old_style_body.err | 13 + test/negative/709_fold_old_style_body.fx | 6 + test/rand/test_rand_array.fx | 2 +- test/test_all.fx | 2 + test/test_array.fx | 6 +- test/test_btree.fx | 2 +- test/test_ds.fx | 18 +- test/test_fold2.fx | 106 + test/test_nbody.fx | 6 +- test/test_nn_quant.fx | 2 +- test/test_resolve.fx | 2 +- test/test_spectralnorm.fx | 21 +- test/test_tuple_assign.fx | 97 + tools/opencv/hdr_parser.fx | 12 +- 121 files changed, 37756 insertions(+), 39036 deletions(-) create mode 100644 docs/fold1_report.md create mode 100644 docs/fold_census.md create mode 100644 test/negative/707_tuple_assign_non_lvalue.err create mode 100644 test/negative/707_tuple_assign_non_lvalue.fx create mode 100644 test/negative/708_fold2_unused_accumulator.err create mode 100644 test/negative/708_fold2_unused_accumulator.fx create mode 100644 test/negative/709_fold_old_style_body.err create mode 100644 test/negative/709_fold_old_style_body.fx create mode 100644 test/test_fold2.fx create mode 100644 test/test_tuple_assign.fx diff --git a/CLAUDE.md b/CLAUDE.md index 436fad7f..df1f7770 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -89,9 +89,18 @@ intuition — read `doc/ficustut.md` and existing code. Verified traps: - Border access: mode before the bracket — `a.clip[i]`, `a.wrap[i]`, `a.zero[i]` (arrays, Vector, strings). - Comprehensions: 1D `[for i <- 0:n {..}]`; 2D `[for i <- 0:m for j <- 0:n - {..}]`; zip is comma; index binding `for x@i <- a` / `for x@(i,j) <- m`; - fold `fold acc=init for x <- a {..}`. Lists: `[:: 1, 2, 3]`, cons `::`, - list-comp `[:: for x <- l {..}]`. + {..}]`; zip is comma; index binding `for x@i <- a` / `for x@(i,j) <- m`. + Lists: `[:: 1, 2, 3]`, cons `::`, list-comp `[:: for x <- l {..}]`. +- **fold (fold-1 reform)** is now imperative: `fold acc=init for x <- a {acc += + x}` desugars to `{ var acc=init; for x <- a {..}; acc }`. The accumulator is a + real mutable **var**, ASSIGNED in the body (`acc = f(acc,x)` / `acc += x`), not + yielded as the tail value (that was the OLD form — it now warns "accumulator + never assigned"). Multiple accumulators: `fold a=0, b=1 for ..` (each its own + var; a tuple pattern also works). `break`/`continue`/`return` are legal in the + body (it is a plain `for`). Simultaneous tuple assignment `(a,b)=(b,a+b)` is a + language feature (parse-time desugar via a temp; the Fibonacci/swap idiom). + Named reduction sugars (`all`/`exists`/`count`/`find`/`filter`/`vector`, + spelled `name(for ...)`) are a SEPARATE construct, unchanged by the reform. - Strings are UTF-32: `s.length()` counts chars, `s[i]` is a `char`, `s[i:j]` a substring; `string([for c <- cs {c}])` builds from chars. - Use `String.fx` / `Re.fx` instead of hand-rolling string processing. @@ -103,9 +112,9 @@ intuition — read `doc/ficustut.md` and existing code. Verified traps: - `break`/`continue`/`return` (bare or with a value) are legal as a `match`-arm / `if`-branch value, exactly like `throw` (pseudo-type `TypErr` unifies with valued siblings; lowering unchanged, cleanup runs). Legality - is positional-agnostic: they need an enclosing loop; rejected inside `fold` - and `@parallel` bodies; bare `return` in a non-void function is a - return-type mismatch. + is positional-agnostic: they need an enclosing loop; legal inside a `fold` + body (post-fold-1 it is a plain `for`), rejected inside `@parallel` bodies; + bare `return` in a non-void function is a return-type mismatch. - Shift count must be `int`: write `x >> int(n)`. - **Overload resolution: the least-generic viable candidate wins**, regardless of declaration/import order. No unique winner at a fully-determined call = diff --git a/compiler/Ast.fx b/compiler/Ast.fx index 53be00dd..5a2af217 100644 --- a/compiler/Ast.fx +++ b/compiler/Ast.fx @@ -76,7 +76,7 @@ fun loclist2loc(llist: loc_t list, default_loc: loc_t) = val {m_idx=loci_m_idx, line0=loci_line0, col0=loci_col0, line1=loci_line1, col1=loci_col1} = loci - if m_idx != loci_m_idx { + loc = if m_idx != loci_m_idx { if m_idx <= 0 { loci } else { loc } } else { loc_t @@ -1021,7 +1021,7 @@ fun get_numeric_typ_size(t: typ_t, allow_tuples: bool): int = else { fold sz=0 for t<-tl { val szj = get_numeric_typ_size(t, true) - if szj < 0 || sz < 0 {-1} else {sz + szj} + sz = if szj < 0 || sz < 0 {-1} else {sz + szj} } } | _ => -1 diff --git a/compiler/Ast_typecheck.fx b/compiler/Ast_typecheck.fx index 3cbd2c82..b67cffe8 100644 --- a/compiler/Ast_typecheck.fx +++ b/compiler/Ast_typecheck.fx @@ -746,13 +746,16 @@ fun inst_merge_env(env_from: env_t, env_to: env_t): env_t = fun (i: id_t, entries: env_entry_t list, new_env: env_t) { match env_to.find_opt(i) { | Some(prev_entries) => - val fold extra_entries = [] for e <- entries { + var extra_entries: env_entry_t list = [] + for e <- entries { + extra_entries = match e { | EnvId(i) => val add = match id_info(i, noloc) { | IdFun _ => true | _ => false } if add && !prev_entries.mem(e) { e :: extra_entries } else { extra_entries } | _ => extra_entries } + } /* add only those symbols from env_from which also exist in env_to; the goal is not to implement dynamic scope; the goal is to make function instantiation work correctly in the presense of @@ -1503,9 +1506,10 @@ fun try_autogen_symbols(n: id_t, t: typ_t, env: env_t, sc: fun preprocess_templ_typ(templ_args: id_t list, typ: typ_t, env: env_t, sc: scope_t list, loc: loc_t) { val t = dup_typ(typ) - val fold env1 = env for nt <- templ_args { + var env1 = env + for nt <- templ_args { val t = make_new_typ() - add_typ_to_env(nt, t, env1) + env1 = add_typ_to_env(nt, t, env1) } (check_typ(t, env1, sc, loc), env1) } @@ -1563,7 +1567,7 @@ fun match_ty_templ_args(actual_ty_args: typ_t list, templ_args: id_t list, { val norm_ty_args = check_and_norm_tyargs(actual_ty_args, templ_args, def_loc, inst_loc) fold env=env for n <- templ_args, t <- norm_ty_args { - add_typ_to_env(n, t, env) + env = add_typ_to_env(n, t, env) } } @@ -1663,10 +1667,10 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { env: env_t, idset: idset_t, flags: for_flags_t, for_sc: scope_t list) { - val fold (trsz, for_clauses, code, dims, env, idset) = (0, [], ([]: exp_t list), 0, env, idset) - for (pi, ei)@idx <- for_clauses { + var trsz = 0, for_clauses_acc: (pat_t, exp_t) list = [], code = ([]: exp_t list), dims = 0, env_acc = env, idset_acc = idset + for (pi, ei)@idx <- for_clauses { val (trszj, (pi, ei), code_i, dims_i, env, idset) = - check_for_clause(pi, ei, env, idset, flags, for_sc) + check_for_clause(pi, ei, env_acc, idset_acc, flags, for_sc) if idx > 0 && dims_i != dims { throw compile_err(get_exp_loc(ei), "the dimensionalities of simultaneously iterated containers/ranges do not match") @@ -1680,8 +1684,14 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { "cannot iterate over tuples/records of different size" }) } - (trszj, (pi, ei) :: for_clauses, code_i + code, dims_i, env, idset) + trsz = trszj + for_clauses_acc = (pi, ei) :: for_clauses_acc + code = code_i + code + dims = dims_i + env_acc = env + idset_acc = idset } + val env = env_acc, idset = idset_acc, for_clauses = for_clauses_acc val idx_typ = if dims == 1 { TypInt } else { TypTuple([::for _ <- 0:dims {TypInt}]) } val (idx_pat, env, idset) = if trsz != 0 { @@ -1703,17 +1713,20 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { { val curr_m_idx = curr_module(sc) val sc = new_block_scope(curr_m_idx) :: for_sc - val fold (code, env, idset) = ([], env, empty_idset) for (pj, trj)@j <- for_clauses { + var code: exp_t list = [], env_acc = env, idset_acc = empty_idset + for (pj, trj)@j <- for_clauses { val (ttrj, locj) = get_exp_ctx(trj) match ttrj { | TypTuple(tl) => val tj = tl.nth(idx) val ej = ExpMem(trj, ExpLit(LitInt(int64(idx)), (TypInt, locj)), (tj, locj)) val pj = dup_pat(pj) - val (pj, env, idset, _, _) = check_pat(pj, tj, env, idset, empty_idset, + val (pj, env, idset, _, _) = check_pat(pj, tj, env_acc, idset_acc, empty_idset, sc, false, true, false) val def_pj = DefVal(pj, ej, default_tempval_flags(), locj) - (def_pj :: code, env, idset) + code = def_pj :: code + env_acc = env + idset_acc = idset | _ => val (_, relems) = get_record_elems(None, ttrj, false, locj) val (_, nj, tj, _) = relems.nth(idx) @@ -1727,15 +1740,18 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { | _ => throw compile_err(eloc, "when iterating through record, \ a 2-element tuple should be used as pattern") } - val (pnj, env, idset, _, _) = check_pat(pnj, TypString, env, idset, empty_idset, + val (pnj, env, idset, _, _) = check_pat(pnj, TypString, env_acc, idset_acc, empty_idset, sc, false, true, false) val (pvj, env, idset, _, _) = check_pat(pvj, tj, env, idset, empty_idset, sc, false, true, false) val def_pvj = DefVal(pvj, ej, default_tempval_flags(), locj) val def_pnj = DefVal(pnj, ExpLit(LitString(pp(nj)), (TypString, locj)), default_tempval_flags(), locj) - (def_pvj :: def_pnj :: code, env, idset) + code = def_pvj :: def_pnj :: code + env_acc = env + idset_acc = idset } } + val env = env_acc, idset = idset_acc val (code, env) = match idx_pat { | PatAny _ => (code, env) @@ -2401,7 +2417,8 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { match id_info(f, eloc) { | IdFun (ref {df_env}) => val all_entries = find_all(get_orig_id(f), df_env) - val fold possible_matches = 0 for entry <- all_entries { + var possible_matches = 0 + for entry <- all_entries { val new_matches = match entry { | EnvId(i) => match id_info(i, eloc) { @@ -2412,7 +2429,7 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { } | _ => 0 // do not count types, of course } - possible_matches + new_matches + possible_matches += new_matches } // there must be at least 1 match, but we use '<=' just in case. // if there is just a single match, we can safely typecheck the function argument @@ -2553,11 +2570,12 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { tuple index. It must be only index and all tuple elements must be integer scalars. */ | _ => - val fold (new_idxs, ndims, nfirst_scalars, nranges) = ([], 0, 0, 0) for idx <- idxs { + var new_idxs: exp_t list = [], ndims = 0, nfirst_scalars_acc = 0, nranges = 0 + for idx <- idxs { val new_idx = check_exp(idx, env, sc) match new_idx { | ExpRange(_, _, _, _) => - (new_idx :: new_idxs, ndims + 1, nfirst_scalars, nranges + 1) + new_idxs = new_idx :: new_idxs; ndims += 1; nranges += 1 | _ => val possible_idx_typs = [:: TypInt, TypBool, TypUInt(8), TypSInt(8), TypUInt(16), TypSInt(16), TypUInt(32), TypSInt(32), TypUInt(64), TypSInt(64) ] @@ -2589,11 +2607,12 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { also be float or double") } } - val nfirst_scalars = if nranges == 0 { nfirst_scalars + dim_inc } - else { nfirst_scalars } - (new_idx :: new_idxs, ndims + dim_inc, nfirst_scalars, nranges) + val nfirst_scalars = if nranges == 0 { nfirst_scalars_acc + dim_inc } + else { nfirst_scalars_acc } + new_idxs = new_idx :: new_idxs; ndims += dim_inc; nfirst_scalars_acc = nfirst_scalars } } + val nfirst_scalars = nfirst_scalars_acc match (ndims, nranges, deref_typ(new_atyp)) { | (1, 0, TypString) => unify(etyp, TypChar, new_aloc, "indexing string should give a char") | (1, 1, TypString) => unify(etyp, TypString, new_aloc, @@ -2714,13 +2733,16 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { else if make_list || make_vector { new_map_scope(curr_m_idx) } else { new_arr_map_scope(curr_m_idx) }) :: sc val (trsz, pre_code, map_clauses, total_dims, env, _) = - fold (trsz, pre_code, map_clauses, total_dims, env, idset) = - (0, ([]: exp_t list), [], 0, env, empty_idset) for (for_clauses, idx_pat) <- map_clauses { + fold trsz = 0, pre_code = ([]: exp_t list), map_clauses_acc = [], total_dims = 0, env_acc = env, idset_acc = empty_idset + for (for_clauses, idx_pat) <- map_clauses { val (trsz_k, pre_code_k, for_clauses, idx_pat, dims, env, idset) = - check_for_clauses(for_clauses, idx_pat, env, idset, flags, for_sc) - (trsz + trsz_k, pre_code_k + pre_code, - (for_clauses, idx_pat) :: map_clauses, - total_dims + dims, env, idset) + check_for_clauses(for_clauses, idx_pat, env_acc, idset_acc, flags, for_sc) + trsz += trsz_k + pre_code = pre_code_k + pre_code + map_clauses_acc = (for_clauses, idx_pat) :: map_clauses_acc + total_dims += dims + env_acc = env + idset_acc = idset } if make_tuple && trsz == 0 { throw compile_err(eloc, "tuple comprehension with iteration over \ @@ -2774,7 +2796,7 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { } else if make_list { val ltyp = TypList(elem_typ) fold l_exp = ExpLit(LitEmpty, (ltyp, eloc)) for ej <- elems.rev() { - ExpBinary(OpCons, ej, l_exp, (ltyp, eloc)) + l_exp = ExpBinary(OpCons, ej, l_exp, (ltyp, eloc)) } } else if make_vector { ExpMkVector(elems, (TypVector(elem_typ), eloc)) @@ -2845,9 +2867,9 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { | ExpMkArray(arows, _) => val elemtyp = make_new_typ() val (_, arows, _, dims) = - fold (ncols, arows, have_expanded, dims) = - (0, ([]: exp_t list list), false, -1) for arow@k <- arows { - val fold (have_expanded_i, row_dims, arow) = (false, -1, []) for elem <- arow { + fold ncols = 0, arows_acc = ([]: exp_t list list), have_expanded_acc = false, dims_acc = -1 for arow@k <- arows { + var have_expanded_i = false, row_dims_acc = -1, arow_acc: exp_t list = [] + for elem <- arow { val (is_expanded, elem_dims, elem1, elem_loc) = match elem { | ExpUnary(OpExpand, e1, (t, loc)) => @@ -2874,18 +2896,21 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { should have the same type") (false, 1, check_exp(elem, env, sc), eloc1) } - val row_dims = if row_dims >= 0 { row_dims } else { elem_dims } + val row_dims = if row_dims_acc >= 0 { row_dims_acc } else { elem_dims } if row_dims != elem_dims { throw compile_err( elem_loc, f"dimensionality of array element (={elem_dims}) \ does not match the previous elements dimensionality (={row_dims}) in the same row") } - (have_expanded_i || is_expanded, row_dims, elem1 :: arow) + have_expanded_i = have_expanded_i || is_expanded + row_dims_acc = row_dims + arow_acc = elem1 :: arow_acc } + val arow = arow_acc, row_dims = row_dims_acc val ncols_i = arow.length() val elem_loc = match arow { | e :: _ => get_exp_loc(e) | _ => - match arows { + match arows_acc { | r :: _ => get_exp_loc(r.last()) | _ => eloc } @@ -2894,20 +2919,24 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { throw compile_err(elem_loc, f"the {k + 1}-{String.num_suffix(k+1)} matrix row is empty") } - val have_expanded = have_expanded || have_expanded_i + val have_expanded = have_expanded_acc || have_expanded_i if !have_expanded && ncols != 0 && ncols != ncols_i { throw compile_err(elem_loc, f"the {k + 1}-{String.num_suffix(k+1)} matrix \ row contains a different number of elements") } - val dims = if dims < 0 { row_dims } else { 2 } - (if have_expanded_i { ncols_i } else { ncols }, arow.rev() :: arows, have_expanded, dims) + val dims = if dims_acc < 0 { row_dims } else { 2 } + ncols = if have_expanded_i { ncols_i } else { ncols } + arows_acc = arow.rev() :: arows_acc + have_expanded_acc = have_expanded + dims_acc = dims } val atyp = TypArray(dims, elemtyp) unify(atyp, etyp, eloc, "the array literal should produce an array") ExpMkArray(arows.rev(), ctx) | ExpMkVector(elems, _) => val elemtyp = make_new_typ() - val fold elems = [] for elem <- elems { + var elems_acc: exp_t list = [] + for elem <- elems { match elem { | ExpUnary(OpExpand, e1, (t, loc)) => val e1 = check_exp(e1, env, sc) @@ -2923,14 +2952,15 @@ fun check_exp(e: exp_t, env: env_t, sc: scope_t list) { } unify(elemtyp, elemtyp1, eloc1, f"the expanded '{collname}' elem type does not \ match the previous elements") - ExpUnary(OpExpand, e1, (t, loc)) :: elems + elems_acc = ExpUnary(OpExpand, e1, (t, loc)) :: elems_acc | _ => val (elemtyp1, eloc1) = get_exp_ctx(elem) unify(elemtyp, elemtyp1, eloc1, "all the scalar elements of the vector \ should have the same type") - check_exp(elem, env, sc) :: elems + elems_acc = check_exp(elem, env, sc) :: elems_acc } } + val elems = elems_acc val vectyp = TypVector(elemtyp) unify(vectyp, etyp, eloc, "the constructed vector has type '{typ2str(vectype)}', \ but is expected to have type '{typ2str(etyp)}'") @@ -3221,8 +3251,9 @@ fun check_eseq(eseq: exp_t list, env: env_t, sc: scope_t list, create_sc: bool): val env = check_types(eseq, env, sc) // register exceptions and function declarations - val fold env = env for e <- eseq { - match e { + var env = env + for e <- eseq { + env = match e { | DefFun(df) => reg_deffun(df, env, sc) | DefExn(de) => check_defexn(de, env, sc) | _ => env @@ -3232,7 +3263,8 @@ fun check_eseq(eseq: exp_t list, env: env_t, sc: scope_t list, create_sc: bool): // finally, process everything else: // function bodies, values declarations as well as normal expressions/statements - val fold (eseq, env) = ([], env) for e@idx <- eseq { + var eseq_acc: exp_t list = [], env = env + for e@idx <- eseq { val (eseq1, env1) = try { match e { @@ -3242,7 +3274,7 @@ fun check_eseq(eseq: exp_t list, env: env_t, sc: scope_t list, create_sc: bool): throw compile_err( get_exp_loc(e), "definition or directive \ occurs in the end of block; put some expression after it" ) } - (e :: eseq, env) + (e :: eseq_acc, env) | DefVal(p, e, flags, loc) => if idx == nexps - 1 && !is_glob_scope { throw compile_err( loc, "value definition occurs in the end of block; \ @@ -3266,7 +3298,7 @@ fun check_eseq(eseq: exp_t list, env: env_t, sc: scope_t list, create_sc: bool): val e1 = check_exp(e, env, sc) val (p1, env1, _, _, _) = check_pat(p, t, env, empty_idset, empty_idset, sc, false, true, is_mutable) - (DefVal(p1, e1, flags, loc) :: eseq, env1) + (DefVal(p1, e1, flags, loc) :: eseq_acc, env1) } catch { | CompileError(_, _) as err => push_compile_err(err) @@ -3282,7 +3314,7 @@ fun check_eseq(eseq: exp_t list, env: env_t, sc: scope_t list, create_sc: bool): } val env1 = poison_pattern_vars(pat_skip_typed(p), poison_t, flags, sc, curr_m_idx, env) - (DefVal(p, e, flags, loc) :: eseq, env1) + (DefVal(p, e, flags, loc) :: eseq_acc, env1) } | DefFun(df) => if idx == nexps - 1 && !is_glob_scope { @@ -3322,7 +3354,7 @@ fun check_eseq(eseq: exp_t list, env: env_t, sc: scope_t list, create_sc: bool): // warn on the checked df: non-templates now carry the concrete // inferred type (copy-paste fix); templates keep the generic var. if warn_rettype { warn_implicit_rettype(df) } - (DefFun(df) :: eseq, env) + (DefFun(df) :: eseq_acc, env) | _ => val e = match e { | ExpReturn(Some(returned_e), _) => @@ -3333,9 +3365,10 @@ fun check_eseq(eseq: exp_t list, env: env_t, sc: scope_t list, create_sc: bool): val (etyp, eloc) = get_exp_ctx(e) match e { | ExpNop _ => - if nexps != 1 { - throw compile_err(eloc, "there cannot be {} operators inside code blocks") - } + // an empty block '{}' is a valid void no-op; it may sit + // anywhere in a sequence (e.g. a compiler-inserted + // placeholder, or an intentionally-empty branch statement). + {} | ExpBreak(_, _) | ExpContinue _ | ExpReturn(_, _) => if idx != nexps - 1 { throw compile_err( eloc, "break/continue/return operator should not \ @@ -3354,17 +3387,19 @@ fun check_eseq(eseq: exp_t list, env: env_t, sc: scope_t list, create_sc: bool): } } } - (e :: eseq, env) + (e :: eseq_acc, env) } } catch { | CompileError(_, _) as err => push_compile_err(err) - (e :: eseq, env) - | PropagateCompileError => (e :: eseq, env) + (e :: eseq_acc, env) + | PropagateCompileError => (e :: eseq_acc, env) | e => throw e } - (eseq1, env1) + eseq_acc = eseq1 + env = env1 } + val eseq = eseq_acc check_compile_errs() (eseq.rev(), env) } @@ -3395,7 +3430,7 @@ fun check_directives(eseq: exp_t list, env: env_t, sc: scope_t list) { fun import_entries(env: env_t, parent_mod: int, key: id_t, entries: env_entry_t list, loc: loc_t) = fold env = env for i <- entries.rev() { - match i { + env = match i { | EnvId(i) => val info = id_info(i, loc) val sc = get_scope(info) @@ -3447,18 +3482,18 @@ fun check_directives(eseq: exp_t list, env: env_t, sc: scope_t list) { // to make them usable in the corresponding arithmetic expressions fold env = env for op_name <- fname_always_import() { val entries = find_all(op_name, menv) - import_entries(env, m_idx, op_name, entries, loc) + env = import_entries(env, m_idx, op_name, entries, loc) } } - val (env, _) = fold (env, mlist) = (env, []) for e <- eseq { + val (env, _) = fold env_acc = env, mlist = [] for e <- eseq { match e { | DirImport(impdirs, eloc) => - (fold env = env for (m, alias) <- impdirs { - try { + env_acc = fold env = env_acc for (m, alias) <- impdirs { + env = try { import_mod(env, alias, m, true, eloc) } catch { | CompileError(_, _) as err => push_compile_err(err); env } - }, mlist) + } | DirImportFrom(m, implist, eloc) => val env = try { @@ -3468,8 +3503,9 @@ fun check_directives(eseq: exp_t list, env: env_t, sc: scope_t list) { menv.foldl(fun (k: id_t, _: env_entry_t list, l: id_t list) { k :: l }, ([]: id_t list)) } - val fold env = env for k <- keys { - try { + var env = env_acc + for k <- keys { + env = try { val entries = find_all(k, menv) if entries == [] { throw compile_err(eloc, f"no symbol {pp(k)} found in {pp(get_module_name(m))}") @@ -3481,10 +3517,11 @@ fun check_directives(eseq: exp_t list, env: env_t, sc: scope_t list) { // [TODO] for each 'imported from' variant type we also need to import all its constructors val alias = get_module_name(m) import_mod(env, alias, m, true, eloc) - } catch { | CompileError(_, _) as err => push_compile_err(err); env } - (env, (m, eloc) :: mlist) - | DirPragma(prl, eloc) => (env, mlist) - | _ => (env, mlist) + } catch { | CompileError(_, _) as err => push_compile_err(err); env_acc } + env_acc = env + mlist = (m, eloc) :: mlist + | DirPragma(prl, eloc) => {} + | _ => {} } } check_compile_errs() @@ -3499,7 +3536,7 @@ fun reg_types(eseq: exp_t list, env: env_t, sc: scope_t list) TypApp([::for targ <- templ_args { TypApp([], targ) }], tn) fold env = env for e <- eseq { - match e { + env = match e { | DefTyp(dt) => val {dt_name, dt_templ_args, dt_typ, dt_loc} = *dt val dt_name1 = dup_id(curr_m_idx, dt_name) @@ -3575,11 +3612,12 @@ fun register_typ_constructor(n: id_t, ctor: fun_constr_t, templ_args: id_t list, // check the type definition body (for simple types, including records, and also variant types) fun check_types(eseq: exp_t list, env: env_t, sc: scope_t list) = fold env = env for e <- eseq { - match e { + env = match e { | DefTyp dt => val {dt_name, dt_templ_args, dt_typ, dt_scope, dt_loc} = *dt - val fold env1 = env for t_arg <- dt_templ_args { - add_typ_to_env(t_arg, TypApp([], t_arg), env1) + var env1 = env + for t_arg <- dt_templ_args { + env1 = add_typ_to_env(t_arg, TypApp([], t_arg), env1) } val dt_typ = deref_typ(check_typ(dt_typ, env1, dt_scope, dt_loc)) *dt = deftyp_t {dt_name=dt_name, dt_templ_args=dt_templ_args, @@ -3596,7 +3634,7 @@ fun check_types(eseq: exp_t list, env: env_t, sc: scope_t list) = {pp(dvar_name)}.{pp(ctor_name)} is not a function") } val (t, _) = preprocess_templ_typ(df_templ_args, df_typ, env, sc, dvar_loc) - add_id_to_env_check(n, ctor_name, env, check_for_duplicate_fun(t, env, sc, dvar_loc)) + env = add_id_to_env_check(n, ctor_name, env, check_for_duplicate_fun(t, env, sc, dvar_loc)) } | DefInterface di => val {di_name, di_base, di_new_methods, di_loc} = *di @@ -3613,13 +3651,16 @@ fun check_types(eseq: exp_t list, env: env_t, sc: scope_t list) = } val sc = ScInterface(di_name) :: sc val curr_m_idx = curr_module(sc) - val fold env1 = env, base_members = [] for (f, t, flags) <- ibase.di_all_methods { - val env1 = add_id_to_env_check(get_orig_id(f), f, env1, - check_for_duplicate_method(t, env1, sc, di_loc)) - (env1, (f, t, flags) :: base_members) + var env1_acc = env, base_members = [] + for (f, t, flags) <- ibase.di_all_methods { + val env1 = add_id_to_env_check(get_orig_id(f), f, env1_acc, + check_for_duplicate_method(t, env1_acc, sc, di_loc)) + env1_acc = env1 + base_members = (f, t, flags) :: base_members } + val env1 = env1_acc val base_idx = base_members.length() - val (_, all_members) = fold env1 = env1, all_members = base_members + val (_, all_members) = fold env1_acc = env1, all_members = base_members for (f, t, flags)@idx <- di_new_methods { val t = check_typ(t, env, sc, di_loc) if !is_fixed_typ(t) { @@ -3630,9 +3671,10 @@ fun check_types(eseq: exp_t list, env: env_t, sc: scope_t list) = val dv_flags = default_val_flags().{val_flag_method=(di_name, idx+base_idx)} set_id_entry(f1, IdDVal(defval_t {dv_name=f1, dv_typ=t, dv_flags=dv_flags, dv_scope=sc, dv_loc=di_loc})) - val env1 = add_id_to_env_check(f, f1, env1, - check_for_duplicate_method(t, env1, sc, di_loc)) - (env1, (f1, t, flags) :: all_members) + val env1 = add_id_to_env_check(f, f1, env1_acc, + check_for_duplicate_method(t, env1_acc, sc, di_loc)) + env1_acc = env1 + all_members = (f1, t, flags) :: all_members } *di = di->{di_base=ibase.di_name, di_all_methods=all_members.rev()} env @@ -3692,21 +3734,27 @@ fun reg_deffun(df: deffun_t ref, env: env_t, sc: scope_t list) } } - val fold (args1, argtyps1, temp_env, idset1, templ_args1, all_typed) = - ([], [], env, empty_idset, empty_idset, true) for arg <- df_args { - val t = make_new_typ() - val (arg1, temp_env, idset1, templ_args1, typed) = - check_pat(arg, t, temp_env, idset1, templ_args1, df_sc, true, true, false) - val (arg1, templ_args1) = - if typed { (arg1, templ_args1) } - else { - val targ : id_t = gen_id(curr_m_idx, "'targ") - val arg1 = PatTyped(arg1, TypApp([], targ), get_pat_loc(arg1)) - val templ_args1 = templ_args1.add(targ) - (arg1, templ_args1) - } - (arg1 :: args1, t :: argtyps1, temp_env, idset1, templ_args1, all_typed & typed) - } + var args1: pat_t list = [], argtyps1: typ_t list = [], temp_env_acc = env, idset1_acc = empty_idset, templ_args1_acc = empty_idset, all_typed = true + for arg <- df_args { + val t = make_new_typ() + val (arg1, temp_env, idset1, templ_args1, typed) = + check_pat(arg, t, temp_env_acc, idset1_acc, templ_args1_acc, df_sc, true, true, false) + val (arg1, templ_args1) = + if typed { (arg1, templ_args1) } + else { + val targ : id_t = gen_id(curr_m_idx, "'targ") + val arg1 = PatTyped(arg1, TypApp([], targ), get_pat_loc(arg1)) + val templ_args1 = templ_args1.add(targ) + (arg1, templ_args1) + } + args1 = arg1 :: args1 + argtyps1 = t :: argtyps1 + temp_env_acc = temp_env + idset1_acc = idset1 + templ_args1_acc = templ_args1 + all_typed &= typed + } + val temp_env = temp_env_acc, idset1 = idset1_acc, templ_args1 = templ_args1_acc match (Options.opt.relax, all_typed, sc) { | (false, false, ScModule _ :: _) when get_orig_id(df_name1) != std__lambda__ => throw compile_err(df_loc, "types of all the parameters of \ @@ -4020,12 +4068,14 @@ fun instantiate_fun_(templ_df: deffun_t ref, inst_ftyp: typ_t, inst_env0: env_t, val inst_name = if instantiate { dup_id(curr_module(df_scope), df_name) } else { df_name } //println(f"instantiation of function {inst_name} with type '{typ2str(inst_ftyp)}'") val fun_sc = ScFun(inst_name) :: df_scope - val (df_inst_args, inst_env, _) = fold (df_inst_args, inst_env, tmp_idset) = - ([], inst_env, empty_idset) for df_arg <- df_args, arg_typ <- arg_typs { + val (df_inst_args, inst_env, _) = fold df_inst_args = [], inst_env_acc = inst_env, tmp_idset_acc = empty_idset + for df_arg <- df_args, arg_typ <- arg_typs { val (df_inst_arg, inst_env, tmp_idset, _, _) = - check_pat(dup_pat(df_arg), arg_typ, inst_env, tmp_idset, + check_pat(dup_pat(df_arg), arg_typ, inst_env_acc, tmp_idset_acc, empty_idset, fun_sc, false, true, false) - (df_inst_arg :: df_inst_args, inst_env, tmp_idset) + df_inst_args = df_inst_arg :: df_inst_args + inst_env_acc = inst_env + tmp_idset_acc = tmp_idset } val df_inst_args = df_inst_args.rev() val rt = check_typ(rt, inst_env, df_scope, inst_loc) @@ -4167,14 +4217,14 @@ fun instantiate_fun_body(inst_name: id_t, inst_ftyp: typ_t, inst_args: pat_t lis } | _ => throw compile_err(inst_loc, "variant is expected here") } - val fold complex_cases = ([]: (pat_t, exp_t) list) - for n <- var_ctors, (n_orig, t_orig) <- proto_cases { + var complex_cases: (pat_t, exp_t) list = [] + for n <- var_ctors, (n_orig, t_orig) <- proto_cases { val t = deref_typ_rec(t_orig) - match t { + complex_cases = match t { | TypVoid => complex_cases | TypRecord (ref (relems, _)) => - val fold (al, bl, cmp_code) = ([], [], ExpNop(body_loc)) - for (_, rn, _, _)@idx <- relems { + var al = [], bl = [], cmp_code_acc = ExpNop(body_loc) + for (_, rn, _, _)@idx <- relems { val ai = get_id(f"{astr}{idx}") val bi = get_id(f"{bstr}{idx}") val cmp_ab = @@ -4184,18 +4234,20 @@ fun instantiate_fun_body(inst_name: id_t, inst_ftyp: typ_t, inst_args: pat_t lis (TypBool, body_loc)) val cmp_code = if idx == 0 { cmp_ab } - else { ExpBinary(OpBitwiseAnd, cmp_code, cmp_ab, (TypBool, body_loc)) } - ((rn, PatIdent(ai, body_loc)) :: al, - (rn, PatIdent(bi, body_loc)) :: bl, cmp_code) + else { ExpBinary(OpBitwiseAnd, cmp_code_acc, cmp_ab, (TypBool, body_loc)) } + al = (rn, PatIdent(ai, body_loc)) :: al + bl = (rn, PatIdent(bi, body_loc)) :: bl + cmp_code_acc = cmp_code } + val cmp_code = cmp_code_acc val a_case_pat = PatRecord(Some(n), al.rev(), body_loc) val b_case_pat = PatRecord(Some(n), bl.rev(), body_loc) val ab_case_pat = PatTuple([::a_case_pat, b_case_pat], body_loc) (ab_case_pat, cmp_code) :: complex_cases | _ => val args = match t { | TypTuple(tl) => tl | _ => [:: t] } - val fold (al, bl, cmp_code) = ([], [], ExpNop(body_loc)) - for idx <- 0:args.length() { + var al = [], bl = [], cmp_code_acc = ExpNop(body_loc) + for idx <- 0:args.length() { val ai = get_id(f"{astr}{idx}") val bi = get_id(f"{bstr}{idx}") val cmp_ab = ExpBinary(OpCmp(CmpEQ), @@ -4204,9 +4256,12 @@ fun instantiate_fun_body(inst_name: id_t, inst_ftyp: typ_t, inst_args: pat_t lis (TypBool, body_loc)) val cmp_code = if idx == 0 { cmp_ab } - else { ExpBinary(OpBitwiseAnd, cmp_code, cmp_ab, (TypBool, body_loc)) } - (PatIdent(ai, body_loc) :: al, PatIdent(bi, body_loc) :: bl, cmp_code) + else { ExpBinary(OpBitwiseAnd, cmp_code_acc, cmp_ab, (TypBool, body_loc)) } + al = PatIdent(ai, body_loc) :: al + bl = PatIdent(bi, body_loc) :: bl + cmp_code_acc = cmp_code } + val cmp_code = cmp_code_acc val a_case_pat = PatVariant(n, al.rev(), body_loc) val b_case_pat = PatVariant(n, bl.rev(), body_loc) val ab_case_pat = PatTuple([::a_case_pat, b_case_pat], body_loc) @@ -4254,7 +4309,8 @@ fun instantiate_variant(ty_args: typ_t list, dvar: defvariant_t ref, val (instantiate, env, inst_name, inst_app_typ, inst_dvar) = match ty_args { | [] => - val fold env = env for tn <- dvar_templ_args { add_typ_to_env(tn, TypApp([], tn), env) } + var env = env + for tn <- dvar_templ_args { env = add_typ_to_env(tn, TypApp([], tn), env) } (false, env, dvar_name, dvar_alias, dvar) | _ => val inst_name = dup_id(curr_module(dvar_scope), dvar_name) diff --git a/compiler/C_gen_code.fx b/compiler/C_gen_code.fx index 01ca1704..fdf15f21 100644 --- a/compiler/C_gen_code.fx +++ b/compiler/C_gen_code.fx @@ -107,6 +107,37 @@ type count_map_t = (id_t, int) Hashmap.t expressions can be represented as scalar C expressions. This is a recursive rule that cannot be checked at this stage. */ +/* A single-use temp is inlined by folding its initializer into the use site, + which MOVES the computation forward across whatever code sits between the + definition and the use. `pure_kexp` guarantees no side effects, but that is + not enough for a *read of mutable memory*: an array element, a ref cell or a + mutable record field can be overwritten by an intervening store, so moving + the read past that store changes its value. This exact hazard is exposed by + simultaneous tuple/array assignment, e.g. `(arr[i], arr[j]) = (arr[j], + arr[i])`. Such reads are pure yet not movement-invariant, so we keep them + materialized (they cost one named C temp, which the C compiler coalesces + anyway). See docs/found_bugs.md FB-023. */ +fun movement_unsafe_read(e0: kexp_t): bool +{ + var unsafe = false + // fold over the whole initializer: a compound one (KExpIf/KExpSeq/KExpMatch + // /...) may hide a mutable-memory read that inlining would move past a store. + fun chk_kexp_(e: kexp_t, callb: k_fold_callb_t): void = + if !unsafe { + match e { + | KExpAt _ => unsafe = true // array element (arrays are mutable) + | KExpUnary(OpDeref, _, _) => unsafe = true // ref-cell dereference + | KExpMem(base, _, (_, loc)) => // field of a mutable record/var + if is_mutable(base, loc) { unsafe = true } + | KExpMap _ => unsafe = true // comprehension: never safe to move + | _ => fold_kexp(e, callb) + } + } + val callb = k_fold_callb_t { kcb_fold_atom=None, kcb_fold_ktyp=None, kcb_fold_kexp=Some(chk_kexp_) } + chk_kexp_(e0, callb) + unsafe +} + fun find_single_use_vals(topcode: kcode_t) { var count_map: count_map_t = Hashmap.empty(1024, noid, 0) @@ -129,7 +160,8 @@ fun find_single_use_vals(topcode: kcode_t) /* We only replace those values with expressions which are temporary and computed using pure expressions */ val good_temp = kv_flags.val_flag_tempref || kv_flags.val_flag_temp - if good_temp && K_remove_unused.pure_kexp(e1) { + if good_temp && K_remove_unused.pure_kexp(e1) && + !movement_unsafe_read(e1) { decl_const_vals.add(k) } count_kexp(e1, callb) @@ -231,10 +263,10 @@ fun gen_main(ismain: bool, mod_names: string list, loc: loc_t) = if !ismain { [] } else { val (fwd_decls, init_calls, deinit_calls) = fold fwd_decls = [], init_calls = [], deinit_calls = [] for m@idx <- mod_names { - (if idx == 0 { fwd_decls } - else { f"FX_EXTERN_C int fx_init_{m}();\nFX_EXTERN_C void fx_deinit_{m}();\n" :: fwd_decls }, - f" if (fx_status >= 0) fx_status = fx_init_{m}();\n" :: init_calls, - f" fx_deinit_{m}();\n" :: deinit_calls) + fwd_decls = if idx == 0 { fwd_decls } + else { f"FX_EXTERN_C int fx_init_{m}();\nFX_EXTERN_C void fx_deinit_{m}();\n" :: fwd_decls } + init_calls = f" if (fx_status >= 0) fx_status = fx_init_{m}();\n" :: init_calls + deinit_calls = f" fx_deinit_{m}();\n" :: deinit_calls } [:: CExp(CExpCCode( "".join(fwd_decls) + " @@ -787,8 +819,9 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini lbl: cexp_t, loc: loc_t) = match check_list { | e0 :: rest => - val fold check_exp = e0 for check_i <- rest { - CExpBinary(COpLogicAnd, check_exp, check_i, (CTypBool, loc)) + var check_exp = e0 + for check_i <- rest { + check_exp = CExpBinary(COpLogicAnd, check_exp, check_i, (CTypBool, loc)) } val check_call = make_call(std_FX_CHECK_EQ_SIZE, [:: check_exp, lbl ], CTypVoid, loc) CExp(check_call) :: ccode @@ -800,8 +833,9 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini match check_list { | e0 :: rest => val n = check_list.length() - val fold sum_checks = e0 for check_i <- rest { - CExpBinary(COpAdd, sum_checks, check_i, (CTypCInt, loc)) + var sum_checks = e0 + for check_i <- rest { + sum_checks = CExpBinary(COpAdd, sum_checks, check_i, (CTypCInt, loc)) } val sum_id = gen_idc(cm_idx, "s") val (sum_exp, ccode) = create_cdefval(sum_id, CTypCInt, default_tempval_flags(), @@ -843,7 +877,7 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini throw compile_err( for_loc, for_err_msg( k, for_idx, nfors, f"dimensionalities of the simultaneously iterated collections/ranges are not the same (...{ndims}...{ndims_i}...)")) } - ndims_i + ndims = ndims_i } /* @@ -952,15 +986,16 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini "the list of '@' indices is too short for array; looks like it's bug in type checker")) } } - val fold list_exps = ([]: cexp_t list), i_exps = ([]: cexp_t list), + var list_exps = ([]: cexp_t list), i_exps = ([]: cexp_t list), n_exps = ([]: cexp_t list), for_checks = [], incr_exps = [], init_checks = [], init_ccode = init_ccode, pre_body_ccode = [], - body_elems = [], post_checks = [] for (iter_val_i, dom_i)@k <- idoml { + body_elems = [], post_checks = [] + for (iter_val_i, dom_i)@k <- idoml { val iter_val_i = if iter_val_i != noid { iter_val_i } else { gen_idc(cm_idx, "i") } - val (lists_i, i_exps, n_exps, for_checks, incr_exps, init_checks, - init_ccode, pre_body_ccode, body_elems, post_checks): + val (lists_i, i_exps_n, n_exps_n, for_checks_n, incr_exps_n, init_checks_n, + init_ccode_n, pre_body_ccode_n, body_elems_n, post_checks_n): (cexp_t list, cexp_t list, cexp_t list, cexp_t list, cexp_t list, cexp_t list, ccode_t, ccode_t, (id_t, cexp_t, val_flags_t) list, cexp_t list) = match dom_i { @@ -1123,21 +1158,25 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini */ val (i_exps, n_exps, init_checks, init_ccode) = if n_exps == [] { - val fold i_exps = [], n_exps = [], init_ccode = init_ccode for k <- 0:ndims { + var i_exps = [], n_exps = [], acc_ccode = init_ccode + for k <- 0:ndims { val calc_n_exp = make_call(std_FX_ARR_SIZE, [:: col_exp, make_int_exp(k, for_loc) ], CTypInt, for_loc) val iter_letter = for_letters.nth(k + dims_ofs) val (n_exp, init_ccode) = add_local(gen_idc(cm_idx, "n" + iter_letter), - CTypInt, default_tempval_flags(), Some(calc_n_exp), init_ccode, for_loc) + CTypInt, default_tempval_flags(), Some(calc_n_exp), acc_ccode, for_loc) val i_id = get_iter_id(k, at_ids, iter_letter) val (i_exp, _) = add_local(i_id, CTypInt, default_tempvar_flags(), None, [], for_loc) - (i_exp :: i_exps, n_exp :: n_exps, init_ccode) + i_exps = i_exp :: i_exps + n_exps = n_exp :: n_exps + acc_ccode = init_ccode } - (i_exps.rev(), n_exps.rev(), init_checks, init_ccode) + (i_exps.rev(), n_exps.rev(), init_checks, acc_ccode) } else { - val fold init_checks = init_checks for prev_nk@k <- n_exps { + var init_checks = init_checks + for prev_nk@k <- n_exps { val calc_n_exp = make_call(std_FX_ARR_SIZE, [:: col_exp, make_int_exp(k, for_loc) ], CTypInt, for_loc) val init_check_k = CExpBinary(COpCmp(CmpEQ), prev_nk, calc_n_exp, (CTypBool, for_loc)) - init_check_k :: init_checks + init_checks = init_check_k :: init_checks } (i_exps, n_exps, init_checks, init_ccode) } @@ -1215,8 +1254,10 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini | _ => throw compile_err(for_loc, for_err_msg(for_idx, nfors, k, "unsupported type of the for loop iteration domain")) } - (lists_i + list_exps, i_exps, n_exps, for_checks, incr_exps, - init_checks, init_ccode, pre_body_ccode, body_elems, post_checks) + list_exps = lists_i + list_exps + i_exps = i_exps_n; n_exps = n_exps_n; for_checks = for_checks_n + incr_exps = incr_exps_n; init_checks = init_checks_n; init_ccode = init_ccode_n + pre_body_ccode = pre_body_ccode_n; body_elems = body_elems_n; post_checks = post_checks_n } /*val default_exp = "" println(f"i_exps: {[::for i_exp <- i_exps {| CExpIdent(i, _) => string(i) | _ => default_exp} ]}") @@ -1236,7 +1277,8 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini else { [] } val post_ccode = add_size_post_check(post_checks, [], lbl, end_for_loc) /* form for-loop headers */ - val fold k_final=0, for_headers=[] for i_exp <- i_exps, n_exp <- n_exps { + var k_final=0, for_headers=[] + for i_exp <- i_exps, n_exp <- n_exps { val ifor_loc = get_cexp_loc(n_exp) val init_exps = [:: make_assign(i_exp, make_int_exp(0, ifor_loc)) ] val check_exp = CExpBinary(COpCmp(CmpLT), i_exp, n_exp, (CTypBool, ifor_loc)) @@ -1245,20 +1287,23 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini if k_final > 0 { (check_exp, incr_exps_i) } else { - val fold check_exp = check_exp for e <- for_checks.rev() { - CExpBinary(COpLogicAnd, check_exp, e, (CTypBool, ifor_loc)) + var check_exp = check_exp + for e <- for_checks.rev() { + check_exp = CExpBinary(COpLogicAnd, check_exp, e, (CTypBool, ifor_loc)) } (check_exp, incr_exps_i + incr_exps.rev()) } - (k_final + 1, (Some(CTypInt), init_exps, Some(check_exp), incr_exps_i) :: for_headers) + k_final += 1 + for_headers = (Some(CTypInt), init_exps, Some(check_exp), incr_exps_i) :: for_headers } /* if we have open loop or loop over lists (i.e. i_exps and n_exps are empty lists), we still need to form the for-loop statement */ val for_headers = if k_final > 0 { for_headers } else { - val fold check_exp_opt = (None: cexp_t?) for check_i <- for_checks.rev() { - Some(match check_exp_opt { + var check_exp_opt = (None: cexp_t?) + for check_i <- for_checks.rev() { + check_exp_opt = Some(match check_exp_opt { | Some e => CExpBinary(COpLogicAnd, e, check_i, (CTypBool, for_loc)) | _ => check_i }) @@ -1269,15 +1314,15 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini } fun decl_for_body_elems(body_elems: (id_t, cexp_t, val_flags_t) list, body_ccode: ccode_t) = - fold body_ccode = body_ccode for (v, e, flags) <- body_elems { + fold res = body_ccode for (v, e, flags) <- body_elems { val (ctyp, loc) = get_cexp_ctx(e) val (_, body_ccode) = if flags.val_flag_tempref { - add_local_tempref(v, ctyp, flags, e, body_ccode, loc) + add_local_tempref(v, ctyp, flags, e, res, loc) } else { - add_local(v, ctyp, flags, Some(e), body_ccode, loc) + add_local(v, ctyp, flags, Some(e), res, loc) } - body_ccode + res = body_ccode } fun process_cases(cases: (kexp_t list, kexp_t) list, dstexp_r: cexp_t? ref, @@ -1285,13 +1330,15 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini { val end_loc = get_end_loc(kloc) val endmatch = make_label(if is_catch_case {"endcatch"} else {"endmatch"}, end_loc) - val fold have_default = false, em_label_used = false, + var have_default = false, em_label_used = false, have_epilogues = false, have_complex_branches = false, - all_cases_ccode = [] for (checks_i, action_i) <- cases { + all_cases_ccode = [] + for (checks_i, action_i) <- cases { val (cchecks_i, pre_cchecks_i) = - fold checks_i = [], pre_checks_i = [] for check_ij <- checks_i { + fold res_checks = [], pre_checks_i = [] for check_ij <- checks_i { val (ccheck_ij, ccode_ij) = kexp2cexp(check_ij, ref None, []) - (ccheck_ij :: checks_i, ccode_ij :: pre_checks_i) + res_checks = ccheck_ij :: res_checks + pre_checks_i = ccode_ij :: pre_checks_i } val ai_loc = get_kexp_loc(action_i) val new_have_default = @@ -1350,14 +1397,14 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val checkij_loc = get_cexp_loc(check_ij) val if_stmt = make_if(check_ij, case_stmt, CStmtNop(ai_end_loc), checkij_loc) - if_stmt :: pre_check_ij + case_ccode = if_stmt :: pre_check_ij } } - (new_have_default, - em_label_used || em_label_used_i, - have_epilogues || have_epilogue_i, - have_complex_branches || complex_branch_i, - case_ccode :: all_cases_ccode) + have_default = new_have_default + em_label_used = em_label_used || em_label_used_i + have_epilogues = have_epilogues || have_epilogue_i + have_complex_branches = have_complex_branches || complex_branch_i + all_cases_ccode = case_ccode :: all_cases_ccode } val parent_lbl = curr_block_label(end_loc) val all_cases_ccode = @@ -1370,8 +1417,9 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val (em_label_used, ccode) = match (have_complex_branches, all_cases_ccode) { | (false, else_s :: ifs) => - val fold complex_if = rccode2stmt(else_s, end_loc) for s_i <- ifs { - match s_i { + var complex_if = rccode2stmt(else_s, end_loc) + for s_i <- ifs { + complex_if = match s_i { | [:: CStmtIf(c_i, then_i, CStmtNop _, loc_i)] => val then_i = match stmt2ccode(then_i).rev() { @@ -1723,8 +1771,9 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val e = make_call(get_id("fx_exn_get_and_reset"), [:: fx_status_exp, cexp_get_addr(dst_exp)], CTypVoid, kloc) (false, dst_exp, CExp(e) :: ccode) | (IntrinStrConcat, al) => - val fold strs = [], ccode = ccode for a <- al { - val (c_exp, ccode) = atom2cexp_(a, true, ccode, kloc) + var strs = [], ccode = ccode + for a <- al { + val (c_exp, ccode1) = atom2cexp_(a, true, ccode, kloc) val s_exp = match (a, get_cexp_typ(c_exp)) { | (AtomLit(KLitChar c), CTypUniChar) => @@ -1734,7 +1783,8 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini make_call(get_id("FX_MAKE_VAR_STR1"), [:: c_exp], CTypString, kloc) | _ => c_exp } - (s_exp :: strs, ccode) + strs = s_exp :: strs + ccode = ccode1 } val strs_id = gen_idc(cm_idx, "strs") val strs_ctyp = CTypRawArray([::CTypConst], CTypString) @@ -1827,9 +1877,11 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val ccode = add_fx_call(call_exp, ccode, kloc) (false, dst_exp, ccode) | (IntrinMath(s), args) => - val fold cargs = [], ccode = ccode for a <- args { - val (c_exp, ccode) = atom2cexp(a, ccode, kloc) - (c_exp :: cargs, ccode) + var cargs = [], ccode = ccode + for a <- args { + val (c_exp, ccode1) = atom2cexp(a, ccode, kloc) + cargs = c_exp :: cargs + ccode = ccode1 } val fname = pp(s) val argtyp = get_atom_ktyp(args.hd(), kloc) @@ -1865,9 +1917,11 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini (true, call_f, ccode) | (IntrinGetSlice, arr :: idxs) => val (arr_exp, ccode) = atom2cexp(arr, ccode, kloc) - val fold i_exps = [], ccode = ccode for i <- idxs { - val (i_exp, ccode) = atom2cexp(i, ccode, kloc) - (i_exp :: i_exps, ccode) + var i_exps = [], ccode = ccode + for i <- idxs { + val (i_exp, ccode1) = atom2cexp(i, ccode, kloc) + i_exps = i_exp :: i_exps + ccode = ccode1 } val i_exps = make_int_exp(0, kloc) :: i_exps val ndims = i_exps.length() @@ -1923,10 +1977,12 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val c_e2 = rccode2stmt(ccode2, get_kexp_loc(e2)) (false, dst_exp, make_if(cc, c_e1, c_e2, kloc) :: ccode) | KExpCall (f, args, _) => - val fold args = [], ccode = ccode for arg <- args { - val (carg, ccode) = atom2cexp(arg, ccode, kloc) + var cargs = [], ccode = ccode + for arg <- args { + val (carg, ccode1) = atom2cexp(arg, ccode, kloc) val carg = make_fun_arg(carg, kloc) - (carg :: args, ccode) + cargs = carg :: cargs + ccode = ccode1 } val (f, ci) = match cinfo_(f, kloc) { | CExn (ref {cexn_make}) => (cexn_make, cinfo_(cexn_make, kloc)) @@ -1964,16 +2020,16 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini | _ => throw compile_err(kloc, f"cgen: the called '{idc2str(f, kloc)}' is not a function nor value") } if !have_out_arg && ctyp != CTypVoid { - val args = (fv_args + args).rev() + val args = (fv_args + cargs).rev() val call_exp = CExpCall(f_exp, args, (ctyp, kloc)) (true, call_exp, ccode) } else { val (args, dst_exp, ccode) = if ctyp == CTypVoid { - (args, dummy_exp, ccode) + (cargs, dummy_exp, ccode) } else { val (dst_exp, ccode) = get_dstexp(dstexp_r, "res", ctyp, ccode, kloc) - (cexp_get_addr(dst_exp) :: args, dst_exp, ccode) + (cexp_get_addr(dst_exp) :: cargs, dst_exp, ccode) } val args = (fv_args + args).rev() val fcall_rt = if is_nothrow { CTypVoid } else { CTypCInt } @@ -1990,10 +2046,12 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini // convert all the arguments to C expressions, // add the object pointer to the beginning of the list val obj_cexp = cexp_mem(io_cexp, get_id("obj"), std_CTypVoidPtr) - val fold args = [:: make_fun_arg(obj_cexp, kloc)], ccode = ccode for arg <- args { - val (carg, ccode) = atom2cexp(arg, ccode, kloc) + var cargs = [:: make_fun_arg(obj_cexp, kloc)], ccode = ccode + for arg <- args { + val (carg, ccode1) = atom2cexp(arg, ccode, kloc) val carg = make_fun_arg(carg, kloc) - (carg :: args, ccode) + cargs = carg :: cargs + ccode = ccode1 } val t = get_cexp_typ(io_cexp) val obj_iface = match get_cinterface_opt(t, kloc) { @@ -2006,10 +2064,10 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini // add return value val (args, dst_exp, ccode) = if ctyp == CTypVoid { - (args, dummy_exp, ccode) + (cargs, dummy_exp, ccode) } else { val (dst_exp, ccode) = get_dstexp(dstexp_r, "res", ctyp, ccode, kloc) - (cexp_get_addr(dst_exp) :: args, dst_exp, ccode) + (cexp_get_addr(dst_exp) :: cargs, dst_exp, ccode) } // use nullptr as the pointer to closure data (because methods do not use closures) val args = make_nullptr(kloc) :: args @@ -2023,10 +2081,12 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini | _ => throw compile_err(kloc, "unexpected expression") } val tcon = C_gen_types.get_constructor(ctyp, false, kloc) - val fold cargs = [], ccode = ccode for a <- args { - val (ca, ccode) = atom2cexp(a, ccode, kloc) + var cargs = [], ccode = ccode + for a <- args { + val (ca, ccode1) = atom2cexp(a, ccode, kloc) val ca = if tcon == noid { ca } else { make_fun_arg(ca, kloc) } - (ca :: cargs, ccode) + cargs = ca :: cargs + ccode = ccode1 } if tcon != noid { val (t_exp, ccode) = get_dstexp(dstexp_r, prefix, ctyp, ccode, kloc) @@ -2048,10 +2108,12 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val (fp_exp, ccode) = create_cdefval(fp_id, ctyp, default_tempval_flags(), "", Some(e0), ccode, kloc) (true, fp_exp, ccode) } else { - val fold cargs = [], ccode = ccode for a <- args { - val (ca, ccode) = atom2cexp(a, ccode, kloc) + var cargs = [], ccode = ccode + for a <- args { + val (ca, ccode1) = atom2cexp(a, ccode, kloc) val ca = make_fun_arg(ca, kloc) - (ca :: cargs, ccode) + cargs = ca :: cargs + ccode = ccode1 } val (fp_exp, ccode) = get_dstexp(dstexp_r, fp_prefix, ctyp, ccode, kloc) ensure_sym_is_defined_or_declared(make_fp, kloc) @@ -2069,12 +2131,12 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val (arr_exp, ccode) = get_dstexp(dstexp_r, "arr", ctyp, ccode, kloc) val scalars_id = gen_idc(cm_idx, "scalars") val scalars_exp = make_id_t_exp(scalars_id, make_ptr(elem_ctyp), kloc) - val (_, scalars_data, tags_data, arr_data, ccode) = - fold nscalars = 0, scalars_data = [], tags_data = [], - arr_data = [], ccode = ccode for arow <- arows { - val fold nscalars = nscalars, scalars_data = scalars_data, tags_data = tags_data, - arr_data = arr_data, ccode = ccode for (f, a) <- arow { - val (e, ccode) = atom2cexp(a, ccode, kloc) + var nscalars = 0, scalars_data = [], tags_data = [], + arr_data = [], ccode = ccode + for arow <- arows { + for (f, a) <- arow { + val (e, ccode1) = atom2cexp(a, ccode, kloc) + ccode = ccode1 if f { val elem_ktyp = get_atom_ktyp(a, kloc) val (tag, elem_ptr) = @@ -2084,19 +2146,23 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini | KTypVector _ => (110, cexp_get_addr(e)) | _ => throw compile_err(kloc, f"cgen: the expanded structure {atom2str(a)} is not an array, vector or list") } - (nscalars, scalars_data, make_int_exp(tag, kloc) :: tags_data, elem_ptr :: arr_data, ccode) + tags_data = make_int_exp(tag, kloc) :: tags_data + arr_data = elem_ptr :: arr_data } else { - val (nscalars, scalars_data, arr_data_elem) = + val (nscalars1, scalars_data1, arr_data_elem) = match e { | CExpIdent _ => (nscalars, scalars_data, cexp_get_addr(e)) | _ => (nscalars + 1, e :: scalars_data, CExpBinary(COpAdd, scalars_exp, make_int_exp(nscalars, kloc), (std_CTypVoidPtr, kloc))) } - (nscalars, scalars_data, make_int_exp(0, kloc) :: tags_data, arr_data_elem :: arr_data, ccode) + nscalars = nscalars1 + scalars_data = scalars_data1 + tags_data = make_int_exp(0, kloc) :: tags_data + arr_data = arr_data_elem :: arr_data } } - (nscalars, scalars_data, make_int_exp(127, kloc) :: tags_data, arr_data, ccode) + tags_data = make_int_exp(127, kloc) :: tags_data } val (_, sub_ccode) = decl_plain_arr(scalars_id, elem_ctyp, scalars_data.rev(), [], kloc) val tags_data = (make_int_exp(-1, kloc) :: tags_data.tl()).rev() @@ -2129,10 +2195,12 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val ncols = arows.hd().length() val shape = if nrows > 1 { [:: nrows, ncols] } else { [:: ncols] } val shape = [:: for i <- shape { make_int_exp(i, kloc) } ] - val fold data = [], ccode = ccode for arow <- arows { - fold data = data, ccode = ccode for (_, a) <- arow { - val (e, ccode) = atom2cexp(a, ccode, kloc) - (e :: data, ccode) + var data = [], ccode = ccode + for arow <- arows { + for (_, a) <- arow { + val (e, ccode1) = atom2cexp(a, ccode, kloc) + data = e :: data + ccode = ccode1 } } if all_literals { @@ -2174,7 +2242,7 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val (_, scalars_data, tags_data, vec_data, ccode) = fold nscalars = 0, scalars_data = [], tags_data = [], vec_data = [], ccode = ccode for (f, a) <- elems { - val (e, ccode) = atom2cexp(a, ccode, kloc) + val (e, ccode1) = atom2cexp(a, ccode, kloc) if f { val elem_ktyp = get_atom_ktyp(a, kloc) val (tag, elem_ptr) = @@ -2184,16 +2252,22 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini | KTypVector _ => (110, cexp_get_addr(e)) | _ => throw compile_err(kloc, f"cgen: the expanded structure {atom2str(a)} is not an array, vector or list") } - (nscalars, scalars_data, make_int_exp(tag, kloc) :: tags_data, elem_ptr :: vec_data, ccode) + tags_data = make_int_exp(tag, kloc) :: tags_data + vec_data = elem_ptr :: vec_data + ccode = ccode1 } else { - val (nscalars, scalars_data, vec_data_elem) = + val (nscalars1, scalars_data1, vec_data_elem) = match e { | CExpIdent _ => (nscalars, scalars_data, cexp_get_addr(e)) | _ => (nscalars + 1, e :: scalars_data, CExpBinary(COpAdd, scalars_exp, make_int_exp(nscalars, kloc), (std_CTypVoidPtr, kloc))) } - (nscalars, scalars_data, make_int_exp(0, kloc) :: tags_data, vec_data_elem :: vec_data, ccode) + nscalars = nscalars1 + scalars_data = scalars_data1 + tags_data = make_int_exp(0, kloc) :: tags_data + vec_data = vec_data_elem :: vec_data + ccode = ccode1 } } val (_, sub_ccode) = decl_plain_arr(scalars_id, elem_ctyp, scalars_data.rev(), [], kloc) @@ -2222,9 +2296,11 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val ccode = rccode2stmt(sub_ccode, kloc) :: ccode (false, vec_exp, ccode) } else { - val fold data = [], ccode = ccode for (_, a) <- elems { - val (e, ccode) = atom2cexp(a, ccode, kloc) - (e :: data, ccode) + var data = [], ccode = ccode + for (_, a) <- elems { + val (e, ccode1) = atom2cexp(a, ccode, kloc) + data = e :: data + ccode = ccode1 } val (vec_exp, ccode) = get_dstexp(dstexp_r, "vec", ctyp, ccode, kloc) val ccode = make_make_vec_call(vec_exp, data.rev(), ccode, curr_block_label(kloc), kloc) @@ -2374,28 +2450,32 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini if border != BorderNone { throw compile_err(kloc, "cgen: border extrapolation with ranges is not supported yet") } - val fold range_data = [], ccode = ccode for d <- idxs { + var range_data = [], ccode = ccode + for d <- idxs { match d { | DomainElem i => - val (i_exp, ccode) = atom2cexp(i, ccode, kloc) - (i_exp :: make_int_exp(0, kloc) :: range_data, ccode) + val (i_exp, ccode1) = atom2cexp(i, ccode, kloc) + range_data = i_exp :: make_int_exp(0, kloc) :: range_data + ccode = ccode1 | DomainFast i => - val (i_exp, ccode) = atom2cexp(i, ccode, kloc) - (i_exp :: make_int_exp(0, kloc) :: range_data, ccode) + val (i_exp, ccode1) = atom2cexp(i, ccode, kloc) + range_data = i_exp :: make_int_exp(0, kloc) :: range_data + ccode = ccode1 | DomainRange (a, b, delta) => - val (a_exp, ccode) = + val (a_exp, ccode1) = match a { | AtomLit(KLitNil _) => (make_int_exp(0, kloc), ccode) | _ => atom2cexp(a, ccode, kloc) } - val (range_delta, ccode) = + val (range_delta, ccode2) = match b { - | AtomLit(KLitNil _) => ([:: a_exp, make_int_exp(2, kloc)], ccode) - | _ => val (b_exp, ccode) = atom2cexp(b, ccode, kloc) - ([:: b_exp, a_exp, make_int_exp(1, kloc)], ccode) + | AtomLit(KLitNil _) => ([:: a_exp, make_int_exp(2, kloc)], ccode1) + | _ => val (b_exp, ccode_) = atom2cexp(b, ccode1, kloc) + ([:: b_exp, a_exp, make_int_exp(1, kloc)], ccode_) } - val (d_exp, ccode) = atom2cexp(delta, ccode, kloc) - ((d_exp :: range_delta) + range_data, ccode) + val (d_exp, ccode3) = atom2cexp(delta, ccode2, kloc) + range_data = (d_exp :: range_delta) + range_data + ccode = ccode3 } } val (subarr_exp, ccode) = get_dstexp(dstexp_r, "arr", ctyp, ccode, kloc) @@ -2410,25 +2490,28 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini (false, subarr_exp, ccode) } else { val elem_ctyp = ctyp - val fold chk_exp_opt = (None: cexp_t?), i_exps = [], - ccode = ccode for d@dim <- idxs { + var chk_exp_opt = (None: cexp_t?), i_exps = [], + ccode = ccode + for d@dim <- idxs { val d = if border == BorderNone { d } else { match d { | DomainElem i => DomainFast(i) | _ => d } } match d { | DomainFast i => - val (i_exp, ccode) = atom2cexp(i, ccode, kloc) - (chk_exp_opt, i_exp :: i_exps, ccode) + val (i_exp, ccode1) = atom2cexp(i, ccode, kloc) + i_exps = i_exp :: i_exps + ccode = ccode1 | DomainElem i => - val (i_exp, ccode) = atom2cexp_(i, true, ccode, kloc) + val (i_exp, ccode1) = atom2cexp_(i, true, ccode, kloc) val chk_exp1 = make_call(std_FX_CHKIDX1, [:: arr_exp, make_int_exp(dim, kloc), i_exp ], CTypBool, kloc) - val chk_exp_opt = + chk_exp_opt = match chk_exp_opt { | Some chk_exp => val chk_exp = CExpBinary(COpLogicAnd, chk_exp, chk_exp1, (CTypBool, kloc)) Some(chk_exp) | _ => Some(chk_exp1) } - (chk_exp_opt, i_exp :: i_exps, ccode) + i_exps = i_exp :: i_exps + ccode = ccode1 | _ => throw compile_err(kloc, "cgen: unexpected index type") } } @@ -2666,9 +2749,10 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini }) } /* compute the total array dimensionality */ - val fold ndims = 0 for (e, idoml, _)@for_idx <- e_idoml_l { + var ndims = 0 + for (e, idoml, _)@for_idx <- e_idoml_l { val ndims_i = compute_for_ndims(for_idx, nfors, idoml, for_loc) - ndims + ndims_i + ndims += ndims_i } val is_parallel_map = pre_alloc_array && flags.for_flag_parallel val glob_status = make_id_t_exp(fx_status_, CTypCInt, kloc) @@ -2690,32 +2774,34 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini | (true, KTypTuple tl) => tl | (_, _) => throw compile_err(kloc, "cgen: the result of @unzip comprehension should be a tuple") } - val fold dst_data = [], ccode = ccode, finalize_ccode = [] for coll_typ <- coll_typs { + var dst_data = [], ccode = ccode, finalize_ccode = [] + for coll_typ <- coll_typs { val coll_ctyp = C_gen_types.ktyp2ctyp(coll_typ, kloc) match (for_flag_make, coll_ctyp, deref_ktyp(coll_typ, kloc)) { | (ForMakeArray, CTypArray (nd, elemtyp), KTypArray _) => - val (dst_exp, ccode) = + val (dst_exp, ccode1) = if unzip_mode { add_local(gen_idc(cm_idx, "arr"), coll_ctyp, default_tempval_flags(), None, ccode, for_loc) } else { get_dstexp(dstexp_r, "arr", coll_ctyp, ccode, for_loc) } - val (dst_ptr, ccode) = + val (dst_ptr, ccode2) = if is_parallel_map { - (make_dummy_exp(kloc), ccode) + (make_dummy_exp(kloc), ccode1) } else { create_cdefval( gen_idc(cm_idx, "dstptr"), make_ptr(elemtyp), default_tempvar_flags(), "", Some(make_nullptr(for_loc)), - ccode, for_loc) + ccode1, for_loc) } if nd != ndims { throw compile_err(kloc, f"cgen: invalid dimensionaly of array comprehension result (computed: {ndims}, expected: {nd})") } else { - ((coll_ctyp, elemtyp, dst_exp, dst_ptr, make_dummy_exp(for_loc)) :: dst_data, ccode, finalize_ccode) + dst_data = (coll_ctyp, elemtyp, dst_exp, dst_ptr, make_dummy_exp(for_loc)) :: dst_data + ccode = ccode2 } | (ForMakeVector, CTypVector (elemtyp), KTypVector _) => - val (dst_exp, ccode) = + val (dst_exp, ccode1) = if unzip_mode { add_local(gen_idc(cm_idx, "vec"), coll_ctyp, default_tempval_flags(), None, ccode, for_loc) } else { @@ -2723,28 +2809,31 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini } val (sizeof_elem_exp, free_f_exp, copy_f_exp) = get_elem_size_free_copy(elemtyp, for_loc) val iter_t = CTypName(get_id("fx_rrbiter_t")) - val (iter_exp, ccode) = create_cdefval( gen_idc(cm_idx, "iter"), iter_t, - default_tempvar_flags(), "", None, ccode, for_loc) + val (iter_exp, ccode2) = create_cdefval( gen_idc(cm_idx, "iter"), iter_t, + default_tempvar_flags(), "", None, ccode1, for_loc) val call_start_write = make_call(get_id("FX_RRB_START_WRITE"), [:: CExpTyp(elemtyp, for_loc), sizeof_elem_exp, free_f_exp, copy_f_exp, dst_exp, iter_exp], std_CTypVoidPtr, for_loc) - val (dst_ptr, ccode) = create_cdefval( gen_idc(cm_idx, "dstptr"), make_ptr(elemtyp), - default_tempvar_flags(), "", Some(call_start_write), ccode, for_loc) + val (dst_ptr, ccode3) = create_cdefval( gen_idc(cm_idx, "dstptr"), make_ptr(elemtyp), + default_tempvar_flags(), "", Some(call_start_write), ccode2, for_loc) val call_end_write = make_call(get_id("FX_RRB_END_WRITE"), [:: iter_exp, dst_ptr ], CTypVoid, for_loc) - ((coll_ctyp, elemtyp, dst_exp, dst_ptr, iter_exp) :: dst_data, ccode, CExp(call_end_write) :: finalize_ccode) + dst_data = (coll_ctyp, elemtyp, dst_exp, dst_ptr, iter_exp) :: dst_data + ccode = ccode3 + finalize_ccode = CExp(call_end_write) :: finalize_ccode | (ForMakeList, _, KTypList kelemtyp) => val elemtyp = C_gen_types.ktyp2ctyp(kelemtyp, for_loc) - val (dst_exp, ccode) = + val (dst_exp, ccode1) = if unzip_mode { add_local(gen_idc(cm_idx, "lst"), coll_ctyp, default_tempvar_flags(), None, ccode, for_loc) } else { get_dstexp(dstexp_r, "lst", coll_ctyp, ccode, for_loc) } - val (lst_end, ccode) = - create_cdefval(gen_idc(cm_idx, "lstend"), coll_ctyp, default_tempvar_flags(), "", Some(make_nullptr(for_loc)), ccode, for_loc) - ((coll_ctyp, elemtyp, dst_exp, make_dummy_exp(for_loc), lst_end) :: dst_data, ccode, finalize_ccode) + val (lst_end, ccode2) = + create_cdefval(gen_idc(cm_idx, "lstend"), coll_ctyp, default_tempvar_flags(), "", Some(make_nullptr(for_loc)), ccode1, for_loc) + dst_data = (coll_ctyp, elemtyp, dst_exp, make_dummy_exp(for_loc), lst_end) :: dst_data + ccode = ccode2 | _ => val maptype_str = match for_flag_make { | ForMakeArray => "make_array" @@ -2798,18 +2887,21 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini fold k = 0, cmp_size_list = [] for n_exp <- n_exps { val size_i = make_call(std_FX_ARR_SIZE, [:: dst_exp0, make_int_exp(k, nested_loc) ], CTypInt, nested_loc) val cmp_size_i = CExpBinary(COpCmp(CmpEQ), size_i, n_exp, (CTypBool, nested_loc)) - (k + 1, cmp_size_i :: cmp_size_list) + k += 1 + cmp_size_list = cmp_size_i :: cmp_size_list } val lbl = if pre_alloc_array { map_lbl } else { curr_block_label(nested_loc) } - val fold then_ccode = [] for (coll_ctyp, elemtyp, dst_exp, dst_ptr, _) <- dst_data { - val then_ccode = make_make_arr_call(dst_exp, n_exps, [], then_ccode, lbl, nested_loc) + var then_ccode = [] + for (coll_ctyp, elemtyp, dst_exp, dst_ptr, _) <- dst_data { + val then_ccode1 = make_make_arr_call(dst_exp, n_exps, [], then_ccode, lbl, nested_loc) + then_ccode = if is_parallel_map { - then_ccode + then_ccode1 } else { val arr_data = CExpCast(cexp_mem(dst_exp, get_id("data"), std_CTypVoidPtr), make_ptr(elemtyp), nested_loc) val set_dstptr = make_assign(dst_ptr, arr_data) - CExp(set_dstptr) :: then_ccode + CExp(set_dstptr) :: then_ccode1 } } if for_idx == 0 || pre_alloc_array { @@ -2847,7 +2939,8 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini f"cgen: internal error when compiling parallel for: incorrect number of iteration indices (={n_i_exps})."+ f"There should be as many as the output array dimensionality (={ndims})") } - val fold dst_data = [], decl_dstptr_ccode_all = ([] : cstmt_t list) for (coll_ctyp, elemtyp, dst_exp, dst_ptr, iter) <- dst_data { + var new_dst_data = [], decl_dstptr_ccode_all = ([] : cstmt_t list) + for (coll_ctyp, elemtyp, dst_exp, dst_ptr, iter) <- dst_data { val elemtyp_ptr = make_ptr(elemtyp) val dst_idxs = if ndims == 1 { i_exps } else { (make_int_exp(0, body_loc) :: i_exps.rev().tl()).rev() } @@ -2856,13 +2949,13 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val (dst_ptr, decl_dstptr_ccode) = create_cdefval(gen_idc(cm_idx, "dstptr"), elemtyp_ptr, default_tempvar_flags(), "", Some(get_arr_slice), [], body_loc) - ((coll_ctyp, elemtyp, dst_exp, dst_ptr, iter) :: dst_data, - decl_dstptr_ccode + decl_dstptr_ccode_all) + new_dst_data = (coll_ctyp, elemtyp, dst_exp, dst_ptr, iter) :: new_dst_data + decl_dstptr_ccode_all = decl_dstptr_ccode + decl_dstptr_ccode_all } if ndims == 1 { - (false, dst_data.rev(), pre_body_ccode, decl_dstptr_ccode_all + body_ccode) + (false, new_dst_data.rev(), pre_body_ccode, decl_dstptr_ccode_all + body_ccode) } else { - (true, dst_data.rev(), decl_dstptr_ccode_all + pre_body_ccode, body_ccode) + (true, new_dst_data.rev(), decl_dstptr_ccode_all + pre_body_ccode, body_ccode) } } // FB-006: some value-producing bodies (e.g. a NESTED @@ -2891,7 +2984,8 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini add `bool move_hd` parameter), otherwise we could use this 'move' trick only with array and vector comprehensions. */ - val fold body_ccode = body_ccode for (coll_ctyp, elemtyp, dst_exp, dst_ptr, iter)@j <- dst_data { + var body_ccode = body_ccode + for (coll_ctyp, elemtyp, dst_exp, dst_ptr, iter)@j <- dst_data { val result_j = if !unzip_mode { result @@ -2904,6 +2998,7 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val (j_id, _) = relems.nth(j + ofs) cexp_mem(result, j_id, elemtyp) } + body_ccode = match for_flag_make { | ForMakeArray => C_gen_types.gen_copy_code(result_j, cexp_deref(dst_ptr), elemtyp, body_ccode, body_loc) @@ -2917,12 +3012,12 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini iter, dst_ptr, result_j, lbl], CTypVoid, body_loc) (CExp(write_call) :: body_ccode) | ForMakeList => - val (node_exp, body_ccode) = + val (node_exp, body_ccode1) = create_cdefval(gen_idc(cm_idx, "node"), coll_ctyp, default_tempval_flags(), "", Some(make_nullptr(body_loc)), body_ccode, body_loc) - val body_ccode = make_cons_call(result_j, make_nullptr(body_loc), false, node_exp, body_ccode, body_loc) + val body_ccode2 = make_cons_call(result_j, make_nullptr(body_loc), false, node_exp, body_ccode1, body_loc) val append_call = make_call(std_FX_LIST_APPEND, [:: dst_exp, iter, node_exp ], CTypVoid, body_loc) - (CExp(append_call) :: body_ccode) + (CExp(append_call) :: body_ccode2) | _ => throw compile_err(body_loc, "unsupported kind of comprehension (only arrays, vectors and lists are supported)") } } @@ -2934,8 +3029,8 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini /* form (possibly nested) for statement */ val nfor_headers = for_headers.length() - val fold for_ccode = stmt2ccode(body_stmt).rev() - for (t_opt, for_inits, for_check_opt, for_incrs)@k <- for_headers.rev() { + var acc_for_ccode = stmt2ccode(body_stmt).rev() + for (t_opt, for_inits, for_check_opt, for_incrs)@k <- for_headers.rev() { val for_incrs = if k > 0 || !add_incr_dstptr { for_incrs } else { @@ -2943,8 +3038,8 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini CExpUnary(COpSuffixInc, dst_ptr, (CTypVoid, for_loc)) }] } val insert_pragma = for_idx == 0 && is_parallel_map && k + 1 == nfor_headers - val for_body_ccode = if !insert_pragma { for_ccode } - else { for_ccode + decl_nested_status } + val for_body_ccode = if !insert_pragma { acc_for_ccode } + else { acc_for_ccode + decl_nested_status } val (t_opt, init_t_opt) = match (t_opt, insert_pragma, post_ccode) { | (Some _, false, _ :: _) => (None, t_opt) @@ -2954,7 +3049,7 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini match init_t_opt { | Some t => fold for_ccode = [] for e <- for_inits { - match e { + for_ccode = match e { | CExpBinary (COpAssign, CExpIdent (i, (_, loc_i)), _, _) => CDefVal(t, i, None, loc_i) :: for_ccode | e => throw compile_err(get_cexp_loc(e), "invalid expression in the for-loop initialization part (should be i=)") } @@ -2967,12 +3062,12 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini else { for_ccode + [:: CMacroPragma("omp parallel for", kloc) ] } val for_ccode = if k > 0 || pre_body_ccode == [] { for_ccode } else { for_ccode + pre_body_ccode } - for_ccode + acc_for_ccode = for_ccode } /* add the non-local "break" label if needed */ val post_ccode = if br_label == noid { post_ccode } else { CStmtLabel(br_label, end_for_loc) :: post_ccode } - (pre_map_ccode, post_ccode + (for_ccode + init_ccode)) + (pre_map_ccode, post_ccode + (acc_for_ccode + init_ccode)) } val (pre_map_ccode, map_ccode) = form_map([], 0, e_idoml_l + [:: (body, [], [])], [], []) @@ -3030,12 +3125,14 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val (br_label, body_stmt) = finalize_loop_body(body_ccode, true, body_loc) /* form (possibly nested) for statement */ - val fold for_stmt = body_stmt for (t_opt, for_inits, for_check_opt, for_incrs)@k <- for_headers.rev() { - val for_stmt = CStmtFor(t_opt, for_inits, for_check_opt, for_incrs, for_stmt, kloc) + var for_stmt = body_stmt + for (t_opt, for_inits, for_check_opt, for_incrs)@k <- for_headers.rev() { + val for_stmt1 = CStmtFor(t_opt, for_inits, for_check_opt, for_incrs, for_stmt, kloc) + for_stmt = if k > 0 || pre_body_ccode == [] { - for_stmt + for_stmt1 } else { - rccode2stmt(for_stmt :: pre_body_ccode, for_loc) + rccode2stmt(for_stmt1 :: pre_body_ccode, for_loc) } } /* add the non-local "break" label if needed */ @@ -3454,7 +3551,8 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val ccode = if have_tag { CExp(init_tag) :: ccode } else { ccode } val dst_base = cexp_arrow(var_exp, get_id("u"), CTypAny) val dst_base = cexp_mem(dst_base, get_orig_id(kf_name), CTypAny) - val fold ccode = ccode for (a, t, flags)@idx <- real_args { + var ccode = ccode + for (a, t, flags)@idx <- real_args { val src_exp = make_id_t_exp(a, t, kf_loc) val (src_exp, t) = maybe_deref_fun_arg(idx, src_exp, t, flags, kf_loc) val dst_exp = dst_base @@ -3465,7 +3563,7 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val tup_elem = get_id(f"t{idx}") cexp_mem(dst_exp, tup_elem, t) } - C_gen_types.gen_copy_code(src_exp, dst_exp, t, ccode, kf_loc) + ccode = C_gen_types.gen_copy_code(src_exp, dst_exp, t, ccode, kf_loc) } (ret_ccode + ccode).rev() /* function pointer/closure constructor */ @@ -3487,12 +3585,13 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini default_tempval_flags(), "fcv", None, [], kf_loc) val ret_ccode = [:: CStmtReturn(Some(make_int_exp(0, kf_loc)), kf_loc) ] val ccode = [:: CExp(alloc_fcv)] - val fold ccode = ccode for (a, t, flags)@idx <- real_args { + var ccode = ccode + for (a, t, flags)@idx <- real_args { val src_exp = make_id_t_exp(a, t, kf_loc) val (src_exp, t) = maybe_deref_fun_arg(idx, src_exp, t, flags, kf_loc) val fcv_elem = get_id(f"t{idx}") val dst_exp = cexp_arrow(fcv_exp, fcv_elem, t) - C_gen_types.gen_copy_code(src_exp, dst_exp, t, ccode, kf_loc) + ccode = C_gen_types.gen_copy_code(src_exp, dst_exp, t, ccode, kf_loc) } (ret_ccode + ccode).rev() /* exception constructor */ @@ -3522,7 +3621,8 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val exn_data = make_id_t_exp(get_id("exn_data"), make_ptr(exn_data_t), kf_loc) val dst_exp = cexp_arrow(exn_data, get_id("data"), exn_typ) val ccode = [:: CExp(alloc_exn_data)] - val fold ccode = ccode for (a, t, flags)@idx <- real_args { + var ccode = ccode + for (a, t, flags)@idx <- real_args { val src_exp = make_id_t_exp(a, t, kf_loc) val (src_exp, t) = maybe_deref_fun_arg(idx, src_exp, t, flags, kf_loc) val dst_exp = @@ -3532,7 +3632,7 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini val t_elem = get_id(f"t{idx}") cexp_mem(dst_exp, t_elem, t) } - C_gen_types.gen_copy_code(src_exp, dst_exp, t, ccode, kf_loc) + ccode = C_gen_types.gen_copy_code(src_exp, dst_exp, t, ccode, kf_loc) } (ret_ccode + ccode).rev() } @@ -3590,7 +3690,8 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini Need to add it to end of fx_deinit_...() and form its body */ val {bctx_prologue, bctx_label, bctx_cleanup, bctx_label_used} = *curr_block_ctx(end_loc) - val fold global_vars = [], temp_init_vals = [] for s <- bctx_prologue { + var global_vars = [], temp_init_vals = [] + for s <- bctx_prologue { val is_global = match s { | CDefVal (_, i, _, loc) => @@ -3600,8 +3701,8 @@ fun gen_ccode(cmods: cmodule_t list, kmod: kmodule_t, c_fdecls: ccode_t, mod_ini } | _ => true } - if is_global { (s :: global_vars, temp_init_vals) } - else { (global_vars, s :: temp_init_vals) } + if is_global { global_vars = s :: global_vars } + else { temp_init_vals = s :: temp_init_vals } } pop_block_ctx(end_loc) val ccode = match e { @@ -3651,18 +3752,19 @@ fun gen_ccode_all(kmods: kmodule_t list): cmodule_t list val (kmods_plus, _) = fold kmods_plus = [], all_exn_data_decls = ([]: ccode_t) for km <- kmods { val (c_fdecls, mod_init_calls, mod_exn_data_decls) = C_gen_fdecls.convert_all_fdecls(km.km_idx, km.km_top) - ((km, c_fdecls, mod_init_calls, all_exn_data_decls.rev()) :: kmods_plus, - mod_exn_data_decls.rev() + all_exn_data_decls) + kmods_plus = (km, c_fdecls, mod_init_calls, all_exn_data_decls.rev()) :: kmods_plus + all_exn_data_decls = mod_exn_data_decls.rev() + all_exn_data_decls } pr_verbose("\tfunction declarations and exceptions have been translated to C") /* 3. convert each module to C */ - val fold cmods = [] for (km, c_fdecls, mod_init_calls, exn_data_decls) <- kmods_plus.rev() { + var cmods = [] + for (km, c_fdecls, mod_init_calls, exn_data_decls) <- kmods_plus.rev() { val {km_name, km_cname, km_main, km_skip, km_pragmas} = km val (prologue, ccode) = gen_ccode(cmods, km, c_fdecls, mod_init_calls) val ctypes = C_gen_types.elim_unused_ctypes(km.km_name, all_ctypes_fwd_decl, all_ctypes_decl + exn_data_decls, all_ctypes_fun_decl, ccode) - (cmodule_t { + cmods = (cmodule_t { cmod_name=km_name, cmod_cname=K_mangle.mangle_mname(km_cname), cmod_ccode=prologue + (ctypes + ccode), diff --git a/compiler/C_gen_fdecls.fx b/compiler/C_gen_fdecls.fx index 5bf86ef2..d9f62adc 100644 --- a/compiler/C_gen_fdecls.fx +++ b/compiler/C_gen_fdecls.fx @@ -29,7 +29,8 @@ fun convert_all_fdecls(cm_idx: int, top_code: kcode_t) val {kci_arg} = kf_closure val is_ccode_func = match kf_body { | KExpCCode _ => true | _ => false } val ctor = kf_flags.fun_flag_ctor - val fold args = [] for arg@idx <- kf_params { + var args = [] + for arg@idx <- kf_params { val {kv_typ=t} = get_kval(arg, kf_loc) val arg = if arg.m == 0 {dup_idc(cm_idx, arg)} else {arg} val cname = if is_ccode_func { pp(arg) } @@ -47,7 +48,7 @@ fun convert_all_fdecls(cm_idx: int, top_code: kcode_t) (ctyp, []) } add_cf_arg(arg, ctyp, cname, kf_loc) - (arg, ctyp, arg_flags) :: args + args = (arg, ctyp, arg_flags) :: args } val {ktp_scalar=rt_scalar} = K_annotate.get_ktprops(rt, kf_loc) val crt = C_gen_types.ktyp2ctyp(rt, kf_loc) @@ -93,8 +94,8 @@ fun convert_all_fdecls(cm_idx: int, top_code: kcode_t) val ctyp = C_gen_types.ktyp2ctyp(kt, kcv_loc) val c_id = get_id(f"t{idx}") val elem_exp = cexp_arrow(dst_exp, c_id, ctyp) - val free_ccode = C_gen_types.gen_free_code(elem_exp, ctyp, true, false, free_ccode, kcv_loc) - ((c_id, ctyp) :: relems, free_ccode) + relems = (c_id, ctyp) :: relems + free_ccode = C_gen_types.gen_free_code(elem_exp, ctyp, true, false, free_ccode, kcv_loc) } val (free_f, decl_free_f) = if free_ccode == [] { @@ -305,8 +306,8 @@ fun convert_all_fdecls(cm_idx: int, top_code: kcode_t) val {ct_props={ctp_free=(_, free_f)}} = *ct val entry_ctyp = CTypName(get_id("fx_iface_entry_t")) val entries_ctyp = CTypRawArray([::CTypStatic], entry_ctyp) - var fold init_ccode = [], ids = [], pairs = [], all_ids = empty_idset - for (iname, methods) <- kvar_ifaces { + var init_ccode = [], ids = [], pairs = [], all_ids = empty_idset + for (iname, methods) <- kvar_ifaces { // FB-001: an explicit (void*) cast on each method pointer -- C // implicitly converts a function pointer to void*, but C++ (the // -c++ backend) rejects it in the `const void* vtbl[]` initializer. @@ -316,8 +317,8 @@ fun convert_all_fdecls(cm_idx: int, top_code: kcode_t) val vtbl_ctyp = CTypRawArray([::CTypStatic, CTypConst], std_CTypVoidPtr) val vtbl_init_exp = CExpInit(mptrs, (vtbl_ctyp, kvar_loc)) val vtbl = gen_idc(cm_idx, "vtbl") - val (_, init_ccode) = create_cdefval(vtbl, vtbl_ctyp, default_tempval_flags(), - "", Some(vtbl_init_exp), init_ccode, kvar_loc) + (_, init_ccode) = create_cdefval(vtbl, vtbl_ctyp, default_tempval_flags(), + "", Some(vtbl_init_exp), init_ccode, kvar_loc) val iface = match get_kinterface_opt(KTypName(iname), kvar_loc) { | Some(iface) => iface | _ => throw compile_err(kvar_loc, @@ -325,7 +326,9 @@ fun convert_all_fdecls(cm_idx: int, top_code: kcode_t) } val pair = CExpInit([::make_int_exp(0, kvar_loc), make_id_exp(vtbl, kvar_loc)], (entry_ctyp, kvar_loc)) - (init_ccode, iface->ki_id :: ids, pair :: pairs, all_ids.add(iface->ki_id)) + ids = iface->ki_id :: ids + pairs = pair :: pairs + all_ids = all_ids.add(iface->ki_id) } // extend the set of pairs (interface_id, vtbl) to the parent interfaces for (iname, _) <- kvar_ifaces, pair <- pairs.rev() { diff --git a/compiler/C_gen_types.fx b/compiler/C_gen_types.fx index ab34e903..18240b67 100644 --- a/compiler/C_gen_types.fx +++ b/compiler/C_gen_types.fx @@ -465,15 +465,14 @@ fun convert_all_typs(kmods: kmodule_t list) val {kt_typ, kt_loc} = *kt match kt_typ { | KTypTuple telems => - val (free_code, copy_code, make_code, relems, make_args) = - fold free_code = [], copy_code = [], make_code = [], - relems = [], make_args = [] for kti@i <- telems { + val fold free_code = [], copy_code = [], make_code = [], relems = [], make_args = [] + for kti@i <- telems { val ni = get_id(f"t{i}") val cti = ktyp2ctyp(kti, kt_loc) val selem = CExpArrow(src_exp, ni, (cti, loc)) val delem = CExpArrow(dst_exp, ni, (cti, loc)) - val free_code = gen_free_code(delem, cti, false, false, free_code, kt_loc) - val copy_code = gen_copy_code(selem, delem, cti, copy_code, kt_loc) + free_code = gen_free_code(delem, cti, false, false, free_code, kt_loc) + copy_code = gen_copy_code(selem, delem, cti, copy_code, kt_loc) val {ktp_pass_by_ref} = K_annotate.get_ktprops(kti, kt_loc) val selem2 = make_id_exp(ni, loc) val (cti_arg, cti_arg_flags, selem2) = @@ -483,9 +482,9 @@ fun convert_all_typs(kmods: kmodule_t list) (cti, [], selem2) } val delem2 = CExpArrow(fx_result_exp, ni, (cti, loc)) - val make_code = gen_copy_code(selem2, delem2, cti, make_code, kt_loc) - (free_code, copy_code, make_code, (ni, cti) :: relems, - (ni, cti_arg, cti_arg_flags) :: make_args) + make_code = gen_copy_code(selem2, delem2, cti, make_code, kt_loc) + relems = (ni, cti) :: relems + make_args = (ni, cti_arg, cti_arg_flags) :: make_args } val mktupl = if ktp.ktp_complex { @@ -514,14 +513,14 @@ fun convert_all_typs(kmods: kmodule_t list) ct_typ=CTypStruct(Some(tn), relems.rev()), ct_props=ct_props.{ctp_make=mktupl} } - | KTypRecord (_, relems) => - val fold free_code = [], copy_code = [], make_code = [], - relems = [], make_args = [] for (ni, kti) <- relems { + | KTypRecord (_, relems_) => + val fold free_code = [], copy_code = [], make_code = [], relems = [], make_args = [] + for (ni, kti) <- relems_ { val cti = ktyp2ctyp(kti, loc) val selem = CExpArrow(src_exp, ni, (cti, kt_loc)) val delem = CExpArrow(dst_exp, ni, (cti, kt_loc)) - val free_code = gen_free_code(delem, cti, false, false, free_code, kt_loc) - val copy_code = gen_copy_code(selem, delem, cti, copy_code, kt_loc) + free_code = gen_free_code(delem, cti, false, false, free_code, kt_loc) + copy_code = gen_copy_code(selem, delem, cti, copy_code, kt_loc) val {ktp_pass_by_ref} = K_annotate.get_ktprops(kti, kt_loc) val arg_ni = get_id("r_" + pp(ni)) val selem2 = make_id_exp(arg_ni, loc) @@ -532,9 +531,9 @@ fun convert_all_typs(kmods: kmodule_t list) (cti, [], selem2) } val delem2 = CExpArrow(fx_result_exp, ni, (cti, loc)) - val make_code = gen_copy_code(selem2, delem2, cti, make_code, kt_loc) - (free_code, copy_code, make_code, (ni, cti) :: relems, - (arg_ni, cti_arg, cti_arg_flags) :: make_args) + make_code = gen_copy_code(selem2, delem2, cti, make_code, kt_loc) + relems = (ni, cti) :: relems + make_args = (arg_ni, cti_arg, cti_arg_flags) :: make_args } val mkrecl = if ktp.ktp_complex { @@ -706,7 +705,7 @@ fun convert_all_typs(kmods: kmodule_t list) for (ni, kt)@i <- kvar_cases { val label_i = i+1 match kt { - | KTypVoid => (free_cases, copy_cases, uelems) + | KTypVoid => {} | _ => val ti = ktyp2ctyp(kt, loc) val ni_clean = get_orig_id(ni) @@ -714,17 +713,18 @@ fun convert_all_typs(kmods: kmodule_t list) val delem_i = CExpMem(dst_u_exp, ni_clean, (ti, kvar_loc)) val switch_label_i_exps = [:: make_int_exp(label_i, kvar_loc) ] val free_code_i = gen_free_code(delem_i, ti, false, false, [], kvar_loc) - val free_cases= match free_code_i { - | [] => free_cases - | _ => (switch_label_i_exps, free_code_i) :: free_cases - } + free_cases = + match free_code_i { + | [] => free_cases + | _ => (switch_label_i_exps, free_code_i) :: free_cases + } val copy_code_i = gen_copy_code(selem_i, delem_i, ti, [], kvar_loc) - val copy_cases = + copy_cases = match copy_code_i { | [:: CExp(CExpBinary (COpAssign, _, _, _))] => copy_cases | _ => (switch_label_i_exps, copy_code_i) :: copy_cases } - (free_cases, copy_cases, (ni_clean, ti) :: uelems) + uelems = (ni_clean, ti) :: uelems } } val free_code = @@ -1002,10 +1002,9 @@ fun elim_unused_ctypes(mname: id_t, all_ctypes_fwd_decl: cstmt_t list, } update_used_ids(used_ids) - val fold ctypes_ccode = [] - for s <- all_ctypes_fwd_decl + (all_ctypes_decl + all_ctypes_fun_decl) { - if is_used_decl(s, used_ids, true) { s :: ctypes_ccode } - else { ctypes_ccode } - } + var ctypes_ccode = [] + for s <- all_ctypes_fwd_decl + (all_ctypes_decl + all_ctypes_fun_decl) { + if is_used_decl(s, used_ids, true) { ctypes_ccode = s :: ctypes_ccode } + } ctypes_ccode.rev() } diff --git a/compiler/Compiler.fx b/compiler/Compiler.fx index 2ab872d6..2522673b 100644 --- a/compiler/Compiler.fx +++ b/compiler/Compiler.fx @@ -116,35 +116,33 @@ fun clrmsg(clr: msgcolor_t, msg: string) val error = clrmsg(MsgRed, "error") fun get_preamble(mfname: string): Lexer.token_t list { - val preamble = + var preamble: Lexer.token_t list = [] if Options.opt.use_preamble { val bare_name = Filename.remove_extension(Filename.basename(mfname)) - val (preamble, _) = fold (preamble, found) = (([] : Lexer.token_t list), false) - for (mname, from_import) <- [:: ("Builtins", true), ("Math", true), - ("Complex", true), - ("Array", true), ("List", false), - ("Vector", false), ("Char", false), - ("String", false), - ] { - if found { - (preamble, found) - } else if bare_name == mname { - (preamble, true) - } else if from_import { - (preamble + [:: Lexer.FROM, Lexer.IDENT(true, mname), Lexer.IMPORT(false), Lexer.STAR(true), Lexer.SEMICOLON], false) - } else { - (preamble + [:: Lexer.IMPORT(true), Lexer.IDENT(true, mname), Lexer.SEMICOLON], false) + for (mname, from_import) <- [:: ("Builtins", true), ("Math", true), + ("Complex", true), + ("Array", true), ("List", false), + ("Vector", false), ("Char", false), + ("String", false),] { + if bare_name == mname { + break + } + if from_import { + preamble += [:: Lexer.FROM, Lexer.IDENT(true, mname), Lexer.IMPORT(false), + Lexer.STAR(true), Lexer.SEMICOLON] + } + else { + preamble += [:: Lexer.IMPORT(true), Lexer.IDENT(true, mname), Lexer.SEMICOLON] } } - preamble - } else { [] } + } fold p=preamble for (n, v) <- Options.opt.defines { val v = match v { | Options.OptBool(b) => Ast.LitBool(b) | Options.OptInt(i) => Ast.LitInt(int64(i)) | Options.OptString(s) => Ast.LitString(s) } - Lexer.PP_DEFINE :: Lexer.IDENT(true, n) :: Lexer.LITERAL(v) :: p + p = Lexer.PP_DEFINE :: Lexer.IDENT(true, n) :: Lexer.LITERAL(v) :: p } } @@ -616,10 +614,11 @@ fun run_cc(cmods: C_form.cmodule_t list, ficus_root: string) { (is_cpp, recompiled, clibs, ok_j, obj_filename) }] - val fold (any_cpp, any_recompiled, all_clibs, ok, objs) = (false, false, ([] : string list), ok, []) - for (is_cpp, is_recompiled, clibs_j, ok_j, obj) <- results { - (any_cpp | is_cpp, any_recompiled | is_recompiled, clibs_j + all_clibs, ok & ok_j, obj :: objs) - } + var any_cpp = false, any_recompiled = false, all_clibs = ([] : string list), ok = ok, objs = [] + for (is_cpp, is_recompiled, clibs_j, ok_j, obj) <- results { + any_cpp |= is_cpp; any_recompiled |= is_recompiled + all_clibs = clibs_j + all_clibs; ok &= ok_j; objs = obj :: objs + } if ok && !any_recompiled && Filename.exists(Options.opt.app_filename) { pr_verbose(f"{Options.opt.app_filename} is up-to-date\n") ok @@ -673,7 +672,7 @@ fun print_all_compile_errs() | _ => "" } val key = match msg.find('\n') { | (-1) => msg | nl => msg[:nl] } - if key != "" && seen.mem(key) { acc } + acc = if key != "" && seen.mem(key) { acc } else { if key != "" { seen.add(key) }; e :: acc } } fun errkey(e: exn): (int, int, int) = match e { diff --git a/compiler/K_annotate.fx b/compiler/K_annotate.fx index 70b2aedd..e0b1a6ea 100644 --- a/compiler/K_annotate.fx +++ b/compiler/K_annotate.fx @@ -30,11 +30,11 @@ fun get_typ_deps(n: id_t, loc: loc_t): idset_t | KTypCPointer | KTypExn | KTypErr | KTypModule => deps | KTypRawPointer(et) => get_ktyp_deps_(et, deps) | KTypFun (args, rt) => - fold deps = deps for t <- rt :: args { get_ktyp_deps_(t, deps) } + fold deps = deps for t <- rt :: args { deps = get_ktyp_deps_(t, deps) } | KTypTuple tl => - fold deps = deps for t <- tl { get_ktyp_deps_(t, deps) } + fold deps = deps for t <- tl { deps = get_ktyp_deps_(t, deps) } | KTypRecord (rn, relems) => - fold deps = deps for (_, ti) <- relems { get_ktyp_deps_(ti, deps) } + fold deps = deps for (_, ti) <- relems { deps = get_ktyp_deps_(ti, deps) } | KTypName i => deps.add(i) | KTypArray (_, et) => get_ktyp_deps_(et, deps) | KTypList et => get_ktyp_deps_(et, deps) @@ -44,11 +44,14 @@ fun get_typ_deps(n: id_t, loc: loc_t): idset_t match kinfo_(n, loc) { | KVariant (ref {kvar_cases, kvar_ifaces}) => - val fold deps = empty_idset for (_, ti) <- kvar_cases { get_ktyp_deps_(ti, deps) } - fold deps = deps for (iname, _) <- kvar_ifaces { deps.add(iname) } + var deps = empty_idset + for (_, ti) <- kvar_cases { deps = get_ktyp_deps_(ti, deps) } + for (iname, _) <- kvar_ifaces { deps = deps.add(iname) } + deps | KTyp (ref {kt_typ}) => get_ktyp_deps_(kt_typ, empty_idset) | KInterface (ref {ki_base, ki_all_methods}) => - val fold deps = empty_idset for (_, ti) <- ki_all_methods { get_ktyp_deps_(ti, deps) } + var deps = empty_idset + for (_, ti) <- ki_all_methods { deps = get_ktyp_deps_(ti, deps) } if ki_base == noid {deps} else {deps.add(ki_base)} | _ => throw compile_err(loc, f"the symbol '{idk2str(n, loc)}' is not a type") } diff --git a/compiler/K_cfold_dealias.fx b/compiler/K_cfold_dealias.fx index 8c246c76..95b5fbc2 100644 --- a/compiler/K_cfold_dealias.fx +++ b/compiler/K_cfold_dealias.fx @@ -418,7 +418,9 @@ fun cfold_dealias(kmods: kmodule_t list) | _ => a :: res_al } - val fold res_al = [] for a <- al { + var res_al = [] + for a <- al { + res_al = match a { | AtomId n => match concat_map.find_opt(n) { | Some(a :: rest) => rest.rev() + try_cfold_str_concat(a, res_al) @@ -426,6 +428,7 @@ fun cfold_dealias(kmods: kmodule_t list) } | _ => try_cfold_str_concat(a, res_al) } + } match res_al { | ([:: a]) when (match get_atom_ktyp(a, loc) { | KTypString => true | _ => false }) => diff --git a/compiler/K_fast_idx.fx b/compiler/K_fast_idx.fx index bdbeea0f..f57a7f33 100644 --- a/compiler/K_fast_idx.fx +++ b/compiler/K_fast_idx.fx @@ -238,34 +238,32 @@ fun optimize_idx_checks(km_idx: int, topcode: kcode_t) /* step 3. collect loop indices; we collect only those indices, for which we can optimize the access operations */ val fold loop_idx = (Map.empty(cmp_id): loop_idx_map_t) - for (e, idl, idxl) <- for_clauses { - val fold arr_id = noid, loop_idx = loop_idx for (i, dom) <- idl { + for (e, idl, idxl) <- for_clauses { + var arr_id = noid + for (i, dom) <- idl { match dom { | DomainRange (a, b, delta) when b != _ALitVoid && is_loop_invariant(a, inloop_vals, for_loc) && is_loop_invariant(b, inloop_vals, for_loc) && is_loop_invariant(delta, inloop_vals, for_loc) => - (arr_id, loop_idx.add(i, LoopOverRange(a, b, delta))) + loop_idx = loop_idx.add(i, LoopOverRange(a, b, delta)) | DomainElem(AtomId i) when (match get_idk_ktyp(i, for_loc) { | KTypArray _ => true | _ => false }) && is_loop_invariant(AtomId(i), inloop_vals, for_loc) => - (i, loop_idx) - | _ => (arr_id, loop_idx) + arr_id = i + | _ => {} } } - val loop_idx = if arr_id == noid || idxl == [] { - loop_idx } else { - fold loop_idx = loop_idx for idx@i <- idxl { - loop_idx.add(idx, LoopOverArr(arr_id, i)) + for idx@i <- idxl { + loop_idx = loop_idx.add(idx, LoopOverArr(arr_id, i)) } } - loop_idx } fun get_loop_idx_range(i: id_t, @@ -410,11 +408,12 @@ fun optimize_idx_checks(km_idx: int, topcode: kcode_t) KExpIf(optimize_idx_kexp(c, callb), then_e, else_e, ctx) | KExpAt (AtomId arr, BorderNone, InterpNone, idxs, (t, loc)) when is_loop_invariant(AtomId(arr), inloop_vals, loc) => - val fold have_ranges = false, have_slow = false for idx <- idxs { + var have_ranges = false, have_slow = false + for idx <- idxs { match idx { - | DomainRange _ => (true, have_slow) - | DomainElem _ => (have_ranges, true) - | _ => (have_ranges, have_slow) + | DomainRange _ => have_ranges = true + | DomainElem _ => have_slow = true + | _ => {} } } if have_ranges || !have_slow { e } @@ -577,22 +576,23 @@ fun optimize_idx_checks(km_idx: int, topcode: kcode_t) pre_for_code } else { fold pre_for_code = pre_for_code - for {aa_arr, aa_dim, aa_class} <- all_accesses { + for {aa_arr, aa_dim, aa_class} <- all_accesses { match aa_class { | IdxSimple (i, scale, shift) => - val (arrsz, pre_for_code) = + val (arrsz, pre_for_code1) = get_arrsz(aa_arr, aa_dim, pre_for_code) + pre_for_code = pre_for_code1 if i == noid { - KExpIntrin(IntrinCheckIdx, [:: AtomId(arrsz), shift], + pre_for_code = KExpIntrin(IntrinCheckIdx, [:: AtomId(arrsz), shift], (KTypVoid, for_loc)) :: pre_for_code } else { - val (a, b, delta, pre_for_code) = + val (a, b, delta, pre_for_code1) = get_loop_idx_range(i, pre_for_code, for_loc) - KExpIntrin( IntrinCheckIdxRange, + pre_for_code = KExpIntrin( IntrinCheckIdxRange, [:: AtomId(arrsz), a, b, delta, scale, shift], - (KTypVoid, for_loc) ) :: pre_for_code + (KTypVoid, for_loc) ) :: pre_for_code1 } - | _ => pre_for_code + | _ => {} } } } @@ -693,18 +693,18 @@ fun linearize_arrays_access_(km_idx: int, topcode: kexp_t list) when is_loop_invariant(AtomId(arr), inloop_vals, loc) && (match get_idk_ktyp(arr, loc) {KTypArray _ => true | _ => false}) => val ndims = idxs.length() - val fold have_ranges = false, have_slow = false, - have_non_invariants = false, idx_atoms = [] - for idx@i <- idxs { - match idx { - | DomainRange _ => (true, have_slow, have_non_invariants, idx_atoms) - | DomainElem(x) => (have_ranges, true, have_non_invariants, x :: idx_atoms) - | DomainFast(x) => - (have_ranges, have_slow, have_non_invariants || - (i < ndims-1 && !is_loop_invariant(x, inloop_vals, loc)), - x :: idx_atoms) - } + var have_ranges = false, have_slow = false, + have_non_invariants = false, idx_atoms = [] + for idx@i <- idxs { + match idx { + | DomainRange _ => have_ranges = true + | DomainElem(x) => have_slow = true; idx_atoms = x :: idx_atoms + | DomainFast(x) => + have_non_invariants = have_non_invariants || + (i < ndims-1 && !is_loop_invariant(x, inloop_vals, loc)) + idx_atoms = x :: idx_atoms } + } //println(f"{loc}: idx={dom2str(idxs.hd())}, have_ranges={have_ranges}, have_slow={have_slow}, have_non_invariants={have_non_invariants}") if have_ranges || have_slow || have_non_invariants { e } else { diff --git a/compiler/K_flatten.fx b/compiler/K_flatten.fx index 7cf1ef39..c4330f99 100644 --- a/compiler/K_flatten.fx +++ b/compiler/K_flatten.fx @@ -82,11 +82,11 @@ from K_form import * } @private fun flatten(code: kcode_t, callb: k_callb_t) = - fold code = [] for e <- code { + fold res = [] for e <- code { val new_e = flatten_kexp_(e, callb) - match new_e { - | KExpSeq (nested_elist, _) => nested_elist.rev() + code - | _ => new_e :: code + res = match new_e { + | KExpSeq (nested_elist, _) => nested_elist.rev() + res + | _ => new_e :: res } } diff --git a/compiler/K_form.fx b/compiler/K_form.fx index 997d4868..44d3fa1b 100644 --- a/compiler/K_form.fx +++ b/compiler/K_form.fx @@ -696,8 +696,9 @@ fun walk_kexp(e: kexp_t, callb: k_callb_t): kexp_t } else { KExpMkArray(false, [:: for row <- elems { - val fold new_row = [] for (f, a) <- row { - (f, walk_atom_(a, loc)) :: new_row + var new_row = [] + for (f, a) <- row { + new_row = (f, walk_atom_(a, loc)) :: new_row } new_row.rev() } ], walk_kctx_(ctx)) diff --git a/compiler/K_freevars.fx b/compiler/K_freevars.fx index ceebb662..a23ff41a 100644 --- a/compiler/K_freevars.fx +++ b/compiler/K_freevars.fx @@ -240,7 +240,8 @@ fun mutable_freevars2refs(kmods: kmodule_t list) { val subst_map_backup = if !fvars.empty() {subst_map.copy()} else {Hashmap.empty(1, noid, noid)} - val fold prologue = [] for fv <- fvars { + var prologue = [] + for fv <- fvars { val ref_fv = match ref_map.find_opt(fv) { | Some ref_fv => ref_fv | None => throw compile_err(kf_loc, f"free variable '{idk2str(fv, kf_loc)}' of function \ @@ -257,7 +258,7 @@ fun mutable_freevars2refs(kmods: kmodule_t list) { val fv_proxy = dup_idk(m_idx, fv) val deref_exp = KExpUnary(OpDeref, AtomId(ref_fv), (t, kf_loc)) subst_map.add(fv, fv_proxy) - create_kdefval(fv_proxy, t, kv_flags, Some(deref_exp), prologue, kf_loc) + prologue = create_kdefval(fv_proxy, t, kv_flags, Some(deref_exp), prologue, kf_loc) } val body_loc = get_kexp_loc(kf_body) diff --git a/compiler/K_fuse_loops.fx b/compiler/K_fuse_loops.fx index 92c192af..b6e5a23d 100644 --- a/compiler/K_fuse_loops.fx +++ b/compiler/K_fuse_loops.fx @@ -29,11 +29,14 @@ type arr_fuse_map_t = (id_t, id_t) Map.t fun fuse_loops(code: kcode_t) { - val fold nmaps = 0, nfors = 0 for e <- code { - | KDefVal(_, KExpMap _, _) => (nmaps + 1, nfors) - | KExpMap _ => (nmaps + 1, nfors) - | KExpFor _ => (nmaps, nfors + 1) - | _ => (nmaps, nfors) + var nmaps = 0, nfors = 0 + for e <- code { + match e { + | KDefVal(_, KExpMap _, _) => nmaps += 1 + | KExpMap _ => nmaps += 1 + | KExpFor _ => nfors += 1 + | _ => {} + } } if nmaps >= 1 && nmaps + nfors >= 2 { fuse_loops_(code) @@ -102,15 +105,16 @@ fun fuse_loops_(code: kcode_t) fun fuse_for(idl: (id_t, dom_t) list, body: kexp_t, loc: loc_t) { - val fold arr_fuse_map = (Map.empty(cmp_id): arr_fuse_map_t), a2f = [] for (i, dom) <- idl { + val fold arr_fuse_map = (Map.empty(cmp_id): arr_fuse_map_t), a2f = [] + for (i, dom) <- idl { match dom { | DomainElem(AtomId arr) => - val arr_fuse_map = arr_fuse_map.add(arr, i) + arr_fuse_map = arr_fuse_map.add(arr, i) match arrs_to_fuse.find_opt(arr) { - | Some ainfo => (arr_fuse_map, (arr, ainfo) :: a2f) - | _ => (arr_fuse_map, a2f) + | Some ainfo => a2f = (arr, ainfo) :: a2f + | _ => {} } - | _ => (arr_fuse_map, a2f) + | _ => {} } } @@ -143,38 +147,34 @@ fun fuse_loops_(code: kcode_t) also be the subject to fusion, and so we want to update information about this loop etc. */ - val (new_idl, pbody, _) = - fold new_idl = [], pbody = [], arr_fuse_map = arr_fuse_map + var new_idl = [], pbody = [], arr_fuse_map = arr_fuse_map for (i, dom) <- idl { match dom { | DomainElem(AtomId arr) => match find_opt(for (arr2, _) <- a2f {arr == arr2}) { | Some((_, ref {arr_idl, arr_body})) => - val fold new_idl2 = new_idl, pbody2 = pbody, new_fuse_map = arr_fuse_map - for (nested_i, nested_dom) <- arr_idl { + for (nested_i, nested_dom) <- arr_idl { match nested_dom { | DomainElem(AtomId nested_arr) => match arr_fuse_map.find_opt(nested_arr) { | Some outer_i => val t = get_idk_ktyp(outer_i, loc) - val pbody2 = create_kdefval(nested_i, t, default_tempval_flags(), - Some(KExpAtom(AtomId(outer_i), (t, loc))), pbody2, loc) - (new_idl2, pbody2, new_fuse_map) + pbody = create_kdefval(nested_i, t, default_tempval_flags(), + Some(KExpAtom(AtomId(outer_i), (t, loc))), pbody, loc) | _ => - val new_fuse_map = new_fuse_map.add(nested_arr, nested_i) - ((nested_i, nested_dom) :: new_idl2, pbody2, new_fuse_map) + arr_fuse_map = arr_fuse_map.add(nested_arr, nested_i) + new_idl = (nested_i, nested_dom) :: new_idl } - | _ => ((nested_i, nested_dom) :: new_idl2, pbody2, new_fuse_map) + | _ => new_idl = (nested_i, nested_dom) :: new_idl } } val t = get_kexp_typ(arr_body) - val pbody2 = create_kdefval(i, t, default_tempval_flags(), Some(arr_body), pbody2, loc) - (new_idl2, pbody2, new_fuse_map) + pbody = create_kdefval(i, t, default_tempval_flags(), Some(arr_body), pbody, loc) | _ => - val arr_fuse_map = arr_fuse_map.add(arr, i) - ((i, dom) :: new_idl, pbody, arr_fuse_map) + arr_fuse_map = arr_fuse_map.add(arr, i) + new_idl = (i, dom) :: new_idl } - | _ => ((i, dom) :: new_idl, pbody, arr_fuse_map) + | _ => new_idl = (i, dom) :: new_idl } } val new_body = rcode2kexp(body :: pbody, loc) diff --git a/compiler/K_inline.fx b/compiler/K_inline.fx index 0347f595..33ed3aa1 100644 --- a/compiler/K_inline.fx +++ b/compiler/K_inline.fx @@ -131,11 +131,11 @@ fun calc_exp_size(e: kexp_t) 1 } else { fold s = 0 for al <- args { - fold s = s for (f, a) <- al { s + (if f { 10 } else { 1 }) } + for (f, a) <- al { s += (if f { 10 } else { 1 }) } } } | KExpMkVector (args, _) => - fold s = 0 for (f, a) <- args { s + (if f { 10 } else { 1 }) } + fold s = 0 for (f, a) <- args { s += (if f { 10 } else { 1 }) } | KExpMkClosure (_, _, args, _) => args.length() | KExpCall (_, args, _) => 5 + args.length() | KExpICall (_, _, args, _) => 6 + args.length() @@ -145,12 +145,12 @@ fun calc_exp_size(e: kexp_t) | KExpWhile _ | KExpDoWhile _ | KExpIf _ => 2 | KExpMatch (cases, _) => fold total = 0 for (checks, _) <- cases { - total + checks.length() + total += checks.length() } | KExpTryCatch _ => 10 | KExpMap (e_idl_l, _, _, _) => fold total = 0 for (_, idl, _) <- e_idl_l { - 10 + total + idl.length() + total += 10 + idl.length() } | KExpFor (idl, _, _, _, _) => 10 + idl.length() } diff --git a/compiler/K_lift.fx b/compiler/K_lift.fx index 35f21c21..9f4e274c 100644 --- a/compiler/K_lift.fx +++ b/compiler/K_lift.fx @@ -285,7 +285,8 @@ fun lift_all(kmods: kmodule_t list) val fvars_final = sort_freevars(fvars) val m_idx = kf_name.m val fcv_tn = gen_idk(m_idx, pp(kf_name) + "_closure") - val fold fvars_wt = [] for fv@idx <- fvars_final { + var fvars_wt = [] + for fv@idx <- fvars_final { val {kv_typ, kv_flags, kv_loc} = get_kval(fv, kf_loc) if is_mutable(fv, get_idk_loc(fv, noloc)){ throw compile_err(kf_loc, @@ -298,7 +299,7 @@ fun lift_all(kmods: kmodule_t list) // And so it must be in the same module as the analyzed function. val new_fv = dup_idk(m_idx, fv) val _ = create_kdefval(new_fv, kv_typ, kv_flags, None, [], kv_loc) - (new_fv, kv_typ) :: fvars_wt + fvars_wt = (new_fv, kv_typ) :: fvars_wt } val fcv_t = ref (kdefclosurevars_t { kcv_name=fcv_tn, @@ -524,7 +525,8 @@ fun lift_all(kmods: kmodule_t list) information is not valid (should be KClosureVars ...)") } val {kcv_freevars, kcv_orig_freevars} = *kcv - val fold prologue = [] for (fv, t)@idx <- kcv_freevars, fv_orig <- kcv_orig_freevars { + var prologue = [] + for (fv, t)@idx <- kcv_freevars, fv_orig <- kcv_orig_freevars { if !defined_so_far.mem(fv_orig) { throw compile_err(kf_loc, f"free variable '{idk2str(fv_orig, kf_loc)}' of function \ @@ -543,7 +545,7 @@ fun lift_all(kmods: kmodule_t list) val e = KExpMem(kci_arg, idx, (t, kf_loc)) curr_subst_env.add(fv_orig, (fv_proxy, None)) val new_kv_flags = kv_flags.{val_flag_tempref=true} - create_kdefval(fv_proxy, t, new_kv_flags, Some(e), prologue, kf_loc) + prologue = create_kdefval(fv_proxy, t, new_kv_flags, Some(e), prologue, kf_loc) } val prologue = if self_referencing_functions.mem(kf_name) { @@ -610,13 +612,14 @@ fun lift_all(kmods: kmodule_t list) val e_idom_ll = [:: for (e, idom_l, at_ids) <- e_idom_ll { val e = walk_kexp_n_lift_all(e, callb) - val fold idom_l = [] for (i, dom_i) <- idom_l { + var new_idom_l = [] + for (i, dom_i) <- idom_l { val dom_i = check_n_walk_dom(dom_i, eloc, callb) defined_so_far.add(i) - (i, dom_i) :: idom_l + new_idom_l = (i, dom_i) :: new_idom_l } for i <- at_ids { defined_so_far.add(i) } - (e, idom_l.rev(), at_ids) + (e, new_idom_l.rev(), at_ids) } ] val body = walk_kexp_n_lift_all(body, callb) KExpMap(e_idom_ll, body, flags, kctx) diff --git a/compiler/K_loop_inv.fx b/compiler/K_loop_inv.fx index 1caea3a6..742c5f9b 100644 --- a/compiler/K_loop_inv.fx +++ b/compiler/K_loop_inv.fx @@ -61,7 +61,7 @@ fun move_loop_invs(code: kcode_t) val saved_moved = curr_moved curr_inloop = declared(body::[], 256) val (outer_moved, new_e_idl_l, new_body) = - fold nested_elist = kexp2code(body), e_idl_l = [], body = KExpNop(loc) + fold nested_elist = kexp2code(body), acc_idl = [], body_acc = KExpNop(loc) for (pre_e, idl, idxl) <- e_idl_l.rev() { val in_pre = declared([:: pre_e], 256) for (i, _) <- idl { curr_inloop.add(i) } @@ -71,12 +71,14 @@ fun move_loop_invs(code: kcode_t) val new_elist = kexp2code(pre_e) + curr_moved.rev() curr_inloop.union(in_pre) val (e_idl_l, new_body) = - match e_idl_l { - | (_, prev_idl, prev_idxl) :: rest => ((nested_e, prev_idl, prev_idxl) :: rest, body) + match acc_idl { + | (_, prev_idl, prev_idxl) :: rest => ((nested_e, prev_idl, prev_idxl) :: rest, body_acc) | _ => ([], nested_e) } val new_e_idl_l = (KExpNop(loc), idl, idxl) :: e_idl_l - (new_elist, new_e_idl_l, new_body) + nested_elist = new_elist + acc_idl = new_e_idl_l + body_acc = new_body } curr_inloop = saved_inloop curr_moved = saved_moved diff --git a/compiler/K_mangle.fx b/compiler/K_mangle.fx index d376e3f2..87127f4d 100644 --- a/compiler/K_mangle.fx +++ b/compiler/K_mangle.fx @@ -129,8 +129,9 @@ fun mangle_ktyp(t: ktyp_t, mangle_map: mangle_map_t, loc: loc_t): string name: id_t, sc: scope_t list): (string, string) { val nargs = targs.length() - val fold result = [] for targ <- targs { - mangle_ktyp_(targ, result) + var result: string list = [] + for targ <- targs { + result = mangle_ktyp_(targ, result) } val (prefix, suffix) = if nargs == 0 { (prefix, "") } @@ -228,7 +229,7 @@ fun mangle_ktyp(t: ktyp_t, mangle_map: mangle_map_t, loc: loc_t): string val result = mangle_ktyp_(rt, "FP" :: result) val result = string(args.length()) :: result fold result = result for a <- args { - mangle_ktyp_(a, result) + result = mangle_ktyp_(a, result) } | KTypTuple elems => val nelems = elems.length() @@ -239,7 +240,7 @@ fun mangle_ktyp(t: ktyp_t, mangle_map: mangle_map_t, loc: loc_t): string mangle_ktyp_(t0, nstr :: "Ta" :: result) } else { fold result = nstr :: "T" :: result for t <- elems { - mangle_ktyp_(t, result) + result = mangle_ktyp_(t, result) } } | _ => throw compile_err(loc, "the tuple has 0 elements") diff --git a/compiler/K_normalize.fx b/compiler/K_normalize.fx index f124da2c..6e04f493 100644 --- a/compiler/K_normalize.fx +++ b/compiler/K_normalize.fx @@ -126,8 +126,10 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) fun transform_for(pe_l: (pat_t, exp_t) list, idx_pat: pat_t, code: kcode_t, sc: scope_t list, body_sc: scope_t list) { - val fold (idom_list, code, body_code) = ([], code, []) for (pi, ei) <- pe_l { - val (di, code) = exp2dom(ei, code, sc) + var idom_list = [], code = code, body_code = [] + for (pi, ei) <- pe_l { + val (di, code1) = exp2dom(ei, code, sc) + code = code1 val ptyp = match di { | DomainRange(_, _, _) => KTypInt @@ -145,9 +147,10 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) | _ => throw compile_err(eloc, "unsupported type of the domain expression in for loop") } } - val (i, body_code) = pat_simple_unpack(pi, ptyp, None, body_code, "i", + val (i, body_code1) = pat_simple_unpack(pi, ptyp, None, body_code, "i", default_tempval_flags(), body_sc) - ((i, di) :: idom_list, code, body_code) + body_code = body_code1 + idom_list = (i, di) :: idom_list } val loc = get_pat_loc(idx_pat) val (at_ids: id_t list, body_code: kcode_t) = @@ -164,21 +167,25 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) if pl.length() != tl.length() { throw compile_err(loc, "the '@' tuple pattern and its type do not match") } - val fold (at_ids, body_code) = ([], body_code) for pi <- pl, ti <- tl { + var at_ids = [], body_code = body_code + for pi <- pl, ti <- tl { | (_, TypInt) => - val (i, body_code) = pat_simple_unpack(pi, KTypInt, None, body_code, + val (i, body_code1) = pat_simple_unpack(pi, KTypInt, None, body_code, "i", default_tempval_flags(), body_sc) - (i :: at_ids, body_code) + body_code = body_code1 + at_ids = i :: at_ids | _ => throw compile_err(loc, "some of '@' indices is not an integer") } (at_ids.rev(), body_code) | PatIdent(idx, _) => val prefix = pp(idx) - val fold (at_ids, ktl) = ([], []) for ti@idx <- tl { + var at_ids = [], ktl = [] + for ti@idx <- tl { | (TypInt, _) => val i = gen_idk(km_idx, f"{prefix}{idx}") val _ = create_kdefval(i, KTypInt, default_tempval_flags(), None, [], loc) - (i :: at_ids, KTypInt :: ktl) + at_ids = i :: at_ids + ktl = KTypInt :: ktl | _ => throw compile_err(loc, "some of '@' indices is not an integer") } val ktyp = KTypTuple(ktl) @@ -290,11 +297,13 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) } (KExpUnary(uop, a1, kctx), code) | ExpIntrin(iop, args, _) => - val fold (args, code) = ([], code) for ei <- args { - val (ai, code) = exp2atom(ei, code, false, sc) - (ai :: args, code) + var res = [], code = code + for ei <- args { + val (ai, code1) = exp2atom(ei, code, false, sc) + code = code1 + res = ai :: res } - (KExpIntrin(iop, args.rev(), kctx), code) + (KExpIntrin(iop, res.rev(), kctx), code) | ExpSeq(eseq, _) => val sc = new_block_scope(km_idx) :: sc val code = transform_all_types_and_cons(eseq, code, sc) @@ -307,42 +316,50 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) val (e, code1) = exp2kexp(e0, [], false, sc) (KExpSync(n, rcode2kexp(e :: code1, get_exp_loc(e0))), code) | ExpMkTuple(args, _) => - val fold (args, code) = ([], code) for ei <- args { - val (ai, code) = exp2atom(ei, code, false, sc) - (ai :: args, code) + var res = [], code = code + for ei <- args { + val (ai, code1) = exp2atom(ei, code, false, sc) + code = code1 + res = ai :: res } - (KExpMkTuple(args.rev(), kctx), code) + (KExpMkTuple(res.rev(), kctx), code) | ExpMkArray(arows, _) => if arows == [] { throw compile_err(eloc, "empty arrays are not supported") } - val fold krows=[], code=code, all_literals=true for arow <- arows { - val fold krow=[], code=code, all_literals=all_literals for e <- arow { + var krows = [], code = code, all_literals = true + for arow <- arows { + var krow = [] + for e <- arow { val (f, e, islit) = match e { | ExpUnary(OpExpand, e, _) => (true, e, false) | ExpLit((LitString _ | LitNull | LitEmpty), _) => (false, e, false) | ExpLit(_, _) => (false, e, true) | _ => (false, e, false) } - val (a, code) = exp2atom(e, code, false, sc) - ((f, a) :: krow, code, all_literals & islit) + val (a, code1) = exp2atom(e, code, false, sc) + code = code1 + krow = (f, a) :: krow + all_literals &= islit } - (krow.rev() :: krows, code, all_literals) + krows = krow.rev() :: krows } (KExpMkArray(all_literals, krows.rev(), kctx), code) | ExpMkVector(elems, _) => if elems == [] { throw compile_err(eloc, "empty vector literals are not supported") } - val fold elems=[], code=code for e <- elems { + var res = [], code = code + for e <- elems { val (f, e) = match e { | ExpUnary(OpExpand, e, _) => (true, e) | _ => (false, e) } - val (a, code) = exp2atom(e, code, false, sc) - ((f, a) :: elems, code) + val (a, code1) = exp2atom(e, code, false, sc) + code = code1 + res = (f, a) :: res } - (KExpMkVector(elems.rev(), kctx), code) + (KExpMkVector(res.rev(), kctx), code) | ExpMkRecord(rn, rinitelems, _) => val (rn_id, ctor, relems) = match (rn, deref_typ(etyp)) { @@ -353,8 +370,9 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) | _ => throw compile_err(get_exp_loc(rn), "k-normalization: in the record construction identifier is expected after type check") } - val fold (ratoms, code) = ([], code) for (_, ni, ti, vi) <- relems { - val (a, code) = + var ratoms = [], code = code + for (_, ni, ti, vi) <- relems { + val (a, code1) = match find_opt(for (nj, _) <- rinitelems { ni == nj }) { | Some((_, ej)) => exp2atom(ej, code, false, sc) | _ => @@ -366,15 +384,17 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) exp2atom(vi, code, false, sc) } } - (a :: ratoms, code) + code = code1 + ratoms = a :: ratoms } if ctor == noid { (KExpMkRecord(ratoms.rev(), kctx), code) } else { (KExpCall(ctor, ratoms.rev(), kctx), code) } | ExpUpdateRecord(e, new_elems, _) => val (rec_n, code) = exp2id(e, code, true, sc, "the updated record cannot be a literal") val (_, relems) = Ast_typecheck.get_record_elems(None, etyp, false, eloc) - val fold (ratoms, code) = ([], code) for (_, ni, ti, _)@idx <- relems { - val (a, code) = + var ratoms = [], code = code + for (_, ni, ti, _)@idx <- relems { + val (a, code1) = try { val (_, ej) = find(for (nj, ej) <- new_elems { ni == nj }) exp2atom(ej, code, false, sc) @@ -386,7 +406,8 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) val code = create_kdefval(ni_, ti_, default_tempref_flags(), Some(get_ni), code, eloc) (AtomId(ni_), code) } - (a :: ratoms, code) + code = code1 + ratoms = a :: ratoms } (KExpMkRecord(ratoms.rev(), kctx), code) | ExpCall(f, args, _) => @@ -395,19 +416,21 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) | (ExpMkRecord(ExpNop _, _, _) as mkrec) :: rest => (rest.rev(), Some(mkrec)) | _ => (args, None) } - val fold (args, code) = ([], code) for ei <- args { - val (ai, code) = exp2atom(ei, code, false, sc) - (ai :: args, code) + var res = [], code = code + for ei <- args { + val (ai, code1) = exp2atom(ei, code, false, sc) + code = code1 + res = ai :: res } val (args, code) = match kwarg_opt { | Some(e) => val (ke, code) = exp2kexp(e, code, false, sc) match ke { - | KExpMkRecord(rest_args, _) => (args.rev() + rest_args, code) + | KExpMkRecord(rest_args, _) => (res.rev() + rest_args, code) | _ => throw compile_err(get_exp_loc(e), "the expression should convert to KExpMkRecord()") } - | _ => (args.rev(), code) + | _ => (res.rev(), code) } val (f_exp, code) = exp2kexp(f, code, false, sc) match f_exp { @@ -475,11 +498,12 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) */ val body_sc = new_block_scope(km_idx) :: sc val (pre_idom_ll, body_code) = - fold (pre_idom_ll, prev_body_code) = ([], []) for (pe_l, idx_pat) <- pew_ll { + fold pre_idom_ll = [], prev_body_code = [] for (pe_l, idx_pat) <- pew_ll { val (idom_list, at_ids, pre_code, body_code) = transform_for(pe_l, idx_pat, prev_body_code, sc, body_sc) val pre_exp = rcode2kexp(pre_code, eloc) - ((pre_exp, idom_list, at_ids) :: pre_idom_ll, body_code) + prev_body_code = body_code + pre_idom_ll = (pre_exp, idom_list, at_ids) :: pre_idom_ll } val (last_e, body_code) = exp2kexp(body, body_code, false, body_sc) val bloc = get_exp_loc(body) @@ -506,25 +530,27 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) throw compile_err(eloc, "internal error: tuple index is not only") } val (tup_id, code) = exp2id(tupidx, code, false, sc, "internal error: a literal instead of tuple") - fold (dlist, code) = ([], code) for eltyp@elnum <- idxtype{ - val (d, code) = kexp2atom(curr_module(sc), "idx", KExpMem(tup_id, elnum, (typ2ktyp(eltyp, iloc), iloc)), false, code) - val (d, code) = cast_if_needed(d, code, iloc) - (DomainElem(d)::dlist, code) + fold dlist = [], code = code for eltyp@elnum <- idxtype { + val (d, code1) = kexp2atom(curr_module(sc), "idx", KExpMem(tup_id, elnum, (typ2ktyp(eltyp, iloc), iloc)), false, code) + val (d, code2) = cast_if_needed(d, code1, iloc) + code = code2 + dlist = DomainElem(d) :: dlist } | _ => - fold (dlist, code) = ([], code) for i@idx <- idxlist { + fold dlist = [], code = code for i@idx <- idxlist { idx_access_stack = (arr, idx) :: idx_access_stack - val (d, code) = + val (d, code1) = try exp2dom(i, code, sc) finally { idx_access_stack = idx_access_stack.tl() } val (_, iloc) = get_exp_ctx(i) - val (d, code) = match d { + val (d, code2) = match d { |DomainElem(scalar_idx) => - val (scalar_idx, code) = cast_if_needed(scalar_idx, code, iloc) + val (scalar_idx, code) = cast_if_needed(scalar_idx, code1, iloc) (DomainElem(scalar_idx), code) - | _ => (d, code) + | _ => (d, code1) } - (d :: dlist, code) + code = code2 + dlist = d :: dlist } } (KExpAt(arr, border, interp, dlist.rev(), kctx), code) @@ -533,12 +559,10 @@ fun exp2kexp(e: exp_t, code: kcode_t, tref: bool, sc: scope_t list) val (a_id, code) = exp2id(e1, code, true, sc, "the literal does not have members to access") val ktyp = get_idk_ktyp(a_id, e1loc) fun find_relem(rn, relems, elem_id, loc) { - val (i, _) = fold (i, j) = (-1, 0) for (ni, _) <- relems { - if elem_id == ni { (j, j + 1) } else { (i, j + 1) } - } - if i >= 0 { i } else { - throw compile_err(loc, f"there is no record field '{elem_id}' in the record '{pp(rn)}'") + for (ni, _)@j <- relems { + if elem_id == ni { return j } } + throw compile_err(loc, f"there is no record field '{elem_id}' in the record '{pp(rn)}'") } match (ktyp, elem) { @@ -806,17 +830,17 @@ fun match_record_pat(pat: pat_t, ptyp: ktyp_t): match pat { | PatRecord(rn_opt, relems, loc) => val ((ctor, case_i, t, multiple_cases), relems_found) = get_record_elems_k(rn_opt, ptyp, loc) - val fold typed_rec_pl = [] for (ni, pi) <- relems { + var typed_rec_pl = [] + for (ni, pi) <- relems { val ni_orig = get_orig_id(ni) - val fold (found_idx, found_t) = (-1, KTypVoid) for (nj, tj)@idx <- relems_found { - if get_orig_id(nj) == ni_orig { (idx, tj) } - else { (found_idx, found_t) } + val (found_idx, found_t) = fold found_idx = -1, found_t = KTypVoid for (nj, tj)@idx <- relems_found { + if get_orig_id(nj) == ni_orig { found_idx = idx; found_t = tj } } if found_idx < 0 { throw compile_err(loc, f"element '{pp(ni)}' is not found in the record '{pp(rn_opt.value_or(noid))}'") } - (ni, pi, found_t, found_idx) :: typed_rec_pl + typed_rec_pl = (ni, pi, found_t, found_idx) :: typed_rec_pl } ((ctor, case_i, t, multiple_cases, relems_found.length() > 1), typed_rec_pl) | _ => throw compile_err(get_pat_loc(pat), "record (or sometimes an exception) is expected") @@ -963,11 +987,11 @@ fun pat_simple_unpack(p: pat_t, ptyp: ktyp_t, e_opt: kexp_t?, code: kcode_t, | _ => throw compile_err(loc, "invalid type of the tuple pattern (it must be a tuple as well)") } - fold code=code for pi@idx <- pl, ti <- tl { + fold code = code for pi@idx <- pl, ti <- tl { val loci = get_pat_loc(pi) val ei = if tup_elems != [] { KExpAtom(tup_elems.nth(idx), (ti, loc)) } else { KExpMem(n, idx, (ti, loci)) } - pat_simple_unpack(pi, ti, Some(ei), code, temp_prefix, flags, sc).1 + code = pat_simple_unpack(pi, ti, Some(ei), code, temp_prefix, flags, sc).1 } | PatIdent(_, _) => code | PatVariant(vn, _, loc) => @@ -982,7 +1006,7 @@ fun pat_simple_unpack(p: pat_t, ptyp: ktyp_t, e_opt: kexp_t?, code: kcode_t, fold code = code for (pi, ti)@idx <- typed_var_pl { val loci = get_pat_loc(pi) val ei = KExpMem(ve_id, idx, (ti, loci)) - pat_simple_unpack(pi, ti, Some(ei), code, temp_prefix, flags, sc).1 + code = pat_simple_unpack(pi, ti, Some(ei), code, temp_prefix, flags, sc).1 } } | PatRecord(rn_opt, _, _) => @@ -1005,7 +1029,7 @@ fun pat_simple_unpack(p: pat_t, ptyp: ktyp_t, e_opt: kexp_t?, code: kcode_t, | _ => fold code = code2 for (_, pi, ti, ii) <- typed_rec_pl { val ei = KExpMem(r_id, ii, (ti, loc)) - pat_simple_unpack(pi, ti, Some(ei), code, temp_prefix, flags, sc).1 + code = pat_simple_unpack(pi, ti, Some(ei), code, temp_prefix, flags, sc).1 } } | PatAs(_, _, _) => @@ -1102,7 +1126,8 @@ fun transform_pat_matching(a: atom_t, cases: (pat_t, exp_t) list, match pti_l { | [:: (PatAny _, _, _)] => plists | _ => - val fold plists_delta = [] for (pi, ti, idxi)@idx <- pti_l { + var plists_delta = [] + for (pi, ti, idxi)@idx <- pti_l { val loci = get_pat_loc(pi) val ei = match alt_ei_opt { @@ -1115,12 +1140,11 @@ fun transform_pat_matching(a: atom_t, cases: (pat_t, exp_t) list, | _ => KExpMem(tup_id, idxi, (ti, loci)) } val pinfo_i = pat_info_t {pinfo_p=pi, pinfo_typ=ti, pinfo_e=ei, pinfo_tag=noid} - (pinfo_i :: plists_delta) + plists_delta = pinfo_i :: plists_delta } - val fold plists = plists for pinfo <- plists_delta { - dispatch_pat(pinfo, plists) + fold plists = plists for pinfo <- plists_delta { + plists = dispatch_pat(pinfo, plists) } - plists } fun get_var_tag_cmp_and_extract(n: id_t, pinfo: pat_info_t, (checks: kcode_t, code: kcode_t), @@ -1242,7 +1266,8 @@ fun transform_pat_matching(a: atom_t, cases: (pat_t, exp_t) list, | _ => throw compile_err(loc, "invalid type of the tuple pattern (it must be a tuple as well)") } - val fold pti_l = [] for pi@idx <- pl, ti <- tl { (pi, ti, idx) :: pti_l } + var pti_l = [] + for pi@idx <- pl, ti <- tl { pti_l = (pi, ti, idx) :: pti_l } val plists = process_pat_list(n, pti_l, plists, None) (plists, checks, code) | PatVariant(vn, pl, loc) => @@ -1252,7 +1277,8 @@ fun transform_pat_matching(a: atom_t, cases: (pat_t, exp_t) list, if (match pl {[:: PatAny _] => true | _ => false}) || (case_n == noid && alt_e_opt.isnone()) { plists } else { - val fold pti_l = [] for pi@idx <- pl, ti <- tl { (pi, ti, idx) :: pti_l } + var pti_l = [] + for pi@idx <- pl, ti <- tl { pti_l = (pi, ti, idx) :: pti_l } process_pat_list(case_n, pti_l, plists, alt_e_opt) } match_var_cases = match_var_cases.remove(get_orig_id(vn)) @@ -1301,13 +1327,14 @@ fun transform_pat_matching(a: atom_t, cases: (pat_t, exp_t) list, throw compile_err(loc, "alt-pattern cannot contain captured values") } // build alt_checks, a list of expression lists, which are supposed to be combined by || operator. - val fold alt_cases = ([], KExpAtom(AtomLit(KLitBool(false)), (KTypBool, loc)))::[] for p <- pl.rev() { + var alt_cases = ([], KExpAtom(AtomLit(KLitBool(false)), (KTypBool, loc)))::[] + for p <- pl.rev() { val pinfo = pat_info_t {pinfo_p=p, pinfo_typ=ptyp, pinfo_e=KExpAtom(AtomId(n), (ptyp, loc)), pinfo_tag=var_tag0} val plists_ = dispatch_pat(pinfo, ([], [], [])) val (checks_, code_) = process_next_subpat(plists_, ([], []), case_sc) val e = rcode2kexp(KExpAtom(AtomLit(KLitBool(true)), (KTypBool, loc)) :: code_, loc) - (checks_.rev(), e) :: alt_cases + alt_cases = (checks_.rev(), e) :: alt_cases } val alt_check = rcode2kexp(KExpMatch(alt_cases, (KTypBool, loc)) :: code, loc) (plists, alt_check :: checks, []) @@ -1326,8 +1353,8 @@ fun transform_pat_matching(a: atom_t, cases: (pat_t, exp_t) list, | KTypName(tname) => match kinfo_(tname, loc) { | KVariant (ref {kvar_cases}) => - match_var_cases = fold match_var_cases=empty_idset for (n, _) <- kvar_cases { - match_var_cases.add(get_orig_id(n)) + match_var_cases = fold match_var_cases = empty_idset for (n, _) <- kvar_cases { + match_var_cases = match_var_cases.add(get_orig_id(n)) } true | _ => false @@ -1424,13 +1451,14 @@ fun transform_fun(df: deffun_t ref, code: kcode_t, sc: scope_t list): kcode_t throw compile_err(loc, "the number of positional arguments and their types do not match") } - val fold (inst_args, argtyps) = (rest_inst_args, rest_argtyps) - for (ni, ti) <- relems, (ni_, pi) <- relems_pats { + var inst_args = rest_inst_args, argtyps = rest_argtyps + for (ni, ti) <- relems, (ni_, pi) <- relems_pats { if ni != ni_ { throw compile_err(loc, f"the record field '{ni}' \ does not match the record pattern field '{ni_}'") } - (pi :: inst_args, ti :: argtyps) + inst_args = pi :: inst_args + argtyps = ti :: argtyps } val new_inst_body = match rest_inst_body { | [] => ExpNop(df_loc) @@ -1451,13 +1479,15 @@ fun transform_fun(df: deffun_t ref, code: kcode_t, sc: scope_t list): kcode_t the number of argument types ({nargtypes}) do not match") } val body_sc = new_block_scope(km_idx) :: sc - val fold (params, body_code) = ([], []) for pi@idx <- inst_args, ti <- argtyps { + var params = [], body_code = [] + for pi@idx <- inst_args, ti <- argtyps { val arg_defname = f"arg{idx}" - val (i, body_code) = pat_simple_unpack(pi, ti, None, body_code, arg_defname, + val (i, body_code1) = pat_simple_unpack(pi, ti, None, body_code, arg_defname, default_val_flags(), body_sc) + body_code = body_code1 val i = if i.m == 0 {dup_idk(km_idx, i)} else {i} val _ = create_kdefval(i, ti, default_arg_flags(), None, [], inst_loc) - (i :: params, body_code) + params = i :: params } //print(f"func {inst_name} body: "); Ast_pp.pprint_exp_x(inst_body); println() val is_cfunc = match inst_body { @@ -1472,7 +1502,7 @@ fun transform_fun(df: deffun_t ref, code: kcode_t, sc: scope_t list): kcode_t val body_loc = get_exp_loc(inst_body) val (e, body_code) = exp2kexp(inst_body, body_code, false, body_sc) val body_kexp = rcode2kexp(e :: body_code, body_loc) - create_kdeffun(inst_name, params.rev(), rt, inst_flags, Some(body_kexp), code, sc, inst_loc) + code = create_kdeffun(inst_name, params.rev(), rt, inst_flags, Some(body_kexp), code, sc, inst_loc) | i => throw compile_err( get_idinfo_loc(i), f"the entry '{inst}' (an instance of '{df_name}'?) \ @@ -1498,8 +1528,8 @@ fun transform_all_types_and_cons(elist: exp_t list, code: kcode_t, sc: scope_t l tag_id } }] - fold code = code for inst <- inst_list { - match id_info(inst, dvar_loc) { + code = fold code = code for inst <- inst_list { + code = match id_info(inst, dvar_loc) { | IdVariant (ref {dvar_name=inst_name, dvar_alias=inst_alias, dvar_cases, dvar_ctors, dvar_ifaces, dvar_flags, dvar_scope, dvar_loc=inst_loc}) => val targs = @@ -1538,8 +1568,8 @@ fun transform_all_types_and_cons(elist: exp_t list, code: kcode_t, sc: scope_t l set_idk_entry(inst_name, KVariant(kvar)) val code = KDefVariant(kvar) :: code val new_rt = KTypName(inst_name) - fold code=code for ctor@i <- dvar_ctors, tag <- tags { - match id_info(ctor, dvar_loc) { + fold code = code for ctor@i <- dvar_ctors, tag <- tags { + code = match id_info(ctor, dvar_loc) { | IdFun (ref {df_name, df_typ}) => val argtyps = match df_typ { | TypFun([:: TypRecord (ref (relems, true))], _) => @@ -1592,7 +1622,7 @@ fun transform_all_types_and_cons(elist: exp_t list, code: kcode_t, sc: scope_t l val tag_flags = default_val_flags().{val_flag_global=tag_sc, val_flag_mutable=true} val decl_tag = create_kdefval(tagname, KTypCInt, tag_flags, Some(KExpAtom(AtomLit(KLitInt(0i64)), (KTypInt, dexn_loc))), [], dexn_loc) - val code = if is_std { code } else { decl_tag + code } + val code1 = if is_std { code } else { decl_tag + code } val dexn_typ = match deref_typ(dexn_typ) { | TypRecord (ref (relems, true)) => TypTuple([::for (_, _, t, _) <- relems {t} ]) @@ -1620,7 +1650,7 @@ fun transform_all_types_and_cons(elist: exp_t list, code: kcode_t, sc: scope_t l ke_loc=dexn_loc }) set_idk_entry(dexn_name, KExn(ke)) - delta_code + (KDefExn(ke) :: code) + code = delta_code + (KDefExn(ke) :: code1) | DefInterface (ref {di_name, di_base, di_all_methods, di_scope, di_loc}) => val ki_all_methods = [:: for (f, t, _) <- di_all_methods { @@ -1634,7 +1664,7 @@ fun transform_all_types_and_cons(elist: exp_t list, code: kcode_t, sc: scope_t l (f, ktyp) }] val ki_id = gen_idk(km_idx, pp(di_name) + "_id") - val code = create_kdefval(ki_id, KTypCInt, + val code1 = create_kdefval(ki_id, KTypCInt, default_var_flags().{val_flag_global=di_scope}, Some(KExpAtom(AtomLit(KLitInt(-1i64)), (KTypCInt, di_loc))), code, di_loc) val ki = ref (kdefinterface_t { @@ -1647,8 +1677,8 @@ fun transform_all_types_and_cons(elist: exp_t list, code: kcode_t, sc: scope_t l ki_loc = di_loc }) set_idk_entry(di_name, KInterface(ki)) - KDefInterface(ki) :: code - | _ => code + code = KDefInterface(ki) :: code1 + | _ => {} } } @@ -1683,11 +1713,12 @@ fun normalize_mod(minfo: defmodule_t, kcode_typedefs: kcode_t, toposort_idx: int fun normalize_all_modules(modules: int list): kmodule_t list { val n = modules.length() - val fold modules_plus = [] for m <- modules { + var modules_plus = [] + for m <- modules { val minfo = get_module(m) val modsc = [:: ScModule(m)] val kcode_typedefs = transform_all_types_and_cons(minfo.dm_defs, [], modsc) - (minfo, kcode_typedefs) :: modules_plus + modules_plus = (minfo, kcode_typedefs) :: modules_plus } [:: for (minfo, kcode_typedefs)@i <- modules_plus.rev() { normalize_mod(minfo, kcode_typedefs, i, i + 1 == n) diff --git a/compiler/K_remove_unused.fx b/compiler/K_remove_unused.fx index 9e4a404f..9e869f45 100644 --- a/compiler/K_remove_unused.fx +++ b/compiler/K_remove_unused.fx @@ -409,23 +409,26 @@ fun remove_unused_by_main(kmods: kmodule_t list) if km_main { km // retain everything in the main module } else { - val fold new_top = [] for e <- km_top { + var new_top = [] + for e <- km_top { + match e { | KDefVal (n, _, _) => - if all_main_deps.mem(n) { e :: new_top } else { new_top } + if all_main_deps.mem(n) { new_top = e :: new_top } | KDefFun (ref {kf_name=n}) => - if all_main_deps.mem(n) { e :: new_top } else { new_top } + if all_main_deps.mem(n) { new_top = e :: new_top } | KDefTyp (ref {kt_name=n}) => - if all_main_deps.mem(n) { e :: new_top } else { new_top } + if all_main_deps.mem(n) { new_top = e :: new_top } | KDefVariant (ref {kvar_name=n}) => - if all_main_deps.mem(n) { e :: new_top } else { new_top } + if all_main_deps.mem(n) { new_top = e :: new_top } | KDefInterface (ref {ki_name=n}) => - if all_main_deps.mem(n) { e :: new_top } else { new_top } + if all_main_deps.mem(n) { new_top = e :: new_top } | KDefClosureVars (ref {kcv_name=n}) => - if all_main_deps.mem(n) { e :: new_top } else { new_top } + if all_main_deps.mem(n) { new_top = e :: new_top } | KDefExn (ref {ke_name=n}) => // always include all the exceptions - e :: new_top - | _ => e :: new_top + new_top = e :: new_top + | _ => new_top = e :: new_top + } } km.{km_top = new_top.rev()} } diff --git a/compiler/K_tailrec.fx b/compiler/K_tailrec.fx index b42eff33..7968d5dd 100644 --- a/compiler/K_tailrec.fx +++ b/compiler/K_tailrec.fx @@ -101,22 +101,23 @@ fun tailrec2loop(km_idx: int, kf: kdeffun_t ref): void (where each function argument is an immutable value) and also want to enable all the optimizations that compiler can do with immutable values. */ - val fold new_kf_params = [], trec_args = [], f_init_code = f_init_code, - loop_init_code = [] for ai <- kf_params { - val dv0 = get_kval(ai, kf_loc) - val ti = dv0.kv_typ - val a1i = dup_idk(km_idx, ai) - val a2i = dup_idk(km_idx, ai) - val dv1 = dv0.{kv_name=a1i} - set_idk_entry(a1i, KVal(dv1)) - val a1i_as_exp = KExpAtom(AtomId(a1i), (ti, kf_loc)) - val a2i_as_exp = KExpAtom(AtomId(a2i), (ti, kf_loc)) - val f_init_code = create_kdefval(a2i, ti, default_tempvar_flags(), + val fold new_kf_params = [], trec_args = [], f_init_code = f_init_code, loop_init_code = [] + for ai <- kf_params { + val dv0 = get_kval(ai, kf_loc) + val ti = dv0.kv_typ + val a1i = dup_idk(km_idx, ai) + val a2i = dup_idk(km_idx, ai) + val dv1 = dv0.{kv_name=a1i} + set_idk_entry(a1i, KVal(dv1)) + val a1i_as_exp = KExpAtom(AtomId(a1i), (ti, kf_loc)) + val a2i_as_exp = KExpAtom(AtomId(a2i), (ti, kf_loc)) + new_kf_params = a1i :: new_kf_params + trec_args = (a2i, ti) :: trec_args + f_init_code = create_kdefval(a2i, ti, default_tempvar_flags(), Some(a1i_as_exp), f_init_code, kf_loc) - val loop_init_code = create_kdefval(ai, ti, default_tempval_flags(), + loop_init_code = create_kdefval(ai, ti, default_tempval_flags(), Some(a2i_as_exp), loop_init_code, kf_loc) - (a1i :: new_kf_params, (a2i, ti) :: trec_args, f_init_code, loop_init_code) - } + } val new_kf_params = new_kf_params.rev() val trec_args = trec_args.rev() @@ -158,7 +159,7 @@ fun tailrec2loop(km_idx: int, kf: kdeffun_t ref): void val fold tcall_rcode = [] for (trec_ai, ti) <- trec_args, real_ai <- real_args { val set_new = KExpAssign(trec_ai, real_ai, eloc) - set_new :: tcall_rcode + tcall_rcode = set_new :: tcall_rcode } rcode2kexp(tcall_rcode, eloc) } else { diff --git a/compiler/Parser.fx b/compiler/Parser.fx index d8544e39..225cc34b 100644 --- a/compiler/Parser.fx +++ b/compiler/Parser.fx @@ -32,14 +32,14 @@ var parser_ctx = parser_ctx_t { m_idx=-1, filename="", deps=[], inc_dirs=[], def fun suggest_module(mname: string, inc_dirs: string list): string { val tlen = mname.length() val thresh = if tlen <= 4 { 1 } else { 2 } - val (best_d, best) = - fold (bd, b) = (thresh + 1, "") for d <- inc_dirs { - fold (bd, b) = (bd, b) for path <- Filename.glob(Filename.concat(d, "*.fx")) { - val nm = Filename.remove_extension(Filename.basename(path)) - val dist = if nm == mname { bd + 1 } else { edit_distance(mname, nm) } - if dist < bd || (dist == bd && nm < b) { (dist, nm) } else { (bd, b) } - } + var best_d = thresh + 1, best = "" + for d <- inc_dirs { + for path <- Filename.glob(Filename.concat(d, "*.fx")) { + val nm = Filename.remove_extension(Filename.basename(path)) + val dist = if nm == mname { best_d + 1 } else { edit_distance(mname, nm) } + if dist < best_d || (dist == best_d && nm < best) { best_d = dist; best = nm } } + } if tlen > 0 && best_d <= thresh && best != "" { f"; did you mean '{best}'?" } else { "" } } @@ -127,9 +127,11 @@ fun plist2exp(pl: pat_t list, loc: loc_t): (pat_t list, exp_t) val param_id = gen_id(parser_ctx.m_idx, prefix) (PatAs(p, param_id, loc), make_ident(param_id, loc)) } - val fold (plist, elist) = ([], []) for p <- pl { + var plist = [], elist = [] + for p <- pl { val (p_, e_) = pat2exp_(p) - (p_ :: plist, e_ :: elist) + plist = p_ :: plist + elist = e_ :: elist } (plist.rev(), match elist { | [:: e] => e | _ => ExpMkTuple(elist.rev(), make_new_ctx(loc)) }) } @@ -160,12 +162,6 @@ fun transform_fold_exp(special: string, fold_pat: pat_t, fold_init_exp: exp_t, val (fr_decl, new_body, fr_exp, global_flags) = match special { - | "" => - val fr_decl = DefVal(PatIdent(fr_id, acc_loc), fold_init_exp, default_var_flags(), acc_loc) - val acc_decl = DefVal(fold_pat, fr_exp, default_tempval_flags(), acc_loc) - val update_fr = ExpAssign(fr_exp, fold_body, body_loc) - val new_body = ExpSeq([::acc_decl, update_fr], void_ctx) - (fr_decl, new_body, fr_exp, global_flags) | "all" | "exists" => val is_all = special == "all" val fr_decl = DefVal(PatIdent(fr_id, acc_loc), ExpLit(LitBool(is_all), @@ -220,18 +216,101 @@ fun transform_fold_exp(special: string, fold_pat: pat_t, fold_init_exp: exp_t, // pack for back match global_flags.for_flag_make { | ForMakeNone => - val fold for_exp = new_body for (pe_l, idxp, flags, loc) <- nested_fors { - ExpFor(pe_l, idxp, for_exp, flags.{for_flag_fold=true}, loc) - } + var for_exp = new_body + for (pe_l, idxp, flags, loc) <- nested_fors { + for_exp = ExpFor(pe_l, idxp, for_exp, flags.{for_flag_fold=true}, loc) + } ExpSeq([:: fr_decl, for_exp, fr_exp], make_new_ctx(fold_loc)) | _ => - val fold nd_map = [] for (pe_l, idxp, flags, loc) <- nested_fors { - (pe_l, idxp) :: nd_map - } + var nd_map = [] + for (pe_l, idxp, flags, loc) <- nested_fors { + nd_map = (pe_l, idxp) :: nd_map + } ExpMap(nd_map, new_body, global_flags, make_new_ctx(fold_loc)) } } +// the accumulator pattern (a single ident or a tuple of idents, per +// parse_fold_init_) as the value expression the new fold yields after the loop. +fun fold_pat_to_exp(p: pat_t): exp_t = + match p { + | PatIdent(i, loc) => make_ident(i, loc) + | PatTyped(p, _, _) => fold_pat_to_exp(p) + | PatTuple(pl, loc) => ExpMkTuple([:: for pi <- pl {fold_pat_to_exp(pi)}], make_new_ctx(loc)) + | _ => throw ParseError(get_pat_loc(p), "unsupported 'fold' accumulator pattern") + } + +// the accumulator names bound by the pattern (for the unused-accumulator check). +fun fold_acc_ids(p: pat_t): id_t list = + match p { + | PatIdent(i, _) => i :: [] + | PatTyped(p, _, _) => fold_acc_ids(p) + | PatAs(p, i, _) => i :: fold_acc_ids(p) + | PatTuple(pl, _) => fold acc = [] for pi <- pl { acc += fold_acc_ids(pi) } + | _ => [] + } + +// The new (fold-1) imperative fold, a thin sugar over `for`: +// fold = for { body } +// ==> { var = init; for { body }; } +// The accumulator is a real mutable var, visible and assignable in the body; +// the whole-fold value is the accumulator after the loop. Multiple accumulators +// become multiple vars via a tuple pattern. break/continue fall out for free +// (it is an ordinary `for`). This is the desugar of the `fold` KEYWORD; the +// named reduction sugars (all/exists/count/find/filter/vector) have their own +// desugar in transform_fold_exp. +fun transform_new_fold_exp(fold_pat: pat_t, fold_init_exp: exp_t, + for_exp: exp_t, fold_loc: loc_t): exp_t +{ + val acc_loc = get_pat_loc(fold_pat) + val acc_ids = fold_acc_ids(fold_pat) + + // Scan the body for updates to each accumulator, so we can warn about an + // accumulator that is never assigned (a likely mistake — the fold does + // nothing). `acc = _` is the deliberate no-op suppression: it counts as a + // mention and lowers to nothing. One walk_exp pass both records the + // assigned/suppressed accumulators and strips the `acc = _` markers. + var assigned: id_t list = [], suppressed: id_t list = [] + fun scan_cb(e: exp_t, callb: ast_callb_t): exp_t = + match e { + | ExpAssign(ExpIdent(id, _), ExpIdent(rid, _), aloc) + when acc_ids.mem(id) && rid == dummyid => + // `acc = _`: deliberate no-op suppression -> lowers to nothing. + if !suppressed.mem(id) { suppressed = id :: suppressed } + ExpNop(aloc) + | ExpAssign((ExpIdent(id, _) as lhs), rhs, aloc) when acc_ids.mem(id) => + if !assigned.mem(id) { assigned = id :: assigned } + ExpAssign(lhs, check_n_walk_exp(rhs, callb), aloc) + | ExpBinary((OpAugBinary _) as bop, (ExpIdent(id, _) as lhs), rhs, ctx) + when acc_ids.mem(id) => + if !assigned.mem(id) { assigned = id :: assigned } + ExpBinary(bop, lhs, check_n_walk_exp(rhs, callb), ctx) + | _ => walk_exp(e, callb) + } + val callb = ast_callb_t {ast_cb_typ=None, ast_cb_exp=Some(scan_cb), ast_cb_pat=None} + val for_exp = check_n_walk_exp(for_exp, callb) + for id <- acc_ids { + if !assigned.mem(id) && !suppressed.mem(id) { + compile_warning(acc_loc, f"'fold' accumulator '{pp(id)}' is never assigned \ +in the body, so the fold has no effect. The body must UPDATE the accumulator \ +(e.g. '{pp(id)} = ' or '{pp(id)} += ...'); write '{pp(id)} = _' to silence") + } + } + + // Emit SEPARATE `var a = e0, b = e1, …` rather than a destructuring + // `var (a,…) = (e0,…)`: the destructuring form leaves an unused local + // tuple temp (a literal init folds its fields away) that trips the + // unused-variable warning. parse_fold_init_ already tupled the per- + // accumulator pats/inits, so split them back apart here. + val var_decls = match (fold_pat, fold_init_exp) { + | (PatTuple(pl, _), ExpMkTuple(el, _)) when pl.length() == el.length() => + [:: for p <- pl, e <- el { DefVal(p, e, default_var_flags(), get_pat_loc(p)) }] + | _ => [:: DefVal(fold_pat, fold_init_exp, default_var_flags(), acc_loc)] + } + val result_exp = fold_pat_to_exp(fold_pat) + ExpSeq(var_decls + [:: for_exp, result_exp], make_new_ctx(fold_loc)) +} + fun parse_err(ts: tklist_t, msg: string): exn { val loc = match ts { @@ -364,7 +443,7 @@ fun parse_ident_list(ts: tklist_t, expect_comma: bool, dot_idents: bool, result: fun make_list_exp(el: exp_t list, l1: loc_t) = fold mklist_e = make_literal(LitEmpty, l1) for e <- el.rev() { - ExpBinary(OpCons, e, mklist_e, make_new_ctx(get_exp_loc(e))) + mklist_e = ExpBinary(OpCons, e, mklist_e, make_new_ctx(get_exp_loc(e))) } fun parse_atomic_exp(ts: tklist_t): (tklist_t, exp_t) @@ -672,25 +751,25 @@ fun parse_exp(ts: tklist_t, ~allow_mkrecord: bool): (tklist_t, exp_t) | _ => val chain = chain.rev() val nexp = chain.length() - val (result, _, code) = - fold (result, prev_e, code) = (ExpNop(noloc), chain.hd().1, []) - for ((cmpop, loc), e)@i <- chain.tl() { - val (next_e, code) = if i == nexp-2 {(e, code)} else { - match e { - | ExpLit(_, _) | ExpIdent(_, _) => (e, code) - | _ => - val e_loc = get_exp_loc(e) - val tmp_id = gen_id(parser_ctx.m_idx, "t") - val tmp_decl = DefVal(PatIdent(tmp_id, e_loc), e, - default_tempval_flags(), e_loc) - (make_ident(tmp_id, e_loc), tmp_decl :: code) - } + var result = ExpNop(noloc), prev_e = chain.hd().1, code = [] + for ((cmpop, loc), e)@i <- chain.tl() { + val (next_e, code_new) = if i == nexp-2 {(e, code)} else { + match e { + | ExpLit(_, _) | ExpIdent(_, _) => (e, code) + | _ => + val e_loc = get_exp_loc(e) + val tmp_id = gen_id(parser_ctx.m_idx, "t") + val tmp_decl = DefVal(PatIdent(tmp_id, e_loc), e, + default_tempval_flags(), e_loc) + (make_ident(tmp_id, e_loc), tmp_decl :: code) } - val cmp_exp = ExpBinary(OpCmp(cmpop), prev_e, next_e, (TypBool, loc)) - val result = if i == 0 {cmp_exp} - else { ExpBinary(OpBitwiseAnd, result, cmp_exp, (TypBool, loc)) } - (result, next_e, code) } + val cmp_exp = ExpBinary(OpCmp(cmpop), prev_e, next_e, (TypBool, loc)) + result = if i == 0 {cmp_exp} + else { ExpBinary(OpBitwiseAnd, result, cmp_exp, (TypBool, loc)) } + prev_e = next_e + code = code_new + } expseq2exp(code.rev() + [:: result], get_exp_loc(result)) } (ts, result) @@ -1020,20 +1099,27 @@ fun parse_for(ts: tklist_t, for_make: for_make_t): (tklist_t, exp_t, exp_t) val glob_loc = match nested_fors {| (_, _, loc) :: _ => loc | _ => noloc} // process the nested for. - val fold (glob_el, nested_fors) = ([], []) for (ppe_list, when_e, loc) <- nested_fors { - val fold (glob_el, for_cl_, idx_pat) = (glob_el, [], PatAny(loc)) for (p, idxp, e) <- ppe_list { + var glob_el = [], new_nested_fors = [] + for (ppe_list, when_e, loc) <- nested_fors { + var for_cl_ = [], idx_pat = PatAny(loc) + for (p, idxp, e) <- ppe_list { val (p_, p_e) = plist2exp([:: p], get_pat_loc(p)) val p = p_.hd() match (idxp, idx_pat) { - | (PatAny _, idx_pat) => (p_e :: glob_el, (p, e) :: for_cl_, idx_pat) + | (PatAny _, _) => + glob_el = p_e :: glob_el + for_cl_ = (p, e) :: for_cl_ | (_, PatAny _) => val (idxp, idxp_e) = plist2exp([:: idxp], get_pat_loc(idxp)) - (idxp_e :: p_e :: glob_el, (p, e) :: for_cl_, idxp.hd()) + glob_el = idxp_e :: p_e :: glob_el + for_cl_ = (p, e) :: for_cl_ + idx_pat = idxp.hd() | _ => throw ParseError(get_pat_loc(idxp), "@ is used more than once, which does not make sence and is not supported") } } - (glob_el, (for_cl_.rev(), idx_pat, when_e, loc) :: nested_fors) + new_nested_fors = (for_cl_.rev(), idx_pat, when_e, loc) :: new_nested_fors } + val nested_fors = new_nested_fors val for_iter_exp = match glob_el.rev() { | [:: e] => e | el => make_tuple(el, glob_loc) } val (ts, body) = match vts { @@ -1049,18 +1135,19 @@ fun parse_for(ts: tklist_t, for_make: for_make_t): (tklist_t, exp_t, exp_t) val for_exp = match for_make { | ForMakeArray | ForMakeList | ForMakeTuple | ForMakeVector => - val fold pel_i_l=[], glob_when_e=ExpNop(noloc), loc = noloc - for (pe_l, idxp, when_e, loc) <- nested_fors { - val glob_when_e = - match (glob_when_e, when_e) { - | (_, None) => glob_when_e - | (ExpNop(_), Some(e)) => e - | (_, Some(e)) => - ExpBinary(OpLogicAnd, glob_when_e, e, - (TypBool, get_exp_loc(glob_when_e))) - } - ((pe_l, idxp) :: pel_i_l, glob_when_e, loc) - } + var pel_i_l = [], glob_when_e = ExpNop(noloc), last_loc = noloc + for (pe_l, idxp, when_e, loc) <- nested_fors { + glob_when_e = + match (glob_when_e, when_e) { + | (_, None) => glob_when_e + | (ExpNop(_), Some(e)) => e + | (_, Some(e)) => + ExpBinary(OpLogicAnd, glob_when_e, e, + (TypBool, get_exp_loc(glob_when_e))) + } + pel_i_l = (pe_l, idxp) :: pel_i_l + last_loc = loc + } val body = match glob_when_e { | ExpNop _ => body | _ => @@ -1077,7 +1164,7 @@ fun parse_for(ts: tklist_t, for_make: for_make_t): (tklist_t, exp_t, exp_t) for_flag_make=for_make, for_flag_parallel=is_parallel, for_flag_unzip=need_unzip}, - make_new_ctx(loc)) + make_new_ctx(last_loc)) | _ => val nfors = nested_fors.length() fold e = body for (pe_l, idxp, when_e, loc)@i <- nested_fors { @@ -1092,7 +1179,7 @@ fun parse_for(ts: tklist_t, for_make: for_make_t): (tklist_t, exp_t, exp_t) expseq2exp([::check_e, e ], loc) | _ => e } - ExpFor(pe_l, idxp, body, flags, loc) + e = ExpFor(pe_l, idxp, body, flags, loc) } } (ts, for_exp, for_iter_exp) @@ -1178,8 +1265,8 @@ fun parse_defvals(ts: tklist_t): (tklist_t, exp_t list) match ts { | (FOLD, l1) :: rest => val (ts, p, e) = parse_fold_init_(rest, false, [], []) - val (ts, for_exp, for_iter_exp) = parse_for(ts, ForMakeNone) - val fold_exp = transform_fold_exp("", p, e, for_exp, for_iter_exp, l1) + val (ts, for_exp, _) = parse_for(ts, ForMakeNone) + val fold_exp = transform_new_fold_exp(p, e, for_exp, l1) (ts, [:: DefVal(p, fold_exp, flags, get_pat_loc(p))]) | _ => extend_defvals_(ts, false, []) } @@ -1345,8 +1432,8 @@ fun parse_complex_exp(ts: tklist_t): (tklist_t, exp_t) (ts, ExpMatch(e, cases, make_new_ctx(l1))) | (FOLD, l1) :: rest => val (ts, p, e) = parse_fold_init_(rest, false, [], []) - val (ts, for_exp, for_iter_exp) = parse_for(ts, ForMakeNone) - val fold_exp = transform_fold_exp("", p, e, for_exp, for_iter_exp, l1) + val (ts, for_exp, _) = parse_for(ts, ForMakeNone) + val fold_exp = transform_new_fold_exp(p, e, for_exp, l1) (ts, fold_exp) | (FUN, _) :: _ => parse_lambda(ts) | _ => @@ -1477,6 +1564,46 @@ fun parse_body_and_make_fun(ts: tklist_t, fname: id_t, params: pat_t list, rt: t (ts, DefFun(df)) } +// Simultaneous tuple assignment (parse-time desugar; fold-1 Phase 0): +// (l0, l1, ..., ln) = rhs +// ==> { val __tup__ = rhs; ; ...; } +// The RHS materializes ONCE into a temp before any store — that IS the +// simultaneity (`(a, b) = (b, a + b)` swaps correctly); stores run +// left-to-right. A '_' component emits no store: its projection is +// side-effect-free (the temp already ran rhs in full), so the ExpIdent("_") +// is simply dropped and never reaches the typechecker. Nested tuple +// components recurse; a non-lvalue component is a targeted error. +fun make_tuple_assign(lhs_elems: exp_t list, rhs: exp_t, loc: loc_t): exp_t +{ + val temp_id = gen_id(parser_ctx.m_idx, "__tup__") + // a natural temp val: the dealiaser scalarizes it where safe. Simultaneity + // for aliasing targets (swap) relies on C-gen NOT inlining the RHS memory + // reads past the stores -- see movement_unsafe_read in C_gen_code.fx (FB-023). + val temp_decl = DefVal(PatIdent(temp_id, loc), rhs, default_tempval_flags(), loc) + var stores = [] + for elem@i <- lhs_elems { + val eloc = get_exp_loc(elem) + val field = ExpMem(make_ident(temp_id, eloc), + make_literal(LitInt(int64(i)), eloc), make_new_ctx(eloc)) + val store = match elem { + | ExpIdent(eid, _) when eid == dummyid => [] + | ExpMkTuple(inner, _) => [:: make_tuple_assign(inner, field, eloc)] + | ExpUnary(OpDeref, _, _) | ExpIdent _ | ExpAt _ | ExpMem _ => + [:: ExpAssign(elem, field, eloc)] + | _ => throw ParseError(eloc, "this element is not assignable in a tuple assignment") + } + stores += store + } + // when every component is '_', there are no stores and no aliasing concern: + // just evaluate rhs for its effects via a throwaway temp-flagged binding + // (temp vals are exempt from the "declared but not used" warning). + match stores { + | [] => + val drop_id = gen_id(parser_ctx.m_idx, "__drop__") + DefVal(PatIdent(drop_id, loc), rhs, default_tempval_flags(), loc) + | _ => ExpSeq(temp_decl :: stores, make_new_ctx(loc)) + } +} fun parse_stmt(ts: tklist_t): (tklist_t, exp_t) { @@ -1512,9 +1639,21 @@ fun parse_stmt(ts: tklist_t): (tklist_t, exp_t) | _ => false } match ts { | (EQUAL, l2) :: rest => - if !lvalue_e1 { throw parse_err(ts, "left-hand-side of the assignment is not an l-value") } - val (ts, e2) = parse_complex_exp(rest) - (ts, ExpAssign(e1, e2, l2)) + match e1 { + | ExpMkTuple(lhs_elems, _) => + val (ts, e2) = parse_complex_exp(rest) + (ts, make_tuple_assign(lhs_elems, e2, l2)) + | ExpIdent(eid, _) when eid == dummyid => + // bare `_ = expr`: evaluate the RHS for its side effects and + // discard the value via a throwaway temp binding (void, DCE'd). + val (ts, e2) = parse_complex_exp(rest) + val drop_id = gen_id(parser_ctx.m_idx, "__drop__") + (ts, DefVal(PatIdent(drop_id, l2), e2, default_tempval_flags(), l2)) + | _ => + if !lvalue_e1 { throw parse_err(ts, "left-hand-side of the assignment is not an l-value") } + val (ts, e2) = parse_complex_exp(rest) + (ts, ExpAssign(e1, e2, l2)) + } | (AUG_BINOP(binop), l2) :: rest => if !lvalue_e1 { throw parse_err(ts, "left-hand-side of the assignment is not an l-value") } val (ts, e2) = parse_complex_exp(rest) @@ -1620,7 +1759,7 @@ fun parse_pat(ts: tklist_t, simple: bool): (tklist_t, pat_t) if simple {throw parse_err(ts, "list pattern cannot be used here")} val (ts, pl) = parse_pat_list(rest, false, [], simple, ']') (ts, fold tail = PatLit(LitEmpty, get_pat_loc(pl.hd())) - for p <- pl { PatCons(p, tail, loclist2loc([::get_pat_loc(p), get_pat_loc(tail)], noloc)) }) + for p <- pl { tail = PatCons(p, tail, loclist2loc([::get_pat_loc(p), get_pat_loc(tail)], noloc)) }) | (LBRACE, l1) :: rest => val (ts, ipl) = parse_idpat_list(rest, false, [], simple) (ts, PatRecord(None, ipl, l1)) @@ -2543,17 +2682,28 @@ fun parse(m_idx: int, preamble: token_t list, inc_dirs: string list): bool var all_tokens: (Lexer.token_t, Ast.loc_t) list = [] var prev_lineno = -1 while true { - // The lexer returns a batch of tokens plus the batch's begin/end point - // locs (reform-prep-1); every token in the batch gets that span, so an - // AST node built from a single token already carries a true span - // ({line0,col0}..{line1,col1}), not a point. - val (more_tokens, (bline, bcol), (eline, ecol)) = lexer() - val loc = Ast.loc_t {m_idx=dm.dm_idx, line0=bline, col0=bcol, line1=eline, col1=ecol} - for (t, _) <- more_tokens { + // The lexer returns a batch of tokens (each carrying its own start + // point) plus the batch's begin/end. We post-process that here (the + // lexer is untouched): give each token its OWN span -- from its start + // to the NEXT token's start, and the batch end for the last token -- + // instead of stamping the whole batch's span onto every token. A node + // built from a single token then carries that token's true span, which + // span-based source rewriting (the fold-1 migrator) and tight carets + // both rely on. reform-prep-1. + val (more_tokens, _, (eline, ecol)) = lexer() + fun stamp(toks: (Lexer.token_t, (int, int)) list): (Lexer.token_t, Ast.loc_t) list = + match toks { + | (t, (l0, c0)) :: (((_, (nl, nc)) :: _) as rest) => + (t, Ast.loc_t {m_idx=dm.dm_idx, line0=l0, col0=c0, line1=nl, col1=nc}) :: stamp(rest) + | (t, (l0, c0)) :: [] => + [:: (t, Ast.loc_t {m_idx=dm.dm_idx, line0=l0, col0=c0, line1=eline, col1=ecol})] + | [] => [] + } + for (t, loc) <- stamp(more_tokens) { if Options.opt.print_tokens { - if bline != prev_lineno { - print(f"\n{pp(fname_id)}:{bline}: ") - prev_lineno = bline + if loc.line0 != prev_lineno { + print(f"\n{pp(fname_id)}:{loc.line0}: ") + prev_lineno = loc.line0 } print(f"{Lexer.tok2str(t).0} ") } diff --git a/compiler/bootstrap/Ast.c b/compiler/bootstrap/Ast.c index 397fe859..d4a70678 100644 --- a/compiler/bootstrap/Ast.c +++ b/compiler/bootstrap/Ast.c @@ -4830,6 +4830,7 @@ _fx_FPi2SS _fx_g8Ast__cmp = {0}; _fx_FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t _fx_g13Ast__dup_typ_ = {0}; _fx_FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t _fx_g13Ast__dup_exp_ = {0}; _fx_R16Ast__ast_callb_t _fx_g14Ast__dup_callb = {0}; +_fx_R9Ast__id_t _fx_g12Ast__dummyid; _fx_T2LSi _fx_g18Ast__builtin_ids2_ = {0}; _fx_R9Ast__id_t _fx_g23Ast__std__fold_result__; _fx_T2LSi _fx_g18Ast__builtin_ids3_ = {0}; @@ -5317,11 +5318,12 @@ FX_EXTERN_C int _fx_M3AstFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2SiRt20Hash int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2Si* v_2 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2Si(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2Si(entry_0, v_2); + _fx_Rt20Hashmap__hashentry_t2Si* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, *ht_table_0, tabsz_0); + _fx_free_Rt20Hashmap__hashentry_t2Si(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2Si(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -5365,11 +5367,12 @@ FX_EXTERN_C int _fx_M3AstFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2iLSRt20Has int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2iLS* v_2 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2iLS(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2iLS(entry_0, v_2); + _fx_Rt20Hashmap__hashentry_t2iLS* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, *ht_table_0, tabsz_0); + _fx_free_Rt20Hashmap__hashentry_t2iLS(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2iLS(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -5418,26 +5421,27 @@ FX_EXTERN_C int _fx_M3AstFM4growv2Nt10Hashmap__t2Sii(struct _fx_Nt10Hashmap__t2S for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2Si v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2Si* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2Si(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M3AstFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2SiRt20Hashmap__hashentry_t2Si(tabsz_0, &new_ht_index_0, - &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2Si(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -5478,26 +5482,27 @@ FX_EXTERN_C int _fx_M3AstFM4growv2Nt10Hashmap__t2iLSi( for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2iLS v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2iLS* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2iLS(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M3AstFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2iLSRt20Hashmap__hashentry_t2iLS(tabsz_0, &new_ht_index_0, - &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2iLS(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -5517,14 +5522,14 @@ FX_EXTERN_C int _fx_M3AstFM9find_idx_Ta2i2Nt10Hashmap__t2RM4id_tNt10Hashset__t1R { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -5543,32 +5548,11 @@ FX_EXTERN_C int _fx_M3AstFM9find_idx_Ta2i2Nt10Hashmap__t2RM4id_tNt10Hashset__t1R bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5788,17 +5772,19 @@ FX_EXTERN_C int _fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS( } if (t_1) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_9 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_10 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_10 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_)(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2Si* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_11->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5808,11 +5794,12 @@ FX_EXTERN_C int _fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS( } _fx_make_Rt20Hashmap__hashentry_t2Si(hv_0, k_0, self_0->u.t.t0.data, &v_2); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2Si* v_9 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2Si(v_9); - _fx_copy_Rt20Hashmap__hashentry_t2Si(&v_2, v_9); + _fx_Rt20Hashmap__hashentry_t2Si* v_12 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, self_0->u.t.t5, found_0); + _fx_free_Rt20Hashmap__hashentry_t2Si(v_12); + _fx_copy_Rt20Hashmap__hashentry_t2Si(&v_2, v_12); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_13 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_13 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5911,17 +5898,19 @@ FX_EXTERN_C int _fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2iLSi( } if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_7 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_8 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_)(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2iLS* v_9 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_9->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5932,11 +5921,12 @@ FX_EXTERN_C int _fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2iLSi( FX_COPY_PTR(self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2iLS(hv_0, k_0, v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2iLS* v_7 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2iLS(v_7); - _fx_copy_Rt20Hashmap__hashentry_t2iLS(&v_3, v_7); + _fx_Rt20Hashmap__hashentry_t2iLS* v_10 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, self_0->u.t.t5, found_0); + _fx_free_Rt20Hashmap__hashentry_t2iLS(v_10); + _fx_copy_Rt20Hashmap__hashentry_t2iLS(&v_3, v_10); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -6057,9 +6047,12 @@ FX_EXTERN_C int _fx_M3AstFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1RM4id_ int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -6108,26 +6101,28 @@ FX_EXTERN_C int _fx_M3AstFM4growv2Nt10Hashset__t1RM4id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M3AstFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1RM4id_tRt24Hashset__hashset_entry_t1RM4id_t(tabsz_0, - &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -6164,32 +6159,11 @@ FX_EXTERN_C int _fx_M3AstFM9find_idx_Ta2i3Nt10Hashset__t1RM4id_tRM4id_tq( bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -6250,32 +6224,11 @@ FX_EXTERN_C int _fx_M3AstFM4add_v3Nt10Hashset__t1RM4id_tRM4id_tq( bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -6291,14 +6244,14 @@ FX_EXTERN_C int _fx_M3AstFM4add_v3Nt10Hashset__t1RM4id_tRM4id_tq( FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -6310,27 +6263,29 @@ FX_EXTERN_C int _fx_M3AstFM4add_v3Nt10Hashset__t1RM4id_tRM4id_tq( FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -6338,11 +6293,14 @@ FX_EXTERN_C int _fx_M3AstFM4add_v3Nt10Hashset__t1RM4id_tRM4id_tq( fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -6872,109 +6830,81 @@ _fx_cleanup: ; return fx_status; } -FX_EXTERN_C int _fx_M3AstFM8add_listRt6Set__t1S2Rt6Set__t1SLS( - struct _fx_Rt6Set__t1S* s_0, +FX_EXTERN_C int _fx_M3AstFM9from_listRt6Set__t1S2FPi2SSLS( + struct _fx_FPi2SS* cmp_0, struct _fx_LS_data_t* l_0, struct _fx_Rt6Set__t1S* fx_result, void* fx_fv) { - _fx_FPi2SS cmp_0 = {0}; - _fx_Nt11Set__tree_t1S v_0 = 0; - _fx_T2Nt11Set__tree_t1Si __fold_result___0 = {0}; - _fx_T2Nt11Set__tree_t1Si v_1 = {0}; + _fx_Rt6Set__t1S v_0 = {0}; + _fx_FPi2SS cmp_1 = {0}; _fx_Nt11Set__tree_t1S new_root_0 = 0; + _fx_Nt11Set__tree_t1S new_root_1 = 0; int fx_status = 0; - FX_COPY_FP(&s_0->cmp, &cmp_0); - FX_COPY_PTR(s_0->root, &v_0); - _fx_make_T2Nt11Set__tree_t1Si(v_0, s_0->size, &__fold_result___0); + _fx_make_Rt6Set__t1S(_fx_g12Ast__Empty2_, 0, cmp_0, &v_0); + FX_COPY_FP(&v_0.cmp, &cmp_1); + FX_COPY_PTR(v_0.root, &new_root_0); + int_ size_0 = v_0.size; _fx_LS lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_T2Nt11Set__tree_t1Si v_2 = {0}; - _fx_Nt11Set__tree_t1S new_root_1 = 0; - _fx_T2Nt11Set__tree_t1Si v_3 = {0}; + _fx_T2Nt11Set__tree_t1Si v_1 = {0}; _fx_Nt11Set__tree_t1S t_0 = 0; - _fx_T2Nt11Set__tree_t1SB v_4 = {0}; + _fx_T2Nt11Set__tree_t1SB v_2 = {0}; _fx_Nt11Set__tree_t1S t_1 = 0; - _fx_T2Nt11Set__tree_t1Si v_5 = {0}; fx_str_t* x_0 = &lst_0->hd; - _fx_copy_T2Nt11Set__tree_t1Si(&__fold_result___0, &v_2); - FX_COPY_PTR(v_2.t0, &new_root_1); - FX_CALL(_fx_M3AstFM12add_to_tree_T2Nt11Set__tree_t1Si3Nt11Set__tree_t1SSFPi2SS(new_root_1, x_0, &cmp_0, &v_3, 0), + FX_CALL(_fx_M3AstFM12add_to_tree_T2Nt11Set__tree_t1Si3Nt11Set__tree_t1SSFPi2SS(new_root_0, x_0, &cmp_1, &v_1, 0), _fx_catch_1); - FX_COPY_PTR(v_3.t0, &t_0); - int_ dsz_0 = v_3.t1; + FX_COPY_PTR(v_1.t0, &t_0); + int_ dsz_0 = v_1.t1; if ((t_0 != 0) + 1 == 2) { _fx_T4N12Set__color_tNt11Set__tree_t1SSNt11Set__tree_t1S* vcase_0 = &t_0->u.Node; if (vcase_0->t0.tag == 1) { - _fx_Nt11Set__tree_t1S v_6 = 0; + _fx_Nt11Set__tree_t1S v_3 = 0; FX_CALL( _fx_M3AstFM4NodeNt11Set__tree_t1S4N12Set__color_tNt11Set__tree_t1SSNt11Set__tree_t1S(&_fx_g10Ast__Black, - vcase_0->t1, &vcase_0->t2, vcase_0->t3, &v_6), _fx_catch_0); - _fx_make_T2Nt11Set__tree_t1SB(v_6, false, &v_4); + vcase_0->t1, &vcase_0->t2, vcase_0->t3, &v_3), _fx_catch_0); + _fx_make_T2Nt11Set__tree_t1SB(v_3, false, &v_2); _fx_catch_0: ; - if (v_6) { - _fx_free_Nt11Set__tree_t1S(&v_6); + if (v_3) { + _fx_free_Nt11Set__tree_t1S(&v_3); } goto _fx_endmatch_0; } } - _fx_make_T2Nt11Set__tree_t1SB(t_0, true, &v_4); + _fx_make_T2Nt11Set__tree_t1SB(t_0, true, &v_2); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_1); - FX_COPY_PTR(v_4.t0, &t_1); - _fx_make_T2Nt11Set__tree_t1Si(t_1, v_2.t1 + dsz_0, &v_5); - _fx_free_T2Nt11Set__tree_t1Si(&__fold_result___0); - _fx_copy_T2Nt11Set__tree_t1Si(&v_5, &__fold_result___0); + FX_COPY_PTR(v_2.t0, &t_1); + _fx_free_Nt11Set__tree_t1S(&new_root_0); + FX_COPY_PTR(t_1, &new_root_0); + size_0 = size_0 + dsz_0; _fx_catch_1: ; - _fx_free_T2Nt11Set__tree_t1Si(&v_5); if (t_1) { _fx_free_Nt11Set__tree_t1S(&t_1); } - _fx_free_T2Nt11Set__tree_t1SB(&v_4); + _fx_free_T2Nt11Set__tree_t1SB(&v_2); if (t_0) { _fx_free_Nt11Set__tree_t1S(&t_0); } - _fx_free_T2Nt11Set__tree_t1Si(&v_3); - if (new_root_1) { - _fx_free_Nt11Set__tree_t1S(&new_root_1); - } - _fx_free_T2Nt11Set__tree_t1Si(&v_2); + _fx_free_T2Nt11Set__tree_t1Si(&v_1); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T2Nt11Set__tree_t1Si(&__fold_result___0, &v_1); - FX_COPY_PTR(v_1.t0, &new_root_0); - int_ size_0 = v_1.t1; - _fx_make_Rt6Set__t1S(new_root_0, size_0, &cmp_0, fx_result); + FX_COPY_PTR(new_root_0, &new_root_1); + int_ size_1 = size_0; + _fx_make_Rt6Set__t1S(new_root_1, size_1, &cmp_1, fx_result); _fx_cleanup: ; - FX_FREE_FP(&cmp_0); - if (v_0) { - _fx_free_Nt11Set__tree_t1S(&v_0); - } - _fx_free_T2Nt11Set__tree_t1Si(&__fold_result___0); - _fx_free_T2Nt11Set__tree_t1Si(&v_1); + _fx_free_Rt6Set__t1S(&v_0); + FX_FREE_FP(&cmp_1); if (new_root_0) { _fx_free_Nt11Set__tree_t1S(&new_root_0); } - return fx_status; -} - -FX_EXTERN_C int _fx_M3AstFM9from_listRt6Set__t1S2FPi2SSLS( - struct _fx_FPi2SS* cmp_0, - struct _fx_LS_data_t* l_0, - struct _fx_Rt6Set__t1S* fx_result, - void* fx_fv) -{ - _fx_Rt6Set__t1S v_0 = {0}; - int fx_status = 0; - _fx_make_Rt6Set__t1S(_fx_g12Ast__Empty2_, 0, cmp_0, &v_0); - FX_CALL(_fx_M3AstFM8add_listRt6Set__t1S2Rt6Set__t1SLS(&v_0, l_0, fx_result, 0), _fx_cleanup); - -_fx_cleanup: ; - _fx_free_Rt6Set__t1S(&v_0); + if (new_root_1) { + _fx_free_Nt11Set__tree_t1S(&new_root_1); + } return fx_status; } @@ -8181,39 +8111,39 @@ FX_EXTERN_C int _fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t( void* fx_fv) { int fx_status = 0; - _fx_R10Ast__loc_t __fold_result___0 = *default_loc_0; + _fx_R10Ast__loc_t loc_0 = *default_loc_0; _fx_LR10Ast__loc_t lst_0 = llist_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_R10Ast__loc_t* loci_0 = &lst_0->hd; - _fx_R10Ast__loc_t loc_0 = __fold_result___0; - int_ col1_0 = loc_0.col1; - int_ line1_0 = loc_0.line1; - int_ col0_0 = loc_0.col0; - int_ line0_0 = loc_0.line0; - int_ m_idx_0 = loc_0.m_idx; + _fx_R10Ast__loc_t v_0 = loc_0; + int_ col1_0 = v_0.col1; + int_ line1_0 = v_0.line1; + int_ col0_0 = v_0.col0; + int_ line0_0 = v_0.line0; + int_ m_idx_0 = v_0.m_idx; int_ loci_col1_0 = loci_0->col1; int_ loci_line1_0 = loci_0->line1; int_ loci_col0_0 = loci_0->col0; int_ loci_line0_0 = loci_0->line0; int_ loci_m_idx_0 = loci_0->m_idx; - _fx_R10Ast__loc_t v_0; + _fx_R10Ast__loc_t v_1; if (m_idx_0 != loci_m_idx_0) { if (m_idx_0 <= 0) { - v_0 = *loci_0; + v_1 = *loci_0; } else { - v_0 = loc_0; + v_1 = loc_0; } } else { _fx_R10Ast__loc_t rec_0 = { m_idx_0, fx_mini(line0_0, loci_line0_0), fx_mini(col0_0, loci_col0_0), fx_maxi(line1_0, loci_line1_0), fx_maxi(col1_0, loci_col1_0) }; - v_0 = rec_0; + v_1 = rec_0; } - __fold_result___0 = v_0; + loc_0 = v_1; } - *fx_result = __fold_result___0; + *fx_result = loc_0; _fx_cleanup: ; return fx_status; @@ -8508,15 +8438,14 @@ static int _fx_M3AstFM10__lambda__v1RM4id_t(struct _fx_R9Ast__id_t* x_0, void* f { int fx_status = 0; _fx_M3AstFM10__lambda__v1RM4id_t_cldata_t* cv_0 = (_fx_M3AstFM10__lambda__v1RM4id_t_cldata_t*)fx_fv; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)x_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)x_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)x_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - FX_CALL(_fx_M3AstFM4add_v3Nt10Hashset__t1RM4id_tRM4id_tq(cv_0->t0, x_0, __fold_result___0 & 9223372036854775807ULL, 0), - _fx_cleanup); + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)x_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)x_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)x_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + FX_CALL(_fx_M3AstFM4add_v3Nt10Hashset__t1RM4id_tRM4id_tq(cv_0->t0, x_0, h_0 & 9223372036854775807ULL, 0), _fx_cleanup); _fx_cleanup: ; return fx_status; @@ -8541,7 +8470,8 @@ FX_EXTERN_C int _fx_M3AstFM6stringS1RM5loc_t(struct _fx_R10Ast__loc_t* loc_0, fx if (loc_0->m_idx >= 0) { int_ v_2 = loc_0->m_idx; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_2), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_2))->u.defmodule_t.t1, &fname_0); + _fx_N16Ast__defmodule_t v_3 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_2); + fx_copy_str(&v_3->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_0 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_0, &fname_0); @@ -8577,7 +8507,8 @@ FX_EXTERN_C int _fx_M3AstFM10new_id_idxi1i(int_ midx_0, int_* fx_result, void* f FX_THROW(&v_0, true, _fx_cleanup); } FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, midx_0), _fx_cleanup); - FX_COPY_PTR((*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, midx_0))->u.defmodule_t.t9, &v_1); + _fx_N16Ast__defmodule_t v_3 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, midx_0); + FX_COPY_PTR(v_3->u.defmodule_t.t9, &v_1); fx_copy_arr(&v_1->u.t.t1, &v_2); int_ sz_0 = FX_ARR_SIZE(v_2, 0); int_ n0_0 = v_1->u.t.t0; @@ -8608,9 +8539,9 @@ FX_EXTERN_C int _fx_M3AstFM10new_id_idxi1i(int_ midx_0, int_* fx_result, void* f _fx_free_N14Ast__id_info_t(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_3 = &v_1->u.t.t1; - FX_FREE_ARR(v_3); - fx_copy_arr(&new_data_0, v_3); + fx_arr_t* v_4 = &v_1->u.t.t1; + FX_FREE_ARR(v_4); + fx_copy_arr(&new_data_0, v_4); } v_1->u.t.t0 = n0_0 + 1; *fx_result = n0_0; @@ -8700,10 +8631,11 @@ FX_EXTERN_C int _fx_M3AstFM8id2str_mS1RM4id_t(struct _fx_R9Ast__id_t* i_0, fx_st else { int_ v_2 = i_0->m; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_2), _fx_cleanup); - _fx_R9Ast__id_t v_3 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_2))->u.defmodule_t.t0; + _fx_N16Ast__defmodule_t v_3 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_2); + _fx_R9Ast__id_t v_4 = v_3->u.defmodule_t.t0; bool t_1; - if ((bool)((v_3.m == _fx_g9Ast__noid.m) & (v_3.i == _fx_g9Ast__noid.i))) { - t_1 = (bool)((v_3.m == 0) | (v_3.j == _fx_g9Ast__noid.j)); + if ((bool)((v_4.m == _fx_g9Ast__noid.m) & (v_4.i == _fx_g9Ast__noid.i))) { + t_1 = (bool)((v_4.m == 0) | (v_4.j == _fx_g9Ast__noid.j)); } else { t_1 = false; @@ -8712,14 +8644,14 @@ FX_EXTERN_C int _fx_M3AstFM8id2str_mS1RM4id_t(struct _fx_R9Ast__id_t* i_0, fx_st fx_str_t slit_1 = FX_MAKE_STR(""); fx_copy_str(&slit_1, &mprefix_0); } else { - int_ v_4 = v_3.i; - FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_4), _fx_cleanup); - fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_4), &mprefix_0); + int_ v_5 = v_4.i; + FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_5), _fx_cleanup); + fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_5), &mprefix_0); } - bool v_5; + bool v_6; fx_str_t slit_2 = FX_MAKE_STR("Builtins"); - v_5 = _fx_F6__eq__B2SS(&mprefix_0, &slit_2, 0); - if (v_5) { + v_6 = _fx_F6__eq__B2SS(&mprefix_0, &slit_2, 0); + if (v_6) { fx_str_t slit_3 = FX_MAKE_STR(""); fx_copy_str(&slit_3, &mprefix_1); } else { @@ -8729,9 +8661,9 @@ FX_EXTERN_C int _fx_M3AstFM8id2str_mS1RM4id_t(struct _fx_R9Ast__id_t* i_0, fx_st FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &mprefix_1), _fx_cleanup); } } - int_ v_6 = i_0->i; - FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_6), _fx_cleanup); - fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_6), &prefix_1); + int_ v_7 = i_0->i; + FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_7), _fx_cleanup); + fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_7), &prefix_1); FX_CALL(_fx_F6stringS1i(i_0->j, &v_0, 0), _fx_cleanup); fx_str_t slit_5 = FX_MAKE_STR("@"); { @@ -8875,8 +8807,9 @@ FX_EXTERN_C int _fx_M3AstFM13edit_distancei2SS(fx_str_t* a_0, fx_str_t* b_0, int int_ n_1 = FX_LOOP_COUNT(1, v_4, 1); for (int_ j_1 = 0; j_1 < n_1; j_1++) { int_ j_2 = 1 + j_1 * 1; + char_ v_6 = FX_STR_ELEM(*b_0, j_2 + -1); int_ cost_0; - if (ai_0 == FX_STR_ELEM(*b_0, j_2 + -1)) { + if (ai_0 == v_6) { cost_0 = 0; } else { @@ -8921,7 +8854,8 @@ FX_EXTERN_C int _fx_M3AstFM11compile_errE2RM5loc_tS( if (loc_0->m_idx >= 0) { int_ v_3 = loc_0->m_idx; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_3), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_3))->u.defmodule_t.t1, &fname_0); + _fx_N16Ast__defmodule_t v_4 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_3); + fx_copy_str(&v_4->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_0 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_0, &fname_0); @@ -8941,16 +8875,16 @@ FX_EXTERN_C int _fx_M3AstFM11compile_errE2RM5loc_tS( fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_4 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_4), _fx_catch_0); + _fx_LS v_5 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_5), _fx_catch_0); fx_str_t slit_4 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_4, v_4, &whole_msg_1, 0), _fx_catch_0); + FX_CALL(_fx_F4joinS2SLS(&slit_4, v_5, &whole_msg_1, 0), _fx_catch_0); _fx_catch_0: ; - if (v_4) { - _fx_free_LS(&v_4); + if (v_5) { + _fx_free_LS(&v_5); } } FX_CHECK_EXN(_fx_cleanup); @@ -8993,7 +8927,9 @@ FX_EXTERN_C int _fx_M3AstFM15get_source_lineS2ii(int_ m_idx_0, int_ lineno_0, fx int_ j_0 = v_2.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(_fx_g20Ast__src_lines_cache->u.t.t5, 0, j_0), _fx_cleanup); - FX_COPY_PTR(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, _fx_g20Ast__src_lines_cache->u.t.t5, j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2iLS* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, _fx_g20Ast__src_lines_cache->u.t.t5, j_0); + FX_COPY_PTR(v_3->data, &v_1); _fx_M3AstFM4SomeNt6option1LS1LS(v_1, &v_0); } else { @@ -9005,16 +8941,17 @@ FX_EXTERN_C int _fx_M3AstFM15get_source_lineS2ii(int_ m_idx_0, int_ lineno_0, fx else { _fx_LS ls_0 = 0; fx_exn_t curr_exn_0 = {0}; - fx_str_t v_3 = {0}; fx_str_t v_4 = {0}; + fx_str_t v_5 = {0}; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_catch_0); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t1, &v_3); - FX_CALL(_fx_M4FileFM9read_utf8S1S(&v_3, &v_4, 0), _fx_catch_0); - FX_CALL(_fx_M6StringFM5splitLS3SCB(&v_4, (char_)10, true, &ls_0, 0), _fx_catch_0); + _fx_N16Ast__defmodule_t v_6 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + fx_copy_str(&v_6->u.defmodule_t.t1, &v_4); + FX_CALL(_fx_M4FileFM9read_utf8S1S(&v_4, &v_5, 0), _fx_catch_0); + FX_CALL(_fx_M6StringFM5splitLS3SCB(&v_5, (char_)10, true, &ls_0, 0), _fx_catch_0); _fx_catch_0: ; - FX_FREE_STR(&v_3); FX_FREE_STR(&v_4); + FX_FREE_STR(&v_5); if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &curr_exn_0); fx_status = 0; @@ -9026,9 +8963,11 @@ FX_EXTERN_C int _fx_M3AstFM15get_source_lineS2ii(int_ m_idx_0, int_ lineno_0, fx FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2iLSi(_fx_g20Ast__src_lines_cache, m_idx_0, &idx_0, 0), _fx_catch_1); FX_CHKIDX(FX_CHKIDX1(_fx_g20Ast__src_lines_cache->u.t.t5, 0, idx_0), _fx_catch_1); - _fx_LS* v_5 = &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, _fx_g20Ast__src_lines_cache->u.t.t5, idx_0)->data; - _fx_free_LS(v_5); - FX_COPY_PTR(ls_0, v_5); + _fx_Rt20Hashmap__hashentry_t2iLS* v_7 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2iLS, _fx_g20Ast__src_lines_cache->u.t.t5, idx_0); + _fx_LS* v_8 = &v_7->data; + _fx_free_LS(v_8); + FX_COPY_PTR(ls_0, v_8); FX_COPY_PTR(ls_0, &lines_0); _fx_catch_1: ; @@ -9038,8 +8977,8 @@ FX_EXTERN_C int _fx_M3AstFM15get_source_lineS2ii(int_ m_idx_0, int_ lineno_0, fx } } FX_CHECK_EXN(_fx_cleanup); - int_ v_6 = _fx_M3AstFM6lengthi1LS(lines_0, 0); - if ((bool)((1 <= lineno_0) & (lineno_0 <= v_6))) { + int_ v_9 = _fx_M3AstFM6lengthi1LS(lines_0, 0); + if ((bool)((1 <= lineno_0) & (lineno_0 <= v_9))) { FX_COPY_PTR(lines_0, &l_0); int_ n_0 = lineno_0 - 1; for (;;) { @@ -9198,7 +9137,8 @@ FX_EXTERN_C int _fx_M3AstFM15compile_warningv2RM5loc_tS(struct _fx_R10Ast__loc_t if (loc_0->m_idx >= 0) { int_ v_4 = loc_0->m_idx; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_4), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_4))->u.defmodule_t.t1, &fname_0); + _fx_N16Ast__defmodule_t v_5 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_4); + fx_copy_str(&v_5->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_0 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_0, &fname_0); @@ -9304,11 +9244,12 @@ FX_EXTERN_C int _fx_M3AstFM10pr_verbosev1S(fx_str_t* str_0, void* fx_fv) fx_str_t eol_0 = {0}; fx_str_t v_0 = {0}; int fx_status = 0; - if (_fx_g12Options__opt.verbose) { - bool v_1; + bool v_1 = _fx_g12Options__opt.verbose; + if (v_1) { + bool v_2; fx_str_t slit_0 = FX_MAKE_STR("\n"); - v_1 = _fx_M6StringFM8endswithB2SS(str_0, &slit_0, 0); - if (v_1) { + v_2 = _fx_M6StringFM8endswithB2SS(str_0, &slit_0, 0); + if (v_2) { fx_str_t slit_1 = FX_MAKE_STR(""); fx_copy_str(&slit_1, &eol_0); } else { @@ -9363,7 +9304,8 @@ FX_EXTERN_C int _fx_M3AstFM7id2idx_Ta2i2RM4id_tRM5loc_t( if (loc_0->m_idx >= 0) { int_ v_6 = loc_0->m_idx; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_6), _fx_catch_1); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_6))->u.defmodule_t.t1, &fname_0); + _fx_N16Ast__defmodule_t v_7 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_6); + fx_copy_str(&v_7->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_1 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_1, &fname_0); @@ -9384,16 +9326,16 @@ FX_EXTERN_C int _fx_M3AstFM7id2idx_Ta2i2RM4id_tRM5loc_t( fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_7 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_7), _fx_catch_0); + _fx_LS v_8 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_8), _fx_catch_0); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_7, &whole_msg_1, 0), _fx_catch_0); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_8, &whole_msg_1, 0), _fx_catch_0); _fx_catch_0: ; - if (v_7) { - _fx_free_LS(&v_7); + if (v_8) { + _fx_free_LS(&v_8); } } FX_CHECK_EXN(_fx_catch_1); @@ -9444,12 +9386,9 @@ FX_EXTERN_C int _fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t( int_ m_0 = v_0.t0; int_ j_0 = v_0.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_0), _fx_cleanup); - FX_CHKIDX( - FX_CHKIDX1((*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0))->u.defmodule_t.t9->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N14Ast__id_info_t( - FX_PTR_1D(_fx_N14Ast__id_info_t, - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0))->u.defmodule_t.t9->u.t.t1, j_0), fx_result); + _fx_N16Ast__defmodule_t v_1 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0); + FX_CHKIDX(FX_CHKIDX1(v_1->u.defmodule_t.t9->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N14Ast__id_info_t(FX_PTR_1D(_fx_N14Ast__id_info_t, v_1->u.defmodule_t.t9->u.t.t1, j_0), fx_result); } _fx_cleanup: ; @@ -9481,7 +9420,8 @@ FX_EXTERN_C int _fx_M3AstFM13get_id_prefixi1S(fx_str_t* s_0, int_* fx_result, vo int_ h_idx_0; FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, s_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; if (idx_0 >= 0) { *fx_result = idx_0; } @@ -9514,24 +9454,27 @@ FX_EXTERN_C int _fx_M3AstFM13get_id_prefixi1S(fx_str_t* s_0, int_* fx_result, vo FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_5 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_5); - fx_copy_arr(&new_data_0, v_5); + fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_data_0, v_6); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_6 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); - FX_FREE_STR(v_6); - fx_copy_str(s_0, v_6); + fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + FX_FREE_STR(v_7); + fx_copy_str(s_0, v_7); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_8 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_8->data = n0_0; *fx_result = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_7 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_7), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_7))->u.defmodule_t.t1, &fname_0); + int_ v_9 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_9), _fx_cleanup); + _fx_N16Ast__defmodule_t v_10 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_9); + fx_copy_str(&v_10->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_0 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_0, &fname_0); @@ -9551,16 +9494,16 @@ FX_EXTERN_C int _fx_M3AstFM13get_id_prefixi1S(fx_str_t* s_0, int_* fx_result, vo fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_8 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_8), _fx_catch_1); + _fx_LS v_11 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_11), _fx_catch_1); fx_str_t slit_4 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_4, v_8, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_4, v_11, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_8) { - _fx_free_LS(&v_8); + if (v_11) { + _fx_free_LS(&v_11); } } FX_CHECK_EXN(_fx_cleanup); @@ -9604,10 +9547,11 @@ FX_EXTERN_C int _fx_M3AstFM6get_idRM4id_t1S(fx_str_t* s_0, struct _fx_R9Ast__id_ int_ h_idx_0; FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, s_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -9638,24 +9582,27 @@ FX_EXTERN_C int _fx_M3AstFM6get_idRM4id_t1S(fx_str_t* s_0, struct _fx_R9Ast__id_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); - FX_FREE_STR(v_7); - fx_copy_str(s_0, v_7); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + FX_FREE_STR(v_8); + fx_copy_str(s_0, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_0 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_0, &fname_0); @@ -9675,23 +9622,23 @@ FX_EXTERN_C int _fx_M3AstFM6get_idRM4id_t1S(fx_str_t* s_0, struct _fx_R9Ast__id_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_4 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_4, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_4, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -9730,10 +9677,11 @@ FX_EXTERN_C int _fx_M3AstFM6gen_idRM4id_t2iS(int_ m_idx_0, fx_str_t* s_0, struct int_ h_idx_0; FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, s_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -9764,24 +9712,27 @@ FX_EXTERN_C int _fx_M3AstFM6gen_idRM4id_t2iS(int_ m_idx_0, fx_str_t* s_0, struct FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); - FX_FREE_STR(v_7); - fx_copy_str(s_0, v_7); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + FX_FREE_STR(v_8); + fx_copy_str(s_0, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_0 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_0, &fname_0); @@ -9801,25 +9752,25 @@ FX_EXTERN_C int _fx_M3AstFM6gen_idRM4id_t2iS(int_ m_idx_0, fx_str_t* s_0, struct fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_4 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_4, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_4, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - int_ v_10; - FX_CALL(_fx_M3AstFM10new_id_idxi1i(m_idx_0, &v_10, 0), _fx_cleanup); - _fx_R9Ast__id_t rec_0 = { m_idx_0, v_5, v_10 }; + int_ v_13; + FX_CALL(_fx_M3AstFM10new_id_idxi1i(m_idx_0, &v_13, 0), _fx_cleanup); + _fx_R9Ast__id_t rec_0 = { m_idx_0, v_6, v_13 }; *fx_result = rec_0; _fx_cleanup: ; @@ -9936,14 +9887,11 @@ _fx_endmatch_0: ; int_ m_idx_0 = v_5.t0; int_ idx_0 = v_5.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - FX_CHKIDX( - FX_CHKIDX1((*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t9->u.t.t1, 0, idx_0), - _fx_cleanup); - _fx_N14Ast__id_info_t* v_6 = - FX_PTR_1D(_fx_N14Ast__id_info_t, - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t9->u.t.t1, idx_0); - _fx_free_N14Ast__id_info_t(v_6); - _fx_copy_N14Ast__id_info_t(n_0, v_6); + _fx_N16Ast__defmodule_t v_6 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + FX_CHKIDX(FX_CHKIDX1(v_6->u.defmodule_t.t9->u.t.t1, 0, idx_0), _fx_cleanup); + _fx_N14Ast__id_info_t* v_7 = FX_PTR_1D(_fx_N14Ast__id_info_t, v_6->u.defmodule_t.t9->u.t.t1, idx_0); + _fx_free_N14Ast__id_info_t(v_7); + _fx_copy_N14Ast__id_info_t(n_0, v_7); _fx_cleanup: ; return fx_status; @@ -10574,12 +10522,9 @@ FX_EXTERN_C int _fx_M3AstFM10get_moduleN16Ast__defmodule_t2RM4id_tRM5loc_t( int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_0), _fx_cleanup); - FX_CHKIDX( - FX_CHKIDX1((*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0))->u.defmodule_t.t9->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N14Ast__id_info_t( - FX_PTR_1D(_fx_N14Ast__id_info_t, - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0))->u.defmodule_t.t9->u.t.t1, j_0), &v_0); + _fx_N16Ast__defmodule_t v_2 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.defmodule_t.t9->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N14Ast__id_info_t(FX_PTR_1D(_fx_N14Ast__id_info_t, v_2->u.defmodule_t.t9->u.t.t1, j_0), &v_0); } if (v_0.tag == 8) { int_ m_idx_0 = v_0.u.IdModule; @@ -10589,15 +10534,15 @@ FX_EXTERN_C int _fx_M3AstFM10get_moduleN16Ast__defmodule_t2RM4id_tRM5loc_t( _fx_catch_0: ; } else { - fx_str_t v_2 = {0}; - fx_str_t fname_0 = {0}; fx_str_t v_3 = {0}; + fx_str_t fname_0 = {0}; fx_str_t v_4 = {0}; fx_str_t v_5 = {0}; + fx_str_t v_6 = {0}; fx_str_t whole_msg_0 = {0}; _fx_LS all_compile_err_ctx_0 = 0; fx_str_t whole_msg_1 = {0}; - fx_exn_t v_6 = {0}; + fx_exn_t v_7 = {0}; bool t_0; if ((bool)((m_id_0->m == _fx_g9Ast__noid.m) & (m_id_0->i == _fx_g9Ast__noid.i))) { t_0 = (bool)((m_id_0->m == 0) | (m_id_0->j == _fx_g9Ast__noid.j)); @@ -10606,30 +10551,31 @@ FX_EXTERN_C int _fx_M3AstFM10get_moduleN16Ast__defmodule_t2RM4id_tRM5loc_t( t_0 = false; } if (t_0) { - fx_str_t slit_0 = FX_MAKE_STR(""); fx_copy_str(&slit_0, &v_2); + fx_str_t slit_0 = FX_MAKE_STR(""); fx_copy_str(&slit_0, &v_3); } else { - int_ v_7 = m_id_0->i; - FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_7), _fx_catch_2); - fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_7), &v_2); + int_ v_8 = m_id_0->i; + FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_8), _fx_catch_2); + fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_8), &v_3); } if (loc_0->m_idx >= 0) { - int_ v_8 = loc_0->m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_catch_2); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_9 = loc_0->m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_9), _fx_catch_2); + _fx_N16Ast__defmodule_t v_10 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_9); + fx_copy_str(&v_10->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_1 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_1, &fname_0); } - FX_CALL(_fx_F6stringS1i(loc_0->line0, &v_3, 0), _fx_catch_2); - FX_CALL(_fx_F6stringS1i(loc_0->col0, &v_4, 0), _fx_catch_2); - FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(loc_0, &v_5, 0), _fx_catch_2); + FX_CALL(_fx_F6stringS1i(loc_0->line0, &v_4, 0), _fx_catch_2); + FX_CALL(_fx_F6stringS1i(loc_0->col0, &v_5, 0), _fx_catch_2); + FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(loc_0, &v_6, 0), _fx_catch_2); fx_str_t slit_2 = FX_MAKE_STR(":"); fx_str_t slit_3 = FX_MAKE_STR(":"); fx_str_t slit_4 = FX_MAKE_STR(": error: identifier \'"); fx_str_t slit_5 = FX_MAKE_STR("\' is not a module"); { - const fx_str_t strs_0[] = { fname_0, slit_2, v_3, slit_3, v_4, slit_4, v_2, slit_5, v_5 }; + const fx_str_t strs_0[] = { fname_0, slit_2, v_4, slit_3, v_5, slit_4, v_3, slit_5, v_6 }; FX_CALL(fx_strjoin(0, 0, 0, strs_0, 9, &whole_msg_0), _fx_catch_2); } FX_COPY_PTR(_fx_g24Ast__all_compile_err_ctx, &all_compile_err_ctx_0); @@ -10637,34 +10583,34 @@ FX_EXTERN_C int _fx_M3AstFM10get_moduleN16Ast__defmodule_t2RM4id_tRM5loc_t( fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_11 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_11), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_11, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_11) { + _fx_free_LS(&v_11); } } FX_CHECK_EXN(_fx_catch_2); - FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(loc_0, &whole_msg_1, &v_6), _fx_catch_2); - FX_THROW(&v_6, true, _fx_catch_2); + FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(loc_0, &whole_msg_1, &v_7), _fx_catch_2); + FX_THROW(&v_7, true, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_6); + fx_free_exn(&v_7); FX_FREE_STR(&whole_msg_1); if (all_compile_err_ctx_0) { _fx_free_LS(&all_compile_err_ctx_0); } FX_FREE_STR(&whole_msg_0); + FX_FREE_STR(&v_6); FX_FREE_STR(&v_5); FX_FREE_STR(&v_4); - FX_FREE_STR(&v_3); FX_FREE_STR(&fname_0); - FX_FREE_STR(&v_2); + FX_FREE_STR(&v_3); } _fx_cleanup: ; @@ -10676,7 +10622,8 @@ FX_EXTERN_C int _fx_M3AstFM15get_module_nameRM4id_t1i(int_ m_0, struct _fx_R9Ast { int fx_status = 0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_0), _fx_cleanup); - *fx_result = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0))->u.defmodule_t.t0; + _fx_N16Ast__defmodule_t v_0 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0); + *fx_result = v_0->u.defmodule_t.t0; _fx_cleanup: ; return fx_status; @@ -10689,8 +10636,8 @@ FX_EXTERN_C int _fx_M3AstFM14get_module_envRt6Map__t2RM4id_tLN16Ast__env_entry_t { int fx_status = 0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_0), _fx_cleanup); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t( - &(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0))->u.defmodule_t.t6, fx_result); + _fx_N16Ast__defmodule_t v_0 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0->u.defmodule_t.t6, fx_result); _fx_cleanup: ; return fx_status; @@ -10709,8 +10656,9 @@ FX_EXTERN_C int _fx_M3AstFM11find_modulei2RM4id_tS( _fx_Nt6option1i v_1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(_fx_g21Ast__all_modules_hash->u.t.t5, 0, j_0), _fx_cleanup); - _fx_M3AstFM4SomeNt6option1i1i(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g21Ast__all_modules_hash->u.t.t5, j_0)->data, - &v_1); + _fx_Rt20Hashmap__hashentry_t2Si* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g21Ast__all_modules_hash->u.t.t5, j_0); + _fx_M3AstFM4SomeNt6option1i1i(v_2->data, &v_1); } else { v_1 = _fx_g11Ast__None6_; @@ -10719,40 +10667,40 @@ FX_EXTERN_C int _fx_M3AstFM11find_modulei2RM4id_tS( *fx_result = v_1.u.Some; } else { - fx_arr_t v_2 = {0}; - _fx_Nt9Dynvec__t1N14Ast__id_info_t v_3 = 0; + fx_arr_t v_3 = {0}; + _fx_Nt9Dynvec__t1N14Ast__id_info_t v_4 = 0; _fx_N16Ast__defmodule_t newmodule_0 = 0; fx_arr_t saved_modules_0 = {0}; - fx_arr_t v_4 = {0}; + fx_arr_t v_5 = {0}; int_ m_idx_0 = FX_ARR_SIZE(_fx_g16Ast__all_modules, 0); _fx_N14Ast__id_info_t* dstptr_0 = 0; { const int_ shape_0[] = { 0 }; FX_CALL( fx_make_arr(1, shape_0, sizeof(_fx_N14Ast__id_info_t), (fx_free_t)_fx_free_N14Ast__id_info_t, - (fx_copy_t)_fx_copy_N14Ast__id_info_t, 0, &v_2), _fx_catch_1); + (fx_copy_t)_fx_copy_N14Ast__id_info_t, 0, &v_3), _fx_catch_1); } - dstptr_0 = (_fx_N14Ast__id_info_t*)v_2.data; + dstptr_0 = (_fx_N14Ast__id_info_t*)v_3.data; for (int_ i_0 = 0; i_0 < 0; i_0++, dstptr_0++) { _fx_copy_N14Ast__id_info_t(&_fx_g11Ast__IdNone, dstptr_0); } FX_CALL( - _fx_M3AstFM1tNt9Dynvec__t1N14Ast__id_info_t3iA1N14Ast__id_info_tN14Ast__id_info_t(0, &v_2, &_fx_g11Ast__IdNone, &v_3), + _fx_M3AstFM1tNt9Dynvec__t1N14Ast__id_info_t3iA1N14Ast__id_info_tN14Ast__id_info_t(0, &v_3, &_fx_g11Ast__IdNone, &v_4), _fx_catch_1); FX_CALL( _fx_M3AstFM11defmodule_tN16Ast__defmodule_t10RM4id_tSiBLN10Ast__exp_tLiRt6Map__t2RM4id_tLN16Ast__env_entry_tBiNt9Dynvec__t1N14Ast__id_info_t( - mname_0, mfname_0, m_idx_0, true, 0, 0, &_fx_g14Ast__empty_env, false, -1, v_3, &newmodule_0), _fx_catch_1); + mname_0, mfname_0, m_idx_0, true, 0, 0, &_fx_g14Ast__empty_env, false, -1, v_4, &newmodule_0), _fx_catch_1); fx_copy_arr(&_fx_g16Ast__all_modules, &saved_modules_0); _fx_N16Ast__defmodule_t* dstptr_1 = 0; - int_ v_5 = m_idx_0 + 1; + int_ v_6 = m_idx_0 + 1; { - const int_ shape_1[] = { v_5 }; + const int_ shape_1[] = { v_6 }; FX_CALL( fx_make_arr(1, shape_1, sizeof(_fx_N16Ast__defmodule_t), (fx_free_t)_fx_free_N16Ast__defmodule_t, - (fx_copy_t)fx_copy_ptr, 0, &v_4), _fx_catch_1); + (fx_copy_t)fx_copy_ptr, 0, &v_5), _fx_catch_1); } - dstptr_1 = (_fx_N16Ast__defmodule_t*)v_4.data; - for (int_ i_1 = 0; i_1 < v_5; i_1++, dstptr_1++) { + dstptr_1 = (_fx_N16Ast__defmodule_t*)v_5.data; + for (int_ i_1 = 0; i_1 < v_6; i_1++, dstptr_1++) { _fx_N16Ast__defmodule_t t_0 = 0; if (i_1 < m_idx_0) { FX_CHKIDX(FX_CHKIDX1(saved_modules_0, 0, i_1), _fx_catch_0); @@ -10770,24 +10718,26 @@ FX_EXTERN_C int _fx_M3AstFM11find_modulei2RM4id_tS( FX_CHECK_EXN(_fx_catch_1); } FX_FREE_ARR(&_fx_g16Ast__all_modules); - fx_copy_arr(&v_4, &_fx_g16Ast__all_modules); + fx_copy_arr(&v_5, &_fx_g16Ast__all_modules); int_ idx_0; FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g21Ast__all_modules_hash, mfname_0, &idx_0, 0), _fx_catch_1); FX_CHKIDX(FX_CHKIDX1(_fx_g21Ast__all_modules_hash->u.t.t5, 0, idx_0), _fx_catch_1); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g21Ast__all_modules_hash->u.t.t5, idx_0)->data = m_idx_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_7 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g21Ast__all_modules_hash->u.t.t5, idx_0); + v_7->data = m_idx_0; *fx_result = m_idx_0; _fx_catch_1: ; - FX_FREE_ARR(&v_4); + FX_FREE_ARR(&v_5); FX_FREE_ARR(&saved_modules_0); if (newmodule_0) { _fx_free_N16Ast__defmodule_t(&newmodule_0); } - if (v_3) { - _fx_free_Nt9Dynvec__t1N14Ast__id_info_t(&v_3); + if (v_4) { + _fx_free_Nt9Dynvec__t1N14Ast__id_info_t(&v_4); } - FX_FREE_ARR(&v_2); + FX_FREE_ARR(&v_3); } _fx_cleanup: ; @@ -10798,9 +10748,11 @@ FX_EXTERN_C int _fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(int_ m_idx_0, stru { int fx_status = 0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - int_ new_block_idx_0 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 + 1; + _fx_N16Ast__defmodule_t v_0 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + int_ new_block_idx_0 = v_0->u.defmodule_t.t8 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 = new_block_idx_0; + _fx_N16Ast__defmodule_t v_1 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + v_1->u.defmodule_t.t8 = new_block_idx_0; _fx_M3AstFM7ScBlockN12Ast__scope_t1i(new_block_idx_0, fx_result); _fx_cleanup: ; @@ -10816,9 +10768,11 @@ FX_EXTERN_C int _fx_M3AstFM14new_loop_scopeN12Ast__scope_t3iBB( { int fx_status = 0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - int_ new_block_idx_0 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 + 1; + _fx_N16Ast__defmodule_t v_0 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + int_ new_block_idx_0 = v_0->u.defmodule_t.t8 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 = new_block_idx_0; + _fx_N16Ast__defmodule_t v_1 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + v_1->u.defmodule_t.t8 = new_block_idx_0; _fx_M3AstFM6ScLoopN12Ast__scope_t3BBi(nested_0, parallel_0, new_block_idx_0, fx_result); _fx_cleanup: ; @@ -10829,9 +10783,11 @@ FX_EXTERN_C int _fx_M3AstFM13new_map_scopeN12Ast__scope_t1i(int_ m_idx_0, struct { int fx_status = 0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - int_ new_block_idx_0 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 + 1; + _fx_N16Ast__defmodule_t v_0 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + int_ new_block_idx_0 = v_0->u.defmodule_t.t8 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 = new_block_idx_0; + _fx_N16Ast__defmodule_t v_1 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + v_1->u.defmodule_t.t8 = new_block_idx_0; _fx_M3AstFM5ScMapN12Ast__scope_t1i(new_block_idx_0, fx_result); _fx_cleanup: ; @@ -10845,9 +10801,11 @@ FX_EXTERN_C int _fx_M3AstFM17new_arr_map_scopeN12Ast__scope_t1i( { int fx_status = 0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - int_ new_block_idx_0 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 + 1; + _fx_N16Ast__defmodule_t v_0 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + int_ new_block_idx_0 = v_0->u.defmodule_t.t8 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 = new_block_idx_0; + _fx_N16Ast__defmodule_t v_1 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + v_1->u.defmodule_t.t8 = new_block_idx_0; _fx_M3AstFM8ScArrMapN12Ast__scope_t1i(new_block_idx_0, fx_result); _fx_cleanup: ; @@ -10858,9 +10816,11 @@ FX_EXTERN_C int _fx_M3AstFM14new_fold_scopeN12Ast__scope_t1i(int_ m_idx_0, struc { int fx_status = 0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - int_ new_block_idx_0 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 + 1; + _fx_N16Ast__defmodule_t v_0 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + int_ new_block_idx_0 = v_0->u.defmodule_t.t8 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 = new_block_idx_0; + _fx_N16Ast__defmodule_t v_1 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + v_1->u.defmodule_t.t8 = new_block_idx_0; _fx_M3AstFM6ScFoldN12Ast__scope_t1i(new_block_idx_0, fx_result); _fx_cleanup: ; @@ -10871,9 +10831,11 @@ FX_EXTERN_C int _fx_M3AstFM13new_try_scopeN12Ast__scope_t1i(int_ m_idx_0, struct { int fx_status = 0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - int_ new_block_idx_0 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 + 1; + _fx_N16Ast__defmodule_t v_0 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + int_ new_block_idx_0 = v_0->u.defmodule_t.t8 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t8 = new_block_idx_0; + _fx_N16Ast__defmodule_t v_1 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + v_1->u.defmodule_t.t8 = new_block_idx_0; _fx_M3AstFM5ScTryN12Ast__scope_t1i(new_block_idx_0, fx_result); _fx_cleanup: ; @@ -11011,10 +10973,11 @@ FX_EXTERN_C int _fx_M3AstFM18get_qualified_nameS2SLN12Ast__scope_t( if (v_1->tag == 10) { int_ m_0 = v_1->u.ScModule; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_0), _fx_catch_3); - _fx_R9Ast__id_t v_2 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0))->u.defmodule_t.t0; + _fx_N16Ast__defmodule_t v_2 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0); + _fx_R9Ast__id_t v_3 = v_2->u.defmodule_t.t0; bool t_0; - if ((bool)((v_2.m == _fx_g9Ast__noid.m) & (v_2.i == _fx_g9Ast__noid.i))) { - t_0 = (bool)((v_2.m == 0) | (v_2.j == _fx_g9Ast__noid.j)); + if ((bool)((v_3.m == _fx_g9Ast__noid.m) & (v_3.i == _fx_g9Ast__noid.i))) { + t_0 = (bool)((v_3.m == 0) | (v_3.j == _fx_g9Ast__noid.j)); } else { t_0 = false; @@ -11023,9 +10986,9 @@ FX_EXTERN_C int _fx_M3AstFM18get_qualified_nameS2SLN12Ast__scope_t( fx_str_t slit_0 = FX_MAKE_STR(""); fx_copy_str(&slit_0, &v_0); } else { - int_ v_3 = v_2.i; - FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_3), _fx_catch_3); - fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_3), &v_0); + int_ v_4 = v_3.i; + FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_4), _fx_catch_3); + fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_4), &v_0); } fx_str_t slit_1 = FX_MAKE_STR("Builtins"); if (_fx_F6__eq__B2SS(&v_0, &slit_1, 0)) { @@ -11039,42 +11002,43 @@ FX_EXTERN_C int _fx_M3AstFM18get_qualified_nameS2SLN12Ast__scope_t( } } if (sc_2 != 0) { - _fx_N12Ast__scope_t* v_4 = &sc_2->hd; - if (v_4->tag == 10) { - fx_str_t v_5 = {0}; + _fx_N12Ast__scope_t* v_5 = &sc_2->hd; + if (v_5->tag == 10) { fx_str_t v_6 = {0}; - int_ m_1 = v_4->u.ScModule; + fx_str_t v_7 = {0}; + int_ m_1 = v_5->u.ScModule; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_1), _fx_catch_1); - _fx_R9Ast__id_t v_7 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_1))->u.defmodule_t.t0; + _fx_N16Ast__defmodule_t v_8 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_1); + _fx_R9Ast__id_t v_9 = v_8->u.defmodule_t.t0; bool t_1; - if ((bool)((v_7.m == _fx_g9Ast__noid.m) & (v_7.i == _fx_g9Ast__noid.i))) { - t_1 = (bool)((v_7.m == 0) | (v_7.j == _fx_g9Ast__noid.j)); + if ((bool)((v_9.m == _fx_g9Ast__noid.m) & (v_9.i == _fx_g9Ast__noid.i))) { + t_1 = (bool)((v_9.m == 0) | (v_9.j == _fx_g9Ast__noid.j)); } else { t_1 = false; } if (t_1) { - fx_str_t slit_2 = FX_MAKE_STR(""); fx_copy_str(&slit_2, &v_5); + fx_str_t slit_2 = FX_MAKE_STR(""); fx_copy_str(&slit_2, &v_6); } else { - int_ v_8 = v_7.i; - FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_8), _fx_catch_1); - fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_8), &v_5); + int_ v_10 = v_9.i; + FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_10), _fx_catch_1); + fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_10), &v_6); } fx_str_t slit_3 = FX_MAKE_STR("."); { - const fx_str_t strs_0[] = { v_5, slit_3, name_2 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_6), _fx_catch_1); + const fx_str_t strs_0[] = { v_6, slit_3, name_2 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_7), _fx_catch_1); } FX_FREE_STR(&name_1); - fx_copy_str(&v_6, &name_1); + fx_copy_str(&v_7, &name_1); _fx_LN12Ast__scope_t* r_0 = &sc_2->tl; FX_FREE_LIST_SIMPLE(&sc_1); FX_COPY_PTR(*r_0, &sc_1); _fx_catch_1: ; + FX_FREE_STR(&v_7); FX_FREE_STR(&v_6); - FX_FREE_STR(&v_5); goto _fx_endmatch_0; } } @@ -11155,10 +11119,11 @@ FX_EXTERN_C int _fx_M3AstFM13get_bare_nameRM4id_t1RM4id_t( int_ h_idx_0; FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &v_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_7; + _fx_Rt20Hashmap__hashentry_t2Si* v_7 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_7->data; + int_ v_8; if (idx_0 >= 0) { - v_7 = idx_0; + v_8 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_1); @@ -11189,24 +11154,27 @@ FX_EXTERN_C int _fx_M3AstFM13get_bare_nameRM4id_t1RM4id_t( FX_FREE_STR(&t_1); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_8 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_8); - fx_copy_arr(&new_data_0, v_8); + fx_arr_t* v_9 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_9); + fx_copy_arr(&new_data_0, v_9); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_9 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); - FX_FREE_STR(v_9); - fx_copy_str(&v_0, v_9); + fx_str_t* v_10 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + FX_FREE_STR(v_10); + fx_copy_str(&v_0, v_10); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_7 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_11 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_11->data = n0_0; + v_8 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_10 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10))->u.defmodule_t.t1, &fname_0); + int_ v_12 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_12), _fx_cleanup); + _fx_N16Ast__defmodule_t v_13 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_12); + fx_copy_str(&v_13->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_1 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_1, &fname_0); @@ -11226,23 +11194,23 @@ FX_EXTERN_C int _fx_M3AstFM13get_bare_nameRM4id_t1RM4id_t( fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_11 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_11), _fx_catch_1); + _fx_LS v_14 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_14), _fx_catch_1); fx_str_t slit_5 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_5, v_11, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_5, v_14, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_11) { - _fx_free_LS(&v_11); + if (v_14) { + _fx_free_LS(&v_14); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_5), _fx_cleanup); FX_THROW(&v_5, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_7, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_8, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -11440,7 +11408,8 @@ FX_EXTERN_C int _fx_M3AstFM14get_idinfo_typN10Ast__typ_t2N14Ast__id_info_tRM5loc if (loc_0->m_idx >= 0) { int_ v_9 = loc_0->m_idx; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_9), _fx_catch_2); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_9))->u.defmodule_t.t1, &fname_0); + _fx_N16Ast__defmodule_t v_10 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_9); + fx_copy_str(&v_10->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_0 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_0, &fname_0); @@ -11460,16 +11429,16 @@ FX_EXTERN_C int _fx_M3AstFM14get_idinfo_typN10Ast__typ_t2N14Ast__id_info_tRM5loc fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_10 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_10), _fx_catch_1); + _fx_LS v_11 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_11), _fx_catch_1); fx_str_t slit_4 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_4, v_10, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_4, v_11, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_10) { - _fx_free_LS(&v_10); + if (v_11) { + _fx_free_LS(&v_11); } } FX_CHECK_EXN(_fx_catch_2); @@ -12032,12 +12001,11 @@ FX_EXTERN_C int _fx_M3AstFM20get_numeric_typ_sizei2N10Ast__typ_tB( result_0 = -1; FX_BREAK(_fx_catch_12); } else { - int_ __fold_result___0 = 0; + int_ sz_0 = 0; FX_COPY_PTR(v_0->u.TypTuple, &tl_0); _fx_LN10Ast__typ_t lst_0 = tl_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_N10Ast__typ_t t_6 = lst_0->hd; - int_ sz_0 = __fold_result___0; int_ szj_0; FX_CALL(_fx_M3AstFM20get_numeric_typ_sizei2N10Ast__typ_tB(t_6, true, &szj_0, 0), _fx_catch_11); bool t_7; @@ -12054,12 +12022,12 @@ FX_EXTERN_C int _fx_M3AstFM20get_numeric_typ_sizei2N10Ast__typ_tB( else { t_8 = sz_0 + szj_0; } - __fold_result___0 = t_8; + sz_0 = t_8; _fx_catch_11: ; FX_CHECK_EXN(_fx_catch_12); } - result_0 = __fold_result___0; + result_0 = sz_0; FX_BREAK(_fx_catch_12); } @@ -12574,10 +12542,11 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_aposRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_str_t slit_0 = FX_MAKE_STR("__apos__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -12608,25 +12577,28 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_aposRM4id_t0(struct _fx_R9Ast__id_t* fx_re FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__apos__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -12646,23 +12618,23 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_aposRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -12702,10 +12674,11 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_addRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_str_t slit_0 = FX_MAKE_STR("__add__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -12736,25 +12709,28 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_addRM4id_t0(struct _fx_R9Ast__id_t* fx_res FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__add__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -12774,23 +12750,23 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_addRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -12830,10 +12806,11 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_subRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_str_t slit_0 = FX_MAKE_STR("__sub__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -12864,25 +12841,28 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_subRM4id_t0(struct _fx_R9Ast__id_t* fx_res FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__sub__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -12902,23 +12882,23 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_subRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -12958,10 +12938,11 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_mulRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_str_t slit_0 = FX_MAKE_STR("__mul__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -12992,25 +12973,28 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_mulRM4id_t0(struct _fx_R9Ast__id_t* fx_res FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__mul__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -13030,23 +13014,23 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_mulRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -13086,10 +13070,11 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_divRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_str_t slit_0 = FX_MAKE_STR("__div__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -13120,25 +13105,28 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_divRM4id_t0(struct _fx_R9Ast__id_t* fx_res FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__div__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -13158,23 +13146,23 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_divRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -13214,10 +13202,11 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_rdivRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_str_t slit_0 = FX_MAKE_STR("__rdiv__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -13248,25 +13237,28 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_rdivRM4id_t0(struct _fx_R9Ast__id_t* fx_re FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__rdiv__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -13286,23 +13278,23 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_rdivRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -13342,10 +13334,11 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_modRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_str_t slit_0 = FX_MAKE_STR("__mod__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -13376,25 +13369,28 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_modRM4id_t0(struct _fx_R9Ast__id_t* fx_res FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__mod__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -13414,23 +13410,23 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_modRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -13470,10 +13466,11 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_powRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_str_t slit_0 = FX_MAKE_STR("__pow__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -13504,25 +13501,28 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_powRM4id_t0(struct _fx_R9Ast__id_t* fx_res FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__pow__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -13542,23 +13542,23 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_powRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -13598,10 +13598,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_addRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__dot_add__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -13632,25 +13633,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_addRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_add__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -13670,23 +13674,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_addRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -13726,10 +13730,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_subRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__dot_sub__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -13760,25 +13765,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_subRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_sub__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -13798,23 +13806,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_subRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -13854,10 +13862,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_mulRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__dot_mul__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -13888,25 +13897,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_mulRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_mul__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -13926,23 +13938,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_mulRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -13982,10 +13994,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_divRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__dot_div__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -14016,25 +14029,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_divRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_div__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -14054,23 +14070,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_divRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -14110,10 +14126,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_modRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__dot_mod__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -14144,25 +14161,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_modRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_mod__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -14182,23 +14202,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_modRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -14238,10 +14258,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_powRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__dot_pow__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -14272,25 +14293,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_powRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_pow__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -14310,23 +14334,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_powRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -14366,10 +14390,11 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_shlRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_str_t slit_0 = FX_MAKE_STR("__shl__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -14400,25 +14425,28 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_shlRM4id_t0(struct _fx_R9Ast__id_t* fx_res FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__shl__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -14438,23 +14466,23 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_shlRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -14494,10 +14522,11 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_shrRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_str_t slit_0 = FX_MAKE_STR("__shr__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -14528,25 +14557,28 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_shrRM4id_t0(struct _fx_R9Ast__id_t* fx_res FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__shr__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -14566,23 +14598,23 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_shrRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -14622,10 +14654,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_bit_andRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__bit_and__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -14656,25 +14689,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_bit_andRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__bit_and__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -14694,23 +14730,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_bit_andRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -14750,10 +14786,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_bit_orRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("__bit_or__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -14784,25 +14821,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_bit_orRM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__bit_or__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -14822,23 +14862,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_bit_orRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -14878,10 +14918,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_bit_xorRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__bit_xor__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -14912,25 +14953,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_bit_xorRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__bit_xor__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -14950,23 +14994,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_bit_xorRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -15006,10 +15050,11 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_cmpRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_str_t slit_0 = FX_MAKE_STR("__cmp__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -15040,25 +15085,28 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_cmpRM4id_t0(struct _fx_R9Ast__id_t* fx_res FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__cmp__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -15078,23 +15126,23 @@ FX_EXTERN_C int _fx_M3AstFM12fname_op_cmpRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -15134,10 +15182,11 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_eqRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_str_t slit_0 = FX_MAKE_STR("__eq__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -15168,25 +15217,28 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_eqRM4id_t0(struct _fx_R9Ast__id_t* fx_resu FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__eq__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -15206,23 +15258,23 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_eqRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -15262,10 +15314,11 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_neRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_str_t slit_0 = FX_MAKE_STR("__ne__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -15296,25 +15349,28 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_neRM4id_t0(struct _fx_R9Ast__id_t* fx_resu FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__ne__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -15334,23 +15390,23 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_neRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -15390,10 +15446,11 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_ltRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_str_t slit_0 = FX_MAKE_STR("__lt__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -15424,25 +15481,28 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_ltRM4id_t0(struct _fx_R9Ast__id_t* fx_resu FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__lt__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -15462,23 +15522,23 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_ltRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -15518,10 +15578,11 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_gtRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_str_t slit_0 = FX_MAKE_STR("__gt__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -15552,25 +15613,28 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_gtRM4id_t0(struct _fx_R9Ast__id_t* fx_resu FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__gt__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -15590,23 +15654,23 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_gtRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -15646,10 +15710,11 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_leRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_str_t slit_0 = FX_MAKE_STR("__le__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -15680,25 +15745,28 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_leRM4id_t0(struct _fx_R9Ast__id_t* fx_resu FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__le__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -15718,23 +15786,23 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_leRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -15774,10 +15842,11 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_geRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_str_t slit_0 = FX_MAKE_STR("__ge__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -15808,25 +15877,28 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_geRM4id_t0(struct _fx_R9Ast__id_t* fx_resu FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__ge__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -15846,23 +15918,23 @@ FX_EXTERN_C int _fx_M3AstFM11fname_op_geRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -15902,10 +15974,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_cmpRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__dot_cmp__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -15936,25 +16009,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_cmpRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_cmp__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -15974,23 +16050,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_dot_cmpRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -16030,10 +16106,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_eqRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("__dot_eq__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -16064,25 +16141,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_eqRM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_eq__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -16102,23 +16182,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_eqRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -16158,10 +16238,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_neRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("__dot_ne__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -16192,25 +16273,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_neRM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_ne__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -16230,23 +16314,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_neRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -16286,10 +16370,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_ltRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("__dot_lt__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -16320,25 +16405,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_ltRM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_lt__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -16358,23 +16446,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_ltRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -16414,10 +16502,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_gtRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("__dot_gt__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -16448,25 +16537,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_gtRM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_gt__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -16486,23 +16578,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_gtRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -16542,10 +16634,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_leRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("__dot_le__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -16576,25 +16669,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_leRM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_le__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -16614,23 +16710,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_leRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -16670,10 +16766,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_geRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("__dot_ge__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -16704,25 +16801,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_geRM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_ge__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -16742,23 +16842,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_dot_geRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -16798,10 +16898,11 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_sameRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_str_t slit_0 = FX_MAKE_STR("__same__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -16832,25 +16933,28 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_sameRM4id_t0(struct _fx_R9Ast__id_t* fx_re FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__same__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -16870,23 +16974,23 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_sameRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -16926,10 +17030,11 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_plusRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_str_t slit_0 = FX_MAKE_STR("__plus__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -16960,25 +17065,28 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_plusRM4id_t0(struct _fx_R9Ast__id_t* fx_re FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__plus__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -16998,23 +17106,23 @@ FX_EXTERN_C int _fx_M3AstFM13fname_op_plusRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -17054,10 +17162,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_negateRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("__negate__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -17088,25 +17197,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_negateRM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__negate__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -17126,23 +17238,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_op_negateRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -17182,10 +17294,11 @@ FX_EXTERN_C int _fx_M3AstFM18fname_op_dot_minusRM4id_t0(struct _fx_R9Ast__id_t* fx_str_t slit_0 = FX_MAKE_STR("__dot_minus__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -17216,25 +17329,28 @@ FX_EXTERN_C int _fx_M3AstFM18fname_op_dot_minusRM4id_t0(struct _fx_R9Ast__id_t* FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__dot_minus__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -17254,23 +17370,23 @@ FX_EXTERN_C int _fx_M3AstFM18fname_op_dot_minusRM4id_t0(struct _fx_R9Ast__id_t* fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -17310,10 +17426,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_bit_notRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__bit_not__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -17344,25 +17461,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_bit_notRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__bit_not__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -17382,23 +17502,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_bit_notRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -17438,10 +17558,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_addRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__aug_add__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -17472,25 +17593,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_addRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_add__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -17510,23 +17634,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_addRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -17566,10 +17690,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_subRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__aug_sub__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -17600,25 +17725,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_subRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_sub__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -17638,23 +17766,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_subRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -17694,10 +17822,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_mulRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__aug_mul__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -17728,25 +17857,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_mulRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_mul__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -17766,23 +17898,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_mulRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -17822,10 +17954,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_divRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__aug_div__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -17856,25 +17989,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_divRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_div__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -17894,23 +18030,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_divRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -17950,10 +18086,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_modRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__aug_mod__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -17984,25 +18121,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_modRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_mod__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -18022,23 +18162,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_modRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -18078,10 +18218,11 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_bit_andRM4id_t0(struct _fx_R9Ast__id_t fx_str_t slit_0 = FX_MAKE_STR("__aug_bit_and__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -18112,25 +18253,28 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_bit_andRM4id_t0(struct _fx_R9Ast__id_t FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_bit_and__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -18150,23 +18294,23 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_bit_andRM4id_t0(struct _fx_R9Ast__id_t fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -18206,10 +18350,11 @@ FX_EXTERN_C int _fx_M3AstFM19fname_op_aug_bit_orRM4id_t0(struct _fx_R9Ast__id_t* fx_str_t slit_0 = FX_MAKE_STR("__aug_bit_or__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -18240,25 +18385,28 @@ FX_EXTERN_C int _fx_M3AstFM19fname_op_aug_bit_orRM4id_t0(struct _fx_R9Ast__id_t* FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_bit_or__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -18278,23 +18426,23 @@ FX_EXTERN_C int _fx_M3AstFM19fname_op_aug_bit_orRM4id_t0(struct _fx_R9Ast__id_t* fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -18334,10 +18482,11 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_bit_xorRM4id_t0(struct _fx_R9Ast__id_t fx_str_t slit_0 = FX_MAKE_STR("__aug_bit_xor__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -18368,25 +18517,28 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_bit_xorRM4id_t0(struct _fx_R9Ast__id_t FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_bit_xor__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -18406,23 +18558,23 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_bit_xorRM4id_t0(struct _fx_R9Ast__id_t fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -18462,10 +18614,11 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_dot_mulRM4id_t0(struct _fx_R9Ast__id_t fx_str_t slit_0 = FX_MAKE_STR("__aug_dot_mul__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -18496,25 +18649,28 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_dot_mulRM4id_t0(struct _fx_R9Ast__id_t FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_dot_mul__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -18534,23 +18690,23 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_dot_mulRM4id_t0(struct _fx_R9Ast__id_t fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -18590,10 +18746,11 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_dot_divRM4id_t0(struct _fx_R9Ast__id_t fx_str_t slit_0 = FX_MAKE_STR("__aug_dot_div__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -18624,25 +18781,28 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_dot_divRM4id_t0(struct _fx_R9Ast__id_t FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_dot_div__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -18662,23 +18822,23 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_dot_divRM4id_t0(struct _fx_R9Ast__id_t fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -18718,10 +18878,11 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_dot_modRM4id_t0(struct _fx_R9Ast__id_t fx_str_t slit_0 = FX_MAKE_STR("__aug_dot_mod__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -18752,25 +18913,28 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_dot_modRM4id_t0(struct _fx_R9Ast__id_t FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_dot_mod__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -18790,23 +18954,23 @@ FX_EXTERN_C int _fx_M3AstFM20fname_op_aug_dot_modRM4id_t0(struct _fx_R9Ast__id_t fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -18846,10 +19010,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_shlRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__aug_shl__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -18880,25 +19045,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_shlRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_shl__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -18918,23 +19086,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_shlRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -18974,10 +19142,11 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_shrRM4id_t0(struct _fx_R9Ast__id_t* fx fx_str_t slit_0 = FX_MAKE_STR("__aug_shr__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -19008,25 +19177,28 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_shrRM4id_t0(struct _fx_R9Ast__id_t* fx FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__aug_shr__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -19046,23 +19218,23 @@ FX_EXTERN_C int _fx_M3AstFM16fname_op_aug_shrRM4id_t0(struct _fx_R9Ast__id_t* fx fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -19102,10 +19274,11 @@ FX_EXTERN_C int _fx_M3AstFM12fname_to_intRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_str_t slit_0 = FX_MAKE_STR("int"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -19136,25 +19309,28 @@ FX_EXTERN_C int _fx_M3AstFM12fname_to_intRM4id_t0(struct _fx_R9Ast__id_t* fx_res FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("int"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -19174,23 +19350,23 @@ FX_EXTERN_C int _fx_M3AstFM12fname_to_intRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -19230,10 +19406,11 @@ FX_EXTERN_C int _fx_M3AstFM13fname_to_longRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_str_t slit_0 = FX_MAKE_STR("long"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -19264,25 +19441,28 @@ FX_EXTERN_C int _fx_M3AstFM13fname_to_longRM4id_t0(struct _fx_R9Ast__id_t* fx_re FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("long"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -19302,23 +19482,23 @@ FX_EXTERN_C int _fx_M3AstFM13fname_to_longRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -19358,10 +19538,11 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_uint8RM4id_t0(struct _fx_R9Ast__id_t* fx_r fx_str_t slit_0 = FX_MAKE_STR("uint8"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -19392,25 +19573,28 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_uint8RM4id_t0(struct _fx_R9Ast__id_t* fx_r FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("uint8"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -19430,23 +19614,23 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_uint8RM4id_t0(struct _fx_R9Ast__id_t* fx_r fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -19486,10 +19670,11 @@ FX_EXTERN_C int _fx_M3AstFM13fname_to_int8RM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_str_t slit_0 = FX_MAKE_STR("int8"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -19520,25 +19705,28 @@ FX_EXTERN_C int _fx_M3AstFM13fname_to_int8RM4id_t0(struct _fx_R9Ast__id_t* fx_re FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("int8"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -19558,23 +19746,23 @@ FX_EXTERN_C int _fx_M3AstFM13fname_to_int8RM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -19614,10 +19802,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_uint16RM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("uint16"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -19648,25 +19837,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_uint16RM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("uint16"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -19686,23 +19878,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_uint16RM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -19742,10 +19934,11 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_int16RM4id_t0(struct _fx_R9Ast__id_t* fx_r fx_str_t slit_0 = FX_MAKE_STR("int16"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -19776,25 +19969,28 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_int16RM4id_t0(struct _fx_R9Ast__id_t* fx_r FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("int16"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -19814,23 +20010,23 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_int16RM4id_t0(struct _fx_R9Ast__id_t* fx_r fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -19870,10 +20066,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_uint32RM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("uint32"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -19904,25 +20101,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_uint32RM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("uint32"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -19942,23 +20142,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_uint32RM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -19998,10 +20198,11 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_int32RM4id_t0(struct _fx_R9Ast__id_t* fx_r fx_str_t slit_0 = FX_MAKE_STR("int32"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -20032,25 +20233,28 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_int32RM4id_t0(struct _fx_R9Ast__id_t* fx_r FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("int32"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -20070,23 +20274,23 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_int32RM4id_t0(struct _fx_R9Ast__id_t* fx_r fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -20126,10 +20330,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_uint64RM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("uint64"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -20160,25 +20365,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_uint64RM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("uint64"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -20198,23 +20406,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_uint64RM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -20254,10 +20462,11 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_int64RM4id_t0(struct _fx_R9Ast__id_t* fx_r fx_str_t slit_0 = FX_MAKE_STR("int64"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -20288,25 +20497,28 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_int64RM4id_t0(struct _fx_R9Ast__id_t* fx_r FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("int64"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -20326,23 +20538,23 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_int64RM4id_t0(struct _fx_R9Ast__id_t* fx_r fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -20382,10 +20594,11 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_floatRM4id_t0(struct _fx_R9Ast__id_t* fx_r fx_str_t slit_0 = FX_MAKE_STR("float"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -20416,25 +20629,28 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_floatRM4id_t0(struct _fx_R9Ast__id_t* fx_r FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("float"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -20454,23 +20670,23 @@ FX_EXTERN_C int _fx_M3AstFM14fname_to_floatRM4id_t0(struct _fx_R9Ast__id_t* fx_r fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -20510,10 +20726,11 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_doubleRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_str_t slit_0 = FX_MAKE_STR("double"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -20544,25 +20761,28 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_doubleRM4id_t0(struct _fx_R9Ast__id_t* fx_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("double"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -20582,23 +20802,23 @@ FX_EXTERN_C int _fx_M3AstFM15fname_to_doubleRM4id_t0(struct _fx_R9Ast__id_t* fx_ fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -20638,10 +20858,11 @@ FX_EXTERN_C int _fx_M3AstFM13fname_to_boolRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_str_t slit_0 = FX_MAKE_STR("bool"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -20672,25 +20893,28 @@ FX_EXTERN_C int _fx_M3AstFM13fname_to_boolRM4id_t0(struct _fx_R9Ast__id_t* fx_re FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("bool"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -20710,23 +20934,23 @@ FX_EXTERN_C int _fx_M3AstFM13fname_to_boolRM4id_t0(struct _fx_R9Ast__id_t* fx_re fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -20766,10 +20990,11 @@ FX_EXTERN_C int _fx_M3AstFM12fname_stringRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_str_t slit_0 = FX_MAKE_STR("string"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -20800,25 +21025,28 @@ FX_EXTERN_C int _fx_M3AstFM12fname_stringRM4id_t0(struct _fx_R9Ast__id_t* fx_res FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("string"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -20838,23 +21066,23 @@ FX_EXTERN_C int _fx_M3AstFM12fname_stringRM4id_t0(struct _fx_R9Ast__id_t* fx_res fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -20894,10 +21122,11 @@ FX_EXTERN_C int _fx_M3AstFM11fname_printRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_str_t slit_0 = FX_MAKE_STR("print"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -20928,25 +21157,28 @@ FX_EXTERN_C int _fx_M3AstFM11fname_printRM4id_t0(struct _fx_R9Ast__id_t* fx_resu FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("print"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -20966,23 +21198,23 @@ FX_EXTERN_C int _fx_M3AstFM11fname_printRM4id_t0(struct _fx_R9Ast__id_t* fx_resu fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -21022,10 +21254,11 @@ FX_EXTERN_C int _fx_M3AstFM10fname_reprRM4id_t0(struct _fx_R9Ast__id_t* fx_resul fx_str_t slit_0 = FX_MAKE_STR("repr"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -21056,25 +21289,28 @@ FX_EXTERN_C int _fx_M3AstFM10fname_reprRM4id_t0(struct _fx_R9Ast__id_t* fx_resul FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("repr"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -21094,23 +21330,23 @@ FX_EXTERN_C int _fx_M3AstFM10fname_reprRM4id_t0(struct _fx_R9Ast__id_t* fx_resul fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -21150,10 +21386,11 @@ FX_EXTERN_C int _fx_M3AstFM10fname_hashRM4id_t0(struct _fx_R9Ast__id_t* fx_resul fx_str_t slit_0 = FX_MAKE_STR("hash"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -21184,25 +21421,28 @@ FX_EXTERN_C int _fx_M3AstFM10fname_hashRM4id_t0(struct _fx_R9Ast__id_t* fx_resul FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("hash"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_cleanup); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -21222,23 +21462,23 @@ FX_EXTERN_C int _fx_M3AstFM10fname_hashRM4id_t0(struct _fx_R9Ast__id_t* fx_resul fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_cleanup); FX_THROW(&v_4, true, _fx_cleanup); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_cleanup: ; @@ -21308,10 +21548,12 @@ FX_EXTERN_C int _fx_M3AstFM16get_binary_fnameRM4id_t2N13Ast__binary_tRM5loc_t( fx_str_t slit_0 = FX_MAKE_STR("__add__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_catch_1); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_catch_1); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_2; + _fx_Rt20Hashmap__hashentry_t2Si* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_2->data; + int_ v_3; if (idx_0 >= 0) { - v_2 = idx_0; + v_3 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -21344,26 +21586,28 @@ FX_EXTERN_C int _fx_M3AstFM16get_binary_fnameRM4id_t2N13Ast__binary_tRM5loc_t( FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_catch_1); } - fx_arr_t* v_3 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_3); - fx_copy_arr(&new_data_0, v_3); + fx_arr_t* v_4 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_4); + fx_copy_arr(&new_data_0, v_4); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_catch_1); - fx_str_t* v_4 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_5 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__add__"); - FX_FREE_STR(v_4); - fx_copy_str(&slit_1, v_4); + FX_FREE_STR(v_5); + fx_copy_str(&slit_1, v_5); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_catch_1); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_2 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_6 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_6->data = n0_0; + v_3 = n0_0; } else { fx_str_t slit_2 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_2, &v_1, 0), _fx_catch_1); FX_THROW(&v_1, false, _fx_catch_1); } - _fx_R9Ast__id_t rec_0 = { 0, v_2, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_3, 0 }; *fx_result = rec_0; _fx_catch_1: ; @@ -21375,96 +21619,108 @@ FX_EXTERN_C int _fx_M3AstFM16get_binary_fnameRM4id_t2N13Ast__binary_tRM5loc_t( goto _fx_endmatch_0; } if (tag_0 == 2) { - fx_exn_t v_5 = {0}; + fx_exn_t v_7 = {0}; int_ h_idx_1; fx_str_t slit_3 = FX_MAKE_STR("__sub__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_3, &h_idx_1, 0), _fx_catch_2); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_1), _fx_catch_2); - int_ idx_1 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1)->data; - int_ v_6; + _fx_Rt20Hashmap__hashentry_t2Si* v_8 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1); + int_ idx_1 = v_8->data; + int_ v_9; if (idx_1 >= 0) { - v_6 = idx_1; + v_9 = idx_1; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_2; fx_str_t slit_4 = FX_MAKE_STR("__sub__"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_4, &idx_2, 0), _fx_catch_2); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_1), _fx_catch_2); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1)->data = idx_2; - v_6 = idx_2; + _fx_Rt20Hashmap__hashentry_t2Si* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1); + v_10->data = idx_2; + v_9 = idx_2; } else { fx_str_t slit_5 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_5, &v_5, 0), _fx_catch_2); - FX_THROW(&v_5, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_5, &v_7, 0), _fx_catch_2); + FX_THROW(&v_7, false, _fx_catch_2); } - _fx_R9Ast__id_t rec_1 = { 0, v_6, 0 }; + _fx_R9Ast__id_t rec_1 = { 0, v_9, 0 }; *fx_result = rec_1; _fx_catch_2: ; - fx_free_exn(&v_5); + fx_free_exn(&v_7); goto _fx_endmatch_0; } if (tag_0 == 3) { - fx_exn_t v_7 = {0}; + fx_exn_t v_11 = {0}; int_ h_idx_2; fx_str_t slit_6 = FX_MAKE_STR("__mul__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_6, &h_idx_2, 0), _fx_catch_3); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_2), _fx_catch_3); - int_ idx_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2)->data; - int_ v_8; + _fx_Rt20Hashmap__hashentry_t2Si* v_12 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2); + int_ idx_3 = v_12->data; + int_ v_13; if (idx_3 >= 0) { - v_8 = idx_3; + v_13 = idx_3; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_4; fx_str_t slit_7 = FX_MAKE_STR("__mul__"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_7, &idx_4, 0), _fx_catch_3); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_2), _fx_catch_3); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2)->data = idx_4; - v_8 = idx_4; + _fx_Rt20Hashmap__hashentry_t2Si* v_14 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2); + v_14->data = idx_4; + v_13 = idx_4; } else { fx_str_t slit_8 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_8, &v_7, 0), _fx_catch_3); - FX_THROW(&v_7, false, _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_8, &v_11, 0), _fx_catch_3); + FX_THROW(&v_11, false, _fx_catch_3); } - _fx_R9Ast__id_t rec_2 = { 0, v_8, 0 }; + _fx_R9Ast__id_t rec_2 = { 0, v_13, 0 }; *fx_result = rec_2; _fx_catch_3: ; - fx_free_exn(&v_7); + fx_free_exn(&v_11); goto _fx_endmatch_0; } if (tag_0 == 4) { - fx_exn_t v_9 = {0}; + fx_exn_t v_15 = {0}; int_ h_idx_3; fx_str_t slit_9 = FX_MAKE_STR("__div__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_9, &h_idx_3, 0), _fx_catch_4); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_3), _fx_catch_4); - int_ idx_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3)->data; - int_ v_10; + _fx_Rt20Hashmap__hashentry_t2Si* v_16 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3); + int_ idx_5 = v_16->data; + int_ v_17; if (idx_5 >= 0) { - v_10 = idx_5; + v_17 = idx_5; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_6; fx_str_t slit_10 = FX_MAKE_STR("__div__"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_10, &idx_6, 0), _fx_catch_4); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_3), _fx_catch_4); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3)->data = idx_6; - v_10 = idx_6; + _fx_Rt20Hashmap__hashentry_t2Si* v_18 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3); + v_18->data = idx_6; + v_17 = idx_6; } else { fx_str_t slit_11 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_11, &v_9, 0), _fx_catch_4); - FX_THROW(&v_9, false, _fx_catch_4); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_11, &v_15, 0), _fx_catch_4); + FX_THROW(&v_15, false, _fx_catch_4); } - _fx_R9Ast__id_t rec_3 = { 0, v_10, 0 }; + _fx_R9Ast__id_t rec_3 = { 0, v_17, 0 }; *fx_result = rec_3; _fx_catch_4: ; - fx_free_exn(&v_9); + fx_free_exn(&v_15); goto _fx_endmatch_0; } if (tag_0 == 5) { @@ -21661,23 +21917,23 @@ FX_EXTERN_C int _fx_M3AstFM16get_binary_fnameRM4id_t2N13Ast__binary_tRM5loc_t( } FX_CHECK_EXN(_fx_cleanup); if (res_0) { - fx_str_t v_11 = {0}; - fx_str_t v_12 = {0}; - fx_exn_t v_13 = {0}; - FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(bop_0, &v_11, 0), _fx_catch_47); + fx_str_t v_19 = {0}; + fx_str_t v_20 = {0}; + fx_exn_t v_21 = {0}; + FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(bop_0, &v_19, 0), _fx_catch_47); fx_str_t slit_12 = FX_MAKE_STR("for binary operation \""); fx_str_t slit_13 = FX_MAKE_STR("\" there is no corresponding function"); { - const fx_str_t strs_0[] = { slit_12, v_11, slit_13 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_12), _fx_catch_47); + const fx_str_t strs_0[] = { slit_12, v_19, slit_13 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_20), _fx_catch_47); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_12, &v_13, 0), _fx_catch_47); - FX_THROW(&v_13, false, _fx_catch_47); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_20, &v_21, 0), _fx_catch_47); + FX_THROW(&v_21, false, _fx_catch_47); _fx_catch_47: ; - fx_free_exn(&v_13); - FX_FREE_STR(&v_12); - FX_FREE_STR(&v_11); + fx_free_exn(&v_21); + FX_FREE_STR(&v_20); + FX_FREE_STR(&v_19); goto _fx_endmatch_0; } FX_FAST_THROW(FX_EXN_NoMatchError, _fx_cleanup); @@ -21713,10 +21969,12 @@ FX_EXTERN_C int _fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t( fx_str_t slit_0 = FX_MAKE_STR("__apos__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_catch_2); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_catch_2); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -21749,25 +22007,28 @@ FX_EXTERN_C int _fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t( FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_catch_2); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_catch_2); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__apos__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_catch_2); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_8 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_catch_2); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_10 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_10), _fx_catch_2); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_10); + fx_copy_str(&v_11->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -21787,23 +22048,23 @@ FX_EXTERN_C int _fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t( fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_1); + _fx_LS v_12 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_12), _fx_catch_1); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_12, &whole_msg_1, 0), _fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_12) { + _fx_free_LS(&v_12); } } FX_CHECK_EXN(_fx_catch_2); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_4), _fx_catch_2); FX_THROW(&v_4, true, _fx_catch_2); } - _fx_R9Ast__id_t rec_0 = { 0, v_5, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_6, 0 }; *fx_result = rec_0; _fx_catch_2: ; @@ -21824,30 +22085,32 @@ FX_EXTERN_C int _fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t( goto _fx_endmatch_0; } if (tag_0 == 1) { - fx_arr_t v_10 = {0}; + fx_arr_t v_13 = {0}; fx_arr_t old_data_1 = {0}; fx_str_t val0_1 = {0}; fx_arr_t new_data_1 = {0}; fx_str_t fname_1 = {0}; - fx_str_t v_11 = {0}; - fx_str_t v_12 = {0}; - fx_str_t v_13 = {0}; + fx_str_t v_14 = {0}; + fx_str_t v_15 = {0}; + fx_str_t v_16 = {0}; fx_str_t whole_msg_2 = {0}; _fx_LS all_compile_err_ctx_1 = 0; fx_str_t whole_msg_3 = {0}; - fx_exn_t v_14 = {0}; + fx_exn_t v_17 = {0}; int_ h_idx_1; fx_str_t slit_7 = FX_MAKE_STR("__plus__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_7, &h_idx_1, 0), _fx_catch_5); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_1), _fx_catch_5); - int_ idx_1 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1)->data; - int_ v_15; + _fx_Rt20Hashmap__hashentry_t2Si* v_18 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1); + int_ idx_1 = v_18->data; + int_ v_19; if (idx_1 >= 0) { - v_15 = idx_1; + v_19 = idx_1; } else if (_fx_g19Ast__lock_all_names == 0) { - fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_10); - int_ sz_1 = FX_ARR_SIZE(v_10, 0); + fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_13); + int_ sz_1 = FX_ARR_SIZE(v_13, 0); int_ n0_1 = _fx_g14Ast__all_names->u.t.t0; if (sz_1 <= n0_1) { int_ n1_1 = fx_maxi(n0_1, 128) * 2; @@ -21876,37 +22139,40 @@ FX_EXTERN_C int _fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t( FX_FREE_STR(&t_1); FX_CHECK_EXN(_fx_catch_5); } - fx_arr_t* v_16 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_16); - fx_copy_arr(&new_data_1, v_16); + fx_arr_t* v_20 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_20); + fx_copy_arr(&new_data_1, v_20); } _fx_g14Ast__all_names->u.t.t0 = n0_1 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_1), _fx_catch_5); - fx_str_t* v_17 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_1); + fx_str_t* v_21 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_1); fx_str_t slit_8 = FX_MAKE_STR("__plus__"); - FX_FREE_STR(v_17); - fx_copy_str(&slit_8, v_17); + FX_FREE_STR(v_21); + fx_copy_str(&slit_8, v_21); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_1), _fx_catch_5); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1)->data = n0_1; - v_15 = n0_1; + _fx_Rt20Hashmap__hashentry_t2Si* v_22 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1); + v_22->data = n0_1; + v_19 = n0_1; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_18 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_18), _fx_catch_5); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_18))->u.defmodule_t.t1, &fname_1); + int_ v_23 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_23), _fx_catch_5); + _fx_N16Ast__defmodule_t v_24 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_23); + fx_copy_str(&v_24->u.defmodule_t.t1, &fname_1); } else { fx_str_t slit_9 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_9, &fname_1); } - FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.line0, &v_11, 0), _fx_catch_5); - FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.col0, &v_12, 0), _fx_catch_5); - FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(&_fx_g10Ast__noloc, &v_13, 0), _fx_catch_5); + FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.line0, &v_14, 0), _fx_catch_5); + FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.col0, &v_15, 0), _fx_catch_5); + FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(&_fx_g10Ast__noloc, &v_16, 0), _fx_catch_5); fx_str_t slit_10 = FX_MAKE_STR(":"); fx_str_t slit_11 = FX_MAKE_STR(":"); fx_str_t slit_12 = FX_MAKE_STR(": error: \'all_names\' are locked. Attempt to call get_id()"); { - const fx_str_t strs_1[] = { fname_1, slit_10, v_11, slit_11, v_12, slit_12, v_13 }; + const fx_str_t strs_1[] = { fname_1, slit_10, v_14, slit_11, v_15, slit_12, v_16 }; FX_CALL(fx_strjoin(0, 0, 0, strs_1, 7, &whole_msg_2), _fx_catch_5); } FX_COPY_PTR(_fx_g24Ast__all_compile_err_ctx, &all_compile_err_ctx_1); @@ -21914,67 +22180,69 @@ FX_EXTERN_C int _fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t( fx_copy_str(&whole_msg_2, &whole_msg_3); } else { - _fx_LS v_19 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_2, all_compile_err_ctx_1, true, &v_19), _fx_catch_4); + _fx_LS v_25 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_2, all_compile_err_ctx_1, true, &v_25), _fx_catch_4); fx_str_t slit_13 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_13, v_19, &whole_msg_3, 0), _fx_catch_4); + FX_CALL(_fx_F4joinS2SLS(&slit_13, v_25, &whole_msg_3, 0), _fx_catch_4); _fx_catch_4: ; - if (v_19) { - _fx_free_LS(&v_19); + if (v_25) { + _fx_free_LS(&v_25); } } FX_CHECK_EXN(_fx_catch_5); - FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_3, &v_14), _fx_catch_5); - FX_THROW(&v_14, true, _fx_catch_5); + FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_3, &v_17), _fx_catch_5); + FX_THROW(&v_17, true, _fx_catch_5); } - _fx_R9Ast__id_t rec_1 = { 0, v_15, 0 }; + _fx_R9Ast__id_t rec_1 = { 0, v_19, 0 }; *fx_result = rec_1; _fx_catch_5: ; - fx_free_exn(&v_14); + fx_free_exn(&v_17); FX_FREE_STR(&whole_msg_3); if (all_compile_err_ctx_1) { _fx_free_LS(&all_compile_err_ctx_1); } FX_FREE_STR(&whole_msg_2); - FX_FREE_STR(&v_13); - FX_FREE_STR(&v_12); - FX_FREE_STR(&v_11); + FX_FREE_STR(&v_16); + FX_FREE_STR(&v_15); + FX_FREE_STR(&v_14); FX_FREE_STR(&fname_1); FX_FREE_ARR(&new_data_1); FX_FREE_STR(&val0_1); FX_FREE_ARR(&old_data_1); - FX_FREE_ARR(&v_10); + FX_FREE_ARR(&v_13); goto _fx_endmatch_0; } if (tag_0 == 2) { - fx_arr_t v_20 = {0}; + fx_arr_t v_26 = {0}; fx_arr_t old_data_2 = {0}; fx_str_t val0_2 = {0}; fx_arr_t new_data_2 = {0}; fx_str_t fname_2 = {0}; - fx_str_t v_21 = {0}; - fx_str_t v_22 = {0}; - fx_str_t v_23 = {0}; + fx_str_t v_27 = {0}; + fx_str_t v_28 = {0}; + fx_str_t v_29 = {0}; fx_str_t whole_msg_4 = {0}; _fx_LS all_compile_err_ctx_2 = 0; fx_str_t whole_msg_5 = {0}; - fx_exn_t v_24 = {0}; + fx_exn_t v_30 = {0}; int_ h_idx_2; fx_str_t slit_14 = FX_MAKE_STR("__negate__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_14, &h_idx_2, 0), _fx_catch_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_2), _fx_catch_8); - int_ idx_2 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2)->data; - int_ v_25; + _fx_Rt20Hashmap__hashentry_t2Si* v_31 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2); + int_ idx_2 = v_31->data; + int_ v_32; if (idx_2 >= 0) { - v_25 = idx_2; + v_32 = idx_2; } else if (_fx_g19Ast__lock_all_names == 0) { - fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_20); - int_ sz_2 = FX_ARR_SIZE(v_20, 0); + fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_26); + int_ sz_2 = FX_ARR_SIZE(v_26, 0); int_ n0_2 = _fx_g14Ast__all_names->u.t.t0; if (sz_2 <= n0_2) { int_ n1_2 = fx_maxi(n0_2, 128) * 2; @@ -22003,37 +22271,40 @@ FX_EXTERN_C int _fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t( FX_FREE_STR(&t_2); FX_CHECK_EXN(_fx_catch_8); } - fx_arr_t* v_26 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_26); - fx_copy_arr(&new_data_2, v_26); + fx_arr_t* v_33 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_33); + fx_copy_arr(&new_data_2, v_33); } _fx_g14Ast__all_names->u.t.t0 = n0_2 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_2), _fx_catch_8); - fx_str_t* v_27 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_2); + fx_str_t* v_34 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_2); fx_str_t slit_15 = FX_MAKE_STR("__negate__"); - FX_FREE_STR(v_27); - fx_copy_str(&slit_15, v_27); + FX_FREE_STR(v_34); + fx_copy_str(&slit_15, v_34); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_2), _fx_catch_8); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2)->data = n0_2; - v_25 = n0_2; + _fx_Rt20Hashmap__hashentry_t2Si* v_35 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2); + v_35->data = n0_2; + v_32 = n0_2; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_28 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_28), _fx_catch_8); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_28))->u.defmodule_t.t1, &fname_2); + int_ v_36 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_36), _fx_catch_8); + _fx_N16Ast__defmodule_t v_37 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_36); + fx_copy_str(&v_37->u.defmodule_t.t1, &fname_2); } else { fx_str_t slit_16 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_16, &fname_2); } - FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.line0, &v_21, 0), _fx_catch_8); - FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.col0, &v_22, 0), _fx_catch_8); - FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(&_fx_g10Ast__noloc, &v_23, 0), _fx_catch_8); + FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.line0, &v_27, 0), _fx_catch_8); + FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.col0, &v_28, 0), _fx_catch_8); + FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(&_fx_g10Ast__noloc, &v_29, 0), _fx_catch_8); fx_str_t slit_17 = FX_MAKE_STR(":"); fx_str_t slit_18 = FX_MAKE_STR(":"); fx_str_t slit_19 = FX_MAKE_STR(": error: \'all_names\' are locked. Attempt to call get_id()"); { - const fx_str_t strs_2[] = { fname_2, slit_17, v_21, slit_18, v_22, slit_19, v_23 }; + const fx_str_t strs_2[] = { fname_2, slit_17, v_27, slit_18, v_28, slit_19, v_29 }; FX_CALL(fx_strjoin(0, 0, 0, strs_2, 7, &whole_msg_4), _fx_catch_8); } FX_COPY_PTR(_fx_g24Ast__all_compile_err_ctx, &all_compile_err_ctx_2); @@ -22041,103 +22312,111 @@ FX_EXTERN_C int _fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t( fx_copy_str(&whole_msg_4, &whole_msg_5); } else { - _fx_LS v_29 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_4, all_compile_err_ctx_2, true, &v_29), _fx_catch_7); + _fx_LS v_38 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_4, all_compile_err_ctx_2, true, &v_38), _fx_catch_7); fx_str_t slit_20 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_20, v_29, &whole_msg_5, 0), _fx_catch_7); + FX_CALL(_fx_F4joinS2SLS(&slit_20, v_38, &whole_msg_5, 0), _fx_catch_7); _fx_catch_7: ; - if (v_29) { - _fx_free_LS(&v_29); + if (v_38) { + _fx_free_LS(&v_38); } } FX_CHECK_EXN(_fx_catch_8); - FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_5, &v_24), _fx_catch_8); - FX_THROW(&v_24, true, _fx_catch_8); + FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_5, &v_30), _fx_catch_8); + FX_THROW(&v_30, true, _fx_catch_8); } - _fx_R9Ast__id_t rec_2 = { 0, v_25, 0 }; + _fx_R9Ast__id_t rec_2 = { 0, v_32, 0 }; *fx_result = rec_2; _fx_catch_8: ; - fx_free_exn(&v_24); + fx_free_exn(&v_30); FX_FREE_STR(&whole_msg_5); if (all_compile_err_ctx_2) { _fx_free_LS(&all_compile_err_ctx_2); } FX_FREE_STR(&whole_msg_4); - FX_FREE_STR(&v_23); - FX_FREE_STR(&v_22); - FX_FREE_STR(&v_21); + FX_FREE_STR(&v_29); + FX_FREE_STR(&v_28); + FX_FREE_STR(&v_27); FX_FREE_STR(&fname_2); FX_FREE_ARR(&new_data_2); FX_FREE_STR(&val0_2); FX_FREE_ARR(&old_data_2); - FX_FREE_ARR(&v_20); + FX_FREE_ARR(&v_26); goto _fx_endmatch_0; } if (tag_0 == 3) { - fx_exn_t v_30 = {0}; + fx_exn_t v_39 = {0}; int_ h_idx_3; fx_str_t slit_21 = FX_MAKE_STR("__dot_minus__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_21, &h_idx_3, 0), _fx_catch_9); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_3), _fx_catch_9); - int_ idx_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3)->data; - int_ v_31; + _fx_Rt20Hashmap__hashentry_t2Si* v_40 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3); + int_ idx_3 = v_40->data; + int_ v_41; if (idx_3 >= 0) { - v_31 = idx_3; + v_41 = idx_3; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_4; fx_str_t slit_22 = FX_MAKE_STR("__dot_minus__"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_22, &idx_4, 0), _fx_catch_9); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_3), _fx_catch_9); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3)->data = idx_4; - v_31 = idx_4; + _fx_Rt20Hashmap__hashentry_t2Si* v_42 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3); + v_42->data = idx_4; + v_41 = idx_4; } else { fx_str_t slit_23 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_23, &v_30, 0), _fx_catch_9); - FX_THROW(&v_30, false, _fx_catch_9); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_23, &v_39, 0), _fx_catch_9); + FX_THROW(&v_39, false, _fx_catch_9); } - _fx_R9Ast__id_t rec_3 = { 0, v_31, 0 }; + _fx_R9Ast__id_t rec_3 = { 0, v_41, 0 }; *fx_result = rec_3; _fx_catch_9: ; - fx_free_exn(&v_30); + fx_free_exn(&v_39); goto _fx_endmatch_0; } if (tag_0 == 4) { - fx_exn_t v_32 = {0}; + fx_exn_t v_43 = {0}; int_ h_idx_4; fx_str_t slit_24 = FX_MAKE_STR("__bit_not__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_24, &h_idx_4, 0), _fx_catch_10); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_4), _fx_catch_10); - int_ idx_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_4)->data; - int_ v_33; + _fx_Rt20Hashmap__hashentry_t2Si* v_44 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_4); + int_ idx_5 = v_44->data; + int_ v_45; if (idx_5 >= 0) { - v_33 = idx_5; + v_45 = idx_5; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_6; fx_str_t slit_25 = FX_MAKE_STR("__bit_not__"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_25, &idx_6, 0), _fx_catch_10); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_4), _fx_catch_10); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_4)->data = idx_6; - v_33 = idx_6; + _fx_Rt20Hashmap__hashentry_t2Si* v_46 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_4); + v_46->data = idx_6; + v_45 = idx_6; } else { fx_str_t slit_26 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_26, &v_32, 0), _fx_catch_10); - FX_THROW(&v_32, false, _fx_catch_10); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_26, &v_43, 0), _fx_catch_10); + FX_THROW(&v_43, false, _fx_catch_10); } - _fx_R9Ast__id_t rec_4 = { 0, v_33, 0 }; + _fx_R9Ast__id_t rec_4 = { 0, v_45, 0 }; *fx_result = rec_4; _fx_catch_10: ; - fx_free_exn(&v_32); + fx_free_exn(&v_43); goto _fx_endmatch_0; } bool res_0; @@ -22158,36 +22437,36 @@ FX_EXTERN_C int _fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t( } FX_CHECK_EXN(_fx_cleanup); if (res_0) { - fx_str_t v_34 = {0}; - fx_str_t v_35 = {0}; - fx_exn_t v_36 = {0}; + fx_str_t v_47 = {0}; + fx_str_t v_48 = {0}; + fx_exn_t v_49 = {0}; int tag_1 = uop_0->tag; if (tag_1 == 1) { - fx_str_t slit_27 = FX_MAKE_STR("+"); fx_copy_str(&slit_27, &v_34); + fx_str_t slit_27 = FX_MAKE_STR("+"); fx_copy_str(&slit_27, &v_47); } else if (tag_1 == 2) { - fx_str_t slit_28 = FX_MAKE_STR("-"); fx_copy_str(&slit_28, &v_34); + fx_str_t slit_28 = FX_MAKE_STR("-"); fx_copy_str(&slit_28, &v_47); } else if (tag_1 == 3) { - fx_str_t slit_29 = FX_MAKE_STR(".-"); fx_copy_str(&slit_29, &v_34); + fx_str_t slit_29 = FX_MAKE_STR(".-"); fx_copy_str(&slit_29, &v_47); } else if (tag_1 == 4) { - fx_str_t slit_30 = FX_MAKE_STR("~"); fx_copy_str(&slit_30, &v_34); + fx_str_t slit_30 = FX_MAKE_STR("~"); fx_copy_str(&slit_30, &v_47); } else if (tag_1 == 5) { - fx_str_t slit_31 = FX_MAKE_STR("!"); fx_copy_str(&slit_31, &v_34); + fx_str_t slit_31 = FX_MAKE_STR("!"); fx_copy_str(&slit_31, &v_47); } else if (tag_1 == 8) { - fx_str_t slit_32 = FX_MAKE_STR("\\"); fx_copy_str(&slit_32, &v_34); + fx_str_t slit_32 = FX_MAKE_STR("\\"); fx_copy_str(&slit_32, &v_47); } else if (tag_1 == 6) { - fx_str_t slit_33 = FX_MAKE_STR("REF"); fx_copy_str(&slit_33, &v_34); + fx_str_t slit_33 = FX_MAKE_STR("REF"); fx_copy_str(&slit_33, &v_47); } else if (tag_1 == 7) { - fx_str_t slit_34 = FX_MAKE_STR("*"); fx_copy_str(&slit_34, &v_34); + fx_str_t slit_34 = FX_MAKE_STR("*"); fx_copy_str(&slit_34, &v_47); } else if (tag_1 == 9) { - fx_str_t slit_35 = FX_MAKE_STR("\'"); fx_copy_str(&slit_35, &v_34); + fx_str_t slit_35 = FX_MAKE_STR("\'"); fx_copy_str(&slit_35, &v_47); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_11); @@ -22196,16 +22475,16 @@ FX_EXTERN_C int _fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t( fx_str_t slit_36 = FX_MAKE_STR("for unary operation \""); fx_str_t slit_37 = FX_MAKE_STR("\" there is no corresponding function"); { - const fx_str_t strs_3[] = { slit_36, v_34, slit_37 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_35), _fx_catch_11); + const fx_str_t strs_3[] = { slit_36, v_47, slit_37 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_48), _fx_catch_11); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_35, &v_36, 0), _fx_catch_11); - FX_THROW(&v_36, false, _fx_catch_11); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_48, &v_49, 0), _fx_catch_11); + FX_THROW(&v_49, false, _fx_catch_11); _fx_catch_11: ; - fx_free_exn(&v_36); - FX_FREE_STR(&v_35); - FX_FREE_STR(&v_34); + fx_free_exn(&v_49); + FX_FREE_STR(&v_48); + FX_FREE_STR(&v_47); goto _fx_endmatch_0; } FX_FAST_THROW(FX_EXN_NoMatchError, _fx_cleanup); @@ -22231,10 +22510,11 @@ FX_EXTERN_C int _fx_M3AstFM19fname_always_importLRM4id_t0(struct _fx_LR9Ast__id_ fx_str_t slit_0 = FX_MAKE_STR("__add__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_5; + _fx_Rt20Hashmap__hashentry_t2Si* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_5->data; + int_ v_6; if (idx_0 >= 0) { - v_5 = idx_0; + v_6 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_0); @@ -22265,203 +22545,217 @@ FX_EXTERN_C int _fx_M3AstFM19fname_always_importLRM4id_t0(struct _fx_LR9Ast__id_ FX_FREE_STR(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_cleanup); - fx_str_t* v_7 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_8 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("__add__"); - FX_FREE_STR(v_7); - fx_copy_str(&slit_1, v_7); + FX_FREE_STR(v_8); + fx_copy_str(&slit_1, v_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_5 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_9->data = n0_0; + v_6 = n0_0; } else { fx_str_t slit_2 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_2, &v_1, 0), _fx_cleanup); FX_THROW(&v_1, false, _fx_cleanup); } - _fx_R9Ast__id_t v_8 = { 0, v_5, 0 }; + _fx_R9Ast__id_t v_10 = { 0, v_6, 0 }; int_ h_idx_1; fx_str_t slit_3 = FX_MAKE_STR("__sub__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_3, &h_idx_1, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_1), _fx_cleanup); - int_ idx_1 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1)->data; - int_ v_9; + _fx_Rt20Hashmap__hashentry_t2Si* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1); + int_ idx_1 = v_11->data; + int_ v_12; if (idx_1 >= 0) { - v_9 = idx_1; + v_12 = idx_1; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_2; fx_str_t slit_4 = FX_MAKE_STR("__sub__"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_4, &idx_2, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_1), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1)->data = idx_2; - v_9 = idx_2; + _fx_Rt20Hashmap__hashentry_t2Si* v_13 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1); + v_13->data = idx_2; + v_12 = idx_2; } else { fx_str_t slit_5 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_5, &v_2, 0), _fx_cleanup); FX_THROW(&v_2, false, _fx_cleanup); } - _fx_R9Ast__id_t v_10 = { 0, v_9, 0 }; + _fx_R9Ast__id_t v_14 = { 0, v_12, 0 }; int_ h_idx_2; fx_str_t slit_6 = FX_MAKE_STR("__mul__"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_6, &h_idx_2, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_2), _fx_cleanup); - int_ idx_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2)->data; - int_ v_11; + _fx_Rt20Hashmap__hashentry_t2Si* v_15 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2); + int_ idx_3 = v_15->data; + int_ v_16; if (idx_3 >= 0) { - v_11 = idx_3; + v_16 = idx_3; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_4; fx_str_t slit_7 = FX_MAKE_STR("__mul__"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_7, &idx_4, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_2), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2)->data = idx_4; - v_11 = idx_4; + _fx_Rt20Hashmap__hashentry_t2Si* v_17 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2); + v_17->data = idx_4; + v_16 = idx_4; } else { fx_str_t slit_8 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_8, &v_3, 0), _fx_cleanup); FX_THROW(&v_3, false, _fx_cleanup); } - _fx_R9Ast__id_t v_12 = { 0, v_11, 0 }; - _fx_R9Ast__id_t v_13; - FX_CALL(_fx_M3AstFM12fname_op_divRM4id_t0(&v_13, 0), _fx_cleanup); - _fx_R9Ast__id_t v_14; - FX_CALL(_fx_M3AstFM13fname_op_rdivRM4id_t0(&v_14, 0), _fx_cleanup); - _fx_R9Ast__id_t v_15; - FX_CALL(_fx_M3AstFM12fname_op_modRM4id_t0(&v_15, 0), _fx_cleanup); - _fx_R9Ast__id_t v_16; - FX_CALL(_fx_M3AstFM12fname_op_powRM4id_t0(&v_16, 0), _fx_cleanup); - _fx_R9Ast__id_t v_17; - FX_CALL(_fx_M3AstFM16fname_op_dot_addRM4id_t0(&v_17, 0), _fx_cleanup); - _fx_R9Ast__id_t v_18; - FX_CALL(_fx_M3AstFM16fname_op_dot_subRM4id_t0(&v_18, 0), _fx_cleanup); + _fx_R9Ast__id_t v_18 = { 0, v_16, 0 }; _fx_R9Ast__id_t v_19; - FX_CALL(_fx_M3AstFM16fname_op_dot_mulRM4id_t0(&v_19, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM12fname_op_divRM4id_t0(&v_19, 0), _fx_cleanup); _fx_R9Ast__id_t v_20; - FX_CALL(_fx_M3AstFM16fname_op_dot_divRM4id_t0(&v_20, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM13fname_op_rdivRM4id_t0(&v_20, 0), _fx_cleanup); _fx_R9Ast__id_t v_21; - FX_CALL(_fx_M3AstFM16fname_op_dot_modRM4id_t0(&v_21, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM12fname_op_modRM4id_t0(&v_21, 0), _fx_cleanup); _fx_R9Ast__id_t v_22; - FX_CALL(_fx_M3AstFM16fname_op_dot_powRM4id_t0(&v_22, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM12fname_op_powRM4id_t0(&v_22, 0), _fx_cleanup); _fx_R9Ast__id_t v_23; - FX_CALL(_fx_M3AstFM12fname_op_shlRM4id_t0(&v_23, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_dot_addRM4id_t0(&v_23, 0), _fx_cleanup); _fx_R9Ast__id_t v_24; - FX_CALL(_fx_M3AstFM12fname_op_shrRM4id_t0(&v_24, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_dot_subRM4id_t0(&v_24, 0), _fx_cleanup); _fx_R9Ast__id_t v_25; - FX_CALL(_fx_M3AstFM16fname_op_bit_andRM4id_t0(&v_25, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_dot_mulRM4id_t0(&v_25, 0), _fx_cleanup); _fx_R9Ast__id_t v_26; - FX_CALL(_fx_M3AstFM15fname_op_bit_orRM4id_t0(&v_26, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_dot_divRM4id_t0(&v_26, 0), _fx_cleanup); _fx_R9Ast__id_t v_27; - FX_CALL(_fx_M3AstFM16fname_op_bit_xorRM4id_t0(&v_27, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_dot_modRM4id_t0(&v_27, 0), _fx_cleanup); _fx_R9Ast__id_t v_28; - FX_CALL(_fx_M3AstFM12fname_op_cmpRM4id_t0(&v_28, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_dot_powRM4id_t0(&v_28, 0), _fx_cleanup); _fx_R9Ast__id_t v_29; - FX_CALL(_fx_M3AstFM16fname_op_dot_cmpRM4id_t0(&v_29, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM12fname_op_shlRM4id_t0(&v_29, 0), _fx_cleanup); _fx_R9Ast__id_t v_30; - FX_CALL(_fx_M3AstFM13fname_op_sameRM4id_t0(&v_30, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM12fname_op_shrRM4id_t0(&v_30, 0), _fx_cleanup); _fx_R9Ast__id_t v_31; - FX_CALL(_fx_M3AstFM11fname_op_eqRM4id_t0(&v_31, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_bit_andRM4id_t0(&v_31, 0), _fx_cleanup); _fx_R9Ast__id_t v_32; - FX_CALL(_fx_M3AstFM11fname_op_neRM4id_t0(&v_32, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM15fname_op_bit_orRM4id_t0(&v_32, 0), _fx_cleanup); _fx_R9Ast__id_t v_33; - FX_CALL(_fx_M3AstFM11fname_op_leRM4id_t0(&v_33, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_bit_xorRM4id_t0(&v_33, 0), _fx_cleanup); _fx_R9Ast__id_t v_34; - FX_CALL(_fx_M3AstFM11fname_op_geRM4id_t0(&v_34, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM12fname_op_cmpRM4id_t0(&v_34, 0), _fx_cleanup); _fx_R9Ast__id_t v_35; - FX_CALL(_fx_M3AstFM11fname_op_ltRM4id_t0(&v_35, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_dot_cmpRM4id_t0(&v_35, 0), _fx_cleanup); _fx_R9Ast__id_t v_36; - FX_CALL(_fx_M3AstFM11fname_op_gtRM4id_t0(&v_36, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM13fname_op_sameRM4id_t0(&v_36, 0), _fx_cleanup); _fx_R9Ast__id_t v_37; - FX_CALL(_fx_M3AstFM15fname_op_dot_eqRM4id_t0(&v_37, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM11fname_op_eqRM4id_t0(&v_37, 0), _fx_cleanup); _fx_R9Ast__id_t v_38; - FX_CALL(_fx_M3AstFM15fname_op_dot_neRM4id_t0(&v_38, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM11fname_op_neRM4id_t0(&v_38, 0), _fx_cleanup); _fx_R9Ast__id_t v_39; - FX_CALL(_fx_M3AstFM15fname_op_dot_leRM4id_t0(&v_39, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM11fname_op_leRM4id_t0(&v_39, 0), _fx_cleanup); _fx_R9Ast__id_t v_40; - FX_CALL(_fx_M3AstFM15fname_op_dot_geRM4id_t0(&v_40, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM11fname_op_geRM4id_t0(&v_40, 0), _fx_cleanup); _fx_R9Ast__id_t v_41; - FX_CALL(_fx_M3AstFM15fname_op_dot_ltRM4id_t0(&v_41, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM11fname_op_ltRM4id_t0(&v_41, 0), _fx_cleanup); _fx_R9Ast__id_t v_42; - FX_CALL(_fx_M3AstFM15fname_op_dot_gtRM4id_t0(&v_42, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM11fname_op_gtRM4id_t0(&v_42, 0), _fx_cleanup); _fx_R9Ast__id_t v_43; - FX_CALL(_fx_M3AstFM13fname_op_plusRM4id_t0(&v_43, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM15fname_op_dot_eqRM4id_t0(&v_43, 0), _fx_cleanup); _fx_R9Ast__id_t v_44; - FX_CALL(_fx_M3AstFM15fname_op_negateRM4id_t0(&v_44, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM15fname_op_dot_neRM4id_t0(&v_44, 0), _fx_cleanup); _fx_R9Ast__id_t v_45; - FX_CALL(_fx_M3AstFM18fname_op_dot_minusRM4id_t0(&v_45, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM15fname_op_dot_leRM4id_t0(&v_45, 0), _fx_cleanup); _fx_R9Ast__id_t v_46; - FX_CALL(_fx_M3AstFM16fname_op_bit_notRM4id_t0(&v_46, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM15fname_op_dot_geRM4id_t0(&v_46, 0), _fx_cleanup); _fx_R9Ast__id_t v_47; - FX_CALL(_fx_M3AstFM16fname_op_aug_addRM4id_t0(&v_47, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM15fname_op_dot_ltRM4id_t0(&v_47, 0), _fx_cleanup); _fx_R9Ast__id_t v_48; - FX_CALL(_fx_M3AstFM16fname_op_aug_subRM4id_t0(&v_48, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM15fname_op_dot_gtRM4id_t0(&v_48, 0), _fx_cleanup); _fx_R9Ast__id_t v_49; - FX_CALL(_fx_M3AstFM16fname_op_aug_mulRM4id_t0(&v_49, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM13fname_op_plusRM4id_t0(&v_49, 0), _fx_cleanup); _fx_R9Ast__id_t v_50; - FX_CALL(_fx_M3AstFM16fname_op_aug_divRM4id_t0(&v_50, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM15fname_op_negateRM4id_t0(&v_50, 0), _fx_cleanup); _fx_R9Ast__id_t v_51; - FX_CALL(_fx_M3AstFM16fname_op_aug_modRM4id_t0(&v_51, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM18fname_op_dot_minusRM4id_t0(&v_51, 0), _fx_cleanup); _fx_R9Ast__id_t v_52; - FX_CALL(_fx_M3AstFM20fname_op_aug_bit_andRM4id_t0(&v_52, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_bit_notRM4id_t0(&v_52, 0), _fx_cleanup); _fx_R9Ast__id_t v_53; - FX_CALL(_fx_M3AstFM19fname_op_aug_bit_orRM4id_t0(&v_53, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_aug_addRM4id_t0(&v_53, 0), _fx_cleanup); _fx_R9Ast__id_t v_54; - FX_CALL(_fx_M3AstFM20fname_op_aug_bit_xorRM4id_t0(&v_54, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_aug_subRM4id_t0(&v_54, 0), _fx_cleanup); _fx_R9Ast__id_t v_55; - FX_CALL(_fx_M3AstFM20fname_op_aug_dot_mulRM4id_t0(&v_55, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_aug_mulRM4id_t0(&v_55, 0), _fx_cleanup); _fx_R9Ast__id_t v_56; - FX_CALL(_fx_M3AstFM20fname_op_aug_dot_divRM4id_t0(&v_56, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_aug_divRM4id_t0(&v_56, 0), _fx_cleanup); _fx_R9Ast__id_t v_57; - FX_CALL(_fx_M3AstFM20fname_op_aug_dot_modRM4id_t0(&v_57, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_aug_modRM4id_t0(&v_57, 0), _fx_cleanup); _fx_R9Ast__id_t v_58; - FX_CALL(_fx_M3AstFM16fname_op_aug_shlRM4id_t0(&v_58, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM20fname_op_aug_bit_andRM4id_t0(&v_58, 0), _fx_cleanup); _fx_R9Ast__id_t v_59; - FX_CALL(_fx_M3AstFM16fname_op_aug_shrRM4id_t0(&v_59, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM19fname_op_aug_bit_orRM4id_t0(&v_59, 0), _fx_cleanup); _fx_R9Ast__id_t v_60; - FX_CALL(_fx_M3AstFM13fname_op_aposRM4id_t0(&v_60, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM20fname_op_aug_bit_xorRM4id_t0(&v_60, 0), _fx_cleanup); _fx_R9Ast__id_t v_61; - FX_CALL(_fx_M3AstFM12fname_to_intRM4id_t0(&v_61, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM20fname_op_aug_dot_mulRM4id_t0(&v_61, 0), _fx_cleanup); _fx_R9Ast__id_t v_62; - FX_CALL(_fx_M3AstFM13fname_to_longRM4id_t0(&v_62, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM20fname_op_aug_dot_divRM4id_t0(&v_62, 0), _fx_cleanup); _fx_R9Ast__id_t v_63; - FX_CALL(_fx_M3AstFM14fname_to_uint8RM4id_t0(&v_63, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM20fname_op_aug_dot_modRM4id_t0(&v_63, 0), _fx_cleanup); _fx_R9Ast__id_t v_64; - FX_CALL(_fx_M3AstFM13fname_to_int8RM4id_t0(&v_64, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_aug_shlRM4id_t0(&v_64, 0), _fx_cleanup); _fx_R9Ast__id_t v_65; - FX_CALL(_fx_M3AstFM15fname_to_uint16RM4id_t0(&v_65, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM16fname_op_aug_shrRM4id_t0(&v_65, 0), _fx_cleanup); _fx_R9Ast__id_t v_66; - FX_CALL(_fx_M3AstFM14fname_to_int16RM4id_t0(&v_66, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM13fname_op_aposRM4id_t0(&v_66, 0), _fx_cleanup); _fx_R9Ast__id_t v_67; - FX_CALL(_fx_M3AstFM15fname_to_uint32RM4id_t0(&v_67, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM12fname_to_intRM4id_t0(&v_67, 0), _fx_cleanup); _fx_R9Ast__id_t v_68; - FX_CALL(_fx_M3AstFM14fname_to_int32RM4id_t0(&v_68, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM13fname_to_longRM4id_t0(&v_68, 0), _fx_cleanup); _fx_R9Ast__id_t v_69; - FX_CALL(_fx_M3AstFM15fname_to_uint64RM4id_t0(&v_69, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM14fname_to_uint8RM4id_t0(&v_69, 0), _fx_cleanup); _fx_R9Ast__id_t v_70; - FX_CALL(_fx_M3AstFM14fname_to_int64RM4id_t0(&v_70, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM13fname_to_int8RM4id_t0(&v_70, 0), _fx_cleanup); _fx_R9Ast__id_t v_71; - FX_CALL(_fx_M3AstFM14fname_to_floatRM4id_t0(&v_71, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM15fname_to_uint16RM4id_t0(&v_71, 0), _fx_cleanup); _fx_R9Ast__id_t v_72; - FX_CALL(_fx_M3AstFM15fname_to_doubleRM4id_t0(&v_72, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM14fname_to_int16RM4id_t0(&v_72, 0), _fx_cleanup); _fx_R9Ast__id_t v_73; - FX_CALL(_fx_M3AstFM13fname_to_boolRM4id_t0(&v_73, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM15fname_to_uint32RM4id_t0(&v_73, 0), _fx_cleanup); _fx_R9Ast__id_t v_74; - FX_CALL(_fx_M3AstFM12fname_stringRM4id_t0(&v_74, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM14fname_to_int32RM4id_t0(&v_74, 0), _fx_cleanup); _fx_R9Ast__id_t v_75; - FX_CALL(_fx_M3AstFM11fname_printRM4id_t0(&v_75, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM15fname_to_uint64RM4id_t0(&v_75, 0), _fx_cleanup); _fx_R9Ast__id_t v_76; - FX_CALL(_fx_M3AstFM10fname_reprRM4id_t0(&v_76, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM14fname_to_int64RM4id_t0(&v_76, 0), _fx_cleanup); _fx_R9Ast__id_t v_77; - FX_CALL(_fx_M3AstFM10fname_hashRM4id_t0(&v_77, 0), _fx_cleanup); - FX_CALL(_fx_cons_LR9Ast__id_t(&v_77, 0, true, &v_4), _fx_cleanup); + FX_CALL(_fx_M3AstFM14fname_to_floatRM4id_t0(&v_77, 0), _fx_cleanup); + _fx_R9Ast__id_t v_78; + FX_CALL(_fx_M3AstFM15fname_to_doubleRM4id_t0(&v_78, 0), _fx_cleanup); + _fx_R9Ast__id_t v_79; + FX_CALL(_fx_M3AstFM13fname_to_boolRM4id_t0(&v_79, 0), _fx_cleanup); + _fx_R9Ast__id_t v_80; + FX_CALL(_fx_M3AstFM12fname_stringRM4id_t0(&v_80, 0), _fx_cleanup); + _fx_R9Ast__id_t v_81; + FX_CALL(_fx_M3AstFM11fname_printRM4id_t0(&v_81, 0), _fx_cleanup); + _fx_R9Ast__id_t v_82; + FX_CALL(_fx_M3AstFM10fname_reprRM4id_t0(&v_82, 0), _fx_cleanup); + _fx_R9Ast__id_t v_83; + FX_CALL(_fx_M3AstFM10fname_hashRM4id_t0(&v_83, 0), _fx_cleanup); + FX_CALL(_fx_cons_LR9Ast__id_t(&v_83, 0, true, &v_4), _fx_cleanup); + FX_CALL(_fx_cons_LR9Ast__id_t(&v_82, v_4, false, &v_4), _fx_cleanup); + FX_CALL(_fx_cons_LR9Ast__id_t(&v_81, v_4, false, &v_4), _fx_cleanup); + FX_CALL(_fx_cons_LR9Ast__id_t(&v_80, v_4, false, &v_4), _fx_cleanup); + FX_CALL(_fx_cons_LR9Ast__id_t(&v_79, v_4, false, &v_4), _fx_cleanup); + FX_CALL(_fx_cons_LR9Ast__id_t(&v_78, v_4, false, &v_4), _fx_cleanup); + FX_CALL(_fx_cons_LR9Ast__id_t(&v_77, v_4, false, &v_4), _fx_cleanup); FX_CALL(_fx_cons_LR9Ast__id_t(&v_76, v_4, false, &v_4), _fx_cleanup); FX_CALL(_fx_cons_LR9Ast__id_t(&v_75, v_4, false, &v_4), _fx_cleanup); FX_CALL(_fx_cons_LR9Ast__id_t(&v_74, v_4, false, &v_4), _fx_cleanup); @@ -22521,14 +22815,8 @@ FX_EXTERN_C int _fx_M3AstFM19fname_always_importLRM4id_t0(struct _fx_LR9Ast__id_ FX_CALL(_fx_cons_LR9Ast__id_t(&v_20, v_4, false, &v_4), _fx_cleanup); FX_CALL(_fx_cons_LR9Ast__id_t(&v_19, v_4, false, &v_4), _fx_cleanup); FX_CALL(_fx_cons_LR9Ast__id_t(&v_18, v_4, false, &v_4), _fx_cleanup); - FX_CALL(_fx_cons_LR9Ast__id_t(&v_17, v_4, false, &v_4), _fx_cleanup); - FX_CALL(_fx_cons_LR9Ast__id_t(&v_16, v_4, false, &v_4), _fx_cleanup); - FX_CALL(_fx_cons_LR9Ast__id_t(&v_15, v_4, false, &v_4), _fx_cleanup); FX_CALL(_fx_cons_LR9Ast__id_t(&v_14, v_4, false, &v_4), _fx_cleanup); - FX_CALL(_fx_cons_LR9Ast__id_t(&v_13, v_4, false, &v_4), _fx_cleanup); - FX_CALL(_fx_cons_LR9Ast__id_t(&v_12, v_4, false, &v_4), _fx_cleanup); - FX_CALL(_fx_cons_LR9Ast__id_t(&v_10, v_4, false, &v_4), _fx_cleanup); - FX_CALL(_fx_cons_LR9Ast__id_t(&v_8, v_4, true, fx_result), _fx_cleanup); + FX_CALL(_fx_cons_LR9Ast__id_t(&v_10, v_4, true, fx_result), _fx_cleanup); _fx_cleanup: ; FX_FREE_ARR(&v_0); @@ -22655,10 +22943,12 @@ FX_EXTERN_C int _fx_M3AstFM14get_cast_fnameRM4id_t2N10Ast__typ_tRM5loc_t( fx_str_t slit_0 = FX_MAKE_STR("int"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_0, &h_idx_0, 0), _fx_catch_6); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_catch_6); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; - int_ v_11; + _fx_Rt20Hashmap__hashentry_t2Si* v_11 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_11->data; + int_ v_12; if (idx_0 >= 0) { - v_11 = idx_0; + v_12 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_6); @@ -22691,25 +22981,28 @@ FX_EXTERN_C int _fx_M3AstFM14get_cast_fnameRM4id_t2N10Ast__typ_tRM5loc_t( FX_FREE_STR(&t_3); FX_CHECK_EXN(_fx_catch_6); } - fx_arr_t* v_12 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_12); - fx_copy_arr(&new_data_0, v_12); + fx_arr_t* v_13 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_13); + fx_copy_arr(&new_data_0, v_13); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_catch_6); - fx_str_t* v_13 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + fx_str_t* v_14 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); fx_str_t slit_1 = FX_MAKE_STR("int"); - FX_FREE_STR(v_13); - fx_copy_str(&slit_1, v_13); + FX_FREE_STR(v_14); + fx_copy_str(&slit_1, v_14); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_catch_6); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; - v_11 = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_15 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_15->data = n0_0; + v_12 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_14 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_14), _fx_catch_6); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_14))->u.defmodule_t.t1, &fname_0); + int_ v_16 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_16), _fx_catch_6); + _fx_N16Ast__defmodule_t v_17 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_16); + fx_copy_str(&v_17->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_2 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_2, &fname_0); @@ -22729,23 +23022,23 @@ FX_EXTERN_C int _fx_M3AstFM14get_cast_fnameRM4id_t2N10Ast__typ_tRM5loc_t( fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_15 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_15), _fx_catch_5); + _fx_LS v_18 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_18), _fx_catch_5); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_15, &whole_msg_1, 0), _fx_catch_5); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_18, &whole_msg_1, 0), _fx_catch_5); _fx_catch_5: ; - if (v_15) { - _fx_free_LS(&v_15); + if (v_18) { + _fx_free_LS(&v_18); } } FX_CHECK_EXN(_fx_catch_6); FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_10), _fx_catch_6); FX_THROW(&v_10, true, _fx_catch_6); } - _fx_R9Ast__id_t rec_0 = { 0, v_11, 0 }; + _fx_R9Ast__id_t rec_0 = { 0, v_12, 0 }; *fx_result = rec_0; _fx_catch_6: ; @@ -22767,205 +23060,229 @@ FX_EXTERN_C int _fx_M3AstFM14get_cast_fnameRM4id_t2N10Ast__typ_tRM5loc_t( } if (tag_0 == 7) { if (v_0->u.TypSInt == 8) { - fx_exn_t v_16 = {0}; + fx_exn_t v_19 = {0}; int_ h_idx_1; fx_str_t slit_7 = FX_MAKE_STR("int8"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_7, &h_idx_1, 0), _fx_catch_7); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_1), _fx_catch_7); - int_ idx_1 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1)->data; - int_ v_17; + _fx_Rt20Hashmap__hashentry_t2Si* v_20 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1); + int_ idx_1 = v_20->data; + int_ v_21; if (idx_1 >= 0) { - v_17 = idx_1; + v_21 = idx_1; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_2; fx_str_t slit_8 = FX_MAKE_STR("int8"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_8, &idx_2, 0), _fx_catch_7); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_1), _fx_catch_7); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1)->data = idx_2; - v_17 = idx_2; + _fx_Rt20Hashmap__hashentry_t2Si* v_22 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_1); + v_22->data = idx_2; + v_21 = idx_2; } else { fx_str_t slit_9 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_9, &v_16, 0), _fx_catch_7); - FX_THROW(&v_16, false, _fx_catch_7); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_9, &v_19, 0), _fx_catch_7); + FX_THROW(&v_19, false, _fx_catch_7); } - _fx_R9Ast__id_t rec_1 = { 0, v_17, 0 }; + _fx_R9Ast__id_t rec_1 = { 0, v_21, 0 }; *fx_result = rec_1; _fx_catch_7: ; - fx_free_exn(&v_16); + fx_free_exn(&v_19); goto _fx_endmatch_1; } } if (tag_0 == 7) { if (v_0->u.TypSInt == 16) { - fx_exn_t v_18 = {0}; + fx_exn_t v_23 = {0}; int_ h_idx_2; fx_str_t slit_10 = FX_MAKE_STR("int16"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_10, &h_idx_2, 0), _fx_catch_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_2), _fx_catch_8); - int_ idx_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2)->data; - int_ v_19; + _fx_Rt20Hashmap__hashentry_t2Si* v_24 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2); + int_ idx_3 = v_24->data; + int_ v_25; if (idx_3 >= 0) { - v_19 = idx_3; + v_25 = idx_3; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_4; fx_str_t slit_11 = FX_MAKE_STR("int16"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_11, &idx_4, 0), _fx_catch_8); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_2), _fx_catch_8); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2)->data = idx_4; - v_19 = idx_4; + _fx_Rt20Hashmap__hashentry_t2Si* v_26 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_2); + v_26->data = idx_4; + v_25 = idx_4; } else { fx_str_t slit_12 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_12, &v_18, 0), _fx_catch_8); - FX_THROW(&v_18, false, _fx_catch_8); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_12, &v_23, 0), _fx_catch_8); + FX_THROW(&v_23, false, _fx_catch_8); } - _fx_R9Ast__id_t rec_2 = { 0, v_19, 0 }; + _fx_R9Ast__id_t rec_2 = { 0, v_25, 0 }; *fx_result = rec_2; _fx_catch_8: ; - fx_free_exn(&v_18); + fx_free_exn(&v_23); goto _fx_endmatch_1; } } if (tag_0 == 7) { if (v_0->u.TypSInt == 32) { - fx_exn_t v_20 = {0}; + fx_exn_t v_27 = {0}; int_ h_idx_3; fx_str_t slit_13 = FX_MAKE_STR("int32"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_13, &h_idx_3, 0), _fx_catch_9); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_3), _fx_catch_9); - int_ idx_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3)->data; - int_ v_21; + _fx_Rt20Hashmap__hashentry_t2Si* v_28 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3); + int_ idx_5 = v_28->data; + int_ v_29; if (idx_5 >= 0) { - v_21 = idx_5; + v_29 = idx_5; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_6; fx_str_t slit_14 = FX_MAKE_STR("int32"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_14, &idx_6, 0), _fx_catch_9); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_3), _fx_catch_9); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3)->data = idx_6; - v_21 = idx_6; + _fx_Rt20Hashmap__hashentry_t2Si* v_30 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_3); + v_30->data = idx_6; + v_29 = idx_6; } else { fx_str_t slit_15 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_15, &v_20, 0), _fx_catch_9); - FX_THROW(&v_20, false, _fx_catch_9); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_15, &v_27, 0), _fx_catch_9); + FX_THROW(&v_27, false, _fx_catch_9); } - _fx_R9Ast__id_t rec_3 = { 0, v_21, 0 }; + _fx_R9Ast__id_t rec_3 = { 0, v_29, 0 }; *fx_result = rec_3; _fx_catch_9: ; - fx_free_exn(&v_20); + fx_free_exn(&v_27); goto _fx_endmatch_1; } } if (tag_0 == 7) { if (v_0->u.TypSInt == 64) { - fx_exn_t v_22 = {0}; + fx_exn_t v_31 = {0}; int_ h_idx_4; fx_str_t slit_16 = FX_MAKE_STR("int64"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_16, &h_idx_4, 0), _fx_catch_10); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_4), _fx_catch_10); - int_ idx_7 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_4)->data; - int_ v_23; + _fx_Rt20Hashmap__hashentry_t2Si* v_32 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_4); + int_ idx_7 = v_32->data; + int_ v_33; if (idx_7 >= 0) { - v_23 = idx_7; + v_33 = idx_7; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_8; fx_str_t slit_17 = FX_MAKE_STR("int64"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_17, &idx_8, 0), _fx_catch_10); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_4), _fx_catch_10); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_4)->data = idx_8; - v_23 = idx_8; + _fx_Rt20Hashmap__hashentry_t2Si* v_34 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_4); + v_34->data = idx_8; + v_33 = idx_8; } else { fx_str_t slit_18 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_18, &v_22, 0), _fx_catch_10); - FX_THROW(&v_22, false, _fx_catch_10); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_18, &v_31, 0), _fx_catch_10); + FX_THROW(&v_31, false, _fx_catch_10); } - _fx_R9Ast__id_t rec_4 = { 0, v_23, 0 }; + _fx_R9Ast__id_t rec_4 = { 0, v_33, 0 }; *fx_result = rec_4; _fx_catch_10: ; - fx_free_exn(&v_22); + fx_free_exn(&v_31); goto _fx_endmatch_1; } } if (tag_0 == 8) { if (v_0->u.TypUInt == 8) { - fx_exn_t v_24 = {0}; + fx_exn_t v_35 = {0}; int_ h_idx_5; fx_str_t slit_19 = FX_MAKE_STR("uint8"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_19, &h_idx_5, 0), _fx_catch_11); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_5), _fx_catch_11); - int_ idx_9 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_5)->data; - int_ v_25; + _fx_Rt20Hashmap__hashentry_t2Si* v_36 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_5); + int_ idx_9 = v_36->data; + int_ v_37; if (idx_9 >= 0) { - v_25 = idx_9; + v_37 = idx_9; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_10; fx_str_t slit_20 = FX_MAKE_STR("uint8"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_20, &idx_10, 0), _fx_catch_11); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_5), _fx_catch_11); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_5)->data = idx_10; - v_25 = idx_10; + _fx_Rt20Hashmap__hashentry_t2Si* v_38 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_5); + v_38->data = idx_10; + v_37 = idx_10; } else { fx_str_t slit_21 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_21, &v_24, 0), _fx_catch_11); - FX_THROW(&v_24, false, _fx_catch_11); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_21, &v_35, 0), _fx_catch_11); + FX_THROW(&v_35, false, _fx_catch_11); } - _fx_R9Ast__id_t rec_5 = { 0, v_25, 0 }; + _fx_R9Ast__id_t rec_5 = { 0, v_37, 0 }; *fx_result = rec_5; _fx_catch_11: ; - fx_free_exn(&v_24); + fx_free_exn(&v_35); goto _fx_endmatch_1; } } if (tag_0 == 8) { if (v_0->u.TypUInt == 16) { - fx_exn_t v_26 = {0}; + fx_exn_t v_39 = {0}; int_ h_idx_6; fx_str_t slit_22 = FX_MAKE_STR("uint16"); FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, &slit_22, &h_idx_6, 0), _fx_catch_12); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_6), _fx_catch_12); - int_ idx_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_6)->data; - int_ v_27; + _fx_Rt20Hashmap__hashentry_t2Si* v_40 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_6); + int_ idx_11 = v_40->data; + int_ v_41; if (idx_11 >= 0) { - v_27 = idx_11; + v_41 = idx_11; } else if (_fx_g19Ast__lock_all_names == 0) { int_ idx_12; fx_str_t slit_23 = FX_MAKE_STR("uint16"); FX_CALL(_fx_M3AstFM4pushi2Nt9Dynvec__t1SS(_fx_g14Ast__all_names, &slit_23, &idx_12, 0), _fx_catch_12); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_6), _fx_catch_12); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_6)->data = idx_12; - v_27 = idx_12; + _fx_Rt20Hashmap__hashentry_t2Si* v_42 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_6); + v_42->data = idx_12; + v_41 = idx_12; } else { fx_str_t slit_24 = FX_MAKE_STR("\'all_names\' are locked. Attempt to call get_id()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_24, &v_26, 0), _fx_catch_12); - FX_THROW(&v_26, false, _fx_catch_12); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_24, &v_39, 0), _fx_catch_12); + FX_THROW(&v_39, false, _fx_catch_12); } - _fx_R9Ast__id_t rec_6 = { 0, v_27, 0 }; + _fx_R9Ast__id_t rec_6 = { 0, v_41, 0 }; *fx_result = rec_6; _fx_catch_12: ; - fx_free_exn(&v_26); + fx_free_exn(&v_39); goto _fx_endmatch_1; } } @@ -22995,23 +23312,23 @@ FX_EXTERN_C int _fx_M3AstFM14get_cast_fnameRM4id_t2N10Ast__typ_tRM5loc_t( if (tag_0 == 11) { FX_CALL(_fx_M3AstFM12fname_stringRM4id_t0(fx_result, 0), _fx_catch_18); _fx_catch_18: ; goto _fx_endmatch_1; } - fx_str_t v_28 = {0}; - fx_str_t v_29 = {0}; - fx_exn_t v_30 = {0}; - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t_0, &v_28, 0), _fx_catch_19); + fx_str_t v_43 = {0}; + fx_str_t v_44 = {0}; + fx_exn_t v_45 = {0}; + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t_0, &v_43, 0), _fx_catch_19); fx_str_t slit_25 = FX_MAKE_STR("for type \'"); fx_str_t slit_26 = FX_MAKE_STR("\' there is no corresponding cast function"); { - const fx_str_t strs_1[] = { slit_25, v_28, slit_26 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_29), _fx_catch_19); + const fx_str_t strs_1[] = { slit_25, v_43, slit_26 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_44), _fx_catch_19); } - FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(loc_0, &v_29, &v_30), _fx_catch_19); - FX_THROW(&v_30, true, _fx_catch_19); + FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(loc_0, &v_44, &v_45), _fx_catch_19); + FX_THROW(&v_45, true, _fx_catch_19); _fx_catch_19: ; - fx_free_exn(&v_30); - FX_FREE_STR(&v_29); - FX_FREE_STR(&v_28); + fx_free_exn(&v_45); + FX_FREE_STR(&v_44); + FX_FREE_STR(&v_43); _fx_endmatch_1: ; @@ -23591,7 +23908,8 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data if (_fx_g10Ast__noloc.m_idx >= 0) { int_ v_13 = _fx_g10Ast__noloc.m_idx; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_13), _fx_catch_16); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_13))->u.defmodule_t.t1, &fname_0); + _fx_N16Ast__defmodule_t v_14 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_13); + fx_copy_str(&v_14->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_15 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_15, &fname_0); @@ -23612,16 +23930,16 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_14 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_14), _fx_catch_15); + _fx_LS v_15 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_15), _fx_catch_15); fx_str_t slit_20 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_20, v_14, &whole_msg_1, 0), _fx_catch_15); + FX_CALL(_fx_F4joinS2SLS(&slit_20, v_15, &whole_msg_1, 0), _fx_catch_15); _fx_catch_15: ; - if (v_14) { - _fx_free_LS(&v_14); + if (v_15) { + _fx_free_LS(&v_15); } } FX_CHECK_EXN(_fx_catch_16); @@ -23692,17 +24010,17 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data goto _fx_endmatch_1; } if (tag_0 == 15) { - fx_str_t v_15 = {0}; fx_str_t v_16 = {0}; + fx_str_t v_17 = {0}; fx_str_t result_7 = {0}; _fx_T2LN10Ast__typ_tN10Ast__typ_t* vcase_2 = &t_2->u.TypFun; - FX_CALL(_fx_M3AstFM6tl2strS1LN10Ast__typ_t(vcase_2->t0, &v_15, 0), _fx_catch_23); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(vcase_2->t1, &v_16, 0), _fx_catch_23); + FX_CALL(_fx_M3AstFM6tl2strS1LN10Ast__typ_t(vcase_2->t0, &v_16, 0), _fx_catch_23); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(vcase_2->t1, &v_17, 0), _fx_catch_23); fx_str_t slit_26 = FX_MAKE_STR("("); fx_str_t slit_27 = FX_MAKE_STR(" -> "); fx_str_t slit_28 = FX_MAKE_STR(")"); { - const fx_str_t strs_6[] = { slit_26, v_15, slit_27, v_16, slit_28 }; + const fx_str_t strs_6[] = { slit_26, v_16, slit_27, v_17, slit_28 }; FX_CALL(fx_strjoin(0, 0, 0, strs_6, 5, &result_7), _fx_catch_23); } FX_FREE_STR(&result_0); @@ -23711,8 +24029,8 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data _fx_catch_23: ; FX_FREE_STR(&result_7); + FX_FREE_STR(&v_17); FX_FREE_STR(&v_16); - FX_FREE_STR(&v_15); goto _fx_endmatch_1; } if (tag_0 == 18) { @@ -23751,29 +24069,29 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data goto _fx_endmatch_1; } if (tag_0 == 21) { - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_17 = {0}; - fx_arr_t v_18 = {0}; + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_18 = {0}; + fx_arr_t v_19 = {0}; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_0 = 0; fx_str_t result_9 = {0}; - _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&t_2->u.TypRecord->data, &v_17); + _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&t_2->u.TypRecord->data, &v_18); fx_str_t* dstptr_0 = 0; - FX_COPY_PTR(v_17.t0, &relems_0); + FX_COPY_PTR(v_18.t0, &relems_0); _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_0 = relems_0; int_ len_0 = fx_list_length(lst_0); { const int_ shape_0[] = { len_0 }; - FX_CALL(fx_make_arr(1, shape_0, sizeof(fx_str_t), (fx_free_t)fx_free_str, (fx_copy_t)fx_copy_str, 0, &v_18), + FX_CALL(fx_make_arr(1, shape_0, sizeof(fx_str_t), (fx_free_t)fx_free_str, (fx_copy_t)fx_copy_str, 0, &v_19), _fx_catch_28); } - dstptr_0 = (fx_str_t*)v_18.data; + dstptr_0 = (fx_str_t*)v_19.data; for (; lst_0; lst_0 = lst_0->tl, dstptr_0++) { _fx_R16Ast__val_flags_t flags_0 = {0}; _fx_N10Ast__typ_t t_4 = 0; fx_str_t prefix_0 = {0}; - fx_str_t v_19 = {0}; - fx_str_t prefix_1 = {0}; fx_str_t v_20 = {0}; + fx_str_t prefix_1 = {0}; fx_str_t v_21 = {0}; + fx_str_t v_22 = {0}; fx_str_t concat_str_0 = {0}; _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t* __pat___0 = &lst_0->hd; _fx_copy_R16Ast__val_flags_t(&__pat___0->t0, &flags_0); @@ -23793,38 +24111,38 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data t_5 = false; } if (t_5) { - fx_str_t slit_33 = FX_MAKE_STR(""); fx_copy_str(&slit_33, &v_19); + fx_str_t slit_33 = FX_MAKE_STR(""); fx_copy_str(&slit_33, &v_20); } else { - int_ v_22 = i_0.i; - FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_22), _fx_catch_27); - fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_22), &prefix_1); + int_ v_23 = i_0.i; + FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_23), _fx_catch_27); + fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_23), &prefix_1); if (i_0.m == 0) { - fx_copy_str(&prefix_1, &v_19); + fx_copy_str(&prefix_1, &v_20); } else { - FX_CALL(_fx_F6stringS1i(i_0.j, &v_20, 0), _fx_catch_27); + FX_CALL(_fx_F6stringS1i(i_0.j, &v_21, 0), _fx_catch_27); fx_str_t slit_34 = FX_MAKE_STR("@"); { - const fx_str_t strs_8[] = { prefix_1, slit_34, v_20 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_8, 3, &v_19), _fx_catch_27); + const fx_str_t strs_8[] = { prefix_1, slit_34, v_21 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_8, 3, &v_20), _fx_catch_27); } } } - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t_4, &v_21, 0), _fx_catch_27); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t_4, &v_22, 0), _fx_catch_27); fx_str_t slit_35 = FX_MAKE_STR(": "); { - const fx_str_t strs_9[] = { prefix_0, v_19, slit_35, v_21 }; + const fx_str_t strs_9[] = { prefix_0, v_20, slit_35, v_22 }; FX_CALL(fx_strjoin(0, 0, 0, strs_9, 4, &concat_str_0), _fx_catch_27); } fx_copy_str(&concat_str_0, dstptr_0); _fx_catch_27: ; FX_FREE_STR(&concat_str_0); + FX_FREE_STR(&v_22); FX_FREE_STR(&v_21); - FX_FREE_STR(&v_20); FX_FREE_STR(&prefix_1); - FX_FREE_STR(&v_19); + FX_FREE_STR(&v_20); FX_FREE_STR(&prefix_0); if (t_4) { _fx_free_N10Ast__typ_t(&t_4); @@ -23835,7 +24153,7 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data fx_str_t slit_36 = FX_MAKE_STR("{"); fx_str_t slit_37 = FX_MAKE_STR("}"); fx_str_t slit_38 = FX_MAKE_STR("; "); - FX_CALL(_fx_F12join_embraceS4SSSA1S(&slit_36, &slit_37, &slit_38, &v_18, &result_9, 0), _fx_catch_28); + FX_CALL(_fx_F12join_embraceS4SSSA1S(&slit_36, &slit_37, &slit_38, &v_19, &result_9, 0), _fx_catch_28); FX_FREE_STR(&result_0); fx_copy_str(&result_9, &result_0); FX_BREAK(_fx_catch_28); @@ -23845,21 +24163,21 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data if (relems_0) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_0); } - FX_FREE_ARR(&v_18); - _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_17); + FX_FREE_ARR(&v_19); + _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_18); goto _fx_endmatch_1; } if (tag_0 == 20) { - fx_str_t v_23 = {0}; fx_str_t v_24 = {0}; + fx_str_t v_25 = {0}; fx_str_t result_10 = {0}; _fx_T2iN10Ast__typ_t* vcase_3 = &t_2->u.TypArray; - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(vcase_3->t1, &v_23, 0), _fx_catch_29); - FX_CALL(_fx_F7__mul__S2Ci((char_)44, vcase_3->t0 - 1, &v_24, 0), _fx_catch_29); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(vcase_3->t1, &v_24, 0), _fx_catch_29); + FX_CALL(_fx_F7__mul__S2Ci((char_)44, vcase_3->t0 - 1, &v_25, 0), _fx_catch_29); fx_str_t slit_39 = FX_MAKE_STR(" ["); fx_str_t slit_40 = FX_MAKE_STR("]"); { - const fx_str_t strs_10[] = { v_23, slit_39, v_24, slit_40 }; + const fx_str_t strs_10[] = { v_24, slit_39, v_25, slit_40 }; FX_CALL(fx_strjoin(0, 0, 0, strs_10, 4, &result_10), _fx_catch_29); } FX_FREE_STR(&result_0); @@ -23868,17 +24186,17 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data _fx_catch_29: ; FX_FREE_STR(&result_10); + FX_FREE_STR(&v_25); FX_FREE_STR(&v_24); - FX_FREE_STR(&v_23); goto _fx_endmatch_1; } if (tag_0 == 16) { - fx_str_t v_25 = {0}; + fx_str_t v_26 = {0}; fx_str_t result_11 = {0}; - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t_2->u.TypList, &v_25, 0), _fx_catch_30); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t_2->u.TypList, &v_26, 0), _fx_catch_30); fx_str_t slit_41 = FX_MAKE_STR(" list"); { - const fx_str_t strs_11[] = { v_25, slit_41 }; + const fx_str_t strs_11[] = { v_26, slit_41 }; FX_CALL(fx_strjoin(0, 0, 0, strs_11, 2, &result_11), _fx_catch_30); } FX_FREE_STR(&result_0); @@ -23887,16 +24205,16 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data _fx_catch_30: ; FX_FREE_STR(&result_11); - FX_FREE_STR(&v_25); + FX_FREE_STR(&v_26); goto _fx_endmatch_1; } if (tag_0 == 17) { - fx_str_t v_26 = {0}; + fx_str_t v_27 = {0}; fx_str_t result_12 = {0}; - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t_2->u.TypVector, &v_26, 0), _fx_catch_31); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t_2->u.TypVector, &v_27, 0), _fx_catch_31); fx_str_t slit_42 = FX_MAKE_STR(" vector"); { - const fx_str_t strs_12[] = { v_26, slit_42 }; + const fx_str_t strs_12[] = { v_27, slit_42 }; FX_CALL(fx_strjoin(0, 0, 0, strs_12, 2, &result_12), _fx_catch_31); } FX_FREE_STR(&result_0); @@ -23905,16 +24223,16 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data _fx_catch_31: ; FX_FREE_STR(&result_12); - FX_FREE_STR(&v_26); + FX_FREE_STR(&v_27); goto _fx_endmatch_1; } if (tag_0 == 19) { - fx_str_t v_27 = {0}; + fx_str_t v_28 = {0}; fx_str_t result_13 = {0}; - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t_2->u.TypRef, &v_27, 0), _fx_catch_32); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t_2->u.TypRef, &v_28, 0), _fx_catch_32); fx_str_t slit_43 = FX_MAKE_STR(" ref"); { - const fx_str_t strs_13[] = { v_27, slit_43 }; + const fx_str_t strs_13[] = { v_28, slit_43 }; FX_CALL(fx_strjoin(0, 0, 0, strs_13, 2, &result_13), _fx_catch_32); } FX_FREE_STR(&result_0); @@ -23923,7 +24241,7 @@ FX_EXTERN_C int _fx_M3AstFM7typ2strS1N10Ast__typ_t(struct _fx_N10Ast__typ_t_data _fx_catch_32: ; FX_FREE_STR(&result_13); - FX_FREE_STR(&v_27); + FX_FREE_STR(&v_28); goto _fx_endmatch_1; } if (tag_0 == 22) { @@ -24115,8 +24433,8 @@ FX_EXTERN_C int _fx_M3AstFM5parseRM9pragmas_t2LT2SRM5loc_tRM9pragmas_t( if (loc_0->m_idx >= 0) { int_ v_16 = loc_0->m_idx; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_16), _fx_catch_2); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_16))->u.defmodule_t.t1, - &fname_0); + _fx_N16Ast__defmodule_t v_17 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_16); + fx_copy_str(&v_17->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_4 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_4, &fname_0); @@ -24137,16 +24455,16 @@ FX_EXTERN_C int _fx_M3AstFM5parseRM9pragmas_t2LT2SRM5loc_tRM9pragmas_t( fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_17 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_17), _fx_catch_0); + _fx_LS v_18 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_18), _fx_catch_0); fx_str_t slit_9 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_9, v_17, &whole_msg_1, 0), _fx_catch_0); + FX_CALL(_fx_F4joinS2SLS(&slit_9, v_18, &whole_msg_1, 0), _fx_catch_0); _fx_catch_0: ; - if (v_17) { - _fx_free_LS(&v_17); + if (v_18) { + _fx_free_LS(&v_18); } } FX_CHECK_EXN(_fx_catch_2); @@ -24164,10 +24482,10 @@ FX_EXTERN_C int _fx_M3AstFM5parseRM9pragmas_t2LT2SRM5loc_tRM9pragmas_t( } else { if (loc_0->m_idx >= 0) { - int_ v_18 = loc_0->m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_18), _fx_catch_2); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_18))->u.defmodule_t.t1, - &fname_1); + int_ v_19 = loc_0->m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_19), _fx_catch_2); + _fx_N16Ast__defmodule_t v_20 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_19); + fx_copy_str(&v_20->u.defmodule_t.t1, &fname_1); } else { fx_str_t slit_10 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_10, &fname_1); @@ -24188,16 +24506,16 @@ FX_EXTERN_C int _fx_M3AstFM5parseRM9pragmas_t2LT2SRM5loc_tRM9pragmas_t( fx_copy_str(&whole_msg_2, &whole_msg_3); } else { - _fx_LS v_19 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_2, all_compile_err_ctx_1, true, &v_19), _fx_catch_1); + _fx_LS v_21 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_2, all_compile_err_ctx_1, true, &v_21), _fx_catch_1); fx_str_t slit_15 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_15, v_19, &whole_msg_3, 0), _fx_catch_1); + FX_CALL(_fx_F4joinS2SLS(&slit_15, v_21, &whole_msg_3, 0), _fx_catch_1); _fx_catch_1: ; - if (v_19) { - _fx_free_LS(&v_19); + if (v_21) { + _fx_free_LS(&v_21); } } FX_CHECK_EXN(_fx_catch_2); @@ -25428,25 +25746,26 @@ FX_EXTERN_C int _fx_M3AstFM8walk_expN10Ast__exp_t2N10Ast__exp_tRM11ast_callb_t( _fx_N10Ast__exp_t v_76 = 0; _fx_R13Ast__deffun_t v_77 = {0}; _fx_rR13Ast__deffun_t df_0 = e_0->u.DefFun; - FX_COPY_PTR(df_0->data.df_templ_args, &v_73); + _fx_R13Ast__deffun_t* v_78 = &df_0->data; + FX_COPY_PTR(v_78->df_templ_args, &v_73); if (v_73 != 0) { FX_COPY_PTR(e_0, fx_result); } else { - _fx_R13Ast__deffun_t* v_78 = &df_0->data; - FX_COPY_PTR(v_78->df_body, &df_body_0); - FX_COPY_PTR(v_78->df_typ, &df_typ_0); - FX_COPY_PTR(v_78->df_args, &df_args_0); _fx_R13Ast__deffun_t* v_79 = &df_0->data; + FX_COPY_PTR(v_79->df_body, &df_body_0); + FX_COPY_PTR(v_79->df_typ, &df_typ_0); + FX_COPY_PTR(v_79->df_args, &df_args_0); + _fx_R13Ast__deffun_t* v_80 = &df_0->data; FX_CALL(_fx_M3AstFM11walk_plist_LN10Ast__pat_t2LN10Ast__pat_tRM11ast_callb_t(df_args_0, callb_0, &v_74, 0), _fx_catch_33); FX_CALL(_fx_M3AstFM9walk_typ_N10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t(df_typ_0, callb_0, &v_75, 0), _fx_catch_33); FX_CALL(_fx_M3AstFM9walk_exp_N10Ast__exp_t2N10Ast__exp_tRM11ast_callb_t(df_body_0, callb_0, &v_76, 0), _fx_catch_33); - _fx_make_R13Ast__deffun_t(&v_79->df_name, v_79->df_templ_args, v_74, v_75, v_76, &v_79->df_flags, v_79->df_scope, - &v_79->df_loc, v_79->df_templ_inst, &v_79->df_env, &v_77); - _fx_R13Ast__deffun_t* v_80 = &df_0->data; - _fx_free_R13Ast__deffun_t(v_80); - _fx_copy_R13Ast__deffun_t(&v_77, v_80); + _fx_make_R13Ast__deffun_t(&v_80->df_name, v_80->df_templ_args, v_74, v_75, v_76, &v_80->df_flags, v_80->df_scope, + &v_80->df_loc, v_80->df_templ_inst, &v_80->df_env, &v_77); + _fx_R13Ast__deffun_t* v_81 = &df_0->data; + _fx_free_R13Ast__deffun_t(v_81); + _fx_copy_R13Ast__deffun_t(&v_77, v_81); FX_COPY_PTR(e_0, fx_result); } @@ -25474,22 +25793,23 @@ FX_EXTERN_C int _fx_M3AstFM8walk_expN10Ast__exp_t2N10Ast__exp_tRM11ast_callb_t( } else if (tag_0 == 36) { _fx_N10Ast__typ_t dexn_typ_0 = 0; - _fx_N10Ast__typ_t v_81 = 0; - _fx_R13Ast__defexn_t v_82 = {0}; + _fx_N10Ast__typ_t v_82 = 0; + _fx_R13Ast__defexn_t v_83 = {0}; _fx_rR13Ast__defexn_t de_0 = e_0->u.DefExn; - FX_COPY_PTR(de_0->data.dexn_typ, &dexn_typ_0); - _fx_R13Ast__defexn_t* v_83 = &de_0->data; - FX_CALL(_fx_M3AstFM9walk_typ_N10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t(dexn_typ_0, callb_0, &v_81, 0), _fx_catch_34); - _fx_make_R13Ast__defexn_t(&v_83->dexn_name, v_81, v_83->dexn_scope, &v_83->dexn_loc, &v_82); _fx_R13Ast__defexn_t* v_84 = &de_0->data; - _fx_free_R13Ast__defexn_t(v_84); - _fx_copy_R13Ast__defexn_t(&v_82, v_84); + FX_COPY_PTR(v_84->dexn_typ, &dexn_typ_0); + _fx_R13Ast__defexn_t* v_85 = &de_0->data; + FX_CALL(_fx_M3AstFM9walk_typ_N10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t(dexn_typ_0, callb_0, &v_82, 0), _fx_catch_34); + _fx_make_R13Ast__defexn_t(&v_85->dexn_name, v_82, v_85->dexn_scope, &v_85->dexn_loc, &v_83); + _fx_R13Ast__defexn_t* v_86 = &de_0->data; + _fx_free_R13Ast__defexn_t(v_86); + _fx_copy_R13Ast__defexn_t(&v_83, v_86); FX_COPY_PTR(e_0, fx_result); _fx_catch_34: ; - _fx_free_R13Ast__defexn_t(&v_82); - if (v_81) { - _fx_free_N10Ast__typ_t(&v_81); + _fx_free_R13Ast__defexn_t(&v_83); + if (v_82) { + _fx_free_N10Ast__typ_t(&v_82); } if (dexn_typ_0) { _fx_free_N10Ast__typ_t(&dexn_typ_0); @@ -25497,23 +25817,24 @@ FX_EXTERN_C int _fx_M3AstFM8walk_expN10Ast__exp_t2N10Ast__exp_tRM11ast_callb_t( } else if (tag_0 == 37) { _fx_N10Ast__typ_t dt_typ_0 = 0; - _fx_N10Ast__typ_t v_85 = 0; - _fx_R13Ast__deftyp_t v_86 = {0}; + _fx_N10Ast__typ_t v_87 = 0; + _fx_R13Ast__deftyp_t v_88 = {0}; _fx_rR13Ast__deftyp_t dt_0 = e_0->u.DefTyp; - FX_COPY_PTR(dt_0->data.dt_typ, &dt_typ_0); - _fx_R13Ast__deftyp_t* v_87 = &dt_0->data; - FX_CALL(_fx_M3AstFM9walk_typ_N10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t(dt_typ_0, callb_0, &v_85, 0), _fx_catch_35); - _fx_make_R13Ast__deftyp_t(&v_87->dt_name, v_87->dt_templ_args, v_85, v_87->dt_finalized, v_87->dt_scope, &v_87->dt_loc, - &v_86); - _fx_R13Ast__deftyp_t* v_88 = &dt_0->data; - _fx_free_R13Ast__deftyp_t(v_88); - _fx_copy_R13Ast__deftyp_t(&v_86, v_88); + _fx_R13Ast__deftyp_t* v_89 = &dt_0->data; + FX_COPY_PTR(v_89->dt_typ, &dt_typ_0); + _fx_R13Ast__deftyp_t* v_90 = &dt_0->data; + FX_CALL(_fx_M3AstFM9walk_typ_N10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t(dt_typ_0, callb_0, &v_87, 0), _fx_catch_35); + _fx_make_R13Ast__deftyp_t(&v_90->dt_name, v_90->dt_templ_args, v_87, v_90->dt_finalized, v_90->dt_scope, &v_90->dt_loc, + &v_88); + _fx_R13Ast__deftyp_t* v_91 = &dt_0->data; + _fx_free_R13Ast__deftyp_t(v_91); + _fx_copy_R13Ast__deftyp_t(&v_88, v_91); FX_COPY_PTR(e_0, fx_result); _fx_catch_35: ; - _fx_free_R13Ast__deftyp_t(&v_86); - if (v_85) { - _fx_free_N10Ast__typ_t(&v_85); + _fx_free_R13Ast__deftyp_t(&v_88); + if (v_87) { + _fx_free_N10Ast__typ_t(&v_87); } if (dt_typ_0) { _fx_free_N10Ast__typ_t(&dt_typ_0); @@ -25522,54 +25843,54 @@ FX_EXTERN_C int _fx_M3AstFM8walk_expN10Ast__exp_t2N10Ast__exp_tRM11ast_callb_t( else if (tag_0 == 38) { _fx_LT2R9Ast__id_tN10Ast__typ_t dvar_cases_0 = 0; _fx_N10Ast__typ_t dvar_alias_0 = 0; - _fx_N10Ast__typ_t v_89 = 0; - _fx_LT2R9Ast__id_tN10Ast__typ_t v_90 = 0; - _fx_R17Ast__defvariant_t v_91 = {0}; + _fx_N10Ast__typ_t v_92 = 0; + _fx_LT2R9Ast__id_tN10Ast__typ_t v_93 = 0; + _fx_R17Ast__defvariant_t v_94 = {0}; _fx_rR17Ast__defvariant_t dvar_0 = e_0->u.DefVariant; - _fx_R17Ast__defvariant_t* v_92 = &dvar_0->data; - FX_COPY_PTR(v_92->dvar_cases, &dvar_cases_0); - FX_COPY_PTR(v_92->dvar_alias, &dvar_alias_0); - _fx_R17Ast__defvariant_t* v_93 = &dvar_0->data; - FX_CALL(_fx_M3AstFM9walk_typ_N10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t(dvar_alias_0, callb_0, &v_89, 0), _fx_catch_37); + _fx_R17Ast__defvariant_t* v_95 = &dvar_0->data; + FX_COPY_PTR(v_95->dvar_cases, &dvar_cases_0); + FX_COPY_PTR(v_95->dvar_alias, &dvar_alias_0); + _fx_R17Ast__defvariant_t* v_96 = &dvar_0->data; + FX_CALL(_fx_M3AstFM9walk_typ_N10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t(dvar_alias_0, callb_0, &v_92, 0), _fx_catch_37); _fx_LT2R9Ast__id_tN10Ast__typ_t lstend_2 = 0; _fx_LT2R9Ast__id_tN10Ast__typ_t lst_2 = dvar_cases_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_N10Ast__typ_t t_0 = 0; - _fx_N10Ast__typ_t v_94 = 0; + _fx_N10Ast__typ_t v_97 = 0; _fx_T2R9Ast__id_tN10Ast__typ_t tup_1 = {0}; _fx_T2R9Ast__id_tN10Ast__typ_t* __pat___1 = &lst_2->hd; _fx_R9Ast__id_t n_0 = __pat___1->t0; FX_COPY_PTR(__pat___1->t1, &t_0); - FX_CALL(_fx_M3AstFM9walk_typ_N10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t(t_0, callb_0, &v_94, 0), _fx_catch_36); - _fx_make_T2R9Ast__id_tN10Ast__typ_t(&n_0, v_94, &tup_1); + FX_CALL(_fx_M3AstFM9walk_typ_N10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t(t_0, callb_0, &v_97, 0), _fx_catch_36); + _fx_make_T2R9Ast__id_tN10Ast__typ_t(&n_0, v_97, &tup_1); _fx_LT2R9Ast__id_tN10Ast__typ_t node_2 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(&tup_1, 0, false, &node_2), _fx_catch_36); - FX_LIST_APPEND(v_90, lstend_2, node_2); + FX_LIST_APPEND(v_93, lstend_2, node_2); _fx_catch_36: ; _fx_free_T2R9Ast__id_tN10Ast__typ_t(&tup_1); - if (v_94) { - _fx_free_N10Ast__typ_t(&v_94); + if (v_97) { + _fx_free_N10Ast__typ_t(&v_97); } if (t_0) { _fx_free_N10Ast__typ_t(&t_0); } FX_CHECK_EXN(_fx_catch_37); } - _fx_make_R17Ast__defvariant_t(&v_93->dvar_name, v_93->dvar_templ_args, v_89, &v_93->dvar_flags, v_90, v_93->dvar_ctors, - v_93->dvar_templ_inst, v_93->dvar_ifaces, v_93->dvar_scope, &v_93->dvar_loc, &v_91); - _fx_R17Ast__defvariant_t* v_95 = &dvar_0->data; - _fx_free_R17Ast__defvariant_t(v_95); - _fx_copy_R17Ast__defvariant_t(&v_91, v_95); + _fx_make_R17Ast__defvariant_t(&v_96->dvar_name, v_96->dvar_templ_args, v_92, &v_96->dvar_flags, v_93, v_96->dvar_ctors, + v_96->dvar_templ_inst, v_96->dvar_ifaces, v_96->dvar_scope, &v_96->dvar_loc, &v_94); + _fx_R17Ast__defvariant_t* v_98 = &dvar_0->data; + _fx_free_R17Ast__defvariant_t(v_98); + _fx_copy_R17Ast__defvariant_t(&v_94, v_98); FX_COPY_PTR(e_0, fx_result); _fx_catch_37: ; - _fx_free_R17Ast__defvariant_t(&v_91); - if (v_90) { - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_90); + _fx_free_R17Ast__defvariant_t(&v_94); + if (v_93) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_93); } - if (v_89) { - _fx_free_N10Ast__typ_t(&v_89); + if (v_92) { + _fx_free_N10Ast__typ_t(&v_92); } if (dvar_alias_0) { _fx_free_N10Ast__typ_t(&dvar_alias_0); @@ -26571,13 +26892,14 @@ FX_EXTERN_C int _fx_M3AstFM12is_fixed_typB1N10Ast__typ_t(struct _fx_N10Ast__typ_ _fx_N10Ast__typ_t res_0 = 0; int fx_status = 0; FX_CALL(_fx_make_rB(true, &is_fixed_ref_0), _fx_cleanup); + bool* is_fixed_0 = &is_fixed_ref_0->data; _fx_M3AstFM7make_fpFPN10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t1rB(is_fixed_ref_0, &is_fixed_typ__0); FX_CALL( _fx_M3AstFM4SomeNt6option1FPN10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t1FPN10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t( &is_fixed_typ__0, &v_0), _fx_cleanup); _fx_make_R16Ast__ast_callb_t(v_0, _fx_g11Ast__None3_, _fx_g11Ast__None2_, &callb_0); FX_CALL(is_fixed_typ__0.fp(t_0, &callb_0, &res_0, is_fixed_typ__0.fcv), _fx_cleanup); - *fx_result = is_fixed_ref_0->data; + *fx_result = *is_fixed_0; _fx_cleanup: ; FX_FREE_REF_SIMPLE(&is_fixed_ref_0); @@ -26797,74 +27119,75 @@ FX_EXTERN_C int _fx_M3AstFM17calc_sets_closurei3iLRM4id_tNt10Hashmap__t2RM4id_tN &entry0_1, 0, 0, 0, &v_2, &v_3, &empty_idset_0), _fx_cleanup); for (int_ iter_0 = 0; iter_0 < iters_0; iter_0++) { _fx_rB changed_ref_0 = 0; - _fx_LR9Ast__id_t __fold_result___0 = 0; + _fx_LR9Ast__id_t res_0 = 0; _fx_LR9Ast__id_t v_8 = 0; fx_arr_t table_0 = {0}; fx_arr_t v_9 = {0}; FX_CALL(_fx_make_rB(false, &changed_ref_0), _fx_catch_2); + bool* changed_0 = &changed_ref_0->data; _fx_LR9Ast__id_t lst_0 = all_ids_1; for (; lst_0; lst_0 = lst_0->tl) { - _fx_Nt10Hashset__t1R9Ast__id_t res_0 = 0; + _fx_Nt10Hashset__t1R9Ast__id_t res_1 = 0; _fx_R9Ast__id_t* n_2 = &lst_0->hd; FX_CALL( _fx_M3AstFM11update_setsNt10Hashset__t1RM4id_t5RM4id_tNt10Hashmap__t2RM4id_tNt10Hashset__t1RM4id_trBNt10Hashset__t1RM4id_tNt10Hashset__t1RM4id_t( - n_2, all_sets_0, changed_ref_0, empty_idset_0, visited_ids_0, &res_0, 0), _fx_catch_0); + n_2, all_sets_0, changed_ref_0, empty_idset_0, visited_ids_0, &res_1, 0), _fx_catch_0); _fx_catch_0: ; - if (res_0) { - _fx_free_Nt10Hashset__t1R9Ast__id_t(&res_0); + if (res_1) { + _fx_free_Nt10Hashset__t1R9Ast__id_t(&res_1); } FX_CHECK_EXN(_fx_catch_2); } - if (!changed_ref_0->data) { + if (!*changed_0) { done_i_0 = iter_0 + 1; FX_BREAK(_fx_catch_2); } _fx_LR9Ast__id_t lst_1 = all_ids_1; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LR9Ast__id_t r_0 = 0; + _fx_LR9Ast__id_t v_10 = 0; _fx_R9Ast__id_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_1); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LR9Ast__id_t(a_0, res_0, true, &v_10), _fx_catch_1); + FX_FREE_LIST_SIMPLE(&res_0); + FX_COPY_PTR(v_10, &res_0); _fx_catch_1: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_10); FX_CHECK_EXN(_fx_catch_2); } - FX_COPY_PTR(__fold_result___0, &v_8); + FX_COPY_PTR(res_0, &v_8); FX_FREE_LIST_SIMPLE(&all_ids_1); FX_COPY_PTR(v_8, &all_ids_1); _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t entry0_2 = visited_ids_0->u.t.t0; fx_copy_arr(&visited_ids_0->u.t.t5, &table_0); - int_ v_10 = FX_ARR_SIZE(table_0, 0); - FX_CHKIDX_RANGE(FX_ARR_SIZE(table_0, 0), 0, v_10, 1, 1, 0, _fx_catch_2); + int_ v_11 = FX_ARR_SIZE(table_0, 0); + FX_CHKIDX_RANGE(FX_ARR_SIZE(table_0, 0), 0, v_11, 1, 1, 0, _fx_catch_2); _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* ptr_0 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, 0); - for (int_ i_2 = 0; i_2 < v_10; i_2++) { + for (int_ i_2 = 0; i_2 < v_11; i_2++) { ptr_0[i_2] = entry0_2; } visited_ids_0->u.t.t1 = 0; visited_ids_0->u.t.t2 = 0; visited_ids_0->u.t.t3 = 0; FX_CALL(_fx_M7HashsetFM9makeindexA1i1i(FX_ARR_SIZE(table_0, 0) * 2, &v_9, 0), _fx_catch_2); - fx_arr_t* v_11 = &visited_ids_0->u.t.t4; - FX_FREE_ARR(v_11); - fx_copy_arr(&v_9, v_11); + fx_arr_t* v_12 = &visited_ids_0->u.t.t4; + FX_FREE_ARR(v_12); + fx_copy_arr(&v_9, v_12); _fx_catch_2: ; FX_FREE_ARR(&v_9); FX_FREE_ARR(&table_0); FX_FREE_LIST_SIMPLE(&v_8); - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_0); FX_FREE_REF_SIMPLE(&changed_ref_0); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_cleanup); } if (done_i_0 <= 0) { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_12 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_12), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_12))->u.defmodule_t.t1, &fname_0); + int_ v_13 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_13), _fx_cleanup); + _fx_N16Ast__defmodule_t v_14 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_13); + fx_copy_str(&v_14->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_0 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_0, &fname_0); @@ -26884,16 +27207,16 @@ FX_EXTERN_C int _fx_M3AstFM17calc_sets_closurei3iLRM4id_tNt10Hashmap__t2RM4id_tN fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_13 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_13), _fx_catch_3); + _fx_LS v_15 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_15), _fx_catch_3); fx_str_t slit_4 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_4, v_13, &whole_msg_1, 0), _fx_catch_3); + FX_CALL(_fx_F4joinS2SLS(&slit_4, v_15, &whole_msg_1, 0), _fx_catch_3); _fx_catch_3: ; - if (v_13) { - _fx_free_LS(&v_13); + if (v_15) { + _fx_free_LS(&v_15); } } FX_CHECK_EXN(_fx_cleanup); @@ -26941,14 +27264,16 @@ static int _fx_Nt10Hashset__t1R9Ast__id_t v_1 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); + bool* changed_0 = &changed_ref_0->data; _fx_Ta2i v_2; FX_CALL(_fx_M3AstFM9find_idx_Ta2i2Nt10Hashmap__t2RM4id_tNt10Hashset__t1RM4id_tRM4id_t(all_sets_0, n_0, &v_2, 0), _fx_cleanup); int_ j_0 = v_2.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(all_sets_0->u.t.t5, 0, j_0), _fx_cleanup); - FX_COPY_PTR(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, all_sets_0->u.t.t5, j_0)->data, - &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, all_sets_0->u.t.t5, j_0); + FX_COPY_PTR(v_3->data, &v_1); _fx_M3AstFM4SomeNt6option1Nt10Hashset__t1RM4id_t1Nt10Hashset__t1RM4id_t(v_1, &v_0); } else { @@ -26957,42 +27282,45 @@ static int if (v_0.tag == 2) { fx_arr_t table_0 = {0}; _fx_Nt10Hashset__t1R9Ast__id_t set_n_0 = v_0.u.Some; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - _fx_Ta2i v_3; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + _fx_Ta2i v_4; FX_CALL( - _fx_M3AstFM9find_idx_Ta2i3Nt10Hashset__t1RM4id_tRM4id_tq(visited_ids_0, n_0, - __fold_result___0 & 9223372036854775807ULL, &v_3, 0), _fx_catch_1); - if (v_3.t1 >= 0) { + _fx_M3AstFM9find_idx_Ta2i3Nt10Hashset__t1RM4id_tRM4id_tq(visited_ids_0, n_0, h_0 & 9223372036854775807ULL, &v_4, 0), + _fx_catch_1); + if (v_4.t1 >= 0) { FX_COPY_PTR(set_n_0, fx_result); } else { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; - FX_CALL( - _fx_M3AstFM4add_v3Nt10Hashset__t1RM4id_tRM4id_tq(visited_ids_0, n_0, __fold_result___1 & 9223372036854775807ULL, 0), + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + FX_CALL(_fx_M3AstFM4add_v3Nt10Hashset__t1RM4id_tRM4id_tq(visited_ids_0, n_0, h_1 & 9223372036854775807ULL, 0), _fx_catch_1); int_ size0_0 = set_n_0->u.t.t1; fx_copy_arr(&set_n_0->u.t.t5, &table_0); - int_ v_4 = set_n_0->u.t.t2; - for (int_ j_1 = 0; j_1 < v_4; j_1++) { + int_ v_5 = set_n_0->u.t.t2; + for (int_ j_1 = 0; j_1 < v_5; j_1++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_1), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_6 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1); + if (v_6->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_1), _fx_catch_0); - _fx_R9Ast__id_t v_5 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_7 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1); + _fx_R9Ast__id_t v_8 = v_7->key; FX_CALL( _fx_M3AstFM10__lambda__v7RM4id_tNt10Hashmap__t2RM4id_tNt10Hashset__t1RM4id_trBNt10Hashset__t1RM4id_tRM4id_tNt10Hashset__t1RM4id_tNt10Hashset__t1RM4id_t( - &v_5, all_sets_0, changed_ref_0, empty_idset_0, n_0, set_n_0, visited_ids_0, 0), _fx_catch_0); + &v_8, all_sets_0, changed_ref_0, empty_idset_0, n_0, set_n_0, visited_ids_0, 0), _fx_catch_0); } _fx_catch_0: ; @@ -27000,7 +27328,7 @@ static int } int_ size1_0 = set_n_0->u.t.t1; if (size1_0 != size0_0) { - changed_ref_0->data = true; + *changed_0 = true; } FX_COPY_PTR(set_n_0, fx_result); } @@ -27050,13 +27378,17 @@ static int int_ v_0 = set_m_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_0; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_1 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_1->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_1 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_3 = v_2->key; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - FX_CALL( - _fx_M3AstFM4add_v3Nt10Hashset__t1RM4id_tRM4id_tq(set_n_0, &v_1, - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv, 0), _fx_catch_0); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_4 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + FX_CALL(_fx_M3AstFM4add_v3Nt10Hashset__t1RM4id_tRM4id_tq(set_n_0, &v_3, v_4->hv, 0), _fx_catch_0); } _fx_catch_0: ; @@ -27089,26 +27421,23 @@ FX_EXTERN_C int _fx_M3AstFM9get_ifacerRM14definterface_t2RM4id_tRM5loc_t( int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_0), _fx_cleanup); - FX_CHKIDX( - FX_CHKIDX1((*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0))->u.defmodule_t.t9->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N14Ast__id_info_t( - FX_PTR_1D(_fx_N14Ast__id_info_t, - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0))->u.defmodule_t.t9->u.t.t1, j_0), &v_0); + _fx_N16Ast__defmodule_t v_2 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.defmodule_t.t9->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N14Ast__id_info_t(FX_PTR_1D(_fx_N14Ast__id_info_t, v_2->u.defmodule_t.t9->u.t.t1, j_0), &v_0); } if (v_0.tag == 7) { FX_COPY_PTR(v_0.u.IdInterface, fx_result); } else { - fx_str_t v_2 = {0}; - fx_str_t fname_0 = {0}; fx_str_t v_3 = {0}; + fx_str_t fname_0 = {0}; fx_str_t v_4 = {0}; fx_str_t v_5 = {0}; + fx_str_t v_6 = {0}; fx_str_t whole_msg_0 = {0}; _fx_LS all_compile_err_ctx_0 = 0; fx_str_t whole_msg_1 = {0}; - fx_exn_t v_6 = {0}; + fx_exn_t v_7 = {0}; bool t_0; if ((bool)((iface_0->m == _fx_g9Ast__noid.m) & (iface_0->i == _fx_g9Ast__noid.i))) { t_0 = (bool)((iface_0->m == 0) | (iface_0->j == _fx_g9Ast__noid.j)); @@ -27117,30 +27446,31 @@ FX_EXTERN_C int _fx_M3AstFM9get_ifacerRM14definterface_t2RM4id_tRM5loc_t( t_0 = false; } if (t_0) { - fx_str_t slit_0 = FX_MAKE_STR(""); fx_copy_str(&slit_0, &v_2); + fx_str_t slit_0 = FX_MAKE_STR(""); fx_copy_str(&slit_0, &v_3); } else { - int_ v_7 = iface_0->i; - FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_7), _fx_catch_1); - fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_7), &v_2); + int_ v_8 = iface_0->i; + FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_8), _fx_catch_1); + fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_8), &v_3); } if (loc_0->m_idx >= 0) { - int_ v_8 = loc_0->m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_8), _fx_catch_1); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_8))->u.defmodule_t.t1, &fname_0); + int_ v_9 = loc_0->m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_9), _fx_catch_1); + _fx_N16Ast__defmodule_t v_10 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_9); + fx_copy_str(&v_10->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_1 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_1, &fname_0); } - FX_CALL(_fx_F6stringS1i(loc_0->line0, &v_3, 0), _fx_catch_1); - FX_CALL(_fx_F6stringS1i(loc_0->col0, &v_4, 0), _fx_catch_1); - FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(loc_0, &v_5, 0), _fx_catch_1); + FX_CALL(_fx_F6stringS1i(loc_0->line0, &v_4, 0), _fx_catch_1); + FX_CALL(_fx_F6stringS1i(loc_0->col0, &v_5, 0), _fx_catch_1); + FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(loc_0, &v_6, 0), _fx_catch_1); fx_str_t slit_2 = FX_MAKE_STR(":"); fx_str_t slit_3 = FX_MAKE_STR(":"); fx_str_t slit_4 = FX_MAKE_STR(": error: \'"); fx_str_t slit_5 = FX_MAKE_STR("\' is not an interface"); { - const fx_str_t strs_0[] = { fname_0, slit_2, v_3, slit_3, v_4, slit_4, v_2, slit_5, v_5 }; + const fx_str_t strs_0[] = { fname_0, slit_2, v_4, slit_3, v_5, slit_4, v_3, slit_5, v_6 }; FX_CALL(fx_strjoin(0, 0, 0, strs_0, 9, &whole_msg_0), _fx_catch_1); } FX_COPY_PTR(_fx_g24Ast__all_compile_err_ctx, &all_compile_err_ctx_0); @@ -27148,34 +27478,34 @@ FX_EXTERN_C int _fx_M3AstFM9get_ifacerRM14definterface_t2RM4id_tRM5loc_t( fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_9 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_9), _fx_catch_0); + _fx_LS v_11 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_11), _fx_catch_0); fx_str_t slit_6 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_6, v_9, &whole_msg_1, 0), _fx_catch_0); + FX_CALL(_fx_F4joinS2SLS(&slit_6, v_11, &whole_msg_1, 0), _fx_catch_0); _fx_catch_0: ; - if (v_9) { - _fx_free_LS(&v_9); + if (v_11) { + _fx_free_LS(&v_11); } } FX_CHECK_EXN(_fx_catch_1); - FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(loc_0, &whole_msg_1, &v_6), _fx_catch_1); - FX_THROW(&v_6, true, _fx_catch_1); + FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(loc_0, &whole_msg_1, &v_7), _fx_catch_1); + FX_THROW(&v_7, true, _fx_catch_1); _fx_catch_1: ; - fx_free_exn(&v_6); + fx_free_exn(&v_7); FX_FREE_STR(&whole_msg_1); if (all_compile_err_ctx_0) { _fx_free_LS(&all_compile_err_ctx_0); } FX_FREE_STR(&whole_msg_0); + FX_FREE_STR(&v_6); FX_FREE_STR(&v_5); FX_FREE_STR(&v_4); - FX_FREE_STR(&v_3); FX_FREE_STR(&fname_0); - FX_FREE_STR(&v_2); + FX_FREE_STR(&v_3); } _fx_cleanup: ; @@ -27212,7 +27542,8 @@ FX_EXTERN_C int _fx_M3AstFM14same_or_parentB3RM4id_tRM4id_tRM5loc_t( } else { FX_CALL(_fx_M3AstFM9get_ifacerRM14definterface_t2RM4id_tRM5loc_t(&iface_2, &loc_2, &v_0, 0), _fx_catch_0); - _fx_R9Ast__id_t di_base_0 = v_0->data.di_base; + _fx_R19Ast__definterface_t* v_1 = &v_0->data; + _fx_R9Ast__id_t di_base_0 = v_1->di_base; bool t_1; if ((bool)((di_base_0.m == _fx_g9Ast__noid.m) & (di_base_0.i == _fx_g9Ast__noid.i))) { t_1 = (bool)((di_base_0.m == 0) | (di_base_0.j == _fx_g9Ast__noid.j)); @@ -27254,9 +27585,9 @@ FX_EXTERN_C int _fx_M3AstFM8init_allv0(void* fx_fv) fx_arr_t table_2 = {0}; fx_arr_t v_2 = {0}; _fx_LS v_3 = 0; - _fx_LS __fold_result___0 = 0; + _fx_LS res_0 = 0; _fx_LS v_4 = 0; - _fx_LR9Ast__id_t res_0 = 0; + _fx_LR9Ast__id_t res_1 = 0; _fx_Rt20Hashmap__hashentry_t2Si entry0_3 = {0}; fx_arr_t table_3 = {0}; fx_arr_t v_5 = {0}; @@ -27324,46 +27655,47 @@ FX_EXTERN_C int _fx_M3AstFM8init_allv0(void* fx_fv) FX_COPY_PTR(_fx_g19Ast__builtin_ids19_.t0, &v_3); _fx_LS lst_0 = v_3; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LS r_0 = 0; + _fx_LS v_17 = 0; fx_str_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LS(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LS(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LS(a_0, res_0, true, &v_17), _fx_catch_0); + _fx_free_LS(&res_0); + FX_COPY_PTR(v_17, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LS(&r_0); + if (v_17) { + _fx_free_LS(&v_17); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &v_4); + FX_COPY_PTR(res_0, &v_4); _fx_LS lst_1 = v_4; for (; lst_1; lst_1 = lst_1->tl) { - fx_arr_t v_17 = {0}; + fx_arr_t v_18 = {0}; fx_arr_t old_data_0 = {0}; fx_str_t val0_0 = {0}; fx_arr_t new_data_0 = {0}; fx_str_t fname_0 = {0}; - fx_str_t v_18 = {0}; fx_str_t v_19 = {0}; fx_str_t v_20 = {0}; + fx_str_t v_21 = {0}; fx_str_t whole_msg_0 = {0}; _fx_LS all_compile_err_ctx_0 = 0; fx_str_t whole_msg_1 = {0}; - fx_exn_t v_21 = {0}; + fx_exn_t v_22 = {0}; fx_str_t* i_3 = &lst_1->hd; int_ h_idx_0; FX_CALL(_fx_M3AstFM18find_idx_or_inserti2Nt10Hashmap__t2SiS(_fx_g16Ast__all_strhash, i_3, &h_idx_0, 0), _fx_catch_3); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_catch_3); - int_ idx_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data; + _fx_Rt20Hashmap__hashentry_t2Si* v_23 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + int_ idx_0 = v_23->data; int_ t_0; if (idx_0 >= 0) { t_0 = idx_0; } else if (_fx_g19Ast__lock_all_names == 0) { - fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_17); - int_ sz_0 = FX_ARR_SIZE(v_17, 0); + fx_copy_arr(&_fx_g14Ast__all_names->u.t.t1, &v_18); + int_ sz_0 = FX_ARR_SIZE(v_18, 0); int_ n0_0 = _fx_g14Ast__all_names->u.t.t0; if (sz_0 <= n0_0) { int_ n1_0 = fx_maxi(n0_0, 128) * 2; @@ -27392,36 +27724,39 @@ FX_EXTERN_C int _fx_M3AstFM8init_allv0(void* fx_fv) FX_FREE_STR(&t_1); FX_CHECK_EXN(_fx_catch_3); } - fx_arr_t* v_22 = &_fx_g14Ast__all_names->u.t.t1; - FX_FREE_ARR(v_22); - fx_copy_arr(&new_data_0, v_22); + fx_arr_t* v_24 = &_fx_g14Ast__all_names->u.t.t1; + FX_FREE_ARR(v_24); + fx_copy_arr(&new_data_0, v_24); } _fx_g14Ast__all_names->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, n0_0), _fx_catch_3); - fx_str_t* v_23 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); - FX_FREE_STR(v_23); - fx_copy_str(i_3, v_23); + fx_str_t* v_25 = FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, n0_0); + FX_FREE_STR(v_25); + fx_copy_str(i_3, v_25); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_strhash->u.t.t5, 0, h_idx_0), _fx_catch_3); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0)->data = n0_0; + _fx_Rt20Hashmap__hashentry_t2Si* v_26 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, _fx_g16Ast__all_strhash->u.t.t5, h_idx_0); + v_26->data = n0_0; t_0 = n0_0; } else { if (_fx_g10Ast__noloc.m_idx >= 0) { - int_ v_24 = _fx_g10Ast__noloc.m_idx; - FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_24), _fx_catch_3); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_24))->u.defmodule_t.t1, &fname_0); + int_ v_27 = _fx_g10Ast__noloc.m_idx; + FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_27), _fx_catch_3); + _fx_N16Ast__defmodule_t v_28 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_27); + fx_copy_str(&v_28->u.defmodule_t.t1, &fname_0); } else { fx_str_t slit_0 = FX_MAKE_STR("unknown"); fx_copy_str(&slit_0, &fname_0); } - FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.line0, &v_18, 0), _fx_catch_3); - FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.col0, &v_19, 0), _fx_catch_3); - FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(&_fx_g10Ast__noloc, &v_20, 0), _fx_catch_3); + FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.line0, &v_19, 0), _fx_catch_3); + FX_CALL(_fx_F6stringS1i(_fx_g10Ast__noloc.col0, &v_20, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(&_fx_g10Ast__noloc, &v_21, 0), _fx_catch_3); fx_str_t slit_1 = FX_MAKE_STR(":"); fx_str_t slit_2 = FX_MAKE_STR(":"); fx_str_t slit_3 = FX_MAKE_STR(": error: \'all_names\' are locked. Attempt to call get_id()"); { - const fx_str_t strs_0[] = { fname_0, slit_1, v_18, slit_2, v_19, slit_3, v_20 }; + const fx_str_t strs_0[] = { fname_0, slit_1, v_19, slit_2, v_20, slit_3, v_21 }; FX_CALL(fx_strjoin(0, 0, 0, strs_0, 7, &whole_msg_0), _fx_catch_3); } FX_COPY_PTR(_fx_g24Ast__all_compile_err_ctx, &all_compile_err_ctx_0); @@ -27429,70 +27764,72 @@ FX_EXTERN_C int _fx_M3AstFM8init_allv0(void* fx_fv) fx_copy_str(&whole_msg_0, &whole_msg_1); } else { - _fx_LS v_25 = 0; - FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_25), _fx_catch_2); + _fx_LS v_29 = 0; + FX_CALL(_fx_cons_LS(&whole_msg_0, all_compile_err_ctx_0, true, &v_29), _fx_catch_2); fx_str_t slit_4 = FX_MAKE_STR("\n" U"\t"); - FX_CALL(_fx_F4joinS2SLS(&slit_4, v_25, &whole_msg_1, 0), _fx_catch_2); + FX_CALL(_fx_F4joinS2SLS(&slit_4, v_29, &whole_msg_1, 0), _fx_catch_2); _fx_catch_2: ; - if (v_25) { - _fx_free_LS(&v_25); + if (v_29) { + _fx_free_LS(&v_29); } } FX_CHECK_EXN(_fx_catch_3); - FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_21), _fx_catch_3); - FX_THROW(&v_21, true, _fx_catch_3); + FX_CALL(_fx_M3AstFM17make_CompileErrorE2RM5loc_tS(&_fx_g10Ast__noloc, &whole_msg_1, &v_22), _fx_catch_3); + FX_THROW(&v_22, true, _fx_catch_3); } _fx_catch_3: ; - fx_free_exn(&v_21); + fx_free_exn(&v_22); FX_FREE_STR(&whole_msg_1); if (all_compile_err_ctx_0) { _fx_free_LS(&all_compile_err_ctx_0); } FX_FREE_STR(&whole_msg_0); + FX_FREE_STR(&v_21); FX_FREE_STR(&v_20); FX_FREE_STR(&v_19); - FX_FREE_STR(&v_18); FX_FREE_STR(&fname_0); FX_FREE_ARR(&new_data_0); FX_FREE_STR(&val0_0); FX_FREE_ARR(&old_data_0); - FX_FREE_ARR(&v_17); + FX_FREE_ARR(&v_18); FX_CHECK_EXN(_fx_cleanup); } - FX_CALL(_fx_M3AstFM19fname_always_importLRM4id_t0(&res_0, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM19fname_always_importLRM4id_t0(&res_1, 0), _fx_cleanup); _fx_copy_Rt20Hashmap__hashentry_t2Si(&_fx_g21Ast__all_modules_hash->u.t.t0, &entry0_3); fx_copy_arr(&_fx_g21Ast__all_modules_hash->u.t.t5, &table_3); - int_ v_26 = FX_ARR_SIZE(table_3, 0); - FX_CHKIDX_RANGE(FX_ARR_SIZE(table_3, 0), 0, v_26, 1, 1, 0, _fx_cleanup); + int_ v_30 = FX_ARR_SIZE(table_3, 0); + FX_CHKIDX_RANGE(FX_ARR_SIZE(table_3, 0), 0, v_30, 1, 1, 0, _fx_cleanup); _fx_Rt20Hashmap__hashentry_t2Si* ptr_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2Si, table_3, 0); - for (int_ i_5 = 0; i_5 < v_26; i_5++) { - _fx_Rt20Hashmap__hashentry_t2Si* v_27 = ptr_3 + i_5; - _fx_free_Rt20Hashmap__hashentry_t2Si(v_27); - _fx_copy_Rt20Hashmap__hashentry_t2Si(&entry0_3, v_27); + for (int_ i_5 = 0; i_5 < v_30; i_5++) { + _fx_Rt20Hashmap__hashentry_t2Si* v_31 = ptr_3 + i_5; + _fx_free_Rt20Hashmap__hashentry_t2Si(v_31); + _fx_copy_Rt20Hashmap__hashentry_t2Si(&entry0_3, v_31); } _fx_g21Ast__all_modules_hash->u.t.t1 = 0; _fx_g21Ast__all_modules_hash->u.t.t2 = 0; _fx_g21Ast__all_modules_hash->u.t.t3 = 0; FX_CALL(_fx_M7HashmapFM9makeindexA1i1i(FX_ARR_SIZE(table_3, 0) * 2, &v_5, 0), _fx_cleanup); - fx_arr_t* v_28 = &_fx_g21Ast__all_modules_hash->u.t.t4; - FX_FREE_ARR(v_28); - fx_copy_arr(&v_5, v_28); + fx_arr_t* v_32 = &_fx_g21Ast__all_modules_hash->u.t.t4; + FX_FREE_ARR(v_32); + fx_copy_arr(&v_5, v_32); FX_FREE_ARR(&_fx_g16Ast__all_modules); fx_copy_arr(&z_1, &_fx_g16Ast__all_modules); fx_str_t slit_5 = FX_MAKE_STR(""); - int_ res_1; - FX_CALL(_fx_M3AstFM11find_modulei2RM4id_tS(&_fx_g17Ast__std__Names__, &slit_5, &res_1, 0), _fx_cleanup); - fx_str_t slit_6 = FX_MAKE_STR(""); int_ res_2; - FX_CALL(_fx_M3AstFM11find_modulei2RM4id_tS(&_fx_g19Ast__std__Runtime__, &slit_6, &res_2, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM11find_modulei2RM4id_tS(&_fx_g17Ast__std__Names__, &slit_5, &res_2, 0), _fx_cleanup); + fx_str_t slit_6 = FX_MAKE_STR(""); + int_ res_3; + FX_CALL(_fx_M3AstFM11find_modulei2RM4id_tS(&_fx_g19Ast__std__Runtime__, &slit_6, &res_3, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, 0), _fx_cleanup); - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, 0))->u.defmodule_t.t3 = false; + _fx_N16Ast__defmodule_t v_33 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, 0); + v_33->u.defmodule_t.t3 = false; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, 1), _fx_cleanup); - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, 1))->u.defmodule_t.t3 = false; + _fx_N16Ast__defmodule_t v_34 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, 1); + v_34->u.defmodule_t.t3 = false; FX_FREE_LIST_SIMPLE(&_fx_g23Ast__all_modules_sorted); _fx_g23Ast__all_modules_sorted = 0; _fx_FPi2R9Ast__id_tR9Ast__id_t cmp_id_fp_0 = { _fx_M3AstFM6cmp_idi2RM4id_tRM4id_t, 0 }; @@ -27523,13 +27860,13 @@ _fx_cleanup: ; if (v_3) { _fx_free_LS(&v_3); } - if (__fold_result___0) { - _fx_free_LS(&__fold_result___0); + if (res_0) { + _fx_free_LS(&res_0); } if (v_4) { _fx_free_LS(&v_4); } - FX_FREE_LIST_SIMPLE(&res_0); + FX_FREE_LIST_SIMPLE(&res_1); _fx_free_Rt20Hashmap__hashentry_t2Si(&entry0_3); FX_FREE_ARR(&table_3); FX_FREE_ARR(&v_5); @@ -27627,6 +27964,7 @@ FX_EXTERN_C int fx_init_Ast(void) _fx_make_R16Ast__ast_callb_t(v_1, v_2, _fx_g11Ast__None2_, &_fx_g14Ast__dup_callb); fx_str_t slit_9 = FX_MAKE_STR("_"); FX_CALL(_fx_M3AstFM6std_idT2RM4id_tT2LSi2ST2LSi(&slit_9, &_fx_g18Ast__builtin_ids1_, &_fx_g8Ast__v1_, 0), _fx_cleanup); + _fx_g12Ast__dummyid = _fx_g8Ast__v1_.t0; _fx_copy_T2LSi(&_fx_g8Ast__v1_.t1, &_fx_g18Ast__builtin_ids2_); fx_str_t slit_10 = FX_MAKE_STR("__fold_result__"); FX_CALL(_fx_M3AstFM6std_idT2RM4id_tT2LSi2ST2LSi(&slit_10, &_fx_g18Ast__builtin_ids2_, &_fx_g8Ast__v2_, 0), _fx_cleanup); diff --git a/compiler/bootstrap/Ast_pp.c b/compiler/bootstrap/Ast_pp.c index ed0009bd..00dddc9d 100644 --- a/compiler/bootstrap/Ast_pp.c +++ b/compiler/bootstrap/Ast_pp.c @@ -5496,7 +5496,8 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( } int_ n1_0 = __pat___5->t0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, n1_0), _fx_catch_23); - _fx_R9Ast__id_t n1_1 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, n1_0))->u.defmodule_t.t0; + _fx_N16Ast__defmodule_t v_21 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, n1_0); + _fx_R9Ast__id_t n1_1 = v_21->u.defmodule_t.t0; FX_CALL(_fx_M6Ast_ppFM4ppidv2R5PP__tR9Ast__id_t(pp_0, &n1_1, 0), _fx_catch_23); bool res_2; FX_CALL(_fx_M6Ast_ppFM6__ne__B2R9Ast__id_tR9Ast__id_t(&n1_1, &n2_0, &res_2, 0), _fx_catch_23); @@ -5519,7 +5520,8 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( _fx_LR9Ast__id_t nl_0 = vcase_1->t1; int_ m_0 = vcase_1->t0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_0), _fx_catch_28); - _fx_R9Ast__id_t m_1 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0))->u.defmodule_t.t0; + _fx_N16Ast__defmodule_t v_22 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0); + _fx_R9Ast__id_t m_1 = v_22->u.defmodule_t.t0; FX_CALL(_fx_M2PPFM5beginv1RM1t(pp_0, 0), _fx_catch_28); fx_str_t slit_51 = FX_MAKE_STR("from "); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_51, 0), _fx_catch_28); @@ -5567,18 +5569,18 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( FX_COPY_PTR(e_0->u.DirPragma.t0, &prl_0); _fx_LS lst_11 = prl_0; for (; lst_11; lst_11 = lst_11->tl, i_7 += 1) { - _fx_N10Ast__lit_t v_21 = {0}; + _fx_N10Ast__lit_t v_23 = {0}; fx_str_t* p_2 = &lst_11->hd; if (i_7 > 0) { fx_str_t slit_56 = FX_MAKE_STR(","); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_56, 0), _fx_catch_29); FX_CALL(_fx_M2PPFM5spacev1RM1t(pp_0, 0), _fx_catch_29); } - _fx_M3AstFM9LitStringN10Ast__lit_t1S(p_2, &v_21); - FX_CALL(_fx_M6Ast_ppFM5pplitv2R5PP__tN10Ast__lit_t(pp_0, &v_21, 0), _fx_catch_29); + _fx_M3AstFM9LitStringN10Ast__lit_t1S(p_2, &v_23); + FX_CALL(_fx_M6Ast_ppFM5pplitv2R5PP__tN10Ast__lit_t(pp_0, &v_23, 0), _fx_catch_29); _fx_catch_29: ; - _fx_free_N10Ast__lit_t(&v_21); + _fx_free_N10Ast__lit_t(&v_23); FX_CHECK_EXN(_fx_catch_30); } FX_CALL(_fx_M2PPFM3endv1RM1t(pp_0, 0), _fx_catch_30); @@ -5612,17 +5614,17 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( goto _fx_endmatch_3; } if (tag_1 == 2) { - fx_str_t v_22 = {0}; + fx_str_t v_24 = {0}; if (e_0->u.ExpBreak.t0) { - fx_str_t slit_59 = FX_MAKE_STR("@fold break"); fx_copy_str(&slit_59, &v_22); + fx_str_t slit_59 = FX_MAKE_STR("@fold break"); fx_copy_str(&slit_59, &v_24); } else { - fx_str_t slit_60 = FX_MAKE_STR("break"); fx_copy_str(&slit_60, &v_22); + fx_str_t slit_60 = FX_MAKE_STR("break"); fx_copy_str(&slit_60, &v_24); } - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_22, 0), _fx_catch_34); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_24, 0), _fx_catch_34); _fx_catch_34: ; - FX_FREE_STR(&v_22); + FX_FREE_STR(&v_24); goto _fx_endmatch_3; } if (tag_1 == 3) { @@ -5708,14 +5710,14 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( goto _fx_endmatch_3; } if (tag_1 == 7) { - _fx_N10Ast__typ_t v_23 = 0; + _fx_N10Ast__typ_t v_25 = 0; _fx_T2R9Ast__id_tT2N10Ast__typ_tR10Ast__loc_t* vcase_3 = &e_0->u.ExpIdent; - _fx_T2N10Ast__typ_tR10Ast__loc_t* v_24 = &vcase_3->t1; - _fx_N10Ast__typ_t t_2 = v_24->t0; + _fx_T2N10Ast__typ_tR10Ast__loc_t* v_26 = &vcase_3->t1; + _fx_N10Ast__typ_t t_2 = v_26->t0; _fx_R9Ast__id_t* n_1 = &vcase_3->t0; - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t_2, &v_23, 0), _fx_catch_45); - if (FX_REC_VARIANT_TAG(v_23) == 25) { - _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_4 = &v_23->u.TypApp; + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t_2, &v_25, 0), _fx_catch_45); + if (FX_REC_VARIANT_TAG(v_25) == 25) { + _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_4 = &v_25->u.TypApp; if (vcase_4->t0 == 0) { bool res_3; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&vcase_4->t1, n_1, &res_3, 0), _fx_catch_45); @@ -5726,7 +5728,7 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( } fx_str_t slit_69 = FX_MAKE_STR("<"); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_69, 0), _fx_catch_44); - FX_CALL(_fx_M6Ast_ppFM10pprint_typv4R5PP__tN10Ast__typ_tR10Ast__loc_tB(pp_0, t_2, &v_24->t1, true, 0), _fx_catch_44); + FX_CALL(_fx_M6Ast_ppFM10pprint_typv4R5PP__tN10Ast__typ_tR10Ast__loc_tB(pp_0, t_2, &v_26->t1, true, 0), _fx_catch_44); fx_str_t slit_70 = FX_MAKE_STR(">"); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_70, 0), _fx_catch_44); @@ -5737,14 +5739,14 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( FX_CALL(_fx_M6Ast_ppFM4ppidv2R5PP__tR9Ast__id_t(pp_0, n_1, 0), _fx_catch_45); _fx_catch_45: ; - if (v_23) { - _fx_free_N10Ast__typ_t(&v_23); + if (v_25) { + _fx_free_N10Ast__typ_t(&v_25); } goto _fx_endmatch_3; } if (tag_1 == 8) { - fx_str_t v_25 = {0}; - fx_str_t v_26 = {0}; + fx_str_t v_27 = {0}; + fx_str_t v_28 = {0}; _fx_N10Ast__exp_t e2_0 = 0; _fx_T4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_5 = &e_0->u.ExpBinary; _fx_N10Ast__exp_t e2_1 = vcase_5->t2; @@ -5752,13 +5754,13 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( fx_str_t slit_71 = FX_MAKE_STR("("); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_71, 0), _fx_catch_47); FX_CALL(_fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t(vcase_5->t1, pp_0, 0), _fx_catch_47); - FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(o_0, &v_25, 0), _fx_catch_47); + FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(o_0, &v_27, 0), _fx_catch_47); fx_str_t slit_72 = FX_MAKE_STR(" "); { - const fx_str_t strs_2[] = { slit_72, v_25 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 2, &v_26), _fx_catch_47); + const fx_str_t strs_2[] = { slit_72, v_27 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 2, &v_28), _fx_catch_47); } - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_26, 0), _fx_catch_47); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_28, 0), _fx_catch_47); if (FX_REC_VARIANT_TAG(o_0) == 26) { FX_CALL(_fx_M6Ast_ppFM11print_list_N10Ast__exp_t2N10Ast__exp_tR5PP__t(e2_1, pp_0, &e2_0, 0), _fx_catch_46); @@ -5777,8 +5779,8 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( if (e2_0) { _fx_free_N10Ast__exp_t(&e2_0); } - FX_FREE_STR(&v_26); - FX_FREE_STR(&v_25); + FX_FREE_STR(&v_28); + FX_FREE_STR(&v_27); goto _fx_endmatch_3; } if (tag_1 == 20) { @@ -5800,12 +5802,12 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( fx_str_t slit_75 = FX_MAKE_STR("."); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_75, 0), _fx_catch_51); if (FX_REC_VARIANT_TAG(e2_2) == 7) { - fx_str_t v_27 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&e2_2->u.ExpIdent.t0, &v_27, 0), _fx_catch_49); - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_27, 0), _fx_catch_49); + fx_str_t v_29 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&e2_2->u.ExpIdent.t0, &v_29, 0), _fx_catch_49); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_29, 0), _fx_catch_49); _fx_catch_49: ; - FX_FREE_STR(&v_27); + FX_FREE_STR(&v_29); } else { FX_CALL(_fx_M2PPFM3cutv1RM1t(pp_0, 0), _fx_catch_50); @@ -5819,80 +5821,80 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( goto _fx_endmatch_3; } if (tag_1 == 9) { - fx_str_t v_28 = {0}; + fx_str_t v_30 = {0}; _fx_T3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_8 = &e_0->u.ExpUnary; fx_str_t slit_76 = FX_MAKE_STR("("); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_76, 0), _fx_catch_52); - FX_CALL(_fx_M3AstFM6stringS1N12Ast__unary_t(&vcase_8->t0, &v_28, 0), _fx_catch_52); - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_28, 0), _fx_catch_52); + FX_CALL(_fx_M3AstFM6stringS1N12Ast__unary_t(&vcase_8->t0, &v_30, 0), _fx_catch_52); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_30, 0), _fx_catch_52); FX_CALL(_fx_M2PPFM5spacev1RM1t(pp_0, 0), _fx_catch_52); FX_CALL(_fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t(vcase_8->t1, pp_0, 0), _fx_catch_52); fx_str_t slit_77 = FX_MAKE_STR(")"); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_77, 0), _fx_catch_52); _fx_catch_52: ; - FX_FREE_STR(&v_28); + FX_FREE_STR(&v_30); goto _fx_endmatch_3; } if (tag_1 == 10) { - fx_str_t v_29 = {0}; - _fx_N10Ast__typ_t v_30 = 0; + fx_str_t v_31 = {0}; + _fx_N10Ast__typ_t v_32 = 0; _fx_LN10Ast__exp_t args_0 = 0; _fx_T3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_9 = &e_0->u.ExpIntrin; - _fx_T2N10Ast__typ_tR10Ast__loc_t* v_31 = &vcase_9->t2; - _fx_R10Ast__loc_t* loc_0 = &v_31->t1; + _fx_T2N10Ast__typ_tR10Ast__loc_t* v_33 = &vcase_9->t2; + _fx_R10Ast__loc_t* loc_0 = &v_33->t1; _fx_LN10Ast__exp_t args_1 = vcase_9->t1; _fx_N13Ast__intrin_t* i_8 = &vcase_9->t0; - FX_CALL(_fx_M3AstFM6stringS1N13Ast__intrin_t(i_8, &v_29, 0), _fx_catch_56); - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_29, 0), _fx_catch_56); + FX_CALL(_fx_M3AstFM6stringS1N13Ast__intrin_t(i_8, &v_31, 0), _fx_catch_56); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_31, 0), _fx_catch_56); fx_str_t slit_78 = FX_MAKE_STR("("); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_78, 0), _fx_catch_56); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_31->t0, &v_30, 0), _fx_catch_56); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_33->t0, &v_32, 0), _fx_catch_56); if (i_8->tag == 4) { - if (FX_REC_VARIANT_TAG(v_30) == 25) { - _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_10 = &v_30->u.TypApp; + if (FX_REC_VARIANT_TAG(v_32) == 25) { + _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_10 = &v_32->u.TypApp; if (vcase_10->t0 == 0) { - _fx_N10Ast__typ_t v_32 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_33 = {0}; - _fx_N10Ast__exp_t v_34 = 0; + _fx_N10Ast__typ_t v_34 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_35 = {0}; + _fx_N10Ast__exp_t v_36 = 0; _fx_R9Ast__id_t* tn_0 = &vcase_10->t1; - FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, tn_0, &v_32), _fx_catch_53); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_32, loc_0, &v_33); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(tn_0, &v_33, &v_34), _fx_catch_53); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_34, args_1, true, &args_0), _fx_catch_53); + FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, tn_0, &v_34), _fx_catch_53); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_34, loc_0, &v_35); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(tn_0, &v_35, &v_36), _fx_catch_53); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_36, args_1, true, &args_0), _fx_catch_53); _fx_catch_53: ; - if (v_34) { - _fx_free_N10Ast__exp_t(&v_34); + if (v_36) { + _fx_free_N10Ast__exp_t(&v_36); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_33); - if (v_32) { - _fx_free_N10Ast__typ_t(&v_32); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_35); + if (v_34) { + _fx_free_N10Ast__typ_t(&v_34); } goto _fx_endmatch_1; } } } if (i_8->tag == 5) { - if (FX_REC_VARIANT_TAG(v_30) == 25) { - _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_11 = &v_30->u.TypApp; + if (FX_REC_VARIANT_TAG(v_32) == 25) { + _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_11 = &v_32->u.TypApp; if (vcase_11->t0 == 0) { - _fx_N10Ast__typ_t v_35 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_36 = {0}; - _fx_N10Ast__exp_t v_37 = 0; + _fx_N10Ast__typ_t v_37 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_38 = {0}; + _fx_N10Ast__exp_t v_39 = 0; _fx_R9Ast__id_t* tn_1 = &vcase_11->t1; - FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, tn_1, &v_35), _fx_catch_54); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_35, loc_0, &v_36); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(tn_1, &v_36, &v_37), _fx_catch_54); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_37, args_1, true, &args_0), _fx_catch_54); + FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, tn_1, &v_37), _fx_catch_54); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_37, loc_0, &v_38); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(tn_1, &v_38, &v_39), _fx_catch_54); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_39, args_1, true, &args_0), _fx_catch_54); _fx_catch_54: ; - if (v_37) { - _fx_free_N10Ast__exp_t(&v_37); + if (v_39) { + _fx_free_N10Ast__exp_t(&v_39); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_36); - if (v_35) { - _fx_free_N10Ast__typ_t(&v_35); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_38); + if (v_37) { + _fx_free_N10Ast__typ_t(&v_37); } goto _fx_endmatch_1; } @@ -5923,10 +5925,10 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( if (args_0) { _fx_free_LN10Ast__exp_t(&args_0); } - if (v_30) { - _fx_free_N10Ast__typ_t(&v_30); + if (v_32) { + _fx_free_N10Ast__typ_t(&v_32); } - FX_FREE_STR(&v_29); + FX_FREE_STR(&v_31); goto _fx_endmatch_3; } if (tag_1 == 22) { @@ -5991,10 +5993,10 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( FX_COPY_PTR(vcase_12->t1, &relems_0); _fx_LT2R9Ast__id_tN10Ast__exp_t lst_14 = relems_0; for (; lst_14; lst_14 = lst_14->tl, i_11 += 1) { - _fx_N10Ast__exp_t v_38 = 0; + _fx_N10Ast__exp_t v_40 = 0; _fx_T2R9Ast__id_tN10Ast__exp_t* __pat___6 = &lst_14->hd; _fx_R9Ast__id_t n_2 = __pat___6->t0; - FX_COPY_PTR(__pat___6->t1, &v_38); + FX_COPY_PTR(__pat___6->t1, &v_40); if (i_11 > 0) { fx_str_t slit_87 = FX_MAKE_STR(","); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_87, 0), _fx_catch_61); @@ -6003,11 +6005,11 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( FX_CALL(_fx_M6Ast_ppFM4ppidv2R5PP__tR9Ast__id_t(pp_0, &n_2, 0), _fx_catch_61); fx_str_t slit_88 = FX_MAKE_STR("="); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_88, 0), _fx_catch_61); - FX_CALL(_fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t(v_38, pp_0, 0), _fx_catch_61); + FX_CALL(_fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t(v_40, pp_0, 0), _fx_catch_61); _fx_catch_61: ; - if (v_38) { - _fx_free_N10Ast__exp_t(&v_38); + if (v_40) { + _fx_free_N10Ast__exp_t(&v_40); } FX_CHECK_EXN(_fx_catch_62); } @@ -6035,10 +6037,10 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( FX_COPY_PTR(vcase_13->t1, &relems_1); _fx_LT2R9Ast__id_tN10Ast__exp_t lst_15 = relems_1; for (; lst_15; lst_15 = lst_15->tl, i_12 += 1) { - _fx_N10Ast__exp_t v_39 = 0; + _fx_N10Ast__exp_t v_41 = 0; _fx_T2R9Ast__id_tN10Ast__exp_t* __pat___7 = &lst_15->hd; _fx_R9Ast__id_t n_3 = __pat___7->t0; - FX_COPY_PTR(__pat___7->t1, &v_39); + FX_COPY_PTR(__pat___7->t1, &v_41); if (i_12 > 0) { fx_str_t slit_92 = FX_MAKE_STR(","); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_92, 0), _fx_catch_63); @@ -6047,11 +6049,11 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( FX_CALL(_fx_M6Ast_ppFM4ppidv2R5PP__tR9Ast__id_t(pp_0, &n_3, 0), _fx_catch_63); fx_str_t slit_93 = FX_MAKE_STR("="); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_93, 0), _fx_catch_63); - FX_CALL(_fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t(v_39, pp_0, 0), _fx_catch_63); + FX_CALL(_fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t(v_41, pp_0, 0), _fx_catch_63); _fx_catch_63: ; - if (v_39) { - _fx_free_N10Ast__exp_t(&v_39); + if (v_41) { + _fx_free_N10Ast__exp_t(&v_41); } FX_CHECK_EXN(_fx_catch_64); } @@ -6171,16 +6173,16 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( goto _fx_endmatch_3; } if (tag_1 == 19) { - fx_str_t v_40 = {0}; - fx_str_t v_41 = {0}; + fx_str_t v_42 = {0}; + fx_str_t v_43 = {0}; _fx_LN10Ast__exp_t args_3 = 0; _fx_T5N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_15 = &e_0->u.ExpAt; FX_CALL(_fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t(vcase_15->t0, pp_0, 0), _fx_catch_73); - FX_CALL(_fx_M3AstFM10border2strS2N13Ast__border_tB(&vcase_15->t1, true, &v_40, 0), _fx_catch_73); - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_40, 0), _fx_catch_73); - FX_CALL(_fx_M3AstFM10interp2strS2N18Ast__interpolate_tB(&vcase_15->t2, true, &v_41, 0), _fx_catch_73); - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_41, 0), _fx_catch_73); + FX_CALL(_fx_M3AstFM10border2strS2N13Ast__border_tB(&vcase_15->t1, true, &v_42, 0), _fx_catch_73); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_42, 0), _fx_catch_73); + FX_CALL(_fx_M3AstFM10interp2strS2N18Ast__interpolate_tB(&vcase_15->t2, true, &v_43, 0), _fx_catch_73); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_43, 0), _fx_catch_73); fx_str_t slit_105 = FX_MAKE_STR("["); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_105, 0), _fx_catch_73); FX_CALL(_fx_M2PPFM5beginv1RM1t(pp_0, 0), _fx_catch_73); @@ -6207,8 +6209,8 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( if (args_3) { _fx_free_LN10Ast__exp_t(&args_3); } - FX_FREE_STR(&v_41); - FX_FREE_STR(&v_40); + FX_FREE_STR(&v_43); + FX_FREE_STR(&v_42); goto _fx_endmatch_3; } if (tag_1 == 23) { @@ -6324,38 +6326,38 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( goto _fx_endmatch_3; } if (tag_1 == 27) { - _fx_Ta2S v_42 = {0}; + _fx_Ta2S v_44 = {0}; fx_str_t oparen_0 = {0}; fx_str_t cparen_0 = {0}; _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t map_cl_0 = 0; _fx_T4LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR16Ast__for_flags_tT2N10Ast__typ_tR10Ast__loc_t* vcase_20 = &e_0->u.ExpMap; _fx_R16Ast__for_flags_t* flags_0 = &vcase_20->t2; - _fx_N15Ast__for_make_t v_43 = flags_0->for_flag_make; - int tag_5 = v_43.tag; + _fx_N15Ast__for_make_t v_45 = flags_0->for_flag_make; + int tag_5 = v_45.tag; if (tag_5 == 3) { fx_str_t slit_118 = FX_MAKE_STR("[::"); fx_str_t slit_119 = FX_MAKE_STR("]"); - _fx_make_Ta2S(&slit_118, &slit_119, &v_42); + _fx_make_Ta2S(&slit_118, &slit_119, &v_44); } else if (tag_5 == 4) { fx_str_t slit_120 = FX_MAKE_STR("vector ["); fx_str_t slit_121 = FX_MAKE_STR("]"); - _fx_make_Ta2S(&slit_120, &slit_121, &v_42); + _fx_make_Ta2S(&slit_120, &slit_121, &v_44); } else if (tag_5 == 5) { fx_str_t slit_122 = FX_MAKE_STR("("); fx_str_t slit_123 = FX_MAKE_STR(")"); - _fx_make_Ta2S(&slit_122, &slit_123, &v_42); + _fx_make_Ta2S(&slit_122, &slit_123, &v_44); } else { fx_str_t slit_124 = FX_MAKE_STR("["); fx_str_t slit_125 = FX_MAKE_STR("]"); - _fx_make_Ta2S(&slit_124, &slit_125, &v_42); + _fx_make_Ta2S(&slit_124, &slit_125, &v_44); } FX_CHECK_EXN(_fx_catch_83); - fx_copy_str(&v_42.t0, &oparen_0); - fx_copy_str(&v_42.t1, &cparen_0); + fx_copy_str(&v_44.t0, &oparen_0); + fx_copy_str(&v_44.t1, &cparen_0); FX_CALL(_fx_M2PPFM5beginv1RM1t(pp_0, 0), _fx_catch_83); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &oparen_0, 0), _fx_catch_83); fx_str_t slit_126 = FX_MAKE_STR(" "); @@ -6439,7 +6441,7 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( } FX_FREE_STR(&cparen_0); FX_FREE_STR(&oparen_0); - _fx_free_Ta2S(&v_42); + _fx_free_Ta2S(&v_44); goto _fx_endmatch_3; } if (tag_1 == 29) { @@ -6516,25 +6518,25 @@ static int _fx_M6Ast_ppFM5ppexpv2N10Ast__exp_tR5PP__t( goto _fx_endmatch_3; } if (tag_1 == 33) { - fx_str_t v_44 = {0}; - fx_str_t v_45 = {0}; fx_str_t v_46 = {0}; + fx_str_t v_47 = {0}; + fx_str_t v_48 = {0}; _fx_T3SST2N10Ast__typ_tR10Ast__loc_t* vcase_25 = &e_0->u.ExpData; - FX_CALL(_fx_M6Ast_ppFM6stringS1S(&vcase_25->t0, &v_44, 0), _fx_catch_89); - FX_CALL(_fx_M6Ast_ppFM6stringS1S(&vcase_25->t1, &v_45, 0), _fx_catch_89); + FX_CALL(_fx_M6Ast_ppFM6stringS1S(&vcase_25->t0, &v_46, 0), _fx_catch_89); + FX_CALL(_fx_M6Ast_ppFM6stringS1S(&vcase_25->t1, &v_47, 0), _fx_catch_89); fx_str_t slit_143 = FX_MAKE_STR("@data("); fx_str_t slit_144 = FX_MAKE_STR(") \'"); fx_str_t slit_145 = FX_MAKE_STR("\'"); { - const fx_str_t strs_3[] = { slit_143, v_44, slit_144, v_45, slit_145 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_46), _fx_catch_89); + const fx_str_t strs_3[] = { slit_143, v_46, slit_144, v_47, slit_145 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_48), _fx_catch_89); } - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_46, 0), _fx_catch_89); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_48, 0), _fx_catch_89); _fx_catch_89: ; + FX_FREE_STR(&v_48); + FX_FREE_STR(&v_47); FX_FREE_STR(&v_46); - FX_FREE_STR(&v_45); - FX_FREE_STR(&v_44); goto _fx_endmatch_3; } bool res_4; @@ -7132,29 +7134,30 @@ FX_EXTERN_C int _fx_M6Ast_ppFM10pprint_modv1N16Ast__defmodule_t(struct _fx_N16As FX_CALL(_fx_M2PPFM5spacev1RM1t(&pp_0, 0), _fx_catch_1); } FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, n_0), _fx_catch_1); - _fx_R9Ast__id_t v_3 = (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, n_0))->u.defmodule_t.t0; + _fx_N16Ast__defmodule_t v_3 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, n_0); + _fx_R9Ast__id_t v_4 = v_3->u.defmodule_t.t0; bool res_0; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_3, &_fx_g9Ast__noid, &res_0, 0), _fx_catch_1); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_4, &_fx_g9Ast__noid, &res_0, 0), _fx_catch_1); if (res_0) { fx_str_t slit_3 = FX_MAKE_STR(""); fx_copy_str(&slit_3, &v_0); } else { - int_ v_4 = v_3.i; - FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_4), _fx_catch_1); - fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_4), &prefix_0); - if (v_3.m == 0) { + int_ v_5 = v_4.i; + FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, v_5), _fx_catch_1); + fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, v_5), &prefix_0); + if (v_4.m == 0) { fx_copy_str(&prefix_0, &v_0); } else { - _fx_R9Ast__id_t v_5; - FX_CALL(_fx_M3AstFM15get_module_nameRM4id_t1i(v_3.m, &v_5, 0), _fx_catch_1); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_5, &v_1, 0), _fx_catch_1); + _fx_R9Ast__id_t v_6; + FX_CALL(_fx_M3AstFM15get_module_nameRM4id_t1i(v_4.m, &v_6, 0), _fx_catch_1); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_6, &v_1, 0), _fx_catch_1); fx_str_t slit_4 = FX_MAKE_STR("."); { const fx_str_t strs_0[] = { v_1, slit_4 }; FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &m_prefix_0), _fx_catch_1); } - FX_CALL(_fx_F6stringS1i(v_3.j, &v_2, 0), _fx_catch_1); + FX_CALL(_fx_F6stringS1i(v_4.j, &v_2, 0), _fx_catch_1); fx_str_t slit_5 = FX_MAKE_STR("@"); { const fx_str_t strs_1[] = { m_prefix_0, prefix_0, slit_5, v_2 }; diff --git a/compiler/bootstrap/Ast_typecheck.c b/compiler/bootstrap/Ast_typecheck.c index 2dc690d9..ca8210fe 100644 --- a/compiler/bootstrap/Ast_typecheck.c +++ b/compiler/bootstrap/Ast_typecheck.c @@ -1473,18 +1473,17 @@ typedef struct _fx_T3N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_t { struct _fx_N18Ast__interpolate_t t2; } _fx_T3N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_t; -typedef struct _fx_T4LN10Ast__exp_tiii { - struct _fx_LN10Ast__exp_t_data_t* t0; - int_ t1; - int_ t2; - int_ t3; -} _fx_T4LN10Ast__exp_tiii; - typedef struct _fx_T2Bi { bool t0; int_ t1; } _fx_T2Bi; +typedef struct _fx_T3iiN10Ast__typ_t { + int_ t0; + int_ t1; + struct _fx_N10Ast__typ_t_data_t* t2; +} _fx_T3iiN10Ast__typ_t; + typedef struct _fx_T7iLN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t { int_ t0; struct _fx_LN10Ast__exp_t_data_t* t1; @@ -1495,28 +1494,6 @@ typedef struct _fx_T7iLN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiR struct _fx_Rt6Set__t1R9Ast__id_t t6; } _fx_T7iLN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t; -typedef struct _fx_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t { - int_ t0; - struct _fx_LN10Ast__exp_t_data_t* t1; - struct _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t_data_t* t2; - int_ t3; - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t t4; - struct _fx_Rt6Set__t1R9Ast__id_t t5; -} _fx_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t; - -typedef struct _fx_T4iLLN10Ast__exp_tBi { - int_ t0; - struct _fx_LLN10Ast__exp_t_data_t* t1; - bool t2; - int_ t3; -} _fx_T4iLLN10Ast__exp_tBi; - -typedef struct _fx_T3BiLN10Ast__exp_t { - bool t0; - int_ t1; - struct _fx_LN10Ast__exp_t_data_t* t2; -} _fx_T3BiLN10Ast__exp_t; - typedef struct _fx_T3SiN10Ast__typ_t { fx_str_t t0; int_ t1; @@ -1572,14 +1549,10 @@ typedef struct _fx_T2N10Ast__typ_ti { int_ t1; } _fx_T2N10Ast__typ_ti; -typedef struct _fx_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t { - int_ t0; - struct _fx_LT2N10Ast__pat_tN10Ast__exp_t_data_t* t1; - struct _fx_LN10Ast__exp_t_data_t* t2; - int_ t3; - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t t4; - struct _fx_Rt6Set__t1R9Ast__id_t t5; -} _fx_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t; +typedef struct _fx_Ta2LN10Ast__exp_t { + struct _fx_LN10Ast__exp_t_data_t* t0; + struct _fx_LN10Ast__exp_t_data_t* t1; +} _fx_Ta2LN10Ast__exp_t; typedef struct _fx_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t { struct _fx_N10Ast__pat_t_data_t* t0; @@ -1587,12 +1560,6 @@ typedef struct _fx_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Se struct _fx_Rt6Set__t1R9Ast__id_t t2; } _fx_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t; -typedef struct _fx_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t { - struct _fx_LN10Ast__exp_t_data_t* t0; - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t t1; - struct _fx_Rt6Set__t1R9Ast__id_t t2; -} _fx_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t; - typedef struct _fx_Ta2N10Ast__pat_t { struct _fx_N10Ast__pat_t_data_t* t0; struct _fx_N10Ast__pat_t_data_t* t1; @@ -1619,41 +1586,22 @@ typedef struct _fx_LT2iR10Ast__loc_t_data_t { struct _fx_T2iR10Ast__loc_t hd; } _fx_LT2iR10Ast__loc_t_data_t, *_fx_LT2iR10Ast__loc_t; -typedef struct _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t { - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t t0; - struct _fx_LT2iR10Ast__loc_t_data_t* t1; -} _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t; - -typedef struct _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t { - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t t0; - struct _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t_data_t* t1; -} _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t; - -typedef struct _fx_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB { - struct _fx_LN10Ast__pat_t_data_t* t0; - struct _fx_LN10Ast__typ_t_data_t* t1; - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t t2; - struct _fx_Rt6Set__t1R9Ast__id_t t3; - struct _fx_Rt6Set__t1R9Ast__id_t t4; - bool t5; -} _fx_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB; - typedef struct _fx_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t { struct _fx_N10Ast__pat_t_data_t* t0; struct _fx_Rt6Set__t1R9Ast__id_t t1; } _fx_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t; +typedef struct _fx_T3BBLN12Ast__scope_t { + bool t0; + bool t1; + struct _fx_LN12Ast__scope_t_data_t* t2; +} _fx_T3BBLN12Ast__scope_t; + typedef struct _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB { struct _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t_data_t* t0; bool t1; } _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB; -typedef struct _fx_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t { - struct _fx_LN10Ast__pat_t_data_t* t0; - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t t1; - struct _fx_Rt6Set__t1R9Ast__id_t t2; -} _fx_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t; - typedef struct _fx_T2rR17Ast__defvariant_tN10Ast__typ_t { struct _fx_rR17Ast__defvariant_t_data_t* t0; struct _fx_N10Ast__typ_t_data_t* t1; @@ -1664,18 +1612,6 @@ typedef struct _fx_T2LR9Ast__id_tLT2R9Ast__id_tN10Ast__typ_t { struct _fx_LT2R9Ast__id_tN10Ast__typ_t_data_t* t1; } _fx_T2LR9Ast__id_tLT2R9Ast__id_tN10Ast__typ_t; -typedef struct _fx_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t { - struct _fx_LT2R9Ast__id_tN10Ast__pat_t_data_t* t0; - struct _fx_LT2R9Ast__id_tN10Ast__pat_t_data_t* t1; - struct _fx_N10Ast__exp_t_data_t* t2; -} _fx_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t; - -typedef struct _fx_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t { - struct _fx_LN10Ast__pat_t_data_t* t0; - struct _fx_LN10Ast__pat_t_data_t* t1; - struct _fx_N10Ast__exp_t_data_t* t2; -} _fx_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t; - typedef struct _fx_T5BRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tN10Ast__typ_trR17Ast__defvariant_t { bool t0; struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t t1; @@ -5402,30 +5338,27 @@ static void _fx_make_T3N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_t( fx_result->t2 = *t2; } -static void _fx_free_T4LN10Ast__exp_tiii(struct _fx_T4LN10Ast__exp_tiii* dst) +static void _fx_free_T3iiN10Ast__typ_t(struct _fx_T3iiN10Ast__typ_t* dst) { - _fx_free_LN10Ast__exp_t(&dst->t0); + _fx_free_N10Ast__typ_t(&dst->t2); } -static void _fx_copy_T4LN10Ast__exp_tiii(struct _fx_T4LN10Ast__exp_tiii* src, struct _fx_T4LN10Ast__exp_tiii* dst) +static void _fx_copy_T3iiN10Ast__typ_t(struct _fx_T3iiN10Ast__typ_t* src, struct _fx_T3iiN10Ast__typ_t* dst) { - FX_COPY_PTR(src->t0, &dst->t0); + dst->t0 = src->t0; dst->t1 = src->t1; - dst->t2 = src->t2; - dst->t3 = src->t3; + FX_COPY_PTR(src->t2, &dst->t2); } -static void _fx_make_T4LN10Ast__exp_tiii( - struct _fx_LN10Ast__exp_t_data_t* t0, +static void _fx_make_T3iiN10Ast__typ_t( + int_ t0, int_ t1, - int_ t2, - int_ t3, - struct _fx_T4LN10Ast__exp_tiii* fx_result) + struct _fx_N10Ast__typ_t_data_t* t2, + struct _fx_T3iiN10Ast__typ_t* fx_result) { - FX_COPY_PTR(t0, &fx_result->t0); + fx_result->t0 = t0; fx_result->t1 = t1; - fx_result->t2 = t2; - fx_result->t3 = t3; + FX_COPY_PTR(t2, &fx_result->t2); } static void @@ -5477,100 +5410,6 @@ static void _fx_copy_Rt6Set__t1R9Ast__id_t(t6, &fx_result->t6); } -static void - _fx_free_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - struct _fx_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* - dst) -{ - _fx_free_LN10Ast__exp_t(&dst->t1); - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&dst->t2); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&dst->t4); - _fx_free_Rt6Set__t1R9Ast__id_t(&dst->t5); -} - -static void - _fx_copy_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - struct _fx_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* - src, - struct _fx_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* - dst) -{ - dst->t0 = src->t0; - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); - dst->t3 = src->t3; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&src->t4, &dst->t4); - _fx_copy_Rt6Set__t1R9Ast__id_t(&src->t5, &dst->t5); -} - -static void - _fx_make_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - int_ t0, - struct _fx_LN10Ast__exp_t_data_t* t1, - struct _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t_data_t* t2, - int_ t3, - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* t4, - struct _fx_Rt6Set__t1R9Ast__id_t* t5, - struct _fx_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* - fx_result) -{ - fx_result->t0 = t0; - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); - fx_result->t3 = t3; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(t4, &fx_result->t4); - _fx_copy_Rt6Set__t1R9Ast__id_t(t5, &fx_result->t5); -} - -static void _fx_free_T4iLLN10Ast__exp_tBi(struct _fx_T4iLLN10Ast__exp_tBi* dst) -{ - _fx_free_LLN10Ast__exp_t(&dst->t1); -} - -static void _fx_copy_T4iLLN10Ast__exp_tBi(struct _fx_T4iLLN10Ast__exp_tBi* src, struct _fx_T4iLLN10Ast__exp_tBi* dst) -{ - dst->t0 = src->t0; - FX_COPY_PTR(src->t1, &dst->t1); - dst->t2 = src->t2; - dst->t3 = src->t3; -} - -static void _fx_make_T4iLLN10Ast__exp_tBi( - int_ t0, - struct _fx_LLN10Ast__exp_t_data_t* t1, - bool t2, - int_ t3, - struct _fx_T4iLLN10Ast__exp_tBi* fx_result) -{ - fx_result->t0 = t0; - FX_COPY_PTR(t1, &fx_result->t1); - fx_result->t2 = t2; - fx_result->t3 = t3; -} - -static void _fx_free_T3BiLN10Ast__exp_t(struct _fx_T3BiLN10Ast__exp_t* dst) -{ - _fx_free_LN10Ast__exp_t(&dst->t2); -} - -static void _fx_copy_T3BiLN10Ast__exp_t(struct _fx_T3BiLN10Ast__exp_t* src, struct _fx_T3BiLN10Ast__exp_t* dst) -{ - dst->t0 = src->t0; - dst->t1 = src->t1; - FX_COPY_PTR(src->t2, &dst->t2); -} - -static void _fx_make_T3BiLN10Ast__exp_t( - bool t0, - int_ t1, - struct _fx_LN10Ast__exp_t_data_t* t2, - struct _fx_T3BiLN10Ast__exp_t* fx_result) -{ - fx_result->t0 = t0; - fx_result->t1 = t1; - FX_COPY_PTR(t2, &fx_result->t2); -} - static void _fx_free_T3SiN10Ast__typ_t(struct _fx_T3SiN10Ast__typ_t* dst) { fx_free_str(&dst->t0); @@ -5806,49 +5645,25 @@ static void _fx_make_T2N10Ast__typ_ti(struct _fx_N10Ast__typ_t_data_t* t0, int_ fx_result->t1 = t1; } -static void - _fx_free_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - struct _fx_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* - dst) +static void _fx_free_Ta2LN10Ast__exp_t(struct _fx_Ta2LN10Ast__exp_t* dst) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&dst->t1); - _fx_free_LN10Ast__exp_t(&dst->t2); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&dst->t4); - _fx_free_Rt6Set__t1R9Ast__id_t(&dst->t5); + _fx_free_LN10Ast__exp_t(&dst->t0); + _fx_free_LN10Ast__exp_t(&dst->t1); } -static void - _fx_copy_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - struct _fx_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* - src, - struct _fx_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* - dst) +static void _fx_copy_Ta2LN10Ast__exp_t(struct _fx_Ta2LN10Ast__exp_t* src, struct _fx_Ta2LN10Ast__exp_t* dst) { - dst->t0 = src->t0; + FX_COPY_PTR(src->t0, &dst->t0); FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); - dst->t3 = src->t3; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&src->t4, &dst->t4); - _fx_copy_Rt6Set__t1R9Ast__id_t(&src->t5, &dst->t5); } -static void - _fx_make_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - int_ t0, - struct _fx_LT2N10Ast__pat_tN10Ast__exp_t_data_t* t1, - struct _fx_LN10Ast__exp_t_data_t* t2, - int_ t3, - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* t4, - struct _fx_Rt6Set__t1R9Ast__id_t* t5, - struct _fx_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* - fx_result) +static void _fx_make_Ta2LN10Ast__exp_t( + struct _fx_LN10Ast__exp_t_data_t* t0, + struct _fx_LN10Ast__exp_t_data_t* t1, + struct _fx_Ta2LN10Ast__exp_t* fx_result) { - fx_result->t0 = t0; + FX_COPY_PTR(t0, &fx_result->t0); FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); - fx_result->t3 = t3; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(t4, &fx_result->t4); - _fx_copy_Rt6Set__t1R9Ast__id_t(t5, &fx_result->t5); } static void _fx_free_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( @@ -5879,34 +5694,6 @@ static void _fx_make_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6 _fx_copy_Rt6Set__t1R9Ast__id_t(t2, &fx_result->t2); } -static void _fx_free_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - struct _fx_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* dst) -{ - _fx_free_LN10Ast__exp_t(&dst->t0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&dst->t1); - _fx_free_Rt6Set__t1R9Ast__id_t(&dst->t2); -} - -static void _fx_copy_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - struct _fx_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* src, - struct _fx_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&src->t1, &dst->t1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&src->t2, &dst->t2); -} - -static void _fx_make_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - struct _fx_LN10Ast__exp_t_data_t* t0, - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* t1, - struct _fx_Rt6Set__t1R9Ast__id_t* t2, - struct _fx_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(t1, &fx_result->t1); - _fx_copy_Rt6Set__t1R9Ast__id_t(t2, &fx_result->t2); -} - static void _fx_free_Ta2N10Ast__pat_t(struct _fx_Ta2N10Ast__pat_t* dst) { _fx_free_N10Ast__pat_t(&dst->t0); @@ -5973,100 +5760,6 @@ static int _fx_cons_LT2iR10Ast__loc_t( FX_MAKE_LIST_IMPL(_fx_LT2iR10Ast__loc_t, FX_COPY_SIMPLE_BY_PTR); } -static void _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t( - struct _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t* dst) -{ - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&dst->t0); - fx_free_list_simple(&dst->t1); -} - -static void _fx_copy_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t( - struct _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t* src, - struct _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t* dst) -{ - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t( - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* t0, - struct _fx_LT2iR10Ast__loc_t_data_t* t1, - struct _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t* fx_result) -{ - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - -static void _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t( - struct _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* dst) -{ - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&dst->t0); - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&dst->t1); -} - -static void _fx_copy_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t( - struct _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* src, - struct _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* dst) -{ - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t( - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* t0, - struct _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t_data_t* t1, - struct _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* fx_result) -{ - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - -static void - _fx_free_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - struct _fx_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB* - dst) -{ - _fx_free_LN10Ast__pat_t(&dst->t0); - _fx_free_LN10Ast__typ_t(&dst->t1); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&dst->t2); - _fx_free_Rt6Set__t1R9Ast__id_t(&dst->t3); - _fx_free_Rt6Set__t1R9Ast__id_t(&dst->t4); -} - -static void - _fx_copy_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - struct _fx_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB* - src, - struct _fx_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB* - dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&src->t2, &dst->t2); - _fx_copy_Rt6Set__t1R9Ast__id_t(&src->t3, &dst->t3); - _fx_copy_Rt6Set__t1R9Ast__id_t(&src->t4, &dst->t4); - dst->t5 = src->t5; -} - -static void - _fx_make_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - struct _fx_LN10Ast__pat_t_data_t* t0, - struct _fx_LN10Ast__typ_t_data_t* t1, - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* t2, - struct _fx_Rt6Set__t1R9Ast__id_t* t3, - struct _fx_Rt6Set__t1R9Ast__id_t* t4, - bool t5, - struct _fx_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB* - fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(t2, &fx_result->t2); - _fx_copy_Rt6Set__t1R9Ast__id_t(t3, &fx_result->t3); - _fx_copy_Rt6Set__t1R9Ast__id_t(t4, &fx_result->t4); - fx_result->t5 = t5; -} - static void _fx_free_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t(struct _fx_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t* dst) { _fx_free_N10Ast__pat_t(&dst->t0); @@ -6090,6 +5783,29 @@ static void _fx_make_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t( _fx_copy_Rt6Set__t1R9Ast__id_t(t1, &fx_result->t1); } +static void _fx_free_T3BBLN12Ast__scope_t(struct _fx_T3BBLN12Ast__scope_t* dst) +{ + fx_free_list_simple(&dst->t2); +} + +static void _fx_copy_T3BBLN12Ast__scope_t(struct _fx_T3BBLN12Ast__scope_t* src, struct _fx_T3BBLN12Ast__scope_t* dst) +{ + dst->t0 = src->t0; + dst->t1 = src->t1; + FX_COPY_PTR(src->t2, &dst->t2); +} + +static void _fx_make_T3BBLN12Ast__scope_t( + bool t0, + bool t1, + struct _fx_LN12Ast__scope_t_data_t* t2, + struct _fx_T3BBLN12Ast__scope_t* fx_result) +{ + fx_result->t0 = t0; + fx_result->t1 = t1; + FX_COPY_PTR(t2, &fx_result->t2); +} + static void _fx_free_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(struct _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB* dst) { _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&dst->t0); @@ -6112,34 +5828,6 @@ static void _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB( fx_result->t1 = t1; } -static void _fx_free_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - struct _fx_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* dst) -{ - _fx_free_LN10Ast__pat_t(&dst->t0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&dst->t1); - _fx_free_Rt6Set__t1R9Ast__id_t(&dst->t2); -} - -static void _fx_copy_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - struct _fx_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* src, - struct _fx_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&src->t1, &dst->t1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&src->t2, &dst->t2); -} - -static void _fx_make_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - struct _fx_LN10Ast__pat_t_data_t* t0, - struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* t1, - struct _fx_Rt6Set__t1R9Ast__id_t* t2, - struct _fx_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(t1, &fx_result->t1); - _fx_copy_Rt6Set__t1R9Ast__id_t(t2, &fx_result->t2); -} - static void _fx_free_T2rR17Ast__defvariant_tN10Ast__typ_t(struct _fx_T2rR17Ast__defvariant_tN10Ast__typ_t* dst) { _fx_free_rR17Ast__defvariant_t(&dst->t0); @@ -6186,61 +5874,6 @@ static void _fx_make_T2LR9Ast__id_tLT2R9Ast__id_tN10Ast__typ_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - struct _fx_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t* dst) -{ - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&dst->t0); - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&dst->t1); - _fx_free_N10Ast__exp_t(&dst->t2); -} - -static void _fx_copy_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - struct _fx_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t* src, - struct _fx_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); -} - -static void _fx_make_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - struct _fx_LT2R9Ast__id_tN10Ast__pat_t_data_t* t0, - struct _fx_LT2R9Ast__id_tN10Ast__pat_t_data_t* t1, - struct _fx_N10Ast__exp_t_data_t* t2, - struct _fx_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); -} - -static void _fx_free_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t(struct _fx_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t* dst) -{ - _fx_free_LN10Ast__pat_t(&dst->t0); - _fx_free_LN10Ast__pat_t(&dst->t1); - _fx_free_N10Ast__exp_t(&dst->t2); -} - -static void _fx_copy_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t( - struct _fx_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t* src, - struct _fx_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); -} - -static void _fx_make_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t( - struct _fx_LN10Ast__pat_t_data_t* t0, - struct _fx_LN10Ast__pat_t_data_t* t1, - struct _fx_N10Ast__exp_t_data_t* t2, - struct _fx_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); -} - static void _fx_free_T5BRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tN10Ast__typ_trR17Ast__defvariant_t( struct _fx_T5BRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tN10Ast__typ_trR17Ast__defvariant_t* dst) { @@ -8174,29 +7807,31 @@ return fx_list_length(l); } -FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LN10Ast__pat_t(struct _fx_LN10Ast__pat_t_data_t* l, void* fx_fv) +FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LT2N10Ast__exp_tB(struct _fx_LT2N10Ast__exp_tB_data_t* l, void* fx_fv) { return fx_list_length(l); } -FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LT2N10Ast__exp_tB(struct _fx_LT2N10Ast__exp_tB_data_t* l, void* fx_fv) +FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LR9Ast__id_t(struct _fx_LR9Ast__id_t_data_t* l, void* fx_fv) { return fx_list_length(l); } -FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LR9Ast__id_t(struct _fx_LR9Ast__id_t_data_t* l, void* fx_fv) +FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LT2R9Ast__id_trR13Ast__deffun_t( + struct _fx_LT2R9Ast__id_trR13Ast__deffun_t_data_t* l, + void* fx_fv) { return fx_list_length(l); } -FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LT2R9Ast__id_trR13Ast__deffun_t( - struct _fx_LT2R9Ast__id_trR13Ast__deffun_t_data_t* l, +FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t( + struct _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t_data_t* l, void* fx_fv) { @@ -8204,23 +7839,21 @@ return fx_list_length(l); } -FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LN10Ast__exp_t(struct _fx_LN10Ast__exp_t_data_t* l, void* fx_fv) +FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LN10Ast__typ_t(struct _fx_LN10Ast__typ_t_data_t* l, void* fx_fv) { return fx_list_length(l); } -FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t( - struct _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t_data_t* l, - void* fx_fv) +FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LN10Ast__exp_t(struct _fx_LN10Ast__exp_t_data_t* l, void* fx_fv) { return fx_list_length(l); } -FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LN10Ast__typ_t(struct _fx_LN10Ast__typ_t_data_t* l, void* fx_fv) +FX_EXTERN_C int_ _fx_M13Ast_typecheckFM6lengthi1LN10Ast__pat_t(struct _fx_LN10Ast__pat_t_data_t* l, void* fx_fv) { return fx_list_length(l); @@ -8747,32 +8380,11 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM15__eq_variants__B2N10Ast__typ_tN10Ast__ty bool v_3; FX_CALL(_fx_M13Ast_typecheckFM6__eq__B2LN10Ast__typ_tLN10Ast__typ_t(vcase_5->t0, vcase_4->t0, &v_3, 0), _fx_catch_9); - bool __fold_result___0 = true; - bool t_0; - if (a1_0->m == b1_0->m) { - t_0 = __fold_result___0; - } - else { - t_0 = false; - } - __fold_result___0 = t_0; - bool t_1; - if (a1_0->i == b1_0->i) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (a1_0->j == b1_0->j) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - result_0 = (bool)(v_3 & __fold_result___0); + bool f_0 = true; + f_0 = (bool)(f_0 & (a1_0->m == b1_0->m)); + f_0 = (bool)(f_0 & (a1_0->i == b1_0->i)); + f_0 = (bool)(f_0 & (a1_0->j == b1_0->j)); + result_0 = (bool)(v_3 & f_0); FX_BREAK(_fx_catch_9); _fx_catch_9: ; @@ -8809,62 +8421,6 @@ _fx_cleanup: ; return fx_status; } -FX_EXTERN_C int _fx_M13Ast_typecheckFM15__eq_variants__B2N16Ast__env_entry_tN16Ast__env_entry_t( - struct _fx_N16Ast__env_entry_t_data_t* a_0, - struct _fx_N16Ast__env_entry_t_data_t* b_0, - bool* fx_result, - void* fx_fv) -{ - int fx_status = 0; - if (FX_REC_VARIANT_TAG(b_0) == 1) { - if (FX_REC_VARIANT_TAG(a_0) == 1) { - _fx_R9Ast__id_t* a0_0 = &a_0->u.EnvId; - _fx_R9Ast__id_t* b0_0 = &b_0->u.EnvId; - bool __fold_result___0 = true; - bool t_0; - if (a0_0->m == b0_0->m) { - t_0 = __fold_result___0; - } - else { - t_0 = false; - } - __fold_result___0 = t_0; - bool t_1; - if (a0_0->i == b0_0->i) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (a0_0->j == b0_0->j) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - *fx_result = __fold_result___0; - goto _fx_endmatch_0; - } - } - if (FX_REC_VARIANT_TAG(b_0) == 2) { - if (FX_REC_VARIANT_TAG(a_0) == 2) { - FX_CALL( - _fx_M13Ast_typecheckFM15__eq_variants__B2N10Ast__typ_tN10Ast__typ_t(a_0->u.EnvTyp, b_0->u.EnvTyp, fx_result, 0), - _fx_catch_0); - - _fx_catch_0: ; - goto _fx_endmatch_0; - } - } - *fx_result = FX_REC_VARIANT_TAG(a_0) == FX_REC_VARIANT_TAG(b_0); - -_fx_endmatch_0: ; - return fx_status; -} - FX_EXTERN_C bool _fx_M13Ast_typecheckFM8__same__B2LN10Ast__typ_tLN10Ast__typ_t( struct _fx_LN10Ast__typ_t_data_t* a, struct _fx_LN10Ast__typ_t_data_t* b, @@ -9008,69 +8564,62 @@ static int _fx_M13Ast_typecheckFM6qsort_v5iiA1T2iSFPB2T2iST2iSi( } } } - int_ __fold_result___0 = lo_2; + int_ i0_0 = lo_2; int_ n_0 = FX_LOOP_COUNT(lo_2, hi_2, 1); for (int_ j_0 = 0; j_0 < n_0; j_0++) { _fx_T2iS v_9 = {0}; int_ j_1 = lo_2 + j_0 * 1; - int_ i0_0 = __fold_result___0; FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, j_1), _fx_catch_0); _fx_copy_T2iS(FX_PTR_1D(_fx_T2iS, *arr_0, j_1), &v_9); bool v_10; FX_CALL(lt_0->fp(&v_9, &p_1, &v_10, lt_0->fcv), _fx_catch_0); - int_ v_11; if (v_10) { - _fx_M13Ast_typecheckFM6_swap_v3A1T2iSii(arr_0, i0_0, j_1, 0); v_11 = i0_0 + 1; + _fx_M13Ast_typecheckFM6_swap_v3A1T2iSii(arr_0, i0_0, j_1, 0); i0_0 = i0_0 + 1; } - else { - v_11 = i0_0; - } - __fold_result___0 = v_11; _fx_catch_0: ; _fx_free_T2iS(&v_9); FX_CHECK_EXN(_fx_catch_2); } - int_ i0_1 = __fold_result___0; - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_1), _fx_catch_2); - _fx_copy_T2iS(FX_PTR_1D(_fx_T2iS, *arr_0, i0_1), &a_1); + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_0), _fx_catch_2); + _fx_copy_T2iS(FX_PTR_1D(_fx_T2iS, *arr_0, i0_0), &a_1); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); - _fx_T2iS* v_12 = FX_PTR_1D(_fx_T2iS, *arr_0, hi_2); + _fx_T2iS* v_11 = FX_PTR_1D(_fx_T2iS, *arr_0, hi_2); + _fx_free_T2iS(v_11); + _fx_copy_T2iS(&a_1, v_11); + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_0), _fx_catch_2); + _fx_T2iS* v_12 = FX_PTR_1D(_fx_T2iS, *arr_0, i0_0); _fx_free_T2iS(v_12); - _fx_copy_T2iS(&a_1, v_12); - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_1), _fx_catch_2); - _fx_T2iS* v_13 = FX_PTR_1D(_fx_T2iS, *arr_0, i0_1); - _fx_free_T2iS(v_13); - _fx_copy_T2iS(&p_1, v_13); + _fx_copy_T2iS(&p_1, v_12); int_ i1_0 = hi_2; - int_ n_1 = FX_LOOP_COUNT(i0_1, hi_2, 1); + int_ n_1 = FX_LOOP_COUNT(i0_0, hi_2, 1); for (int_ j_2 = 0; j_2 < n_1; j_2++) { - _fx_T2iS v_14 = {0}; - int_ j_3 = i0_1 + j_2 * 1; - int_ v_15 = j_3 + 1; - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, v_15), _fx_catch_1); - _fx_copy_T2iS(FX_PTR_1D(_fx_T2iS, *arr_0, v_15), &v_14); - bool v_16; - FX_CALL(lt_0->fp(&p_1, &v_14, &v_16, lt_0->fcv), _fx_catch_1); - if (v_16) { + _fx_T2iS v_13 = {0}; + int_ j_3 = i0_0 + j_2 * 1; + int_ v_14 = j_3 + 1; + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, v_14), _fx_catch_1); + _fx_copy_T2iS(FX_PTR_1D(_fx_T2iS, *arr_0, v_14), &v_13); + bool v_15; + FX_CALL(lt_0->fp(&p_1, &v_13, &v_15, lt_0->fcv), _fx_catch_1); + if (v_15) { i1_0 = j_3; FX_BREAK(_fx_catch_1); } _fx_catch_1: ; - _fx_free_T2iS(&v_14); + _fx_free_T2iS(&v_13); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_2); } - if (i0_1 - lo_2 < hi_2 - i1_0) { + if (i0_0 - lo_2 < hi_2 - i1_0) { if (i1_0 < prefix_0) { FX_CALL(_fx_M13Ast_typecheckFM6qsort_v5iiA1T2iSFPB2T2iST2iSi(i1_0 + 1, hi_2, arr_0, lt_0, prefix_0, 0), _fx_catch_2); } lo_1 = lo_2; - hi_1 = i0_1 - 1; + hi_1 = i0_0 - 1; } else { - FX_CALL(_fx_M13Ast_typecheckFM6qsort_v5iiA1T2iSFPB2T2iST2iSi(lo_2, i0_1 - 1, arr_0, lt_0, prefix_0, 0), + FX_CALL(_fx_M13Ast_typecheckFM6qsort_v5iiA1T2iSFPB2T2iST2iSi(lo_2, i0_0 - 1, arr_0, lt_0, prefix_0, 0), _fx_catch_2); if (i1_0 < prefix_0) { lo_1 = i1_0 + 1; hi_1 = hi_2; @@ -9085,17 +8634,17 @@ static int _fx_M13Ast_typecheckFM6qsort_v5iiA1T2iSFPB2T2iST2iSi( _fx_copy_T2iS(FX_PTR_1D(_fx_T2iS, *arr_0, lo_2), &a_2); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); _fx_copy_T2iS(FX_PTR_1D(_fx_T2iS, *arr_0, hi_2), &b_1); - bool v_17; - FX_CALL(lt_0->fp(&b_1, &a_2, &v_17, lt_0->fcv), _fx_catch_2); - if (v_17) { + bool v_16; + FX_CALL(lt_0->fp(&b_1, &a_2, &v_16, lt_0->fcv), _fx_catch_2); + if (v_16) { FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); - _fx_T2iS* v_18 = FX_PTR_1D(_fx_T2iS, *arr_0, hi_2); - _fx_free_T2iS(v_18); - _fx_copy_T2iS(&a_2, v_18); + _fx_T2iS* v_17 = FX_PTR_1D(_fx_T2iS, *arr_0, hi_2); + _fx_free_T2iS(v_17); + _fx_copy_T2iS(&a_2, v_17); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, lo_2), _fx_catch_2); - _fx_T2iS* v_19 = FX_PTR_1D(_fx_T2iS, *arr_0, lo_2); - _fx_free_T2iS(v_19); - _fx_copy_T2iS(&b_1, v_19); + _fx_T2iS* v_18 = FX_PTR_1D(_fx_T2iS, *arr_0, lo_2); + _fx_free_T2iS(v_18); + _fx_copy_T2iS(&b_1, v_18); FX_BREAK(_fx_catch_2); } else { @@ -9132,53 +8681,53 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM8length1_i1LT2R9Ast__id_tN10Ast__typ_t( return fx_status; } -FX_EXTERN_C int _fx_M13Ast_typecheckFM8length1_i1LN10Ast__pat_t( - struct _fx_LN10Ast__pat_t_data_t* l_0, +FX_EXTERN_C int _fx_M13Ast_typecheckFM8length1_i1LT2N10Ast__exp_tB( + struct _fx_LT2N10Ast__exp_tB_data_t* l_0, int_* fx_result, void* fx_fv) { int fx_status = 0; - *fx_result = _fx_M13Ast_typecheckFM6lengthi1LN10Ast__pat_t(l_0, 0); + *fx_result = _fx_M13Ast_typecheckFM6lengthi1LT2N10Ast__exp_tB(l_0, 0); return fx_status; } -FX_EXTERN_C int _fx_M13Ast_typecheckFM8length1_i1LT2N10Ast__exp_tB( - struct _fx_LT2N10Ast__exp_tB_data_t* l_0, +FX_EXTERN_C int _fx_M13Ast_typecheckFM8length1_i1LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t( + struct _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t_data_t* l_0, int_* fx_result, void* fx_fv) { int fx_status = 0; - *fx_result = _fx_M13Ast_typecheckFM6lengthi1LT2N10Ast__exp_tB(l_0, 0); + *fx_result = _fx_M13Ast_typecheckFM6lengthi1LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(l_0, 0); return fx_status; } -FX_EXTERN_C int _fx_M13Ast_typecheckFM8length1_i1LN10Ast__exp_t( - struct _fx_LN10Ast__exp_t_data_t* l_0, +FX_EXTERN_C int _fx_M13Ast_typecheckFM8length1_i1LN10Ast__typ_t( + struct _fx_LN10Ast__typ_t_data_t* l_0, int_* fx_result, void* fx_fv) { int fx_status = 0; - *fx_result = _fx_M13Ast_typecheckFM6lengthi1LN10Ast__exp_t(l_0, 0); + *fx_result = _fx_M13Ast_typecheckFM6lengthi1LN10Ast__typ_t(l_0, 0); return fx_status; } -FX_EXTERN_C int _fx_M13Ast_typecheckFM8length1_i1LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t( - struct _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t_data_t* l_0, +FX_EXTERN_C int _fx_M13Ast_typecheckFM8length1_i1LN10Ast__exp_t( + struct _fx_LN10Ast__exp_t_data_t* l_0, int_* fx_result, void* fx_fv) { int fx_status = 0; - *fx_result = _fx_M13Ast_typecheckFM6lengthi1LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(l_0, 0); + *fx_result = _fx_M13Ast_typecheckFM6lengthi1LN10Ast__exp_t(l_0, 0); return fx_status; } -FX_EXTERN_C int _fx_M13Ast_typecheckFM8length1_i1LN10Ast__typ_t( - struct _fx_LN10Ast__typ_t_data_t* l_0, +FX_EXTERN_C int _fx_M13Ast_typecheckFM8length1_i1LN10Ast__pat_t( + struct _fx_LN10Ast__pat_t_data_t* l_0, int_* fx_result, void* fx_fv) { int fx_status = 0; - *fx_result = _fx_M13Ast_typecheckFM6lengthi1LN10Ast__typ_t(l_0, 0); + *fx_result = _fx_M13Ast_typecheckFM6lengthi1LN10Ast__pat_t(l_0, 0); return fx_status; } @@ -9388,28 +8937,27 @@ FX_EXTERN_C int struct _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t_data_t** fx_result, void* fx_fv) { - _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t __fold_result___0 = 0; + _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t res_0 = 0; int fx_status = 0; _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t r_0 = 0; + _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_0 = 0; _fx_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&r_0); + if (v_0) { + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&res_0); } return fx_status; } @@ -9419,28 +8967,27 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM3revLT2R9Ast__id_tN10Ast__pat_t1LT2R9Ast__ struct _fx_LT2R9Ast__id_tN10Ast__pat_t_data_t** fx_result, void* fx_fv) { - _fx_LT2R9Ast__id_tN10Ast__pat_t __fold_result___0 = 0; + _fx_LT2R9Ast__id_tN10Ast__pat_t res_0 = 0; int fx_status = 0; _fx_LT2R9Ast__id_tN10Ast__pat_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2R9Ast__id_tN10Ast__pat_t r_0 = 0; + _fx_LT2R9Ast__id_tN10Ast__pat_t v_0 = 0; _fx_T2R9Ast__id_tN10Ast__pat_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__pat_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__pat_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&r_0); + if (v_0) { + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&res_0); } return fx_status; } @@ -9450,28 +8997,27 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM3revLT2N10Ast__pat_tN10Ast__exp_t1LT2N10As struct _fx_LT2N10Ast__pat_tN10Ast__exp_t_data_t** fx_result, void* fx_fv) { - _fx_LT2N10Ast__pat_tN10Ast__exp_t __fold_result___0 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t res_0 = 0; int fx_status = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2N10Ast__pat_tN10Ast__exp_t r_0 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_0 = 0; _fx_T2N10Ast__pat_tN10Ast__exp_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&r_0); + if (v_0) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&res_0); } return fx_status; } @@ -9481,28 +9027,27 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM3revLLN10Ast__exp_t1LLN10Ast__exp_t( struct _fx_LLN10Ast__exp_t_data_t** fx_result, void* fx_fv) { - _fx_LLN10Ast__exp_t __fold_result___0 = 0; + _fx_LLN10Ast__exp_t res_0 = 0; int fx_status = 0; _fx_LLN10Ast__exp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LLN10Ast__exp_t r_0 = 0; + _fx_LLN10Ast__exp_t v_0 = 0; _fx_LN10Ast__exp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LLN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LLN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LLN10Ast__exp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LLN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LLN10Ast__exp_t(&r_0); + if (v_0) { + _fx_free_LLN10Ast__exp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LLN10Ast__exp_t(&__fold_result___0); + if (res_0) { + _fx_free_LLN10Ast__exp_t(&res_0); } return fx_status; } @@ -9512,28 +9057,27 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM3revLN10Ast__exp_t1LN10Ast__exp_t( struct _fx_LN10Ast__exp_t_data_t** fx_result, void* fx_fv) { - _fx_LN10Ast__exp_t __fold_result___0 = 0; + _fx_LN10Ast__exp_t res_0 = 0; int fx_status = 0; _fx_LN10Ast__exp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN10Ast__exp_t r_0 = 0; + _fx_LN10Ast__exp_t v_0 = 0; _fx_N10Ast__exp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN10Ast__exp_t(&r_0); + if (v_0) { + _fx_free_LN10Ast__exp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN10Ast__exp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN10Ast__exp_t(&res_0); } return fx_status; } @@ -9543,28 +9087,27 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM3revLN10Ast__pat_t1LN10Ast__pat_t( struct _fx_LN10Ast__pat_t_data_t** fx_result, void* fx_fv) { - _fx_LN10Ast__pat_t __fold_result___0 = 0; + _fx_LN10Ast__pat_t res_0 = 0; int fx_status = 0; _fx_LN10Ast__pat_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN10Ast__pat_t r_0 = 0; + _fx_LN10Ast__pat_t v_0 = 0; _fx_N10Ast__pat_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN10Ast__pat_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN10Ast__pat_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN10Ast__pat_t(&r_0); + if (v_0) { + _fx_free_LN10Ast__pat_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN10Ast__pat_t(&__fold_result___0); + if (res_0) { + _fx_free_LN10Ast__pat_t(&res_0); } return fx_status; } @@ -9584,32 +9127,11 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM9assoc_optNt6option1N10Ast__typ_t2LT2R9Ast _fx_Nt6option1T2R9Ast__id_tN10Ast__typ_t v_0 = {0}; _fx_T2R9Ast__id_tN10Ast__typ_t* __pat___0 = &lst_0->hd; _fx_R9Ast__id_t a_0 = __pat___0->t0; - bool __fold_result___2 = true; - bool t_0; - if (a_0.m == x_0->m) { - t_0 = __fold_result___2; - } - else { - t_0 = false; - } - __fold_result___2 = t_0; - bool t_1; - if (a_0.i == x_0->i) { - t_1 = __fold_result___2; - } - else { - t_1 = false; - } - __fold_result___2 = t_1; - bool t_2; - if (a_0.j == x_0->j) { - t_2 = __fold_result___2; - } - else { - t_2 = false; - } - __fold_result___2 = t_2; - if (__fold_result___2) { + bool f_0 = true; + f_0 = (bool)(f_0 & (a_0.m == x_0->m)); + f_0 = (bool)(f_0 & (a_0.i == x_0->i)); + f_0 = (bool)(f_0 & (a_0.j == x_0->j)); + if (f_0) { _fx_M13Ast_typecheckFM4SomeNt6option1T2R9Ast__id_tN10Ast__typ_t1T2R9Ast__id_tN10Ast__typ_t(__pat___0, &v_0); _fx_free_Nt6option1T2R9Ast__id_tN10Ast__typ_t(&__fold_result___0); _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__typ_t(&v_0, &__fold_result___0); @@ -9780,9 +9302,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -9831,26 +9356,28 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M13Ast_typecheckFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -9896,32 +9423,11 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -9937,14 +9443,14 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -9956,27 +9462,29 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -9984,11 +9492,14 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -10010,16 +9521,15 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_ void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - FX_CALL( - _fx_M13Ast_typecheckFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_cleanup); + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + FX_CALL(_fx_M13Ast_typecheckFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, 0), + _fx_cleanup); _fx_cleanup: ; return fx_status; @@ -11336,9 +10846,12 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR _fx_LT2rNt6option1N10Ast__typ_tNt6option1N10Ast__typ_t undo_stack_0 = 0; int fx_status = 0; FX_CALL(_fx_make_rLT2rNt6option1N10Ast__typ_tNt6option1N10Ast__typ_t(0, &undo_stack_ref_0), _fx_cleanup); + _fx_LT2rNt6option1N10Ast__typ_tNt6option1N10Ast__typ_t* undo_stack_1 = &undo_stack_ref_0->data; FX_CALL( _fx_make_rLT2rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tBT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB( 0, &rec_undo_stack_ref_0), _fx_cleanup); + _fx_LT2rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tBT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB* + rec_undo_stack_1 = &rec_undo_stack_ref_0->data; _fx_M13Ast_typecheckFM7make_fpFPB3N10Ast__typ_tN10Ast__typ_tR10Ast__loc_t2rLT2rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tBT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tBrLT2rNt6option1N10Ast__typ_tNt6option1N10Ast__typ_t( rec_undo_stack_ref_0, undo_stack_ref_0, &maybe_unify__0); bool ok_0; @@ -11351,7 +10864,7 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR t_0 = !update_refs_0; } if (t_0) { - FX_COPY_PTR(rec_undo_stack_ref_0->data, &rec_undo_stack_0); + FX_COPY_PTR(*rec_undo_stack_1, &rec_undo_stack_0); _fx_LT2rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tBT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB lst_0 = rec_undo_stack_0; for (; lst_0; lst_0 = lst_0->tl) { @@ -11369,7 +10882,7 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR _fx_free_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&r_0); } } - FX_COPY_PTR(undo_stack_ref_0->data, &undo_stack_0); + FX_COPY_PTR(*undo_stack_1, &undo_stack_0); _fx_LT2rNt6option1N10Ast__typ_tNt6option1N10Ast__typ_t lst_1 = undo_stack_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_rNt6option1N10Ast__typ_t r_1 = 0; @@ -13489,32 +13002,11 @@ static int _fx_M13Ast_typecheckFM9unskolem_N10Ast__typ_t2N10Ast__typ_tR16Ast__as _fx_LR9Ast__id_t lst_0 = skolems_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_R9Ast__id_t* b_0 = &lst_0->hd; - bool __fold_result___1 = true; - bool t_1; - if (n_0->m == b_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (n_0->i == b_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (n_0->j == b_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - if (__fold_result___1) { + bool f_0 = true; + f_0 = (bool)(f_0 & (n_0->m == b_0->m)); + f_0 = (bool)(f_0 & (n_0->i == b_0->i)); + f_0 = (bool)(f_0 & (n_0->j == b_0->j)); + if (f_0) { __fold_result___0 = true; FX_BREAK(_fx_catch_0); } @@ -13523,39 +13015,78 @@ static int _fx_M13Ast_typecheckFM9unskolem_N10Ast__typ_t2N10Ast__typ_tR16Ast__as FX_CHECK_EXN(_fx_cleanup); } if (__fold_result___0) { + _fx_Nt6option1T2R9Ast__id_tN10Ast__typ_t __fold_result___1 = {0}; + _fx_LT2R9Ast__id_tN10Ast__typ_t subst_1 = 0; + _fx_Nt6option1T2R9Ast__id_tN10Ast__typ_t __fold_result___2 = {0}; _fx_Nt6option1N10Ast__typ_t v_1 = 0; - FX_CALL( - _fx_M13Ast_typecheckFM9assoc_optNt6option1N10Ast__typ_t2LT2R9Ast__id_tN10Ast__typ_tR9Ast__id_t(*subst_0, n_0, - &v_1, 0), _fx_catch_2); + _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__typ_t(&_fx_g21Ast_typecheck__None9_, &__fold_result___1); + FX_COPY_PTR(*subst_0, &subst_1); + _fx_LT2R9Ast__id_tN10Ast__typ_t lst_1 = subst_1; + for (; lst_1; lst_1 = lst_1->tl) { + _fx_Nt6option1T2R9Ast__id_tN10Ast__typ_t v_2 = {0}; + _fx_T2R9Ast__id_tN10Ast__typ_t* __pat___0 = &lst_1->hd; + _fx_R9Ast__id_t a_0 = __pat___0->t0; + bool f_1 = true; + f_1 = (bool)(f_1 & (a_0.m == n_0->m)); + f_1 = (bool)(f_1 & (a_0.i == n_0->i)); + f_1 = (bool)(f_1 & (a_0.j == n_0->j)); + if (f_1) { + _fx_M13Ast_typecheckFM4SomeNt6option1T2R9Ast__id_tN10Ast__typ_t1T2R9Ast__id_tN10Ast__typ_t(__pat___0, &v_2); + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__typ_t(&__fold_result___1); + _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__typ_t(&v_2, &__fold_result___1); + FX_BREAK(_fx_catch_1); + } + + _fx_catch_1: ; + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__typ_t(&v_2); + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_catch_4); + } + _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__typ_t(&__fold_result___1, &__fold_result___2); + if (__fold_result___2.tag == 2) { + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(__fold_result___2.u.Some.t1, &v_1), + _fx_catch_2); + + _fx_catch_2: ; + } + else { + FX_COPY_PTR(_fx_g22Ast_typecheck__None15_, &v_1); + } + FX_CHECK_EXN(_fx_catch_4); if ((v_1 != 0) + 1 == 2) { FX_COPY_PTR(v_1->u.Some, fx_result); } else { - _fx_N10Ast__typ_t v_2 = 0; - _fx_T2R9Ast__id_tN10Ast__typ_t v_3 = {0}; - _fx_LT2R9Ast__id_tN10Ast__typ_t v_4 = 0; - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_2, 0), _fx_catch_1); - _fx_make_T2R9Ast__id_tN10Ast__typ_t(n_0, v_2, &v_3); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(&v_3, *subst_0, true, &v_4), _fx_catch_1); + _fx_N10Ast__typ_t v_3 = 0; + _fx_T2R9Ast__id_tN10Ast__typ_t v_4 = {0}; + _fx_LT2R9Ast__id_tN10Ast__typ_t v_5 = 0; + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_3, 0), _fx_catch_3); + _fx_make_T2R9Ast__id_tN10Ast__typ_t(n_0, v_3, &v_4); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(&v_4, *subst_0, true, &v_5), _fx_catch_3); _fx_free_LT2R9Ast__id_tN10Ast__typ_t(subst_0); - FX_COPY_PTR(v_4, subst_0); - FX_COPY_PTR(v_2, fx_result); + FX_COPY_PTR(v_5, subst_0); + FX_COPY_PTR(v_3, fx_result); - _fx_catch_1: ; - if (v_4) { - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_4); + _fx_catch_3: ; + if (v_5) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_5); } - _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_3); - if (v_2) { - _fx_free_N10Ast__typ_t(&v_2); + _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_4); + if (v_3) { + _fx_free_N10Ast__typ_t(&v_3); } } - FX_CHECK_EXN(_fx_catch_2); + FX_CHECK_EXN(_fx_catch_4); - _fx_catch_2: ; + _fx_catch_4: ; if (v_1) { _fx_free_Nt6option1N10Ast__typ_t(&v_1); } + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__typ_t(&__fold_result___2); + if (subst_1) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&subst_1); + } + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__typ_t(&__fold_result___1); goto _fx_endmatch_0; } } @@ -13563,103 +13094,103 @@ static int _fx_M13Ast_typecheckFM9unskolem_N10Ast__typ_t2N10Ast__typ_tR16Ast__as if (tag_0 == 1) { FX_COPY_PTR(t_0->u.TypVar->data, &v_0); if ((v_0 != 0) + 1 == 2) { - _fx_N10Ast__typ_t v_5 = 0; - _fx_Nt6option1N10Ast__typ_t v_6 = 0; - _fx_rNt6option1N10Ast__typ_t v_7 = 0; + _fx_N10Ast__typ_t v_6 = 0; + _fx_Nt6option1N10Ast__typ_t v_7 = 0; + _fx_rNt6option1N10Ast__typ_t v_8 = 0; FX_CALL( - _fx_M13Ast_typecheckFM9unskolem_N10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t(v_0->u.Some, callb_0, &v_5, fx_fv), - _fx_catch_3); - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(v_5, &v_6), _fx_catch_3); - FX_CALL(_fx_make_rNt6option1N10Ast__typ_t(v_6, &v_7), _fx_catch_3); - FX_CALL(_fx_M3AstFM6TypVarN10Ast__typ_t1rNt6option1N10Ast__typ_t(v_7, fx_result), _fx_catch_3); + _fx_M13Ast_typecheckFM9unskolem_N10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t(v_0->u.Some, callb_0, &v_6, fx_fv), + _fx_catch_5); + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(v_6, &v_7), _fx_catch_5); + FX_CALL(_fx_make_rNt6option1N10Ast__typ_t(v_7, &v_8), _fx_catch_5); + FX_CALL(_fx_M3AstFM6TypVarN10Ast__typ_t1rNt6option1N10Ast__typ_t(v_8, fx_result), _fx_catch_5); - _fx_catch_3: ; + _fx_catch_5: ; + if (v_8) { + _fx_free_rNt6option1N10Ast__typ_t(&v_8); + } if (v_7) { - _fx_free_rNt6option1N10Ast__typ_t(&v_7); + _fx_free_Nt6option1N10Ast__typ_t(&v_7); } if (v_6) { - _fx_free_Nt6option1N10Ast__typ_t(&v_6); - } - if (v_5) { - _fx_free_N10Ast__typ_t(&v_5); + _fx_free_N10Ast__typ_t(&v_6); } goto _fx_endmatch_0; } } if (tag_0 == 1) { - _fx_rNt6option1N10Ast__typ_t v_8 = 0; - FX_CALL(_fx_make_rNt6option1N10Ast__typ_t(_fx_g22Ast_typecheck__None15_, &v_8), _fx_catch_4); - FX_CALL(_fx_M3AstFM6TypVarN10Ast__typ_t1rNt6option1N10Ast__typ_t(v_8, fx_result), _fx_catch_4); + _fx_rNt6option1N10Ast__typ_t v_9 = 0; + FX_CALL(_fx_make_rNt6option1N10Ast__typ_t(_fx_g22Ast_typecheck__None15_, &v_9), _fx_catch_6); + FX_CALL(_fx_M3AstFM6TypVarN10Ast__typ_t1rNt6option1N10Ast__typ_t(v_9, fx_result), _fx_catch_6); - _fx_catch_4: ; - if (v_8) { - _fx_free_rNt6option1N10Ast__typ_t(&v_8); + _fx_catch_6: ; + if (v_9) { + _fx_free_rNt6option1N10Ast__typ_t(&v_9); } goto _fx_endmatch_0; } if (tag_0 == 21) { _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_0 = 0; - _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_9 = 0; - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_10 = {0}; - _fx_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_11 = 0; - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB* v_12 = &t_0->u.TypRecord->data; - FX_COPY_PTR(v_12->t0, &relems_0); - bool ordered_0 = v_12->t1; + _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_10 = 0; + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_11 = {0}; + _fx_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_12 = 0; + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB* v_13 = &t_0->u.TypRecord->data; + FX_COPY_PTR(v_13->t0, &relems_0); + bool ordered_0 = v_13->t1; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lstend_0 = 0; - _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_1 = relems_0; - for (; lst_1; lst_1 = lst_1->tl) { + _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_2 = relems_0; + for (; lst_2; lst_2 = lst_2->tl) { _fx_R16Ast__val_flags_t fl_0 = {0}; - _fx_N10Ast__typ_t t_4 = 0; - _fx_N10Ast__exp_t v_13 = 0; - _fx_N10Ast__typ_t v_14 = 0; + _fx_N10Ast__typ_t t_1 = 0; + _fx_N10Ast__exp_t v_14 = 0; + _fx_N10Ast__typ_t v_15 = 0; _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t tup_0 = {0}; - _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t* __pat___0 = &lst_1->hd; - _fx_copy_R16Ast__val_flags_t(&__pat___0->t0, &fl_0); - _fx_R9Ast__id_t n_1 = __pat___0->t1; - FX_COPY_PTR(__pat___0->t2, &t_4); - FX_COPY_PTR(__pat___0->t3, &v_13); - FX_CALL(_fx_M13Ast_typecheckFM9unskolem_N10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t(t_4, callb_0, &v_14, fx_fv), - _fx_catch_5); - _fx_make_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&fl_0, &n_1, v_14, v_13, &tup_0); + _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t* __pat___1 = &lst_2->hd; + _fx_copy_R16Ast__val_flags_t(&__pat___1->t0, &fl_0); + _fx_R9Ast__id_t n_1 = __pat___1->t1; + FX_COPY_PTR(__pat___1->t2, &t_1); + FX_COPY_PTR(__pat___1->t3, &v_14); + FX_CALL(_fx_M13Ast_typecheckFM9unskolem_N10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t(t_1, callb_0, &v_15, fx_fv), + _fx_catch_7); + _fx_make_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&fl_0, &n_1, v_15, v_14, &tup_0); _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t node_0 = 0; - FX_CALL(_fx_cons_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&tup_0, 0, false, &node_0), _fx_catch_5); - FX_LIST_APPEND(v_9, lstend_0, node_0); + FX_CALL(_fx_cons_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&tup_0, 0, false, &node_0), _fx_catch_7); + FX_LIST_APPEND(v_10, lstend_0, node_0); - _fx_catch_5: ; + _fx_catch_7: ; _fx_free_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&tup_0); - if (v_14) { - _fx_free_N10Ast__typ_t(&v_14); + if (v_15) { + _fx_free_N10Ast__typ_t(&v_15); } - if (v_13) { - _fx_free_N10Ast__exp_t(&v_13); + if (v_14) { + _fx_free_N10Ast__exp_t(&v_14); } - if (t_4) { - _fx_free_N10Ast__typ_t(&t_4); + if (t_1) { + _fx_free_N10Ast__typ_t(&t_1); } _fx_free_R16Ast__val_flags_t(&fl_0); - FX_CHECK_EXN(_fx_catch_6); + FX_CHECK_EXN(_fx_catch_8); } - _fx_make_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(v_9, ordered_0, &v_10); - FX_CALL(_fx_make_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_10, &v_11), _fx_catch_6); - FX_CALL(_fx_M3AstFM9TypRecordN10Ast__typ_t1rT2LT4RM11val_flags_tRM4id_tN10Ast__typ_tN10Ast__exp_tB(v_11, fx_result), - _fx_catch_6); + _fx_make_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(v_10, ordered_0, &v_11); + FX_CALL(_fx_make_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_11, &v_12), _fx_catch_8); + FX_CALL(_fx_M3AstFM9TypRecordN10Ast__typ_t1rT2LT4RM11val_flags_tRM4id_tN10Ast__typ_tN10Ast__exp_tB(v_12, fx_result), + _fx_catch_8); - _fx_catch_6: ; - if (v_11) { - _fx_free_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_11); + _fx_catch_8: ; + if (v_12) { + _fx_free_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_12); } - _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_10); - if (v_9) { - _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_9); + _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_11); + if (v_10) { + _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_10); } if (relems_0) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_0); } goto _fx_endmatch_0; } - FX_CALL(_fx_M3AstFM8walk_typN10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t(t_0, callb_0, fx_result, 0), _fx_catch_7); + FX_CALL(_fx_M3AstFM8walk_typN10Ast__typ_t2N10Ast__typ_tRM11ast_callb_t(t_0, callb_0, fx_result, 0), _fx_catch_9); -_fx_catch_7: ; +_fx_catch_9: ; _fx_endmatch_0: ; @@ -14270,32 +13801,34 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM22compare_fun_generalityN24Ast_typecheck__ FX_CALL(_fx_M13Ast_typecheckFM17skolemize_fun_sigT2N10Ast__typ_tLR9Ast__id_t1rR13Ast__deffun_t(df2_0, &v_1, 0), _fx_cleanup); FX_COPY_PTR(v_1.t0, &t2_0); FX_COPY_PTR(v_1.t1, &sk2_0); - bool kw1_0 = df1_0->data.df_flags.fun_flag_have_keywords; - bool kw2_0 = df2_0->data.df_flags.fun_flag_have_keywords; + _fx_R13Ast__deffun_t* v_5 = &df1_0->data; + bool kw1_0 = v_5->df_flags.fun_flag_have_keywords; + _fx_R13Ast__deffun_t* v_6 = &df2_0->data; + bool kw2_0 = v_6->df_flags.fun_flag_have_keywords; if (kw1_0 == kw2_0) { _fx_make_Ta2N10Ast__typ_t(t1_0, t2_0, &v_2); } else if (kw1_0) { if (FX_REC_VARIANT_TAG(t2_0) == 18) { - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_5 = {0}; - _fx_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_6 = 0; - _fx_N10Ast__typ_t v_7 = 0; - _fx_LN10Ast__typ_t v_8 = 0; - _fx_LN10Ast__typ_t v_9 = 0; + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_7 = {0}; + _fx_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_8 = 0; + _fx_N10Ast__typ_t v_9 = 0; + _fx_LN10Ast__typ_t v_10 = 0; + _fx_LN10Ast__typ_t v_11 = 0; _fx_LN10Ast__typ_t tl_0 = t2_0->u.TypTuple; - _fx_make_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(0, false, &v_5); - FX_CALL(_fx_make_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_5, &v_6), _fx_catch_2); - FX_CALL(_fx_M3AstFM9TypRecordN10Ast__typ_t1rT2LT4RM11val_flags_tRM4id_tN10Ast__typ_tN10Ast__exp_tB(v_6, &v_7), + _fx_make_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(0, false, &v_7); + FX_CALL(_fx_make_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_7, &v_8), _fx_catch_2); + FX_CALL(_fx_M3AstFM9TypRecordN10Ast__typ_t1rT2LT4RM11val_flags_tRM4id_tN10Ast__typ_tN10Ast__exp_tB(v_8, &v_9), _fx_catch_2); - FX_CALL(_fx_cons_LN10Ast__typ_t(v_7, 0, true, &v_8), _fx_catch_2); + FX_CALL(_fx_cons_LN10Ast__typ_t(v_9, 0, true, &v_10), _fx_catch_2); if (tl_0 == 0) { - FX_COPY_PTR(v_8, &v_9); + FX_COPY_PTR(v_10, &v_11); } - else if (v_8 == 0) { - FX_COPY_PTR(tl_0, &v_9); + else if (v_10 == 0) { + FX_COPY_PTR(tl_0, &v_11); } else { - _fx_LN10Ast__typ_t v_10 = 0; + _fx_LN10Ast__typ_t v_12 = 0; _fx_LN10Ast__typ_t tl_1 = 0; _fx_LN10Ast__typ_t lstend_0 = 0; FX_COPY_PTR(tl_0, &tl_1); @@ -14304,38 +13837,38 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM22compare_fun_generalityN24Ast_typecheck__ _fx_N10Ast__typ_t x_0 = lst_0->hd; _fx_LN10Ast__typ_t node_0 = 0; FX_CALL(_fx_cons_LN10Ast__typ_t(x_0, 0, false, &node_0), _fx_catch_0); - FX_LIST_APPEND(v_10, lstend_0, node_0); + FX_LIST_APPEND(v_12, lstend_0, node_0); _fx_catch_0: ; FX_CHECK_EXN(_fx_catch_1); } - _fx_M13Ast_typecheckFM5link2LN10Ast__typ_t2LN10Ast__typ_tLN10Ast__typ_t(v_10, v_8, &v_9, 0); + _fx_M13Ast_typecheckFM5link2LN10Ast__typ_t2LN10Ast__typ_tLN10Ast__typ_t(v_12, v_10, &v_11, 0); _fx_catch_1: ; if (tl_1) { _fx_free_LN10Ast__typ_t(&tl_1); } - if (v_10) { - _fx_free_LN10Ast__typ_t(&v_10); + if (v_12) { + _fx_free_LN10Ast__typ_t(&v_12); } } FX_CHECK_EXN(_fx_catch_2); - FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(v_9, &v_3), _fx_catch_2); + FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(v_11, &v_3), _fx_catch_2); _fx_catch_2: ; - if (v_9) { - _fx_free_LN10Ast__typ_t(&v_9); + if (v_11) { + _fx_free_LN10Ast__typ_t(&v_11); } - if (v_8) { - _fx_free_LN10Ast__typ_t(&v_8); + if (v_10) { + _fx_free_LN10Ast__typ_t(&v_10); } - if (v_7) { - _fx_free_N10Ast__typ_t(&v_7); + if (v_9) { + _fx_free_N10Ast__typ_t(&v_9); } - if (v_6) { - _fx_free_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_6); + if (v_8) { + _fx_free_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_8); } - _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_5); + _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_7); } else { FX_COPY_PTR(t2_0, &v_3); @@ -14345,25 +13878,25 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM22compare_fun_generalityN24Ast_typecheck__ } else { if (FX_REC_VARIANT_TAG(t1_0) == 18) { - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_11 = {0}; - _fx_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_12 = 0; - _fx_N10Ast__typ_t v_13 = 0; - _fx_LN10Ast__typ_t v_14 = 0; - _fx_LN10Ast__typ_t v_15 = 0; + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_13 = {0}; + _fx_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_14 = 0; + _fx_N10Ast__typ_t v_15 = 0; + _fx_LN10Ast__typ_t v_16 = 0; + _fx_LN10Ast__typ_t v_17 = 0; _fx_LN10Ast__typ_t tl_2 = t1_0->u.TypTuple; - _fx_make_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(0, false, &v_11); - FX_CALL(_fx_make_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_11, &v_12), _fx_catch_5); - FX_CALL(_fx_M3AstFM9TypRecordN10Ast__typ_t1rT2LT4RM11val_flags_tRM4id_tN10Ast__typ_tN10Ast__exp_tB(v_12, &v_13), + _fx_make_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(0, false, &v_13); + FX_CALL(_fx_make_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_13, &v_14), _fx_catch_5); + FX_CALL(_fx_M3AstFM9TypRecordN10Ast__typ_t1rT2LT4RM11val_flags_tRM4id_tN10Ast__typ_tN10Ast__exp_tB(v_14, &v_15), _fx_catch_5); - FX_CALL(_fx_cons_LN10Ast__typ_t(v_13, 0, true, &v_14), _fx_catch_5); + FX_CALL(_fx_cons_LN10Ast__typ_t(v_15, 0, true, &v_16), _fx_catch_5); if (tl_2 == 0) { - FX_COPY_PTR(v_14, &v_15); + FX_COPY_PTR(v_16, &v_17); } - else if (v_14 == 0) { - FX_COPY_PTR(tl_2, &v_15); + else if (v_16 == 0) { + FX_COPY_PTR(tl_2, &v_17); } else { - _fx_LN10Ast__typ_t v_16 = 0; + _fx_LN10Ast__typ_t v_18 = 0; _fx_LN10Ast__typ_t tl_3 = 0; _fx_LN10Ast__typ_t lstend_1 = 0; FX_COPY_PTR(tl_2, &tl_3); @@ -14372,38 +13905,38 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM22compare_fun_generalityN24Ast_typecheck__ _fx_N10Ast__typ_t x_1 = lst_1->hd; _fx_LN10Ast__typ_t node_1 = 0; FX_CALL(_fx_cons_LN10Ast__typ_t(x_1, 0, false, &node_1), _fx_catch_3); - FX_LIST_APPEND(v_16, lstend_1, node_1); + FX_LIST_APPEND(v_18, lstend_1, node_1); _fx_catch_3: ; FX_CHECK_EXN(_fx_catch_4); } - _fx_M13Ast_typecheckFM5link2LN10Ast__typ_t2LN10Ast__typ_tLN10Ast__typ_t(v_16, v_14, &v_15, 0); + _fx_M13Ast_typecheckFM5link2LN10Ast__typ_t2LN10Ast__typ_tLN10Ast__typ_t(v_18, v_16, &v_17, 0); _fx_catch_4: ; if (tl_3) { _fx_free_LN10Ast__typ_t(&tl_3); } - if (v_16) { - _fx_free_LN10Ast__typ_t(&v_16); + if (v_18) { + _fx_free_LN10Ast__typ_t(&v_18); } } FX_CHECK_EXN(_fx_catch_5); - FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(v_15, &v_4), _fx_catch_5); + FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(v_17, &v_4), _fx_catch_5); _fx_catch_5: ; - if (v_15) { - _fx_free_LN10Ast__typ_t(&v_15); + if (v_17) { + _fx_free_LN10Ast__typ_t(&v_17); } - if (v_14) { - _fx_free_LN10Ast__typ_t(&v_14); + if (v_16) { + _fx_free_LN10Ast__typ_t(&v_16); } - if (v_13) { - _fx_free_N10Ast__typ_t(&v_13); + if (v_15) { + _fx_free_N10Ast__typ_t(&v_15); } - if (v_12) { - _fx_free_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_12); + if (v_14) { + _fx_free_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_14); } - _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_11); + _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_13); } else { FX_COPY_PTR(t1_0, &v_4); @@ -14456,13 +13989,14 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM17typ_has_free_varsB1N10Ast__typ_t( _fx_N10Ast__typ_t res_0 = 0; int fx_status = 0; FX_CALL(_fx_make_rB(false, &has_free_ref_0), _fx_cleanup); + bool* has_free_0 = &has_free_ref_0->data; _fx_M13Ast_typecheckFM7make_fpFPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t1rB(has_free_ref_0, &check__0); FX_CALL( _fx_M13Ast_typecheckFM4SomeNt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t( &check__0, &v_0), _fx_cleanup); _fx_make_R16Ast__ast_callb_t(v_0, _fx_g22Ast_typecheck__None11_, _fx_g22Ast_typecheck__None10_, &callb_0); FX_CALL(check__0.fp(t_0, &callb_0, &res_0, check__0.fcv), _fx_cleanup); - *fx_result = has_free_ref_0->data; + *fx_result = *has_free_0; _fx_cleanup: ; FX_FREE_REF_SIMPLE(&has_free_ref_0); @@ -14781,33 +14315,34 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM12coerce_typesNt6option1N10Ast__typ_t6N10A { fx_exn_t exn_0 = {0}; int fx_status = 0; + bool v_0 = _fx_g12Options__opt.arch64; int_ safe_max_ubits_0; - if (_fx_g12Options__opt.arch64) { + if (v_0) { safe_max_ubits_0 = 32; } else { safe_max_ubits_0 = 16; } - _fx_N10Ast__typ_t v_0 = 0; _fx_N10Ast__typ_t v_1 = 0; _fx_N10Ast__typ_t v_2 = 0; - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t1_0, &v_0, 0), _fx_catch_0); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t2_0, &v_1, 0), _fx_catch_0); + _fx_N10Ast__typ_t v_3 = 0; + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t1_0, &v_1, 0), _fx_catch_0); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t2_0, &v_2, 0), _fx_catch_0); FX_CALL( - _fx_M13Ast_typecheckFM13coerce_types_N10Ast__typ_t7N10Ast__typ_tN10Ast__typ_tBBBR10Ast__loc_ti(v_0, v_1, allow_fp_0, - allow_tuples_0, is_shift_0, loc_0, safe_max_ubits_0, &v_2, 0), _fx_catch_0); - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(v_2, fx_result), _fx_catch_0); + _fx_M13Ast_typecheckFM13coerce_types_N10Ast__typ_t7N10Ast__typ_tN10Ast__typ_tBBBR10Ast__loc_ti(v_1, v_2, allow_fp_0, + allow_tuples_0, is_shift_0, loc_0, safe_max_ubits_0, &v_3, 0), _fx_catch_0); + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(v_3, fx_result), _fx_catch_0); _fx_catch_0: ; - if (v_0) { - _fx_free_N10Ast__typ_t(&v_0); - } if (v_1) { _fx_free_N10Ast__typ_t(&v_1); } if (v_2) { _fx_free_N10Ast__typ_t(&v_2); } + if (v_3) { + _fx_free_N10Ast__typ_t(&v_3); + } if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_0); fx_status = 0; @@ -15871,9 +15406,8 @@ static int } _fx_copy_Nt6option1LN16Ast__env_entry_t(&result_0, &v_2); if (v_2.tag == 2) { - _fx_LN16Ast__env_entry_t __fold_result___0 = 0; _fx_LN16Ast__env_entry_t extra_entries_0 = 0; - _fx_LN16Ast__env_entry_t __fold_result___1 = 0; + _fx_LN16Ast__env_entry_t res_0 = 0; _fx_LN16Ast__env_entry_t v_3 = 0; _fx_LN16Ast__env_entry_t new_entries_0 = 0; _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t v_4 = 0; @@ -15885,15 +15419,13 @@ static int _fx_LN16Ast__env_entry_t prev_entries_0 = v_2.u.Some; _fx_LN16Ast__env_entry_t lst_0 = entries_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN16Ast__env_entry_t extra_entries_1 = 0; _fx_LN16Ast__env_entry_t v_9 = 0; _fx_N16Ast__env_entry_t e_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &extra_entries_1); if (FX_REC_VARIANT_TAG(e_0) == 1) { _fx_N14Ast__id_info_t v_10 = {0}; _fx_LN16Ast__env_entry_t prev_entries_1 = 0; FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(&e_0->u.EnvId, &_fx_g10Ast__noloc, &v_10, 0), - _fx_catch_4); + _fx_catch_5); bool add_0; if (v_10.tag == 3) { add_0 = true; @@ -15901,80 +15433,99 @@ static int else { add_0 = false; } - FX_CHECK_EXN(_fx_catch_4); + FX_CHECK_EXN(_fx_catch_5); bool v_11; if (add_0) { - bool __fold_result___2 = false; + bool __fold_result___0 = false; FX_COPY_PTR(prev_entries_0, &prev_entries_1); _fx_LN16Ast__env_entry_t lst_1 = prev_entries_1; for (; lst_1; lst_1 = lst_1->tl) { _fx_N16Ast__env_entry_t b_0 = lst_1->hd; bool v_12; - FX_CALL(_fx_M13Ast_typecheckFM15__eq_variants__B2N16Ast__env_entry_tN16Ast__env_entry_t(e_0, b_0, &v_12, 0), - _fx_catch_3); + if (FX_REC_VARIANT_TAG(b_0) == 1) { + if (FX_REC_VARIANT_TAG(e_0) == 1) { + _fx_R9Ast__id_t* a0_0 = &e_0->u.EnvId; + _fx_R9Ast__id_t* b0_0 = &b_0->u.EnvId; + bool f_0 = true; + f_0 = (bool)(f_0 & (a0_0->m == b0_0->m)); + f_0 = (bool)(f_0 & (a0_0->i == b0_0->i)); + f_0 = (bool)(f_0 & (a0_0->j == b0_0->j)); + v_12 = f_0; + goto _fx_endmatch_0; + } + } + if (FX_REC_VARIANT_TAG(b_0) == 2) { + if (FX_REC_VARIANT_TAG(e_0) == 2) { + FX_CALL( + _fx_M13Ast_typecheckFM15__eq_variants__B2N10Ast__typ_tN10Ast__typ_t(e_0->u.EnvTyp, b_0->u.EnvTyp, + &v_12, 0), _fx_catch_3); + + _fx_catch_3: ; + goto _fx_endmatch_0; + } + } + v_12 = FX_REC_VARIANT_TAG(e_0) == FX_REC_VARIANT_TAG(b_0); + + _fx_endmatch_0: ; + FX_CHECK_EXN(_fx_catch_4); if (v_12) { - __fold_result___2 = true; FX_BREAK(_fx_catch_3); + __fold_result___0 = true; FX_BREAK(_fx_catch_4); } - _fx_catch_3: ; + _fx_catch_4: ; FX_CHECK_BREAK(); - FX_CHECK_EXN(_fx_catch_4); + FX_CHECK_EXN(_fx_catch_5); } - v_11 = !__fold_result___2; + v_11 = !__fold_result___0; } else { v_11 = false; } if (v_11) { - FX_CALL(_fx_cons_LN16Ast__env_entry_t(e_0, extra_entries_1, true, &v_9), _fx_catch_4); + FX_CALL(_fx_cons_LN16Ast__env_entry_t(e_0, extra_entries_0, true, &v_9), _fx_catch_5); } else { - FX_COPY_PTR(extra_entries_1, &v_9); + FX_COPY_PTR(extra_entries_0, &v_9); } - _fx_catch_4: ; + _fx_catch_5: ; if (prev_entries_1) { _fx_free_LN16Ast__env_entry_t(&prev_entries_1); } _fx_free_N14Ast__id_info_t(&v_10); } else { - FX_COPY_PTR(extra_entries_1, &v_9); + FX_COPY_PTR(extra_entries_0, &v_9); } - FX_CHECK_EXN(_fx_catch_5); - _fx_free_LN16Ast__env_entry_t(&__fold_result___0); - FX_COPY_PTR(v_9, &__fold_result___0); + FX_CHECK_EXN(_fx_catch_6); + _fx_free_LN16Ast__env_entry_t(&extra_entries_0); + FX_COPY_PTR(v_9, &extra_entries_0); - _fx_catch_5: ; + _fx_catch_6: ; if (v_9) { _fx_free_LN16Ast__env_entry_t(&v_9); } - if (extra_entries_1) { - _fx_free_LN16Ast__env_entry_t(&extra_entries_1); - } - FX_CHECK_EXN(_fx_catch_10); + FX_CHECK_EXN(_fx_catch_11); } - FX_COPY_PTR(__fold_result___0, &extra_entries_0); if (extra_entries_0 == 0) { _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(new_env_0, fx_result); } else { _fx_LN16Ast__env_entry_t lst_2 = extra_entries_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN16Ast__env_entry_t r_1 = 0; + _fx_LN16Ast__env_entry_t v_13 = 0; _fx_N16Ast__env_entry_t a_0 = lst_2->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LN16Ast__env_entry_t(a_0, r_1, false, &r_1), _fx_catch_6); - _fx_free_LN16Ast__env_entry_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LN16Ast__env_entry_t(a_0, res_0, true, &v_13), _fx_catch_7); + _fx_free_LN16Ast__env_entry_t(&res_0); + FX_COPY_PTR(v_13, &res_0); - _fx_catch_6: ; - if (r_1) { - _fx_free_LN16Ast__env_entry_t(&r_1); + _fx_catch_7: ; + if (v_13) { + _fx_free_LN16Ast__env_entry_t(&v_13); } - FX_CHECK_EXN(_fx_catch_10); + FX_CHECK_EXN(_fx_catch_11); } - FX_COPY_PTR(__fold_result___1, &v_3); + FX_COPY_PTR(res_0, &v_3); if (v_3 == 0) { FX_COPY_PTR(prev_entries_0, &new_entries_0); } @@ -15982,59 +15533,59 @@ static int FX_COPY_PTR(v_3, &new_entries_0); } else { - _fx_LN16Ast__env_entry_t v_13 = 0; + _fx_LN16Ast__env_entry_t v_14 = 0; _fx_LN16Ast__env_entry_t lstend_0 = 0; _fx_LN16Ast__env_entry_t lst_3 = v_3; for (; lst_3; lst_3 = lst_3->tl) { _fx_N16Ast__env_entry_t x_0 = lst_3->hd; _fx_LN16Ast__env_entry_t node_0 = 0; - FX_CALL(_fx_cons_LN16Ast__env_entry_t(x_0, 0, false, &node_0), _fx_catch_7); - FX_LIST_APPEND(v_13, lstend_0, node_0); + FX_CALL(_fx_cons_LN16Ast__env_entry_t(x_0, 0, false, &node_0), _fx_catch_8); + FX_LIST_APPEND(v_14, lstend_0, node_0); - _fx_catch_7: ; - FX_CHECK_EXN(_fx_catch_8); + _fx_catch_8: ; + FX_CHECK_EXN(_fx_catch_9); } - _fx_M13Ast_typecheckFM5link2LN16Ast__env_entry_t2LN16Ast__env_entry_tLN16Ast__env_entry_t(v_13, prev_entries_0, + _fx_M13Ast_typecheckFM5link2LN16Ast__env_entry_t2LN16Ast__env_entry_tLN16Ast__env_entry_t(v_14, prev_entries_0, &new_entries_0, 0); - _fx_catch_8: ; - if (v_13) { - _fx_free_LN16Ast__env_entry_t(&v_13); + _fx_catch_9: ; + if (v_14) { + _fx_free_LN16Ast__env_entry_t(&v_14); } } - FX_CHECK_EXN(_fx_catch_10); + FX_CHECK_EXN(_fx_catch_11); FX_COPY_PTR(new_env_0->root, &v_4); FX_COPY_FP(&new_env_0->cmp, &v_5); FX_CALL( _fx_M13Ast_typecheckFM12add_to_tree_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t4Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tLN16Ast__env_entry_tFPi2R9Ast__id_tR9Ast__id_t( - v_4, i_0, new_entries_0, &v_5, &v_6, 0), _fx_catch_10); + v_4, i_0, new_entries_0, &v_5, &v_6, 0), _fx_catch_11); if ((v_6 != 0) + 1 == 2) { _fx_T5N12Map__color_tNt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tLN16Ast__env_entry_tNt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t* vcase_1 = &v_6->u.Node; if (vcase_1->t0.tag == 1) { - _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t v_14 = 0; + _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t v_15 = 0; FX_CALL( _fx_M13Ast_typecheckFM4NodeNt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t5N12Map__color_tNt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tLN16Ast__env_entry_tNt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t( - &_fx_g20Ast_typecheck__Black, vcase_1->t1, &vcase_1->t2, vcase_1->t3, vcase_1->t4, &v_14), _fx_catch_9); - _fx_make_T2Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tB(v_14, false, &v_7); + &_fx_g20Ast_typecheck__Black, vcase_1->t1, &vcase_1->t2, vcase_1->t3, vcase_1->t4, &v_15), _fx_catch_10); + _fx_make_T2Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tB(v_15, false, &v_7); - _fx_catch_9: ; - if (v_14) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&v_14); + _fx_catch_10: ; + if (v_15) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&v_15); } - goto _fx_endmatch_0; + goto _fx_endmatch_1; } } _fx_make_T2Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tB(v_6, true, &v_7); - _fx_endmatch_0: ; - FX_CHECK_EXN(_fx_catch_10); + _fx_endmatch_1: ; + FX_CHECK_EXN(_fx_catch_11); FX_COPY_PTR(v_7.t0, &new_root_0); FX_COPY_FP(&new_env_0->cmp, &v_8); _fx_make_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(new_root_0, &v_8, fx_result); } - _fx_catch_10: ; + _fx_catch_11: ; FX_FREE_FP(&v_8); if (new_root_0) { _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&new_root_0); @@ -16053,15 +15604,12 @@ static int if (v_3) { _fx_free_LN16Ast__env_entry_t(&v_3); } - if (__fold_result___1) { - _fx_free_LN16Ast__env_entry_t(&__fold_result___1); + if (res_0) { + _fx_free_LN16Ast__env_entry_t(&res_0); } if (extra_entries_0) { _fx_free_LN16Ast__env_entry_t(&extra_entries_0); } - if (__fold_result___0) { - _fx_free_LN16Ast__env_entry_t(&__fold_result___0); - } } else { _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(new_env_0, fx_result); @@ -17457,7 +17005,7 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM5take2LS3LT2iSSLS( _fx_LT2iS l_2 = 0; fx_str_t last_2 = {0}; _fx_LS acc_2 = 0; - _fx_LS __fold_result___0 = 0; + _fx_LS res_0 = 0; _fx_LS result_1 = 0; FX_COPY_PTR(l_1, &l_2); fx_copy_str(&last_1, &last_2); @@ -17466,31 +17014,30 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM5take2LS3LT2iSSLS( if (v_0 >= 2) { _fx_LS lst_0 = acc_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LS r_0 = 0; + _fx_LS v_1 = 0; fx_str_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LS(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LS(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LS(a_0, res_0, true, &v_1), _fx_catch_0); + _fx_free_LS(&res_0); + FX_COPY_PTR(v_1, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LS(&r_0); + if (v_1) { + _fx_free_LS(&v_1); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___0, &result_1); + FX_COPY_PTR(res_0, &result_1); _fx_free_LS(&result_0); FX_COPY_PTR(result_1, &result_0); FX_BREAK(_fx_catch_4); } else { if (l_2 != 0) { - _fx_LS v_1 = 0; + _fx_LS v_2 = 0; _fx_LT2iS rest_0 = l_2->tl; fx_str_t* nm_0 = &l_2->hd.t1; - bool v_2 = _fx_F6__eq__B2SS(nm_0, &last_2, 0); - if (v_2) { + bool v_3 = _fx_F6__eq__B2SS(nm_0, &last_2, 0); + if (v_3) { _fx_free_LT2iS(&l_1); FX_COPY_PTR(rest_0, &l_1); FX_FREE_STR(&last_1); @@ -17499,39 +17046,38 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM5take2LS3LT2iSSLS( FX_COPY_PTR(acc_2, &acc_1); } else { - FX_CALL(_fx_cons_LS(nm_0, acc_2, true, &v_1), _fx_catch_1); + FX_CALL(_fx_cons_LS(nm_0, acc_2, true, &v_2), _fx_catch_1); _fx_free_LT2iS(&l_1); FX_COPY_PTR(rest_0, &l_1); FX_FREE_STR(&last_1); fx_copy_str(nm_0, &last_1); _fx_free_LS(&acc_1); - FX_COPY_PTR(v_1, &acc_1); + FX_COPY_PTR(v_2, &acc_1); } _fx_catch_1: ; - if (v_1) { - _fx_free_LS(&v_1); + if (v_2) { + _fx_free_LS(&v_2); } } else if (l_2 == 0) { - _fx_LS __fold_result___1 = 0; + _fx_LS res_1 = 0; _fx_LS result_2 = 0; _fx_LS lst_1 = acc_2; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LS r_1 = 0; + _fx_LS v_4 = 0; fx_str_t* a_1 = &lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LS(a_1, r_1, false, &r_1), _fx_catch_2); - _fx_free_LS(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LS(a_1, res_1, true, &v_4), _fx_catch_2); + _fx_free_LS(&res_1); + FX_COPY_PTR(v_4, &res_1); _fx_catch_2: ; - if (r_1) { - _fx_free_LS(&r_1); + if (v_4) { + _fx_free_LS(&v_4); } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___1, &result_2); + FX_COPY_PTR(res_1, &result_2); _fx_free_LS(&result_0); FX_COPY_PTR(result_2, &result_0); FX_BREAK(_fx_catch_3); @@ -17540,8 +17086,8 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM5take2LS3LT2iSSLS( if (result_2) { _fx_free_LS(&result_2); } - if (__fold_result___1) { - _fx_free_LS(&__fold_result___1); + if (res_1) { + _fx_free_LS(&res_1); } } else { @@ -17554,8 +17100,8 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM5take2LS3LT2iSSLS( if (result_1) { _fx_free_LS(&result_1); } - if (__fold_result___0) { - _fx_free_LS(&__fold_result___0); + if (res_0) { + _fx_free_LS(&res_0); } if (acc_2) { _fx_free_LS(&acc_2); @@ -18893,10 +18439,11 @@ FX_EXTERN_C int int_ curr_m_idx_0; FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(sc_0, &curr_m_idx_0, 0), _fx_cleanup); FX_CALL(_fx_make_rLN16Ast__env_entry_t(0, &possible_matches_ref_0), _fx_cleanup); + _fx_LN16Ast__env_entry_t* possible_matches_0 = &possible_matches_ref_0->data; FX_CALL( _fx_M13Ast_typecheckFM7lookup_Nt6option1T2R9Ast__id_tN10Ast__typ_t9R9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR10Ast__loc_tR9Ast__id_trLN16Ast__env_entry_tLN12Ast__scope_tN10Ast__typ_t( n_0, env_0, curr_m_idx_0, env_0, loc_0, n_0, possible_matches_ref_0, sc_0, t_0, &nt_opt_0, 0), _fx_cleanup); - _fx_make_T2Nt6option1T2R9Ast__id_tN10Ast__typ_tLN16Ast__env_entry_t(&nt_opt_0, possible_matches_ref_0->data, fx_result); + _fx_make_T2Nt6option1T2R9Ast__id_tN10Ast__typ_tLN16Ast__env_entry_t(&nt_opt_0, *possible_matches_0, fx_result); _fx_cleanup: ; if (possible_matches_ref_0) { @@ -19503,7 +19050,8 @@ static int fully_determined_0 = false; } FX_CHECK_EXN(_fx_catch_14); - if (_fx_g12Options__opt.print_resolve) { + bool v_17 = _fx_g12Options__opt.print_resolve; + if (v_17) { if (viable_0 != 0) { _fx_copy_T2R9Ast__id_trR13Ast__deffun_t(&viable_0->hd, &v_2); } @@ -19525,8 +19073,8 @@ static int FX_CHECK_EXN(_fx_catch_14); FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n_0, &v_3, 0), _fx_catch_14); FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(loc_0, &v_4, 0), _fx_catch_14); - int_ v_17 = _fx_M13Ast_typecheckFM6lengthi1LT2R9Ast__id_trR13Ast__deffun_t(viable_0, 0); - FX_CALL(_fx_F6stringS1i(v_17, &v_5, 0), _fx_catch_14); + int_ v_18 = _fx_M13Ast_typecheckFM6lengthi1LT2R9Ast__id_trR13Ast__deffun_t(viable_0, 0); + FX_CALL(_fx_F6stringS1i(v_18, &v_5, 0), _fx_catch_14); FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t_0, &v_6, 0), _fx_catch_14); fx_str_t slit_0 = FX_MAKE_STR("-pr-resolve: \'"); fx_str_t slit_1 = FX_MAKE_STR("\' @ "); @@ -19541,22 +19089,22 @@ static int _fx_LT2R9Ast__id_trR13Ast__deffun_t lst_4 = viable_0; for (; lst_4; lst_4 = lst_4->tl) { _fx_rR13Ast__deffun_t c_1 = 0; - fx_str_t v_18 = {0}; fx_str_t v_19 = {0}; + fx_str_t v_20 = {0}; _fx_T2R9Ast__id_trR13Ast__deffun_t* __pat___2 = &lst_4->hd; FX_COPY_PTR(__pat___2->t1, &c_1); - FX_CALL(_fx_M6Ast_ppFM10fun2sigstrS1rR13Ast__deffun_t(c_1, &v_18, 0), _fx_catch_7); + FX_CALL(_fx_M6Ast_ppFM10fun2sigstrS1rR13Ast__deffun_t(c_1, &v_19, 0), _fx_catch_7); fx_str_t slit_5 = FX_MAKE_STR(" candidate: "); fx_str_t slit_6 = FX_MAKE_STR("\n"); { - const fx_str_t strs_1[] = { slit_5, v_18, slit_6 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_19), _fx_catch_7); + const fx_str_t strs_1[] = { slit_5, v_19, slit_6 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_20), _fx_catch_7); } - _fx_F12print_stringv1S(&v_19, 0); + _fx_F12print_stringv1S(&v_20, 0); _fx_catch_7: ; + FX_FREE_STR(&v_20); FX_FREE_STR(&v_19); - FX_FREE_STR(&v_18); if (c_1) { _fx_free_rR13Ast__deffun_t(&c_1); } @@ -19571,20 +19119,20 @@ static int } _fx_F12print_stringv1S(&v_9, 0); if (genwin_opt_0.tag == 2) { - fx_str_t v_20 = {0}; fx_str_t v_21 = {0}; - FX_CALL(_fx_M6Ast_ppFM10fun2sigstrS1rR13Ast__deffun_t(genwin_opt_0.u.Some.t1, &v_20, 0), _fx_catch_8); + fx_str_t v_22 = {0}; + FX_CALL(_fx_M6Ast_ppFM10fun2sigstrS1rR13Ast__deffun_t(genwin_opt_0.u.Some.t1, &v_21, 0), _fx_catch_8); fx_str_t slit_9 = FX_MAKE_STR(" generality winner: "); fx_str_t slit_10 = FX_MAKE_STR("\n"); { - const fx_str_t strs_3[] = { slit_9, v_20, slit_10 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_21), _fx_catch_8); + const fx_str_t strs_3[] = { slit_9, v_21, slit_10 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_22), _fx_catch_8); } - _fx_F12print_stringv1S(&v_21, 0); + _fx_F12print_stringv1S(&v_22, 0); _fx_catch_8: ; + FX_FREE_STR(&v_22); FX_FREE_STR(&v_21); - FX_FREE_STR(&v_20); } else { fx_str_t slit_11 = FX_MAKE_STR(" generality winner: \n"); @@ -19618,24 +19166,24 @@ static int _fx_F12print_stringv1S(&v_12, 0); } if (genwin_opt_0.tag == 2) { - _fx_T2R9Ast__id_trR13Ast__deffun_t* v_22 = &genwin_opt_0.u.Some; + _fx_T2R9Ast__id_trR13Ast__deffun_t* v_23 = &genwin_opt_0.u.Some; FX_CALL( _fx_M13Ast_typecheckFM10commit_funNt6option1T2R9Ast__id_tN10Ast__typ_t7R9Ast__id_trR13Ast__deffun_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR10Ast__loc_tR9Ast__id_tLN12Ast__scope_tN10Ast__typ_t( - &v_22->t0, v_22->t1, env_0, loc_0, n_0, sc_0, t_0, fx_result, 0), _fx_catch_9); + &v_23->t0, v_23->t1, env_0, loc_0, n_0, sc_0, t_0, fx_result, 0), _fx_catch_9); _fx_catch_9: ; } else { - _fx_LS v_23 = 0; + _fx_LS v_24 = 0; fx_str_t cand_lines_0 = {0}; fx_str_t why_0 = {0}; fx_str_t hint_0 = {0}; - fx_str_t v_24 = {0}; fx_str_t v_25 = {0}; fx_str_t v_26 = {0}; fx_str_t v_27 = {0}; - fx_exn_t v_28 = {0}; - _fx_T2R9Ast__id_trR13Ast__deffun_t v_29 = {0}; + fx_str_t v_28 = {0}; + fx_exn_t v_29 = {0}; + _fx_T2R9Ast__id_trR13Ast__deffun_t v_30 = {0}; _fx_rR13Ast__deffun_t df_0 = 0; if (fully_determined_0) { _fx_LS lstend_1 = 0; @@ -19648,7 +19196,7 @@ static int FX_CALL(_fx_M6Ast_ppFM10fun2sigstrS1rR13Ast__deffun_t(c_2, &res_0, 0), _fx_catch_10); _fx_LS node_1 = 0; FX_CALL(_fx_cons_LS(&res_0, 0, false, &node_1), _fx_catch_10); - FX_LIST_APPEND(v_23, lstend_1, node_1); + FX_LIST_APPEND(v_24, lstend_1, node_1); _fx_catch_10: ; FX_FREE_STR(&res_0); @@ -19660,7 +19208,7 @@ static int fx_str_t slit_19 = FX_MAKE_STR("\n" U" "); - FX_CALL(_fx_F4joinS2SLS(&slit_19, v_23, &cand_lines_0, 0), _fx_catch_13); + FX_CALL(_fx_F4joinS2SLS(&slit_19, v_24, &cand_lines_0, 0), _fx_catch_13); bool __fold_result___3 = true; _fx_LT2R9Ast__id_trR13Ast__deffun_t lst_6 = viable_0; for (; lst_6; lst_6 = lst_6->tl) { @@ -19671,18 +19219,18 @@ static int _fx_LrR13Ast__deffun_t lst_7 = cands_0; for (; lst_7; lst_7 = lst_7->tl) { _fx_rR13Ast__deffun_t d_1 = lst_7->hd; - bool v_30; + bool v_31; if (_fx_M13Ast_typecheckFM6__eq__B2rR13Ast__deffun_trR13Ast__deffun_t(c_3, d_1, 0)) { - v_30 = true; + v_31 = true; } else { - _fx_N24Ast_typecheck__gen_cmp_t v_31; + _fx_N24Ast_typecheck__gen_cmp_t v_32; FX_CALL( _fx_M13Ast_typecheckFM22compare_fun_generalityN24Ast_typecheck__gen_cmp_t2rR13Ast__deffun_trR13Ast__deffun_t( - c_3, d_1, &v_31, 0), _fx_catch_11); - v_30 = v_31.tag == 3; + c_3, d_1, &v_32, 0), _fx_catch_11); + v_31 = v_32.tag == 3; } - if (!v_30) { + if (!v_31) { __fold_result___4 = false; FX_BREAK(_fx_catch_11); } @@ -19710,25 +19258,25 @@ static int fx_copy_str(&slit_21, &why_0); } if (all_eq_0) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n_0, &v_24, 0), _fx_catch_13); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n_0, &v_25, 0), _fx_catch_13); fx_str_t slit_22 = FX_MAKE_STR("use a module-qualified call (e.g. Module."); fx_str_t slit_23 = FX_MAKE_STR("(...)) to select one"); { - const fx_str_t strs_6[] = { slit_22, v_24, slit_23 }; + const fx_str_t strs_6[] = { slit_22, v_25, slit_23 }; FX_CALL(fx_strjoin(0, 0, 0, strs_6, 3, &hint_0), _fx_catch_13); } } else { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n_0, &v_25, 0), _fx_catch_13); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n_0, &v_26, 0), _fx_catch_13); fx_str_t slit_24 = FX_MAKE_STR("define/import a more specific overload, or use a module-qualified call (e.g. Module."); fx_str_t slit_25 = FX_MAKE_STR("(...)) to disambiguate"); { - const fx_str_t strs_7[] = { slit_24, v_25, slit_25 }; + const fx_str_t strs_7[] = { slit_24, v_26, slit_25 }; FX_CALL(fx_strjoin(0, 0, 0, strs_7, 3, &hint_0), _fx_catch_13); } } - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n_0, &v_26, 0), _fx_catch_13); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n_0, &v_27, 0), _fx_catch_13); fx_str_t slit_26 = FX_MAKE_STR("ambiguous call of overloaded \'"); fx_str_t slit_27 = FX_MAKE_STR("\': "); fx_str_t slit_28 = @@ -19736,22 +19284,22 @@ static int U" "); fx_str_t slit_29 = FX_MAKE_STR("\n"); { - const fx_str_t strs_8[] = { slit_26, v_26, slit_27, why_0, slit_28, cand_lines_0, slit_29, hint_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_8, 8, &v_27), _fx_catch_13); + const fx_str_t strs_8[] = { slit_26, v_27, slit_27, why_0, slit_28, cand_lines_0, slit_29, hint_0 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_8, 8, &v_28), _fx_catch_13); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_27, &v_28, 0), _fx_catch_13); - FX_THROW(&v_28, false, _fx_catch_13); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_28, &v_29, 0), _fx_catch_13); + FX_THROW(&v_29, false, _fx_catch_13); } else { if (viable_0 != 0) { - _fx_copy_T2R9Ast__id_trR13Ast__deffun_t(&viable_0->hd, &v_29); + _fx_copy_T2R9Ast__id_trR13Ast__deffun_t(&viable_0->hd, &v_30); } else { FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_13); } FX_CHECK_EXN(_fx_catch_13); - _fx_R9Ast__id_t i_0 = v_29.t0; - FX_COPY_PTR(v_29.t1, &df_0); + _fx_R9Ast__id_t i_0 = v_30.t0; + FX_COPY_PTR(v_30.t1, &df_0); FX_CALL( _fx_M13Ast_typecheckFM10commit_funNt6option1T2R9Ast__id_tN10Ast__typ_t7R9Ast__id_trR13Ast__deffun_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR10Ast__loc_tR9Ast__id_tLN12Ast__scope_tN10Ast__typ_t( &i_0, df_0, env_0, loc_0, n_0, sc_0, t_0, fx_result, 0), _fx_catch_13); @@ -19761,17 +19309,17 @@ static int if (df_0) { _fx_free_rR13Ast__deffun_t(&df_0); } - _fx_free_T2R9Ast__id_trR13Ast__deffun_t(&v_29); - fx_free_exn(&v_28); + _fx_free_T2R9Ast__id_trR13Ast__deffun_t(&v_30); + fx_free_exn(&v_29); + FX_FREE_STR(&v_28); FX_FREE_STR(&v_27); FX_FREE_STR(&v_26); FX_FREE_STR(&v_25); - FX_FREE_STR(&v_24); FX_FREE_STR(&hint_0); FX_FREE_STR(&why_0); FX_FREE_STR(&cand_lines_0); - if (v_23) { - _fx_free_LS(&v_23); + if (v_24) { + _fx_free_LS(&v_24); } } FX_CHECK_EXN(_fx_catch_14); @@ -20102,25 +19650,24 @@ static int _fx_catch_10: ; } else { - _fx_LT2R9Ast__id_trR13Ast__deffun_t __fold_result___0 = 0; + _fx_LT2R9Ast__id_trR13Ast__deffun_t res_1 = 0; _fx_LT2R9Ast__id_trR13Ast__deffun_t v_21 = 0; _fx_Nt6option1T2R9Ast__id_tN10Ast__typ_t result_4 = {0}; _fx_LT2R9Ast__id_trR13Ast__deffun_t lst_0 = viable_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2R9Ast__id_trR13Ast__deffun_t r_0 = 0; + _fx_LT2R9Ast__id_trR13Ast__deffun_t v_22 = 0; _fx_T2R9Ast__id_trR13Ast__deffun_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2R9Ast__id_trR13Ast__deffun_t(a_0, r_0, false, &r_0), _fx_catch_11); - _fx_free_LT2R9Ast__id_trR13Ast__deffun_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2R9Ast__id_trR13Ast__deffun_t(a_0, res_1, true, &v_22), _fx_catch_11); + _fx_free_LT2R9Ast__id_trR13Ast__deffun_t(&res_1); + FX_COPY_PTR(v_22, &res_1); _fx_catch_11: ; - if (r_0) { - _fx_free_LT2R9Ast__id_trR13Ast__deffun_t(&r_0); + if (v_22) { + _fx_free_LT2R9Ast__id_trR13Ast__deffun_t(&v_22); } FX_CHECK_EXN(_fx_catch_12); } - FX_COPY_PTR(__fold_result___0, &v_21); + FX_COPY_PTR(res_1, &v_21); FX_CALL( _fx_M13Ast_typecheckFM15rank_and_commitNt6option1T2R9Ast__id_tN10Ast__typ_t6LT2R9Ast__id_trR13Ast__deffun_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR10Ast__loc_tR9Ast__id_tLN12Ast__scope_tN10Ast__typ_t( v_21, env_0, loc_0, n_0, sc_0, t_0, &result_4, 0), _fx_catch_12); @@ -20133,8 +19680,8 @@ static int if (v_21) { _fx_free_LT2R9Ast__id_trR13Ast__deffun_t(&v_21); } - if (__fold_result___0) { - _fx_free_LT2R9Ast__id_trR13Ast__deffun_t(&__fold_result___0); + if (res_1) { + _fx_free_LT2R9Ast__id_trR13Ast__deffun_t(&res_1); } } FX_CHECK_EXN(_fx_catch_13); @@ -20591,15 +20138,13 @@ FX_EXTERN_C int void* fx_fv) { _fx_N10Ast__typ_t t_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___0 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_0 = {0}; _fx_N10Ast__typ_t v_0 = 0; int fx_status = 0; FX_CALL(_fx_M3AstFM7dup_typN10Ast__typ_t1N10Ast__typ_t(typ_0, &t_0, 0), _fx_cleanup); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &env1_0); _fx_LR9Ast__id_t lst_0 = templ_args_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_1 = {0}; _fx_N10Ast__typ_t t_1 = 0; _fx_LN16Ast__env_entry_t entries_0 = 0; _fx_N16Ast__env_entry_t v_1 = 0; @@ -20612,15 +20157,14 @@ FX_EXTERN_C int _fx_FPi2R9Ast__id_tR9Ast__id_t v_7 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_8 = {0}; _fx_R9Ast__id_t* nt_0 = &lst_0->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env1_1); FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&t_1, 0), _fx_catch_1); FX_CALL( - _fx_M13Ast_typecheckFM8find_allLN16Ast__env_entry_t2R9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(nt_0, &env1_1, + _fx_M13Ast_typecheckFM8find_allLN16Ast__env_entry_t2R9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(nt_0, &env1_0, &entries_0, 0), _fx_catch_1); FX_CALL(_fx_M3AstFM6EnvTypN16Ast__env_entry_t1N10Ast__typ_t(t_1, &v_1), _fx_catch_1); FX_CALL(_fx_cons_LN16Ast__env_entry_t(v_1, entries_0, true, &v_2), _fx_catch_1); - FX_COPY_PTR(env1_1.root, &v_3); - FX_COPY_FP(&env1_1.cmp, &v_4); + FX_COPY_PTR(env1_0.root, &v_3); + FX_COPY_FP(&env1_0.cmp, &v_4); FX_CALL( _fx_M13Ast_typecheckFM12add_to_tree_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t4Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tLN16Ast__env_entry_tFPi2R9Ast__id_tR9Ast__id_t( v_3, nt_0, v_2, &v_4, &v_5, 0), _fx_catch_1); @@ -20646,10 +20190,10 @@ FX_EXTERN_C int _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_1); FX_COPY_PTR(v_6.t0, &new_root_0); - FX_COPY_FP(&env1_1.cmp, &v_7); + FX_COPY_FP(&env1_0.cmp, &v_7); _fx_make_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(new_root_0, &v_7, &v_8); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_8, &__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_8, &env1_0); _fx_catch_1: ; _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_8); @@ -20677,10 +20221,8 @@ FX_EXTERN_C int if (t_1) { _fx_free_N10Ast__typ_t(&t_1); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_1); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env1_0); FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( t_0, &env1_0, sc_0, loc_0, &v_0, 0), _fx_cleanup); @@ -20690,7 +20232,6 @@ _fx_cleanup: ; if (t_0) { _fx_free_N10Ast__typ_t(&t_0); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_0); if (v_0) { _fx_free_N10Ast__typ_t(&v_0); @@ -21051,16 +20592,15 @@ FX_EXTERN_C int void* fx_fv) { _fx_LN10Ast__typ_t norm_ty_args_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___0 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; int fx_status = 0; FX_CALL( _fx_M13Ast_typecheckFM21check_and_norm_tyargsLN10Ast__typ_t4LN10Ast__typ_tLR9Ast__id_tR10Ast__loc_tR10Ast__loc_t( actual_ty_args_0, templ_args_0, def_loc_0, inst_loc_0, &norm_ty_args_0, 0), _fx_cleanup); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &env_1); _fx_LR9Ast__id_t lst_0 = templ_args_0; _fx_LN10Ast__typ_t lst_1 = norm_ty_args_0; for (; lst_0 && lst_1; lst_1 = lst_1->tl, lst_0 = lst_0->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; _fx_LN16Ast__env_entry_t entries_0 = 0; _fx_N16Ast__env_entry_t v_0 = 0; _fx_LN16Ast__env_entry_t v_1 = 0; @@ -21073,7 +20613,6 @@ FX_EXTERN_C int _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_7 = {0}; _fx_N10Ast__typ_t t_0 = lst_1->hd; _fx_R9Ast__id_t* n_0 = &lst_0->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env_1); FX_CALL( _fx_M13Ast_typecheckFM8find_allLN16Ast__env_entry_t2R9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(n_0, &env_1, &entries_0, 0), _fx_catch_1); @@ -21108,8 +20647,8 @@ FX_EXTERN_C int FX_COPY_PTR(v_5.t0, &new_root_0); FX_COPY_FP(&env_1.cmp, &v_6); _fx_make_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(new_root_0, &v_6, &v_7); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_7, &__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_7, &env_1); _fx_catch_1: ; _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_7); @@ -21134,18 +20673,17 @@ FX_EXTERN_C int if (entries_0) { _fx_free_LN16Ast__env_entry_t(&entries_0); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); FX_CHECK_EXN(_fx_cleanup); } int s_0 = !lst_0 + !lst_1; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_cleanup); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, fx_result); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, fx_result); _fx_cleanup: ; if (norm_ty_args_0) { _fx_free_LN10Ast__typ_t(&norm_ty_args_0); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); return fx_status; } @@ -21586,52 +21124,53 @@ FX_EXTERN_C int _fx_catch_16); _fx_copy_Nt6option1T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&_fx_g19Ast_typecheck__None, &__fold_result___0); - FX_COPY_PTR(iface_0->data.di_all_methods, &v_20); + _fx_R19Ast__definterface_t* v_21 = &iface_0->data; + FX_COPY_PTR(v_21->di_all_methods, &v_20); _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_0 = v_20; for (; lst_0; lst_0 = lst_0->tl) { _fx_N10Ast__typ_t t_2 = 0; - _fx_N16Ast__env_entry_t v_21 = 0; - _fx_LN16Ast__env_entry_t v_22 = 0; - _fx_Nt6option1T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_23 = {0}; + _fx_N16Ast__env_entry_t v_22 = 0; + _fx_LN16Ast__env_entry_t v_23 = 0; + _fx_Nt6option1T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_24 = {0}; _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* __pat___0 = &lst_0->hd; _fx_R9Ast__id_t f_0 = __pat___0->t0; FX_COPY_PTR(__pat___0->t1, &t_2); - _fx_R9Ast__id_t v_24; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&f_0, &v_24, 0), _fx_catch_13); _fx_R9Ast__id_t v_25; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(n2_1, &v_25, 0), _fx_catch_13); + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&f_0, &v_25, 0), _fx_catch_13); + _fx_R9Ast__id_t v_26; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(n2_1, &v_26, 0), _fx_catch_13); bool matched_name_0; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_24, &v_25, &matched_name_0, 0), _fx_catch_13); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_25, &v_26, &matched_name_0, 0), _fx_catch_13); if (matched_name_0) { - FX_CALL(_fx_M3AstFM5EnvIdN16Ast__env_entry_t1RM4id_t(&f_0, &v_21), _fx_catch_13); - FX_CALL(_fx_cons_LN16Ast__env_entry_t(v_21, candidates_0, true, &v_22), _fx_catch_13); + FX_CALL(_fx_M3AstFM5EnvIdN16Ast__env_entry_t1RM4id_t(&f_0, &v_22), _fx_catch_13); + FX_CALL(_fx_cons_LN16Ast__env_entry_t(v_22, candidates_0, true, &v_23), _fx_catch_13); _fx_free_LN16Ast__env_entry_t(&candidates_0); - FX_COPY_PTR(v_22, &candidates_0); + FX_COPY_PTR(v_23, &candidates_0); } - bool v_26; + bool v_27; if (matched_name_0) { FX_CALL( _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB(t_2, etyp_0, &eloc_0, - true, &v_26, 0), _fx_catch_13); + true, &v_27, 0), _fx_catch_13); } else { - v_26 = false; + v_27 = false; } - if (v_26) { + if (v_27) { _fx_M13Ast_typecheckFM4SomeNt6option1T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t1T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t( - __pat___0, &v_23); + __pat___0, &v_24); _fx_free_Nt6option1T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&__fold_result___0); - _fx_copy_Nt6option1T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_23, &__fold_result___0); + _fx_copy_Nt6option1T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_24, &__fold_result___0); FX_BREAK(_fx_catch_13); } _fx_catch_13: ; - _fx_free_Nt6option1T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_23); - if (v_22) { - _fx_free_LN16Ast__env_entry_t(&v_22); + _fx_free_Nt6option1T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_24); + if (v_23) { + _fx_free_LN16Ast__env_entry_t(&v_23); } - if (v_21) { - _fx_free_N16Ast__env_entry_t(&v_21); + if (v_22) { + _fx_free_N16Ast__env_entry_t(&v_22); } if (t_2) { _fx_free_N10Ast__typ_t(&t_2); @@ -21641,15 +21180,15 @@ FX_EXTERN_C int } _fx_copy_Nt6option1T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&__fold_result___0, &method_opt_0); if (method_opt_0.tag == 2) { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_27 = {0}; - _fx_N10Ast__exp_t v_28 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_28 = {0}; + _fx_N10Ast__exp_t v_29 = 0; _fx_N10Ast__exp_t result_6 = 0; - _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* v_29 = &method_opt_0.u.Some; - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_29->t1, &eloc_0, &v_27); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&v_29->t0, &v_27, &v_28), + _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* v_30 = &method_opt_0.u.Some; + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_30->t1, &eloc_0, &v_28); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&v_30->t0, &v_28, &v_29), _fx_catch_14); FX_CALL( - _fx_M3AstFM6ExpMemN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(new_e1_0, v_28, + _fx_M3AstFM6ExpMemN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(new_e1_0, v_29, &ctx_0, &result_6), _fx_catch_14); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_6, &result_0); @@ -21659,20 +21198,20 @@ FX_EXTERN_C int if (result_6) { _fx_free_N10Ast__exp_t(&result_6); } - if (v_28) { - _fx_free_N10Ast__exp_t(&v_28); + if (v_29) { + _fx_free_N10Ast__exp_t(&v_29); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_27); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_28); } else { - fx_exn_t v_30 = {0}; + fx_exn_t v_31 = {0}; FX_CALL( _fx_M13Ast_typecheckFM22report_not_found_typedE6R9Ast__id_tN10Ast__typ_tLN16Ast__env_entry_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - n2_1, etyp_0, candidates_0, &env_2, sc_2, &eloc_0, &v_30, 0), _fx_catch_15); - FX_THROW(&v_30, false, _fx_catch_15); + n2_1, etyp_0, candidates_0, &env_2, sc_2, &eloc_0, &v_31, 0), _fx_catch_15); + FX_THROW(&v_31, false, _fx_catch_15); _fx_catch_15: ; - fx_free_exn(&v_30); + fx_free_exn(&v_31); } FX_CHECK_EXN(_fx_catch_16); @@ -21719,25 +21258,25 @@ FX_EXTERN_C int } } if (FX_REC_VARIANT_TAG(e2_0) == 7) { - _fx_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_31 = {0}; + _fx_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_32 = {0}; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_0 = 0; _fx_FPB1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t __lambda___0 = {0}; - _fx_Nt6option1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_32 = {0}; + _fx_Nt6option1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_33 = {0}; _fx_R9Ast__id_t* n2_2 = &e2_0->u.ExpIdent.t0; FX_CALL( _fx_M13Ast_typecheckFM16get_record_elemsT2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t4Nt6option1R9Ast__id_tN10Ast__typ_tBR10Ast__loc_t( - &_fx_g22Ast_typecheck__None13_, etyp1_1, false, &eloc1_0, &v_31, 0), _fx_catch_20); - FX_COPY_PTR(v_31.t1, &relems_0); + &_fx_g22Ast_typecheck__None13_, etyp1_1, false, &eloc1_0, &v_32, 0), _fx_catch_20); + FX_COPY_PTR(v_32.t1, &relems_0); _fx_M13Ast_typecheckFM7make_fpFPB1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t1R9Ast__id_t(n2_2, &__lambda___0); FX_CALL( _fx_M13Ast_typecheckFM8find_optNt6option1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tFPB1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t( - relems_0, &__lambda___0, &v_32, 0), _fx_catch_20); - if (v_32.tag == 2) { + relems_0, &__lambda___0, &v_33, 0), _fx_catch_20); + if (v_33.tag == 2) { _fx_N10Ast__exp_t result_8 = 0; fx_str_t slit_9 = FX_MAKE_STR("incorrect type of the record element"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_32.u.Some.t2, &eloc_0, + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_33.u.Some.t2, &eloc_0, &slit_9, 0), _fx_catch_18); FX_CALL( _fx_M3AstFM6ExpMemN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(new_e1_0, e2_0, &ctx_0, @@ -21752,45 +21291,45 @@ FX_EXTERN_C int } } else { - fx_str_t v_33 = {0}; fx_str_t v_34 = {0}; fx_str_t v_35 = {0}; - fx_exn_t v_36 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n2_2, &v_33, 0), _fx_catch_19); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_33, &v_34, 0), _fx_catch_19); + fx_str_t v_36 = {0}; + fx_exn_t v_37 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n2_2, &v_34, 0), _fx_catch_19); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_34, &v_35, 0), _fx_catch_19); fx_str_t slit_10 = FX_MAKE_STR("the record element "); fx_str_t slit_11 = FX_MAKE_STR(" is not found"); { - const fx_str_t strs_1[] = { slit_10, v_34, slit_11 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_35), _fx_catch_19); + const fx_str_t strs_1[] = { slit_10, v_35, slit_11 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_36), _fx_catch_19); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_35, &v_36, 0), _fx_catch_19); - FX_THROW(&v_36, false, _fx_catch_19); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_36, &v_37, 0), _fx_catch_19); + FX_THROW(&v_37, false, _fx_catch_19); _fx_catch_19: ; - fx_free_exn(&v_36); + fx_free_exn(&v_37); + FX_FREE_STR(&v_36); FX_FREE_STR(&v_35); FX_FREE_STR(&v_34); - FX_FREE_STR(&v_33); } FX_CHECK_EXN(_fx_catch_20); _fx_catch_20: ; - _fx_free_Nt6option1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_32); + _fx_free_Nt6option1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_33); FX_FREE_FP(&__lambda___0); if (relems_0) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_0); } - _fx_free_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_31); + _fx_free_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_32); goto _fx_endmatch_0; } - fx_exn_t v_37 = {0}; + fx_exn_t v_38 = {0}; fx_str_t slit_12 = FX_MAKE_STR("unsupported element access operation"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_12, &v_37, 0), _fx_catch_21); - FX_THROW(&v_37, false, _fx_catch_21); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_12, &v_38, 0), _fx_catch_21); + FX_THROW(&v_38, false, _fx_catch_21); _fx_catch_21: ; - fx_free_exn(&v_37); + fx_free_exn(&v_38); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_22); @@ -21815,8 +21354,8 @@ FX_EXTERN_C int _fx_N10Ast__typ_t etyp1_2 = 0; _fx_N10Ast__exp_t e2_1 = 0; _fx_N10Ast__exp_t new_e2_0 = 0; - fx_exn_t v_38 = {0}; fx_exn_t v_39 = {0}; + fx_exn_t v_40 = {0}; _fx_N10Ast__exp_t result_9 = 0; _fx_T3N10Ast__exp_tN10Ast__exp_tR10Ast__loc_t* vcase_4 = &e_2->u.ExpAssign; FX_CALL( @@ -21832,24 +21371,24 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( e2_1, &env_2, sc_2, &new_e2_0, 0), _fx_catch_23); - bool v_40; + bool v_41; FX_CALL( _fx_M13Ast_typecheckFM9is_lvalueB4BN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_tR10Ast__loc_t(true, new_e1_1, &ectx_0, - &eloc_0, &v_40, 0), _fx_catch_23); - if (!v_40) { - bool v_41; + &eloc_0, &v_41, 0), _fx_catch_23); + if (!v_41) { + bool v_42; FX_CALL( _fx_M13Ast_typecheckFM32is_mutable_lvalue_identifier_expB3N10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_tR10Ast__loc_t( - new_e1_1, &ectx_0, &eloc_0, &v_41, 0), _fx_catch_23); - if (!v_41) { + new_e1_1, &ectx_0, &eloc_0, &v_42, 0), _fx_catch_23); + if (!v_42) { fx_str_t slit_14 = FX_MAKE_STR("the left side of an assignment is an immutable value"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc1_1, &slit_14, &v_38, 0), _fx_catch_23); - FX_THROW(&v_38, false, _fx_catch_23); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc1_1, &slit_14, &v_39, 0), _fx_catch_23); + FX_THROW(&v_39, false, _fx_catch_23); } else { fx_str_t slit_15 = FX_MAKE_STR("the left side of an assignment is not an l-value"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc1_1, &slit_15, &v_39, 0), _fx_catch_23); - FX_THROW(&v_39, false, _fx_catch_23); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc1_1, &slit_15, &v_40, 0), _fx_catch_23); + FX_THROW(&v_40, false, _fx_catch_23); } } FX_CALL(_fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(new_e1_1, new_e2_0, &eloc_0, &result_9), @@ -21862,8 +21401,8 @@ FX_EXTERN_C int if (result_9) { _fx_free_N10Ast__exp_t(&result_9); } + fx_free_exn(&v_40); fx_free_exn(&v_39); - fx_free_exn(&v_38); if (new_e2_0) { _fx_free_N10Ast__exp_t(&new_e2_0); } @@ -21884,16 +21423,15 @@ FX_EXTERN_C int if (FX_REC_VARIANT_TAG(vcase_5->t0) == 26) { _fx_N10Ast__exp_t new_e1_2 = 0; _fx_N10Ast__exp_t new_e2_1 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_42 = {0}; - _fx_N10Ast__typ_t etyp1_3 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_43 = {0}; + _fx_N10Ast__typ_t etyp1_3 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_44 = {0}; _fx_N10Ast__typ_t etyp2_0 = 0; - _fx_N10Ast__typ_t v_44 = 0; _fx_N10Ast__typ_t v_45 = 0; _fx_N10Ast__typ_t v_46 = 0; _fx_N10Ast__typ_t v_47 = 0; _fx_N10Ast__typ_t v_48 = 0; - fx_str_t v_49 = {0}; + _fx_N10Ast__typ_t v_49 = 0; fx_str_t v_50 = {0}; fx_str_t v_51 = {0}; fx_str_t v_52 = {0}; @@ -21903,11 +21441,12 @@ FX_EXTERN_C int fx_str_t v_56 = {0}; fx_str_t v_57 = {0}; fx_str_t v_58 = {0}; + fx_str_t v_59 = {0}; _fx_N10Ast__exp_t result_10 = 0; - _fx_LN10Ast__typ_t v_59 = 0; - _fx_N10Ast__typ_t v_60 = 0; - _fx_Nt6option1N10Ast__exp_t v_61 = 0; + _fx_LN10Ast__typ_t v_60 = 0; + _fx_N10Ast__typ_t v_61 = 0; _fx_Nt6option1N10Ast__exp_t v_62 = 0; + _fx_Nt6option1N10Ast__exp_t v_63 = 0; _fx_N10Ast__exp_t result_11 = 0; FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( @@ -21915,58 +21454,58 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( vcase_5->t2, &env_2, sc_2, &new_e2_1, 0), _fx_catch_24); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e1_2, &v_42, 0), _fx_catch_24); - FX_COPY_PTR(v_42.t0, &etyp1_3); - _fx_R10Ast__loc_t eloc1_2 = v_42.t1; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e2_1, &v_43, 0), _fx_catch_24); - FX_COPY_PTR(v_43.t0, &etyp2_0); - _fx_R10Ast__loc_t eloc2_1 = v_43.t1; - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_44, 0), _fx_catch_24); - FX_CALL(_fx_M3AstFM7TypListN10Ast__typ_t1N10Ast__typ_t(v_44, &v_45), _fx_catch_24); - bool v_63; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e1_2, &v_43, 0), _fx_catch_24); + FX_COPY_PTR(v_43.t0, &etyp1_3); + _fx_R10Ast__loc_t eloc1_2 = v_43.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e2_1, &v_44, 0), _fx_catch_24); + FX_COPY_PTR(v_44.t0, &etyp2_0); + _fx_R10Ast__loc_t eloc2_1 = v_44.t1; + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_45, 0), _fx_catch_24); + FX_CALL(_fx_M3AstFM7TypListN10Ast__typ_t1N10Ast__typ_t(v_45, &v_46), _fx_catch_24); + bool v_64; bool res_4; FX_CALL( - _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB(etyp_0, v_45, &eloc_0, false, + _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB(etyp_0, v_46, &eloc_0, false, &res_4, 0), _fx_catch_24); if (res_4) { - v_63 = true; + v_64 = true; } else { - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_46, 0), _fx_catch_24); - FX_CALL(_fx_M3AstFM7TypListN10Ast__typ_t1N10Ast__typ_t(v_46, &v_47), _fx_catch_24); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_47, 0), _fx_catch_24); + FX_CALL(_fx_M3AstFM7TypListN10Ast__typ_t1N10Ast__typ_t(v_47, &v_48), _fx_catch_24); FX_CALL( - _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB(etyp2_0, v_47, &eloc_0, false, - &v_63, 0), _fx_catch_24); - } - if (v_63) { - FX_CALL(_fx_M3AstFM7TypListN10Ast__typ_t1N10Ast__typ_t(etyp1_3, &v_48), _fx_catch_24); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp1_3, &v_49, 0), _fx_catch_24); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_49, &v_50, 0), _fx_catch_24); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp2_0, &v_51, 0), _fx_catch_24); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_51, &v_52, 0), _fx_catch_24); + _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB(etyp2_0, v_48, &eloc_0, false, + &v_64, 0), _fx_catch_24); + } + if (v_64) { + FX_CALL(_fx_M3AstFM7TypListN10Ast__typ_t1N10Ast__typ_t(etyp1_3, &v_49), _fx_catch_24); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp1_3, &v_50, 0), _fx_catch_24); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_50, &v_51, 0), _fx_catch_24); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp2_0, &v_52, 0), _fx_catch_24); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_52, &v_53, 0), _fx_catch_24); fx_str_t slit_16 = FX_MAKE_STR("incompatible types of arguments of \'::\' operation: \'"); fx_str_t slit_17 = FX_MAKE_STR("\' and \'"); fx_str_t slit_18 = FX_MAKE_STR("\'"); { - const fx_str_t strs_2[] = { slit_16, v_50, slit_17, v_52, slit_18 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_53), _fx_catch_24); + const fx_str_t strs_2[] = { slit_16, v_51, slit_17, v_53, slit_18 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_54), _fx_catch_24); } FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp2_0, v_48, &eloc2_1, &v_53, 0), + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp2_0, v_49, &eloc2_1, &v_54, 0), _fx_catch_24); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp2_0, &v_54, 0), _fx_catch_24); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_54, &v_55, 0), _fx_catch_24); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp_0, &v_56, 0), _fx_catch_24); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_56, &v_57, 0), _fx_catch_24); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp2_0, &v_55, 0), _fx_catch_24); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_55, &v_56, 0), _fx_catch_24); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp_0, &v_57, 0), _fx_catch_24); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_57, &v_58, 0), _fx_catch_24); fx_str_t slit_19 = FX_MAKE_STR("the produced list has type \'"); fx_str_t slit_20 = FX_MAKE_STR("\', but it\'s expected to be \'"); fx_str_t slit_21 = FX_MAKE_STR("\'"); { - const fx_str_t strs_3[] = { slit_19, v_55, slit_20, v_57, slit_21 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_58), _fx_catch_24); + const fx_str_t strs_3[] = { slit_19, v_56, slit_20, v_58, slit_21 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_59), _fx_catch_24); } FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, etyp2_0, &eloc1_2, &v_58, 0), + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, etyp2_0, &eloc1_2, &v_59, 0), _fx_catch_24); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( @@ -21984,19 +21523,19 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp2_0, _fx_g21Ast_typecheck__TypInt, &eloc2_1, &slit_23, 0), _fx_catch_24); - FX_CALL(_fx_cons_LN10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, 0, true, &v_59), _fx_catch_24); - FX_CALL(_fx_cons_LN10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, v_59, false, &v_59), _fx_catch_24); - FX_CALL(_fx_cons_LN10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, v_59, false, &v_59), _fx_catch_24); - FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(v_59, &v_60), _fx_catch_24); + FX_CALL(_fx_cons_LN10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, 0, true, &v_60), _fx_catch_24); + FX_CALL(_fx_cons_LN10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, v_60, false, &v_60), _fx_catch_24); + FX_CALL(_fx_cons_LN10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, v_60, false, &v_60), _fx_catch_24); + FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(v_60, &v_61), _fx_catch_24); fx_str_t slit_24 = FX_MAKE_STR("the range type should have (int, int, int) type"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_60, &eloc_0, &slit_24, 0), + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_61, &eloc_0, &slit_24, 0), _fx_catch_24); - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(new_e1_2, &v_61), _fx_catch_24); - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(new_e2_1, &v_62), _fx_catch_24); + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(new_e1_2, &v_62), _fx_catch_24); + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(new_e2_1, &v_63), _fx_catch_24); FX_CALL( _fx_M3AstFM8ExpRangeN10Ast__exp_t4Nt6option1N10Ast__exp_tNt6option1N10Ast__exp_tNt6option1N10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - v_61, _fx_g22Ast_typecheck__None14_, v_62, &ctx_0, &result_11), _fx_catch_24); + v_62, _fx_g22Ast_typecheck__None14_, v_63, &ctx_0, &result_11), _fx_catch_24); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_11, &result_0); FX_BREAK(_fx_catch_24); @@ -22006,21 +21545,22 @@ FX_EXTERN_C int if (result_11) { _fx_free_N10Ast__exp_t(&result_11); } + if (v_63) { + _fx_free_Nt6option1N10Ast__exp_t(&v_63); + } if (v_62) { _fx_free_Nt6option1N10Ast__exp_t(&v_62); } if (v_61) { - _fx_free_Nt6option1N10Ast__exp_t(&v_61); + _fx_free_N10Ast__typ_t(&v_61); } if (v_60) { - _fx_free_N10Ast__typ_t(&v_60); - } - if (v_59) { - _fx_free_LN10Ast__typ_t(&v_59); + _fx_free_LN10Ast__typ_t(&v_60); } if (result_10) { _fx_free_N10Ast__exp_t(&result_10); } + FX_FREE_STR(&v_59); FX_FREE_STR(&v_58); FX_FREE_STR(&v_57); FX_FREE_STR(&v_56); @@ -22030,7 +21570,9 @@ FX_EXTERN_C int FX_FREE_STR(&v_52); FX_FREE_STR(&v_51); FX_FREE_STR(&v_50); - FX_FREE_STR(&v_49); + if (v_49) { + _fx_free_N10Ast__typ_t(&v_49); + } if (v_48) { _fx_free_N10Ast__typ_t(&v_48); } @@ -22043,17 +21585,14 @@ FX_EXTERN_C int if (v_45) { _fx_free_N10Ast__typ_t(&v_45); } - if (v_44) { - _fx_free_N10Ast__typ_t(&v_44); - } if (etyp2_0) { _fx_free_N10Ast__typ_t(&etyp2_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_43); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_44); if (etyp1_3) { _fx_free_N10Ast__typ_t(&etyp1_3); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_42); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_43); if (new_e2_1) { _fx_free_N10Ast__exp_t(&new_e2_1); } @@ -22069,15 +21608,15 @@ FX_EXTERN_C int if (FX_REC_VARIANT_TAG(bop_0) == 21) { _fx_N10Ast__exp_t new_e1_3 = 0; _fx_N10Ast__exp_t new_e2_2 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_64 = {0}; - _fx_N10Ast__typ_t etyp1_4 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_65 = {0}; + _fx_N10Ast__typ_t etyp1_4 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_66 = {0}; _fx_N10Ast__typ_t etyp2_1 = 0; - _fx_Ta2N10Ast__exp_t v_66 = {0}; + _fx_Ta2N10Ast__exp_t v_67 = {0}; _fx_N10Ast__exp_t new_e1_4 = 0; _fx_N10Ast__exp_t new_e2_3 = 0; - fx_str_t v_67 = {0}; fx_str_t v_68 = {0}; + fx_str_t v_69 = {0}; _fx_N10Ast__exp_t result_12 = 0; _fx_Nt6option1N10Ast__exp_t result_exp_opt_0 = 0; FX_CALL( @@ -22086,36 +21625,36 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( vcase_6->t2, &env_2, sc_2, &new_e2_2, 0), _fx_catch_37); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e1_3, &v_64, 0), _fx_catch_37); - FX_COPY_PTR(v_64.t0, &etyp1_4); - _fx_R10Ast__loc_t eloc1_3 = v_64.t1; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e2_2, &v_65, 0), _fx_catch_37); - FX_COPY_PTR(v_65.t0, &etyp2_1); - _fx_R10Ast__loc_t eloc2_2 = v_65.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e1_3, &v_65, 0), _fx_catch_37); + FX_COPY_PTR(v_65.t0, &etyp1_4); + _fx_R10Ast__loc_t eloc1_3 = v_65.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e2_2, &v_66, 0), _fx_catch_37); + FX_COPY_PTR(v_66.t0, &etyp2_1); + _fx_R10Ast__loc_t eloc2_2 = v_66.t1; if (FX_REC_VARIANT_TAG(new_e2_2) == 6) { - _fx_N10Ast__exp_t v_69 = 0; + _fx_N10Ast__exp_t v_70 = 0; fx_str_t slit_25 = FX_MAKE_STR("the compared elements must have the same type"); FX_CALL( _fx_M13Ast_typecheckFM22try_unify_with_literalN10Ast__exp_t3N10Ast__typ_tN10Ast__exp_tS(etyp1_4, new_e2_2, - &slit_25, &v_69, 0), _fx_catch_25); - _fx_make_Ta2N10Ast__exp_t(new_e1_3, v_69, &v_66); + &slit_25, &v_70, 0), _fx_catch_25); + _fx_make_Ta2N10Ast__exp_t(new_e1_3, v_70, &v_67); _fx_catch_25: ; - if (v_69) { - _fx_free_N10Ast__exp_t(&v_69); + if (v_70) { + _fx_free_N10Ast__exp_t(&v_70); } } else if (FX_REC_VARIANT_TAG(new_e1_3) == 6) { - _fx_N10Ast__exp_t v_70 = 0; + _fx_N10Ast__exp_t v_71 = 0; fx_str_t slit_26 = FX_MAKE_STR("the compared elements must have the same type"); FX_CALL( _fx_M13Ast_typecheckFM22try_unify_with_literalN10Ast__exp_t3N10Ast__typ_tN10Ast__exp_tS(etyp2_1, new_e1_3, - &slit_26, &v_70, 0), _fx_catch_26); - _fx_make_Ta2N10Ast__exp_t(v_70, new_e2_2, &v_66); + &slit_26, &v_71, 0), _fx_catch_26); + _fx_make_Ta2N10Ast__exp_t(v_71, new_e2_2, &v_67); _fx_catch_26: ; - if (v_70) { - _fx_free_N10Ast__exp_t(&v_70); + if (v_71) { + _fx_free_N10Ast__exp_t(&v_71); } } else { @@ -22123,33 +21662,33 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp1_4, etyp2_1, &eloc_0, &slit_27, 0), _fx_catch_27); - _fx_make_Ta2N10Ast__exp_t(new_e1_3, new_e2_2, &v_66); + _fx_make_Ta2N10Ast__exp_t(new_e1_3, new_e2_2, &v_67); _fx_catch_27: ; } FX_CHECK_EXN(_fx_catch_37); - FX_COPY_PTR(v_66.t0, &new_e1_4); - FX_COPY_PTR(v_66.t1, &new_e2_3); - FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(bop_0, &v_67, 0), _fx_catch_37); + FX_COPY_PTR(v_67.t0, &new_e1_4); + FX_COPY_PTR(v_67.t1, &new_e2_3); + FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(bop_0, &v_68, 0), _fx_catch_37); fx_str_t slit_28 = FX_MAKE_STR("result of comparison operation \'"); fx_str_t slit_29 = FX_MAKE_STR("\' must be bool"); { - const fx_str_t strs_4[] = { slit_28, v_67, slit_29 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_68), _fx_catch_37); + const fx_str_t strs_4[] = { slit_28, v_68, slit_29 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_69), _fx_catch_37); } FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, _fx_g22Ast_typecheck__TypBool, - &eloc_0, &v_68, 0), _fx_catch_37); - bool v_71; + &eloc_0, &v_69, 0), _fx_catch_37); + bool v_72; bool res_5; FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(etyp1_4, &res_5, 0), _fx_catch_37); if (res_5) { - FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(etyp2_1, &v_71, 0), _fx_catch_37); + FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(etyp2_1, &v_72, 0), _fx_catch_37); } else { - v_71 = false; + v_72 = false; } - if (v_71) { + if (v_72) { FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(bop_0, new_e1_4, new_e2_3, &ctx_0, &result_12), _fx_catch_37); @@ -22171,9 +21710,9 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_37); if (res_6) { - _fx_N10Ast__typ_t v_72 = 0; - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_4, &v_72, 0), _fx_catch_34); - int tag_2 = FX_REC_VARIANT_TAG(v_72); + _fx_N10Ast__typ_t v_73 = 0; + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_4, &v_73, 0), _fx_catch_34); + int tag_2 = FX_REC_VARIANT_TAG(v_73); if (tag_2 == 16) { bool res_7; if (FX_REC_VARIANT_TAG(new_e2_3) == 6) { @@ -22191,16 +21730,16 @@ FX_EXTERN_C int _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_29); if (res_7) { - _fx_N10Ast__exp_t v_73 = 0; + _fx_N10Ast__exp_t v_74 = 0; FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - bop_0, new_e1_4, new_e2_3, &ctx_0, &v_73), _fx_catch_28); - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(v_73, &result_exp_opt_0), + bop_0, new_e1_4, new_e2_3, &ctx_0, &v_74), _fx_catch_28); + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(v_74, &result_exp_opt_0), _fx_catch_28); _fx_catch_28: ; - if (v_73) { - _fx_free_N10Ast__exp_t(&v_73); + if (v_74) { + _fx_free_N10Ast__exp_t(&v_74); } goto _fx_endmatch_2; } @@ -22213,94 +21752,94 @@ FX_EXTERN_C int } else if (tag_2 == 11) { if (FX_REC_VARIANT_TAG(new_e2_3) == 6) { - _fx_N10Ast__lit_t* v_74 = &new_e2_3->u.ExpLit.t0; - if (v_74->tag == 5) { + _fx_N10Ast__lit_t* v_75 = &new_e2_3->u.ExpLit.t0; + if (v_75->tag == 5) { fx_str_t slit_30 = FX_MAKE_STR(""); - if (fx_streq(&v_74->u.LitString, &slit_30)) { - _fx_LN10Ast__exp_t v_75 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_76 = {0}; + if (fx_streq(&v_75->u.LitString, &slit_30)) { + _fx_LN10Ast__exp_t v_76 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_77 = {0}; _fx_N10Ast__exp_t e1_size_0 = 0; - _fx_N10Ast__lit_t v_77 = {0}; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_78 = {0}; - _fx_N10Ast__exp_t v_79 = 0; + _fx_N10Ast__lit_t v_78 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_79 = {0}; _fx_N10Ast__exp_t v_80 = 0; - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_4, 0, true, &v_75), _fx_catch_30); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc1_3, &v_76); + _fx_N10Ast__exp_t v_81 = 0; + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_4, 0, true, &v_76), _fx_catch_30); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc1_3, &v_77); FX_CALL( _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - &_fx_g28Ast_typecheck__IntrinGetSize, v_75, &v_76, &e1_size_0), _fx_catch_30); - _fx_M3AstFM6LitIntN10Ast__lit_t1l(0LL, &v_77); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc2_2, &v_78); - FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_77, &v_78, &v_79), + &_fx_g28Ast_typecheck__IntrinGetSize, v_76, &v_77, &e1_size_0), _fx_catch_30); + _fx_M3AstFM6LitIntN10Ast__lit_t1l(0LL, &v_78); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc2_2, &v_79); + FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_78, &v_79, &v_80), _fx_catch_30); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - bop_0, e1_size_0, v_79, &ctx_0, &v_80), _fx_catch_30); - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(v_80, &result_exp_opt_0), + bop_0, e1_size_0, v_80, &ctx_0, &v_81), _fx_catch_30); + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(v_81, &result_exp_opt_0), _fx_catch_30); _fx_catch_30: ; + if (v_81) { + _fx_free_N10Ast__exp_t(&v_81); + } if (v_80) { _fx_free_N10Ast__exp_t(&v_80); } - if (v_79) { - _fx_free_N10Ast__exp_t(&v_79); - } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_78); - _fx_free_N10Ast__lit_t(&v_77); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_79); + _fx_free_N10Ast__lit_t(&v_78); if (e1_size_0) { _fx_free_N10Ast__exp_t(&e1_size_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_76); - if (v_75) { - _fx_free_LN10Ast__exp_t(&v_75); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_77); + if (v_76) { + _fx_free_LN10Ast__exp_t(&v_76); } goto _fx_endmatch_3; } } } if (FX_REC_VARIANT_TAG(new_e1_4) == 6) { - _fx_N10Ast__lit_t* v_81 = &new_e1_4->u.ExpLit.t0; - if (v_81->tag == 5) { + _fx_N10Ast__lit_t* v_82 = &new_e1_4->u.ExpLit.t0; + if (v_82->tag == 5) { fx_str_t slit_31 = FX_MAKE_STR(""); - if (fx_streq(&v_81->u.LitString, &slit_31)) { - _fx_LN10Ast__exp_t v_82 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_83 = {0}; + if (fx_streq(&v_82->u.LitString, &slit_31)) { + _fx_LN10Ast__exp_t v_83 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_84 = {0}; _fx_N10Ast__exp_t e2_size_0 = 0; - _fx_N10Ast__lit_t v_84 = {0}; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_85 = {0}; - _fx_N10Ast__exp_t v_86 = 0; + _fx_N10Ast__lit_t v_85 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_86 = {0}; _fx_N10Ast__exp_t v_87 = 0; - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e2_3, 0, true, &v_82), _fx_catch_31); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc2_2, &v_83); + _fx_N10Ast__exp_t v_88 = 0; + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e2_3, 0, true, &v_83), _fx_catch_31); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc2_2, &v_84); FX_CALL( _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - &_fx_g28Ast_typecheck__IntrinGetSize, v_82, &v_83, &e2_size_0), _fx_catch_31); - _fx_M3AstFM6LitIntN10Ast__lit_t1l(0LL, &v_84); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc1_3, &v_85); - FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_84, &v_85, &v_86), + &_fx_g28Ast_typecheck__IntrinGetSize, v_83, &v_84, &e2_size_0), _fx_catch_31); + _fx_M3AstFM6LitIntN10Ast__lit_t1l(0LL, &v_85); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc1_3, &v_86); + FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_85, &v_86, &v_87), _fx_catch_31); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - bop_0, e2_size_0, v_86, &ctx_0, &v_87), _fx_catch_31); - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(v_87, &result_exp_opt_0), + bop_0, e2_size_0, v_87, &ctx_0, &v_88), _fx_catch_31); + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(v_88, &result_exp_opt_0), _fx_catch_31); _fx_catch_31: ; + if (v_88) { + _fx_free_N10Ast__exp_t(&v_88); + } if (v_87) { _fx_free_N10Ast__exp_t(&v_87); } - if (v_86) { - _fx_free_N10Ast__exp_t(&v_86); - } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_85); - _fx_free_N10Ast__lit_t(&v_84); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_86); + _fx_free_N10Ast__lit_t(&v_85); if (e2_size_0) { _fx_free_N10Ast__exp_t(&e2_size_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_83); - if (v_82) { - _fx_free_LN10Ast__exp_t(&v_82); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_84); + if (v_83) { + _fx_free_LN10Ast__exp_t(&v_83); } goto _fx_endmatch_3; } @@ -22314,37 +21853,37 @@ FX_EXTERN_C int _fx_catch_32: ; } else if (tag_2 == 25) { - _fx_LN10Ast__exp_t v_88 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_89 = {0}; + _fx_LN10Ast__exp_t v_89 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_90 = {0}; _fx_N10Ast__exp_t tag1_0 = 0; - _fx_LN10Ast__exp_t v_90 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_91 = {0}; + _fx_LN10Ast__exp_t v_91 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_92 = {0}; _fx_N10Ast__exp_t tag2_0 = 0; - _fx_N10Ast__exp_t v_92 = 0; - bool v_93; + _fx_N10Ast__exp_t v_93 = 0; + bool v_94; bool res_8; FX_CALL(_fx_M13Ast_typecheckFM14is_simple_ctorB1N10Ast__exp_t(new_e1_4, &res_8, 0), _fx_catch_33); if (res_8) { - v_93 = true; + v_94 = true; } else { - FX_CALL(_fx_M13Ast_typecheckFM14is_simple_ctorB1N10Ast__exp_t(new_e2_3, &v_93, 0), _fx_catch_33); + FX_CALL(_fx_M13Ast_typecheckFM14is_simple_ctorB1N10Ast__exp_t(new_e2_3, &v_94, 0), _fx_catch_33); } - if (v_93) { - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_4, 0, true, &v_88), _fx_catch_33); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc1_3, &v_89); + if (v_94) { + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_4, 0, true, &v_89), _fx_catch_33); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc1_3, &v_90); FX_CALL( _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - &_fx_g31Ast_typecheck__IntrinVariantTag, v_88, &v_89, &tag1_0), _fx_catch_33); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e2_3, 0, true, &v_90), _fx_catch_33); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc2_2, &v_91); + &_fx_g31Ast_typecheck__IntrinVariantTag, v_89, &v_90, &tag1_0), _fx_catch_33); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e2_3, 0, true, &v_91), _fx_catch_33); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &eloc2_2, &v_92); FX_CALL( _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - &_fx_g31Ast_typecheck__IntrinVariantTag, v_90, &v_91, &tag2_0), _fx_catch_33); + &_fx_g31Ast_typecheck__IntrinVariantTag, v_91, &v_92, &tag2_0), _fx_catch_33); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - bop_0, tag1_0, tag2_0, &ctx_0, &v_92), _fx_catch_33); - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(v_92, &result_exp_opt_0), + bop_0, tag1_0, tag2_0, &ctx_0, &v_93), _fx_catch_33); + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(v_93, &result_exp_opt_0), _fx_catch_33); } else { @@ -22352,22 +21891,22 @@ FX_EXTERN_C int } _fx_catch_33: ; - if (v_92) { - _fx_free_N10Ast__exp_t(&v_92); + if (v_93) { + _fx_free_N10Ast__exp_t(&v_93); } if (tag2_0) { _fx_free_N10Ast__exp_t(&tag2_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_91); - if (v_90) { - _fx_free_LN10Ast__exp_t(&v_90); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_92); + if (v_91) { + _fx_free_LN10Ast__exp_t(&v_91); } if (tag1_0) { _fx_free_N10Ast__exp_t(&tag1_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_89); - if (v_88) { - _fx_free_LN10Ast__exp_t(&v_88); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_90); + if (v_89) { + _fx_free_LN10Ast__exp_t(&v_89); } } else { @@ -22376,8 +21915,8 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_34); _fx_catch_34: ; - if (v_72) { - _fx_free_N10Ast__typ_t(&v_72); + if (v_73) { + _fx_free_N10Ast__typ_t(&v_73); } goto _fx_endmatch_4; } @@ -22394,16 +21933,16 @@ FX_EXTERN_C int _fx_catch_35: ; } else { - _fx_LN10Ast__exp_t v_94 = 0; + _fx_LN10Ast__exp_t v_95 = 0; _fx_N10Ast__exp_t result_14 = 0; _fx_R9Ast__id_t f_id_0; FX_CALL(_fx_M3AstFM16get_binary_fnameRM4id_t2N13Ast__binary_tRM5loc_t(bop_0, &eloc_0, &f_id_0, 0), _fx_catch_36); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e2_3, 0, true, &v_94), _fx_catch_36); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_4, v_94, false, &v_94), _fx_catch_36); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e2_3, 0, true, &v_95), _fx_catch_36); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_4, v_95, false, &v_95), _fx_catch_36); FX_CALL( _fx_M13Ast_typecheckFM19check_and_make_callN10Ast__exp_t7R9Ast__id_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_tR10Ast__loc_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tN10Ast__typ_tLN12Ast__scope_t( - &f_id_0, v_94, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_14, 0), _fx_catch_36); + &f_id_0, v_95, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_14, 0), _fx_catch_36); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_14, &result_0); FX_BREAK(_fx_catch_36); @@ -22412,8 +21951,8 @@ FX_EXTERN_C int if (result_14) { _fx_free_N10Ast__exp_t(&result_14); } - if (v_94) { - _fx_free_LN10Ast__exp_t(&v_94); + if (v_95) { + _fx_free_LN10Ast__exp_t(&v_95); } } FX_CHECK_EXN(_fx_catch_37); @@ -22426,23 +21965,23 @@ FX_EXTERN_C int if (result_12) { _fx_free_N10Ast__exp_t(&result_12); } + FX_FREE_STR(&v_69); FX_FREE_STR(&v_68); - FX_FREE_STR(&v_67); if (new_e2_3) { _fx_free_N10Ast__exp_t(&new_e2_3); } if (new_e1_4) { _fx_free_N10Ast__exp_t(&new_e1_4); } - _fx_free_Ta2N10Ast__exp_t(&v_66); + _fx_free_Ta2N10Ast__exp_t(&v_67); if (etyp2_1) { _fx_free_N10Ast__typ_t(&etyp2_1); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_65); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_66); if (etyp1_4) { _fx_free_N10Ast__typ_t(&etyp1_4); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_64); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_65); if (new_e2_2) { _fx_free_N10Ast__exp_t(&new_e2_2); } @@ -22507,12 +22046,12 @@ FX_EXTERN_C int _fx_T2N10Ast__typ_tR10Ast__loc_t ectx1_0 = {0}; _fx_N10Ast__typ_t etyp1_5 = 0; _fx_N10Ast__exp_t new_e2_4 = 0; - _fx_N10Ast__typ_t v_95 = 0; + _fx_N10Ast__typ_t v_96 = 0; _fx_Nt6option1N10Ast__exp_t probably_result_0 = 0; - _fx_LN10Ast__exp_t v_96 = 0; - fx_str_t v_97 = {0}; + _fx_LN10Ast__exp_t v_97 = 0; fx_str_t v_98 = {0}; - fx_exn_t v_99 = {0}; + fx_str_t v_99 = {0}; + fx_exn_t v_100 = {0}; FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( vcase_7->t1, &env_2, sc_2, &new_e1_5, 0), _fx_catch_41); @@ -22522,8 +22061,8 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( vcase_7->t2, &env_2, sc_2, &new_e2_4, 0), _fx_catch_41); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_5, &v_95, 0), _fx_catch_41); - int tag_4 = FX_REC_VARIANT_TAG(v_95); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_5, &v_96, 0), _fx_catch_41); + int tag_4 = FX_REC_VARIANT_TAG(v_96); bool is_appropriate_type_0; bool res_10; if (tag_4 == 20) { @@ -22540,10 +22079,10 @@ FX_EXTERN_C int is_appropriate_type_0 = true; goto _fx_endmatch_6; } if (tag_4 == 25) { - _fx_N14Ast__id_info_t v_100 = {0}; - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(&v_95->u.TypApp.t1, &eloc1_4, &v_100, 0), + _fx_N14Ast__id_info_t v_101 = {0}; + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(&v_96->u.TypApp.t1, &eloc1_4, &v_101, 0), _fx_catch_38); - int tag_5 = v_100.tag; + int tag_5 = v_101.tag; bool res_11; if (tag_5 == 5) { res_11 = true; @@ -22567,7 +22106,7 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_38); _fx_catch_38: ; - _fx_free_N14Ast__id_info_t(&v_100); + _fx_free_N14Ast__id_info_t(&v_101); goto _fx_endmatch_6; } is_appropriate_type_0 = false; @@ -22578,29 +22117,29 @@ FX_EXTERN_C int _fx_R9Ast__id_t f_id_1; FX_CALL(_fx_M3AstFM16get_binary_fnameRM4id_t2N13Ast__binary_tRM5loc_t(aug_op_0, &eloc_0, &f_id_1, 0), _fx_catch_41); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e2_4, 0, true, &v_96), _fx_catch_41); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_5, v_96, false, &v_96), _fx_catch_41); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e2_4, 0, true, &v_97), _fx_catch_41); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_5, v_97, false, &v_97), _fx_catch_41); FX_CALL( _fx_M13Ast_typecheckFM15maybe_make_callNt6option1N10Ast__exp_t7R9Ast__id_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_tR10Ast__loc_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tN10Ast__typ_tLN12Ast__scope_t( - &f_id_1, v_96, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &probably_result_0, 0), _fx_catch_41); + &f_id_1, v_97, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &probably_result_0, 0), _fx_catch_41); } else { FX_COPY_PTR(_fx_g22Ast_typecheck__None14_, &probably_result_0); } - bool v_101; + bool v_102; FX_CALL( _fx_M13Ast_typecheckFM9is_lvalueB4BN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_tR10Ast__loc_t(true, new_e1_5, - &ectx1_0, &eloc_0, &v_101, 0), _fx_catch_41); - if (!v_101) { - FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(aug_op_0, &v_97, 0), _fx_catch_41); + &ectx1_0, &eloc_0, &v_102, 0), _fx_catch_41); + if (!v_102) { + FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(aug_op_0, &v_98, 0), _fx_catch_41); fx_str_t slit_32 = FX_MAKE_STR("the left side of augmented operation "); fx_str_t slit_33 = FX_MAKE_STR(" is not an l-value"); { - const fx_str_t strs_5[] = { slit_32, v_97, slit_33 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_5, 3, &v_98), _fx_catch_41); + const fx_str_t strs_5[] = { slit_32, v_98, slit_33 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_5, 3, &v_99), _fx_catch_41); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc1_4, &v_98, &v_99, 0), _fx_catch_41); - FX_THROW(&v_99, false, _fx_catch_41); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc1_4, &v_99, &v_100, 0), _fx_catch_41); + FX_THROW(&v_100, false, _fx_catch_41); } if ((probably_result_0 != 0) + 1 == 2) { _fx_N10Ast__exp_t* result_15 = &probably_result_0->u.Some; @@ -22611,63 +22150,63 @@ FX_EXTERN_C int _fx_catch_39: ; } else { - _fx_rNt6option1N10Ast__typ_t v_102 = 0; - _fx_N10Ast__typ_t v_103 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_104 = {0}; - _fx_N10Ast__exp_t v_105 = 0; - _fx_N10Ast__exp_t binres_0 = 0; + _fx_rNt6option1N10Ast__typ_t v_103 = 0; + _fx_N10Ast__typ_t v_104 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_105 = {0}; _fx_N10Ast__exp_t v_106 = 0; - FX_CALL(_fx_make_rNt6option1N10Ast__typ_t(_fx_g22Ast_typecheck__None15_, &v_102), _fx_catch_40); - FX_CALL(_fx_M3AstFM6TypVarN10Ast__typ_t1rNt6option1N10Ast__typ_t(v_102, &v_103), _fx_catch_40); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_103, &eloc_0, &v_104); + _fx_N10Ast__exp_t binres_0 = 0; + _fx_N10Ast__exp_t v_107 = 0; + FX_CALL(_fx_make_rNt6option1N10Ast__typ_t(_fx_g22Ast_typecheck__None15_, &v_103), _fx_catch_40); + FX_CALL(_fx_M3AstFM6TypVarN10Ast__typ_t1rNt6option1N10Ast__typ_t(v_103, &v_104), _fx_catch_40); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_104, &eloc_0, &v_105); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(bop_1, - new_e1_5, new_e2_4, &v_104, &v_105), _fx_catch_40); + new_e1_5, new_e2_4, &v_105, &v_106), _fx_catch_40); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - v_105, &env_2, sc_2, &binres_0, 0), _fx_catch_40); + v_106, &env_2, sc_2, &binres_0, 0), _fx_catch_40); FX_CALL( - _fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(new_e1_5, binres_0, &eloc_0, &v_106), + _fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(new_e1_5, binres_0, &eloc_0, &v_107), _fx_catch_40); _fx_free_N10Ast__exp_t(&e_1); - FX_COPY_PTR(v_106, &e_1); + FX_COPY_PTR(v_107, &e_1); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2, &env_1); FX_FREE_LIST_SIMPLE(&sc_1); FX_COPY_PTR(sc_2, &sc_1); _fx_catch_40: ; - if (v_106) { - _fx_free_N10Ast__exp_t(&v_106); + if (v_107) { + _fx_free_N10Ast__exp_t(&v_107); } if (binres_0) { _fx_free_N10Ast__exp_t(&binres_0); } - if (v_105) { - _fx_free_N10Ast__exp_t(&v_105); + if (v_106) { + _fx_free_N10Ast__exp_t(&v_106); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_104); - if (v_103) { - _fx_free_N10Ast__typ_t(&v_103); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_105); + if (v_104) { + _fx_free_N10Ast__typ_t(&v_104); } - if (v_102) { - _fx_free_rNt6option1N10Ast__typ_t(&v_102); + if (v_103) { + _fx_free_rNt6option1N10Ast__typ_t(&v_103); } } FX_CHECK_EXN(_fx_catch_41); _fx_catch_41: ; - fx_free_exn(&v_99); + fx_free_exn(&v_100); + FX_FREE_STR(&v_99); FX_FREE_STR(&v_98); - FX_FREE_STR(&v_97); - if (v_96) { - _fx_free_LN10Ast__exp_t(&v_96); + if (v_97) { + _fx_free_LN10Ast__exp_t(&v_97); } if (probably_result_0) { _fx_free_Nt6option1N10Ast__exp_t(&probably_result_0); } - if (v_95) { - _fx_free_N10Ast__typ_t(&v_95); + if (v_96) { + _fx_free_N10Ast__typ_t(&v_96); } if (new_e2_4) { _fx_free_N10Ast__exp_t(&new_e2_4); @@ -22681,22 +22220,22 @@ FX_EXTERN_C int } goto _fx_endmatch_7; } - fx_str_t v_107 = {0}; fx_str_t v_108 = {0}; - fx_exn_t v_109 = {0}; - FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(bop_1, &v_107, 0), _fx_catch_42); + fx_str_t v_109 = {0}; + fx_exn_t v_110 = {0}; + FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(bop_1, &v_108, 0), _fx_catch_42); fx_str_t slit_34 = FX_MAKE_STR("unsupported augmented binary operation "); { - const fx_str_t strs_6[] = { slit_34, v_107 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_6, 2, &v_108), _fx_catch_42); + const fx_str_t strs_6[] = { slit_34, v_108 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_6, 2, &v_109), _fx_catch_42); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_108, &v_109, 0), _fx_catch_42); - FX_THROW(&v_109, false, _fx_catch_42); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_109, &v_110, 0), _fx_catch_42); + FX_THROW(&v_110, false, _fx_catch_42); _fx_catch_42: ; - fx_free_exn(&v_109); + fx_free_exn(&v_110); + FX_FREE_STR(&v_109); FX_FREE_STR(&v_108); - FX_FREE_STR(&v_107); _fx_endmatch_7: ; FX_CHECK_EXN(_fx_catch_43); @@ -22707,17 +22246,17 @@ FX_EXTERN_C int } if (tag_0 == 8) { _fx_N10Ast__exp_t new_e1_6 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_110 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_111 = {0}; _fx_N10Ast__typ_t etyp1_6 = 0; _fx_N10Ast__exp_t new_e2_5 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_111 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_112 = {0}; _fx_N10Ast__typ_t etyp2_2 = 0; _fx_N13Ast__binary_t bop_wo_dot_0 = 0; - _fx_T2N13Ast__binary_tNt6option1N10Ast__typ_t v_112 = {0}; + _fx_T2N13Ast__binary_tNt6option1N10Ast__typ_t v_113 = {0}; _fx_N13Ast__binary_t bop_2 = 0; _fx_Nt6option1N10Ast__typ_t typ_opt_0 = 0; - _fx_N10Ast__typ_t v_113 = 0; _fx_N10Ast__typ_t v_114 = 0; + _fx_N10Ast__typ_t v_115 = 0; _fx_T4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_8 = &e_2->u.ExpBinary; _fx_N10Ast__exp_t e2_2 = vcase_8->t2; _fx_N10Ast__exp_t e1_0 = vcase_8->t1; @@ -22725,15 +22264,15 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( e1_0, &env_2, sc_2, &new_e1_6, 0), _fx_catch_61); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e1_6, &v_110, 0), _fx_catch_61); - FX_COPY_PTR(v_110.t0, &etyp1_6); - _fx_R10Ast__loc_t eloc1_5 = v_110.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e1_6, &v_111, 0), _fx_catch_61); + FX_COPY_PTR(v_111.t0, &etyp1_6); + _fx_R10Ast__loc_t eloc1_5 = v_111.t1; FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( e2_2, &env_2, sc_2, &new_e2_5, 0), _fx_catch_61); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e2_5, &v_111, 0), _fx_catch_61); - FX_COPY_PTR(v_111.t0, &etyp2_2); - _fx_R10Ast__loc_t eloc2_3 = v_111.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e2_5, &v_112, 0), _fx_catch_61); + FX_COPY_PTR(v_112.t0, &etyp2_2); + _fx_R10Ast__loc_t eloc2_3 = v_112.t1; FX_CALL(_fx_M3AstFM21binary_try_remove_dotN13Ast__binary_t1N13Ast__binary_t(bop_3, &bop_wo_dot_0, 0), _fx_catch_61); int tag_6 = FX_REC_VARIANT_TAG(bop_3); bool res_12; @@ -22778,7 +22317,7 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM12coerce_typesNt6option1N10Ast__typ_t6N10Ast__typ_tN10Ast__typ_tBBBR10Ast__loc_t(etyp1_6, etyp2_2, false, allow_fp_0, is_shift_0, &eloc_0, &typ_opt_1, 0), _fx_catch_44); - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, typ_opt_1, &v_112); + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, typ_opt_1, &v_113); _fx_catch_44: ; if (typ_opt_1) { @@ -22815,10 +22354,10 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM12coerce_typesNt6option1N10Ast__typ_t6N10Ast__typ_tN10Ast__typ_tBBBR10Ast__loc_t(etyp1_6, etyp2_2, false, true, false, &eloc_0, &typ_opt_2, 0), _fx_catch_45); if ((typ_opt_2 != 0) + 1 == 2) { - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_wo_dot_0, typ_opt_2, &v_112); + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_wo_dot_0, typ_opt_2, &v_113); } else { - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, typ_opt_2, &v_112); + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, typ_opt_2, &v_113); } FX_CHECK_EXN(_fx_catch_45); @@ -22843,13 +22382,13 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_61); if (res_14) { - _fx_N10Ast__typ_t v_115 = 0; _fx_N10Ast__typ_t v_116 = 0; + _fx_N10Ast__typ_t v_117 = 0; _fx_Nt6option1N10Ast__typ_t typ_opt_3 = 0; - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_6, &v_115, 0), _fx_catch_50); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp2_2, &v_116, 0), _fx_catch_50); - if (FX_REC_VARIANT_TAG(v_115) == 6) { - if (FX_REC_VARIANT_TAG(v_116) == 6) { + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_6, &v_116, 0), _fx_catch_50); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp2_2, &v_117, 0), _fx_catch_50); + if (FX_REC_VARIANT_TAG(v_116) == 6) { + if (FX_REC_VARIANT_TAG(v_117) == 6) { FX_CALL( _fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, &typ_opt_3), _fx_catch_46); @@ -22858,40 +22397,40 @@ FX_EXTERN_C int goto _fx_endmatch_8; } } - if (FX_REC_VARIANT_TAG(v_116) == 7) { - if (FX_REC_VARIANT_TAG(v_115) == 7) { - int_ b1_0 = v_115->u.TypSInt; - if (b1_0 == v_116->u.TypSInt) { - _fx_N10Ast__typ_t v_117 = 0; - FX_CALL(_fx_M3AstFM7TypSIntN10Ast__typ_t1i(b1_0, &v_117), _fx_catch_47); - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(v_117, &typ_opt_3), _fx_catch_47); + if (FX_REC_VARIANT_TAG(v_117) == 7) { + if (FX_REC_VARIANT_TAG(v_116) == 7) { + int_ b1_0 = v_116->u.TypSInt; + if (b1_0 == v_117->u.TypSInt) { + _fx_N10Ast__typ_t v_118 = 0; + FX_CALL(_fx_M3AstFM7TypSIntN10Ast__typ_t1i(b1_0, &v_118), _fx_catch_47); + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(v_118, &typ_opt_3), _fx_catch_47); _fx_catch_47: ; - if (v_117) { - _fx_free_N10Ast__typ_t(&v_117); + if (v_118) { + _fx_free_N10Ast__typ_t(&v_118); } goto _fx_endmatch_8; } } } - if (FX_REC_VARIANT_TAG(v_116) == 8) { - if (FX_REC_VARIANT_TAG(v_115) == 8) { - int_ b1_1 = v_115->u.TypUInt; - if (b1_1 == v_116->u.TypUInt) { - _fx_N10Ast__typ_t v_118 = 0; - FX_CALL(_fx_M3AstFM7TypUIntN10Ast__typ_t1i(b1_1, &v_118), _fx_catch_48); - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(v_118, &typ_opt_3), _fx_catch_48); + if (FX_REC_VARIANT_TAG(v_117) == 8) { + if (FX_REC_VARIANT_TAG(v_116) == 8) { + int_ b1_1 = v_116->u.TypUInt; + if (b1_1 == v_117->u.TypUInt) { + _fx_N10Ast__typ_t v_119 = 0; + FX_CALL(_fx_M3AstFM7TypUIntN10Ast__typ_t1i(b1_1, &v_119), _fx_catch_48); + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(v_119, &typ_opt_3), _fx_catch_48); _fx_catch_48: ; - if (v_118) { - _fx_free_N10Ast__typ_t(&v_118); + if (v_119) { + _fx_free_N10Ast__typ_t(&v_119); } goto _fx_endmatch_8; } } } - if (FX_REC_VARIANT_TAG(v_115) == 13) { - if (FX_REC_VARIANT_TAG(v_116) == 13) { + if (FX_REC_VARIANT_TAG(v_116) == 13) { + if (FX_REC_VARIANT_TAG(v_117) == 13) { FX_CALL( _fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(_fx_g22Ast_typecheck__TypBool, &typ_opt_3), _fx_catch_49); @@ -22904,18 +22443,18 @@ FX_EXTERN_C int _fx_endmatch_8: ; FX_CHECK_EXN(_fx_catch_50); - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, typ_opt_3, &v_112); + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, typ_opt_3, &v_113); _fx_catch_50: ; if (typ_opt_3) { _fx_free_Nt6option1N10Ast__typ_t(&typ_opt_3); } + if (v_117) { + _fx_free_N10Ast__typ_t(&v_117); + } if (v_116) { _fx_free_N10Ast__typ_t(&v_116); } - if (v_115) { - _fx_free_N10Ast__typ_t(&v_115); - } goto _fx_endmatch_10; } bool res_15; @@ -22930,7 +22469,7 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_61); if (res_15) { - _fx_Nt6option1N10Ast__typ_t v_119 = 0; + _fx_Nt6option1N10Ast__typ_t v_120 = 0; fx_str_t slit_35 = FX_MAKE_STR("arguments of logical operation must be boolean"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp1_6, _fx_g22Ast_typecheck__TypBool, @@ -22939,42 +22478,42 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp2_2, _fx_g22Ast_typecheck__TypBool, &eloc2_3, &slit_36, 0), _fx_catch_51); - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(_fx_g22Ast_typecheck__TypBool, &v_119), + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(_fx_g22Ast_typecheck__TypBool, &v_120), _fx_catch_51); - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, v_119, &v_112); + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, v_120, &v_113); _fx_catch_51: ; - if (v_119) { - _fx_free_Nt6option1N10Ast__typ_t(&v_119); + if (v_120) { + _fx_free_Nt6option1N10Ast__typ_t(&v_120); } goto _fx_endmatch_10; } if (tag_6 == 22) { - _fx_Nt6option1N10Ast__typ_t v_120 = 0; - bool v_121; + _fx_Nt6option1N10Ast__typ_t v_121 = 0; + bool v_122; bool res_16; FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(etyp1_6, &res_16, 0), _fx_catch_52); if (res_16) { - FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(etyp2_2, &v_121, 0), _fx_catch_52); + FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(etyp2_2, &v_122, 0), _fx_catch_52); } else { - v_121 = false; + v_122 = false; } - if (v_121) { - FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(_fx_g22Ast_typecheck__TypBool, &v_120), + if (v_122) { + FX_CALL(_fx_M13Ast_typecheckFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(_fx_g22Ast_typecheck__TypBool, &v_121), _fx_catch_52); - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_wo_dot_0, v_120, &v_112); + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_wo_dot_0, v_121, &v_113); } else if (FX_REC_VARIANT_TAG(etyp1_6) == 11) { - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_wo_dot_0, _fx_g22Ast_typecheck__None15_, &v_112); + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_wo_dot_0, _fx_g22Ast_typecheck__None15_, &v_113); } else { - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, _fx_g22Ast_typecheck__None15_, &v_112); + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, _fx_g22Ast_typecheck__None15_, &v_113); } _fx_catch_52: ; - if (v_120) { - _fx_free_Nt6option1N10Ast__typ_t(&v_120); + if (v_121) { + _fx_free_Nt6option1N10Ast__typ_t(&v_121); } goto _fx_endmatch_10; } @@ -22990,42 +22529,42 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_61); if (res_17) { - _fx_N10Ast__typ_t v_122 = 0; _fx_N10Ast__typ_t v_123 = 0; - bool v_124; + _fx_N10Ast__typ_t v_124 = 0; + bool v_125; bool res_18; FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(etyp1_6, &res_18, 0), _fx_catch_53); if (res_18) { - FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(etyp2_2, &v_124, 0), _fx_catch_53); + FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(etyp2_2, &v_125, 0), _fx_catch_53); } else { - v_124 = false; + v_125 = false; } - if (v_124) { - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_wo_dot_0, _fx_g22Ast_typecheck__None15_, &v_112); + if (v_125) { + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_wo_dot_0, _fx_g22Ast_typecheck__None15_, &v_113); } else { - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_6, &v_122, 0), _fx_catch_53); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp2_2, &v_123, 0), _fx_catch_53); - if (FX_REC_VARIANT_TAG(v_122) == 11) { - if (FX_REC_VARIANT_TAG(v_123) == 11) { - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_wo_dot_0, _fx_g22Ast_typecheck__None15_, &v_112); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_6, &v_123, 0), _fx_catch_53); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp2_2, &v_124, 0), _fx_catch_53); + if (FX_REC_VARIANT_TAG(v_123) == 11) { + if (FX_REC_VARIANT_TAG(v_124) == 11) { + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_wo_dot_0, _fx_g22Ast_typecheck__None15_, &v_113); goto _fx_endmatch_9; } } - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, _fx_g22Ast_typecheck__None15_, &v_112); + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, _fx_g22Ast_typecheck__None15_, &v_113); _fx_endmatch_9: ; FX_CHECK_EXN(_fx_catch_53); } _fx_catch_53: ; + if (v_124) { + _fx_free_N10Ast__typ_t(&v_124); + } if (v_123) { _fx_free_N10Ast__typ_t(&v_123); } - if (v_122) { - _fx_free_N10Ast__typ_t(&v_122); - } goto _fx_endmatch_10; } if (tag_6 == 25) { @@ -23037,7 +22576,7 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, _fx_g22Ast_typecheck__TypBool, &eloc_0, &slit_38, 0), _fx_catch_54); - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, _fx_g22Ast_typecheck__None15_, &v_112); + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, _fx_g22Ast_typecheck__None15_, &v_113); _fx_catch_54: ; goto _fx_endmatch_10; @@ -23057,36 +22596,36 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_61); if (res_19) { - fx_str_t v_125 = {0}; fx_str_t v_126 = {0}; - fx_exn_t v_127 = {0}; - FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(bop_3, &v_125, 0), _fx_catch_55); + fx_str_t v_127 = {0}; + fx_exn_t v_128 = {0}; + FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(bop_3, &v_126, 0), _fx_catch_55); fx_str_t slit_39 = FX_MAKE_STR("unsupported binary operation "); { - const fx_str_t strs_7[] = { slit_39, v_125 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_7, 2, &v_126), _fx_catch_55); + const fx_str_t strs_7[] = { slit_39, v_126 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_7, 2, &v_127), _fx_catch_55); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_126, &v_127, 0), _fx_catch_55); - FX_THROW(&v_127, false, _fx_catch_55); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_127, &v_128, 0), _fx_catch_55); + FX_THROW(&v_128, false, _fx_catch_55); _fx_catch_55: ; - fx_free_exn(&v_127); + fx_free_exn(&v_128); + FX_FREE_STR(&v_127); FX_FREE_STR(&v_126); - FX_FREE_STR(&v_125); goto _fx_endmatch_10; } if (tag_6 == 5) { - _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, _fx_g22Ast_typecheck__None15_, &v_112); + _fx_make_T2N13Ast__binary_tNt6option1N10Ast__typ_t(bop_3, _fx_g22Ast_typecheck__None15_, &v_113); goto _fx_endmatch_10; } FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_61); _fx_endmatch_10: ; FX_CHECK_EXN(_fx_catch_61); - FX_COPY_PTR(v_112.t0, &bop_2); - FX_COPY_PTR(v_112.t1, &typ_opt_0); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_6, &v_113, 0), _fx_catch_61); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp2_2, &v_114, 0), _fx_catch_61); + FX_COPY_PTR(v_113.t0, &bop_2); + FX_COPY_PTR(v_113.t1, &typ_opt_0); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_6, &v_114, 0), _fx_catch_61); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp2_2, &v_115, 0), _fx_catch_61); if ((typ_opt_0 != 0) + 1 == 2) { _fx_N10Ast__exp_t result_16 = 0; fx_str_t slit_40 = FX_MAKE_STR("improper type of the arithmetic operation result"); @@ -23108,29 +22647,29 @@ FX_EXTERN_C int } bool res_20; if (FX_REC_VARIANT_TAG(bop_2) == 1) { - if (FX_REC_VARIANT_TAG(v_113) == 11) { - if (FX_REC_VARIANT_TAG(v_114) == 11) { + if (FX_REC_VARIANT_TAG(v_114) == 11) { + if (FX_REC_VARIANT_TAG(v_115) == 11) { res_20 = true; goto _fx_endmatch_11; } } } if (FX_REC_VARIANT_TAG(bop_2) == 1) { - if (FX_REC_VARIANT_TAG(v_113) == 11) { - if (FX_REC_VARIANT_TAG(v_114) == 12) { + if (FX_REC_VARIANT_TAG(v_114) == 11) { + if (FX_REC_VARIANT_TAG(v_115) == 12) { res_20 = true; goto _fx_endmatch_11; } } } if (FX_REC_VARIANT_TAG(bop_2) == 1) { - if (FX_REC_VARIANT_TAG(v_113) == 12) { - if (FX_REC_VARIANT_TAG(v_114) == 11) { + if (FX_REC_VARIANT_TAG(v_114) == 12) { + if (FX_REC_VARIANT_TAG(v_115) == 11) { res_20 = true; goto _fx_endmatch_11; } } } if (FX_REC_VARIANT_TAG(bop_2) == 1) { - if (FX_REC_VARIANT_TAG(v_113) == 12) { - if (FX_REC_VARIANT_TAG(v_114) == 12) { + if (FX_REC_VARIANT_TAG(v_114) == 12) { + if (FX_REC_VARIANT_TAG(v_115) == 12) { res_20 = true; goto _fx_endmatch_11; } } @@ -23160,12 +22699,12 @@ FX_EXTERN_C int } bool res_21; if (FX_REC_VARIANT_TAG(bop_2) == 1) { - if (FX_REC_VARIANT_TAG(v_113) == 17) { + if (FX_REC_VARIANT_TAG(v_114) == 17) { res_21 = true; goto _fx_endmatch_12; } } if (FX_REC_VARIANT_TAG(bop_2) == 1) { - if (FX_REC_VARIANT_TAG(v_114) == 17) { + if (FX_REC_VARIANT_TAG(v_115) == 17) { res_21 = true; goto _fx_endmatch_12; } } @@ -23174,7 +22713,6 @@ FX_EXTERN_C int _fx_endmatch_12: ; FX_CHECK_EXN(_fx_catch_61); if (res_21) { - fx_str_t v_128 = {0}; fx_str_t v_129 = {0}; fx_str_t v_130 = {0}; fx_str_t v_131 = {0}; @@ -23184,33 +22722,34 @@ FX_EXTERN_C int fx_str_t v_135 = {0}; fx_str_t v_136 = {0}; fx_str_t v_137 = {0}; + fx_str_t v_138 = {0}; _fx_N10Ast__exp_t result_18 = 0; - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp1_6, &v_128, 0), _fx_catch_58); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_128, &v_129, 0), _fx_catch_58); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp2_2, &v_130, 0), _fx_catch_58); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_130, &v_131, 0), _fx_catch_58); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp1_6, &v_129, 0), _fx_catch_58); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_129, &v_130, 0), _fx_catch_58); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp2_2, &v_131, 0), _fx_catch_58); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_131, &v_132, 0), _fx_catch_58); fx_str_t slit_42 = FX_MAKE_STR("the two concatenated vectors have different types \'"); fx_str_t slit_43 = FX_MAKE_STR("\' and \'"); fx_str_t slit_44 = FX_MAKE_STR("\'"); { - const fx_str_t strs_8[] = { slit_42, v_129, slit_43, v_131, slit_44 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_8, 5, &v_132), _fx_catch_58); + const fx_str_t strs_8[] = { slit_42, v_130, slit_43, v_132, slit_44 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_8, 5, &v_133), _fx_catch_58); } FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp1_6, etyp2_2, &eloc_0, &v_132, 0), + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp1_6, etyp2_2, &eloc_0, &v_133, 0), _fx_catch_58); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp_0, &v_133, 0), _fx_catch_58); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_133, &v_134, 0), _fx_catch_58); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp1_6, &v_135, 0), _fx_catch_58); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_135, &v_136, 0), _fx_catch_58); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp_0, &v_134, 0), _fx_catch_58); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_134, &v_135, 0), _fx_catch_58); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(etyp1_6, &v_136, 0), _fx_catch_58); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_136, &v_137, 0), _fx_catch_58); fx_str_t slit_45 = FX_MAKE_STR("the type of vector concatenation result \'"); fx_str_t slit_46 = FX_MAKE_STR("\' is different from operands\' type \'"); fx_str_t slit_47 = FX_MAKE_STR("\'"); { - const fx_str_t strs_9[] = { slit_45, v_134, slit_46, v_136, slit_47 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_9, 5, &v_137), _fx_catch_58); + const fx_str_t strs_9[] = { slit_45, v_135, slit_46, v_137, slit_47 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_9, 5, &v_138), _fx_catch_58); } - FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp1_6, etyp_0, &eloc_0, &v_137, 0), + FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp1_6, etyp_0, &eloc_0, &v_138, 0), _fx_catch_58); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(bop_2, @@ -23223,6 +22762,7 @@ FX_EXTERN_C int if (result_18) { _fx_free_N10Ast__exp_t(&result_18); } + FX_FREE_STR(&v_138); FX_FREE_STR(&v_137); FX_FREE_STR(&v_136); FX_FREE_STR(&v_135); @@ -23232,73 +22772,72 @@ FX_EXTERN_C int FX_FREE_STR(&v_131); FX_FREE_STR(&v_130); FX_FREE_STR(&v_129); - FX_FREE_STR(&v_128); goto _fx_endmatch_13; } if (FX_REC_VARIANT_TAG(bop_2) == 1) { - if (FX_REC_VARIANT_TAG(v_113) == 16) { - if (FX_REC_VARIANT_TAG(v_114) == 16) { + if (FX_REC_VARIANT_TAG(v_114) == 16) { + if (FX_REC_VARIANT_TAG(v_115) == 16) { if (FX_REC_VARIANT_TAG(e1_0) == 8) { _fx_T4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_9 = &e1_0->u.ExpBinary; if (FX_REC_VARIANT_TAG(vcase_9->t0) == 1) { - _fx_LR10Ast__loc_t v_138 = 0; - _fx_N10Ast__typ_t v_139 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_140 = {0}; - _fx_N10Ast__exp_t e2__0 = 0; + _fx_LR10Ast__loc_t v_139 = 0; + _fx_N10Ast__typ_t v_140 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_141 = {0}; - _fx_N10Ast__exp_t v_142 = 0; + _fx_N10Ast__exp_t e2__0 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_142 = {0}; + _fx_N10Ast__exp_t v_143 = 0; _fx_N10Ast__exp_t sub_e2_0 = vcase_9->t2; _fx_R10Ast__loc_t sub_e2_loc_0; FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(sub_e2_0, &sub_e2_loc_0, 0), _fx_catch_59); - FX_CALL(_fx_cons_LR10Ast__loc_t(&eloc2_3, 0, true, &v_138), _fx_catch_59); - FX_CALL(_fx_cons_LR10Ast__loc_t(&sub_e2_loc_0, v_138, false, &v_138), _fx_catch_59); + FX_CALL(_fx_cons_LR10Ast__loc_t(&eloc2_3, 0, true, &v_139), _fx_catch_59); + FX_CALL(_fx_cons_LR10Ast__loc_t(&sub_e2_loc_0, v_139, false, &v_139), _fx_catch_59); _fx_R10Ast__loc_t e2_loc_0; - FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(v_138, &eloc2_3, &e2_loc_0, 0), + FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(v_139, &eloc2_3, &e2_loc_0, 0), _fx_catch_59); - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_139, 0), _fx_catch_59); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_139, &e2_loc_0, &v_140); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_140, 0), _fx_catch_59); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_140, &e2_loc_0, &v_141); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - _fx_g20Ast_typecheck__OpAdd, sub_e2_0, e2_2, &v_140, &e2__0), _fx_catch_59); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(etyp_0, &eloc_0, &v_141); + _fx_g20Ast_typecheck__OpAdd, sub_e2_0, e2_2, &v_141, &e2__0), _fx_catch_59); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(etyp_0, &eloc_0, &v_142); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - _fx_g20Ast_typecheck__OpAdd, vcase_9->t1, e2__0, &v_141, &v_142), _fx_catch_59); + _fx_g20Ast_typecheck__OpAdd, vcase_9->t1, e2__0, &v_142, &v_143), _fx_catch_59); _fx_free_N10Ast__exp_t(&e_1); - FX_COPY_PTR(v_142, &e_1); + FX_COPY_PTR(v_143, &e_1); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2, &env_1); FX_FREE_LIST_SIMPLE(&sc_1); FX_COPY_PTR(sc_2, &sc_1); _fx_catch_59: ; - if (v_142) { - _fx_free_N10Ast__exp_t(&v_142); + if (v_143) { + _fx_free_N10Ast__exp_t(&v_143); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_141); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_142); if (e2__0) { _fx_free_N10Ast__exp_t(&e2__0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_140); - if (v_139) { - _fx_free_N10Ast__typ_t(&v_139); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_141); + if (v_140) { + _fx_free_N10Ast__typ_t(&v_140); } - FX_FREE_LIST_SIMPLE(&v_138); + FX_FREE_LIST_SIMPLE(&v_139); goto _fx_endmatch_13; } } } } } - _fx_LN10Ast__exp_t v_143 = 0; + _fx_LN10Ast__exp_t v_144 = 0; _fx_N10Ast__exp_t result_19 = 0; _fx_R9Ast__id_t f_id_2; FX_CALL(_fx_M3AstFM16get_binary_fnameRM4id_t2N13Ast__binary_tRM5loc_t(bop_2, &eloc_0, &f_id_2, 0), _fx_catch_60); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e2_5, 0, true, &v_143), _fx_catch_60); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_6, v_143, false, &v_143), _fx_catch_60); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e2_5, 0, true, &v_144), _fx_catch_60); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_6, v_144, false, &v_144), _fx_catch_60); FX_CALL( _fx_M13Ast_typecheckFM19check_and_make_callN10Ast__exp_t7R9Ast__id_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_tR10Ast__loc_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tN10Ast__typ_tLN12Ast__scope_t( - &f_id_2, v_143, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_19, 0), _fx_catch_60); + &f_id_2, v_144, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_19, 0), _fx_catch_60); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_19, &result_0); FX_BREAK(_fx_catch_60); @@ -23307,55 +22846,55 @@ FX_EXTERN_C int if (result_19) { _fx_free_N10Ast__exp_t(&result_19); } - if (v_143) { - _fx_free_LN10Ast__exp_t(&v_143); + if (v_144) { + _fx_free_LN10Ast__exp_t(&v_144); } _fx_endmatch_13: ; FX_CHECK_EXN(_fx_catch_61); _fx_catch_61: ; + if (v_115) { + _fx_free_N10Ast__typ_t(&v_115); + } if (v_114) { _fx_free_N10Ast__typ_t(&v_114); } - if (v_113) { - _fx_free_N10Ast__typ_t(&v_113); - } if (typ_opt_0) { _fx_free_Nt6option1N10Ast__typ_t(&typ_opt_0); } if (bop_2) { _fx_free_N13Ast__binary_t(&bop_2); } - _fx_free_T2N13Ast__binary_tNt6option1N10Ast__typ_t(&v_112); + _fx_free_T2N13Ast__binary_tNt6option1N10Ast__typ_t(&v_113); if (bop_wo_dot_0) { _fx_free_N13Ast__binary_t(&bop_wo_dot_0); } if (etyp2_2) { _fx_free_N10Ast__typ_t(&etyp2_2); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_111); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_112); if (new_e2_5) { _fx_free_N10Ast__exp_t(&new_e2_5); } if (etyp1_6) { _fx_free_N10Ast__typ_t(&etyp1_6); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_110); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_111); if (new_e1_6) { _fx_free_N10Ast__exp_t(&new_e1_6); } goto _fx_endmatch_41; } if (tag_0 == 22) { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_144 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_145 = {0}; _fx_N10Ast__typ_t etyp1_7 = 0; _fx_N10Ast__exp_t new_e1_7 = 0; _fx_N10Ast__exp_t result_20 = 0; _fx_N10Ast__exp_t e1_1 = e_2->u.ExpThrow.t0; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_1, &v_144, 0), _fx_catch_62); - FX_COPY_PTR(v_144.t0, &etyp1_7); - _fx_R10Ast__loc_t eloc1_6 = v_144.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_1, &v_145, 0), _fx_catch_62); + FX_COPY_PTR(v_145.t0, &etyp1_7); + _fx_R10Ast__loc_t eloc1_6 = v_145.t1; fx_str_t slit_48 = FX_MAKE_STR("the argument of \'throw\' operator must be an exception"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(_fx_g21Ast_typecheck__TypExn, etyp1_7, @@ -23378,23 +22917,23 @@ FX_EXTERN_C int if (etyp1_7) { _fx_free_N10Ast__typ_t(&etyp1_7); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_144); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_145); goto _fx_endmatch_41; } if (tag_0 == 9) { _fx_T3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_10 = &e_2->u.ExpUnary; if (vcase_10->t0.tag == 6) { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_145 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_146 = {0}; _fx_N10Ast__typ_t etyp1_8 = 0; - _fx_N10Ast__typ_t v_146 = 0; + _fx_N10Ast__typ_t v_147 = 0; _fx_N10Ast__exp_t new_e1_8 = 0; _fx_N10Ast__exp_t result_21 = 0; _fx_N10Ast__exp_t e1_2 = vcase_10->t1; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_2, &v_145, 0), _fx_catch_63); - FX_COPY_PTR(v_145.t0, &etyp1_8); - FX_CALL(_fx_M3AstFM6TypRefN10Ast__typ_t1N10Ast__typ_t(etyp1_8, &v_146), _fx_catch_63); + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_2, &v_146, 0), _fx_catch_63); + FX_COPY_PTR(v_146.t0, &etyp1_8); + FX_CALL(_fx_M3AstFM6TypRefN10Ast__typ_t1N10Ast__typ_t(etyp1_8, &v_147), _fx_catch_63); fx_str_t slit_49 = FX_MAKE_STR("the types of ref() operation argument and result are inconsistent"); - FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_146, &eloc_0, &slit_49, 0), + FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_147, &eloc_0, &slit_49, 0), _fx_catch_63); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( @@ -23413,31 +22952,31 @@ FX_EXTERN_C int if (new_e1_8) { _fx_free_N10Ast__exp_t(&new_e1_8); } - if (v_146) { - _fx_free_N10Ast__typ_t(&v_146); + if (v_147) { + _fx_free_N10Ast__typ_t(&v_147); } if (etyp1_8) { _fx_free_N10Ast__typ_t(&etyp1_8); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_145); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_146); goto _fx_endmatch_41; } } if (tag_0 == 9) { _fx_T3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_11 = &e_2->u.ExpUnary; if (vcase_11->t0.tag == 7) { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_147 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_148 = {0}; _fx_N10Ast__typ_t etyp1_9 = 0; - _fx_N10Ast__typ_t v_148 = 0; + _fx_N10Ast__typ_t v_149 = 0; _fx_N10Ast__exp_t new_e1_9 = 0; _fx_N10Ast__exp_t result_22 = 0; _fx_N10Ast__exp_t e1_3 = vcase_11->t1; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_3, &v_147, 0), _fx_catch_64); - FX_COPY_PTR(v_147.t0, &etyp1_9); - FX_CALL(_fx_M3AstFM6TypRefN10Ast__typ_t1N10Ast__typ_t(etyp_0, &v_148), _fx_catch_64); + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_3, &v_148, 0), _fx_catch_64); + FX_COPY_PTR(v_148.t0, &etyp1_9); + FX_CALL(_fx_M3AstFM6TypRefN10Ast__typ_t1N10Ast__typ_t(etyp_0, &v_149), _fx_catch_64); fx_str_t slit_50 = FX_MAKE_STR("the types of unary \'*\' operation argument and result are inconsistent"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(v_148, etyp1_9, &eloc_0, &slit_50, 0), + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(v_149, etyp1_9, &eloc_0, &slit_50, 0), _fx_catch_64); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( @@ -23456,28 +22995,28 @@ FX_EXTERN_C int if (new_e1_9) { _fx_free_N10Ast__exp_t(&new_e1_9); } - if (v_148) { - _fx_free_N10Ast__typ_t(&v_148); + if (v_149) { + _fx_free_N10Ast__typ_t(&v_149); } if (etyp1_9) { _fx_free_N10Ast__typ_t(&etyp1_9); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_147); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_148); goto _fx_endmatch_41; } } if (tag_0 == 9) { _fx_N10Ast__exp_t new_e1_10 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_149 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_150 = {0}; _fx_N10Ast__typ_t etyp1_10 = 0; _fx_T3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_12 = &e_2->u.ExpUnary; _fx_N12Ast__unary_t* uop_0 = &vcase_12->t0; FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( vcase_12->t1, &env_2, sc_2, &new_e1_10, 0), _fx_catch_74); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e1_10, &v_149, 0), _fx_catch_74); - FX_COPY_PTR(v_149.t0, &etyp1_10); - _fx_R10Ast__loc_t eloc1_7 = v_149.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_e1_10, &v_150, 0), _fx_catch_74); + FX_COPY_PTR(v_150.t0, &etyp1_10); + _fx_R10Ast__loc_t eloc1_7 = v_150.t1; int tag_7 = uop_0->tag; bool res_22; if (tag_7 == 2) { @@ -23525,14 +23064,14 @@ FX_EXTERN_C int } } else if (tag_8 == 1) { - _fx_LN10Ast__exp_t v_150 = 0; + _fx_LN10Ast__exp_t v_151 = 0; _fx_N10Ast__exp_t result_24 = 0; _fx_R9Ast__id_t f_id_3; FX_CALL(_fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t(uop_0, &eloc_0, &f_id_3, 0), _fx_catch_66); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_10, 0, true, &v_150), _fx_catch_66); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_10, 0, true, &v_151), _fx_catch_66); FX_CALL( _fx_M13Ast_typecheckFM19check_and_make_callN10Ast__exp_t7R9Ast__id_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_tR10Ast__loc_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tN10Ast__typ_tLN12Ast__scope_t( - &f_id_3, v_150, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_24, 0), _fx_catch_66); + &f_id_3, v_151, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_24, 0), _fx_catch_66); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_24, &result_0); FX_BREAK(_fx_catch_66); @@ -23541,8 +23080,8 @@ FX_EXTERN_C int if (result_24) { _fx_free_N10Ast__exp_t(&result_24); } - if (v_150) { - _fx_free_LN10Ast__exp_t(&v_150); + if (v_151) { + _fx_free_LN10Ast__exp_t(&v_151); } } else { @@ -23559,18 +23098,18 @@ FX_EXTERN_C int if (tag_7 == 4) { _fx_N10Ast__exp_t result_25 = 0; fx_exn_t exn_1 = {0}; - _fx_N10Ast__typ_t v_151 = 0; - FX_CALL(_fx_M13Ast_typecheckFM19check_unary_bitwiseN10Ast__typ_t1N10Ast__typ_t(etyp1_10, &v_151, 0), _fx_catch_68); + _fx_N10Ast__typ_t v_152 = 0; + FX_CALL(_fx_M13Ast_typecheckFM19check_unary_bitwiseN10Ast__typ_t1N10Ast__typ_t(etyp1_10, &v_152, 0), _fx_catch_68); fx_str_t slit_52 = FX_MAKE_STR("invalid type of bitwise-not result"); - FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_151, &eloc_0, &slit_52, 0), + FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_152, &eloc_0, &slit_52, 0), _fx_catch_68); FX_CALL( _fx_M3AstFM8ExpUnaryN10Ast__exp_t3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(uop_0, new_e1_10, &ctx_0, &result_25), _fx_catch_68); _fx_catch_68: ; - if (v_151) { - _fx_free_N10Ast__typ_t(&v_151); + if (v_152) { + _fx_free_N10Ast__typ_t(&v_152); } if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_1); @@ -23579,18 +23118,18 @@ FX_EXTERN_C int _fx_free_N10Ast__exp_t(&result_25); } if (exn_1.tag == FX_EXN_BadArgError) { - _fx_LN10Ast__exp_t v_152 = 0; + _fx_LN10Ast__exp_t v_153 = 0; _fx_R9Ast__id_t f_id_4; FX_CALL(_fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t(uop_0, &eloc_0, &f_id_4, 0), _fx_catch_69); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_10, 0, true, &v_152), _fx_catch_69); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_10, 0, true, &v_153), _fx_catch_69); FX_CALL( _fx_M13Ast_typecheckFM19check_and_make_callN10Ast__exp_t7R9Ast__id_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_tR10Ast__loc_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tN10Ast__typ_tLN12Ast__scope_t( - &f_id_4, v_152, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_25, 0), _fx_catch_69); + &f_id_4, v_153, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_25, 0), _fx_catch_69); _fx_catch_69: ; - if (v_152) { - _fx_free_LN10Ast__exp_t(&v_152); + if (v_153) { + _fx_free_LN10Ast__exp_t(&v_153); } } else { @@ -23633,14 +23172,14 @@ FX_EXTERN_C int goto _fx_endmatch_14; } if (tag_7 == 9) { - _fx_LN10Ast__exp_t v_153 = 0; + _fx_LN10Ast__exp_t v_154 = 0; _fx_N10Ast__exp_t result_27 = 0; _fx_R9Ast__id_t f_id_5; FX_CALL(_fx_M3AstFM15get_unary_fnameRM4id_t2N12Ast__unary_tRM5loc_t(uop_0, &eloc_0, &f_id_5, 0), _fx_catch_72); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_10, 0, true, &v_153), _fx_catch_72); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_e1_10, 0, true, &v_154), _fx_catch_72); FX_CALL( _fx_M13Ast_typecheckFM19check_and_make_callN10Ast__exp_t7R9Ast__id_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_tR10Ast__loc_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tN10Ast__typ_tLN12Ast__scope_t( - &f_id_5, v_153, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_27, 0), _fx_catch_72); + &f_id_5, v_154, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_27, 0), _fx_catch_72); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_27, &result_0); FX_BREAK(_fx_catch_72); @@ -23649,28 +23188,28 @@ FX_EXTERN_C int if (result_27) { _fx_free_N10Ast__exp_t(&result_27); } - if (v_153) { - _fx_free_LN10Ast__exp_t(&v_153); + if (v_154) { + _fx_free_LN10Ast__exp_t(&v_154); } goto _fx_endmatch_14; } - fx_str_t v_154 = {0}; fx_str_t v_155 = {0}; - fx_exn_t v_156 = {0}; - FX_CALL(_fx_M3AstFM6stringS1N12Ast__unary_t(uop_0, &v_154, 0), _fx_catch_73); + fx_str_t v_156 = {0}; + fx_exn_t v_157 = {0}; + FX_CALL(_fx_M3AstFM6stringS1N12Ast__unary_t(uop_0, &v_155, 0), _fx_catch_73); fx_str_t slit_55 = FX_MAKE_STR("unsupported unary operation \'"); fx_str_t slit_56 = FX_MAKE_STR("\'"); { - const fx_str_t strs_10[] = { slit_55, v_154, slit_56 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_10, 3, &v_155), _fx_catch_73); + const fx_str_t strs_10[] = { slit_55, v_155, slit_56 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_10, 3, &v_156), _fx_catch_73); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_155, &v_156, 0), _fx_catch_73); - FX_THROW(&v_156, false, _fx_catch_73); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_156, &v_157, 0), _fx_catch_73); + FX_THROW(&v_157, false, _fx_catch_73); _fx_catch_73: ; - fx_free_exn(&v_156); + fx_free_exn(&v_157); + FX_FREE_STR(&v_156); FX_FREE_STR(&v_155); - FX_FREE_STR(&v_154); _fx_endmatch_14: ; FX_CHECK_EXN(_fx_catch_74); @@ -23679,7 +23218,7 @@ FX_EXTERN_C int if (etyp1_10) { _fx_free_N10Ast__typ_t(&etyp1_10); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_149); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_150); if (new_e1_10) { _fx_free_N10Ast__exp_t(&new_e1_10); } @@ -23687,21 +23226,21 @@ FX_EXTERN_C int } if (tag_0 == 10) { _fx_T3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_13 = &e_2->u.ExpIntrin; - _fx_N13Ast__intrin_t* v_157 = &vcase_13->t0; - if (v_157->tag == 16) { + _fx_N13Ast__intrin_t* v_158 = &vcase_13->t0; + if (v_158->tag == 16) { _fx_LN10Ast__typ_t argtyps_0 = 0; _fx_LN10Ast__exp_t args_0 = 0; fx_str_t fstr_0 = {0}; - _fx_Ta2N10Ast__typ_t v_158 = {0}; + _fx_Ta2N10Ast__typ_t v_159 = {0}; _fx_N10Ast__typ_t t_3 = 0; _fx_N10Ast__typ_t argt_0 = 0; - fx_str_t v_159 = {0}; fx_str_t v_160 = {0}; + fx_str_t v_161 = {0}; _fx_LN10Ast__exp_t args_1 = 0; _fx_LN10Ast__exp_t args_2 = 0; - _fx_N10Ast__typ_t v_161 = 0; + _fx_N10Ast__typ_t v_162 = 0; _fx_N10Ast__exp_t result_28 = 0; - _fx_R9Ast__id_t* f_1 = &v_157->u.IntrinMath; + _fx_R9Ast__id_t* f_1 = &v_158->u.IntrinMath; _fx_LN10Ast__exp_t args_3 = vcase_13->t1; _fx_LN10Ast__typ_t lstend_0 = 0; FX_COPY_PTR(args_3, &args_0); @@ -23724,19 +23263,19 @@ FX_EXTERN_C int fx_str_t slit_57 = FX_MAKE_STR("atan2"); if (fx_streq(&fstr_0, &slit_57)) { if (argtyps_0 != 0) { - _fx_LN10Ast__typ_t v_162 = argtyps_0->tl; - if (v_162 != 0) { - if (v_162->tl == 0) { + _fx_LN10Ast__typ_t v_163 = argtyps_0->tl; + if (v_163 != 0) { + if (v_163->tl == 0) { if (args_3 != 0) { - _fx_LN10Ast__exp_t v_163 = args_3->tl; - if (v_163 != 0) { - if (v_163->tl == 0) { - _fx_N10Ast__typ_t xt_0 = v_162->hd; + _fx_LN10Ast__exp_t v_164 = args_3->tl; + if (v_164 != 0) { + if (v_164->tl == 0) { + _fx_N10Ast__typ_t xt_0 = v_163->hd; fx_str_t slit_58 = FX_MAKE_STR("arguments of atan2() must have the same type"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(xt_0, argtyps_0->hd, &eloc_0, &slit_58, 0), _fx_catch_76); - _fx_make_Ta2N10Ast__typ_t(xt_0, xt_0, &v_158); + _fx_make_Ta2N10Ast__typ_t(xt_0, xt_0, &v_159); _fx_catch_76: ; goto _fx_endmatch_15; @@ -23750,19 +23289,19 @@ FX_EXTERN_C int fx_str_t slit_59 = FX_MAKE_STR("pow"); if (fx_streq(&fstr_0, &slit_59)) { if (argtyps_0 != 0) { - _fx_LN10Ast__typ_t v_164 = argtyps_0->tl; - if (v_164 != 0) { - if (v_164->tl == 0) { + _fx_LN10Ast__typ_t v_165 = argtyps_0->tl; + if (v_165 != 0) { + if (v_165->tl == 0) { if (args_3 != 0) { - _fx_LN10Ast__exp_t v_165 = args_3->tl; - if (v_165 != 0) { - if (v_165->tl == 0) { + _fx_LN10Ast__exp_t v_166 = args_3->tl; + if (v_166 != 0) { + if (v_166->tl == 0) { _fx_N10Ast__typ_t xt_1 = argtyps_0->hd; fx_str_t slit_60 = FX_MAKE_STR("arguments of pow() must have the same type"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(xt_1, v_164->hd, + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(xt_1, v_165->hd, &eloc_0, &slit_60, 0), _fx_catch_77); - _fx_make_Ta2N10Ast__typ_t(xt_1, xt_1, &v_158); + _fx_make_Ta2N10Ast__typ_t(xt_1, xt_1, &v_159); _fx_catch_77: ; goto _fx_endmatch_15; @@ -23776,19 +23315,19 @@ FX_EXTERN_C int fx_str_t slit_61 = FX_MAKE_STR("min"); if (fx_streq(&fstr_0, &slit_61)) { if (argtyps_0 != 0) { - _fx_LN10Ast__typ_t v_166 = argtyps_0->tl; - if (v_166 != 0) { - if (v_166->tl == 0) { + _fx_LN10Ast__typ_t v_167 = argtyps_0->tl; + if (v_167 != 0) { + if (v_167->tl == 0) { if (args_3 != 0) { - _fx_LN10Ast__exp_t v_167 = args_3->tl; - if (v_167 != 0) { - if (v_167->tl == 0) { + _fx_LN10Ast__exp_t v_168 = args_3->tl; + if (v_168 != 0) { + if (v_168->tl == 0) { _fx_N10Ast__typ_t xt_2 = argtyps_0->hd; fx_str_t slit_62 = FX_MAKE_STR("arguments of pow() must have the same type"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(xt_2, v_166->hd, + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(xt_2, v_167->hd, &eloc_0, &slit_62, 0), _fx_catch_78); - _fx_make_Ta2N10Ast__typ_t(xt_2, xt_2, &v_158); + _fx_make_Ta2N10Ast__typ_t(xt_2, xt_2, &v_159); _fx_catch_78: ; goto _fx_endmatch_15; @@ -23802,19 +23341,19 @@ FX_EXTERN_C int fx_str_t slit_63 = FX_MAKE_STR("max"); if (fx_streq(&fstr_0, &slit_63)) { if (argtyps_0 != 0) { - _fx_LN10Ast__typ_t v_168 = argtyps_0->tl; - if (v_168 != 0) { - if (v_168->tl == 0) { + _fx_LN10Ast__typ_t v_169 = argtyps_0->tl; + if (v_169 != 0) { + if (v_169->tl == 0) { if (args_3 != 0) { - _fx_LN10Ast__exp_t v_169 = args_3->tl; - if (v_169 != 0) { - if (v_169->tl == 0) { + _fx_LN10Ast__exp_t v_170 = args_3->tl; + if (v_170 != 0) { + if (v_170->tl == 0) { _fx_N10Ast__typ_t xt_3 = argtyps_0->hd; fx_str_t slit_64 = FX_MAKE_STR("arguments of pow() must have the same type"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(xt_3, v_168->hd, + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(xt_3, v_169->hd, &eloc_0, &slit_64, 0), _fx_catch_79); - _fx_make_Ta2N10Ast__typ_t(xt_3, xt_3, &v_158); + _fx_make_Ta2N10Ast__typ_t(xt_3, xt_3, &v_159); _fx_catch_79: ; goto _fx_endmatch_15; @@ -23831,7 +23370,7 @@ FX_EXTERN_C int if (argtyps_0->tl == 0) { if (args_3 != 0) { if (args_3->tl == 0) { - _fx_make_Ta2N10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, argtyps_0->hd, &v_158); goto _fx_endmatch_15; + _fx_make_Ta2N10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, argtyps_0->hd, &v_159); goto _fx_endmatch_15; } } } @@ -23843,7 +23382,7 @@ FX_EXTERN_C int if (argtyps_0->tl == 0) { if (args_3 != 0) { if (args_3->tl == 0) { - _fx_make_Ta2N10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, argtyps_0->hd, &v_158); goto _fx_endmatch_15; + _fx_make_Ta2N10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, argtyps_0->hd, &v_159); goto _fx_endmatch_15; } } } @@ -23855,7 +23394,7 @@ FX_EXTERN_C int if (argtyps_0->tl == 0) { if (args_3 != 0) { if (args_3->tl == 0) { - _fx_make_Ta2N10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, argtyps_0->hd, &v_158); goto _fx_endmatch_15; + _fx_make_Ta2N10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, argtyps_0->hd, &v_159); goto _fx_endmatch_15; } } } @@ -23866,17 +23405,17 @@ FX_EXTERN_C int if (args_3 != 0) { if (args_3->tl == 0) { _fx_N10Ast__typ_t xt_4 = argtyps_0->hd; - _fx_make_Ta2N10Ast__typ_t(xt_4, xt_4, &v_158); + _fx_make_Ta2N10Ast__typ_t(xt_4, xt_4, &v_159); goto _fx_endmatch_15; } } } } - fx_str_t v_170 = {0}; fx_str_t v_171 = {0}; fx_str_t v_172 = {0}; - fx_exn_t v_173 = {0}; - bool v_174; + fx_str_t v_173 = {0}; + fx_exn_t v_174 = {0}; + bool v_175; fx_str_t slit_68 = FX_MAKE_STR("atan2"); bool t_4; if (_fx_F6__eq__B2SS(&fstr_0, &slit_68, 0)) { @@ -23893,48 +23432,48 @@ FX_EXTERN_C int fx_str_t slit_70 = FX_MAKE_STR("min"); t_5 = _fx_F6__eq__B2SS(&fstr_0, &slit_70, 0); } if (t_5) { - v_174 = true; + v_175 = true; } else { - fx_str_t slit_71 = FX_MAKE_STR("max"); v_174 = _fx_F6__eq__B2SS(&fstr_0, &slit_71, 0); + fx_str_t slit_71 = FX_MAKE_STR("max"); v_175 = _fx_F6__eq__B2SS(&fstr_0, &slit_71, 0); } int_ nargs_expected_0; - if (v_174) { + if (v_175) { nargs_expected_0 = 2; } else { nargs_expected_0 = 1; } - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&fstr_0, &v_170, 0), _fx_catch_80); - FX_CALL(_fx_F6stringS1i(nargs_expected_0, &v_171, 0), _fx_catch_80); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&fstr_0, &v_171, 0), _fx_catch_80); + FX_CALL(_fx_F6stringS1i(nargs_expected_0, &v_172, 0), _fx_catch_80); fx_str_t slit_72 = FX_MAKE_STR("incorrect number of arguments in __intrin_"); fx_str_t slit_73 = FX_MAKE_STR("__, "); fx_str_t slit_74 = FX_MAKE_STR(" expected"); { - const fx_str_t strs_11[] = { slit_72, v_170, slit_73, v_171, slit_74 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_11, 5, &v_172), _fx_catch_80); + const fx_str_t strs_11[] = { slit_72, v_171, slit_73, v_172, slit_74 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_11, 5, &v_173), _fx_catch_80); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_172, &v_173, 0), _fx_catch_80); - FX_THROW(&v_173, false, _fx_catch_80); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_173, &v_174, 0), _fx_catch_80); + FX_THROW(&v_174, false, _fx_catch_80); _fx_catch_80: ; - fx_free_exn(&v_173); + fx_free_exn(&v_174); + FX_FREE_STR(&v_173); FX_FREE_STR(&v_172); FX_FREE_STR(&v_171); - FX_FREE_STR(&v_170); _fx_endmatch_15: ; FX_CHECK_EXN(_fx_catch_85); - FX_COPY_PTR(v_158.t0, &t_3); - FX_COPY_PTR(v_158.t1, &argt_0); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&fstr_0, &v_159, 0), _fx_catch_85); + FX_COPY_PTR(v_159.t0, &t_3); + FX_COPY_PTR(v_159.t1, &argt_0); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&fstr_0, &v_160, 0), _fx_catch_85); fx_str_t slit_75 = FX_MAKE_STR("the input and output of "); fx_str_t slit_76 = FX_MAKE_STR(" should have the same types"); { - const fx_str_t strs_12[] = { slit_75, v_159, slit_76 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_12, 3, &v_160), _fx_catch_85); + const fx_str_t strs_12[] = { slit_75, v_160, slit_76 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_12, 3, &v_161), _fx_catch_85); } - FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, t_3, &eloc_0, &v_160, 0), + FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, t_3, &eloc_0, &v_161, 0), _fx_catch_85); _fx_LN10Ast__exp_t lstend_1 = 0; FX_COPY_PTR(args_3, &args_2); @@ -23955,8 +23494,8 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_85); } - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t_3, &v_161, 0), _fx_catch_85); - if (FX_REC_VARIANT_TAG(v_161) == 10) { + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t_3, &v_162, 0), _fx_catch_85); + if (FX_REC_VARIANT_TAG(v_162) == 10) { goto _fx_endmatch_18; } bool res_25; @@ -23977,23 +23516,23 @@ FX_EXTERN_C int _fx_endmatch_16: ; FX_CHECK_EXN(_fx_catch_85); if (res_25) { - if (FX_REC_VARIANT_TAG(v_161) == 6) { - _fx_N10Ast__typ_t v_175 = 0; - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(argt_0, &v_175, 0), _fx_catch_83); - if (FX_REC_VARIANT_TAG(v_175) != 10) { - fx_exn_t v_176 = {0}; + if (FX_REC_VARIANT_TAG(v_162) == 6) { + _fx_N10Ast__typ_t v_176 = 0; + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(argt_0, &v_176, 0), _fx_catch_83); + if (FX_REC_VARIANT_TAG(v_176) != 10) { + fx_exn_t v_177 = {0}; fx_str_t slit_80 = FX_MAKE_STR("floor/ceil/round intrinsics must have a single floating-point argument"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_80, &v_176, 0), _fx_catch_82); - FX_THROW(&v_176, false, _fx_catch_82); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_80, &v_177, 0), _fx_catch_82); + FX_THROW(&v_177, false, _fx_catch_82); _fx_catch_82: ; - fx_free_exn(&v_176); + fx_free_exn(&v_177); } FX_CHECK_EXN(_fx_catch_83); _fx_catch_83: ; - if (v_175) { - _fx_free_N10Ast__typ_t(&v_175); + if (v_176) { + _fx_free_N10Ast__typ_t(&v_176); } goto _fx_endmatch_18; } @@ -24012,25 +23551,25 @@ FX_EXTERN_C int _fx_endmatch_17: ; FX_CHECK_EXN(_fx_catch_85); if (res_26) { - if (FX_REC_VARIANT_TAG(v_161) == 6) { + if (FX_REC_VARIANT_TAG(v_162) == 6) { goto _fx_endmatch_18; } } - fx_exn_t v_177 = {0}; + fx_exn_t v_178 = {0}; fx_str_t slit_83 = FX_MAKE_STR("the argument and the result of intrinsic math function must be \'float\' or \'double\'"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_83, &v_177, 0), _fx_catch_84); - FX_THROW(&v_177, false, _fx_catch_84); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_83, &v_178, 0), _fx_catch_84); + FX_THROW(&v_178, false, _fx_catch_84); _fx_catch_84: ; - fx_free_exn(&v_177); + fx_free_exn(&v_178); _fx_endmatch_18: ; FX_CHECK_EXN(_fx_catch_85); - _fx_N13Ast__intrin_t v_178; - _fx_M3AstFM10IntrinMathN13Ast__intrin_t1RM4id_t(f_1, &v_178); + _fx_N13Ast__intrin_t v_179; + _fx_M3AstFM10IntrinMathN13Ast__intrin_t1RM4id_t(f_1, &v_179); FX_CALL( - _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(&v_178, args_1, &ctx_0, + _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(&v_179, args_1, &ctx_0, &result_28), _fx_catch_85); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_28, &result_0); @@ -24040,8 +23579,8 @@ FX_EXTERN_C int if (result_28) { _fx_free_N10Ast__exp_t(&result_28); } - if (v_161) { - _fx_free_N10Ast__typ_t(&v_161); + if (v_162) { + _fx_free_N10Ast__typ_t(&v_162); } if (args_2) { _fx_free_LN10Ast__exp_t(&args_2); @@ -24049,15 +23588,15 @@ FX_EXTERN_C int if (args_1) { _fx_free_LN10Ast__exp_t(&args_1); } + FX_FREE_STR(&v_161); FX_FREE_STR(&v_160); - FX_FREE_STR(&v_159); if (argt_0) { _fx_free_N10Ast__typ_t(&argt_0); } if (t_3) { _fx_free_N10Ast__typ_t(&t_3); } - _fx_free_Ta2N10Ast__typ_t(&v_158); + _fx_free_Ta2N10Ast__typ_t(&v_159); FX_FREE_STR(&fstr_0); if (args_0) { _fx_free_LN10Ast__exp_t(&args_0); @@ -24071,40 +23610,39 @@ FX_EXTERN_C int if (tag_0 == 10) { _fx_T3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_14 = &e_2->u.ExpIntrin; if (vcase_14->t0.tag == 13) { - _fx_LN10Ast__exp_t v_179 = vcase_14->t1; - if (v_179 != 0) { - _fx_LN10Ast__exp_t v_180 = v_179->tl; - if (v_180 != 0) { - _fx_LN10Ast__exp_t v_181 = v_180->tl; - if (v_181 != 0) { - _fx_LN10Ast__exp_t v_182 = v_181->tl; - if (v_182 != 0) { - _fx_LN10Ast__exp_t v_183 = v_182->tl; - if (v_183 != 0) { - _fx_LN10Ast__exp_t v_184 = v_183->tl; - if (v_184 != 0) { - _fx_LN10Ast__exp_t v_185 = v_184->tl; - if (v_185 != 0) { - _fx_LN10Ast__exp_t v_186 = v_185->tl; - if (v_186 != 0) { - _fx_LN10Ast__exp_t v_187 = v_186->tl; - if (v_187 != 0) { - _fx_LN10Ast__exp_t v_188 = v_187->tl; - if (v_188 != 0) { - _fx_LN10Ast__exp_t v_189 = v_188->tl; - if (v_189 != 0) { - _fx_LN10Ast__exp_t v_190 = v_189->tl; - if (v_190 != 0) { - _fx_LN10Ast__exp_t v_191 = v_190->tl; - if (v_191 != 0) { - _fx_LN10Ast__exp_t v_192 = v_191->tl; - if (v_192 != 0) { - _fx_LN10Ast__exp_t v_193 = v_192->tl; - if (v_193 != 0) { - _fx_LN10Ast__exp_t v_194 = v_193->tl; - if (v_194 != 0) { - if (v_194->tl == 0) { - _fx_N10Ast__exp_t v_195 = 0; + _fx_LN10Ast__exp_t v_180 = vcase_14->t1; + if (v_180 != 0) { + _fx_LN10Ast__exp_t v_181 = v_180->tl; + if (v_181 != 0) { + _fx_LN10Ast__exp_t v_182 = v_181->tl; + if (v_182 != 0) { + _fx_LN10Ast__exp_t v_183 = v_182->tl; + if (v_183 != 0) { + _fx_LN10Ast__exp_t v_184 = v_183->tl; + if (v_184 != 0) { + _fx_LN10Ast__exp_t v_185 = v_184->tl; + if (v_185 != 0) { + _fx_LN10Ast__exp_t v_186 = v_185->tl; + if (v_186 != 0) { + _fx_LN10Ast__exp_t v_187 = v_186->tl; + if (v_187 != 0) { + _fx_LN10Ast__exp_t v_188 = v_187->tl; + if (v_188 != 0) { + _fx_LN10Ast__exp_t v_189 = v_188->tl; + if (v_189 != 0) { + _fx_LN10Ast__exp_t v_190 = v_189->tl; + if (v_190 != 0) { + _fx_LN10Ast__exp_t v_191 = v_190->tl; + if (v_191 != 0) { + _fx_LN10Ast__exp_t v_192 = v_191->tl; + if (v_192 != 0) { + _fx_LN10Ast__exp_t v_193 = v_192->tl; + if (v_193 != 0) { + _fx_LN10Ast__exp_t v_194 = v_193->tl; + if (v_194 != 0) { + _fx_LN10Ast__exp_t v_195 = v_194->tl; + if (v_195 != 0) { + if (v_195->tl == 0) { _fx_N10Ast__exp_t v_196 = 0; _fx_N10Ast__exp_t v_197 = 0; _fx_N10Ast__exp_t v_198 = 0; @@ -24120,7 +23658,7 @@ FX_EXTERN_C int _fx_N10Ast__exp_t v_208 = 0; _fx_N10Ast__exp_t v_209 = 0; _fx_N10Ast__exp_t v_210 = 0; - _fx_N10Ast__typ_t v_211 = 0; + _fx_N10Ast__exp_t v_211 = 0; _fx_N10Ast__typ_t v_212 = 0; _fx_N10Ast__typ_t v_213 = 0; _fx_N10Ast__typ_t v_214 = 0; @@ -24134,18 +23672,16 @@ FX_EXTERN_C int _fx_N10Ast__typ_t v_222 = 0; _fx_N10Ast__typ_t v_223 = 0; _fx_N10Ast__typ_t v_224 = 0; + _fx_N10Ast__typ_t v_225 = 0; _fx_N10Ast__typ_t m1typ_0 = 0; _fx_N10Ast__typ_t m2typ_0 = 0; _fx_N10Ast__typ_t elemtyp_0 = 0; _fx_N10Ast__typ_t mtyp_0 = 0; - _fx_N10Ast__typ_t v_225 = 0; _fx_N10Ast__typ_t v_226 = 0; - fx_exn_t v_227 = {0}; - _fx_LN10Ast__exp_t v_228 = 0; + _fx_N10Ast__typ_t v_227 = 0; + fx_exn_t v_228 = {0}; + _fx_LN10Ast__exp_t v_229 = 0; _fx_N10Ast__exp_t result_29 = 0; - FX_CALL( - _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - v_179->hd, &env_2, sc_2, &v_195, 0), _fx_catch_86); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( v_180->hd, &env_2, sc_2, &v_196, 0), _fx_catch_86); @@ -24192,146 +23728,149 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( v_194->hd, &env_2, sc_2, &v_210, 0), _fx_catch_86); FX_CALL( - _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_196, - &v_211, 0), _fx_catch_86); - fx_str_t slit_84 = FX_MAKE_STR("t1 should be boolean"); - FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_211, _fx_g22Ast_typecheck__TypBool, &eloc_0, &slit_84, - 0), _fx_catch_86); + _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( + v_195->hd, &env_2, sc_2, &v_211, 0), _fx_catch_86); FX_CALL( - _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_204, + _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_197, &v_212, 0), _fx_catch_86); - fx_str_t slit_85 = FX_MAKE_STR("t1 should be boolean"); + fx_str_t slit_84 = FX_MAKE_STR("t1 should be boolean"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_212, _fx_g22Ast_typecheck__TypBool, &eloc_0, &slit_85, + v_212, _fx_g22Ast_typecheck__TypBool, &eloc_0, &slit_84, 0), _fx_catch_86); FX_CALL( - _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_197, + _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_205, &v_213, 0), _fx_catch_86); - fx_str_t slit_86 = - FX_MAKE_STR( - "range boundaries/delta\'s should all be integers"); + fx_str_t slit_85 = FX_MAKE_STR("t1 should be boolean"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_213, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_86, 0), - _fx_catch_86); + v_213, _fx_g22Ast_typecheck__TypBool, &eloc_0, &slit_85, + 0), _fx_catch_86); FX_CALL( _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_198, &v_214, 0), _fx_catch_86); - fx_str_t slit_87 = + fx_str_t slit_86 = FX_MAKE_STR( "range boundaries/delta\'s should all be integers"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_214, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_87, 0), + v_214, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_86, 0), _fx_catch_86); FX_CALL( _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_199, &v_215, 0), _fx_catch_86); - fx_str_t slit_88 = + fx_str_t slit_87 = FX_MAKE_STR( "range boundaries/delta\'s should all be integers"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_215, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_88, 0), + v_215, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_87, 0), _fx_catch_86); FX_CALL( _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_200, &v_216, 0), _fx_catch_86); - fx_str_t slit_89 = + fx_str_t slit_88 = FX_MAKE_STR( "range boundaries/delta\'s should all be integers"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_216, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_89, 0), + v_216, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_88, 0), _fx_catch_86); FX_CALL( _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_201, &v_217, 0), _fx_catch_86); - fx_str_t slit_90 = + fx_str_t slit_89 = FX_MAKE_STR( "range boundaries/delta\'s should all be integers"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_217, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_90, 0), + v_217, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_89, 0), _fx_catch_86); FX_CALL( _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_202, &v_218, 0), _fx_catch_86); - fx_str_t slit_91 = + fx_str_t slit_90 = FX_MAKE_STR( "range boundaries/delta\'s should all be integers"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_218, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_91, 0), + v_218, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_90, 0), _fx_catch_86); FX_CALL( - _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_205, + _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_203, &v_219, 0), _fx_catch_86); - fx_str_t slit_92 = + fx_str_t slit_91 = FX_MAKE_STR( "range boundaries/delta\'s should all be integers"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_219, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_92, 0), + v_219, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_91, 0), _fx_catch_86); FX_CALL( _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_206, &v_220, 0), _fx_catch_86); - fx_str_t slit_93 = + fx_str_t slit_92 = FX_MAKE_STR( "range boundaries/delta\'s should all be integers"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_220, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_93, 0), + v_220, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_92, 0), _fx_catch_86); FX_CALL( _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_207, &v_221, 0), _fx_catch_86); - fx_str_t slit_94 = + fx_str_t slit_93 = FX_MAKE_STR( "range boundaries/delta\'s should all be integers"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_221, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_94, 0), + v_221, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_93, 0), _fx_catch_86); FX_CALL( _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_208, &v_222, 0), _fx_catch_86); - fx_str_t slit_95 = + fx_str_t slit_94 = FX_MAKE_STR( "range boundaries/delta\'s should all be integers"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_222, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_95, 0), + v_222, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_94, 0), _fx_catch_86); FX_CALL( _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_209, &v_223, 0), _fx_catch_86); - fx_str_t slit_96 = + fx_str_t slit_95 = FX_MAKE_STR( "range boundaries/delta\'s should all be integers"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_223, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_96, 0), + v_223, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_95, 0), _fx_catch_86); FX_CALL( _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_210, &v_224, 0), _fx_catch_86); + fx_str_t slit_96 = + FX_MAKE_STR( + "range boundaries/delta\'s should all be integers"); + FX_CALL( + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( + v_224, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_96, 0), + _fx_catch_86); + FX_CALL( + _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_211, + &v_225, 0), _fx_catch_86); fx_str_t slit_97 = FX_MAKE_STR( "range boundaries/delta\'s should all be integers"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( - v_224, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_97, 0), + v_225, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_97, 0), _fx_catch_86); FX_CALL( - _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_195, + _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_196, &m1typ_0, 0), _fx_catch_86); FX_CALL( - _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_203, + _fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(v_204, &m2typ_0, 0), _fx_catch_86); fx_str_t slit_98 = FX_MAKE_STR("m1 and m2 should have the same type"); @@ -24348,34 +23887,34 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( m1typ_0, mtyp_0, &eloc_0, &slit_99, 0), _fx_catch_86); - FX_CALL(_fx_M3AstFM8TypFloatN10Ast__typ_t1i(32, &v_225), + FX_CALL(_fx_M3AstFM8TypFloatN10Ast__typ_t1i(32, &v_226), _fx_catch_86); - bool v_229; + bool v_230; FX_CALL( _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB( - elemtyp_0, v_225, &eloc_0, true, &v_229, 0), _fx_catch_86); - bool v_230; - if (!v_229) { - FX_CALL(_fx_M3AstFM8TypFloatN10Ast__typ_t1i(64, &v_226), + elemtyp_0, v_226, &eloc_0, true, &v_230, 0), _fx_catch_86); + bool v_231; + if (!v_230) { + FX_CALL(_fx_M3AstFM8TypFloatN10Ast__typ_t1i(64, &v_227), _fx_catch_86); - bool v_231; + bool v_232; FX_CALL( _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB( - elemtyp_0, v_226, &eloc_0, true, &v_231, 0), + elemtyp_0, v_227, &eloc_0, true, &v_232, 0), _fx_catch_86); - v_230 = !v_231; + v_231 = !v_232; } else { - v_230 = false; + v_231 = false; } - if (v_230) { + if (v_231) { fx_str_t slit_100 = FX_MAKE_STR( "multiplied matrices should contain float or double elements"); FX_CALL( _fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_100, - &v_227, 0), _fx_catch_86); - FX_THROW(&v_227, false, _fx_catch_86); + &v_228, 0), _fx_catch_86); + FX_THROW(&v_228, false, _fx_catch_86); } fx_str_t slit_101 = FX_MAKE_STR( @@ -24383,41 +23922,41 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS( etyp_0, mtyp_0, &eloc_0, &slit_101, 0), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_210, 0, true, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_211, 0, true, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_209, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_210, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_208, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_209, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_207, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_208, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_206, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_207, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_205, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_206, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_204, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_205, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_203, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_204, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_202, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_203, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_201, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_202, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_200, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_201, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_199, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_200, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_198, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_199, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_197, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_198, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_196, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_197, v_229, false, &v_229), _fx_catch_86); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_195, v_228, false, &v_228), + FX_CALL(_fx_cons_LN10Ast__exp_t(v_196, v_229, false, &v_229), _fx_catch_86); FX_CALL( _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - &_fx_g25Ast_typecheck__IntrinGEMM, v_228, &ctx_0, + &_fx_g25Ast_typecheck__IntrinGEMM, v_229, &ctx_0, &result_29), _fx_catch_86); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_29, &result_0); @@ -24427,16 +23966,16 @@ FX_EXTERN_C int if (result_29) { _fx_free_N10Ast__exp_t(&result_29); } - if (v_228) { - _fx_free_LN10Ast__exp_t(&v_228); + if (v_229) { + _fx_free_LN10Ast__exp_t(&v_229); + } + fx_free_exn(&v_228); + if (v_227) { + _fx_free_N10Ast__typ_t(&v_227); } - fx_free_exn(&v_227); if (v_226) { _fx_free_N10Ast__typ_t(&v_226); } - if (v_225) { - _fx_free_N10Ast__typ_t(&v_225); - } if (mtyp_0) { _fx_free_N10Ast__typ_t(&mtyp_0); } @@ -24449,6 +23988,9 @@ FX_EXTERN_C int if (m1typ_0) { _fx_free_N10Ast__typ_t(&m1typ_0); } + if (v_225) { + _fx_free_N10Ast__typ_t(&v_225); + } if (v_224) { _fx_free_N10Ast__typ_t(&v_224); } @@ -24489,7 +24031,7 @@ FX_EXTERN_C int _fx_free_N10Ast__typ_t(&v_212); } if (v_211) { - _fx_free_N10Ast__typ_t(&v_211); + _fx_free_N10Ast__exp_t(&v_211); } if (v_210) { _fx_free_N10Ast__exp_t(&v_210); @@ -24536,9 +24078,6 @@ FX_EXTERN_C int if (v_196) { _fx_free_N10Ast__exp_t(&v_196); } - if (v_195) { - _fx_free_N10Ast__exp_t(&v_195); - } goto _fx_endmatch_41; } } @@ -24564,30 +24103,30 @@ FX_EXTERN_C int _fx_LN10Ast__exp_t args_4 = vcase_15->t1; _fx_N13Ast__intrin_t* iop_0 = &vcase_15->t0; if (iop_0->tag == 9) { - _fx_T2N10Ast__exp_ti v_232 = {0}; + _fx_T2N10Ast__exp_ti v_233 = {0}; _fx_N10Ast__exp_t a_2 = 0; _fx_N10Ast__exp_t a_3 = 0; _fx_N10Ast__typ_t t_6 = 0; - _fx_N10Ast__typ_t v_233 = 0; - _fx_LN10Ast__exp_t v_234 = 0; + _fx_N10Ast__typ_t v_234 = 0; _fx_LN10Ast__exp_t v_235 = 0; + _fx_LN10Ast__exp_t v_236 = 0; _fx_N10Ast__exp_t result_30 = 0; if (args_4 != 0) { if (args_4->tl == 0) { - _fx_make_T2N10Ast__exp_ti(args_4->hd, 0, &v_232); goto _fx_endmatch_19; + _fx_make_T2N10Ast__exp_ti(args_4->hd, 0, &v_233); goto _fx_endmatch_19; } } if (args_4 != 0) { - _fx_LN10Ast__exp_t v_236 = args_4->tl; - if (v_236 != 0) { - if (v_236->tl == 0) { - _fx_N10Ast__exp_t v_237 = v_236->hd; - if (FX_REC_VARIANT_TAG(v_237) == 6) { - _fx_N10Ast__lit_t* v_238 = &v_237->u.ExpLit.t0; - if (v_238->tag == 1) { + _fx_LN10Ast__exp_t v_237 = args_4->tl; + if (v_237 != 0) { + if (v_237->tl == 0) { + _fx_N10Ast__exp_t v_238 = v_237->hd; + if (FX_REC_VARIANT_TAG(v_238) == 6) { + _fx_N10Ast__lit_t* v_239 = &v_238->u.ExpLit.t0; + if (v_239->tag == 1) { int_ res_27; - FX_CALL(_fx_M13Ast_typecheckFM3inti1l(v_238->u.LitInt, &res_27, 0), _fx_catch_87); - _fx_make_T2N10Ast__exp_ti(args_4->hd, res_27, &v_232); + FX_CALL(_fx_M13Ast_typecheckFM3inti1l(v_239->u.LitInt, &res_27, 0), _fx_catch_87); + _fx_make_T2N10Ast__exp_ti(args_4->hd, res_27, &v_233); _fx_catch_87: ; goto _fx_endmatch_19; @@ -24596,20 +24135,20 @@ FX_EXTERN_C int } } } - fx_exn_t v_239 = {0}; + fx_exn_t v_240 = {0}; fx_str_t slit_102 = FX_MAKE_STR( "there should be exactly one or two argument of __intrin_size__ intrinsic. In the latter case the second parameter must be literal integer"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_102, &v_239, 0), _fx_catch_88); - FX_THROW(&v_239, false, _fx_catch_88); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_102, &v_240, 0), _fx_catch_88); + FX_THROW(&v_240, false, _fx_catch_88); _fx_catch_88: ; - fx_free_exn(&v_239); + fx_free_exn(&v_240); _fx_endmatch_19: ; FX_CHECK_EXN(_fx_catch_91); - FX_COPY_PTR(v_232.t0, &a_2); - int_ idx_0 = v_232.t1; + FX_COPY_PTR(v_233.t0, &a_2); + int_ idx_0 = v_233.t1; FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( a_2, &env_2, sc_2, &a_3, 0), _fx_catch_91); @@ -24618,52 +24157,52 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, _fx_g21Ast_typecheck__TypInt, &eloc_0, &slit_103, 0), _fx_catch_91); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t_6, &v_233, 0), _fx_catch_91); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t_6, &v_234, 0), _fx_catch_91); if (idx_0 == 0) { - if (FX_REC_VARIANT_TAG(v_233) == 11) { + if (FX_REC_VARIANT_TAG(v_234) == 11) { goto _fx_endmatch_20; } } if (idx_0 == 0) { - if (FX_REC_VARIANT_TAG(v_233) == 17) { + if (FX_REC_VARIANT_TAG(v_234) == 17) { goto _fx_endmatch_20; } } - if (FX_REC_VARIANT_TAG(v_233) == 20) { - fx_exn_t v_240 = {0}; + if (FX_REC_VARIANT_TAG(v_234) == 20) { + fx_exn_t v_241 = {0}; bool t_7; if (idx_0 < 0) { t_7 = true; } else { - t_7 = idx_0 >= v_233->u.TypArray.t0; + t_7 = idx_0 >= v_234->u.TypArray.t0; } if (t_7) { fx_str_t slit_104 = FX_MAKE_STR("the argument of __intrin_size__ is outside of array dimensionality"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_104, &v_240, 0), _fx_catch_89); - FX_THROW(&v_240, false, _fx_catch_89); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_104, &v_241, 0), _fx_catch_89); + FX_THROW(&v_241, false, _fx_catch_89); } _fx_catch_89: ; - fx_free_exn(&v_240); + fx_free_exn(&v_241); goto _fx_endmatch_20; } - fx_exn_t v_241 = {0}; + fx_exn_t v_242 = {0}; fx_str_t slit_105 = FX_MAKE_STR("the argument of __intrin_size__ must be a string, a vector or an array"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_105, &v_241, 0), _fx_catch_90); - FX_THROW(&v_241, false, _fx_catch_90); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_105, &v_242, 0), _fx_catch_90); + FX_THROW(&v_242, false, _fx_catch_90); _fx_catch_90: ; - fx_free_exn(&v_241); + fx_free_exn(&v_242); _fx_endmatch_20: ; FX_CHECK_EXN(_fx_catch_91); if (idx_0 > 0) { - FX_CALL(_fx_M13Ast_typecheckFM2tlLN10Ast__exp_t1LN10Ast__exp_t(args_4, &v_234, 0), _fx_catch_91); + FX_CALL(_fx_M13Ast_typecheckFM2tlLN10Ast__exp_t1LN10Ast__exp_t(args_4, &v_235, 0), _fx_catch_91); } - FX_CALL(_fx_cons_LN10Ast__exp_t(a_3, v_234, true, &v_235), _fx_catch_91); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_3, v_235, true, &v_236), _fx_catch_91); FX_CALL( - _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(iop_0, v_235, &ctx_0, + _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(iop_0, v_236, &ctx_0, &result_30), _fx_catch_91); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_30, &result_0); @@ -24673,14 +24212,14 @@ FX_EXTERN_C int if (result_30) { _fx_free_N10Ast__exp_t(&result_30); } + if (v_236) { + _fx_free_LN10Ast__exp_t(&v_236); + } if (v_235) { _fx_free_LN10Ast__exp_t(&v_235); } if (v_234) { - _fx_free_LN10Ast__exp_t(&v_234); - } - if (v_233) { - _fx_free_N10Ast__typ_t(&v_233); + _fx_free_N10Ast__typ_t(&v_234); } if (t_6) { _fx_free_N10Ast__typ_t(&t_6); @@ -24691,26 +24230,26 @@ FX_EXTERN_C int if (a_2) { _fx_free_N10Ast__exp_t(&a_2); } - _fx_free_T2N10Ast__exp_ti(&v_232); + _fx_free_T2N10Ast__exp_ti(&v_233); } else { - fx_str_t v_242 = {0}; fx_str_t v_243 = {0}; - fx_exn_t v_244 = {0}; - FX_CALL(_fx_M3AstFM6stringS1N13Ast__intrin_t(iop_0, &v_242, 0), _fx_catch_92); + fx_str_t v_244 = {0}; + fx_exn_t v_245 = {0}; + FX_CALL(_fx_M3AstFM6stringS1N13Ast__intrin_t(iop_0, &v_243, 0), _fx_catch_92); fx_str_t slit_106 = FX_MAKE_STR("the intrinsic \'"); fx_str_t slit_107 = FX_MAKE_STR("\' is not supported by the type checker"); { - const fx_str_t strs_13[] = { slit_106, v_242, slit_107 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_13, 3, &v_243), _fx_catch_92); + const fx_str_t strs_13[] = { slit_106, v_243, slit_107 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_13, 3, &v_244), _fx_catch_92); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_243, &v_244, 0), _fx_catch_92); - FX_THROW(&v_244, false, _fx_catch_92); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_244, &v_245, 0), _fx_catch_92); + FX_THROW(&v_245, false, _fx_catch_92); _fx_catch_92: ; - fx_free_exn(&v_244); + fx_free_exn(&v_245); + FX_FREE_STR(&v_244); FX_FREE_STR(&v_243); - FX_FREE_STR(&v_242); } FX_CHECK_EXN(_fx_catch_93); @@ -24719,7 +24258,7 @@ FX_EXTERN_C int } if (tag_0 == 12) { _fx_N10Ast__typ_t eseq_typ_0 = 0; - _fx_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_245 = {0}; + _fx_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_246 = {0}; _fx_LN10Ast__exp_t eseq_0 = 0; _fx_N10Ast__exp_t result_31 = 0; _fx_LN10Ast__exp_t eseq_1 = e_2->u.ExpSeq.t0; @@ -24731,9 +24270,9 @@ FX_EXTERN_C int } if (sc_2 != 0) { if (sc_2->hd.tag == 1) { - _fx_LN12Ast__scope_t v_246 = sc_2->tl; - if (v_246 != 0) { - if (v_246->hd.tag == 7) { + _fx_LN12Ast__scope_t v_247 = sc_2->tl; + if (v_247 != 0) { + if (v_247->hd.tag == 7) { is_func_body_0 = true; goto _fx_endmatch_21; } } @@ -24751,10 +24290,10 @@ FX_EXTERN_C int _fx_N10Ast__exp_t last_exp_1 = 0; FX_CALL(_fx_M13Ast_typecheckFM4lastN10Ast__exp_t1LN10Ast__exp_t(eseq_1, &last_exp_0, 0), _fx_catch_94); if (FX_REC_VARIANT_TAG(last_exp_0) == 4) { - _fx_Nt6option1N10Ast__exp_t v_247 = last_exp_0->u.ExpReturn.t0; - if ((v_247 != 0) + 1 == 2) { + _fx_Nt6option1N10Ast__exp_t v_248 = last_exp_0->u.ExpReturn.t0; + if ((v_248 != 0) + 1 == 2) { if (is_func_body_0) { - FX_COPY_PTR(v_247->u.Some, &last_exp_1); goto _fx_endmatch_22; + FX_COPY_PTR(v_248->u.Some, &last_exp_1); goto _fx_endmatch_22; } } } @@ -24779,8 +24318,8 @@ FX_EXTERN_C int _fx_catch_95); FX_CALL( _fx_M13Ast_typecheckFM10check_eseqT2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t4LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tB( - eseq_1, &env_2, sc_2, true, &v_245, 0), _fx_catch_95); - FX_COPY_PTR(v_245.t0, &eseq_0); + eseq_1, &env_2, sc_2, true, &v_246, 0), _fx_catch_95); + FX_COPY_PTR(v_246.t0, &eseq_0); FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(eseq_0, &ctx_0, &result_31), _fx_catch_95); _fx_free_N10Ast__exp_t(&result_0); @@ -24794,7 +24333,7 @@ FX_EXTERN_C int if (eseq_0) { _fx_free_LN10Ast__exp_t(&eseq_0); } - _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_245); + _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_246); if (eseq_typ_0) { _fx_free_N10Ast__typ_t(&eseq_typ_0); } @@ -24827,8 +24366,8 @@ FX_EXTERN_C int if (tag_0 == 13) { _fx_LN10Ast__typ_t tl_0 = 0; _fx_LN10Ast__exp_t el_0 = 0; - _fx_N10Ast__typ_t v_248 = 0; - _fx_LN10Ast__exp_t v_249 = 0; + _fx_N10Ast__typ_t v_249 = 0; + _fx_LN10Ast__exp_t v_250 = 0; _fx_LN10Ast__exp_t el_1 = 0; _fx_N10Ast__exp_t result_33 = 0; _fx_LN10Ast__exp_t el_2 = e_2->u.ExpMkTuple.t0; @@ -24849,9 +24388,9 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_99); } - FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(tl_0, &v_248), _fx_catch_99); + FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(tl_0, &v_249), _fx_catch_99); fx_str_t slit_109 = FX_MAKE_STR("improper type of tuple elements or the number of elements"); - FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_248, &eloc_0, &slit_109, 0), + FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_249, &eloc_0, &slit_109, 0), _fx_catch_99); _fx_LN10Ast__exp_t lstend_3 = 0; FX_COPY_PTR(el_2, &el_1); @@ -24864,7 +24403,7 @@ FX_EXTERN_C int e_5, &env_2, sc_2, &res_29, 0), _fx_catch_98); _fx_LN10Ast__exp_t node_3 = 0; FX_CALL(_fx_cons_LN10Ast__exp_t(res_29, 0, false, &node_3), _fx_catch_98); - FX_LIST_APPEND(v_249, lstend_3, node_3); + FX_LIST_APPEND(v_250, lstend_3, node_3); _fx_catch_98: ; if (res_29) { @@ -24872,7 +24411,7 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_99); } - FX_CALL(_fx_M3AstFM10ExpMkTupleN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_249, &ctx_0, &result_33), + FX_CALL(_fx_M3AstFM10ExpMkTupleN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_250, &ctx_0, &result_33), _fx_catch_99); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_33, &result_0); @@ -24885,11 +24424,11 @@ FX_EXTERN_C int if (el_1) { _fx_free_LN10Ast__exp_t(&el_1); } - if (v_249) { - _fx_free_LN10Ast__exp_t(&v_249); + if (v_250) { + _fx_free_LN10Ast__exp_t(&v_250); } - if (v_248) { - _fx_free_N10Ast__typ_t(&v_248); + if (v_249) { + _fx_free_N10Ast__typ_t(&v_249); } if (el_0) { _fx_free_LN10Ast__exp_t(&el_0); @@ -24905,13 +24444,13 @@ FX_EXTERN_C int _fx_LN10Ast__exp_t args_5 = 0; _fx_LN10Ast__typ_t arg_typs_0 = 0; _fx_N10Ast__typ_t f_expected_typ_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_250 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_251 = {0}; _fx_N10Ast__typ_t f_real_typ_0 = 0; - fx_str_t v_251 = {0}; fx_str_t v_252 = {0}; fx_str_t v_253 = {0}; fx_str_t v_254 = {0}; fx_str_t v_255 = {0}; + fx_str_t v_256 = {0}; _fx_LT2N10Ast__exp_tB new_args_0 = 0; _fx_N10Ast__exp_t result_34 = 0; fx_exn_t exn_2 = {0}; @@ -24942,90 +24481,91 @@ FX_EXTERN_C int } FX_CALL(_fx_M3AstFM6TypFunN10Ast__typ_t2LN10Ast__typ_tN10Ast__typ_t(arg_typs_0, etyp_0, &f_expected_typ_0), _fx_catch_117); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(f_2, &v_250, 0), _fx_catch_117); - FX_COPY_PTR(v_250.t0, &f_real_typ_0); - _fx_R10Ast__loc_t floc_0 = v_250.t1; - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(f_real_typ_0, &v_251, 0), _fx_catch_117); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_251, &v_252, 0), _fx_catch_117); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(f_expected_typ_0, &v_253, 0), _fx_catch_117); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_253, &v_254, 0), _fx_catch_117); + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(f_2, &v_251, 0), _fx_catch_117); + FX_COPY_PTR(v_251.t0, &f_real_typ_0); + _fx_R10Ast__loc_t floc_0 = v_251.t1; + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(f_real_typ_0, &v_252, 0), _fx_catch_117); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_252, &v_253, 0), _fx_catch_117); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(f_expected_typ_0, &v_254, 0), _fx_catch_117); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_254, &v_255, 0), _fx_catch_117); fx_str_t slit_110 = FX_MAKE_STR("the real \'"); fx_str_t slit_111 = FX_MAKE_STR("\' and expected \'"); fx_str_t slit_112 = FX_MAKE_STR("\' function type do not match"); { - const fx_str_t strs_14[] = { slit_110, v_252, slit_111, v_254, slit_112 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_14, 5, &v_255), _fx_catch_117); + const fx_str_t strs_14[] = { slit_110, v_253, slit_111, v_255, slit_112 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_14, 5, &v_256), _fx_catch_117); } FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(f_real_typ_0, f_expected_typ_0, &floc_0, - &v_255, 0), _fx_catch_117); + &v_256, 0), _fx_catch_117); _fx_LT2N10Ast__exp_tB lstend_5 = 0; _fx_LN10Ast__exp_t lst_6 = args_5; for (; lst_6; lst_6 = lst_6->tl) { - _fx_R13Ast__deffun_t v_256 = {0}; + _fx_R13Ast__deffun_t v_257 = {0}; _fx_T2N10Ast__exp_tB t_8 = {0}; - _fx_N10Ast__exp_t v_257 = 0; + _fx_N10Ast__exp_t v_258 = 0; _fx_N10Ast__exp_t a_5 = lst_6->hd; int tag_9 = FX_REC_VARIANT_TAG(a_5); bool need_to_check_0; if (tag_9 == 12) { - _fx_LN10Ast__exp_t v_258 = a_5->u.ExpSeq.t0; - if (v_258 != 0) { - _fx_LN10Ast__exp_t v_259 = v_258->tl; - if (v_259 != 0) { - if (v_259->tl == 0) { - _fx_N10Ast__exp_t v_260 = v_259->hd; - if (FX_REC_VARIANT_TAG(v_260) == 7) { - _fx_R9Ast__id_t* f_3 = &v_260->u.ExpIdent.t0; - _fx_N10Ast__exp_t exp_df_0 = v_258->hd; + _fx_LN10Ast__exp_t v_259 = a_5->u.ExpSeq.t0; + if (v_259 != 0) { + _fx_LN10Ast__exp_t v_260 = v_259->tl; + if (v_260 != 0) { + if (v_260->tl == 0) { + _fx_N10Ast__exp_t v_261 = v_260->hd; + if (FX_REC_VARIANT_TAG(v_261) == 7) { + _fx_R9Ast__id_t* f_3 = &v_261->u.ExpIdent.t0; + _fx_N10Ast__exp_t exp_df_0 = v_259->hd; if (FX_REC_VARIANT_TAG(exp_df_0) == 35) { - _fx_copy_R13Ast__deffun_t(&exp_df_0->u.DefFun->data, &v_256); - _fx_R9Ast__id_t v_261; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(f_3, &v_261, 0), _fx_catch_108); + _fx_copy_R13Ast__deffun_t(&exp_df_0->u.DefFun->data, &v_257); + _fx_R9Ast__id_t v_262; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(f_3, &v_262, 0), _fx_catch_108); bool res_31; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_261, &_fx_g18Ast__std__lambda__, &res_31, 0), + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_262, &_fx_g18Ast__std__lambda__, &res_31, 0), _fx_catch_108); bool t_9; if (res_31) { - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(f_3, &v_256.df_name, &t_9, 0), _fx_catch_108); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(f_3, &v_257.df_name, &t_9, 0), _fx_catch_108); } else { t_9 = false; } if (t_9) { - _fx_N10Ast__exp_t v_262 = 0; + _fx_N10Ast__exp_t v_263 = 0; _fx_rR13Ast__deffun_t df_0 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t res_32 = {0}; - _fx_LR9Ast__id_t v_263 = 0; - FX_CALL(_fx_M3AstFM7dup_expN10Ast__exp_t1N10Ast__exp_t(exp_df_0, &v_262, 0), _fx_catch_102); - if (FX_REC_VARIANT_TAG(v_262) == 35) { - FX_COPY_PTR(v_262->u.DefFun, &df_0); + _fx_LR9Ast__id_t v_264 = 0; + FX_CALL(_fx_M3AstFM7dup_expN10Ast__exp_t1N10Ast__exp_t(exp_df_0, &v_263, 0), _fx_catch_102); + if (FX_REC_VARIANT_TAG(v_263) == 35) { + FX_COPY_PTR(v_263->u.DefFun, &df_0); } else { - fx_exn_t v_264 = {0}; + fx_exn_t v_265 = {0}; fx_str_t slit_113 = FX_MAKE_STR("after duplication function is not a function anymore!"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_256.df_loc, &slit_113, &v_264, 0), + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_257.df_loc, &slit_113, &v_265, 0), _fx_catch_101); - FX_THROW(&v_264, false, _fx_catch_101); + FX_THROW(&v_265, false, _fx_catch_101); _fx_catch_101: ; - fx_free_exn(&v_264); + fx_free_exn(&v_265); } FX_CHECK_EXN(_fx_catch_102); FX_CALL( _fx_M13Ast_typecheckFM10reg_deffunRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t3rR13Ast__deffun_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( df_0, &env_2, sc_2, &res_32, 0), _fx_catch_102); - FX_COPY_PTR(df_0->data.df_templ_args, &v_263); - need_to_check_0 = v_263 == 0; + _fx_R13Ast__deffun_t* v_266 = &df_0->data; + FX_COPY_PTR(v_266->df_templ_args, &v_264); + need_to_check_0 = v_264 == 0; _fx_catch_102: ; - FX_FREE_LIST_SIMPLE(&v_263); + FX_FREE_LIST_SIMPLE(&v_264); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&res_32); if (df_0) { _fx_free_rR13Ast__deffun_t(&df_0); } - if (v_262) { - _fx_free_N10Ast__exp_t(&v_262); + if (v_263) { + _fx_free_N10Ast__exp_t(&v_263); } goto _fx_endmatch_25; } @@ -25049,19 +24589,19 @@ FX_EXTERN_C int _fx_endmatch_23: ; FX_CHECK_EXN(_fx_catch_108); if (res_33) { - _fx_N10Ast__exp_t v_265 = 0; - _fx_N10Ast__exp_t v_266 = 0; - _fx_N10Ast__typ_t v_267 = 0; - FX_CALL(_fx_M3AstFM7dup_expN10Ast__exp_t1N10Ast__exp_t(a_5, &v_265, 0), _fx_catch_107); + _fx_N10Ast__exp_t v_267 = 0; + _fx_N10Ast__exp_t v_268 = 0; + _fx_N10Ast__typ_t v_269 = 0; + FX_CALL(_fx_M3AstFM7dup_expN10Ast__exp_t1N10Ast__exp_t(a_5, &v_267, 0), _fx_catch_107); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - v_265, &env_2, sc_2, &v_266, 0), _fx_catch_107); - if (FX_REC_VARIANT_TAG(v_266) == 7) { - _fx_T2R9Ast__id_tT2N10Ast__typ_tR10Ast__loc_t* vcase_18 = &v_266->u.ExpIdent; + v_267, &env_2, sc_2, &v_268, 0), _fx_catch_107); + if (FX_REC_VARIANT_TAG(v_268) == 7) { + _fx_T2R9Ast__id_tT2N10Ast__typ_tR10Ast__loc_t* vcase_18 = &v_268->u.ExpIdent; _fx_R9Ast__id_t* f_4 = &vcase_18->t0; - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(vcase_18->t1.t0, &v_267, 0), _fx_catch_107); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(vcase_18->t1.t0, &v_269, 0), _fx_catch_107); bool res_34; - if (FX_REC_VARIANT_TAG(v_267) == 15) { + if (FX_REC_VARIANT_TAG(v_269) == 15) { res_34 = true; } else { @@ -25069,37 +24609,37 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_107); if (res_34) { - _fx_N14Ast__id_info_t v_268 = {0}; - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(f_4, &eloc_0, &v_268, 0), _fx_catch_106); - if (v_268.tag == 3) { - _fx_R13Ast__deffun_t v_269 = {0}; + _fx_N14Ast__id_info_t v_270 = {0}; + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(f_4, &eloc_0, &v_270, 0), _fx_catch_106); + if (v_270.tag == 3) { + _fx_R13Ast__deffun_t v_271 = {0}; _fx_LN16Ast__env_entry_t all_entries_0 = 0; - _fx_copy_R13Ast__deffun_t(&v_268.u.IdFun->data, &v_269); - _fx_R9Ast__id_t v_270; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(f_4, &v_270, 0), _fx_catch_105); + _fx_copy_R13Ast__deffun_t(&v_270.u.IdFun->data, &v_271); + _fx_R9Ast__id_t v_272; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(f_4, &v_272, 0), _fx_catch_105); FX_CALL( _fx_M13Ast_typecheckFM8find_allLN16Ast__env_entry_t2R9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t( - &v_270, &v_269.df_env, &all_entries_0, 0), _fx_catch_105); - int_ __fold_result___1 = 0; + &v_272, &v_271.df_env, &all_entries_0, 0), _fx_catch_105); + int_ possible_matches_0 = 0; _fx_LN16Ast__env_entry_t lst_7 = all_entries_0; for (; lst_7; lst_7 = lst_7->tl) { _fx_N16Ast__env_entry_t entry_0 = lst_7->hd; int_ new_matches_0; if (FX_REC_VARIANT_TAG(entry_0) == 1) { - _fx_N14Ast__id_info_t v_271 = {0}; + _fx_N14Ast__id_info_t v_273 = {0}; FX_CALL( - _fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(&entry_0->u.EnvId, &eloc_0, &v_271, 0), + _fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(&entry_0->u.EnvId, &eloc_0, &v_273, 0), _fx_catch_103); - if (v_271.tag == 3) { - _fx_R13Ast__deffun_t v_272 = {0}; - _fx_copy_R13Ast__deffun_t(&v_271.u.IdFun->data, &v_272); - if (v_272.df_templ_args != 0) { + if (v_273.tag == 3) { + _fx_R13Ast__deffun_t v_274 = {0}; + _fx_copy_R13Ast__deffun_t(&v_273.u.IdFun->data, &v_274); + if (v_274.df_templ_args != 0) { new_matches_0 = 100; } else { new_matches_0 = 1; } - _fx_free_R13Ast__deffun_t(&v_272); + _fx_free_R13Ast__deffun_t(&v_274); } else { new_matches_0 = 0; @@ -25107,25 +24647,24 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_103); _fx_catch_103: ; - _fx_free_N14Ast__id_info_t(&v_271); + _fx_free_N14Ast__id_info_t(&v_273); } else { new_matches_0 = 0; } FX_CHECK_EXN(_fx_catch_104); - __fold_result___1 = __fold_result___1 + new_matches_0; + possible_matches_0 = possible_matches_0 + new_matches_0; _fx_catch_104: ; FX_CHECK_EXN(_fx_catch_105); } - int_ possible_matches_0 = __fold_result___1; need_to_check_0 = possible_matches_0 <= 1; _fx_catch_105: ; if (all_entries_0) { _fx_free_LN16Ast__env_entry_t(&all_entries_0); } - _fx_free_R13Ast__deffun_t(&v_269); + _fx_free_R13Ast__deffun_t(&v_271); } else { need_to_check_0 = true; @@ -25133,7 +24672,7 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_106); _fx_catch_106: ; - _fx_free_N14Ast__id_info_t(&v_268); + _fx_free_N14Ast__id_info_t(&v_270); goto _fx_endmatch_24; } } @@ -25143,14 +24682,14 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_107); _fx_catch_107: ; - if (v_267) { - _fx_free_N10Ast__typ_t(&v_267); + if (v_269) { + _fx_free_N10Ast__typ_t(&v_269); } - if (v_266) { - _fx_free_N10Ast__exp_t(&v_266); + if (v_268) { + _fx_free_N10Ast__exp_t(&v_268); } - if (v_265) { - _fx_free_N10Ast__exp_t(&v_265); + if (v_267) { + _fx_free_N10Ast__exp_t(&v_267); } goto _fx_endmatch_25; } @@ -25161,8 +24700,8 @@ FX_EXTERN_C int if (need_to_check_0) { FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - a_5, &env_2, sc_2, &v_257, 0), _fx_catch_108); - _fx_make_T2N10Ast__exp_tB(v_257, true, &t_8); + a_5, &env_2, sc_2, &v_258, 0), _fx_catch_108); + _fx_make_T2N10Ast__exp_tB(v_258, true, &t_8); } else { _fx_make_T2N10Ast__exp_tB(a_5, false, &t_8); @@ -25172,68 +24711,68 @@ FX_EXTERN_C int FX_LIST_APPEND(new_args_0, lstend_5, node_5); _fx_catch_108: ; - if (v_257) { - _fx_free_N10Ast__exp_t(&v_257); + if (v_258) { + _fx_free_N10Ast__exp_t(&v_258); } _fx_free_T2N10Ast__exp_tB(&t_8); - _fx_free_R13Ast__deffun_t(&v_256); + _fx_free_R13Ast__deffun_t(&v_257); FX_CHECK_EXN(_fx_catch_117); } _fx_N10Ast__exp_t new_f_0 = 0; - _fx_N10Ast__typ_t v_273 = 0; - _fx_N10Ast__typ_t v_274 = 0; + _fx_N10Ast__typ_t v_275 = 0; + _fx_N10Ast__typ_t v_276 = 0; _fx_LT2N10Ast__exp_tB new_args_1 = 0; _fx_LN10Ast__exp_t new_args_2 = 0; FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( f_2, &env_2, sc_2, &new_f_0, 0), _fx_catch_112); - FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(new_f_0, &v_273, 0), _fx_catch_112); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_273, &v_274, 0), _fx_catch_112); - if (FX_REC_VARIANT_TAG(v_274) == 15) { + FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(new_f_0, &v_275, 0), _fx_catch_112); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_275, &v_276, 0), _fx_catch_112); + if (FX_REC_VARIANT_TAG(v_276) == 15) { _fx_N10Ast__typ_t last_typ_0 = 0; - _fx_N10Ast__exp_t v_275 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_276 = {0}; + _fx_N10Ast__exp_t v_277 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_278 = {0}; _fx_N10Ast__exp_t mkrec_0 = 0; - _fx_T2N10Ast__exp_tB v_277 = {0}; - _fx_LT2N10Ast__exp_tB v_278 = 0; - _fx_LN10Ast__typ_t argtyps_1 = v_274->u.TypFun.t0; - int_ v_279; - FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LN10Ast__typ_t(argtyps_1, &v_279, 0), _fx_catch_109); - int_ v_280; - FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LT2N10Ast__exp_tB(new_args_0, &v_280, 0), _fx_catch_109); - if (v_279 == v_280) { + _fx_T2N10Ast__exp_tB v_279 = {0}; + _fx_LT2N10Ast__exp_tB v_280 = 0; + _fx_LN10Ast__typ_t argtyps_1 = v_276->u.TypFun.t0; + int_ v_281; + FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LN10Ast__typ_t(argtyps_1, &v_281, 0), _fx_catch_109); + int_ v_282; + FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LT2N10Ast__exp_tB(new_args_0, &v_282, 0), _fx_catch_109); + if (v_281 == v_282) { FX_COPY_PTR(new_args_0, &new_args_1); } else { - int_ v_281; - FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LN10Ast__typ_t(argtyps_1, &v_281, 0), _fx_catch_109); - int_ v_282; - FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LT2N10Ast__exp_tB(new_args_0, &v_282, 0), _fx_catch_109); - FX_CALL(_fx_F6assertv1B(v_281 == v_282 + 1, 0), _fx_catch_109); + int_ v_283; + FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LN10Ast__typ_t(argtyps_1, &v_283, 0), _fx_catch_109); + int_ v_284; + FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LT2N10Ast__exp_tB(new_args_0, &v_284, 0), _fx_catch_109); + FX_CALL(_fx_F6assertv1B(v_283 == v_284 + 1, 0), _fx_catch_109); FX_CALL(_fx_M13Ast_typecheckFM4lastN10Ast__typ_t1LN10Ast__typ_t(argtyps_1, &last_typ_0, 0), _fx_catch_109); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&eloc_0, &v_275), _fx_catch_109); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(last_typ_0, &eloc_0, &v_276); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&eloc_0, &v_277), _fx_catch_109); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(last_typ_0, &eloc_0, &v_278); FX_CALL( - _fx_M3AstFM11ExpMkRecordN10Ast__exp_t3N10Ast__exp_tLT2RM4id_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_275, 0, - &v_276, &mkrec_0), _fx_catch_109); - _fx_make_T2N10Ast__exp_tB(mkrec_0, true, &v_277); - FX_CALL(_fx_cons_LT2N10Ast__exp_tB(&v_277, 0, true, &v_278), _fx_catch_109); + _fx_M3AstFM11ExpMkRecordN10Ast__exp_t3N10Ast__exp_tLT2RM4id_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_277, 0, + &v_278, &mkrec_0), _fx_catch_109); + _fx_make_T2N10Ast__exp_tB(mkrec_0, true, &v_279); + FX_CALL(_fx_cons_LT2N10Ast__exp_tB(&v_279, 0, true, &v_280), _fx_catch_109); FX_CALL( - _fx_M13Ast_typecheckFM7__add__LT2N10Ast__exp_tB2LT2N10Ast__exp_tBLT2N10Ast__exp_tB(new_args_0, v_278, + _fx_M13Ast_typecheckFM7__add__LT2N10Ast__exp_tB2LT2N10Ast__exp_tBLT2N10Ast__exp_tB(new_args_0, v_280, &new_args_1, 0), _fx_catch_109); } _fx_catch_109: ; - if (v_278) { - _fx_free_LT2N10Ast__exp_tB(&v_278); + if (v_280) { + _fx_free_LT2N10Ast__exp_tB(&v_280); } - _fx_free_T2N10Ast__exp_tB(&v_277); + _fx_free_T2N10Ast__exp_tB(&v_279); if (mkrec_0) { _fx_free_N10Ast__exp_t(&mkrec_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_276); - if (v_275) { - _fx_free_N10Ast__exp_t(&v_275); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_278); + if (v_277) { + _fx_free_N10Ast__exp_t(&v_277); } if (last_typ_0) { _fx_free_N10Ast__typ_t(&last_typ_0); @@ -25282,11 +24821,11 @@ FX_EXTERN_C int if (new_f_0) { _fx_free_N10Ast__exp_t(&new_f_0); } - if (v_273) { - _fx_free_N10Ast__typ_t(&v_273); + if (v_275) { + _fx_free_N10Ast__typ_t(&v_275); } - if (v_274) { - _fx_free_N10Ast__typ_t(&v_274); + if (v_276) { + _fx_free_N10Ast__typ_t(&v_276); } if (new_args_1) { _fx_free_LT2N10Ast__exp_tB(&new_args_1); @@ -25306,25 +24845,25 @@ FX_EXTERN_C int _fx_T2N10Ast__typ_tR10Ast__loc_t* mem_ctx_0 = &vcase_19->t2; _fx_N10Ast__exp_t mem_f_exp_0 = vcase_19->t1; if (FX_REC_VARIANT_TAG(mem_f_exp_0) == 7) { - _fx_N10Ast__exp_t v_283 = 0; + _fx_N10Ast__exp_t v_285 = 0; _fx_N10Ast__exp_t r_0 = 0; _fx_N10Ast__typ_t r_t_0 = 0; - _fx_N10Ast__typ_t v_284 = 0; + _fx_N10Ast__typ_t v_286 = 0; fx_str_t mstr_0 = {0}; _fx_N10Ast__exp_t new_f_1 = 0; - _fx_N10Ast__typ_t v_285 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_286 = {0}; - _fx_N10Ast__exp_t v_287 = 0; - _fx_LN10Ast__exp_t v_288 = 0; + _fx_N10Ast__typ_t v_287 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_288 = {0}; + _fx_N10Ast__exp_t v_289 = 0; + _fx_LN10Ast__exp_t v_290 = 0; _fx_N10Ast__exp_t new_exp_0 = 0; _fx_N10Ast__exp_t r0_0 = vcase_19->t0; - FX_CALL(_fx_M3AstFM7dup_expN10Ast__exp_t1N10Ast__exp_t(r0_0, &v_283, 0), _fx_catch_115); + FX_CALL(_fx_M3AstFM7dup_expN10Ast__exp_t1N10Ast__exp_t(r0_0, &v_285, 0), _fx_catch_115); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - v_283, &env_2, sc_2, &r_0, 0), _fx_catch_115); + v_285, &env_2, sc_2, &r_0, 0), _fx_catch_115); FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(r_0, &r_t_0, 0), _fx_catch_115); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(r_t_0, &v_284, 0), _fx_catch_115); - int tag_10 = FX_REC_VARIANT_TAG(v_284); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(r_t_0, &v_286, 0), _fx_catch_115); + int tag_10 = FX_REC_VARIANT_TAG(v_286); if (tag_10 == 16) { fx_str_t slit_114 = FX_MAKE_STR("List"); fx_copy_str(&slit_114, &mstr_0); } @@ -25341,17 +24880,17 @@ FX_EXTERN_C int fx_str_t slit_118 = FX_MAKE_STR("Array"); fx_copy_str(&slit_118, &mstr_0); } else if (tag_10 == 25) { - _fx_N14Ast__id_info_t v_289 = {0}; - _fx_R17Ast__defvariant_t v_290 = {0}; - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(&v_284->u.TypApp.t1, &eloc_0, &v_289, 0), + _fx_N14Ast__id_info_t v_291 = {0}; + _fx_R17Ast__defvariant_t v_292 = {0}; + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(&v_286->u.TypApp.t1, &eloc_0, &v_291, 0), _fx_catch_114); - if (v_289.tag == 6) { - _fx_copy_R17Ast__defvariant_t(&v_289.u.IdVariant->data, &v_290); - int_ m_0 = v_290.dvar_flags.var_flag_class_from; + if (v_291.tag == 6) { + _fx_copy_R17Ast__defvariant_t(&v_291.u.IdVariant->data, &v_292); + int_ m_0 = v_292.dvar_flags.var_flag_class_from; if (m_0 > 0) { - _fx_R9Ast__id_t v_291; - FX_CALL(_fx_M3AstFM15get_module_nameRM4id_t1i(m_0, &v_291, 0), _fx_catch_113); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_291, &mstr_0, 0), _fx_catch_113); + _fx_R9Ast__id_t v_293; + FX_CALL(_fx_M3AstFM15get_module_nameRM4id_t1i(m_0, &v_293, 0), _fx_catch_113); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_293, &mstr_0, 0), _fx_catch_113); _fx_catch_113: ; goto _fx_endmatch_26; @@ -25364,17 +24903,17 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_114); _fx_catch_114: ; - _fx_free_R17Ast__defvariant_t(&v_290); - _fx_free_N14Ast__id_info_t(&v_289); + _fx_free_R17Ast__defvariant_t(&v_292); + _fx_free_N14Ast__id_info_t(&v_291); } else { fx_str_t slit_120 = FX_MAKE_STR(""); fx_copy_str(&slit_120, &mstr_0); } FX_CHECK_EXN(_fx_catch_115); - bool v_292; + bool v_294; fx_str_t slit_121 = FX_MAKE_STR("Builtins"); - v_292 = _fx_F6__eq__B2SS(&mstr_0, &slit_121, 0); - if (v_292) { + v_294 = _fx_F6__eq__B2SS(&mstr_0, &slit_121, 0); + if (v_294) { FX_COPY_PTR(mem_f_exp_0, &new_f_1); } else { @@ -25386,17 +24925,17 @@ FX_EXTERN_C int FX_THROW(&exn_2, false, _fx_catch_115); } _fx_R10Ast__loc_t floc_1 = mem_ctx_0->t1; - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_285, 0), _fx_catch_115); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_285, &floc_1, &v_286); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&m_id_0, &v_286, &v_287), + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_287, 0), _fx_catch_115); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_287, &floc_1, &v_288); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&m_id_0, &v_288, &v_289), _fx_catch_115); FX_CALL( - _fx_M3AstFM6ExpMemN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_287, mem_f_exp_0, + _fx_M3AstFM6ExpMemN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_289, mem_f_exp_0, mem_ctx_0, &new_f_1), _fx_catch_115); } - FX_CALL(_fx_cons_LN10Ast__exp_t(r0_0, args0_0, true, &v_288), _fx_catch_115); + FX_CALL(_fx_cons_LN10Ast__exp_t(r0_0, args0_0, true, &v_290), _fx_catch_115); FX_CALL( - _fx_M3AstFM7ExpCallN10Ast__exp_t3N10Ast__exp_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(new_f_1, v_288, + _fx_M3AstFM7ExpCallN10Ast__exp_t3N10Ast__exp_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(new_f_1, v_290, &ctx_0, &new_exp_0), _fx_catch_115); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( @@ -25406,22 +24945,22 @@ FX_EXTERN_C int if (new_exp_0) { _fx_free_N10Ast__exp_t(&new_exp_0); } - if (v_288) { - _fx_free_LN10Ast__exp_t(&v_288); + if (v_290) { + _fx_free_LN10Ast__exp_t(&v_290); } - if (v_287) { - _fx_free_N10Ast__exp_t(&v_287); + if (v_289) { + _fx_free_N10Ast__exp_t(&v_289); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_286); - if (v_285) { - _fx_free_N10Ast__typ_t(&v_285); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_288); + if (v_287) { + _fx_free_N10Ast__typ_t(&v_287); } if (new_f_1) { _fx_free_N10Ast__exp_t(&new_f_1); } FX_FREE_STR(&mstr_0); - if (v_284) { - _fx_free_N10Ast__typ_t(&v_284); + if (v_286) { + _fx_free_N10Ast__typ_t(&v_286); } if (r_t_0) { _fx_free_N10Ast__typ_t(&r_t_0); @@ -25429,8 +24968,8 @@ FX_EXTERN_C int if (r_0) { _fx_free_N10Ast__exp_t(&r_0); } - if (v_283) { - _fx_free_N10Ast__exp_t(&v_283); + if (v_285) { + _fx_free_N10Ast__exp_t(&v_285); } goto _fx_endmatch_27; } @@ -25459,15 +24998,15 @@ FX_EXTERN_C int if (new_args_0) { _fx_free_LT2N10Ast__exp_tB(&new_args_0); } + FX_FREE_STR(&v_256); FX_FREE_STR(&v_255); FX_FREE_STR(&v_254); FX_FREE_STR(&v_253); FX_FREE_STR(&v_252); - FX_FREE_STR(&v_251); if (f_real_typ_0) { _fx_free_N10Ast__typ_t(&f_real_typ_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_250); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_251); if (f_expected_typ_0) { _fx_free_N10Ast__typ_t(&f_expected_typ_0); } @@ -25484,66 +25023,66 @@ FX_EXTERN_C int goto _fx_endmatch_41; } if (tag_0 == 19) { - _fx_T3N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_t v_293 = {0}; + _fx_T3N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_t v_295 = {0}; _fx_N10Ast__exp_t arr_0 = 0; _fx_N10Ast__exp_t new_arr_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_294 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_296 = {0}; _fx_N10Ast__typ_t new_atyp_0 = 0; - fx_exn_t v_295 = {0}; + fx_exn_t v_297 = {0}; _fx_T5N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_20 = &e_2->u.ExpAt; _fx_LN10Ast__exp_t idxs_0 = vcase_20->t3; FX_CALL( _fx_M13Ast_typecheckFM10check_attrT3N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_t4N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_tR10Ast__loc_t( - vcase_20->t0, &vcase_20->t1, &vcase_20->t2, &eloc_0, &v_293, 0), _fx_catch_134); - FX_COPY_PTR(v_293.t0, &arr_0); - _fx_N13Ast__border_t border_0 = v_293.t1; - _fx_N18Ast__interpolate_t interp_0 = v_293.t2; + vcase_20->t0, &vcase_20->t1, &vcase_20->t2, &eloc_0, &v_295, 0), _fx_catch_134); + FX_COPY_PTR(v_295.t0, &arr_0); + _fx_N13Ast__border_t border_0 = v_295.t1; + _fx_N18Ast__interpolate_t interp_0 = v_295.t2; FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( arr_0, &env_2, sc_2, &new_arr_0, 0), _fx_catch_134); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_arr_0, &v_294, 0), _fx_catch_134); - FX_COPY_PTR(v_294.t0, &new_atyp_0); - _fx_R10Ast__loc_t new_aloc_0 = v_294.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(new_arr_0, &v_296, 0), _fx_catch_134); + FX_COPY_PTR(v_296.t0, &new_atyp_0); + _fx_R10Ast__loc_t new_aloc_0 = v_296.t1; if (interp_0.tag != 1) { fx_str_t slit_122 = FX_MAKE_STR("inter-element interpolation is not supported yet"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_122, &v_295, 0), _fx_catch_134); - FX_THROW(&v_295, false, _fx_catch_134); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_122, &v_297, 0), _fx_catch_134); + FX_THROW(&v_297, false, _fx_catch_134); } if (idxs_0 != 0) { if (idxs_0->tl == 0) { - _fx_N10Ast__exp_t v_296 = idxs_0->hd; - if (FX_REC_VARIANT_TAG(v_296) == 5) { + _fx_N10Ast__exp_t v_298 = idxs_0->hd; + if (FX_REC_VARIANT_TAG(v_298) == 5) { _fx_T4Nt6option1N10Ast__exp_tNt6option1N10Ast__exp_tNt6option1N10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* - vcase_21 = &v_296->u.ExpRange; + vcase_21 = &v_298->u.ExpRange; if ((vcase_21->t0 != 0) + 1 == 1) { if ((vcase_21->t1 != 0) + 1 == 1) { if ((vcase_21->t2 != 0) + 1 == 1) { - _fx_N10Ast__exp_t v_297 = 0; + _fx_N10Ast__exp_t v_299 = 0; _fx_N10Ast__exp_t new_idx_0 = 0; - _fx_N10Ast__typ_t v_298 = 0; - FX_CALL(_fx_M13Ast_typecheckFM2hdN10Ast__exp_t1LN10Ast__exp_t(idxs_0, &v_297, 0), _fx_catch_122); + _fx_N10Ast__typ_t v_300 = 0; + FX_CALL(_fx_M13Ast_typecheckFM2hdN10Ast__exp_t1LN10Ast__exp_t(idxs_0, &v_299, 0), _fx_catch_122); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - v_297, &env_2, sc_2, &new_idx_0, 0), _fx_catch_122); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(new_atyp_0, &v_298, 0), _fx_catch_122); - int tag_11 = FX_REC_VARIANT_TAG(v_298); + v_299, &env_2, sc_2, &new_idx_0, 0), _fx_catch_122); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(new_atyp_0, &v_300, 0), _fx_catch_122); + int tag_11 = FX_REC_VARIANT_TAG(v_300); if (tag_11 == 20) { - _fx_N10Ast__typ_t v_299 = 0; - _fx_LN10Ast__exp_t v_300 = 0; + _fx_N10Ast__typ_t v_301 = 0; + _fx_LN10Ast__exp_t v_302 = 0; _fx_N10Ast__exp_t result_35 = 0; - FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(1, v_298->u.TypArray.t1, &v_299), + FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(1, v_300->u.TypArray.t1, &v_301), _fx_catch_118); fx_str_t slit_123 = FX_MAKE_STR( "the result of flatten operation ([:]) applied to N-D array must be 1D array with elements of the same type as input array"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_299, &eloc_0, + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_301, &eloc_0, &slit_123, 0), _fx_catch_118); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_idx_0, 0, true, &v_300), _fx_catch_118); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_idx_0, 0, true, &v_302), _fx_catch_118); FX_CALL( _fx_M3AstFM5ExpAtN10Ast__exp_t5N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - new_arr_0, &_fx_g25Ast_typecheck__BorderNone, &_fx_g25Ast_typecheck__InterpNone, v_300, + new_arr_0, &_fx_g25Ast_typecheck__BorderNone, &_fx_g25Ast_typecheck__InterpNone, v_302, &ctx_0, &result_35), _fx_catch_118); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_35, &result_0); @@ -25553,29 +25092,29 @@ FX_EXTERN_C int if (result_35) { _fx_free_N10Ast__exp_t(&result_35); } - if (v_300) { - _fx_free_LN10Ast__exp_t(&v_300); + if (v_302) { + _fx_free_LN10Ast__exp_t(&v_302); } - if (v_299) { - _fx_free_N10Ast__typ_t(&v_299); + if (v_301) { + _fx_free_N10Ast__typ_t(&v_301); } } else if (tag_11 == 17) { - _fx_N10Ast__typ_t v_301 = 0; - _fx_LN10Ast__exp_t v_302 = 0; + _fx_N10Ast__typ_t v_303 = 0; + _fx_LN10Ast__exp_t v_304 = 0; _fx_N10Ast__exp_t result_36 = 0; - FX_CALL(_fx_M3AstFM9TypVectorN10Ast__typ_t1N10Ast__typ_t(v_298->u.TypVector, &v_301), + FX_CALL(_fx_M3AstFM9TypVectorN10Ast__typ_t1N10Ast__typ_t(v_300->u.TypVector, &v_303), _fx_catch_119); fx_str_t slit_124 = FX_MAKE_STR( "the result of flatten operation ([:]) applied to vector must be a vector of the same type"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_301, &eloc_0, + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_303, &eloc_0, &slit_124, 0), _fx_catch_119); - FX_CALL(_fx_cons_LN10Ast__exp_t(new_idx_0, 0, true, &v_302), _fx_catch_119); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_idx_0, 0, true, &v_304), _fx_catch_119); FX_CALL( _fx_M3AstFM5ExpAtN10Ast__exp_t5N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - new_arr_0, &_fx_g25Ast_typecheck__BorderNone, &_fx_g25Ast_typecheck__InterpNone, v_302, + new_arr_0, &_fx_g25Ast_typecheck__BorderNone, &_fx_g25Ast_typecheck__InterpNone, v_304, &ctx_0, &result_36), _fx_catch_119); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_36, &result_0); @@ -25585,11 +25124,11 @@ FX_EXTERN_C int if (result_36) { _fx_free_N10Ast__exp_t(&result_36); } - if (v_302) { - _fx_free_LN10Ast__exp_t(&v_302); + if (v_304) { + _fx_free_LN10Ast__exp_t(&v_304); } - if (v_301) { - _fx_free_N10Ast__typ_t(&v_301); + if (v_303) { + _fx_free_N10Ast__typ_t(&v_303); } } else if (tag_11 == 11) { @@ -25605,25 +25144,25 @@ FX_EXTERN_C int _fx_catch_120: ; } else { - fx_exn_t v_303 = {0}; + fx_exn_t v_305 = {0}; fx_str_t slit_126 = FX_MAKE_STR("the argument of the flatten operation must be an array"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_126, &v_303, 0), _fx_catch_121); - FX_THROW(&v_303, false, _fx_catch_121); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_126, &v_305, 0), _fx_catch_121); + FX_THROW(&v_305, false, _fx_catch_121); _fx_catch_121: ; - fx_free_exn(&v_303); + fx_free_exn(&v_305); } FX_CHECK_EXN(_fx_catch_122); _fx_catch_122: ; - if (v_298) { - _fx_free_N10Ast__typ_t(&v_298); + if (v_300) { + _fx_free_N10Ast__typ_t(&v_300); } if (new_idx_0) { _fx_free_N10Ast__exp_t(&new_idx_0); } - if (v_297) { - _fx_free_N10Ast__exp_t(&v_297); + if (v_299) { + _fx_free_N10Ast__exp_t(&v_299); } goto _fx_endmatch_29; } @@ -25632,34 +25171,30 @@ FX_EXTERN_C int } } } - _fx_T4LN10Ast__exp_tiii __fold_result___2 = {0}; - _fx_LN10Ast__exp_t idxs_1 = 0; - _fx_T4LN10Ast__exp_tiii v_304 = {0}; _fx_LN10Ast__exp_t new_idxs_0 = 0; - _fx_N10Ast__typ_t v_305 = 0; - _fx_LN10Ast__exp_t v_306 = 0; + _fx_LN10Ast__exp_t idxs_1 = 0; + _fx_N10Ast__typ_t v_306 = 0; + _fx_T3iiN10Ast__typ_t v_307 = {0}; + _fx_LN10Ast__exp_t v_308 = 0; _fx_N10Ast__exp_t result_37 = 0; - _fx_make_T4LN10Ast__exp_tiii(0, 0, 0, 0, &__fold_result___2); + int_ ndims_0 = 0; + int_ nfirst_scalars_acc_0 = 0; + int_ nranges_0 = 0; FX_COPY_PTR(idxs_0, &idxs_1); _fx_LN10Ast__exp_t lst_9 = idxs_1; for (; lst_9; lst_9 = lst_9->tl) { - _fx_T4LN10Ast__exp_tiii v_307 = {0}; - _fx_LN10Ast__exp_t new_idxs_1 = 0; _fx_N10Ast__exp_t new_idx_1 = 0; - _fx_T4LN10Ast__exp_tiii v_308 = {0}; _fx_N10Ast__exp_t idx_1 = lst_9->hd; - _fx_copy_T4LN10Ast__exp_tiii(&__fold_result___2, &v_307); - FX_COPY_PTR(v_307.t0, &new_idxs_1); - int_ ndims_0 = v_307.t1; - int_ nfirst_scalars_0 = v_307.t2; - int_ nranges_0 = v_307.t3; FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( idx_1, &env_2, sc_2, &new_idx_1, 0), _fx_catch_125); if (FX_REC_VARIANT_TAG(new_idx_1) == 5) { _fx_LN10Ast__exp_t v_309 = 0; - FX_CALL(_fx_cons_LN10Ast__exp_t(new_idx_1, new_idxs_1, true, &v_309), _fx_catch_123); - _fx_make_T4LN10Ast__exp_tiii(v_309, ndims_0 + 1, nfirst_scalars_0, nranges_0 + 1, &v_308); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_idx_1, new_idxs_0, true, &v_309), _fx_catch_123); + _fx_free_LN10Ast__exp_t(&new_idxs_0); + FX_COPY_PTR(v_309, &new_idxs_0); + ndims_0 = ndims_0 + 1; + nranges_0 = nranges_0 + 1; _fx_catch_123: ; if (v_309) { @@ -25728,15 +25263,18 @@ FX_EXTERN_C int FX_THROW(&v_320, false, _fx_catch_124); } } - int_ nfirst_scalars_1; + int_ nfirst_scalars_0; if (nranges_0 == 0) { - nfirst_scalars_1 = nfirst_scalars_0 + dim_inc_0; + nfirst_scalars_0 = nfirst_scalars_acc_0 + dim_inc_0; } else { - nfirst_scalars_1 = nfirst_scalars_0; + nfirst_scalars_0 = nfirst_scalars_acc_0; } - FX_CALL(_fx_cons_LN10Ast__exp_t(new_idx_1, new_idxs_1, true, &v_321), _fx_catch_124); - _fx_make_T4LN10Ast__exp_tiii(v_321, ndims_0 + dim_inc_0, nfirst_scalars_1, nranges_0, &v_308); + FX_CALL(_fx_cons_LN10Ast__exp_t(new_idx_1, new_idxs_0, true, &v_321), _fx_catch_124); + _fx_free_LN10Ast__exp_t(&new_idxs_0); + FX_COPY_PTR(v_321, &new_idxs_0); + ndims_0 = ndims_0 + dim_inc_0; + nfirst_scalars_acc_0 = nfirst_scalars_0; _fx_catch_124: ; if (v_321) { @@ -25779,29 +25317,19 @@ FX_EXTERN_C int } } FX_CHECK_EXN(_fx_catch_125); - _fx_free_T4LN10Ast__exp_tiii(&__fold_result___2); - _fx_copy_T4LN10Ast__exp_tiii(&v_308, &__fold_result___2); _fx_catch_125: ; - _fx_free_T4LN10Ast__exp_tiii(&v_308); if (new_idx_1) { _fx_free_N10Ast__exp_t(&new_idx_1); } - if (new_idxs_1) { - _fx_free_LN10Ast__exp_t(&new_idxs_1); - } - _fx_free_T4LN10Ast__exp_tiii(&v_307); FX_CHECK_EXN(_fx_catch_133); } - _fx_copy_T4LN10Ast__exp_tiii(&__fold_result___2, &v_304); - FX_COPY_PTR(v_304.t0, &new_idxs_0); - int_ ndims_1 = v_304.t1; - int_ nfirst_scalars_2 = v_304.t2; - int_ nranges_1 = v_304.t3; - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(new_atyp_0, &v_305, 0), _fx_catch_133); - if (nranges_1 == 0) { - if (ndims_1 == 1) { - if (FX_REC_VARIANT_TAG(v_305) == 11) { + int_ nfirst_scalars_1 = nfirst_scalars_acc_0; + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(new_atyp_0, &v_306, 0), _fx_catch_133); + _fx_make_T3iiN10Ast__typ_t(ndims_0, nranges_0, v_306, &v_307); + if (v_307.t1 == 0) { + if (v_307.t0 == 1) { + if (FX_REC_VARIANT_TAG(v_307.t2) == 11) { fx_str_t slit_128 = FX_MAKE_STR("indexing string should give a char"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, @@ -25812,9 +25340,9 @@ FX_EXTERN_C int } } } - if (nranges_1 == 1) { - if (ndims_1 == 1) { - if (FX_REC_VARIANT_TAG(v_305) == 11) { + if (v_307.t1 == 1) { + if (v_307.t0 == 1) { + if (FX_REC_VARIANT_TAG(v_307.t2) == 11) { fx_str_t slit_129 = FX_MAKE_STR("indexing string with a range should give a string"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, @@ -25825,14 +25353,15 @@ FX_EXTERN_C int } } } - if (nranges_1 == 0) { - if (ndims_1 == 1) { - if (FX_REC_VARIANT_TAG(v_305) == 17) { + if (v_307.t1 == 0) { + if (v_307.t0 == 1) { + _fx_N10Ast__typ_t v_324 = v_307.t2; + if (FX_REC_VARIANT_TAG(v_324) == 17) { fx_str_t slit_130 = FX_MAKE_STR( "incorrect type of the vector element access operation; it gives \'{typ2str(et)}\', but \'{typ2str(etyp)}\' is expected"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_305->u.TypVector, + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_324->u.TypVector, &new_aloc_0, &slit_130, 0), _fx_catch_128); _fx_catch_128: ; @@ -25840,97 +25369,98 @@ FX_EXTERN_C int } } } - if (nranges_1 == 1) { - if (ndims_1 == 1) { - if (FX_REC_VARIANT_TAG(v_305) == 17) { - _fx_N10Ast__typ_t v_324 = 0; - FX_CALL(_fx_M3AstFM9TypVectorN10Ast__typ_t1N10Ast__typ_t(v_305->u.TypVector, &v_324), _fx_catch_129); + if (v_307.t1 == 1) { + if (v_307.t0 == 1) { + _fx_N10Ast__typ_t v_325 = v_307.t2; + if (FX_REC_VARIANT_TAG(v_325) == 17) { + _fx_N10Ast__typ_t v_326 = 0; + FX_CALL(_fx_M3AstFM9TypVectorN10Ast__typ_t1N10Ast__typ_t(v_325->u.TypVector, &v_326), _fx_catch_129); fx_str_t slit_131 = FX_MAKE_STR( "incorrect type of the vector range access operation; it gives \'{typ2str(TypVector(et))}\', but \'{typ2str(etyp)}\' is expected"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_324, &new_aloc_0, + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_326, &new_aloc_0, &slit_131, 0), _fx_catch_129); _fx_catch_129: ; - if (v_324) { - _fx_free_N10Ast__typ_t(&v_324); + if (v_326) { + _fx_free_N10Ast__typ_t(&v_326); } goto _fx_endmatch_28; } } } _fx_N10Ast__typ_t et_1 = 0; - _fx_N10Ast__typ_t v_325 = 0; - fx_str_t v_326 = {0}; - fx_str_t v_327 = {0}; - _fx_N10Ast__typ_t v_328 = 0; + _fx_N10Ast__typ_t v_327 = 0; + fx_str_t v_328 = {0}; fx_str_t v_329 = {0}; - fx_str_t v_330 = {0}; + _fx_N10Ast__typ_t v_330 = 0; fx_str_t v_331 = {0}; - _fx_N10Ast__typ_t v_332 = 0; + fx_str_t v_332 = {0}; + fx_str_t v_333 = {0}; + _fx_N10Ast__typ_t v_334 = 0; FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&et_1, 0), _fx_catch_131); - FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(ndims_1, et_1, &v_325), _fx_catch_131); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(new_atyp_0, &v_326, 0), _fx_catch_131); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_326, &v_327, 0), _fx_catch_131); - FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(ndims_1, et_1, &v_328), _fx_catch_131); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(v_328, &v_329, 0), _fx_catch_131); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_329, &v_330, 0), _fx_catch_131); + FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(ndims_0, et_1, &v_327), _fx_catch_131); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(new_atyp_0, &v_328, 0), _fx_catch_131); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_328, &v_329, 0), _fx_catch_131); + FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(ndims_0, et_1, &v_330), _fx_catch_131); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(v_330, &v_331, 0), _fx_catch_131); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_331, &v_332, 0), _fx_catch_131); fx_str_t slit_132 = FX_MAKE_STR("the array type/dimensionality \'"); fx_str_t slit_133 = FX_MAKE_STR("\' does not match the expected type/dimensionality \'"); fx_str_t slit_134 = FX_MAKE_STR("\'"); { - const fx_str_t strs_15[] = { slit_132, v_327, slit_133, v_330, slit_134 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_15, 5, &v_331), _fx_catch_131); + const fx_str_t strs_15[] = { slit_132, v_329, slit_133, v_332, slit_134 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_15, 5, &v_333), _fx_catch_131); } FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(new_atyp_0, v_325, &new_aloc_0, &v_331, 0), + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(new_atyp_0, v_327, &new_aloc_0, &v_333, 0), _fx_catch_131); if (border_0.tag != 1) { - fx_exn_t v_333 = {0}; + fx_exn_t v_335 = {0}; int_ elem_sz_0; FX_CALL(_fx_M3AstFM20get_numeric_typ_sizei2N10Ast__typ_tB(et_1, true, &elem_sz_0, 0), _fx_catch_130); if (!(bool)((0 < elem_sz_0) & (elem_sz_0 <= 256))) { fx_str_t slit_135 = FX_MAKE_STR( "border extrapolation is used with an array, which elements are too large ({elem_sz} bytes) or have unsupported type \'{typ2str(et)\'"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_135, &v_333, 0), _fx_catch_130); - FX_THROW(&v_333, false, _fx_catch_130); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_135, &v_335, 0), _fx_catch_130); + FX_THROW(&v_335, false, _fx_catch_130); } _fx_catch_130: ; - fx_free_exn(&v_333); + fx_free_exn(&v_335); } FX_CHECK_EXN(_fx_catch_131); - if (nranges_1 == 0) { + if (nranges_0 == 0) { fx_str_t slit_136 = FX_MAKE_STR("the type of array access expression does not match the array element type"); FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, et_1, &eloc_0, &slit_136, 0), _fx_catch_131); } else { - FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(ndims_1 - nfirst_scalars_2, et_1, &v_332), _fx_catch_131); + FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(ndims_0 - nfirst_scalars_1, et_1, &v_334), _fx_catch_131); fx_str_t slit_137 = FX_MAKE_STR( "the number of ranges does not match dimensionality of the result, or the element type is incorrect"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_332, &eloc_0, &slit_137, 0), + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, v_334, &eloc_0, &slit_137, 0), _fx_catch_131); } _fx_catch_131: ; - if (v_332) { - _fx_free_N10Ast__typ_t(&v_332); + if (v_334) { + _fx_free_N10Ast__typ_t(&v_334); } + FX_FREE_STR(&v_333); + FX_FREE_STR(&v_332); FX_FREE_STR(&v_331); - FX_FREE_STR(&v_330); - FX_FREE_STR(&v_329); - if (v_328) { - _fx_free_N10Ast__typ_t(&v_328); + if (v_330) { + _fx_free_N10Ast__typ_t(&v_330); } - FX_FREE_STR(&v_327); - FX_FREE_STR(&v_326); - if (v_325) { - _fx_free_N10Ast__typ_t(&v_325); + FX_FREE_STR(&v_329); + FX_FREE_STR(&v_328); + if (v_327) { + _fx_free_N10Ast__typ_t(&v_327); } if (et_1) { _fx_free_N10Ast__typ_t(&et_1); @@ -25939,19 +25469,19 @@ FX_EXTERN_C int _fx_endmatch_28: ; FX_CHECK_EXN(_fx_catch_133); if (interp_0.tag != 1) { - fx_exn_t v_334 = {0}; + fx_exn_t v_336 = {0}; fx_str_t slit_138 = FX_MAKE_STR("element interpolation is not supported yet"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_138, &v_334, 0), _fx_catch_132); - FX_THROW(&v_334, false, _fx_catch_132); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_138, &v_336, 0), _fx_catch_132); + FX_THROW(&v_336, false, _fx_catch_132); _fx_catch_132: ; - fx_free_exn(&v_334); + fx_free_exn(&v_336); } FX_CHECK_EXN(_fx_catch_133); - FX_CALL(_fx_M13Ast_typecheckFM3revLN10Ast__exp_t1LN10Ast__exp_t(new_idxs_0, &v_306, 0), _fx_catch_133); + FX_CALL(_fx_M13Ast_typecheckFM3revLN10Ast__exp_t1LN10Ast__exp_t(new_idxs_0, &v_308, 0), _fx_catch_133); FX_CALL( _fx_M3AstFM5ExpAtN10Ast__exp_t5N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - new_arr_0, &border_0, &interp_0, v_306, &ctx_0, &result_37), _fx_catch_133); + new_arr_0, &border_0, &interp_0, v_308, &ctx_0, &result_37), _fx_catch_133); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_37, &result_0); FX_BREAK(_fx_catch_133); @@ -25960,45 +25490,44 @@ FX_EXTERN_C int if (result_37) { _fx_free_N10Ast__exp_t(&result_37); } + if (v_308) { + _fx_free_LN10Ast__exp_t(&v_308); + } + _fx_free_T3iiN10Ast__typ_t(&v_307); if (v_306) { - _fx_free_LN10Ast__exp_t(&v_306); + _fx_free_N10Ast__typ_t(&v_306); } - if (v_305) { - _fx_free_N10Ast__typ_t(&v_305); + if (idxs_1) { + _fx_free_LN10Ast__exp_t(&idxs_1); } if (new_idxs_0) { _fx_free_LN10Ast__exp_t(&new_idxs_0); } - _fx_free_T4LN10Ast__exp_tiii(&v_304); - if (idxs_1) { - _fx_free_LN10Ast__exp_t(&idxs_1); - } - _fx_free_T4LN10Ast__exp_tiii(&__fold_result___2); _fx_endmatch_29: ; FX_CHECK_EXN(_fx_catch_134); _fx_catch_134: ; - fx_free_exn(&v_295); + fx_free_exn(&v_297); if (new_atyp_0) { _fx_free_N10Ast__typ_t(&new_atyp_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_294); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_296); if (new_arr_0) { _fx_free_N10Ast__exp_t(&new_arr_0); } if (arr_0) { _fx_free_N10Ast__exp_t(&arr_0); } - _fx_free_T3N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_t(&v_293); + _fx_free_T3N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_t(&v_295); goto _fx_endmatch_41; } if (tag_0 == 23) { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_335 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_337 = {0}; _fx_N10Ast__typ_t ctyp_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_336 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_338 = {0}; _fx_N10Ast__typ_t typ1_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_337 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_339 = {0}; _fx_N10Ast__typ_t typ2_0 = 0; _fx_N10Ast__exp_t new_c_0 = 0; _fx_N10Ast__exp_t new_e1_11 = 0; @@ -26010,15 +25539,15 @@ FX_EXTERN_C int _fx_N10Ast__exp_t e2_3 = vcase_22->t2; _fx_N10Ast__exp_t e1_4 = vcase_22->t1; _fx_N10Ast__exp_t c_0 = vcase_22->t0; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(c_0, &v_335, 0), _fx_catch_141); - FX_COPY_PTR(v_335.t0, &ctyp_0); - _fx_R10Ast__loc_t cloc_0 = v_335.t1; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_4, &v_336, 0), _fx_catch_141); - FX_COPY_PTR(v_336.t0, &typ1_0); - _fx_R10Ast__loc_t loc1_0 = v_336.t1; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e2_3, &v_337, 0), _fx_catch_141); - FX_COPY_PTR(v_337.t0, &typ2_0); - _fx_R10Ast__loc_t loc2_0 = v_337.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(c_0, &v_337, 0), _fx_catch_141); + FX_COPY_PTR(v_337.t0, &ctyp_0); + _fx_R10Ast__loc_t cloc_0 = v_337.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_4, &v_338, 0), _fx_catch_141); + FX_COPY_PTR(v_338.t0, &typ1_0); + _fx_R10Ast__loc_t loc1_0 = v_338.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e2_3, &v_339, 0), _fx_catch_141); + FX_COPY_PTR(v_339.t0, &typ2_0); + _fx_R10Ast__loc_t loc2_0 = v_339.t1; fx_str_t slit_139 = FX_MAKE_STR("if() condition should have \'bool\' type"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(ctyp_0, _fx_g22Ast_typecheck__TypBool, @@ -26026,19 +25555,19 @@ FX_EXTERN_C int fx_str_t slit_140 = FX_MAKE_STR("if() expression should have the same type as its branches"); FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(typ1_0, etyp_0, &loc1_0, &slit_140, 0), _fx_catch_141); - bool v_338; + bool v_340; FX_CALL( - _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB(typ2_0, etyp_0, &loc2_0, true, &v_338, + _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB(typ2_0, etyp_0, &loc2_0, true, &v_340, 0), _fx_catch_141); - if (!v_338) { + if (!v_340) { if (FX_REC_VARIANT_TAG(e2_3) == 1) { - fx_exn_t v_339 = {0}; + fx_exn_t v_341 = {0}; fx_str_t slit_141 = FX_MAKE_STR("if() expression of non-void type has no \'else\' branch"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc2_0, &slit_141, &v_339, 0), _fx_catch_135); - FX_THROW(&v_339, false, _fx_catch_135); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc2_0, &slit_141, &v_341, 0), _fx_catch_135); + FX_THROW(&v_341, false, _fx_catch_135); _fx_catch_135: ; - fx_free_exn(&v_339); + fx_free_exn(&v_341); } else { fx_str_t slit_142 = FX_MAKE_STR("if() expression should have the same type as its branches"); @@ -26122,21 +25651,21 @@ FX_EXTERN_C int if (typ2_0) { _fx_free_N10Ast__typ_t(&typ2_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_337); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_339); if (typ1_0) { _fx_free_N10Ast__typ_t(&typ1_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_336); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_338); if (ctyp_0) { _fx_free_N10Ast__typ_t(&ctyp_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_335); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_337); goto _fx_endmatch_41; } if (tag_0 == 24) { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_340 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_342 = {0}; _fx_N10Ast__typ_t ctyp_1 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_341 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_343 = {0}; _fx_N10Ast__typ_t btyp_0 = 0; _fx_N10Ast__exp_t new_c_1 = 0; _fx_LN12Ast__scope_t loop_sc_0 = 0; @@ -26145,12 +25674,12 @@ FX_EXTERN_C int _fx_T3N10Ast__exp_tN10Ast__exp_tR10Ast__loc_t* vcase_23 = &e_2->u.ExpWhile; _fx_N10Ast__exp_t body_0 = vcase_23->t1; _fx_N10Ast__exp_t c_1 = vcase_23->t0; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(c_1, &v_340, 0), _fx_catch_142); - FX_COPY_PTR(v_340.t0, &ctyp_1); - _fx_R10Ast__loc_t cloc_1 = v_340.t1; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(body_0, &v_341, 0), _fx_catch_142); - FX_COPY_PTR(v_341.t0, &btyp_0); - _fx_R10Ast__loc_t bloc_0 = v_341.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(c_1, &v_342, 0), _fx_catch_142); + FX_COPY_PTR(v_342.t0, &ctyp_1); + _fx_R10Ast__loc_t cloc_1 = v_342.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(body_0, &v_343, 0), _fx_catch_142); + FX_COPY_PTR(v_343.t0, &btyp_0); + _fx_R10Ast__loc_t bloc_0 = v_343.t1; fx_str_t slit_143 = FX_MAKE_STR("while() loop condition should have \'bool\' type"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(ctyp_1, _fx_g22Ast_typecheck__TypBool, @@ -26162,9 +25691,9 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( c_1, &env_2, sc_2, &new_c_1, 0), _fx_catch_142); - _fx_N12Ast__scope_t v_342; - FX_CALL(_fx_M3AstFM14new_loop_scopeN12Ast__scope_t3iBB(curr_m_idx_0, false, false, &v_342, 0), _fx_catch_142); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_342, sc_2, true, &loop_sc_0), _fx_catch_142); + _fx_N12Ast__scope_t v_344; + FX_CALL(_fx_M3AstFM14new_loop_scopeN12Ast__scope_t3iBB(curr_m_idx_0, false, false, &v_344, 0), _fx_catch_142); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_344, sc_2, true, &loop_sc_0), _fx_catch_142); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( body_0, &env_2, loop_sc_0, &new_body_0, 0), _fx_catch_142); @@ -26188,17 +25717,17 @@ FX_EXTERN_C int if (btyp_0) { _fx_free_N10Ast__typ_t(&btyp_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_341); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_343); if (ctyp_1) { _fx_free_N10Ast__typ_t(&ctyp_1); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_340); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_342); goto _fx_endmatch_41; } if (tag_0 == 25) { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_343 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_345 = {0}; _fx_N10Ast__typ_t ctyp_2 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_344 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_346 = {0}; _fx_N10Ast__typ_t btyp_1 = 0; _fx_N10Ast__exp_t new_c_2 = 0; _fx_LN12Ast__scope_t loop_sc_1 = 0; @@ -26207,12 +25736,12 @@ FX_EXTERN_C int _fx_T3N10Ast__exp_tN10Ast__exp_tR10Ast__loc_t* vcase_24 = &e_2->u.ExpDoWhile; _fx_N10Ast__exp_t c_2 = vcase_24->t1; _fx_N10Ast__exp_t body_1 = vcase_24->t0; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(c_2, &v_343, 0), _fx_catch_143); - FX_COPY_PTR(v_343.t0, &ctyp_2); - _fx_R10Ast__loc_t cloc_2 = v_343.t1; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(body_1, &v_344, 0), _fx_catch_143); - FX_COPY_PTR(v_344.t0, &btyp_1); - _fx_R10Ast__loc_t bloc_1 = v_344.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(c_2, &v_345, 0), _fx_catch_143); + FX_COPY_PTR(v_345.t0, &ctyp_2); + _fx_R10Ast__loc_t cloc_2 = v_345.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(body_1, &v_346, 0), _fx_catch_143); + FX_COPY_PTR(v_346.t0, &btyp_1); + _fx_R10Ast__loc_t bloc_1 = v_346.t1; fx_str_t slit_145 = FX_MAKE_STR("do-while() loop condition should have \'bool\' type"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(ctyp_2, _fx_g22Ast_typecheck__TypBool, @@ -26224,9 +25753,9 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( c_2, &env_2, sc_2, &new_c_2, 0), _fx_catch_143); - _fx_N12Ast__scope_t v_345; - FX_CALL(_fx_M3AstFM14new_loop_scopeN12Ast__scope_t3iBB(curr_m_idx_0, false, false, &v_345, 0), _fx_catch_143); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_345, sc_2, true, &loop_sc_1), _fx_catch_143); + _fx_N12Ast__scope_t v_347; + FX_CALL(_fx_M3AstFM14new_loop_scopeN12Ast__scope_t3iBB(curr_m_idx_0, false, false, &v_347, 0), _fx_catch_143); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_347, sc_2, true, &loop_sc_1), _fx_catch_143); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( body_1, &env_2, loop_sc_1, &new_body_1, 0), _fx_catch_143); @@ -26251,27 +25780,27 @@ FX_EXTERN_C int if (btyp_1) { _fx_free_N10Ast__typ_t(&btyp_1); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_344); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_346); if (ctyp_2) { _fx_free_N10Ast__typ_t(&ctyp_2); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_343); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_345); goto _fx_endmatch_41; } if (tag_0 == 26) { - fx_exn_t v_346 = {0}; + fx_exn_t v_348 = {0}; _fx_LN12Ast__scope_t for_sc_0 = 0; _fx_T7iLN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t - v_347 = {0}; + v_349 = {0}; _fx_LN10Ast__exp_t pre_code_0 = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t for_clauses_0 = 0; _fx_N10Ast__pat_t idx_pat_0 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_4 = {0}; _fx_LN10Ast__exp_t code_0 = 0; - _fx_LN10Ast__exp_t v_348 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_349 = {0}; + _fx_LN10Ast__exp_t v_350 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_351 = {0}; _fx_N10Ast__exp_t result_41 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_350 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_352 = {0}; _fx_N10Ast__typ_t btyp_2 = 0; _fx_N10Ast__exp_t new_body_2 = 0; _fx_N10Ast__exp_t result_42 = 0; @@ -26283,40 +25812,40 @@ FX_EXTERN_C int bool is_nested_0 = flags_0->for_flag_nested; if (flags_0->for_flag_unzip) { fx_str_t slit_147 = FX_MAKE_STR("@unzip for does not make sense outside of comprehensions"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_147, &v_346, 0), _fx_catch_145); - FX_THROW(&v_346, false, _fx_catch_145); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_147, &v_348, 0), _fx_catch_145); + FX_THROW(&v_348, false, _fx_catch_145); } - _fx_N12Ast__scope_t v_351; + _fx_N12Ast__scope_t v_353; if (is_fold_0) { - FX_CALL(_fx_M3AstFM14new_fold_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_351, 0), _fx_catch_145); + FX_CALL(_fx_M3AstFM14new_fold_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_353, 0), _fx_catch_145); } else { FX_CALL( - _fx_M3AstFM14new_loop_scopeN12Ast__scope_t3iBB(curr_m_idx_0, is_nested_0, flags_0->for_flag_parallel, &v_351, 0), + _fx_M3AstFM14new_loop_scopeN12Ast__scope_t3iBB(curr_m_idx_0, is_nested_0, flags_0->for_flag_parallel, &v_353, 0), _fx_catch_145); } - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_351, sc_2, true, &for_sc_0), _fx_catch_145); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_353, sc_2, true, &for_sc_0), _fx_catch_145); FX_CALL( _fx_M13Ast_typecheckFM17check_for_clausesT7iLN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t7LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tR16Ast__for_flags_tLN12Ast__scope_ti( - vcase_25->t0, vcase_25->t1, &env_2, &_fx_g16Ast__empty_idset, flags_0, for_sc_0, curr_m_idx_0, &v_347, 0), + vcase_25->t0, vcase_25->t1, &env_2, &_fx_g16Ast__empty_idset, flags_0, for_sc_0, curr_m_idx_0, &v_349, 0), _fx_catch_145); - int_ trsz_0 = v_347.t0; - FX_COPY_PTR(v_347.t1, &pre_code_0); - FX_COPY_PTR(v_347.t2, &for_clauses_0); - FX_COPY_PTR(v_347.t3, &idx_pat_0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_347.t5, &env_4); + int_ trsz_0 = v_349.t0; + FX_COPY_PTR(v_349.t1, &pre_code_0); + FX_COPY_PTR(v_349.t2, &for_clauses_0); + FX_COPY_PTR(v_349.t3, &idx_pat_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_349.t5, &env_4); if (trsz_0 > 0) { _fx_LN10Ast__exp_t lstend_7 = 0; for (int_ idx_2 = 0; idx_2 < trsz_0; idx_2++) { _fx_N10Ast__exp_t it_j_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_352 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_354 = {0}; _fx_N10Ast__typ_t tj_0 = 0; FX_CALL( _fx_M13Ast_typecheckFM20gen_for_in_tuprec_itN10Ast__exp_t8iLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_tLN12Ast__scope_t( idx_2, for_clauses_0, idx_pat_0, body_2, &env_4, for_sc_0, &eloc_0, sc_2, &it_j_0, 0), _fx_catch_144); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(it_j_0, &v_352, 0), _fx_catch_144); - FX_COPY_PTR(v_352.t0, &tj_0); - _fx_R10Ast__loc_t locj_0 = v_352.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(it_j_0, &v_354, 0), _fx_catch_144); + FX_COPY_PTR(v_354.t0, &tj_0); + _fx_R10Ast__loc_t locj_0 = v_354.t1; fx_str_t slit_148 = FX_MAKE_STR("\'for()\' body should have \'void\' type"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(tj_0, _fx_g22Ast_typecheck__TypVoid, @@ -26329,25 +25858,25 @@ FX_EXTERN_C int if (tj_0) { _fx_free_N10Ast__typ_t(&tj_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_352); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_354); if (it_j_0) { _fx_free_N10Ast__exp_t(&it_j_0); } FX_CHECK_EXN(_fx_catch_145); } - FX_CALL(_fx_M13Ast_typecheckFM7__add__LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(pre_code_0, code_0, &v_348, 0), + FX_CALL(_fx_M13Ast_typecheckFM7__add__LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(pre_code_0, code_0, &v_350, 0), _fx_catch_145); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g22Ast_typecheck__TypVoid, &eloc_0, &v_349); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_348, &v_349, &result_41), + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g22Ast_typecheck__TypVoid, &eloc_0, &v_351); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_350, &v_351, &result_41), _fx_catch_145); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_41, &result_0); FX_BREAK(_fx_catch_145); } else { - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(body_2, &v_350, 0), _fx_catch_145); - FX_COPY_PTR(v_350.t0, &btyp_2); - _fx_R10Ast__loc_t bloc_2 = v_350.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(body_2, &v_352, 0), _fx_catch_145); + FX_COPY_PTR(v_352.t0, &btyp_2); + _fx_R10Ast__loc_t bloc_2 = v_352.t1; fx_str_t slit_149 = FX_MAKE_STR("\'for()\' body should have \'void\' type"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(btyp_2, _fx_g22Ast_typecheck__TypVoid, @@ -26373,13 +25902,13 @@ FX_EXTERN_C int if (btyp_2) { _fx_free_N10Ast__typ_t(&btyp_2); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_350); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_352); if (result_41) { _fx_free_N10Ast__exp_t(&result_41); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_349); - if (v_348) { - _fx_free_LN10Ast__exp_t(&v_348); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_351); + if (v_350) { + _fx_free_LN10Ast__exp_t(&v_350); } if (code_0) { _fx_free_LN10Ast__exp_t(&code_0); @@ -26395,25 +25924,25 @@ FX_EXTERN_C int _fx_free_LN10Ast__exp_t(&pre_code_0); } _fx_free_T7iLN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &v_347); + &v_349); FX_FREE_LIST_SIMPLE(&for_sc_0); - fx_free_exn(&v_346); + fx_free_exn(&v_348); goto _fx_endmatch_41; } if (tag_0 == 27) { _fx_LN12Ast__scope_t for_sc_1 = 0; - _fx_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t - __fold_result___3 = {0}; - _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t map_clauses_0 = 0; - _fx_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t - v_353 = {0}; _fx_LN10Ast__exp_t pre_code_1 = 0; + _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t map_clauses_acc_0 = 0; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_acc_0 = {0}; + _fx_Rt6Set__t1R9Ast__id_t idset_acc_0 = {0}; + _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t map_clauses_0 = 0; + _fx_LN10Ast__exp_t pre_code_2 = 0; _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t map_clauses_1 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_5 = {0}; - fx_exn_t v_354 = {0}; - fx_str_t coll_name_0 = {0}; fx_exn_t v_355 = {0}; - _fx_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_356 = {0}; + fx_str_t coll_name_0 = {0}; + fx_exn_t v_356 = {0}; + _fx_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_357 = {0}; _fx_LT2N10Ast__pat_tN10Ast__exp_t for_clauses_1 = 0; _fx_N10Ast__pat_t idx_pat_1 = 0; _fx_N10Ast__typ_t elem_typ_0 = 0; @@ -26421,48 +25950,48 @@ FX_EXTERN_C int _fx_N10Ast__exp_t mk_struct_exp_0 = 0; _fx_FPN10Ast__typ_t1N10Ast__exp_t get_exp_typ_0 = {0}; _fx_LN10Ast__typ_t tl_1 = 0; - _fx_N10Ast__typ_t v_357 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_358 = {0}; - _fx_N10Ast__typ_t ltyp_0 = 0; + _fx_N10Ast__typ_t v_358 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_359 = {0}; - _fx_N10Ast__exp_t __fold_result___4 = 0; - _fx_LN10Ast__exp_t v_360 = 0; - _fx_N10Ast__typ_t v_361 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_362 = {0}; - _fx_LLN10Ast__exp_t v_363 = 0; - _fx_N10Ast__typ_t v_364 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_365 = {0}; + _fx_N10Ast__typ_t ltyp_0 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_360 = {0}; + _fx_N10Ast__exp_t l_exp_0 = 0; + _fx_LN10Ast__exp_t v_361 = 0; + _fx_N10Ast__typ_t v_362 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_363 = {0}; + _fx_LLN10Ast__exp_t v_364 = 0; + _fx_N10Ast__typ_t v_365 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_366 = {0}; _fx_N10Ast__typ_t coll_typ_0 = 0; - fx_str_t v_366 = {0}; fx_str_t v_367 = {0}; - _fx_LN10Ast__exp_t v_368 = 0; + fx_str_t v_368 = {0}; _fx_LN10Ast__exp_t v_369 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_370 = {0}; - _fx_N10Ast__exp_t result_43 = 0; + _fx_LN10Ast__exp_t v_370 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_371 = {0}; + _fx_N10Ast__exp_t result_43 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_372 = {0}; _fx_N10Ast__typ_t btyp_3 = 0; _fx_N10Ast__exp_t new_body_3 = 0; - _fx_N10Ast__typ_t v_372 = 0; _fx_N10Ast__typ_t v_373 = 0; - _fx_Nt6option1N10Ast__typ_t v_374 = 0; - _fx_N10Ast__typ_t v_375 = 0; + _fx_N10Ast__typ_t v_374 = 0; + _fx_Nt6option1N10Ast__typ_t v_375 = 0; _fx_N10Ast__typ_t v_376 = 0; - _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_377 = 0; + _fx_N10Ast__typ_t v_377 = 0; + _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_378 = 0; _fx_N10Ast__exp_t result_44 = 0; _fx_T4LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR16Ast__for_flags_tT2N10Ast__typ_tR10Ast__loc_t* vcase_26 = &e_2->u.ExpMap; _fx_R16Ast__for_flags_t* flags_1 = &vcase_26->t2; _fx_N10Ast__exp_t body_3 = vcase_26->t1; - _fx_N15Ast__for_make_t v_378 = flags_1->for_flag_make; - bool make_list_0 = v_378.tag == 3; _fx_N15Ast__for_make_t v_379 = flags_1->for_flag_make; - bool make_tuple_0 = v_379.tag == 5; + bool make_list_0 = v_379.tag == 3; _fx_N15Ast__for_make_t v_380 = flags_1->for_flag_make; - bool make_vector_0 = v_380.tag == 4; + bool make_tuple_0 = v_380.tag == 5; + _fx_N15Ast__for_make_t v_381 = flags_1->for_flag_make; + bool make_vector_0 = v_381.tag == 4; bool unzip_mode_0 = flags_1->for_flag_unzip; - _fx_N12Ast__scope_t v_381; + _fx_N12Ast__scope_t v_382; if (make_tuple_0) { - FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_381, 0), _fx_catch_157); + FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_382, 0), _fx_catch_157); } else { bool t_10; @@ -26473,78 +26002,73 @@ FX_EXTERN_C int t_10 = make_vector_0; } if (t_10) { - FX_CALL(_fx_M3AstFM13new_map_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_381, 0), _fx_catch_157); + FX_CALL(_fx_M3AstFM13new_map_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_382, 0), _fx_catch_157); } else { - FX_CALL(_fx_M3AstFM17new_arr_map_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_381, 0), _fx_catch_157); + FX_CALL(_fx_M3AstFM17new_arr_map_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_382, 0), _fx_catch_157); } } - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_381, sc_2, true, &for_sc_1), _fx_catch_157); - _fx_make_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - 0, 0, 0, 0, &env_2, &_fx_g16Ast__empty_idset, &__fold_result___3); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_382, sc_2, true, &for_sc_1), _fx_catch_157); + int_ trsz_1 = 0; + int_ total_dims_0 = 0; + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2, &env_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &idset_acc_0); FX_COPY_PTR(vcase_26->t0, &map_clauses_0); _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t lst_10 = map_clauses_0; for (; lst_10; lst_10 = lst_10->tl) { _fx_LT2N10Ast__pat_tN10Ast__exp_t for_clauses_2 = 0; _fx_N10Ast__pat_t idx_pat_2 = 0; - _fx_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t - v_382 = {0}; - _fx_LN10Ast__exp_t pre_code_2 = 0; - _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t map_clauses_2 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_6 = {0}; - _fx_Rt6Set__t1R9Ast__id_t idset_0 = {0}; _fx_T7iLN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_383 = {0}; _fx_LN10Ast__exp_t pre_code_k_0 = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t for_clauses_3 = 0; _fx_N10Ast__pat_t idx_pat_3 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_7 = {0}; - _fx_Rt6Set__t1R9Ast__id_t idset_1 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_6 = {0}; + _fx_Rt6Set__t1R9Ast__id_t idset_0 = {0}; _fx_LN10Ast__exp_t v_384 = 0; _fx_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_385 = {0}; - _fx_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t - v_386 = {0}; + _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_386 = 0; _fx_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t* __pat___2 = &lst_10->hd; FX_COPY_PTR(__pat___2->t0, &for_clauses_2); FX_COPY_PTR(__pat___2->t1, &idx_pat_2); - _fx_copy_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &__fold_result___3, &v_382); - FX_COPY_PTR(v_382.t1, &pre_code_2); - FX_COPY_PTR(v_382.t2, &map_clauses_2); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_382.t4, &env_6); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_382.t5, &idset_0); FX_CALL( _fx_M13Ast_typecheckFM17check_for_clausesT7iLN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t7LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tR16Ast__for_flags_tLN12Ast__scope_ti( - for_clauses_2, idx_pat_2, &env_6, &idset_0, flags_1, for_sc_1, curr_m_idx_0, &v_383, 0), _fx_catch_146); + for_clauses_2, idx_pat_2, &env_acc_0, &idset_acc_0, flags_1, for_sc_1, curr_m_idx_0, &v_383, 0), + _fx_catch_146); int_ trsz_k_0 = v_383.t0; FX_COPY_PTR(v_383.t1, &pre_code_k_0); FX_COPY_PTR(v_383.t2, &for_clauses_3); FX_COPY_PTR(v_383.t3, &idx_pat_3); int_ dims_0 = v_383.t4; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_383.t5, &env_7); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_383.t6, &idset_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_383.t5, &env_6); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_383.t6, &idset_0); + trsz_1 = trsz_1 + trsz_k_0; FX_CALL( - _fx_M13Ast_typecheckFM7__add__LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(pre_code_k_0, pre_code_2, &v_384, 0), + _fx_M13Ast_typecheckFM7__add__LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(pre_code_k_0, pre_code_1, &v_384, 0), _fx_catch_146); + _fx_free_LN10Ast__exp_t(&pre_code_1); + FX_COPY_PTR(v_384, &pre_code_1); _fx_make_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(for_clauses_3, idx_pat_3, &v_385); - FX_CALL(_fx_cons_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_385, map_clauses_2, false, &map_clauses_2), + FX_CALL(_fx_cons_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_385, map_clauses_acc_0, true, &v_386), _fx_catch_146); - _fx_make_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - v_382.t0 + trsz_k_0, v_384, map_clauses_2, v_382.t3 + dims_0, &env_7, &idset_1, &v_386); - _fx_free_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &__fold_result___3); - _fx_copy_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &v_386, &__fold_result___3); + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&map_clauses_acc_0); + FX_COPY_PTR(v_386, &map_clauses_acc_0); + total_dims_0 = total_dims_0 + dims_0; + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_6, &env_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&idset_0, &idset_acc_0); _fx_catch_146: ; - _fx_free_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &v_386); + if (v_386) { + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_386); + } _fx_free_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_385); if (v_384) { _fx_free_LN10Ast__exp_t(&v_384); } - _fx_free_Rt6Set__t1R9Ast__id_t(&idset_1); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_7); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_6); if (idx_pat_3) { _fx_free_N10Ast__pat_t(&idx_pat_3); } @@ -26556,16 +26080,6 @@ FX_EXTERN_C int } _fx_free_T7iLN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( &v_383); - _fx_free_Rt6Set__t1R9Ast__id_t(&idset_0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_6); - if (map_clauses_2) { - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&map_clauses_2); - } - if (pre_code_2) { - _fx_free_LN10Ast__exp_t(&pre_code_2); - } - _fx_free_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &v_382); if (idx_pat_2) { _fx_free_N10Ast__pat_t(&idx_pat_2); } @@ -26574,16 +26088,14 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_157); } - _fx_copy_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &__fold_result___3, &v_353); - int_ trsz_1 = v_353.t0; - FX_COPY_PTR(v_353.t1, &pre_code_1); - FX_COPY_PTR(v_353.t2, &map_clauses_1); - int_ total_dims_0 = v_353.t3; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_353.t4, &env_5); + int_ trsz_2 = trsz_1; + FX_COPY_PTR(pre_code_1, &pre_code_2); + FX_COPY_PTR(map_clauses_acc_0, &map_clauses_1); + int_ total_dims_1 = total_dims_0; + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0, &env_5); bool t_11; if (make_tuple_0) { - t_11 = trsz_1 == 0; + t_11 = trsz_2 == 0; } else { t_11 = false; @@ -26591,8 +26103,8 @@ FX_EXTERN_C int if (t_11) { fx_str_t slit_150 = FX_MAKE_STR("tuple comprehension with iteration over non-tuples and non-records is not supported"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_150, &v_354, 0), _fx_catch_157); - FX_THROW(&v_354, false, _fx_catch_157); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_150, &v_355, 0), _fx_catch_157); + FX_THROW(&v_355, false, _fx_catch_157); } if (make_list_0) { fx_str_t slit_151 = FX_MAKE_STR("list"); fx_copy_str(&slit_151, &coll_name_0); @@ -26606,16 +26118,16 @@ FX_EXTERN_C int else { fx_str_t slit_154 = FX_MAKE_STR("array"); fx_copy_str(&slit_154, &coll_name_0); } - if (trsz_1 > 0) { + if (trsz_2 > 0) { if (flags_1->for_flag_unzip) { fx_str_t slit_155 = FX_MAKE_STR("@unzip for is not supported in tuple/record comprehensions"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_155, &v_355, 0), _fx_catch_157); - FX_THROW(&v_355, false, _fx_catch_157); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_155, &v_356, 0), _fx_catch_157); + FX_THROW(&v_356, false, _fx_catch_157); } if (map_clauses_1 != 0) { if (map_clauses_1->tl == 0) { _fx_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t* v_387 = &map_clauses_1->hd; - _fx_make_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(v_387->t0, v_387->t1, &v_356); + _fx_make_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(v_387->t0, v_387->t1, &v_357); goto _fx_endmatch_30; } } @@ -26629,11 +26141,11 @@ FX_EXTERN_C int _fx_endmatch_30: ; FX_CHECK_EXN(_fx_catch_157); - FX_COPY_PTR(v_356.t0, &for_clauses_1); - FX_COPY_PTR(v_356.t1, &idx_pat_1); + FX_COPY_PTR(v_357.t0, &for_clauses_1); + FX_COPY_PTR(v_357.t1, &idx_pat_1); FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&elem_typ_0, 0), _fx_catch_157); _fx_LN10Ast__exp_t lstend_8 = 0; - for (int_ idx_3 = 0; idx_3 < trsz_1; idx_3++) { + for (int_ idx_3 = 0; idx_3 < trsz_2; idx_3++) { _fx_N10Ast__exp_t it_j_1 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_389 = {0}; _fx_N10Ast__typ_t tj_1 = 0; @@ -26678,105 +26190,100 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM3mapLN10Ast__typ_t2LN10Ast__exp_tFPN10Ast__typ_t1N10Ast__exp_t(elems_0, &get_exp_typ_0, &tl_1, 0), _fx_catch_157); - FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(tl_1, &v_357), _fx_catch_157); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_357, &eloc_0, &v_358); + FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(tl_1, &v_358), _fx_catch_157); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_358, &eloc_0, &v_359); FX_CALL( - _fx_M3AstFM10ExpMkTupleN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(elems_0, &v_358, &mk_struct_exp_0), + _fx_M3AstFM10ExpMkTupleN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(elems_0, &v_359, &mk_struct_exp_0), _fx_catch_157); } else if (make_list_0) { FX_CALL(_fx_M3AstFM7TypListN10Ast__typ_t1N10Ast__typ_t(elem_typ_0, <yp_0), _fx_catch_157); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(ltyp_0, &eloc_0, &v_359); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(ltyp_0, &eloc_0, &v_360); FX_CALL( - _fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&_fx_g23Ast_typecheck__LitEmpty, &v_359, - &__fold_result___4), _fx_catch_157); - FX_CALL(_fx_M13Ast_typecheckFM3revLN10Ast__exp_t1LN10Ast__exp_t(elems_0, &v_360, 0), _fx_catch_157); - _fx_LN10Ast__exp_t lst_11 = v_360; + _fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&_fx_g23Ast_typecheck__LitEmpty, &v_360, + &l_exp_0), _fx_catch_157); + FX_CALL(_fx_M13Ast_typecheckFM3revLN10Ast__exp_t1LN10Ast__exp_t(elems_0, &v_361, 0), _fx_catch_157); + _fx_LN10Ast__exp_t lst_11 = v_361; for (; lst_11; lst_11 = lst_11->tl) { - _fx_N10Ast__exp_t l_exp_0 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_392 = {0}; _fx_N10Ast__exp_t v_393 = 0; _fx_N10Ast__exp_t ej_0 = lst_11->hd; - FX_COPY_PTR(__fold_result___4, &l_exp_0); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(ltyp_0, &eloc_0, &v_392); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( _fx_g21Ast_typecheck__OpCons, ej_0, l_exp_0, &v_392, &v_393), _fx_catch_149); - _fx_free_N10Ast__exp_t(&__fold_result___4); - FX_COPY_PTR(v_393, &__fold_result___4); + _fx_free_N10Ast__exp_t(&l_exp_0); + FX_COPY_PTR(v_393, &l_exp_0); _fx_catch_149: ; if (v_393) { _fx_free_N10Ast__exp_t(&v_393); } _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_392); - if (l_exp_0) { - _fx_free_N10Ast__exp_t(&l_exp_0); - } FX_CHECK_EXN(_fx_catch_157); } - FX_COPY_PTR(__fold_result___4, &mk_struct_exp_0); + FX_COPY_PTR(l_exp_0, &mk_struct_exp_0); } else if (make_vector_0) { - FX_CALL(_fx_M3AstFM9TypVectorN10Ast__typ_t1N10Ast__typ_t(elem_typ_0, &v_361), _fx_catch_157); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_361, &eloc_0, &v_362); + FX_CALL(_fx_M3AstFM9TypVectorN10Ast__typ_t1N10Ast__typ_t(elem_typ_0, &v_362), _fx_catch_157); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_362, &eloc_0, &v_363); FX_CALL( - _fx_M3AstFM11ExpMkVectorN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(elems_0, &v_362, + _fx_M3AstFM11ExpMkVectorN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(elems_0, &v_363, &mk_struct_exp_0), _fx_catch_157); } else { - FX_CALL(_fx_cons_LLN10Ast__exp_t(elems_0, 0, true, &v_363), _fx_catch_157); - FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(1, elem_typ_0, &v_364), _fx_catch_157); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_364, &eloc_0, &v_365); + FX_CALL(_fx_cons_LLN10Ast__exp_t(elems_0, 0, true, &v_364), _fx_catch_157); + FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(1, elem_typ_0, &v_365), _fx_catch_157); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_365, &eloc_0, &v_366); FX_CALL( - _fx_M3AstFM10ExpMkArrayN10Ast__exp_t2LLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_363, &v_365, &mk_struct_exp_0), + _fx_M3AstFM10ExpMkArrayN10Ast__exp_t2LLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_364, &v_366, &mk_struct_exp_0), _fx_catch_157); } FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(mk_struct_exp_0, &coll_typ_0, 0), _fx_catch_157); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&coll_name_0, &v_366, 0), _fx_catch_157); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&coll_name_0, &v_367, 0), _fx_catch_157); fx_str_t slit_158 = FX_MAKE_STR("inconsistent type of the constructed "); { - const fx_str_t strs_17[] = { slit_158, v_366 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_17, 2, &v_367), _fx_catch_157); + const fx_str_t strs_17[] = { slit_158, v_367 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_17, 2, &v_368), _fx_catch_157); } FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, coll_typ_0, &eloc_0, &v_367, 0), + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, coll_typ_0, &eloc_0, &v_368, 0), _fx_catch_157); - FX_CALL(_fx_cons_LN10Ast__exp_t(mk_struct_exp_0, 0, true, &v_368), _fx_catch_157); - FX_CALL(_fx_M13Ast_typecheckFM7__add__LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(pre_code_1, v_368, &v_369, 0), + FX_CALL(_fx_cons_LN10Ast__exp_t(mk_struct_exp_0, 0, true, &v_369), _fx_catch_157); + FX_CALL(_fx_M13Ast_typecheckFM7__add__LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(pre_code_2, v_369, &v_370, 0), _fx_catch_157); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(coll_typ_0, &eloc_0, &v_370); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_369, &v_370, &result_43), + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(coll_typ_0, &eloc_0, &v_371); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_370, &v_371, &result_43), _fx_catch_157); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_43, &result_0); FX_BREAK(_fx_catch_157); } else { - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(body_3, &v_371, 0), _fx_catch_157); - FX_COPY_PTR(v_371.t0, &btyp_3); + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(body_3, &v_372, 0), _fx_catch_157); + FX_COPY_PTR(v_372.t0, &btyp_3); if (!unzip_mode_0) { FX_CALL( _fx_M13Ast_typecheckFM13check_map_typv7N10Ast__typ_tN10Ast__typ_tiR10Ast__loc_tBBi(btyp_3, etyp_0, -1, - &eloc_0, make_list_0, make_vector_0, total_dims_0, 0), _fx_catch_157); + &eloc_0, make_list_0, make_vector_0, total_dims_1, 0), _fx_catch_157); } FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( body_3, &env_5, for_sc_1, &new_body_3, 0), _fx_catch_157); bool new_unzip_mode_0; if (unzip_mode_0) { - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(btyp_3, &v_372, 0), _fx_catch_157); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp_0, &v_373, 0), _fx_catch_157); - if (FX_REC_VARIANT_TAG(v_373) == 1) { - FX_COPY_PTR(v_373->u.TypVar->data, &v_374); - if ((v_374 != 0) + 1 == 1) { - if (FX_REC_VARIANT_TAG(v_372) == 18) { + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(btyp_3, &v_373, 0), _fx_catch_157); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp_0, &v_374, 0), _fx_catch_157); + if (FX_REC_VARIANT_TAG(v_374) == 1) { + FX_COPY_PTR(v_374->u.TypVar->data, &v_375); + if ((v_375 != 0) + 1 == 1) { + if (FX_REC_VARIANT_TAG(v_373) == 18) { _fx_LN10Ast__typ_t colls_0 = 0; _fx_LN10Ast__typ_t b_elems_0 = 0; _fx_N10Ast__typ_t v_394 = 0; _fx_LN10Ast__typ_t lstend_9 = 0; int_ i_0 = 0; - FX_COPY_PTR(v_372->u.TypTuple, &b_elems_0); + FX_COPY_PTR(v_373->u.TypTuple, &b_elems_0); _fx_LN10Ast__typ_t lst_12 = b_elems_0; for (; lst_12; lst_12 = lst_12->tl, i_0 += 1) { _fx_N10Ast__typ_t ct_0 = 0; @@ -26784,7 +26291,7 @@ FX_EXTERN_C int FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&ct_0, 0), _fx_catch_150); FX_CALL( _fx_M13Ast_typecheckFM13check_map_typv7N10Ast__typ_tN10Ast__typ_tiR10Ast__loc_tBBi(bt_0, ct_0, - i_0, &eloc_0, make_list_0, make_vector_0, total_dims_0, 0), _fx_catch_150); + i_0, &eloc_0, make_list_0, make_vector_0, total_dims_1, 0), _fx_catch_150); _fx_LN10Ast__typ_t node_9 = 0; FX_CALL(_fx_cons_LN10Ast__typ_t(ct_0, 0, false, &node_9), _fx_catch_150); FX_LIST_APPEND(colls_0, lstend_9, node_9); @@ -26816,16 +26323,16 @@ FX_EXTERN_C int } } } - if (FX_REC_VARIANT_TAG(v_373) == 18) { - if (FX_REC_VARIANT_TAG(v_372) == 18) { + if (FX_REC_VARIANT_TAG(v_374) == 18) { + if (FX_REC_VARIANT_TAG(v_373) == 18) { fx_str_t v_395 = {0}; fx_str_t v_396 = {0}; fx_str_t v_397 = {0}; fx_exn_t v_398 = {0}; _fx_LN10Ast__typ_t b_elems_1 = 0; _fx_LN10Ast__typ_t colls_1 = 0; - _fx_LN10Ast__typ_t b_elems_2 = v_372->u.TypTuple; - _fx_LN10Ast__typ_t colls_2 = v_373->u.TypTuple; + _fx_LN10Ast__typ_t b_elems_2 = v_373->u.TypTuple; + _fx_LN10Ast__typ_t colls_2 = v_374->u.TypTuple; int_ nb_elems_0; FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LN10Ast__typ_t(b_elems_2, &nb_elems_0, 0), _fx_catch_153); int_ ncolls_0; @@ -26854,7 +26361,7 @@ FX_EXTERN_C int _fx_N10Ast__typ_t bt_1 = lst_13->hd; FX_CALL( _fx_M13Ast_typecheckFM13check_map_typv7N10Ast__typ_tN10Ast__typ_tiR10Ast__loc_tBBi(bt_1, ct_1, i_1, - &eloc_0, make_list_0, make_vector_0, total_dims_0, 0), _fx_catch_152); + &eloc_0, make_list_0, make_vector_0, total_dims_1, 0), _fx_catch_152); _fx_catch_152: ; FX_CHECK_EXN(_fx_catch_153); @@ -26878,10 +26385,10 @@ FX_EXTERN_C int } } bool res_36; - if (FX_REC_VARIANT_TAG(v_372) == 18) { + if (FX_REC_VARIANT_TAG(v_373) == 18) { res_36 = true; } - else if (FX_REC_VARIANT_TAG(v_373) == 18) { + else if (FX_REC_VARIANT_TAG(v_374) == 18) { res_36 = true; } else { @@ -26920,7 +26427,7 @@ FX_EXTERN_C int } FX_CALL( _fx_M13Ast_typecheckFM13check_map_typv7N10Ast__typ_tN10Ast__typ_tiR10Ast__loc_tBBi(btyp_3, etyp_0, -1, - &eloc_0, make_list_0, make_vector_0, total_dims_0, 0), _fx_catch_155); + &eloc_0, make_list_0, make_vector_0, total_dims_1, 0), _fx_catch_155); new_unzip_mode_0 = false; _fx_catch_155: ; @@ -26929,9 +26436,9 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_157); } else { - FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(new_body_3, &v_375, 0), _fx_catch_157); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_375, &v_376, 0), _fx_catch_157); - if (FX_REC_VARIANT_TAG(v_376) == 14) { + FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(new_body_3, &v_376, 0), _fx_catch_157); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_376, &v_377, 0), _fx_catch_157); + if (FX_REC_VARIANT_TAG(v_377) == 14) { fx_exn_t v_405 = {0}; fx_str_t slit_166 = FX_MAKE_STR("comprehension body cannot have \'void\' type"); FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_166, &v_405, 0), _fx_catch_156); @@ -26947,13 +26454,13 @@ FX_EXTERN_C int } FX_CALL( _fx_M13Ast_typecheckFM3revLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t1LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t( - map_clauses_1, &v_377, 0), _fx_catch_157); + map_clauses_1, &v_378, 0), _fx_catch_157); _fx_R16Ast__for_flags_t v_406 = { flags_1->for_flag_parallel, flags_1->for_flag_make, new_unzip_mode_0, flags_1->for_flag_fold, flags_1->for_flag_nested }; FX_CALL( _fx_M3AstFM6ExpMapN10Ast__exp_t4LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tRM11for_flags_tT2N10Ast__typ_tRM5loc_t( - v_377, new_body_3, &v_406, &vcase_26->t3, &result_44), _fx_catch_157); + v_378, new_body_3, &v_406, &vcase_26->t3, &result_44), _fx_catch_157); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_44, &result_0); FX_BREAK(_fx_catch_157); @@ -26963,70 +26470,70 @@ FX_EXTERN_C int if (result_44) { _fx_free_N10Ast__exp_t(&result_44); } + if (v_378) { + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_378); + } if (v_377) { - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_377); + _fx_free_N10Ast__typ_t(&v_377); } if (v_376) { _fx_free_N10Ast__typ_t(&v_376); } if (v_375) { - _fx_free_N10Ast__typ_t(&v_375); + _fx_free_Nt6option1N10Ast__typ_t(&v_375); } if (v_374) { - _fx_free_Nt6option1N10Ast__typ_t(&v_374); + _fx_free_N10Ast__typ_t(&v_374); } if (v_373) { _fx_free_N10Ast__typ_t(&v_373); } - if (v_372) { - _fx_free_N10Ast__typ_t(&v_372); - } if (new_body_3) { _fx_free_N10Ast__exp_t(&new_body_3); } if (btyp_3) { _fx_free_N10Ast__typ_t(&btyp_3); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_371); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_372); if (result_43) { _fx_free_N10Ast__exp_t(&result_43); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_370); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_371); + if (v_370) { + _fx_free_LN10Ast__exp_t(&v_370); + } if (v_369) { _fx_free_LN10Ast__exp_t(&v_369); } - if (v_368) { - _fx_free_LN10Ast__exp_t(&v_368); - } + FX_FREE_STR(&v_368); FX_FREE_STR(&v_367); - FX_FREE_STR(&v_366); if (coll_typ_0) { _fx_free_N10Ast__typ_t(&coll_typ_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_365); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_366); + if (v_365) { + _fx_free_N10Ast__typ_t(&v_365); + } if (v_364) { - _fx_free_N10Ast__typ_t(&v_364); + _fx_free_LLN10Ast__exp_t(&v_364); } - if (v_363) { - _fx_free_LLN10Ast__exp_t(&v_363); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_363); + if (v_362) { + _fx_free_N10Ast__typ_t(&v_362); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_362); if (v_361) { - _fx_free_N10Ast__typ_t(&v_361); - } - if (v_360) { - _fx_free_LN10Ast__exp_t(&v_360); + _fx_free_LN10Ast__exp_t(&v_361); } - if (__fold_result___4) { - _fx_free_N10Ast__exp_t(&__fold_result___4); + if (l_exp_0) { + _fx_free_N10Ast__exp_t(&l_exp_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_359); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_360); if (ltyp_0) { _fx_free_N10Ast__typ_t(<yp_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_358); - if (v_357) { - _fx_free_N10Ast__typ_t(&v_357); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_359); + if (v_358) { + _fx_free_N10Ast__typ_t(&v_358); } if (tl_1) { _fx_free_LN10Ast__typ_t(&tl_1); @@ -27047,24 +26554,28 @@ FX_EXTERN_C int if (for_clauses_1) { _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&for_clauses_1); } - _fx_free_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_356); - fx_free_exn(&v_355); + _fx_free_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_357); + fx_free_exn(&v_356); FX_FREE_STR(&coll_name_0); - fx_free_exn(&v_354); + fx_free_exn(&v_355); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_5); if (map_clauses_1) { _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&map_clauses_1); } - if (pre_code_1) { - _fx_free_LN10Ast__exp_t(&pre_code_1); + if (pre_code_2) { + _fx_free_LN10Ast__exp_t(&pre_code_2); } - _fx_free_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &v_353); if (map_clauses_0) { _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&map_clauses_0); } - _fx_free_T6iLN10Ast__exp_tLT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &__fold_result___3); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_acc_0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0); + if (map_clauses_acc_0) { + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&map_clauses_acc_0); + } + if (pre_code_1) { + _fx_free_LN10Ast__exp_t(&pre_code_1); + } FX_FREE_LIST_SIMPLE(&for_sc_1); goto _fx_endmatch_41; } @@ -27193,243 +26704,230 @@ FX_EXTERN_C int } if (tag_0 == 14) { _fx_N10Ast__typ_t elemtyp_1 = 0; - _fx_T4iLLN10Ast__exp_tBi __fold_result___5 = {0}; + _fx_LLN10Ast__exp_t arows_acc_0 = 0; _fx_LLN10Ast__exp_t arows_0 = 0; - _fx_T4iLLN10Ast__exp_tBi v_418 = {0}; _fx_LLN10Ast__exp_t arows_1 = 0; _fx_N10Ast__typ_t atyp_0 = 0; - _fx_LLN10Ast__exp_t v_419 = 0; + _fx_LLN10Ast__exp_t v_418 = 0; _fx_N10Ast__exp_t result_46 = 0; FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&elemtyp_1, 0), _fx_catch_173); - _fx_make_T4iLLN10Ast__exp_tBi(0, 0, false, -1, &__fold_result___5); + int_ ncols_0 = 0; + bool have_expanded_acc_0 = false; + int_ dims_acc_0 = -1; int_ k_0 = 0; FX_COPY_PTR(e_2->u.ExpMkArray.t0, &arows_0); _fx_LLN10Ast__exp_t lst_15 = arows_0; for (; lst_15; lst_15 = lst_15->tl, k_0 += 1) { - _fx_T4iLLN10Ast__exp_tBi v_420 = {0}; - _fx_LLN10Ast__exp_t arows_2 = 0; - _fx_T3BiLN10Ast__exp_t __fold_result___6 = {0}; - _fx_T3BiLN10Ast__exp_t v_421 = {0}; + _fx_LN10Ast__exp_t arow_acc_0 = 0; _fx_LN10Ast__exp_t arow_0 = 0; + fx_str_t v_419 = {0}; + fx_str_t v_420 = {0}; + fx_str_t v_421 = {0}; fx_str_t v_422 = {0}; - fx_str_t v_423 = {0}; + fx_exn_t v_423 = {0}; fx_str_t v_424 = {0}; fx_str_t v_425 = {0}; - fx_exn_t v_426 = {0}; + fx_str_t v_426 = {0}; fx_str_t v_427 = {0}; - fx_str_t v_428 = {0}; - fx_str_t v_429 = {0}; - fx_str_t v_430 = {0}; - fx_exn_t v_431 = {0}; - _fx_LN10Ast__exp_t v_432 = 0; - _fx_LLN10Ast__exp_t v_433 = 0; - _fx_T4iLLN10Ast__exp_tBi v_434 = {0}; + fx_exn_t v_428 = {0}; + _fx_LN10Ast__exp_t v_429 = 0; + _fx_LLN10Ast__exp_t v_430 = 0; _fx_LN10Ast__exp_t arow_1 = lst_15->hd; - _fx_copy_T4iLLN10Ast__exp_tBi(&__fold_result___5, &v_420); - int_ ncols_0 = v_420.t0; - FX_COPY_PTR(v_420.t1, &arows_2); - _fx_make_T3BiLN10Ast__exp_t(false, -1, 0, &__fold_result___6); + bool have_expanded_i_0 = false; + int_ row_dims_acc_0 = -1; _fx_LN10Ast__exp_t lst_16 = arow_1; for (; lst_16; lst_16 = lst_16->tl) { - _fx_T3BiLN10Ast__exp_t v_435 = {0}; - _fx_LN10Ast__exp_t arow_2 = 0; - _fx_T4BiN10Ast__exp_tR10Ast__loc_t v_436 = {0}; + _fx_T4BiN10Ast__exp_tR10Ast__loc_t v_431 = {0}; _fx_N10Ast__exp_t elem1_0 = 0; - fx_str_t v_437 = {0}; - fx_str_t v_438 = {0}; - fx_str_t v_439 = {0}; - fx_exn_t v_440 = {0}; - _fx_T3BiLN10Ast__exp_t v_441 = {0}; + fx_str_t v_432 = {0}; + fx_str_t v_433 = {0}; + fx_str_t v_434 = {0}; + fx_exn_t v_435 = {0}; + _fx_LN10Ast__exp_t v_436 = 0; _fx_N10Ast__exp_t elem_0 = lst_16->hd; - _fx_copy_T3BiLN10Ast__exp_t(&__fold_result___6, &v_435); - int_ row_dims_0 = v_435.t1; - FX_COPY_PTR(v_435.t2, &arow_2); if (FX_REC_VARIANT_TAG(elem_0) == 9) { _fx_T3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_27 = &elem_0->u.ExpUnary; if (vcase_27->t0.tag == 8) { _fx_N10Ast__exp_t e1_5 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_442 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_437 = {0}; _fx_N10Ast__typ_t arrtyp1_0 = 0; - _fx_N10Ast__typ_t v_443 = 0; - _fx_T3SiN10Ast__typ_t v_444 = {0}; + _fx_N10Ast__typ_t v_438 = 0; + _fx_T3SiN10Ast__typ_t v_439 = {0}; fx_str_t collname_0 = {0}; _fx_N10Ast__typ_t elemtyp1_0 = 0; - fx_exn_t v_445 = {0}; - fx_str_t v_446 = {0}; - fx_str_t v_447 = {0}; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_448 = {0}; - _fx_N10Ast__exp_t v_449 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t* v_450 = &vcase_27->t2; - _fx_R10Ast__loc_t* loc_0 = &v_450->t1; + fx_exn_t v_440 = {0}; + fx_str_t v_441 = {0}; + fx_str_t v_442 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_443 = {0}; + _fx_N10Ast__exp_t v_444 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t* v_445 = &vcase_27->t2; + _fx_R10Ast__loc_t* loc_0 = &v_445->t1; FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( vcase_27->t1, &env_2, sc_2, &e1_5, 0), _fx_catch_166); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_5, &v_442, 0), _fx_catch_166); - FX_COPY_PTR(v_442.t0, &arrtyp1_0); - _fx_R10Ast__loc_t eloc1_8 = v_442.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_5, &v_437, 0), _fx_catch_166); + FX_COPY_PTR(v_437.t0, &arrtyp1_0); + _fx_R10Ast__loc_t eloc1_8 = v_437.t1; fx_str_t slit_172 = FX_MAKE_STR("incorrect type of expanded collection"); FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(v_450->t0, arrtyp1_0, loc_0, + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(v_445->t0, arrtyp1_0, loc_0, &slit_172, 0), _fx_catch_166); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(arrtyp1_0, &v_443, 0), _fx_catch_166); - int tag_12 = FX_REC_VARIANT_TAG(v_443); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(arrtyp1_0, &v_438, 0), _fx_catch_166); + int tag_12 = FX_REC_VARIANT_TAG(v_438); if (tag_12 == 20) { - _fx_T2iN10Ast__typ_t* vcase_28 = &v_443->u.TypArray; + _fx_T2iN10Ast__typ_t* vcase_28 = &v_438->u.TypArray; fx_str_t slit_173 = FX_MAKE_STR("array"); - _fx_make_T3SiN10Ast__typ_t(&slit_173, vcase_28->t0, vcase_28->t1, &v_444); + _fx_make_T3SiN10Ast__typ_t(&slit_173, vcase_28->t0, vcase_28->t1, &v_439); } else if (tag_12 == 16) { fx_str_t slit_174 = FX_MAKE_STR("list"); - _fx_make_T3SiN10Ast__typ_t(&slit_174, 1, v_443->u.TypList, &v_444); + _fx_make_T3SiN10Ast__typ_t(&slit_174, 1, v_438->u.TypList, &v_439); } else if (tag_12 == 11) { fx_str_t slit_175 = FX_MAKE_STR("string"); - _fx_make_T3SiN10Ast__typ_t(&slit_175, 1, _fx_g22Ast_typecheck__TypChar, &v_444); + _fx_make_T3SiN10Ast__typ_t(&slit_175, 1, _fx_g22Ast_typecheck__TypChar, &v_439); } else { - fx_exn_t v_451 = {0}; + fx_exn_t v_446 = {0}; fx_str_t slit_176 = FX_MAKE_STR("incorrect type of expanded collection (it should be an array, list or string)"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_176, &v_451, 0), _fx_catch_165); - FX_THROW(&v_451, false, _fx_catch_165); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_176, &v_446, 0), _fx_catch_165); + FX_THROW(&v_446, false, _fx_catch_165); _fx_catch_165: ; - fx_free_exn(&v_451); + fx_free_exn(&v_446); } FX_CHECK_EXN(_fx_catch_166); - fx_copy_str(&v_444.t0, &collname_0); - int_ d_0 = v_444.t1; - FX_COPY_PTR(v_444.t2, &elemtyp1_0); + fx_copy_str(&v_439.t0, &collname_0); + int_ d_0 = v_439.t1; + FX_COPY_PTR(v_439.t2, &elemtyp1_0); if (d_0 > 2) { fx_str_t slit_177 = FX_MAKE_STR("currently expansion of more than 2-dimensional arrays is not supported"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_177, &v_445, 0), _fx_catch_166); - FX_THROW(&v_445, false, _fx_catch_166); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_177, &v_440, 0), _fx_catch_166); + FX_THROW(&v_440, false, _fx_catch_166); } - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&collname_0, &v_446, 0), _fx_catch_166); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&collname_0, &v_441, 0), _fx_catch_166); fx_str_t slit_178 = FX_MAKE_STR("the expanded "); fx_str_t slit_179 = FX_MAKE_STR(" elem type does not match the previous elements"); { - const fx_str_t strs_21[] = { slit_178, v_446, slit_179 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_21, 3, &v_447), _fx_catch_166); + const fx_str_t strs_21[] = { slit_178, v_441, slit_179 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_21, 3, &v_442), _fx_catch_166); } FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(elemtyp_1, elemtyp1_0, &eloc1_8, - &v_447, 0), _fx_catch_166); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(arrtyp1_0, loc_0, &v_448); + &v_442, 0), _fx_catch_166); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(arrtyp1_0, loc_0, &v_443); FX_CALL( _fx_M3AstFM8ExpUnaryN10Ast__exp_t3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - &_fx_g23Ast_typecheck__OpExpand, e1_5, &v_448, &v_449), _fx_catch_166); - _fx_make_T4BiN10Ast__exp_tR10Ast__loc_t(true, d_0, v_449, loc_0, &v_436); + &_fx_g23Ast_typecheck__OpExpand, e1_5, &v_443, &v_444), _fx_catch_166); + _fx_make_T4BiN10Ast__exp_tR10Ast__loc_t(true, d_0, v_444, loc_0, &v_431); _fx_catch_166: ; - if (v_449) { - _fx_free_N10Ast__exp_t(&v_449); + if (v_444) { + _fx_free_N10Ast__exp_t(&v_444); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_448); - FX_FREE_STR(&v_447); - FX_FREE_STR(&v_446); - fx_free_exn(&v_445); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_443); + FX_FREE_STR(&v_442); + FX_FREE_STR(&v_441); + fx_free_exn(&v_440); if (elemtyp1_0) { _fx_free_N10Ast__typ_t(&elemtyp1_0); } FX_FREE_STR(&collname_0); - _fx_free_T3SiN10Ast__typ_t(&v_444); - if (v_443) { - _fx_free_N10Ast__typ_t(&v_443); + _fx_free_T3SiN10Ast__typ_t(&v_439); + if (v_438) { + _fx_free_N10Ast__typ_t(&v_438); } if (arrtyp1_0) { _fx_free_N10Ast__typ_t(&arrtyp1_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_442); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_437); if (e1_5) { _fx_free_N10Ast__exp_t(&e1_5); } goto _fx_endmatch_32; } } - _fx_T2N10Ast__typ_tR10Ast__loc_t v_452 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_447 = {0}; _fx_N10Ast__typ_t elemtyp1_1 = 0; - _fx_N10Ast__exp_t v_453 = 0; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(elem_0, &v_452, 0), _fx_catch_167); - FX_COPY_PTR(v_452.t0, &elemtyp1_1); - _fx_R10Ast__loc_t eloc1_9 = v_452.t1; + _fx_N10Ast__exp_t v_448 = 0; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(elem_0, &v_447, 0), _fx_catch_167); + FX_COPY_PTR(v_447.t0, &elemtyp1_1); + _fx_R10Ast__loc_t eloc1_9 = v_447.t1; fx_str_t slit_180 = FX_MAKE_STR("all the scalar elements of the array should have the same type"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(elemtyp_1, elemtyp1_1, &eloc1_9, &slit_180, 0), _fx_catch_167); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - elem_0, &env_2, sc_2, &v_453, 0), _fx_catch_167); - _fx_make_T4BiN10Ast__exp_tR10Ast__loc_t(false, 1, v_453, &eloc1_9, &v_436); + elem_0, &env_2, sc_2, &v_448, 0), _fx_catch_167); + _fx_make_T4BiN10Ast__exp_tR10Ast__loc_t(false, 1, v_448, &eloc1_9, &v_431); _fx_catch_167: ; - if (v_453) { - _fx_free_N10Ast__exp_t(&v_453); + if (v_448) { + _fx_free_N10Ast__exp_t(&v_448); } if (elemtyp1_1) { _fx_free_N10Ast__typ_t(&elemtyp1_1); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_452); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_447); _fx_endmatch_32: ; FX_CHECK_EXN(_fx_catch_168); - bool is_expanded_0 = v_436.t0; - int_ elem_dims_0 = v_436.t1; - FX_COPY_PTR(v_436.t2, &elem1_0); - _fx_R10Ast__loc_t elem_loc_0 = v_436.t3; - int_ row_dims_1; - if (row_dims_0 >= 0) { - row_dims_1 = row_dims_0; + bool is_expanded_0 = v_431.t0; + int_ elem_dims_0 = v_431.t1; + FX_COPY_PTR(v_431.t2, &elem1_0); + _fx_R10Ast__loc_t elem_loc_0 = v_431.t3; + int_ row_dims_0; + if (row_dims_acc_0 >= 0) { + row_dims_0 = row_dims_acc_0; } else { - row_dims_1 = elem_dims_0; + row_dims_0 = elem_dims_0; } - if (row_dims_1 != elem_dims_0) { - FX_CALL(_fx_F6stringS1i(elem_dims_0, &v_437, 0), _fx_catch_168); - FX_CALL(_fx_F6stringS1i(row_dims_1, &v_438, 0), _fx_catch_168); + if (row_dims_0 != elem_dims_0) { + FX_CALL(_fx_F6stringS1i(elem_dims_0, &v_432, 0), _fx_catch_168); + FX_CALL(_fx_F6stringS1i(row_dims_0, &v_433, 0), _fx_catch_168); fx_str_t slit_181 = FX_MAKE_STR("dimensionality of array element (="); fx_str_t slit_182 = FX_MAKE_STR(") does not match the previous elements dimensionality (="); fx_str_t slit_183 = FX_MAKE_STR(") in the same row"); { - const fx_str_t strs_22[] = { slit_181, v_437, slit_182, v_438, slit_183 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_22, 5, &v_439), _fx_catch_168); + const fx_str_t strs_22[] = { slit_181, v_432, slit_182, v_433, slit_183 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_22, 5, &v_434), _fx_catch_168); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&elem_loc_0, &v_439, &v_440, 0), _fx_catch_168); - FX_THROW(&v_440, false, _fx_catch_168); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&elem_loc_0, &v_434, &v_435, 0), _fx_catch_168); + FX_THROW(&v_435, false, _fx_catch_168); } bool t_13; - if (v_435.t0) { + if (have_expanded_i_0) { t_13 = true; } else { t_13 = is_expanded_0; } - FX_CALL(_fx_cons_LN10Ast__exp_t(elem1_0, arow_2, false, &arow_2), _fx_catch_168); - _fx_make_T3BiLN10Ast__exp_t(t_13, row_dims_1, arow_2, &v_441); - _fx_free_T3BiLN10Ast__exp_t(&__fold_result___6); - _fx_copy_T3BiLN10Ast__exp_t(&v_441, &__fold_result___6); + have_expanded_i_0 = t_13; + row_dims_acc_0 = row_dims_0; + FX_CALL(_fx_cons_LN10Ast__exp_t(elem1_0, arow_acc_0, true, &v_436), _fx_catch_168); + _fx_free_LN10Ast__exp_t(&arow_acc_0); + FX_COPY_PTR(v_436, &arow_acc_0); _fx_catch_168: ; - _fx_free_T3BiLN10Ast__exp_t(&v_441); - fx_free_exn(&v_440); - FX_FREE_STR(&v_439); - FX_FREE_STR(&v_438); - FX_FREE_STR(&v_437); + if (v_436) { + _fx_free_LN10Ast__exp_t(&v_436); + } + fx_free_exn(&v_435); + FX_FREE_STR(&v_434); + FX_FREE_STR(&v_433); + FX_FREE_STR(&v_432); if (elem1_0) { _fx_free_N10Ast__exp_t(&elem1_0); } - _fx_free_T4BiN10Ast__exp_tR10Ast__loc_t(&v_436); - if (arow_2) { - _fx_free_LN10Ast__exp_t(&arow_2); - } - _fx_free_T3BiLN10Ast__exp_t(&v_435); + _fx_free_T4BiN10Ast__exp_tR10Ast__loc_t(&v_431); FX_CHECK_EXN(_fx_catch_172); } - _fx_copy_T3BiLN10Ast__exp_t(&__fold_result___6, &v_421); - bool have_expanded_i_0 = v_421.t0; - int_ row_dims_2 = v_421.t1; - FX_COPY_PTR(v_421.t2, &arow_0); + FX_COPY_PTR(arow_acc_0, &arow_0); + int_ row_dims_1 = row_dims_acc_0; int_ ncols_i_0; FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LN10Ast__exp_t(arow_0, &ncols_i_0, 0), _fx_catch_172); _fx_R10Ast__loc_t elem_loc_1; @@ -27439,14 +26937,16 @@ FX_EXTERN_C int _fx_catch_169: ; } else { - if (arows_2 != 0) { - _fx_N10Ast__exp_t v_454 = 0; - FX_CALL(_fx_M13Ast_typecheckFM4lastN10Ast__exp_t1LN10Ast__exp_t(arows_2->hd, &v_454, 0), _fx_catch_170); - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(v_454, &elem_loc_1, 0), _fx_catch_170); + _fx_LLN10Ast__exp_t arows_acc_1 = 0; + FX_COPY_PTR(arows_acc_0, &arows_acc_1); + if (arows_acc_1 != 0) { + _fx_N10Ast__exp_t v_449 = 0; + FX_CALL(_fx_M13Ast_typecheckFM4lastN10Ast__exp_t1LN10Ast__exp_t(arows_acc_1->hd, &v_449, 0), _fx_catch_170); + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(v_449, &elem_loc_1, 0), _fx_catch_170); _fx_catch_170: ; - if (v_454) { - _fx_free_N10Ast__exp_t(&v_454); + if (v_449) { + _fx_free_N10Ast__exp_t(&v_449); } } else { @@ -27455,24 +26955,27 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_171); _fx_catch_171: ; + if (arows_acc_1) { + _fx_free_LLN10Ast__exp_t(&arows_acc_1); + } } FX_CHECK_EXN(_fx_catch_172); if (ncols_i_0 == 0) { - FX_CALL(_fx_F6stringS1i(k_0 + 1, &v_422, 0), _fx_catch_172); - FX_CALL(_fx_M6StringFM10num_suffixS1i(k_0 + 1, &v_423, 0), _fx_catch_172); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_423, &v_424, 0), _fx_catch_172); + FX_CALL(_fx_F6stringS1i(k_0 + 1, &v_419, 0), _fx_catch_172); + FX_CALL(_fx_M6StringFM10num_suffixS1i(k_0 + 1, &v_420, 0), _fx_catch_172); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_420, &v_421, 0), _fx_catch_172); fx_str_t slit_184 = FX_MAKE_STR("the "); fx_str_t slit_185 = FX_MAKE_STR("-"); fx_str_t slit_186 = FX_MAKE_STR(" matrix row is empty"); { - const fx_str_t strs_23[] = { slit_184, v_422, slit_185, v_424, slit_186 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_23, 5, &v_425), _fx_catch_172); + const fx_str_t strs_23[] = { slit_184, v_419, slit_185, v_421, slit_186 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_23, 5, &v_422), _fx_catch_172); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&elem_loc_1, &v_425, &v_426, 0), _fx_catch_172); - FX_THROW(&v_426, false, _fx_catch_172); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&elem_loc_1, &v_422, &v_423, 0), _fx_catch_172); + FX_THROW(&v_423, false, _fx_catch_172); } bool have_expanded_0; - if (v_420.t2) { + if (have_expanded_acc_0) { have_expanded_0 = true; } else { @@ -27493,22 +26996,22 @@ FX_EXTERN_C int t_15 = false; } if (t_15) { - FX_CALL(_fx_F6stringS1i(k_0 + 1, &v_427, 0), _fx_catch_172); - FX_CALL(_fx_M6StringFM10num_suffixS1i(k_0 + 1, &v_428, 0), _fx_catch_172); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_428, &v_429, 0), _fx_catch_172); + FX_CALL(_fx_F6stringS1i(k_0 + 1, &v_424, 0), _fx_catch_172); + FX_CALL(_fx_M6StringFM10num_suffixS1i(k_0 + 1, &v_425, 0), _fx_catch_172); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_425, &v_426, 0), _fx_catch_172); fx_str_t slit_187 = FX_MAKE_STR("the "); fx_str_t slit_188 = FX_MAKE_STR("-"); fx_str_t slit_189 = FX_MAKE_STR(" matrix row contains a different number of elements"); { - const fx_str_t strs_24[] = { slit_187, v_427, slit_188, v_429, slit_189 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_24, 5, &v_430), _fx_catch_172); + const fx_str_t strs_24[] = { slit_187, v_424, slit_188, v_426, slit_189 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_24, 5, &v_427), _fx_catch_172); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&elem_loc_1, &v_430, &v_431, 0), _fx_catch_172); - FX_THROW(&v_431, false, _fx_catch_172); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&elem_loc_1, &v_427, &v_428, 0), _fx_catch_172); + FX_THROW(&v_428, false, _fx_catch_172); } int_ dims_1; - if (v_420.t3 < 0) { - dims_1 = row_dims_2; + if (dims_acc_0 < 0) { + dims_1 = row_dims_1; } else { dims_1 = 2; @@ -27520,50 +27023,47 @@ FX_EXTERN_C int else { t_16 = ncols_0; } - FX_CALL(_fx_M13Ast_typecheckFM3revLN10Ast__exp_t1LN10Ast__exp_t(arow_0, &v_432, 0), _fx_catch_172); - FX_CALL(_fx_cons_LLN10Ast__exp_t(v_432, arows_2, true, &v_433), _fx_catch_172); - _fx_make_T4iLLN10Ast__exp_tBi(t_16, v_433, have_expanded_0, dims_1, &v_434); - _fx_free_T4iLLN10Ast__exp_tBi(&__fold_result___5); - _fx_copy_T4iLLN10Ast__exp_tBi(&v_434, &__fold_result___5); + ncols_0 = t_16; + FX_CALL(_fx_M13Ast_typecheckFM3revLN10Ast__exp_t1LN10Ast__exp_t(arow_0, &v_429, 0), _fx_catch_172); + FX_CALL(_fx_cons_LLN10Ast__exp_t(v_429, arows_acc_0, true, &v_430), _fx_catch_172); + _fx_free_LLN10Ast__exp_t(&arows_acc_0); + FX_COPY_PTR(v_430, &arows_acc_0); + have_expanded_acc_0 = have_expanded_0; + dims_acc_0 = dims_1; _fx_catch_172: ; - _fx_free_T4iLLN10Ast__exp_tBi(&v_434); - if (v_433) { - _fx_free_LLN10Ast__exp_t(&v_433); + if (v_430) { + _fx_free_LLN10Ast__exp_t(&v_430); } - if (v_432) { - _fx_free_LN10Ast__exp_t(&v_432); + if (v_429) { + _fx_free_LN10Ast__exp_t(&v_429); } - fx_free_exn(&v_431); - FX_FREE_STR(&v_430); - FX_FREE_STR(&v_429); - FX_FREE_STR(&v_428); + fx_free_exn(&v_428); FX_FREE_STR(&v_427); - fx_free_exn(&v_426); + FX_FREE_STR(&v_426); FX_FREE_STR(&v_425); FX_FREE_STR(&v_424); - FX_FREE_STR(&v_423); + fx_free_exn(&v_423); FX_FREE_STR(&v_422); + FX_FREE_STR(&v_421); + FX_FREE_STR(&v_420); + FX_FREE_STR(&v_419); if (arow_0) { _fx_free_LN10Ast__exp_t(&arow_0); } - _fx_free_T3BiLN10Ast__exp_t(&v_421); - _fx_free_T3BiLN10Ast__exp_t(&__fold_result___6); - if (arows_2) { - _fx_free_LLN10Ast__exp_t(&arows_2); + if (arow_acc_0) { + _fx_free_LN10Ast__exp_t(&arow_acc_0); } - _fx_free_T4iLLN10Ast__exp_tBi(&v_420); FX_CHECK_EXN(_fx_catch_173); } - _fx_copy_T4iLLN10Ast__exp_tBi(&__fold_result___5, &v_418); - FX_COPY_PTR(v_418.t1, &arows_1); - int_ dims_2 = v_418.t3; + FX_COPY_PTR(arows_acc_0, &arows_1); + int_ dims_2 = dims_acc_0; FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(dims_2, elemtyp_1, &atyp_0), _fx_catch_173); fx_str_t slit_190 = FX_MAKE_STR("the array literal should produce an array"); FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(atyp_0, etyp_0, &eloc_0, &slit_190, 0), _fx_catch_173); - FX_CALL(_fx_M13Ast_typecheckFM3revLLN10Ast__exp_t1LLN10Ast__exp_t(arows_1, &v_419, 0), _fx_catch_173); - FX_CALL(_fx_M3AstFM10ExpMkArrayN10Ast__exp_t2LLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_419, &ctx_0, &result_46), + FX_CALL(_fx_M13Ast_typecheckFM3revLLN10Ast__exp_t1LLN10Ast__exp_t(arows_1, &v_418, 0), _fx_catch_173); + FX_CALL(_fx_M3AstFM10ExpMkArrayN10Ast__exp_t2LLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_418, &ctx_0, &result_46), _fx_catch_173); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_46, &result_0); @@ -27573,8 +27073,8 @@ FX_EXTERN_C int if (result_46) { _fx_free_N10Ast__exp_t(&result_46); } - if (v_419) { - _fx_free_LLN10Ast__exp_t(&v_419); + if (v_418) { + _fx_free_LLN10Ast__exp_t(&v_418); } if (atyp_0) { _fx_free_N10Ast__typ_t(&atyp_0); @@ -27582,11 +27082,12 @@ FX_EXTERN_C int if (arows_1) { _fx_free_LLN10Ast__exp_t(&arows_1); } - _fx_free_T4iLLN10Ast__exp_tBi(&v_418); if (arows_0) { _fx_free_LLN10Ast__exp_t(&arows_0); } - _fx_free_T4iLLN10Ast__exp_tBi(&__fold_result___5); + if (arows_acc_0) { + _fx_free_LLN10Ast__exp_t(&arows_acc_0); + } if (elemtyp_1) { _fx_free_N10Ast__typ_t(&elemtyp_1); } @@ -27594,165 +27095,166 @@ FX_EXTERN_C int } if (tag_0 == 15) { _fx_N10Ast__typ_t elemtyp_2 = 0; - _fx_LN10Ast__exp_t __fold_result___7 = 0; + _fx_LN10Ast__exp_t elems_acc_0 = 0; _fx_LN10Ast__exp_t elems_1 = 0; _fx_LN10Ast__exp_t elems_2 = 0; _fx_N10Ast__typ_t vectyp_0 = 0; - _fx_LN10Ast__exp_t v_455 = 0; + _fx_LN10Ast__exp_t v_450 = 0; _fx_N10Ast__exp_t result_47 = 0; FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&elemtyp_2, 0), _fx_catch_178); FX_COPY_PTR(e_2->u.ExpMkVector.t0, &elems_1); _fx_LN10Ast__exp_t lst_17 = elems_1; for (; lst_17; lst_17 = lst_17->tl) { - _fx_LN10Ast__exp_t elems_3 = 0; - _fx_LN10Ast__exp_t v_456 = 0; _fx_N10Ast__exp_t elem_1 = lst_17->hd; - FX_COPY_PTR(__fold_result___7, &elems_3); if (FX_REC_VARIANT_TAG(elem_1) == 9) { _fx_T3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_29 = &elem_1->u.ExpUnary; if (vcase_29->t0.tag == 8) { _fx_N10Ast__exp_t e1_6 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_457 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_451 = {0}; _fx_N10Ast__typ_t etyp1_11 = 0; - _fx_N10Ast__typ_t v_458 = 0; - _fx_T2SN10Ast__typ_t v_459 = {0}; + _fx_N10Ast__typ_t v_452 = 0; + _fx_T2SN10Ast__typ_t v_453 = {0}; fx_str_t collname_1 = {0}; _fx_N10Ast__typ_t elemtyp1_2 = 0; - fx_str_t v_460 = {0}; - fx_str_t v_461 = {0}; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_462 = {0}; - _fx_N10Ast__exp_t v_463 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t* v_464 = &vcase_29->t2; - _fx_N10Ast__typ_t t_17 = v_464->t0; + fx_str_t v_454 = {0}; + fx_str_t v_455 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_456 = {0}; + _fx_N10Ast__exp_t v_457 = 0; + _fx_LN10Ast__exp_t v_458 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t* v_459 = &vcase_29->t2; + _fx_N10Ast__typ_t t_17 = v_459->t0; FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( vcase_29->t1, &env_2, sc_2, &e1_6, 0), _fx_catch_175); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_6, &v_457, 0), _fx_catch_175); - FX_COPY_PTR(v_457.t0, &etyp1_11); - _fx_R10Ast__loc_t eloc1_10 = v_457.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_6, &v_451, 0), _fx_catch_175); + FX_COPY_PTR(v_451.t0, &etyp1_11); + _fx_R10Ast__loc_t eloc1_10 = v_451.t1; fx_str_t slit_191 = FX_MAKE_STR("incorrect type of expanded collection"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(t_17, etyp1_11, &eloc1_10, &slit_191, 0), _fx_catch_175); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_11, &v_458, 0), _fx_catch_175); - int tag_13 = FX_REC_VARIANT_TAG(v_458); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp1_11, &v_452, 0), _fx_catch_175); + int tag_13 = FX_REC_VARIANT_TAG(v_452); if (tag_13 == 20) { - _fx_T2iN10Ast__typ_t* vcase_30 = &v_458->u.TypArray; + _fx_T2iN10Ast__typ_t* vcase_30 = &v_452->u.TypArray; if (vcase_30->t0 == 1) { fx_str_t slit_192 = FX_MAKE_STR("array"); - _fx_make_T2SN10Ast__typ_t(&slit_192, vcase_30->t1, &v_459); + _fx_make_T2SN10Ast__typ_t(&slit_192, vcase_30->t1, &v_453); goto _fx_endmatch_33; } } if (tag_13 == 17) { fx_str_t slit_193 = FX_MAKE_STR("vector"); - _fx_make_T2SN10Ast__typ_t(&slit_193, v_458->u.TypVector, &v_459); + _fx_make_T2SN10Ast__typ_t(&slit_193, v_452->u.TypVector, &v_453); goto _fx_endmatch_33; } if (tag_13 == 16) { fx_str_t slit_194 = FX_MAKE_STR("list"); - _fx_make_T2SN10Ast__typ_t(&slit_194, v_458->u.TypList, &v_459); + _fx_make_T2SN10Ast__typ_t(&slit_194, v_452->u.TypList, &v_453); goto _fx_endmatch_33; } if (tag_13 == 11) { fx_str_t slit_195 = FX_MAKE_STR("string"); - _fx_make_T2SN10Ast__typ_t(&slit_195, _fx_g22Ast_typecheck__TypChar, &v_459); + _fx_make_T2SN10Ast__typ_t(&slit_195, _fx_g22Ast_typecheck__TypChar, &v_453); goto _fx_endmatch_33; } - fx_exn_t v_465 = {0}; + fx_exn_t v_460 = {0}; fx_str_t slit_196 = FX_MAKE_STR( "incorrect type \'{typ2str(etyp1)} of the expanded collection (it should be an 1D array, list or string)"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc1_10, &slit_196, &v_465, 0), _fx_catch_174); - FX_THROW(&v_465, false, _fx_catch_174); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc1_10, &slit_196, &v_460, 0), _fx_catch_174); + FX_THROW(&v_460, false, _fx_catch_174); _fx_catch_174: ; - fx_free_exn(&v_465); + fx_free_exn(&v_460); _fx_endmatch_33: ; FX_CHECK_EXN(_fx_catch_175); - fx_copy_str(&v_459.t0, &collname_1); - FX_COPY_PTR(v_459.t1, &elemtyp1_2); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&collname_1, &v_460, 0), _fx_catch_175); + fx_copy_str(&v_453.t0, &collname_1); + FX_COPY_PTR(v_453.t1, &elemtyp1_2); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&collname_1, &v_454, 0), _fx_catch_175); fx_str_t slit_197 = FX_MAKE_STR("the expanded \'"); fx_str_t slit_198 = FX_MAKE_STR("\' elem type does not match the previous elements"); { - const fx_str_t strs_25[] = { slit_197, v_460, slit_198 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_25, 3, &v_461), _fx_catch_175); + const fx_str_t strs_25[] = { slit_197, v_454, slit_198 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_25, 3, &v_455), _fx_catch_175); } FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(elemtyp_2, elemtyp1_2, &eloc1_10, - &v_461, 0), _fx_catch_175); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t_17, &v_464->t1, &v_462); + &v_455, 0), _fx_catch_175); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t_17, &v_459->t1, &v_456); FX_CALL( _fx_M3AstFM8ExpUnaryN10Ast__exp_t3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - &_fx_g23Ast_typecheck__OpExpand, e1_6, &v_462, &v_463), _fx_catch_175); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_463, elems_3, true, &v_456), _fx_catch_175); + &_fx_g23Ast_typecheck__OpExpand, e1_6, &v_456, &v_457), _fx_catch_175); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_457, elems_acc_0, true, &v_458), _fx_catch_175); + _fx_free_LN10Ast__exp_t(&elems_acc_0); + FX_COPY_PTR(v_458, &elems_acc_0); _fx_catch_175: ; - if (v_463) { - _fx_free_N10Ast__exp_t(&v_463); + if (v_458) { + _fx_free_LN10Ast__exp_t(&v_458); + } + if (v_457) { + _fx_free_N10Ast__exp_t(&v_457); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_462); - FX_FREE_STR(&v_461); - FX_FREE_STR(&v_460); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_456); + FX_FREE_STR(&v_455); + FX_FREE_STR(&v_454); if (elemtyp1_2) { _fx_free_N10Ast__typ_t(&elemtyp1_2); } FX_FREE_STR(&collname_1); - _fx_free_T2SN10Ast__typ_t(&v_459); - if (v_458) { - _fx_free_N10Ast__typ_t(&v_458); + _fx_free_T2SN10Ast__typ_t(&v_453); + if (v_452) { + _fx_free_N10Ast__typ_t(&v_452); } if (etyp1_11) { _fx_free_N10Ast__typ_t(&etyp1_11); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_457); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_451); if (e1_6) { _fx_free_N10Ast__exp_t(&e1_6); } goto _fx_endmatch_34; } } - _fx_T2N10Ast__typ_tR10Ast__loc_t v_466 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_461 = {0}; _fx_N10Ast__typ_t elemtyp1_3 = 0; - _fx_N10Ast__exp_t v_467 = 0; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(elem_1, &v_466, 0), _fx_catch_176); - FX_COPY_PTR(v_466.t0, &elemtyp1_3); - _fx_R10Ast__loc_t eloc1_11 = v_466.t1; + _fx_N10Ast__exp_t v_462 = 0; + _fx_LN10Ast__exp_t v_463 = 0; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(elem_1, &v_461, 0), _fx_catch_176); + FX_COPY_PTR(v_461.t0, &elemtyp1_3); + _fx_R10Ast__loc_t eloc1_11 = v_461.t1; fx_str_t slit_199 = FX_MAKE_STR("all the scalar elements of the vector should have the same type"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(elemtyp_2, elemtyp1_3, &eloc1_11, &slit_199, 0), _fx_catch_176); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - elem_1, &env_2, sc_2, &v_467, 0), _fx_catch_176); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_467, elems_3, true, &v_456), _fx_catch_176); + elem_1, &env_2, sc_2, &v_462, 0), _fx_catch_176); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_462, elems_acc_0, true, &v_463), _fx_catch_176); + _fx_free_LN10Ast__exp_t(&elems_acc_0); + FX_COPY_PTR(v_463, &elems_acc_0); _fx_catch_176: ; - if (v_467) { - _fx_free_N10Ast__exp_t(&v_467); + if (v_463) { + _fx_free_LN10Ast__exp_t(&v_463); + } + if (v_462) { + _fx_free_N10Ast__exp_t(&v_462); } if (elemtyp1_3) { _fx_free_N10Ast__typ_t(&elemtyp1_3); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_466); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_461); _fx_endmatch_34: ; FX_CHECK_EXN(_fx_catch_177); - _fx_free_LN10Ast__exp_t(&__fold_result___7); - FX_COPY_PTR(v_456, &__fold_result___7); _fx_catch_177: ; - if (v_456) { - _fx_free_LN10Ast__exp_t(&v_456); - } - if (elems_3) { - _fx_free_LN10Ast__exp_t(&elems_3); - } FX_CHECK_EXN(_fx_catch_178); } - FX_COPY_PTR(__fold_result___7, &elems_2); + FX_COPY_PTR(elems_acc_0, &elems_2); FX_CALL(_fx_M3AstFM9TypVectorN10Ast__typ_t1N10Ast__typ_t(elemtyp_2, &vectyp_0), _fx_catch_178); fx_str_t slit_200 = FX_MAKE_STR( @@ -27760,8 +27262,8 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(vectyp_0, etyp_0, &eloc_0, &slit_200, 0), _fx_catch_178); - FX_CALL(_fx_M13Ast_typecheckFM3revLN10Ast__exp_t1LN10Ast__exp_t(elems_2, &v_455, 0), _fx_catch_178); - FX_CALL(_fx_M3AstFM11ExpMkVectorN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_455, &ctx_0, &result_47), + FX_CALL(_fx_M13Ast_typecheckFM3revLN10Ast__exp_t1LN10Ast__exp_t(elems_2, &v_450, 0), _fx_catch_178); + FX_CALL(_fx_M3AstFM11ExpMkVectorN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_450, &ctx_0, &result_47), _fx_catch_178); _fx_free_N10Ast__exp_t(&result_0); FX_COPY_PTR(result_47, &result_0); @@ -27771,8 +27273,8 @@ FX_EXTERN_C int if (result_47) { _fx_free_N10Ast__exp_t(&result_47); } - if (v_455) { - _fx_free_LN10Ast__exp_t(&v_455); + if (v_450) { + _fx_free_LN10Ast__exp_t(&v_450); } if (vectyp_0) { _fx_free_N10Ast__typ_t(&vectyp_0); @@ -27783,8 +27285,8 @@ FX_EXTERN_C int if (elems_1) { _fx_free_LN10Ast__exp_t(&elems_1); } - if (__fold_result___7) { - _fx_free_LN10Ast__exp_t(&__fold_result___7); + if (elems_acc_0) { + _fx_free_LN10Ast__exp_t(&elems_acc_0); } if (elemtyp_2) { _fx_free_N10Ast__typ_t(&elemtyp_2); @@ -27792,16 +27294,16 @@ FX_EXTERN_C int goto _fx_endmatch_41; } if (tag_0 == 16) { - _fx_LR9Ast__id_t v_468 = 0; + _fx_LR9Ast__id_t v_464 = 0; _fx_LT2R9Ast__id_tN10Ast__exp_t r_initializers_0 = 0; - _fx_T2LT2R9Ast__id_tN10Ast__exp_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_469 = {0}; + _fx_T2LT2R9Ast__id_tN10Ast__exp_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_465 = {0}; _fx_LT2R9Ast__id_tN10Ast__exp_t lst_18 = 0; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_19 = 0; _fx_LT2R9Ast__id_tN10Ast__exp_t r_initializers_1 = 0; _fx_LT2R9Ast__id_tN10Ast__exp_t r_new_initializers_0 = 0; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_1 = 0; - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_470 = {0}; - _fx_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_471 = 0; + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_466 = {0}; + _fx_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_467 = 0; _fx_N10Ast__typ_t rtyp_0 = 0; _fx_T3N10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_31 = &e_2->u.ExpMkRecord; _fx_LT2R9Ast__id_tN10Ast__exp_t r_initializers_2 = vcase_31->t1; @@ -27813,12 +27315,12 @@ FX_EXTERN_C int _fx_T2R9Ast__id_tN10Ast__exp_t* __pat___3 = &lst_20->hd; _fx_LR9Ast__id_t node_10 = 0; FX_CALL(_fx_cons_LR9Ast__id_t(&__pat___3->t0, 0, false, &node_10), _fx_catch_179); - FX_LIST_APPEND(v_468, lstend_10, node_10); + FX_LIST_APPEND(v_464, lstend_10, node_10); _fx_catch_179: ; FX_CHECK_EXN(_fx_catch_183); } - FX_CALL(_fx_M13Ast_typecheckFM30check_for_rec_field_duplicatesv2LR9Ast__id_tR10Ast__loc_t(v_468, &eloc_0, 0), + FX_CALL(_fx_M13Ast_typecheckFM30check_for_rec_field_duplicatesv2LR9Ast__id_tR10Ast__loc_t(v_464, &eloc_0, 0), _fx_catch_183); _fx_LT2R9Ast__id_tN10Ast__exp_t lstend_11 = 0; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lstend_12 = 0; @@ -27827,12 +27329,12 @@ FX_EXTERN_C int for (; lst_21; lst_21 = lst_21->tl) { _fx_N10Ast__exp_t e_7 = 0; _fx_N10Ast__exp_t e_8 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_472 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_468 = {0}; _fx_N10Ast__typ_t etypi_0 = 0; - _fx_T2R9Ast__id_tN10Ast__exp_t v_473 = {0}; - _fx_R16Ast__val_flags_t v_474 = {0}; - _fx_N10Ast__exp_t v_475 = 0; - _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_476 = {0}; + _fx_T2R9Ast__id_tN10Ast__exp_t v_469 = {0}; + _fx_R16Ast__val_flags_t v_470 = {0}; + _fx_N10Ast__exp_t v_471 = 0; + _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_472 = {0}; _fx_T2T2R9Ast__id_tN10Ast__exp_tT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t tup_0 = {0}; _fx_T2R9Ast__id_tN10Ast__exp_t* __pat___4 = &lst_21->hd; _fx_R9Ast__id_t n_1 = __pat___4->t0; @@ -27840,14 +27342,14 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( e_7, &env_2, sc_2, &e_8, 0), _fx_catch_180); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e_8, &v_472, 0), _fx_catch_180); - FX_COPY_PTR(v_472.t0, &etypi_0); - _fx_R10Ast__loc_t eloci_0 = v_472.t1; - _fx_make_T2R9Ast__id_tN10Ast__exp_t(&n_1, e_8, &v_473); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_474, 0), _fx_catch_180); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&eloci_0, &v_475), _fx_catch_180); - _fx_make_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_474, &n_1, etypi_0, v_475, &v_476); - _fx_make_T2T2R9Ast__id_tN10Ast__exp_tT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_473, &v_476, + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e_8, &v_468, 0), _fx_catch_180); + FX_COPY_PTR(v_468.t0, &etypi_0); + _fx_R10Ast__loc_t eloci_0 = v_468.t1; + _fx_make_T2R9Ast__id_tN10Ast__exp_t(&n_1, e_8, &v_469); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_470, 0), _fx_catch_180); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&eloci_0, &v_471), _fx_catch_180); + _fx_make_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_470, &n_1, etypi_0, v_471, &v_472); + _fx_make_T2T2R9Ast__id_tN10Ast__exp_tT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_469, &v_472, &tup_0); _fx_LT2R9Ast__id_tN10Ast__exp_t node_11 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__exp_t(&tup_0.t0, 0, false, &node_11), _fx_catch_180); @@ -27859,16 +27361,16 @@ FX_EXTERN_C int _fx_catch_180: ; _fx_free_T2T2R9Ast__id_tN10Ast__exp_tT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&tup_0); - _fx_free_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_476); - if (v_475) { - _fx_free_N10Ast__exp_t(&v_475); + _fx_free_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_472); + if (v_471) { + _fx_free_N10Ast__exp_t(&v_471); } - _fx_free_R16Ast__val_flags_t(&v_474); - _fx_free_T2R9Ast__id_tN10Ast__exp_t(&v_473); + _fx_free_R16Ast__val_flags_t(&v_470); + _fx_free_T2R9Ast__id_tN10Ast__exp_t(&v_469); if (etypi_0) { _fx_free_N10Ast__typ_t(&etypi_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_472); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_468); if (e_8) { _fx_free_N10Ast__exp_t(&e_8); } @@ -27878,12 +27380,12 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_183); } _fx_make_T2LT2R9Ast__id_tN10Ast__exp_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(lst_18, lst_19, - &v_469); - FX_COPY_PTR(v_469.t0, &r_new_initializers_0); - FX_COPY_PTR(v_469.t1, &relems_1); - _fx_make_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(relems_1, false, &v_470); - FX_CALL(_fx_make_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_470, &v_471), _fx_catch_183); - FX_CALL(_fx_M3AstFM9TypRecordN10Ast__typ_t1rT2LT4RM11val_flags_tRM4id_tN10Ast__typ_tN10Ast__exp_tB(v_471, &rtyp_0), + &v_465); + FX_COPY_PTR(v_465.t0, &r_new_initializers_0); + FX_COPY_PTR(v_465.t1, &relems_1); + _fx_make_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(relems_1, false, &v_466); + FX_CALL(_fx_make_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_466, &v_467), _fx_catch_183); + FX_CALL(_fx_M3AstFM9TypRecordN10Ast__typ_t1rT2LT4RM11val_flags_tRM4id_tN10Ast__typ_tN10Ast__exp_tB(v_467, &rtyp_0), _fx_catch_183); if (FX_REC_VARIANT_TAG(r_e_0) == 1) { _fx_N10Ast__exp_t result_48 = 0; @@ -27904,17 +27406,17 @@ FX_EXTERN_C int } } else { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_477 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_473 = {0}; _fx_N10Ast__typ_t r_etyp_0 = 0; - _fx_LN10Ast__typ_t v_478 = 0; + _fx_LN10Ast__typ_t v_474 = 0; _fx_N10Ast__typ_t r_expected_typ_0 = 0; _fx_N10Ast__exp_t new_r_e_0 = 0; _fx_N10Ast__exp_t result_49 = 0; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(r_e_0, &v_477, 0), _fx_catch_182); - FX_COPY_PTR(v_477.t0, &r_etyp_0); - _fx_R10Ast__loc_t r_eloc_0 = v_477.t1; - FX_CALL(_fx_cons_LN10Ast__typ_t(rtyp_0, 0, true, &v_478), _fx_catch_182); - FX_CALL(_fx_M3AstFM6TypFunN10Ast__typ_t2LN10Ast__typ_tN10Ast__typ_t(v_478, etyp_0, &r_expected_typ_0), + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(r_e_0, &v_473, 0), _fx_catch_182); + FX_COPY_PTR(v_473.t0, &r_etyp_0); + _fx_R10Ast__loc_t r_eloc_0 = v_473.t1; + FX_CALL(_fx_cons_LN10Ast__typ_t(rtyp_0, 0, true, &v_474), _fx_catch_182); + FX_CALL(_fx_M3AstFM6TypFunN10Ast__typ_t2LN10Ast__typ_tN10Ast__typ_t(v_474, etyp_0, &r_expected_typ_0), _fx_catch_182); fx_str_t slit_202 = FX_MAKE_STR("there is no proper record constructor/function with record argument"); FX_CALL( @@ -27940,13 +27442,13 @@ FX_EXTERN_C int if (r_expected_typ_0) { _fx_free_N10Ast__typ_t(&r_expected_typ_0); } - if (v_478) { - _fx_free_LN10Ast__typ_t(&v_478); + if (v_474) { + _fx_free_LN10Ast__typ_t(&v_474); } if (r_etyp_0) { _fx_free_N10Ast__typ_t(&r_etyp_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_477); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_473); } FX_CHECK_EXN(_fx_catch_183); @@ -27954,10 +27456,10 @@ FX_EXTERN_C int if (rtyp_0) { _fx_free_N10Ast__typ_t(&rtyp_0); } - if (v_471) { - _fx_free_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_471); + if (v_467) { + _fx_free_rT2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_467); } - _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_470); + _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_466); if (relems_1) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_1); } @@ -27973,20 +27475,20 @@ FX_EXTERN_C int if (lst_18) { _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&lst_18); } - _fx_free_T2LT2R9Ast__id_tN10Ast__exp_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_469); + _fx_free_T2LT2R9Ast__id_tN10Ast__exp_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_465); if (r_initializers_0) { _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&r_initializers_0); } - FX_FREE_LIST_SIMPLE(&v_468); + FX_FREE_LIST_SIMPLE(&v_464); goto _fx_endmatch_41; } if (tag_0 == 17) { - _fx_LR9Ast__id_t v_479 = 0; + _fx_LR9Ast__id_t v_475 = 0; _fx_LT2R9Ast__id_tN10Ast__exp_t r_initializers_3 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_480 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_476 = {0}; _fx_N10Ast__typ_t rtyp_1 = 0; _fx_N10Ast__exp_t new_r_e_1 = 0; - _fx_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_481 = {0}; + _fx_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_477 = {0}; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_2 = 0; _fx_LT2R9Ast__id_tN10Ast__exp_t new_r_initializers_0 = 0; _fx_LT2R9Ast__id_tN10Ast__exp_t r_initializers_4 = 0; @@ -28001,16 +27503,16 @@ FX_EXTERN_C int _fx_T2R9Ast__id_tN10Ast__exp_t* __pat___5 = &lst_22->hd; _fx_LR9Ast__id_t node_13 = 0; FX_CALL(_fx_cons_LR9Ast__id_t(&__pat___5->t0, 0, false, &node_13), _fx_catch_184); - FX_LIST_APPEND(v_479, lstend_13, node_13); + FX_LIST_APPEND(v_475, lstend_13, node_13); _fx_catch_184: ; FX_CHECK_EXN(_fx_catch_188); } - FX_CALL(_fx_M13Ast_typecheckFM30check_for_rec_field_duplicatesv2LR9Ast__id_tR10Ast__loc_t(v_479, &eloc_0, 0), + FX_CALL(_fx_M13Ast_typecheckFM30check_for_rec_field_duplicatesv2LR9Ast__id_tR10Ast__loc_t(v_475, &eloc_0, 0), _fx_catch_188); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(r_e_1, &v_480, 0), _fx_catch_188); - FX_COPY_PTR(v_480.t0, &rtyp_1); - _fx_R10Ast__loc_t rloc_0 = v_480.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(r_e_1, &v_476, 0), _fx_catch_188); + FX_COPY_PTR(v_476.t0, &rtyp_1); + _fx_R10Ast__loc_t rloc_0 = v_476.t1; fx_str_t slit_203 = FX_MAKE_STR("the types of the update-record argument and the result do not match"); FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(rtyp_1, etyp_0, &eloc_0, &slit_203, 0), _fx_catch_188); @@ -28019,45 +27521,45 @@ FX_EXTERN_C int r_e_1, &env_2, sc_2, &new_r_e_1, 0), _fx_catch_188); FX_CALL( _fx_M13Ast_typecheckFM16get_record_elemsT2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t4Nt6option1R9Ast__id_tN10Ast__typ_tBR10Ast__loc_t( - &_fx_g22Ast_typecheck__None13_, rtyp_1, false, &rloc_0, &v_481, 0), _fx_catch_188); - FX_COPY_PTR(v_481.t1, &relems_2); + &_fx_g22Ast_typecheck__None13_, rtyp_1, false, &rloc_0, &v_477, 0), _fx_catch_188); + FX_COPY_PTR(v_477.t1, &relems_2); _fx_LT2R9Ast__id_tN10Ast__exp_t lstend_14 = 0; FX_COPY_PTR(r_initializers_5, &r_initializers_4); _fx_LT2R9Ast__id_tN10Ast__exp_t lst_23 = r_initializers_4; for (; lst_23; lst_23 = lst_23->tl) { _fx_N10Ast__exp_t ei_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_482 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_478 = {0}; _fx_N10Ast__typ_t ei_typ_0 = 0; _fx_FPB1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t __lambda___1 = {0}; - _fx_Nt6option1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_483 = {0}; + _fx_Nt6option1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_479 = {0}; _fx_T2R9Ast__id_tN10Ast__exp_t res_37 = {0}; _fx_T2R9Ast__id_tN10Ast__exp_t* __pat___6 = &lst_23->hd; _fx_R9Ast__id_t ni_0 = __pat___6->t0; FX_COPY_PTR(__pat___6->t1, &ei_0); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(ei_0, &v_482, 0), _fx_catch_187); - FX_COPY_PTR(v_482.t0, &ei_typ_0); - _fx_R10Ast__loc_t ei_loc_0 = v_482.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(ei_0, &v_478, 0), _fx_catch_187); + FX_COPY_PTR(v_478.t0, &ei_typ_0); + _fx_R10Ast__loc_t ei_loc_0 = v_478.t1; _fx_M13Ast_typecheckFM9make_fp1_FPB1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t1R9Ast__id_t(&ni_0, &__lambda___1); FX_CALL( _fx_M13Ast_typecheckFM8find_optNt6option1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tFPB1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t( - relems_2, &__lambda___1, &v_483, 0), _fx_catch_187); - if (v_483.tag == 2) { - fx_str_t v_484 = {0}; - fx_str_t v_485 = {0}; - fx_str_t v_486 = {0}; + relems_2, &__lambda___1, &v_479, 0), _fx_catch_187); + if (v_479.tag == 2) { + fx_str_t v_480 = {0}; + fx_str_t v_481 = {0}; + fx_str_t v_482 = {0}; _fx_N10Ast__exp_t new_ei_0 = 0; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ni_0, &v_484, 0), _fx_catch_185); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_484, &v_485, 0), _fx_catch_185); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ni_0, &v_480, 0), _fx_catch_185); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_480, &v_481, 0), _fx_catch_185); fx_str_t slit_204 = FX_MAKE_STR("invalid type of the initializer of record field \'"); fx_str_t slit_205 = FX_MAKE_STR("\'"); { - const fx_str_t strs_26[] = { slit_204, v_485, slit_205 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_26, 3, &v_486), _fx_catch_185); + const fx_str_t strs_26[] = { slit_204, v_481, slit_205 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_26, 3, &v_482), _fx_catch_185); } FX_CALL( - _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(v_483.u.Some.t2, ei_typ_0, &ei_loc_0, - &v_486, 0), _fx_catch_185); + _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(v_479.u.Some.t2, ei_typ_0, &ei_loc_0, + &v_482, 0), _fx_catch_185); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( ei_0, &env_2, sc_2, &new_ei_0, 0), _fx_catch_185); @@ -28067,31 +27569,31 @@ FX_EXTERN_C int if (new_ei_0) { _fx_free_N10Ast__exp_t(&new_ei_0); } - FX_FREE_STR(&v_486); - FX_FREE_STR(&v_485); - FX_FREE_STR(&v_484); + FX_FREE_STR(&v_482); + FX_FREE_STR(&v_481); + FX_FREE_STR(&v_480); } else { - fx_str_t v_487 = {0}; - fx_str_t v_488 = {0}; - fx_str_t v_489 = {0}; - fx_exn_t v_490 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ni_0, &v_487, 0), _fx_catch_186); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_487, &v_488, 0), _fx_catch_186); + fx_str_t v_483 = {0}; + fx_str_t v_484 = {0}; + fx_str_t v_485 = {0}; + fx_exn_t v_486 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ni_0, &v_483, 0), _fx_catch_186); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_483, &v_484, 0), _fx_catch_186); fx_str_t slit_206 = FX_MAKE_STR("there is no record field \'"); fx_str_t slit_207 = FX_MAKE_STR("\' in the updated record"); { - const fx_str_t strs_27[] = { slit_206, v_488, slit_207 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_27, 3, &v_489), _fx_catch_186); + const fx_str_t strs_27[] = { slit_206, v_484, slit_207 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_27, 3, &v_485), _fx_catch_186); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&ei_loc_0, &v_489, &v_490, 0), _fx_catch_186); - FX_THROW(&v_490, false, _fx_catch_186); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&ei_loc_0, &v_485, &v_486, 0), _fx_catch_186); + FX_THROW(&v_486, false, _fx_catch_186); _fx_catch_186: ; - fx_free_exn(&v_490); - FX_FREE_STR(&v_489); - FX_FREE_STR(&v_488); - FX_FREE_STR(&v_487); + fx_free_exn(&v_486); + FX_FREE_STR(&v_485); + FX_FREE_STR(&v_484); + FX_FREE_STR(&v_483); } FX_CHECK_EXN(_fx_catch_187); _fx_LT2R9Ast__id_tN10Ast__exp_t node_14 = 0; @@ -28100,12 +27602,12 @@ FX_EXTERN_C int _fx_catch_187: ; _fx_free_T2R9Ast__id_tN10Ast__exp_t(&res_37); - _fx_free_Nt6option1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_483); + _fx_free_Nt6option1T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_479); FX_FREE_FP(&__lambda___1); if (ei_typ_0) { _fx_free_N10Ast__typ_t(&ei_typ_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_482); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_478); if (ei_0) { _fx_free_N10Ast__exp_t(&ei_0); } @@ -28131,35 +27633,35 @@ FX_EXTERN_C int if (relems_2) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_2); } - _fx_free_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_481); + _fx_free_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_477); if (new_r_e_1) { _fx_free_N10Ast__exp_t(&new_r_e_1); } if (rtyp_1) { _fx_free_N10Ast__typ_t(&rtyp_1); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_480); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_476); if (r_initializers_3) { _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&r_initializers_3); } - FX_FREE_LIST_SIMPLE(&v_479); + FX_FREE_LIST_SIMPLE(&v_475); goto _fx_endmatch_41; } if (tag_0 == 28) { _fx_LN12Ast__scope_t sc_3 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_491 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_487 = {0}; _fx_N10Ast__typ_t e1typ_0 = 0; _fx_N10Ast__exp_t new_e1_12 = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t new_cases_0 = 0; _fx_N10Ast__exp_t result_51 = 0; _fx_T3N10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_33 = &e_2->u.ExpTryCatch; _fx_N10Ast__exp_t e1_7 = vcase_33->t0; - _fx_N12Ast__scope_t v_492; - FX_CALL(_fx_M3AstFM13new_try_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_492, 0), _fx_catch_189); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_492, sc_2, true, &sc_3), _fx_catch_189); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_7, &v_491, 0), _fx_catch_189); - FX_COPY_PTR(v_491.t0, &e1typ_0); - _fx_R10Ast__loc_t e1loc_0 = v_491.t1; + _fx_N12Ast__scope_t v_488; + FX_CALL(_fx_M3AstFM13new_try_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_488, 0), _fx_catch_189); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_488, sc_2, true, &sc_3), _fx_catch_189); + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_7, &v_487, 0), _fx_catch_189); + FX_COPY_PTR(v_487.t0, &e1typ_0); + _fx_R10Ast__loc_t e1loc_0 = v_487.t1; fx_str_t slit_208 = FX_MAKE_STR("try body type does match the whole try-catch type"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, e1typ_0, &e1loc_0, &slit_208, 0), @@ -28190,7 +27692,7 @@ FX_EXTERN_C int if (e1typ_0) { _fx_free_N10Ast__typ_t(&e1typ_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_491); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_487); FX_FREE_LIST_SIMPLE(&sc_3); goto _fx_endmatch_41; } @@ -28233,13 +27735,13 @@ FX_EXTERN_C int _fx_N10Ast__typ_t t2_0 = 0; _fx_N10Ast__exp_t e1_8 = 0; _fx_N10Ast__typ_t t1_0 = 0; - _fx_N10Ast__typ_t v_493 = 0; - _fx_N10Ast__typ_t v_494 = 0; - _fx_T2N10Ast__exp_tLN10Ast__exp_t v_495 = {0}; + _fx_N10Ast__typ_t v_489 = 0; + _fx_N10Ast__typ_t v_490 = 0; + _fx_T2N10Ast__exp_tLN10Ast__exp_t v_491 = {0}; _fx_N10Ast__exp_t e1_9 = 0; _fx_LN10Ast__exp_t code_1 = 0; - _fx_N10Ast__typ_t v_496 = 0; - _fx_N10Ast__typ_t v_497 = 0; + _fx_N10Ast__typ_t v_492 = 0; + _fx_N10Ast__typ_t v_493 = 0; _fx_T3N10Ast__exp_tN10Ast__typ_tT2N10Ast__typ_tR10Ast__loc_t* vcase_35 = &e_2->u.ExpCast; FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( @@ -28248,8 +27750,8 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( vcase_35->t0, &env_2, sc_2, &e1_8, 0), _fx_catch_205); FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(e1_8, &t1_0, 0), _fx_catch_205); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t1_0, &v_493, 0), _fx_catch_205); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t2_0, &v_494, 0), _fx_catch_205); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t1_0, &v_489, 0), _fx_catch_205); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t2_0, &v_490, 0), _fx_catch_205); bool res_38; if (FX_REC_VARIANT_TAG(e1_8) == 7) { res_38 = true; @@ -28262,13 +27764,13 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_205); if (res_38) { - _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(e1_8, 0, &v_495); goto _fx_endmatch_35; + _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(e1_8, 0, &v_491); goto _fx_endmatch_35; } bool res_39; - if (FX_REC_VARIANT_TAG(v_494) == 18) { + if (FX_REC_VARIANT_TAG(v_490) == 18) { res_39 = true; } - else if (FX_REC_VARIANT_TAG(v_493) == 18) { + else if (FX_REC_VARIANT_TAG(v_489) == 18) { res_39 = true; } else { @@ -28278,65 +27780,65 @@ FX_EXTERN_C int if (res_39) { _fx_R16Ast__val_flags_t flags_2 = {0}; _fx_R13Ast__defval_t dv_0 = {0}; - _fx_N14Ast__id_info_t v_498 = {0}; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_499 = {0}; - _fx_N10Ast__exp_t v_500 = 0; - _fx_N10Ast__pat_t v_501 = 0; - _fx_N10Ast__exp_t v_502 = 0; - _fx_LN10Ast__exp_t v_503 = 0; + _fx_N14Ast__id_info_t v_494 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_495 = {0}; + _fx_N10Ast__exp_t v_496 = 0; + _fx_N10Ast__pat_t v_497 = 0; + _fx_N10Ast__exp_t v_498 = 0; + _fx_LN10Ast__exp_t v_499 = 0; _fx_R9Ast__id_t temp_id_0; fx_str_t slit_209 = FX_MAKE_STR("v"); FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(curr_m_idx_0, &slit_209, &temp_id_0, 0), _fx_catch_191); FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&flags_2, 0), _fx_catch_191); _fx_make_R13Ast__defval_t(&temp_id_0, t1_0, &flags_2, sc_2, &eloc_0, &dv_0); - _fx_M3AstFM6IdDValN14Ast__id_info_t1RM8defval_t(&dv_0, &v_498); - FX_CALL(_fx_M3AstFM12set_id_entryv2RM4id_tN14Ast__id_info_t(&temp_id_0, &v_498, 0), _fx_catch_191); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t1_0, &eloc_0, &v_499); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&temp_id_0, &v_499, &v_500), + _fx_M3AstFM6IdDValN14Ast__id_info_t1RM8defval_t(&dv_0, &v_494); + FX_CALL(_fx_M3AstFM12set_id_entryv2RM4id_tN14Ast__id_info_t(&temp_id_0, &v_494, 0), _fx_catch_191); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t1_0, &eloc_0, &v_495); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&temp_id_0, &v_495, &v_496), _fx_catch_191); - FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&temp_id_0, &eloc_0, &v_501), _fx_catch_191); + FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&temp_id_0, &eloc_0, &v_497), _fx_catch_191); FX_CALL( - _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_501, e1_8, &flags_2, &eloc_0, - &v_502), _fx_catch_191); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_502, 0, true, &v_503), _fx_catch_191); - _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(v_500, v_503, &v_495); + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_497, e1_8, &flags_2, &eloc_0, + &v_498), _fx_catch_191); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_498, 0, true, &v_499), _fx_catch_191); + _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(v_496, v_499, &v_491); _fx_catch_191: ; - if (v_503) { - _fx_free_LN10Ast__exp_t(&v_503); + if (v_499) { + _fx_free_LN10Ast__exp_t(&v_499); } - if (v_502) { - _fx_free_N10Ast__exp_t(&v_502); + if (v_498) { + _fx_free_N10Ast__exp_t(&v_498); } - if (v_501) { - _fx_free_N10Ast__pat_t(&v_501); + if (v_497) { + _fx_free_N10Ast__pat_t(&v_497); } - if (v_500) { - _fx_free_N10Ast__exp_t(&v_500); + if (v_496) { + _fx_free_N10Ast__exp_t(&v_496); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_499); - _fx_free_N14Ast__id_info_t(&v_498); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_495); + _fx_free_N14Ast__id_info_t(&v_494); _fx_free_R13Ast__defval_t(&dv_0); _fx_free_R16Ast__val_flags_t(&flags_2); goto _fx_endmatch_35; } - _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(e1_8, 0, &v_495); + _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(e1_8, 0, &v_491); _fx_endmatch_35: ; FX_CHECK_EXN(_fx_catch_205); - FX_COPY_PTR(v_495.t0, &e1_9); - FX_COPY_PTR(v_495.t1, &code_1); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t1_0, &v_496, 0), _fx_catch_205); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t2_0, &v_497, 0), _fx_catch_205); - if (FX_REC_VARIANT_TAG(v_497) == 25) { - _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_36 = &v_497->u.TypApp; + FX_COPY_PTR(v_491.t0, &e1_9); + FX_COPY_PTR(v_491.t1, &code_1); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t1_0, &v_492, 0), _fx_catch_205); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t2_0, &v_493, 0), _fx_catch_205); + if (FX_REC_VARIANT_TAG(v_493) == 25) { + _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_36 = &v_493->u.TypApp; if (vcase_36->t0 == 0) { - if (FX_REC_VARIANT_TAG(v_496) == 25) { - _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_37 = &v_496->u.TypApp; + if (FX_REC_VARIANT_TAG(v_492) == 25) { + _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_37 = &v_492->u.TypApp; if (vcase_37->t0 == 0) { _fx_N10Ast__exp_t new_e1_14 = 0; - _fx_N14Ast__id_info_t v_504 = {0}; - _fx_N14Ast__id_info_t v_505 = {0}; + _fx_N14Ast__id_info_t v_500 = {0}; + _fx_N14Ast__id_info_t v_501 = {0}; _fx_R9Ast__id_t* tn1_0 = &vcase_37->t1; _fx_R9Ast__id_t* tn2_0 = &vcase_36->t1; bool res_40; @@ -28345,211 +27847,211 @@ FX_EXTERN_C int FX_COPY_PTR(e1_9, &new_e1_14); } else { - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(tn1_0, &eloc_0, &v_504, 0), _fx_catch_198); - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(tn2_0, &eloc_0, &v_505, 0), _fx_catch_198); - if (v_504.tag == 6) { - if (v_505.tag == 6) { + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(tn1_0, &eloc_0, &v_500, 0), _fx_catch_198); + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(tn2_0, &eloc_0, &v_501, 0), _fx_catch_198); + if (v_500.tag == 6) { + if (v_501.tag == 6) { + fx_str_t v_502 = {0}; + fx_str_t v_503 = {0}; + fx_str_t v_504 = {0}; + fx_str_t v_505 = {0}; fx_str_t v_506 = {0}; - fx_str_t v_507 = {0}; - fx_str_t v_508 = {0}; - fx_str_t v_509 = {0}; - fx_str_t v_510 = {0}; - fx_exn_t v_511 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn1_0, &v_506, 0), _fx_catch_192); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_506, &v_507, 0), _fx_catch_192); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn2_0, &v_508, 0), _fx_catch_192); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_508, &v_509, 0), _fx_catch_192); + fx_exn_t v_507 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn1_0, &v_502, 0), _fx_catch_192); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_502, &v_503, 0), _fx_catch_192); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn2_0, &v_504, 0), _fx_catch_192); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_504, &v_505, 0), _fx_catch_192); fx_str_t slit_210 = FX_MAKE_STR("variant/record type \'"); fx_str_t slit_211 = FX_MAKE_STR("\' cannot be casted to another variant/record type \'"); fx_str_t slit_212 = FX_MAKE_STR("\'; define a custom function to do the conversion and call it"); { - const fx_str_t strs_28[] = { slit_210, v_507, slit_211, v_509, slit_212 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_28, 5, &v_510), _fx_catch_192); + const fx_str_t strs_28[] = { slit_210, v_503, slit_211, v_505, slit_212 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_28, 5, &v_506), _fx_catch_192); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_510, &v_511, 0), _fx_catch_192); - FX_THROW(&v_511, false, _fx_catch_192); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_506, &v_507, 0), _fx_catch_192); + FX_THROW(&v_507, false, _fx_catch_192); _fx_catch_192: ; - fx_free_exn(&v_511); - FX_FREE_STR(&v_510); - FX_FREE_STR(&v_509); - FX_FREE_STR(&v_508); - FX_FREE_STR(&v_507); + fx_free_exn(&v_507); FX_FREE_STR(&v_506); + FX_FREE_STR(&v_505); + FX_FREE_STR(&v_504); + FX_FREE_STR(&v_503); + FX_FREE_STR(&v_502); goto _fx_endmatch_36; } } - if (v_505.tag == 7) { - if (v_504.tag == 6) { - _fx_R17Ast__defvariant_t v_512 = {0}; - _fx_R19Ast__definterface_t v_513 = {0}; + if (v_501.tag == 7) { + if (v_500.tag == 6) { + _fx_R17Ast__defvariant_t v_508 = {0}; + _fx_R19Ast__definterface_t v_509 = {0}; _fx_LT2R9Ast__id_tLTa2R9Ast__id_t dvar_ifaces_0 = 0; + fx_str_t v_510 = {0}; + fx_str_t v_511 = {0}; + fx_str_t v_512 = {0}; + fx_str_t v_513 = {0}; fx_str_t v_514 = {0}; - fx_str_t v_515 = {0}; - fx_str_t v_516 = {0}; - fx_str_t v_517 = {0}; - fx_str_t v_518 = {0}; - fx_exn_t v_519 = {0}; - _fx_LN10Ast__exp_t v_520 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_521 = {0}; - _fx_copy_R17Ast__defvariant_t(&v_504.u.IdVariant->data, &v_512); - _fx_copy_R19Ast__definterface_t(&v_505.u.IdInterface->data, &v_513); - _fx_R9Ast__id_t* di_name_0 = &v_513.di_name; - bool __fold_result___8 = false; - FX_COPY_PTR(v_512.dvar_ifaces, &dvar_ifaces_0); + fx_exn_t v_515 = {0}; + _fx_LN10Ast__exp_t v_516 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_517 = {0}; + _fx_copy_R17Ast__defvariant_t(&v_500.u.IdVariant->data, &v_508); + _fx_copy_R19Ast__definterface_t(&v_501.u.IdInterface->data, &v_509); + _fx_R9Ast__id_t* di_name_0 = &v_509.di_name; + bool __fold_result___1 = false; + FX_COPY_PTR(v_508.dvar_ifaces, &dvar_ifaces_0); _fx_LT2R9Ast__id_tLTa2R9Ast__id_t lst_24 = dvar_ifaces_0; for (; lst_24; lst_24 = lst_24->tl) { _fx_T2R9Ast__id_tLTa2R9Ast__id_t* __pat___7 = &lst_24->hd; _fx_R9Ast__id_t i_2 = __pat___7->t0; - bool v_522; + bool v_518; FX_CALL( - _fx_M3AstFM14same_or_parentB3RM4id_tRM4id_tRM5loc_t(&i_2, di_name_0, &eloc_0, &v_522, 0), + _fx_M3AstFM14same_or_parentB3RM4id_tRM4id_tRM5loc_t(&i_2, di_name_0, &eloc_0, &v_518, 0), _fx_catch_193); - if (v_522) { - __fold_result___8 = true; FX_BREAK(_fx_catch_193); + if (v_518) { + __fold_result___1 = true; FX_BREAK(_fx_catch_193); } _fx_catch_193: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_194); } - if (!__fold_result___8) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn1_0, &v_514, 0), _fx_catch_194); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_514, &v_515, 0), _fx_catch_194); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(di_name_0, &v_516, 0), _fx_catch_194); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_516, &v_517, 0), _fx_catch_194); + if (!__fold_result___1) { + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn1_0, &v_510, 0), _fx_catch_194); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_510, &v_511, 0), _fx_catch_194); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(di_name_0, &v_512, 0), _fx_catch_194); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_512, &v_513, 0), _fx_catch_194); fx_str_t slit_213 = FX_MAKE_STR("variant/record type \'"); fx_str_t slit_214 = FX_MAKE_STR("\' is casted to interface \'"); fx_str_t slit_215 = FX_MAKE_STR( "\', but the type does not implement any of the interfaces that can be casted to the interface"); { - const fx_str_t strs_29[] = { slit_213, v_515, slit_214, v_517, slit_215 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_29, 5, &v_518), _fx_catch_194); + const fx_str_t strs_29[] = { slit_213, v_511, slit_214, v_513, slit_215 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_29, 5, &v_514), _fx_catch_194); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_518, &v_519, 0), _fx_catch_194); - FX_THROW(&v_519, false, _fx_catch_194); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_514, &v_515, 0), _fx_catch_194); + FX_THROW(&v_515, false, _fx_catch_194); } - FX_CALL(_fx_cons_LN10Ast__exp_t(e1_9, 0, true, &v_520), _fx_catch_194); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t2_0, &eloc_0, &v_521); + FX_CALL(_fx_cons_LN10Ast__exp_t(e1_9, 0, true, &v_516), _fx_catch_194); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t2_0, &eloc_0, &v_517); FX_CALL( _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - &_fx_g31Ast_typecheck__IntrinQueryIface, v_520, &v_521, &new_e1_14), _fx_catch_194); + &_fx_g31Ast_typecheck__IntrinQueryIface, v_516, &v_517, &new_e1_14), _fx_catch_194); _fx_catch_194: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_521); - if (v_520) { - _fx_free_LN10Ast__exp_t(&v_520); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_517); + if (v_516) { + _fx_free_LN10Ast__exp_t(&v_516); } - fx_free_exn(&v_519); - FX_FREE_STR(&v_518); - FX_FREE_STR(&v_517); - FX_FREE_STR(&v_516); - FX_FREE_STR(&v_515); + fx_free_exn(&v_515); FX_FREE_STR(&v_514); + FX_FREE_STR(&v_513); + FX_FREE_STR(&v_512); + FX_FREE_STR(&v_511); + FX_FREE_STR(&v_510); if (dvar_ifaces_0) { _fx_free_LT2R9Ast__id_tLTa2R9Ast__id_t(&dvar_ifaces_0); } - _fx_free_R19Ast__definterface_t(&v_513); - _fx_free_R17Ast__defvariant_t(&v_512); + _fx_free_R19Ast__definterface_t(&v_509); + _fx_free_R17Ast__defvariant_t(&v_508); goto _fx_endmatch_36; } } - if (v_505.tag == 6) { - if (v_504.tag == 7) { - _fx_R19Ast__definterface_t v_523 = {0}; - _fx_R17Ast__defvariant_t v_524 = {0}; + if (v_501.tag == 6) { + if (v_500.tag == 7) { + _fx_R19Ast__definterface_t v_519 = {0}; + _fx_R17Ast__defvariant_t v_520 = {0}; _fx_LT2R9Ast__id_tLTa2R9Ast__id_t dvar_ifaces_1 = 0; + fx_str_t v_521 = {0}; + fx_str_t v_522 = {0}; + fx_str_t v_523 = {0}; + fx_str_t v_524 = {0}; fx_str_t v_525 = {0}; fx_str_t v_526 = {0}; fx_str_t v_527 = {0}; - fx_str_t v_528 = {0}; - fx_str_t v_529 = {0}; - fx_str_t v_530 = {0}; - fx_str_t v_531 = {0}; - fx_exn_t v_532 = {0}; - _fx_LN10Ast__exp_t v_533 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_534 = {0}; - _fx_copy_R19Ast__definterface_t(&v_504.u.IdInterface->data, &v_523); - _fx_R9Ast__id_t* di_name_1 = &v_523.di_name; - _fx_copy_R17Ast__defvariant_t(&v_505.u.IdVariant->data, &v_524); - bool __fold_result___9 = false; - FX_COPY_PTR(v_524.dvar_ifaces, &dvar_ifaces_1); + fx_exn_t v_528 = {0}; + _fx_LN10Ast__exp_t v_529 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_530 = {0}; + _fx_copy_R19Ast__definterface_t(&v_500.u.IdInterface->data, &v_519); + _fx_R9Ast__id_t* di_name_1 = &v_519.di_name; + _fx_copy_R17Ast__defvariant_t(&v_501.u.IdVariant->data, &v_520); + bool __fold_result___2 = false; + FX_COPY_PTR(v_520.dvar_ifaces, &dvar_ifaces_1); _fx_LT2R9Ast__id_tLTa2R9Ast__id_t lst_25 = dvar_ifaces_1; for (; lst_25; lst_25 = lst_25->tl) { _fx_T2R9Ast__id_tLTa2R9Ast__id_t* __pat___8 = &lst_25->hd; _fx_R9Ast__id_t i_3 = __pat___8->t0; - bool v_535; + bool v_531; FX_CALL( - _fx_M3AstFM14same_or_parentB3RM4id_tRM4id_tRM5loc_t(&i_3, di_name_1, &eloc_0, &v_535, 0), + _fx_M3AstFM14same_or_parentB3RM4id_tRM4id_tRM5loc_t(&i_3, di_name_1, &eloc_0, &v_531, 0), _fx_catch_195); - if (v_535) { - __fold_result___9 = true; FX_BREAK(_fx_catch_195); + if (v_531) { + __fold_result___2 = true; FX_BREAK(_fx_catch_195); } _fx_catch_195: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_196); } - if (!__fold_result___9) { + if (!__fold_result___2) { + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(di_name_1, &v_521, 0), _fx_catch_196); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_521, &v_522, 0), _fx_catch_196); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn1_0, &v_523, 0), _fx_catch_196); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_523, &v_524, 0), _fx_catch_196); FX_CALL(_fx_M3AstFM2ppS1RM4id_t(di_name_1, &v_525, 0), _fx_catch_196); FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_525, &v_526, 0), _fx_catch_196); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn1_0, &v_527, 0), _fx_catch_196); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_527, &v_528, 0), _fx_catch_196); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(di_name_1, &v_529, 0), _fx_catch_196); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_529, &v_530, 0), _fx_catch_196); fx_str_t slit_216 = FX_MAKE_STR("interface \'"); fx_str_t slit_217 = FX_MAKE_STR("\' is casted to variant/record type \'"); fx_str_t slit_218 = FX_MAKE_STR("\', but the type does not implement neither \'"); fx_str_t slit_219 = FX_MAKE_STR("\' nor anything derived from it"); { - const fx_str_t strs_30[] = { slit_216, v_526, slit_217, v_528, slit_218, v_530, slit_219 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_30, 7, &v_531), _fx_catch_196); + const fx_str_t strs_30[] = { slit_216, v_522, slit_217, v_524, slit_218, v_526, slit_219 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_30, 7, &v_527), _fx_catch_196); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_531, &v_532, 0), _fx_catch_196); - FX_THROW(&v_532, false, _fx_catch_196); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_527, &v_528, 0), _fx_catch_196); + FX_THROW(&v_528, false, _fx_catch_196); } - FX_CALL(_fx_cons_LN10Ast__exp_t(e1_9, 0, true, &v_533), _fx_catch_196); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t2_0, &eloc_0, &v_534); + FX_CALL(_fx_cons_LN10Ast__exp_t(e1_9, 0, true, &v_529), _fx_catch_196); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t2_0, &eloc_0, &v_530); FX_CALL( _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - &_fx_g30Ast_typecheck__IntrinGetObject, v_533, &v_534, &new_e1_14), _fx_catch_196); + &_fx_g30Ast_typecheck__IntrinGetObject, v_529, &v_530, &new_e1_14), _fx_catch_196); _fx_catch_196: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_534); - if (v_533) { - _fx_free_LN10Ast__exp_t(&v_533); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_530); + if (v_529) { + _fx_free_LN10Ast__exp_t(&v_529); } - fx_free_exn(&v_532); - FX_FREE_STR(&v_531); - FX_FREE_STR(&v_530); - FX_FREE_STR(&v_529); - FX_FREE_STR(&v_528); + fx_free_exn(&v_528); FX_FREE_STR(&v_527); FX_FREE_STR(&v_526); FX_FREE_STR(&v_525); + FX_FREE_STR(&v_524); + FX_FREE_STR(&v_523); + FX_FREE_STR(&v_522); + FX_FREE_STR(&v_521); if (dvar_ifaces_1) { _fx_free_LT2R9Ast__id_tLTa2R9Ast__id_t(&dvar_ifaces_1); } - _fx_free_R17Ast__defvariant_t(&v_524); - _fx_free_R19Ast__definterface_t(&v_523); + _fx_free_R17Ast__defvariant_t(&v_520); + _fx_free_R19Ast__definterface_t(&v_519); goto _fx_endmatch_36; } } - if (v_504.tag == 7) { - if (v_505.tag == 7) { - _fx_LN10Ast__exp_t v_536 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_537 = {0}; - FX_CALL(_fx_cons_LN10Ast__exp_t(e1_9, 0, true, &v_536), _fx_catch_197); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t2_0, &eloc_0, &v_537); + if (v_500.tag == 7) { + if (v_501.tag == 7) { + _fx_LN10Ast__exp_t v_532 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_533 = {0}; + FX_CALL(_fx_cons_LN10Ast__exp_t(e1_9, 0, true, &v_532), _fx_catch_197); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t2_0, &eloc_0, &v_533); FX_CALL( _fx_M3AstFM9ExpIntrinN10Ast__exp_t3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - &_fx_g31Ast_typecheck__IntrinQueryIface, v_536, &v_537, &new_e1_14), _fx_catch_197); + &_fx_g31Ast_typecheck__IntrinQueryIface, v_532, &v_533, &new_e1_14), _fx_catch_197); _fx_catch_197: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_537); - if (v_536) { - _fx_free_LN10Ast__exp_t(&v_536); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_533); + if (v_532) { + _fx_free_LN10Ast__exp_t(&v_532); } goto _fx_endmatch_36; } @@ -28569,8 +28071,8 @@ FX_EXTERN_C int FX_BREAK(_fx_catch_198); _fx_catch_198: ; - _fx_free_N14Ast__id_info_t(&v_505); - _fx_free_N14Ast__id_info_t(&v_504); + _fx_free_N14Ast__id_info_t(&v_501); + _fx_free_N14Ast__id_info_t(&v_500); if (new_e1_14) { _fx_free_N10Ast__exp_t(&new_e1_14); } @@ -28579,56 +28081,56 @@ FX_EXTERN_C int } } } - _fx_N10Ast__typ_t v_538 = 0; - _fx_N10Ast__typ_t v_539 = 0; + _fx_N10Ast__typ_t v_534 = 0; + _fx_N10Ast__typ_t v_535 = 0; + fx_str_t v_536 = {0}; + fx_str_t v_537 = {0}; + fx_str_t v_538 = {0}; + fx_str_t v_539 = {0}; fx_str_t v_540 = {0}; - fx_str_t v_541 = {0}; - fx_str_t v_542 = {0}; - fx_str_t v_543 = {0}; - fx_str_t v_544 = {0}; - fx_exn_t v_545 = {0}; + fx_exn_t v_541 = {0}; _fx_N10Ast__exp_t result_53 = 0; fx_exn_t exn_5 = {0}; - bool v_546; - FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(t1_0, &v_546, 0), _fx_catch_204); - bool v_547; + bool v_542; + FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(t1_0, &v_542, 0), _fx_catch_204); + bool v_543; bool t_18; - if (!v_546) { - bool v_548; FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(t2_0, &v_548, 0), _fx_catch_204); t_18 = !v_548; + if (!v_542) { + bool v_544; FX_CALL(_fx_M3AstFM13is_typ_scalarB1N10Ast__typ_t(t2_0, &v_544, 0), _fx_catch_204); t_18 = !v_544; } else { t_18 = false; } if (t_18) { - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t1_0, &v_538, 0), _fx_catch_204); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t2_0, &v_539, 0), _fx_catch_204); - if (FX_REC_VARIANT_TAG(v_538) == 18) { - if (FX_REC_VARIANT_TAG(v_539) == 18) { - v_547 = false; goto _fx_endmatch_37; + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t1_0, &v_534, 0), _fx_catch_204); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(t2_0, &v_535, 0), _fx_catch_204); + if (FX_REC_VARIANT_TAG(v_534) == 18) { + if (FX_REC_VARIANT_TAG(v_535) == 18) { + v_543 = false; goto _fx_endmatch_37; } } - v_547 = true; + v_543 = true; _fx_endmatch_37: ; FX_CHECK_EXN(_fx_catch_204); } else { - v_547 = false; + v_543 = false; } - if (v_547) { - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t1_0, &v_540, 0), _fx_catch_204); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_540, &v_541, 0), _fx_catch_204); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t2_0, &v_542, 0), _fx_catch_204); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_542, &v_543, 0), _fx_catch_204); + if (v_543) { + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t1_0, &v_536, 0), _fx_catch_204); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_536, &v_537, 0), _fx_catch_204); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t2_0, &v_538, 0), _fx_catch_204); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_538, &v_539, 0), _fx_catch_204); fx_str_t slit_221 = FX_MAKE_STR("invalid cast operation: \'"); fx_str_t slit_222 = FX_MAKE_STR("\' to \'"); fx_str_t slit_223 = FX_MAKE_STR("\'"); { - const fx_str_t strs_31[] = { slit_221, v_541, slit_222, v_543, slit_223 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_31, 5, &v_544), _fx_catch_204); + const fx_str_t strs_31[] = { slit_221, v_537, slit_222, v_539, slit_223 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_31, 5, &v_540), _fx_catch_204); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_544, &v_545, 0), _fx_catch_204); - FX_THROW(&v_545, false, _fx_catch_204); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_540, &v_541, 0), _fx_catch_204); + FX_THROW(&v_541, false, _fx_catch_204); } _fx_N10Ast__exp_t e2_4 = 0; _fx_N10Ast__typ_t t2_1 = 0; @@ -28640,23 +28142,23 @@ FX_EXTERN_C int FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, t2_1, &eloc_0, &slit_224, 0), _fx_catch_200); if (code_1 != 0) { - _fx_LN10Ast__exp_t v_549 = 0; - _fx_LN10Ast__exp_t v_550 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_551 = {0}; - FX_CALL(_fx_cons_LN10Ast__exp_t(e2_4, 0, true, &v_549), _fx_catch_199); - FX_CALL(_fx_M13Ast_typecheckFM7__add__LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(code_1, v_549, &v_550, 0), + _fx_LN10Ast__exp_t v_545 = 0; + _fx_LN10Ast__exp_t v_546 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_547 = {0}; + FX_CALL(_fx_cons_LN10Ast__exp_t(e2_4, 0, true, &v_545), _fx_catch_199); + FX_CALL(_fx_M13Ast_typecheckFM7__add__LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(code_1, v_545, &v_546, 0), _fx_catch_199); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t2_1, &eloc_0, &v_551); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_550, &v_551, &result_53), + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t2_1, &eloc_0, &v_547); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_546, &v_547, &result_53), _fx_catch_199); _fx_catch_199: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_551); - if (v_550) { - _fx_free_LN10Ast__exp_t(&v_550); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_547); + if (v_546) { + _fx_free_LN10Ast__exp_t(&v_546); } - if (v_549) { - _fx_free_LN10Ast__exp_t(&v_549); + if (v_545) { + _fx_free_LN10Ast__exp_t(&v_545); } } else { @@ -28679,17 +28181,17 @@ FX_EXTERN_C int } if (exn_5.tag == _FX_EXN_E17Ast__CompileError) { fx_exn_t exn_6 = {0}; - _fx_LN10Ast__exp_t v_552 = 0; + _fx_LN10Ast__exp_t v_548 = 0; _fx_R9Ast__id_t fname_0; FX_CALL(_fx_M3AstFM14get_cast_fnameRM4id_t2N10Ast__typ_tRM5loc_t(t2_0, &eloc_0, &fname_0, 0), _fx_catch_201); - FX_CALL(_fx_cons_LN10Ast__exp_t(e1_9, 0, true, &v_552), _fx_catch_201); + FX_CALL(_fx_cons_LN10Ast__exp_t(e1_9, 0, true, &v_548), _fx_catch_201); FX_CALL( _fx_M13Ast_typecheckFM19check_and_make_callN10Ast__exp_t7R9Ast__id_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_tR10Ast__loc_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tN10Ast__typ_tLN12Ast__scope_t( - &fname_0, v_552, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_53, 0), _fx_catch_201); + &fname_0, v_548, &ctx_0, &eloc_0, &env_2, etyp_0, sc_2, &result_53, 0), _fx_catch_201); _fx_catch_201: ; - if (v_552) { - _fx_free_LN10Ast__exp_t(&v_552); + if (v_548) { + _fx_free_LN10Ast__exp_t(&v_548); } if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_6); @@ -28698,33 +28200,33 @@ FX_EXTERN_C int _fx_free_N10Ast__exp_t(&result_53); } if (exn_6.tag == _FX_EXN_E17Ast__CompileError) { + fx_str_t v_549 = {0}; + fx_str_t v_550 = {0}; + fx_str_t v_551 = {0}; + fx_str_t v_552 = {0}; fx_str_t v_553 = {0}; - fx_str_t v_554 = {0}; - fx_str_t v_555 = {0}; - fx_str_t v_556 = {0}; - fx_str_t v_557 = {0}; - fx_exn_t v_558 = {0}; - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t1_0, &v_553, 0), _fx_catch_202); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_553, &v_554, 0), _fx_catch_202); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t2_0, &v_555, 0), _fx_catch_202); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_555, &v_556, 0), _fx_catch_202); + fx_exn_t v_554 = {0}; + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t1_0, &v_549, 0), _fx_catch_202); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_549, &v_550, 0), _fx_catch_202); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(t2_0, &v_551, 0), _fx_catch_202); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_551, &v_552, 0), _fx_catch_202); fx_str_t slit_225 = FX_MAKE_STR("invalid cast operation: \'"); fx_str_t slit_226 = FX_MAKE_STR("\' to \'"); fx_str_t slit_227 = FX_MAKE_STR("\'"); { - const fx_str_t strs_32[] = { slit_225, v_554, slit_226, v_556, slit_227 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_32, 5, &v_557), _fx_catch_202); + const fx_str_t strs_32[] = { slit_225, v_550, slit_226, v_552, slit_227 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_32, 5, &v_553), _fx_catch_202); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_557, &v_558, 0), _fx_catch_202); - FX_THROW(&v_558, false, _fx_catch_202); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_553, &v_554, 0), _fx_catch_202); + FX_THROW(&v_554, false, _fx_catch_202); _fx_catch_202: ; - fx_free_exn(&v_558); - FX_FREE_STR(&v_557); - FX_FREE_STR(&v_556); - FX_FREE_STR(&v_555); - FX_FREE_STR(&v_554); + fx_free_exn(&v_554); FX_FREE_STR(&v_553); + FX_FREE_STR(&v_552); + FX_FREE_STR(&v_551); + FX_FREE_STR(&v_550); + FX_FREE_STR(&v_549); } else { FX_RETHROW(&exn_6, _fx_catch_203); @@ -28749,28 +28251,28 @@ FX_EXTERN_C int if (result_53) { _fx_free_N10Ast__exp_t(&result_53); } - fx_free_exn(&v_545); - FX_FREE_STR(&v_544); - FX_FREE_STR(&v_543); - FX_FREE_STR(&v_542); - FX_FREE_STR(&v_541); + fx_free_exn(&v_541); FX_FREE_STR(&v_540); - if (v_539) { - _fx_free_N10Ast__typ_t(&v_539); + FX_FREE_STR(&v_539); + FX_FREE_STR(&v_538); + FX_FREE_STR(&v_537); + FX_FREE_STR(&v_536); + if (v_535) { + _fx_free_N10Ast__typ_t(&v_535); } - if (v_538) { - _fx_free_N10Ast__typ_t(&v_538); + if (v_534) { + _fx_free_N10Ast__typ_t(&v_534); } _fx_endmatch_38: ; FX_CHECK_EXN(_fx_catch_205); _fx_catch_205: ; - if (v_497) { - _fx_free_N10Ast__typ_t(&v_497); + if (v_493) { + _fx_free_N10Ast__typ_t(&v_493); } - if (v_496) { - _fx_free_N10Ast__typ_t(&v_496); + if (v_492) { + _fx_free_N10Ast__typ_t(&v_492); } if (code_1) { _fx_free_LN10Ast__exp_t(&code_1); @@ -28778,12 +28280,12 @@ FX_EXTERN_C int if (e1_9) { _fx_free_N10Ast__exp_t(&e1_9); } - _fx_free_T2N10Ast__exp_tLN10Ast__exp_t(&v_495); - if (v_494) { - _fx_free_N10Ast__typ_t(&v_494); + _fx_free_T2N10Ast__exp_tLN10Ast__exp_t(&v_491); + if (v_490) { + _fx_free_N10Ast__typ_t(&v_490); } - if (v_493) { - _fx_free_N10Ast__typ_t(&v_493); + if (v_489) { + _fx_free_N10Ast__typ_t(&v_489); } if (t1_0) { _fx_free_N10Ast__typ_t(&t1_0); @@ -28798,7 +28300,7 @@ FX_EXTERN_C int } if (tag_0 == 31) { _fx_N10Ast__typ_t new_t1_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_559 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_555 = {0}; _fx_N10Ast__typ_t e1typ_1 = 0; _fx_N10Ast__exp_t new_e1_15 = 0; _fx_N10Ast__exp_t result_54 = 0; @@ -28807,9 +28309,9 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( vcase_38->t1, &env_2, sc_2, &eloc_0, &new_t1_0, 0), _fx_catch_206); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_10, &v_559, 0), _fx_catch_206); - FX_COPY_PTR(v_559.t0, &e1typ_1); - _fx_R10Ast__loc_t e1loc_1 = v_559.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e1_10, &v_555, 0), _fx_catch_206); + FX_COPY_PTR(v_555.t0, &e1typ_1); + _fx_R10Ast__loc_t e1loc_1 = v_555.t1; fx_str_t slit_228 = FX_MAKE_STR("improper explicit type of the expression"); FX_CALL( _fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(etyp_0, new_t1_0, &eloc_0, &slit_228, 0), @@ -28838,7 +28340,7 @@ FX_EXTERN_C int if (e1typ_1) { _fx_free_N10Ast__typ_t(&e1typ_1); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_559); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_555); if (new_t1_0) { _fx_free_N10Ast__typ_t(&new_t1_0); } @@ -28859,14 +28361,14 @@ FX_EXTERN_C int fx_str_t str_1 = {0}; _fx_N10Ast__exp_t result_55 = 0; FX_CALL(_fx_M6StringFM5stripS1S(&e_2->u.ExpCCode.t0, &str_0, 0), _fx_catch_208); - bool v_560; + bool v_556; if (_fx_M6StringFM8endswithB2SC(&str_0, (char_)125, 0)) { - v_560 = true; + v_556 = true; } else { - v_560 = _fx_M6StringFM8endswithB2SC(&str_0, (char_)59, 0); + v_556 = _fx_M6StringFM8endswithB2SC(&str_0, (char_)59, 0); } - if (v_560) { + if (v_556) { fx_copy_str(&str_0, &str_1); } else { @@ -28893,40 +28395,40 @@ FX_EXTERN_C int } if (tag_0 == 33) { _fx_N10Ast__typ_t t_19 = 0; - _fx_N10Ast__typ_t v_561 = 0; - _fx_Nt6option1N10Ast__typ_t v_562 = 0; + _fx_N10Ast__typ_t v_557 = 0; + _fx_Nt6option1N10Ast__typ_t v_558 = 0; _fx_N10Ast__exp_t result_56 = 0; _fx_T3SST2N10Ast__typ_tR10Ast__loc_t* vcase_39 = &e_2->u.ExpData; fx_str_t* kind_0 = &vcase_39->t0; - bool v_563; + bool v_559; fx_str_t slit_230 = FX_MAKE_STR("text"); - v_563 = _fx_F6__eq__B2SS(kind_0, &slit_230, 0); - if (v_563) { + v_559 = _fx_F6__eq__B2SS(kind_0, &slit_230, 0); + if (v_559) { FX_COPY_PTR(_fx_g24Ast_typecheck__TypString, &t_19); } else { - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp_0, &v_561, 0), _fx_catch_212); - if (FX_REC_VARIANT_TAG(v_561) == 1) { - FX_COPY_PTR(v_561->u.TypVar->data, &v_562); - if ((v_562 != 0) + 1 == 1) { - _fx_N10Ast__typ_t v_564 = 0; - FX_CALL(_fx_M3AstFM7TypUIntN10Ast__typ_t1i(8, &v_564), _fx_catch_210); - FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(1, v_564, &t_19), _fx_catch_210); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp_0, &v_557, 0), _fx_catch_212); + if (FX_REC_VARIANT_TAG(v_557) == 1) { + FX_COPY_PTR(v_557->u.TypVar->data, &v_558); + if ((v_558 != 0) + 1 == 1) { + _fx_N10Ast__typ_t v_560 = 0; + FX_CALL(_fx_M3AstFM7TypUIntN10Ast__typ_t1i(8, &v_560), _fx_catch_210); + FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(1, v_560, &t_19), _fx_catch_210); _fx_catch_210: ; - if (v_564) { - _fx_free_N10Ast__typ_t(&v_564); + if (v_560) { + _fx_free_N10Ast__typ_t(&v_560); } goto _fx_endmatch_40; } } - _fx_N10Ast__typ_t v_565 = 0; - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_565, 0), _fx_catch_211); - FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(1, v_565, &t_19), _fx_catch_211); + _fx_N10Ast__typ_t v_561 = 0; + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_561, 0), _fx_catch_211); + FX_CALL(_fx_M3AstFM8TypArrayN10Ast__typ_t2iN10Ast__typ_t(1, v_561, &t_19), _fx_catch_211); _fx_catch_211: ; - if (v_565) { - _fx_free_N10Ast__typ_t(&v_565); + if (v_561) { + _fx_free_N10Ast__typ_t(&v_561); } _fx_endmatch_40: ; @@ -28946,11 +28448,11 @@ FX_EXTERN_C int if (result_56) { _fx_free_N10Ast__exp_t(&result_56); } - if (v_562) { - _fx_free_Nt6option1N10Ast__typ_t(&v_562); + if (v_558) { + _fx_free_Nt6option1N10Ast__typ_t(&v_558); } - if (v_561) { - _fx_free_N10Ast__typ_t(&v_561); + if (v_557) { + _fx_free_N10Ast__typ_t(&v_557); } if (t_19) { _fx_free_N10Ast__typ_t(&t_19); @@ -28990,14 +28492,14 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_214); if (res_41) { - fx_exn_t v_566 = {0}; + fx_exn_t v_562 = {0}; fx_str_t slit_232 = FX_MAKE_STR("internal err: should not get here; all the declarations and directives must be handled in check_eseq"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_232, &v_566, 0), _fx_catch_213); - FX_THROW(&v_566, false, _fx_catch_213); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_232, &v_562, 0), _fx_catch_213); + FX_THROW(&v_562, false, _fx_catch_213); _fx_catch_213: ; - fx_free_exn(&v_566); + fx_free_exn(&v_562); goto _fx_endmatch_41; } FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_214); @@ -29376,86 +28878,75 @@ static int fx_result, void* fx_fv) { - _fx_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t - __fold_result___0 = {0}; - _fx_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_0 = {0}; - _fx_LT2N10Ast__pat_tN10Ast__exp_t for_clauses_1 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t for_clauses_acc_0 = 0; _fx_LN10Ast__exp_t code_0 = 0; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_acc_0 = {0}; + _fx_Rt6Set__t1R9Ast__id_t idset_acc_0 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; _fx_Rt6Set__t1R9Ast__id_t idset_1 = {0}; + _fx_LT2N10Ast__pat_tN10Ast__exp_t for_clauses_1 = 0; _fx_N10Ast__typ_t idx_typ_0 = 0; - _fx_LN10Ast__typ_t v_1 = 0; - _fx_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_2 = {0}; + _fx_LN10Ast__typ_t v_0 = 0; + _fx_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_1 = {0}; _fx_N10Ast__pat_t idx_pat_1 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_2 = {0}; _fx_Rt6Set__t1R9Ast__id_t idset_2 = {0}; - _fx_LN10Ast__exp_t __fold_result___1 = 0; - _fx_LN10Ast__exp_t v_3 = 0; - _fx_LT2N10Ast__pat_tN10Ast__exp_t __fold_result___2 = 0; - _fx_LT2N10Ast__pat_tN10Ast__exp_t v_4 = 0; + _fx_LN10Ast__exp_t res_0 = 0; + _fx_LN10Ast__exp_t v_2 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t res_1 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_3 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); - _fx_make_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(0, 0, - 0, 0, env_0, idset_0, &__fold_result___0); + int_ trsz_0 = 0; + int_ dims_0 = 0; + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &env_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(idset_0, &idset_acc_0); int_ idx_0 = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t lst_0 = for_clauses_0; for (; lst_0; lst_0 = lst_0->tl, idx_0 += 1) { _fx_N10Ast__pat_t pi_0 = 0; _fx_N10Ast__exp_t ei_0 = 0; - _fx_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_5 = - {0}; - _fx_LT2N10Ast__pat_tN10Ast__exp_t for_clauses_2 = 0; - _fx_LN10Ast__exp_t code_1 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_3 = {0}; - _fx_Rt6Set__t1R9Ast__id_t idset_3 = {0}; - _fx_T6iT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_6 = + _fx_T6iT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_4 = {0}; _fx_N10Ast__pat_t pi_1 = 0; _fx_N10Ast__exp_t ei_1 = 0; _fx_LN10Ast__exp_t code_i_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_4 = {0}; - _fx_Rt6Set__t1R9Ast__id_t idset_4 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_3 = {0}; + _fx_Rt6Set__t1R9Ast__id_t idset_3 = {0}; + fx_exn_t v_5 = {0}; + fx_str_t v_6 = {0}; fx_exn_t v_7 = {0}; - fx_str_t v_8 = {0}; - fx_exn_t v_9 = {0}; - _fx_T2N10Ast__pat_tN10Ast__exp_t v_10 = {0}; + _fx_T2N10Ast__pat_tN10Ast__exp_t v_8 = {0}; + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_9 = 0; + _fx_Ta2LN10Ast__exp_t v_10 = {0}; _fx_LN10Ast__exp_t v_11 = 0; - _fx_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_12 = - {0}; _fx_T2N10Ast__pat_tN10Ast__exp_t* __pat___0 = &lst_0->hd; FX_COPY_PTR(__pat___0->t0, &pi_0); FX_COPY_PTR(__pat___0->t1, &ei_0); - _fx_copy_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &__fold_result___0, &v_5); - int_ trsz_0 = v_5.t0; - FX_COPY_PTR(v_5.t1, &for_clauses_2); - FX_COPY_PTR(v_5.t2, &code_1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_5.t4, &env_3); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_5.t5, &idset_3); FX_CALL( _fx_M13Ast_typecheckFM16check_for_clauseT6iT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t7N10Ast__pat_tN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tR16Ast__for_flags_tLN12Ast__scope_ti( - pi_0, ei_0, &env_3, &idset_3, flags_0, for_sc_0, curr_m_idx_0, &v_6, 0), _fx_catch_2); - int_ trszj_0 = v_6.t0; - _fx_T2N10Ast__pat_tN10Ast__exp_t* v_13 = &v_6.t1; - FX_COPY_PTR(v_13->t0, &pi_1); - FX_COPY_PTR(v_13->t1, &ei_1); - FX_COPY_PTR(v_6.t2, &code_i_0); - int_ dims_i_0 = v_6.t3; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_6.t4, &env_4); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_6.t5, &idset_4); + pi_0, ei_0, &env_acc_0, &idset_acc_0, flags_0, for_sc_0, curr_m_idx_0, &v_4, 0), _fx_catch_2); + int_ trszj_0 = v_4.t0; + _fx_T2N10Ast__pat_tN10Ast__exp_t* v_12 = &v_4.t1; + FX_COPY_PTR(v_12->t0, &pi_1); + FX_COPY_PTR(v_12->t1, &ei_1); + FX_COPY_PTR(v_4.t2, &code_i_0); + int_ dims_i_0 = v_4.t3; + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_4.t4, &env_3); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_4.t5, &idset_3); bool t_0; if (idx_0 > 0) { - t_0 = dims_i_0 != v_5.t3; + t_0 = dims_i_0 != dims_0; } else { t_0 = false; } if (t_0) { - _fx_R10Ast__loc_t v_14; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(ei_1, &v_14, 0), _fx_catch_2); + _fx_R10Ast__loc_t v_13; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(ei_1, &v_13, 0), _fx_catch_2); fx_str_t slit_0 = FX_MAKE_STR("the dimensionalities of simultaneously iterated containers/ranges do not match"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_14, &slit_0, &v_7, 0), _fx_catch_2); - FX_THROW(&v_7, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_13, &slit_0, &v_5, 0), _fx_catch_2); + FX_THROW(&v_5, false, _fx_catch_2); } bool t_1; if (idx_0 > 0) { @@ -29465,8 +28956,8 @@ static int t_1 = false; } if (t_1) { - _fx_R10Ast__loc_t v_15; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(ei_1, &v_15, 0), _fx_catch_2); + _fx_R10Ast__loc_t v_14; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(ei_1, &v_14, 0), _fx_catch_2); bool t_2; if (trsz_0 == 0) { t_2 = true; @@ -29478,62 +28969,69 @@ static int fx_str_t slit_1 = FX_MAKE_STR( "simultaneous iteration over tuples/records and some other containers or ranges is not supported yet"); - fx_copy_str(&slit_1, &v_8); + fx_copy_str(&slit_1, &v_6); } else { - fx_str_t slit_2 = FX_MAKE_STR("cannot iterate over tuples/records of different size"); fx_copy_str(&slit_2, &v_8); + fx_str_t slit_2 = FX_MAKE_STR("cannot iterate over tuples/records of different size"); fx_copy_str(&slit_2, &v_6); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_15, &v_8, &v_9, 0), _fx_catch_2); - FX_THROW(&v_9, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_14, &v_6, &v_7, 0), _fx_catch_2); + FX_THROW(&v_7, false, _fx_catch_2); } - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(pi_1, ei_1, &v_10); - FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_10, for_clauses_2, false, &for_clauses_2), _fx_catch_2); - if (code_i_0 == 0) { - FX_COPY_PTR(code_1, &v_11); + trsz_0 = trszj_0; + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(pi_1, ei_1, &v_8); + FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_8, for_clauses_acc_0, true, &v_9), _fx_catch_2); + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&for_clauses_acc_0); + FX_COPY_PTR(v_9, &for_clauses_acc_0); + _fx_make_Ta2LN10Ast__exp_t(code_i_0, code_0, &v_10); + if (v_10.t0 == 0) { + FX_COPY_PTR(code_0, &v_11); } - else if (code_1 == 0) { + else if (v_10.t1 == 0) { FX_COPY_PTR(code_i_0, &v_11); } else { - _fx_LN10Ast__exp_t v_16 = 0; + _fx_LN10Ast__exp_t v_15 = 0; _fx_LN10Ast__exp_t lstend_0 = 0; _fx_LN10Ast__exp_t lst_1 = code_i_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N10Ast__exp_t x_0 = lst_1->hd; _fx_LN10Ast__exp_t node_0 = 0; FX_CALL(_fx_cons_LN10Ast__exp_t(x_0, 0, false, &node_0), _fx_catch_0); - FX_LIST_APPEND(v_16, lstend_0, node_0); + FX_LIST_APPEND(v_15, lstend_0, node_0); _fx_catch_0: ; FX_CHECK_EXN(_fx_catch_1); } - _fx_M13Ast_typecheckFM5link2LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(v_16, code_1, &v_11, 0); + _fx_M13Ast_typecheckFM5link2LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(v_15, code_0, &v_11, 0); _fx_catch_1: ; - if (v_16) { - _fx_free_LN10Ast__exp_t(&v_16); + if (v_15) { + _fx_free_LN10Ast__exp_t(&v_15); } } FX_CHECK_EXN(_fx_catch_2); - _fx_make_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - trszj_0, for_clauses_2, v_11, dims_i_0, &env_4, &idset_4, &v_12); - _fx_free_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &__fold_result___0); - _fx_copy_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &v_12, &__fold_result___0); + _fx_free_LN10Ast__exp_t(&code_0); + FX_COPY_PTR(v_11, &code_0); + dims_0 = dims_i_0; + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3, &env_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&idset_3, &idset_acc_0); _fx_catch_2: ; - _fx_free_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &v_12); if (v_11) { _fx_free_LN10Ast__exp_t(&v_11); } - _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_10); - fx_free_exn(&v_9); - FX_FREE_STR(&v_8); + _fx_free_Ta2LN10Ast__exp_t(&v_10); + if (v_9) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_9); + } + _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_8); fx_free_exn(&v_7); - _fx_free_Rt6Set__t1R9Ast__id_t(&idset_4); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); + FX_FREE_STR(&v_6); + fx_free_exn(&v_5); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_3); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3); if (code_i_0) { _fx_free_LN10Ast__exp_t(&code_i_0); } @@ -29544,17 +29042,7 @@ static int _fx_free_N10Ast__pat_t(&pi_1); } _fx_free_T6iT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &v_6); - _fx_free_Rt6Set__t1R9Ast__id_t(&idset_3); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3); - if (code_1) { - _fx_free_LN10Ast__exp_t(&code_1); - } - if (for_clauses_2) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&for_clauses_2); - } - _fx_free_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &v_5); + &v_4); if (ei_0) { _fx_free_N10Ast__exp_t(&ei_0); } @@ -29563,142 +29051,138 @@ static int } FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &__fold_result___0, &v_0); - int_ trsz_1 = v_0.t0; - FX_COPY_PTR(v_0.t1, &for_clauses_1); - FX_COPY_PTR(v_0.t2, &code_0); - int_ dims_0 = v_0.t3; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0.t4, &env_1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_0.t5, &idset_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0, &env_1); + _fx_copy_Rt6Set__t1R9Ast__id_t(&idset_acc_0, &idset_1); + FX_COPY_PTR(for_clauses_acc_0, &for_clauses_1); if (dims_0 == 1) { FX_COPY_PTR(_fx_g21Ast_typecheck__TypInt, &idx_typ_0); } else { _fx_LN10Ast__typ_t lstend_1 = 0; - for (int_ __pat___1 = 0; __pat___1 < dims_0; __pat___1++) { + int_ n_0 = dims_0; + for (int_ __pat___1 = 0; __pat___1 < n_0; __pat___1++) { _fx_LN10Ast__typ_t node_1 = 0; FX_CALL(_fx_cons_LN10Ast__typ_t(_fx_g21Ast_typecheck__TypInt, 0, false, &node_1), _fx_catch_3); - FX_LIST_APPEND(v_1, lstend_1, node_1); + FX_LIST_APPEND(v_0, lstend_1, node_1); _fx_catch_3: ; FX_CHECK_EXN(_fx_cleanup); } - FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(v_1, &idx_typ_0), _fx_cleanup); + FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(v_0, &idx_typ_0), _fx_cleanup); } - if (trsz_1 != 0) { - _fx_make_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(idx_pat_0, &env_1, &idset_1, &v_2); + if (trsz_0 != 0) { + _fx_make_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(idx_pat_0, &env_1, &idset_1, &v_1); } else { if (FX_REC_VARIANT_TAG(idx_pat_0) == 1) { _fx_make_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(idx_pat_0, &env_1, &idset_1, - &v_2); + &v_1); } else { - _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_17 = {0}; + _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_16 = {0}; _fx_N10Ast__pat_t idx_pat_2 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_5 = {0}; - _fx_Rt6Set__t1R9Ast__id_t idset_5 = {0}; - _fx_N10Ast__pat_t v_18 = 0; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_4 = {0}; + _fx_Rt6Set__t1R9Ast__id_t idset_4 = {0}; + _fx_N10Ast__pat_t v_17 = 0; FX_CALL( _fx_M13Ast_typecheckFM9check_patT5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB9N10Ast__pat_tN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tLN12Ast__scope_tBBB( - idx_pat_0, idx_typ_0, &env_1, &idset_1, &_fx_g16Ast__empty_idset, for_sc_0, false, true, false, &v_17, 0), + idx_pat_0, idx_typ_0, &env_1, &idset_1, &_fx_g16Ast__empty_idset, for_sc_0, false, true, false, &v_16, 0), _fx_catch_4); - FX_COPY_PTR(v_17.t0, &idx_pat_2); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_17.t1, &env_5); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_17.t2, &idset_5); - _fx_R10Ast__loc_t v_19; - FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(idx_pat_2, &v_19, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM8PatTypedN10Ast__pat_t3N10Ast__pat_tN10Ast__typ_tRM5loc_t(idx_pat_2, idx_typ_0, &v_19, &v_18), + FX_COPY_PTR(v_16.t0, &idx_pat_2); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_16.t1, &env_4); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_16.t2, &idset_4); + _fx_R10Ast__loc_t v_18; + FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(idx_pat_2, &v_18, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM8PatTypedN10Ast__pat_t3N10Ast__pat_tN10Ast__typ_tRM5loc_t(idx_pat_2, idx_typ_0, &v_18, &v_17), _fx_catch_4); - _fx_make_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(v_18, &env_5, &idset_5, &v_2); + _fx_make_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(v_17, &env_4, &idset_4, &v_1); _fx_catch_4: ; - if (v_18) { - _fx_free_N10Ast__pat_t(&v_18); + if (v_17) { + _fx_free_N10Ast__pat_t(&v_17); } - _fx_free_Rt6Set__t1R9Ast__id_t(&idset_5); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_5); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_4); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); if (idx_pat_2) { _fx_free_N10Ast__pat_t(&idx_pat_2); } - _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_17); + _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_16); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(v_2.t0, &idx_pat_1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_2.t1, &env_2); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_2.t2, &idset_2); + FX_COPY_PTR(v_1.t0, &idx_pat_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_1.t1, &env_2); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_1.t2, &idset_2); _fx_LN10Ast__exp_t lst_2 = code_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN10Ast__exp_t r_0 = 0; + _fx_LN10Ast__exp_t v_19 = 0; _fx_N10Ast__exp_t a_0 = lst_2->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_5); - _fx_free_LN10Ast__exp_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, res_0, true, &v_19), _fx_catch_5); + _fx_free_LN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_19, &res_0); _fx_catch_5: ; - if (r_0) { - _fx_free_LN10Ast__exp_t(&r_0); + if (v_19) { + _fx_free_LN10Ast__exp_t(&v_19); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_3); + FX_COPY_PTR(res_0, &v_2); _fx_LT2N10Ast__pat_tN10Ast__exp_t lst_3 = for_clauses_1; for (; lst_3; lst_3 = lst_3->tl) { - _fx_LT2N10Ast__pat_tN10Ast__exp_t r_1 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_20 = 0; _fx_T2N10Ast__pat_tN10Ast__exp_t* a_1 = &lst_3->hd; - FX_COPY_PTR(__fold_result___2, &r_1); - FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(a_1, r_1, false, &r_1), _fx_catch_6); - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&__fold_result___2); - FX_COPY_PTR(r_1, &__fold_result___2); + FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(a_1, res_1, true, &v_20), _fx_catch_6); + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&res_1); + FX_COPY_PTR(v_20, &res_1); _fx_catch_6: ; - if (r_1) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&r_1); + if (v_20) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_20); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___2, &v_4); + FX_COPY_PTR(res_1, &v_3); _fx_make_T7iLN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - trsz_1, v_3, v_4, idx_pat_1, dims_0, &env_2, &idset_2, fx_result); + trsz_0, v_2, v_3, idx_pat_1, dims_0, &env_2, &idset_2, fx_result); _fx_cleanup: ; - _fx_free_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t( - &__fold_result___0); - _fx_free_T6iLT2N10Ast__pat_tN10Ast__exp_tLN10Ast__exp_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&v_0); - if (for_clauses_1) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&for_clauses_1); + if (for_clauses_acc_0) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&for_clauses_acc_0); } if (code_0) { _fx_free_LN10Ast__exp_t(&code_0); } + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_acc_0); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); _fx_free_Rt6Set__t1R9Ast__id_t(&idset_1); + if (for_clauses_1) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&for_clauses_1); + } if (idx_typ_0) { _fx_free_N10Ast__typ_t(&idx_typ_0); } - if (v_1) { - _fx_free_LN10Ast__typ_t(&v_1); + if (v_0) { + _fx_free_LN10Ast__typ_t(&v_0); } - _fx_free_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&v_2); + _fx_free_T3N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&v_1); if (idx_pat_1) { _fx_free_N10Ast__pat_t(&idx_pat_1); } _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); _fx_free_Rt6Set__t1R9Ast__id_t(&idset_2); - if (__fold_result___1) { - _fx_free_LN10Ast__exp_t(&__fold_result___1); + if (res_0) { + _fx_free_LN10Ast__exp_t(&res_0); } - if (v_3) { - _fx_free_LN10Ast__exp_t(&v_3); + if (v_2) { + _fx_free_LN10Ast__exp_t(&v_2); } - if (__fold_result___2) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&__fold_result___2); + if (res_1) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&res_1); } - if (v_4) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_4); + if (v_3) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_3); } return fx_status; } @@ -29717,70 +29201,61 @@ static int void* fx_fv) { _fx_LN12Ast__scope_t sc_1 = 0; - _fx_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t __fold_result___0 = {0}; - _fx_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_0 = {0}; _fx_LN10Ast__exp_t code_0 = 0; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_acc_0 = {0}; + _fx_Rt6Set__t1R9Ast__id_t idset_acc_0 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; _fx_Rt6Set__t1R9Ast__id_t idset_0 = {0}; - _fx_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_1 = {0}; + _fx_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_0 = {0}; _fx_LN10Ast__exp_t code_1 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_2 = {0}; - _fx_N10Ast__exp_t v_2 = 0; + _fx_N10Ast__exp_t v_1 = 0; _fx_N10Ast__exp_t body_1 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_3 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_2 = {0}; _fx_N10Ast__typ_t body_typ_0 = 0; + _fx_LN10Ast__exp_t v_3 = 0; + _fx_LN10Ast__exp_t res_0 = 0; _fx_LN10Ast__exp_t v_4 = 0; - _fx_LN10Ast__exp_t __fold_result___1 = 0; - _fx_LN10Ast__exp_t v_5 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_6 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_5 = {0}; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); int_ curr_m_idx_0; FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(sc_0, &curr_m_idx_0, 0), _fx_cleanup); - _fx_N12Ast__scope_t v_7; - FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_7, 0), _fx_cleanup); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_7, for_sc_0, true, &sc_1), _fx_cleanup); - _fx_make_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(0, env_0, &_fx_g16Ast__empty_idset, - &__fold_result___0); + _fx_N12Ast__scope_t v_6; + FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_6, 0), _fx_cleanup); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_6, for_sc_0, true, &sc_1), _fx_cleanup); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &env_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &idset_acc_0); int_ j_0 = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t lst_0 = for_clauses_0; for (; lst_0; lst_0 = lst_0->tl, j_0 += 1) { _fx_N10Ast__pat_t pj_0 = 0; _fx_N10Ast__exp_t trj_0 = 0; - _fx_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_8 = {0}; - _fx_LN10Ast__exp_t code_2 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_3 = {0}; - _fx_Rt6Set__t1R9Ast__id_t idset_1 = {0}; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_9 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_7 = {0}; _fx_N10Ast__typ_t ttrj_0 = 0; - _fx_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_10 = {0}; _fx_T2N10Ast__pat_tN10Ast__exp_t* __pat___0 = &lst_0->hd; FX_COPY_PTR(__pat___0->t0, &pj_0); FX_COPY_PTR(__pat___0->t1, &trj_0); - _fx_copy_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&__fold_result___0, &v_8); - FX_COPY_PTR(v_8.t0, &code_2); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_8.t1, &env_3); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_8.t2, &idset_1); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(trj_0, &v_9, 0), _fx_catch_7); - FX_COPY_PTR(v_9.t0, &ttrj_0); - _fx_R10Ast__loc_t locj_0 = v_9.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(trj_0, &v_7, 0), _fx_catch_7); + FX_COPY_PTR(v_7.t0, &ttrj_0); + _fx_R10Ast__loc_t locj_0 = v_7.t1; if (FX_REC_VARIANT_TAG(ttrj_0) == 18) { _fx_N10Ast__typ_t result_0 = 0; _fx_LN10Ast__typ_t l_0 = 0; _fx_N10Ast__typ_t tj_0 = 0; - _fx_N10Ast__lit_t v_11 = {0}; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_12 = {0}; - _fx_N10Ast__exp_t v_13 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_14 = {0}; + _fx_N10Ast__lit_t v_8 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_9 = {0}; + _fx_N10Ast__exp_t v_10 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_11 = {0}; _fx_N10Ast__exp_t ej_0 = 0; _fx_N10Ast__pat_t pj_1 = 0; - _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_15 = {0}; + _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_12 = {0}; _fx_N10Ast__pat_t pj_2 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_4 = {0}; - _fx_Rt6Set__t1R9Ast__id_t idset_2 = {0}; - _fx_R16Ast__val_flags_t v_16 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_3 = {0}; + _fx_Rt6Set__t1R9Ast__id_t idset_1 = {0}; + _fx_R16Ast__val_flags_t v_13 = {0}; _fx_N10Ast__exp_t def_pj_0 = 0; - _fx_LN10Ast__exp_t v_17 = 0; + _fx_LN10Ast__exp_t v_14 = 0; FX_COPY_PTR(ttrj_0->u.TypTuple, &l_0); int_ n_0 = idx_0; for (;;) { @@ -29816,52 +29291,58 @@ static int FX_CHECK_EXN(_fx_catch_2); } FX_COPY_PTR(result_0, &tj_0); - _fx_M3AstFM6LitIntN10Ast__lit_t1l((int64_t)idx_0, &v_11); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &locj_0, &v_12); - FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_11, &v_12, &v_13), _fx_catch_2); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(tj_0, &locj_0, &v_14); - FX_CALL(_fx_M3AstFM6ExpMemN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(trj_0, v_13, &v_14, &ej_0), + _fx_M3AstFM6LitIntN10Ast__lit_t1l((int64_t)idx_0, &v_8); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &locj_0, &v_9); + FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_8, &v_9, &v_10), _fx_catch_2); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(tj_0, &locj_0, &v_11); + FX_CALL(_fx_M3AstFM6ExpMemN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(trj_0, v_10, &v_11, &ej_0), _fx_catch_2); FX_CALL(_fx_M3AstFM7dup_patN10Ast__pat_t1N10Ast__pat_t(pj_0, &pj_1, 0), _fx_catch_2); FX_CALL( _fx_M13Ast_typecheckFM9check_patT5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB9N10Ast__pat_tN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tLN12Ast__scope_tBBB( - pj_1, tj_0, &env_3, &idset_1, &_fx_g16Ast__empty_idset, sc_1, false, true, false, &v_15, 0), _fx_catch_2); - FX_COPY_PTR(v_15.t0, &pj_2); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_15.t1, &env_4); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_15.t2, &idset_2); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_16, 0), _fx_catch_2); + pj_1, tj_0, &env_acc_0, &idset_acc_0, &_fx_g16Ast__empty_idset, sc_1, false, true, false, &v_12, 0), + _fx_catch_2); + FX_COPY_PTR(v_12.t0, &pj_2); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_12.t1, &env_3); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_12.t2, &idset_1); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_13, 0), _fx_catch_2); FX_CALL( - _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(pj_2, ej_0, &v_16, &locj_0, + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(pj_2, ej_0, &v_13, &locj_0, &def_pj_0), _fx_catch_2); - FX_CALL(_fx_cons_LN10Ast__exp_t(def_pj_0, code_2, true, &v_17), _fx_catch_2); - _fx_make_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(v_17, &env_4, &idset_2, &v_10); + FX_CALL(_fx_cons_LN10Ast__exp_t(def_pj_0, code_0, true, &v_14), _fx_catch_2); + _fx_free_LN10Ast__exp_t(&code_0); + FX_COPY_PTR(v_14, &code_0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3, &env_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&idset_1, &idset_acc_0); _fx_catch_2: ; - if (v_17) { - _fx_free_LN10Ast__exp_t(&v_17); + if (v_14) { + _fx_free_LN10Ast__exp_t(&v_14); } if (def_pj_0) { _fx_free_N10Ast__exp_t(&def_pj_0); } - _fx_free_R16Ast__val_flags_t(&v_16); - _fx_free_Rt6Set__t1R9Ast__id_t(&idset_2); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); + _fx_free_R16Ast__val_flags_t(&v_13); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_1); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3); if (pj_2) { _fx_free_N10Ast__pat_t(&pj_2); } - _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_15); + _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_12); if (pj_1) { _fx_free_N10Ast__pat_t(&pj_1); } if (ej_0) { _fx_free_N10Ast__exp_t(&ej_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_14); - if (v_13) { - _fx_free_N10Ast__exp_t(&v_13); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_11); + if (v_10) { + _fx_free_N10Ast__exp_t(&v_10); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_12); - _fx_free_N10Ast__lit_t(&v_11); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_9); + _fx_free_N10Ast__lit_t(&v_8); if (tj_0) { _fx_free_N10Ast__typ_t(&tj_0); } @@ -29873,42 +29354,42 @@ static int } } else { - _fx_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_18 = {0}; + _fx_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_15 = {0}; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_0 = 0; _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t result_1 = {0}; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t l_2 = 0; - _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_19 = {0}; + _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_16 = {0}; _fx_N10Ast__typ_t tj_1 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_20 = {0}; - _fx_N10Ast__exp_t v_21 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_22 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_17 = {0}; + _fx_N10Ast__exp_t v_18 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_19 = {0}; _fx_N10Ast__exp_t ej_1 = 0; _fx_N10Ast__pat_t pj_3 = 0; - _fx_N10Ast__pat_t v_23 = 0; - _fx_Ta2N10Ast__pat_t v_24 = {0}; + _fx_N10Ast__pat_t v_20 = 0; + _fx_Ta2N10Ast__pat_t v_21 = {0}; _fx_N10Ast__pat_t pnj_0 = 0; _fx_N10Ast__pat_t pvj_0 = 0; - _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_25 = {0}; + _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_22 = {0}; _fx_N10Ast__pat_t pnj_1 = 0; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_4 = {0}; + _fx_Rt6Set__t1R9Ast__id_t idset_2 = {0}; + _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_23 = {0}; + _fx_N10Ast__pat_t pvj_1 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_5 = {0}; _fx_Rt6Set__t1R9Ast__id_t idset_3 = {0}; - _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_26 = {0}; - _fx_N10Ast__pat_t pvj_1 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_6 = {0}; - _fx_Rt6Set__t1R9Ast__id_t idset_4 = {0}; - _fx_R16Ast__val_flags_t v_27 = {0}; + _fx_R16Ast__val_flags_t v_24 = {0}; _fx_N10Ast__exp_t def_pvj_0 = 0; - fx_str_t v_28 = {0}; - _fx_N10Ast__lit_t v_29 = {0}; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_30 = {0}; - _fx_N10Ast__exp_t v_31 = 0; - _fx_R16Ast__val_flags_t v_32 = {0}; + fx_str_t v_25 = {0}; + _fx_N10Ast__lit_t v_26 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_27 = {0}; + _fx_N10Ast__exp_t v_28 = 0; + _fx_R16Ast__val_flags_t v_29 = {0}; _fx_N10Ast__exp_t def_pnj_0 = 0; - _fx_LN10Ast__exp_t v_33 = 0; + _fx_LN10Ast__exp_t v_30 = 0; FX_CALL( _fx_M13Ast_typecheckFM16get_record_elemsT2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t4Nt6option1R9Ast__id_tN10Ast__typ_tBR10Ast__loc_t( - &_fx_g22Ast_typecheck__None13_, ttrj_0, false, &locj_0, &v_18, 0), _fx_catch_6); - FX_COPY_PTR(v_18.t1, &relems_0); + &_fx_g22Ast_typecheck__None13_, ttrj_0, false, &locj_0, &v_15, 0), _fx_catch_6); + FX_COPY_PTR(v_15.t1, &relems_0); FX_COPY_PTR(relems_0, &l_2); int_ n_2 = idx_0; for (;;) { @@ -29943,129 +29424,134 @@ static int FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_6); } - _fx_copy_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&result_1, &v_19); - _fx_R9Ast__id_t nj_0 = v_19.t1; - FX_COPY_PTR(v_19.t2, &tj_1); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g24Ast_typecheck__TypString, &locj_0, &v_20); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&nj_0, &v_20, &v_21), _fx_catch_6); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(tj_1, &locj_0, &v_22); - FX_CALL(_fx_M3AstFM6ExpMemN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(trj_0, v_21, &v_22, &ej_1), + _fx_copy_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&result_1, &v_16); + _fx_R9Ast__id_t nj_0 = v_16.t1; + FX_COPY_PTR(v_16.t2, &tj_1); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g24Ast_typecheck__TypString, &locj_0, &v_17); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&nj_0, &v_17, &v_18), _fx_catch_6); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(tj_1, &locj_0, &v_19); + FX_CALL(_fx_M3AstFM6ExpMemN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(trj_0, v_18, &v_19, &ej_1), _fx_catch_6); FX_CALL(_fx_M3AstFM7dup_patN10Ast__pat_t1N10Ast__pat_t(pj_0, &pj_3, 0), _fx_catch_6); - FX_CALL(_fx_M3AstFM14pat_skip_typedN10Ast__pat_t1N10Ast__pat_t(pj_3, &v_23, 0), _fx_catch_6); - int tag_0 = FX_REC_VARIANT_TAG(v_23); + FX_CALL(_fx_M3AstFM14pat_skip_typedN10Ast__pat_t1N10Ast__pat_t(pj_3, &v_20, 0), _fx_catch_6); + int tag_0 = FX_REC_VARIANT_TAG(v_20); if (tag_0 == 4) { - _fx_LN10Ast__pat_t v_34 = v_23->u.PatTuple.t0; - if (v_34 != 0) { - _fx_LN10Ast__pat_t v_35 = v_34->tl; - if (v_35 != 0) { - if (v_35->tl == 0) { - _fx_make_Ta2N10Ast__pat_t(v_34->hd, v_35->hd, &v_24); goto _fx_endmatch_0; + _fx_LN10Ast__pat_t v_31 = v_20->u.PatTuple.t0; + if (v_31 != 0) { + _fx_LN10Ast__pat_t v_32 = v_31->tl; + if (v_32 != 0) { + if (v_32->tl == 0) { + _fx_make_Ta2N10Ast__pat_t(v_31->hd, v_32->hd, &v_21); goto _fx_endmatch_0; } } } } if (tag_0 == 8) { - _fx_T3N10Ast__pat_tR9Ast__id_tR10Ast__loc_t* vcase_0 = &v_23->u.PatAs; - _fx_N10Ast__pat_t v_36 = vcase_0->t0; - if (FX_REC_VARIANT_TAG(v_36) == 4) { - _fx_LN10Ast__pat_t v_37 = v_36->u.PatTuple.t0; - if (v_37 != 0) { - _fx_LN10Ast__pat_t v_38 = v_37->tl; - if (v_38 != 0) { - if (v_38->tl == 0) { - _fx_R9Ast__id_t v_39; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&vcase_0->t1, &v_39, 0), _fx_catch_6); - bool res_0; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_39, &_fx_g15Ast__std__pat__, &res_0, 0), _fx_catch_6); - if (res_0) { - _fx_make_Ta2N10Ast__pat_t(v_37->hd, v_38->hd, &v_24); goto _fx_endmatch_0; + _fx_T3N10Ast__pat_tR9Ast__id_tR10Ast__loc_t* vcase_0 = &v_20->u.PatAs; + _fx_N10Ast__pat_t v_33 = vcase_0->t0; + if (FX_REC_VARIANT_TAG(v_33) == 4) { + _fx_LN10Ast__pat_t v_34 = v_33->u.PatTuple.t0; + if (v_34 != 0) { + _fx_LN10Ast__pat_t v_35 = v_34->tl; + if (v_35 != 0) { + if (v_35->tl == 0) { + _fx_R9Ast__id_t v_36; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&vcase_0->t1, &v_36, 0), _fx_catch_6); + bool res_1; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_36, &_fx_g15Ast__std__pat__, &res_1, 0), _fx_catch_6); + if (res_1) { + _fx_make_Ta2N10Ast__pat_t(v_34->hd, v_35->hd, &v_21); goto _fx_endmatch_0; } } } } } } - fx_exn_t v_40 = {0}; + fx_exn_t v_37 = {0}; fx_str_t slit_0 = FX_MAKE_STR("when iterating through record, a 2-element tuple should be used as pattern"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(eloc_0, &slit_0, &v_40, 0), _fx_catch_5); - FX_THROW(&v_40, false, _fx_catch_5); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(eloc_0, &slit_0, &v_37, 0), _fx_catch_5); + FX_THROW(&v_37, false, _fx_catch_5); _fx_catch_5: ; - fx_free_exn(&v_40); + fx_free_exn(&v_37); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_6); - FX_COPY_PTR(v_24.t0, &pnj_0); - FX_COPY_PTR(v_24.t1, &pvj_0); + FX_COPY_PTR(v_21.t0, &pnj_0); + FX_COPY_PTR(v_21.t1, &pvj_0); FX_CALL( _fx_M13Ast_typecheckFM9check_patT5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB9N10Ast__pat_tN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tLN12Ast__scope_tBBB( - pnj_0, _fx_g24Ast_typecheck__TypString, &env_3, &idset_1, &_fx_g16Ast__empty_idset, sc_1, false, true, false, - &v_25, 0), _fx_catch_6); - FX_COPY_PTR(v_25.t0, &pnj_1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_25.t1, &env_5); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_25.t2, &idset_3); + pnj_0, _fx_g24Ast_typecheck__TypString, &env_acc_0, &idset_acc_0, &_fx_g16Ast__empty_idset, sc_1, false, true, + false, &v_22, 0), _fx_catch_6); + FX_COPY_PTR(v_22.t0, &pnj_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_22.t1, &env_4); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_22.t2, &idset_2); FX_CALL( _fx_M13Ast_typecheckFM9check_patT5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB9N10Ast__pat_tN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tLN12Ast__scope_tBBB( - pvj_0, tj_1, &env_5, &idset_3, &_fx_g16Ast__empty_idset, sc_1, false, true, false, &v_26, 0), _fx_catch_6); - FX_COPY_PTR(v_26.t0, &pvj_1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_26.t1, &env_6); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_26.t2, &idset_4); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_27, 0), _fx_catch_6); + pvj_0, tj_1, &env_4, &idset_2, &_fx_g16Ast__empty_idset, sc_1, false, true, false, &v_23, 0), _fx_catch_6); + FX_COPY_PTR(v_23.t0, &pvj_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_23.t1, &env_5); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_23.t2, &idset_3); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_24, 0), _fx_catch_6); FX_CALL( - _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(pvj_1, ej_1, &v_27, &locj_0, + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(pvj_1, ej_1, &v_24, &locj_0, &def_pvj_0), _fx_catch_6); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&nj_0, &v_28, 0), _fx_catch_6); - _fx_M3AstFM9LitStringN10Ast__lit_t1S(&v_28, &v_29); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g24Ast_typecheck__TypString, &locj_0, &v_30); - FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_29, &v_30, &v_31), _fx_catch_6); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_32, 0), _fx_catch_6); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&nj_0, &v_25, 0), _fx_catch_6); + _fx_M3AstFM9LitStringN10Ast__lit_t1S(&v_25, &v_26); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g24Ast_typecheck__TypString, &locj_0, &v_27); + FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_26, &v_27, &v_28), _fx_catch_6); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_29, 0), _fx_catch_6); FX_CALL( - _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(pnj_1, v_31, &v_32, &locj_0, + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(pnj_1, v_28, &v_29, &locj_0, &def_pnj_0), _fx_catch_6); - FX_CALL(_fx_cons_LN10Ast__exp_t(def_pnj_0, code_2, true, &v_33), _fx_catch_6); - FX_CALL(_fx_cons_LN10Ast__exp_t(def_pvj_0, v_33, false, &v_33), _fx_catch_6); - _fx_make_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(v_33, &env_6, &idset_4, &v_10); + FX_CALL(_fx_cons_LN10Ast__exp_t(def_pnj_0, code_0, true, &v_30), _fx_catch_6); + FX_CALL(_fx_cons_LN10Ast__exp_t(def_pvj_0, v_30, false, &v_30), _fx_catch_6); + _fx_free_LN10Ast__exp_t(&code_0); + FX_COPY_PTR(v_30, &code_0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_5, &env_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&idset_3, &idset_acc_0); _fx_catch_6: ; - if (v_33) { - _fx_free_LN10Ast__exp_t(&v_33); + if (v_30) { + _fx_free_LN10Ast__exp_t(&v_30); } if (def_pnj_0) { _fx_free_N10Ast__exp_t(&def_pnj_0); } - _fx_free_R16Ast__val_flags_t(&v_32); - if (v_31) { - _fx_free_N10Ast__exp_t(&v_31); + _fx_free_R16Ast__val_flags_t(&v_29); + if (v_28) { + _fx_free_N10Ast__exp_t(&v_28); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_30); - _fx_free_N10Ast__lit_t(&v_29); - FX_FREE_STR(&v_28); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_27); + _fx_free_N10Ast__lit_t(&v_26); + FX_FREE_STR(&v_25); if (def_pvj_0) { _fx_free_N10Ast__exp_t(&def_pvj_0); } - _fx_free_R16Ast__val_flags_t(&v_27); - _fx_free_Rt6Set__t1R9Ast__id_t(&idset_4); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_6); + _fx_free_R16Ast__val_flags_t(&v_24); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_3); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_5); if (pvj_1) { _fx_free_N10Ast__pat_t(&pvj_1); } - _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_26); - _fx_free_Rt6Set__t1R9Ast__id_t(&idset_3); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_5); + _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_23); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_2); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); if (pnj_1) { _fx_free_N10Ast__pat_t(&pnj_1); } - _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_25); + _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_22); if (pvj_0) { _fx_free_N10Ast__pat_t(&pvj_0); } if (pnj_0) { _fx_free_N10Ast__pat_t(&pnj_0); } - _fx_free_Ta2N10Ast__pat_t(&v_24); - if (v_23) { - _fx_free_N10Ast__pat_t(&v_23); + _fx_free_Ta2N10Ast__pat_t(&v_21); + if (v_20) { + _fx_free_N10Ast__pat_t(&v_20); } if (pj_3) { _fx_free_N10Ast__pat_t(&pj_3); @@ -30073,15 +29559,15 @@ static int if (ej_1) { _fx_free_N10Ast__exp_t(&ej_1); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_22); - if (v_21) { - _fx_free_N10Ast__exp_t(&v_21); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_19); + if (v_18) { + _fx_free_N10Ast__exp_t(&v_18); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_20); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_17); if (tj_1) { _fx_free_N10Ast__typ_t(&tj_1); } - _fx_free_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_19); + _fx_free_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_16); if (l_2) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&l_2); } @@ -30089,24 +29575,15 @@ static int if (relems_0) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_0); } - _fx_free_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_18); + _fx_free_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_15); } FX_CHECK_EXN(_fx_catch_7); - _fx_free_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&__fold_result___0); - _fx_copy_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&v_10, &__fold_result___0); _fx_catch_7: ; - _fx_free_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&v_10); if (ttrj_0) { _fx_free_N10Ast__typ_t(&ttrj_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_9); - _fx_free_Rt6Set__t1R9Ast__id_t(&idset_1); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3); - if (code_2) { - _fx_free_LN10Ast__exp_t(&code_2); - } - _fx_free_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&v_8); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_7); if (trj_0) { _fx_free_N10Ast__exp_t(&trj_0); } @@ -30115,129 +29592,126 @@ static int } FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&__fold_result___0, &v_0); - FX_COPY_PTR(v_0.t0, &code_0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0.t1, &env_1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_0.t2, &idset_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0, &env_1); + _fx_copy_Rt6Set__t1R9Ast__id_t(&idset_acc_0, &idset_0); if (FX_REC_VARIANT_TAG(idx_pat_0) == 1) { - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(code_0, &env_1, &v_1); + _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(code_0, &env_1, &v_0); } else { _fx_N10Ast__pat_t idx_pat_1 = 0; - _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_41 = {0}; + _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_38 = {0}; _fx_N10Ast__pat_t idx_pat_2 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_7 = {0}; - _fx_N10Ast__lit_t v_42 = {0}; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_43 = {0}; - _fx_N10Ast__exp_t v_44 = 0; - _fx_R16Ast__val_flags_t v_45 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_6 = {0}; + _fx_N10Ast__lit_t v_39 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_40 = {0}; + _fx_N10Ast__exp_t v_41 = 0; + _fx_R16Ast__val_flags_t v_42 = {0}; _fx_N10Ast__exp_t def_idx_0 = 0; - _fx_LN10Ast__exp_t v_46 = 0; + _fx_LN10Ast__exp_t v_43 = 0; FX_CALL(_fx_M3AstFM7dup_patN10Ast__pat_t1N10Ast__pat_t(idx_pat_0, &idx_pat_1, 0), _fx_catch_8); FX_CALL( _fx_M13Ast_typecheckFM9check_patT5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB9N10Ast__pat_tN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tLN12Ast__scope_tBBB( idx_pat_1, _fx_g21Ast_typecheck__TypInt, &env_1, &idset_0, &_fx_g16Ast__empty_idset, sc_1, false, true, false, - &v_41, 0), _fx_catch_8); - FX_COPY_PTR(v_41.t0, &idx_pat_2); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_41.t1, &env_7); + &v_38, 0), _fx_catch_8); + FX_COPY_PTR(v_38.t0, &idx_pat_2); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_38.t1, &env_6); _fx_R10Ast__loc_t idx_loc_0; FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(idx_pat_2, &idx_loc_0, 0), _fx_catch_8); - _fx_M3AstFM6LitIntN10Ast__lit_t1l((int64_t)idx_0, &v_42); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &idx_loc_0, &v_43); - FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_42, &v_43, &v_44), _fx_catch_8); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_45, 0), _fx_catch_8); + _fx_M3AstFM6LitIntN10Ast__lit_t1l((int64_t)idx_0, &v_39); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g21Ast_typecheck__TypInt, &idx_loc_0, &v_40); + FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_39, &v_40, &v_41), _fx_catch_8); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_42, 0), _fx_catch_8); FX_CALL( - _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(idx_pat_2, v_44, &v_45, &idx_loc_0, + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(idx_pat_2, v_41, &v_42, &idx_loc_0, &def_idx_0), _fx_catch_8); - FX_CALL(_fx_cons_LN10Ast__exp_t(def_idx_0, code_0, true, &v_46), _fx_catch_8); - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_46, &env_7, &v_1); + FX_CALL(_fx_cons_LN10Ast__exp_t(def_idx_0, code_0, true, &v_43), _fx_catch_8); + _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_43, &env_6, &v_0); _fx_catch_8: ; - if (v_46) { - _fx_free_LN10Ast__exp_t(&v_46); + if (v_43) { + _fx_free_LN10Ast__exp_t(&v_43); } if (def_idx_0) { _fx_free_N10Ast__exp_t(&def_idx_0); } - _fx_free_R16Ast__val_flags_t(&v_45); - if (v_44) { - _fx_free_N10Ast__exp_t(&v_44); + _fx_free_R16Ast__val_flags_t(&v_42); + if (v_41) { + _fx_free_N10Ast__exp_t(&v_41); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_43); - _fx_free_N10Ast__lit_t(&v_42); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_7); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_40); + _fx_free_N10Ast__lit_t(&v_39); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_6); if (idx_pat_2) { _fx_free_N10Ast__pat_t(&idx_pat_2); } - _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_41); + _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_38); if (idx_pat_1) { _fx_free_N10Ast__pat_t(&idx_pat_1); } } FX_CHECK_EXN(_fx_cleanup); - FX_COPY_PTR(v_1.t0, &code_1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_1.t1, &env_2); - FX_CALL(_fx_M3AstFM7dup_expN10Ast__exp_t1N10Ast__exp_t(body_0, &v_2, 0), _fx_cleanup); + FX_COPY_PTR(v_0.t0, &code_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0.t1, &env_2); + FX_CALL(_fx_M3AstFM7dup_expN10Ast__exp_t1N10Ast__exp_t(body_0, &v_1, 0), _fx_cleanup); FX_CALL( - _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t(v_2, + _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t(v_1, &env_2, sc_1, &body_1, 0), _fx_cleanup); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(body_1, &v_3, 0), _fx_cleanup); - FX_COPY_PTR(v_3.t0, &body_typ_0); - _fx_R10Ast__loc_t body_loc_0 = v_3.t1; - FX_CALL(_fx_cons_LN10Ast__exp_t(body_1, code_1, true, &v_4), _fx_cleanup); - _fx_LN10Ast__exp_t lst_1 = v_4; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(body_1, &v_2, 0), _fx_cleanup); + FX_COPY_PTR(v_2.t0, &body_typ_0); + _fx_R10Ast__loc_t body_loc_0 = v_2.t1; + FX_CALL(_fx_cons_LN10Ast__exp_t(body_1, code_1, true, &v_3), _fx_cleanup); + _fx_LN10Ast__exp_t lst_1 = v_3; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN10Ast__exp_t r_0 = 0; + _fx_LN10Ast__exp_t v_44 = 0; _fx_N10Ast__exp_t a_2 = lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_2, r_0, false, &r_0), _fx_catch_9); - _fx_free_LN10Ast__exp_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_2, res_0, true, &v_44), _fx_catch_9); + _fx_free_LN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_44, &res_0); _fx_catch_9: ; - if (r_0) { - _fx_free_LN10Ast__exp_t(&r_0); + if (v_44) { + _fx_free_LN10Ast__exp_t(&v_44); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_5); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(body_typ_0, &body_loc_0, &v_6); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_5, &v_6, fx_result), _fx_cleanup); + FX_COPY_PTR(res_0, &v_4); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(body_typ_0, &body_loc_0, &v_5); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_4, &v_5, fx_result), _fx_cleanup); _fx_cleanup: ; FX_FREE_LIST_SIMPLE(&sc_1); - _fx_free_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&__fold_result___0); - _fx_free_T3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&v_0); if (code_0) { _fx_free_LN10Ast__exp_t(&code_0); } + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset_acc_0); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); _fx_free_Rt6Set__t1R9Ast__id_t(&idset_0); - _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_1); + _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0); if (code_1) { _fx_free_LN10Ast__exp_t(&code_1); } _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); - if (v_2) { - _fx_free_N10Ast__exp_t(&v_2); + if (v_1) { + _fx_free_N10Ast__exp_t(&v_1); } if (body_1) { _fx_free_N10Ast__exp_t(&body_1); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_3); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_2); if (body_typ_0) { _fx_free_N10Ast__typ_t(&body_typ_0); } - if (v_4) { - _fx_free_LN10Ast__exp_t(&v_4); + if (v_3) { + _fx_free_LN10Ast__exp_t(&v_3); } - if (__fold_result___1) { - _fx_free_LN10Ast__exp_t(&__fold_result___1); + if (res_0) { + _fx_free_LN10Ast__exp_t(&res_0); } - if (v_5) { - _fx_free_LN10Ast__exp_t(&v_5); + if (v_4) { + _fx_free_LN10Ast__exp_t(&v_4); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_6); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_5); return fx_status; } @@ -31908,6 +31382,7 @@ FX_EXTERN_C int _fx_N10Ast__pat_t res_0 = 0; int fx_status = 0; FX_CALL(_fx_make_rRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env0_0, &env_ref_0), _fx_cleanup); + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* env_0 = &env_ref_0->data; _fx_M13Ast_typecheckFM7make_fpFPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t5rRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR16Ast__val_flags_tiN10Ast__typ_tLN12Ast__scope_t( env_ref_0, flags_0, m_idx_0, poison_t_0, sc_0, &cb_0); FX_CALL( @@ -31915,7 +31390,7 @@ FX_EXTERN_C int &cb_0, &v_0), _fx_cleanup); _fx_make_R16Ast__ast_callb_t(_fx_g22Ast_typecheck__None12_, _fx_g22Ast_typecheck__None11_, v_0, &callb_0); FX_CALL(_fx_M3AstFM16check_n_walk_patN10Ast__pat_t2N10Ast__pat_tRM11ast_callb_t(p_0, &callb_0, &res_0, 0), _fx_cleanup); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_ref_0->data, fx_result); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, fx_result); _fx_cleanup: ; if (env_ref_0) { @@ -32034,13 +31509,12 @@ FX_EXTERN_C int _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_2 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_3 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___0 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_4 = {0}; - _fx_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___1 = {0}; - _fx_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_0 = {0}; - _fx_LN10Ast__exp_t eseq_1 = 0; + _fx_LN10Ast__exp_t eseq_acc_0 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_5 = {0}; - _fx_LN10Ast__exp_t v_1 = 0; + _fx_LN10Ast__exp_t eseq_1 = 0; + _fx_LN10Ast__exp_t res_0 = 0; + _fx_LN10Ast__exp_t v_0 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); int_ curr_m_idx_0; @@ -32056,9 +31530,9 @@ FX_EXTERN_C int _fx_endmatch_0: ; FX_CHECK_EXN(_fx_cleanup); if (create_sc_0) { - _fx_N12Ast__scope_t v_2; - FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_2, 0), _fx_cleanup); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_2, sc_0, true, &sc_1), _fx_cleanup); + _fx_N12Ast__scope_t v_1; + FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(curr_m_idx_0, &v_1, 0), _fx_cleanup); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_1, sc_0, true, &sc_1), _fx_cleanup); } else { FX_COPY_PTR(sc_0, &sc_1); @@ -32074,88 +31548,77 @@ _fx_endmatch_0: ; FX_CALL( _fx_M13Ast_typecheckFM11check_typesRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t3LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( eseq_0, &env_2, sc_1, &env_3, 0), _fx_cleanup); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3, &env_4); _fx_LN10Ast__exp_t lst_0 = eseq_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_6 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_3 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_2 = {0}; _fx_N10Ast__exp_t e_0 = lst_0->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env_6); int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 35) { FX_CALL( _fx_M13Ast_typecheckFM10reg_deffunRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t3rR13Ast__deffun_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - e_0->u.DefFun, &env_6, sc_1, &v_3, 0), _fx_catch_0); + e_0->u.DefFun, &env_4, sc_1, &v_2, 0), _fx_catch_0); _fx_catch_0: ; } else if (tag_0 == 36) { FX_CALL( _fx_M13Ast_typecheckFM12check_defexnRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t3rR13Ast__defexn_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - e_0->u.DefExn, &env_6, sc_1, &v_3, 0), _fx_catch_1); + e_0->u.DefExn, &env_4, sc_1, &v_2, 0), _fx_catch_1); _fx_catch_1: ; } else { - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_6, &v_3); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4, &v_2); } FX_CHECK_EXN(_fx_catch_2); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3, &__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_2, &env_4); _fx_catch_2: ; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_6); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env_4); int_ nexps_0 = _fx_M13Ast_typecheckFM6lengthi1LN10Ast__exp_t(eseq_0, 0); - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(0, &env_4, &__fold_result___1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4, &env_5); int_ idx_0 = 0; _fx_LN10Ast__exp_t lst_1 = eseq_0; for (; lst_1; lst_1 = lst_1->tl, idx_0 += 1) { - _fx_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_4 = {0}; - _fx_LN10Ast__exp_t eseq_2 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_7 = {0}; - _fx_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_5 = {0}; + _fx_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_3 = {0}; fx_exn_t exn_0 = {0}; _fx_LN10Ast__exp_t eseq1_0 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_0 = {0}; - _fx_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_6 = {0}; _fx_N10Ast__exp_t e_1 = lst_1->hd; - _fx_copy_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___1, &v_4); - FX_COPY_PTR(v_4.t0, &eseq_2); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_4.t1, &env_7); int tag_1 = FX_REC_VARIANT_TAG(e_1); - bool res_0; + bool res_1; if (tag_1 == 40) { - res_0 = true; + res_1 = true; } else if (tag_1 == 41) { - res_0 = true; + res_1 = true; } else if (tag_1 == 42) { - res_0 = true; + res_1 = true; } else if (tag_1 == 37) { - res_0 = true; + res_1 = true; } else if (tag_1 == 38) { - res_0 = true; + res_1 = true; } else if (tag_1 == 39) { - res_0 = true; + res_1 = true; } else if (tag_1 == 36) { - res_0 = true; + res_1 = true; } else { - res_0 = false; + res_1 = false; } - FX_CHECK_EXN(_fx_catch_18); - if (res_0) { - fx_exn_t v_7 = {0}; - _fx_LN10Ast__exp_t v_8 = 0; + FX_CHECK_EXN(_fx_catch_17); + if (res_1) { + fx_exn_t v_4 = {0}; + _fx_LN10Ast__exp_t v_5 = 0; bool t_0; if (idx_0 == nexps_0 - 1) { t_0 = !is_glob_scope_0; @@ -32164,24 +31627,24 @@ _fx_endmatch_0: ; t_0 = false; } if (t_0) { - _fx_R10Ast__loc_t v_9; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e_1, &v_9, 0), _fx_catch_3); + _fx_R10Ast__loc_t v_6; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e_1, &v_6, 0), _fx_catch_3); fx_str_t slit_0 = FX_MAKE_STR("definition or directive occurs in the end of block; put some expression after it"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_9, &slit_0, &v_7, 0), _fx_catch_3); - FX_THROW(&v_7, false, _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_6, &slit_0, &v_4, 0), _fx_catch_3); + FX_THROW(&v_4, false, _fx_catch_3); } - FX_CALL(_fx_cons_LN10Ast__exp_t(e_1, eseq_2, true, &v_8), _fx_catch_3); - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_8, &env_7, &v_5); + FX_CALL(_fx_cons_LN10Ast__exp_t(e_1, eseq_acc_0, true, &v_5), _fx_catch_3); + _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_5, &env_5, &v_3); _fx_catch_3: ; - if (v_8) { - _fx_free_LN10Ast__exp_t(&v_8); + if (v_5) { + _fx_free_LN10Ast__exp_t(&v_5); } - fx_free_exn(&v_7); + fx_free_exn(&v_4); goto _fx_endmatch_4; } if (tag_1 == 34) { - fx_exn_t v_10 = {0}; + fx_exn_t v_7 = {0}; _fx_N10Ast__typ_t t_1 = 0; fx_exn_t exn_1 = {0}; _fx_T4N10Ast__pat_tN10Ast__exp_tR16Ast__val_flags_tR10Ast__loc_t* vcase_0 = &e_1->u.DefVal; @@ -32198,93 +31661,101 @@ _fx_endmatch_0: ; } if (t_2) { fx_str_t slit_1 = FX_MAKE_STR("value definition occurs in the end of block; put some expression after it"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_1, &v_10, 0), _fx_catch_9); - FX_THROW(&v_10, false, _fx_catch_9); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_1, &v_7, 0), _fx_catch_9); + FX_THROW(&v_7, false, _fx_catch_9); } bool is_mutable_0 = flags_0->val_flag_mutable; FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(e_2, &t_1, 0), _fx_catch_9); - _fx_T2N10Ast__pat_tN10Ast__typ_t v_11 = {0}; + _fx_T2N10Ast__pat_tN10Ast__typ_t v_8 = {0}; _fx_N10Ast__pat_t p_1 = 0; _fx_N10Ast__exp_t e1_0 = 0; - _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_12 = {0}; + _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_9 = {0}; _fx_N10Ast__pat_t p1_0 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_1 = {0}; - _fx_N10Ast__exp_t v_13 = 0; - _fx_LN10Ast__exp_t v_14 = 0; + _fx_N10Ast__exp_t v_10 = 0; + _fx_LN10Ast__exp_t v_11 = 0; if (FX_REC_VARIANT_TAG(p_0) == 9) { _fx_N10Ast__typ_t t1_0 = 0; + fx_exn_t v_12 = {0}; _fx_T3N10Ast__pat_tN10Ast__typ_tR10Ast__loc_t* vcase_1 = &p_0->u.PatTyped; _fx_R10Ast__loc_t* loc_1 = &vcase_1->t2; FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - vcase_1->t1, &env_7, sc_1, loc_1, &t1_0, 0), _fx_catch_4); - fx_str_t slit_2 = - FX_MAKE_STR("explicit type specification of the defined value does not match the assigned expression type"); - FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(t_1, t1_0, loc_1, &slit_2, 0), + vcase_1->t1, &env_5, sc_1, loc_1, &t1_0, 0), _fx_catch_4); + bool v_13; + FX_CALL( + _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB(t_1, t1_0, loc_1, true, &v_13, 0), _fx_catch_4); - _fx_make_T2N10Ast__pat_tN10Ast__typ_t(vcase_1->t0, t1_0, &v_11); + if (!v_13) { + fx_str_t slit_2 = + FX_MAKE_STR("explicit type specification of the defined value does not match the assigned expression type"); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_1, &slit_2, &v_12, 0), _fx_catch_4); + FX_THROW(&v_12, false, _fx_catch_4); + } + _fx_make_T2N10Ast__pat_tN10Ast__typ_t(vcase_1->t0, t1_0, &v_8); _fx_catch_4: ; + fx_free_exn(&v_12); if (t1_0) { _fx_free_N10Ast__typ_t(&t1_0); } } else { - _fx_make_T2N10Ast__pat_tN10Ast__typ_t(p_0, t_1, &v_11); + _fx_make_T2N10Ast__pat_tN10Ast__typ_t(p_0, t_1, &v_8); } FX_CHECK_EXN(_fx_catch_5); - FX_COPY_PTR(v_11.t0, &p_1); + FX_COPY_PTR(v_8.t0, &p_1); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - e_2, &env_7, sc_1, &e1_0, 0), _fx_catch_5); + e_2, &env_5, sc_1, &e1_0, 0), _fx_catch_5); FX_CALL( _fx_M13Ast_typecheckFM9check_patT5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB9N10Ast__pat_tN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tLN12Ast__scope_tBBB( - p_1, t_1, &env_7, &_fx_g16Ast__empty_idset, &_fx_g16Ast__empty_idset, sc_1, false, true, is_mutable_0, &v_12, 0), + p_1, t_1, &env_5, &_fx_g16Ast__empty_idset, &_fx_g16Ast__empty_idset, sc_1, false, true, is_mutable_0, &v_9, 0), _fx_catch_5); - FX_COPY_PTR(v_12.t0, &p1_0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_12.t1, &env1_1); + FX_COPY_PTR(v_9.t0, &p1_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_9.t1, &env1_1); FX_CALL( _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(p1_0, e1_0, flags_0, loc_0, - &v_13), _fx_catch_5); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_13, eseq_2, true, &v_14), _fx_catch_5); - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_14, &env1_1, &v_5); + &v_10), _fx_catch_5); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_10, eseq_acc_0, true, &v_11), _fx_catch_5); + _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_11, &env1_1, &v_3); _fx_catch_5: ; - _fx_free_T2N10Ast__pat_tN10Ast__typ_t(&v_11); + _fx_free_T2N10Ast__pat_tN10Ast__typ_t(&v_8); if (p_1) { _fx_free_N10Ast__pat_t(&p_1); } if (e1_0) { _fx_free_N10Ast__exp_t(&e1_0); } - _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_12); + _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_9); if (p1_0) { _fx_free_N10Ast__pat_t(&p1_0); } _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_1); - if (v_13) { - _fx_free_N10Ast__exp_t(&v_13); + if (v_10) { + _fx_free_N10Ast__exp_t(&v_10); } - if (v_14) { - _fx_free_LN10Ast__exp_t(&v_14); + if (v_11) { + _fx_free_LN10Ast__exp_t(&v_11); } if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_1); fx_status = 0; - _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_5); + _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3); if (exn_1.tag == _FX_EXN_E17Ast__CompileError) { _fx_N10Ast__typ_t poison_t_0 = 0; - _fx_N10Ast__pat_t v_15 = 0; + _fx_N10Ast__pat_t v_14 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_2 = {0}; - _fx_N10Ast__exp_t v_16 = 0; - _fx_LN10Ast__exp_t v_17 = 0; + _fx_N10Ast__exp_t v_15 = 0; + _fx_LN10Ast__exp_t v_16 = 0; FX_CALL(_fx_M3AstFM16push_compile_errv1E(&exn_1, 0), _fx_catch_8); if (FX_REC_VARIANT_TAG(p_0) == 9) { fx_exn_t exn_2 = {0}; _fx_T3N10Ast__pat_tN10Ast__typ_tR10Ast__loc_t* vcase_2 = &p_0->u.PatTyped; FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - vcase_2->t1, &env_7, sc_1, &vcase_2->t2, &poison_t_0, 0), _fx_catch_6); + vcase_2->t1, &env_5, sc_1, &vcase_2->t2, &poison_t_0, 0), _fx_catch_6); _fx_catch_6: ; if (fx_status < 0) { @@ -32309,26 +31780,26 @@ _fx_endmatch_0: ; FX_COPY_PTR(_fx_g21Ast_typecheck__TypErr, &poison_t_0); } FX_CHECK_EXN(_fx_catch_8); - FX_CALL(_fx_M3AstFM14pat_skip_typedN10Ast__pat_t1N10Ast__pat_t(p_0, &v_15, 0), _fx_catch_8); + FX_CALL(_fx_M3AstFM14pat_skip_typedN10Ast__pat_t1N10Ast__pat_t(p_0, &v_14, 0), _fx_catch_8); FX_CALL( _fx_M13Ast_typecheckFM19poison_pattern_varsRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t6N10Ast__pat_tN10Ast__typ_tR16Ast__val_flags_tLN12Ast__scope_tiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t( - v_15, poison_t_0, flags_0, sc_1, curr_m_idx_0, &env_7, &env1_2, 0), _fx_catch_8); + v_14, poison_t_0, flags_0, sc_1, curr_m_idx_0, &env_5, &env1_2, 0), _fx_catch_8); FX_CALL( _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(p_0, e_2, flags_0, loc_0, - &v_16), _fx_catch_8); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_16, eseq_2, true, &v_17), _fx_catch_8); - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_17, &env1_2, &v_5); + &v_15), _fx_catch_8); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_15, eseq_acc_0, true, &v_16), _fx_catch_8); + _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_16, &env1_2, &v_3); _fx_catch_8: ; - if (v_17) { - _fx_free_LN10Ast__exp_t(&v_17); - } if (v_16) { - _fx_free_N10Ast__exp_t(&v_16); + _fx_free_LN10Ast__exp_t(&v_16); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_2); if (v_15) { - _fx_free_N10Ast__pat_t(&v_15); + _fx_free_N10Ast__exp_t(&v_15); + } + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_2); + if (v_14) { + _fx_free_N10Ast__pat_t(&v_14); } if (poison_t_0) { _fx_free_N10Ast__typ_t(&poison_t_0); @@ -32345,17 +31816,17 @@ _fx_endmatch_0: ; if (t_1) { _fx_free_N10Ast__typ_t(&t_1); } - fx_free_exn(&v_10); + fx_free_exn(&v_7); goto _fx_endmatch_4; } if (tag_1 == 35) { - fx_exn_t v_18 = {0}; - _fx_LR9Ast__id_t v_19 = 0; + fx_exn_t v_17 = {0}; + _fx_LR9Ast__id_t v_18 = 0; _fx_rR13Ast__deffun_t df_0 = 0; fx_exn_t exn_3 = {0}; - _fx_R13Ast__deffun_t v_20 = {0}; - _fx_N10Ast__exp_t v_21 = 0; - _fx_LN10Ast__exp_t v_22 = 0; + _fx_R13Ast__deffun_t v_19 = {0}; + _fx_N10Ast__exp_t v_20 = 0; + _fx_LN10Ast__exp_t v_21 = 0; _fx_rR13Ast__deffun_t df_1 = e_1->u.DefFun; bool t_3; if (idx_0 == nexps_0 - 1) { @@ -32365,10 +31836,11 @@ _fx_endmatch_0: ; t_3 = false; } if (t_3) { - _fx_R10Ast__loc_t v_23 = df_1->data.df_loc; + _fx_R13Ast__deffun_t* v_22 = &df_1->data; + _fx_R10Ast__loc_t v_23 = v_22->df_loc; fx_str_t slit_3 = FX_MAKE_STR("function definition occurs in the end of block; put some expression after it"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_23, &slit_3, &v_18, 0), _fx_catch_12); - FX_THROW(&v_18, false, _fx_catch_12); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_23, &slit_3, &v_17, 0), _fx_catch_12); + FX_THROW(&v_17, false, _fx_catch_12); } bool warn_rettype_0; if (_fx_g12Options__opt.W_implicit_rettype) { @@ -32377,11 +31849,12 @@ _fx_endmatch_0: ; else { warn_rettype_0 = false; } - FX_COPY_PTR(df_1->data.df_templ_args, &v_19); - if (v_19 == 0) { + _fx_R13Ast__deffun_t* v_24 = &df_1->data; + FX_COPY_PTR(v_24->df_templ_args, &v_18); + if (v_18 == 0) { FX_CALL( _fx_M13Ast_typecheckFM12check_deffunrR13Ast__deffun_t2rR13Ast__deffun_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t( - df_1, &env_7, &df_0, 0), _fx_catch_10); + df_1, &env_5, &df_0, 0), _fx_catch_10); _fx_catch_10: ; if (fx_status < 0) { @@ -32391,15 +31864,16 @@ _fx_endmatch_0: ; _fx_free_rR13Ast__deffun_t(&df_0); } if (exn_3.tag == _FX_EXN_E17Ast__CompileError) { - _fx_N10Ast__typ_t v_24 = 0; + _fx_N10Ast__typ_t v_25 = 0; FX_CALL(_fx_M3AstFM16push_compile_errv1E(&exn_3, 0), _fx_catch_11); - FX_COPY_PTR(df_1->data.df_typ, &v_24); - FX_CALL(_fx_M13Ast_typecheckFM17poison_result_typv1N10Ast__typ_t(v_24, 0), _fx_catch_11); + _fx_R13Ast__deffun_t* v_26 = &df_1->data; + FX_COPY_PTR(v_26->df_typ, &v_25); + FX_CALL(_fx_M13Ast_typecheckFM17poison_result_typv1N10Ast__typ_t(v_25, 0), _fx_catch_11); FX_COPY_PTR(df_1, &df_0); _fx_catch_11: ; - if (v_24) { - _fx_free_N10Ast__typ_t(&v_24); + if (v_25) { + _fx_free_N10Ast__typ_t(&v_25); } } else { @@ -32409,45 +31883,45 @@ _fx_endmatch_0: ; } } else { - _fx_R13Ast__deffun_t* v_25 = &df_1->data; - _fx_make_R13Ast__deffun_t(&v_25->df_name, v_25->df_templ_args, v_25->df_args, v_25->df_typ, v_25->df_body, - &v_25->df_flags, v_25->df_scope, &v_25->df_loc, v_25->df_templ_inst, &env_7, &v_20); - _fx_R13Ast__deffun_t* v_26 = &df_1->data; - _fx_free_R13Ast__deffun_t(v_26); - _fx_copy_R13Ast__deffun_t(&v_20, v_26); + _fx_R13Ast__deffun_t* v_27 = &df_1->data; + _fx_make_R13Ast__deffun_t(&v_27->df_name, v_27->df_templ_args, v_27->df_args, v_27->df_typ, v_27->df_body, + &v_27->df_flags, v_27->df_scope, &v_27->df_loc, v_27->df_templ_inst, &env_5, &v_19); + _fx_R13Ast__deffun_t* v_28 = &df_1->data; + _fx_free_R13Ast__deffun_t(v_28); + _fx_copy_R13Ast__deffun_t(&v_19, v_28); FX_COPY_PTR(df_1, &df_0); } if (warn_rettype_0) { FX_CALL(_fx_M13Ast_typecheckFM21warn_implicit_rettypev1rR13Ast__deffun_t(df_0, 0), _fx_catch_12); } - FX_CALL(_fx_M3AstFM6DefFunN10Ast__exp_t1rRM8deffun_t(df_0, &v_21), _fx_catch_12); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_21, eseq_2, true, &v_22), _fx_catch_12); - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_22, &env_7, &v_5); + FX_CALL(_fx_M3AstFM6DefFunN10Ast__exp_t1rRM8deffun_t(df_0, &v_20), _fx_catch_12); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_20, eseq_acc_0, true, &v_21), _fx_catch_12); + _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_21, &env_5, &v_3); _fx_catch_12: ; - if (v_22) { - _fx_free_LN10Ast__exp_t(&v_22); - } if (v_21) { - _fx_free_N10Ast__exp_t(&v_21); + _fx_free_LN10Ast__exp_t(&v_21); + } + if (v_20) { + _fx_free_N10Ast__exp_t(&v_20); } - _fx_free_R13Ast__deffun_t(&v_20); + _fx_free_R13Ast__deffun_t(&v_19); fx_free_exn(&exn_3); if (df_0) { _fx_free_rR13Ast__deffun_t(&df_0); } - FX_FREE_LIST_SIMPLE(&v_19); - fx_free_exn(&v_18); + FX_FREE_LIST_SIMPLE(&v_18); + fx_free_exn(&v_17); goto _fx_endmatch_4; } _fx_N10Ast__exp_t e_3 = 0; _fx_N10Ast__exp_t e_4 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_27 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_29 = {0}; _fx_N10Ast__typ_t etyp_0 = 0; - _fx_LN10Ast__exp_t v_28 = 0; + _fx_LN10Ast__exp_t v_30 = 0; if (FX_REC_VARIANT_TAG(e_1) == 4) { - _fx_Nt6option1N10Ast__exp_t v_29 = e_1->u.ExpReturn.t0; - if ((v_29 != 0) + 1 == 2) { + _fx_Nt6option1N10Ast__exp_t v_31 = e_1->u.ExpReturn.t0; + if ((v_31 != 0) + 1 == 2) { bool t_4; if (idx_0 == nexps_0 - 1) { t_4 = is_func_scope_0; @@ -32456,7 +31930,7 @@ _fx_endmatch_0: ; t_4 = false; } if (t_4) { - FX_COPY_PTR(v_29->u.Some, &e_3); + FX_COPY_PTR(v_31->u.Some, &e_3); } else { FX_COPY_PTR(e_1, &e_3); @@ -32467,117 +31941,108 @@ _fx_endmatch_0: ; FX_COPY_PTR(e_1, &e_3); _fx_endmatch_1: ; - FX_CHECK_EXN(_fx_catch_17); + FX_CHECK_EXN(_fx_catch_16); FX_CALL( _fx_M13Ast_typecheckFM9check_expN10Ast__exp_t3N10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_t( - e_3, &env_7, sc_1, &e_4, 0), _fx_catch_17); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e_4, &v_27, 0), _fx_catch_17); - FX_COPY_PTR(v_27.t0, &etyp_0); - _fx_R10Ast__loc_t eloc_0 = v_27.t1; + e_3, &env_5, sc_1, &e_4, 0), _fx_catch_16); + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(e_4, &v_29, 0), _fx_catch_16); + FX_COPY_PTR(v_29.t0, &etyp_0); + _fx_R10Ast__loc_t eloc_0 = v_29.t1; int tag_2 = FX_REC_VARIANT_TAG(e_4); if (tag_2 == 1) { - fx_exn_t v_30 = {0}; - if (nexps_0 != 1) { - fx_str_t slit_4 = FX_MAKE_STR("there cannot be {} operators inside code blocks"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_4, &v_30, 0), _fx_catch_13); - FX_THROW(&v_30, false, _fx_catch_13); - } - - _fx_catch_13: ; - fx_free_exn(&v_30); goto _fx_endmatch_3; } - bool res_1; + bool res_2; if (tag_2 == 2) { - res_1 = true; + res_2 = true; } else if (tag_2 == 3) { - res_1 = true; + res_2 = true; } else if (tag_2 == 4) { - res_1 = true; + res_2 = true; } else { - res_1 = false; + res_2 = false; } - FX_CHECK_EXN(_fx_catch_17); - if (res_1) { - fx_exn_t v_31 = {0}; + FX_CHECK_EXN(_fx_catch_16); + if (res_2) { + fx_exn_t v_32 = {0}; if (idx_0 != nexps_0 - 1) { - fx_str_t slit_5 = + fx_str_t slit_4 = FX_MAKE_STR( "break/continue/return operator should not be followed by any other operators in the same linear code sequence"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_5, &v_31, 0), _fx_catch_14); - FX_THROW(&v_31, false, _fx_catch_14); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_4, &v_32, 0), _fx_catch_13); + FX_THROW(&v_32, false, _fx_catch_13); } - _fx_catch_14: ; - fx_free_exn(&v_31); + _fx_catch_13: ; + fx_free_exn(&v_32); goto _fx_endmatch_3; } if (tag_2 == 32) { goto _fx_endmatch_3; } - _fx_N10Ast__typ_t v_32 = 0; - _fx_Nt6option1N10Ast__typ_t v_33 = 0; - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp_0, &v_32, 0), _fx_catch_16); - int tag_3 = FX_REC_VARIANT_TAG(v_32); - bool res_2; + _fx_N10Ast__typ_t v_33 = 0; + _fx_Nt6option1N10Ast__typ_t v_34 = 0; + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp_0, &v_33, 0), _fx_catch_15); + int tag_3 = FX_REC_VARIANT_TAG(v_33); + bool res_3; if (tag_3 == 14) { - res_2 = true; + res_3 = true; } else if (tag_3 == 26) { - res_2 = true; + res_3 = true; } else { - res_2 = false; + res_3 = false; } - FX_CHECK_EXN(_fx_catch_16); - if (res_2) { + FX_CHECK_EXN(_fx_catch_15); + if (res_3) { goto _fx_endmatch_2; } if (tag_3 == 1) { - FX_COPY_PTR(v_32->u.TypVar->data, &v_33); - if ((v_33 != 0) + 1 == 1) { + FX_COPY_PTR(v_33->u.TypVar->data, &v_34); + if ((v_34 != 0) + 1 == 1) { goto _fx_endmatch_2; } } - fx_exn_t v_34 = {0}; + fx_exn_t v_35 = {0}; if (idx_0 != nexps_0 - 1) { - fx_str_t slit_6 = + fx_str_t slit_5 = FX_MAKE_STR( "non-void expression occurs before the end of code block. Check the line breaks; if it\'s valid, use ignore() function to dismiss the error"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_6, &v_34, 0), _fx_catch_15); - FX_THROW(&v_34, false, _fx_catch_15); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_5, &v_35, 0), _fx_catch_14); + FX_THROW(&v_35, false, _fx_catch_14); } - _fx_catch_15: ; - fx_free_exn(&v_34); + _fx_catch_14: ; + fx_free_exn(&v_35); _fx_endmatch_2: ; - FX_CHECK_EXN(_fx_catch_16); + FX_CHECK_EXN(_fx_catch_15); - _fx_catch_16: ; - if (v_33) { - _fx_free_Nt6option1N10Ast__typ_t(&v_33); + _fx_catch_15: ; + if (v_34) { + _fx_free_Nt6option1N10Ast__typ_t(&v_34); } - if (v_32) { - _fx_free_N10Ast__typ_t(&v_32); + if (v_33) { + _fx_free_N10Ast__typ_t(&v_33); } _fx_endmatch_3: ; - FX_CHECK_EXN(_fx_catch_17); - FX_CALL(_fx_cons_LN10Ast__exp_t(e_4, eseq_2, true, &v_28), _fx_catch_17); - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_28, &env_7, &v_5); + FX_CHECK_EXN(_fx_catch_16); + FX_CALL(_fx_cons_LN10Ast__exp_t(e_4, eseq_acc_0, true, &v_30), _fx_catch_16); + _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_30, &env_5, &v_3); - _fx_catch_17: ; - if (v_28) { - _fx_free_LN10Ast__exp_t(&v_28); + _fx_catch_16: ; + if (v_30) { + _fx_free_LN10Ast__exp_t(&v_30); } if (etyp_0) { _fx_free_N10Ast__typ_t(&etyp_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_27); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_29); if (e_4) { _fx_free_N10Ast__exp_t(&e_4); } @@ -32586,83 +32051,93 @@ _fx_endmatch_0: ; } _fx_endmatch_4: ; - FX_CHECK_EXN(_fx_catch_18); + FX_CHECK_EXN(_fx_catch_17); - _fx_catch_18: ; + _fx_catch_17: ; if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_0); fx_status = 0; - _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_5); + _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3); int tag_4 = exn_0.tag; if (tag_4 == _FX_EXN_E17Ast__CompileError) { - _fx_LN10Ast__exp_t v_35 = 0; - FX_CALL(_fx_M3AstFM16push_compile_errv1E(&exn_0, 0), _fx_catch_19); - FX_CALL(_fx_cons_LN10Ast__exp_t(e_1, eseq_2, true, &v_35), _fx_catch_19); - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_35, &env_7, &v_5); + _fx_LN10Ast__exp_t v_36 = 0; + FX_CALL(_fx_M3AstFM16push_compile_errv1E(&exn_0, 0), _fx_catch_18); + FX_CALL(_fx_cons_LN10Ast__exp_t(e_1, eseq_acc_0, true, &v_36), _fx_catch_18); + _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_36, &env_5, &v_3); - _fx_catch_19: ; - if (v_35) { - _fx_free_LN10Ast__exp_t(&v_35); + _fx_catch_18: ; + if (v_36) { + _fx_free_LN10Ast__exp_t(&v_36); } } else if (tag_4 == _FX_EXN_E26Ast__PropagateCompileError) { - _fx_LN10Ast__exp_t v_36 = 0; - FX_CALL(_fx_cons_LN10Ast__exp_t(e_1, eseq_2, true, &v_36), _fx_catch_20); - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_36, &env_7, &v_5); + _fx_LN10Ast__exp_t v_37 = 0; + FX_CALL(_fx_cons_LN10Ast__exp_t(e_1, eseq_acc_0, true, &v_37), _fx_catch_19); + _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_37, &env_5, &v_3); - _fx_catch_20: ; - if (v_36) { - _fx_free_LN10Ast__exp_t(&v_36); + _fx_catch_19: ; + if (v_37) { + _fx_free_LN10Ast__exp_t(&v_37); } } else { - FX_THROW(&exn_0, false, _fx_catch_21); + FX_THROW(&exn_0, false, _fx_catch_20); } - FX_CHECK_EXN(_fx_catch_21); + FX_CHECK_EXN(_fx_catch_20); } - FX_COPY_PTR(v_5.t0, &eseq1_0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_5.t1, &env1_0); - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(eseq1_0, &env1_0, &v_6); - _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___1); - _fx_copy_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_6, &__fold_result___1); + FX_COPY_PTR(v_3.t0, &eseq1_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3.t1, &env1_0); + _fx_free_LN10Ast__exp_t(&eseq_acc_0); + FX_COPY_PTR(eseq1_0, &eseq_acc_0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_5); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_0, &env_5); - _fx_catch_21: ; - _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_6); + _fx_catch_20: ; _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_0); if (eseq1_0) { _fx_free_LN10Ast__exp_t(&eseq1_0); } fx_free_exn(&exn_0); - _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_5); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_7); - if (eseq_2) { - _fx_free_LN10Ast__exp_t(&eseq_2); - } - _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_4); + _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___1, &v_0); - FX_COPY_PTR(v_0.t0, &eseq_1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0.t1, &env_5); + FX_COPY_PTR(eseq_acc_0, &eseq_1); FX_CALL(_fx_M3AstFM18check_compile_errsv0(0), _fx_cleanup); - FX_CALL(_fx_M13Ast_typecheckFM3revLN10Ast__exp_t1LN10Ast__exp_t(eseq_1, &v_1, 0), _fx_cleanup); - _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_1, &env_5, fx_result); + _fx_LN10Ast__exp_t lst_2 = eseq_1; + for (; lst_2; lst_2 = lst_2->tl) { + _fx_LN10Ast__exp_t v_38 = 0; + _fx_N10Ast__exp_t a_0 = lst_2->hd; + FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, res_0, true, &v_38), _fx_catch_21); + _fx_free_LN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_38, &res_0); + + _fx_catch_21: ; + if (v_38) { + _fx_free_LN10Ast__exp_t(&v_38); + } + FX_CHECK_EXN(_fx_cleanup); + } + FX_COPY_PTR(res_0, &v_0); + _fx_make_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_0, &env_5, fx_result); _fx_cleanup: ; FX_FREE_LIST_SIMPLE(&sc_1); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); - _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___1); - _fx_free_T2LN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0); + if (eseq_acc_0) { + _fx_free_LN10Ast__exp_t(&eseq_acc_0); + } + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_5); if (eseq_1) { _fx_free_LN10Ast__exp_t(&eseq_1); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_5); - if (v_1) { - _fx_free_LN10Ast__exp_t(&v_1); + if (res_0) { + _fx_free_LN10Ast__exp_t(&res_0); + } + if (v_0) { + _fx_free_LN10Ast__exp_t(&v_0); } return fx_status; } @@ -32835,33 +32310,30 @@ FX_EXTERN_C int struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* fx_result, void* fx_fv) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___0 = {0}; - _fx_LN16Ast__env_entry_t __fold_result___1 = 0; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; + _fx_LN16Ast__env_entry_t res_0 = 0; _fx_LN16Ast__env_entry_t v_0 = 0; int fx_status = 0; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &env_1); _fx_LN16Ast__env_entry_t lst_0 = entries_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN16Ast__env_entry_t r_0 = 0; + _fx_LN16Ast__env_entry_t v_1 = 0; _fx_N16Ast__env_entry_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LN16Ast__env_entry_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN16Ast__env_entry_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LN16Ast__env_entry_t(a_0, res_0, true, &v_1), _fx_catch_0); + _fx_free_LN16Ast__env_entry_t(&res_0); + FX_COPY_PTR(v_1, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN16Ast__env_entry_t(&r_0); + if (v_1) { + _fx_free_LN16Ast__env_entry_t(&v_1); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_0); + FX_COPY_PTR(res_0, &v_0); _fx_LN16Ast__env_entry_t lst_1 = v_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_1 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_2 = {0}; _fx_N16Ast__env_entry_t i_0 = lst_1->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env_1); int tag_0 = FX_REC_VARIANT_TAG(i_0); if (tag_0 == 1) { _fx_N14Ast__id_info_t info_0 = {0}; @@ -32870,19 +32342,19 @@ FX_EXTERN_C int FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(i_1, loc_0, &info_0, 0), _fx_catch_3); FX_CALL(_fx_M3AstFM9get_scopeLN12Ast__scope_t1N14Ast__id_info_t(&info_0, &sc_0, 0), _fx_catch_3); if (sc_0 != 0) { - _fx_N12Ast__scope_t* v_2 = &sc_0->hd; - if (v_2->tag == 10) { + _fx_N12Ast__scope_t* v_3 = &sc_0->hd; + if (v_3->tag == 10) { bool t_0; if (parent_mod_0 == -1) { t_0 = true; } else { - t_0 = parent_mod_0 == v_2->u.ScModule; + t_0 = parent_mod_0 == v_3->u.ScModule; } if (t_0) { FX_CALL( _fx_M13Ast_typecheckFM13add_id_to_envRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t3R9Ast__id_tR9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t( - key_0, i_1, &env_1, &v_1, 0), _fx_catch_1); + key_0, i_1, &env_1, &v_2, 0), _fx_catch_1); _fx_catch_1: ; goto _fx_endmatch_0; @@ -32892,12 +32364,12 @@ FX_EXTERN_C int if (info_0.tag == 8) { FX_CALL( _fx_M13Ast_typecheckFM13add_id_to_envRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t3R9Ast__id_tR9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t( - key_0, i_1, &env_1, &v_1, 0), _fx_catch_2); + key_0, i_1, &env_1, &v_2, 0), _fx_catch_2); _fx_catch_2: ; goto _fx_endmatch_0; } - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &v_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &v_2); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_3); @@ -32907,26 +32379,25 @@ FX_EXTERN_C int _fx_free_N14Ast__id_info_t(&info_0); } else if (tag_0 == 2) { - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &v_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &v_2); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_4); } FX_CHECK_EXN(_fx_catch_4); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_1, &__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_2, &env_1); _fx_catch_4: ; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_1); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, fx_result); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, fx_result); _fx_cleanup: ; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); - if (__fold_result___1) { - _fx_free_LN16Ast__env_entry_t(&__fold_result___1); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); + if (res_0) { + _fx_free_LN16Ast__env_entry_t(&res_0); } if (v_0) { _fx_free_LN16Ast__env_entry_t(&v_0); @@ -32942,50 +32413,41 @@ FX_EXTERN_C int struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* fx_result, void* fx_fv) { - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t __fold_result___0 = {0}; - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t v_0 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_acc_0 = {0}; + _fx_LT2iR10Ast__loc_t mlist_0 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; int fx_status = 0; int_ curr_m_idx_0; FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(sc_0, &curr_m_idx_0, 0), _fx_cleanup); - _fx_make_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(env_0, 0, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &env_acc_0); _fx_LN10Ast__exp_t lst_0 = eseq_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t v_1 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_2 = {0}; - _fx_LT2iR10Ast__loc_t mlist_0 = 0; - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t v_2 = {0}; _fx_N10Ast__exp_t e_0 = lst_0->hd; - _fx_copy_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&__fold_result___0, &v_1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_1.t0, &env_2); - FX_COPY_PTR(v_1.t1, &mlist_0); int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 40) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___1 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_2 = {0}; _fx_LT2iR9Ast__id_t impdirs_0 = 0; _fx_T2LT2iR9Ast__id_tR10Ast__loc_t* vcase_0 = &e_0->u.DirImport; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2, &__fold_result___1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0, &env_2); FX_COPY_PTR(vcase_0->t0, &impdirs_0); _fx_LT2iR9Ast__id_t lst_1 = impdirs_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_3 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_3 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_0 = {0}; fx_exn_t exn_0 = {0}; _fx_T2iR9Ast__id_t* __pat___0 = &lst_1->hd; _fx_R9Ast__id_t alias_0 = __pat___0->t1; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___1, &env_3); FX_CALL( _fx_M13Ast_typecheckFM10import_modRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t6Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tiBR10Ast__loc_ti( - &env_3, &alias_0, __pat___0->t0, true, &vcase_0->t1, curr_m_idx_0, &v_3, 0), _fx_catch_0); + &env_2, &alias_0, __pat___0->t0, true, &vcase_0->t1, curr_m_idx_0, &v_0, 0), _fx_catch_0); _fx_catch_0: ; if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_0); fx_status = 0; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0); if (exn_0.tag == _FX_EXN_E17Ast__CompileError) { FX_CALL(_fx_M3AstFM16push_compile_errv1E(&exn_0, 0), _fx_catch_1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3, &v_3); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2, &v_0); _fx_catch_1: ; } @@ -32994,99 +32456,96 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_2); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3, &__fold_result___1); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0, &env_2); _fx_catch_2: ; fx_free_exn(&exn_0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0); FX_CHECK_EXN(_fx_catch_3); } - _fx_make_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&__fold_result___1, mlist_0, &v_2); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2, &env_acc_0); _fx_catch_3: ; FX_FREE_LIST_SIMPLE(&impdirs_0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___1); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); } else if (tag_0 == 41) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_4 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_3 = {0}; fx_exn_t exn_1 = {0}; - _fx_LT2iR10Ast__loc_t v_4 = 0; + _fx_LT2iR10Ast__loc_t v_1 = 0; _fx_T3iLR9Ast__id_tR10Ast__loc_t* vcase_1 = &e_0->u.DirImportFrom; _fx_R10Ast__loc_t* eloc_0 = &vcase_1->t2; _fx_LR9Ast__id_t implist_0 = vcase_1->t1; int_ m_0 = vcase_1->t0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t menv_0 = {0}; _fx_LR9Ast__id_t keys_0 = 0; - _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t v_5 = 0; + _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t v_2 = 0; _fx_FPLR9Ast__id_t3R9Ast__id_tLN16Ast__env_entry_tLR9Ast__id_t __lambda___0 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___2 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_5 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_4 = {0}; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_0), _fx_catch_7); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t( - &(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0))->u.defmodule_t.t6, &menv_0); + _fx_N16Ast__defmodule_t v_3 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3->u.defmodule_t.t6, &menv_0); if (implist_0 != 0) { FX_COPY_PTR(implist_0, &keys_0); } else { - FX_COPY_PTR(menv_0.root, &v_5); + FX_COPY_PTR(menv_0.root, &v_2); _fx_FPLR9Ast__id_t3R9Ast__id_tLN16Ast__env_entry_tLR9Ast__id_t __lambda___fp_0 = { _fx_M13Ast_typecheckFM10__lambda__LR9Ast__id_t3R9Ast__id_tLN16Ast__env_entry_tLR9Ast__id_t, 0 }; FX_COPY_FP(&__lambda___fp_0, &__lambda___0); FX_CALL( _fx_M13Ast_typecheckFM7update_LR9Ast__id_t3Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tFPLR9Ast__id_t3R9Ast__id_tLN16Ast__env_entry_tLR9Ast__id_tLR9Ast__id_t( - v_5, &__lambda___0, 0, &keys_0, 0), _fx_catch_7); + v_2, &__lambda___0, 0, &keys_0, 0), _fx_catch_7); } - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2, &__fold_result___2); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0, &env_4); _fx_LR9Ast__id_t lst_2 = keys_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_6 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_6 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_4 = {0}; fx_exn_t exn_2 = {0}; _fx_R9Ast__id_t* k_0 = &lst_2->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___2, &env_6); _fx_LN16Ast__env_entry_t entries_0 = 0; + fx_str_t v_5 = {0}; + fx_str_t v_6 = {0}; fx_str_t v_7 = {0}; - fx_str_t v_8 = {0}; - fx_str_t v_9 = {0}; - fx_exn_t v_10 = {0}; + fx_exn_t v_8 = {0}; FX_CALL( _fx_M13Ast_typecheckFM8find_allLN16Ast__env_entry_t2R9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(k_0, &menv_0, &entries_0, 0), _fx_catch_4); if (entries_0 == 0) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(k_0, &v_7, 0), _fx_catch_4); - _fx_R9Ast__id_t v_11; - FX_CALL(_fx_M3AstFM15get_module_nameRM4id_t1i(m_0, &v_11, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_11, &v_8, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(k_0, &v_5, 0), _fx_catch_4); + _fx_R9Ast__id_t v_9; + FX_CALL(_fx_M3AstFM15get_module_nameRM4id_t1i(m_0, &v_9, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_9, &v_6, 0), _fx_catch_4); fx_str_t slit_0 = FX_MAKE_STR("no symbol "); fx_str_t slit_1 = FX_MAKE_STR(" found in "); { - const fx_str_t strs_0[] = { slit_0, v_7, slit_1, v_8 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 4, &v_9), _fx_catch_4); + const fx_str_t strs_0[] = { slit_0, v_5, slit_1, v_6 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 4, &v_7), _fx_catch_4); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(eloc_0, &v_9, &v_10, 0), _fx_catch_4); - FX_THROW(&v_10, false, _fx_catch_4); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(eloc_0, &v_7, &v_8, 0), _fx_catch_4); + FX_THROW(&v_8, false, _fx_catch_4); } FX_CALL( _fx_M13Ast_typecheckFM14import_entriesRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t5Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tiR9Ast__id_tLN16Ast__env_entry_tR10Ast__loc_t( - &env_6, m_0, k_0, entries_0, eloc_0, &v_6, 0), _fx_catch_4); + &env_4, m_0, k_0, entries_0, eloc_0, &v_4, 0), _fx_catch_4); _fx_catch_4: ; if (entries_0) { _fx_free_LN16Ast__env_entry_t(&entries_0); } + FX_FREE_STR(&v_5); + FX_FREE_STR(&v_6); FX_FREE_STR(&v_7); - FX_FREE_STR(&v_8); - FX_FREE_STR(&v_9); - fx_free_exn(&v_10); + fx_free_exn(&v_8); if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_2); fx_status = 0; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_6); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_4); if (exn_2.tag == _FX_EXN_E17Ast__CompileError) { FX_CALL(_fx_M3AstFM16push_compile_errv1E(&exn_2, 0), _fx_catch_5); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_6, &v_6); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4, &v_4); _fx_catch_5: ; } @@ -33095,38 +32554,35 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_6); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___2); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_6, &__fold_result___2); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_4, &env_4); _fx_catch_6: ; fx_free_exn(&exn_2); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_6); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_6); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_4); FX_CHECK_EXN(_fx_catch_7); } - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___2, &env_5); _fx_R9Ast__id_t alias_1; FX_CALL(_fx_M3AstFM15get_module_nameRM4id_t1i(m_0, &alias_1, 0), _fx_catch_7); FX_CALL( _fx_M13Ast_typecheckFM10import_modRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t6Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tiBR10Ast__loc_ti( - &env_5, &alias_1, m_0, true, eloc_0, curr_m_idx_0, &env_4, 0), _fx_catch_7); + &env_4, &alias_1, m_0, true, eloc_0, curr_m_idx_0, &env_3, 0), _fx_catch_7); _fx_catch_7: ; _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&menv_0); FX_FREE_LIST_SIMPLE(&keys_0); - if (v_5) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&v_5); + if (v_2) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&v_2); } FX_FREE_FP(&__lambda___0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___2); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_5); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_1); fx_status = 0; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3); if (exn_1.tag == _FX_EXN_E17Ast__CompileError) { FX_CALL(_fx_M3AstFM16push_compile_errv1E(&exn_1, 0), _fx_catch_8); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2, &env_4); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0, &env_3); _fx_catch_8: ; } @@ -33135,40 +32591,33 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_9); } - _fx_T2iR10Ast__loc_t v_12 = { m_0, *eloc_0 }; - FX_CALL(_fx_cons_LT2iR10Ast__loc_t(&v_12, mlist_0, true, &v_4), _fx_catch_9); - _fx_make_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&env_4, v_4, &v_2); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3, &env_acc_0); + _fx_T2iR10Ast__loc_t v_10 = { m_0, *eloc_0 }; + FX_CALL(_fx_cons_LT2iR10Ast__loc_t(&v_10, mlist_0, true, &v_1), _fx_catch_9); + FX_FREE_LIST_SIMPLE(&mlist_0); + FX_COPY_PTR(v_1, &mlist_0); _fx_catch_9: ; - FX_FREE_LIST_SIMPLE(&v_4); + FX_FREE_LIST_SIMPLE(&v_1); fx_free_exn(&exn_1); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); - } - else if (tag_0 == 42) { - _fx_make_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&env_2, mlist_0, &v_2); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3); } - else { - _fx_make_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&env_2, mlist_0, &v_2); + else if (tag_0 != 42) { + } FX_CHECK_EXN(_fx_catch_10); - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&__fold_result___0); - _fx_copy_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&v_2, &__fold_result___0); _fx_catch_10: ; - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&v_2); - FX_FREE_LIST_SIMPLE(&mlist_0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&v_1); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&__fold_result___0, &v_0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0.t0, &env_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0, &env_1); FX_CALL(_fx_M3AstFM18check_compile_errsv0(0), _fx_cleanup); _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, fx_result); _fx_cleanup: ; - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&__fold_result___0); - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT2iR10Ast__loc_t(&v_0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_acc_0); + FX_FREE_LIST_SIMPLE(&mlist_0); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); return fx_status; } @@ -33191,7 +32640,7 @@ static int _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_2 = {0}; fx_str_t alias_path_0 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_3 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___0 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_4 = {0}; _fx_LR9Ast__id_t v_1 = 0; int fx_status = 0; bool v_2; @@ -33203,8 +32652,9 @@ static int } else { FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); + _fx_N16Ast__defmodule_t v_3 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); _fx_T10R9Ast__id_tSiBLN10Ast__exp_tLiRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tBiNt9Dynvec__t1N14Ast__id_info_t* vcase_0 = - &(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t; + &v_3->u.defmodule_t; _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&vcase_0->t6, &menv_0); fx_copy_str(&vcase_0->t1, &dm_filename_0); _fx_R9Ast__id_t dm_name_0 = vcase_0->t0; @@ -33222,33 +32672,30 @@ static int FX_CALL( _fx_M13Ast_typecheckFM11add_parentsRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t4SSRt6Map__t2R9Ast__id_tLN16Ast__env_entry_ti( &alias_path_0, &dm_filename_0, &env_2, curr_m_idx_0, &env_3, 0), _fx_cleanup); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3, &env_4); FX_CALL(_fx_M3AstFM19fname_always_importLRM4id_t0(&v_1, 0), _fx_cleanup); _fx_LR9Ast__id_t lst_0 = v_1; for (; lst_0; lst_0 = lst_0->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_4 = {0}; _fx_LN16Ast__env_entry_t entries_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_3 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_4 = {0}; _fx_R9Ast__id_t* op_name_0 = &lst_0->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env_4); FX_CALL( _fx_M13Ast_typecheckFM8find_allLN16Ast__env_entry_t2R9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(op_name_0, &menv_0, &entries_0, 0), _fx_catch_0); FX_CALL( _fx_M13Ast_typecheckFM14import_entriesRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t5Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tiR9Ast__id_tLN16Ast__env_entry_tR10Ast__loc_t( - &env_4, m_idx_0, op_name_0, entries_0, loc_0, &v_3, 0), _fx_catch_0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3, &__fold_result___0); + &env_4, m_idx_0, op_name_0, entries_0, loc_0, &v_4, 0), _fx_catch_0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_4, &env_4); _fx_catch_0: ; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_3); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_4); if (entries_0) { _fx_free_LN16Ast__env_entry_t(&entries_0); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, fx_result); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4, fx_result); } _fx_cleanup: ; @@ -33259,7 +32706,7 @@ _fx_cleanup: ; _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); FX_FREE_STR(&alias_path_0); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_4); FX_FREE_LIST_SIMPLE(&v_1); return fx_status; } @@ -33306,9 +32753,11 @@ static int int_ parent_idx_0; FX_CALL(_fx_M3AstFM11find_modulei2RM4id_tS(&parent_id_0, &parent_fname_0, &parent_idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, parent_idx_0), _fx_catch_0); - if (!(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, parent_idx_0))->u.defmodule_t.t7) { + _fx_N16Ast__defmodule_t v_1 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, parent_idx_0); + if (!v_1->u.defmodule_t.t7) { FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, parent_idx_0), _fx_catch_0); - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, parent_idx_0))->u.defmodule_t.t3 = false; + _fx_N16Ast__defmodule_t v_2 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, parent_idx_0); + v_2->u.defmodule_t.t3 = false; } _fx_R9Ast__id_t local_parent_id_0; FX_CALL(_fx_M3AstFM6dup_idRM4id_t2iRM4id_t(curr_m_idx_0, &parent_id_0, &local_parent_id_0, 0), _fx_catch_0); @@ -33368,17 +32817,15 @@ FX_EXTERN_C int struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* fx_result, void* fx_fv) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___0 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; int fx_status = 0; int_ curr_m_idx_0; FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(sc_0, &curr_m_idx_0, 0), _fx_cleanup); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &env_1); _fx_LN10Ast__exp_t lst_0 = eseq_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_0 = {0}; _fx_N10Ast__exp_t e_0 = lst_0->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env_1); int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 37) { _fx_N10Ast__typ_t dt_typ_0 = 0; @@ -33565,18 +33012,17 @@ FX_EXTERN_C int _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &v_0); } FX_CHECK_EXN(_fx_catch_6); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0, &__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0, &env_1); _fx_catch_6: ; _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, fx_result); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, fx_result); _fx_cleanup: ; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); return fx_status; } @@ -33701,22 +33147,19 @@ FX_EXTERN_C int struct _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* fx_result, void* fx_fv) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___0 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &env_1); _fx_LN10Ast__exp_t lst_0 = eseq_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_1 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_0 = {0}; _fx_N10Ast__exp_t e_0 = lst_0->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env_1); int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 37) { _fx_LN12Ast__scope_t dt_scope_0 = 0; _fx_N10Ast__typ_t dt_typ_0 = 0; _fx_LR9Ast__id_t dt_templ_args_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___1 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_0 = {0}; _fx_N10Ast__typ_t v_1 = 0; _fx_N10Ast__typ_t dt_typ_1 = 0; @@ -33728,10 +33171,9 @@ FX_EXTERN_C int FX_COPY_PTR(v_3->dt_typ, &dt_typ_0); FX_COPY_PTR(v_3->dt_templ_args, &dt_templ_args_0); _fx_R9Ast__id_t dt_name_0 = v_3->dt_name; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &__fold_result___1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &env1_0); _fx_LR9Ast__id_t lst_1 = dt_templ_args_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_1 = {0}; _fx_N10Ast__typ_t v_4 = 0; _fx_LN16Ast__env_entry_t entries_0 = 0; _fx_N16Ast__env_entry_t v_5 = 0; @@ -33744,15 +33186,14 @@ FX_EXTERN_C int _fx_FPi2R9Ast__id_tR9Ast__id_t v_11 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_12 = {0}; _fx_R9Ast__id_t* t_arg_0 = &lst_1->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___1, &env1_1); FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, t_arg_0, &v_4), _fx_catch_1); FX_CALL( _fx_M13Ast_typecheckFM8find_allLN16Ast__env_entry_t2R9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(t_arg_0, - &env1_1, &entries_0, 0), _fx_catch_1); + &env1_0, &entries_0, 0), _fx_catch_1); FX_CALL(_fx_M3AstFM6EnvTypN16Ast__env_entry_t1N10Ast__typ_t(v_4, &v_5), _fx_catch_1); FX_CALL(_fx_cons_LN16Ast__env_entry_t(v_5, entries_0, true, &v_6), _fx_catch_1); - FX_COPY_PTR(env1_1.root, &v_7); - FX_COPY_FP(&env1_1.cmp, &v_8); + FX_COPY_PTR(env1_0.root, &v_7); + FX_COPY_FP(&env1_0.cmp, &v_8); FX_CALL( _fx_M13Ast_typecheckFM12add_to_tree_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t4Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tLN16Ast__env_entry_tFPi2R9Ast__id_tR9Ast__id_t( v_7, t_arg_0, v_6, &v_8, &v_9, 0), _fx_catch_1); @@ -33778,10 +33219,10 @@ FX_EXTERN_C int _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_1); FX_COPY_PTR(v_10.t0, &new_root_0); - FX_COPY_FP(&env1_1.cmp, &v_11); + FX_COPY_FP(&env1_0.cmp, &v_11); _fx_make_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(new_root_0, &v_11, &v_12); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_12, &__fold_result___1); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_12, &env1_0); _fx_catch_1: ; _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_12); @@ -33809,10 +33250,8 @@ FX_EXTERN_C int if (v_4) { _fx_free_N10Ast__typ_t(&v_4); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_1); FX_CHECK_EXN(_fx_catch_2); } - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___1, &env1_0); FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( dt_typ_0, &env1_0, dt_scope_0, &dt_loc_0, &v_1, 0), _fx_catch_2); @@ -33832,7 +33271,6 @@ FX_EXTERN_C int _fx_free_N10Ast__typ_t(&v_1); } _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___1); FX_FREE_LIST_SIMPLE(&dt_templ_args_0); if (dt_typ_0) { _fx_free_N10Ast__typ_t(&dt_typ_0); @@ -33843,99 +33281,97 @@ FX_EXTERN_C int _fx_T2R9Ast__id_tN10Ast__typ_t res_0 = {0}; _fx_LR9Ast__id_t dvar_ctors_0 = 0; _fx_LT2R9Ast__id_tN10Ast__typ_t dvar_cases_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___2 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_2 = {0}; _fx_rR17Ast__defvariant_t dvar_0 = e_0->u.DefVariant; - _fx_R10Ast__loc_t v_15 = dvar_0->data.dvar_loc; + _fx_R17Ast__defvariant_t* v_15 = &dvar_0->data; + _fx_R10Ast__loc_t v_16 = v_15->dvar_loc; FX_CALL( _fx_M13Ast_typecheckFM19instantiate_variantT2R9Ast__id_tN10Ast__typ_t5LN10Ast__typ_trR17Ast__defvariant_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - 0, dvar_0, &env_1, sc_0, &v_15, &res_0, 0), _fx_catch_5); - _fx_R17Ast__defvariant_t* v_16 = &dvar_0->data; - _fx_R10Ast__loc_t dvar_loc_0 = v_16->dvar_loc; - FX_COPY_PTR(v_16->dvar_ctors, &dvar_ctors_0); - FX_COPY_PTR(v_16->dvar_cases, &dvar_cases_0); - _fx_R9Ast__id_t dvar_name_0 = v_16->dvar_name; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &__fold_result___2); + 0, dvar_0, &env_1, sc_0, &v_16, &res_0, 0), _fx_catch_5); + _fx_R17Ast__defvariant_t* v_17 = &dvar_0->data; + _fx_R10Ast__loc_t dvar_loc_0 = v_17->dvar_loc; + FX_COPY_PTR(v_17->dvar_ctors, &dvar_ctors_0); + FX_COPY_PTR(v_17->dvar_cases, &dvar_cases_0); + _fx_R9Ast__id_t dvar_name_0 = v_17->dvar_name; + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &env_2); _fx_LT2R9Ast__id_tN10Ast__typ_t lst_2 = dvar_cases_0; _fx_LR9Ast__id_t lst_3 = dvar_ctors_0; for (; lst_2 && lst_3; lst_3 = lst_3->tl, lst_2 = lst_2->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_2 = {0}; - _fx_N14Ast__id_info_t v_17 = {0}; - _fx_R13Ast__deffun_t v_18 = {0}; + _fx_N14Ast__id_info_t v_18 = {0}; + _fx_R13Ast__deffun_t v_19 = {0}; _fx_N10Ast__typ_t df_typ_0 = 0; _fx_LR9Ast__id_t df_templ_args_0 = 0; - _fx_T2N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_19 = {0}; + _fx_T2N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_20 = {0}; _fx_N10Ast__typ_t t_0 = 0; - _fx_FPv1N14Ast__id_info_t v_20 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_21 = {0}; + _fx_FPv1N14Ast__id_info_t v_21 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_22 = {0}; _fx_R9Ast__id_t* ctor_name_0 = &lst_3->hd; _fx_T2R9Ast__id_tN10Ast__typ_t* __pat___0 = &lst_2->hd; _fx_R9Ast__id_t n_0 = __pat___0->t0; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___2, &env_2); - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(ctor_name_0, &dvar_loc_0, &v_17, 0), _fx_catch_4); - if (v_17.tag == 3) { - _fx_copy_R13Ast__deffun_t(&v_17.u.IdFun->data, &v_18); + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(ctor_name_0, &dvar_loc_0, &v_18, 0), _fx_catch_4); + if (v_18.tag == 3) { + _fx_copy_R13Ast__deffun_t(&v_18.u.IdFun->data, &v_19); } else { - fx_str_t v_22 = {0}; fx_str_t v_23 = {0}; fx_str_t v_24 = {0}; - fx_exn_t v_25 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&dvar_name_0, &v_22, 0), _fx_catch_3); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(ctor_name_0, &v_23, 0), _fx_catch_3); + fx_str_t v_25 = {0}; + fx_exn_t v_26 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&dvar_name_0, &v_23, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(ctor_name_0, &v_24, 0), _fx_catch_3); fx_str_t slit_0 = FX_MAKE_STR("internal error: constructor "); fx_str_t slit_1 = FX_MAKE_STR("."); fx_str_t slit_2 = FX_MAKE_STR(" is not a function"); { - const fx_str_t strs_0[] = { slit_0, v_22, slit_1, v_23, slit_2 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_24), _fx_catch_3); + const fx_str_t strs_0[] = { slit_0, v_23, slit_1, v_24, slit_2 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_25), _fx_catch_3); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&dvar_loc_0, &v_24, &v_25, 0), _fx_catch_3); - FX_THROW(&v_25, false, _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&dvar_loc_0, &v_25, &v_26, 0), _fx_catch_3); + FX_THROW(&v_26, false, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_25); + fx_free_exn(&v_26); + FX_FREE_STR(&v_25); FX_FREE_STR(&v_24); FX_FREE_STR(&v_23); - FX_FREE_STR(&v_22); } FX_CHECK_EXN(_fx_catch_4); - FX_COPY_PTR(v_18.df_typ, &df_typ_0); - FX_COPY_PTR(v_18.df_templ_args, &df_templ_args_0); + FX_COPY_PTR(v_19.df_typ, &df_typ_0); + FX_COPY_PTR(v_19.df_templ_args, &df_templ_args_0); FX_CALL( _fx_M13Ast_typecheckFM20preprocess_templ_typT2N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t5LR9Ast__id_tN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - df_templ_args_0, df_typ_0, &env_2, sc_0, &dvar_loc_0, &v_19, 0), _fx_catch_4); - FX_COPY_PTR(v_19.t0, &t_0); + df_templ_args_0, df_typ_0, &env_2, sc_0, &dvar_loc_0, &v_20, 0), _fx_catch_4); + FX_COPY_PTR(v_20.t0, &t_0); FX_CALL( _fx_M13Ast_typecheckFM23check_for_duplicate_funFPv1N14Ast__id_info_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - t_0, &env_2, sc_0, &dvar_loc_0, &v_20, 0), _fx_catch_4); + t_0, &env_2, sc_0, &dvar_loc_0, &v_21, 0), _fx_catch_4); FX_CALL( _fx_M13Ast_typecheckFM19add_id_to_env_checkRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t4R9Ast__id_tR9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tFPv1N14Ast__id_info_t( - &n_0, ctor_name_0, &env_2, &v_20, &v_21, 0), _fx_catch_4); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___2); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_21, &__fold_result___2); + &n_0, ctor_name_0, &env_2, &v_21, &v_22, 0), _fx_catch_4); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_22, &env_2); _fx_catch_4: ; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_21); - FX_FREE_FP(&v_20); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_22); + FX_FREE_FP(&v_21); if (t_0) { _fx_free_N10Ast__typ_t(&t_0); } - _fx_free_T2N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_19); + _fx_free_T2N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_20); FX_FREE_LIST_SIMPLE(&df_templ_args_0); if (df_typ_0) { _fx_free_N10Ast__typ_t(&df_typ_0); } - _fx_free_R13Ast__deffun_t(&v_18); - _fx_free_N14Ast__id_info_t(&v_17); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); + _fx_free_R13Ast__deffun_t(&v_19); + _fx_free_N14Ast__id_info_t(&v_18); FX_CHECK_EXN(_fx_catch_5); } int s_0 = !lst_2 + !lst_3; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_5); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___2, &v_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2, &v_0); _fx_catch_5: ; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___2); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); if (dvar_cases_0) { _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&dvar_cases_0); } @@ -33945,293 +33381,260 @@ FX_EXTERN_C int else if (tag_0 == 39) { _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t di_new_methods_0 = 0; _fx_R19Ast__definterface_t ibase_0 = {0}; - _fx_N10Ast__typ_t v_26 = 0; _fx_N10Ast__typ_t v_27 = 0; + _fx_N10Ast__typ_t v_28 = 0; _fx_LN12Ast__scope_t sc_1 = 0; - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t __fold_result___3 = {0}; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_28 = 0; - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_29 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_2 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_acc_0 = {0}; _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t base_members_0 = 0; - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t __fold_result___4 = {0}; - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_30 = {0}; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_29 = 0; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_1 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_acc_1 = {0}; _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t all_members_0 = 0; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t __fold_result___5 = 0; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_31 = 0; - _fx_R19Ast__definterface_t v_32 = {0}; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t all_members_1 = 0; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t res_1 = 0; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_30 = 0; + _fx_R19Ast__definterface_t v_31 = {0}; _fx_rR19Ast__definterface_t di_0 = e_0->u.DefInterface; - _fx_R19Ast__definterface_t* v_33 = &di_0->data; - _fx_R10Ast__loc_t di_loc_0 = v_33->di_loc; - FX_COPY_PTR(v_33->di_new_methods, &di_new_methods_0); - _fx_R9Ast__id_t di_base_0 = v_33->di_base; - _fx_R9Ast__id_t di_name_0 = v_33->di_name; - bool res_1; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&di_base_0, &_fx_g9Ast__noid, &res_1, 0), _fx_catch_11); - if (res_1) { + _fx_R19Ast__definterface_t* v_32 = &di_0->data; + _fx_R10Ast__loc_t di_loc_0 = v_32->di_loc; + FX_COPY_PTR(v_32->di_new_methods, &di_new_methods_0); + _fx_R9Ast__id_t di_base_0 = v_32->di_base; + _fx_R9Ast__id_t di_name_0 = v_32->di_name; + bool res_2; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&di_base_0, &_fx_g9Ast__noid, &res_2, 0), _fx_catch_11); + if (res_2) { _fx_make_R19Ast__definterface_t(&_fx_g9Ast__noid, &_fx_g9Ast__noid, 0, 0, sc_0, &di_loc_0, &ibase_0); } else { - FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, &di_base_0, &v_26), _fx_catch_11); + FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, &di_base_0, &v_27), _fx_catch_11); FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - v_26, &env_1, sc_0, &di_loc_0, &v_27, 0), _fx_catch_11); - if (FX_REC_VARIANT_TAG(v_27) == 25) { - _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_1 = &v_27->u.TypApp; + v_27, &env_1, sc_0, &di_loc_0, &v_28, 0), _fx_catch_11); + if (FX_REC_VARIANT_TAG(v_28) == 25) { + _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_1 = &v_28->u.TypApp; if (vcase_1->t0 == 0) { - _fx_rR19Ast__definterface_t v_34 = 0; - FX_CALL(_fx_M3AstFM9get_ifacerRM14definterface_t2RM4id_tRM5loc_t(&vcase_1->t1, &di_loc_0, &v_34, 0), + _fx_rR19Ast__definterface_t v_33 = 0; + FX_CALL(_fx_M3AstFM9get_ifacerRM14definterface_t2RM4id_tRM5loc_t(&vcase_1->t1, &di_loc_0, &v_33, 0), _fx_catch_6); - _fx_copy_R19Ast__definterface_t(&v_34->data, &ibase_0); + _fx_copy_R19Ast__definterface_t(&v_33->data, &ibase_0); _fx_catch_6: ; - if (v_34) { - _fx_free_rR19Ast__definterface_t(&v_34); + if (v_33) { + _fx_free_rR19Ast__definterface_t(&v_33); } goto _fx_endmatch_1; } } + fx_str_t v_34 = {0}; fx_str_t v_35 = {0}; fx_str_t v_36 = {0}; - fx_str_t v_37 = {0}; - fx_exn_t v_38 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&di_name_0, &v_35, 0), _fx_catch_7); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&di_base_0, &v_36, 0), _fx_catch_7); + fx_exn_t v_37 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&di_name_0, &v_34, 0), _fx_catch_7); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&di_base_0, &v_35, 0), _fx_catch_7); fx_str_t slit_3 = FX_MAKE_STR("base type of \'"); fx_str_t slit_4 = FX_MAKE_STR("\', \'"); fx_str_t slit_5 = FX_MAKE_STR("\' is not an interface"); { - const fx_str_t strs_1[] = { slit_3, v_35, slit_4, v_36, slit_5 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 5, &v_37), _fx_catch_7); + const fx_str_t strs_1[] = { slit_3, v_34, slit_4, v_35, slit_5 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 5, &v_36), _fx_catch_7); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&di_loc_0, &v_37, &v_38, 0), _fx_catch_7); - FX_THROW(&v_38, false, _fx_catch_7); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&di_loc_0, &v_36, &v_37, 0), _fx_catch_7); + FX_THROW(&v_37, false, _fx_catch_7); _fx_catch_7: ; - fx_free_exn(&v_38); - FX_FREE_STR(&v_37); + fx_free_exn(&v_37); FX_FREE_STR(&v_36); FX_FREE_STR(&v_35); + FX_FREE_STR(&v_34); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_11); } - _fx_N12Ast__scope_t v_39; - _fx_M3AstFM11ScInterfaceN12Ast__scope_t1RM4id_t(&di_name_0, &v_39); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_39, sc_0, true, &sc_1), _fx_catch_11); + _fx_N12Ast__scope_t v_38; + _fx_M3AstFM11ScInterfaceN12Ast__scope_t1RM4id_t(&di_name_0, &v_38); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_38, sc_0, true, &sc_1), _fx_catch_11); int_ curr_m_idx_0; FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(sc_1, &curr_m_idx_0, 0), _fx_catch_11); - _fx_make_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&env_1, 0, - &__fold_result___3); - FX_COPY_PTR(ibase_0.di_all_methods, &v_28); - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_4 = v_28; + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &env1_acc_0); + FX_COPY_PTR(ibase_0.di_all_methods, &v_29); + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_4 = v_29; for (; lst_4; lst_4 = lst_4->tl) { _fx_N10Ast__typ_t t_1 = 0; - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_40 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_3 = {0}; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t base_members_1 = 0; - _fx_FPv1N14Ast__id_info_t v_41 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_4 = {0}; - _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_42 = {0}; - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_43 = {0}; + _fx_FPv1N14Ast__id_info_t v_39 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_2 = {0}; + _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_40 = {0}; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_41 = 0; _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* __pat___1 = &lst_4->hd; _fx_R9Ast__id_t f_0 = __pat___1->t0; FX_COPY_PTR(__pat___1->t1, &t_1); _fx_R16Ast__fun_flags_t flags_0 = __pat___1->t2; - _fx_copy_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t( - &__fold_result___3, &v_40); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_40.t0, &env1_3); - FX_COPY_PTR(v_40.t1, &base_members_1); - _fx_R9Ast__id_t v_44; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&f_0, &v_44, 0), _fx_catch_8); + _fx_R9Ast__id_t v_42; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&f_0, &v_42, 0), _fx_catch_8); FX_CALL( _fx_M13Ast_typecheckFM26check_for_duplicate_methodFPv1N14Ast__id_info_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - t_1, &env1_3, sc_1, &di_loc_0, &v_41, 0), _fx_catch_8); + t_1, &env1_acc_0, sc_1, &di_loc_0, &v_39, 0), _fx_catch_8); FX_CALL( _fx_M13Ast_typecheckFM19add_id_to_env_checkRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t4R9Ast__id_tR9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tFPv1N14Ast__id_info_t( - &v_44, &f_0, &env1_3, &v_41, &env1_4, 0), _fx_catch_8); - _fx_make_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&f_0, t_1, &flags_0, &v_42); - FX_CALL(_fx_cons_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_42, base_members_1, false, &base_members_1), - _fx_catch_8); - _fx_make_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&env1_4, - base_members_1, &v_43); - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t( - &__fold_result___3); - _fx_copy_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_43, - &__fold_result___3); + &v_42, &f_0, &env1_acc_0, &v_39, &env1_2, 0), _fx_catch_8); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_acc_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_2, &env1_acc_0); + _fx_make_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&f_0, t_1, &flags_0, &v_40); + FX_CALL(_fx_cons_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_40, base_members_0, true, &v_41), _fx_catch_8); + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&base_members_0); + FX_COPY_PTR(v_41, &base_members_0); _fx_catch_8: ; - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_43); - _fx_free_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_42); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_4); - FX_FREE_FP(&v_41); - if (base_members_1) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&base_members_1); + if (v_41) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_41); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_3); - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_40); + _fx_free_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_40); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_2); + FX_FREE_FP(&v_39); if (t_1) { _fx_free_N10Ast__typ_t(&t_1); } FX_CHECK_EXN(_fx_catch_11); } - _fx_copy_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&__fold_result___3, - &v_29); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_29.t0, &env1_2); - FX_COPY_PTR(v_29.t1, &base_members_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_acc_0, &env1_1); int_ base_idx_0 = _fx_M13Ast_typecheckFM6lengthi1LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(base_members_0, 0); - _fx_make_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&env1_2, - base_members_0, &__fold_result___4); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_1, &env1_acc_1); + FX_COPY_PTR(base_members_0, &all_members_0); int_ idx_0 = 0; _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_5 = di_new_methods_0; for (; lst_5; lst_5 = lst_5->tl, idx_0 += 1) { _fx_N10Ast__typ_t t_2 = 0; - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_45 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_5 = {0}; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t all_members_1 = 0; _fx_N10Ast__typ_t t_3 = 0; - fx_str_t v_46 = {0}; - fx_str_t v_47 = {0}; - fx_exn_t v_48 = {0}; - _fx_R16Ast__val_flags_t v_49 = {0}; + fx_str_t v_43 = {0}; + fx_str_t v_44 = {0}; + fx_exn_t v_45 = {0}; + _fx_R16Ast__val_flags_t v_46 = {0}; _fx_R16Ast__val_flags_t dv_flags_0 = {0}; - _fx_R13Ast__defval_t v_50 = {0}; - _fx_N14Ast__id_info_t v_51 = {0}; - _fx_FPv1N14Ast__id_info_t v_52 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_6 = {0}; - _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_53 = {0}; - _fx_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_54 = {0}; + _fx_R13Ast__defval_t v_47 = {0}; + _fx_N14Ast__id_info_t v_48 = {0}; + _fx_FPv1N14Ast__id_info_t v_49 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_3 = {0}; + _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_50 = {0}; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_51 = 0; _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* __pat___2 = &lst_5->hd; _fx_R9Ast__id_t f_1 = __pat___2->t0; FX_COPY_PTR(__pat___2->t1, &t_2); _fx_R16Ast__fun_flags_t flags_1 = __pat___2->t2; - _fx_copy_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t( - &__fold_result___4, &v_45); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_45.t0, &env1_5); - FX_COPY_PTR(v_45.t1, &all_members_1); FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( t_2, &env_1, sc_1, &di_loc_0, &t_3, 0), _fx_catch_9); - bool v_55; - FX_CALL(_fx_M3AstFM12is_fixed_typB1N10Ast__typ_t(t_3, &v_55, 0), _fx_catch_9); - if (!v_55) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&f_1, &v_46, 0), _fx_catch_9); + bool v_52; + FX_CALL(_fx_M3AstFM12is_fixed_typB1N10Ast__typ_t(t_3, &v_52, 0), _fx_catch_9); + if (!v_52) { + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&f_1, &v_43, 0), _fx_catch_9); fx_str_t slit_6 = FX_MAKE_STR("some of the argument types or the return type of method \'"); fx_str_t slit_7 = FX_MAKE_STR("\' are not specified"); { - const fx_str_t strs_2[] = { slit_6, v_46, slit_7 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_47), _fx_catch_9); + const fx_str_t strs_2[] = { slit_6, v_43, slit_7 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_44), _fx_catch_9); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&di_loc_0, &v_47, &v_48, 0), _fx_catch_9); - FX_THROW(&v_48, false, _fx_catch_9); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&di_loc_0, &v_44, &v_45, 0), _fx_catch_9); + FX_THROW(&v_45, false, _fx_catch_9); } _fx_R9Ast__id_t f1_0; FX_CALL(_fx_M3AstFM6dup_idRM4id_t2iRM4id_t(curr_m_idx_0, &f_1, &f1_0, 0), _fx_catch_9); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_49, 0), _fx_catch_9); - _fx_T2R9Ast__id_ti v_56 = { di_name_0, idx_0 + base_idx_0 }; - _fx_make_R16Ast__val_flags_t(v_49.val_flag_arg, v_49.val_flag_mutable, v_49.val_flag_temp, v_49.val_flag_tempref, - v_49.val_flag_private, v_49.val_flag_subarray, v_49.val_flag_instance, &v_56, v_49.val_flag_ctor, - v_49.val_flag_global, &dv_flags_0); - _fx_make_R13Ast__defval_t(&f1_0, t_3, &dv_flags_0, sc_1, &di_loc_0, &v_50); - _fx_M3AstFM6IdDValN14Ast__id_info_t1RM8defval_t(&v_50, &v_51); - FX_CALL(_fx_M3AstFM12set_id_entryv2RM4id_tN14Ast__id_info_t(&f1_0, &v_51, 0), _fx_catch_9); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_46, 0), _fx_catch_9); + _fx_T2R9Ast__id_ti v_53 = { di_name_0, idx_0 + base_idx_0 }; + _fx_make_R16Ast__val_flags_t(v_46.val_flag_arg, v_46.val_flag_mutable, v_46.val_flag_temp, v_46.val_flag_tempref, + v_46.val_flag_private, v_46.val_flag_subarray, v_46.val_flag_instance, &v_53, v_46.val_flag_ctor, + v_46.val_flag_global, &dv_flags_0); + _fx_make_R13Ast__defval_t(&f1_0, t_3, &dv_flags_0, sc_1, &di_loc_0, &v_47); + _fx_M3AstFM6IdDValN14Ast__id_info_t1RM8defval_t(&v_47, &v_48); + FX_CALL(_fx_M3AstFM12set_id_entryv2RM4id_tN14Ast__id_info_t(&f1_0, &v_48, 0), _fx_catch_9); FX_CALL( _fx_M13Ast_typecheckFM26check_for_duplicate_methodFPv1N14Ast__id_info_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - t_3, &env1_5, sc_1, &di_loc_0, &v_52, 0), _fx_catch_9); + t_3, &env1_acc_1, sc_1, &di_loc_0, &v_49, 0), _fx_catch_9); FX_CALL( _fx_M13Ast_typecheckFM19add_id_to_env_checkRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t4R9Ast__id_tR9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tFPv1N14Ast__id_info_t( - &f_1, &f1_0, &env1_5, &v_52, &env1_6, 0), _fx_catch_9); - _fx_make_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&f1_0, t_3, &flags_1, &v_53); - FX_CALL(_fx_cons_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_53, all_members_1, false, &all_members_1), - _fx_catch_9); - _fx_make_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&env1_6, - all_members_1, &v_54); - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t( - &__fold_result___4); - _fx_copy_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_54, - &__fold_result___4); + &f_1, &f1_0, &env1_acc_1, &v_49, &env1_3, 0), _fx_catch_9); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_acc_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_3, &env1_acc_1); + _fx_make_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&f1_0, t_3, &flags_1, &v_50); + FX_CALL(_fx_cons_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_50, all_members_0, true, &v_51), _fx_catch_9); + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&all_members_0); + FX_COPY_PTR(v_51, &all_members_0); _fx_catch_9: ; - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_54); - _fx_free_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_53); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_6); - FX_FREE_FP(&v_52); - _fx_free_N14Ast__id_info_t(&v_51); - _fx_free_R13Ast__defval_t(&v_50); + if (v_51) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_51); + } + _fx_free_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_50); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_3); + FX_FREE_FP(&v_49); + _fx_free_N14Ast__id_info_t(&v_48); + _fx_free_R13Ast__defval_t(&v_47); _fx_free_R16Ast__val_flags_t(&dv_flags_0); - _fx_free_R16Ast__val_flags_t(&v_49); - fx_free_exn(&v_48); - FX_FREE_STR(&v_47); - FX_FREE_STR(&v_46); + _fx_free_R16Ast__val_flags_t(&v_46); + fx_free_exn(&v_45); + FX_FREE_STR(&v_44); + FX_FREE_STR(&v_43); if (t_3) { _fx_free_N10Ast__typ_t(&t_3); } - if (all_members_1) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&all_members_1); - } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_5); - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_45); if (t_2) { _fx_free_N10Ast__typ_t(&t_2); } FX_CHECK_EXN(_fx_catch_11); } - _fx_copy_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&__fold_result___4, - &v_30); - FX_COPY_PTR(v_30.t1, &all_members_0); - _fx_R19Ast__definterface_t* v_57 = &di_0->data; - _fx_R9Ast__id_t v_58 = ibase_0.di_name; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_6 = all_members_0; + FX_COPY_PTR(all_members_0, &all_members_1); + _fx_R19Ast__definterface_t* v_54 = &di_0->data; + _fx_R9Ast__id_t v_55 = ibase_0.di_name; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_6 = all_members_1; for (; lst_6; lst_6 = lst_6->tl) { - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t r_0 = 0; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_56 = 0; _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* a_0 = &lst_6->hd; - FX_COPY_PTR(__fold_result___5, &r_0); - FX_CALL(_fx_cons_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(a_0, r_0, false, &r_0), _fx_catch_10); - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&__fold_result___5); - FX_COPY_PTR(r_0, &__fold_result___5); + FX_CALL(_fx_cons_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(a_0, res_1, true, &v_56), _fx_catch_10); + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&res_1); + FX_COPY_PTR(v_56, &res_1); _fx_catch_10: ; - if (r_0) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&r_0); + if (v_56) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_56); } FX_CHECK_EXN(_fx_catch_11); } - FX_COPY_PTR(__fold_result___5, &v_31); - _fx_make_R19Ast__definterface_t(&v_57->di_name, &v_58, v_57->di_new_methods, v_31, v_57->di_scope, &v_57->di_loc, - &v_32); - _fx_R19Ast__definterface_t* v_59 = &di_0->data; - _fx_free_R19Ast__definterface_t(v_59); - _fx_copy_R19Ast__definterface_t(&v_32, v_59); + FX_COPY_PTR(res_1, &v_30); + _fx_make_R19Ast__definterface_t(&v_54->di_name, &v_55, v_54->di_new_methods, v_30, v_54->di_scope, &v_54->di_loc, + &v_31); + _fx_R19Ast__definterface_t* v_57 = &di_0->data; + _fx_free_R19Ast__definterface_t(v_57); + _fx_copy_R19Ast__definterface_t(&v_31, v_57); _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &v_0); _fx_catch_11: ; - _fx_free_R19Ast__definterface_t(&v_32); - if (v_31) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_31); + _fx_free_R19Ast__definterface_t(&v_31); + if (v_30) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_30); } - if (__fold_result___5) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&__fold_result___5); + if (res_1) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&res_1); + } + if (all_members_1) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&all_members_1); } if (all_members_0) { _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&all_members_0); } - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_30); - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&__fold_result___4); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_acc_1); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_1); + if (v_29) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_29); + } if (base_members_0) { _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&base_members_0); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_2); - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_29); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_acc_0); + FX_FREE_LIST_SIMPLE(&sc_1); if (v_28) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_28); + _fx_free_N10Ast__typ_t(&v_28); } - _fx_free_T2Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&__fold_result___3); - FX_FREE_LIST_SIMPLE(&sc_1); if (v_27) { _fx_free_N10Ast__typ_t(&v_27); } - if (v_26) { - _fx_free_N10Ast__typ_t(&v_26); - } _fx_free_R19Ast__definterface_t(&ibase_0); if (di_new_methods_0) { _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&di_new_methods_0); @@ -34241,18 +33644,17 @@ FX_EXTERN_C int _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, &v_0); } FX_CHECK_EXN(_fx_catch_12); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0, &__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0, &env_1); _fx_catch_12: ; _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, fx_result); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1, fx_result); _fx_cleanup: ; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_1); return fx_status; } @@ -34272,15 +33674,15 @@ FX_EXTERN_C int _fx_LN10Ast__pat_t df_args_1 = 0; _fx_FPNt6option1N10Ast__typ_t1N16Ast__env_entry_t __lambda___0 = {0}; _fx_Nt6option1N10Ast__typ_t classtyp_opt_0 = 0; - _fx_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB - __fold_result___0 = {0}; - _fx_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_0 = - {0}; _fx_LN10Ast__pat_t args1_0 = 0; _fx_LN10Ast__typ_t argtyps1_0 = 0; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t temp_env_acc_0 = {0}; + _fx_Rt6Set__t1R9Ast__id_t idset1_acc_0 = {0}; + _fx_Rt6Set__t1R9Ast__id_t templ_args1_acc_0 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t temp_env_0 = {0}; _fx_Rt6Set__t1R9Ast__id_t idset1_0 = {0}; _fx_Rt6Set__t1R9Ast__id_t templ_args1_0 = {0}; + _fx_T3BBLN12Ast__scope_t v_0 = {0}; _fx_N10Ast__pat_t v_1 = 0; _fx_N10Ast__pat_t dummy_rt_pat_0 = 0; _fx_N10Ast__typ_t v_2 = 0; @@ -34288,14 +33690,14 @@ FX_EXTERN_C int _fx_N10Ast__pat_t dummy_rt_pat1_0 = 0; _fx_Rt6Set__t1R9Ast__id_t templ_args1_1 = {0}; _fx_N10Ast__typ_t rt_1 = 0; - _fx_LN10Ast__typ_t __fold_result___1 = 0; + _fx_LN10Ast__typ_t res_0 = 0; _fx_LN10Ast__typ_t v_4 = 0; _fx_N10Ast__typ_t df_typ1_0 = 0; _fx_FPv1N14Ast__id_info_t v_5 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_0 = {0}; _fx_Nt11Set__tree_t1R9Ast__id_t v_6 = 0; _fx_LR9Ast__id_t df_templ_args_0 = 0; - _fx_LN10Ast__pat_t __fold_result___2 = 0; + _fx_LN10Ast__pat_t res_1 = 0; _fx_LN10Ast__pat_t v_7 = 0; _fx_rLR9Ast__id_t v_8 = 0; _fx_R13Ast__deffun_t v_9 = {0}; @@ -34331,9 +33733,9 @@ FX_EXTERN_C int _fx_M3AstFM5ScFunN12Ast__scope_t1RM4id_t(&df_name1_0, &v_14); FX_CALL(_fx_cons_LN12Ast__scope_t(&v_14, sc_0, true, &df_sc_0), _fx_cleanup); _fx_R9Ast__id_t class_id_0 = df_flags_0.fun_flag_method_of; - bool res_0; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&class_id_0, &_fx_g9Ast__noid, &res_0, 0), _fx_cleanup); - if (res_0) { + bool res_2; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&class_id_0, &_fx_g9Ast__noid, &res_2, 0), _fx_cleanup); + if (res_2) { FX_COPY_PTR(df_args_0, &df_args_1); } else { @@ -34379,74 +33781,62 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_cleanup); } - _fx_make_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - 0, 0, env_0, &_fx_g16Ast__empty_idset, &_fx_g16Ast__empty_idset, true, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &temp_env_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &idset1_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &templ_args1_acc_0); + bool all_typed_0 = true; _fx_LN10Ast__pat_t lst_0 = df_args_1; for (; lst_0; lst_0 = lst_0->tl) { - _fx_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB - v_20 = {0}; - _fx_LN10Ast__pat_t args1_1 = 0; - _fx_LN10Ast__typ_t argtyps1_1 = 0; + _fx_N10Ast__typ_t t_0 = 0; + _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_20 = {0}; + _fx_N10Ast__pat_t arg1_0 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t temp_env_1 = {0}; _fx_Rt6Set__t1R9Ast__id_t idset1_1 = {0}; _fx_Rt6Set__t1R9Ast__id_t templ_args1_2 = {0}; - _fx_N10Ast__typ_t t_0 = 0; - _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_21 = {0}; - _fx_N10Ast__pat_t arg1_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t temp_env_2 = {0}; - _fx_Rt6Set__t1R9Ast__id_t idset1_2 = {0}; - _fx_Rt6Set__t1R9Ast__id_t templ_args1_3 = {0}; - _fx_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t v_22 = {0}; - _fx_N10Ast__typ_t v_23 = 0; + _fx_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t v_21 = {0}; + _fx_N10Ast__typ_t v_22 = 0; _fx_N10Ast__pat_t arg1_1 = 0; - _fx_Nt11Set__tree_t1R9Ast__id_t v_24 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_25 = {0}; - _fx_T2Nt11Set__tree_t1R9Ast__id_ti v_26 = {0}; + _fx_Nt11Set__tree_t1R9Ast__id_t v_23 = 0; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_24 = {0}; + _fx_T2Nt11Set__tree_t1R9Ast__id_ti v_25 = {0}; _fx_Nt11Set__tree_t1R9Ast__id_t t_1 = 0; - _fx_T2Nt11Set__tree_t1R9Ast__id_tB v_27 = {0}; + _fx_T2Nt11Set__tree_t1R9Ast__id_tB v_26 = {0}; _fx_Nt11Set__tree_t1R9Ast__id_t t_2 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_28 = {0}; - _fx_Rt6Set__t1R9Ast__id_t templ_args1_4 = {0}; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_27 = {0}; + _fx_Rt6Set__t1R9Ast__id_t templ_args1_3 = {0}; _fx_N10Ast__pat_t arg1_2 = 0; - _fx_Rt6Set__t1R9Ast__id_t templ_args1_5 = {0}; - _fx_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB - v_29 = {0}; + _fx_Rt6Set__t1R9Ast__id_t templ_args1_4 = {0}; + _fx_LN10Ast__pat_t v_28 = 0; + _fx_LN10Ast__typ_t v_29 = 0; _fx_N10Ast__pat_t arg_0 = lst_0->hd; - _fx_copy_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - &__fold_result___0, &v_20); - FX_COPY_PTR(v_20.t0, &args1_1); - FX_COPY_PTR(v_20.t1, &argtyps1_1); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_20.t2, &temp_env_1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_20.t3, &idset1_1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_20.t4, &templ_args1_2); FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&t_0, 0), _fx_catch_4); FX_CALL( _fx_M13Ast_typecheckFM9check_patT5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB9N10Ast__pat_tN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tLN12Ast__scope_tBBB( - arg_0, t_0, &temp_env_1, &idset1_1, &templ_args1_2, df_sc_0, true, true, false, &v_21, 0), _fx_catch_4); - FX_COPY_PTR(v_21.t0, &arg1_0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_21.t1, &temp_env_2); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_21.t2, &idset1_2); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_21.t3, &templ_args1_3); - bool typed_0 = v_21.t4; + arg_0, t_0, &temp_env_acc_0, &idset1_acc_0, &templ_args1_acc_0, df_sc_0, true, true, false, &v_20, 0), _fx_catch_4); + FX_COPY_PTR(v_20.t0, &arg1_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_20.t1, &temp_env_1); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_20.t2, &idset1_1); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_20.t3, &templ_args1_2); + bool typed_0 = v_20.t4; if (typed_0) { - _fx_make_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t(arg1_0, &templ_args1_3, &v_22); + _fx_make_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t(arg1_0, &templ_args1_2, &v_21); } else { _fx_R9Ast__id_t targ_0; fx_str_t slit_3 = FX_MAKE_STR("\'targ"); FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(curr_m_idx_0, &slit_3, &targ_0, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, &targ_0, &v_23), _fx_catch_4); + FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, &targ_0, &v_22), _fx_catch_4); _fx_R10Ast__loc_t v_30; FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(arg1_0, &v_30, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM8PatTypedN10Ast__pat_t3N10Ast__pat_tN10Ast__typ_tRM5loc_t(arg1_0, v_23, &v_30, &arg1_1), + FX_CALL(_fx_M3AstFM8PatTypedN10Ast__pat_t3N10Ast__pat_tN10Ast__typ_tRM5loc_t(arg1_0, v_22, &v_30, &arg1_1), _fx_catch_4); - FX_COPY_PTR(templ_args1_3.root, &v_24); - FX_COPY_FP(&templ_args1_3.cmp, &v_25); + FX_COPY_PTR(templ_args1_2.root, &v_23); + FX_COPY_FP(&templ_args1_2.cmp, &v_24); FX_CALL( _fx_M13Ast_typecheckFM12add_to_tree_T2Nt11Set__tree_t1R9Ast__id_ti3Nt11Set__tree_t1R9Ast__id_tR9Ast__id_tFPi2R9Ast__id_tR9Ast__id_t( - v_24, &targ_0, &v_25, &v_26, 0), _fx_catch_4); - FX_COPY_PTR(v_26.t0, &t_1); - int_ dsz_0 = v_26.t1; + v_23, &targ_0, &v_24, &v_25, 0), _fx_catch_4); + FX_COPY_PTR(v_25.t0, &t_1); + int_ dsz_0 = v_25.t1; if ((t_1 != 0) + 1 == 2) { _fx_T4N12Set__color_tNt11Set__tree_t1R9Ast__id_tR9Ast__id_tNt11Set__tree_t1R9Ast__id_t* vcase_0 = &t_1->u.Node; if (vcase_0->t0.tag == 1) { @@ -34454,7 +33844,7 @@ FX_EXTERN_C int FX_CALL( _fx_M13Ast_typecheckFM4NodeNt11Set__tree_t1R9Ast__id_t4N12Set__color_tNt11Set__tree_t1R9Ast__id_tR9Ast__id_tNt11Set__tree_t1R9Ast__id_t( &_fx_g22Ast_typecheck__Black1_, vcase_0->t1, &vcase_0->t2, vcase_0->t3, &v_31), _fx_catch_3); - _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(v_31, false, &v_27); + _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(v_31, false, &v_26); _fx_catch_3: ; if (v_31) { @@ -34463,101 +33853,97 @@ FX_EXTERN_C int goto _fx_endmatch_0; } } - _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(t_1, true, &v_27); + _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(t_1, true, &v_26); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_4); - FX_COPY_PTR(v_27.t0, &t_2); - FX_COPY_FP(&templ_args1_3.cmp, &v_28); - _fx_make_Rt6Set__t1R9Ast__id_t(t_2, templ_args1_3.size + dsz_0, &v_28, &templ_args1_4); - _fx_make_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t(arg1_1, &templ_args1_4, &v_22); - } - FX_COPY_PTR(v_22.t0, &arg1_2); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_22.t1, &templ_args1_5); - FX_CALL(_fx_cons_LN10Ast__pat_t(arg1_2, args1_1, false, &args1_1), _fx_catch_4); - FX_CALL(_fx_cons_LN10Ast__typ_t(t_0, argtyps1_1, false, &argtyps1_1), _fx_catch_4); - _fx_make_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - args1_1, argtyps1_1, &temp_env_2, &idset1_2, &templ_args1_5, (bool)(v_20.t5 & typed_0), &v_29); - _fx_free_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - &__fold_result___0); - _fx_copy_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - &v_29, &__fold_result___0); + FX_COPY_PTR(v_26.t0, &t_2); + FX_COPY_FP(&templ_args1_2.cmp, &v_27); + _fx_make_Rt6Set__t1R9Ast__id_t(t_2, templ_args1_2.size + dsz_0, &v_27, &templ_args1_3); + _fx_make_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t(arg1_1, &templ_args1_3, &v_21); + } + FX_COPY_PTR(v_21.t0, &arg1_2); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_21.t1, &templ_args1_4); + FX_CALL(_fx_cons_LN10Ast__pat_t(arg1_2, args1_0, true, &v_28), _fx_catch_4); + _fx_free_LN10Ast__pat_t(&args1_0); + FX_COPY_PTR(v_28, &args1_0); + FX_CALL(_fx_cons_LN10Ast__typ_t(t_0, argtyps1_0, true, &v_29), _fx_catch_4); + _fx_free_LN10Ast__typ_t(&argtyps1_0); + FX_COPY_PTR(v_29, &argtyps1_0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&temp_env_acc_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&temp_env_1, &temp_env_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset1_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&idset1_1, &idset1_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&templ_args1_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&templ_args1_4, &templ_args1_acc_0); + all_typed_0 = (bool)(all_typed_0 & typed_0); _fx_catch_4: ; - _fx_free_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - &v_29); - _fx_free_Rt6Set__t1R9Ast__id_t(&templ_args1_5); + if (v_29) { + _fx_free_LN10Ast__typ_t(&v_29); + } + if (v_28) { + _fx_free_LN10Ast__pat_t(&v_28); + } + _fx_free_Rt6Set__t1R9Ast__id_t(&templ_args1_4); if (arg1_2) { _fx_free_N10Ast__pat_t(&arg1_2); } - _fx_free_Rt6Set__t1R9Ast__id_t(&templ_args1_4); - FX_FREE_FP(&v_28); + _fx_free_Rt6Set__t1R9Ast__id_t(&templ_args1_3); + FX_FREE_FP(&v_27); if (t_2) { _fx_free_Nt11Set__tree_t1R9Ast__id_t(&t_2); } - _fx_free_T2Nt11Set__tree_t1R9Ast__id_tB(&v_27); + _fx_free_T2Nt11Set__tree_t1R9Ast__id_tB(&v_26); if (t_1) { _fx_free_Nt11Set__tree_t1R9Ast__id_t(&t_1); } - _fx_free_T2Nt11Set__tree_t1R9Ast__id_ti(&v_26); - FX_FREE_FP(&v_25); - if (v_24) { - _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_24); + _fx_free_T2Nt11Set__tree_t1R9Ast__id_ti(&v_25); + FX_FREE_FP(&v_24); + if (v_23) { + _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_23); } if (arg1_1) { _fx_free_N10Ast__pat_t(&arg1_1); } - if (v_23) { - _fx_free_N10Ast__typ_t(&v_23); + if (v_22) { + _fx_free_N10Ast__typ_t(&v_22); } - _fx_free_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t(&v_22); - _fx_free_Rt6Set__t1R9Ast__id_t(&templ_args1_3); - _fx_free_Rt6Set__t1R9Ast__id_t(&idset1_2); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&temp_env_2); + _fx_free_T2N10Ast__pat_tRt6Set__t1R9Ast__id_t(&v_21); + _fx_free_Rt6Set__t1R9Ast__id_t(&templ_args1_2); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset1_1); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&temp_env_1); if (arg1_0) { _fx_free_N10Ast__pat_t(&arg1_0); } - _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_21); + _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_20); if (t_0) { _fx_free_N10Ast__typ_t(&t_0); } - _fx_free_Rt6Set__t1R9Ast__id_t(&templ_args1_2); - _fx_free_Rt6Set__t1R9Ast__id_t(&idset1_1); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&temp_env_1); - if (argtyps1_1) { - _fx_free_LN10Ast__typ_t(&argtyps1_1); - } - if (args1_1) { - _fx_free_LN10Ast__pat_t(&args1_1); - } - _fx_free_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - &v_20); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - &__fold_result___0, &v_0); - FX_COPY_PTR(v_0.t0, &args1_0); - FX_COPY_PTR(v_0.t1, &argtyps1_0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_0.t2, &temp_env_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_0.t3, &idset1_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_0.t4, &templ_args1_0); - bool all_typed_0 = v_0.t5; - if (all_typed_0 == false) { - if (_fx_g12Options__opt.relax == false) { - if (sc_0 != 0) { - if (sc_0->hd.tag == 10) { - _fx_R9Ast__id_t v_32; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&df_name1_0, &v_32, 0), _fx_cleanup); - bool res_1; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_32, &_fx_g18Ast__std__lambda__, &res_1, 0), _fx_cleanup); - if (!res_1) { - fx_exn_t v_33 = {0}; + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&temp_env_acc_0, &temp_env_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&idset1_acc_0, &idset1_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&templ_args1_acc_0, &templ_args1_0); + bool v_32 = _fx_g12Options__opt.relax; + _fx_make_T3BBLN12Ast__scope_t(v_32, all_typed_0, sc_0, &v_0); + if (v_0.t1 == false) { + if (v_0.t0 == false) { + _fx_LN12Ast__scope_t v_33 = v_0.t2; + if (v_33 != 0) { + if (v_33->hd.tag == 10) { + _fx_R9Ast__id_t v_34; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&df_name1_0, &v_34, 0), _fx_cleanup); + bool res_3; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_34, &_fx_g18Ast__std__lambda__, &res_3, 0), _fx_cleanup); + if (!res_3) { + fx_exn_t v_35 = {0}; fx_str_t slit_4 = FX_MAKE_STR("types of all the parameters of global functions must be explicitly specified"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &slit_4, &v_33, 0), _fx_catch_5); - FX_THROW(&v_33, false, _fx_catch_5); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &slit_4, &v_35, 0), _fx_catch_5); + FX_THROW(&v_35, false, _fx_catch_5); _fx_catch_5: ; - fx_free_exn(&v_33); + fx_free_exn(&v_35); goto _fx_endmatch_1; } } @@ -34580,31 +33966,30 @@ _fx_endmatch_1: ; FX_COPY_PTR(dummy_rt_pat1_0->u.PatTyped.t1, &rt_1); } else { - fx_exn_t v_34 = {0}; + fx_exn_t v_36 = {0}; fx_str_t slit_5 = FX_MAKE_STR("invalid return pattern after check"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &slit_5, &v_34, 0), _fx_catch_6); - FX_THROW(&v_34, false, _fx_catch_6); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &slit_5, &v_36, 0), _fx_catch_6); + FX_THROW(&v_36, false, _fx_catch_6); _fx_catch_6: ; - fx_free_exn(&v_34); + fx_free_exn(&v_36); } FX_CHECK_EXN(_fx_cleanup); _fx_LN10Ast__typ_t lst_1 = argtyps1_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN10Ast__typ_t r_0 = 0; + _fx_LN10Ast__typ_t v_37 = 0; _fx_N10Ast__typ_t a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LN10Ast__typ_t(a_0, r_0, false, &r_0), _fx_catch_7); - _fx_free_LN10Ast__typ_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LN10Ast__typ_t(a_0, res_0, true, &v_37), _fx_catch_7); + _fx_free_LN10Ast__typ_t(&res_0); + FX_COPY_PTR(v_37, &res_0); _fx_catch_7: ; - if (r_0) { - _fx_free_LN10Ast__typ_t(&r_0); + if (v_37) { + _fx_free_LN10Ast__typ_t(&v_37); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_4); + FX_COPY_PTR(res_0, &v_4); FX_CALL(_fx_M3AstFM6TypFunN10Ast__typ_t2LN10Ast__typ_tN10Ast__typ_t(v_4, rt_1, &df_typ1_0), _fx_cleanup); FX_CALL( _fx_M13Ast_typecheckFM23check_for_duplicate_funFPv1N14Ast__id_info_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( @@ -34618,36 +34003,35 @@ _fx_endmatch_1: ; _fx_cleanup); _fx_LN10Ast__pat_t lst_2 = args1_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN10Ast__pat_t r_1 = 0; + _fx_LN10Ast__pat_t v_38 = 0; _fx_N10Ast__pat_t a_1 = lst_2->hd; - FX_COPY_PTR(__fold_result___2, &r_1); - FX_CALL(_fx_cons_LN10Ast__pat_t(a_1, r_1, false, &r_1), _fx_catch_8); - _fx_free_LN10Ast__pat_t(&__fold_result___2); - FX_COPY_PTR(r_1, &__fold_result___2); + FX_CALL(_fx_cons_LN10Ast__pat_t(a_1, res_1, true, &v_38), _fx_catch_8); + _fx_free_LN10Ast__pat_t(&res_1); + FX_COPY_PTR(v_38, &res_1); _fx_catch_8: ; - if (r_1) { - _fx_free_LN10Ast__pat_t(&r_1); + if (v_38) { + _fx_free_LN10Ast__pat_t(&v_38); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___2, &v_7); + FX_COPY_PTR(res_1, &v_7); FX_CALL(_fx_make_rLR9Ast__id_t(0, &v_8), _fx_cleanup); _fx_make_R13Ast__deffun_t(&df_name1_0, df_templ_args_0, v_7, df_typ1_0, df_body_0, &df_flags_0, sc_0, &df_loc_0, v_8, &env1_0, &v_9); - _fx_R13Ast__deffun_t* v_35 = &df_0->data; - _fx_free_R13Ast__deffun_t(v_35); - _fx_copy_R13Ast__deffun_t(&v_9, v_35); + _fx_R13Ast__deffun_t* v_39 = &df_0->data; + _fx_free_R13Ast__deffun_t(v_39); + _fx_copy_R13Ast__deffun_t(&v_9, v_39); _fx_M3AstFM5IdFunN14Ast__id_info_t1rRM8deffun_t(df_0, &v_10); FX_CALL(_fx_M3AstFM12set_id_entryv2RM4id_tN14Ast__id_info_t(&df_name1_0, &v_10, 0), _fx_cleanup); - bool v_36; + bool v_40; if (df_flags_0.fun_flag_ccode) { - bool v_37; FX_CALL(_fx_M3AstFM12is_fixed_typB1N10Ast__typ_t(rt_1, &v_37, 0), _fx_cleanup); v_36 = !v_37; + bool v_41; FX_CALL(_fx_M3AstFM12is_fixed_typB1N10Ast__typ_t(rt_1, &v_41, 0), _fx_cleanup); v_40 = !v_41; } else { - v_36 = false; + v_40 = false; } - if (v_36) { + if (v_40) { fx_str_t slit_6 = FX_MAKE_STR("return type of @ccode function must be explicitly specified and should not use type vars (\'t etc.)"); FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &slit_6, &v_11, 0), _fx_cleanup); @@ -34676,19 +34060,19 @@ _fx_cleanup: ; if (classtyp_opt_0) { _fx_free_Nt6option1N10Ast__typ_t(&classtyp_opt_0); } - _fx_free_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - &__fold_result___0); - _fx_free_T6LN10Ast__pat_tLN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB( - &v_0); if (args1_0) { _fx_free_LN10Ast__pat_t(&args1_0); } if (argtyps1_0) { _fx_free_LN10Ast__typ_t(&argtyps1_0); } + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&temp_env_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&idset1_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&templ_args1_acc_0); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&temp_env_0); _fx_free_Rt6Set__t1R9Ast__id_t(&idset1_0); _fx_free_Rt6Set__t1R9Ast__id_t(&templ_args1_0); + _fx_free_T3BBLN12Ast__scope_t(&v_0); if (v_1) { _fx_free_N10Ast__pat_t(&v_1); } @@ -34706,8 +34090,8 @@ _fx_cleanup: ; if (rt_1) { _fx_free_N10Ast__typ_t(&rt_1); } - if (__fold_result___1) { - _fx_free_LN10Ast__typ_t(&__fold_result___1); + if (res_0) { + _fx_free_LN10Ast__typ_t(&res_0); } if (v_4) { _fx_free_LN10Ast__typ_t(&v_4); @@ -34721,8 +34105,8 @@ _fx_cleanup: ; _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_6); } FX_FREE_LIST_SIMPLE(&df_templ_args_0); - if (__fold_result___2) { - _fx_free_LN10Ast__pat_t(&__fold_result___2); + if (res_1) { + _fx_free_LN10Ast__pat_t(&res_1); } if (v_7) { _fx_free_LN10Ast__pat_t(&v_7); @@ -35161,7 +34545,8 @@ _fx_endmatch_0: ; if (t_0) { int_ v_7 = df_loc_0.m_idx; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, v_7), _fx_cleanup); - fx_copy_str(&(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_7))->u.defmodule_t.t1, &v_0); + _fx_N16Ast__defmodule_t v_8 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, v_7); + fx_copy_str(&v_8->u.defmodule_t.t1, &v_0); is_std_0 = _fx_M6StringFM10startswithB2SS(&v_0, &_fx_g19Ast__ficus_std_path, 0); } else { @@ -35188,11 +34573,12 @@ _fx_endmatch_0: ; is_exempt_0 = true; } else { - _fx_R9Ast__id_t v_8; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&df_name_0, &v_8, 0), _fx_cleanup); - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_8, &_fx_g18Ast__std__lambda__, &is_exempt_0, 0), _fx_cleanup); + _fx_R9Ast__id_t v_9; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&df_name_0, &v_9, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_9, &_fx_g18Ast__std__lambda__, &is_exempt_0, 0), _fx_cleanup); } - FX_COPY_PTR(df_0->data.df_typ, &v_1); + _fx_R13Ast__deffun_t* v_10 = &df_0->data; + FX_COPY_PTR(v_10->df_typ, &v_1); FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_1, &v_2, 0), _fx_cleanup); if (FX_REC_VARIANT_TAG(v_2) == 15) { FX_COPY_PTR(v_2->u.TypFun.t1, &v_3); @@ -35271,7 +34657,8 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM21warn_implicit_rettypev1rR13Ast__deffun_t _fx_R13Ast__deffun_t* v_7 = &df_0->data; _fx_R10Ast__loc_t df_loc_0 = v_7->df_loc; _fx_R9Ast__id_t df_name_0 = v_7->df_name; - FX_COPY_PTR(df_0->data.df_typ, &v_0); + _fx_R13Ast__deffun_t* v_8 = &df_0->data; + FX_COPY_PTR(v_8->df_typ, &v_0); FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_0, &v_1, 0), _fx_cleanup); if (FX_REC_VARIANT_TAG(v_1) == 15) { FX_COPY_PTR(v_1->u.TypFun.t1, &v_2); @@ -35333,6 +34720,7 @@ FX_EXTERN_C int _fx_N10Ast__typ_t v_1 = 0; int fx_status = 0; FX_CALL(_fx_make_rRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &r_env_ref_0), _fx_cleanup); + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* r_env_0 = &r_env_ref_0->data; _fx_M13Ast_typecheckFM7make_fpFPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t6Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR10Ast__loc_tBrRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tNt6option1rRt6Set__t1R9Ast__id_tLN12Ast__scope_t( env_0, loc_0, process_default_0, r_env_ref_0, r_opt_typ_vars_0, sc_0, &check_typ__0); FX_CALL( @@ -35340,7 +34728,7 @@ FX_EXTERN_C int &check_typ__0, &v_0), _fx_cleanup); _fx_make_R16Ast__ast_callb_t(v_0, _fx_g22Ast_typecheck__None11_, _fx_g22Ast_typecheck__None10_, &callb_0); FX_CALL(check_typ__0.fp(t_0, &callb_0, &v_1, check_typ__0.fcv), _fx_cleanup); - _fx_make_T2N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_1, &r_env_ref_0->data, fx_result); + _fx_make_T2N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_1, r_env_0, fx_result); _fx_cleanup: ; if (r_env_ref_0) { @@ -35814,7 +35202,7 @@ static int _fx_M13Ast_typecheckFM12__lambda__1_Nt6option1N10Ast__typ_t1N16Ast__e fx_str_t v_10 = {0}; fx_exn_t v_11 = {0}; _fx_LN10Ast__typ_t norm_ty_args_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___0 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_0 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env1_0 = {0}; _fx_N10Ast__typ_t v_12 = 0; _fx_N10Ast__typ_t v_13 = 0; @@ -35851,11 +35239,10 @@ static int _fx_M13Ast_typecheckFM12__lambda__1_Nt6option1N10Ast__typ_t1N16Ast__e FX_CALL( _fx_M13Ast_typecheckFM21check_and_norm_tyargsLN10Ast__typ_t4LN10Ast__typ_tLR9Ast__id_tR10Ast__loc_tR10Ast__loc_t( ty_args_0, dt_templ_args_0, &dt_loc_0, loc_0, &norm_ty_args_0, 0), _fx_catch_4); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(r_env_0, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(r_env_0, &env_0); _fx_LR9Ast__id_t lst_0 = dt_templ_args_0; _fx_LN10Ast__typ_t lst_1 = norm_ty_args_0; for (; lst_0 && lst_1; lst_1 = lst_1->tl, lst_0 = lst_0->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_0 = {0}; _fx_LN16Ast__env_entry_t entries_0 = 0; _fx_N16Ast__env_entry_t v_15 = 0; _fx_LN16Ast__env_entry_t v_16 = 0; @@ -35868,7 +35255,6 @@ static int _fx_M13Ast_typecheckFM12__lambda__1_Nt6option1N10Ast__typ_t1N16Ast__e _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_22 = {0}; _fx_N10Ast__typ_t t_1 = lst_1->hd; _fx_R9Ast__id_t* n_1 = &lst_0->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env_0); FX_CALL( _fx_M13Ast_typecheckFM8find_allLN16Ast__env_entry_t2R9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(n_1, &env_0, &entries_0, 0), _fx_catch_3); @@ -35904,8 +35290,8 @@ static int _fx_M13Ast_typecheckFM12__lambda__1_Nt6option1N10Ast__typ_t1N16Ast__e FX_COPY_PTR(v_20.t0, &new_root_0); FX_COPY_FP(&env_0.cmp, &v_21); _fx_make_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(new_root_0, &v_21, &v_22); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_22, &__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_22, &env_0); _fx_catch_3: ; _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_22); @@ -35930,12 +35316,11 @@ static int _fx_M13Ast_typecheckFM12__lambda__1_Nt6option1N10Ast__typ_t1N16Ast__e if (entries_0) { _fx_free_LN16Ast__env_entry_t(&entries_0); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_0); FX_CHECK_EXN(_fx_catch_4); } int s_0 = !lst_0 + !lst_1; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_4); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env1_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_0, &env1_0); FX_CALL(_fx_M3AstFM7dup_typN10Ast__typ_t1N10Ast__typ_t(dt_typ_0, &v_12, 0), _fx_catch_4); FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( @@ -35951,7 +35336,7 @@ static int _fx_M13Ast_typecheckFM12__lambda__1_Nt6option1N10Ast__typ_t1N16Ast__e _fx_free_N10Ast__typ_t(&v_12); } _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env1_0); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_0); if (norm_ty_args_0) { _fx_free_LN10Ast__typ_t(&norm_ty_args_0); } @@ -35984,7 +35369,7 @@ static int _fx_M13Ast_typecheckFM12__lambda__1_Nt6option1N10Ast__typ_t1N16Ast__e else if (cv_0->t6) { FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(ty_args_0, &dvar_name_0, &t1_0), _fx_catch_9); FX_COPY_PTR(dvar_templ_inst_0->data, &v_25); - _fx_Nt6option1R9Ast__id_t __fold_result___1 = _fx_g22Ast_typecheck__None13_; + _fx_Nt6option1R9Ast__id_t __fold_result___0 = _fx_g22Ast_typecheck__None13_; _fx_LR9Ast__id_t lst_2 = v_25; for (; lst_2; lst_2 = lst_2->tl) { _fx_N14Ast__id_info_t v_27 = {0}; @@ -35993,7 +35378,8 @@ static int _fx_M13Ast_typecheckFM12__lambda__1_Nt6option1N10Ast__typ_t1N16Ast__e bool v_28; if (v_27.tag == 6) { _fx_N10Ast__typ_t dvar_inst_alias_0 = 0; - FX_COPY_PTR(v_27.u.IdVariant->data.dvar_alias, &dvar_inst_alias_0); + _fx_R17Ast__defvariant_t* v_29 = &v_27.u.IdVariant->data; + FX_COPY_PTR(v_29->dvar_alias, &dvar_inst_alias_0); FX_CALL( _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB(t1_0, dvar_inst_alias_0, &dvar_loc_0, true, &v_28, 0), _fx_catch_5); @@ -36004,29 +35390,29 @@ static int _fx_M13Ast_typecheckFM12__lambda__1_Nt6option1N10Ast__typ_t1N16Ast__e } } else { - fx_str_t v_29 = {0}; fx_str_t v_30 = {0}; - fx_exn_t v_31 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(i_0, &v_29, 0), _fx_catch_6); + fx_str_t v_31 = {0}; + fx_exn_t v_32 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(i_0, &v_30, 0), _fx_catch_6); fx_str_t slit_6 = FX_MAKE_STR("invalid type of variant instance "); fx_str_t slit_7 = FX_MAKE_STR(" (must be also a variant)"); { - const fx_str_t strs_3[] = { slit_6, v_29, slit_7 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_30), _fx_catch_6); + const fx_str_t strs_3[] = { slit_6, v_30, slit_7 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_31), _fx_catch_6); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_30, &v_31, 0), _fx_catch_6); - FX_THROW(&v_31, false, _fx_catch_6); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_31, &v_32, 0), _fx_catch_6); + FX_THROW(&v_32, false, _fx_catch_6); _fx_catch_6: ; - fx_free_exn(&v_31); + fx_free_exn(&v_32); + FX_FREE_STR(&v_31); FX_FREE_STR(&v_30); - FX_FREE_STR(&v_29); } FX_CHECK_EXN(_fx_catch_7); if (v_28) { - _fx_Nt6option1R9Ast__id_t v_32; - _fx_M13Ast_typecheckFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(a_0, &v_32); - __fold_result___1 = v_32; + _fx_Nt6option1R9Ast__id_t v_33; + _fx_M13Ast_typecheckFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(a_0, &v_33); + __fold_result___0 = v_33; FX_BREAK(_fx_catch_7); } @@ -36035,19 +35421,19 @@ static int _fx_M13Ast_typecheckFM12__lambda__1_Nt6option1N10Ast__typ_t1N16Ast__e FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_9); } - _fx_Nt6option1R9Ast__id_t v_33 = __fold_result___1; - if (v_33.tag == 2) { + _fx_Nt6option1R9Ast__id_t v_34 = __fold_result___0; + if (v_34.tag == 2) { FX_COPY_PTR(t1_0, &v_24); } else { - _fx_T2R9Ast__id_tN10Ast__typ_t v_34 = {0}; + _fx_T2R9Ast__id_tN10Ast__typ_t v_35 = {0}; FX_CALL( _fx_M13Ast_typecheckFM19instantiate_variantT2R9Ast__id_tN10Ast__typ_t5LN10Ast__typ_trR17Ast__defvariant_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - ty_args_0, dvar_0, r_env_0, sc_0, loc_0, &v_34, 0), _fx_catch_8); - FX_COPY_PTR(v_34.t1, &v_24); + ty_args_0, dvar_0, r_env_0, sc_0, loc_0, &v_35, 0), _fx_catch_8); + FX_COPY_PTR(v_35.t1, &v_24); _fx_catch_8: ; - _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_34); + _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_35); } FX_CHECK_EXN(_fx_catch_9); } @@ -36157,7 +35543,8 @@ FX_EXTERN_C int _fx_LS v_8 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); - _fx_R9Ast__id_t df_name_0 = templ_df_0->data.df_name; + _fx_R13Ast__deffun_t* v_9 = &templ_df_0->data; + _fx_R9Ast__id_t df_name_0 = v_9->df_name; if (instantiate_0) { FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&df_name_0, &v_0, 0), _fx_cleanup); FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(inst_loc_0, &v_1, 0), _fx_cleanup); @@ -36177,30 +35564,30 @@ FX_EXTERN_C int _fx_free_LT3R9Ast__id_tN10Ast__typ_tR10Ast__loc_t(&_fx_g17Ast__all_func_ctx); FX_COPY_PTR(v_6, &_fx_g17Ast__all_func_ctx); _fx_rR13Ast__deffun_t inst_df_0 = 0; - _fx_LT3R9Ast__id_tN10Ast__typ_tR10Ast__loc_t v_9 = 0; - _fx_LS v_10 = 0; + _fx_LT3R9Ast__id_tN10Ast__typ_tR10Ast__loc_t v_10 = 0; + _fx_LS v_11 = 0; FX_CALL( _fx_M13Ast_typecheckFM16instantiate_fun_rR13Ast__deffun_t5rR13Ast__deffun_tN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR10Ast__loc_tB( templ_df_0, inst_ftyp_0, inst_env0_0, inst_loc_0, instantiate_0, &inst_df_0, 0), _fx_catch_0); if (_fx_g17Ast__all_func_ctx != 0) { - FX_COPY_PTR(_fx_g17Ast__all_func_ctx->tl, &v_9); + FX_COPY_PTR(_fx_g17Ast__all_func_ctx->tl, &v_10); } else { FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_0); } FX_CHECK_EXN(_fx_catch_0); _fx_free_LT3R9Ast__id_tN10Ast__typ_tR10Ast__loc_t(&_fx_g17Ast__all_func_ctx); - FX_COPY_PTR(v_9, &_fx_g17Ast__all_func_ctx); + FX_COPY_PTR(v_10, &_fx_g17Ast__all_func_ctx); if (instantiate_0) { if (_fx_g24Ast__all_compile_err_ctx != 0) { - FX_COPY_PTR(_fx_g24Ast__all_compile_err_ctx->tl, &v_10); + FX_COPY_PTR(_fx_g24Ast__all_compile_err_ctx->tl, &v_11); } else { FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_0); } FX_CHECK_EXN(_fx_catch_0); _fx_free_LS(&_fx_g24Ast__all_compile_err_ctx); - FX_COPY_PTR(v_10, &_fx_g24Ast__all_compile_err_ctx); + FX_COPY_PTR(v_11, &_fx_g24Ast__all_compile_err_ctx); } FX_COPY_PTR(inst_df_0, fx_result); @@ -36208,11 +35595,11 @@ _fx_catch_0: ; if (inst_df_0) { _fx_free_rR13Ast__deffun_t(&inst_df_0); } - if (v_9) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR10Ast__loc_t(&v_9); - } if (v_10) { - _fx_free_LS(&v_10); + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR10Ast__loc_t(&v_10); + } + if (v_11) { + _fx_free_LS(&v_11); } if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_0); @@ -36290,21 +35677,23 @@ FX_EXTERN_C int _fx_LN10Ast__typ_t arg_typs_1 = 0; _fx_N10Ast__typ_t v_4 = 0; _fx_LN12Ast__scope_t fun_sc_0 = 0; - _fx_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t __fold_result___0 = {0}; - _fx_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_5 = {0}; _fx_LN10Ast__pat_t df_inst_args_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t inst_env_0 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t inst_env_acc_0 = {0}; + _fx_Rt6Set__t1R9Ast__id_t tmp_idset_acc_0 = {0}; _fx_LN10Ast__pat_t df_inst_args_1 = 0; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t inst_env_0 = {0}; + _fx_LN10Ast__pat_t df_inst_args_2 = 0; _fx_N10Ast__typ_t rt_1 = 0; _fx_N10Ast__exp_t inst_body_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_6 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_5 = {0}; _fx_N10Ast__typ_t body_typ_0 = 0; _fx_N10Ast__typ_t inst_ftyp_2 = 0; - _fx_rLR9Ast__id_t v_7 = 0; - _fx_R13Ast__deffun_t v_8 = {0}; + _fx_rLR9Ast__id_t v_6 = 0; + _fx_R13Ast__deffun_t v_7 = {0}; _fx_rR13Ast__deffun_t inst_df_0 = 0; - _fx_N14Ast__id_info_t v_9 = {0}; - _fx_rLR9Ast__id_t v_10 = 0; + _fx_N14Ast__id_info_t v_8 = {0}; + _fx_rLR9Ast__id_t v_9 = 0; + _fx_LR9Ast__id_t v_10 = 0; _fx_LR9Ast__id_t v_11 = 0; _fx_rLR9Ast__id_t v_12 = 0; _fx_LT3R9Ast__id_tN10Ast__typ_tR10Ast__loc_t all_func_ctx_0 = 0; @@ -36443,66 +35832,55 @@ _fx_endmatch_0: ; _fx_N12Ast__scope_t v_29; _fx_M3AstFM5ScFunN12Ast__scope_t1RM4id_t(&inst_name_0, &v_29); FX_CALL(_fx_cons_LN12Ast__scope_t(&v_29, df_scope_0, true, &fun_sc_0), _fx_cleanup); - _fx_make_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(0, inst_env0_0, - &_fx_g16Ast__empty_idset, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(inst_env0_0, &inst_env_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &tmp_idset_acc_0); _fx_LN10Ast__pat_t lst_0 = df_args_0; _fx_LN10Ast__typ_t lst_1 = arg_typs_1; for (; lst_0 && lst_1; lst_1 = lst_1->tl, lst_0 = lst_0->tl) { - _fx_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_30 = {0}; - _fx_LN10Ast__pat_t df_inst_args_2 = 0; + _fx_N10Ast__pat_t v_30 = 0; + _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_31 = {0}; + _fx_N10Ast__pat_t df_inst_arg_0 = 0; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t inst_env_1 = {0}; _fx_Rt6Set__t1R9Ast__id_t tmp_idset_0 = {0}; - _fx_N10Ast__pat_t v_31 = 0; - _fx_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB v_32 = {0}; - _fx_N10Ast__pat_t df_inst_arg_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t inst_env_2 = {0}; - _fx_Rt6Set__t1R9Ast__id_t tmp_idset_1 = {0}; - _fx_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t v_33 = {0}; + _fx_LN10Ast__pat_t v_32 = 0; _fx_N10Ast__typ_t arg_typ_0 = lst_1->hd; _fx_N10Ast__pat_t df_arg_0 = lst_0->hd; - _fx_copy_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&__fold_result___0, &v_30); - FX_COPY_PTR(v_30.t0, &df_inst_args_2); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_30.t1, &inst_env_1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_30.t2, &tmp_idset_0); - FX_CALL(_fx_M3AstFM7dup_patN10Ast__pat_t1N10Ast__pat_t(df_arg_0, &v_31, 0), _fx_catch_2); + FX_CALL(_fx_M3AstFM7dup_patN10Ast__pat_t1N10Ast__pat_t(df_arg_0, &v_30, 0), _fx_catch_2); FX_CALL( _fx_M13Ast_typecheckFM9check_patT5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB9N10Ast__pat_tN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tLN12Ast__scope_tBBB( - v_31, arg_typ_0, &inst_env_1, &tmp_idset_0, &_fx_g16Ast__empty_idset, fun_sc_0, false, true, false, &v_32, 0), - _fx_catch_2); - FX_COPY_PTR(v_32.t0, &df_inst_arg_0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_32.t1, &inst_env_2); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_32.t2, &tmp_idset_1); - FX_CALL(_fx_cons_LN10Ast__pat_t(df_inst_arg_0, df_inst_args_2, false, &df_inst_args_2), _fx_catch_2); - _fx_make_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(df_inst_args_2, &inst_env_2, - &tmp_idset_1, &v_33); - _fx_free_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&__fold_result___0); - _fx_copy_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&v_33, &__fold_result___0); + v_30, arg_typ_0, &inst_env_acc_0, &tmp_idset_acc_0, &_fx_g16Ast__empty_idset, fun_sc_0, false, true, false, &v_31, + 0), _fx_catch_2); + FX_COPY_PTR(v_31.t0, &df_inst_arg_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_31.t1, &inst_env_1); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_31.t2, &tmp_idset_0); + FX_CALL(_fx_cons_LN10Ast__pat_t(df_inst_arg_0, df_inst_args_0, true, &v_32), _fx_catch_2); + _fx_free_LN10Ast__pat_t(&df_inst_args_0); + FX_COPY_PTR(v_32, &df_inst_args_0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&inst_env_acc_0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&inst_env_1, &inst_env_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&tmp_idset_acc_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&tmp_idset_0, &tmp_idset_acc_0); _fx_catch_2: ; - _fx_free_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&v_33); - _fx_free_Rt6Set__t1R9Ast__id_t(&tmp_idset_1); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&inst_env_2); - if (df_inst_arg_0) { - _fx_free_N10Ast__pat_t(&df_inst_arg_0); - } - _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_32); - if (v_31) { - _fx_free_N10Ast__pat_t(&v_31); + if (v_32) { + _fx_free_LN10Ast__pat_t(&v_32); } _fx_free_Rt6Set__t1R9Ast__id_t(&tmp_idset_0); _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&inst_env_1); - if (df_inst_args_2) { - _fx_free_LN10Ast__pat_t(&df_inst_args_2); + if (df_inst_arg_0) { + _fx_free_N10Ast__pat_t(&df_inst_arg_0); + } + _fx_free_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(&v_31); + if (v_30) { + _fx_free_N10Ast__pat_t(&v_30); } - _fx_free_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&v_30); FX_CHECK_EXN(_fx_cleanup); } int s_0 = !lst_0 + !lst_1; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_cleanup); - _fx_copy_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&__fold_result___0, &v_5); - FX_COPY_PTR(v_5.t0, &df_inst_args_0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_5.t1, &inst_env_0); - FX_CALL(_fx_M13Ast_typecheckFM3revLN10Ast__pat_t1LN10Ast__pat_t(df_inst_args_0, &df_inst_args_1, 0), _fx_cleanup); + FX_COPY_PTR(df_inst_args_0, &df_inst_args_1); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&inst_env_acc_0, &inst_env_0); + FX_CALL(_fx_M13Ast_typecheckFM3revLN10Ast__pat_t1LN10Ast__pat_t(df_inst_args_1, &df_inst_args_2, 0), _fx_cleanup); FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( rt_0, &inst_env_0, df_scope_0, inst_loc_0, &rt_1, 0), _fx_cleanup); @@ -36512,9 +35890,9 @@ _fx_endmatch_0: ; else { FX_COPY_PTR(df_body_0, &inst_body_0); } - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(inst_body_0, &v_6, 0), _fx_cleanup); - FX_COPY_PTR(v_6.t0, &body_typ_0); - _fx_R10Ast__loc_t body_loc_0 = v_6.t1; + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(inst_body_0, &v_5, 0), _fx_cleanup); + FX_COPY_PTR(v_5.t0, &body_typ_0); + _fx_R10Ast__loc_t body_loc_0 = v_5.t1; if (!is_constr_0) { fx_str_t slit_7 = FX_MAKE_STR("the function body type does not match the function type"); FX_CALL(_fx_M13Ast_typecheckFM5unifyv4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tS(body_typ_0, rt_1, &body_loc_0, &slit_7, 0), @@ -36532,24 +35910,26 @@ _fx_catch_3: ; _fx_endmatch_2: ; FX_CHECK_EXN(_fx_cleanup); _fx_R9Ast__id_t class_id_0 = df_flags_0.fun_flag_method_of; - _fx_R16Ast__fun_flags_t v_34 = + _fx_R16Ast__fun_flags_t v_33 = { df_flags_0.fun_flag_pure, df_flags_0.fun_flag_ccode, df_flags_0.fun_flag_have_keywords, df_flags_0.fun_flag_inline, df_flags_0.fun_flag_nothrow, df_flags_0.fun_flag_really_nothrow, df_flags_0.fun_flag_private, df_flags_0.fun_flag_ctor, class_id_0, df_flags_0.fun_flag_uses_fv, df_flags_0.fun_flag_recursive, instantiate_0 }; - FX_CALL(_fx_make_rLR9Ast__id_t(0, &v_7), _fx_cleanup); - _fx_make_R13Ast__deffun_t(&inst_name_0, 0, df_inst_args_1, inst_ftyp_2, inst_body_0, &v_34, df_scope_0, inst_loc_0, v_7, - inst_env0_0, &v_8); - FX_CALL(_fx_make_rR13Ast__deffun_t(&v_8, &inst_df_0), _fx_cleanup); - _fx_M3AstFM5IdFunN14Ast__id_info_t1rRM8deffun_t(inst_df_0, &v_9); - FX_CALL(_fx_M3AstFM12set_id_entryv2RM4id_tN14Ast__id_info_t(&inst_name_0, &v_9, 0), _fx_cleanup); + FX_CALL(_fx_make_rLR9Ast__id_t(0, &v_6), _fx_cleanup); + _fx_make_R13Ast__deffun_t(&inst_name_0, 0, df_inst_args_2, inst_ftyp_2, inst_body_0, &v_33, df_scope_0, inst_loc_0, v_6, + inst_env0_0, &v_7); + FX_CALL(_fx_make_rR13Ast__deffun_t(&v_7, &inst_df_0), _fx_cleanup); + _fx_M3AstFM5IdFunN14Ast__id_info_t1rRM8deffun_t(inst_df_0, &v_8); + FX_CALL(_fx_M3AstFM12set_id_entryv2RM4id_tN14Ast__id_info_t(&inst_name_0, &v_8, 0), _fx_cleanup); if (instantiate_0) { - FX_COPY_PTR(templ_df_0->data.df_templ_inst, &v_10); - FX_COPY_PTR(v_10->data, &v_11); - FX_CALL(_fx_cons_LR9Ast__id_t(&inst_name_0, v_11, false, &v_11), _fx_cleanup); - FX_COPY_PTR(templ_df_0->data.df_templ_inst, &v_12); - _fx_LR9Ast__id_t* v_35 = &v_12->data; - FX_FREE_LIST_SIMPLE(v_35); - FX_COPY_PTR(v_11, v_35); + _fx_R13Ast__deffun_t* v_34 = &templ_df_0->data; + FX_COPY_PTR(v_34->df_templ_inst, &v_9); + FX_COPY_PTR(v_9->data, &v_10); + FX_CALL(_fx_cons_LR9Ast__id_t(&inst_name_0, v_10, true, &v_11), _fx_cleanup); + _fx_R13Ast__deffun_t* v_35 = &templ_df_0->data; + FX_COPY_PTR(v_35->df_templ_inst, &v_12); + _fx_LR9Ast__id_t* v_36 = &v_12->data; + FX_FREE_LIST_SIMPLE(v_36); + FX_COPY_PTR(v_11, v_36); } FX_COPY_PTR(_fx_g17Ast__all_func_ctx, &all_func_ctx_0); if (all_func_ctx_0 != 0) { @@ -36561,18 +35941,18 @@ _fx_endmatch_2: ; _fx_catch_4: ; } else { - fx_exn_t v_36 = {0}; + fx_exn_t v_37 = {0}; fx_str_t slit_9 = FX_MAKE_STR("the function stack is empty for some reason"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &slit_9, &v_36, 0), _fx_catch_5); - FX_THROW(&v_36, false, _fx_catch_5); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &slit_9, &v_37, 0), _fx_catch_5); + FX_THROW(&v_37, false, _fx_catch_5); _fx_catch_5: ; - fx_free_exn(&v_36); + fx_free_exn(&v_37); } FX_CHECK_EXN(_fx_cleanup); FX_CALL( _fx_M13Ast_typecheckFM20instantiate_fun_bodyN10Ast__exp_t7R9Ast__id_tN10Ast__typ_tLN10Ast__pat_tN10Ast__exp_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - &inst_name_0, inst_ftyp_2, df_inst_args_1, inst_body_0, &inst_env_0, fun_sc_0, inst_loc_0, &inst_body_1, 0), + &inst_name_0, inst_ftyp_2, df_inst_args_2, inst_body_0, &inst_env_0, fun_sc_0, inst_loc_0, &inst_body_1, 0), _fx_cleanup); FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(inst_body_1, &v_13, 0), _fx_cleanup); fx_str_t slit_10 = @@ -36606,13 +35986,13 @@ _fx_endmatch_3: ; goto _fx_endmatch_4; } } - fx_exn_t v_37 = {0}; + fx_exn_t v_38 = {0}; fx_str_t slit_11 = FX_MAKE_STR("a method may not be a local function"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &slit_11, &v_37, 0), _fx_catch_7); - FX_THROW(&v_37, false, _fx_catch_7); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &slit_11, &v_38, 0), _fx_catch_7); + FX_THROW(&v_38, false, _fx_catch_7); _fx_catch_7: ; - fx_free_exn(&v_37); + fx_free_exn(&v_38); _fx_endmatch_4: ; FX_CHECK_EXN(_fx_cleanup); @@ -36633,90 +36013,91 @@ _fx_endmatch_3: ; FX_CHECK_EXN(_fx_cleanup); } if (arg_typs_2 != 0) { - _fx_N10Ast__typ_t v_38 = arg_typs_2->hd; - if (FX_REC_VARIANT_TAG(v_38) == 25) { - _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_2 = &v_38->u.TypApp; + _fx_N10Ast__typ_t v_39 = arg_typs_2->hd; + if (FX_REC_VARIANT_TAG(v_39) == 25) { + _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_2 = &v_39->u.TypApp; if (vcase_2->t0 == 0) { - _fx_N14Ast__id_info_t v_39 = {0}; + _fx_N14Ast__id_info_t v_40 = {0}; _fx_R9Ast__id_t* tn_0 = &vcase_2->t1; - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(tn_0, &df_loc_0, &v_39, 0), _fx_catch_11); - if (v_39.tag == 6) { - _fx_rR17Ast__defvariant_t dvar_1 = v_39.u.IdVariant; - if (dvar_1->data.dvar_flags.var_flag_class_from > 0) { - _fx_N10Ast__typ_t v_40 = 0; - FX_CALL(_fx_M3AstFM6TypFunN10Ast__typ_t2LN10Ast__typ_tN10Ast__typ_t(arg_typs_2->tl, rt_1, &v_40), + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(tn_0, &df_loc_0, &v_40, 0), _fx_catch_11); + if (v_40.tag == 6) { + _fx_rR17Ast__defvariant_t dvar_1 = v_40.u.IdVariant; + _fx_R17Ast__defvariant_t* v_41 = &dvar_1->data; + if (v_41->dvar_flags.var_flag_class_from > 0) { + _fx_N10Ast__typ_t v_42 = 0; + FX_CALL(_fx_M3AstFM6TypFunN10Ast__typ_t2LN10Ast__typ_tN10Ast__typ_t(arg_typs_2->tl, rt_1, &v_42), _fx_catch_9); - _fx_make_T2rR17Ast__defvariant_tN10Ast__typ_t(dvar_1, v_40, &v_14); + _fx_make_T2rR17Ast__defvariant_tN10Ast__typ_t(dvar_1, v_42, &v_14); _fx_catch_9: ; - if (v_40) { - _fx_free_N10Ast__typ_t(&v_40); + if (v_42) { + _fx_free_N10Ast__typ_t(&v_42); } goto _fx_endmatch_5; } } - fx_str_t v_41 = {0}; - fx_str_t v_42 = {0}; fx_str_t v_43 = {0}; - fx_exn_t v_44 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn_0, &v_41, 0), _fx_catch_10); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_41, &v_42, 0), _fx_catch_10); + fx_str_t v_44 = {0}; + fx_str_t v_45 = {0}; + fx_exn_t v_46 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn_0, &v_43, 0), _fx_catch_10); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_43, &v_44, 0), _fx_catch_10); fx_str_t slit_12 = FX_MAKE_STR("type \'"); fx_str_t slit_13 = FX_MAKE_STR("\' is not a class"); { - const fx_str_t strs_2[] = { slit_12, v_42, slit_13 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_43), _fx_catch_10); + const fx_str_t strs_2[] = { slit_12, v_44, slit_13 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_45), _fx_catch_10); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &v_43, &v_44, 0), _fx_catch_10); - FX_THROW(&v_44, false, _fx_catch_10); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &v_45, &v_46, 0), _fx_catch_10); + FX_THROW(&v_46, false, _fx_catch_10); _fx_catch_10: ; - fx_free_exn(&v_44); + fx_free_exn(&v_46); + FX_FREE_STR(&v_45); + FX_FREE_STR(&v_44); FX_FREE_STR(&v_43); - FX_FREE_STR(&v_42); - FX_FREE_STR(&v_41); _fx_endmatch_5: ; FX_CHECK_EXN(_fx_catch_11); _fx_catch_11: ; - _fx_free_N14Ast__id_info_t(&v_39); + _fx_free_N14Ast__id_info_t(&v_40); goto _fx_endmatch_6; } } } if (arg_typs_2 != 0) { - fx_str_t v_45 = {0}; - fx_str_t v_46 = {0}; fx_str_t v_47 = {0}; - fx_exn_t v_48 = {0}; - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(arg_typs_2->hd, &v_45, 0), _fx_catch_12); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_45, &v_46, 0), _fx_catch_12); + fx_str_t v_48 = {0}; + fx_str_t v_49 = {0}; + fx_exn_t v_50 = {0}; + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(arg_typs_2->hd, &v_47, 0), _fx_catch_12); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_47, &v_48, 0), _fx_catch_12); fx_str_t slit_14 = FX_MAKE_STR("type \'"); fx_str_t slit_15 = FX_MAKE_STR("\' is not an object"); { - const fx_str_t strs_3[] = { slit_14, v_46, slit_15 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_47), _fx_catch_12); + const fx_str_t strs_3[] = { slit_14, v_48, slit_15 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_49), _fx_catch_12); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &v_47, &v_48, 0), _fx_catch_12); - FX_THROW(&v_48, false, _fx_catch_12); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &v_49, &v_50, 0), _fx_catch_12); + FX_THROW(&v_50, false, _fx_catch_12); _fx_catch_12: ; - fx_free_exn(&v_48); + fx_free_exn(&v_50); + FX_FREE_STR(&v_49); + FX_FREE_STR(&v_48); FX_FREE_STR(&v_47); - FX_FREE_STR(&v_46); - FX_FREE_STR(&v_45); goto _fx_endmatch_6; } - fx_exn_t v_49 = {0}; + fx_exn_t v_51 = {0}; fx_str_t slit_16 = FX_MAKE_STR( "internal error: non-empty arg list is expected, because self should have been added there automatically by the compiler"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &slit_16, &v_49, 0), _fx_catch_13); - FX_THROW(&v_49, false, _fx_catch_13); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &slit_16, &v_51, 0), _fx_catch_13); + FX_THROW(&v_51, false, _fx_catch_13); _fx_catch_13: ; - fx_free_exn(&v_49); + fx_free_exn(&v_51); _fx_endmatch_6: ; FX_CHECK_EXN(_fx_cleanup); @@ -36725,46 +36106,48 @@ _fx_endmatch_3: ; _fx_R9Ast__id_t mname_0; FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&inst_name_0, &mname_0, 0), _fx_cleanup); _fx_R9Ast__id_t found_iface_0 = _fx_g9Ast__noid; - FX_COPY_PTR(dvar_0->data.dvar_ifaces, &v_15); + _fx_R17Ast__defvariant_t* v_52 = &dvar_0->data; + FX_COPY_PTR(v_52->dvar_ifaces, &v_15); _fx_LT2R9Ast__id_tLTa2R9Ast__id_t lstend_1 = 0; _fx_LT2R9Ast__id_tLTa2R9Ast__id_t lst_3 = v_15; for (; lst_3; lst_3 = lst_3->tl) { _fx_LTa2R9Ast__id_t imethods_i_0 = 0; _fx_rR19Ast__definterface_t iface_0 = 0; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_50 = 0; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_53 = 0; _fx_LTa2R9Ast__id_t imethods_i_1 = 0; _fx_T2R9Ast__id_tLTa2R9Ast__id_t tup_0 = {0}; _fx_T2R9Ast__id_tLTa2R9Ast__id_t* __pat___0 = &lst_3->hd; _fx_R9Ast__id_t iname_i_0 = __pat___0->t0; FX_COPY_PTR(__pat___0->t1, &imethods_i_0); FX_CALL(_fx_M3AstFM9get_ifacerRM14definterface_t2RM4id_tRM5loc_t(&iname_i_0, &df_loc_0, &iface_0, 0), _fx_catch_15); - FX_COPY_PTR(iface_0->data.di_all_methods, &v_50); + _fx_R19Ast__definterface_t* v_54 = &iface_0->data; + FX_COPY_PTR(v_54->di_all_methods, &v_53); _fx_LTa2R9Ast__id_t lstend_2 = 0; _fx_LTa2R9Ast__id_t lst_4 = imethods_i_0; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_5 = v_50; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_5 = v_53; for (; lst_4 && lst_5; lst_5 = lst_5->tl, lst_4 = lst_4->tl) { _fx_N10Ast__typ_t tj_0 = 0; - fx_str_t v_51 = {0}; - fx_str_t v_52 = {0}; - fx_str_t v_53 = {0}; - fx_str_t v_54 = {0}; fx_str_t v_55 = {0}; - fx_exn_t v_56 = {0}; + fx_str_t v_56 = {0}; fx_str_t v_57 = {0}; fx_str_t v_58 = {0}; fx_str_t v_59 = {0}; - fx_str_t v_60 = {0}; + fx_exn_t v_60 = {0}; fx_str_t v_61 = {0}; fx_str_t v_62 = {0}; fx_str_t v_63 = {0}; - fx_exn_t v_64 = {0}; + fx_str_t v_64 = {0}; fx_str_t v_65 = {0}; fx_str_t v_66 = {0}; fx_str_t v_67 = {0}; - _fx_N14Ast__id_info_t v_68 = {0}; + fx_exn_t v_68 = {0}; fx_str_t v_69 = {0}; fx_str_t v_70 = {0}; - fx_exn_t v_71 = {0}; + fx_str_t v_71 = {0}; + _fx_N14Ast__id_info_t v_72 = {0}; + fx_str_t v_73 = {0}; + fx_str_t v_74 = {0}; + fx_exn_t v_75 = {0}; _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* __pat___1 = &lst_5->hd; _fx_Ta2R9Ast__id_t* __pat___2 = &lst_4->hd; _fx_R9Ast__id_t m_j_0 = __pat___2->t0; @@ -36774,75 +36157,75 @@ _fx_endmatch_3: ; bool res_2; FX_CALL(_fx_M13Ast_typecheckFM6__ne__B2R9Ast__id_tR9Ast__id_t(&m_j_0, &m1_j_0, &res_2, 0), _fx_catch_14); if (res_2) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&m_j_0, &v_51, 0), _fx_catch_14); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_51, &v_52, 0), _fx_catch_14); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&m1_j_0, &v_53, 0), _fx_catch_14); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_53, &v_54, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&m_j_0, &v_55, 0), _fx_catch_14); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_55, &v_56, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&m1_j_0, &v_57, 0), _fx_catch_14); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_57, &v_58, 0), _fx_catch_14); fx_str_t slit_17 = FX_MAKE_STR("internal err: method "); fx_str_t slit_18 = FX_MAKE_STR(" does not match method "); { - const fx_str_t strs_4[] = { slit_17, v_52, slit_18, v_54 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 4, &v_55), _fx_catch_14); + const fx_str_t strs_4[] = { slit_17, v_56, slit_18, v_58 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 4, &v_59), _fx_catch_14); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &v_55, &v_56, 0), _fx_catch_14); - FX_THROW(&v_56, false, _fx_catch_14); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &v_59, &v_60, 0), _fx_catch_14); + FX_THROW(&v_60, false, _fx_catch_14); } - _fx_R9Ast__id_t v_72; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&m_j_0, &v_72, 0), _fx_catch_14); - bool v_73; + _fx_R9Ast__id_t v_76; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&m_j_0, &v_76, 0), _fx_catch_14); + bool v_77; bool res_3; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&mname_0, &v_72, &res_3, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&mname_0, &v_76, &res_3, 0), _fx_catch_14); if (res_3) { FX_CALL( _fx_M13Ast_typecheckFM11maybe_unifyB4N10Ast__typ_tN10Ast__typ_tR10Ast__loc_tB(mtyp_0, tj_0, inst_loc_0, false, - &v_73, 0), _fx_catch_14); + &v_77, 0), _fx_catch_14); } else { - v_73 = false; + v_77 = false; } _fx_Ta2R9Ast__id_t t_2; - if (v_73) { + if (v_77) { bool res_4; FX_CALL(_fx_M13Ast_typecheckFM6__ne__B2R9Ast__id_tR9Ast__id_t(&found_iface_0, &_fx_g9Ast__noid, &res_4, 0), _fx_catch_14); if (res_4) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iname_i_0, &v_57, 0), _fx_catch_14); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_57, &v_58, 0), _fx_catch_14); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&mname_0, &v_59, 0), _fx_catch_14); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_59, &v_60, 0), _fx_catch_14); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&found_iface_0, &v_61, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iname_i_0, &v_61, 0), _fx_catch_14); FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_61, &v_62, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&mname_0, &v_63, 0), _fx_catch_14); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_63, &v_64, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&found_iface_0, &v_65, 0), _fx_catch_14); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_65, &v_66, 0), _fx_catch_14); fx_str_t slit_19 = FX_MAKE_STR("method \'"); fx_str_t slit_20 = FX_MAKE_STR("."); fx_str_t slit_21 = FX_MAKE_STR("\' with the same signature is also defined in \'"); fx_str_t slit_22 = FX_MAKE_STR("\'. Consider renaming one of them"); { - const fx_str_t strs_5[] = { slit_19, v_58, slit_20, v_60, slit_21, v_62, slit_22 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_5, 7, &v_63), _fx_catch_14); + const fx_str_t strs_5[] = { slit_19, v_62, slit_20, v_64, slit_21, v_66, slit_22 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_5, 7, &v_67), _fx_catch_14); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &v_63, &v_64, 0), _fx_catch_14); - FX_THROW(&v_64, false, _fx_catch_14); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &v_67, &v_68, 0), _fx_catch_14); + FX_THROW(&v_68, false, _fx_catch_14); } bool res_5; FX_CALL(_fx_M13Ast_typecheckFM6__ne__B2R9Ast__id_tR9Ast__id_t(&impl_j_0, &_fx_g9Ast__noid, &res_5, 0), _fx_catch_14); if (res_5) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iname_i_0, &v_65, 0), _fx_catch_14); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_65, &v_66, 0), _fx_catch_14); - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&mname_0, &v_67, 0), _fx_catch_14); - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(&impl_j_0, inst_loc_0, &v_68, 0), _fx_catch_14); - _fx_R10Ast__loc_t v_74; - FX_CALL(_fx_M3AstFM14get_idinfo_locRM5loc_t1N14Ast__id_info_t(&v_68, &v_74, 0), _fx_catch_14); - FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(&v_74, &v_69, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iname_i_0, &v_69, 0), _fx_catch_14); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_69, &v_70, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&mname_0, &v_71, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(&impl_j_0, inst_loc_0, &v_72, 0), _fx_catch_14); + _fx_R10Ast__loc_t v_78; + FX_CALL(_fx_M3AstFM14get_idinfo_locRM5loc_t1N14Ast__id_info_t(&v_72, &v_78, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(&v_78, &v_73, 0), _fx_catch_14); fx_str_t slit_23 = FX_MAKE_STR("method \'"); fx_str_t slit_24 = FX_MAKE_STR("."); fx_str_t slit_25 = FX_MAKE_STR("\' is already defined at "); { - const fx_str_t strs_6[] = { slit_23, v_66, slit_24, v_67, slit_25, v_69 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_6, 6, &v_70), _fx_catch_14); + const fx_str_t strs_6[] = { slit_23, v_70, slit_24, v_71, slit_25, v_73 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_6, 6, &v_74), _fx_catch_14); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &v_70, &v_71, 0), _fx_catch_14); - FX_THROW(&v_71, false, _fx_catch_14); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &v_74, &v_75, 0), _fx_catch_14); + FX_THROW(&v_75, false, _fx_catch_14); } found_iface_0 = iname_i_0; _fx_Ta2R9Ast__id_t tup_1 = { m_j_0, inst_name_0 }; @@ -36856,27 +36239,27 @@ _fx_endmatch_3: ; FX_LIST_APPEND(imethods_i_1, lstend_2, node_1); _fx_catch_14: ; - fx_free_exn(&v_71); + fx_free_exn(&v_75); + FX_FREE_STR(&v_74); + FX_FREE_STR(&v_73); + _fx_free_N14Ast__id_info_t(&v_72); + FX_FREE_STR(&v_71); FX_FREE_STR(&v_70); FX_FREE_STR(&v_69); - _fx_free_N14Ast__id_info_t(&v_68); + fx_free_exn(&v_68); FX_FREE_STR(&v_67); FX_FREE_STR(&v_66); FX_FREE_STR(&v_65); - fx_free_exn(&v_64); + FX_FREE_STR(&v_64); FX_FREE_STR(&v_63); FX_FREE_STR(&v_62); FX_FREE_STR(&v_61); - FX_FREE_STR(&v_60); + fx_free_exn(&v_60); FX_FREE_STR(&v_59); FX_FREE_STR(&v_58); FX_FREE_STR(&v_57); - fx_free_exn(&v_56); + FX_FREE_STR(&v_56); FX_FREE_STR(&v_55); - FX_FREE_STR(&v_54); - FX_FREE_STR(&v_53); - FX_FREE_STR(&v_52); - FX_FREE_STR(&v_51); if (tj_0) { _fx_free_N10Ast__typ_t(&tj_0); } @@ -36892,8 +36275,8 @@ _fx_endmatch_3: ; _fx_catch_15: ; _fx_free_T2R9Ast__id_tLTa2R9Ast__id_t(&tup_0); FX_FREE_LIST_SIMPLE(&imethods_i_1); - if (v_50) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_50); + if (v_53) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_53); } if (iface_0) { _fx_free_rR19Ast__definterface_t(&iface_0); @@ -36904,20 +36287,20 @@ _fx_endmatch_3: ; bool res_6; FX_CALL(_fx_M13Ast_typecheckFM6__ne__B2R9Ast__id_tR9Ast__id_t(&found_iface_0, &_fx_g9Ast__noid, &res_6, 0), _fx_cleanup); if (res_6) { - _fx_R17Ast__defvariant_t* v_75 = &dvar_0->data; - _fx_make_R17Ast__defvariant_t(&v_75->dvar_name, v_75->dvar_templ_args, v_75->dvar_alias, &v_75->dvar_flags, - v_75->dvar_cases, v_75->dvar_ctors, v_75->dvar_templ_inst, dvar_ifaces_0, v_75->dvar_scope, &v_75->dvar_loc, &v_16); - _fx_R17Ast__defvariant_t* v_76 = &dvar_0->data; - _fx_free_R17Ast__defvariant_t(v_76); - _fx_copy_R17Ast__defvariant_t(&v_16, v_76); - } - } - _fx_R13Ast__deffun_t* v_77 = &inst_df_0->data; - _fx_make_R13Ast__deffun_t(&v_77->df_name, v_77->df_templ_args, v_77->df_args, inst_ftyp_3, inst_body_1, &v_77->df_flags, - v_77->df_scope, &v_77->df_loc, v_77->df_templ_inst, &v_77->df_env, &v_17); - _fx_R13Ast__deffun_t* v_78 = &inst_df_0->data; - _fx_free_R13Ast__deffun_t(v_78); - _fx_copy_R13Ast__deffun_t(&v_17, v_78); + _fx_R17Ast__defvariant_t* v_79 = &dvar_0->data; + _fx_make_R17Ast__defvariant_t(&v_79->dvar_name, v_79->dvar_templ_args, v_79->dvar_alias, &v_79->dvar_flags, + v_79->dvar_cases, v_79->dvar_ctors, v_79->dvar_templ_inst, dvar_ifaces_0, v_79->dvar_scope, &v_79->dvar_loc, &v_16); + _fx_R17Ast__defvariant_t* v_80 = &dvar_0->data; + _fx_free_R17Ast__defvariant_t(v_80); + _fx_copy_R17Ast__defvariant_t(&v_16, v_80); + } + } + _fx_R13Ast__deffun_t* v_81 = &inst_df_0->data; + _fx_make_R13Ast__deffun_t(&v_81->df_name, v_81->df_templ_args, v_81->df_args, inst_ftyp_3, inst_body_1, &v_81->df_flags, + v_81->df_scope, &v_81->df_loc, v_81->df_templ_inst, &v_81->df_env, &v_17); + _fx_R13Ast__deffun_t* v_82 = &inst_df_0->data; + _fx_free_R13Ast__deffun_t(v_82); + _fx_copy_R13Ast__deffun_t(&v_17, v_82); FX_COPY_PTR(inst_df_0, fx_result); _fx_cleanup: ; @@ -36948,39 +36331,43 @@ _fx_cleanup: ; _fx_free_N10Ast__typ_t(&v_4); } FX_FREE_LIST_SIMPLE(&fun_sc_0); - _fx_free_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&__fold_result___0); - _fx_free_T3LN10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_t(&v_5); if (df_inst_args_0) { _fx_free_LN10Ast__pat_t(&df_inst_args_0); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&inst_env_0); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&inst_env_acc_0); + _fx_free_Rt6Set__t1R9Ast__id_t(&tmp_idset_acc_0); if (df_inst_args_1) { _fx_free_LN10Ast__pat_t(&df_inst_args_1); } + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&inst_env_0); + if (df_inst_args_2) { + _fx_free_LN10Ast__pat_t(&df_inst_args_2); + } if (rt_1) { _fx_free_N10Ast__typ_t(&rt_1); } if (inst_body_0) { _fx_free_N10Ast__exp_t(&inst_body_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_6); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_5); if (body_typ_0) { _fx_free_N10Ast__typ_t(&body_typ_0); } if (inst_ftyp_2) { _fx_free_N10Ast__typ_t(&inst_ftyp_2); } - if (v_7) { - _fx_free_rLR9Ast__id_t(&v_7); + if (v_6) { + _fx_free_rLR9Ast__id_t(&v_6); } - _fx_free_R13Ast__deffun_t(&v_8); + _fx_free_R13Ast__deffun_t(&v_7); if (inst_df_0) { _fx_free_rR13Ast__deffun_t(&inst_df_0); } - _fx_free_N14Ast__id_info_t(&v_9); - if (v_10) { - _fx_free_rLR9Ast__id_t(&v_10); + _fx_free_N14Ast__id_info_t(&v_8); + if (v_9) { + _fx_free_rLR9Ast__id_t(&v_9); } + FX_FREE_LIST_SIMPLE(&v_10); FX_FREE_LIST_SIMPLE(&v_11); if (v_12) { _fx_free_rLR9Ast__id_t(&v_12); @@ -37092,7 +36479,6 @@ FX_EXTERN_C int _fx_R17Ast__defvariant_t v_11 = {0}; _fx_LR9Ast__id_t var_ctors_0 = 0; _fx_LT2R9Ast__id_tN10Ast__typ_t proto_cases_0 = 0; - _fx_LT2N10Ast__pat_tN10Ast__exp_t __fold_result___0 = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t complex_cases_0 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_12 = {0}; _fx_N10Ast__exp_t a_0 = 0; @@ -37107,6 +36493,7 @@ FX_EXTERN_C int _fx_N13Ast__binary_t v_17 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_18 = {0}; _fx_N10Ast__exp_t cmp_tags_0 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t complex_cases_1 = 0; _fx_N10Ast__exp_t inst_body_1 = 0; fx_str_t slit_1 = FX_MAKE_STR( @@ -37177,183 +36564,161 @@ FX_EXTERN_C int _fx_LT2R9Ast__id_tN10Ast__typ_t lst_1 = proto_cases_0; for (; lst_0 && lst_1; lst_1 = lst_1->tl, lst_0 = lst_0->tl) { _fx_N10Ast__typ_t t_orig_0 = 0; - _fx_LT2N10Ast__pat_tN10Ast__exp_t complex_cases_1 = 0; _fx_N10Ast__typ_t t_1 = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t v_24 = 0; _fx_T2R9Ast__id_tN10Ast__typ_t* __pat___0 = &lst_1->hd; _fx_R9Ast__id_t* n_0 = &lst_0->hd; FX_COPY_PTR(__pat___0->t1, &t_orig_0); - FX_COPY_PTR(__fold_result___0, &complex_cases_1); FX_CALL( _fx_M3AstFM13deref_typ_recN10Ast__typ_t1N10Ast__typ_t(t_orig_0, &t_1, 0), _fx_catch_8); int tag_1 = FX_REC_VARIANT_TAG(t_1); if (tag_1 == 14) { - FX_COPY_PTR(complex_cases_1, &v_24); + FX_COPY_PTR(complex_cases_0, &v_24); } else if (tag_1 == 21) { _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_25 = {0}; - _fx_N10Ast__exp_t v_26 = 0; - _fx_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t - __fold_result___1 = {0}; - _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_0 = - 0; - _fx_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t - v_27 = {0}; _fx_LT2R9Ast__id_tN10Ast__pat_t al_0 = 0; _fx_LT2R9Ast__id_tN10Ast__pat_t bl_0 = 0; + _fx_N10Ast__exp_t cmp_code_acc_0 = 0; + _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_0 = + 0; _fx_N10Ast__exp_t cmp_code_0 = 0; - _fx_LT2R9Ast__id_tN10Ast__pat_t v_28 = 0; + _fx_LT2R9Ast__id_tN10Ast__pat_t v_26 = 0; _fx_N10Ast__pat_t a_case_pat_0 = 0; - _fx_LT2R9Ast__id_tN10Ast__pat_t v_29 = 0; + _fx_LT2R9Ast__id_tN10Ast__pat_t v_27 = 0; _fx_N10Ast__pat_t b_case_pat_0 = 0; - _fx_LN10Ast__pat_t v_30 = 0; + _fx_LN10Ast__pat_t v_28 = 0; _fx_N10Ast__pat_t ab_case_pat_0 = 0; - _fx_T2N10Ast__pat_tN10Ast__exp_t v_31 = {0}; + _fx_T2N10Ast__pat_tN10Ast__exp_t v_29 = {0}; _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB( &t_1->u.TypRecord->data, &v_25); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_26), + FX_CALL( + _fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &cmp_code_acc_0), _fx_catch_4); - _fx_make_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - 0, 0, v_26, &__fold_result___1); int_ idx_0 = 0; FX_COPY_PTR(v_25.t0, &relems_0); _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_2 = relems_0; for (; lst_2; lst_2 = lst_2->tl, idx_0 += 1) { - _fx_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t - v_32 = {0}; - _fx_LT2R9Ast__id_tN10Ast__pat_t al_1 = 0; - _fx_LT2R9Ast__id_tN10Ast__pat_t bl_1 = 0; - _fx_N10Ast__exp_t cmp_code_1 = 0; + fx_str_t v_30 = {0}; + fx_str_t v_31 = {0}; + fx_str_t v_32 = {0}; fx_str_t v_33 = {0}; fx_str_t v_34 = {0}; fx_str_t v_35 = {0}; - fx_str_t v_36 = {0}; - fx_str_t v_37 = {0}; - fx_str_t v_38 = {0}; - _fx_N13Ast__binary_t v_39 = 0; + _fx_N13Ast__binary_t v_36 = 0; + _fx_N10Ast__typ_t v_37 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_38 = {0}; + _fx_N10Ast__exp_t v_39 = 0; _fx_N10Ast__typ_t v_40 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_41 = {0}; _fx_N10Ast__exp_t v_42 = 0; - _fx_N10Ast__typ_t v_43 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_44 = {0}; - _fx_N10Ast__exp_t v_45 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_46 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_43 = {0}; _fx_N10Ast__exp_t cmp_ab_0 = 0; - _fx_N10Ast__exp_t cmp_code_2 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_47 = {0}; + _fx_N10Ast__exp_t cmp_code_1 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_44 = {0}; + _fx_N10Ast__pat_t v_45 = 0; + _fx_T2R9Ast__id_tN10Ast__pat_t v_46 = {0}; + _fx_LT2R9Ast__id_tN10Ast__pat_t v_47 = 0; _fx_N10Ast__pat_t v_48 = 0; _fx_T2R9Ast__id_tN10Ast__pat_t v_49 = {0}; - _fx_N10Ast__pat_t v_50 = 0; - _fx_T2R9Ast__id_tN10Ast__pat_t v_51 = {0}; - _fx_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t - v_52 = {0}; + _fx_LT2R9Ast__id_tN10Ast__pat_t v_50 = 0; _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t* __pat___1 = &lst_2->hd; _fx_R9Ast__id_t rn_0 = __pat___1->t1; - _fx_copy_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - &__fold_result___1, &v_32); - FX_COPY_PTR(v_32.t0, &al_1); - FX_COPY_PTR(v_32.t1, &bl_1); - FX_COPY_PTR(v_32.t2, &cmp_code_1); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&astr_0, &v_33, 0), + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&astr_0, &v_30, 0), _fx_catch_3); - FX_CALL(_fx_F6stringS1i(idx_0, &v_34, 0), _fx_catch_3); + FX_CALL(_fx_F6stringS1i(idx_0, &v_31, 0), _fx_catch_3); { - const fx_str_t strs_0[] = { v_33, v_34 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_35), _fx_catch_3); + const fx_str_t strs_0[] = { v_30, v_31 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_32), _fx_catch_3); } _fx_R9Ast__id_t ai_0; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_35, &ai_0, 0), _fx_catch_3); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&bstr_0, &v_36, 0), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_32, &ai_0, 0), _fx_catch_3); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&bstr_0, &v_33, 0), _fx_catch_3); - FX_CALL(_fx_F6stringS1i(idx_0, &v_37, 0), _fx_catch_3); + FX_CALL(_fx_F6stringS1i(idx_0, &v_34, 0), _fx_catch_3); { - const fx_str_t strs_1[] = { v_36, v_37 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_38), _fx_catch_3); + const fx_str_t strs_1[] = { v_33, v_34 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_35), _fx_catch_3); } _fx_R9Ast__id_t bi_0; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_38, &bi_0, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_35, &bi_0, 0), _fx_catch_3); FX_CALL( _fx_M3AstFM5OpCmpN13Ast__binary_t1N12Ast__cmpop_t( - &_fx_g20Ast_typecheck__CmpEQ, &v_39), _fx_catch_3); - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_40, 0), + &_fx_g20Ast_typecheck__CmpEQ, &v_36), _fx_catch_3); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_37, 0), _fx_catch_3); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_40, &body_loc_0, &v_41); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_37, &body_loc_0, &v_38); FX_CALL( _fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t( - &ai_0, &v_41, &v_42), _fx_catch_3); - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_43, 0), + &ai_0, &v_38, &v_39), _fx_catch_3); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_40, 0), _fx_catch_3); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_43, &body_loc_0, &v_44); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_40, &body_loc_0, &v_41); FX_CALL( _fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t( - &bi_0, &v_44, &v_45), _fx_catch_3); + &bi_0, &v_41, &v_42), _fx_catch_3); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g22Ast_typecheck__TypBool, - &body_loc_0, &v_46); + &body_loc_0, &v_43); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - v_39, v_42, v_45, &v_46, &cmp_ab_0), _fx_catch_3); + v_36, v_39, v_42, &v_43, &cmp_ab_0), _fx_catch_3); if (idx_0 == 0) { - FX_COPY_PTR(cmp_ab_0, &cmp_code_2); + FX_COPY_PTR(cmp_ab_0, &cmp_code_1); } else { _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g22Ast_typecheck__TypBool, - &body_loc_0, &v_47); + &body_loc_0, &v_44); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - _fx_g27Ast_typecheck__OpBitwiseAnd, cmp_code_1, cmp_ab_0, - &v_47, &cmp_code_2), _fx_catch_3); + _fx_g27Ast_typecheck__OpBitwiseAnd, cmp_code_acc_0, cmp_ab_0, + &v_44, &cmp_code_1), _fx_catch_3); } FX_CALL( _fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&ai_0, - &body_loc_0, &v_48), _fx_catch_3); - _fx_make_T2R9Ast__id_tN10Ast__pat_t(&rn_0, v_48, &v_49); - FX_CALL( - _fx_cons_LT2R9Ast__id_tN10Ast__pat_t(&v_49, al_1, false, &al_1), + &body_loc_0, &v_45), _fx_catch_3); + _fx_make_T2R9Ast__id_tN10Ast__pat_t(&rn_0, v_45, &v_46); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__pat_t(&v_46, al_0, true, &v_47), _fx_catch_3); + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&al_0); + FX_COPY_PTR(v_47, &al_0); FX_CALL( _fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&bi_0, - &body_loc_0, &v_50), _fx_catch_3); - _fx_make_T2R9Ast__id_tN10Ast__pat_t(&rn_0, v_50, &v_51); - FX_CALL( - _fx_cons_LT2R9Ast__id_tN10Ast__pat_t(&v_51, bl_1, false, &bl_1), + &body_loc_0, &v_48), _fx_catch_3); + _fx_make_T2R9Ast__id_tN10Ast__pat_t(&rn_0, v_48, &v_49); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__pat_t(&v_49, bl_0, true, &v_50), _fx_catch_3); - _fx_make_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - al_1, bl_1, cmp_code_2, &v_52); - _fx_free_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - &__fold_result___1); - _fx_copy_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - &v_52, &__fold_result___1); + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&bl_0); + FX_COPY_PTR(v_50, &bl_0); + _fx_free_N10Ast__exp_t(&cmp_code_acc_0); + FX_COPY_PTR(cmp_code_1, &cmp_code_acc_0); _fx_catch_3: ; - _fx_free_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - &v_52); - _fx_free_T2R9Ast__id_tN10Ast__pat_t(&v_51); if (v_50) { - _fx_free_N10Ast__pat_t(&v_50); + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&v_50); } _fx_free_T2R9Ast__id_tN10Ast__pat_t(&v_49); if (v_48) { _fx_free_N10Ast__pat_t(&v_48); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_47); - if (cmp_code_2) { - _fx_free_N10Ast__exp_t(&cmp_code_2); + if (v_47) { + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&v_47); } - if (cmp_ab_0) { - _fx_free_N10Ast__exp_t(&cmp_ab_0); - } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_46); + _fx_free_T2R9Ast__id_tN10Ast__pat_t(&v_46); if (v_45) { - _fx_free_N10Ast__exp_t(&v_45); + _fx_free_N10Ast__pat_t(&v_45); } _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_44); - if (v_43) { - _fx_free_N10Ast__typ_t(&v_43); + if (cmp_code_1) { + _fx_free_N10Ast__exp_t(&cmp_code_1); + } + if (cmp_ab_0) { + _fx_free_N10Ast__exp_t(&cmp_ab_0); } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_43); if (v_42) { _fx_free_N10Ast__exp_t(&v_42); } @@ -37362,118 +36727,104 @@ FX_EXTERN_C int _fx_free_N10Ast__typ_t(&v_40); } if (v_39) { - _fx_free_N13Ast__binary_t(&v_39); + _fx_free_N10Ast__exp_t(&v_39); + } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_38); + if (v_37) { + _fx_free_N10Ast__typ_t(&v_37); + } + if (v_36) { + _fx_free_N13Ast__binary_t(&v_36); } - FX_FREE_STR(&v_38); - FX_FREE_STR(&v_37); - FX_FREE_STR(&v_36); FX_FREE_STR(&v_35); FX_FREE_STR(&v_34); FX_FREE_STR(&v_33); - if (cmp_code_1) { - _fx_free_N10Ast__exp_t(&cmp_code_1); - } - if (bl_1) { - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&bl_1); - } - if (al_1) { - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&al_1); - } - _fx_free_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - &v_32); + FX_FREE_STR(&v_32); + FX_FREE_STR(&v_31); + FX_FREE_STR(&v_30); FX_CHECK_EXN(_fx_catch_4); } - _fx_copy_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - &__fold_result___1, &v_27); - FX_COPY_PTR(v_27.t0, &al_0); - FX_COPY_PTR(v_27.t1, &bl_0); - FX_COPY_PTR(v_27.t2, &cmp_code_0); - _fx_Nt6option1R9Ast__id_t v_53; - _fx_M13Ast_typecheckFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(n_0, &v_53); + FX_COPY_PTR(cmp_code_acc_0, &cmp_code_0); + _fx_Nt6option1R9Ast__id_t v_51; + _fx_M13Ast_typecheckFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(n_0, &v_51); FX_CALL( _fx_M13Ast_typecheckFM3revLT2R9Ast__id_tN10Ast__pat_t1LT2R9Ast__id_tN10Ast__pat_t( - al_0, &v_28, 0), _fx_catch_4); + al_0, &v_26, 0), _fx_catch_4); FX_CALL( _fx_M3AstFM9PatRecordN10Ast__pat_t3Nt6option1RM4id_tLT2RM4id_tN10Ast__pat_tRM5loc_t( - &v_53, v_28, &body_loc_0, &a_case_pat_0), _fx_catch_4); - _fx_Nt6option1R9Ast__id_t v_54; - _fx_M13Ast_typecheckFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(n_0, &v_54); + &v_51, v_26, &body_loc_0, &a_case_pat_0), _fx_catch_4); + _fx_Nt6option1R9Ast__id_t v_52; + _fx_M13Ast_typecheckFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(n_0, &v_52); FX_CALL( _fx_M13Ast_typecheckFM3revLT2R9Ast__id_tN10Ast__pat_t1LT2R9Ast__id_tN10Ast__pat_t( - bl_0, &v_29, 0), _fx_catch_4); + bl_0, &v_27, 0), _fx_catch_4); FX_CALL( _fx_M3AstFM9PatRecordN10Ast__pat_t3Nt6option1RM4id_tLT2RM4id_tN10Ast__pat_tRM5loc_t( - &v_54, v_29, &body_loc_0, &b_case_pat_0), _fx_catch_4); - FX_CALL(_fx_cons_LN10Ast__pat_t(b_case_pat_0, 0, true, &v_30), + &v_52, v_27, &body_loc_0, &b_case_pat_0), _fx_catch_4); + FX_CALL(_fx_cons_LN10Ast__pat_t(b_case_pat_0, 0, true, &v_28), _fx_catch_4); - FX_CALL(_fx_cons_LN10Ast__pat_t(a_case_pat_0, v_30, false, &v_30), + FX_CALL(_fx_cons_LN10Ast__pat_t(a_case_pat_0, v_28, false, &v_28), _fx_catch_4); FX_CALL( - _fx_M3AstFM8PatTupleN10Ast__pat_t2LN10Ast__pat_tRM5loc_t(v_30, + _fx_M3AstFM8PatTupleN10Ast__pat_t2LN10Ast__pat_tRM5loc_t(v_28, &body_loc_0, &ab_case_pat_0), _fx_catch_4); - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(ab_case_pat_0, cmp_code_0, &v_31); + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(ab_case_pat_0, cmp_code_0, &v_29); FX_CALL( - _fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_31, complex_cases_1, true, + _fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_29, complex_cases_0, true, &v_24), _fx_catch_4); _fx_catch_4: ; - _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_31); + _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_29); if (ab_case_pat_0) { _fx_free_N10Ast__pat_t(&ab_case_pat_0); } - if (v_30) { - _fx_free_LN10Ast__pat_t(&v_30); + if (v_28) { + _fx_free_LN10Ast__pat_t(&v_28); } if (b_case_pat_0) { _fx_free_N10Ast__pat_t(&b_case_pat_0); } - if (v_29) { - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&v_29); + if (v_27) { + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&v_27); } if (a_case_pat_0) { _fx_free_N10Ast__pat_t(&a_case_pat_0); } - if (v_28) { - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&v_28); + if (v_26) { + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&v_26); } if (cmp_code_0) { _fx_free_N10Ast__exp_t(&cmp_code_0); } + if (relems_0) { + _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t( + &relems_0); + } + if (cmp_code_acc_0) { + _fx_free_N10Ast__exp_t(&cmp_code_acc_0); + } if (bl_0) { _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&bl_0); } if (al_0) { _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&al_0); } - _fx_free_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - &v_27); - if (relems_0) { - _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t( - &relems_0); - } - _fx_free_T3LT2R9Ast__id_tN10Ast__pat_tLT2R9Ast__id_tN10Ast__pat_tN10Ast__exp_t( - &__fold_result___1); - if (v_26) { - _fx_free_N10Ast__exp_t(&v_26); - } _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB( &v_25); } else { _fx_LN10Ast__typ_t args_0 = 0; - _fx_N10Ast__exp_t v_55 = 0; - _fx_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t __fold_result___2 = {0}; - _fx_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t v_56 = {0}; - _fx_LN10Ast__pat_t al_2 = 0; - _fx_LN10Ast__pat_t bl_2 = 0; - _fx_N10Ast__exp_t cmp_code_3 = 0; - _fx_LN10Ast__pat_t v_57 = 0; + _fx_LN10Ast__pat_t al_1 = 0; + _fx_LN10Ast__pat_t bl_1 = 0; + _fx_N10Ast__exp_t cmp_code_acc_1 = 0; + _fx_N10Ast__exp_t cmp_code_2 = 0; + _fx_LN10Ast__pat_t v_53 = 0; _fx_N10Ast__pat_t a_case_pat_1 = 0; - _fx_LN10Ast__pat_t v_58 = 0; + _fx_LN10Ast__pat_t v_54 = 0; _fx_N10Ast__pat_t b_case_pat_1 = 0; - _fx_LN10Ast__pat_t v_59 = 0; + _fx_LN10Ast__pat_t v_55 = 0; _fx_N10Ast__pat_t ab_case_pat_1 = 0; - _fx_T2N10Ast__pat_tN10Ast__exp_t v_60 = {0}; + _fx_T2N10Ast__pat_tN10Ast__exp_t v_56 = {0}; if (FX_REC_VARIANT_TAG(t_1) == 18) { FX_COPY_PTR(t_1->u.TypTuple, &args_0); } @@ -37483,230 +36834,208 @@ FX_EXTERN_C int _fx_catch_5: ; } FX_CHECK_EXN(_fx_catch_7); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_55), + FX_CALL( + _fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &cmp_code_acc_1), _fx_catch_7); - _fx_make_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t(0, 0, v_55, - &__fold_result___2); - int_ v_61; - FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LN10Ast__typ_t(args_0, &v_61, 0), + int_ v_57; + FX_CALL(_fx_M13Ast_typecheckFM8length1_i1LN10Ast__typ_t(args_0, &v_57, 0), _fx_catch_7); - for (int_ idx_1 = 0; idx_1 < v_61; idx_1++) { - _fx_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t v_62 = {0}; - _fx_LN10Ast__pat_t al_3 = 0; - _fx_LN10Ast__pat_t bl_3 = 0; - _fx_N10Ast__exp_t cmp_code_4 = 0; + for (int_ idx_1 = 0; idx_1 < v_57; idx_1++) { + fx_str_t v_58 = {0}; + fx_str_t v_59 = {0}; + fx_str_t v_60 = {0}; + fx_str_t v_61 = {0}; + fx_str_t v_62 = {0}; fx_str_t v_63 = {0}; - fx_str_t v_64 = {0}; - fx_str_t v_65 = {0}; - fx_str_t v_66 = {0}; - fx_str_t v_67 = {0}; - fx_str_t v_68 = {0}; - _fx_N13Ast__binary_t v_69 = 0; - _fx_N10Ast__typ_t v_70 = 0; + _fx_N13Ast__binary_t v_64 = 0; + _fx_N10Ast__typ_t v_65 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_66 = {0}; + _fx_N10Ast__exp_t v_67 = 0; + _fx_N10Ast__typ_t v_68 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_69 = {0}; + _fx_N10Ast__exp_t v_70 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_71 = {0}; - _fx_N10Ast__exp_t v_72 = 0; - _fx_N10Ast__typ_t v_73 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_74 = {0}; - _fx_N10Ast__exp_t v_75 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_76 = {0}; _fx_N10Ast__exp_t cmp_ab_1 = 0; - _fx_N10Ast__exp_t cmp_code_5 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_77 = {0}; - _fx_N10Ast__pat_t v_78 = 0; - _fx_N10Ast__pat_t v_79 = 0; - _fx_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t v_80 = {0}; - _fx_copy_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t( - &__fold_result___2, &v_62); - FX_COPY_PTR(v_62.t0, &al_3); - FX_COPY_PTR(v_62.t1, &bl_3); - FX_COPY_PTR(v_62.t2, &cmp_code_4); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&astr_0, &v_63, 0), + _fx_N10Ast__exp_t cmp_code_3 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_72 = {0}; + _fx_N10Ast__pat_t v_73 = 0; + _fx_LN10Ast__pat_t v_74 = 0; + _fx_N10Ast__pat_t v_75 = 0; + _fx_LN10Ast__pat_t v_76 = 0; + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&astr_0, &v_58, 0), _fx_catch_6); - FX_CALL(_fx_F6stringS1i(idx_1, &v_64, 0), _fx_catch_6); + FX_CALL(_fx_F6stringS1i(idx_1, &v_59, 0), _fx_catch_6); { - const fx_str_t strs_2[] = { v_63, v_64 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 2, &v_65), _fx_catch_6); + const fx_str_t strs_2[] = { v_58, v_59 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 2, &v_60), _fx_catch_6); } _fx_R9Ast__id_t ai_1; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_65, &ai_1, 0), _fx_catch_6); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&bstr_0, &v_66, 0), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_60, &ai_1, 0), _fx_catch_6); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&bstr_0, &v_61, 0), _fx_catch_6); - FX_CALL(_fx_F6stringS1i(idx_1, &v_67, 0), _fx_catch_6); + FX_CALL(_fx_F6stringS1i(idx_1, &v_62, 0), _fx_catch_6); { - const fx_str_t strs_3[] = { v_66, v_67 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 2, &v_68), _fx_catch_6); + const fx_str_t strs_3[] = { v_61, v_62 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 2, &v_63), _fx_catch_6); } _fx_R9Ast__id_t bi_1; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_68, &bi_1, 0), _fx_catch_6); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_63, &bi_1, 0), _fx_catch_6); FX_CALL( _fx_M3AstFM5OpCmpN13Ast__binary_t1N12Ast__cmpop_t( - &_fx_g20Ast_typecheck__CmpEQ, &v_69), _fx_catch_6); - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_70, 0), + &_fx_g20Ast_typecheck__CmpEQ, &v_64), _fx_catch_6); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_65, 0), _fx_catch_6); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_70, &body_loc_0, &v_71); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_65, &body_loc_0, &v_66); FX_CALL( _fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t( - &ai_1, &v_71, &v_72), _fx_catch_6); - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_73, 0), + &ai_1, &v_66, &v_67), _fx_catch_6); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_68, 0), _fx_catch_6); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_73, &body_loc_0, &v_74); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_68, &body_loc_0, &v_69); FX_CALL( _fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t( - &bi_1, &v_74, &v_75), _fx_catch_6); + &bi_1, &v_69, &v_70), _fx_catch_6); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g22Ast_typecheck__TypBool, - &body_loc_0, &v_76); + &body_loc_0, &v_71); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - v_69, v_72, v_75, &v_76, &cmp_ab_1), _fx_catch_6); + v_64, v_67, v_70, &v_71, &cmp_ab_1), _fx_catch_6); if (idx_1 == 0) { - FX_COPY_PTR(cmp_ab_1, &cmp_code_5); + FX_COPY_PTR(cmp_ab_1, &cmp_code_3); } else { _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g22Ast_typecheck__TypBool, - &body_loc_0, &v_77); + &body_loc_0, &v_72); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - _fx_g27Ast_typecheck__OpBitwiseAnd, cmp_code_4, cmp_ab_1, - &v_77, &cmp_code_5), _fx_catch_6); + _fx_g27Ast_typecheck__OpBitwiseAnd, cmp_code_acc_1, cmp_ab_1, + &v_72, &cmp_code_3), _fx_catch_6); } FX_CALL( _fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&ai_1, - &body_loc_0, &v_78), _fx_catch_6); - FX_CALL(_fx_cons_LN10Ast__pat_t(v_78, al_3, false, &al_3), - _fx_catch_6); + &body_loc_0, &v_73), _fx_catch_6); + FX_CALL(_fx_cons_LN10Ast__pat_t(v_73, al_1, true, &v_74), _fx_catch_6); + _fx_free_LN10Ast__pat_t(&al_1); + FX_COPY_PTR(v_74, &al_1); FX_CALL( _fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&bi_1, - &body_loc_0, &v_79), _fx_catch_6); - FX_CALL(_fx_cons_LN10Ast__pat_t(v_79, bl_3, false, &bl_3), - _fx_catch_6); - _fx_make_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t(al_3, bl_3, - cmp_code_5, &v_80); - _fx_free_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t( - &__fold_result___2); - _fx_copy_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t(&v_80, - &__fold_result___2); + &body_loc_0, &v_75), _fx_catch_6); + FX_CALL(_fx_cons_LN10Ast__pat_t(v_75, bl_1, true, &v_76), _fx_catch_6); + _fx_free_LN10Ast__pat_t(&bl_1); + FX_COPY_PTR(v_76, &bl_1); + _fx_free_N10Ast__exp_t(&cmp_code_acc_1); + FX_COPY_PTR(cmp_code_3, &cmp_code_acc_1); _fx_catch_6: ; - _fx_free_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t(&v_80); - if (v_79) { - _fx_free_N10Ast__pat_t(&v_79); + if (v_76) { + _fx_free_LN10Ast__pat_t(&v_76); } - if (v_78) { - _fx_free_N10Ast__pat_t(&v_78); - } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_77); - if (cmp_code_5) { - _fx_free_N10Ast__exp_t(&cmp_code_5); - } - if (cmp_ab_1) { - _fx_free_N10Ast__exp_t(&cmp_ab_1); - } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_76); if (v_75) { - _fx_free_N10Ast__exp_t(&v_75); + _fx_free_N10Ast__pat_t(&v_75); + } + if (v_74) { + _fx_free_LN10Ast__pat_t(&v_74); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_74); if (v_73) { - _fx_free_N10Ast__typ_t(&v_73); + _fx_free_N10Ast__pat_t(&v_73); } - if (v_72) { - _fx_free_N10Ast__exp_t(&v_72); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_72); + if (cmp_code_3) { + _fx_free_N10Ast__exp_t(&cmp_code_3); + } + if (cmp_ab_1) { + _fx_free_N10Ast__exp_t(&cmp_ab_1); } _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_71); if (v_70) { - _fx_free_N10Ast__typ_t(&v_70); + _fx_free_N10Ast__exp_t(&v_70); } - if (v_69) { - _fx_free_N13Ast__binary_t(&v_69); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_69); + if (v_68) { + _fx_free_N10Ast__typ_t(&v_68); } - FX_FREE_STR(&v_68); - FX_FREE_STR(&v_67); - FX_FREE_STR(&v_66); - FX_FREE_STR(&v_65); - FX_FREE_STR(&v_64); - FX_FREE_STR(&v_63); - if (cmp_code_4) { - _fx_free_N10Ast__exp_t(&cmp_code_4); + if (v_67) { + _fx_free_N10Ast__exp_t(&v_67); } - if (bl_3) { - _fx_free_LN10Ast__pat_t(&bl_3); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_66); + if (v_65) { + _fx_free_N10Ast__typ_t(&v_65); } - if (al_3) { - _fx_free_LN10Ast__pat_t(&al_3); + if (v_64) { + _fx_free_N13Ast__binary_t(&v_64); } - _fx_free_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t(&v_62); + FX_FREE_STR(&v_63); + FX_FREE_STR(&v_62); + FX_FREE_STR(&v_61); + FX_FREE_STR(&v_60); + FX_FREE_STR(&v_59); + FX_FREE_STR(&v_58); FX_CHECK_EXN(_fx_catch_7); } - _fx_copy_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t(&__fold_result___2, - &v_56); - FX_COPY_PTR(v_56.t0, &al_2); - FX_COPY_PTR(v_56.t1, &bl_2); - FX_COPY_PTR(v_56.t2, &cmp_code_3); + FX_COPY_PTR(cmp_code_acc_1, &cmp_code_2); FX_CALL( - _fx_M13Ast_typecheckFM3revLN10Ast__pat_t1LN10Ast__pat_t(al_2, &v_57, + _fx_M13Ast_typecheckFM3revLN10Ast__pat_t1LN10Ast__pat_t(al_1, &v_53, 0), _fx_catch_7); FX_CALL( _fx_M3AstFM10PatVariantN10Ast__pat_t3RM4id_tLN10Ast__pat_tRM5loc_t(n_0, - v_57, &body_loc_0, &a_case_pat_1), _fx_catch_7); + v_53, &body_loc_0, &a_case_pat_1), _fx_catch_7); FX_CALL( - _fx_M13Ast_typecheckFM3revLN10Ast__pat_t1LN10Ast__pat_t(bl_2, &v_58, + _fx_M13Ast_typecheckFM3revLN10Ast__pat_t1LN10Ast__pat_t(bl_1, &v_54, 0), _fx_catch_7); FX_CALL( _fx_M3AstFM10PatVariantN10Ast__pat_t3RM4id_tLN10Ast__pat_tRM5loc_t(n_0, - v_58, &body_loc_0, &b_case_pat_1), _fx_catch_7); - FX_CALL(_fx_cons_LN10Ast__pat_t(b_case_pat_1, 0, true, &v_59), + v_54, &body_loc_0, &b_case_pat_1), _fx_catch_7); + FX_CALL(_fx_cons_LN10Ast__pat_t(b_case_pat_1, 0, true, &v_55), _fx_catch_7); - FX_CALL(_fx_cons_LN10Ast__pat_t(a_case_pat_1, v_59, false, &v_59), + FX_CALL(_fx_cons_LN10Ast__pat_t(a_case_pat_1, v_55, false, &v_55), _fx_catch_7); FX_CALL( - _fx_M3AstFM8PatTupleN10Ast__pat_t2LN10Ast__pat_tRM5loc_t(v_59, + _fx_M3AstFM8PatTupleN10Ast__pat_t2LN10Ast__pat_tRM5loc_t(v_55, &body_loc_0, &ab_case_pat_1), _fx_catch_7); - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(ab_case_pat_1, cmp_code_3, &v_60); + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(ab_case_pat_1, cmp_code_2, &v_56); FX_CALL( - _fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_60, complex_cases_1, true, + _fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_56, complex_cases_0, true, &v_24), _fx_catch_7); _fx_catch_7: ; - _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_60); + _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_56); if (ab_case_pat_1) { _fx_free_N10Ast__pat_t(&ab_case_pat_1); } - if (v_59) { - _fx_free_LN10Ast__pat_t(&v_59); + if (v_55) { + _fx_free_LN10Ast__pat_t(&v_55); } if (b_case_pat_1) { _fx_free_N10Ast__pat_t(&b_case_pat_1); } - if (v_58) { - _fx_free_LN10Ast__pat_t(&v_58); + if (v_54) { + _fx_free_LN10Ast__pat_t(&v_54); } if (a_case_pat_1) { _fx_free_N10Ast__pat_t(&a_case_pat_1); } - if (v_57) { - _fx_free_LN10Ast__pat_t(&v_57); + if (v_53) { + _fx_free_LN10Ast__pat_t(&v_53); } - if (cmp_code_3) { - _fx_free_N10Ast__exp_t(&cmp_code_3); + if (cmp_code_2) { + _fx_free_N10Ast__exp_t(&cmp_code_2); } - if (bl_2) { - _fx_free_LN10Ast__pat_t(&bl_2); + if (cmp_code_acc_1) { + _fx_free_N10Ast__exp_t(&cmp_code_acc_1); } - if (al_2) { - _fx_free_LN10Ast__pat_t(&al_2); + if (bl_1) { + _fx_free_LN10Ast__pat_t(&bl_1); } - _fx_free_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t(&v_56); - _fx_free_T3LN10Ast__pat_tLN10Ast__pat_tN10Ast__exp_t(&__fold_result___2); - if (v_55) { - _fx_free_N10Ast__exp_t(&v_55); + if (al_1) { + _fx_free_LN10Ast__pat_t(&al_1); } if (args_0) { _fx_free_LN10Ast__typ_t(&args_0); } } FX_CHECK_EXN(_fx_catch_8); - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(v_24, &__fold_result___0); + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&complex_cases_0); + FX_COPY_PTR(v_24, &complex_cases_0); _fx_catch_8: ; if (v_24) { @@ -37715,9 +37044,6 @@ FX_EXTERN_C int if (t_1) { _fx_free_N10Ast__typ_t(&t_1); } - if (complex_cases_1) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&complex_cases_1); - } if (t_orig_0) { _fx_free_N10Ast__typ_t(&t_orig_0); } @@ -37725,18 +37051,17 @@ FX_EXTERN_C int } int s_0 = !lst_0 + !lst_1; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_10); - FX_COPY_PTR(__fold_result___0, &complex_cases_0); - _fx_R9Ast__id_t v_81; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&astr_0, &v_81, 0), _fx_catch_10); + _fx_R9Ast__id_t v_77; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&astr_0, &v_77, 0), _fx_catch_10); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t1_0, &body_loc_0, &v_12); FX_CALL( - _fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&v_81, + _fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&v_77, &v_12, &a_0), _fx_catch_10); - _fx_R9Ast__id_t v_82; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&bstr_0, &v_82, 0), _fx_catch_10); + _fx_R9Ast__id_t v_78; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&bstr_0, &v_78, 0), _fx_catch_10); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(t1_0, &body_loc_0, &v_13); FX_CALL( - _fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&v_82, + _fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&v_78, &v_13, &b_0), _fx_catch_10); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g24Ast_typecheck__TypString, &body_loc_0, &v_14); @@ -37761,69 +37086,70 @@ FX_EXTERN_C int FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( v_17, a_tag_0, b_tag_0, &v_18, &cmp_tags_0), _fx_catch_10); - if (complex_cases_0 == 0) { + FX_COPY_PTR(complex_cases_0, &complex_cases_1); + if (complex_cases_1 == 0) { FX_COPY_PTR(cmp_tags_0, &inst_body_1); } else { - _fx_N10Ast__pat_t v_83 = 0; + _fx_N10Ast__pat_t v_79 = 0; _fx_T2N10Ast__pat_tN10Ast__exp_t default_case_0 = {0}; - _fx_LN10Ast__exp_t v_84 = 0; - _fx_LN10Ast__typ_t v_85 = 0; - _fx_N10Ast__typ_t v_86 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_87 = {0}; + _fx_LN10Ast__exp_t v_80 = 0; + _fx_LN10Ast__typ_t v_81 = 0; + _fx_N10Ast__typ_t v_82 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_83 = {0}; _fx_N10Ast__exp_t ab_0 = 0; - _fx_LT2N10Ast__pat_tN10Ast__exp_t v_88 = 0; - _fx_LT2N10Ast__pat_tN10Ast__exp_t v_89 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_90 = {0}; - FX_CALL(_fx_M3AstFM6PatAnyN10Ast__pat_t1RM5loc_t(&body_loc_0, &v_83), + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_84 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_85 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_86 = {0}; + FX_CALL(_fx_M3AstFM6PatAnyN10Ast__pat_t1RM5loc_t(&body_loc_0, &v_79), _fx_catch_9); - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(v_83, cmp_tags_0, &default_case_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(b_0, 0, true, &v_84), _fx_catch_9); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, v_84, false, &v_84), _fx_catch_9); - FX_CALL(_fx_cons_LN10Ast__typ_t(t1_0, 0, true, &v_85), _fx_catch_9); - FX_CALL(_fx_cons_LN10Ast__typ_t(t1_0, v_85, false, &v_85), _fx_catch_9); - FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(v_85, &v_86), + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(v_79, cmp_tags_0, &default_case_0); + FX_CALL(_fx_cons_LN10Ast__exp_t(b_0, 0, true, &v_80), _fx_catch_9); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, v_80, false, &v_80), _fx_catch_9); + FX_CALL(_fx_cons_LN10Ast__typ_t(t1_0, 0, true, &v_81), _fx_catch_9); + FX_CALL(_fx_cons_LN10Ast__typ_t(t1_0, v_81, false, &v_81), _fx_catch_9); + FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(v_81, &v_82), _fx_catch_9); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_86, &body_loc_0, &v_87); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_82, &body_loc_0, &v_83); FX_CALL( _fx_M3AstFM10ExpMkTupleN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - v_84, &v_87, &ab_0), _fx_catch_9); + v_80, &v_83, &ab_0), _fx_catch_9); FX_CALL( _fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&default_case_0, complex_cases_0, - true, &v_88), _fx_catch_9); + true, &v_84), _fx_catch_9); FX_CALL( _fx_M13Ast_typecheckFM3revLT2N10Ast__pat_tN10Ast__exp_t1LT2N10Ast__pat_tN10Ast__exp_t( - v_88, &v_89, 0), _fx_catch_9); + v_84, &v_85, 0), _fx_catch_9); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g22Ast_typecheck__TypBool, - &body_loc_0, &v_90); + &body_loc_0, &v_86); FX_CALL( _fx_M3AstFM8ExpMatchN10Ast__exp_t3N10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - ab_0, v_89, &v_90, &inst_body_1), _fx_catch_9); + ab_0, v_85, &v_86, &inst_body_1), _fx_catch_9); _fx_catch_9: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_90); - if (v_89) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_89); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_86); + if (v_85) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_85); } - if (v_88) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_88); + if (v_84) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_84); } if (ab_0) { _fx_free_N10Ast__exp_t(&ab_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_87); - if (v_86) { - _fx_free_N10Ast__typ_t(&v_86); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_83); + if (v_82) { + _fx_free_N10Ast__typ_t(&v_82); } - if (v_85) { - _fx_free_LN10Ast__typ_t(&v_85); + if (v_81) { + _fx_free_LN10Ast__typ_t(&v_81); } - if (v_84) { - _fx_free_LN10Ast__exp_t(&v_84); + if (v_80) { + _fx_free_LN10Ast__exp_t(&v_80); } _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&default_case_0); - if (v_83) { - _fx_free_N10Ast__pat_t(&v_83); + if (v_79) { + _fx_free_N10Ast__pat_t(&v_79); } } FX_CHECK_EXN(_fx_catch_10); @@ -37835,6 +37161,9 @@ FX_EXTERN_C int if (inst_body_1) { _fx_free_N10Ast__exp_t(&inst_body_1); } + if (complex_cases_1) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&complex_cases_1); + } if (cmp_tags_0) { _fx_free_N10Ast__exp_t(&cmp_tags_0); } @@ -37865,9 +37194,6 @@ FX_EXTERN_C int if (complex_cases_0) { _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&complex_cases_0); } - if (__fold_result___0) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&__fold_result___0); - } if (proto_cases_0) { _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&proto_cases_0); } @@ -37892,35 +37218,35 @@ FX_EXTERN_C int } } } - _fx_N10Ast__pat_t v_91 = 0; - fx_str_t v_92 = {0}; - fx_str_t v_93 = {0}; - fx_str_t v_94 = {0}; - fx_exn_t v_95 = {0}; + _fx_N10Ast__pat_t v_87 = 0; + fx_str_t v_88 = {0}; + fx_str_t v_89 = {0}; + fx_str_t v_90 = {0}; + fx_exn_t v_91 = {0}; fx_str_t slit_5 = FX_MAKE_STR("patterns: \n" U"\t"); FX_CALL(_fx_M13Ast_typecheckFM5printv1S(&slit_5, 0), _fx_catch_11); - FX_CALL(_fx_M3AstFM8PatTupleN10Ast__pat_t2LN10Ast__pat_tRM5loc_t(inst_args_0, inst_loc_0, &v_91), _fx_catch_11); - FX_CALL(_fx_M6Ast_ppFM12pprint_pat_xv1N10Ast__pat_t(v_91, 0), _fx_catch_11); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(ftyp_0, &v_92, 0), _fx_catch_11); - FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_92, &v_93, 0), _fx_catch_11); + FX_CALL(_fx_M3AstFM8PatTupleN10Ast__pat_t2LN10Ast__pat_tRM5loc_t(inst_args_0, inst_loc_0, &v_87), _fx_catch_11); + FX_CALL(_fx_M6Ast_ppFM12pprint_pat_xv1N10Ast__pat_t(v_87, 0), _fx_catch_11); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(ftyp_0, &v_88, 0), _fx_catch_11); + FX_CALL(_fx_M13Ast_typecheckFM6stringS1S(&v_88, &v_89, 0), _fx_catch_11); fx_str_t slit_6 = FX_MAKE_STR("__eq_variants__ has improper type "); fx_str_t slit_7 = FX_MAKE_STR("; should be (variant_type, variant_type)->bool"); { - const fx_str_t strs_4[] = { slit_6, v_93, slit_7 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_94), _fx_catch_11); + const fx_str_t strs_4[] = { slit_6, v_89, slit_7 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_90), _fx_catch_11); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &v_94, &v_95, 0), _fx_catch_11); - FX_THROW(&v_95, false, _fx_catch_11); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &v_90, &v_91, 0), _fx_catch_11); + FX_THROW(&v_91, false, _fx_catch_11); _fx_catch_11: ; - fx_free_exn(&v_95); - FX_FREE_STR(&v_94); - FX_FREE_STR(&v_93); - FX_FREE_STR(&v_92); - if (v_91) { - _fx_free_N10Ast__pat_t(&v_91); + fx_free_exn(&v_91); + FX_FREE_STR(&v_90); + FX_FREE_STR(&v_89); + FX_FREE_STR(&v_88); + if (v_87) { + _fx_free_N10Ast__pat_t(&v_87); } _fx_endmatch_1: ; @@ -37971,153 +37297,148 @@ FX_EXTERN_C int _fx_N14Ast__id_info_t v_1 = {0}; _fx_rLR9Ast__id_t v_2 = 0; _fx_LR9Ast__id_t v_3 = 0; - _fx_rLR9Ast__id_t v_4 = 0; - _fx_T2LT2R9Ast__id_tN10Ast__typ_tLR9Ast__id_t v_5 = {0}; + _fx_LR9Ast__id_t v_4 = 0; + _fx_rLR9Ast__id_t v_5 = 0; + _fx_T2LT2R9Ast__id_tN10Ast__typ_tLR9Ast__id_t v_6 = {0}; _fx_LT2R9Ast__id_tN10Ast__typ_t lst_0 = 0; _fx_LR9Ast__id_t lst_1 = 0; _fx_LT2R9Ast__id_tN10Ast__typ_t inst_cases_0 = 0; _fx_LR9Ast__id_t inst_ctors_0 = 0; - _fx_R17Ast__defvariant_t v_6 = {0}; + _fx_R17Ast__defvariant_t v_7 = {0}; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); - _fx_R17Ast__defvariant_t* v_7 = &dvar_0->data; - _fx_R10Ast__loc_t dvar_loc_0 = v_7->dvar_loc; - FX_COPY_PTR(v_7->dvar_scope, &dvar_scope_0); - FX_COPY_PTR(v_7->dvar_ifaces, &dvar_ifaces_0); - FX_COPY_PTR(v_7->dvar_ctors, &dvar_ctors_0); - FX_COPY_PTR(v_7->dvar_cases, &dvar_cases_0); - _fx_R16Ast__var_flags_t dvar_flags_0 = v_7->dvar_flags; - FX_COPY_PTR(v_7->dvar_alias, &dvar_alias_0); - FX_COPY_PTR(v_7->dvar_templ_args, &dvar_templ_args_0); - _fx_R9Ast__id_t dvar_name_0 = v_7->dvar_name; + _fx_R17Ast__defvariant_t* v_8 = &dvar_0->data; + _fx_R10Ast__loc_t dvar_loc_0 = v_8->dvar_loc; + FX_COPY_PTR(v_8->dvar_scope, &dvar_scope_0); + FX_COPY_PTR(v_8->dvar_ifaces, &dvar_ifaces_0); + FX_COPY_PTR(v_8->dvar_ctors, &dvar_ctors_0); + FX_COPY_PTR(v_8->dvar_cases, &dvar_cases_0); + _fx_R16Ast__var_flags_t dvar_flags_0 = v_8->dvar_flags; + FX_COPY_PTR(v_8->dvar_alias, &dvar_alias_0); + FX_COPY_PTR(v_8->dvar_templ_args, &dvar_templ_args_0); + _fx_R9Ast__id_t dvar_name_0 = v_8->dvar_name; if (ty_args_0 == 0) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t __fold_result___0 = {0}; _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_2 = {0}; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &env_2); _fx_LR9Ast__id_t lst_2 = dvar_templ_args_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t env_3 = {0}; - _fx_N10Ast__typ_t v_8 = 0; + _fx_N10Ast__typ_t v_9 = 0; _fx_LN16Ast__env_entry_t entries_0 = 0; - _fx_N16Ast__env_entry_t v_9 = 0; - _fx_LN16Ast__env_entry_t v_10 = 0; - _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t v_11 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_12 = {0}; - _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t v_13 = 0; - _fx_T2Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tB v_14 = {0}; + _fx_N16Ast__env_entry_t v_10 = 0; + _fx_LN16Ast__env_entry_t v_11 = 0; + _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t v_12 = 0; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_13 = {0}; + _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t v_14 = 0; + _fx_T2Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tB v_15 = {0}; _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t new_root_0 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_15 = {0}; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_16 = {0}; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_16 = {0}; + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_17 = {0}; _fx_R9Ast__id_t* tn_0 = &lst_2->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env_3); - FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, tn_0, &v_8), _fx_catch_1); + FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, tn_0, &v_9), _fx_catch_1); FX_CALL( _fx_M13Ast_typecheckFM8find_allLN16Ast__env_entry_t2R9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(tn_0, - &env_3, &entries_0, 0), _fx_catch_1); - FX_CALL(_fx_M3AstFM6EnvTypN16Ast__env_entry_t1N10Ast__typ_t(v_8, &v_9), _fx_catch_1); - FX_CALL(_fx_cons_LN16Ast__env_entry_t(v_9, entries_0, true, &v_10), _fx_catch_1); - FX_COPY_PTR(env_3.root, &v_11); - FX_COPY_FP(&env_3.cmp, &v_12); + &env_2, &entries_0, 0), _fx_catch_1); + FX_CALL(_fx_M3AstFM6EnvTypN16Ast__env_entry_t1N10Ast__typ_t(v_9, &v_10), _fx_catch_1); + FX_CALL(_fx_cons_LN16Ast__env_entry_t(v_10, entries_0, true, &v_11), _fx_catch_1); + FX_COPY_PTR(env_2.root, &v_12); + FX_COPY_FP(&env_2.cmp, &v_13); FX_CALL( _fx_M13Ast_typecheckFM12add_to_tree_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t4Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tLN16Ast__env_entry_tFPi2R9Ast__id_tR9Ast__id_t( - v_11, tn_0, v_10, &v_12, &v_13, 0), _fx_catch_1); - if ((v_13 != 0) + 1 == 2) { + v_12, tn_0, v_11, &v_13, &v_14, 0), _fx_catch_1); + if ((v_14 != 0) + 1 == 2) { _fx_T5N12Map__color_tNt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tLN16Ast__env_entry_tNt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t* - vcase_0 = &v_13->u.Node; + vcase_0 = &v_14->u.Node; if (vcase_0->t0.tag == 1) { - _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t v_17 = 0; + _fx_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t v_18 = 0; FX_CALL( _fx_M13Ast_typecheckFM4NodeNt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t5N12Map__color_tNt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tLN16Ast__env_entry_tNt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t( - &_fx_g20Ast_typecheck__Black, vcase_0->t1, &vcase_0->t2, vcase_0->t3, vcase_0->t4, &v_17), _fx_catch_0); - _fx_make_T2Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tB(v_17, false, &v_14); + &_fx_g20Ast_typecheck__Black, vcase_0->t1, &vcase_0->t2, vcase_0->t3, vcase_0->t4, &v_18), _fx_catch_0); + _fx_make_T2Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tB(v_18, false, &v_15); _fx_catch_0: ; - if (v_17) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&v_17); + if (v_18) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&v_18); } goto _fx_endmatch_0; } } - _fx_make_T2Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tB(v_13, true, &v_14); + _fx_make_T2Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tB(v_14, true, &v_15); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_1); - FX_COPY_PTR(v_14.t0, &new_root_0); - FX_COPY_FP(&env_3.cmp, &v_15); - _fx_make_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(new_root_0, &v_15, &v_16); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_16, &__fold_result___0); + FX_COPY_PTR(v_15.t0, &new_root_0); + FX_COPY_FP(&env_2.cmp, &v_16); + _fx_make_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(new_root_0, &v_16, &v_17); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_17, &env_2); _fx_catch_1: ; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_16); - FX_FREE_FP(&v_15); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_17); + FX_FREE_FP(&v_16); if (new_root_0) { _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&new_root_0); } - _fx_free_T2Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tB(&v_14); - if (v_13) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&v_13); + _fx_free_T2Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tB(&v_15); + if (v_14) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&v_14); + } + FX_FREE_FP(&v_13); + if (v_12) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&v_12); } - FX_FREE_FP(&v_12); if (v_11) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_t(&v_11); + _fx_free_LN16Ast__env_entry_t(&v_11); } if (v_10) { - _fx_free_LN16Ast__env_entry_t(&v_10); - } - if (v_9) { - _fx_free_N16Ast__env_entry_t(&v_9); + _fx_free_N16Ast__env_entry_t(&v_10); } if (entries_0) { _fx_free_LN16Ast__env_entry_t(&entries_0); } - if (v_8) { - _fx_free_N10Ast__typ_t(&v_8); + if (v_9) { + _fx_free_N10Ast__typ_t(&v_9); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_3); FX_CHECK_EXN(_fx_catch_2); } - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0, &env_2); _fx_make_T5BRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tN10Ast__typ_trR17Ast__defvariant_t(false, &env_2, &dvar_name_0, dvar_alias_0, dvar_0, &v_0); _fx_catch_2: ; _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2); - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&__fold_result___0); } else { _fx_N10Ast__typ_t inst_app_typ_1 = 0; - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_18 = {0}; - _fx_rLR9Ast__id_t v_19 = 0; - _fx_R17Ast__defvariant_t v_20 = {0}; - _fx_rR17Ast__defvariant_t v_21 = 0; - int_ v_22; - FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(dvar_scope_0, &v_22, 0), _fx_catch_3); + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t v_19 = {0}; + _fx_rLR9Ast__id_t v_20 = 0; + _fx_R17Ast__defvariant_t v_21 = {0}; + _fx_rR17Ast__defvariant_t v_22 = 0; + int_ v_23; + FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(dvar_scope_0, &v_23, 0), _fx_catch_3); _fx_R9Ast__id_t inst_name_0; - FX_CALL(_fx_M3AstFM6dup_idRM4id_t2iRM4id_t(v_22, &dvar_name_0, &inst_name_0, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM6dup_idRM4id_t2iRM4id_t(v_23, &dvar_name_0, &inst_name_0, 0), _fx_catch_3); FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(ty_args_0, &dvar_name_0, &inst_app_typ_1), _fx_catch_3); FX_CALL( _fx_M13Ast_typecheckFM19match_ty_templ_argsRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t5LN10Ast__typ_tLR9Ast__id_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR10Ast__loc_tR10Ast__loc_t( - ty_args_0, dvar_templ_args_0, env_0, &dvar_loc_0, loc_0, &v_18, 0), _fx_catch_3); - _fx_R16Ast__var_flags_t v_23 = + ty_args_0, dvar_templ_args_0, env_0, &dvar_loc_0, loc_0, &v_19, 0), _fx_catch_3); + _fx_R16Ast__var_flags_t v_24 = { dvar_flags_0.var_flag_class_from, dvar_flags_0.var_flag_record, dvar_flags_0.var_flag_recursive, dvar_flags_0.var_flag_have_tag, dvar_flags_0.var_flag_have_mutable, dvar_flags_0.var_flag_opt, true }; - FX_CALL(_fx_make_rLR9Ast__id_t(0, &v_19), _fx_catch_3); - _fx_make_R17Ast__defvariant_t(&inst_name_0, 0, inst_app_typ_1, &v_23, dvar_cases_0, dvar_ctors_0, v_19, dvar_ifaces_0, - dvar_scope_0, loc_0, &v_20); - FX_CALL(_fx_make_rR17Ast__defvariant_t(&v_20, &v_21), _fx_catch_3); - _fx_make_T5BRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tN10Ast__typ_trR17Ast__defvariant_t(true, &v_18, - &inst_name_0, inst_app_typ_1, v_21, &v_0); + FX_CALL(_fx_make_rLR9Ast__id_t(0, &v_20), _fx_catch_3); + _fx_make_R17Ast__defvariant_t(&inst_name_0, 0, inst_app_typ_1, &v_24, dvar_cases_0, dvar_ctors_0, v_20, dvar_ifaces_0, + dvar_scope_0, loc_0, &v_21); + FX_CALL(_fx_make_rR17Ast__defvariant_t(&v_21, &v_22), _fx_catch_3); + _fx_make_T5BRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tR9Ast__id_tN10Ast__typ_trR17Ast__defvariant_t(true, &v_19, + &inst_name_0, inst_app_typ_1, v_22, &v_0); _fx_catch_3: ; - if (v_21) { - _fx_free_rR17Ast__defvariant_t(&v_21); + if (v_22) { + _fx_free_rR17Ast__defvariant_t(&v_22); } - _fx_free_R17Ast__defvariant_t(&v_20); - if (v_19) { - _fx_free_rLR9Ast__id_t(&v_19); + _fx_free_R17Ast__defvariant_t(&v_21); + if (v_20) { + _fx_free_rLR9Ast__id_t(&v_20); } - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_18); + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&v_19); if (inst_app_typ_1) { _fx_free_N10Ast__typ_t(&inst_app_typ_1); } @@ -38136,21 +37457,21 @@ FX_EXTERN_C int _fx_LT2R9Ast__id_tLTa2R9Ast__id_t lstend_0 = 0; _fx_LT2R9Ast__id_tLTa2R9Ast__id_t lst_3 = dvar_ifaces_0; for (; lst_3; lst_3 = lst_3->tl) { - _fx_N10Ast__typ_t v_24 = 0; _fx_N10Ast__typ_t v_25 = 0; + _fx_N10Ast__typ_t v_26 = 0; _fx_rR19Ast__definterface_t iface_0 = 0; fx_arr_t table_0 = {0}; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_26 = 0; - _fx_LTa2R9Ast__id_t v_27 = 0; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_27 = 0; + _fx_LTa2R9Ast__id_t v_28 = 0; _fx_T2R9Ast__id_tLTa2R9Ast__id_t tup_0 = {0}; _fx_T2R9Ast__id_tLTa2R9Ast__id_t* __pat___0 = &lst_3->hd; _fx_R9Ast__id_t iname_0 = __pat___0->t0; - FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, &iname_0, &v_24), _fx_catch_8); + FX_CALL(_fx_M3AstFM6TypAppN10Ast__typ_t2LN10Ast__typ_tRM4id_t(0, &iname_0, &v_25), _fx_catch_8); FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - v_24, &env_1, dvar_scope_0, &dvar_loc_0, &v_25, 0), _fx_catch_8); - if (FX_REC_VARIANT_TAG(v_25) == 25) { - _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_1 = &v_25->u.TypApp; + v_25, &env_1, dvar_scope_0, &dvar_loc_0, &v_26, 0), _fx_catch_8); + if (FX_REC_VARIANT_TAG(v_26) == 25) { + _fx_T2LN10Ast__typ_tR9Ast__id_t* vcase_1 = &v_26->u.TypApp; if (vcase_1->t0 == 0) { FX_CALL(_fx_M3AstFM9get_ifacerRM14definterface_t2RM4id_tRM5loc_t(&vcase_1->t1, &dvar_loc_0, &iface_0, 0), _fx_catch_4); @@ -38159,44 +37480,49 @@ FX_EXTERN_C int goto _fx_endmatch_1; } } - fx_str_t v_28 = {0}; fx_str_t v_29 = {0}; fx_str_t v_30 = {0}; fx_str_t v_31 = {0}; - fx_exn_t v_32 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&dvar_name_0, &v_28, 0), _fx_catch_5); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iname_0, &v_29, 0), _fx_catch_5); + fx_str_t v_32 = {0}; + fx_exn_t v_33 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&dvar_name_0, &v_29, 0), _fx_catch_5); FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iname_0, &v_30, 0), _fx_catch_5); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iname_0, &v_31, 0), _fx_catch_5); fx_str_t slit_0 = FX_MAKE_STR("variant \'"); fx_str_t slit_1 = FX_MAKE_STR("\' claims to implement \'"); fx_str_t slit_2 = FX_MAKE_STR("\', but \'"); fx_str_t slit_3 = FX_MAKE_STR("\' is not an interface"); { - const fx_str_t strs_0[] = { slit_0, v_28, slit_1, v_29, slit_2, v_30, slit_3 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 7, &v_31), _fx_catch_5); + const fx_str_t strs_0[] = { slit_0, v_29, slit_1, v_30, slit_2, v_31, slit_3 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 7, &v_32), _fx_catch_5); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&dvar_loc_0, &v_31, &v_32, 0), _fx_catch_5); - FX_THROW(&v_32, false, _fx_catch_5); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&dvar_loc_0, &v_32, &v_33, 0), _fx_catch_5); + FX_THROW(&v_33, false, _fx_catch_5); _fx_catch_5: ; - fx_free_exn(&v_32); + fx_free_exn(&v_33); + FX_FREE_STR(&v_32); FX_FREE_STR(&v_31); FX_FREE_STR(&v_30); FX_FREE_STR(&v_29); - FX_FREE_STR(&v_28); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_8); - _fx_R9Ast__id_t iname1_0 = iface_0->data.di_name; + _fx_R19Ast__definterface_t* v_34 = &iface_0->data; + _fx_R9Ast__id_t iname1_0 = v_34->di_name; fx_copy_arr(&prev_ifaces_0->u.t.t5, &table_0); - int_ v_33 = prev_ifaces_0->u.t.t2; - for (int_ j_0 = 0; j_0 < v_33; j_0++) { + int_ v_35 = prev_ifaces_0->u.t.t2; + for (int_ j_0 = 0; j_0 < v_35; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_6); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_36 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_36->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_6); - _fx_R9Ast__id_t v_34 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_37 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_38 = v_37->key; FX_CALL( - _fx_M13Ast_typecheckFM10__lambda__v5R9Ast__id_tR10Ast__loc_tR9Ast__id_tR9Ast__id_tR10Ast__loc_t(&v_34, + _fx_M13Ast_typecheckFM10__lambda__v5R9Ast__id_tR10Ast__loc_tR9Ast__id_tR9Ast__id_tR10Ast__loc_t(&v_38, &dvar_loc_0, &dvar_name_0, &iname1_0, loc_0, 0), _fx_catch_6); } @@ -38204,54 +37530,57 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_8); } FX_CALL(_fx_M13Ast_typecheckFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(prev_ifaces_0, &iname1_0, 0), _fx_catch_8); - FX_COPY_PTR(iface_0->data.di_all_methods, &v_26); + _fx_R19Ast__definterface_t* v_39 = &iface_0->data; + FX_COPY_PTR(v_39->di_all_methods, &v_27); _fx_LTa2R9Ast__id_t lstend_1 = 0; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_4 = v_26; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_4 = v_27; for (; lst_4; lst_4 = lst_4->tl) { _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* __pat___1 = &lst_4->hd; _fx_R9Ast__id_t m_0 = __pat___1->t0; _fx_Ta2R9Ast__id_t tup_1 = { m_0, _fx_g9Ast__noid }; _fx_LTa2R9Ast__id_t node_0 = 0; FX_CALL(_fx_cons_LTa2R9Ast__id_t(&tup_1, 0, false, &node_0), _fx_catch_7); - FX_LIST_APPEND(v_27, lstend_1, node_0); + FX_LIST_APPEND(v_28, lstend_1, node_0); _fx_catch_7: ; FX_CHECK_EXN(_fx_catch_8); } - _fx_make_T2R9Ast__id_tLTa2R9Ast__id_t(&iname1_0, v_27, &tup_0); + _fx_make_T2R9Ast__id_tLTa2R9Ast__id_t(&iname1_0, v_28, &tup_0); _fx_LT2R9Ast__id_tLTa2R9Ast__id_t node_1 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tLTa2R9Ast__id_t(&tup_0, 0, false, &node_1), _fx_catch_8); FX_LIST_APPEND(new_ifaces_0, lstend_0, node_1); _fx_catch_8: ; _fx_free_T2R9Ast__id_tLTa2R9Ast__id_t(&tup_0); - FX_FREE_LIST_SIMPLE(&v_27); - if (v_26) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_26); + FX_FREE_LIST_SIMPLE(&v_28); + if (v_27) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_27); } FX_FREE_ARR(&table_0); if (iface_0) { _fx_free_rR19Ast__definterface_t(&iface_0); } + if (v_26) { + _fx_free_N10Ast__typ_t(&v_26); + } if (v_25) { _fx_free_N10Ast__typ_t(&v_25); } - if (v_24) { - _fx_free_N10Ast__typ_t(&v_24); - } FX_CHECK_EXN(_fx_cleanup); } } if (instantiate_0) { _fx_M3AstFM9IdVariantN14Ast__id_info_t1rRM12defvariant_t(inst_dvar_0, &v_1); FX_CALL(_fx_M3AstFM12set_id_entryv2RM4id_tN14Ast__id_info_t(&inst_name_1, &v_1, 0), _fx_cleanup); - FX_COPY_PTR(dvar_0->data.dvar_templ_inst, &v_2); + _fx_R17Ast__defvariant_t* v_40 = &dvar_0->data; + FX_COPY_PTR(v_40->dvar_templ_inst, &v_2); FX_COPY_PTR(v_2->data, &v_3); - FX_CALL(_fx_cons_LR9Ast__id_t(&inst_name_1, v_3, false, &v_3), _fx_cleanup); - FX_COPY_PTR(dvar_0->data.dvar_templ_inst, &v_4); - _fx_LR9Ast__id_t* v_35 = &v_4->data; - FX_FREE_LIST_SIMPLE(v_35); - FX_COPY_PTR(v_3, v_35); + FX_CALL(_fx_cons_LR9Ast__id_t(&inst_name_1, v_3, true, &v_4), _fx_cleanup); + _fx_R17Ast__defvariant_t* v_41 = &dvar_0->data; + FX_COPY_PTR(v_41->dvar_templ_inst, &v_5); + _fx_LR9Ast__id_t* v_42 = &v_5->data; + FX_FREE_LIST_SIMPLE(v_42); + FX_COPY_PTR(v_4, v_42); } _fx_LT2R9Ast__id_tN10Ast__typ_t lstend_2 = 0; _fx_LR9Ast__id_t lstend_3 = 0; @@ -38260,14 +37589,14 @@ FX_EXTERN_C int _fx_LR9Ast__id_t lst_6 = dvar_ctors_0; for (; lst_5 && lst_6; lst_6 = lst_6->tl, lst_5 = lst_5->tl, idx_0 += 1) { _fx_N10Ast__typ_t t_0 = 0; - _fx_N10Ast__typ_t v_36 = 0; + _fx_N10Ast__typ_t v_43 = 0; _fx_N10Ast__typ_t t_1 = 0; _fx_N10Ast__typ_t t_2 = 0; _fx_LN10Ast__typ_t argtyps_0 = 0; - _fx_LR9Ast__id_t v_37 = 0; - _fx_T2R9Ast__id_tN10Ast__typ_t v_38 = {0}; - _fx_N14Ast__id_info_t v_39 = {0}; - _fx_T2R9Ast__id_tN10Ast__typ_t v_40 = {0}; + _fx_LR9Ast__id_t v_44 = 0; + _fx_T2R9Ast__id_tN10Ast__typ_t v_45 = {0}; + _fx_N14Ast__id_info_t v_46 = {0}; + _fx_T2R9Ast__id_tN10Ast__typ_t v_47 = {0}; _fx_T2T2R9Ast__id_tN10Ast__typ_tR9Ast__id_t tup_2 = {0}; _fx_R9Ast__id_t* ctor_name_0 = &lst_6->hd; _fx_T2R9Ast__id_tN10Ast__typ_t* __pat___2 = &lst_5->hd; @@ -38285,10 +37614,10 @@ FX_EXTERN_C int nargs_0 = 1; } FX_CHECK_EXN(_fx_catch_13); - FX_CALL(_fx_M3AstFM7dup_typN10Ast__typ_t1N10Ast__typ_t(t_0, &v_36, 0), _fx_catch_13); + FX_CALL(_fx_M3AstFM7dup_typN10Ast__typ_t1N10Ast__typ_t(t_0, &v_43, 0), _fx_catch_13); FX_CALL( _fx_M13Ast_typecheckFM9check_typN10Ast__typ_t4N10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - v_36, &env_1, sc_0, loc_0, &t_1, 0), _fx_catch_13); + v_43, &env_1, sc_0, loc_0, &t_1, 0), _fx_catch_13); FX_CALL( _fx_M13Ast_typecheckFM19finalize_record_typN10Ast__typ_t4Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_tN10Ast__typ_tLN12Ast__scope_tR10Ast__loc_t( &env_1, t_1, sc_0, loc_0, &t_2, 0), _fx_catch_13); @@ -38317,18 +37646,18 @@ FX_EXTERN_C int FX_COPY_PTR(t_2->u.TypTuple, &argtyps_0); goto _fx_endmatch_2; } } - fx_str_t v_41 = {0}; - fx_str_t v_42 = {0}; - fx_str_t v_43 = {0}; - fx_str_t v_44 = {0}; - fx_str_t v_45 = {0}; - fx_str_t v_46 = {0}; - fx_exn_t v_47 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(ctor_name_0, &v_41, 0), _fx_catch_10); - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&dvar_name_0, &v_42, 0), _fx_catch_10); - FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(&dvar_loc_0, &v_43, 0), _fx_catch_10); - FX_CALL(_fx_F6stringS1i(nrealargs_0, &v_44, 0), _fx_catch_10); - FX_CALL(_fx_F6stringS1i(nargs_0, &v_45, 0), _fx_catch_10); + fx_str_t v_48 = {0}; + fx_str_t v_49 = {0}; + fx_str_t v_50 = {0}; + fx_str_t v_51 = {0}; + fx_str_t v_52 = {0}; + fx_str_t v_53 = {0}; + fx_exn_t v_54 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(ctor_name_0, &v_48, 0), _fx_catch_10); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&dvar_name_0, &v_49, 0), _fx_catch_10); + FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(&dvar_loc_0, &v_50, 0), _fx_catch_10); + FX_CALL(_fx_F6stringS1i(nrealargs_0, &v_51, 0), _fx_catch_10); + FX_CALL(_fx_F6stringS1i(nargs_0, &v_52, 0), _fx_catch_10); fx_str_t slit_4 = FX_MAKE_STR("cannot instantiate case \'"); fx_str_t slit_5 = FX_MAKE_STR("\' of variant \'"); fx_str_t slit_6 = FX_MAKE_STR("\' defined at \'"); @@ -38336,80 +37665,85 @@ FX_EXTERN_C int fx_str_t slit_8 = FX_MAKE_STR(" (vs "); fx_str_t slit_9 = FX_MAKE_STR(" expected)"); { - const fx_str_t strs_1[] = { slit_4, v_41, slit_5, v_42, slit_6, v_43, slit_7, v_44, slit_8, v_45, slit_9 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 11, &v_46), _fx_catch_10); + const fx_str_t strs_1[] = { slit_4, v_48, slit_5, v_49, slit_6, v_50, slit_7, v_51, slit_8, v_52, slit_9 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 11, &v_53), _fx_catch_10); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_46, &v_47, 0), _fx_catch_10); - FX_THROW(&v_47, false, _fx_catch_10); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_53, &v_54, 0), _fx_catch_10); + FX_THROW(&v_54, false, _fx_catch_10); _fx_catch_10: ; - fx_free_exn(&v_47); - FX_FREE_STR(&v_46); - FX_FREE_STR(&v_45); - FX_FREE_STR(&v_44); - FX_FREE_STR(&v_43); - FX_FREE_STR(&v_42); - FX_FREE_STR(&v_41); + fx_free_exn(&v_54); + FX_FREE_STR(&v_53); + FX_FREE_STR(&v_52); + FX_FREE_STR(&v_51); + FX_FREE_STR(&v_50); + FX_FREE_STR(&v_49); + FX_FREE_STR(&v_48); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_13); - _fx_N17Ast__fun_constr_t v_48; - _fx_M3AstFM11CtorVariantN17Ast__fun_constr_t1i(idx_0 + 1, &v_48); - FX_COPY_PTR(inst_dvar_0->data.dvar_templ_args, &v_37); + _fx_N17Ast__fun_constr_t v_55; + _fx_M3AstFM11CtorVariantN17Ast__fun_constr_t1i(idx_0 + 1, &v_55); + _fx_R17Ast__defvariant_t* v_56 = &inst_dvar_0->data; + FX_COPY_PTR(v_56->dvar_templ_args, &v_44); FX_CALL( _fx_M13Ast_typecheckFM24register_typ_constructorT2R9Ast__id_tN10Ast__typ_t8R9Ast__id_tN17Ast__fun_constr_tLR9Ast__id_tLN10Ast__typ_tN10Ast__typ_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tLN12Ast__scope_tR10Ast__loc_t( - ctor_name_0, &v_48, v_37, argtyps_0, inst_app_typ_0, &env_1, dvar_scope_0, &dvar_loc_0, &v_38, 0), _fx_catch_13); - _fx_R9Ast__id_t inst_cname_0 = v_38.t0; + ctor_name_0, &v_55, v_44, argtyps_0, inst_app_typ_0, &env_1, dvar_scope_0, &dvar_loc_0, &v_45, 0), _fx_catch_13); + _fx_R9Ast__id_t inst_cname_0 = v_45.t0; if (instantiate_0) { - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(ctor_name_0, loc_0, &v_39, 0), _fx_catch_13); - if (v_39.tag == 3) { - _fx_rLR9Ast__id_t v_49 = 0; - _fx_LR9Ast__id_t v_50 = 0; - _fx_rLR9Ast__id_t v_51 = 0; - _fx_rR13Ast__deffun_t c_def_0 = v_39.u.IdFun; - FX_COPY_PTR(c_def_0->data.df_templ_inst, &v_49); - FX_COPY_PTR(v_49->data, &v_50); - FX_CALL(_fx_cons_LR9Ast__id_t(&inst_cname_0, v_50, false, &v_50), _fx_catch_11); - FX_COPY_PTR(c_def_0->data.df_templ_inst, &v_51); - _fx_LR9Ast__id_t* v_52 = &v_51->data; - FX_FREE_LIST_SIMPLE(v_52); - FX_COPY_PTR(v_50, v_52); + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(ctor_name_0, loc_0, &v_46, 0), _fx_catch_13); + if (v_46.tag == 3) { + _fx_rLR9Ast__id_t v_57 = 0; + _fx_LR9Ast__id_t v_58 = 0; + _fx_LR9Ast__id_t v_59 = 0; + _fx_rLR9Ast__id_t v_60 = 0; + _fx_rR13Ast__deffun_t c_def_0 = v_46.u.IdFun; + _fx_R13Ast__deffun_t* v_61 = &c_def_0->data; + FX_COPY_PTR(v_61->df_templ_inst, &v_57); + FX_COPY_PTR(v_57->data, &v_58); + FX_CALL(_fx_cons_LR9Ast__id_t(&inst_cname_0, v_58, true, &v_59), _fx_catch_11); + _fx_R13Ast__deffun_t* v_62 = &c_def_0->data; + FX_COPY_PTR(v_62->df_templ_inst, &v_60); + _fx_LR9Ast__id_t* v_63 = &v_60->data; + FX_FREE_LIST_SIMPLE(v_63); + FX_COPY_PTR(v_59, v_63); _fx_catch_11: ; - if (v_51) { - _fx_free_rLR9Ast__id_t(&v_51); + if (v_60) { + _fx_free_rLR9Ast__id_t(&v_60); } - FX_FREE_LIST_SIMPLE(&v_50); - if (v_49) { - _fx_free_rLR9Ast__id_t(&v_49); + FX_FREE_LIST_SIMPLE(&v_59); + FX_FREE_LIST_SIMPLE(&v_58); + if (v_57) { + _fx_free_rLR9Ast__id_t(&v_57); } } else { - fx_str_t v_53 = {0}; - fx_str_t v_54 = {0}; - fx_str_t v_55 = {0}; - fx_exn_t v_56 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(ctor_name_0, &v_53, 0), _fx_catch_12); - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&dvar_name_0, &v_54, 0), _fx_catch_12); + fx_str_t v_64 = {0}; + fx_str_t v_65 = {0}; + fx_str_t v_66 = {0}; + fx_exn_t v_67 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(ctor_name_0, &v_64, 0), _fx_catch_12); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&dvar_name_0, &v_65, 0), _fx_catch_12); fx_str_t slit_10 = FX_MAKE_STR("invalid constructor "); fx_str_t slit_11 = FX_MAKE_STR(" of variant "); { - const fx_str_t strs_2[] = { slit_10, v_53, slit_11, v_54 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 4, &v_55), _fx_catch_12); + const fx_str_t strs_2[] = { slit_10, v_64, slit_11, v_65 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 4, &v_66), _fx_catch_12); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_55, &v_56, 0), _fx_catch_12); - FX_THROW(&v_56, false, _fx_catch_12); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_66, &v_67, 0), _fx_catch_12); + FX_THROW(&v_67, false, _fx_catch_12); _fx_catch_12: ; - fx_free_exn(&v_56); - FX_FREE_STR(&v_55); - FX_FREE_STR(&v_54); - FX_FREE_STR(&v_53); + fx_free_exn(&v_67); + FX_FREE_STR(&v_66); + FX_FREE_STR(&v_65); + FX_FREE_STR(&v_64); } FX_CHECK_EXN(_fx_catch_13); } - _fx_make_T2R9Ast__id_tN10Ast__typ_t(&n_0, t_2, &v_40); - _fx_make_T2T2R9Ast__id_tN10Ast__typ_tR9Ast__id_t(&v_40, &inst_cname_0, &tup_2); + _fx_make_T2R9Ast__id_tN10Ast__typ_t(&n_0, t_2, &v_47); + _fx_make_T2T2R9Ast__id_tN10Ast__typ_tR9Ast__id_t(&v_47, &inst_cname_0, &tup_2); _fx_LT2R9Ast__id_tN10Ast__typ_t node_2 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(&tup_2.t0, 0, false, &node_2), _fx_catch_13); FX_LIST_APPEND(lst_0, lstend_2, node_2); @@ -38419,10 +37753,10 @@ FX_EXTERN_C int _fx_catch_13: ; _fx_free_T2T2R9Ast__id_tN10Ast__typ_tR9Ast__id_t(&tup_2); - _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_40); - _fx_free_N14Ast__id_info_t(&v_39); - _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_38); - FX_FREE_LIST_SIMPLE(&v_37); + _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_47); + _fx_free_N14Ast__id_info_t(&v_46); + _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_45); + FX_FREE_LIST_SIMPLE(&v_44); if (argtyps_0) { _fx_free_LN10Ast__typ_t(&argtyps_0); } @@ -38432,8 +37766,8 @@ FX_EXTERN_C int if (t_1) { _fx_free_N10Ast__typ_t(&t_1); } - if (v_36) { - _fx_free_N10Ast__typ_t(&v_36); + if (v_43) { + _fx_free_N10Ast__typ_t(&v_43); } if (t_0) { _fx_free_N10Ast__typ_t(&t_0); @@ -38442,15 +37776,15 @@ FX_EXTERN_C int } int s_0 = !lst_5 + !lst_6; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_cleanup); - _fx_make_T2LT2R9Ast__id_tN10Ast__typ_tLR9Ast__id_t(lst_0, lst_1, &v_5); - FX_COPY_PTR(v_5.t0, &inst_cases_0); - FX_COPY_PTR(v_5.t1, &inst_ctors_0); - _fx_R17Ast__defvariant_t* v_57 = &inst_dvar_0->data; - _fx_make_R17Ast__defvariant_t(&v_57->dvar_name, v_57->dvar_templ_args, v_57->dvar_alias, &v_57->dvar_flags, inst_cases_0, - inst_ctors_0, v_57->dvar_templ_inst, new_ifaces_0, v_57->dvar_scope, &v_57->dvar_loc, &v_6); - _fx_R17Ast__defvariant_t* v_58 = &inst_dvar_0->data; - _fx_free_R17Ast__defvariant_t(v_58); - _fx_copy_R17Ast__defvariant_t(&v_6, v_58); + _fx_make_T2LT2R9Ast__id_tN10Ast__typ_tLR9Ast__id_t(lst_0, lst_1, &v_6); + FX_COPY_PTR(v_6.t0, &inst_cases_0); + FX_COPY_PTR(v_6.t1, &inst_ctors_0); + _fx_R17Ast__defvariant_t* v_68 = &inst_dvar_0->data; + _fx_make_R17Ast__defvariant_t(&v_68->dvar_name, v_68->dvar_templ_args, v_68->dvar_alias, &v_68->dvar_flags, inst_cases_0, + inst_ctors_0, v_68->dvar_templ_inst, new_ifaces_0, v_68->dvar_scope, &v_68->dvar_loc, &v_7); + _fx_R17Ast__defvariant_t* v_69 = &inst_dvar_0->data; + _fx_free_R17Ast__defvariant_t(v_69); + _fx_copy_R17Ast__defvariant_t(&v_7, v_69); _fx_make_T2R9Ast__id_tN10Ast__typ_t(&inst_name_1, inst_app_typ_0, fx_result); _fx_cleanup: ; @@ -38485,10 +37819,11 @@ _fx_cleanup: ; _fx_free_rLR9Ast__id_t(&v_2); } FX_FREE_LIST_SIMPLE(&v_3); - if (v_4) { - _fx_free_rLR9Ast__id_t(&v_4); + FX_FREE_LIST_SIMPLE(&v_4); + if (v_5) { + _fx_free_rLR9Ast__id_t(&v_5); } - _fx_free_T2LT2R9Ast__id_tN10Ast__typ_tLR9Ast__id_t(&v_5); + _fx_free_T2LT2R9Ast__id_tN10Ast__typ_tLR9Ast__id_t(&v_6); if (lst_0) { _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&lst_0); } @@ -38497,7 +37832,7 @@ _fx_cleanup: ; _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&inst_cases_0); } FX_FREE_LIST_SIMPLE(&inst_ctors_0); - _fx_free_R17Ast__defvariant_t(&v_6); + _fx_free_R17Ast__defvariant_t(&v_7); return fx_status; } @@ -38626,7 +37961,9 @@ FX_EXTERN_C int int_ curr_m_idx_0; FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(sc_0, &curr_m_idx_0, 0), _fx_cleanup); FX_CALL(_fx_make_rRt6Set__t1R9Ast__id_t(idset_0, &r_idset_ref_0), _fx_cleanup); + _fx_Rt6Set__t1R9Ast__id_t* r_idset_0 = &r_idset_ref_0->data; FX_CALL(_fx_make_rRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(env_0, &r_env_ref_0), _fx_cleanup); + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* r_env_0 = &r_env_ref_0->data; FX_CALL(_fx_make_rRt6Set__t1R9Ast__id_t(typ_vars_0, &r_typ_vars_0), _fx_cleanup); FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_0, 0), _fx_cleanup); _fx_make_R16Ast__val_flags_t(v_0.val_flag_arg, is_mutable_0, v_0.val_flag_temp, v_0.val_flag_tempref, v_0.val_flag_private, @@ -38640,7 +37977,7 @@ FX_EXTERN_C int bool typed_0 = v_1.t1; _fx_copy_Rt6Set__t1R9Ast__id_t(&r_typ_vars_0->data, &v_2); _fx_make_T5N10Ast__pat_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Set__t1R9Ast__id_tRt6Set__t1R9Ast__id_tB(pat_new_0, - &r_env_ref_0->data, &r_idset_ref_0->data, &v_2, typed_0, fx_result); + r_env_0, r_idset_0, &v_2, typed_0, fx_result); _fx_cleanup: ; if (r_idset_ref_0) { @@ -38788,8 +38125,9 @@ static int _fx_endmatch_0: ; FX_CHECK_EXN(_fx_cleanup); FX_COPY_PTR(v_8.t0, &t_3); + int_ v_14 = r_idset_0->size; FX_COPY_FP(&r_idset_0->cmp, &v_9); - _fx_make_Rt6Set__t1R9Ast__id_t(t_3, r_idset_0->size + dsz_0, &v_9, &v_10); + _fx_make_Rt6Set__t1R9Ast__id_t(t_3, v_14 + dsz_0, &v_9, &v_10); _fx_free_Rt6Set__t1R9Ast__id_t(r_idset_0); _fx_copy_Rt6Set__t1R9Ast__id_t(&v_10, r_idset_0); } @@ -39997,14 +39335,15 @@ FX_EXTERN_C int _fx_M13Ast_typecheckFM9check_modv1i(int_ m_idx_0, void* fx_fv) _fx_M13Ast_typecheckFM7update_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t3Nt11Map__tree_t2R9Ast__id_tLN16Ast__env_entry_tFPRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t3R9Ast__id_tLN16Ast__env_entry_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_tRt6Map__t2R9Ast__id_tLN16Ast__env_entry_t( v_3, &__lambda___0, &_fx_g14Ast__empty_env, &env_2, 0), _fx_catch_3); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_catch_3); - _fx_LN10Ast__exp_t* v_6 = &(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t4; - _fx_free_LN10Ast__exp_t(v_6); - FX_COPY_PTR(seq_0, v_6); + _fx_N16Ast__defmodule_t v_6 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + _fx_LN10Ast__exp_t* v_7 = &v_6->u.defmodule_t.t4; + _fx_free_LN10Ast__exp_t(v_7); + FX_COPY_PTR(seq_0, v_7); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_catch_3); - _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* v_7 = - &(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t6; - _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_7); - _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2, v_7); + _fx_N16Ast__defmodule_t v_8 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + _fx_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t* v_9 = &v_8->u.defmodule_t.t6; + _fx_free_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(v_9); + _fx_copy_Rt6Map__t2R9Ast__id_tLN16Ast__env_entry_t(&env_2, v_9); _fx_catch_3: ; FX_FREE_LIST_SIMPLE(&modsc_0); diff --git a/compiler/bootstrap/C_form.c b/compiler/bootstrap/C_form.c index 00aa1105..4a9351c2 100644 --- a/compiler/bootstrap/C_form.c +++ b/compiler/bootstrap/C_form.c @@ -9209,7 +9209,8 @@ FX_EXTERN_C int _fx_M6C_formFM11new_idc_idxi1i(int_ m_idx_0, int_* fx_result, vo FX_THROW(&v_0, true, _fx_cleanup); } FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - FX_COPY_PTR((*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t9, &v_1); + _fx_N16Ast__defmodule_t v_8 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + FX_COPY_PTR(v_8->u.defmodule_t.t9, &v_1); fx_copy_arr(&v_1->u.t.t1, &v_2); int_ sz_0 = FX_ARR_SIZE(v_2, 0); int_ n0_0 = v_1->u.t.t0; @@ -9240,9 +9241,9 @@ FX_EXTERN_C int _fx_M6C_formFM11new_idc_idxi1i(int_ m_idx_0, int_* fx_result, vo _fx_free_N14Ast__id_info_t(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_8 = &v_1->u.t.t1; - FX_FREE_ARR(v_8); - fx_copy_arr(&new_data_0, v_8); + fx_arr_t* v_9 = &v_1->u.t.t1; + FX_FREE_ARR(v_9); + fx_copy_arr(&new_data_0, v_9); } v_1->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_idx_0), _fx_cleanup); @@ -9277,9 +9278,9 @@ FX_EXTERN_C int _fx_M6C_formFM11new_idc_idxi1i(int_ m_idx_0, int_* fx_result, vo _fx_free_N15K_form__kinfo_t(&t_1); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_9 = &v_3->u.t.t1; - FX_FREE_ARR(v_9); - fx_copy_arr(&new_data_1, v_9); + fx_arr_t* v_10 = &v_3->u.t.t1; + FX_FREE_ARR(v_10); + fx_copy_arr(&new_data_1, v_10); } v_3->u.t.t0 = n0_1 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g16C_form__all_idcs, 0, m_idx_0), _fx_cleanup); @@ -9314,9 +9315,9 @@ FX_EXTERN_C int _fx_M6C_formFM11new_idc_idxi1i(int_ m_idx_0, int_* fx_result, vo _fx_free_N15C_form__cinfo_t(&t_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_10 = &v_5->u.t.t1; - FX_FREE_ARR(v_10); - fx_copy_arr(&new_data_2, v_10); + fx_arr_t* v_11 = &v_5->u.t.t1; + FX_FREE_ARR(v_11); + fx_copy_arr(&new_data_2, v_11); } v_5->u.t.t0 = n0_2 + 1; bool t_3; @@ -9375,11 +9376,9 @@ FX_EXTERN_C int _fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t int_ m_0 = v_0.t0; int_ j_0 = v_0.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16C_form__all_idcs, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15C_form__cinfo_t( - FX_PTR_1D(_fx_N15C_form__cinfo_t, (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, - j_0), fx_result); + _fx_Nt9Dynvec__t1N15C_form__cinfo_t v_1 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0); + FX_CHKIDX(FX_CHKIDX1(v_1->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15C_form__cinfo_t(FX_PTR_1D(_fx_N15C_form__cinfo_t, v_1->u.t.t1, j_0), fx_result); _fx_cleanup: ; return fx_status; @@ -9430,13 +9429,11 @@ FX_EXTERN_C int _fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t( int_ m_0 = v_0.t0; int_ j_0 = v_0.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16C_form__all_idcs, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_N15C_form__cinfo_t* v_1 = - FX_PTR_1D(_fx_N15C_form__cinfo_t, (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, - j_0); - _fx_free_N15C_form__cinfo_t(v_1); - _fx_copy_N15C_form__cinfo_t(entry_0, v_1); + _fx_Nt9Dynvec__t1N15C_form__cinfo_t v_1 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0); + FX_CHKIDX(FX_CHKIDX1(v_1->u.t.t1, 0, j_0), _fx_cleanup); + _fx_N15C_form__cinfo_t* v_2 = FX_PTR_1D(_fx_N15C_form__cinfo_t, v_1->u.t.t1, j_0); + _fx_free_N15C_form__cinfo_t(v_2); + _fx_copy_N15C_form__cinfo_t(entry_0, v_2); _fx_cleanup: ; return fx_status; @@ -9749,61 +9746,24 @@ FX_EXTERN_C int _fx_M6C_formFM8get_cvalRM9cdefval_t2R9Ast__id_tR10Ast__loc_t( int_ m_0 = v_0.t0; int_ j_0 = v_0.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16C_form__all_idcs, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15C_form__cinfo_t( - FX_PTR_1D(_fx_N15C_form__cinfo_t, (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, - j_0), &info_0); + _fx_Nt9Dynvec__t1N15C_form__cinfo_t v_1 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0); + FX_CHKIDX(FX_CHKIDX1(v_1->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15C_form__cinfo_t(FX_PTR_1D(_fx_N15C_form__cinfo_t, v_1->u.t.t1, j_0), &info_0); if (info_0.tag == 2) { _fx_copy_R17C_form__cdefval_t(&info_0.u.CVal, fx_result); } else { - fx_str_t v_1 = {0}; fx_str_t v_2 = {0}; - fx_exn_t v_3 = {0}; - bool __fold_result___0 = true; - bool t_0; - if (loc_0->m_idx == _fx_g10Ast__noloc.m_idx) { - t_0 = __fold_result___0; - } - else { - t_0 = false; - } - __fold_result___0 = t_0; - bool t_1; - if (loc_0->line0 == _fx_g10Ast__noloc.line0) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (loc_0->col0 == _fx_g10Ast__noloc.col0) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (loc_0->line1 == _fx_g10Ast__noloc.line1) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - bool t_4; - if (loc_0->col1 == _fx_g10Ast__noloc.col1) { - t_4 = __fold_result___0; - } - else { - t_4 = false; - } - __fold_result___0 = t_4; + fx_str_t v_3 = {0}; + fx_exn_t v_4 = {0}; + bool f_0 = true; + f_0 = (bool)(f_0 & (loc_0->m_idx == _fx_g10Ast__noloc.m_idx)); + f_0 = (bool)(f_0 & (loc_0->line0 == _fx_g10Ast__noloc.line0)); + f_0 = (bool)(f_0 & (loc_0->col0 == _fx_g10Ast__noloc.col0)); + f_0 = (bool)(f_0 & (loc_0->line1 == _fx_g10Ast__noloc.line1)); + f_0 = (bool)(f_0 & (loc_0->col1 == _fx_g10Ast__noloc.col1)); _fx_R10Ast__loc_t loc_1; - if (!__fold_result___0) { + if (!f_0) { loc_1 = *loc_0; } else { @@ -9815,63 +9775,63 @@ FX_EXTERN_C int _fx_M6C_formFM8get_cvalRM9cdefval_t2R9Ast__id_tR10Ast__loc_t( loc_1 = info_0.u.CVal.cv_loc; } else if (tag_0 == 3) { - _fx_R17C_form__cdeffun_t v_4 = {0}; - _fx_copy_R17C_form__cdeffun_t(&info_0.u.CFun->data, &v_4); - loc_1 = v_4.cf_loc; - _fx_free_R17C_form__cdeffun_t(&v_4); + _fx_R17C_form__cdeffun_t v_5 = {0}; + _fx_copy_R17C_form__cdeffun_t(&info_0.u.CFun->data, &v_5); + loc_1 = v_5.cf_loc; + _fx_free_R17C_form__cdeffun_t(&v_5); } else if (tag_0 == 4) { - _fx_R17C_form__cdeftyp_t v_5 = {0}; - _fx_copy_R17C_form__cdeftyp_t(&info_0.u.CTyp->data, &v_5); - loc_1 = v_5.ct_loc; - _fx_free_R17C_form__cdeftyp_t(&v_5); + _fx_R17C_form__cdeftyp_t v_6 = {0}; + _fx_copy_R17C_form__cdeftyp_t(&info_0.u.CTyp->data, &v_6); + loc_1 = v_6.ct_loc; + _fx_free_R17C_form__cdeftyp_t(&v_6); } else if (tag_0 == 5) { - _fx_R17C_form__cdefexn_t v_6 = {0}; - _fx_copy_R17C_form__cdefexn_t(&info_0.u.CExn->data, &v_6); - loc_1 = v_6.cexn_loc; - _fx_free_R17C_form__cdefexn_t(&v_6); + _fx_R17C_form__cdefexn_t v_7 = {0}; + _fx_copy_R17C_form__cdefexn_t(&info_0.u.CExn->data, &v_7); + loc_1 = v_7.cexn_loc; + _fx_free_R17C_form__cdefexn_t(&v_7); } else if (tag_0 == 7) { - _fx_R18C_form__cdefenum_t v_7 = {0}; - _fx_copy_R18C_form__cdefenum_t(&info_0.u.CEnum->data, &v_7); - loc_1 = v_7.cenum_loc; - _fx_free_R18C_form__cdefenum_t(&v_7); + _fx_R18C_form__cdefenum_t v_8 = {0}; + _fx_copy_R18C_form__cdefenum_t(&info_0.u.CEnum->data, &v_8); + loc_1 = v_8.cenum_loc; + _fx_free_R18C_form__cdefenum_t(&v_8); } else if (tag_0 == 6) { - _fx_R23C_form__cdefinterface_t v_8 = {0}; - _fx_copy_R23C_form__cdefinterface_t(&info_0.u.CInterface->data, &v_8); - loc_1 = v_8.ci_loc; - _fx_free_R23C_form__cdefinterface_t(&v_8); + _fx_R23C_form__cdefinterface_t v_9 = {0}; + _fx_copy_R23C_form__cdefinterface_t(&info_0.u.CInterface->data, &v_9); + loc_1 = v_9.ci_loc; + _fx_free_R23C_form__cdefinterface_t(&v_9); } else if (tag_0 == 8) { loc_1 = info_0.u.CLabel.cl_loc; } else if (tag_0 == 9) { - _fx_R19C_form__cdefmacro_t v_9 = {0}; - _fx_copy_R19C_form__cdefmacro_t(&info_0.u.CMacro->data, &v_9); - loc_1 = v_9.cm_loc; - _fx_free_R19C_form__cdefmacro_t(&v_9); + _fx_R19C_form__cdefmacro_t v_10 = {0}; + _fx_copy_R19C_form__cdefmacro_t(&info_0.u.CMacro->data, &v_10); + loc_1 = v_10.cm_loc; + _fx_free_R19C_form__cdefmacro_t(&v_10); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_0); } FX_CHECK_EXN(_fx_catch_0); } - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_1, 0), _fx_catch_0); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_2, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("symbol \'"); fx_str_t slit_1 = FX_MAKE_STR("\' is expected to be CVal ..."); { - const fx_str_t strs_0[] = { slit_0, v_1, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_2), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_2, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_3), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_1, &v_2, &v_3, 0), _fx_catch_0); - FX_THROW(&v_3, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_1, &v_3, &v_4, 0), _fx_catch_0); + FX_THROW(&v_4, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_3); + fx_free_exn(&v_4); + FX_FREE_STR(&v_3); FX_FREE_STR(&v_2); - FX_FREE_STR(&v_1); } _fx_cleanup: ; @@ -10028,11 +9988,9 @@ FX_EXTERN_C int _fx_M6C_formFM13get_idc_cnameS2R9Ast__id_tR10Ast__loc_t( int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16C_form__all_idcs, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15C_form__cinfo_t( - FX_PTR_1D(_fx_N15C_form__cinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15C_form__cinfo_t v_2 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15C_form__cinfo_t(FX_PTR_1D(_fx_N15C_form__cinfo_t, v_2->u.t.t1, j_0), &v_0); int tag_0 = v_0.tag; if (tag_0 == 1) { fx_str_t slit_0 = FX_MAKE_STR(""); fx_copy_str(&slit_0, fx_result); @@ -10041,43 +9999,43 @@ FX_EXTERN_C int _fx_M6C_formFM13get_idc_cnameS2R9Ast__id_tR10Ast__loc_t( fx_copy_str(&v_0.u.CVal.cv_cname, fx_result); } else if (tag_0 == 3) { - _fx_R17C_form__cdeffun_t v_2 = {0}; - _fx_copy_R17C_form__cdeffun_t(&v_0.u.CFun->data, &v_2); - fx_copy_str(&v_2.cf_cname, fx_result); - _fx_free_R17C_form__cdeffun_t(&v_2); + _fx_R17C_form__cdeffun_t v_3 = {0}; + _fx_copy_R17C_form__cdeffun_t(&v_0.u.CFun->data, &v_3); + fx_copy_str(&v_3.cf_cname, fx_result); + _fx_free_R17C_form__cdeffun_t(&v_3); } else if (tag_0 == 4) { - _fx_R17C_form__cdeftyp_t v_3 = {0}; - _fx_copy_R17C_form__cdeftyp_t(&v_0.u.CTyp->data, &v_3); - fx_copy_str(&v_3.ct_cname, fx_result); - _fx_free_R17C_form__cdeftyp_t(&v_3); + _fx_R17C_form__cdeftyp_t v_4 = {0}; + _fx_copy_R17C_form__cdeftyp_t(&v_0.u.CTyp->data, &v_4); + fx_copy_str(&v_4.ct_cname, fx_result); + _fx_free_R17C_form__cdeftyp_t(&v_4); } else if (tag_0 == 8) { fx_copy_str(&v_0.u.CLabel.cl_cname, fx_result); } else if (tag_0 == 7) { - _fx_R18C_form__cdefenum_t v_4 = {0}; - _fx_copy_R18C_form__cdefenum_t(&v_0.u.CEnum->data, &v_4); - fx_copy_str(&v_4.cenum_cname, fx_result); - _fx_free_R18C_form__cdefenum_t(&v_4); + _fx_R18C_form__cdefenum_t v_5 = {0}; + _fx_copy_R18C_form__cdefenum_t(&v_0.u.CEnum->data, &v_5); + fx_copy_str(&v_5.cenum_cname, fx_result); + _fx_free_R18C_form__cdefenum_t(&v_5); } else if (tag_0 == 5) { - _fx_R17C_form__cdefexn_t v_5 = {0}; - _fx_copy_R17C_form__cdefexn_t(&v_0.u.CExn->data, &v_5); - fx_copy_str(&v_5.cexn_cname, fx_result); - _fx_free_R17C_form__cdefexn_t(&v_5); + _fx_R17C_form__cdefexn_t v_6 = {0}; + _fx_copy_R17C_form__cdefexn_t(&v_0.u.CExn->data, &v_6); + fx_copy_str(&v_6.cexn_cname, fx_result); + _fx_free_R17C_form__cdefexn_t(&v_6); } else if (tag_0 == 6) { - _fx_R23C_form__cdefinterface_t v_6 = {0}; - _fx_copy_R23C_form__cdefinterface_t(&v_0.u.CInterface->data, &v_6); - fx_copy_str(&v_6.ci_cname, fx_result); - _fx_free_R23C_form__cdefinterface_t(&v_6); + _fx_R23C_form__cdefinterface_t v_7 = {0}; + _fx_copy_R23C_form__cdefinterface_t(&v_0.u.CInterface->data, &v_7); + fx_copy_str(&v_7.ci_cname, fx_result); + _fx_free_R23C_form__cdefinterface_t(&v_7); } else if (tag_0 == 9) { - _fx_R19C_form__cdefmacro_t v_7 = {0}; - _fx_copy_R19C_form__cdefmacro_t(&v_0.u.CMacro->data, &v_7); - fx_copy_str(&v_7.cm_cname, fx_result); - _fx_free_R19C_form__cdefmacro_t(&v_7); + _fx_R19C_form__cdefmacro_t v_8 = {0}; + _fx_copy_R19C_form__cdefmacro_t(&v_0.u.CMacro->data, &v_8); + fx_copy_str(&v_8.cm_cname, fx_result); + _fx_free_R19C_form__cdefmacro_t(&v_8); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_cleanup); @@ -10126,13 +10084,11 @@ FX_EXTERN_C int int_ m_0 = v_6.t0; int_ j_0 = v_6.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16C_form__all_idcs, 0, m_0), _fx_catch_1); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, 0, j_0), - _fx_catch_1); - _fx_N15C_form__cinfo_t* v_7 = - FX_PTR_1D(_fx_N15C_form__cinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, j_0); - _fx_free_N15C_form__cinfo_t(v_7); - _fx_copy_N15C_form__cinfo_t(&v_1, v_7); + _fx_Nt9Dynvec__t1N15C_form__cinfo_t v_7 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0); + FX_CHKIDX(FX_CHKIDX1(v_7->u.t.t1, 0, j_0), _fx_catch_1); + _fx_N15C_form__cinfo_t* v_8 = FX_PTR_1D(_fx_N15C_form__cinfo_t, v_7->u.t.t1, j_0); + _fx_free_N15C_form__cinfo_t(v_8); + _fx_copy_N15C_form__cinfo_t(&v_1, v_8); _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(t_0, loc_0, &v_2); FX_CALL(_fx_M6C_formFM9CExpIdentN14C_form__cexp_t2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(n_0, &v_2, &v_3), _fx_catch_1); @@ -10181,13 +10137,11 @@ FX_EXTERN_C int _fx_M6C_formFM10add_cf_argv4R9Ast__id_tN14C_form__ctyp_tSR10Ast_ int_ m_0 = v_4.t0; int_ j_0 = v_4.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16C_form__all_idcs, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_N15C_form__cinfo_t* v_5 = - FX_PTR_1D(_fx_N15C_form__cinfo_t, (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, - j_0); - _fx_free_N15C_form__cinfo_t(v_5); - _fx_copy_N15C_form__cinfo_t(&v_3, v_5); + _fx_Nt9Dynvec__t1N15C_form__cinfo_t v_5 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0); + FX_CHKIDX(FX_CHKIDX1(v_5->u.t.t1, 0, j_0), _fx_cleanup); + _fx_N15C_form__cinfo_t* v_6 = FX_PTR_1D(_fx_N15C_form__cinfo_t, v_5->u.t.t1, j_0); + _fx_free_N15C_form__cinfo_t(v_6); + _fx_copy_N15C_form__cinfo_t(&v_3, v_6); _fx_cleanup: ; _fx_free_R16Ast__val_flags_t(&v_1); @@ -10274,16 +10228,16 @@ FX_EXTERN_C int _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_ } } _fx_LR10Ast__loc_t v_1 = 0; - _fx_LN15C_form__cstmt_t __fold_result___0 = 0; + _fx_LN15C_form__cstmt_t res_1 = 0; _fx_LN15C_form__cstmt_t v_2 = 0; _fx_LR10Ast__loc_t lstend_1 = 0; _fx_LN15C_form__cstmt_t lst_1 = code_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N15C_form__cstmt_t x_1 = lst_1->hd; - _fx_R10Ast__loc_t res_1; - FX_CALL(_fx_M6C_formFM13get_cstmt_locR10Ast__loc_t1N15C_form__cstmt_t(x_1, &res_1, 0), _fx_catch_2); + _fx_R10Ast__loc_t res_2; + FX_CALL(_fx_M6C_formFM13get_cstmt_locR10Ast__loc_t1N15C_form__cstmt_t(x_1, &res_2, 0), _fx_catch_2); _fx_LR10Ast__loc_t node_1 = 0; - FX_CALL(_fx_cons_LR10Ast__loc_t(&res_1, 0, false, &node_1), _fx_catch_2); + FX_CALL(_fx_cons_LR10Ast__loc_t(&res_2, 0, false, &node_1), _fx_catch_2); FX_LIST_APPEND(v_1, lstend_1, node_1); _fx_catch_2: ; @@ -10293,20 +10247,19 @@ FX_EXTERN_C int _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_ FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(v_1, loc_0, &final_loc_0, 0), _fx_catch_4); _fx_LN15C_form__cstmt_t lst_2 = code_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN15C_form__cstmt_t r_0 = 0; + _fx_LN15C_form__cstmt_t v_3 = 0; _fx_N15C_form__cstmt_t a_0 = lst_2->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, r_0, false, &r_0), _fx_catch_3); - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, res_1, true, &v_3), _fx_catch_3); + _fx_free_LN15C_form__cstmt_t(&res_1); + FX_COPY_PTR(v_3, &res_1); _fx_catch_3: ; - if (r_0) { - _fx_free_LN15C_form__cstmt_t(&r_0); + if (v_3) { + _fx_free_LN15C_form__cstmt_t(&v_3); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___0, &v_2); + FX_COPY_PTR(res_1, &v_2); FX_CALL(_fx_M6C_formFM10CStmtBlockN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(v_2, &final_loc_0, fx_result), _fx_catch_4); @@ -10314,8 +10267,8 @@ _fx_catch_4: ; if (v_2) { _fx_free_LN15C_form__cstmt_t(&v_2); } - if (__fold_result___0) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); + if (res_1) { + _fx_free_LN15C_form__cstmt_t(&res_1); } FX_FREE_LIST_SIMPLE(&v_1); @@ -10386,11 +10339,9 @@ FX_EXTERN_C int _fx_M6C_formFM18get_cinterface_optNt6option1rRM15cdefinterface_t int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16C_form__all_idcs, 0, m_0), _fx_catch_0); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, 0, j_0), - _fx_catch_0); - _fx_copy_N15C_form__cinfo_t( - FX_PTR_1D(_fx_N15C_form__cinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15C_form__cinfo_t v_2 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.t.t1, 0, j_0), _fx_catch_0); + _fx_copy_N15C_form__cinfo_t(FX_PTR_1D(_fx_N15C_form__cinfo_t, v_2->u.t.t1, j_0), &v_0); if (v_0.tag == 6) { _fx_M6C_formFM4SomeNt6option1rRM15cdefinterface_t1rRM15cdefinterface_t(v_0.u.CInterface, fx_result); } @@ -13973,11 +13924,9 @@ FX_EXTERN_C int _fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__ int_ m_0 = v_2.t0; int_ j_0 = v_2.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16C_form__all_idcs, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15C_form__cinfo_t( - FX_PTR_1D(_fx_N15C_form__cinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15C_form__cinfo_t v_3 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0); + FX_CHKIDX(FX_CHKIDX1(v_3->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15C_form__cinfo_t(FX_PTR_1D(_fx_N15C_form__cinfo_t, v_3->u.t.t1, j_0), &v_0); FX_CALL( _fx_M6C_formFM13get_cinfo_typN14C_form__ctyp_t3N15C_form__cinfo_tR9Ast__id_tR10Ast__loc_t(&v_0, i_0, loc_0, &t_0, 0), _fx_cleanup); @@ -14036,11 +13985,9 @@ FX_EXTERN_C int _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form_ int_ m_0 = v_3.t0; int_ j_0 = v_3.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16C_form__all_idcs, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15C_form__cinfo_t( - FX_PTR_1D(_fx_N15C_form__cinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15C_form__cinfo_t v_4 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15C_form__cinfo_t, _fx_g16C_form__all_idcs, m_0); + FX_CHKIDX(FX_CHKIDX1(v_4->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15C_form__cinfo_t(FX_PTR_1D(_fx_N15C_form__cinfo_t, v_4->u.t.t1, j_0), &v_0); FX_CALL( _fx_M6C_formFM13get_cinfo_typN14C_form__ctyp_t3N15C_form__cinfo_tR9Ast__id_tR10Ast__loc_t(&v_0, f_0, loc_0, &t_0, 0), _fx_cleanup); diff --git a/compiler/bootstrap/C_gen_code.c b/compiler/bootstrap/C_gen_code.c index 9c8243d7..783ee263 100644 --- a/compiler/bootstrap/C_gen_code.c +++ b/compiler/bootstrap/C_gen_code.c @@ -1524,6 +1524,11 @@ typedef struct _fx_LLN15C_form__cstmt_t_data_t { struct _fx_LN15C_form__cstmt_t_data_t* hd; } _fx_LLN15C_form__cstmt_t_data_t, *_fx_LLN15C_form__cstmt_t; +typedef struct _fx_Ta2LN15C_form__cstmt_t { + struct _fx_LN15C_form__cstmt_t_data_t* t0; + struct _fx_LN15C_form__cstmt_t_data_t* t1; +} _fx_Ta2LN15C_form__cstmt_t; + typedef struct _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t { uint64_t hv; struct _fx_R9Ast__id_t key; @@ -1562,12 +1567,6 @@ typedef struct _fx_rNt10Hashmap__t2R9Ast__id_ti_data_t { struct _fx_Nt10Hashmap__t2R9Ast__id_ti_data_t* data; } _fx_rNt10Hashmap__t2R9Ast__id_ti_data_t, *_fx_rNt10Hashmap__t2R9Ast__id_ti; -typedef struct _fx_Ta3LS { - struct _fx_LS_data_t* t0; - struct _fx_LS_data_t* t1; - struct _fx_LS_data_t* t2; -} _fx_Ta3LS; - typedef struct _fx_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti { struct _fx_R9Ast__id_t t0; struct _fx_N14C_form__cexp_t_data_t* t1; @@ -1610,11 +1609,6 @@ typedef struct _fx_LR17C_form__cmodule_t_data_t { struct _fx_R17C_form__cmodule_t hd; } _fx_LR17C_form__cmodule_t_data_t, *_fx_LR17C_form__cmodule_t; -typedef struct _fx_Ta2LN15C_form__cstmt_t { - struct _fx_LN15C_form__cstmt_t_data_t* t0; - struct _fx_LN15C_form__cstmt_t_data_t* t1; -} _fx_Ta2LN15C_form__cstmt_t; - typedef struct _fx_rNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t_data_t { int_ rc; struct _fx_Nt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t_data_t* data; @@ -1709,6 +1703,13 @@ typedef struct _fx_T2LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t { struct _fx_LR9Ast__id_t_data_t* t1; } _fx_T2LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t; +typedef struct _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t { + struct _fx_N17C_form__cbinary_t t0; + struct _fx_N17C_form__cbinary_t t1; + struct _fx_N14C_form__cexp_t_data_t* t2; + struct _fx_LN15C_form__cstmt_t_data_t* t3; +} _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t; + typedef struct _fx_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t { struct _fx_LN14C_form__cexp_t_data_t* t0; struct _fx_LN14C_form__cexp_t_data_t* t1; @@ -1722,12 +1723,10 @@ typedef struct _fx_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14 struct _fx_LN14C_form__cexp_t_data_t* t9; } _fx_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t; -typedef struct _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t { - struct _fx_N17C_form__cbinary_t t0; - struct _fx_N17C_form__cbinary_t t1; - struct _fx_N14C_form__cexp_t_data_t* t2; - struct _fx_LN15C_form__cstmt_t_data_t* t3; -} _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t; +typedef struct _fx_Ta2LN14C_form__cexp_t { + struct _fx_LN14C_form__cexp_t_data_t* t0; + struct _fx_LN14C_form__cexp_t_data_t* t1; +} _fx_Ta2LN14C_form__cexp_t; typedef struct _fx_T6BN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t { bool t0; @@ -1751,12 +1750,6 @@ typedef struct _fx_T5N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_ struct _fx_LN15C_form__cstmt_t_data_t* t4; } _fx_T5N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t; -typedef struct _fx_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t { - struct _fx_LN14C_form__cexp_t_data_t* t0; - struct _fx_LN14C_form__cexp_t_data_t* t1; - struct _fx_LN15C_form__cstmt_t_data_t* t2; -} _fx_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t; - typedef struct _fx_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t { struct _fx_LN14C_form__cexp_t_data_t* t0; struct _fx_LN14C_form__cexp_t_data_t* t1; @@ -1764,11 +1757,6 @@ typedef struct _fx_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C struct _fx_LN15C_form__cstmt_t_data_t* t3; } _fx_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t; -typedef struct _fx_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t { - int_ t0; - struct _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t_data_t* t1; -} _fx_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t; - typedef struct _fx_T2N14C_form__cexp_tLN14C_form__cexp_t { struct _fx_N14C_form__cexp_t_data_t* t0; struct _fx_LN14C_form__cexp_t_data_t* t1; @@ -1786,19 +1774,6 @@ typedef struct _fx_FPT8LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option fx_fcv_t* fcv; } _fx_FPT8LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN15C_form__cstmt_t16N14C_form__cexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tiiiiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN15C_form__cstmt_tR10Ast__loc_trLrR23C_gen_code__block_ctx_trNt10Hashset__t1R9Ast__id_tLSrLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti; -typedef struct _fx_T5BBBBLLN15C_form__cstmt_t { - bool t0; - bool t1; - bool t2; - bool t3; - struct _fx_LLN15C_form__cstmt_t_data_t* t4; -} _fx_T5BBBBLLN15C_form__cstmt_t; - -typedef struct _fx_T2LN14C_form__cexp_tLLN15C_form__cstmt_t { - struct _fx_LN14C_form__cexp_t_data_t* t0; - struct _fx_LLN15C_form__cstmt_t_data_t* t1; -} _fx_T2LN14C_form__cexp_tLLN15C_form__cstmt_t; - typedef struct _fx_T3LN15C_form__cstmt_tBB { struct _fx_LN15C_form__cstmt_t_data_t* t0; bool t1; @@ -1810,6 +1785,11 @@ typedef struct _fx_T2BLN15C_form__cstmt_t { struct _fx_LN15C_form__cstmt_t_data_t* t1; } _fx_T2BLN15C_form__cstmt_t; +typedef struct _fx_T2BLLN15C_form__cstmt_t { + bool t0; + struct _fx_LLN15C_form__cstmt_t_data_t* t1; +} _fx_T2BLLN15C_form__cstmt_t; + typedef struct _fx_FPLN15C_form__cstmt_t19LT2LN14K_form__kexp_tN14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_tBR10Ast__loc_trLrR23C_gen_code__block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t { int (*fp)( struct _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t_data_t*, struct _fx_rNt6option1N14C_form__cexp_t_data_t*, @@ -1889,14 +1869,6 @@ typedef struct _fx_T2LN14K_form__atom_tS { fx_str_t t1; } _fx_T2LN14K_form__atom_tS; -typedef struct _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t { - int_ t0; - struct _fx_LN14C_form__cexp_t_data_t* t1; - struct _fx_LN14C_form__cexp_t_data_t* t2; - struct _fx_LN14C_form__cexp_t_data_t* t3; - struct _fx_LN15C_form__cstmt_t_data_t* t4; -} _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t; - typedef struct _fx_T2iN14C_form__cexp_t { int_ t0; struct _fx_N14C_form__cexp_t_data_t* t1; @@ -1913,12 +1885,6 @@ typedef struct _fx_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t { struct _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t t1; } _fx_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t; -typedef struct _fx_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t { - struct _fx_Nt6option1N14C_form__cexp_t t0; - struct _fx_LN14C_form__cexp_t_data_t* t1; - struct _fx_LN15C_form__cstmt_t_data_t* t2; -} _fx_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t; - typedef struct _fx_Ta2N14K_form__kexp_t { struct _fx_N14K_form__kexp_t_data_t* t0; struct _fx_N14K_form__kexp_t_data_t* t1; @@ -1931,13 +1897,7 @@ typedef struct _fx_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_ struct _fx_LN15C_form__cstmt_t_data_t* t3; } _fx_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t; -typedef struct _fx_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t { - struct _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t_data_t* t0; - struct _fx_LN15C_form__cstmt_t_data_t* t1; - struct _fx_LN15C_form__cstmt_t_data_t* t2; -} _fx_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t; - -typedef struct _fx_FPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrR23C_gen_code__block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB { +typedef struct _fx_FPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrR23C_gen_code__block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB { int (*fp)( struct _fx_LN15C_form__cstmt_t_data_t*, int_, struct _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t_data_t*, @@ -1949,11 +1909,11 @@ typedef struct _fx_FPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__k struct _fx_rrNt6option1N14C_form__cexp_t_data_t*, struct _fx_rLN15C_form__cstmt_t_data_t*, struct _fx_R9Ast__id_t*, struct _fx_rLN15C_form__cstmt_t_data_t*, struct _fx_rNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t_data_t*, bool, struct _fx_R10Ast__loc_t*, int_, struct _fx_N14C_form__cexp_t_data_t*, struct _fx_LN12Ast__scope_t_data_t*, - struct _fx_rLN15C_form__cstmt_t_data_t*, int_, bool, struct _fx_N14C_form__cexp_t_data_t*, int_, + struct _fx_rLN15C_form__cstmt_t_data_t*, struct _fx_ri_data_t*, bool, struct _fx_N14C_form__cexp_t_data_t*, int_, struct _fx_N14C_form__cexp_t_data_t*, bool, struct _fx_ri_data_t*, struct _fx_rLN15C_form__cstmt_t_data_t*, struct _fx_Nt10Hashset__t1R9Ast__id_t_data_t*, bool, struct _fx_Ta2LN15C_form__cstmt_t*, void*); fx_fcv_t* fcv; -} _fx_FPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrR23C_gen_code__block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB; +} _fx_FPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrR23C_gen_code__block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB; typedef struct _fx_T3SSR10Ast__loc_t { fx_str_t t0; @@ -2012,11 +1972,6 @@ typedef struct _fx_T3iLN14C_form__cexp_tLN15C_form__cstmt_t { struct _fx_LN15C_form__cstmt_t_data_t* t2; } _fx_T3iLN14C_form__cexp_tLN15C_form__cstmt_t; -typedef struct _fx_T2iLN14C_form__cexp_t { - int_ t0; - struct _fx_LN14C_form__cexp_t_data_t* t1; -} _fx_T2iLN14C_form__cexp_t; - typedef struct _fx_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t { bool t0; struct _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t_data_t* t1; @@ -2024,11 +1979,6 @@ typedef struct _fx_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C struct _fx_LN15C_form__cstmt_t_data_t* t3; } _fx_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t; -typedef struct _fx_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t { - struct _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t_data_t* t0; - struct _fx_LN15C_form__cstmt_t_data_t* t1; -} _fx_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t; - typedef struct _fx_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tTa2LN15C_form__cstmt_t { bool t0; struct _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t_data_t* t1; @@ -2054,11 +2004,6 @@ typedef struct _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_t struct _fx_T4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t hd; } _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t_data_t, *_fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t; -typedef struct _fx_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t { - struct _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t_data_t* t0; - struct _fx_LN15C_form__cstmt_t_data_t* t1; -} _fx_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t; - typedef struct { int_ rc; int_ data; @@ -6086,6 +6031,27 @@ static int _fx_cons_LLN15C_form__cstmt_t( FX_MAKE_LIST_IMPL(_fx_LLN15C_form__cstmt_t, FX_COPY_PTR); } +static void _fx_free_Ta2LN15C_form__cstmt_t(struct _fx_Ta2LN15C_form__cstmt_t* dst) +{ + _fx_free_LN15C_form__cstmt_t(&dst->t0); + _fx_free_LN15C_form__cstmt_t(&dst->t1); +} + +static void _fx_copy_Ta2LN15C_form__cstmt_t(struct _fx_Ta2LN15C_form__cstmt_t* src, struct _fx_Ta2LN15C_form__cstmt_t* dst) +{ + FX_COPY_PTR(src->t0, &dst->t0); + FX_COPY_PTR(src->t1, &dst->t1); +} + +static void _fx_make_Ta2LN15C_form__cstmt_t( + struct _fx_LN15C_form__cstmt_t_data_t* t0, + struct _fx_LN15C_form__cstmt_t_data_t* t1, + struct _fx_Ta2LN15C_form__cstmt_t* fx_result) +{ + FX_COPY_PTR(t0, &fx_result->t0); + FX_COPY_PTR(t1, &fx_result->t1); +} + static void _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t( struct _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t* dst) { @@ -6216,31 +6182,6 @@ static int _fx_make_rNt10Hashmap__t2R9Ast__id_ti( FX_MAKE_REF_IMPL(_fx_rNt10Hashmap__t2R9Ast__id_ti, FX_COPY_PTR); } -static void _fx_free_Ta3LS(struct _fx_Ta3LS* dst) -{ - _fx_free_LS(&dst->t0); - _fx_free_LS(&dst->t1); - _fx_free_LS(&dst->t2); -} - -static void _fx_copy_Ta3LS(struct _fx_Ta3LS* src, struct _fx_Ta3LS* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); -} - -static void _fx_make_Ta3LS( - struct _fx_LS_data_t* t0, - struct _fx_LS_data_t* t1, - struct _fx_LS_data_t* t2, - struct _fx_Ta3LS* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); -} - static void _fx_free_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti( struct _fx_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti* dst) { @@ -6413,27 +6354,6 @@ static int _fx_cons_LR17C_form__cmodule_t( FX_MAKE_LIST_IMPL(_fx_LR17C_form__cmodule_t, _fx_copy_R17C_form__cmodule_t); } -static void _fx_free_Ta2LN15C_form__cstmt_t(struct _fx_Ta2LN15C_form__cstmt_t* dst) -{ - _fx_free_LN15C_form__cstmt_t(&dst->t0); - _fx_free_LN15C_form__cstmt_t(&dst->t1); -} - -static void _fx_copy_Ta2LN15C_form__cstmt_t(struct _fx_Ta2LN15C_form__cstmt_t* src, struct _fx_Ta2LN15C_form__cstmt_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_Ta2LN15C_form__cstmt_t( - struct _fx_LN15C_form__cstmt_t_data_t* t0, - struct _fx_LN15C_form__cstmt_t_data_t* t1, - struct _fx_Ta2LN15C_form__cstmt_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_rNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t( struct _fx_rNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t_data_t** dst) { @@ -6667,6 +6587,36 @@ static void _fx_make_T2LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t( FX_COPY_PTR(t1, &fx_result->t1); } +static void _fx_free_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t( + struct _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t* dst) +{ + _fx_free_N14C_form__cexp_t(&dst->t2); + _fx_free_LN15C_form__cstmt_t(&dst->t3); +} + +static void _fx_copy_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t( + struct _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t* src, + struct _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t* dst) +{ + dst->t0 = src->t0; + dst->t1 = src->t1; + FX_COPY_PTR(src->t2, &dst->t2); + FX_COPY_PTR(src->t3, &dst->t3); +} + +static void _fx_make_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t( + struct _fx_N17C_form__cbinary_t* t0, + struct _fx_N17C_form__cbinary_t* t1, + struct _fx_N14C_form__cexp_t_data_t* t2, + struct _fx_LN15C_form__cstmt_t_data_t* t3, + struct _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t* fx_result) +{ + fx_result->t0 = *t0; + fx_result->t1 = *t1; + FX_COPY_PTR(t2, &fx_result->t2); + FX_COPY_PTR(t3, &fx_result->t3); +} + static void _fx_free_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( struct _fx_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t* @@ -6730,34 +6680,25 @@ static void FX_COPY_PTR(t9, &fx_result->t9); } -static void _fx_free_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t* dst) +static void _fx_free_Ta2LN14C_form__cexp_t(struct _fx_Ta2LN14C_form__cexp_t* dst) { - _fx_free_N14C_form__cexp_t(&dst->t2); - _fx_free_LN15C_form__cstmt_t(&dst->t3); + _fx_free_LN14C_form__cexp_t(&dst->t0); + _fx_free_LN14C_form__cexp_t(&dst->t1); } -static void _fx_copy_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t* src, - struct _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t* dst) +static void _fx_copy_Ta2LN14C_form__cexp_t(struct _fx_Ta2LN14C_form__cexp_t* src, struct _fx_Ta2LN14C_form__cexp_t* dst) { - dst->t0 = src->t0; - dst->t1 = src->t1; - FX_COPY_PTR(src->t2, &dst->t2); - FX_COPY_PTR(src->t3, &dst->t3); + FX_COPY_PTR(src->t0, &dst->t0); + FX_COPY_PTR(src->t1, &dst->t1); } -static void _fx_make_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_N17C_form__cbinary_t* t0, - struct _fx_N17C_form__cbinary_t* t1, - struct _fx_N14C_form__cexp_t_data_t* t2, - struct _fx_LN15C_form__cstmt_t_data_t* t3, - struct _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t* fx_result) +static void _fx_make_Ta2LN14C_form__cexp_t( + struct _fx_LN14C_form__cexp_t_data_t* t0, + struct _fx_LN14C_form__cexp_t_data_t* t1, + struct _fx_Ta2LN14C_form__cexp_t* fx_result) { - fx_result->t0 = *t0; - fx_result->t1 = *t1; - FX_COPY_PTR(t2, &fx_result->t2); - FX_COPY_PTR(t3, &fx_result->t3); + FX_COPY_PTR(t0, &fx_result->t0); + FX_COPY_PTR(t1, &fx_result->t1); } static void _fx_free_T6BN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( @@ -6835,34 +6776,6 @@ static void _fx_make_T5N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14 FX_COPY_PTR(t4, &fx_result->t4); } -static void _fx_free_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* dst) -{ - _fx_free_LN14C_form__cexp_t(&dst->t0); - _fx_free_LN14C_form__cexp_t(&dst->t1); - _fx_free_LN15C_form__cstmt_t(&dst->t2); -} - -static void _fx_copy_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* src, - struct _fx_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); -} - -static void _fx_make_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_LN14C_form__cexp_t_data_t* t0, - struct _fx_LN14C_form__cexp_t_data_t* t1, - struct _fx_LN15C_form__cstmt_t_data_t* t2, - struct _fx_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); -} - static void _fx_free_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( struct _fx_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* dst) { @@ -6895,29 +6808,6 @@ static void _fx_make_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN1 FX_COPY_PTR(t3, &fx_result->t3); } -static void _fx_free_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - struct _fx_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t* dst) -{ - _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&dst->t1); -} - -static void _fx_copy_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - struct _fx_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t* src, - struct _fx_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t* dst) -{ - dst->t0 = src->t0; - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - int_ t0, - struct _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t_data_t* t1, - struct _fx_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t* fx_result) -{ - fx_result->t0 = t0; - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_T2N14C_form__cexp_tLN14C_form__cexp_t(struct _fx_T2N14C_form__cexp_tLN14C_form__cexp_t* dst) { _fx_free_N14C_form__cexp_t(&dst->t0); @@ -6941,60 +6831,6 @@ static void _fx_make_T2N14C_form__cexp_tLN14C_form__cexp_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T5BBBBLLN15C_form__cstmt_t(struct _fx_T5BBBBLLN15C_form__cstmt_t* dst) -{ - _fx_free_LLN15C_form__cstmt_t(&dst->t4); -} - -static void _fx_copy_T5BBBBLLN15C_form__cstmt_t( - struct _fx_T5BBBBLLN15C_form__cstmt_t* src, - struct _fx_T5BBBBLLN15C_form__cstmt_t* dst) -{ - dst->t0 = src->t0; - dst->t1 = src->t1; - dst->t2 = src->t2; - dst->t3 = src->t3; - FX_COPY_PTR(src->t4, &dst->t4); -} - -static void _fx_make_T5BBBBLLN15C_form__cstmt_t( - bool t0, - bool t1, - bool t2, - bool t3, - struct _fx_LLN15C_form__cstmt_t_data_t* t4, - struct _fx_T5BBBBLLN15C_form__cstmt_t* fx_result) -{ - fx_result->t0 = t0; - fx_result->t1 = t1; - fx_result->t2 = t2; - fx_result->t3 = t3; - FX_COPY_PTR(t4, &fx_result->t4); -} - -static void _fx_free_T2LN14C_form__cexp_tLLN15C_form__cstmt_t(struct _fx_T2LN14C_form__cexp_tLLN15C_form__cstmt_t* dst) -{ - _fx_free_LN14C_form__cexp_t(&dst->t0); - _fx_free_LLN15C_form__cstmt_t(&dst->t1); -} - -static void _fx_copy_T2LN14C_form__cexp_tLLN15C_form__cstmt_t( - struct _fx_T2LN14C_form__cexp_tLLN15C_form__cstmt_t* src, - struct _fx_T2LN14C_form__cexp_tLLN15C_form__cstmt_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2LN14C_form__cexp_tLLN15C_form__cstmt_t( - struct _fx_LN14C_form__cexp_t_data_t* t0, - struct _fx_LLN15C_form__cstmt_t_data_t* t1, - struct _fx_T2LN14C_form__cexp_tLLN15C_form__cstmt_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_T3LN15C_form__cstmt_tBB(struct _fx_T3LN15C_form__cstmt_tBB* dst) { _fx_free_LN15C_form__cstmt_t(&dst->t0); @@ -7038,9 +6874,29 @@ static void _fx_make_T2BLN15C_form__cstmt_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T3BN14C_form__cexp_tLN15C_form__cstmt_t(struct _fx_T3BN14C_form__cexp_tLN15C_form__cstmt_t* dst) +static void _fx_free_T2BLLN15C_form__cstmt_t(struct _fx_T2BLLN15C_form__cstmt_t* dst) { - _fx_free_N14C_form__cexp_t(&dst->t1); + _fx_free_LLN15C_form__cstmt_t(&dst->t1); +} + +static void _fx_copy_T2BLLN15C_form__cstmt_t(struct _fx_T2BLLN15C_form__cstmt_t* src, struct _fx_T2BLLN15C_form__cstmt_t* dst) +{ + dst->t0 = src->t0; + FX_COPY_PTR(src->t1, &dst->t1); +} + +static void _fx_make_T2BLLN15C_form__cstmt_t( + bool t0, + struct _fx_LLN15C_form__cstmt_t_data_t* t1, + struct _fx_T2BLLN15C_form__cstmt_t* fx_result) +{ + fx_result->t0 = t0; + FX_COPY_PTR(t1, &fx_result->t1); +} + +static void _fx_free_T3BN14C_form__cexp_tLN15C_form__cstmt_t(struct _fx_T3BN14C_form__cexp_tLN15C_form__cstmt_t* dst) +{ + _fx_free_N14C_form__cexp_t(&dst->t1); _fx_free_LN15C_form__cstmt_t(&dst->t2); } @@ -7247,41 +7103,6 @@ static void _fx_make_T2LN14K_form__atom_tS( fx_copy_str(t1, &fx_result->t1); } -static void _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* dst) -{ - _fx_free_LN14C_form__cexp_t(&dst->t1); - _fx_free_LN14C_form__cexp_t(&dst->t2); - _fx_free_LN14C_form__cexp_t(&dst->t3); - _fx_free_LN15C_form__cstmt_t(&dst->t4); -} - -static void _fx_copy_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* src, - struct _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* dst) -{ - dst->t0 = src->t0; - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); - FX_COPY_PTR(src->t3, &dst->t3); - FX_COPY_PTR(src->t4, &dst->t4); -} - -static void _fx_make_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( - int_ t0, - struct _fx_LN14C_form__cexp_t_data_t* t1, - struct _fx_LN14C_form__cexp_t_data_t* t2, - struct _fx_LN14C_form__cexp_t_data_t* t3, - struct _fx_LN15C_form__cstmt_t_data_t* t4, - struct _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* fx_result) -{ - fx_result->t0 = t0; - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); - FX_COPY_PTR(t3, &fx_result->t3); - FX_COPY_PTR(t4, &fx_result->t4); -} - static void _fx_free_T2iN14C_form__cexp_t(struct _fx_T2iN14C_form__cexp_t* dst) { _fx_free_N14C_form__cexp_t(&dst->t1); @@ -7350,34 +7171,6 @@ static void _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t( _fx_copy_T2N14C_form__cexp_tLN15C_form__cstmt_t(t1, &fx_result->t1); } -static void _fx_free_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* dst) -{ - _fx_free_Nt6option1N14C_form__cexp_t(&dst->t0); - _fx_free_LN14C_form__cexp_t(&dst->t1); - _fx_free_LN15C_form__cstmt_t(&dst->t2); -} - -static void _fx_copy_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* src, - struct _fx_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* dst) -{ - _fx_copy_Nt6option1N14C_form__cexp_t(&src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); -} - -static void _fx_make_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_Nt6option1N14C_form__cexp_t* t0, - struct _fx_LN14C_form__cexp_t_data_t* t1, - struct _fx_LN15C_form__cstmt_t_data_t* t2, - struct _fx_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t* fx_result) -{ - _fx_copy_Nt6option1N14C_form__cexp_t(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); -} - static void _fx_free_Ta2N14K_form__kexp_t(struct _fx_Ta2N14K_form__kexp_t* dst) { _fx_free_N14K_form__kexp_t(&dst->t0); @@ -7431,41 +7224,6 @@ static void _fx_make_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15 FX_COPY_PTR(t3, &fx_result->t3); } -static void - _fx_free_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - struct _fx_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t* - dst) -{ - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&dst->t0); - _fx_free_LN15C_form__cstmt_t(&dst->t1); - _fx_free_LN15C_form__cstmt_t(&dst->t2); -} - -static void - _fx_copy_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - struct _fx_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t* - src, - struct _fx_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t* - dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); -} - -static void - _fx_make_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - struct _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t_data_t* t0, - struct _fx_LN15C_form__cstmt_t_data_t* t1, - struct _fx_LN15C_form__cstmt_t_data_t* t2, - struct _fx_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t* - fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); -} - static void _fx_free_T3SSR10Ast__loc_t(struct _fx_T3SSR10Ast__loc_t* dst) { fx_free_str(&dst->t0); @@ -7695,26 +7453,6 @@ static void _fx_make_T3iLN14C_form__cexp_tLN15C_form__cstmt_t( FX_COPY_PTR(t2, &fx_result->t2); } -static void _fx_free_T2iLN14C_form__cexp_t(struct _fx_T2iLN14C_form__cexp_t* dst) -{ - _fx_free_LN14C_form__cexp_t(&dst->t1); -} - -static void _fx_copy_T2iLN14C_form__cexp_t(struct _fx_T2iLN14C_form__cexp_t* src, struct _fx_T2iLN14C_form__cexp_t* dst) -{ - dst->t0 = src->t0; - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2iLN14C_form__cexp_t( - int_ t0, - struct _fx_LN14C_form__cexp_t_data_t* t1, - struct _fx_T2iLN14C_form__cexp_t* fx_result) -{ - fx_result->t0 = t0; - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( struct _fx_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t* @@ -7753,37 +7491,6 @@ static void FX_COPY_PTR(t3, &fx_result->t3); } -static void - _fx_free_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t* - dst) -{ - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&dst->t0); - _fx_free_LN15C_form__cstmt_t(&dst->t1); -} - -static void - _fx_copy_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t* - src, - struct _fx_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t* - dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void - _fx_make_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - struct _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t_data_t* t0, - struct _fx_LN15C_form__cstmt_t_data_t* t1, - struct _fx_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t* - fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tTa2LN15C_form__cstmt_t( struct _fx_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tTa2LN15C_form__cstmt_t* @@ -7894,35 +7601,13 @@ static int _fx_cons_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_ _fx_copy_T4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t); } -static void _fx_free_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - struct _fx_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t* dst) -{ - _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&dst->t0); - _fx_free_LN15C_form__cstmt_t(&dst->t1); -} - -static void _fx_copy_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - struct _fx_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t* src, - struct _fx_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - struct _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t_data_t* t0, - struct _fx_LN15C_form__cstmt_t_data_t* t1, - struct _fx_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - _fx_Nt6option1rR23C_gen_code__block_ctx_t _fx_g16C_gen_code__None = { 1 }; _fx_Nt6option1N14C_form__ctyp_t _fx_g18C_gen_code__None1_ = { 1 }; _fx_Nt6option1N14C_form__cexp_t _fx_g18C_gen_code__None2_ = { 1 }; -_fx_Nt6option1R9Ast__id_t _fx_g18C_gen_code__None3_ = { 1 }; -_fx_Nt6option1i _fx_g18C_gen_code__None4_ = { 1 }; +_fx_Nt6option1FPv3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t _fx_g18C_gen_code__None3_ = 0; +_fx_Nt6option1FPv3N14K_form__ktyp_tR10Ast__loc_tR22K_form__k_fold_callb_t _fx_g18C_gen_code__None4_ = 0; +_fx_Nt6option1R9Ast__id_t _fx_g18C_gen_code__None5_ = { 1 }; +_fx_Nt6option1i _fx_g18C_gen_code__None6_ = { 1 }; _fx_N12Ast__cmpop_t _fx_g17C_gen_code__CmpEQ = { 1 }; _fx_N12Ast__cmpop_t _fx_g17C_gen_code__CmpNE = { 2 }; _fx_N12Ast__cmpop_t _fx_g17C_gen_code__CmpLT = { 3 }; @@ -8019,6 +7704,26 @@ FX_EXTERN_C int _fx_F6assertv1B(bool, void*); FX_EXTERN_C int _fx_M7HashsetFM9makeindexA1i1i(int_, fx_arr_t*, void*); +FX_EXTERN_C int _fx_M10C_gen_codeFM7make_fpFPv2N14K_form__kexp_tR22K_form__k_fold_callb_t1rB( + struct _fx_rB_data_t*, + struct _fx_FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t*); + +FX_EXTERN_C int _fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t( + struct _fx_R9Ast__id_t*, + struct _fx_R10Ast__loc_t*, + bool*, + void*); + +FX_EXTERN_C int _fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t( + struct _fx_N14K_form__kexp_t_data_t*, + struct _fx_R22K_form__k_fold_callb_t*, + void*); + +static int _fx_M10C_gen_codeFM9chk_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t( + struct _fx_N14K_form__kexp_t_data_t*, + struct _fx_R22K_form__k_fold_callb_t*, + void*); + FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g9Ast__noid) FX_EXTERN_C int _fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i( int_, @@ -8064,17 +7769,12 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM9pure_kexpB1N14K_form__kexp_t(struct _fx FX_EXTERN_C void _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(struct _fx_R9Ast__id_t*, struct _fx_N14K_form__atom_t*); -FX_EXTERN_C int _fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t( - struct _fx_N14K_form__kexp_t_data_t*, - struct _fx_R22K_form__k_fold_callb_t*, - void*); - FX_EXTERN_C int _fx_M10C_gen_codeFM7make_fpFPv3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t2R9Ast__id_trB( struct _fx_R9Ast__id_t*, struct _fx_rB_data_t*, struct _fx_FPv3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t*); -FX_EXTERN_C int _fx_M10C_gen_codeFM7make_fpFPv2N14K_form__kexp_tR22K_form__k_fold_callb_t1rB( +FX_EXTERN_C int _fx_M10C_gen_codeFM9make_fp1_FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t1rB( struct _fx_rB_data_t*, struct _fx_FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t*); @@ -8829,13 +8529,13 @@ static int _fx_M10C_gen_codeFM16check_range_elemB3N14K_form__atom_tNt10Hashset__ void*); FX_EXTERN_C int - _fx_M10C_gen_codeFM7make_fpFPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB5rLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( + _fx_M10C_gen_codeFM7make_fpFPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB5rLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( struct _fx_rLrR23C_gen_code__block_ctx_t_data_t*, struct _fx_rNt10Hashset__t1R9Ast__id_t_data_t*, struct _fx_rLN15C_form__cstmt_t_data_t*, struct _fx_rNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t_data_t*, int_, - struct _fx_FPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrR23C_gen_code__block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB*); + struct _fx_FPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrR23C_gen_code__block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB*); FX_EXTERN_C int _fx_M6C_formFM8CStmtForN15C_form__cstmt_t6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t( @@ -8913,14 +8613,8 @@ static int struct _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t*, void*); -FX_EXTERN_C int _fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t( - struct _fx_R9Ast__id_t*, - struct _fx_R10Ast__loc_t*, - bool*, - void*); - static int - _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB( + _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB( struct _fx_LN15C_form__cstmt_t_data_t*, int_, struct _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t_data_t*, @@ -8945,7 +8639,7 @@ static int struct _fx_N14C_form__cexp_t_data_t*, struct _fx_LN12Ast__scope_t_data_t*, struct _fx_rLN15C_form__cstmt_t_data_t*, - int_, + struct _fx_ri_data_t*, bool, struct _fx_N14C_form__cexp_t_data_t*, int_, @@ -8981,6 +8675,19 @@ FX_EXTERN_C int struct _fx_LN15C_form__cstmt_t_data_t**, void*); +typedef struct { + int_ rc; + fx_free_t free_f; + struct _fx_rB_data_t* t0; +} _fx_M10C_gen_codeFM9chk_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t; + +FX_EXTERN_C void _fx_free_M10C_gen_codeFM9chk_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t( + _fx_M10C_gen_codeFM9chk_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t* dst) +{ + FX_FREE_REF_SIMPLE(&dst->t0); + fx_free(dst); +} + typedef struct { int_ rc; fx_free_t free_f; @@ -9178,11 +8885,11 @@ typedef struct { struct _fx_rLN15C_form__cstmt_t_data_t* t2; struct _fx_rNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t_data_t* t3; int_ t4; -} _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB_cldata_t; +} _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB_cldata_t; FX_EXTERN_C void - _fx_free_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB( - _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB_cldata_t* + _fx_free_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB( + _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB_cldata_t* dst) { _fx_free_rLrR23C_gen_code__block_ctx_t(&dst->t0); @@ -9743,32 +9450,18 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM6__eq__B2T2R9Ast__id_tN14C_form__ctyp_tT2R9As _fx_N14C_form__ctyp_t bj_0 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); - bool __fold_result___0 = true; + bool f_0 = true; _fx_R9Ast__id_t aj_1 = a_0->t0; _fx_R9Ast__id_t bj_1 = b_0->t0; bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&aj_1, &bj_1, &res_0, 0), _fx_cleanup); - bool t_0; - if (res_0) { - t_0 = __fold_result___0; - } - else { - t_0 = false; - } - __fold_result___0 = t_0; + f_0 = (bool)(f_0 & res_0); FX_COPY_PTR(a_0->t1, &aj_0); FX_COPY_PTR(b_0->t1, &bj_0); bool v_0; FX_CALL(_fx_M10C_gen_codeFM15__eq_variants__B2N14C_form__ctyp_tN14C_form__ctyp_t(aj_0, bj_0, &v_0, 0), _fx_cleanup); - bool t_1; - if (v_0) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - *fx_result = __fold_result___0; + f_0 = (bool)(f_0 & v_0); + *fx_result = f_0; _fx_cleanup: ; if (aj_0) { @@ -9787,48 +9480,13 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM6__eq__B2R10Ast__loc_tR10Ast__loc_t( void* fx_fv) { int fx_status = 0; - bool __fold_result___0 = true; - bool t_0; - if (a_0->m_idx == b_0->m_idx) { - t_0 = __fold_result___0; - } - else { - t_0 = false; - } - __fold_result___0 = t_0; - bool t_1; - if (a_0->line0 == b_0->line0) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (a_0->col0 == b_0->col0) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (a_0->line1 == b_0->line1) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - bool t_4; - if (a_0->col1 == b_0->col1) { - t_4 = __fold_result___0; - } - else { - t_4 = false; - } - __fold_result___0 = t_4; - *fx_result = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (a_0->m_idx == b_0->m_idx)); + f_0 = (bool)(f_0 & (a_0->line0 == b_0->line0)); + f_0 = (bool)(f_0 & (a_0->col0 == b_0->col0)); + f_0 = (bool)(f_0 & (a_0->line1 == b_0->line1)); + f_0 = (bool)(f_0 & (a_0->col1 == b_0->col1)); + *fx_result = f_0; return fx_status; } @@ -10603,30 +10261,29 @@ FX_EXTERN_C int struct _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t_data_t** fx_result, void* fx_fv) { - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t __fold_result___0 = 0; + _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t res_0 = 0; int fx_status = 0; _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t r_0 = 0; + _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_0 = 0; _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); FX_CALL( - _fx_cons_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(a_0, r_0, false, - &r_0), _fx_catch_0); - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + _fx_cons_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(a_0, res_0, true, + &v_0), _fx_catch_0); + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&r_0); + if (v_0) { + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&res_0); } return fx_status; } @@ -10637,32 +10294,29 @@ FX_EXTERN_C int struct _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t_data_t** fx_result, void* fx_fv) { - _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t __fold_result___0 = 0; + _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t res_0 = 0; int fx_status = 0; _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t r_0 = 0; + _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_0 = 0; _fx_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); FX_CALL( - _fx_cons_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(a_0, r_0, false, - &r_0), _fx_catch_0); - _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - &__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + _fx_cons_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(a_0, res_0, + true, &v_0), _fx_catch_0); + _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&r_0); + if (v_0) { + _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - &__fold_result___0); + if (res_0) { + _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&res_0); } return fx_status; } @@ -10672,28 +10326,27 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t( struct _fx_LN14C_form__cexp_t_data_t** fx_result, void* fx_fv) { - _fx_LN14C_form__cexp_t __fold_result___0 = 0; + _fx_LN14C_form__cexp_t res_0 = 0; int fx_status = 0; _fx_LN14C_form__cexp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14C_form__cexp_t r_0 = 0; + _fx_LN14C_form__cexp_t v_0 = 0; _fx_N14C_form__cexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14C_form__cexp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14C_form__cexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14C_form__cexp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN14C_form__cexp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14C_form__cexp_t(&r_0); + if (v_0) { + _fx_free_LN14C_form__cexp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN14C_form__cexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14C_form__cexp_t(&res_0); } return fx_status; } @@ -10703,28 +10356,27 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t( struct _fx_LN15C_form__cstmt_t_data_t** fx_result, void* fx_fv) { - _fx_LN15C_form__cstmt_t __fold_result___0 = 0; + _fx_LN15C_form__cstmt_t res_0 = 0; int fx_status = 0; _fx_LN15C_form__cstmt_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN15C_form__cstmt_t r_0 = 0; + _fx_LN15C_form__cstmt_t v_0 = 0; _fx_N15C_form__cstmt_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN15C_form__cstmt_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN15C_form__cstmt_t(&r_0); + if (v_0) { + _fx_free_LN15C_form__cstmt_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); + if (res_0) { + _fx_free_LN15C_form__cstmt_t(&res_0); } return fx_status; } @@ -10759,79 +10411,76 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM6concatLN15C_form__cstmt_t1LLN15C_form__cstmt struct _fx_LN15C_form__cstmt_t_data_t** fx_result, void* fx_fv) { - _fx_LN15C_form__cstmt_t __fold_result___0 = 0; - _fx_LLN15C_form__cstmt_t __fold_result___1 = 0; + _fx_LN15C_form__cstmt_t s_0 = 0; + _fx_LLN15C_form__cstmt_t res_0 = 0; _fx_LLN15C_form__cstmt_t v_0 = 0; int fx_status = 0; _fx_LLN15C_form__cstmt_t lst_0 = ll_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LLN15C_form__cstmt_t r_0 = 0; + _fx_LLN15C_form__cstmt_t v_1 = 0; _fx_LN15C_form__cstmt_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LLN15C_form__cstmt_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LLN15C_form__cstmt_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LLN15C_form__cstmt_t(a_0, res_0, true, &v_1), _fx_catch_0); + _fx_free_LLN15C_form__cstmt_t(&res_0); + FX_COPY_PTR(v_1, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LLN15C_form__cstmt_t(&r_0); + if (v_1) { + _fx_free_LLN15C_form__cstmt_t(&v_1); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_0); + FX_COPY_PTR(res_0, &v_0); _fx_LLN15C_form__cstmt_t lst_1 = v_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN15C_form__cstmt_t s_0 = 0; - _fx_LN15C_form__cstmt_t v_1 = 0; + _fx_Ta2LN15C_form__cstmt_t v_2 = {0}; + _fx_LN15C_form__cstmt_t v_3 = 0; _fx_LN15C_form__cstmt_t l_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___0, &s_0); - if (l_0 == 0) { - FX_COPY_PTR(s_0, &v_1); + _fx_make_Ta2LN15C_form__cstmt_t(l_0, s_0, &v_2); + if (v_2.t0 == 0) { + FX_COPY_PTR(s_0, &v_3); } - else if (s_0 == 0) { - FX_COPY_PTR(l_0, &v_1); + else if (v_2.t1 == 0) { + FX_COPY_PTR(l_0, &v_3); } else { - _fx_LN15C_form__cstmt_t v_2 = 0; + _fx_LN15C_form__cstmt_t v_4 = 0; _fx_LN15C_form__cstmt_t lstend_0 = 0; _fx_LN15C_form__cstmt_t lst_2 = l_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_N15C_form__cstmt_t x_0 = lst_2->hd; _fx_LN15C_form__cstmt_t node_0 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_0, 0, false, &node_0), _fx_catch_1); - FX_LIST_APPEND(v_2, lstend_0, node_0); + FX_LIST_APPEND(v_4, lstend_0, node_0); _fx_catch_1: ; FX_CHECK_EXN(_fx_catch_2); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_2, s_0, &v_1, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_4, s_0, &v_3, 0); _fx_catch_2: ; - if (v_2) { - _fx_free_LN15C_form__cstmt_t(&v_2); + if (v_4) { + _fx_free_LN15C_form__cstmt_t(&v_4); } } FX_CHECK_EXN(_fx_catch_3); - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); - FX_COPY_PTR(v_1, &__fold_result___0); + _fx_free_LN15C_form__cstmt_t(&s_0); + FX_COPY_PTR(v_3, &s_0); _fx_catch_3: ; - if (v_1) { - _fx_free_LN15C_form__cstmt_t(&v_1); - } - if (s_0) { - _fx_free_LN15C_form__cstmt_t(&s_0); + if (v_3) { + _fx_free_LN15C_form__cstmt_t(&v_3); } + _fx_free_Ta2LN15C_form__cstmt_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(s_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); + if (s_0) { + _fx_free_LN15C_form__cstmt_t(&s_0); } - if (__fold_result___1) { - _fx_free_LLN15C_form__cstmt_t(&__fold_result___1); + if (res_0) { + _fx_free_LLN15C_form__cstmt_t(&res_0); } if (v_0) { _fx_free_LLN15C_form__cstmt_t(&v_0); @@ -10943,12 +10592,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -10992,9 +10642,12 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9 int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -11047,27 +10700,29 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM4growv2Nt10Hashmap__t2R9Ast__id_tN14C_form__c for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M10C_gen_codeFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_tRt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -11105,25 +10760,26 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM4growv2Nt10Hashmap__t2R9Ast__id_tii( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_2 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti v_2 = *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, ht_table_0, j_0); - int_ v_3; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti v_3 = *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, ht_table_0, j_0); + int_ v_4; FX_CALL( _fx_M10C_gen_codeFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tiRt20Hashmap__hashentry_t2R9Ast__id_ti( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -11142,14 +10798,14 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14C { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -11168,32 +10824,11 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14C bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -11229,14 +10864,14 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tiR9A { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -11254,32 +10889,11 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tiR9A bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -11318,14 +10932,14 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -11353,32 +10967,11 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -11394,14 +10987,14 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -11414,28 +11007,29 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -11446,12 +11040,13 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_COPY_PTR(self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t(hv_0, k_0, v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -11482,14 +11077,14 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i fx_arr_t v_1 = {0}; fx_exn_t v_2 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -11515,32 +11110,11 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -11556,14 +11130,14 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -11575,26 +11149,29 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_)(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_8 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -11602,11 +11179,14 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti v_6 = { hv_0, *k_0, self_0->u.t.t0.data }; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti v_9 = { hv_0, *k_0, self_0->u.t.t0.data }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, self_0->u.t.t5, found_0) = v_6; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -11635,10 +11215,11 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM3addv3Nt10Hashmap__t2R9Ast__id_tN14C_form__ce _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tR9Ast__id_t(self_0, k_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, idx_0), _fx_cleanup); - _fx_N14C_form__cexp_t* v_0 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, self_0->u.t.t5, idx_0)->data; - _fx_free_N14C_form__cexp_t(v_0); - FX_COPY_PTR(d_0, v_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t* v_0 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, self_0->u.t.t5, idx_0); + _fx_N14C_form__cexp_t* v_1 = &v_0->data; + _fx_free_N14C_form__cexp_t(v_1); + FX_COPY_PTR(d_0, v_1); _fx_cleanup: ; return fx_status; @@ -11666,9 +11247,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -11717,26 +11301,28 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M10C_gen_codeFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -11773,32 +11359,11 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9As bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -11832,17 +11397,17 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t( void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( - _fx_M10C_gen_codeFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_cleanup); + _fx_M10C_gen_codeFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, &v_0, + 0), _fx_cleanup); *fx_result = v_0.t1 >= 0; _fx_cleanup: ; @@ -11884,32 +11449,11 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -11925,14 +11469,14 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -11944,27 +11488,29 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -11972,11 +11518,14 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -11998,16 +11547,15 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t( void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - FX_CALL( - _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, __fold_result___0 & 9223372036854775807ULL, - 0), _fx_cleanup); + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + FX_CALL(_fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, 0), + _fx_cleanup); _fx_cleanup: ; return fx_status; @@ -12024,13 +11572,16 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM5unionv2Nt10Hashset__t1R9Ast__id_tNt10Hashset int_ v_0 = b_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_0; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_1 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_1->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_1 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_3 = v_2->key; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - FX_CALL( - _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, &v_1, - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv, 0), _fx_catch_0); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_4 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + FX_CALL(_fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, &v_3, v_4->hv, 0), _fx_catch_0); } _fx_catch_0: ; @@ -12096,7 +11647,7 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM8find_optNt6option1R9Ast__id_t2Rt6Map__t2R9As _fx_catch_0: ; } else { - result_0 = _fx_g18C_gen_code__None3_; FX_BREAK(_fx_catch_1); _fx_catch_1: ; + result_0 = _fx_g18C_gen_code__None5_; FX_BREAK(_fx_catch_1); _fx_catch_1: ; } FX_CHECK_EXN(_fx_catch_2); @@ -12130,6 +11681,122 @@ FX_EXTERN_C void _fx_M10C_gen_codeFM13BlockKind_FunN24C_gen_code__block_kind_t1R fx_result->u.BlockKind_Fun = *arg0; } +FX_EXTERN_C int _fx_M10C_gen_codeFM20movement_unsafe_readB1N14K_form__kexp_t( + struct _fx_N14K_form__kexp_t_data_t* e0_0, + bool* fx_result, + void* fx_fv) +{ + _fx_rB unsafe_ref_0 = 0; + _fx_FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t chk_kexp__0 = {0}; + _fx_Nt6option1FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t v_0 = 0; + _fx_R22K_form__k_fold_callb_t callb_0 = {0}; + int fx_status = 0; + FX_CALL(_fx_make_rB(false, &unsafe_ref_0), _fx_cleanup); + bool* unsafe_0 = &unsafe_ref_0->data; + _fx_M10C_gen_codeFM7make_fpFPv2N14K_form__kexp_tR22K_form__k_fold_callb_t1rB(unsafe_ref_0, &chk_kexp__0); + FX_CALL( + _fx_M10C_gen_codeFM4SomeNt6option1FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t1FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t( + &chk_kexp__0, &v_0), _fx_cleanup); + _fx_make_R22K_form__k_fold_callb_t(_fx_g18C_gen_code__None4_, v_0, _fx_g18C_gen_code__None3_, &callb_0); + if (!*unsafe_0) { + int tag_0 = FX_REC_VARIANT_TAG(e0_0); + if (tag_0 == 19) { + *unsafe_0 = true; goto _fx_endmatch_0; + } + if (tag_0 == 7) { + if (e0_0->u.KExpUnary.t0.tag == 7) { + *unsafe_0 = true; goto _fx_endmatch_0; + } + } + if (tag_0 == 20) { + _fx_T3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t* vcase_0 = &e0_0->u.KExpMem; + bool v_1; + FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(&vcase_0->t0, &vcase_0->t2.t1, &v_1, 0), _fx_catch_0); + if (v_1) { + *unsafe_0 = true; + } + + _fx_catch_0: ; + goto _fx_endmatch_0; + } + if (tag_0 == 26) { + *unsafe_0 = true; goto _fx_endmatch_0; + } + FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(e0_0, &callb_0, 0), _fx_catch_1); + + _fx_catch_1: ; + + _fx_endmatch_0: ; + FX_CHECK_EXN(_fx_cleanup); + } + *fx_result = *unsafe_0; + +_fx_cleanup: ; + FX_FREE_REF_SIMPLE(&unsafe_ref_0); + FX_FREE_FP(&chk_kexp__0); + if (v_0) { + _fx_free_Nt6option1FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t(&v_0); + } + _fx_free_R22K_form__k_fold_callb_t(&callb_0); + return fx_status; +} + +static int _fx_M10C_gen_codeFM9chk_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t( + struct _fx_N14K_form__kexp_t_data_t* e_0, + struct _fx_R22K_form__k_fold_callb_t* callb_0, + void* fx_fv) +{ + int fx_status = 0; + _fx_M10C_gen_codeFM9chk_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t* cv_0 = + (_fx_M10C_gen_codeFM9chk_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t*)fx_fv; + bool* unsafe_0 = &cv_0->t0->data; + if (!*unsafe_0) { + int tag_0 = FX_REC_VARIANT_TAG(e_0); + if (tag_0 == 19) { + *unsafe_0 = true; goto _fx_endmatch_0; + } + if (tag_0 == 7) { + if (e_0->u.KExpUnary.t0.tag == 7) { + *unsafe_0 = true; goto _fx_endmatch_0; + } + } + if (tag_0 == 20) { + _fx_T3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t* vcase_0 = &e_0->u.KExpMem; + bool v_0; + FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(&vcase_0->t0, &vcase_0->t2.t1, &v_0, 0), _fx_catch_0); + if (v_0) { + *unsafe_0 = true; + } + + _fx_catch_0: ; + goto _fx_endmatch_0; + } + if (tag_0 == 26) { + *unsafe_0 = true; goto _fx_endmatch_0; + } + FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(e_0, callb_0, 0), _fx_catch_1); + + _fx_catch_1: ; + + _fx_endmatch_0: ; + FX_CHECK_EXN(_fx_cleanup); + } + +_fx_cleanup: ; + return fx_status; +} + +FX_EXTERN_C int _fx_M10C_gen_codeFM7make_fpFPv2N14K_form__kexp_tR22K_form__k_fold_callb_t1rB( + struct _fx_rB_data_t* arg0, + struct _fx_FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t* fx_result) +{ + FX_MAKE_FP_IMPL_START(_fx_M10C_gen_codeFM9chk_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t, + _fx_free_M10C_gen_codeFM9chk_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t, + _fx_M10C_gen_codeFM9chk_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t); + FX_COPY_PTR(arg0, &fcv->t0); + return 0; +} + FX_EXTERN_C int _fx_M10C_gen_codeFM10count_ktypv3N14K_form__ktyp_tR10Ast__loc_tR22K_form__k_fold_callb_t( struct _fx_N14K_form__ktyp_t_data_t* t_0, struct _fx_R10Ast__loc_t* loc_0, @@ -12215,11 +11882,14 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM20find_single_use_valsNt10Hashset__t1R9Ast__i int_ v_5 = (*decl_const_vals_0)->u.t.t2; for (int_ j_0 = 0; j_0 < v_5; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_1); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_6 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_6->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_1); - _fx_R9Ast__id_t v_6 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_7 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_8 = v_7->key; FX_CALL( - _fx_M10C_gen_codeFM10__lambda__v3R9Ast__id_trNt10Hashmap__t2R9Ast__id_tiNt10Hashset__t1R9Ast__id_t(&v_6, + _fx_M10C_gen_codeFM10__lambda__v3R9Ast__id_trNt10Hashmap__t2R9Ast__id_tiNt10Hashset__t1R9Ast__id_t(&v_8, count_map_ref_0, u1_vals_0, 0), _fx_catch_1); } @@ -12273,27 +11943,31 @@ static int _fx_M10C_gen_codeFM10count_atomv3N14K_form__atom_tR10Ast__loc_tR22K_f _fx_M10C_gen_codeFM10count_atomv3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t_cldata_t* cv_0 = (_fx_M10C_gen_codeFM10count_atomv3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t_cldata_t*)fx_fv; _fx_Nt10Hashmap__t2R9Ast__id_ti* count_map_0 = &cv_0->t0->data; + _fx_Nt10Hashset__t1R9Ast__id_t* decl_const_vals_0 = &cv_0->t1->data; if (a_0->tag == 1) { _fx_R9Ast__id_t* i_0 = &a_0->u.AtomId; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( - _fx_M10C_gen_codeFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t1->data, i_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_catch_0); + _fx_M10C_gen_codeFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*decl_const_vals_0, i_0, + h_0 & 9223372036854775807ULL, &v_0, 0), _fx_catch_0); if (v_0.t1 >= 0) { int_ idx_0; FX_CALL(_fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tiR9Ast__id_t(*count_map_0, i_0, &idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1((*count_map_0)->u.t.t5, 0, idx_0), _fx_catch_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_1 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_0); FX_CHKIDX(FX_CHKIDX1((*count_map_0)->u.t.t5, 0, idx_0), _fx_catch_0); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_0)->data = - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_0)->data + 1; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_0); + v_2->data = v_1->data + 1; } _fx_catch_0: ; @@ -12351,23 +12025,32 @@ static int _fx_M10C_gen_codeFM10count_kexpv2N14K_form__kexp_tR22K_form__k_fold_c good_temp_0 = kv_flags_0.val_flag_temp; } bool v_1; + bool t_0; if (good_temp_0) { - FX_CALL(_fx_M15K_remove_unusedFM9pure_kexpB1N14K_form__kexp_t(e1_0, &v_1, 0), _fx_catch_0); + FX_CALL(_fx_M15K_remove_unusedFM9pure_kexpB1N14K_form__kexp_t(e1_0, &t_0, 0), _fx_catch_0); + } + else { + t_0 = false; + } + if (t_0) { + bool v_2; + FX_CALL(_fx_M10C_gen_codeFM20movement_unsafe_readB1N14K_form__kexp_t(e1_0, &v_2, 0), _fx_catch_0); + v_1 = !v_2; } else { v_1 = false; } if (v_1) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*decl_const_vals_0, k_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_catch_0); + h_0 & 9223372036854775807ULL, 0), _fx_catch_0); } _fx_free_N14K_form__kexp_t(&e_1); FX_COPY_PTR(e1_0, &e_1); @@ -12379,30 +12062,33 @@ static int _fx_M10C_gen_codeFM10count_kexpv2N14K_form__kexp_tR22K_form__k_fold_c _fx_free_R17K_form__kdefval_t(&v_0); } else if (tag_0 == 12) { - _fx_N14K_form__atom_t v_2 = {0}; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&e_2->u.KExpCall.t0, &v_2); - if (v_2.tag == 1) { - _fx_R9Ast__id_t* i_0 = &v_2.u.AtomId; - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; - _fx_Ta2i v_3; + _fx_N14K_form__atom_t v_3 = {0}; + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&e_2->u.KExpCall.t0, &v_3); + if (v_3.tag == 1) { + _fx_R9Ast__id_t* i_0 = &v_3.u.AtomId; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + _fx_Ta2i v_4; FX_CALL( _fx_M10C_gen_codeFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*decl_const_vals_0, i_0, - __fold_result___1 & 9223372036854775807ULL, &v_3, 0), _fx_catch_1); - if (v_3.t1 >= 0) { + h_1 & 9223372036854775807ULL, &v_4, 0), _fx_catch_1); + if (v_4.t1 >= 0) { int_ idx_0; FX_CALL( _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tiR9Ast__id_t(*count_map_0, i_0, &idx_0, 0), _fx_catch_1); FX_CHKIDX(FX_CHKIDX1((*count_map_0)->u.t.t5, 0, idx_0), _fx_catch_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_5 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_0); FX_CHKIDX(FX_CHKIDX1((*count_map_0)->u.t.t5, 0, idx_0), _fx_catch_1); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_0)->data = - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_0)->data + 1; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_6 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_0); + v_6->data = v_5->data + 1; } _fx_catch_1: ; @@ -12412,33 +12098,36 @@ static int _fx_M10C_gen_codeFM10count_kexpv2N14K_form__kexp_tR22K_form__k_fold_c FX_BREAK(_fx_catch_2); _fx_catch_2: ; - _fx_free_N14K_form__atom_t(&v_2); + _fx_free_N14K_form__atom_t(&v_3); } else if (tag_0 == 13) { - _fx_N14K_form__atom_t v_4 = {0}; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&e_2->u.KExpICall.t0, &v_4); - if (v_4.tag == 1) { - _fx_R9Ast__id_t* i_1 = &v_4.u.AtomId; - uint64_t __fold_result___2 = 14695981039346656037ULL; - uint64_t h_6 = __fold_result___2 ^ ((uint64_t)i_1->m ^ 14695981039346656037ULL); - __fold_result___2 = h_6 * 1099511628211ULL; - uint64_t h_7 = __fold_result___2 ^ ((uint64_t)i_1->i ^ 14695981039346656037ULL); - __fold_result___2 = h_7 * 1099511628211ULL; - uint64_t h_8 = __fold_result___2 ^ ((uint64_t)i_1->j ^ 14695981039346656037ULL); - __fold_result___2 = h_8 * 1099511628211ULL; - _fx_Ta2i v_5; + _fx_N14K_form__atom_t v_7 = {0}; + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&e_2->u.KExpICall.t0, &v_7); + if (v_7.tag == 1) { + _fx_R9Ast__id_t* i_1 = &v_7.u.AtomId; + uint64_t h_2 = 14695981039346656037ULL; + h_2 = h_2 ^ ((uint64_t)i_1->m ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)i_1->i ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)i_1->j ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + _fx_Ta2i v_8; FX_CALL( _fx_M10C_gen_codeFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*decl_const_vals_0, i_1, - __fold_result___2 & 9223372036854775807ULL, &v_5, 0), _fx_catch_3); - if (v_5.t1 >= 0) { + h_2 & 9223372036854775807ULL, &v_8, 0), _fx_catch_3); + if (v_8.t1 >= 0) { int_ idx_1; FX_CALL( _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tiR9Ast__id_t(*count_map_0, i_1, &idx_1, 0), _fx_catch_3); FX_CHKIDX(FX_CHKIDX1((*count_map_0)->u.t.t5, 0, idx_1), _fx_catch_3); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_1); FX_CHKIDX(FX_CHKIDX1((*count_map_0)->u.t.t5, 0, idx_1), _fx_catch_3); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_1)->data = - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_1)->data + 1; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, idx_1); + v_10->data = v_9->data + 1; } _fx_catch_3: ; @@ -12448,7 +12137,7 @@ static int _fx_M10C_gen_codeFM10count_kexpv2N14K_form__kexp_tR22K_form__k_fold_c FX_BREAK(_fx_catch_4); _fx_catch_4: ; - _fx_free_N14K_form__atom_t(&v_4); + _fx_free_N14K_form__atom_t(&v_7); } else { FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(e_2, &callb_2, 0), _fx_catch_5); @@ -12503,24 +12192,25 @@ static int _fx_M10C_gen_codeFM10__lambda__v3R9Ast__id_trNt10Hashmap__t2R9Ast__id _fx_Nt6option1i v_1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*count_map_0)->u.t.t5, 0, j_0), _fx_cleanup); - _fx_M10C_gen_codeFM4SomeNt6option1i1i( - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, (*count_map_0)->u.t.t5, j_0); + _fx_M10C_gen_codeFM4SomeNt6option1i1i(v_2->data, &v_1); } else { - v_1 = _fx_g18C_gen_code__None4_; + v_1 = _fx_g18C_gen_code__None6_; } if (v_1.tag == 2) { if (v_1.u.Some == 1) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( - _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(u1_vals_0, i_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_catch_0); + _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(u1_vals_0, i_0, h_0 & 9223372036854775807ULL, 0), + _fx_catch_0); _fx_catch_0: ; goto _fx_endmatch_0; @@ -12563,7 +12253,7 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM14occurs_id_kexpB2R9Ast__id_tN14K_form__kexp_ bool* id_occurs_0 = &id_occurs_ref_0->data; _fx_M10C_gen_codeFM7make_fpFPv3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t2R9Ast__id_trB(i0_0, id_occurs_ref_0, &occurs_atom_0); - _fx_M10C_gen_codeFM7make_fpFPv2N14K_form__kexp_tR22K_form__k_fold_callb_t1rB(id_occurs_ref_0, &occurs_kexp_0); + _fx_M10C_gen_codeFM9make_fp1_FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t1rB(id_occurs_ref_0, &occurs_kexp_0); _fx_R10Ast__loc_t loc_0; FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(e_0, &loc_0, 0), _fx_cleanup); FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(i0_0, &loc_0, &v_0, 0), _fx_cleanup); @@ -12626,11 +12316,12 @@ static int _fx_M10C_gen_codeFM11occurs_atomv3N14K_form__atom_tR10Ast__loc_tR22K_ int fx_status = 0; _fx_M10C_gen_codeFM11occurs_atomv3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t_cldata_t* cv_0 = (_fx_M10C_gen_codeFM11occurs_atomv3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t_cldata_t*)fx_fv; + bool* id_occurs_0 = &cv_0->t1->data; if (a_0->tag == 1) { bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&a_0->u.AtomId, &cv_0->t0, &res_0, 0), _fx_catch_0); if (res_0) { - cv_0->t1->data = true; + *id_occurs_0 = true; } _fx_catch_0: ; @@ -12659,7 +12350,8 @@ static int _fx_M10C_gen_codeFM11occurs_kexpv2N14K_form__kexp_tR22K_form__k_fold_ int fx_status = 0; _fx_M10C_gen_codeFM11occurs_kexpv2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t* cv_0 = (_fx_M10C_gen_codeFM11occurs_kexpv2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t*)fx_fv; - if (!cv_0->t0->data) { + bool* id_occurs_0 = &cv_0->t0->data; + if (!*id_occurs_0) { FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(e_0, callb_0, 0), _fx_cleanup); } @@ -12667,7 +12359,7 @@ _fx_cleanup: ; return fx_status; } -FX_EXTERN_C int _fx_M10C_gen_codeFM7make_fpFPv2N14K_form__kexp_tR22K_form__k_fold_callb_t1rB( +FX_EXTERN_C int _fx_M10C_gen_codeFM9make_fp1_FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t1rB( struct _fx_rB_data_t* arg0, struct _fx_FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t* fx_result) { @@ -12711,41 +12403,34 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM8gen_mainLN15C_form__cstmt_t3BLSR10Ast__loc_t struct _fx_LN15C_form__cstmt_t_data_t** fx_result, void* fx_fv) { - _fx_Ta3LS __fold_result___0 = {0}; - _fx_Ta3LS v_0 = {0}; _fx_LS fwd_decls_0 = 0; _fx_LS init_calls_0 = 0; _fx_LS deinit_calls_0 = 0; + _fx_LS fwd_decls_1 = 0; + _fx_LS init_calls_1 = 0; + _fx_LS deinit_calls_1 = 0; + fx_str_t v_0 = {0}; fx_str_t v_1 = {0}; - fx_str_t v_2 = {0}; - _fx_LS __fold_result___1 = 0; - _fx_LS v_3 = 0; + _fx_LS res_0 = 0; + _fx_LS v_2 = 0; + fx_str_t v_3 = {0}; fx_str_t v_4 = {0}; - fx_str_t v_5 = {0}; - _fx_N14C_form__cexp_t v_6 = 0; - _fx_N15C_form__cstmt_t v_7 = 0; + _fx_N14C_form__cexp_t v_5 = 0; + _fx_N15C_form__cstmt_t v_6 = 0; int fx_status = 0; if (ismain_0) { - _fx_make_Ta3LS(0, 0, 0, &__fold_result___0); int_ idx_0 = 0; _fx_LS lst_0 = mod_names_0; for (; lst_0; lst_0 = lst_0->tl, idx_0 += 1) { - _fx_Ta3LS v_8 = {0}; - _fx_LS fwd_decls_1 = 0; - _fx_LS init_calls_1 = 0; - _fx_LS deinit_calls_1 = 0; - _fx_LS v_9 = 0; - fx_str_t v_10 = {0}; + _fx_LS v_7 = 0; + fx_str_t v_8 = {0}; + fx_str_t v_9 = {0}; + _fx_LS v_10 = 0; fx_str_t v_11 = {0}; - fx_str_t v_12 = {0}; - _fx_Ta3LS v_13 = {0}; + _fx_LS v_12 = 0; fx_str_t* m_0 = &lst_0->hd; - _fx_copy_Ta3LS(&__fold_result___0, &v_8); - FX_COPY_PTR(v_8.t0, &fwd_decls_1); - FX_COPY_PTR(v_8.t1, &init_calls_1); - FX_COPY_PTR(v_8.t2, &deinit_calls_1); if (idx_0 == 0) { - FX_COPY_PTR(fwd_decls_1, &v_9); + FX_COPY_PTR(fwd_decls_0, &v_7); } else { fx_str_t slit_0 = FX_MAKE_STR("FX_EXTERN_C int fx_init_"); @@ -12755,74 +12440,70 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM8gen_mainLN15C_form__cstmt_t3BLSR10Ast__loc_t fx_str_t slit_2 = FX_MAKE_STR("();\n"); { const fx_str_t strs_0[] = { slit_0, *m_0, slit_1, *m_0, slit_2 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_10), _fx_catch_0); + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_8), _fx_catch_0); } - FX_CALL(_fx_cons_LS(&v_10, fwd_decls_1, true, &v_9), _fx_catch_0); + FX_CALL(_fx_cons_LS(&v_8, fwd_decls_0, true, &v_7), _fx_catch_0); } + _fx_free_LS(&fwd_decls_0); + FX_COPY_PTR(v_7, &fwd_decls_0); fx_str_t slit_3 = FX_MAKE_STR(" if (fx_status >= 0) fx_status = fx_init_"); fx_str_t slit_4 = FX_MAKE_STR("();\n"); { const fx_str_t strs_1[] = { slit_3, *m_0, slit_4 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_11), _fx_catch_0); + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_9), _fx_catch_0); } - FX_CALL(_fx_cons_LS(&v_11, init_calls_1, false, &init_calls_1), _fx_catch_0); + FX_CALL(_fx_cons_LS(&v_9, init_calls_0, true, &v_10), _fx_catch_0); + _fx_free_LS(&init_calls_0); + FX_COPY_PTR(v_10, &init_calls_0); fx_str_t slit_5 = FX_MAKE_STR(" fx_deinit_"); fx_str_t slit_6 = FX_MAKE_STR("();\n"); { const fx_str_t strs_2[] = { slit_5, *m_0, slit_6 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_12), _fx_catch_0); + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_11), _fx_catch_0); } - FX_CALL(_fx_cons_LS(&v_12, deinit_calls_1, false, &deinit_calls_1), _fx_catch_0); - _fx_make_Ta3LS(v_9, init_calls_1, deinit_calls_1, &v_13); - _fx_free_Ta3LS(&__fold_result___0); - _fx_copy_Ta3LS(&v_13, &__fold_result___0); + FX_CALL(_fx_cons_LS(&v_11, deinit_calls_0, true, &v_12), _fx_catch_0); + _fx_free_LS(&deinit_calls_0); + FX_COPY_PTR(v_12, &deinit_calls_0); _fx_catch_0: ; - _fx_free_Ta3LS(&v_13); - FX_FREE_STR(&v_12); - FX_FREE_STR(&v_11); - FX_FREE_STR(&v_10); - if (v_9) { - _fx_free_LS(&v_9); - } - if (deinit_calls_1) { - _fx_free_LS(&deinit_calls_1); + if (v_12) { + _fx_free_LS(&v_12); } - if (init_calls_1) { - _fx_free_LS(&init_calls_1); + FX_FREE_STR(&v_11); + if (v_10) { + _fx_free_LS(&v_10); } - if (fwd_decls_1) { - _fx_free_LS(&fwd_decls_1); + FX_FREE_STR(&v_9); + FX_FREE_STR(&v_8); + if (v_7) { + _fx_free_LS(&v_7); } - _fx_free_Ta3LS(&v_8); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_Ta3LS(&__fold_result___0, &v_0); - FX_COPY_PTR(v_0.t0, &fwd_decls_0); - FX_COPY_PTR(v_0.t1, &init_calls_0); - FX_COPY_PTR(v_0.t2, &deinit_calls_0); + FX_COPY_PTR(fwd_decls_0, &fwd_decls_1); + FX_COPY_PTR(init_calls_0, &init_calls_1); + FX_COPY_PTR(deinit_calls_0, &deinit_calls_1); fx_str_t slit_7 = FX_MAKE_STR(""); - FX_CALL(_fx_F4joinS2SLS(&slit_7, fwd_decls_0, &v_1, 0), _fx_cleanup); + FX_CALL(_fx_F4joinS2SLS(&slit_7, fwd_decls_1, &v_0, 0), _fx_cleanup); fx_str_t slit_8 = FX_MAKE_STR(""); - FX_CALL(_fx_F4joinS2SLS(&slit_8, init_calls_0, &v_2, 0), _fx_cleanup); - _fx_LS lst_1 = deinit_calls_0; + FX_CALL(_fx_F4joinS2SLS(&slit_8, init_calls_1, &v_1, 0), _fx_cleanup); + _fx_LS lst_1 = deinit_calls_1; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LS r_0 = 0; + _fx_LS v_13 = 0; fx_str_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LS(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LS(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LS(a_0, res_0, true, &v_13), _fx_catch_1); + _fx_free_LS(&res_0); + FX_COPY_PTR(v_13, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LS(&r_0); + if (v_13) { + _fx_free_LS(&v_13); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_3); + FX_COPY_PTR(res_0, &v_2); fx_str_t slit_9 = FX_MAKE_STR(""); - FX_CALL(_fx_F4joinS2SLS(&slit_9, v_3, &v_4, 0), _fx_cleanup); + FX_CALL(_fx_F4joinS2SLS(&slit_9, v_2, &v_3, 0), _fx_cleanup); fx_str_t slit_10 = FX_MAKE_STR("\n" U"int main(int argc, char** argv)\n" @@ -12834,17 +12515,15 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM8gen_mainLN15C_form__cstmt_t3BLSR10Ast__loc_t FX_MAKE_STR(" return fx_deinit(fx_status);\n" U"}"); { - const fx_str_t strs_3[] = { v_1, slit_10, v_2, slit_11, v_4, slit_12 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 6, &v_5), _fx_cleanup); + const fx_str_t strs_3[] = { v_0, slit_10, v_1, slit_11, v_3, slit_12 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 6, &v_4), _fx_cleanup); } - FX_CALL(_fx_M6C_formFM9CExpCCodeN14C_form__cexp_t2SR10Ast__loc_t(&v_5, loc_0, &v_6), _fx_cleanup); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_6, &v_7), _fx_cleanup); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_7, 0, true, fx_result), _fx_cleanup); + FX_CALL(_fx_M6C_formFM9CExpCCodeN14C_form__cexp_t2SR10Ast__loc_t(&v_4, loc_0, &v_5), _fx_cleanup); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_5, &v_6), _fx_cleanup); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_6, 0, true, fx_result), _fx_cleanup); } _fx_cleanup: ; - _fx_free_Ta3LS(&__fold_result___0); - _fx_free_Ta3LS(&v_0); if (fwd_decls_0) { _fx_free_LS(&fwd_decls_0); } @@ -12854,21 +12533,30 @@ _fx_cleanup: ; if (deinit_calls_0) { _fx_free_LS(&deinit_calls_0); } + if (fwd_decls_1) { + _fx_free_LS(&fwd_decls_1); + } + if (init_calls_1) { + _fx_free_LS(&init_calls_1); + } + if (deinit_calls_1) { + _fx_free_LS(&deinit_calls_1); + } + FX_FREE_STR(&v_0); FX_FREE_STR(&v_1); - FX_FREE_STR(&v_2); - if (__fold_result___1) { - _fx_free_LS(&__fold_result___1); + if (res_0) { + _fx_free_LS(&res_0); } - if (v_3) { - _fx_free_LS(&v_3); + if (v_2) { + _fx_free_LS(&v_2); } + FX_FREE_STR(&v_3); FX_FREE_STR(&v_4); - FX_FREE_STR(&v_5); - if (v_6) { - _fx_free_N14C_form__cexp_t(&v_6); + if (v_5) { + _fx_free_N14C_form__cexp_t(&v_5); } - if (v_7) { - _fx_free_N15C_form__cstmt_t(&v_7); + if (v_6) { + _fx_free_N15C_form__cstmt_t(&v_6); } return fx_status; } @@ -13080,7 +12768,7 @@ FX_EXTERN_C int struct _fx_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB* fx_result, void* fx_fv) { - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t __fold_result___0 = 0; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t res_0 = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_0 = 0; _fx_T2LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tB v_1 = {0}; _fx_LN19C_form__carg_attr_t flags_0 = 0; @@ -13089,40 +12777,39 @@ FX_EXTERN_C int _fx_LN19C_form__carg_attr_t flags_1 = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t real_args_1 = 0; _fx_N14C_form__ctyp_t ret_rt_0 = 0; - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t __fold_result___1 = 0; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t res_1 = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t real_args_2 = 0; int fx_status = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t lst_0 = args_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t r_0 = 0; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_3 = 0; _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(a_0, res_0, true, &v_3), _fx_catch_0); + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&res_0); + FX_COPY_PTR(v_3, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&r_0); + if (v_3) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_3); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &v_0); + FX_COPY_PTR(res_0, &v_0); if (v_0 != 0) { - bool __fold_result___2 = false; + bool __fold_result___0 = false; FX_COPY_PTR(v_0->hd.t2, &flags_0); _fx_LN19C_form__carg_attr_t lst_1 = flags_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N19C_form__carg_attr_t* b_0 = &lst_1->hd; if (3 == b_0->tag) { - __fold_result___2 = true; FX_BREAK(_fx_catch_1); + __fold_result___0 = true; FX_BREAK(_fx_catch_1); } _fx_catch_1: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_cleanup); } - if (__fold_result___2) { + if (__fold_result___0) { _fx_make_T2LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tB(v_0->tl, true, &v_1); goto _fx_endmatch_0; } } @@ -13133,37 +12820,37 @@ _fx_endmatch_0: ; FX_COPY_PTR(v_1.t0, &real_args_0); bool have_fv_arg_0 = v_1.t1; if (real_args_0 != 0) { - _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* v_3 = &real_args_0->hd; - bool __fold_result___3 = false; - FX_COPY_PTR(v_3->t2, &flags_1); + _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* v_4 = &real_args_0->hd; + bool __fold_result___1 = false; + FX_COPY_PTR(v_4->t2, &flags_1); _fx_LN19C_form__carg_attr_t lst_2 = flags_1; for (; lst_2; lst_2 = lst_2->tl) { _fx_N19C_form__carg_attr_t* b_1 = &lst_2->hd; if (2 == b_1->tag) { - __fold_result___3 = true; FX_BREAK(_fx_catch_2); + __fold_result___1 = true; FX_BREAK(_fx_catch_2); } _fx_catch_2: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_cleanup); } - if (__fold_result___3) { + if (__fold_result___1) { _fx_make_T3LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_t(real_args_0->tl, - &v_3->t0, v_3->t1, &v_2); + &v_4->t0, v_4->t1, &v_2); goto _fx_endmatch_1; } } - _fx_N14C_form__ctyp_t v_4 = 0; + _fx_N14C_form__ctyp_t v_5 = 0; if (is_nothrow_0) { - FX_COPY_PTR(rt_0, &v_4); + FX_COPY_PTR(rt_0, &v_5); } else { - FX_COPY_PTR(_fx_g20C_gen_code__CTypVoid, &v_4); + FX_COPY_PTR(_fx_g20C_gen_code__CTypVoid, &v_5); } _fx_make_T3LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_t(real_args_0, &_fx_g9Ast__noid, - v_4, &v_2); - if (v_4) { - _fx_free_N14C_form__ctyp_t(&v_4); + v_5, &v_2); + if (v_5) { + _fx_free_N14C_form__ctyp_t(&v_5); } _fx_endmatch_1: ; @@ -13173,26 +12860,25 @@ _fx_endmatch_1: ; FX_COPY_PTR(v_2.t2, &ret_rt_0); _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t lst_3 = real_args_1; for (; lst_3; lst_3 = lst_3->tl) { - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t r_1 = 0; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_6 = 0; _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* a_1 = &lst_3->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(a_1, r_1, false, &r_1), _fx_catch_3); - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(a_1, res_1, true, &v_6), _fx_catch_3); + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&res_1); + FX_COPY_PTR(v_6, &res_1); _fx_catch_3: ; - if (r_1) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&r_1); + if (v_6) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_6); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &real_args_2); + FX_COPY_PTR(res_1, &real_args_2); _fx_make_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB(real_args_2, &ret_id_0, ret_rt_0, have_fv_arg_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&__fold_result___0); + if (res_0) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&res_0); } if (v_0) { _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_0); @@ -13210,8 +12896,8 @@ _fx_cleanup: ; if (ret_rt_0) { _fx_free_N14C_form__ctyp_t(&ret_rt_0); } - if (__fold_result___1) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&__fold_result___1); + if (res_1) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&res_1); } if (real_args_2) { _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&real_args_2); @@ -13652,39 +13338,32 @@ FX_EXTERN_C int { int fx_status = 0; if (check_list_0 != 0) { - _fx_N14C_form__cexp_t __fold_result___0 = 0; - _fx_LN14C_form__cexp_t rest_0 = 0; _fx_N14C_form__cexp_t check_exp_0 = 0; + _fx_LN14C_form__cexp_t rest_0 = 0; _fx_LN14C_form__cexp_t v_0 = 0; _fx_N14C_form__cexp_t check_call_0 = 0; _fx_N15C_form__cstmt_t v_1 = 0; - FX_COPY_PTR(check_list_0->hd, &__fold_result___0); + FX_COPY_PTR(check_list_0->hd, &check_exp_0); FX_COPY_PTR(check_list_0->tl, &rest_0); _fx_LN14C_form__cexp_t lst_0 = rest_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_N14C_form__cexp_t check_exp_1 = 0; _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_2 = {0}; _fx_N14C_form__cexp_t v_3 = 0; _fx_N14C_form__cexp_t check_i_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &check_exp_1); _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, loc_0, &v_2); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_gen_code__COpLogicAnd, check_exp_1, check_i_0, &v_2, &v_3), _fx_catch_0); - _fx_free_N14C_form__cexp_t(&__fold_result___0); - FX_COPY_PTR(v_3, &__fold_result___0); + &_fx_g23C_gen_code__COpLogicAnd, check_exp_0, check_i_0, &v_2, &v_3), _fx_catch_0); + _fx_free_N14C_form__cexp_t(&check_exp_0); + FX_COPY_PTR(v_3, &check_exp_0); _fx_catch_0: ; if (v_3) { _fx_free_N14C_form__cexp_t(&v_3); } _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_2); - if (check_exp_1) { - _fx_free_N14C_form__cexp_t(&check_exp_1); - } FX_CHECK_EXN(_fx_catch_1); } - FX_COPY_PTR(__fold_result___0, &check_exp_0); FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_0, 0, true, &v_0), _fx_catch_1); FX_CALL(_fx_cons_LN14C_form__cexp_t(check_exp_0, v_0, false, &v_0), _fx_catch_1); FX_CALL( @@ -13703,14 +13382,11 @@ FX_EXTERN_C int if (v_0) { _fx_free_LN14C_form__cexp_t(&v_0); } - if (check_exp_0) { - _fx_free_N14C_form__cexp_t(&check_exp_0); - } if (rest_0) { _fx_free_LN14C_form__cexp_t(&rest_0); } - if (__fold_result___0) { - _fx_free_N14C_form__cexp_t(&__fold_result___0); + if (check_exp_0) { + _fx_free_N14C_form__cexp_t(&check_exp_0); } } else { @@ -13795,7 +13471,7 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM17compute_for_ndimsi4iiLT2R9Ast__id_tN13K_for void* fx_fv) { int fx_status = 0; - int_ __fold_result___0 = 0; + int_ ndims_0 = 0; int_ i_0 = nfors_0 + 1; int_ k_0 = 0; _fx_LT2R9Ast__id_tN13K_form__dom_t lst_0 = idoml_0; @@ -13813,7 +13489,6 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM17compute_for_ndimsi4iiLT2R9Ast__id_tN13K_for fx_exn_t v_7 = {0}; _fx_T2R9Ast__id_tN13K_form__dom_t* __pat___0 = &lst_0->hd; _fx_copy_N13K_form__dom_t(&__pat___0->t1, &dom_i_0); - int_ ndims_0 = __fold_result___0; int_ ndims_i_0; if (dom_i_0.tag == 1) { _fx_N14K_form__atom_t* v_8 = &dom_i_0.u.DomainElem; @@ -13896,7 +13571,7 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM17compute_for_ndimsi4iiLT2R9Ast__id_tN13K_for FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(for_loc_0, &v_6, &v_7, 0), _fx_catch_1); FX_THROW(&v_7, false, _fx_catch_1); } - __fold_result___0 = ndims_i_0; + ndims_0 = ndims_i_0; _fx_catch_1: ; fx_free_exn(&v_7); @@ -13912,7 +13587,7 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM17compute_for_ndimsi4iiLT2R9Ast__id_tN13K_for _fx_free_N13K_form__dom_t(&dom_i_0); FX_CHECK_EXN(_fx_cleanup); } - *fx_result = __fold_result___0; + *fx_result = ndims_0; _fx_cleanup: ; return fx_status; @@ -13967,47 +13642,45 @@ FX_EXTERN_C int _fx_rR23C_gen_code__block_ctx_t v_13 = 0; _fx_LN15C_form__cstmt_t bctx_cleanup_0 = 0; _fx_LN15C_form__cstmt_t bctx_prologue_0 = 0; - _fx_Ta2LN15C_form__cstmt_t __fold_result___0 = {0}; - _fx_Ta2LN15C_form__cstmt_t v_14 = {0}; _fx_LN15C_form__cstmt_t global_vars_0 = 0; _fx_LN15C_form__cstmt_t temp_init_vals_0 = 0; _fx_LN15C_form__cstmt_t ccode_2 = 0; _fx_LN15C_form__cstmt_t ccode_3 = 0; - _fx_N15C_form__cstmt_t v_15 = 0; + _fx_N15C_form__cstmt_t v_14 = 0; _fx_LN15C_form__cstmt_t ccode_4 = 0; _fx_LN15C_form__cstmt_t ccode_5 = 0; _fx_LN15C_form__cstmt_t deinit_ccode_0 = 0; - _fx_Nt6option1N14C_form__cexp_t v_16 = {0}; - _fx_N15C_form__cstmt_t v_17 = 0; + _fx_Nt6option1N14C_form__cexp_t v_15 = {0}; + _fx_N15C_form__cstmt_t v_16 = 0; _fx_LN15C_form__cstmt_t ccode_6 = 0; fx_str_t km_cname_1 = {0}; fx_str_t init_cname_0 = {0}; + _fx_LN15C_form__cstmt_t v_17 = 0; _fx_LN15C_form__cstmt_t v_18 = 0; _fx_LN15C_form__cstmt_t v_19 = 0; - _fx_LN15C_form__cstmt_t v_20 = 0; - _fx_R17C_form__cdeffun_t v_21 = {0}; + _fx_R17C_form__cdeffun_t v_20 = {0}; _fx_rR17C_form__cdeffun_t init_f_0 = 0; fx_str_t deinit_cname_0 = {0}; - _fx_LN15C_form__cstmt_t v_22 = 0; - _fx_R17C_form__cdeffun_t v_23 = {0}; + _fx_LN15C_form__cstmt_t v_21 = 0; + _fx_R17C_form__cdeffun_t v_22 = {0}; _fx_rR17C_form__cdeffun_t deinit_f_0 = 0; + _fx_N15C_form__cinfo_t v_23 = {0}; _fx_N15C_form__cinfo_t v_24 = {0}; - _fx_N15C_form__cinfo_t v_25 = {0}; _fx_LS mod_names_0 = 0; - _fx_LS v_26 = 0; + _fx_LS v_25 = 0; + _fx_LN15C_form__cstmt_t v_26 = 0; _fx_LN15C_form__cstmt_t v_27 = 0; - _fx_LN15C_form__cstmt_t v_28 = 0; _fx_LN15C_form__cstmt_t all_ccode_prologue_0 = 0; + _fx_LN15C_form__cstmt_t v_28 = 0; _fx_LN15C_form__cstmt_t v_29 = 0; - _fx_LN15C_form__cstmt_t v_30 = 0; + _fx_N15C_form__cstmt_t v_30 = 0; _fx_N15C_form__cstmt_t v_31 = 0; - _fx_N15C_form__cstmt_t v_32 = 0; + _fx_LN15C_form__cstmt_t v_32 = 0; _fx_LN15C_form__cstmt_t v_33 = 0; _fx_LN15C_form__cstmt_t v_34 = 0; _fx_LN15C_form__cstmt_t v_35 = 0; _fx_LN15C_form__cstmt_t v_36 = 0; _fx_LN15C_form__cstmt_t v_37 = 0; - _fx_LN15C_form__cstmt_t v_38 = 0; _fx_LN15C_form__cstmt_t all_ccode_0 = 0; int fx_status = 0; bool km_main_0 = kmod_0->km_main; @@ -14015,14 +13688,18 @@ FX_EXTERN_C int fx_copy_str(&kmod_0->km_cname, &km_cname_0); int_ km_idx_0 = kmod_0->km_idx; _fx_R9Ast__id_t km_name_0 = kmod_0->km_name; - _fx_N12Ast__scope_t v_39; - _fx_M3AstFM8ScModuleN12Ast__scope_t1i(km_idx_0, &v_39); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_39, 0, true, &mod_sc_0), _fx_cleanup); + _fx_N12Ast__scope_t v_38; + _fx_M3AstFM8ScModuleN12Ast__scope_t1i(km_idx_0, &v_38); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_38, 0, true, &mod_sc_0), _fx_cleanup); FX_COPY_PTR(km_top_0, &top_code_0); FX_CALL(_fx_make_rLN15C_form__cstmt_t(0, &top_inline_ccode_ref_0), _fx_cleanup); + _fx_LN15C_form__cstmt_t* top_inline_ccode_0 = &top_inline_ccode_ref_0->data; FX_CALL(_fx_make_rLN15C_form__cstmt_t(0, &fwd_fdecls_ref_0), _fx_cleanup); + _fx_LN15C_form__cstmt_t* fwd_fdecls_0 = &fwd_fdecls_ref_0->data; FX_CALL(_fx_make_rLN15C_form__cstmt_t(0, &glob_data_ccode_ref_0), _fx_cleanup); + _fx_LN15C_form__cstmt_t* glob_data_ccode_0 = &glob_data_ccode_ref_0->data; FX_CALL(_fx_make_rLN15C_form__cstmt_t(0, &module_cleanup_ref_0), _fx_cleanup); + _fx_LN15C_form__cstmt_t* module_cleanup_0 = &module_cleanup_ref_0->data; FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(1024, &defined_syms_arg_0, 0), _fx_cleanup); FX_CALL(_fx_make_rNt10Hashset__t1R9Ast__id_t(defined_syms_arg_0, &defined_syms_ref_0), _fx_cleanup); FX_CALL( @@ -14064,16 +13741,16 @@ FX_EXTERN_C int FX_CALL( _fx_M10C_gen_codeFM13new_block_ctxv4N24C_gen_code__block_kind_tR10Ast__loc_trLrRM11block_ctx_ti( &_fx_g28C_gen_code__BlockKind_Global, &start_loc_0, block_stack_ref_0, km_idx_0, 0), _fx_cleanup); - _fx_R9Ast__id_t v_40; + _fx_R9Ast__id_t v_39; fx_str_t slit_6 = FX_MAKE_STR("fx_status"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_6, &v_40, 0), _fx_cleanup); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_6, &v_39, 0), _fx_cleanup); FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_3, 0), _fx_cleanup); FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &start_loc_0, &v_4, 0), _fx_cleanup); _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_4, &v_5); fx_str_t slit_7 = FX_MAKE_STR("fx_status"); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_40, _fx_g20C_gen_code__CTypCInt, &v_3, &slit_7, &v_5, 0, &start_loc_0, &v_6, 0), _fx_cleanup); + &v_39, _fx_g20C_gen_code__CTypCInt, &v_3, &slit_7, &v_5, 0, &start_loc_0, &v_6, 0), _fx_cleanup); FX_COPY_PTR(v_6.t0, &status_exp_0); FX_COPY_PTR(v_6.t1, &ccode_0); FX_CALL(_fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(top_code_0, &start_loc_0, &v_7, 0), @@ -14099,32 +13776,24 @@ FX_EXTERN_C int FX_CALL( _fx_M10C_gen_codeFM14curr_block_ctxrRM11block_ctx_t2R10Ast__loc_trLrRM11block_ctx_t(&end_loc_0, block_stack_ref_0, &v_13, 0), _fx_cleanup); - _fx_R23C_gen_code__block_ctx_t* v_41 = &v_13->data; - int_ bctx_label_used_0 = v_41->bctx_label_used; - FX_COPY_PTR(v_41->bctx_cleanup, &bctx_cleanup_0); - _fx_R9Ast__id_t bctx_label_0 = v_41->bctx_label; - FX_COPY_PTR(v_41->bctx_prologue, &bctx_prologue_0); - _fx_make_Ta2LN15C_form__cstmt_t(0, 0, &__fold_result___0); + _fx_R23C_gen_code__block_ctx_t* v_40 = &v_13->data; + int_ bctx_label_used_0 = v_40->bctx_label_used; + FX_COPY_PTR(v_40->bctx_cleanup, &bctx_cleanup_0); + _fx_R9Ast__id_t bctx_label_0 = v_40->bctx_label; + FX_COPY_PTR(v_40->bctx_prologue, &bctx_prologue_0); _fx_LN15C_form__cstmt_t lst_0 = bctx_prologue_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_Ta2LN15C_form__cstmt_t v_42 = {0}; - _fx_LN15C_form__cstmt_t global_vars_1 = 0; - _fx_LN15C_form__cstmt_t temp_init_vals_1 = 0; - _fx_Ta2LN15C_form__cstmt_t v_43 = {0}; - _fx_LN15C_form__cstmt_t v_44 = 0; - _fx_LN15C_form__cstmt_t v_45 = 0; + _fx_LN15C_form__cstmt_t v_41 = 0; + _fx_LN15C_form__cstmt_t v_42 = 0; _fx_N15C_form__cstmt_t s_0 = lst_0->hd; - _fx_copy_Ta2LN15C_form__cstmt_t(&__fold_result___0, &v_42); - FX_COPY_PTR(v_42.t0, &global_vars_1); - FX_COPY_PTR(v_42.t1, &temp_init_vals_1); bool is_global_0; if (FX_REC_VARIANT_TAG(s_0) == 16) { - _fx_N15C_form__cinfo_t v_46 = {0}; + _fx_N15C_form__cinfo_t v_43 = {0}; _fx_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t* vcase_0 = &s_0->u.CDefVal; - FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(&vcase_0->t1, &vcase_0->t3, &v_46, 0), + FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(&vcase_0->t1, &vcase_0->t3, &v_43, 0), _fx_catch_0); - if (v_46.tag == 2) { - _fx_R16Ast__val_flags_t* cv_flags_0 = &v_46.u.CVal.cv_flags; + if (v_43.tag == 2) { + _fx_R16Ast__val_flags_t* cv_flags_0 = &v_43.u.CVal.cv_flags; bool t_0; if (cv_flags_0->val_flag_temp) { t_0 = true; @@ -14140,43 +13809,32 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_0); _fx_catch_0: ; - _fx_free_N15C_form__cinfo_t(&v_46); + _fx_free_N15C_form__cinfo_t(&v_43); } else { is_global_0 = true; } FX_CHECK_EXN(_fx_catch_1); if (is_global_0) { - FX_CALL(_fx_cons_LN15C_form__cstmt_t(s_0, global_vars_1, true, &v_44), _fx_catch_1); - _fx_make_Ta2LN15C_form__cstmt_t(v_44, temp_init_vals_1, &v_43); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(s_0, global_vars_0, true, &v_41), _fx_catch_1); + _fx_free_LN15C_form__cstmt_t(&global_vars_0); + FX_COPY_PTR(v_41, &global_vars_0); } else { - FX_CALL(_fx_cons_LN15C_form__cstmt_t(s_0, temp_init_vals_1, true, &v_45), _fx_catch_1); - _fx_make_Ta2LN15C_form__cstmt_t(global_vars_1, v_45, &v_43); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(s_0, temp_init_vals_0, true, &v_42), _fx_catch_1); + _fx_free_LN15C_form__cstmt_t(&temp_init_vals_0); + FX_COPY_PTR(v_42, &temp_init_vals_0); } - _fx_free_Ta2LN15C_form__cstmt_t(&__fold_result___0); - _fx_copy_Ta2LN15C_form__cstmt_t(&v_43, &__fold_result___0); _fx_catch_1: ; - if (v_45) { - _fx_free_LN15C_form__cstmt_t(&v_45); - } - if (v_44) { - _fx_free_LN15C_form__cstmt_t(&v_44); - } - _fx_free_Ta2LN15C_form__cstmt_t(&v_43); - if (temp_init_vals_1) { - _fx_free_LN15C_form__cstmt_t(&temp_init_vals_1); + if (v_42) { + _fx_free_LN15C_form__cstmt_t(&v_42); } - if (global_vars_1) { - _fx_free_LN15C_form__cstmt_t(&global_vars_1); + if (v_41) { + _fx_free_LN15C_form__cstmt_t(&v_41); } - _fx_free_Ta2LN15C_form__cstmt_t(&v_42); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_Ta2LN15C_form__cstmt_t(&__fold_result___0, &v_14); - FX_COPY_PTR(v_14.t0, &global_vars_0); - FX_COPY_PTR(v_14.t1, &temp_init_vals_0); FX_CALL(_fx_M10C_gen_codeFM13pop_block_ctxv2R10Ast__loc_trLrRM11block_ctx_t(&end_loc_0, block_stack_ref_0, 0), _fx_cleanup); int tag_0 = FX_REC_VARIANT_TAG(e_0); bool res_0; @@ -14193,13 +13851,13 @@ FX_EXTERN_C int if (res_0) { FX_COPY_PTR(ccode_1, &ccode_2); goto _fx_endmatch_0; } - _fx_N15C_form__cstmt_t v_47 = 0; - FX_CALL(_fx_M6C_formFM9cexp2stmtN15C_form__cstmt_t1N14C_form__cexp_t(e_0, &v_47, 0), _fx_catch_2); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_47, ccode_1, true, &ccode_2), _fx_catch_2); + _fx_N15C_form__cstmt_t v_44 = 0; + FX_CALL(_fx_M6C_formFM9cexp2stmtN15C_form__cstmt_t1N14C_form__cexp_t(e_0, &v_44, 0), _fx_catch_2); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_44, ccode_1, true, &ccode_2), _fx_catch_2); _fx_catch_2: ; - if (v_47) { - _fx_free_N15C_form__cstmt_t(&v_47); + if (v_44) { + _fx_free_N15C_form__cstmt_t(&v_44); } _fx_endmatch_0: ; @@ -14208,19 +13866,19 @@ _fx_endmatch_0: ; FX_COPY_PTR(ccode_2, &ccode_3); } else { - FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&bctx_label_0, &end_loc_0, &v_15), + FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&bctx_label_0, &end_loc_0, &v_14), _fx_cleanup); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_15, ccode_2, true, &ccode_3), _fx_cleanup); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_14, ccode_2, true, &ccode_3), _fx_cleanup); } FX_CALL(_fx_M6C_formFM15filter_out_nopsLN15C_form__cstmt_t1LN15C_form__cstmt_t(ccode_3, &ccode_4, 0), _fx_cleanup); FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(bctx_cleanup_0, ccode_4, &ccode_5, 0), _fx_cleanup); - FX_COPY_PTR(module_cleanup_ref_0->data, &deinit_ccode_0); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(status_exp_0, &v_16); - FX_CALL(_fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_16, &end_loc_0, &v_17), + FX_COPY_PTR(*module_cleanup_0, &deinit_ccode_0); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(status_exp_0, &v_15); + FX_CALL(_fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_15, &end_loc_0, &v_16), _fx_cleanup); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_17, ccode_5, true, &ccode_6), _fx_cleanup); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_16, ccode_5, true, &ccode_6), _fx_cleanup); FX_CALL(_fx_M8K_mangleFM12mangle_mnameS1S(&km_cname_0, &km_cname_1, 0), _fx_cleanup); fx_str_t slit_10 = FX_MAKE_STR("fx_init_"); { @@ -14229,18 +13887,18 @@ _fx_endmatch_0: ; } _fx_R9Ast__id_t init_name_0; FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &init_cname_0, &init_name_0, 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(ccode_6, &v_18, 0), _fx_cleanup); + FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(ccode_6, &v_17, 0), _fx_cleanup); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(mod_init_calls_0, v_18, &v_19, 0), + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(mod_init_calls_0, v_17, &v_18, 0), _fx_cleanup); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(temp_init_vals_0, v_19, &v_20, 0), + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(temp_init_vals_0, v_18, &v_19, 0), _fx_cleanup); - _fx_R16Ast__fun_flags_t v_48; - FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_48, 0), _fx_cleanup); - _fx_make_R17C_form__cdeffun_t(&init_name_0, &init_cname_0, 0, _fx_g20C_gen_code__CTypCInt, v_20, &v_48, 0, &end_loc_0, - &v_21); - FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_21, &init_f_0), _fx_cleanup); + _fx_R16Ast__fun_flags_t v_45; + FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_45, 0), _fx_cleanup); + _fx_make_R17C_form__cdeffun_t(&init_name_0, &init_cname_0, 0, _fx_g20C_gen_code__CTypCInt, v_19, &v_45, 0, &end_loc_0, + &v_20); + FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_20, &init_f_0), _fx_cleanup); fx_str_t slit_11 = FX_MAKE_STR("fx_deinit_"); { const fx_str_t strs_2[] = { slit_11, km_cname_1 }; @@ -14248,16 +13906,16 @@ _fx_endmatch_0: ; } _fx_R9Ast__id_t deinit_name_0; FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &deinit_cname_0, &deinit_name_0, 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(deinit_ccode_0, &v_22, 0), _fx_cleanup); - _fx_R16Ast__fun_flags_t v_49; - FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_49, 0), _fx_cleanup); - _fx_make_R17C_form__cdeffun_t(&deinit_name_0, &deinit_cname_0, 0, _fx_g20C_gen_code__CTypVoid, v_22, &v_49, 0, &end_loc_0, - &v_23); - FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_23, &deinit_f_0), _fx_cleanup); - _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(init_f_0, &v_24); - FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&init_name_0, &v_24, 0), _fx_cleanup); - _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(deinit_f_0, &v_25); - FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&deinit_name_0, &v_25, 0), _fx_cleanup); + FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(deinit_ccode_0, &v_21, 0), _fx_cleanup); + _fx_R16Ast__fun_flags_t v_46; + FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_46, 0), _fx_cleanup); + _fx_make_R17C_form__cdeffun_t(&deinit_name_0, &deinit_cname_0, 0, _fx_g20C_gen_code__CTypVoid, v_21, &v_46, 0, &end_loc_0, + &v_22); + FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_22, &deinit_f_0), _fx_cleanup); + _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(init_f_0, &v_23); + FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&init_name_0, &v_23, 0), _fx_cleanup); + _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(deinit_f_0, &v_24); + FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&deinit_name_0, &v_24, 0), _fx_cleanup); if (km_main_0) { _fx_LS lstend_0 = 0; _fx_LR17C_form__cmodule_t lst_1 = cmods_0; @@ -14265,37 +13923,37 @@ _fx_endmatch_0: ; _fx_R17C_form__cmodule_t* __pat___0 = &lst_1->hd; _fx_LS node_0 = 0; FX_CALL(_fx_cons_LS(&__pat___0->cmod_cname, 0, false, &node_0), _fx_catch_3); - FX_LIST_APPEND(v_26, lstend_0, node_0); + FX_LIST_APPEND(v_25, lstend_0, node_0); _fx_catch_3: ; FX_CHECK_EXN(_fx_cleanup); } - FX_CALL(_fx_cons_LS(&km_cname_1, v_26, true, &mod_names_0), _fx_cleanup); + FX_CALL(_fx_cons_LS(&km_cname_1, v_25, true, &mod_names_0), _fx_cleanup); } - FX_CALL(_fx_M10C_gen_codeFM18gen_ccode_prologueLN15C_form__cstmt_t2BR10Ast__loc_t(km_main_0, &start_loc_0, &v_27, 0), + FX_CALL(_fx_M10C_gen_codeFM18gen_ccode_prologueLN15C_form__cstmt_t2BR10Ast__loc_t(km_main_0, &start_loc_0, &v_26, 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(top_inline_ccode_ref_0->data, &v_28, 0), _fx_cleanup); + FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(*top_inline_ccode_0, &v_27, 0), _fx_cleanup); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_27, v_28, &all_ccode_prologue_0, + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_26, v_27, &all_ccode_prologue_0, 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(fwd_fdecls_ref_0->data, &v_29, 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(glob_data_ccode_ref_0->data, &v_30, 0), _fx_cleanup); - FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(init_f_0, &v_31), _fx_cleanup); - FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(deinit_f_0, &v_32), _fx_cleanup); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_32, 0, true, &v_33), _fx_cleanup); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_31, v_33, false, &v_33), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM8gen_mainLN15C_form__cstmt_t3BLSR10Ast__loc_t(km_main_0, mod_names_0, &end_loc_0, &v_34, 0), + FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(*fwd_fdecls_0, &v_28, 0), _fx_cleanup); + FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(*glob_data_ccode_0, &v_29, 0), _fx_cleanup); + FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(init_f_0, &v_30), _fx_cleanup); + FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(deinit_f_0, &v_31), _fx_cleanup); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_31, 0, true, &v_32), _fx_cleanup); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_30, v_32, false, &v_32), _fx_cleanup); + FX_CALL(_fx_M10C_gen_codeFM8gen_mainLN15C_form__cstmt_t3BLSR10Ast__loc_t(km_main_0, mod_names_0, &end_loc_0, &v_33, 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_33, v_34, &v_35, 0), + FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_32, v_33, &v_34, 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(c_fdecls_0, v_35, &v_36, 0), + FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(c_fdecls_0, v_34, &v_35, 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_30, v_36, &v_37, 0), + FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_29, v_35, &v_36, 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_29, v_37, &v_38, 0), + FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_28, v_36, &v_37, 0), _fx_cleanup); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(global_vars_0, v_38, &all_ccode_0, + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(global_vars_0, v_37, &all_ccode_0, 0), _fx_cleanup); _fx_make_Ta2LN15C_form__cstmt_t(all_ccode_prologue_0, all_ccode_0, fx_result); @@ -14395,8 +14053,6 @@ _fx_cleanup: ; if (bctx_prologue_0) { _fx_free_LN15C_form__cstmt_t(&bctx_prologue_0); } - _fx_free_Ta2LN15C_form__cstmt_t(&__fold_result___0); - _fx_free_Ta2LN15C_form__cstmt_t(&v_14); if (global_vars_0) { _fx_free_LN15C_form__cstmt_t(&global_vars_0); } @@ -14409,8 +14065,8 @@ _fx_cleanup: ; if (ccode_3) { _fx_free_LN15C_form__cstmt_t(&ccode_3); } - if (v_15) { - _fx_free_N15C_form__cstmt_t(&v_15); + if (v_14) { + _fx_free_N15C_form__cstmt_t(&v_14); } if (ccode_4) { _fx_free_LN15C_form__cstmt_t(&ccode_4); @@ -14421,64 +14077,67 @@ _fx_cleanup: ; if (deinit_ccode_0) { _fx_free_LN15C_form__cstmt_t(&deinit_ccode_0); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_16); - if (v_17) { - _fx_free_N15C_form__cstmt_t(&v_17); + _fx_free_Nt6option1N14C_form__cexp_t(&v_15); + if (v_16) { + _fx_free_N15C_form__cstmt_t(&v_16); } if (ccode_6) { _fx_free_LN15C_form__cstmt_t(&ccode_6); } FX_FREE_STR(&km_cname_1); FX_FREE_STR(&init_cname_0); + if (v_17) { + _fx_free_LN15C_form__cstmt_t(&v_17); + } if (v_18) { _fx_free_LN15C_form__cstmt_t(&v_18); } if (v_19) { _fx_free_LN15C_form__cstmt_t(&v_19); } - if (v_20) { - _fx_free_LN15C_form__cstmt_t(&v_20); - } - _fx_free_R17C_form__cdeffun_t(&v_21); + _fx_free_R17C_form__cdeffun_t(&v_20); if (init_f_0) { _fx_free_rR17C_form__cdeffun_t(&init_f_0); } FX_FREE_STR(&deinit_cname_0); - if (v_22) { - _fx_free_LN15C_form__cstmt_t(&v_22); + if (v_21) { + _fx_free_LN15C_form__cstmt_t(&v_21); } - _fx_free_R17C_form__cdeffun_t(&v_23); + _fx_free_R17C_form__cdeffun_t(&v_22); if (deinit_f_0) { _fx_free_rR17C_form__cdeffun_t(&deinit_f_0); } + _fx_free_N15C_form__cinfo_t(&v_23); _fx_free_N15C_form__cinfo_t(&v_24); - _fx_free_N15C_form__cinfo_t(&v_25); if (mod_names_0) { _fx_free_LS(&mod_names_0); } + if (v_25) { + _fx_free_LS(&v_25); + } if (v_26) { - _fx_free_LS(&v_26); + _fx_free_LN15C_form__cstmt_t(&v_26); } if (v_27) { _fx_free_LN15C_form__cstmt_t(&v_27); } - if (v_28) { - _fx_free_LN15C_form__cstmt_t(&v_28); - } if (all_ccode_prologue_0) { _fx_free_LN15C_form__cstmt_t(&all_ccode_prologue_0); } + if (v_28) { + _fx_free_LN15C_form__cstmt_t(&v_28); + } if (v_29) { _fx_free_LN15C_form__cstmt_t(&v_29); } if (v_30) { - _fx_free_LN15C_form__cstmt_t(&v_30); + _fx_free_N15C_form__cstmt_t(&v_30); } if (v_31) { _fx_free_N15C_form__cstmt_t(&v_31); } if (v_32) { - _fx_free_N15C_form__cstmt_t(&v_32); + _fx_free_LN15C_form__cstmt_t(&v_32); } if (v_33) { _fx_free_LN15C_form__cstmt_t(&v_33); @@ -14495,9 +14154,6 @@ _fx_cleanup: ; if (v_37) { _fx_free_LN15C_form__cstmt_t(&v_37); } - if (v_38) { - _fx_free_LN15C_form__cstmt_t(&v_38); - } if (all_ccode_0) { _fx_free_LN15C_form__cstmt_t(&all_ccode_0); } @@ -14532,28 +14188,28 @@ static int int fx_status = 0; _fx_Nt10Hashset__t1R9Ast__id_t* defined_syms_0 = &defined_syms_ref_0->data; _fx_LN15C_form__cstmt_t* fwd_fdecls_0 = &fwd_fdecls_ref_0->data; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_2; FX_CALL( _fx_M10C_gen_codeFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*defined_syms_0, f_0, - __fold_result___0 & 9223372036854775807ULL, &v_2, 0), _fx_cleanup); + h_0 & 9223372036854775807ULL, &v_2, 0), _fx_cleanup); if (!(v_2.t1 >= 0)) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( - _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*defined_syms_0, f_0, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_cleanup); + _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*defined_syms_0, f_0, h_1 & 9223372036854775807ULL, + 0), _fx_cleanup); FX_CALL(_fx_M6C_formFM14CDefForwardSymN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(f_0, loc_0, &v_0), _fx_cleanup); FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_0, *fwd_fdecls_0, true, &v_1), _fx_cleanup); _fx_free_LN15C_form__cstmt_t(fwd_fdecls_0); @@ -14578,6 +14234,7 @@ static int _fx_M10C_gen_codeFM17check_inside_loopv3BR10Ast__loc_trLrRM11block_ct { fx_str_t bc_str_0 = {0}; int fx_status = 0; + _fx_LrR23C_gen_code__block_ctx_t* block_stack_0 = &block_stack_ref_0->data; if (is_break_0) { fx_str_t slit_0 = FX_MAKE_STR("break"); fx_copy_str(&slit_0, &bc_str_0); } @@ -14585,8 +14242,8 @@ static int _fx_M10C_gen_codeFM17check_inside_loopv3BR10Ast__loc_trLrRM11block_ct fx_str_t slit_1 = FX_MAKE_STR("continue"); fx_copy_str(&slit_1, &bc_str_0); } FX_CALL( - _fx_M10C_gen_codeFM18check_inside_loop_v4LrRM11block_ctx_tSBR10Ast__loc_t(block_stack_ref_0->data, &bc_str_0, is_break_0, - loc_0, 0), _fx_cleanup); + _fx_M10C_gen_codeFM18check_inside_loop_v4LrRM11block_ctx_tSBR10Ast__loc_t(*block_stack_0, &bc_str_0, is_break_0, loc_0, + 0), _fx_cleanup); _fx_cleanup: ; FX_FREE_STR(&bc_str_0); @@ -14629,10 +14286,16 @@ static int _fx_M10C_gen_codeFM18check_inside_loop_v4LrRM11block_ctx_tSBR10Ast__l _fx_free_LrR23C_gen_code__block_ctx_t(&s_1); FX_COPY_PTR(rest_0, &s_1); } else if (is_break_0) { - top_0->data.bctx_break_used = top_0->data.bctx_break_used + 1; FX_BREAK(_fx_catch_0); + _fx_R23C_gen_code__block_ctx_t* v_1 = &top_0->data; + _fx_R23C_gen_code__block_ctx_t* v_2 = &top_0->data; + v_2->bctx_break_used = v_1->bctx_break_used + 1; + FX_BREAK(_fx_catch_0); } else { - top_0->data.bctx_continue_used = top_0->data.bctx_continue_used + 1; FX_BREAK(_fx_catch_0); + _fx_R23C_gen_code__block_ctx_t* v_3 = &top_0->data; + _fx_R23C_gen_code__block_ctx_t* v_4 = &top_0->data; + v_4->bctx_continue_used = v_3->bctx_continue_used + 1; + FX_BREAK(_fx_catch_0); } _fx_catch_0: ; @@ -14650,20 +14313,20 @@ static int _fx_M10C_gen_codeFM18check_inside_loop_v4LrRM11block_ctx_tSBR10Ast__l } FX_CHECK_EXN(_fx_catch_2); if (res_1) { - fx_str_t v_1 = {0}; - fx_exn_t v_2 = {0}; + fx_str_t v_5 = {0}; + fx_exn_t v_6 = {0}; fx_str_t slit_0 = FX_MAKE_STR("\'"); fx_str_t slit_1 = FX_MAKE_STR("\' is used outside of a loop"); { const fx_str_t strs_0[] = { slit_0, *bc_str_0, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_1), _fx_catch_1); + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_5), _fx_catch_1); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_1, &v_2, 0), _fx_catch_1); - FX_THROW(&v_2, false, _fx_catch_1); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_5, &v_6, 0), _fx_catch_1); + FX_THROW(&v_6, false, _fx_catch_1); _fx_catch_1: ; - fx_free_exn(&v_2); - FX_FREE_STR(&v_1); + fx_free_exn(&v_6); + FX_FREE_STR(&v_5); goto _fx_endmatch_0; } _fx_free_LrR23C_gen_code__block_ctx_t(&s_1); @@ -14675,20 +14338,20 @@ static int _fx_M10C_gen_codeFM18check_inside_loop_v4LrRM11block_ctx_tSBR10Ast__l _fx_catch_2: ; } else { - fx_str_t v_3 = {0}; - fx_exn_t v_4 = {0}; + fx_str_t v_7 = {0}; + fx_exn_t v_8 = {0}; fx_str_t slit_2 = FX_MAKE_STR("\'"); fx_str_t slit_3 = FX_MAKE_STR("\' is used outside of a loop"); { const fx_str_t strs_1[] = { slit_2, *bc_str_0, slit_3 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_3), _fx_catch_3); + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_7), _fx_catch_3); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_3, &v_4, 0), _fx_catch_3); - FX_THROW(&v_4, false, _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_7, &v_8, 0), _fx_catch_3); + FX_THROW(&v_8, false, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_4); - FX_FREE_STR(&v_3); + fx_free_exn(&v_8); + FX_FREE_STR(&v_7); } FX_CHECK_EXN(_fx_catch_4); @@ -14715,7 +14378,8 @@ static int _fx_M10C_gen_codeFM14curr_block_ctxrRM11block_ctx_t2R10Ast__loc_trLrR { _fx_LrR23C_gen_code__block_ctx_t block_stack_0 = 0; int fx_status = 0; - FX_COPY_PTR(block_stack_ref_0->data, &block_stack_0); + _fx_LrR23C_gen_code__block_ctx_t* block_stack_1 = &block_stack_ref_0->data; + FX_COPY_PTR(*block_stack_1, &block_stack_0); if (block_stack_0 != 0) { FX_COPY_PTR(block_stack_0->hd, fx_result); } @@ -14745,15 +14409,17 @@ static int _fx_M10C_gen_codeFM9curr_funcR9Ast__id_t2R10Ast__loc_trLrRM11block_ct _fx_Nt6option1rR23C_gen_code__block_ctx_t __fold_result___1 = {0}; _fx_R23C_gen_code__block_ctx_t v_0 = {0}; int fx_status = 0; + _fx_LrR23C_gen_code__block_ctx_t* block_stack_1 = &block_stack_ref_0->data; _fx_copy_Nt6option1rR23C_gen_code__block_ctx_t(&_fx_g16C_gen_code__None, &__fold_result___0); - FX_COPY_PTR(block_stack_ref_0->data, &block_stack_0); + FX_COPY_PTR(*block_stack_1, &block_stack_0); _fx_LrR23C_gen_code__block_ctx_t lst_0 = block_stack_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_Nt6option1rR23C_gen_code__block_ctx_t v_1 = {0}; _fx_rR23C_gen_code__block_ctx_t bctx_0 = lst_0->hd; - _fx_N24C_gen_code__block_kind_t v_2 = bctx_0->data.bctx_kind; + _fx_R23C_gen_code__block_ctx_t* v_2 = &bctx_0->data; + _fx_N24C_gen_code__block_kind_t v_3 = v_2->bctx_kind; bool res_0; - if (v_2.tag == 2) { + if (v_3.tag == 2) { res_0 = true; } else { @@ -14775,9 +14441,9 @@ static int _fx_M10C_gen_codeFM9curr_funcR9Ast__id_t2R10Ast__loc_trLrRM11block_ct _fx_copy_Nt6option1rR23C_gen_code__block_ctx_t(&__fold_result___0, &__fold_result___1); if (__fold_result___1.tag == 2) { _fx_copy_R23C_gen_code__block_ctx_t(&__fold_result___1.u.Some->data, &v_0); - _fx_N24C_gen_code__block_kind_t* v_3 = &v_0.bctx_kind; - if (v_3->tag == 2) { - *fx_result = v_3->u.BlockKind_Fun; goto _fx_endmatch_0; + _fx_N24C_gen_code__block_kind_t* v_4 = &v_0.bctx_kind; + if (v_4->tag == 2) { + *fx_result = v_4->u.BlockKind_Fun; goto _fx_endmatch_0; } } *fx_result = _fx_g9Ast__noid; @@ -14966,6 +14632,7 @@ static int _fx_LrR23C_gen_code__block_ctx_t block_stack_0 = 0; _fx_rR23C_gen_code__block_ctx_t bctx_0 = 0; int fx_status = 0; + _fx_LrR23C_gen_code__block_ctx_t* block_stack_1 = &block_stack_ref_0->data; _fx_N24C_gen_code__block_kind_t kind_0; if (ndims_0 == 1) { kind_0 = _fx_g26C_gen_code__BlockKind_Loop; @@ -14976,7 +14643,7 @@ static int FX_CALL( _fx_M10C_gen_codeFM14new_block_ctx_v5N24C_gen_code__block_kind_tR16Ast__for_flags_tR10Ast__loc_trLrRM11block_ctx_ti( &kind_0, for_flags_0, loc_0, block_stack_ref_0, km_idx_0, 0), _fx_cleanup); - FX_COPY_PTR(block_stack_ref_0->data, &block_stack_0); + FX_COPY_PTR(*block_stack_1, &block_stack_0); if (block_stack_0 != 0) { FX_COPY_PTR(block_stack_0->hd, &bctx_0); } @@ -14990,12 +14657,14 @@ static int fx_free_exn(&v_0); } FX_CHECK_EXN(_fx_cleanup); - _fx_N14C_form__cexp_t* v_1 = &bctx_0->data.bctx_status; - _fx_free_N14C_form__cexp_t(v_1); - FX_COPY_PTR(status_0, v_1); - _fx_N14C_form__cexp_t* v_2 = &bctx_0->data.bctx_par_status; + _fx_R23C_gen_code__block_ctx_t* v_1 = &bctx_0->data; + _fx_N14C_form__cexp_t* v_2 = &v_1->bctx_status; _fx_free_N14C_form__cexp_t(v_2); - FX_COPY_PTR(par_status_0, v_2); + FX_COPY_PTR(status_0, v_2); + _fx_R23C_gen_code__block_ctx_t* v_3 = &bctx_0->data; + _fx_N14C_form__cexp_t* v_4 = &v_3->bctx_par_status; + _fx_free_N14C_form__cexp_t(v_4); + FX_COPY_PTR(par_status_0, v_4); _fx_cleanup: ; if (block_stack_0) { @@ -15045,7 +14714,8 @@ static int _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_tr _fx_LrR23C_gen_code__block_ctx_t block_stack_0 = 0; _fx_rR23C_gen_code__block_ctx_t bctx_0 = 0; int fx_status = 0; - FX_COPY_PTR(block_stack_ref_0->data, &block_stack_0); + _fx_LrR23C_gen_code__block_ctx_t* block_stack_1 = &block_stack_ref_0->data; + FX_COPY_PTR(*block_stack_1, &block_stack_0); if (block_stack_0 != 0) { FX_COPY_PTR(block_stack_0->hd, &bctx_0); } @@ -15059,9 +14729,12 @@ static int _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_tr fx_free_exn(&v_0); } FX_CHECK_EXN(_fx_cleanup); - bctx_0->data.bctx_label_used = bctx_0->data.bctx_label_used + 1; - _fx_R9Ast__id_t v_1 = bctx_0->data.bctx_label; - FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_1, loc_0, fx_result, 0), _fx_cleanup); + _fx_R23C_gen_code__block_ctx_t* v_1 = &bctx_0->data; + _fx_R23C_gen_code__block_ctx_t* v_2 = &bctx_0->data; + v_2->bctx_label_used = v_1->bctx_label_used + 1; + _fx_R23C_gen_code__block_ctx_t* v_3 = &bctx_0->data; + _fx_R9Ast__id_t v_4 = v_3->bctx_label; + FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_4, loc_0, fx_result, 0), _fx_cleanup); _fx_cleanup: ; if (block_stack_0) { @@ -15089,7 +14762,8 @@ static int _fx_N14C_form__cexp_t fx_call_e_0 = 0; _fx_N15C_form__cstmt_t v_2 = 0; int fx_status = 0; - FX_COPY_PTR(block_stack_ref_0->data, &block_stack_0); + _fx_LrR23C_gen_code__block_ctx_t* block_stack_1 = &block_stack_ref_0->data; + FX_COPY_PTR(*block_stack_1, &block_stack_0); if (block_stack_0 != 0) { FX_COPY_PTR(block_stack_0->hd, &bctx_0); } @@ -15103,9 +14777,12 @@ static int fx_free_exn(&v_3); } FX_CHECK_EXN(_fx_cleanup); - bctx_0->data.bctx_label_used = bctx_0->data.bctx_label_used + 1; - _fx_R9Ast__id_t v_4 = bctx_0->data.bctx_label; - FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_4, loc_0, &v_0, 0), _fx_cleanup); + _fx_R23C_gen_code__block_ctx_t* v_4 = &bctx_0->data; + _fx_R23C_gen_code__block_ctx_t* v_5 = &bctx_0->data; + v_5->bctx_label_used = v_4->bctx_label_used + 1; + _fx_R23C_gen_code__block_ctx_t* v_6 = &bctx_0->data; + _fx_R9Ast__id_t v_7 = v_6->bctx_label; + FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_7, loc_0, &v_0, 0), _fx_cleanup); FX_CALL(_fx_cons_LN14C_form__cexp_t(v_0, 0, true, &v_1), _fx_cleanup); FX_CALL(_fx_cons_LN14C_form__cexp_t(call_exp_0, v_1, false, &v_1), _fx_cleanup); FX_CALL( @@ -15162,6 +14839,7 @@ static int _fx_LN15C_form__cstmt_t v_6 = 0; _fx_LN15C_form__cstmt_t v_7 = 0; int fx_status = 0; + _fx_LrR23C_gen_code__block_ctx_t* block_stack_1 = &block_stack_ref_0->data; FX_CALL(_fx_M11C_gen_typesFM11get_ctpropsR17C_form__ctprops_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, loc_0, &v_0, 0), _fx_cleanup); _fx_Ta2R9Ast__id_t* v_8 = &v_0.ctp_free; @@ -15180,7 +14858,7 @@ static int need_dtor_0 = !res_1; } if (need_dtor_0) { - FX_COPY_PTR(block_stack_ref_0->data, &block_stack_0); + FX_COPY_PTR(*block_stack_1, &block_stack_0); if (block_stack_0 != 0) { FX_COPY_PTR(block_stack_0->hd, &bctx_0); } @@ -15204,28 +14882,32 @@ static int _fx_cleanup); } _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(init_exp_0, &v_2); - FX_COPY_PTR(bctx_0->data.bctx_prologue, &v_3); + _fx_R23C_gen_code__block_ctx_t* v_10 = &bctx_0->data; + FX_COPY_PTR(v_10->bctx_prologue, &v_3); fx_str_t slit_1 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( i_0, ctyp_0, flags_0, &slit_1, &v_2, v_3, loc_0, &v_4, 0), _fx_cleanup); FX_COPY_PTR(v_4.t0, &i_exp_0); FX_COPY_PTR(v_4.t1, &prologue_0); - _fx_LN15C_form__cstmt_t* v_10 = &bctx_0->data.bctx_prologue; - _fx_free_LN15C_form__cstmt_t(v_10); - FX_COPY_PTR(prologue_0, v_10); - FX_COPY_PTR(bctx_0->data.bctx_cleanup, &v_5); + _fx_R23C_gen_code__block_ctx_t* v_11 = &bctx_0->data; + _fx_LN15C_form__cstmt_t* v_12 = &v_11->bctx_prologue; + _fx_free_LN15C_form__cstmt_t(v_12); + FX_COPY_PTR(prologue_0, v_12); + _fx_R23C_gen_code__block_ctx_t* v_13 = &bctx_0->data; + FX_COPY_PTR(v_13->bctx_cleanup, &v_5); FX_CALL( _fx_M11C_gen_typesFM13gen_free_codeLN15C_form__cstmt_t6N14C_form__cexp_tN14C_form__ctyp_tBBLN15C_form__cstmt_tR10Ast__loc_t( i_exp_0, ctyp_0, true, true, v_5, loc_0, &v_6, 0), _fx_cleanup); - _fx_LN15C_form__cstmt_t* v_11 = &bctx_0->data.bctx_cleanup; - _fx_free_LN15C_form__cstmt_t(v_11); - FX_COPY_PTR(v_6, v_11); + _fx_R23C_gen_code__block_ctx_t* v_14 = &bctx_0->data; + _fx_LN15C_form__cstmt_t* v_15 = &v_14->bctx_cleanup; + _fx_free_LN15C_form__cstmt_t(v_15); + FX_COPY_PTR(v_6, v_15); if (ctp_ptr_0 == true) { if (e0_opt_0->tag == 2) { - _fx_N14C_form__cexp_t v_12 = e0_opt_0->u.Some; - if (FX_REC_VARIANT_TAG(v_12) == 2) { - if (v_12->u.CExpLit.t0.tag == 8) { + _fx_N14C_form__cexp_t v_16 = e0_opt_0->u.Some; + if (FX_REC_VARIANT_TAG(v_16) == 2) { + if (v_16->u.CExpLit.t0.tag == 8) { FX_COPY_PTR(ccode_0, &v_7); goto _fx_endmatch_0; } } @@ -15338,10 +15020,11 @@ static int _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tR9Ast__id_t(*i2e_0, i_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1((*i2e_0)->u.t.t5, 0, idx_0), _fx_cleanup); - _fx_N14C_form__cexp_t* v_6 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, (*i2e_0)->u.t.t5, idx_0)->data; - _fx_free_N14C_form__cexp_t(v_6); - FX_COPY_PTR(deref_i_exp_0, v_6); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t* v_6 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, (*i2e_0)->u.t.t5, idx_0); + _fx_N14C_form__cexp_t* v_7 = &v_6->data; + _fx_free_N14C_form__cexp_t(v_7); + FX_COPY_PTR(deref_i_exp_0, v_7); FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e0_0, &v_4, 0), _fx_cleanup); _fx_make_T2N14C_form__cexp_tN14C_form__ctyp_t(v_4, ctyp_ptr_0, &v_1); } @@ -15454,9 +15137,10 @@ static int _fx_M10C_gen_codeFM15make_break_stmtN15C_form__cstmt_t2R10Ast__loc_tr _fx_LN14C_form__cexp_t v_1 = 0; _fx_N14C_form__cexp_t v_2 = 0; int fx_status = 0; + _fx_LrR23C_gen_code__block_ctx_t* block_stack_1 = &block_stack_ref_0->data; FX_CALL(_fx_M10C_gen_codeFM17check_inside_loopv3BR10Ast__loc_trLrRM11block_ctx_t(true, loc_0, block_stack_ref_0, 0), _fx_cleanup); - FX_COPY_PTR(block_stack_ref_0->data, &block_stack_0); + FX_COPY_PTR(*block_stack_1, &block_stack_0); if (block_stack_0 != 0) { FX_COPY_PTR(block_stack_0->hd, &bctx_0); } @@ -15470,9 +15154,12 @@ static int _fx_M10C_gen_codeFM15make_break_stmtN15C_form__cstmt_t2R10Ast__loc_tr fx_free_exn(&v_3); } FX_CHECK_EXN(_fx_cleanup); - bctx_0->data.bctx_label_used = bctx_0->data.bctx_label_used + 1; - _fx_R9Ast__id_t v_4 = bctx_0->data.bctx_label; - FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_4, loc_0, &v_0, 0), _fx_cleanup); + _fx_R23C_gen_code__block_ctx_t* v_4 = &bctx_0->data; + _fx_R23C_gen_code__block_ctx_t* v_5 = &bctx_0->data; + v_5->bctx_label_used = v_4->bctx_label_used + 1; + _fx_R23C_gen_code__block_ctx_t* v_6 = &bctx_0->data; + _fx_R9Ast__id_t v_7 = v_6->bctx_label; + FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_7, loc_0, &v_0, 0), _fx_cleanup); FX_CALL(_fx_cons_LN14C_form__cexp_t(v_0, 0, true, &v_1), _fx_cleanup); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( @@ -15510,9 +15197,10 @@ static int _fx_M10C_gen_codeFM18make_continue_stmtN15C_form__cstmt_t2R10Ast__loc _fx_LN14C_form__cexp_t v_1 = 0; _fx_N14C_form__cexp_t v_2 = 0; int fx_status = 0; + _fx_LrR23C_gen_code__block_ctx_t* block_stack_1 = &block_stack_ref_0->data; FX_CALL(_fx_M10C_gen_codeFM17check_inside_loopv3BR10Ast__loc_trLrRM11block_ctx_t(false, loc_0, block_stack_ref_0, 0), _fx_cleanup); - FX_COPY_PTR(block_stack_ref_0->data, &block_stack_0); + FX_COPY_PTR(*block_stack_1, &block_stack_0); if (block_stack_0 != 0) { FX_COPY_PTR(block_stack_0->hd, &bctx_0); } @@ -15526,9 +15214,12 @@ static int _fx_M10C_gen_codeFM18make_continue_stmtN15C_form__cstmt_t2R10Ast__loc fx_free_exn(&v_3); } FX_CHECK_EXN(_fx_cleanup); - bctx_0->data.bctx_label_used = bctx_0->data.bctx_label_used + 1; - _fx_R9Ast__id_t v_4 = bctx_0->data.bctx_label; - FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_4, loc_0, &v_0, 0), _fx_cleanup); + _fx_R23C_gen_code__block_ctx_t* v_4 = &bctx_0->data; + _fx_R23C_gen_code__block_ctx_t* v_5 = &bctx_0->data; + v_5->bctx_label_used = v_4->bctx_label_used + 1; + _fx_R23C_gen_code__block_ctx_t* v_6 = &bctx_0->data; + _fx_R9Ast__id_t v_7 = v_6->bctx_label; + FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_7, loc_0, &v_0, 0), _fx_cleanup); FX_CALL(_fx_cons_LN14C_form__cexp_t(v_0, 0, true, &v_1), _fx_cleanup); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( @@ -15580,7 +15271,9 @@ static int int_ j_0 = v_2.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*i2e_0)->u.t.t5, 0, j_0), _fx_cleanup); - FX_COPY_PTR(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, (*i2e_0)->u.t.t5, j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, (*i2e_0)->u.t.t5, j_0); + FX_COPY_PTR(v_3->data, &v_1); _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1, &v_0); } else { @@ -15613,64 +15306,65 @@ static int if (res_0) { _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(e_0, ccode_0, fx_result); goto _fx_endmatch_1; } - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_3 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_4 = {0}; _fx_N14C_form__ctyp_t ctyp_0 = 0; - _fx_R17K_form__kdefval_t v_4 = {0}; + _fx_R17K_form__kdefval_t v_5 = {0}; _fx_R16Ast__val_flags_t kv_flags_0 = {0}; - _fx_T3BN14C_form__cexp_tN14C_form__ctyp_t v_5 = {0}; - _fx_N14C_form__cexp_t v_6 = 0; - _fx_N14C_form__ctyp_t v_7 = 0; + _fx_T3BN14C_form__cexp_tN14C_form__ctyp_t v_6 = {0}; + _fx_N14C_form__cexp_t v_7 = 0; + _fx_N14C_form__ctyp_t v_8 = 0; _fx_N14C_form__cexp_t e_1 = 0; _fx_N14C_form__ctyp_t ctyp_1 = 0; - _fx_Nt6option1N14C_form__cexp_t v_8 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_9 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_9 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_10 = {0}; _fx_N14C_form__cexp_t i2_exp_0 = 0; _fx_LN15C_form__cstmt_t ccode_1 = 0; - _fx_N14C_form__cexp_t v_10 = 0; - FX_CALL(_fx_M6C_formFM12get_cexp_ctxT2N14C_form__ctyp_tR10Ast__loc_t1N14C_form__cexp_t(e_0, &v_3, 0), _fx_catch_0); - FX_COPY_PTR(v_3.t0, &ctyp_0); - FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_4, 0), _fx_catch_0); - _fx_copy_R16Ast__val_flags_t(&v_4.kv_flags, &kv_flags_0); + _fx_N14C_form__cexp_t v_11 = 0; + FX_CALL(_fx_M6C_formFM12get_cexp_ctxT2N14C_form__ctyp_tR10Ast__loc_t1N14C_form__cexp_t(e_0, &v_4, 0), _fx_catch_0); + FX_COPY_PTR(v_4.t0, &ctyp_0); + FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_5, 0), _fx_catch_0); + _fx_copy_R16Ast__val_flags_t(&v_5.kv_flags, &kv_flags_0); _fx_R9Ast__id_t i2_0; FX_CALL(_fx_M6C_formFM7dup_idcR9Ast__id_t2iR9Ast__id_t(km_idx_0, i_0, &i2_0, 0), _fx_catch_0); if (kv_flags_0.val_flag_tempref) { - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_0, &v_6, 0), _fx_catch_0); - FX_CALL(_fx_M6C_formFM10CTypRawPtrN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(0, ctyp_0, &v_7), + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_0, &v_7, 0), _fx_catch_0); + FX_CALL(_fx_M6C_formFM10CTypRawPtrN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(0, ctyp_0, &v_8), _fx_catch_0); - _fx_make_T3BN14C_form__cexp_tN14C_form__ctyp_t(true, v_6, v_7, &v_5); + _fx_make_T3BN14C_form__cexp_tN14C_form__ctyp_t(true, v_7, v_8, &v_6); } else { - _fx_make_T3BN14C_form__cexp_tN14C_form__ctyp_t(false, e_0, ctyp_0, &v_5); + _fx_make_T3BN14C_form__cexp_tN14C_form__ctyp_t(false, e_0, ctyp_0, &v_6); } - bool add_deref_0 = v_5.t0; - FX_COPY_PTR(v_5.t1, &e_1); - FX_COPY_PTR(v_5.t2, &ctyp_1); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(e_1, &v_8); + bool add_deref_0 = v_6.t0; + FX_COPY_PTR(v_6.t1, &e_1); + FX_COPY_PTR(v_6.t2, &ctyp_1); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(e_1, &v_9); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &i2_0, ctyp_1, &kv_flags_0, &v_8, ccode_0, loc_0, block_stack_ref_0, &v_9, 0), _fx_catch_0); - FX_COPY_PTR(v_9.t0, &i2_exp_0); - FX_COPY_PTR(v_9.t1, &ccode_1); + &i2_0, ctyp_1, &kv_flags_0, &v_9, ccode_0, loc_0, block_stack_ref_0, &v_10, 0), _fx_catch_0); + FX_COPY_PTR(v_10.t0, &i2_exp_0); + FX_COPY_PTR(v_10.t1, &ccode_1); int_ idx_0; FX_CALL( _fx_M10C_gen_codeFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tR9Ast__id_t(*i2e_0, i_0, &idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1((*i2e_0)->u.t.t5, 0, idx_0), _fx_catch_0); - _fx_N14C_form__cexp_t* v_11 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, (*i2e_0)->u.t.t5, idx_0)->data; - _fx_free_N14C_form__cexp_t(v_11); - FX_COPY_PTR(i2_exp_0, v_11); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t* v_12 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14C_form__cexp_t, (*i2e_0)->u.t.t5, idx_0); + _fx_N14C_form__cexp_t* v_13 = &v_12->data; + _fx_free_N14C_form__cexp_t(v_13); + FX_COPY_PTR(i2_exp_0, v_13); if (add_deref_0) { - FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(i2_exp_0, &v_10, 0), _fx_catch_0); + FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(i2_exp_0, &v_11, 0), _fx_catch_0); } else { - FX_COPY_PTR(i2_exp_0, &v_10); + FX_COPY_PTR(i2_exp_0, &v_11); } - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_10, ccode_1, fx_result); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_11, ccode_1, fx_result); _fx_catch_0: ; - if (v_10) { - _fx_free_N14C_form__cexp_t(&v_10); + if (v_11) { + _fx_free_N14C_form__cexp_t(&v_11); } if (ccode_1) { _fx_free_LN15C_form__cstmt_t(&ccode_1); @@ -15678,27 +15372,27 @@ static int if (i2_exp_0) { _fx_free_N14C_form__cexp_t(&i2_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_9); - _fx_free_Nt6option1N14C_form__cexp_t(&v_8); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_10); + _fx_free_Nt6option1N14C_form__cexp_t(&v_9); if (ctyp_1) { _fx_free_N14C_form__ctyp_t(&ctyp_1); } if (e_1) { _fx_free_N14C_form__cexp_t(&e_1); } - if (v_7) { - _fx_free_N14C_form__ctyp_t(&v_7); + if (v_8) { + _fx_free_N14C_form__ctyp_t(&v_8); } - if (v_6) { - _fx_free_N14C_form__cexp_t(&v_6); + if (v_7) { + _fx_free_N14C_form__cexp_t(&v_7); } - _fx_free_T3BN14C_form__cexp_tN14C_form__ctyp_t(&v_5); + _fx_free_T3BN14C_form__cexp_tN14C_form__ctyp_t(&v_6); _fx_free_R16Ast__val_flags_t(&kv_flags_0); - _fx_free_R17K_form__kdefval_t(&v_4); + _fx_free_R17K_form__kdefval_t(&v_5); if (ctyp_0) { _fx_free_N14C_form__ctyp_t(&ctyp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_3); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_4); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_1); @@ -15707,16 +15401,16 @@ static int } else { _fx_N14C_form__cexp_t e_2 = 0; - _fx_N15C_form__cinfo_t v_12 = {0}; + _fx_N15C_form__cinfo_t v_14 = {0}; _fx_N14C_form__cexp_t e_3 = 0; FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &e_2, 0), _fx_catch_4); - FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_12, 0), _fx_catch_4); - if (v_12.tag == 2) { - _fx_N15C_form__cstmt_t v_13 = 0; - _fx_LN15C_form__cstmt_t v_14 = 0; - _fx_R17C_form__cdefval_t* v_15 = &v_12.u.CVal; - _fx_R16Ast__val_flags_t* cv_flags_0 = &v_15->cv_flags; - _fx_N14C_form__ctyp_t cv_typ_0 = v_15->cv_typ; + FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_14, 0), _fx_catch_4); + if (v_14.tag == 2) { + _fx_N15C_form__cstmt_t v_15 = 0; + _fx_LN15C_form__cstmt_t v_16 = 0; + _fx_R17C_form__cdefval_t* v_17 = &v_14.u.CVal; + _fx_R16Ast__val_flags_t* cv_flags_0 = &v_17->cv_flags; + _fx_N14C_form__ctyp_t cv_typ_0 = v_17->cv_typ; bool res_1; FX_CALL(_fx_M6K_formFM13is_val_globalB1R16Ast__val_flags_t(cv_flags_0, &res_1, 0), _fx_catch_3); bool t_0; @@ -15727,33 +15421,33 @@ static int t_0 = cv_flags_0->val_flag_ctor > 0; } if (t_0) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - _fx_Ta2i v_16; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + _fx_Ta2i v_18; FX_CALL( _fx_M10C_gen_codeFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*defined_syms_0, i_0, - __fold_result___0 & 9223372036854775807ULL, &v_16, 0), _fx_catch_3); - if (!(v_16.t1 >= 0)) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + h_0 & 9223372036854775807ULL, &v_18, 0), _fx_catch_3); + if (!(v_18.t1 >= 0)) { + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( _fx_M10C_gen_codeFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*defined_syms_0, i_0, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_3); - FX_CALL(_fx_M6C_formFM14CDefForwardSymN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_13), + h_1 & 9223372036854775807ULL, 0), _fx_catch_3); + FX_CALL(_fx_M6C_formFM14CDefForwardSymN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_15), _fx_catch_3); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_13, *fwd_fdecls_0, true, &v_14), _fx_catch_3); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_15, *fwd_fdecls_0, true, &v_16), _fx_catch_3); _fx_free_LN15C_form__cstmt_t(fwd_fdecls_0); - FX_COPY_PTR(v_14, fwd_fdecls_0); + FX_COPY_PTR(v_16, fwd_fdecls_0); } } if (FX_REC_VARIANT_TAG(cv_typ_0) == 17) { @@ -15774,11 +15468,11 @@ static int FX_CHECK_EXN(_fx_catch_3); _fx_catch_3: ; - if (v_14) { - _fx_free_LN15C_form__cstmt_t(&v_14); + if (v_16) { + _fx_free_LN15C_form__cstmt_t(&v_16); } - if (v_13) { - _fx_free_N15C_form__cstmt_t(&v_13); + if (v_15) { + _fx_free_N15C_form__cstmt_t(&v_15); } } else { @@ -15791,7 +15485,7 @@ static int if (e_3) { _fx_free_N14C_form__cexp_t(&e_3); } - _fx_free_N15C_form__cinfo_t(&v_12); + _fx_free_N15C_form__cinfo_t(&v_14); if (e_2) { _fx_free_N14C_form__cexp_t(&e_2); } @@ -15820,7 +15514,7 @@ static int _fx_N14C_form__cexp_t bctx_status_0 = 0; _fx_LN15C_form__cstmt_t bctx_cleanup_0 = 0; _fx_LN15C_form__cstmt_t bctx_prologue_0 = 0; - _fx_LN15C_form__cstmt_t __fold_result___0 = 0; + _fx_LN15C_form__cstmt_t res_0 = 0; _fx_LN15C_form__cstmt_t epilogue_0 = 0; _fx_T2R9Ast__id_tLN15C_form__cstmt_t v_0 = {0}; _fx_LrR23C_gen_code__block_ctx_t block_stack_1 = 0; @@ -15890,18 +15584,18 @@ static int FX_COPY_PTR(v_27->bctx_prologue, &bctx_prologue_0); _fx_N24C_gen_code__block_kind_t bctx_kind_0 = v_27->bctx_kind; int tag_0 = bctx_kind_0.tag; - bool res_0; + bool res_1; if (tag_0 == 5) { - res_0 = true; + res_1 = true; } else if (tag_0 == 6) { - res_0 = true; + res_1 = true; } else { - res_0 = false; + res_1 = false; } FX_CHECK_EXN(_fx_cleanup); - if (res_0) { + if (res_1) { goto _fx_endmatch_0; } fx_exn_t v_28 = {0}; @@ -15916,20 +15610,19 @@ _fx_endmatch_0: ; FX_CHECK_EXN(_fx_cleanup); _fx_LN15C_form__cstmt_t lst_0 = bctx_cleanup_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN15C_form__cstmt_t r_0 = 0; + _fx_LN15C_form__cstmt_t v_29 = 0; _fx_N15C_form__cstmt_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, r_0, false, &r_0), _fx_catch_2); - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, res_0, true, &v_29), _fx_catch_2); + _fx_free_LN15C_form__cstmt_t(&res_0); + FX_COPY_PTR(v_29, &res_0); _fx_catch_2: ; - if (r_0) { - _fx_free_LN15C_form__cstmt_t(&r_0); + if (v_29) { + _fx_free_LN15C_form__cstmt_t(&v_29); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &epilogue_0); + FX_COPY_PTR(res_0, &epilogue_0); bool is_parallel_0 = bctx_for_flags_0.for_flag_parallel; if (bctx_label_used_0 + bctx_break_used_0 + bctx_continue_used_0 == 0) { _fx_make_T2R9Ast__id_tLN15C_form__cstmt_t(&_fx_g9Ast__noid, epilogue_0, &v_0); @@ -15937,26 +15630,29 @@ _fx_endmatch_0: ; else { FX_COPY_PTR(*block_stack_3, &block_stack_1); if (block_stack_1 != 0) { - _fx_LrR23C_gen_code__block_ctx_t v_29 = block_stack_1->tl; - if (v_29 != 0) { - _fx_rR23C_gen_code__block_ctx_t parent_0 = v_29->hd; - parent_0->data.bctx_label_used = parent_0->data.bctx_label_used + 1; - _fx_R9Ast__id_t v_30 = parent_0->data.bctx_label; + _fx_LrR23C_gen_code__block_ctx_t v_30 = block_stack_1->tl; + if (v_30 != 0) { + _fx_rR23C_gen_code__block_ctx_t parent_0 = v_30->hd; + _fx_R23C_gen_code__block_ctx_t* v_31 = &parent_0->data; + _fx_R23C_gen_code__block_ctx_t* v_32 = &parent_0->data; + v_32->bctx_label_used = v_31->bctx_label_used + 1; + _fx_R23C_gen_code__block_ctx_t* v_33 = &parent_0->data; + _fx_R9Ast__id_t v_34 = v_33->bctx_label; FX_CALL( - _fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_30, &end_loc_0, &parent_label_exp_0, 0), + _fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_34, &end_loc_0, &parent_label_exp_0, 0), _fx_catch_3); _fx_catch_3: ; goto _fx_endmatch_1; } } - fx_exn_t v_31 = {0}; + fx_exn_t v_35 = {0}; fx_str_t slit_2 = FX_MAKE_STR("cgen internal err: there is no parent block!"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&end_loc_0, &slit_2, &v_31, 0), _fx_catch_4); - FX_THROW(&v_31, false, _fx_catch_4); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&end_loc_0, &slit_2, &v_35, 0), _fx_catch_4); + FX_THROW(&v_35, false, _fx_catch_4); _fx_catch_4: ; - fx_free_exn(&v_31); + fx_free_exn(&v_35); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_cleanup); @@ -15970,23 +15666,23 @@ _fx_endmatch_0: ; FX_COPY_PTR(epilogue_0, &epilogue_1); } else { - _fx_LN15C_form__cstmt_t v_32 = 0; + _fx_LN15C_form__cstmt_t v_36 = 0; _fx_LN15C_form__cstmt_t lstend_0 = 0; _fx_LN15C_form__cstmt_t lst_1 = epilogue_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N15C_form__cstmt_t x_0 = lst_1->hd; _fx_LN15C_form__cstmt_t node_0 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_0, 0, false, &node_0), _fx_catch_5); - FX_LIST_APPEND(v_32, lstend_0, node_0); + FX_LIST_APPEND(v_36, lstend_0, node_0); _fx_catch_5: ; FX_CHECK_EXN(_fx_catch_6); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_32, v_2, &epilogue_1, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_36, v_2, &epilogue_1, 0); _fx_catch_6: ; - if (v_32) { - _fx_free_LN15C_form__cstmt_t(&v_32); + if (v_36) { + _fx_free_LN15C_form__cstmt_t(&v_36); } } FX_CHECK_EXN(_fx_cleanup); @@ -16020,9 +15716,9 @@ _fx_endmatch_0: ; _fx_make_T2R9Ast__id_tLN15C_form__cstmt_t(&_fx_g9Ast__noid, 0, &v_7); } else { - bool res_1; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&bctx_br_label_0, &_fx_g9Ast__noid, &res_1, 0), _fx_cleanup); - if (res_1) { + bool res_2; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&bctx_br_label_0, &_fx_g9Ast__noid, &res_2, 0), _fx_cleanup); + if (res_2) { FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( &_fx_g26C_form__std_FX_CHECK_BREAK, 0, _fx_g20C_gen_code__CTypVoid, &end_loc_0, &v_8, 0), _fx_cleanup); @@ -16059,13 +15755,13 @@ _fx_endmatch_0: ; FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_18, 0, true, &check_exn_code_0), _fx_cleanup); } else { - _fx_R9Ast__id_t v_33; + _fx_R9Ast__id_t v_37; fx_str_t slit_6 = FX_MAKE_STR("FX_CHECK_EXN_PARALLEL"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_6, &v_33, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_6, &v_37, 0), _fx_cleanup); FX_CALL(_fx_cons_LN14C_form__cexp_t(bctx_par_status_0, 0, true, &v_19), _fx_cleanup); FX_CALL(_fx_cons_LN14C_form__cexp_t(bctx_status_0, v_19, false, &v_19), _fx_cleanup); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_33, v_19, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_37, v_19, _fx_g20C_gen_code__CTypVoid, &end_loc_0, &v_20, 0), _fx_cleanup); FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_20, &v_21), _fx_cleanup); FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_21, 0, true, &check_exn_code_0), _fx_cleanup); @@ -16077,23 +15773,23 @@ _fx_endmatch_0: ; FX_COPY_PTR(continue_code_0, &v_22); } else { - _fx_LN15C_form__cstmt_t v_34 = 0; + _fx_LN15C_form__cstmt_t v_38 = 0; _fx_LN15C_form__cstmt_t lstend_1 = 0; _fx_LN15C_form__cstmt_t lst_2 = continue_code_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_N15C_form__cstmt_t x_1 = lst_2->hd; _fx_LN15C_form__cstmt_t node_1 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_1, 0, false, &node_1), _fx_catch_7); - FX_LIST_APPEND(v_34, lstend_1, node_1); + FX_LIST_APPEND(v_38, lstend_1, node_1); _fx_catch_7: ; FX_CHECK_EXN(_fx_catch_8); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_34, epilogue_1, &v_22, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_38, epilogue_1, &v_22, 0); _fx_catch_8: ; - if (v_34) { - _fx_free_LN15C_form__cstmt_t(&v_34); + if (v_38) { + _fx_free_LN15C_form__cstmt_t(&v_38); } } FX_CHECK_EXN(_fx_cleanup); @@ -16104,23 +15800,23 @@ _fx_endmatch_0: ; FX_COPY_PTR(break_code_0, &v_23); } else { - _fx_LN15C_form__cstmt_t v_35 = 0; + _fx_LN15C_form__cstmt_t v_39 = 0; _fx_LN15C_form__cstmt_t lstend_2 = 0; _fx_LN15C_form__cstmt_t lst_3 = break_code_0; for (; lst_3; lst_3 = lst_3->tl) { _fx_N15C_form__cstmt_t x_2 = lst_3->hd; _fx_LN15C_form__cstmt_t node_2 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_2, 0, false, &node_2), _fx_catch_9); - FX_LIST_APPEND(v_35, lstend_2, node_2); + FX_LIST_APPEND(v_39, lstend_2, node_2); _fx_catch_9: ; FX_CHECK_EXN(_fx_catch_10); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_35, v_22, &v_23, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_39, v_22, &v_23, 0); _fx_catch_10: ; - if (v_35) { - _fx_free_LN15C_form__cstmt_t(&v_35); + if (v_39) { + _fx_free_LN15C_form__cstmt_t(&v_39); } } FX_CHECK_EXN(_fx_cleanup); @@ -16131,23 +15827,23 @@ _fx_endmatch_0: ; FX_COPY_PTR(check_exn_code_0, &v_24); } else { - _fx_LN15C_form__cstmt_t v_36 = 0; + _fx_LN15C_form__cstmt_t v_40 = 0; _fx_LN15C_form__cstmt_t lstend_3 = 0; _fx_LN15C_form__cstmt_t lst_4 = check_exn_code_0; for (; lst_4; lst_4 = lst_4->tl) { _fx_N15C_form__cstmt_t x_3 = lst_4->hd; _fx_LN15C_form__cstmt_t node_3 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_3, 0, false, &node_3), _fx_catch_11); - FX_LIST_APPEND(v_36, lstend_3, node_3); + FX_LIST_APPEND(v_40, lstend_3, node_3); _fx_catch_11: ; FX_CHECK_EXN(_fx_catch_12); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_36, v_23, &v_24, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_40, v_23, &v_24, 0); _fx_catch_12: ; - if (v_36) { - _fx_free_LN15C_form__cstmt_t(&v_36); + if (v_40) { + _fx_free_LN15C_form__cstmt_t(&v_40); } } FX_CHECK_EXN(_fx_cleanup); @@ -16162,23 +15858,23 @@ _fx_endmatch_0: ; FX_COPY_PTR(body_code_0, &v_25); } else { - _fx_LN15C_form__cstmt_t v_37 = 0; + _fx_LN15C_form__cstmt_t v_41 = 0; _fx_LN15C_form__cstmt_t lstend_4 = 0; _fx_LN15C_form__cstmt_t lst_5 = body_code_0; for (; lst_5; lst_5 = lst_5->tl) { _fx_N15C_form__cstmt_t x_4 = lst_5->hd; _fx_LN15C_form__cstmt_t node_4 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_4, 0, false, &node_4), _fx_catch_13); - FX_LIST_APPEND(v_37, lstend_4, node_4); + FX_LIST_APPEND(v_41, lstend_4, node_4); _fx_catch_13: ; FX_CHECK_EXN(_fx_catch_14); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_37, bctx_prologue_0, &v_25, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_41, bctx_prologue_0, &v_25, 0); _fx_catch_14: ; - if (v_37) { - _fx_free_LN15C_form__cstmt_t(&v_37); + if (v_41) { + _fx_free_LN15C_form__cstmt_t(&v_41); } } FX_CHECK_EXN(_fx_cleanup); @@ -16189,23 +15885,23 @@ _fx_endmatch_0: ; FX_COPY_PTR(epilogue_2, &body_code_1); } else { - _fx_LN15C_form__cstmt_t v_38 = 0; + _fx_LN15C_form__cstmt_t v_42 = 0; _fx_LN15C_form__cstmt_t lstend_5 = 0; _fx_LN15C_form__cstmt_t lst_6 = epilogue_2; for (; lst_6; lst_6 = lst_6->tl) { _fx_N15C_form__cstmt_t x_5 = lst_6->hd; _fx_LN15C_form__cstmt_t node_5 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_5, 0, false, &node_5), _fx_catch_15); - FX_LIST_APPEND(v_38, lstend_5, node_5); + FX_LIST_APPEND(v_42, lstend_5, node_5); _fx_catch_15: ; FX_CHECK_EXN(_fx_catch_16); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_38, v_25, &body_code_1, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_42, v_25, &body_code_1, 0); _fx_catch_16: ; - if (v_38) { - _fx_free_LN15C_form__cstmt_t(&v_38); + if (v_42) { + _fx_free_LN15C_form__cstmt_t(&v_42); } } FX_CHECK_EXN(_fx_cleanup); @@ -16218,13 +15914,13 @@ _fx_endmatch_0: ; FX_COPY_PTR(*rest_0, block_stack_3); } else { - fx_exn_t v_39 = {0}; + fx_exn_t v_43 = {0}; fx_str_t slit_7 = FX_MAKE_STR("cgen: empty block stack!"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&end_loc_0, &slit_7, &v_39, 0), _fx_catch_17); - FX_THROW(&v_39, false, _fx_catch_17); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&end_loc_0, &slit_7, &v_43, 0), _fx_catch_17); + FX_THROW(&v_43, false, _fx_catch_17); _fx_catch_17: ; - fx_free_exn(&v_39); + fx_free_exn(&v_43); } FX_CHECK_EXN(_fx_cleanup); _fx_make_T2R9Ast__id_tN15C_form__cstmt_t(&br_label_1, body_stmt_0, fx_result); @@ -16248,8 +15944,8 @@ _fx_cleanup: ; if (bctx_prologue_0) { _fx_free_LN15C_form__cstmt_t(&bctx_prologue_0); } - if (__fold_result___0) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); + if (res_0) { + _fx_free_LN15C_form__cstmt_t(&res_0); } if (epilogue_0) { _fx_free_LN15C_form__cstmt_t(&epilogue_0); @@ -17240,6 +16936,7 @@ static int _fx_N14C_form__cexp_t fx_call_e_0 = 0; _fx_N15C_form__cstmt_t v_6 = 0; int fx_status = 0; + _fx_LrR23C_gen_code__block_ctx_t* block_stack_1 = &block_stack_ref_0->data; FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(lst_exp_0, &ctyp_0, 0), _fx_cleanup); FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(hd_exp_0, &ctyp_1, 0), _fx_cleanup); FX_CALL(_fx_M11C_gen_typesFM11get_ctpropsR17C_form__ctprops_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_1, loc_0, &v_0, 0), @@ -17263,7 +16960,7 @@ static int FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&lcon_0, v_3, _fx_g20C_gen_code__CTypCInt, loc_0, &call_cons_0, 0), _fx_cleanup); - FX_COPY_PTR(block_stack_ref_0->data, &block_stack_0); + FX_COPY_PTR(*block_stack_1, &block_stack_0); if (block_stack_0 != 0) { FX_COPY_PTR(block_stack_0->hd, &bctx_0); } @@ -17277,9 +16974,12 @@ static int fx_free_exn(&v_7); } FX_CHECK_EXN(_fx_cleanup); - bctx_0->data.bctx_label_used = bctx_0->data.bctx_label_used + 1; - _fx_R9Ast__id_t v_8 = bctx_0->data.bctx_label; - FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_8, loc_0, &v_4, 0), _fx_cleanup); + _fx_R23C_gen_code__block_ctx_t* v_8 = &bctx_0->data; + _fx_R23C_gen_code__block_ctx_t* v_9 = &bctx_0->data; + v_9->bctx_label_used = v_8->bctx_label_used + 1; + _fx_R23C_gen_code__block_ctx_t* v_10 = &bctx_0->data; + _fx_R9Ast__id_t v_11 = v_10->bctx_label; + FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_11, loc_0, &v_4, 0), _fx_cleanup); FX_CALL(_fx_cons_LN14C_form__cexp_t(v_4, 0, true, &v_5), _fx_cleanup); FX_CALL(_fx_cons_LN14C_form__cexp_t(call_cons_0, v_5, false, &v_5), _fx_cleanup); FX_CALL( @@ -17356,6 +17056,7 @@ static int _fx_N14C_form__cexp_t fx_call_e_0 = 0; _fx_N15C_form__cstmt_t v_5 = 0; int fx_status = 0; + _fx_LrR23C_gen_code__block_ctx_t* block_stack_1 = &block_stack_ref_0->data; FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(r_exp_0, &ctyp_0, 0), _fx_cleanup); FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(arg_exp_0, &ctyp_1, 0), _fx_cleanup); FX_CALL(_fx_M11C_gen_typesFM11get_ctpropsR17C_form__ctprops_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_1, loc_0, &v_0, 0), @@ -17376,7 +17077,7 @@ static int FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&rcon_0, v_2, _fx_g20C_gen_code__CTypCInt, loc_0, &call_mkref_0, 0), _fx_cleanup); - FX_COPY_PTR(block_stack_ref_0->data, &block_stack_0); + FX_COPY_PTR(*block_stack_1, &block_stack_0); if (block_stack_0 != 0) { FX_COPY_PTR(block_stack_0->hd, &bctx_0); } @@ -17390,9 +17091,12 @@ static int fx_free_exn(&v_6); } FX_CHECK_EXN(_fx_cleanup); - bctx_0->data.bctx_label_used = bctx_0->data.bctx_label_used + 1; - _fx_R9Ast__id_t v_7 = bctx_0->data.bctx_label; - FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_7, loc_0, &v_3, 0), _fx_cleanup); + _fx_R23C_gen_code__block_ctx_t* v_7 = &bctx_0->data; + _fx_R23C_gen_code__block_ctx_t* v_8 = &bctx_0->data; + v_8->bctx_label_used = v_7->bctx_label_used + 1; + _fx_R23C_gen_code__block_ctx_t* v_9 = &bctx_0->data; + _fx_R9Ast__id_t v_10 = v_9->bctx_label; + FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_10, loc_0, &v_3, 0), _fx_cleanup); FX_CALL(_fx_cons_LN14C_form__cexp_t(v_3, 0, true, &v_4), _fx_cleanup); FX_CALL(_fx_cons_LN14C_form__cexp_t(call_mkref_0, v_4, false, &v_4), _fx_cleanup); FX_CALL( @@ -17454,9 +17158,8 @@ static int { int fx_status = 0; if (check_list_0 != 0) { - _fx_N14C_form__cexp_t __fold_result___0 = 0; - _fx_LN14C_form__cexp_t rest_0 = 0; _fx_N14C_form__cexp_t sum_checks_0 = 0; + _fx_LN14C_form__cexp_t rest_0 = 0; _fx_R16Ast__val_flags_t v_0 = {0}; _fx_Nt6option1N14C_form__cexp_t v_1 = {0}; _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_2 = {0}; @@ -17472,33 +17175,27 @@ static int _fx_N14C_form__cexp_t check_call_0 = 0; _fx_N15C_form__cstmt_t v_8 = 0; int_ n_0 = _fx_M10C_gen_codeFM6lengthi1LN14C_form__cexp_t(check_list_0, 0); - FX_COPY_PTR(check_list_0->hd, &__fold_result___0); + FX_COPY_PTR(check_list_0->hd, &sum_checks_0); FX_COPY_PTR(check_list_0->tl, &rest_0); _fx_LN14C_form__cexp_t lst_0 = rest_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_N14C_form__cexp_t sum_checks_1 = 0; _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_9 = {0}; _fx_N14C_form__cexp_t v_10 = 0; _fx_N14C_form__cexp_t check_i_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &sum_checks_1); _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypCInt, loc_0, &v_9); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g18C_gen_code__COpAdd, sum_checks_1, check_i_0, &v_9, &v_10), _fx_catch_0); - _fx_free_N14C_form__cexp_t(&__fold_result___0); - FX_COPY_PTR(v_10, &__fold_result___0); + &_fx_g18C_gen_code__COpAdd, sum_checks_0, check_i_0, &v_9, &v_10), _fx_catch_0); + _fx_free_N14C_form__cexp_t(&sum_checks_0); + FX_COPY_PTR(v_10, &sum_checks_0); _fx_catch_0: ; if (v_10) { _fx_free_N14C_form__cexp_t(&v_10); } _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_9); - if (sum_checks_1) { - _fx_free_N14C_form__cexp_t(&sum_checks_1); - } FX_CHECK_EXN(_fx_catch_1); } - FX_COPY_PTR(__fold_result___0, &sum_checks_0); _fx_R9Ast__id_t sum_id_0; fx_str_t slit_0 = FX_MAKE_STR("s"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_0, &sum_id_0, 0), _fx_catch_1); @@ -17569,14 +17266,11 @@ static int _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_2); _fx_free_Nt6option1N14C_form__cexp_t(&v_1); _fx_free_R16Ast__val_flags_t(&v_0); - if (sum_checks_0) { - _fx_free_N14C_form__cexp_t(&sum_checks_0); - } if (rest_0) { _fx_free_LN14C_form__cexp_t(&rest_0); } - if (__fold_result___0) { - _fx_free_N14C_form__cexp_t(&__fold_result___0); + if (sum_checks_0) { + _fx_free_N14C_form__cexp_t(&sum_checks_0); } } else { @@ -17615,10 +17309,6 @@ static int _fx_T2LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_2 = {0}; _fx_LT2R9Ast__id_tN13K_form__dom_t idoml_1 = 0; _fx_LR9Ast__id_t at_ids_1 = 0; - _fx_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t - __fold_result___0 = {0}; - _fx_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t - v_3 = {0}; _fx_LN14C_form__cexp_t list_exps_0 = 0; _fx_LN14C_form__cexp_t i_exps_0 = 0; _fx_LN14C_form__cexp_t n_exps_0 = 0; @@ -17629,28 +17319,25 @@ static int _fx_LN15C_form__cstmt_t pre_body_ccode_0 = 0; _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t body_elems_0 = 0; _fx_LN14C_form__cexp_t post_checks_0 = 0; - _fx_LN14C_form__cexp_t v_4 = 0; + _fx_LN14C_form__cexp_t v_3 = 0; _fx_LN15C_form__cstmt_t init_ccode_2 = 0; - _fx_Ta2LN15C_form__cstmt_t v_5 = {0}; - _fx_LN15C_form__cstmt_t v_6 = 0; + _fx_Ta2LN15C_form__cstmt_t v_4 = {0}; + _fx_LN15C_form__cstmt_t v_5 = 0; _fx_LN15C_form__cstmt_t init_ccode_3 = 0; _fx_LN15C_form__cstmt_t pre_body_ccode_1 = 0; _fx_LN14C_form__cexp_t post_checks_1 = 0; _fx_LN14C_form__cexp_t post_checks_2 = 0; + _fx_N14C_form__cexp_t v_6 = 0; _fx_N14C_form__cexp_t v_7 = 0; - _fx_N14C_form__cexp_t v_8 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_9 = {0}; - _fx_N14C_form__cexp_t v_10 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_8 = {0}; + _fx_N14C_form__cexp_t v_9 = 0; _fx_LN15C_form__cstmt_t post_ccode_0 = 0; - _fx_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t __fold_result___1 = {0}; - _fx_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_11 = {0}; _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t for_headers_0 = 0; _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t for_headers_1 = 0; - _fx_Nt6option1N14C_form__cexp_t __fold_result___2 = {0}; - _fx_LN14C_form__cexp_t v_12 = 0; _fx_Nt6option1N14C_form__cexp_t check_exp_opt_0 = {0}; - _fx_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_13 = {0}; - _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_14 = 0; + _fx_LN14C_form__cexp_t v_10 = 0; + _fx_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_11 = {0}; + _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_12 = 0; int fx_status = 0; _fx_M10C_gen_codeFM11process_forT8LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN15C_form__cstmt_t16N14C_form__cexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tiiiiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti_cldata_t* cv_0 = @@ -17679,101 +17366,101 @@ static int _fx_make_T2LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(idoml_0, at_ids_0, &v_2); } else { - bool __fold_result___3 = false; + bool __fold_result___0 = false; _fx_LT2R9Ast__id_tN13K_form__dom_t lst_0 = idoml_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_N13K_form__dom_t dom_i_0 = {0}; _fx_T2R9Ast__id_tN13K_form__dom_t* __pat___0 = &lst_0->hd; _fx_copy_N13K_form__dom_t(&__pat___0->t1, &dom_i_0); int tag_0 = dom_i_0.tag; - bool v_15; + bool v_13; if (tag_0 == 1) { - _fx_N14K_form__atom_t* v_16 = &dom_i_0.u.DomainElem; - if (v_16->tag == 1) { - _fx_N14K_form__ktyp_t v_17 = 0; - _fx_N14K_form__ktyp_t v_18 = 0; - FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(&v_16->u.AtomId, loc_0, &v_17, 0), + _fx_N14K_form__atom_t* v_14 = &dom_i_0.u.DomainElem; + if (v_14->tag == 1) { + _fx_N14K_form__ktyp_t v_15 = 0; + _fx_N14K_form__ktyp_t v_16 = 0; + FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(&v_14->u.AtomId, loc_0, &v_15, 0), _fx_catch_0); - FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(v_17, loc_0, &v_18, 0), + FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(v_15, loc_0, &v_16, 0), _fx_catch_0); - if (FX_REC_VARIANT_TAG(v_18) == 19) { - v_15 = false; + if (FX_REC_VARIANT_TAG(v_16) == 19) { + v_13 = false; } else { - v_15 = true; + v_13 = true; } FX_CHECK_EXN(_fx_catch_0); _fx_catch_0: ; - if (v_18) { - _fx_free_N14K_form__ktyp_t(&v_18); + if (v_16) { + _fx_free_N14K_form__ktyp_t(&v_16); } - if (v_17) { - _fx_free_N14K_form__ktyp_t(&v_17); + if (v_15) { + _fx_free_N14K_form__ktyp_t(&v_15); } goto _fx_endmatch_0; } } if (tag_0 == 2) { - _fx_N14K_form__atom_t* v_19 = &dom_i_0.u.DomainFast; - if (v_19->tag == 1) { - _fx_N14K_form__ktyp_t v_20 = 0; - _fx_N14K_form__ktyp_t v_21 = 0; - FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(&v_19->u.AtomId, loc_0, &v_20, 0), + _fx_N14K_form__atom_t* v_17 = &dom_i_0.u.DomainFast; + if (v_17->tag == 1) { + _fx_N14K_form__ktyp_t v_18 = 0; + _fx_N14K_form__ktyp_t v_19 = 0; + FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(&v_17->u.AtomId, loc_0, &v_18, 0), _fx_catch_1); - FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(v_20, loc_0, &v_21, 0), + FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(v_18, loc_0, &v_19, 0), _fx_catch_1); - if (FX_REC_VARIANT_TAG(v_21) == 19) { - v_15 = false; + if (FX_REC_VARIANT_TAG(v_19) == 19) { + v_13 = false; } else { - v_15 = true; + v_13 = true; } FX_CHECK_EXN(_fx_catch_1); _fx_catch_1: ; - if (v_21) { - _fx_free_N14K_form__ktyp_t(&v_21); + if (v_19) { + _fx_free_N14K_form__ktyp_t(&v_19); } - if (v_20) { - _fx_free_N14K_form__ktyp_t(&v_20); + if (v_18) { + _fx_free_N14K_form__ktyp_t(&v_18); } goto _fx_endmatch_0; } } if (tag_0 == 1) { - _fx_N14K_form__atom_t* v_22 = &dom_i_0.u.DomainElem; - if (v_22->tag == 2) { - if (v_22->u.AtomLit.tag == 8) { - v_15 = false; goto _fx_endmatch_0; + _fx_N14K_form__atom_t* v_20 = &dom_i_0.u.DomainElem; + if (v_20->tag == 2) { + if (v_20->u.AtomLit.tag == 8) { + v_13 = false; goto _fx_endmatch_0; } } } if (tag_0 == 3) { - _fx_N14K_form__atom_t* v_23 = &dom_i_0.u.DomainRange.t2; - if (v_23->tag == 2) { - _fx_N14K_form__klit_t* v_24 = &v_23->u.AtomLit; - if (v_24->tag == 1) { - if (v_24->u.KLitInt == 1LL) { - v_15 = false; goto _fx_endmatch_0; + _fx_N14K_form__atom_t* v_21 = &dom_i_0.u.DomainRange.t2; + if (v_21->tag == 2) { + _fx_N14K_form__klit_t* v_22 = &v_21->u.AtomLit; + if (v_22->tag == 1) { + if (v_22->u.KLitInt == 1LL) { + v_13 = false; goto _fx_endmatch_0; } } } } if (tag_0 == 3) { - _fx_N14K_form__atom_t* v_25 = &dom_i_0.u.DomainRange.t1; - if (v_25->tag == 2) { - if (v_25->u.AtomLit.tag == 8) { - v_15 = false; goto _fx_endmatch_0; + _fx_N14K_form__atom_t* v_23 = &dom_i_0.u.DomainRange.t1; + if (v_23->tag == 2) { + if (v_23->u.AtomLit.tag == 8) { + v_13 = false; goto _fx_endmatch_0; } } } - v_15 = true; + v_13 = true; _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_2); - if (v_15) { - __fold_result___3 = true; FX_BREAK(_fx_catch_2); + if (v_13) { + __fold_result___0 = true; FX_BREAK(_fx_catch_2); } _fx_catch_2: ; @@ -17781,108 +17468,81 @@ static int FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_cleanup); } - bool have_good_idx_0 = __fold_result___3; + bool have_good_idx_0 = __fold_result___0; if (have_good_idx_0 == true) { _fx_make_T2LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(idoml_0, at_ids_0, &v_2); goto _fx_endmatch_1; } if (have_good_idx_0 == false) { if (at_ids_0 != 0) { if (at_ids_0->tl == 0) { + _fx_N14K_form__klit_t v_24 = {0}; + _fx_N14K_form__atom_t v_25 = {0}; _fx_N14K_form__klit_t v_26 = {0}; _fx_N14K_form__atom_t v_27 = {0}; - _fx_N14K_form__klit_t v_28 = {0}; - _fx_N14K_form__atom_t v_29 = {0}; - _fx_N13K_form__dom_t v_30 = {0}; + _fx_N13K_form__dom_t v_28 = {0}; _fx_T2R9Ast__id_tN13K_form__dom_t i_iter_0 = {0}; - _fx_LT2R9Ast__id_tN13K_form__dom_t v_31 = 0; - _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(0LL, &v_26); + _fx_LT2R9Ast__id_tN13K_form__dom_t v_29 = 0; + _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(0LL, &v_24); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_24, &v_25); + _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(1LL, &v_26); _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_26, &v_27); - _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(1LL, &v_28); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_28, &v_29); - _fx_M6K_formFM11DomainRangeN13K_form__dom_t3N14K_form__atom_tN14K_form__atom_tN14K_form__atom_t(&v_27, - &_fx_g17K_form___ALitVoid, &v_29, &v_30); - _fx_make_T2R9Ast__id_tN13K_form__dom_t(&at_ids_0->hd, &v_30, &i_iter_0); - FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&i_iter_0, idoml_0, true, &v_31), _fx_catch_3); - _fx_make_T2LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(v_31, 0, &v_2); + _fx_M6K_formFM11DomainRangeN13K_form__dom_t3N14K_form__atom_tN14K_form__atom_tN14K_form__atom_t(&v_25, + &_fx_g17K_form___ALitVoid, &v_27, &v_28); + _fx_make_T2R9Ast__id_tN13K_form__dom_t(&at_ids_0->hd, &v_28, &i_iter_0); + FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&i_iter_0, idoml_0, true, &v_29), _fx_catch_3); + _fx_make_T2LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(v_29, 0, &v_2); _fx_catch_3: ; - if (v_31) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_31); + if (v_29) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_29); } _fx_free_T2R9Ast__id_tN13K_form__dom_t(&i_iter_0); - _fx_free_N13K_form__dom_t(&v_30); - _fx_free_N14K_form__atom_t(&v_29); - _fx_free_N14K_form__klit_t(&v_28); + _fx_free_N13K_form__dom_t(&v_28); _fx_free_N14K_form__atom_t(&v_27); _fx_free_N14K_form__klit_t(&v_26); + _fx_free_N14K_form__atom_t(&v_25); + _fx_free_N14K_form__klit_t(&v_24); goto _fx_endmatch_1; } } } - fx_str_t v_32 = {0}; - fx_exn_t v_33 = {0}; + fx_str_t v_30 = {0}; + fx_exn_t v_31 = {0}; fx_str_t slit_1 = FX_MAKE_STR("here @ clause should contain just one scalar index"); - FX_CALL(_fx_M10C_gen_codeFM11for_err_msgS4iiiS(for_idx_0, nfors_0, 0, &slit_1, &v_32, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_32, &v_33, 0), _fx_catch_4); - FX_THROW(&v_33, false, _fx_catch_4); + FX_CALL(_fx_M10C_gen_codeFM11for_err_msgS4iiiS(for_idx_0, nfors_0, 0, &slit_1, &v_30, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_30, &v_31, 0), _fx_catch_4); + FX_THROW(&v_31, false, _fx_catch_4); _fx_catch_4: ; - fx_free_exn(&v_33); - FX_FREE_STR(&v_32); + fx_free_exn(&v_31); + FX_FREE_STR(&v_30); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_cleanup); } FX_COPY_PTR(v_2.t0, &idoml_1); FX_COPY_PTR(v_2.t1, &at_ids_1); - _fx_make_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - 0, 0, 0, 0, 0, 0, init_ccode_0, 0, 0, 0, &__fold_result___0); + FX_COPY_PTR(init_ccode_0, &init_ccode_1); int_ k_0 = 0; _fx_LT2R9Ast__id_tN13K_form__dom_t lst_1 = idoml_1; for (; lst_1; lst_1 = lst_1->tl, k_0 += 1) { _fx_N13K_form__dom_t dom_i_1 = {0}; _fx_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t - v_34 = {0}; - _fx_LN14C_form__cexp_t list_exps_1 = 0; - _fx_LN14C_form__cexp_t i_exps_1 = 0; - _fx_LN14C_form__cexp_t n_exps_1 = 0; - _fx_LN14C_form__cexp_t for_checks_1 = 0; - _fx_LN14C_form__cexp_t incr_exps_1 = 0; - _fx_LN14C_form__cexp_t init_checks_1 = 0; - _fx_LN15C_form__cstmt_t init_ccode_4 = 0; - _fx_LN15C_form__cstmt_t pre_body_ccode_2 = 0; - _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t body_elems_1 = 0; - _fx_LN14C_form__cexp_t post_checks_3 = 0; - _fx_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t - v_35 = {0}; + v_32 = {0}; _fx_LN14C_form__cexp_t lists_i_0 = 0; - _fx_LN14C_form__cexp_t i_exps_2 = 0; - _fx_LN14C_form__cexp_t n_exps_2 = 0; - _fx_LN14C_form__cexp_t for_checks_2 = 0; - _fx_LN14C_form__cexp_t incr_exps_2 = 0; - _fx_LN14C_form__cexp_t init_checks_2 = 0; - _fx_LN15C_form__cstmt_t init_ccode_5 = 0; - _fx_LN15C_form__cstmt_t pre_body_ccode_3 = 0; - _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t body_elems_2 = 0; - _fx_LN14C_form__cexp_t post_checks_4 = 0; - _fx_LN14C_form__cexp_t v_36 = 0; - _fx_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t - v_37 = {0}; + _fx_LN14C_form__cexp_t i_exps_n_0 = 0; + _fx_LN14C_form__cexp_t n_exps_n_0 = 0; + _fx_LN14C_form__cexp_t for_checks_n_0 = 0; + _fx_LN14C_form__cexp_t incr_exps_n_0 = 0; + _fx_LN14C_form__cexp_t init_checks_n_0 = 0; + _fx_LN15C_form__cstmt_t init_ccode_n_0 = 0; + _fx_LN15C_form__cstmt_t pre_body_ccode_n_0 = 0; + _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t body_elems_n_0 = 0; + _fx_LN14C_form__cexp_t post_checks_n_0 = 0; + _fx_LN14C_form__cexp_t v_33 = 0; _fx_T2R9Ast__id_tN13K_form__dom_t* __pat___1 = &lst_1->hd; _fx_R9Ast__id_t iter_val_i_0 = __pat___1->t0; _fx_copy_N13K_form__dom_t(&__pat___1->t1, &dom_i_1); - _fx_copy_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - &__fold_result___0, &v_34); - FX_COPY_PTR(v_34.t0, &list_exps_1); - FX_COPY_PTR(v_34.t1, &i_exps_1); - FX_COPY_PTR(v_34.t2, &n_exps_1); - FX_COPY_PTR(v_34.t3, &for_checks_1); - FX_COPY_PTR(v_34.t4, &incr_exps_1); - FX_COPY_PTR(v_34.t5, &init_checks_1); - FX_COPY_PTR(v_34.t6, &init_ccode_4); - FX_COPY_PTR(v_34.t7, &pre_body_ccode_2); - FX_COPY_PTR(v_34.t8, &body_elems_1); - FX_COPY_PTR(v_34.t9, &post_checks_3); bool res_0; FX_CALL(_fx_M10C_gen_codeFM6__ne__B2R9Ast__id_tR9Ast__id_t(&iter_val_i_0, &_fx_g9Ast__noid, &res_0, 0), _fx_catch_26); _fx_R9Ast__id_t iter_val_i_1; @@ -17895,192 +17555,193 @@ static int } int tag_1 = dom_i_1.tag; if (tag_1 == 3) { - _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t v_38 = {0}; + _fx_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t v_34 = {0}; _fx_N14C_form__cexp_t d_exp_0 = 0; - _fx_LN15C_form__cstmt_t init_ccode_6 = 0; + _fx_LN15C_form__cstmt_t init_ccode_4 = 0; _fx_Ta3N14K_form__atom_t* vcase_0 = &dom_i_1.u.DomainRange; _fx_N14K_form__atom_t* delta_0 = &vcase_0->t2; _fx_N14K_form__atom_t* b_0 = &vcase_0->t1; _fx_N14K_form__atom_t* a_0 = &vcase_0->t0; int tag_2 = delta_0->tag; if (tag_2 == 2) { - _fx_N14K_form__klit_t* v_39 = &delta_0->u.AtomLit; - if (v_39->tag == 1) { - if (v_39->u.KLitInt == 0LL) { - fx_str_t v_40 = {0}; - fx_exn_t v_41 = {0}; + _fx_N14K_form__klit_t* v_35 = &delta_0->u.AtomLit; + if (v_35->tag == 1) { + if (v_35->u.KLitInt == 0LL) { + fx_str_t v_36 = {0}; + fx_exn_t v_37 = {0}; fx_str_t slit_3 = FX_MAKE_STR("the iteration step is zero"); - FX_CALL(_fx_M10C_gen_codeFM11for_err_msgS4iiiS(for_idx_0, nfors_0, k_0, &slit_3, &v_40, 0), _fx_catch_5); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&for_loc_0, &v_40, &v_41, 0), _fx_catch_5); - FX_THROW(&v_41, false, _fx_catch_5); + FX_CALL(_fx_M10C_gen_codeFM11for_err_msgS4iiiS(for_idx_0, nfors_0, k_0, &slit_3, &v_36, 0), _fx_catch_5); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&for_loc_0, &v_36, &v_37, 0), _fx_catch_5); + FX_THROW(&v_37, false, _fx_catch_5); _fx_catch_5: ; - fx_free_exn(&v_41); - FX_FREE_STR(&v_40); + fx_free_exn(&v_37); + FX_FREE_STR(&v_36); goto _fx_endmatch_2; } } } if (tag_2 == 2) { - _fx_N14K_form__klit_t* v_42 = &delta_0->u.AtomLit; - if (v_42->tag == 1) { - _fx_N14C_form__cexp_t v_43 = 0; - FX_CALL(_fx_M6C_formFM13make_int__expN14C_form__cexp_t2lR10Ast__loc_t(v_42->u.KLitInt, &for_loc_0, &v_43, 0), + _fx_N14K_form__klit_t* v_38 = &delta_0->u.AtomLit; + if (v_38->tag == 1) { + _fx_N14C_form__cexp_t v_39 = 0; + FX_CALL(_fx_M6C_formFM13make_int__expN14C_form__cexp_t2lR10Ast__loc_t(v_38->u.KLitInt, &for_loc_0, &v_39, 0), _fx_catch_6); _fx_make_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t( - &_fx_g21C_gen_code__COpAugAdd, &_fx_g18C_gen_code__COpAdd, v_43, init_ccode_4, &v_38); + &_fx_g21C_gen_code__COpAugAdd, &_fx_g18C_gen_code__COpAdd, v_39, init_ccode_1, &v_34); _fx_catch_6: ; - if (v_43) { - _fx_free_N14C_form__cexp_t(&v_43); + if (v_39) { + _fx_free_N14C_form__cexp_t(&v_39); } goto _fx_endmatch_2; } } - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_44 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_40 = {0}; _fx_N14C_form__cexp_t d_exp_1 = 0; - _fx_LN15C_form__cstmt_t init_ccode_7 = 0; - _fx_LN14C_form__cexp_t v_45 = 0; - _fx_N14C_form__cexp_t v_46 = 0; - _fx_N15C_form__cstmt_t v_47 = 0; - _fx_LN15C_form__cstmt_t init_ccode_8 = 0; - FX_CALL(atom2cexp__0.fp(delta_0, true, init_ccode_4, &for_loc_0, &v_44, atom2cexp__0.fcv), _fx_catch_7); - FX_COPY_PTR(v_44.t0, &d_exp_1); - FX_COPY_PTR(v_44.t1, &init_ccode_7); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_0, 0, true, &v_45), _fx_catch_7); - FX_CALL(_fx_cons_LN14C_form__cexp_t(d_exp_1, v_45, false, &v_45), _fx_catch_7); + _fx_LN15C_form__cstmt_t init_ccode_5 = 0; + _fx_LN14C_form__cexp_t v_41 = 0; + _fx_N14C_form__cexp_t v_42 = 0; + _fx_N15C_form__cstmt_t v_43 = 0; + _fx_LN15C_form__cstmt_t init_ccode_6 = 0; + FX_CALL(atom2cexp__0.fp(delta_0, true, init_ccode_1, &for_loc_0, &v_40, atom2cexp__0.fcv), _fx_catch_7); + FX_COPY_PTR(v_40.t0, &d_exp_1); + FX_COPY_PTR(v_40.t1, &init_ccode_5); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_0, 0, true, &v_41), _fx_catch_7); + FX_CALL(_fx_cons_LN14C_form__cexp_t(d_exp_1, v_41, false, &v_41), _fx_catch_7); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g30C_form__std_FX_CHECK_ZERO_STEP, v_45, _fx_g20C_gen_code__CTypVoid, &for_loc_0, &v_46, 0), _fx_catch_7); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_46, &v_47), _fx_catch_7); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_47, init_ccode_7, true, &init_ccode_8), _fx_catch_7); + &_fx_g30C_form__std_FX_CHECK_ZERO_STEP, v_41, _fx_g20C_gen_code__CTypVoid, &for_loc_0, &v_42, 0), _fx_catch_7); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_42, &v_43), _fx_catch_7); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_43, init_ccode_5, true, &init_ccode_6), _fx_catch_7); _fx_make_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t(&_fx_g21C_gen_code__COpAugAdd, - &_fx_g18C_gen_code__COpAdd, d_exp_1, init_ccode_8, &v_38); + &_fx_g18C_gen_code__COpAdd, d_exp_1, init_ccode_6, &v_34); _fx_catch_7: ; - if (init_ccode_8) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_8); + if (init_ccode_6) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_6); } - if (v_47) { - _fx_free_N15C_form__cstmt_t(&v_47); + if (v_43) { + _fx_free_N15C_form__cstmt_t(&v_43); } - if (v_46) { - _fx_free_N14C_form__cexp_t(&v_46); + if (v_42) { + _fx_free_N14C_form__cexp_t(&v_42); } - if (v_45) { - _fx_free_LN14C_form__cexp_t(&v_45); + if (v_41) { + _fx_free_LN14C_form__cexp_t(&v_41); } - if (init_ccode_7) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_7); + if (init_ccode_5) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_5); } if (d_exp_1) { _fx_free_N14C_form__cexp_t(&d_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_44); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_40); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_13); - _fx_N17C_form__cbinary_t aug_add_delta_0 = v_38.t0; - _fx_N17C_form__cbinary_t add_delta_0 = v_38.t1; - FX_COPY_PTR(v_38.t2, &d_exp_0); - FX_COPY_PTR(v_38.t3, &init_ccode_6); + _fx_N17C_form__cbinary_t aug_add_delta_0 = v_34.t0; + _fx_N17C_form__cbinary_t add_delta_0 = v_34.t1; + FX_COPY_PTR(v_34.t2, &d_exp_0); + FX_COPY_PTR(v_34.t3, &init_ccode_4); if (b_0->tag == 2) { if (b_0->u.AtomLit.tag == 8) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_48 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_44 = {0}; _fx_N14C_form__cexp_t a_exp_0 = 0; - _fx_LN15C_form__cstmt_t init_ccode_9 = 0; - _fx_R16Ast__val_flags_t v_49 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_50 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_51 = {0}; + _fx_LN15C_form__cstmt_t init_ccode_7 = 0; + _fx_R16Ast__val_flags_t v_45 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_46 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_47 = {0}; _fx_N14C_form__cexp_t i_exp_0 = 0; - _fx_LN15C_form__cstmt_t init_ccode_10 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_52 = {0}; + _fx_LN15C_form__cstmt_t init_ccode_8 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_48 = {0}; _fx_N14C_form__cexp_t incr_i_exp_0 = 0; - _fx_LN14C_form__cexp_t v_53 = 0; - FX_CALL(atom2cexp__0.fp(a_0, false, init_ccode_6, &for_loc_0, &v_48, atom2cexp__0.fcv), _fx_catch_8); - FX_COPY_PTR(v_48.t0, &a_exp_0); - FX_COPY_PTR(v_48.t1, &init_ccode_9); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_49, 0), _fx_catch_8); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(a_exp_0, &v_50); + _fx_LN14C_form__cexp_t v_49 = 0; + FX_CALL(atom2cexp__0.fp(a_0, false, init_ccode_4, &for_loc_0, &v_44, atom2cexp__0.fcv), _fx_catch_8); + FX_COPY_PTR(v_44.t0, &a_exp_0); + FX_COPY_PTR(v_44.t1, &init_ccode_7); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_45, 0), _fx_catch_8); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(a_exp_0, &v_46); fx_str_t slit_4 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &iter_val_i_1, _fx_g19C_gen_code__CTypInt, &v_49, &slit_4, &v_50, init_ccode_9, &for_loc_0, &v_51, 0), + &iter_val_i_1, _fx_g19C_gen_code__CTypInt, &v_45, &slit_4, &v_46, init_ccode_7, &for_loc_0, &v_47, 0), _fx_catch_8); - FX_COPY_PTR(v_51.t0, &i_exp_0); - FX_COPY_PTR(v_51.t1, &init_ccode_10); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypVoid, &for_loc_0, &v_52); + FX_COPY_PTR(v_47.t0, &i_exp_0); + FX_COPY_PTR(v_47.t1, &init_ccode_8); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypVoid, &for_loc_0, &v_48); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &aug_add_delta_0, i_exp_0, d_exp_0, &v_52, &incr_i_exp_0), _fx_catch_8); - FX_CALL(_fx_cons_LN14C_form__cexp_t(incr_i_exp_0, incr_exps_1, true, &v_53), _fx_catch_8); + &aug_add_delta_0, i_exp_0, d_exp_0, &v_48, &incr_i_exp_0), _fx_catch_8); + FX_CALL(_fx_cons_LN14C_form__cexp_t(incr_i_exp_0, incr_exps_0, true, &v_49), _fx_catch_8); _fx_make_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - 0, i_exps_1, n_exps_1, for_checks_1, v_53, init_checks_1, init_ccode_10, pre_body_ccode_2, body_elems_1, - post_checks_3, &v_35); + 0, i_exps_0, n_exps_0, for_checks_0, v_49, init_checks_0, init_ccode_8, pre_body_ccode_0, body_elems_0, + post_checks_0, &v_32); _fx_catch_8: ; - if (v_53) { - _fx_free_LN14C_form__cexp_t(&v_53); + if (v_49) { + _fx_free_LN14C_form__cexp_t(&v_49); } if (incr_i_exp_0) { _fx_free_N14C_form__cexp_t(&incr_i_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_52); - if (init_ccode_10) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_10); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_48); + if (init_ccode_8) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_8); } if (i_exp_0) { _fx_free_N14C_form__cexp_t(&i_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_51); - _fx_free_Nt6option1N14C_form__cexp_t(&v_50); - _fx_free_R16Ast__val_flags_t(&v_49); - if (init_ccode_9) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_9); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_47); + _fx_free_Nt6option1N14C_form__cexp_t(&v_46); + _fx_free_R16Ast__val_flags_t(&v_45); + if (init_ccode_7) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_7); } if (a_exp_0) { _fx_free_N14C_form__cexp_t(&a_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_48); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_44); goto _fx_endmatch_6; } } - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_54 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_50 = {0}; _fx_N14C_form__cexp_t a_exp_1 = 0; - _fx_LN15C_form__cstmt_t init_ccode_11 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_55 = {0}; + _fx_LN15C_form__cstmt_t init_ccode_9 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_51 = {0}; _fx_N14C_form__cexp_t b_exp_0 = 0; - _fx_LN15C_form__cstmt_t init_ccode_12 = 0; + _fx_LN15C_form__cstmt_t init_ccode_10 = 0; _fx_N14C_form__cexp_t calc_n_exp_0 = 0; - _fx_LN14C_form__cexp_t v_56 = 0; - _fx_T6BN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_57 = {0}; + _fx_LN14C_form__cexp_t v_52 = 0; + _fx_Ta2LN14C_form__cexp_t v_53 = {0}; + _fx_T6BN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_54 = {0}; _fx_N14C_form__cexp_t i_exp_1 = 0; - _fx_LN14C_form__cexp_t i_exps_3 = 0; - _fx_LN14C_form__cexp_t n_exps_3 = 0; - _fx_LN14C_form__cexp_t init_checks_3 = 0; - _fx_LN15C_form__cstmt_t init_ccode_13 = 0; - _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t body_elems_3 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_58 = {0}; - _fx_N14C_form__cexp_t v_59 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_60 = {0}; + _fx_LN14C_form__cexp_t i_exps_1 = 0; + _fx_LN14C_form__cexp_t n_exps_1 = 0; + _fx_LN14C_form__cexp_t init_checks_1 = 0; + _fx_LN15C_form__cstmt_t init_ccode_11 = 0; + _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t body_elems_1 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_55 = {0}; + _fx_N14C_form__cexp_t v_56 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_57 = {0}; _fx_N14C_form__cexp_t calc_i_exp_0 = 0; - _fx_R16Ast__val_flags_t v_61 = {0}; - _fx_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_62 = {0}; - FX_CALL(atom2cexp__0.fp(a_0, true, init_ccode_6, &for_loc_0, &v_54, atom2cexp__0.fcv), _fx_catch_12); - FX_COPY_PTR(v_54.t0, &a_exp_1); - FX_COPY_PTR(v_54.t1, &init_ccode_11); - FX_CALL(atom2cexp__0.fp(b_0, true, init_ccode_11, &for_loc_0, &v_55, atom2cexp__0.fcv), _fx_catch_12); - FX_COPY_PTR(v_55.t0, &b_exp_0); - FX_COPY_PTR(v_55.t1, &init_ccode_12); + _fx_R16Ast__val_flags_t v_58 = {0}; + _fx_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_59 = {0}; + FX_CALL(atom2cexp__0.fp(a_0, true, init_ccode_4, &for_loc_0, &v_50, atom2cexp__0.fcv), _fx_catch_12); + FX_COPY_PTR(v_50.t0, &a_exp_1); + FX_COPY_PTR(v_50.t1, &init_ccode_9); + FX_CALL(atom2cexp__0.fp(b_0, true, init_ccode_9, &for_loc_0, &v_51, atom2cexp__0.fcv), _fx_catch_12); + FX_COPY_PTR(v_51.t0, &b_exp_0); + FX_COPY_PTR(v_51.t1, &init_ccode_10); bool is_canonical_for_0; if (a_0->tag == 2) { if (delta_0->tag == 2) { - _fx_N14K_form__klit_t* v_63 = &a_0->u.AtomLit; - if (v_63->tag == 1) { - if (v_63->u.KLitInt == 0LL) { - _fx_N14K_form__klit_t* v_64 = &delta_0->u.AtomLit; - if (v_64->tag == 1) { - if (v_64->u.KLitInt == 1LL) { + _fx_N14K_form__klit_t* v_60 = &a_0->u.AtomLit; + if (v_60->tag == 1) { + if (v_60->u.KLitInt == 0LL) { + _fx_N14K_form__klit_t* v_61 = &delta_0->u.AtomLit; + if (v_61->tag == 1) { + if (v_61->u.KLitInt == 1LL) { is_canonical_for_0 = true; goto _fx_endmatch_3; } } @@ -18096,82 +17757,85 @@ static int FX_COPY_PTR(b_exp_0, &calc_n_exp_0); } else { - FX_CALL(_fx_cons_LN14C_form__cexp_t(d_exp_0, 0, true, &v_56), _fx_catch_12); - FX_CALL(_fx_cons_LN14C_form__cexp_t(b_exp_0, v_56, false, &v_56), _fx_catch_12); - FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_1, v_56, false, &v_56), _fx_catch_12); + FX_CALL(_fx_cons_LN14C_form__cexp_t(d_exp_0, 0, true, &v_52), _fx_catch_12); + FX_CALL(_fx_cons_LN14C_form__cexp_t(b_exp_0, v_52, false, &v_52), _fx_catch_12); + FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_1, v_52, false, &v_52), _fx_catch_12); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g25C_form__std_FX_LOOP_COUNT, v_56, _fx_g19C_gen_code__CTypInt, &for_loc_0, &calc_n_exp_0, 0), + &_fx_g25C_form__std_FX_LOOP_COUNT, v_52, _fx_g19C_gen_code__CTypInt, &for_loc_0, &calc_n_exp_0, 0), _fx_catch_12); } - if (n_exps_1 != 0) { - if (i_exps_1 != 0) { - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_65 = {0}; - _fx_N14C_form__cexp_t v_66 = 0; - _fx_LN14C_form__cexp_t v_67 = 0; - _fx_N17C_form__cbinary_t v_68; - _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_68); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &for_loc_0, &v_65); + _fx_make_Ta2LN14C_form__cexp_t(i_exps_0, n_exps_0, &v_53); + _fx_LN14C_form__cexp_t v_62 = v_53.t1; + if (v_62 != 0) { + _fx_LN14C_form__cexp_t v_63 = v_53.t0; + if (v_63 != 0) { + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_64 = {0}; + _fx_N14C_form__cexp_t v_65 = 0; + _fx_LN14C_form__cexp_t v_66 = 0; + _fx_N17C_form__cbinary_t v_67; + _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_67); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &for_loc_0, &v_64); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &v_68, n_exps_1->hd, calc_n_exp_0, &v_65, &v_66), _fx_catch_9); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_66, init_checks_1, true, &v_67), _fx_catch_9); + &v_67, v_62->hd, calc_n_exp_0, &v_64, &v_65), _fx_catch_9); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_65, init_checks_0, true, &v_66), _fx_catch_9); _fx_make_T6BN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(true, - i_exps_1->hd, i_exps_1, n_exps_1, v_67, init_ccode_12, &v_57); + v_63->hd, i_exps_0, n_exps_0, v_66, init_ccode_10, &v_54); _fx_catch_9: ; - if (v_67) { - _fx_free_LN14C_form__cexp_t(&v_67); - } if (v_66) { - _fx_free_N14C_form__cexp_t(&v_66); + _fx_free_LN14C_form__cexp_t(&v_66); + } + if (v_65) { + _fx_free_N14C_form__cexp_t(&v_65); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_65); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_64); goto _fx_endmatch_5; } } - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_69 = {0}; - _fx_R16Ast__val_flags_t v_70 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_71 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_68 = {0}; + _fx_R16Ast__val_flags_t v_69 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_70 = {0}; _fx_N14C_form__cexp_t n_exp_0 = 0; - _fx_LN15C_form__cstmt_t init_ccode_14 = 0; - _fx_R16Ast__val_flags_t v_72 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_73 = {0}; + _fx_LN15C_form__cstmt_t init_ccode_12 = 0; + _fx_R16Ast__val_flags_t v_71 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_72 = {0}; _fx_N14C_form__cexp_t i_exp_2 = 0; + _fx_LN14C_form__cexp_t v_73 = 0; _fx_LN14C_form__cexp_t v_74 = 0; - _fx_LN14C_form__cexp_t v_75 = 0; - _fx_T2BR9Ast__id_t v_76; + _fx_T2BR9Ast__id_t v_75; if (a_0->tag == 2) { if (delta_0->tag == 2) { - _fx_N14K_form__klit_t* v_77 = &a_0->u.AtomLit; - if (v_77->tag == 1) { - if (v_77->u.KLitInt == 0LL) { - _fx_N14K_form__klit_t* v_78 = &delta_0->u.AtomLit; - if (v_78->tag == 1) { - if (v_78->u.KLitInt == 1LL) { - _fx_T2BR9Ast__id_t tup_0 = { false, iter_val_i_1 }; v_76 = tup_0; goto _fx_endmatch_4; + _fx_N14K_form__klit_t* v_76 = &a_0->u.AtomLit; + if (v_76->tag == 1) { + if (v_76->u.KLitInt == 0LL) { + _fx_N14K_form__klit_t* v_77 = &delta_0->u.AtomLit; + if (v_77->tag == 1) { + if (v_77->u.KLitInt == 1LL) { + _fx_T2BR9Ast__id_t tup_0 = { false, iter_val_i_1 }; v_75 = tup_0; goto _fx_endmatch_4; } } } } } } - fx_str_t v_79 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iter_val_i_1, &v_79, 0), _fx_catch_10); - _fx_R9Ast__id_t v_80; + fx_str_t v_78 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iter_val_i_1, &v_78, 0), _fx_catch_10); + _fx_R9Ast__id_t v_79; FX_CALL( - _fx_M10C_gen_codeFM11get_iter_idR9Ast__id_t7iLR9Ast__id_tSiiR10Ast__loc_ti(0, at_ids_1, &v_79, for_idx_0, km_idx_0, - loc_0, nfors_0, &v_80, 0), _fx_catch_10); - _fx_T2BR9Ast__id_t tup_1 = { true, v_80 }; - v_76 = tup_1; + _fx_M10C_gen_codeFM11get_iter_idR9Ast__id_t7iLR9Ast__id_tSiiR10Ast__loc_ti(0, at_ids_1, &v_78, for_idx_0, km_idx_0, + loc_0, nfors_0, &v_79, 0), _fx_catch_10); + _fx_T2BR9Ast__id_t tup_1 = { true, v_79 }; + v_75 = tup_1; _fx_catch_10: ; - FX_FREE_STR(&v_79); + FX_FREE_STR(&v_78); _fx_endmatch_4: ; FX_CHECK_EXN(_fx_catch_11); - bool add_pair_0 = v_76.t0; - _fx_R9Ast__id_t i_id_0 = v_76.t1; + bool add_pair_0 = v_75.t0; + _fx_R9Ast__id_t i_id_0 = v_75.t1; bool res_1; FX_CALL(_fx_M10C_gen_codeFM6__ne__B2R9Ast__id_tR9Ast__id_t(&i_id_0, &_fx_g9Ast__noid, &res_1, 0), _fx_catch_11); _fx_R9Ast__id_t i_id_1; @@ -18182,171 +17846,172 @@ static int fx_str_t slit_5 = FX_MAKE_STR("i"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_5, &i_id_1, 0), _fx_catch_11); } - bool v_81; + bool v_80; if (is_canonical_for_0) { - FX_CALL(_fx_M10C_gen_codeFM24is_immutable_atomic_cexpB1N14C_form__cexp_t(b_exp_0, &v_81, 0), _fx_catch_11); + FX_CALL(_fx_M10C_gen_codeFM24is_immutable_atomic_cexpB1N14C_form__cexp_t(b_exp_0, &v_80, 0), _fx_catch_11); } else { - v_81 = false; + v_80 = false; } - if (v_81) { - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(b_exp_0, init_ccode_12, &v_69); + if (v_80) { + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(b_exp_0, init_ccode_10, &v_68); } else { - _fx_R9Ast__id_t v_82; + _fx_R9Ast__id_t v_81; fx_str_t slit_6 = FX_MAKE_STR("n"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_6, &v_82, 0), _fx_catch_11); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_70, 0), _fx_catch_11); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(calc_n_exp_0, &v_71); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_6, &v_81, 0), _fx_catch_11); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_69, 0), _fx_catch_11); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(calc_n_exp_0, &v_70); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &v_82, _fx_g19C_gen_code__CTypInt, &v_70, &v_71, init_ccode_12, &for_loc_0, block_stack_ref_0, &v_69, 0), + &v_81, _fx_g19C_gen_code__CTypInt, &v_69, &v_70, init_ccode_10, &for_loc_0, block_stack_ref_0, &v_68, 0), _fx_catch_11); } - FX_COPY_PTR(v_69.t0, &n_exp_0); - FX_COPY_PTR(v_69.t1, &init_ccode_14); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_72, 0), _fx_catch_11); + FX_COPY_PTR(v_68.t0, &n_exp_0); + FX_COPY_PTR(v_68.t1, &init_ccode_12); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_71, 0), _fx_catch_11); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &i_id_1, _fx_g19C_gen_code__CTypInt, &v_72, &_fx_g18C_gen_code__None2_, 0, &for_loc_0, block_stack_ref_0, &v_73, + &i_id_1, _fx_g19C_gen_code__CTypInt, &v_71, &_fx_g18C_gen_code__None2_, 0, &for_loc_0, block_stack_ref_0, &v_72, 0), _fx_catch_11); - FX_COPY_PTR(v_73.t0, &i_exp_2); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_2, i_exps_1, true, &v_74), _fx_catch_11); - FX_CALL(_fx_cons_LN14C_form__cexp_t(n_exp_0, n_exps_1, true, &v_75), _fx_catch_11); + FX_COPY_PTR(v_72.t0, &i_exp_2); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_2, i_exps_0, true, &v_73), _fx_catch_11); + FX_CALL(_fx_cons_LN14C_form__cexp_t(n_exp_0, n_exps_0, true, &v_74), _fx_catch_11); _fx_make_T6BN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(add_pair_0, - i_exp_2, v_74, v_75, init_checks_1, init_ccode_14, &v_57); + i_exp_2, v_73, v_74, init_checks_0, init_ccode_12, &v_54); _fx_catch_11: ; - if (v_75) { - _fx_free_LN14C_form__cexp_t(&v_75); - } if (v_74) { _fx_free_LN14C_form__cexp_t(&v_74); } + if (v_73) { + _fx_free_LN14C_form__cexp_t(&v_73); + } if (i_exp_2) { _fx_free_N14C_form__cexp_t(&i_exp_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_73); - _fx_free_R16Ast__val_flags_t(&v_72); - if (init_ccode_14) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_14); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_72); + _fx_free_R16Ast__val_flags_t(&v_71); + if (init_ccode_12) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_12); } if (n_exp_0) { _fx_free_N14C_form__cexp_t(&n_exp_0); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_71); - _fx_free_R16Ast__val_flags_t(&v_70); - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_69); + _fx_free_Nt6option1N14C_form__cexp_t(&v_70); + _fx_free_R16Ast__val_flags_t(&v_69); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_68); _fx_endmatch_5: ; FX_CHECK_EXN(_fx_catch_12); - bool add_elem_0 = v_57.t0; - FX_COPY_PTR(v_57.t1, &i_exp_1); - FX_COPY_PTR(v_57.t2, &i_exps_3); - FX_COPY_PTR(v_57.t3, &n_exps_3); - FX_COPY_PTR(v_57.t4, &init_checks_3); - FX_COPY_PTR(v_57.t5, &init_ccode_13); + bool add_elem_0 = v_54.t0; + FX_COPY_PTR(v_54.t1, &i_exp_1); + FX_COPY_PTR(v_54.t2, &i_exps_1); + FX_COPY_PTR(v_54.t3, &n_exps_1); + FX_COPY_PTR(v_54.t4, &init_checks_1); + FX_COPY_PTR(v_54.t5, &init_ccode_11); if (!add_elem_0) { - FX_COPY_PTR(body_elems_1, &body_elems_3); + FX_COPY_PTR(body_elems_0, &body_elems_1); } else { - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g19C_gen_code__CTypInt, &for_loc_0, &v_58); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g19C_gen_code__CTypInt, &for_loc_0, &v_55); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g18C_gen_code__COpMul, i_exp_1, d_exp_0, &v_58, &v_59), _fx_catch_12); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g19C_gen_code__CTypInt, &for_loc_0, &v_60); + &_fx_g18C_gen_code__COpMul, i_exp_1, d_exp_0, &v_55, &v_56), _fx_catch_12); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g19C_gen_code__CTypInt, &for_loc_0, &v_57); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &add_delta_0, a_exp_1, v_59, &v_60, &calc_i_exp_0), _fx_catch_12); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_61, 0), _fx_catch_12); - _fx_make_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&iter_val_i_1, calc_i_exp_0, &v_61, &v_62); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_62, body_elems_1, true, &body_elems_3), + &add_delta_0, a_exp_1, v_56, &v_57, &calc_i_exp_0), _fx_catch_12); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_58, 0), _fx_catch_12); + _fx_make_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&iter_val_i_1, calc_i_exp_0, &v_58, &v_59); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_59, body_elems_0, true, &body_elems_1), _fx_catch_12); } _fx_make_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - 0, i_exps_3, n_exps_3, for_checks_1, incr_exps_1, init_checks_3, init_ccode_13, pre_body_ccode_2, body_elems_3, - post_checks_3, &v_35); + 0, i_exps_1, n_exps_1, for_checks_0, incr_exps_0, init_checks_1, init_ccode_11, pre_body_ccode_0, body_elems_1, + post_checks_0, &v_32); _fx_catch_12: ; - _fx_free_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_62); - _fx_free_R16Ast__val_flags_t(&v_61); + _fx_free_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_59); + _fx_free_R16Ast__val_flags_t(&v_58); if (calc_i_exp_0) { _fx_free_N14C_form__cexp_t(&calc_i_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_60); - if (v_59) { - _fx_free_N14C_form__cexp_t(&v_59); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_57); + if (v_56) { + _fx_free_N14C_form__cexp_t(&v_56); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_58); - if (body_elems_3) { - _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&body_elems_3); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_55); + if (body_elems_1) { + _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&body_elems_1); } - if (init_ccode_13) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_13); + if (init_ccode_11) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_11); } - if (init_checks_3) { - _fx_free_LN14C_form__cexp_t(&init_checks_3); + if (init_checks_1) { + _fx_free_LN14C_form__cexp_t(&init_checks_1); } - if (n_exps_3) { - _fx_free_LN14C_form__cexp_t(&n_exps_3); + if (n_exps_1) { + _fx_free_LN14C_form__cexp_t(&n_exps_1); } - if (i_exps_3) { - _fx_free_LN14C_form__cexp_t(&i_exps_3); + if (i_exps_1) { + _fx_free_LN14C_form__cexp_t(&i_exps_1); } if (i_exp_1) { _fx_free_N14C_form__cexp_t(&i_exp_1); } - _fx_free_T6BN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_57); - if (v_56) { - _fx_free_LN14C_form__cexp_t(&v_56); + _fx_free_T6BN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_54); + _fx_free_Ta2LN14C_form__cexp_t(&v_53); + if (v_52) { + _fx_free_LN14C_form__cexp_t(&v_52); } if (calc_n_exp_0) { _fx_free_N14C_form__cexp_t(&calc_n_exp_0); } - if (init_ccode_12) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_12); + if (init_ccode_10) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_10); } if (b_exp_0) { _fx_free_N14C_form__cexp_t(&b_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_55); - if (init_ccode_11) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_11); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_51); + if (init_ccode_9) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_9); } if (a_exp_1) { _fx_free_N14C_form__cexp_t(&a_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_54); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_50); _fx_endmatch_6: ; FX_CHECK_EXN(_fx_catch_13); _fx_catch_13: ; - if (init_ccode_6) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_6); + if (init_ccode_4) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_4); } if (d_exp_0) { _fx_free_N14C_form__cexp_t(&d_exp_0); } - _fx_free_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t(&v_38); + _fx_free_T4N17C_form__cbinary_tN17C_form__cbinary_tN14C_form__cexp_tLN15C_form__cstmt_t(&v_34); } else if (tag_1 == 1) { _fx_N14K_form__ktyp_t ktyp_0 = 0; _fx_N14C_form__ctyp_t ctyp_0 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_83 = {0}; - _fx_N14K_form__atom_t v_84 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_85 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_82 = {0}; + _fx_N14K_form__atom_t v_83 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_84 = {0}; _fx_N14C_form__cexp_t src_exp_0 = 0; - _fx_LN15C_form__cstmt_t init_ccode_15 = 0; - _fx_rNt6option1N14C_form__cexp_t v_86 = 0; - fx_str_t v_87 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_88 = {0}; + _fx_LN15C_form__cstmt_t init_ccode_13 = 0; + _fx_rNt6option1N14C_form__cexp_t v_85 = 0; + fx_str_t v_86 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_87 = {0}; _fx_N14C_form__cexp_t col_exp_0 = 0; - _fx_LN15C_form__cstmt_t init_ccode_16 = 0; - _fx_LN15C_form__cstmt_t init_ccode_17 = 0; + _fx_LN15C_form__cstmt_t init_ccode_14 = 0; + _fx_LN15C_form__cstmt_t init_ccode_15 = 0; _fx_N14C_form__cexp_t col_exp_1 = 0; - _fx_LN15C_form__cstmt_t init_ccode_18 = 0; - _fx_N14K_form__ktyp_t v_89 = 0; + _fx_LN15C_form__cstmt_t init_ccode_16 = 0; + _fx_N14K_form__ktyp_t v_88 = 0; _fx_N14K_form__atom_t* a_1 = &dom_i_1.u.DomainElem; _fx_R9Ast__id_t col__0; if (a_1->tag == 1) { @@ -18360,20 +18025,20 @@ static int _fx_catch_24); FX_CALL(_fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(ktyp_0, &for_loc_0, &ctyp_0, 0), _fx_catch_24); - bool v_90; + bool v_89; bool res_2; FX_CALL(_fx_M10C_gen_codeFM6__ne__B2R9Ast__id_tR9Ast__id_t(&col__0, &_fx_g9Ast__noid, &res_2, 0), _fx_catch_24); if (res_2) { - bool __fold_result___4 = false; + bool __fold_result___1 = false; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t lst_2 = nested_e_idoml_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_N14K_form__kexp_t e_0 = 0; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* __pat___2 = &lst_2->hd; FX_COPY_PTR(__pat___2->t0, &e_0); - bool v_91; - FX_CALL(_fx_M10C_gen_codeFM14occurs_id_kexpB2R9Ast__id_tN14K_form__kexp_t(&col__0, e_0, &v_91, 0), _fx_catch_14); - if (v_91) { - __fold_result___4 = true; FX_BREAK(_fx_catch_14); + bool v_90; + FX_CALL(_fx_M10C_gen_codeFM14occurs_id_kexpB2R9Ast__id_tN14K_form__kexp_t(&col__0, e_0, &v_90, 0), _fx_catch_14); + if (v_90) { + __fold_result___1 = true; FX_BREAK(_fx_catch_14); } _fx_catch_14: ; @@ -18383,90 +18048,90 @@ static int FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_24); } - v_90 = __fold_result___4; + v_89 = __fold_result___1; } else { - v_90 = false; + v_89 = false; } - if (v_90) { - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&col__0, &v_84); + if (v_89) { + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&col__0, &v_83); FX_CALL( - atom2cexp_0.fp(&v_84, init_ccode_4, &for_loc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_85, atom2cexp_0.fcv), _fx_catch_24); - FX_COPY_PTR(v_85.t0, &src_exp_0); - FX_COPY_PTR(v_85.t1, &init_ccode_15); - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_86), _fx_catch_24); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&col__0, &v_87, 0), _fx_catch_24); + atom2cexp_0.fp(&v_83, init_ccode_1, &for_loc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, + i2e_ref_0, km_idx_0, &v_84, atom2cexp_0.fcv), _fx_catch_24); + FX_COPY_PTR(v_84.t0, &src_exp_0); + FX_COPY_PTR(v_84.t1, &init_ccode_13); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_85), _fx_catch_24); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&col__0, &v_86, 0), _fx_catch_24); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - v_86, &v_87, ctyp_0, init_ccode_15, &for_loc_0, block_stack_ref_0, km_idx_0, &v_88, 0), _fx_catch_24); - FX_COPY_PTR(v_88.t0, &col_exp_0); - FX_COPY_PTR(v_88.t1, &init_ccode_16); + v_85, &v_86, ctyp_0, init_ccode_13, &for_loc_0, block_stack_ref_0, km_idx_0, &v_87, 0), _fx_catch_24); + FX_COPY_PTR(v_87.t0, &col_exp_0); + FX_COPY_PTR(v_87.t1, &init_ccode_14); FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - src_exp_0, col_exp_0, ctyp_0, init_ccode_16, &for_loc_0, &init_ccode_17, 0), _fx_catch_24); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(col_exp_0, init_ccode_17, &v_83); + src_exp_0, col_exp_0, ctyp_0, init_ccode_14, &for_loc_0, &init_ccode_15, 0), _fx_catch_24); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(col_exp_0, init_ccode_15, &v_82); } else { - FX_CALL(atom2cexp__0.fp(a_1, true, init_ccode_4, &for_loc_0, &v_83, atom2cexp__0.fcv), _fx_catch_24); + FX_CALL(atom2cexp__0.fp(a_1, true, init_ccode_1, &for_loc_0, &v_82, atom2cexp__0.fcv), _fx_catch_24); } - FX_COPY_PTR(v_83.t0, &col_exp_1); - FX_COPY_PTR(v_83.t1, &init_ccode_18); - FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(ktyp_0, &for_loc_0, &v_89, 0), + FX_COPY_PTR(v_82.t0, &col_exp_1); + FX_COPY_PTR(v_82.t1, &init_ccode_16); + FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(ktyp_0, &for_loc_0, &v_88, 0), _fx_catch_24); - int tag_3 = FX_REC_VARIANT_TAG(v_89); + int tag_3 = FX_REC_VARIANT_TAG(v_88); if (tag_3 == 19) { - _fx_R16Ast__val_flags_t v_92 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_93 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_94 = {0}; + _fx_R16Ast__val_flags_t v_91 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_92 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_93 = {0}; _fx_N14C_form__cexp_t l_exp_0 = 0; - _fx_LN15C_form__cstmt_t init_ccode_19 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_95 = {0}; + _fx_LN15C_form__cstmt_t init_ccode_17 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_94 = {0}; _fx_N14C_form__cexp_t not_l_exp_0 = 0; - _fx_N14C_form__cexp_t v_96 = 0; + _fx_N14C_form__cexp_t v_95 = 0; _fx_N14C_form__cexp_t l_next_exp_0 = 0; _fx_N14C_form__ctyp_t c_et_0 = 0; _fx_N14C_form__cexp_t get_hd_exp_0 = 0; _fx_R16Ast__val_flags_t hd_flags_0 = {0}; + _fx_LN14C_form__cexp_t v_96 = 0; _fx_LN14C_form__cexp_t v_97 = 0; _fx_LN14C_form__cexp_t v_98 = 0; - _fx_LN14C_form__cexp_t v_99 = 0; - _fx_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_100 = {0}; - _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_101 = 0; - _fx_LN14C_form__cexp_t v_102 = 0; - _fx_N14K_form__ktyp_t et_0 = v_89->u.KTypList; - _fx_R9Ast__id_t v_103; + _fx_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_99 = {0}; + _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_100 = 0; + _fx_LN14C_form__cexp_t v_101 = 0; + _fx_N14K_form__ktyp_t et_0 = v_88->u.KTypList; + _fx_R9Ast__id_t v_102; fx_str_t slit_7 = FX_MAKE_STR("lst"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_7, &v_103, 0), _fx_catch_15); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_92, 0), _fx_catch_15); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(col_exp_1, &v_93); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_7, &v_102, 0), _fx_catch_15); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_91, 0), _fx_catch_15); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(col_exp_1, &v_92); fx_str_t slit_8 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_103, ctyp_0, &v_92, &slit_8, &v_93, init_ccode_18, &for_loc_0, &v_94, 0), _fx_catch_15); - FX_COPY_PTR(v_94.t0, &l_exp_0); - FX_COPY_PTR(v_94.t1, &init_ccode_19); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &end_for_loc_0, &v_95); + &v_102, ctyp_0, &v_91, &slit_8, &v_92, init_ccode_16, &for_loc_0, &v_93, 0), _fx_catch_15); + FX_COPY_PTR(v_93.t0, &l_exp_0); + FX_COPY_PTR(v_93.t1, &init_ccode_17); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &end_for_loc_0, &v_94); FX_CALL( _fx_M6C_formFM9CExpUnaryN14C_form__cexp_t3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_gen_code__COpLogicNot, l_exp_0, &v_95, ¬_l_exp_0), _fx_catch_15); - _fx_R9Ast__id_t v_104; + &_fx_g23C_gen_code__COpLogicNot, l_exp_0, &v_94, ¬_l_exp_0), _fx_catch_15); + _fx_R9Ast__id_t v_103; fx_str_t slit_9 = FX_MAKE_STR("tl"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_9, &v_104, 0), _fx_catch_15); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_9, &v_103, 0), _fx_catch_15); FX_CALL( - _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(l_exp_0, &v_104, - ctyp_0, &v_96, 0), _fx_catch_15); + _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(l_exp_0, &v_103, + ctyp_0, &v_95, 0), _fx_catch_15); FX_CALL( - _fx_M6C_formFM11make_assignN14C_form__cexp_t2N14C_form__cexp_tN14C_form__cexp_t(l_exp_0, v_96, &l_next_exp_0, 0), + _fx_M6C_formFM11make_assignN14C_form__cexp_t2N14C_form__cexp_tN14C_form__cexp_t(l_exp_0, v_95, &l_next_exp_0, 0), _fx_catch_15); FX_CALL( _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(et_0, &for_loc_0, &c_et_0, 0), _fx_catch_15); - _fx_R9Ast__id_t v_105; + _fx_R9Ast__id_t v_104; fx_str_t slit_10 = FX_MAKE_STR("hd"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_10, &v_105, 0), _fx_catch_15); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_10, &v_104, 0), _fx_catch_15); FX_CALL( - _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(l_exp_0, &v_105, + _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(l_exp_0, &v_104, c_et_0, &get_hd_exp_0, 0), _fx_catch_15); bool res_3; FX_CALL(_fx_M6K_formFM14is_ktyp_scalarB1N14K_form__ktyp_t(et_0, &res_3, 0), _fx_catch_15); @@ -18476,33 +18141,33 @@ static int else { FX_CALL(_fx_M3AstFM21default_tempref_flagsRM11val_flags_t0(&hd_flags_0, 0), _fx_catch_15); } - FX_CALL(_fx_cons_LN14C_form__cexp_t(l_exp_0, 0, true, &v_97), _fx_catch_15); - FX_CALL(_fx_cons_LN14C_form__cexp_t(l_exp_0, for_checks_1, true, &v_98), _fx_catch_15); - FX_CALL(_fx_cons_LN14C_form__cexp_t(l_next_exp_0, incr_exps_1, true, &v_99), _fx_catch_15); - _fx_make_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&iter_val_i_1, get_hd_exp_0, &hd_flags_0, &v_100); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_100, body_elems_1, true, &v_101), + FX_CALL(_fx_cons_LN14C_form__cexp_t(l_exp_0, 0, true, &v_96), _fx_catch_15); + FX_CALL(_fx_cons_LN14C_form__cexp_t(l_exp_0, for_checks_0, true, &v_97), _fx_catch_15); + FX_CALL(_fx_cons_LN14C_form__cexp_t(l_next_exp_0, incr_exps_0, true, &v_98), _fx_catch_15); + _fx_make_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&iter_val_i_1, get_hd_exp_0, &hd_flags_0, &v_99); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_99, body_elems_0, true, &v_100), _fx_catch_15); - FX_CALL(_fx_cons_LN14C_form__cexp_t(not_l_exp_0, post_checks_3, true, &v_102), _fx_catch_15); + FX_CALL(_fx_cons_LN14C_form__cexp_t(not_l_exp_0, post_checks_0, true, &v_101), _fx_catch_15); _fx_make_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - v_97, i_exps_1, n_exps_1, v_98, v_99, init_checks_1, init_ccode_19, pre_body_ccode_2, v_101, v_102, &v_35); + v_96, i_exps_0, n_exps_0, v_97, v_98, init_checks_0, init_ccode_17, pre_body_ccode_0, v_100, v_101, &v_32); _fx_catch_15: ; - if (v_102) { - _fx_free_LN14C_form__cexp_t(&v_102); - } if (v_101) { - _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_101); + _fx_free_LN14C_form__cexp_t(&v_101); } - _fx_free_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_100); - if (v_99) { - _fx_free_LN14C_form__cexp_t(&v_99); + if (v_100) { + _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_100); } + _fx_free_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_99); if (v_98) { _fx_free_LN14C_form__cexp_t(&v_98); } if (v_97) { _fx_free_LN14C_form__cexp_t(&v_97); } + if (v_96) { + _fx_free_LN14C_form__cexp_t(&v_96); + } _fx_free_R16Ast__val_flags_t(&hd_flags_0); if (get_hd_exp_0) { _fx_free_N14C_form__cexp_t(&get_hd_exp_0); @@ -18513,32 +18178,33 @@ static int if (l_next_exp_0) { _fx_free_N14C_form__cexp_t(&l_next_exp_0); } - if (v_96) { - _fx_free_N14C_form__cexp_t(&v_96); + if (v_95) { + _fx_free_N14C_form__cexp_t(&v_95); } if (not_l_exp_0) { _fx_free_N14C_form__cexp_t(¬_l_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_95); - if (init_ccode_19) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_19); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_94); + if (init_ccode_17) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_17); } if (l_exp_0) { _fx_free_N14C_form__cexp_t(&l_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_94); - _fx_free_Nt6option1N14C_form__cexp_t(&v_93); - _fx_free_R16Ast__val_flags_t(&v_92); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_93); + _fx_free_Nt6option1N14C_form__cexp_t(&v_92); + _fx_free_R16Ast__val_flags_t(&v_91); } else if (tag_3 == 10) { - _fx_LN14C_form__cexp_t v_106 = 0; + _fx_LN14C_form__cexp_t v_105 = 0; _fx_N14C_form__cexp_t calc_n_exp_1 = 0; + _fx_Ta2LN14C_form__cexp_t v_106 = {0}; _fx_T5N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_107 = {0}; _fx_N14C_form__cexp_t i_exp_3 = 0; - _fx_LN14C_form__cexp_t i_exps_4 = 0; - _fx_LN14C_form__cexp_t n_exps_4 = 0; - _fx_LN14C_form__cexp_t init_checks_4 = 0; - _fx_LN15C_form__cstmt_t init_ccode_20 = 0; + _fx_LN14C_form__cexp_t i_exps_2 = 0; + _fx_LN14C_form__cexp_t n_exps_2 = 0; + _fx_LN14C_form__cexp_t init_checks_2 = 0; + _fx_LN15C_form__cstmt_t init_ccode_18 = 0; _fx_N14C_form__ctyp_t v_108 = 0; _fx_N14C_form__cexp_t get_chars_0 = 0; _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_109 = {0}; @@ -18546,113 +18212,116 @@ static int _fx_R16Ast__val_flags_t v_110 = {0}; _fx_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_111 = {0}; _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_112 = 0; - FX_CALL(_fx_cons_LN14C_form__cexp_t(col_exp_1, 0, true, &v_106), _fx_catch_18); + FX_CALL(_fx_cons_LN14C_form__cexp_t(col_exp_1, 0, true, &v_105), _fx_catch_18); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g25C_form__std_FX_STR_LENGTH, v_106, _fx_g19C_gen_code__CTypInt, &for_loc_0, &calc_n_exp_1, 0), + &_fx_g25C_form__std_FX_STR_LENGTH, v_105, _fx_g19C_gen_code__CTypInt, &for_loc_0, &calc_n_exp_1, 0), _fx_catch_18); - if (n_exps_1 != 0) { - if (i_exps_1 != 0) { - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_113 = {0}; - _fx_N14C_form__cexp_t v_114 = 0; - _fx_LN14C_form__cexp_t v_115 = 0; - _fx_N17C_form__cbinary_t v_116; - _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_116); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &for_loc_0, &v_113); + _fx_make_Ta2LN14C_form__cexp_t(i_exps_0, n_exps_0, &v_106); + _fx_LN14C_form__cexp_t v_113 = v_106.t1; + if (v_113 != 0) { + _fx_LN14C_form__cexp_t v_114 = v_106.t0; + if (v_114 != 0) { + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_115 = {0}; + _fx_N14C_form__cexp_t v_116 = 0; + _fx_LN14C_form__cexp_t v_117 = 0; + _fx_N17C_form__cbinary_t v_118; + _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_118); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &for_loc_0, &v_115); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &v_116, n_exps_1->hd, calc_n_exp_1, &v_113, &v_114), _fx_catch_16); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_114, init_checks_1, true, &v_115), _fx_catch_16); + &v_118, v_113->hd, calc_n_exp_1, &v_115, &v_116), _fx_catch_16); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_116, init_checks_0, true, &v_117), _fx_catch_16); _fx_make_T5N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t( - i_exps_1->hd, i_exps_1, n_exps_1, v_115, init_ccode_18, &v_107); + v_114->hd, i_exps_0, n_exps_0, v_117, init_ccode_16, &v_107); _fx_catch_16: ; - if (v_115) { - _fx_free_LN14C_form__cexp_t(&v_115); + if (v_117) { + _fx_free_LN14C_form__cexp_t(&v_117); } - if (v_114) { - _fx_free_N14C_form__cexp_t(&v_114); + if (v_116) { + _fx_free_N14C_form__cexp_t(&v_116); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_113); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_115); goto _fx_endmatch_7; } } - _fx_R16Ast__val_flags_t v_117 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_118 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_119 = {0}; + _fx_R16Ast__val_flags_t v_119 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_120 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_121 = {0}; _fx_N14C_form__cexp_t n_exp_1 = 0; - _fx_LN15C_form__cstmt_t init_ccode_21 = 0; - fx_str_t v_120 = {0}; - _fx_R16Ast__val_flags_t v_121 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_122 = {0}; + _fx_LN15C_form__cstmt_t init_ccode_19 = 0; + fx_str_t v_122 = {0}; + _fx_R16Ast__val_flags_t v_123 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_124 = {0}; _fx_N14C_form__cexp_t i_exp_4 = 0; - _fx_LN14C_form__cexp_t v_123 = 0; - _fx_LN14C_form__cexp_t v_124 = 0; - _fx_R9Ast__id_t v_125; + _fx_LN14C_form__cexp_t v_125 = 0; + _fx_LN14C_form__cexp_t v_126 = 0; + _fx_R9Ast__id_t v_127; fx_str_t slit_11 = FX_MAKE_STR("len"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_11, &v_125, 0), _fx_catch_17); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_117, 0), _fx_catch_17); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(calc_n_exp_1, &v_118); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_11, &v_127, 0), _fx_catch_17); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_119, 0), _fx_catch_17); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(calc_n_exp_1, &v_120); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &v_125, _fx_g19C_gen_code__CTypInt, &v_117, &v_118, init_ccode_18, &for_loc_0, block_stack_ref_0, &v_119, 0), + &v_127, _fx_g19C_gen_code__CTypInt, &v_119, &v_120, init_ccode_16, &for_loc_0, block_stack_ref_0, &v_121, 0), _fx_catch_17); - FX_COPY_PTR(v_119.t0, &n_exp_1); - FX_COPY_PTR(v_119.t1, &init_ccode_21); - FX_CALL(_fx_M10C_gen_codeFM3nthS2LSi(for_letters_0, dims_ofs_0, &v_120, 0), _fx_catch_17); + FX_COPY_PTR(v_121.t0, &n_exp_1); + FX_COPY_PTR(v_121.t1, &init_ccode_19); + FX_CALL(_fx_M10C_gen_codeFM3nthS2LSi(for_letters_0, dims_ofs_0, &v_122, 0), _fx_catch_17); _fx_R9Ast__id_t i_id_2; FX_CALL( - _fx_M10C_gen_codeFM11get_iter_idR9Ast__id_t7iLR9Ast__id_tSiiR10Ast__loc_ti(0, at_ids_1, &v_120, for_idx_0, + _fx_M10C_gen_codeFM11get_iter_idR9Ast__id_t7iLR9Ast__id_tSiiR10Ast__loc_ti(0, at_ids_1, &v_122, for_idx_0, km_idx_0, loc_0, nfors_0, &i_id_2, 0), _fx_catch_17); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_121, 0), _fx_catch_17); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_123, 0), _fx_catch_17); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &i_id_2, _fx_g19C_gen_code__CTypInt, &v_121, &_fx_g18C_gen_code__None2_, 0, &for_loc_0, block_stack_ref_0, - &v_122, 0), _fx_catch_17); - FX_COPY_PTR(v_122.t0, &i_exp_4); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_4, i_exps_1, true, &v_123), _fx_catch_17); - FX_CALL(_fx_cons_LN14C_form__cexp_t(n_exp_1, n_exps_1, true, &v_124), _fx_catch_17); + &i_id_2, _fx_g19C_gen_code__CTypInt, &v_123, &_fx_g18C_gen_code__None2_, 0, &for_loc_0, block_stack_ref_0, + &v_124, 0), _fx_catch_17); + FX_COPY_PTR(v_124.t0, &i_exp_4); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_4, i_exps_0, true, &v_125), _fx_catch_17); + FX_CALL(_fx_cons_LN14C_form__cexp_t(n_exp_1, n_exps_0, true, &v_126), _fx_catch_17); _fx_make_T5N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(i_exp_4, - v_123, v_124, init_checks_1, init_ccode_21, &v_107); + v_125, v_126, init_checks_0, init_ccode_19, &v_107); _fx_catch_17: ; - if (v_124) { - _fx_free_LN14C_form__cexp_t(&v_124); + if (v_126) { + _fx_free_LN14C_form__cexp_t(&v_126); } - if (v_123) { - _fx_free_LN14C_form__cexp_t(&v_123); + if (v_125) { + _fx_free_LN14C_form__cexp_t(&v_125); } if (i_exp_4) { _fx_free_N14C_form__cexp_t(&i_exp_4); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_122); - _fx_free_R16Ast__val_flags_t(&v_121); - FX_FREE_STR(&v_120); - if (init_ccode_21) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_21); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_124); + _fx_free_R16Ast__val_flags_t(&v_123); + FX_FREE_STR(&v_122); + if (init_ccode_19) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_19); } if (n_exp_1) { _fx_free_N14C_form__cexp_t(&n_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_119); - _fx_free_Nt6option1N14C_form__cexp_t(&v_118); - _fx_free_R16Ast__val_flags_t(&v_117); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_121); + _fx_free_Nt6option1N14C_form__cexp_t(&v_120); + _fx_free_R16Ast__val_flags_t(&v_119); _fx_endmatch_7: ; FX_CHECK_EXN(_fx_catch_18); FX_COPY_PTR(v_107.t0, &i_exp_3); - FX_COPY_PTR(v_107.t1, &i_exps_4); - FX_COPY_PTR(v_107.t2, &n_exps_4); - FX_COPY_PTR(v_107.t3, &init_checks_4); - FX_COPY_PTR(v_107.t4, &init_ccode_20); - _fx_R9Ast__id_t v_126; + FX_COPY_PTR(v_107.t1, &i_exps_2); + FX_COPY_PTR(v_107.t2, &n_exps_2); + FX_COPY_PTR(v_107.t3, &init_checks_2); + FX_COPY_PTR(v_107.t4, &init_ccode_18); + _fx_R9Ast__id_t v_128; fx_str_t slit_12 = FX_MAKE_STR("data"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_12, &v_126, 0), _fx_catch_18); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_12, &v_128, 0), _fx_catch_18); FX_CALL( _fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g23C_gen_code__CTypUniChar, &v_108, 0), _fx_catch_18); FX_CALL( - _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(col_exp_1, &v_126, v_108, + _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(col_exp_1, &v_128, v_108, &get_chars_0, 0), _fx_catch_18); _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g23C_gen_code__CTypUniChar, &for_loc_0, &v_109); FX_CALL( @@ -18660,11 +18329,11 @@ static int &_fx_g24C_gen_code__COpArrayElem, get_chars_0, i_exp_3, &v_109, &get_char_i_0), _fx_catch_18); FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_110, 0), _fx_catch_18); _fx_make_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&iter_val_i_1, get_char_i_0, &v_110, &v_111); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_111, body_elems_1, true, &v_112), + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_111, body_elems_0, true, &v_112), _fx_catch_18); _fx_make_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - 0, i_exps_4, n_exps_4, for_checks_1, incr_exps_1, init_checks_4, init_ccode_20, pre_body_ccode_2, v_112, - post_checks_3, &v_35); + 0, i_exps_2, n_exps_2, for_checks_0, incr_exps_0, init_checks_2, init_ccode_18, pre_body_ccode_0, v_112, + post_checks_0, &v_32); _fx_catch_18: ; if (v_112) { @@ -18682,76 +18351,70 @@ static int if (v_108) { _fx_free_N14C_form__ctyp_t(&v_108); } - if (init_ccode_20) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_20); + if (init_ccode_18) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_18); } - if (init_checks_4) { - _fx_free_LN14C_form__cexp_t(&init_checks_4); + if (init_checks_2) { + _fx_free_LN14C_form__cexp_t(&init_checks_2); } - if (n_exps_4) { - _fx_free_LN14C_form__cexp_t(&n_exps_4); + if (n_exps_2) { + _fx_free_LN14C_form__cexp_t(&n_exps_2); } - if (i_exps_4) { - _fx_free_LN14C_form__cexp_t(&i_exps_4); + if (i_exps_2) { + _fx_free_LN14C_form__cexp_t(&i_exps_2); } if (i_exp_3) { _fx_free_N14C_form__cexp_t(&i_exp_3); } _fx_free_T5N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_107); + _fx_free_Ta2LN14C_form__cexp_t(&v_106); if (calc_n_exp_1) { _fx_free_N14C_form__cexp_t(&calc_n_exp_1); } - if (v_106) { - _fx_free_LN14C_form__cexp_t(&v_106); + if (v_105) { + _fx_free_LN14C_form__cexp_t(&v_105); } } else if (tag_3 == 17) { - _fx_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_127 = {0}; - _fx_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___5 = {0}; - _fx_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_128 = {0}; - _fx_LN14C_form__cexp_t i_exps_5 = 0; - _fx_LN14C_form__cexp_t n_exps_5 = 0; - _fx_LN15C_form__cstmt_t init_ccode_22 = 0; - _fx_LN14C_form__cexp_t v_129 = 0; + _fx_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_129 = {0}; + _fx_LN14C_form__cexp_t i_exps_3 = 0; + _fx_LN14C_form__cexp_t n_exps_3 = 0; + _fx_LN15C_form__cstmt_t acc_ccode_0 = 0; _fx_LN14C_form__cexp_t v_130 = 0; - _fx_LN14C_form__cexp_t __fold_result___6 = 0; - _fx_LN14C_form__cexp_t init_checks_5 = 0; - _fx_LN14C_form__cexp_t i_exps_6 = 0; - _fx_LN14C_form__cexp_t n_exps_6 = 0; - _fx_LN14C_form__cexp_t init_checks_6 = 0; - _fx_LN15C_form__cstmt_t init_ccode_23 = 0; + _fx_LN14C_form__cexp_t v_131 = 0; + _fx_LN14C_form__cexp_t init_checks_3 = 0; + _fx_LN14C_form__cexp_t i_exps_4 = 0; + _fx_LN14C_form__cexp_t n_exps_4 = 0; + _fx_LN14C_form__cexp_t init_checks_4 = 0; + _fx_LN15C_form__cstmt_t init_ccode_20 = 0; _fx_N14C_form__ctyp_t c_et_1 = 0; _fx_N14C_form__ctyp_t c_et_ptr_0 = 0; _fx_LN14C_form__cexp_t rev_i_exps_0 = 0; _fx_N14C_form__cexp_t inner_idx_0 = 0; - _fx_N14C_form__cexp_t v_131 = 0; - _fx_LN14C_form__cexp_t v_132 = 0; + _fx_N14C_form__cexp_t v_132 = 0; _fx_LN14C_form__cexp_t v_133 = 0; + _fx_LN14C_form__cexp_t v_134 = 0; _fx_LN14C_form__cexp_t slice_idxs_0 = 0; - _fx_N14C_form__cexp_t v_134 = 0; - _fx_LN14C_form__cexp_t v_135 = 0; + _fx_N14C_form__cexp_t v_135 = 0; + _fx_LN14C_form__cexp_t v_136 = 0; _fx_N14C_form__cexp_t get_arr_slice_0 = 0; - fx_str_t v_136 = {0}; fx_str_t v_137 = {0}; - _fx_R16Ast__val_flags_t v_138 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_139 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_140 = {0}; + fx_str_t v_138 = {0}; + _fx_R16Ast__val_flags_t v_139 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_140 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_141 = {0}; _fx_N14C_form__cexp_t ptr_exp_0 = 0; - _fx_LN15C_form__cstmt_t pre_body_ccode_4 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_141 = {0}; + _fx_LN15C_form__cstmt_t pre_body_ccode_2 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_142 = {0}; _fx_N14C_form__cexp_t get_arr_elem_0 = 0; - _fx_R16Ast__val_flags_t v_142 = {0}; - _fx_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_143 = {0}; - _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_144 = 0; - _fx_T2iN14K_form__ktyp_t* vcase_1 = &v_89->u.KTypArray; + _fx_R16Ast__val_flags_t v_143 = {0}; + _fx_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_144 = {0}; + _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_145 = 0; + _fx_T2iN14K_form__ktyp_t* vcase_1 = &v_88->u.KTypArray; int_ ndims_1 = vcase_1->t0; - if (n_exps_1 == 0) { - _fx_make_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(0, 0, init_ccode_18, &__fold_result___5); + if (n_exps_0 == 0) { + FX_COPY_PTR(init_ccode_16, &acc_ccode_0); for (int_ k_1 = 0; k_1 < ndims_1; k_1++) { - _fx_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_145 = {0}; - _fx_LN14C_form__cexp_t i_exps_7 = 0; - _fx_LN14C_form__cexp_t n_exps_7 = 0; - _fx_LN15C_form__cstmt_t init_ccode_24 = 0; _fx_N14C_form__cexp_t v_146 = 0; _fx_LN14C_form__cexp_t v_147 = 0; _fx_N14C_form__cexp_t calc_n_exp_2 = 0; @@ -18761,15 +18424,12 @@ static int _fx_Nt6option1N14C_form__cexp_t v_150 = {0}; _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_151 = {0}; _fx_N14C_form__cexp_t n_exp_2 = 0; - _fx_LN15C_form__cstmt_t init_ccode_25 = 0; + _fx_LN15C_form__cstmt_t init_ccode_21 = 0; _fx_R16Ast__val_flags_t v_152 = {0}; _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_153 = {0}; _fx_N14C_form__cexp_t i_exp_5 = 0; - _fx_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_154 = {0}; - _fx_copy_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___5, &v_145); - FX_COPY_PTR(v_145.t0, &i_exps_7); - FX_COPY_PTR(v_145.t1, &n_exps_7); - FX_COPY_PTR(v_145.t2, &init_ccode_24); + _fx_LN14C_form__cexp_t v_154 = 0; + _fx_LN14C_form__cexp_t v_155 = 0; FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(k_1, &for_loc_0, &v_146, 0), _fx_catch_19); FX_CALL(_fx_cons_LN14C_form__cexp_t(v_146, 0, true, &v_147), _fx_catch_19); @@ -18784,16 +18444,16 @@ static int const fx_str_t strs_0[] = { slit_13, iter_letter_0 }; FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_148), _fx_catch_19); } - _fx_R9Ast__id_t v_155; - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &v_148, &v_155, 0), _fx_catch_19); + _fx_R9Ast__id_t v_156; + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &v_148, &v_156, 0), _fx_catch_19); FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_149, 0), _fx_catch_19); _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(calc_n_exp_2, &v_150); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &v_155, _fx_g19C_gen_code__CTypInt, &v_149, &v_150, init_ccode_24, &for_loc_0, block_stack_ref_0, - &v_151, 0), _fx_catch_19); + &v_156, _fx_g19C_gen_code__CTypInt, &v_149, &v_150, acc_ccode_0, &for_loc_0, block_stack_ref_0, &v_151, + 0), _fx_catch_19); FX_COPY_PTR(v_151.t0, &n_exp_2); - FX_COPY_PTR(v_151.t1, &init_ccode_25); + FX_COPY_PTR(v_151.t1, &init_ccode_21); _fx_R9Ast__id_t i_id_3; FX_CALL( _fx_M10C_gen_codeFM11get_iter_idR9Ast__id_t7iLR9Ast__id_tSiiR10Ast__loc_ti(k_1, at_ids_1, &iter_letter_0, @@ -18804,21 +18464,29 @@ static int &i_id_3, _fx_g19C_gen_code__CTypInt, &v_152, &_fx_g18C_gen_code__None2_, 0, &for_loc_0, block_stack_ref_0, &v_153, 0), _fx_catch_19); FX_COPY_PTR(v_153.t0, &i_exp_5); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, i_exps_7, false, &i_exps_7), _fx_catch_19); - FX_CALL(_fx_cons_LN14C_form__cexp_t(n_exp_2, n_exps_7, false, &n_exps_7), _fx_catch_19); - _fx_make_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(i_exps_7, n_exps_7, init_ccode_25, &v_154); - _fx_free_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___5); - _fx_copy_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_154, &__fold_result___5); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, i_exps_3, true, &v_154), _fx_catch_19); + _fx_free_LN14C_form__cexp_t(&i_exps_3); + FX_COPY_PTR(v_154, &i_exps_3); + FX_CALL(_fx_cons_LN14C_form__cexp_t(n_exp_2, n_exps_3, true, &v_155), _fx_catch_19); + _fx_free_LN14C_form__cexp_t(&n_exps_3); + FX_COPY_PTR(v_155, &n_exps_3); + _fx_free_LN15C_form__cstmt_t(&acc_ccode_0); + FX_COPY_PTR(init_ccode_21, &acc_ccode_0); _fx_catch_19: ; - _fx_free_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_154); + if (v_155) { + _fx_free_LN14C_form__cexp_t(&v_155); + } + if (v_154) { + _fx_free_LN14C_form__cexp_t(&v_154); + } if (i_exp_5) { _fx_free_N14C_form__cexp_t(&i_exp_5); } _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_153); _fx_free_R16Ast__val_flags_t(&v_152); - if (init_ccode_25) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_25); + if (init_ccode_21) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_21); } if (n_exp_2) { _fx_free_N14C_form__cexp_t(&n_exp_2); @@ -18837,174 +18505,158 @@ static int if (v_146) { _fx_free_N14C_form__cexp_t(&v_146); } - if (init_ccode_24) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_24); - } - if (n_exps_7) { - _fx_free_LN14C_form__cexp_t(&n_exps_7); - } - if (i_exps_7) { - _fx_free_LN14C_form__cexp_t(&i_exps_7); - } - _fx_free_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_145); FX_CHECK_EXN(_fx_catch_21); } - _fx_copy_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___5, &v_128); - FX_COPY_PTR(v_128.t0, &i_exps_5); - FX_COPY_PTR(v_128.t1, &n_exps_5); - FX_COPY_PTR(v_128.t2, &init_ccode_22); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_5, &v_129, 0), _fx_catch_21); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(n_exps_5, &v_130, 0), _fx_catch_21); - _fx_make_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(v_129, v_130, init_checks_1, - init_ccode_22, &v_127); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_3, &v_130, 0), _fx_catch_21); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(n_exps_3, &v_131, 0), _fx_catch_21); + _fx_make_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(v_130, v_131, init_checks_0, + acc_ccode_0, &v_129); } else { - FX_COPY_PTR(init_checks_1, &__fold_result___6); + FX_COPY_PTR(init_checks_0, &init_checks_3); int_ k_2 = 0; - _fx_LN14C_form__cexp_t lst_3 = n_exps_1; + _fx_LN14C_form__cexp_t lst_3 = n_exps_0; for (; lst_3; lst_3 = lst_3->tl, k_2 += 1) { - _fx_LN14C_form__cexp_t init_checks_7 = 0; - _fx_N14C_form__cexp_t v_156 = 0; - _fx_LN14C_form__cexp_t v_157 = 0; + _fx_N14C_form__cexp_t v_157 = 0; + _fx_LN14C_form__cexp_t v_158 = 0; _fx_N14C_form__cexp_t calc_n_exp_3 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_158 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_159 = {0}; _fx_N14C_form__cexp_t init_check_k_0 = 0; + _fx_LN14C_form__cexp_t v_160 = 0; _fx_N14C_form__cexp_t prev_nk_0 = lst_3->hd; - FX_COPY_PTR(__fold_result___6, &init_checks_7); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(k_2, &for_loc_0, &v_156, 0), + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(k_2, &for_loc_0, &v_157, 0), _fx_catch_20); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_156, 0, true, &v_157), _fx_catch_20); - FX_CALL(_fx_cons_LN14C_form__cexp_t(col_exp_1, v_157, false, &v_157), _fx_catch_20); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_157, 0, true, &v_158), _fx_catch_20); + FX_CALL(_fx_cons_LN14C_form__cexp_t(col_exp_1, v_158, false, &v_158), _fx_catch_20); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_form__std_FX_ARR_SIZE, v_157, _fx_g19C_gen_code__CTypInt, &for_loc_0, &calc_n_exp_3, 0), + &_fx_g23C_form__std_FX_ARR_SIZE, v_158, _fx_g19C_gen_code__CTypInt, &for_loc_0, &calc_n_exp_3, 0), _fx_catch_20); - _fx_N17C_form__cbinary_t v_159; - _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_159); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &for_loc_0, &v_158); + _fx_N17C_form__cbinary_t v_161; + _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_161); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &for_loc_0, &v_159); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &v_159, prev_nk_0, calc_n_exp_3, &v_158, &init_check_k_0), _fx_catch_20); - FX_CALL(_fx_cons_LN14C_form__cexp_t(init_check_k_0, init_checks_7, false, &init_checks_7), _fx_catch_20); - _fx_free_LN14C_form__cexp_t(&__fold_result___6); - FX_COPY_PTR(init_checks_7, &__fold_result___6); + &v_161, prev_nk_0, calc_n_exp_3, &v_159, &init_check_k_0), _fx_catch_20); + FX_CALL(_fx_cons_LN14C_form__cexp_t(init_check_k_0, init_checks_3, true, &v_160), _fx_catch_20); + _fx_free_LN14C_form__cexp_t(&init_checks_3); + FX_COPY_PTR(v_160, &init_checks_3); _fx_catch_20: ; + if (v_160) { + _fx_free_LN14C_form__cexp_t(&v_160); + } if (init_check_k_0) { _fx_free_N14C_form__cexp_t(&init_check_k_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_158); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_159); if (calc_n_exp_3) { _fx_free_N14C_form__cexp_t(&calc_n_exp_3); } - if (v_157) { - _fx_free_LN14C_form__cexp_t(&v_157); - } - if (v_156) { - _fx_free_N14C_form__cexp_t(&v_156); + if (v_158) { + _fx_free_LN14C_form__cexp_t(&v_158); } - if (init_checks_7) { - _fx_free_LN14C_form__cexp_t(&init_checks_7); + if (v_157) { + _fx_free_N14C_form__cexp_t(&v_157); } FX_CHECK_EXN(_fx_catch_21); } - FX_COPY_PTR(__fold_result___6, &init_checks_5); - _fx_make_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(i_exps_1, n_exps_1, - init_checks_5, init_ccode_18, &v_127); + _fx_make_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(i_exps_0, n_exps_0, + init_checks_3, init_ccode_16, &v_129); } - FX_COPY_PTR(v_127.t0, &i_exps_6); - FX_COPY_PTR(v_127.t1, &n_exps_6); - FX_COPY_PTR(v_127.t2, &init_checks_6); - FX_COPY_PTR(v_127.t3, &init_ccode_23); + FX_COPY_PTR(v_129.t0, &i_exps_4); + FX_COPY_PTR(v_129.t1, &n_exps_4); + FX_COPY_PTR(v_129.t2, &init_checks_4); + FX_COPY_PTR(v_129.t3, &init_ccode_20); FX_CALL( _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(vcase_1->t1, &for_loc_0, &c_et_1, 0), _fx_catch_21); FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(c_et_1, &c_et_ptr_0, 0), _fx_catch_21); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_6, &rev_i_exps_0, 0), _fx_catch_21); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_4, &rev_i_exps_0, 0), _fx_catch_21); FX_CALL(_fx_M10C_gen_codeFM2hdN14C_form__cexp_t1LN14C_form__cexp_t(rev_i_exps_0, &inner_idx_0, 0), _fx_catch_21); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &for_loc_0, &v_131, 0), _fx_catch_21); - FX_CALL(_fx_M10C_gen_codeFM2tlLN14C_form__cexp_t1LN14C_form__cexp_t(rev_i_exps_0, &v_132, 0), _fx_catch_21); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_131, v_132, true, &v_133), _fx_catch_21); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_133, &slice_idxs_0, 0), _fx_catch_21); - _fx_R9Ast__id_t v_160; - FX_CALL(_fx_M10C_gen_codeFM3nthR9Ast__id_t2LR9Ast__id_ti(_fx_g21C_form__std_FX_PTR_xD, ndims_1 - 1, &v_160, 0), + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &for_loc_0, &v_132, 0), _fx_catch_21); + FX_CALL(_fx_M10C_gen_codeFM2tlLN14C_form__cexp_t1LN14C_form__cexp_t(rev_i_exps_0, &v_133, 0), _fx_catch_21); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_132, v_133, true, &v_134), _fx_catch_21); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_134, &slice_idxs_0, 0), _fx_catch_21); + _fx_R9Ast__id_t v_162; + FX_CALL(_fx_M10C_gen_codeFM3nthR9Ast__id_t2LR9Ast__id_ti(_fx_g21C_form__std_FX_PTR_xD, ndims_1 - 1, &v_162, 0), _fx_catch_21); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(c_et_1, &for_loc_0, &v_134), + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(c_et_1, &for_loc_0, &v_135), _fx_catch_21); - FX_CALL(_fx_cons_LN14C_form__cexp_t(col_exp_1, slice_idxs_0, true, &v_135), _fx_catch_21); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_134, v_135, false, &v_135), _fx_catch_21); + FX_CALL(_fx_cons_LN14C_form__cexp_t(col_exp_1, slice_idxs_0, true, &v_136), _fx_catch_21); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_135, v_136, false, &v_136), _fx_catch_21); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_160, - v_135, c_et_ptr_0, &for_loc_0, &get_arr_slice_0, 0), _fx_catch_21); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&col__0, &v_136, 0), _fx_catch_21); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_162, + v_136, c_et_ptr_0, &for_loc_0, &get_arr_slice_0, 0), _fx_catch_21); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&col__0, &v_137, 0), _fx_catch_21); fx_str_t slit_14 = FX_MAKE_STR("ptr_"); { - const fx_str_t strs_1[] = { slit_14, v_136 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_137), _fx_catch_21); + const fx_str_t strs_1[] = { slit_14, v_137 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_138), _fx_catch_21); } _fx_R9Ast__id_t ptr_id_0; - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &v_137, &ptr_id_0, 0), _fx_catch_21); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_138, 0), _fx_catch_21); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(get_arr_slice_0, &v_139); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &v_138, &ptr_id_0, 0), _fx_catch_21); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_139, 0), _fx_catch_21); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(get_arr_slice_0, &v_140); fx_str_t slit_15 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &ptr_id_0, c_et_ptr_0, &v_138, &slit_15, &v_139, pre_body_ccode_2, &for_loc_0, &v_140, 0), _fx_catch_21); - FX_COPY_PTR(v_140.t0, &ptr_exp_0); - FX_COPY_PTR(v_140.t1, &pre_body_ccode_4); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(c_et_1, &for_loc_0, &v_141); + &ptr_id_0, c_et_ptr_0, &v_139, &slit_15, &v_140, pre_body_ccode_0, &for_loc_0, &v_141, 0), _fx_catch_21); + FX_COPY_PTR(v_141.t0, &ptr_exp_0); + FX_COPY_PTR(v_141.t1, &pre_body_ccode_2); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(c_et_1, &for_loc_0, &v_142); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g24C_gen_code__COpArrayElem, ptr_exp_0, inner_idx_0, &v_141, &get_arr_elem_0), _fx_catch_21); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_142, 0), _fx_catch_21); - _fx_make_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&iter_val_i_1, get_arr_elem_0, &v_142, &v_143); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_143, body_elems_1, true, &v_144), + &_fx_g24C_gen_code__COpArrayElem, ptr_exp_0, inner_idx_0, &v_142, &get_arr_elem_0), _fx_catch_21); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_143, 0), _fx_catch_21); + _fx_make_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&iter_val_i_1, get_arr_elem_0, &v_143, &v_144); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_144, body_elems_0, true, &v_145), _fx_catch_21); _fx_make_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - 0, i_exps_6, n_exps_6, for_checks_1, incr_exps_1, init_checks_6, init_ccode_23, pre_body_ccode_4, v_144, - post_checks_3, &v_35); + 0, i_exps_4, n_exps_4, for_checks_0, incr_exps_0, init_checks_4, init_ccode_20, pre_body_ccode_2, v_145, + post_checks_0, &v_32); _fx_catch_21: ; - if (v_144) { - _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_144); + if (v_145) { + _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_145); } - _fx_free_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_143); - _fx_free_R16Ast__val_flags_t(&v_142); + _fx_free_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_144); + _fx_free_R16Ast__val_flags_t(&v_143); if (get_arr_elem_0) { _fx_free_N14C_form__cexp_t(&get_arr_elem_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_141); - if (pre_body_ccode_4) { - _fx_free_LN15C_form__cstmt_t(&pre_body_ccode_4); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_142); + if (pre_body_ccode_2) { + _fx_free_LN15C_form__cstmt_t(&pre_body_ccode_2); } if (ptr_exp_0) { _fx_free_N14C_form__cexp_t(&ptr_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_140); - _fx_free_Nt6option1N14C_form__cexp_t(&v_139); - _fx_free_R16Ast__val_flags_t(&v_138); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_141); + _fx_free_Nt6option1N14C_form__cexp_t(&v_140); + _fx_free_R16Ast__val_flags_t(&v_139); + FX_FREE_STR(&v_138); FX_FREE_STR(&v_137); - FX_FREE_STR(&v_136); if (get_arr_slice_0) { _fx_free_N14C_form__cexp_t(&get_arr_slice_0); } - if (v_135) { - _fx_free_LN14C_form__cexp_t(&v_135); + if (v_136) { + _fx_free_LN14C_form__cexp_t(&v_136); } - if (v_134) { - _fx_free_N14C_form__cexp_t(&v_134); + if (v_135) { + _fx_free_N14C_form__cexp_t(&v_135); } if (slice_idxs_0) { _fx_free_LN14C_form__cexp_t(&slice_idxs_0); } + if (v_134) { + _fx_free_LN14C_form__cexp_t(&v_134); + } if (v_133) { _fx_free_LN14C_form__cexp_t(&v_133); } if (v_132) { - _fx_free_LN14C_form__cexp_t(&v_132); - } - if (v_131) { - _fx_free_N14C_form__cexp_t(&v_131); + _fx_free_N14C_form__cexp_t(&v_132); } if (inner_idx_0) { _fx_free_N14C_form__cexp_t(&inner_idx_0); @@ -19018,146 +18670,141 @@ static int if (c_et_1) { _fx_free_N14C_form__ctyp_t(&c_et_1); } - if (init_ccode_23) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_23); + if (init_ccode_20) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_20); } - if (init_checks_6) { - _fx_free_LN14C_form__cexp_t(&init_checks_6); + if (init_checks_4) { + _fx_free_LN14C_form__cexp_t(&init_checks_4); } - if (n_exps_6) { - _fx_free_LN14C_form__cexp_t(&n_exps_6); + if (n_exps_4) { + _fx_free_LN14C_form__cexp_t(&n_exps_4); } - if (i_exps_6) { - _fx_free_LN14C_form__cexp_t(&i_exps_6); + if (i_exps_4) { + _fx_free_LN14C_form__cexp_t(&i_exps_4); } - if (init_checks_5) { - _fx_free_LN14C_form__cexp_t(&init_checks_5); + if (init_checks_3) { + _fx_free_LN14C_form__cexp_t(&init_checks_3); } - if (__fold_result___6) { - _fx_free_LN14C_form__cexp_t(&__fold_result___6); + if (v_131) { + _fx_free_LN14C_form__cexp_t(&v_131); } if (v_130) { _fx_free_LN14C_form__cexp_t(&v_130); } - if (v_129) { - _fx_free_LN14C_form__cexp_t(&v_129); - } - if (init_ccode_22) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_22); + if (acc_ccode_0) { + _fx_free_LN15C_form__cstmt_t(&acc_ccode_0); } - if (n_exps_5) { - _fx_free_LN14C_form__cexp_t(&n_exps_5); + if (n_exps_3) { + _fx_free_LN14C_form__cexp_t(&n_exps_3); } - if (i_exps_5) { - _fx_free_LN14C_form__cexp_t(&i_exps_5); + if (i_exps_3) { + _fx_free_LN14C_form__cexp_t(&i_exps_3); } - _fx_free_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_128); - _fx_free_T3LN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___5); - _fx_free_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_127); + _fx_free_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_129); } else if (tag_3 == 18) { - _fx_LN14C_form__cexp_t v_161 = 0; + _fx_LN14C_form__cexp_t v_163 = 0; _fx_N14C_form__cexp_t calc_n_exp_4 = 0; - _fx_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_162 = {0}; - _fx_R16Ast__val_flags_t v_163 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_164 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_165 = {0}; + _fx_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_164 = {0}; + _fx_R16Ast__val_flags_t v_165 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_166 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_167 = {0}; _fx_N14C_form__cexp_t n_exp_3 = 0; - _fx_LN15C_form__cstmt_t init_ccode_26 = 0; - fx_str_t v_166 = {0}; - _fx_R16Ast__val_flags_t v_167 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_168 = {0}; + _fx_LN15C_form__cstmt_t init_ccode_22 = 0; + fx_str_t v_168 = {0}; + _fx_R16Ast__val_flags_t v_169 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_170 = {0}; _fx_N14C_form__cexp_t i_exp_6 = 0; - _fx_LN14C_form__cexp_t v_169 = 0; - _fx_LN14C_form__cexp_t v_170 = 0; + _fx_LN14C_form__cexp_t v_171 = 0; + _fx_LN14C_form__cexp_t v_172 = 0; _fx_N14C_form__cexp_t prev_n_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_171 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_173 = {0}; _fx_N14C_form__cexp_t init_check_0 = 0; - _fx_LN14C_form__cexp_t v_172 = 0; - _fx_LN14C_form__cexp_t i_exps_8 = 0; - _fx_LN14C_form__cexp_t n_exps_8 = 0; - _fx_LN14C_form__cexp_t init_checks_8 = 0; - _fx_LN15C_form__cstmt_t init_ccode_27 = 0; + _fx_LN14C_form__cexp_t v_174 = 0; + _fx_LN14C_form__cexp_t i_exps_5 = 0; + _fx_LN14C_form__cexp_t n_exps_5 = 0; + _fx_LN14C_form__cexp_t init_checks_5 = 0; + _fx_LN15C_form__cstmt_t init_ccode_23 = 0; _fx_N14C_form__ctyp_t c_et_2 = 0; _fx_N14C_form__ctyp_t c_et_ptr_1 = 0; fx_str_t colname_0 = {0}; - fx_str_t v_173 = {0}; + fx_str_t v_175 = {0}; _fx_N14C_form__cexp_t c_et_exp_0 = 0; - _fx_N14C_form__ctyp_t v_174 = 0; - _fx_R16Ast__val_flags_t v_175 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_176 = {0}; + _fx_N14C_form__ctyp_t v_176 = 0; + _fx_R16Ast__val_flags_t v_177 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_178 = {0}; _fx_N14C_form__cexp_t iter_exp_0 = 0; - _fx_LN15C_form__cstmt_t init_ccode_28 = 0; - _fx_LN14C_form__cexp_t v_177 = 0; + _fx_LN15C_form__cstmt_t init_ccode_24 = 0; + _fx_LN14C_form__cexp_t v_179 = 0; _fx_N14C_form__cexp_t start_read_exp_0 = 0; - fx_str_t v_178 = {0}; - _fx_R16Ast__val_flags_t v_179 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_180 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_181 = {0}; + fx_str_t v_180 = {0}; + _fx_R16Ast__val_flags_t v_181 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_182 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_183 = {0}; _fx_N14C_form__cexp_t ptr_exp_1 = 0; - _fx_LN15C_form__cstmt_t init_ccode_29 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_182 = {0}; + _fx_LN15C_form__cstmt_t init_ccode_25 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_184 = {0}; _fx_N14C_form__cexp_t get_vec_elem_0 = 0; - _fx_LN14C_form__cexp_t v_183 = 0; + _fx_LN14C_form__cexp_t v_185 = 0; _fx_N14C_form__cexp_t incr_call_exp_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_184 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_186 = {0}; _fx_N14C_form__cexp_t incr_exp_0 = 0; _fx_R16Ast__val_flags_t elem_flags_0 = {0}; - _fx_LN14C_form__cexp_t v_185 = 0; - _fx_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_186 = {0}; - _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_187 = 0; - _fx_N14K_form__ktyp_t et_1 = v_89->u.KTypVector; - _fx_R9Ast__id_t v_188; + _fx_LN14C_form__cexp_t v_187 = 0; + _fx_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_188 = {0}; + _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t v_189 = 0; + _fx_N14K_form__ktyp_t et_1 = v_88->u.KTypVector; + _fx_R9Ast__id_t v_190; fx_str_t slit_16 = FX_MAKE_STR("FX_RRB_SIZE"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_16, &v_188, 0), _fx_catch_22); - FX_CALL(_fx_cons_LN14C_form__cexp_t(col_exp_1, 0, true, &v_161), _fx_catch_22); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_16, &v_190, 0), _fx_catch_22); + FX_CALL(_fx_cons_LN14C_form__cexp_t(col_exp_1, 0, true, &v_163), _fx_catch_22); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_188, - v_161, _fx_g19C_gen_code__CTypInt, &for_loc_0, &calc_n_exp_4, 0), _fx_catch_22); - if (n_exps_1 == 0) { - _fx_R9Ast__id_t v_189; + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_190, + v_163, _fx_g19C_gen_code__CTypInt, &for_loc_0, &calc_n_exp_4, 0), _fx_catch_22); + if (n_exps_0 == 0) { + _fx_R9Ast__id_t v_191; fx_str_t slit_17 = FX_MAKE_STR("n"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_17, &v_189, 0), _fx_catch_22); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_163, 0), _fx_catch_22); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(calc_n_exp_4, &v_164); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_17, &v_191, 0), _fx_catch_22); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_165, 0), _fx_catch_22); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(calc_n_exp_4, &v_166); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &v_189, _fx_g19C_gen_code__CTypInt, &v_163, &v_164, init_ccode_18, &for_loc_0, block_stack_ref_0, &v_165, + &v_191, _fx_g19C_gen_code__CTypInt, &v_165, &v_166, init_ccode_16, &for_loc_0, block_stack_ref_0, &v_167, 0), _fx_catch_22); - FX_COPY_PTR(v_165.t0, &n_exp_3); - FX_COPY_PTR(v_165.t1, &init_ccode_26); - FX_CALL(_fx_M10C_gen_codeFM3nthS2LSi(for_letters_0, dims_ofs_0, &v_166, 0), _fx_catch_22); + FX_COPY_PTR(v_167.t0, &n_exp_3); + FX_COPY_PTR(v_167.t1, &init_ccode_22); + FX_CALL(_fx_M10C_gen_codeFM3nthS2LSi(for_letters_0, dims_ofs_0, &v_168, 0), _fx_catch_22); _fx_R9Ast__id_t i_id_4; FX_CALL( - _fx_M10C_gen_codeFM11get_iter_idR9Ast__id_t7iLR9Ast__id_tSiiR10Ast__loc_ti(0, at_ids_1, &v_166, for_idx_0, + _fx_M10C_gen_codeFM11get_iter_idR9Ast__id_t7iLR9Ast__id_tSiiR10Ast__loc_ti(0, at_ids_1, &v_168, for_idx_0, km_idx_0, loc_0, nfors_0, &i_id_4, 0), _fx_catch_22); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_167, 0), _fx_catch_22); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_169, 0), _fx_catch_22); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &i_id_4, _fx_g19C_gen_code__CTypInt, &v_167, &_fx_g18C_gen_code__None2_, 0, &for_loc_0, block_stack_ref_0, - &v_168, 0), _fx_catch_22); - FX_COPY_PTR(v_168.t0, &i_exp_6); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_6, i_exps_1, true, &v_169), _fx_catch_22); - FX_CALL(_fx_cons_LN14C_form__cexp_t(n_exp_3, n_exps_1, true, &v_170), _fx_catch_22); - _fx_make_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(v_169, v_170, init_checks_1, - init_ccode_26, &v_162); + &i_id_4, _fx_g19C_gen_code__CTypInt, &v_169, &_fx_g18C_gen_code__None2_, 0, &for_loc_0, block_stack_ref_0, + &v_170, 0), _fx_catch_22); + FX_COPY_PTR(v_170.t0, &i_exp_6); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_6, i_exps_0, true, &v_171), _fx_catch_22); + FX_CALL(_fx_cons_LN14C_form__cexp_t(n_exp_3, n_exps_0, true, &v_172), _fx_catch_22); + _fx_make_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(v_171, v_172, init_checks_0, + init_ccode_22, &v_164); } else { - FX_CALL(_fx_M10C_gen_codeFM2hdN14C_form__cexp_t1LN14C_form__cexp_t(n_exps_1, &prev_n_0, 0), _fx_catch_22); - _fx_N17C_form__cbinary_t v_190; - _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_190); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &for_loc_0, &v_171); + FX_CALL(_fx_M10C_gen_codeFM2hdN14C_form__cexp_t1LN14C_form__cexp_t(n_exps_0, &prev_n_0, 0), _fx_catch_22); + _fx_N17C_form__cbinary_t v_192; + _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_192); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &for_loc_0, &v_173); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &v_190, prev_n_0, calc_n_exp_4, &v_171, &init_check_0), _fx_catch_22); - FX_CALL(_fx_cons_LN14C_form__cexp_t(init_check_0, init_checks_1, true, &v_172), _fx_catch_22); - _fx_make_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(i_exps_1, n_exps_1, v_172, - init_ccode_18, &v_162); - } - FX_COPY_PTR(v_162.t0, &i_exps_8); - FX_COPY_PTR(v_162.t1, &n_exps_8); - FX_COPY_PTR(v_162.t2, &init_checks_8); - FX_COPY_PTR(v_162.t3, &init_ccode_27); + &v_192, prev_n_0, calc_n_exp_4, &v_173, &init_check_0), _fx_catch_22); + FX_CALL(_fx_cons_LN14C_form__cexp_t(init_check_0, init_checks_0, true, &v_174), _fx_catch_22); + _fx_make_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(i_exps_0, n_exps_0, v_174, + init_ccode_16, &v_164); + } + FX_COPY_PTR(v_164.t0, &i_exps_5); + FX_COPY_PTR(v_164.t1, &n_exps_5); + FX_COPY_PTR(v_164.t2, &init_checks_5); + FX_COPY_PTR(v_164.t3, &init_ccode_23); FX_CALL( _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(et_1, &for_loc_0, &c_et_2, 0), _fx_catch_22); @@ -19166,65 +18813,65 @@ static int fx_str_t slit_18 = FX_MAKE_STR("iter_"); { const fx_str_t strs_2[] = { slit_18, colname_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 2, &v_173), _fx_catch_22); + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 2, &v_175), _fx_catch_22); } _fx_R9Ast__id_t iter_id_0; - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &v_173, &iter_id_0, 0), _fx_catch_22); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &v_175, &iter_id_0, 0), _fx_catch_22); FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(c_et_2, &for_loc_0, &c_et_exp_0), _fx_catch_22); - _fx_R9Ast__id_t v_191; + _fx_R9Ast__id_t v_193; fx_str_t slit_19 = FX_MAKE_STR("fx_rrbiter_t"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_19, &v_191, 0), _fx_catch_22); - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_191, &v_174), _fx_catch_22); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_175, 0), _fx_catch_22); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_19, &v_193, 0), _fx_catch_22); + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_193, &v_176), _fx_catch_22); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_177, 0), _fx_catch_22); fx_str_t slit_20 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &iter_id_0, v_174, &v_175, &slit_20, &_fx_g18C_gen_code__None2_, init_ccode_27, &for_loc_0, &v_176, 0), + &iter_id_0, v_176, &v_177, &slit_20, &_fx_g18C_gen_code__None2_, init_ccode_23, &for_loc_0, &v_178, 0), _fx_catch_22); - FX_COPY_PTR(v_176.t0, &iter_exp_0); - FX_COPY_PTR(v_176.t1, &init_ccode_28); - _fx_R9Ast__id_t v_192; + FX_COPY_PTR(v_178.t0, &iter_exp_0); + FX_COPY_PTR(v_178.t1, &init_ccode_24); + _fx_R9Ast__id_t v_194; fx_str_t slit_21 = FX_MAKE_STR("FX_RRB_START_READ"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_21, &v_192, 0), _fx_catch_22); - FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_exp_0, 0, true, &v_177), _fx_catch_22); - FX_CALL(_fx_cons_LN14C_form__cexp_t(col_exp_1, v_177, false, &v_177), _fx_catch_22); - FX_CALL(_fx_cons_LN14C_form__cexp_t(c_et_exp_0, v_177, false, &v_177), _fx_catch_22); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_21, &v_194, 0), _fx_catch_22); + FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_exp_0, 0, true, &v_179), _fx_catch_22); + FX_CALL(_fx_cons_LN14C_form__cexp_t(col_exp_1, v_179, false, &v_179), _fx_catch_22); + FX_CALL(_fx_cons_LN14C_form__cexp_t(c_et_exp_0, v_179, false, &v_179), _fx_catch_22); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_192, - v_177, _fx_g23C_form__std_CTypVoidPtr, &for_loc_0, &start_read_exp_0, 0), _fx_catch_22); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_194, + v_179, _fx_g23C_form__std_CTypVoidPtr, &for_loc_0, &start_read_exp_0, 0), _fx_catch_22); fx_str_t slit_22 = FX_MAKE_STR("ptr_"); { const fx_str_t strs_3[] = { slit_22, colname_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 2, &v_178), _fx_catch_22); + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 2, &v_180), _fx_catch_22); } _fx_R9Ast__id_t ptr_id_1; - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &v_178, &ptr_id_1, 0), _fx_catch_22); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_179, 0), _fx_catch_22); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(start_read_exp_0, &v_180); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &v_180, &ptr_id_1, 0), _fx_catch_22); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_181, 0), _fx_catch_22); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(start_read_exp_0, &v_182); fx_str_t slit_23 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &ptr_id_1, c_et_ptr_1, &v_179, &slit_23, &v_180, init_ccode_28, &for_loc_0, &v_181, 0), _fx_catch_22); - FX_COPY_PTR(v_181.t0, &ptr_exp_1); - FX_COPY_PTR(v_181.t1, &init_ccode_29); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(c_et_2, &for_loc_0, &v_182); + &ptr_id_1, c_et_ptr_1, &v_181, &slit_23, &v_182, init_ccode_24, &for_loc_0, &v_183, 0), _fx_catch_22); + FX_COPY_PTR(v_183.t0, &ptr_exp_1); + FX_COPY_PTR(v_183.t1, &init_ccode_25); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(c_et_2, &for_loc_0, &v_184); FX_CALL( _fx_M6C_formFM9CExpUnaryN14C_form__cexp_t3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g20C_gen_code__COpDeref, ptr_exp_1, &v_182, &get_vec_elem_0), _fx_catch_22); - _fx_R9Ast__id_t v_193; + &_fx_g20C_gen_code__COpDeref, ptr_exp_1, &v_184, &get_vec_elem_0), _fx_catch_22); + _fx_R9Ast__id_t v_195; fx_str_t slit_24 = FX_MAKE_STR("FX_RRB_NEXT"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_24, &v_193, 0), _fx_catch_22); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ptr_exp_1, 0, true, &v_183), _fx_catch_22); - FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_exp_0, v_183, false, &v_183), _fx_catch_22); - FX_CALL(_fx_cons_LN14C_form__cexp_t(c_et_exp_0, v_183, false, &v_183), _fx_catch_22); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_24, &v_195, 0), _fx_catch_22); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ptr_exp_1, 0, true, &v_185), _fx_catch_22); + FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_exp_0, v_185, false, &v_185), _fx_catch_22); + FX_CALL(_fx_cons_LN14C_form__cexp_t(c_et_exp_0, v_185, false, &v_185), _fx_catch_22); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_193, - v_183, _fx_g23C_form__std_CTypVoidPtr, &for_loc_0, &incr_call_exp_0, 0), _fx_catch_22); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypVoid, &for_loc_0, &v_184); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_195, + v_185, _fx_g23C_form__std_CTypVoidPtr, &for_loc_0, &incr_call_exp_0, 0), _fx_catch_22); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypVoid, &for_loc_0, &v_186); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g21C_gen_code__COpAssign, ptr_exp_1, incr_call_exp_0, &v_184, &incr_exp_0), _fx_catch_22); + &_fx_g21C_gen_code__COpAssign, ptr_exp_1, incr_call_exp_0, &v_186, &incr_exp_0), _fx_catch_22); bool res_4; FX_CALL(_fx_M6K_formFM14is_ktyp_scalarB1N14K_form__ktyp_t(et_1, &res_4, 0), _fx_catch_22); if (res_4) { @@ -19233,68 +18880,68 @@ static int else { FX_CALL(_fx_M3AstFM21default_tempref_flagsRM11val_flags_t0(&elem_flags_0, 0), _fx_catch_22); } - FX_CALL(_fx_cons_LN14C_form__cexp_t(incr_exp_0, incr_exps_1, true, &v_185), _fx_catch_22); - _fx_make_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&iter_val_i_1, get_vec_elem_0, &elem_flags_0, &v_186); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_186, body_elems_1, true, &v_187), + FX_CALL(_fx_cons_LN14C_form__cexp_t(incr_exp_0, incr_exps_0, true, &v_187), _fx_catch_22); + _fx_make_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&iter_val_i_1, get_vec_elem_0, &elem_flags_0, &v_188); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_188, body_elems_0, true, &v_189), _fx_catch_22); _fx_make_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - 0, i_exps_8, n_exps_8, for_checks_1, v_185, init_checks_8, init_ccode_29, pre_body_ccode_2, v_187, post_checks_3, - &v_35); + 0, i_exps_5, n_exps_5, for_checks_0, v_187, init_checks_5, init_ccode_25, pre_body_ccode_0, v_189, post_checks_0, + &v_32); _fx_catch_22: ; - if (v_187) { - _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_187); + if (v_189) { + _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_189); } - _fx_free_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_186); - if (v_185) { - _fx_free_LN14C_form__cexp_t(&v_185); + _fx_free_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&v_188); + if (v_187) { + _fx_free_LN14C_form__cexp_t(&v_187); } _fx_free_R16Ast__val_flags_t(&elem_flags_0); if (incr_exp_0) { _fx_free_N14C_form__cexp_t(&incr_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_184); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_186); if (incr_call_exp_0) { _fx_free_N14C_form__cexp_t(&incr_call_exp_0); } - if (v_183) { - _fx_free_LN14C_form__cexp_t(&v_183); + if (v_185) { + _fx_free_LN14C_form__cexp_t(&v_185); } if (get_vec_elem_0) { _fx_free_N14C_form__cexp_t(&get_vec_elem_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_182); - if (init_ccode_29) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_29); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_184); + if (init_ccode_25) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_25); } if (ptr_exp_1) { _fx_free_N14C_form__cexp_t(&ptr_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_181); - _fx_free_Nt6option1N14C_form__cexp_t(&v_180); - _fx_free_R16Ast__val_flags_t(&v_179); - FX_FREE_STR(&v_178); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_183); + _fx_free_Nt6option1N14C_form__cexp_t(&v_182); + _fx_free_R16Ast__val_flags_t(&v_181); + FX_FREE_STR(&v_180); if (start_read_exp_0) { _fx_free_N14C_form__cexp_t(&start_read_exp_0); } - if (v_177) { - _fx_free_LN14C_form__cexp_t(&v_177); + if (v_179) { + _fx_free_LN14C_form__cexp_t(&v_179); } - if (init_ccode_28) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_28); + if (init_ccode_24) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_24); } if (iter_exp_0) { _fx_free_N14C_form__cexp_t(&iter_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_176); - _fx_free_R16Ast__val_flags_t(&v_175); - if (v_174) { - _fx_free_N14C_form__ctyp_t(&v_174); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_178); + _fx_free_R16Ast__val_flags_t(&v_177); + if (v_176) { + _fx_free_N14C_form__ctyp_t(&v_176); } if (c_et_exp_0) { _fx_free_N14C_form__cexp_t(&c_et_exp_0); } - FX_FREE_STR(&v_173); + FX_FREE_STR(&v_175); FX_FREE_STR(&colname_0); if (c_et_ptr_1) { _fx_free_N14C_form__ctyp_t(&c_et_ptr_1); @@ -19302,121 +18949,121 @@ static int if (c_et_2) { _fx_free_N14C_form__ctyp_t(&c_et_2); } - if (init_ccode_27) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_27); + if (init_ccode_23) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_23); } - if (init_checks_8) { - _fx_free_LN14C_form__cexp_t(&init_checks_8); + if (init_checks_5) { + _fx_free_LN14C_form__cexp_t(&init_checks_5); } - if (n_exps_8) { - _fx_free_LN14C_form__cexp_t(&n_exps_8); + if (n_exps_5) { + _fx_free_LN14C_form__cexp_t(&n_exps_5); } - if (i_exps_8) { - _fx_free_LN14C_form__cexp_t(&i_exps_8); + if (i_exps_5) { + _fx_free_LN14C_form__cexp_t(&i_exps_5); } - if (v_172) { - _fx_free_LN14C_form__cexp_t(&v_172); + if (v_174) { + _fx_free_LN14C_form__cexp_t(&v_174); } if (init_check_0) { _fx_free_N14C_form__cexp_t(&init_check_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_171); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_173); if (prev_n_0) { _fx_free_N14C_form__cexp_t(&prev_n_0); } - if (v_170) { - _fx_free_LN14C_form__cexp_t(&v_170); + if (v_172) { + _fx_free_LN14C_form__cexp_t(&v_172); } - if (v_169) { - _fx_free_LN14C_form__cexp_t(&v_169); + if (v_171) { + _fx_free_LN14C_form__cexp_t(&v_171); } if (i_exp_6) { _fx_free_N14C_form__cexp_t(&i_exp_6); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_168); - _fx_free_R16Ast__val_flags_t(&v_167); - FX_FREE_STR(&v_166); - if (init_ccode_26) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_26); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_170); + _fx_free_R16Ast__val_flags_t(&v_169); + FX_FREE_STR(&v_168); + if (init_ccode_22) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_22); } if (n_exp_3) { _fx_free_N14C_form__cexp_t(&n_exp_3); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_165); - _fx_free_Nt6option1N14C_form__cexp_t(&v_164); - _fx_free_R16Ast__val_flags_t(&v_163); - _fx_free_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_162); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_167); + _fx_free_Nt6option1N14C_form__cexp_t(&v_166); + _fx_free_R16Ast__val_flags_t(&v_165); + _fx_free_T4LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_164); if (calc_n_exp_4) { _fx_free_N14C_form__cexp_t(&calc_n_exp_4); } - if (v_161) { - _fx_free_LN14C_form__cexp_t(&v_161); + if (v_163) { + _fx_free_LN14C_form__cexp_t(&v_163); } } else { - fx_str_t v_194 = {0}; - fx_str_t v_195 = {0}; fx_str_t v_196 = {0}; fx_str_t v_197 = {0}; fx_str_t v_198 = {0}; - fx_exn_t v_199 = {0}; - FX_CALL(_fx_M6K_formFM8atom2strS1N14K_form__atom_t(a_1, &v_194, 0), _fx_catch_23); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_194, &v_195, 0), _fx_catch_23); - FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(ktyp_0, &v_196, 0), _fx_catch_23); + fx_str_t v_199 = {0}; + fx_str_t v_200 = {0}; + fx_exn_t v_201 = {0}; + FX_CALL(_fx_M6K_formFM8atom2strS1N14K_form__atom_t(a_1, &v_196, 0), _fx_catch_23); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_196, &v_197, 0), _fx_catch_23); + FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(ktyp_0, &v_198, 0), _fx_catch_23); fx_str_t slit_25 = FX_MAKE_STR("cannot iterate over \'"); fx_str_t slit_26 = FX_MAKE_STR("\' of type \'"); fx_str_t slit_27 = FX_MAKE_STR("\'; it needs to be array, list, vector or string"); { - const fx_str_t strs_4[] = { slit_25, v_195, slit_26, v_196, slit_27 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 5, &v_197), _fx_catch_23); + const fx_str_t strs_4[] = { slit_25, v_197, slit_26, v_198, slit_27 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 5, &v_199), _fx_catch_23); } - FX_CALL(_fx_M10C_gen_codeFM11for_err_msgS4iiiS(for_idx_0, nfors_0, k_0, &v_197, &v_198, 0), _fx_catch_23); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&for_loc_0, &v_198, &v_199, 0), _fx_catch_23); - FX_THROW(&v_199, false, _fx_catch_23); + FX_CALL(_fx_M10C_gen_codeFM11for_err_msgS4iiiS(for_idx_0, nfors_0, k_0, &v_199, &v_200, 0), _fx_catch_23); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&for_loc_0, &v_200, &v_201, 0), _fx_catch_23); + FX_THROW(&v_201, false, _fx_catch_23); _fx_catch_23: ; - fx_free_exn(&v_199); + fx_free_exn(&v_201); + FX_FREE_STR(&v_200); + FX_FREE_STR(&v_199); FX_FREE_STR(&v_198); FX_FREE_STR(&v_197); FX_FREE_STR(&v_196); - FX_FREE_STR(&v_195); - FX_FREE_STR(&v_194); } FX_CHECK_EXN(_fx_catch_24); _fx_catch_24: ; - if (v_89) { - _fx_free_N14K_form__ktyp_t(&v_89); + if (v_88) { + _fx_free_N14K_form__ktyp_t(&v_88); } - if (init_ccode_18) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_18); + if (init_ccode_16) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_16); } if (col_exp_1) { _fx_free_N14C_form__cexp_t(&col_exp_1); } - if (init_ccode_17) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_17); + if (init_ccode_15) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_15); } - if (init_ccode_16) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_16); + if (init_ccode_14) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_14); } if (col_exp_0) { _fx_free_N14C_form__cexp_t(&col_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_88); - FX_FREE_STR(&v_87); - if (v_86) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_86); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_87); + FX_FREE_STR(&v_86); + if (v_85) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_85); } - if (init_ccode_15) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_15); + if (init_ccode_13) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_13); } if (src_exp_0) { _fx_free_N14C_form__cexp_t(&src_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_85); - _fx_free_N14K_form__atom_t(&v_84); - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_83); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_84); + _fx_free_N14K_form__atom_t(&v_83); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_82); if (ctyp_0) { _fx_free_N14C_form__ctyp_t(&ctyp_0); } @@ -19425,139 +19072,106 @@ static int } } else { - fx_str_t v_200 = {0}; - fx_exn_t v_201 = {0}; + fx_str_t v_202 = {0}; + fx_exn_t v_203 = {0}; fx_str_t slit_28 = FX_MAKE_STR("unsupported type of the for loop iteration domain"); - FX_CALL(_fx_M10C_gen_codeFM11for_err_msgS4iiiS(for_idx_0, nfors_0, k_0, &slit_28, &v_200, 0), _fx_catch_25); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&for_loc_0, &v_200, &v_201, 0), _fx_catch_25); - FX_THROW(&v_201, false, _fx_catch_25); + FX_CALL(_fx_M10C_gen_codeFM11for_err_msgS4iiiS(for_idx_0, nfors_0, k_0, &slit_28, &v_202, 0), _fx_catch_25); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&for_loc_0, &v_202, &v_203, 0), _fx_catch_25); + FX_THROW(&v_203, false, _fx_catch_25); _fx_catch_25: ; - fx_free_exn(&v_201); - FX_FREE_STR(&v_200); + fx_free_exn(&v_203); + FX_FREE_STR(&v_202); } FX_CHECK_EXN(_fx_catch_26); - FX_COPY_PTR(v_35.t0, &lists_i_0); - FX_COPY_PTR(v_35.t1, &i_exps_2); - FX_COPY_PTR(v_35.t2, &n_exps_2); - FX_COPY_PTR(v_35.t3, &for_checks_2); - FX_COPY_PTR(v_35.t4, &incr_exps_2); - FX_COPY_PTR(v_35.t5, &init_checks_2); - FX_COPY_PTR(v_35.t6, &init_ccode_5); - FX_COPY_PTR(v_35.t7, &pre_body_ccode_3); - FX_COPY_PTR(v_35.t8, &body_elems_2); - FX_COPY_PTR(v_35.t9, &post_checks_4); + FX_COPY_PTR(v_32.t0, &lists_i_0); + FX_COPY_PTR(v_32.t1, &i_exps_n_0); + FX_COPY_PTR(v_32.t2, &n_exps_n_0); + FX_COPY_PTR(v_32.t3, &for_checks_n_0); + FX_COPY_PTR(v_32.t4, &incr_exps_n_0); + FX_COPY_PTR(v_32.t5, &init_checks_n_0); + FX_COPY_PTR(v_32.t6, &init_ccode_n_0); + FX_COPY_PTR(v_32.t7, &pre_body_ccode_n_0); + FX_COPY_PTR(v_32.t8, &body_elems_n_0); + FX_COPY_PTR(v_32.t9, &post_checks_n_0); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(lists_i_0, list_exps_1, &v_36, 0), + _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(lists_i_0, list_exps_0, &v_33, 0), _fx_catch_26); - _fx_make_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - v_36, i_exps_2, n_exps_2, for_checks_2, incr_exps_2, init_checks_2, init_ccode_5, pre_body_ccode_3, body_elems_2, - post_checks_4, &v_37); - _fx_free_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - &__fold_result___0); - _fx_copy_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - &v_37, &__fold_result___0); + _fx_free_LN14C_form__cexp_t(&list_exps_0); + FX_COPY_PTR(v_33, &list_exps_0); + _fx_free_LN14C_form__cexp_t(&i_exps_0); + FX_COPY_PTR(i_exps_n_0, &i_exps_0); + _fx_free_LN14C_form__cexp_t(&n_exps_0); + FX_COPY_PTR(n_exps_n_0, &n_exps_0); + _fx_free_LN14C_form__cexp_t(&for_checks_0); + FX_COPY_PTR(for_checks_n_0, &for_checks_0); + _fx_free_LN14C_form__cexp_t(&incr_exps_0); + FX_COPY_PTR(incr_exps_n_0, &incr_exps_0); + _fx_free_LN14C_form__cexp_t(&init_checks_0); + FX_COPY_PTR(init_checks_n_0, &init_checks_0); + _fx_free_LN15C_form__cstmt_t(&init_ccode_1); + FX_COPY_PTR(init_ccode_n_0, &init_ccode_1); + _fx_free_LN15C_form__cstmt_t(&pre_body_ccode_0); + FX_COPY_PTR(pre_body_ccode_n_0, &pre_body_ccode_0); + _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&body_elems_0); + FX_COPY_PTR(body_elems_n_0, &body_elems_0); + _fx_free_LN14C_form__cexp_t(&post_checks_0); + FX_COPY_PTR(post_checks_n_0, &post_checks_0); _fx_catch_26: ; - _fx_free_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - &v_37); - if (v_36) { - _fx_free_LN14C_form__cexp_t(&v_36); + if (v_33) { + _fx_free_LN14C_form__cexp_t(&v_33); } - if (post_checks_4) { - _fx_free_LN14C_form__cexp_t(&post_checks_4); + if (post_checks_n_0) { + _fx_free_LN14C_form__cexp_t(&post_checks_n_0); } - if (body_elems_2) { - _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&body_elems_2); + if (body_elems_n_0) { + _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&body_elems_n_0); } - if (pre_body_ccode_3) { - _fx_free_LN15C_form__cstmt_t(&pre_body_ccode_3); + if (pre_body_ccode_n_0) { + _fx_free_LN15C_form__cstmt_t(&pre_body_ccode_n_0); } - if (init_ccode_5) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_5); + if (init_ccode_n_0) { + _fx_free_LN15C_form__cstmt_t(&init_ccode_n_0); } - if (init_checks_2) { - _fx_free_LN14C_form__cexp_t(&init_checks_2); + if (init_checks_n_0) { + _fx_free_LN14C_form__cexp_t(&init_checks_n_0); } - if (incr_exps_2) { - _fx_free_LN14C_form__cexp_t(&incr_exps_2); + if (incr_exps_n_0) { + _fx_free_LN14C_form__cexp_t(&incr_exps_n_0); } - if (for_checks_2) { - _fx_free_LN14C_form__cexp_t(&for_checks_2); + if (for_checks_n_0) { + _fx_free_LN14C_form__cexp_t(&for_checks_n_0); } - if (n_exps_2) { - _fx_free_LN14C_form__cexp_t(&n_exps_2); + if (n_exps_n_0) { + _fx_free_LN14C_form__cexp_t(&n_exps_n_0); } - if (i_exps_2) { - _fx_free_LN14C_form__cexp_t(&i_exps_2); + if (i_exps_n_0) { + _fx_free_LN14C_form__cexp_t(&i_exps_n_0); } if (lists_i_0) { _fx_free_LN14C_form__cexp_t(&lists_i_0); } _fx_free_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - &v_35); - if (post_checks_3) { - _fx_free_LN14C_form__cexp_t(&post_checks_3); - } - if (body_elems_1) { - _fx_free_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t(&body_elems_1); - } - if (pre_body_ccode_2) { - _fx_free_LN15C_form__cstmt_t(&pre_body_ccode_2); - } - if (init_ccode_4) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_4); - } - if (init_checks_1) { - _fx_free_LN14C_form__cexp_t(&init_checks_1); - } - if (incr_exps_1) { - _fx_free_LN14C_form__cexp_t(&incr_exps_1); - } - if (for_checks_1) { - _fx_free_LN14C_form__cexp_t(&for_checks_1); - } - if (n_exps_1) { - _fx_free_LN14C_form__cexp_t(&n_exps_1); - } - if (i_exps_1) { - _fx_free_LN14C_form__cexp_t(&i_exps_1); - } - if (list_exps_1) { - _fx_free_LN14C_form__cexp_t(&list_exps_1); - } - _fx_free_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - &v_34); + &v_32); _fx_free_N13K_form__dom_t(&dom_i_1); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - &__fold_result___0, &v_3); - FX_COPY_PTR(v_3.t0, &list_exps_0); - FX_COPY_PTR(v_3.t1, &i_exps_0); - FX_COPY_PTR(v_3.t2, &n_exps_0); - FX_COPY_PTR(v_3.t3, &for_checks_0); - FX_COPY_PTR(v_3.t4, &incr_exps_0); - FX_COPY_PTR(v_3.t5, &init_checks_0); - FX_COPY_PTR(v_3.t6, &init_ccode_1); - FX_COPY_PTR(v_3.t7, &pre_body_ccode_0); - FX_COPY_PTR(v_3.t8, &body_elems_0); - FX_COPY_PTR(v_3.t9, &post_checks_0); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(init_checks_0, &v_4, 0), _fx_cleanup); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(init_checks_0, &v_3, 0), _fx_cleanup); FX_CALL( _fx_M10C_gen_codeFM17add_size_eq_checkLN15C_form__cstmt_t4LN14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t( - v_4, init_ccode_1, lbl_0, &for_loc_0, &init_ccode_2, 0), _fx_cleanup); + v_3, init_ccode_1, lbl_0, &for_loc_0, &init_ccode_2, 0), _fx_cleanup); if (ndims_0 > 1) { - _fx_make_Ta2LN15C_form__cstmt_t(init_ccode_2, pre_body_ccode_0, &v_5); + _fx_make_Ta2LN15C_form__cstmt_t(init_ccode_2, pre_body_ccode_0, &v_4); } else { FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(pre_body_ccode_0, init_ccode_2, - &v_6, 0), _fx_cleanup); - _fx_make_Ta2LN15C_form__cstmt_t(v_6, 0, &v_5); + &v_5, 0), _fx_cleanup); + _fx_make_Ta2LN15C_form__cstmt_t(v_5, 0, &v_4); } - FX_COPY_PTR(v_5.t0, &init_ccode_3); - FX_COPY_PTR(v_5.t1, &pre_body_ccode_1); + FX_COPY_PTR(v_4.t0, &init_ccode_3); + FX_COPY_PTR(v_4.t1, &pre_body_ccode_1); FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(post_checks_0, &post_checks_1, 0), _fx_cleanup); bool t_0; if (post_checks_1 != 0) { @@ -19567,140 +19181,128 @@ static int t_0 = false; } if (t_0) { - _fx_N17C_form__cbinary_t v_202; - _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_202); - FX_CALL(_fx_M10C_gen_codeFM2hdN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_0, &v_7, 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM2hdN14C_form__cexp_t1LN14C_form__cexp_t(n_exps_0, &v_8, 0), _fx_cleanup); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &end_for_loc_0, &v_9); + _fx_N17C_form__cbinary_t v_204; + _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_204); + FX_CALL(_fx_M10C_gen_codeFM2hdN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_0, &v_6, 0), _fx_cleanup); + FX_CALL(_fx_M10C_gen_codeFM2hdN14C_form__cexp_t1LN14C_form__cexp_t(n_exps_0, &v_7, 0), _fx_cleanup); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &end_for_loc_0, &v_8); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &v_202, v_7, v_8, &v_9, &v_10), _fx_cleanup); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_10, post_checks_1, true, &post_checks_2), _fx_cleanup); + &v_204, v_6, v_7, &v_8, &v_9), _fx_cleanup); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_9, post_checks_1, true, &post_checks_2), _fx_cleanup); } else { - int_ v_203; - FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14C_form__cexp_t(post_checks_1, &v_203, 0), _fx_cleanup); - if (v_203 > 1) { + int_ v_205; + FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14C_form__cexp_t(post_checks_1, &v_205, 0), _fx_cleanup); + if (v_205 > 1) { FX_COPY_PTR(post_checks_1, &post_checks_2); } } FX_CALL( _fx_M10C_gen_codeFM19add_size_post_checkLN15C_form__cstmt_t5LN14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_ti( post_checks_2, 0, lbl_0, &end_for_loc_0, km_idx_0, &post_ccode_0, 0), _fx_cleanup); - _fx_make_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(0, 0, - &__fold_result___1); + int_ k_final_0 = 0; _fx_LN14C_form__cexp_t lst_4 = i_exps_0; _fx_LN14C_form__cexp_t lst_5 = n_exps_0; for (; lst_4 && lst_5; lst_5 = lst_5->tl, lst_4 = lst_4->tl) { - _fx_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_204 = {0}; - _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t for_headers_2 = 0; - _fx_N14C_form__cexp_t v_205 = 0; _fx_N14C_form__cexp_t v_206 = 0; + _fx_N14C_form__cexp_t v_207 = 0; _fx_LN14C_form__cexp_t init_exps_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_207 = {0}; - _fx_N14C_form__cexp_t check_exp_0 = 0; _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_208 = {0}; - _fx_N14C_form__cexp_t v_209 = 0; + _fx_N14C_form__cexp_t check_exp_0 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_209 = {0}; + _fx_N14C_form__cexp_t v_210 = 0; _fx_LN14C_form__cexp_t incr_exps_i_0 = 0; - _fx_T2N14C_form__cexp_tLN14C_form__cexp_t v_210 = {0}; - _fx_N14C_form__cexp_t __fold_result___7 = 0; - _fx_LN14C_form__cexp_t v_211 = 0; + _fx_T2N14C_form__cexp_tLN14C_form__cexp_t v_211 = {0}; _fx_N14C_form__cexp_t check_exp_1 = 0; _fx_LN14C_form__cexp_t v_212 = 0; _fx_LN14C_form__cexp_t v_213 = 0; + _fx_LN14C_form__cexp_t v_214 = 0; _fx_N14C_form__cexp_t check_exp_2 = 0; _fx_LN14C_form__cexp_t incr_exps_i_1 = 0; - _fx_Nt6option1N14C_form__ctyp_t v_214 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_215 = {0}; - _fx_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_216 = {0}; - _fx_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_217 = {0}; + _fx_Nt6option1N14C_form__ctyp_t v_215 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_216 = {0}; + _fx_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_217 = {0}; + _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_218 = 0; _fx_N14C_form__cexp_t n_exp_4 = lst_5->hd; _fx_N14C_form__cexp_t i_exp_7 = lst_4->hd; - _fx_copy_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - &__fold_result___1, &v_204); - int_ k_final_0 = v_204.t0; - FX_COPY_PTR(v_204.t1, &for_headers_2); _fx_R10Ast__loc_t ifor_loc_0; FX_CALL(_fx_M6C_formFM12get_cexp_locR10Ast__loc_t1N14C_form__cexp_t(n_exp_4, &ifor_loc_0, 0), _fx_catch_28); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &ifor_loc_0, &v_205, 0), _fx_catch_28); - FX_CALL(_fx_M6C_formFM11make_assignN14C_form__cexp_t2N14C_form__cexp_tN14C_form__cexp_t(i_exp_7, v_205, &v_206, 0), + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &ifor_loc_0, &v_206, 0), _fx_catch_28); + FX_CALL(_fx_M6C_formFM11make_assignN14C_form__cexp_t2N14C_form__cexp_tN14C_form__cexp_t(i_exp_7, v_206, &v_207, 0), _fx_catch_28); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_206, 0, true, &init_exps_0), _fx_catch_28); - _fx_N17C_form__cbinary_t v_218; - _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpLT, &v_218); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &ifor_loc_0, &v_207); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_207, 0, true, &init_exps_0), _fx_catch_28); + _fx_N17C_form__cbinary_t v_219; + _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpLT, &v_219); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &ifor_loc_0, &v_208); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &v_218, i_exp_7, n_exp_4, &v_207, &check_exp_0), _fx_catch_28); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g19C_gen_code__CTypInt, &ifor_loc_0, &v_208); + &v_219, i_exp_7, n_exp_4, &v_208, &check_exp_0), _fx_catch_28); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g19C_gen_code__CTypInt, &ifor_loc_0, &v_209); FX_CALL( _fx_M6C_formFM9CExpUnaryN14C_form__cexp_t3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g24C_gen_code__COpSuffixInc, i_exp_7, &v_208, &v_209), _fx_catch_28); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_209, 0, true, &incr_exps_i_0), _fx_catch_28); + &_fx_g24C_gen_code__COpSuffixInc, i_exp_7, &v_209, &v_210), _fx_catch_28); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_210, 0, true, &incr_exps_i_0), _fx_catch_28); if (k_final_0 > 0) { - _fx_make_T2N14C_form__cexp_tLN14C_form__cexp_t(check_exp_0, incr_exps_i_0, &v_210); + _fx_make_T2N14C_form__cexp_tLN14C_form__cexp_t(check_exp_0, incr_exps_i_0, &v_211); } else { - FX_COPY_PTR(check_exp_0, &__fold_result___7); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(for_checks_0, &v_211, 0), _fx_catch_28); - _fx_LN14C_form__cexp_t lst_6 = v_211; + FX_COPY_PTR(check_exp_0, &check_exp_1); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(for_checks_0, &v_212, 0), _fx_catch_28); + _fx_LN14C_form__cexp_t lst_6 = v_212; for (; lst_6; lst_6 = lst_6->tl) { - _fx_N14C_form__cexp_t check_exp_3 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_219 = {0}; - _fx_N14C_form__cexp_t v_220 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_220 = {0}; + _fx_N14C_form__cexp_t v_221 = 0; _fx_N14C_form__cexp_t e_1 = lst_6->hd; - FX_COPY_PTR(__fold_result___7, &check_exp_3); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &ifor_loc_0, &v_219); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &ifor_loc_0, &v_220); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_gen_code__COpLogicAnd, check_exp_3, e_1, &v_219, &v_220), _fx_catch_27); - _fx_free_N14C_form__cexp_t(&__fold_result___7); - FX_COPY_PTR(v_220, &__fold_result___7); + &_fx_g23C_gen_code__COpLogicAnd, check_exp_1, e_1, &v_220, &v_221), _fx_catch_27); + _fx_free_N14C_form__cexp_t(&check_exp_1); + FX_COPY_PTR(v_221, &check_exp_1); _fx_catch_27: ; - if (v_220) { - _fx_free_N14C_form__cexp_t(&v_220); - } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_219); - if (check_exp_3) { - _fx_free_N14C_form__cexp_t(&check_exp_3); + if (v_221) { + _fx_free_N14C_form__cexp_t(&v_221); } + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_220); FX_CHECK_EXN(_fx_catch_28); } - FX_COPY_PTR(__fold_result___7, &check_exp_1); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(incr_exps_0, &v_212, 0), _fx_catch_28); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(incr_exps_0, &v_213, 0), _fx_catch_28); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(incr_exps_i_0, v_212, &v_213, 0), + _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(incr_exps_i_0, v_213, &v_214, 0), _fx_catch_28); - _fx_make_T2N14C_form__cexp_tLN14C_form__cexp_t(check_exp_1, v_213, &v_210); - } - FX_COPY_PTR(v_210.t0, &check_exp_2); - FX_COPY_PTR(v_210.t1, &incr_exps_i_1); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g19C_gen_code__CTypInt, &v_214); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(check_exp_2, &v_215); - _fx_make_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_214, init_exps_0, - &v_215, incr_exps_i_1, &v_216); + _fx_make_T2N14C_form__cexp_tLN14C_form__cexp_t(check_exp_1, v_214, &v_211); + } + FX_COPY_PTR(v_211.t0, &check_exp_2); + FX_COPY_PTR(v_211.t1, &incr_exps_i_1); + k_final_0 = k_final_0 + 1; + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__ctyp_t1N14C_form__ctyp_t(_fx_g19C_gen_code__CTypInt, &v_215); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(check_exp_2, &v_216); + _fx_make_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_215, init_exps_0, + &v_216, incr_exps_i_1, &v_217); FX_CALL( - _fx_cons_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_216, - for_headers_2, false, &for_headers_2), _fx_catch_28); - _fx_make_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(k_final_0 + 1, - for_headers_2, &v_217); - _fx_free_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - &__fold_result___1); - _fx_copy_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_217, - &__fold_result___1); + _fx_cons_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_217, + for_headers_0, true, &v_218), _fx_catch_28); + _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&for_headers_0); + FX_COPY_PTR(v_218, &for_headers_0); _fx_catch_28: ; - _fx_free_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_217); - _fx_free_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_216); - _fx_free_Nt6option1N14C_form__cexp_t(&v_215); - _fx_free_Nt6option1N14C_form__ctyp_t(&v_214); + if (v_218) { + _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_218); + } + _fx_free_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_217); + _fx_free_Nt6option1N14C_form__cexp_t(&v_216); + _fx_free_Nt6option1N14C_form__ctyp_t(&v_215); if (incr_exps_i_1) { _fx_free_LN14C_form__cexp_t(&incr_exps_i_1); } if (check_exp_2) { _fx_free_N14C_form__cexp_t(&check_exp_2); } + if (v_214) { + _fx_free_LN14C_form__cexp_t(&v_214); + } if (v_213) { _fx_free_LN14C_form__cexp_t(&v_213); } @@ -19710,96 +19312,81 @@ static int if (check_exp_1) { _fx_free_N14C_form__cexp_t(&check_exp_1); } - if (v_211) { - _fx_free_LN14C_form__cexp_t(&v_211); - } - if (__fold_result___7) { - _fx_free_N14C_form__cexp_t(&__fold_result___7); - } - _fx_free_T2N14C_form__cexp_tLN14C_form__cexp_t(&v_210); + _fx_free_T2N14C_form__cexp_tLN14C_form__cexp_t(&v_211); if (incr_exps_i_0) { _fx_free_LN14C_form__cexp_t(&incr_exps_i_0); } - if (v_209) { - _fx_free_N14C_form__cexp_t(&v_209); + if (v_210) { + _fx_free_N14C_form__cexp_t(&v_210); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_208); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_209); if (check_exp_0) { _fx_free_N14C_form__cexp_t(&check_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_207); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_208); if (init_exps_0) { _fx_free_LN14C_form__cexp_t(&init_exps_0); } + if (v_207) { + _fx_free_N14C_form__cexp_t(&v_207); + } if (v_206) { _fx_free_N14C_form__cexp_t(&v_206); } - if (v_205) { - _fx_free_N14C_form__cexp_t(&v_205); - } - if (for_headers_2) { - _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&for_headers_2); - } - _fx_free_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_204); FX_CHECK_EXN(_fx_cleanup); } int s_0 = !lst_4 + !lst_5; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_cleanup); - _fx_copy_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&__fold_result___1, - &v_11); - int_ k_final_1 = v_11.t0; - FX_COPY_PTR(v_11.t1, &for_headers_0); - if (k_final_1 > 0) { + if (k_final_0 > 0) { FX_COPY_PTR(for_headers_0, &for_headers_1); } else { - _fx_copy_Nt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &__fold_result___2); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(for_checks_0, &v_12, 0), _fx_cleanup); - _fx_LN14C_form__cexp_t lst_7 = v_12; + _fx_copy_Nt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &check_exp_opt_0); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(for_checks_0, &v_10, 0), _fx_cleanup); + _fx_LN14C_form__cexp_t lst_7 = v_10; for (; lst_7; lst_7 = lst_7->tl) { _fx_Nt6option1N14C_form__cexp_t check_exp_opt_1 = {0}; - _fx_N14C_form__cexp_t v_221 = 0; - _fx_Nt6option1N14C_form__cexp_t v_222 = {0}; + _fx_N14C_form__cexp_t v_222 = 0; + _fx_Nt6option1N14C_form__cexp_t v_223 = {0}; _fx_N14C_form__cexp_t check_i_0 = lst_7->hd; - _fx_copy_Nt6option1N14C_form__cexp_t(&__fold_result___2, &check_exp_opt_1); + _fx_copy_Nt6option1N14C_form__cexp_t(&check_exp_opt_0, &check_exp_opt_1); if (check_exp_opt_1.tag == 2) { - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_223 = {0}; - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &for_loc_0, &v_223); + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_224 = {0}; + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &for_loc_0, &v_224); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_gen_code__COpLogicAnd, check_exp_opt_1.u.Some, check_i_0, &v_223, &v_221), _fx_catch_29); + &_fx_g23C_gen_code__COpLogicAnd, check_exp_opt_1.u.Some, check_i_0, &v_224, &v_222), _fx_catch_29); _fx_catch_29: ; - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_223); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_224); } else { - FX_COPY_PTR(check_i_0, &v_221); + FX_COPY_PTR(check_i_0, &v_222); } FX_CHECK_EXN(_fx_catch_30); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_221, &v_222); - _fx_free_Nt6option1N14C_form__cexp_t(&__fold_result___2); - _fx_copy_Nt6option1N14C_form__cexp_t(&v_222, &__fold_result___2); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_222, &v_223); + _fx_free_Nt6option1N14C_form__cexp_t(&check_exp_opt_0); + _fx_copy_Nt6option1N14C_form__cexp_t(&v_223, &check_exp_opt_0); _fx_catch_30: ; - _fx_free_Nt6option1N14C_form__cexp_t(&v_222); - if (v_221) { - _fx_free_N14C_form__cexp_t(&v_221); + _fx_free_Nt6option1N14C_form__cexp_t(&v_223); + if (v_222) { + _fx_free_N14C_form__cexp_t(&v_222); } _fx_free_Nt6option1N14C_form__cexp_t(&check_exp_opt_1); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_Nt6option1N14C_form__cexp_t(&__fold_result___2, &check_exp_opt_0); _fx_make_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - &_fx_g18C_gen_code__None1_, 0, &check_exp_opt_0, incr_exps_0, &v_13); + &_fx_g18C_gen_code__None1_, 0, &check_exp_opt_0, incr_exps_0, &v_11); FX_CALL( - _fx_cons_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_13, 0, true, + _fx_cons_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_11, 0, true, &for_headers_1), _fx_cleanup); } FX_CALL( _fx_M10C_gen_codeFM3revLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t1LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - for_headers_1, &v_14, 0), _fx_cleanup); + for_headers_1, &v_12, 0), _fx_cleanup); _fx_make_T8LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN15C_form__cstmt_t( - v_14, list_exps_0, i_exps_0, n_exps_0, init_ccode_3, pre_body_ccode_1, body_elems_0, post_ccode_0, fx_result); + v_12, list_exps_0, i_exps_0, n_exps_0, init_ccode_3, pre_body_ccode_1, body_elems_0, post_ccode_0, fx_result); _fx_cleanup: ; FX_FREE_FP(&atom2cexp__0); @@ -19811,10 +19398,6 @@ _fx_cleanup: ; _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&idoml_1); } FX_FREE_LIST_SIMPLE(&at_ids_1); - _fx_free_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - &__fold_result___0); - _fx_free_T10LN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN14C_form__cexp_t( - &v_3); if (list_exps_0) { _fx_free_LN14C_form__cexp_t(&list_exps_0); } @@ -19845,15 +19428,15 @@ _fx_cleanup: ; if (post_checks_0) { _fx_free_LN14C_form__cexp_t(&post_checks_0); } - if (v_4) { - _fx_free_LN14C_form__cexp_t(&v_4); + if (v_3) { + _fx_free_LN14C_form__cexp_t(&v_3); } if (init_ccode_2) { _fx_free_LN15C_form__cstmt_t(&init_ccode_2); } - _fx_free_Ta2LN15C_form__cstmt_t(&v_5); - if (v_6) { - _fx_free_LN15C_form__cstmt_t(&v_6); + _fx_free_Ta2LN15C_form__cstmt_t(&v_4); + if (v_5) { + _fx_free_LN15C_form__cstmt_t(&v_5); } if (init_ccode_3) { _fx_free_LN15C_form__cstmt_t(&init_ccode_3); @@ -19867,36 +19450,32 @@ _fx_cleanup: ; if (post_checks_2) { _fx_free_LN14C_form__cexp_t(&post_checks_2); } + if (v_6) { + _fx_free_N14C_form__cexp_t(&v_6); + } if (v_7) { _fx_free_N14C_form__cexp_t(&v_7); } - if (v_8) { - _fx_free_N14C_form__cexp_t(&v_8); - } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_9); - if (v_10) { - _fx_free_N14C_form__cexp_t(&v_10); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_8); + if (v_9) { + _fx_free_N14C_form__cexp_t(&v_9); } if (post_ccode_0) { _fx_free_LN15C_form__cstmt_t(&post_ccode_0); } - _fx_free_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - &__fold_result___1); - _fx_free_T2iLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_11); if (for_headers_0) { _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&for_headers_0); } if (for_headers_1) { _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&for_headers_1); } - _fx_free_Nt6option1N14C_form__cexp_t(&__fold_result___2); - if (v_12) { - _fx_free_LN14C_form__cexp_t(&v_12); - } _fx_free_Nt6option1N14C_form__cexp_t(&check_exp_opt_0); - _fx_free_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_13); - if (v_14) { - _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_14); + if (v_10) { + _fx_free_LN14C_form__cexp_t(&v_10); + } + _fx_free_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_11); + if (v_12) { + _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_12); } return fx_status; } @@ -20043,45 +19622,43 @@ static int struct _fx_LN15C_form__cstmt_t_data_t** fx_result, void* fx_fv) { - _fx_LN15C_form__cstmt_t __fold_result___0 = 0; + _fx_LN15C_form__cstmt_t res_0 = 0; int fx_status = 0; - FX_COPY_PTR(body_ccode_0, &__fold_result___0); + FX_COPY_PTR(body_ccode_0, &res_0); _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t lst_0 = body_elems_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_N14C_form__cexp_t e_0 = 0; _fx_R16Ast__val_flags_t flags_0 = {0}; - _fx_LN15C_form__cstmt_t body_ccode_1 = 0; _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_0 = {0}; _fx_N14C_form__ctyp_t ctyp_0 = 0; _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1 = {0}; _fx_Nt6option1N14C_form__cexp_t v_2 = {0}; - _fx_LN15C_form__cstmt_t body_ccode_2 = 0; + _fx_LN15C_form__cstmt_t body_ccode_1 = 0; _fx_T3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t* __pat___0 = &lst_0->hd; _fx_R9Ast__id_t v_3 = __pat___0->t0; FX_COPY_PTR(__pat___0->t1, &e_0); _fx_copy_R16Ast__val_flags_t(&__pat___0->t2, &flags_0); - FX_COPY_PTR(__fold_result___0, &body_ccode_1); FX_CALL(_fx_M6C_formFM12get_cexp_ctxT2N14C_form__ctyp_tR10Ast__loc_t1N14C_form__cexp_t(e_0, &v_0, 0), _fx_catch_0); FX_COPY_PTR(v_0.t0, &ctyp_0); _fx_R10Ast__loc_t loc_0 = v_0.t1; if (flags_0.val_flag_tempref) { FX_CALL( _fx_M10C_gen_codeFM17add_local_temprefT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t( - &v_3, ctyp_0, &flags_0, e_0, body_ccode_1, &loc_0, i2e_ref_0, &v_1, 0), _fx_catch_0); + &v_3, ctyp_0, &flags_0, e_0, res_0, &loc_0, i2e_ref_0, &v_1, 0), _fx_catch_0); } else { _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(e_0, &v_2); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &v_3, ctyp_0, &flags_0, &v_2, body_ccode_1, &loc_0, block_stack_ref_0, &v_1, 0), _fx_catch_0); + &v_3, ctyp_0, &flags_0, &v_2, res_0, &loc_0, block_stack_ref_0, &v_1, 0), _fx_catch_0); } - FX_COPY_PTR(v_1.t1, &body_ccode_2); - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); - FX_COPY_PTR(body_ccode_2, &__fold_result___0); + FX_COPY_PTR(v_1.t1, &body_ccode_1); + _fx_free_LN15C_form__cstmt_t(&res_0); + FX_COPY_PTR(body_ccode_1, &res_0); _fx_catch_0: ; - if (body_ccode_2) { - _fx_free_LN15C_form__cstmt_t(&body_ccode_2); + if (body_ccode_1) { + _fx_free_LN15C_form__cstmt_t(&body_ccode_1); } _fx_free_Nt6option1N14C_form__cexp_t(&v_2); _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1); @@ -20089,20 +19666,17 @@ static int _fx_free_N14C_form__ctyp_t(&ctyp_0); } _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_0); - if (body_ccode_1) { - _fx_free_LN15C_form__cstmt_t(&body_ccode_1); - } _fx_free_R16Ast__val_flags_t(&flags_0); if (e_0) { _fx_free_N14C_form__cexp_t(&e_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); + if (res_0) { + _fx_free_LN15C_form__cstmt_t(&res_0); } return fx_status; } @@ -20138,16 +19712,17 @@ static int fx_str_t cname_0 = {0}; _fx_R19C_form__cdeflabel_t v_1 = {0}; _fx_N15C_form__cinfo_t v_2 = {0}; - _fx_T5BBBBLLN15C_form__cstmt_t __fold_result___0 = {0}; - _fx_T5BBBBLLN15C_form__cstmt_t v_3 = {0}; _fx_LLN15C_form__cstmt_t all_cases_ccode_0 = 0; + _fx_LrR23C_gen_code__block_ctx_t block_stack_0 = 0; + _fx_rR23C_gen_code__block_ctx_t bctx_0 = 0; _fx_N14C_form__cexp_t parent_lbl_0 = 0; _fx_LLN15C_form__cstmt_t all_cases_ccode_1 = 0; _fx_N14C_form__cexp_t no_match_err_0 = 0; - _fx_LN14C_form__cexp_t v_4 = 0; + _fx_LN14C_form__cexp_t v_3 = 0; _fx_N14C_form__cexp_t throw_no_match_0 = 0; - _fx_N15C_form__cstmt_t v_5 = 0; - _fx_LN15C_form__cstmt_t v_6 = 0; + _fx_N15C_form__cstmt_t v_4 = 0; + _fx_LN15C_form__cstmt_t v_5 = 0; + _fx_T2BLLN15C_form__cstmt_t v_6 = {0}; _fx_T2BLN15C_form__cstmt_t v_7 = {0}; _fx_LN15C_form__cstmt_t ccode_1 = 0; _fx_LN15C_form__cstmt_t ccode_2 = 0; @@ -20162,7 +19737,7 @@ static int fx_fv; _fx_M10C_gen_codeFM7make_fpFPT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t5rLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( cv_0->t0, cv_0->t1, cv_0->t2, cv_0->t3, cv_0->t4, &kexp2cexp_0); - _fx_LrR23C_gen_code__block_ctx_t* block_stack_0 = &block_stack_ref_0->data; + _fx_LrR23C_gen_code__block_ctx_t* block_stack_1 = &block_stack_ref_0->data; _fx_R10Ast__loc_t end_loc_0; FX_CALL(_fx_M3AstFM11get_end_locRM5loc_t1RM5loc_t(kloc_0, &end_loc_0, 0), _fx_cleanup); if (is_catch_case_0) { @@ -20198,95 +19773,85 @@ static int _fx_make_R19C_form__cdeflabel_t(&li_0, &cname_0, &end_loc_0, &v_1); _fx_M6C_formFM6CLabelN15C_form__cinfo_t1RM11cdeflabel_t(&v_1, &v_2); FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&li_0, &v_2, 0), _fx_cleanup); - _fx_make_T5BBBBLLN15C_form__cstmt_t(false, false, false, false, 0, &__fold_result___0); + bool have_default_0 = false; + bool em_label_used_0 = false; + bool have_epilogues_0 = false; + bool have_complex_branches_0 = false; _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t lst_0 = cases_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_LN14K_form__kexp_t checks_i_0 = 0; _fx_N14K_form__kexp_t action_i_0 = 0; - _fx_T5BBBBLLN15C_form__cstmt_t v_13 = {0}; - _fx_LLN15C_form__cstmt_t all_cases_ccode_2 = 0; - _fx_T2LN14C_form__cexp_tLLN15C_form__cstmt_t __fold_result___1 = {0}; - _fx_T2LN14C_form__cexp_tLLN15C_form__cstmt_t v_14 = {0}; + _fx_LN14C_form__cexp_t res_checks_0 = 0; + _fx_LLN15C_form__cstmt_t pre_checks_i_0 = 0; _fx_LN14C_form__cexp_t cchecks_i_0 = 0; _fx_LLN15C_form__cstmt_t pre_cchecks_i_0 = 0; - _fx_T3LN15C_form__cstmt_tBB v_15 = {0}; + _fx_T3LN15C_form__cstmt_tBB v_13 = {0}; _fx_LN15C_form__cstmt_t ai_ccode_0 = 0; _fx_LN15C_form__cstmt_t case_ccode_0 = 0; - _fx_T5BBBBLLN15C_form__cstmt_t v_16 = {0}; + _fx_LLN15C_form__cstmt_t v_14 = 0; _fx_T2LN14K_form__kexp_tN14K_form__kexp_t* __pat___0 = &lst_0->hd; FX_COPY_PTR(__pat___0->t0, &checks_i_0); FX_COPY_PTR(__pat___0->t1, &action_i_0); - _fx_copy_T5BBBBLLN15C_form__cstmt_t(&__fold_result___0, &v_13); - bool have_default_0 = v_13.t0; - FX_COPY_PTR(v_13.t4, &all_cases_ccode_2); - _fx_make_T2LN14C_form__cexp_tLLN15C_form__cstmt_t(0, 0, &__fold_result___1); _fx_LN14K_form__kexp_t lst_1 = checks_i_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_T2LN14C_form__cexp_tLLN15C_form__cstmt_t v_17 = {0}; - _fx_LN14C_form__cexp_t checks_i_1 = 0; - _fx_LLN15C_form__cstmt_t pre_checks_i_0 = 0; - _fx_rNt6option1N14C_form__cexp_t v_18 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_19 = {0}; + _fx_rNt6option1N14C_form__cexp_t v_15 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_16 = {0}; _fx_N14C_form__cexp_t ccheck_ij_0 = 0; _fx_LN15C_form__cstmt_t ccode_ij_0 = 0; - _fx_T2LN14C_form__cexp_tLLN15C_form__cstmt_t v_20 = {0}; + _fx_LN14C_form__cexp_t v_17 = 0; + _fx_LLN15C_form__cstmt_t v_18 = 0; _fx_N14K_form__kexp_t check_ij_0 = lst_1->hd; - _fx_copy_T2LN14C_form__cexp_tLLN15C_form__cstmt_t(&__fold_result___1, &v_17); - FX_COPY_PTR(v_17.t0, &checks_i_1); - FX_COPY_PTR(v_17.t1, &pre_checks_i_0); - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_18), _fx_catch_0); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_15), _fx_catch_0); FX_CALL( - kexp2cexp_0.fp(check_ij_0, v_18, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, + kexp2cexp_0.fp(check_ij_0, v_15, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_19, kexp2cexp_0.fcv), _fx_catch_0); - FX_COPY_PTR(v_19.t0, &ccheck_ij_0); - FX_COPY_PTR(v_19.t1, &ccode_ij_0); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ccheck_ij_0, checks_i_1, false, &checks_i_1), _fx_catch_0); - FX_CALL(_fx_cons_LLN15C_form__cstmt_t(ccode_ij_0, pre_checks_i_0, false, &pre_checks_i_0), _fx_catch_0); - _fx_make_T2LN14C_form__cexp_tLLN15C_form__cstmt_t(checks_i_1, pre_checks_i_0, &v_20); - _fx_free_T2LN14C_form__cexp_tLLN15C_form__cstmt_t(&__fold_result___1); - _fx_copy_T2LN14C_form__cexp_tLLN15C_form__cstmt_t(&v_20, &__fold_result___1); + return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_16, kexp2cexp_0.fcv), _fx_catch_0); + FX_COPY_PTR(v_16.t0, &ccheck_ij_0); + FX_COPY_PTR(v_16.t1, &ccode_ij_0); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ccheck_ij_0, res_checks_0, true, &v_17), _fx_catch_0); + _fx_free_LN14C_form__cexp_t(&res_checks_0); + FX_COPY_PTR(v_17, &res_checks_0); + FX_CALL(_fx_cons_LLN15C_form__cstmt_t(ccode_ij_0, pre_checks_i_0, true, &v_18), _fx_catch_0); + _fx_free_LLN15C_form__cstmt_t(&pre_checks_i_0); + FX_COPY_PTR(v_18, &pre_checks_i_0); _fx_catch_0: ; - _fx_free_T2LN14C_form__cexp_tLLN15C_form__cstmt_t(&v_20); + if (v_18) { + _fx_free_LLN15C_form__cstmt_t(&v_18); + } + if (v_17) { + _fx_free_LN14C_form__cexp_t(&v_17); + } if (ccode_ij_0) { _fx_free_LN15C_form__cstmt_t(&ccode_ij_0); } if (ccheck_ij_0) { _fx_free_N14C_form__cexp_t(&ccheck_ij_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_19); - if (v_18) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_18); - } - if (pre_checks_i_0) { - _fx_free_LLN15C_form__cstmt_t(&pre_checks_i_0); - } - if (checks_i_1) { - _fx_free_LN14C_form__cexp_t(&checks_i_1); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_16); + if (v_15) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_15); } - _fx_free_T2LN14C_form__cexp_tLLN15C_form__cstmt_t(&v_17); FX_CHECK_EXN(_fx_catch_15); } - _fx_copy_T2LN14C_form__cexp_tLLN15C_form__cstmt_t(&__fold_result___1, &v_14); - FX_COPY_PTR(v_14.t0, &cchecks_i_0); - FX_COPY_PTR(v_14.t1, &pre_cchecks_i_0); + FX_COPY_PTR(res_checks_0, &cchecks_i_0); + FX_COPY_PTR(pre_checks_i_0, &pre_cchecks_i_0); _fx_R10Ast__loc_t ai_loc_0; FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(action_i_0, &ai_loc_0, 0), _fx_catch_15); bool new_have_default_0; if (checks_i_0 == 0) { - fx_exn_t v_21 = {0}; + fx_exn_t v_19 = {0}; if (have_default_0) { fx_str_t slit_6 = FX_MAKE_STR("cgen: more than one default action"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&ai_loc_0, &slit_6, &v_21, 0), _fx_catch_1); - FX_THROW(&v_21, false, _fx_catch_1); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&ai_loc_0, &slit_6, &v_19, 0), _fx_catch_1); + FX_THROW(&v_19, false, _fx_catch_1); } else { new_have_default_0 = true; } _fx_catch_1: ; - fx_free_exn(&v_21); + fx_free_exn(&v_19); } else { new_have_default_0 = have_default_0; @@ -20295,147 +19860,146 @@ static int _fx_R10Ast__loc_t ai_end_loc_0; FX_CALL(_fx_M3AstFM11get_end_locRM5loc_t1RM5loc_t(&ai_loc_0, &ai_end_loc_0, 0), _fx_catch_15); if (FX_REC_VARIANT_TAG(action_i_0) == 24) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_22 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_20 = {0}; _fx_LN15C_form__cstmt_t ai_ccode_1 = 0; FX_CALL( kexp2cexp_0.fp(action_i_0, dstexp_r_0, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_22, kexp2cexp_0.fcv), _fx_catch_2); - FX_COPY_PTR(v_22.t1, &ai_ccode_1); - _fx_make_T3LN15C_form__cstmt_tBB(ai_ccode_1, false, false, &v_15); + return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_20, kexp2cexp_0.fcv), _fx_catch_2); + FX_COPY_PTR(v_20.t1, &ai_ccode_1); + _fx_make_T3LN15C_form__cstmt_tBB(ai_ccode_1, false, false, &v_13); _fx_catch_2: ; if (ai_ccode_1) { _fx_free_LN15C_form__cstmt_t(&ai_ccode_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_22); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_20); } else { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_23 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_21 = {0}; _fx_LN15C_form__cstmt_t ai_ccode_2 = 0; - _fx_LrR23C_gen_code__block_ctx_t block_stack_1 = 0; + _fx_LrR23C_gen_code__block_ctx_t block_stack_2 = 0; _fx_rR23C_gen_code__block_ctx_t bctx_i_0 = 0; _fx_LN15C_form__cstmt_t bctx_cleanup_0 = 0; _fx_LN15C_form__cstmt_t bctx_prologue_0 = 0; - _fx_LN15C_form__cstmt_t __fold_result___2 = 0; + _fx_LN15C_form__cstmt_t res_0 = 0; _fx_LN15C_form__cstmt_t epilogue_0 = 0; _fx_LN15C_form__cstmt_t epilogue_1 = 0; - _fx_N15C_form__cstmt_t v_24 = 0; - _fx_LN15C_form__cstmt_t v_25 = 0; - _fx_LrR23C_gen_code__block_ctx_t block_stack_2 = 0; - _fx_T2BLN15C_form__cstmt_t v_26 = {0}; - _fx_N15C_form__cstmt_t v_27 = 0; - _fx_LN15C_form__cstmt_t v_28 = 0; + _fx_N15C_form__cstmt_t v_22 = 0; + _fx_LN15C_form__cstmt_t v_23 = 0; + _fx_LrR23C_gen_code__block_ctx_t block_stack_3 = 0; + _fx_T2BLN15C_form__cstmt_t v_24 = {0}; + _fx_N15C_form__cstmt_t v_25 = 0; + _fx_LN15C_form__cstmt_t v_26 = 0; _fx_LN15C_form__cstmt_t epilogue_2 = 0; _fx_LN15C_form__cstmt_t ai_ccode_3 = 0; _fx_LN15C_form__cstmt_t ai_ccode_4 = 0; - _fx_R16Ast__for_flags_t v_29; - FX_CALL(_fx_M3AstFM17default_for_flagsRM11for_flags_t0(&v_29, 0), _fx_catch_12); + _fx_R16Ast__for_flags_t v_27; + FX_CALL(_fx_M3AstFM17default_for_flagsRM11for_flags_t0(&v_27, 0), _fx_catch_12); FX_CALL( _fx_M10C_gen_codeFM14new_block_ctx_v5N24C_gen_code__block_kind_tR16Ast__for_flags_tR10Ast__loc_trLrRM11block_ctx_ti( - &_fx_g26C_gen_code__BlockKind_Case, &v_29, &ai_loc_0, block_stack_ref_0, km_idx_0, 0), _fx_catch_12); + &_fx_g26C_gen_code__BlockKind_Case, &v_27, &ai_loc_0, block_stack_ref_0, km_idx_0, 0), _fx_catch_12); FX_CALL( kexp2cexp_0.fp(action_i_0, dstexp_r_0, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_23, kexp2cexp_0.fcv), _fx_catch_12); - FX_COPY_PTR(v_23.t1, &ai_ccode_2); - FX_COPY_PTR(*block_stack_0, &block_stack_1); - if (block_stack_1 != 0) { - FX_COPY_PTR(block_stack_1->hd, &bctx_i_0); + return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_21, kexp2cexp_0.fcv), _fx_catch_12); + FX_COPY_PTR(v_21.t1, &ai_ccode_2); + FX_COPY_PTR(*block_stack_1, &block_stack_2); + if (block_stack_2 != 0) { + FX_COPY_PTR(block_stack_2->hd, &bctx_i_0); } else { - fx_exn_t v_30 = {0}; + fx_exn_t v_28 = {0}; fx_str_t slit_7 = FX_MAKE_STR("cgen: empty block stack!"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(kloc_0, &slit_7, &v_30, 0), _fx_catch_3); - FX_THROW(&v_30, false, _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(kloc_0, &slit_7, &v_28, 0), _fx_catch_3); + FX_THROW(&v_28, false, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_30); + fx_free_exn(&v_28); } FX_CHECK_EXN(_fx_catch_12); - _fx_R23C_gen_code__block_ctx_t* v_31 = &bctx_i_0->data; - int_ bctx_label_used_0 = v_31->bctx_label_used; - _fx_R9Ast__id_t bctx_label_0 = v_31->bctx_label; - FX_COPY_PTR(v_31->bctx_cleanup, &bctx_cleanup_0); - FX_COPY_PTR(v_31->bctx_prologue, &bctx_prologue_0); + _fx_R23C_gen_code__block_ctx_t* v_29 = &bctx_i_0->data; + int_ bctx_label_used_0 = v_29->bctx_label_used; + _fx_R9Ast__id_t bctx_label_0 = v_29->bctx_label; + FX_COPY_PTR(v_29->bctx_cleanup, &bctx_cleanup_0); + FX_COPY_PTR(v_29->bctx_prologue, &bctx_prologue_0); _fx_LN15C_form__cstmt_t lst_2 = bctx_cleanup_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN15C_form__cstmt_t r_0 = 0; + _fx_LN15C_form__cstmt_t v_30 = 0; _fx_N15C_form__cstmt_t a_0 = lst_2->hd; - FX_COPY_PTR(__fold_result___2, &r_0); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, r_0, false, &r_0), _fx_catch_4); - _fx_free_LN15C_form__cstmt_t(&__fold_result___2); - FX_COPY_PTR(r_0, &__fold_result___2); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, res_0, true, &v_30), _fx_catch_4); + _fx_free_LN15C_form__cstmt_t(&res_0); + FX_COPY_PTR(v_30, &res_0); _fx_catch_4: ; - if (r_0) { - _fx_free_LN15C_form__cstmt_t(&r_0); + if (v_30) { + _fx_free_LN15C_form__cstmt_t(&v_30); } FX_CHECK_EXN(_fx_catch_12); } - FX_COPY_PTR(__fold_result___2, &epilogue_0); + FX_COPY_PTR(res_0, &epilogue_0); if (bctx_label_used_0 == 0) { FX_COPY_PTR(epilogue_0, &epilogue_1); } else { - FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&bctx_label_0, &ai_end_loc_0, &v_24), + FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&bctx_label_0, &ai_end_loc_0, &v_22), _fx_catch_12); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_24, 0, true, &v_25), _fx_catch_12); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_22, 0, true, &v_23), _fx_catch_12); if (epilogue_0 == 0) { - FX_COPY_PTR(v_25, &epilogue_1); + FX_COPY_PTR(v_23, &epilogue_1); } - else if (v_25 == 0) { + else if (v_23 == 0) { FX_COPY_PTR(epilogue_0, &epilogue_1); } else { - _fx_LN15C_form__cstmt_t v_32 = 0; + _fx_LN15C_form__cstmt_t v_31 = 0; _fx_LN15C_form__cstmt_t lstend_0 = 0; _fx_LN15C_form__cstmt_t lst_3 = epilogue_0; for (; lst_3; lst_3 = lst_3->tl) { _fx_N15C_form__cstmt_t x_0 = lst_3->hd; _fx_LN15C_form__cstmt_t node_0 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_0, 0, false, &node_0), _fx_catch_5); - FX_LIST_APPEND(v_32, lstend_0, node_0); + FX_LIST_APPEND(v_31, lstend_0, node_0); _fx_catch_5: ; FX_CHECK_EXN(_fx_catch_6); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_32, v_25, &epilogue_1, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_31, v_23, &epilogue_1, 0); _fx_catch_6: ; - if (v_32) { - _fx_free_LN15C_form__cstmt_t(&v_32); + if (v_31) { + _fx_free_LN15C_form__cstmt_t(&v_31); } } FX_CHECK_EXN(_fx_catch_12); } - FX_COPY_PTR(*block_stack_0, &block_stack_2); - if (block_stack_2 != 0) { - _fx_LrR23C_gen_code__block_ctx_t* rest_0 = &block_stack_2->tl; - _fx_free_LrR23C_gen_code__block_ctx_t(block_stack_0); - FX_COPY_PTR(*rest_0, block_stack_0); + FX_COPY_PTR(*block_stack_1, &block_stack_3); + if (block_stack_3 != 0) { + _fx_LrR23C_gen_code__block_ctx_t* rest_0 = &block_stack_3->tl; + _fx_free_LrR23C_gen_code__block_ctx_t(block_stack_1); + FX_COPY_PTR(*rest_0, block_stack_1); } else { - fx_exn_t v_33 = {0}; + fx_exn_t v_32 = {0}; fx_str_t slit_8 = FX_MAKE_STR("cgen: empty block stack!"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&ai_end_loc_0, &slit_8, &v_33, 0), _fx_catch_7); - FX_THROW(&v_33, false, _fx_catch_7); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&ai_end_loc_0, &slit_8, &v_32, 0), _fx_catch_7); + FX_THROW(&v_32, false, _fx_catch_7); _fx_catch_7: ; - fx_free_exn(&v_33); + fx_free_exn(&v_32); } FX_CHECK_EXN(_fx_catch_12); if (new_have_default_0) { - _fx_make_T2BLN15C_form__cstmt_t(false, epilogue_1, &v_26); + _fx_make_T2BLN15C_form__cstmt_t(false, epilogue_1, &v_24); } else { - FX_CALL(_fx_M6C_formFM9CStmtGotoN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&li_0, &ai_end_loc_0, &v_27), + FX_CALL(_fx_M6C_formFM9CStmtGotoN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&li_0, &ai_end_loc_0, &v_25), _fx_catch_12); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_27, epilogue_1, true, &v_28), _fx_catch_12); - _fx_make_T2BLN15C_form__cstmt_t(true, v_28, &v_26); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_25, epilogue_1, true, &v_26), _fx_catch_12); + _fx_make_T2BLN15C_form__cstmt_t(true, v_26, &v_24); } - bool em_label_used_i_0 = v_26.t0; - FX_COPY_PTR(v_26.t1, &epilogue_2); + bool em_label_used_i_0 = v_24.t0; + FX_COPY_PTR(v_24.t1, &epilogue_2); if (ai_ccode_2 == 0) { FX_COPY_PTR(bctx_prologue_0, &ai_ccode_3); } @@ -20443,24 +20007,24 @@ static int FX_COPY_PTR(ai_ccode_2, &ai_ccode_3); } else { - _fx_LN15C_form__cstmt_t v_34 = 0; + _fx_LN15C_form__cstmt_t v_33 = 0; _fx_LN15C_form__cstmt_t lstend_1 = 0; _fx_LN15C_form__cstmt_t lst_4 = ai_ccode_2; for (; lst_4; lst_4 = lst_4->tl) { _fx_N15C_form__cstmt_t x_1 = lst_4->hd; _fx_LN15C_form__cstmt_t node_1 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_1, 0, false, &node_1), _fx_catch_8); - FX_LIST_APPEND(v_34, lstend_1, node_1); + FX_LIST_APPEND(v_33, lstend_1, node_1); _fx_catch_8: ; FX_CHECK_EXN(_fx_catch_9); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_34, bctx_prologue_0, + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_33, bctx_prologue_0, &ai_ccode_3, 0); _fx_catch_9: ; - if (v_34) { - _fx_free_LN15C_form__cstmt_t(&v_34); + if (v_33) { + _fx_free_LN15C_form__cstmt_t(&v_33); } } FX_CHECK_EXN(_fx_catch_12); @@ -20471,28 +20035,28 @@ static int FX_COPY_PTR(epilogue_2, &ai_ccode_4); } else { - _fx_LN15C_form__cstmt_t v_35 = 0; + _fx_LN15C_form__cstmt_t v_34 = 0; _fx_LN15C_form__cstmt_t lstend_2 = 0; _fx_LN15C_form__cstmt_t lst_5 = epilogue_2; for (; lst_5; lst_5 = lst_5->tl) { _fx_N15C_form__cstmt_t x_2 = lst_5->hd; _fx_LN15C_form__cstmt_t node_2 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_2, 0, false, &node_2), _fx_catch_10); - FX_LIST_APPEND(v_35, lstend_2, node_2); + FX_LIST_APPEND(v_34, lstend_2, node_2); _fx_catch_10: ; FX_CHECK_EXN(_fx_catch_11); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_35, ai_ccode_3, &ai_ccode_4, + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_34, ai_ccode_3, &ai_ccode_4, 0); _fx_catch_11: ; - if (v_35) { - _fx_free_LN15C_form__cstmt_t(&v_35); + if (v_34) { + _fx_free_LN15C_form__cstmt_t(&v_34); } } FX_CHECK_EXN(_fx_catch_12); - _fx_make_T3LN15C_form__cstmt_tBB(ai_ccode_4, em_label_used_i_0, true, &v_15); + _fx_make_T3LN15C_form__cstmt_tBB(ai_ccode_4, em_label_used_i_0, true, &v_13); _fx_catch_12: ; if (ai_ccode_4) { @@ -20504,21 +20068,21 @@ static int if (epilogue_2) { _fx_free_LN15C_form__cstmt_t(&epilogue_2); } - if (v_28) { - _fx_free_LN15C_form__cstmt_t(&v_28); + if (v_26) { + _fx_free_LN15C_form__cstmt_t(&v_26); } - if (v_27) { - _fx_free_N15C_form__cstmt_t(&v_27); + if (v_25) { + _fx_free_N15C_form__cstmt_t(&v_25); } - _fx_free_T2BLN15C_form__cstmt_t(&v_26); - if (block_stack_2) { - _fx_free_LrR23C_gen_code__block_ctx_t(&block_stack_2); + _fx_free_T2BLN15C_form__cstmt_t(&v_24); + if (block_stack_3) { + _fx_free_LrR23C_gen_code__block_ctx_t(&block_stack_3); } - if (v_25) { - _fx_free_LN15C_form__cstmt_t(&v_25); + if (v_23) { + _fx_free_LN15C_form__cstmt_t(&v_23); } - if (v_24) { - _fx_free_N15C_form__cstmt_t(&v_24); + if (v_22) { + _fx_free_N15C_form__cstmt_t(&v_22); } if (epilogue_1) { _fx_free_LN15C_form__cstmt_t(&epilogue_1); @@ -20526,8 +20090,8 @@ static int if (epilogue_0) { _fx_free_LN15C_form__cstmt_t(&epilogue_0); } - if (__fold_result___2) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___2); + if (res_0) { + _fx_free_LN15C_form__cstmt_t(&res_0); } if (bctx_prologue_0) { _fx_free_LN15C_form__cstmt_t(&bctx_prologue_0); @@ -20538,18 +20102,18 @@ static int if (bctx_i_0) { _fx_free_rR23C_gen_code__block_ctx_t(&bctx_i_0); } - if (block_stack_1) { - _fx_free_LrR23C_gen_code__block_ctx_t(&block_stack_1); + if (block_stack_2) { + _fx_free_LrR23C_gen_code__block_ctx_t(&block_stack_2); } if (ai_ccode_2) { _fx_free_LN15C_form__cstmt_t(&ai_ccode_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_23); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_21); } FX_CHECK_EXN(_fx_catch_15); - FX_COPY_PTR(v_15.t0, &ai_ccode_0); - bool em_label_used_i_1 = v_15.t1; - bool have_epilogue_i_0 = v_15.t2; + FX_COPY_PTR(v_13.t0, &ai_ccode_0); + bool em_label_used_i_1 = v_13.t1; + bool have_epilogue_i_0 = v_13.t2; bool complex_branch_i_0; if (pre_cchecks_i_0 == 0) { if (cchecks_i_0 == 0) { @@ -20577,60 +20141,55 @@ static int } } _fx_N15C_form__cstmt_t ai_stmt_0 = 0; - _fx_LN15C_form__cstmt_t __fold_result___3 = 0; + _fx_LN15C_form__cstmt_t case_ccode_1 = 0; FX_CALL( _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(ai_ccode_0, &ai_loc_0, &ai_stmt_0, 0), _fx_catch_14); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(ai_stmt_0, 0, true, &__fold_result___3), _fx_catch_14); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(ai_stmt_0, 0, true, &case_ccode_1), _fx_catch_14); _fx_LN14C_form__cexp_t lst_6 = cchecks_i_0; _fx_LLN15C_form__cstmt_t lst_7 = pre_cchecks_i_0; for (; lst_6 && lst_7; lst_7 = lst_7->tl, lst_6 = lst_6->tl) { - _fx_LN15C_form__cstmt_t case_ccode_1 = 0; _fx_N15C_form__cstmt_t case_stmt_0 = 0; - _fx_N15C_form__cstmt_t v_36 = 0; + _fx_N15C_form__cstmt_t v_35 = 0; _fx_N15C_form__cstmt_t if_stmt_0 = 0; - _fx_LN15C_form__cstmt_t v_37 = 0; + _fx_LN15C_form__cstmt_t v_36 = 0; _fx_LN15C_form__cstmt_t pre_check_ij_0 = lst_7->hd; _fx_N14C_form__cexp_t check_ij_1 = lst_6->hd; - FX_COPY_PTR(__fold_result___3, &case_ccode_1); FX_CALL( _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(case_ccode_1, &ai_end_loc_0, &case_stmt_0, 0), _fx_catch_13); _fx_R10Ast__loc_t checkij_loc_0; FX_CALL(_fx_M6C_formFM12get_cexp_locR10Ast__loc_t1N14C_form__cexp_t(check_ij_1, &checkij_loc_0, 0), _fx_catch_13); - FX_CALL(_fx_M6C_formFM8CStmtNopN15C_form__cstmt_t1R10Ast__loc_t(&ai_end_loc_0, &v_36), _fx_catch_13); + FX_CALL(_fx_M6C_formFM8CStmtNopN15C_form__cstmt_t1R10Ast__loc_t(&ai_end_loc_0, &v_35), _fx_catch_13); FX_CALL( _fx_M10C_gen_codeFM7make_ifN15C_form__cstmt_t4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t( - check_ij_1, case_stmt_0, v_36, &checkij_loc_0, &if_stmt_0, 0), _fx_catch_13); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(if_stmt_0, pre_check_ij_0, true, &v_37), _fx_catch_13); - _fx_free_LN15C_form__cstmt_t(&__fold_result___3); - FX_COPY_PTR(v_37, &__fold_result___3); + check_ij_1, case_stmt_0, v_35, &checkij_loc_0, &if_stmt_0, 0), _fx_catch_13); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(if_stmt_0, pre_check_ij_0, true, &v_36), _fx_catch_13); + _fx_free_LN15C_form__cstmt_t(&case_ccode_1); + FX_COPY_PTR(v_36, &case_ccode_1); _fx_catch_13: ; - if (v_37) { - _fx_free_LN15C_form__cstmt_t(&v_37); + if (v_36) { + _fx_free_LN15C_form__cstmt_t(&v_36); } if (if_stmt_0) { _fx_free_N15C_form__cstmt_t(&if_stmt_0); } - if (v_36) { - _fx_free_N15C_form__cstmt_t(&v_36); + if (v_35) { + _fx_free_N15C_form__cstmt_t(&v_35); } if (case_stmt_0) { _fx_free_N15C_form__cstmt_t(&case_stmt_0); } - if (case_ccode_1) { - _fx_free_LN15C_form__cstmt_t(&case_ccode_1); - } FX_CHECK_EXN(_fx_catch_14); } int s_0 = !lst_6 + !lst_7; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_14); - FX_COPY_PTR(__fold_result___3, &case_ccode_0); + FX_COPY_PTR(case_ccode_1, &case_ccode_0); _fx_catch_14: ; - if (__fold_result___3) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___3); + if (case_ccode_1) { + _fx_free_LN15C_form__cstmt_t(&case_ccode_1); } if (ai_stmt_0) { _fx_free_N15C_form__cstmt_t(&ai_stmt_0); @@ -20638,53 +20197,58 @@ static int _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_15); + have_default_0 = new_have_default_0; bool t_0; - if (v_13.t1) { + if (em_label_used_0) { t_0 = true; } else { t_0 = em_label_used_i_1; } + em_label_used_0 = t_0; bool t_1; - if (v_13.t2) { + if (have_epilogues_0) { t_1 = true; } else { t_1 = have_epilogue_i_0; } + have_epilogues_0 = t_1; bool t_2; - if (v_13.t3) { + if (have_complex_branches_0) { t_2 = true; } else { t_2 = complex_branch_i_0; } - FX_CALL(_fx_cons_LLN15C_form__cstmt_t(case_ccode_0, all_cases_ccode_2, false, &all_cases_ccode_2), _fx_catch_15); - _fx_make_T5BBBBLLN15C_form__cstmt_t(new_have_default_0, t_0, t_1, t_2, all_cases_ccode_2, &v_16); - _fx_free_T5BBBBLLN15C_form__cstmt_t(&__fold_result___0); - _fx_copy_T5BBBBLLN15C_form__cstmt_t(&v_16, &__fold_result___0); + have_complex_branches_0 = t_2; + FX_CALL(_fx_cons_LLN15C_form__cstmt_t(case_ccode_0, all_cases_ccode_0, true, &v_14), _fx_catch_15); + _fx_free_LLN15C_form__cstmt_t(&all_cases_ccode_0); + FX_COPY_PTR(v_14, &all_cases_ccode_0); _fx_catch_15: ; - _fx_free_T5BBBBLLN15C_form__cstmt_t(&v_16); + if (v_14) { + _fx_free_LLN15C_form__cstmt_t(&v_14); + } if (case_ccode_0) { _fx_free_LN15C_form__cstmt_t(&case_ccode_0); } if (ai_ccode_0) { _fx_free_LN15C_form__cstmt_t(&ai_ccode_0); } - _fx_free_T3LN15C_form__cstmt_tBB(&v_15); + _fx_free_T3LN15C_form__cstmt_tBB(&v_13); if (pre_cchecks_i_0) { _fx_free_LLN15C_form__cstmt_t(&pre_cchecks_i_0); } if (cchecks_i_0) { _fx_free_LN14C_form__cexp_t(&cchecks_i_0); } - _fx_free_T2LN14C_form__cexp_tLLN15C_form__cstmt_t(&v_14); - _fx_free_T2LN14C_form__cexp_tLLN15C_form__cstmt_t(&__fold_result___1); - if (all_cases_ccode_2) { - _fx_free_LLN15C_form__cstmt_t(&all_cases_ccode_2); + if (pre_checks_i_0) { + _fx_free_LLN15C_form__cstmt_t(&pre_checks_i_0); + } + if (res_checks_0) { + _fx_free_LN14C_form__cexp_t(&res_checks_0); } - _fx_free_T5BBBBLLN15C_form__cstmt_t(&v_13); if (action_i_0) { _fx_free_N14K_form__kexp_t(&action_i_0); } @@ -20693,93 +20257,103 @@ static int } FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T5BBBBLLN15C_form__cstmt_t(&__fold_result___0, &v_3); - bool have_default_1 = v_3.t0; - bool em_label_used_0 = v_3.t1; - bool have_epilogues_0 = v_3.t2; - bool have_complex_branches_0 = v_3.t3; - FX_COPY_PTR(v_3.t4, &all_cases_ccode_0); - FX_CALL( - _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_trLrRM11block_ctx_t(&end_loc_0, block_stack_ref_0, - &parent_lbl_0, 0), _fx_cleanup); - if (have_default_1) { + FX_COPY_PTR(*block_stack_1, &block_stack_0); + if (block_stack_0 != 0) { + FX_COPY_PTR(block_stack_0->hd, &bctx_0); + } + else { + fx_exn_t v_37 = {0}; + fx_str_t slit_9 = FX_MAKE_STR("cgen: empty block stack!"); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&end_loc_0, &slit_9, &v_37, 0), _fx_catch_16); + FX_THROW(&v_37, false, _fx_catch_16); + + _fx_catch_16: ; + fx_free_exn(&v_37); + } + FX_CHECK_EXN(_fx_cleanup); + _fx_R23C_gen_code__block_ctx_t* v_38 = &bctx_0->data; + _fx_R23C_gen_code__block_ctx_t* v_39 = &bctx_0->data; + v_39->bctx_label_used = v_38->bctx_label_used + 1; + _fx_R23C_gen_code__block_ctx_t* v_40 = &bctx_0->data; + _fx_R9Ast__id_t v_41 = v_40->bctx_label; + FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_41, &end_loc_0, &parent_lbl_0, 0), + _fx_cleanup); + if (have_default_0) { FX_COPY_PTR(all_cases_ccode_0, &all_cases_ccode_1); } else { - _fx_R9Ast__id_t v_38; - fx_str_t slit_9 = FX_MAKE_STR("FX_EXN_NoMatchError"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_9, &v_38, 0), _fx_cleanup); + _fx_R9Ast__id_t v_42; + fx_str_t slit_10 = FX_MAKE_STR("FX_EXN_NoMatchError"); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_10, &v_42, 0), _fx_cleanup); FX_CALL( - _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&v_38, + _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&v_42, _fx_g20C_gen_code__CTypCInt, &end_loc_0, &no_match_err_0, 0), _fx_cleanup); - FX_CALL(_fx_cons_LN14C_form__cexp_t(parent_lbl_0, 0, true, &v_4), _fx_cleanup); - FX_CALL(_fx_cons_LN14C_form__cexp_t(no_match_err_0, v_4, false, &v_4), _fx_cleanup); + FX_CALL(_fx_cons_LN14C_form__cexp_t(parent_lbl_0, 0, true, &v_3), _fx_cleanup); + FX_CALL(_fx_cons_LN14C_form__cexp_t(no_match_err_0, v_3, false, &v_3), _fx_cleanup); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g25C_form__std_FX_FAST_THROW, v_4, _fx_g20C_gen_code__CTypVoid, &end_loc_0, &throw_no_match_0, 0), + &_fx_g25C_form__std_FX_FAST_THROW, v_3, _fx_g20C_gen_code__CTypVoid, &end_loc_0, &throw_no_match_0, 0), _fx_cleanup); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(throw_no_match_0, &v_5), _fx_cleanup); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_5, 0, true, &v_6), _fx_cleanup); - FX_CALL(_fx_cons_LLN15C_form__cstmt_t(v_6, all_cases_ccode_0, true, &all_cases_ccode_1), _fx_cleanup); - } - if (have_complex_branches_0 == false) { - if (all_cases_ccode_1 != 0) { - _fx_N15C_form__cstmt_t __fold_result___4 = 0; - _fx_LLN15C_form__cstmt_t ifs_0 = 0; + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(throw_no_match_0, &v_4), _fx_cleanup); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_4, 0, true, &v_5), _fx_cleanup); + FX_CALL(_fx_cons_LLN15C_form__cstmt_t(v_5, all_cases_ccode_0, true, &all_cases_ccode_1), _fx_cleanup); + } + _fx_make_T2BLLN15C_form__cstmt_t(have_complex_branches_0, all_cases_ccode_1, &v_6); + if (v_6.t0 == false) { + _fx_LLN15C_form__cstmt_t v_43 = v_6.t1; + if (v_43 != 0) { _fx_N15C_form__cstmt_t complex_if_0 = 0; - _fx_LN15C_form__cstmt_t v_39 = 0; + _fx_LLN15C_form__cstmt_t ifs_0 = 0; + _fx_LN15C_form__cstmt_t v_44 = 0; FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(all_cases_ccode_1->hd, &end_loc_0, - &__fold_result___4, 0), _fx_catch_21); - FX_COPY_PTR(all_cases_ccode_1->tl, &ifs_0); + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(v_43->hd, &end_loc_0, &complex_if_0, + 0), _fx_catch_22); + FX_COPY_PTR(v_43->tl, &ifs_0); _fx_LLN15C_form__cstmt_t lst_8 = ifs_0; for (; lst_8; lst_8 = lst_8->tl) { - _fx_N15C_form__cstmt_t complex_if_1 = 0; - _fx_N15C_form__cstmt_t v_40 = 0; + _fx_N15C_form__cstmt_t v_45 = 0; _fx_LN15C_form__cstmt_t s_i_0 = lst_8->hd; - FX_COPY_PTR(__fold_result___4, &complex_if_1); if (s_i_0 != 0) { if (s_i_0->tl == 0) { - _fx_N15C_form__cstmt_t v_41 = s_i_0->hd; - if (FX_REC_VARIANT_TAG(v_41) == 9) { - _fx_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t* vcase_0 = &v_41->u.CStmtIf; + _fx_N15C_form__cstmt_t v_46 = s_i_0->hd; + if (FX_REC_VARIANT_TAG(v_46) == 9) { + _fx_T4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t* vcase_0 = &v_46->u.CStmtIf; if (FX_REC_VARIANT_TAG(vcase_0->t2) == 1) { - _fx_LN15C_form__cstmt_t v_42 = 0; - _fx_LN15C_form__cstmt_t __fold_result___5 = 0; - _fx_LN15C_form__cstmt_t v_43 = 0; + _fx_LN15C_form__cstmt_t v_47 = 0; + _fx_LN15C_form__cstmt_t res_1 = 0; + _fx_LN15C_form__cstmt_t v_48 = 0; _fx_N15C_form__cstmt_t then_i_0 = 0; _fx_R10Ast__loc_t* loc_i_0 = &vcase_0->t3; _fx_N15C_form__cstmt_t then_i_1 = vcase_0->t1; - FX_CALL(_fx_M6C_formFM10stmt2ccodeLN15C_form__cstmt_t1N15C_form__cstmt_t(then_i_1, &v_42, 0), - _fx_catch_18); - _fx_LN15C_form__cstmt_t lst_9 = v_42; + FX_CALL(_fx_M6C_formFM10stmt2ccodeLN15C_form__cstmt_t1N15C_form__cstmt_t(then_i_1, &v_47, 0), + _fx_catch_19); + _fx_LN15C_form__cstmt_t lst_9 = v_47; for (; lst_9; lst_9 = lst_9->tl) { - _fx_LN15C_form__cstmt_t r_1 = 0; + _fx_LN15C_form__cstmt_t v_49 = 0; _fx_N15C_form__cstmt_t a_1 = lst_9->hd; - FX_COPY_PTR(__fold_result___5, &r_1); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_1, r_1, false, &r_1), _fx_catch_16); - _fx_free_LN15C_form__cstmt_t(&__fold_result___5); - FX_COPY_PTR(r_1, &__fold_result___5); - - _fx_catch_16: ; - if (r_1) { - _fx_free_LN15C_form__cstmt_t(&r_1); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_1, res_1, true, &v_49), _fx_catch_17); + _fx_free_LN15C_form__cstmt_t(&res_1); + FX_COPY_PTR(v_49, &res_1); + + _fx_catch_17: ; + if (v_49) { + _fx_free_LN15C_form__cstmt_t(&v_49); } - FX_CHECK_EXN(_fx_catch_18); + FX_CHECK_EXN(_fx_catch_19); } - FX_COPY_PTR(__fold_result___5, &v_43); - if (v_43 != 0) { - _fx_N15C_form__cstmt_t v_44 = v_43->hd; - if (FX_REC_VARIANT_TAG(v_44) == 10) { - bool res_0; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_44->u.CStmtGoto.t0, &li_0, &res_0, 0), - _fx_catch_18); - if (res_0) { + FX_COPY_PTR(res_1, &v_48); + if (v_48 != 0) { + _fx_N15C_form__cstmt_t v_50 = v_48->hd; + if (FX_REC_VARIANT_TAG(v_50) == 10) { + bool res_2; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_50->u.CStmtGoto.t0, &li_0, &res_2, 0), + _fx_catch_19); + if (res_2) { FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(v_43->tl, - loc_i_0, &then_i_0, 0), _fx_catch_17); + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(v_48->tl, + loc_i_0, &then_i_0, 0), _fx_catch_18); - _fx_catch_17: ; + _fx_catch_18: ; goto _fx_endmatch_2; } } @@ -20787,109 +20361,102 @@ static int FX_COPY_PTR(then_i_1, &then_i_0); _fx_endmatch_2: ; - FX_CHECK_EXN(_fx_catch_18); + FX_CHECK_EXN(_fx_catch_19); FX_CALL( _fx_M10C_gen_codeFM7make_ifN15C_form__cstmt_t4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t( - vcase_0->t0, then_i_0, complex_if_1, loc_i_0, &v_40, 0), _fx_catch_18); + vcase_0->t0, then_i_0, complex_if_0, loc_i_0, &v_45, 0), _fx_catch_19); - _fx_catch_18: ; + _fx_catch_19: ; if (then_i_0) { _fx_free_N15C_form__cstmt_t(&then_i_0); } - if (v_43) { - _fx_free_LN15C_form__cstmt_t(&v_43); + if (v_48) { + _fx_free_LN15C_form__cstmt_t(&v_48); } - if (__fold_result___5) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___5); + if (res_1) { + _fx_free_LN15C_form__cstmt_t(&res_1); } - if (v_42) { - _fx_free_LN15C_form__cstmt_t(&v_42); + if (v_47) { + _fx_free_LN15C_form__cstmt_t(&v_47); } goto _fx_endmatch_3; } } } } - fx_exn_t v_45 = {0}; - fx_str_t slit_10 = FX_MAKE_STR("cgen: unexpected statement in the chained match statement"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&end_loc_0, &slit_10, &v_45, 0), _fx_catch_19); - FX_THROW(&v_45, false, _fx_catch_19); + fx_exn_t v_51 = {0}; + fx_str_t slit_11 = FX_MAKE_STR("cgen: unexpected statement in the chained match statement"); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&end_loc_0, &slit_11, &v_51, 0), _fx_catch_20); + FX_THROW(&v_51, false, _fx_catch_20); - _fx_catch_19: ; - fx_free_exn(&v_45); + _fx_catch_20: ; + fx_free_exn(&v_51); _fx_endmatch_3: ; - FX_CHECK_EXN(_fx_catch_20); - _fx_free_N15C_form__cstmt_t(&__fold_result___4); - FX_COPY_PTR(v_40, &__fold_result___4); + FX_CHECK_EXN(_fx_catch_21); + _fx_free_N15C_form__cstmt_t(&complex_if_0); + FX_COPY_PTR(v_45, &complex_if_0); - _fx_catch_20: ; - if (v_40) { - _fx_free_N15C_form__cstmt_t(&v_40); - } - if (complex_if_1) { - _fx_free_N15C_form__cstmt_t(&complex_if_1); + _fx_catch_21: ; + if (v_45) { + _fx_free_N15C_form__cstmt_t(&v_45); } - FX_CHECK_EXN(_fx_catch_21); + FX_CHECK_EXN(_fx_catch_22); } - FX_COPY_PTR(__fold_result___4, &complex_if_0); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(complex_if_0, ccode_0, true, &v_39), _fx_catch_21); - _fx_make_T2BLN15C_form__cstmt_t(false, v_39, &v_7); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(complex_if_0, ccode_0, true, &v_44), _fx_catch_22); + _fx_make_T2BLN15C_form__cstmt_t(false, v_44, &v_7); - _fx_catch_21: ; - if (v_39) { - _fx_free_LN15C_form__cstmt_t(&v_39); - } - if (complex_if_0) { - _fx_free_N15C_form__cstmt_t(&complex_if_0); + _fx_catch_22: ; + if (v_44) { + _fx_free_LN15C_form__cstmt_t(&v_44); } if (ifs_0) { _fx_free_LLN15C_form__cstmt_t(&ifs_0); } - if (__fold_result___4) { - _fx_free_N15C_form__cstmt_t(&__fold_result___4); + if (complex_if_0) { + _fx_free_N15C_form__cstmt_t(&complex_if_0); } goto _fx_endmatch_4; } } - _fx_LN15C_form__cstmt_t v_46 = 0; - _fx_LN15C_form__cstmt_t v_47 = 0; - FX_CALL(_fx_M10C_gen_codeFM6concatLN15C_form__cstmt_t1LLN15C_form__cstmt_t(all_cases_ccode_1, &v_46, 0), _fx_catch_24); - if (v_46 == 0) { - FX_COPY_PTR(ccode_0, &v_47); + _fx_LN15C_form__cstmt_t v_52 = 0; + _fx_LN15C_form__cstmt_t v_53 = 0; + FX_CALL(_fx_M10C_gen_codeFM6concatLN15C_form__cstmt_t1LLN15C_form__cstmt_t(all_cases_ccode_1, &v_52, 0), _fx_catch_25); + if (v_52 == 0) { + FX_COPY_PTR(ccode_0, &v_53); } else if (ccode_0 == 0) { - FX_COPY_PTR(v_46, &v_47); + FX_COPY_PTR(v_52, &v_53); } else { - _fx_LN15C_form__cstmt_t v_48 = 0; + _fx_LN15C_form__cstmt_t v_54 = 0; _fx_LN15C_form__cstmt_t lstend_3 = 0; - _fx_LN15C_form__cstmt_t lst_10 = v_46; + _fx_LN15C_form__cstmt_t lst_10 = v_52; for (; lst_10; lst_10 = lst_10->tl) { _fx_N15C_form__cstmt_t x_3 = lst_10->hd; _fx_LN15C_form__cstmt_t node_3 = 0; - FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_3, 0, false, &node_3), _fx_catch_22); - FX_LIST_APPEND(v_48, lstend_3, node_3); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_3, 0, false, &node_3), _fx_catch_23); + FX_LIST_APPEND(v_54, lstend_3, node_3); - _fx_catch_22: ; - FX_CHECK_EXN(_fx_catch_23); + _fx_catch_23: ; + FX_CHECK_EXN(_fx_catch_24); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_48, ccode_0, &v_47, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_54, ccode_0, &v_53, 0); - _fx_catch_23: ; - if (v_48) { - _fx_free_LN15C_form__cstmt_t(&v_48); + _fx_catch_24: ; + if (v_54) { + _fx_free_LN15C_form__cstmt_t(&v_54); } } - FX_CHECK_EXN(_fx_catch_24); - _fx_make_T2BLN15C_form__cstmt_t(em_label_used_0, v_47, &v_7); + FX_CHECK_EXN(_fx_catch_25); + _fx_make_T2BLN15C_form__cstmt_t(em_label_used_0, v_53, &v_7); -_fx_catch_24: ; - if (v_47) { - _fx_free_LN15C_form__cstmt_t(&v_47); +_fx_catch_25: ; + if (v_53) { + _fx_free_LN15C_form__cstmt_t(&v_53); } - if (v_46) { - _fx_free_LN15C_form__cstmt_t(&v_46); + if (v_52) { + _fx_free_LN15C_form__cstmt_t(&v_52); } _fx_endmatch_4: ; @@ -20922,11 +20489,15 @@ _fx_cleanup: ; FX_FREE_STR(&cname_0); _fx_free_R19C_form__cdeflabel_t(&v_1); _fx_free_N15C_form__cinfo_t(&v_2); - _fx_free_T5BBBBLLN15C_form__cstmt_t(&__fold_result___0); - _fx_free_T5BBBBLLN15C_form__cstmt_t(&v_3); if (all_cases_ccode_0) { _fx_free_LLN15C_form__cstmt_t(&all_cases_ccode_0); } + if (block_stack_0) { + _fx_free_LrR23C_gen_code__block_ctx_t(&block_stack_0); + } + if (bctx_0) { + _fx_free_rR23C_gen_code__block_ctx_t(&bctx_0); + } if (parent_lbl_0) { _fx_free_N14C_form__cexp_t(&parent_lbl_0); } @@ -20936,18 +20507,19 @@ _fx_cleanup: ; if (no_match_err_0) { _fx_free_N14C_form__cexp_t(&no_match_err_0); } - if (v_4) { - _fx_free_LN14C_form__cexp_t(&v_4); + if (v_3) { + _fx_free_LN14C_form__cexp_t(&v_3); } if (throw_no_match_0) { _fx_free_N14C_form__cexp_t(&throw_no_match_0); } - if (v_5) { - _fx_free_N15C_form__cstmt_t(&v_5); + if (v_4) { + _fx_free_N15C_form__cstmt_t(&v_4); } - if (v_6) { - _fx_free_LN15C_form__cstmt_t(&v_6); + if (v_5) { + _fx_free_LN15C_form__cstmt_t(&v_5); } + _fx_free_T2BLLN15C_form__cstmt_t(&v_6); _fx_free_T2BLN15C_form__cstmt_t(&v_7); if (ccode_1) { _fx_free_LN15C_form__cstmt_t(&ccode_1); @@ -21114,20 +20686,22 @@ static int FX_CALL( _fx_M10C_gen_codeFM14curr_block_ctxrRM11block_ctx_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &bctx_0, 0), _fx_catch_3); - bctx_0->data.bctx_return_used = bctx_0->data.bctx_return_used + 1; + _fx_R23C_gen_code__block_ctx_t* v_9 = &bctx_0->data; + _fx_R23C_gen_code__block_ctx_t* v_10 = &bctx_0->data; + v_10->bctx_return_used = v_9->bctx_return_used + 1; *return_used_0 = *return_used_0 + 1; _fx_copy_Nt6option1N14C_form__cexp_t(&(*func_dstexp_r_0)->data, &v_5); if (v_5.tag == 2) { if (a_opt_0->tag == 2) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_9 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_11 = {0}; _fx_N14C_form__cexp_t e_0 = 0; _fx_LN15C_form__cstmt_t ccode_3 = 0; _fx_N14C_form__ctyp_t ctyp_1 = 0; FX_CALL( atom2cexp_0.fp(&a_opt_0->u.Some, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_9, atom2cexp_0.fcv), _fx_catch_2); - FX_COPY_PTR(v_9.t0, &e_0); - FX_COPY_PTR(v_9.t1, &ccode_3); + i2e_ref_0, km_idx_0, &v_11, atom2cexp_0.fcv), _fx_catch_2); + FX_COPY_PTR(v_11.t0, &e_0); + FX_COPY_PTR(v_11.t1, &ccode_3); FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(e_0, &ctyp_1, 0), _fx_catch_2); FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( @@ -21143,7 +20717,7 @@ static int if (e_0) { _fx_free_N14C_form__cexp_t(&e_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_9); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_11); goto _fx_endmatch_0; } } @@ -21154,12 +20728,12 @@ static int FX_CALL( _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &lbl_0, 0), _fx_catch_3); - _fx_R9Ast__id_t v_10; + _fx_R9Ast__id_t v_12; fx_str_t slit_0 = FX_MAKE_STR("FX_RETURN"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_0, &v_10, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_0, &v_12, 0), _fx_catch_3); FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_0, 0, true, &v_6), _fx_catch_3); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_10, v_6, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_12, v_6, _fx_g20C_gen_code__CTypVoid, &kloc_0, &v_7, 0), _fx_catch_3); FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_7, &ret_exp_0), _fx_catch_3); FX_CALL(_fx_cons_LN15C_form__cstmt_t(ret_exp_0, ccode_2, true, &v_8), _fx_catch_3); @@ -21191,15 +20765,15 @@ static int goto _fx_endmatch_49; } if (tag_0 == 5) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_11 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_13 = {0}; _fx_N14C_form__cexp_t e_1 = 0; _fx_LN15C_form__cstmt_t ccode_4 = 0; _fx_N14C_form__cexp_t e_2 = 0; FX_CALL( atom2cexp_0.fp(&kexp_0->u.KExpAtom.t0, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_11, atom2cexp_0.fcv), _fx_catch_4); - FX_COPY_PTR(v_11.t0, &e_1); - FX_COPY_PTR(v_11.t1, &ccode_4); + i2e_ref_0, km_idx_0, &v_13, atom2cexp_0.fcv), _fx_catch_4); + FX_COPY_PTR(v_13.t0, &e_1); + FX_COPY_PTR(v_13.t1, &ccode_4); FX_CALL(_fx_M10C_gen_codeFM7fix_nilN14C_form__cexp_t2N14C_form__cexp_tN14K_form__ktyp_t(e_1, ktyp_0, &e_2, 0), _fx_catch_4); _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, e_2, ccode_4, &v_1); @@ -21214,14 +20788,14 @@ static int if (e_1) { _fx_free_N14C_form__cexp_t(&e_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_11); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_13); goto _fx_endmatch_49; } if (tag_0 == 6) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_12 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_14 = {0}; _fx_N14C_form__cexp_t ce1_0 = 0; _fx_LN15C_form__cstmt_t ccode_5 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_13 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_15 = {0}; _fx_N14C_form__cexp_t ce2_0 = 0; _fx_LN15C_form__cstmt_t ccode_6 = 0; _fx_T4N13Ast__binary_tN14K_form__atom_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_0 = &kexp_0->u.KExpBinary; @@ -21229,7 +20803,7 @@ static int _fx_N14K_form__atom_t* a1_0 = &vcase_0->t1; _fx_N13Ast__binary_t bop_0 = vcase_0->t0; int tag_1 = FX_REC_VARIANT_TAG(bop_0); - _fx_Ta2B v_14; + _fx_Ta2B v_16; bool res_0; if (tag_1 == 4) { res_0 = true; @@ -21242,16 +20816,16 @@ static int } FX_CHECK_EXN(_fx_catch_23); if (res_0) { - _fx_N14K_form__ktyp_t v_15 = 0; - _fx_N14K_form__ktyp_t v_16 = 0; - FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(a1_0, &kloc_0, &v_15, 0), + _fx_N14K_form__ktyp_t v_17 = 0; + _fx_N14K_form__ktyp_t v_18 = 0; + FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(a1_0, &kloc_0, &v_17, 0), _fx_catch_5); bool f1_0; - FX_CALL(_fx_M6K_formFM15is_ktyp_integerB2N14K_form__ktyp_tB(v_15, true, &f1_0, 0), _fx_catch_5); - FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(a2_0, &kloc_0, &v_16, 0), + FX_CALL(_fx_M6K_formFM15is_ktyp_integerB2N14K_form__ktyp_tB(v_17, true, &f1_0, 0), _fx_catch_5); + FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(a2_0, &kloc_0, &v_18, 0), _fx_catch_5); bool f2_0; - FX_CALL(_fx_M6K_formFM15is_ktyp_integerB2N14K_form__ktyp_tB(v_16, true, &f2_0, 0), _fx_catch_5); + FX_CALL(_fx_M6K_formFM15is_ktyp_integerB2N14K_form__ktyp_tB(v_18, true, &f2_0, 0), _fx_catch_5); bool nonlit_0; if (a2_0->tag == 1) { nonlit_0 = true; @@ -21275,111 +20849,111 @@ static int t_1 = false; } _fx_Ta2B tup_0 = { t_0, t_1 }; - v_14 = tup_0; + v_16 = tup_0; _fx_catch_5: ; - if (v_16) { - _fx_free_N14K_form__ktyp_t(&v_16); + if (v_18) { + _fx_free_N14K_form__ktyp_t(&v_18); } - if (v_15) { - _fx_free_N14K_form__ktyp_t(&v_15); + if (v_17) { + _fx_free_N14K_form__ktyp_t(&v_17); } goto _fx_endmatch_1; } _fx_Ta2B tup_1 = { false, false }; - v_14 = tup_1; + v_16 = tup_1; _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_23); - bool int_divmod_operands_0 = v_14.t0; - bool save_and_check_0 = v_14.t1; + bool int_divmod_operands_0 = v_16.t0; + bool save_and_check_0 = v_16.t1; FX_CALL( atom2cexp_0.fp(a1_0, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_12, atom2cexp_0.fcv), _fx_catch_23); - FX_COPY_PTR(v_12.t0, &ce1_0); - FX_COPY_PTR(v_12.t1, &ccode_5); - FX_CALL(atom2cexp__0.fp(a2_0, save_and_check_0, ccode_5, &kloc_0, &v_13, atom2cexp__0.fcv), _fx_catch_23); - FX_COPY_PTR(v_13.t0, &ce2_0); - FX_COPY_PTR(v_13.t1, &ccode_6); + &v_14, atom2cexp_0.fcv), _fx_catch_23); + FX_COPY_PTR(v_14.t0, &ce1_0); + FX_COPY_PTR(v_14.t1, &ccode_5); + FX_CALL(atom2cexp__0.fp(a2_0, save_and_check_0, ccode_5, &kloc_0, &v_15, atom2cexp__0.fcv), _fx_catch_23); + FX_COPY_PTR(v_15.t0, &ce2_0); + FX_COPY_PTR(v_15.t1, &ccode_6); int tag_2 = FX_REC_VARIANT_TAG(bop_0); if (tag_2 == 7) { - _fx_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t v_17 = {0}; + _fx_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t v_19 = {0}; _fx_N14C_form__cexp_t ce1_1 = 0; _fx_N14C_form__cexp_t ce2_1 = 0; _fx_N14C_form__ctyp_t rtyp_0 = 0; - _fx_LN14C_form__cexp_t v_18 = 0; + _fx_LN14C_form__cexp_t v_20 = 0; _fx_N14C_form__cexp_t e_3 = 0; _fx_N14C_form__cexp_t e_4 = 0; int tag_3 = FX_REC_VARIANT_TAG(ctyp_0); if (tag_3 == 7) { if (ctyp_0->u.CTypFloat == 64) { - _fx_R9Ast__id_t v_19; + _fx_R9Ast__id_t v_21; fx_str_t slit_1 = FX_MAKE_STR("pow"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_1, &v_19, 0), _fx_catch_6); - _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(false, ce1_0, ce2_0, ctyp_0, &v_19, - &v_17); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_1, &v_21, 0), _fx_catch_6); + _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(false, ce1_0, ce2_0, ctyp_0, &v_21, + &v_19); _fx_catch_6: ; goto _fx_endmatch_2; } } if (tag_3 == 7) { - _fx_R9Ast__id_t v_20; + _fx_R9Ast__id_t v_22; fx_str_t slit_2 = FX_MAKE_STR("powf"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_2, &v_20, 0), _fx_catch_7); - _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(false, ce1_0, ce2_0, ctyp_0, &v_20, - &v_17); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_2, &v_22, 0), _fx_catch_7); + _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(false, ce1_0, ce2_0, ctyp_0, &v_22, + &v_19); _fx_catch_7: ; goto _fx_endmatch_2; } - _fx_N14C_form__ctyp_t v_21 = 0; + _fx_N14C_form__ctyp_t v_23 = 0; _fx_N14C_form__cexp_t ce1_2 = 0; - _fx_N14C_form__ctyp_t v_22 = 0; + _fx_N14C_form__ctyp_t v_24 = 0; _fx_N14C_form__cexp_t ce2_2 = 0; - _fx_N14C_form__ctyp_t v_23 = 0; - FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_21), _fx_catch_8); + _fx_N14C_form__ctyp_t v_25 = 0; + FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_23), _fx_catch_8); FX_CALL( - _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(ce1_0, v_21, &kloc_0, + _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(ce1_0, v_23, &kloc_0, &ce1_2), _fx_catch_8); - FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_22), _fx_catch_8); + FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_24), _fx_catch_8); FX_CALL( - _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(ce2_0, v_22, &kloc_0, + _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(ce2_0, v_24, &kloc_0, &ce2_2), _fx_catch_8); - FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_23), _fx_catch_8); - _fx_R9Ast__id_t v_24; + FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_25), _fx_catch_8); + _fx_R9Ast__id_t v_26; fx_str_t slit_3 = FX_MAKE_STR("pow"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_3, &v_24, 0), _fx_catch_8); - _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(true, ce1_2, ce2_2, v_23, &v_24, &v_17); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_3, &v_26, 0), _fx_catch_8); + _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(true, ce1_2, ce2_2, v_25, &v_26, &v_19); _fx_catch_8: ; - if (v_23) { - _fx_free_N14C_form__ctyp_t(&v_23); + if (v_25) { + _fx_free_N14C_form__ctyp_t(&v_25); } if (ce2_2) { _fx_free_N14C_form__cexp_t(&ce2_2); } - if (v_22) { - _fx_free_N14C_form__ctyp_t(&v_22); + if (v_24) { + _fx_free_N14C_form__ctyp_t(&v_24); } if (ce1_2) { _fx_free_N14C_form__cexp_t(&ce1_2); } - if (v_21) { - _fx_free_N14C_form__ctyp_t(&v_21); + if (v_23) { + _fx_free_N14C_form__ctyp_t(&v_23); } _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_9); - bool need_cast_0 = v_17.t0; - FX_COPY_PTR(v_17.t1, &ce1_1); - FX_COPY_PTR(v_17.t2, &ce2_1); - FX_COPY_PTR(v_17.t3, &rtyp_0); - _fx_R9Ast__id_t f_0 = v_17.t4; - FX_CALL(_fx_cons_LN14C_form__cexp_t(ce2_1, 0, true, &v_18), _fx_catch_9); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1_1, v_18, false, &v_18), _fx_catch_9); + bool need_cast_0 = v_19.t0; + FX_COPY_PTR(v_19.t1, &ce1_1); + FX_COPY_PTR(v_19.t2, &ce2_1); + FX_COPY_PTR(v_19.t3, &rtyp_0); + _fx_R9Ast__id_t f_0 = v_19.t4; + FX_CALL(_fx_cons_LN14C_form__cexp_t(ce2_1, 0, true, &v_20), _fx_catch_9); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1_1, v_20, false, &v_20), _fx_catch_9); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&f_0, v_18, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&f_0, v_20, rtyp_0, &kloc_0, &e_3, 0), _fx_catch_9); if (need_cast_0) { FX_CALL( @@ -21398,8 +20972,8 @@ static int if (e_3) { _fx_free_N14C_form__cexp_t(&e_3); } - if (v_18) { - _fx_free_LN14C_form__cexp_t(&v_18); + if (v_20) { + _fx_free_LN14C_form__cexp_t(&v_20); } if (rtyp_0) { _fx_free_N14C_form__ctyp_t(&rtyp_0); @@ -21410,66 +20984,66 @@ static int if (ce1_1) { _fx_free_N14C_form__cexp_t(&ce1_1); } - _fx_free_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(&v_17); + _fx_free_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(&v_19); } else if (tag_2 == 4) { _fx_N14C_form__cexp_t lbl_1 = 0; - _fx_LN14C_form__cexp_t v_25 = 0; + _fx_LN14C_form__cexp_t v_27 = 0; _fx_N14C_form__cexp_t chk_denom_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_26 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_28 = {0}; _fx_N14C_form__cexp_t div_exp_0 = 0; - _fx_N15C_form__cstmt_t v_27 = 0; - _fx_LN15C_form__cstmt_t v_28 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_29 = {0}; - _fx_N14C_form__cexp_t v_30 = 0; + _fx_N15C_form__cstmt_t v_29 = 0; + _fx_LN15C_form__cstmt_t v_30 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_31 = {0}; + _fx_N14C_form__cexp_t v_32 = 0; if (save_and_check_0) { FX_CALL( _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &lbl_1, 0), _fx_catch_10); - _fx_R9Ast__id_t v_31; + _fx_R9Ast__id_t v_33; fx_str_t slit_4 = FX_MAKE_STR("FX_CHECK_DIV_BY_ZERO"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_4, &v_31, 0), _fx_catch_10); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_1, 0, true, &v_25), _fx_catch_10); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ce2_0, v_25, false, &v_25), _fx_catch_10); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_4, &v_33, 0), _fx_catch_10); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_1, 0, true, &v_27), _fx_catch_10); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ce2_0, v_27, false, &v_27), _fx_catch_10); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_31, - v_25, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_denom_0, 0), _fx_catch_10); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_26); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_33, + v_27, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_denom_0, 0), _fx_catch_10); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_28); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g18C_gen_code__COpDiv, ce1_0, ce2_0, &v_26, &div_exp_0), _fx_catch_10); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_denom_0, &v_27), _fx_catch_10); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_27, ccode_6, true, &v_28), _fx_catch_10); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, div_exp_0, v_28, &v_1); + &_fx_g18C_gen_code__COpDiv, ce1_0, ce2_0, &v_28, &div_exp_0), _fx_catch_10); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_denom_0, &v_29), _fx_catch_10); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_29, ccode_6, true, &v_30), _fx_catch_10); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, div_exp_0, v_30, &v_1); } else { - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_29); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_31); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g18C_gen_code__COpDiv, ce1_0, ce2_0, &v_29, &v_30), _fx_catch_10); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_30, ccode_6, &v_1); + &_fx_g18C_gen_code__COpDiv, ce1_0, ce2_0, &v_31, &v_32), _fx_catch_10); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_32, ccode_6, &v_1); } _fx_catch_10: ; - if (v_30) { - _fx_free_N14C_form__cexp_t(&v_30); + if (v_32) { + _fx_free_N14C_form__cexp_t(&v_32); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_29); - if (v_28) { - _fx_free_LN15C_form__cstmt_t(&v_28); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_31); + if (v_30) { + _fx_free_LN15C_form__cstmt_t(&v_30); } - if (v_27) { - _fx_free_N15C_form__cstmt_t(&v_27); + if (v_29) { + _fx_free_N15C_form__cstmt_t(&v_29); } if (div_exp_0) { _fx_free_N14C_form__cexp_t(&div_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_26); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_28); if (chk_denom_0) { _fx_free_N14C_form__cexp_t(&chk_denom_0); } - if (v_25) { - _fx_free_LN14C_form__cexp_t(&v_25); + if (v_27) { + _fx_free_LN14C_form__cexp_t(&v_27); } if (lbl_1) { _fx_free_N14C_form__cexp_t(&lbl_1); @@ -21477,47 +21051,47 @@ static int } else if (tag_2 == 6) { _fx_N14C_form__cexp_t lbl_2 = 0; - _fx_LN14C_form__cexp_t v_32 = 0; + _fx_LN14C_form__cexp_t v_34 = 0; _fx_N14C_form__cexp_t chk_denom_1 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_33 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_35 = {0}; _fx_N14C_form__cexp_t mod_exp_0 = 0; - _fx_N15C_form__cstmt_t v_34 = 0; - _fx_LN15C_form__cstmt_t v_35 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_36 = {0}; - _fx_N14C_form__cexp_t v_37 = 0; - _fx_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t v_38 = {0}; + _fx_N15C_form__cstmt_t v_36 = 0; + _fx_LN15C_form__cstmt_t v_37 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_38 = {0}; + _fx_N14C_form__cexp_t v_39 = 0; + _fx_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t v_40 = {0}; _fx_N14C_form__cexp_t ce1_3 = 0; _fx_N14C_form__cexp_t ce2_3 = 0; _fx_N14C_form__ctyp_t rtyp_1 = 0; - _fx_LN14C_form__cexp_t v_39 = 0; + _fx_LN14C_form__cexp_t v_41 = 0; _fx_N14C_form__cexp_t e_5 = 0; _fx_N14C_form__cexp_t e_6 = 0; if (save_and_check_0) { FX_CALL( _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &lbl_2, 0), _fx_catch_14); - _fx_R9Ast__id_t v_40; + _fx_R9Ast__id_t v_42; fx_str_t slit_5 = FX_MAKE_STR("FX_CHECK_DIV_BY_ZERO"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_5, &v_40, 0), _fx_catch_14); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_2, 0, true, &v_32), _fx_catch_14); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ce2_0, v_32, false, &v_32), _fx_catch_14); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_5, &v_42, 0), _fx_catch_14); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_2, 0, true, &v_34), _fx_catch_14); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ce2_0, v_34, false, &v_34), _fx_catch_14); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_40, - v_32, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_denom_1, 0), _fx_catch_14); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_33); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_42, + v_34, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_denom_1, 0), _fx_catch_14); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_35); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g18C_gen_code__COpMod, ce1_0, ce2_0, &v_33, &mod_exp_0), _fx_catch_14); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_denom_1, &v_34), _fx_catch_14); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_34, ccode_6, true, &v_35), _fx_catch_14); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, mod_exp_0, v_35, &v_1); + &_fx_g18C_gen_code__COpMod, ce1_0, ce2_0, &v_35, &mod_exp_0), _fx_catch_14); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_denom_1, &v_36), _fx_catch_14); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_36, ccode_6, true, &v_37), _fx_catch_14); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, mod_exp_0, v_37, &v_1); } else if (int_divmod_operands_0) { - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_36); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_38); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g18C_gen_code__COpMod, ce1_0, ce2_0, &v_36, &v_37), _fx_catch_14); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_37, ccode_6, &v_1); + &_fx_g18C_gen_code__COpMod, ce1_0, ce2_0, &v_38, &v_39), _fx_catch_14); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_39, ccode_6, &v_1); } else { int tag_4 = FX_REC_VARIANT_TAG(ctyp_0); @@ -21535,74 +21109,74 @@ static int _fx_endmatch_3: ; FX_CHECK_EXN(_fx_catch_14); if (res_1) { - _fx_R9Ast__id_t v_41; + _fx_R9Ast__id_t v_43; fx_str_t slit_6 = FX_MAKE_STR("fmodf"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_6, &v_41, 0), _fx_catch_11); - _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(false, ce1_0, ce2_0, ctyp_0, &v_41, - &v_38); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_6, &v_43, 0), _fx_catch_11); + _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(false, ce1_0, ce2_0, ctyp_0, &v_43, + &v_40); _fx_catch_11: ; goto _fx_endmatch_4; } if (tag_4 == 7) { if (ctyp_0->u.CTypFloat == 64) { - _fx_R9Ast__id_t v_42; + _fx_R9Ast__id_t v_44; fx_str_t slit_7 = FX_MAKE_STR("fmod"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_7, &v_42, 0), _fx_catch_12); - _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(false, ce1_0, ce2_0, ctyp_0, &v_42, - &v_38); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_7, &v_44, 0), _fx_catch_12); + _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(false, ce1_0, ce2_0, ctyp_0, &v_44, + &v_40); _fx_catch_12: ; goto _fx_endmatch_4; } } - _fx_N14C_form__ctyp_t v_43 = 0; + _fx_N14C_form__ctyp_t v_45 = 0; _fx_N14C_form__cexp_t ce1_4 = 0; - _fx_N14C_form__ctyp_t v_44 = 0; + _fx_N14C_form__ctyp_t v_46 = 0; _fx_N14C_form__cexp_t ce2_4 = 0; - _fx_N14C_form__ctyp_t v_45 = 0; - FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_43), _fx_catch_13); + _fx_N14C_form__ctyp_t v_47 = 0; + FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_45), _fx_catch_13); FX_CALL( - _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(ce1_0, v_43, &kloc_0, + _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(ce1_0, v_45, &kloc_0, &ce1_4), _fx_catch_13); - FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_44), _fx_catch_13); + FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_46), _fx_catch_13); FX_CALL( - _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(ce2_0, v_44, &kloc_0, + _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(ce2_0, v_46, &kloc_0, &ce2_4), _fx_catch_13); - FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_45), _fx_catch_13); - _fx_R9Ast__id_t v_46; + FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(64, &v_47), _fx_catch_13); + _fx_R9Ast__id_t v_48; fx_str_t slit_8 = FX_MAKE_STR("fmod"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_8, &v_46, 0), _fx_catch_13); - _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(true, ce1_4, ce2_4, v_45, &v_46, &v_38); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_8, &v_48, 0), _fx_catch_13); + _fx_make_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(true, ce1_4, ce2_4, v_47, &v_48, &v_40); _fx_catch_13: ; - if (v_45) { - _fx_free_N14C_form__ctyp_t(&v_45); + if (v_47) { + _fx_free_N14C_form__ctyp_t(&v_47); } if (ce2_4) { _fx_free_N14C_form__cexp_t(&ce2_4); } - if (v_44) { - _fx_free_N14C_form__ctyp_t(&v_44); + if (v_46) { + _fx_free_N14C_form__ctyp_t(&v_46); } if (ce1_4) { _fx_free_N14C_form__cexp_t(&ce1_4); } - if (v_43) { - _fx_free_N14C_form__ctyp_t(&v_43); + if (v_45) { + _fx_free_N14C_form__ctyp_t(&v_45); } _fx_endmatch_4: ; FX_CHECK_EXN(_fx_catch_14); - bool need_cast_1 = v_38.t0; - FX_COPY_PTR(v_38.t1, &ce1_3); - FX_COPY_PTR(v_38.t2, &ce2_3); - FX_COPY_PTR(v_38.t3, &rtyp_1); - _fx_R9Ast__id_t f_1 = v_38.t4; - FX_CALL(_fx_cons_LN14C_form__cexp_t(ce2_3, 0, true, &v_39), _fx_catch_14); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1_3, v_39, false, &v_39), _fx_catch_14); + bool need_cast_1 = v_40.t0; + FX_COPY_PTR(v_40.t1, &ce1_3); + FX_COPY_PTR(v_40.t2, &ce2_3); + FX_COPY_PTR(v_40.t3, &rtyp_1); + _fx_R9Ast__id_t f_1 = v_40.t4; + FX_CALL(_fx_cons_LN14C_form__cexp_t(ce2_3, 0, true, &v_41), _fx_catch_14); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1_3, v_41, false, &v_41), _fx_catch_14); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&f_1, v_39, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&f_1, v_41, rtyp_1, &kloc_0, &e_5, 0), _fx_catch_14); if (need_cast_1) { FX_CALL( @@ -21622,8 +21196,8 @@ static int if (e_5) { _fx_free_N14C_form__cexp_t(&e_5); } - if (v_39) { - _fx_free_LN14C_form__cexp_t(&v_39); + if (v_41) { + _fx_free_LN14C_form__cexp_t(&v_41); } if (rtyp_1) { _fx_free_N14C_form__ctyp_t(&rtyp_1); @@ -21634,36 +21208,36 @@ static int if (ce1_3) { _fx_free_N14C_form__cexp_t(&ce1_3); } - _fx_free_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(&v_38); - if (v_37) { - _fx_free_N14C_form__cexp_t(&v_37); + _fx_free_T5BN14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tR9Ast__id_t(&v_40); + if (v_39) { + _fx_free_N14C_form__cexp_t(&v_39); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_36); - if (v_35) { - _fx_free_LN15C_form__cstmt_t(&v_35); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_38); + if (v_37) { + _fx_free_LN15C_form__cstmt_t(&v_37); } - if (v_34) { - _fx_free_N15C_form__cstmt_t(&v_34); + if (v_36) { + _fx_free_N15C_form__cstmt_t(&v_36); } if (mod_exp_0) { _fx_free_N14C_form__cexp_t(&mod_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_33); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_35); if (chk_denom_1) { _fx_free_N14C_form__cexp_t(&chk_denom_1); } - if (v_32) { - _fx_free_LN14C_form__cexp_t(&v_32); + if (v_34) { + _fx_free_LN14C_form__cexp_t(&v_34); } if (lbl_2) { _fx_free_N14C_form__cexp_t(&lbl_2); } } else if (tag_2 == 26) { - _fx_Nt6option1N14C_form__cexp_t v_47 = {0}; - _fx_T2BT2N14C_form__cexp_tLN15C_form__cstmt_t v_48 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_49 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_50 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_49 = {0}; + _fx_T2BT2N14C_form__cexp_tLN15C_form__cstmt_t v_50 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_51 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_52 = {0}; _fx_N14C_form__cexp_t l_exp_0 = 0; _fx_LN15C_form__cstmt_t ccode_7 = 0; _fx_R9Ast__id_t a2_id_0; @@ -21687,9 +21261,9 @@ static int ce2_id_0 = _fx_g9Ast__noid; } FX_CHECK_EXN(_fx_catch_15); - _fx_copy_Nt6option1N14C_form__cexp_t(&dstexp_r_0->data, &v_47); + _fx_copy_Nt6option1N14C_form__cexp_t(&dstexp_r_0->data, &v_49); bool res_3; - FX_CALL(_fx_M10C_gen_codeFM6isnoneB1Nt6option1N14C_form__cexp_t(&v_47, &res_3, 0), _fx_catch_15); + FX_CALL(_fx_M10C_gen_codeFM6isnoneB1Nt6option1N14C_form__cexp_t(&v_49, &res_3, 0), _fx_catch_15); bool t_2; if (res_3) { FX_CALL(_fx_M10C_gen_codeFM6__ne__B2R9Ast__id_tR9Ast__id_t(&a2_id_0, &_fx_g9Ast__noid, &t_2, 0), _fx_catch_15); @@ -21705,18 +21279,18 @@ static int t_3 = false; } if (t_3) { - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(ce2_0, 0, &v_49); - _fx_make_T2BT2N14C_form__cexp_tLN15C_form__cstmt_t(true, &v_49, &v_48); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(ce2_0, 0, &v_51); + _fx_make_T2BT2N14C_form__cexp_tLN15C_form__cstmt_t(true, &v_51, &v_50); } else { fx_str_t slit_9 = FX_MAKE_STR("lst"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_9, ctyp_0, 0, &kloc_0, block_stack_ref_0, km_idx_0, &v_50, 0), _fx_catch_15); - _fx_make_T2BT2N14C_form__cexp_tLN15C_form__cstmt_t(false, &v_50, &v_48); + dstexp_r_0, &slit_9, ctyp_0, 0, &kloc_0, block_stack_ref_0, km_idx_0, &v_52, 0), _fx_catch_15); + _fx_make_T2BT2N14C_form__cexp_tLN15C_form__cstmt_t(false, &v_52, &v_50); } - bool reuse_ce2_0 = v_48.t0; - FX_COPY_PTR(v_48.t1.t0, &l_exp_0); + bool reuse_ce2_0 = v_50.t0; + FX_COPY_PTR(v_50.t1.t0, &l_exp_0); FX_CALL( _fx_M10C_gen_codeFM14make_cons_callLN15C_form__cstmt_t7N14C_form__cexp_tN14C_form__cexp_tBN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( ce1_0, ce2_0, !reuse_ce2_0, l_exp_0, ccode_6, &kloc_0, block_stack_ref_0, &ccode_7, 0), _fx_catch_15); @@ -21729,78 +21303,78 @@ static int if (l_exp_0) { _fx_free_N14C_form__cexp_t(&l_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_50); - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_49); - _fx_free_T2BT2N14C_form__cexp_tLN15C_form__cstmt_t(&v_48); - _fx_free_Nt6option1N14C_form__cexp_t(&v_47); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_52); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_51); + _fx_free_T2BT2N14C_form__cexp_tLN15C_form__cstmt_t(&v_50); + _fx_free_Nt6option1N14C_form__cexp_t(&v_49); } else { - _fx_T2N17C_form__cbinary_tN14C_form__ctyp_t v_51 = {0}; + _fx_T2N17C_form__cbinary_tN14C_form__ctyp_t v_53 = {0}; _fx_N14C_form__ctyp_t bop_ctyp_0 = 0; - _fx_N14C_form__ctyp_t v_52 = 0; + _fx_N14C_form__ctyp_t v_54 = 0; int tag_5 = FX_REC_VARIANT_TAG(bop_0); if (tag_5 == 1) { - _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g18C_gen_code__COpAdd, ctyp_0, &v_51); goto _fx_endmatch_6; + _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g18C_gen_code__COpAdd, ctyp_0, &v_53); goto _fx_endmatch_6; } if (tag_5 == 2) { - _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g18C_gen_code__COpSub, ctyp_0, &v_51); goto _fx_endmatch_6; + _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g18C_gen_code__COpSub, ctyp_0, &v_53); goto _fx_endmatch_6; } if (tag_5 == 3) { - _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g18C_gen_code__COpMul, ctyp_0, &v_51); goto _fx_endmatch_6; + _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g18C_gen_code__COpMul, ctyp_0, &v_53); goto _fx_endmatch_6; } if (tag_5 == 4) { - _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g18C_gen_code__COpDiv, ctyp_0, &v_51); goto _fx_endmatch_6; + _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g18C_gen_code__COpDiv, ctyp_0, &v_53); goto _fx_endmatch_6; } if (tag_5 == 8) { - _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g24C_gen_code__COpShiftLeft, ctyp_0, &v_51); + _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g24C_gen_code__COpShiftLeft, ctyp_0, &v_53); goto _fx_endmatch_6; } if (tag_5 == 9) { - _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g25C_gen_code__COpShiftRight, ctyp_0, &v_51); + _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g25C_gen_code__COpShiftRight, ctyp_0, &v_53); goto _fx_endmatch_6; } if (tag_5 == 16) { - _fx_N14C_form__ctyp_t v_53 = 0; + _fx_N14C_form__ctyp_t v_55 = 0; if (FX_REC_VARIANT_TAG(ktyp_0) == 8) { - FX_COPY_PTR(_fx_g19C_gen_code__CTypInt, &v_53); + FX_COPY_PTR(_fx_g19C_gen_code__CTypInt, &v_55); } else { - FX_COPY_PTR(ctyp_0, &v_53); + FX_COPY_PTR(ctyp_0, &v_55); } FX_CHECK_EXN(_fx_catch_16); - _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g25C_gen_code__COpBitwiseAnd, v_53, &v_51); + _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g25C_gen_code__COpBitwiseAnd, v_55, &v_53); _fx_catch_16: ; - if (v_53) { - _fx_free_N14C_form__ctyp_t(&v_53); + if (v_55) { + _fx_free_N14C_form__ctyp_t(&v_55); } goto _fx_endmatch_6; } if (tag_5 == 18) { - _fx_N14C_form__ctyp_t v_54 = 0; + _fx_N14C_form__ctyp_t v_56 = 0; if (FX_REC_VARIANT_TAG(ktyp_0) == 8) { - FX_COPY_PTR(_fx_g19C_gen_code__CTypInt, &v_54); + FX_COPY_PTR(_fx_g19C_gen_code__CTypInt, &v_56); } else { - FX_COPY_PTR(ctyp_0, &v_54); + FX_COPY_PTR(ctyp_0, &v_56); } FX_CHECK_EXN(_fx_catch_17); - _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g24C_gen_code__COpBitwiseOr, v_54, &v_51); + _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g24C_gen_code__COpBitwiseOr, v_56, &v_53); _fx_catch_17: ; - if (v_54) { - _fx_free_N14C_form__ctyp_t(&v_54); + if (v_56) { + _fx_free_N14C_form__ctyp_t(&v_56); } goto _fx_endmatch_6; } if (tag_5 == 20) { - _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g25C_gen_code__COpBitwiseXor, ctyp_0, &v_51); + _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&_fx_g25C_gen_code__COpBitwiseXor, ctyp_0, &v_53); goto _fx_endmatch_6; } if (tag_5 == 21) { - _fx_N17C_form__cbinary_t v_55; - _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&bop_0->u.OpCmp, &v_55); - _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&v_55, ctyp_0, &v_51); + _fx_N17C_form__cbinary_t v_57; + _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&bop_0->u.OpCmp, &v_57); + _fx_make_T2N17C_form__cbinary_tN14C_form__ctyp_t(&v_57, ctyp_0, &v_53); goto _fx_endmatch_6; } bool res_4; @@ -21860,97 +21434,97 @@ static int } FX_CHECK_EXN(_fx_catch_22); if (res_4) { - fx_str_t v_56 = {0}; - fx_str_t v_57 = {0}; - fx_exn_t v_58 = {0}; - FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(bop_0, &v_56, 0), _fx_catch_18); + fx_str_t v_58 = {0}; + fx_str_t v_59 = {0}; + fx_exn_t v_60 = {0}; + FX_CALL(_fx_M3AstFM6stringS1N13Ast__binary_t(bop_0, &v_58, 0), _fx_catch_18); fx_str_t slit_10 = FX_MAKE_STR("cgen: unsupported op \'"); fx_str_t slit_11 = FX_MAKE_STR("\' at this stage"); { - const fx_str_t strs_0[] = { slit_10, v_56, slit_11 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_57), _fx_catch_18); + const fx_str_t strs_0[] = { slit_10, v_58, slit_11 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_59), _fx_catch_18); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_57, &v_58, 0), _fx_catch_18); - FX_THROW(&v_58, false, _fx_catch_18); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_59, &v_60, 0), _fx_catch_18); + FX_THROW(&v_60, false, _fx_catch_18); _fx_catch_18: ; - fx_free_exn(&v_58); - FX_FREE_STR(&v_57); - FX_FREE_STR(&v_56); + fx_free_exn(&v_60); + FX_FREE_STR(&v_59); + FX_FREE_STR(&v_58); goto _fx_endmatch_6; } FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_22); _fx_endmatch_6: ; FX_CHECK_EXN(_fx_catch_22); - _fx_N17C_form__cbinary_t c_bop_0 = v_51.t0; - FX_COPY_PTR(v_51.t1, &bop_ctyp_0); - FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(ce1_0, &v_52, 0), _fx_catch_22); + _fx_N17C_form__cbinary_t c_bop_0 = v_53.t0; + FX_COPY_PTR(v_53.t1, &bop_ctyp_0); + FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(ce1_0, &v_54, 0), _fx_catch_22); if (c_bop_0.tag == 13) { - if (FX_REC_VARIANT_TAG(v_52) == 12) { + if (FX_REC_VARIANT_TAG(v_54) == 12) { if (c_bop_0.u.COpCmp.tag == 1) { - _fx_N14C_form__cexp_t v_59 = 0; - _fx_N14C_form__cexp_t v_60 = 0; - _fx_LN14C_form__cexp_t v_61 = 0; + _fx_N14C_form__cexp_t v_61 = 0; + _fx_N14C_form__cexp_t v_62 = 0; + _fx_LN14C_form__cexp_t v_63 = 0; _fx_N14C_form__cexp_t call_streq_0 = 0; _fx_R9Ast__id_t f_exp_0; fx_str_t slit_12 = FX_MAKE_STR("fx_streq"); FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_12, &f_exp_0, 0), _fx_catch_19); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(ce1_0, &v_59, 0), _fx_catch_19); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(ce2_0, &v_60, 0), _fx_catch_19); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_60, 0, true, &v_61), _fx_catch_19); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_59, v_61, false, &v_61), _fx_catch_19); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(ce1_0, &v_61, 0), _fx_catch_19); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(ce2_0, &v_62, 0), _fx_catch_19); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_62, 0, true, &v_63), _fx_catch_19); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_61, v_63, false, &v_63), _fx_catch_19); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &f_exp_0, v_61, _fx_g20C_gen_code__CTypBool, &kloc_0, &call_streq_0, 0), _fx_catch_19); + &f_exp_0, v_63, _fx_g20C_gen_code__CTypBool, &kloc_0, &call_streq_0, 0), _fx_catch_19); _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, call_streq_0, ccode_6, &v_1); _fx_catch_19: ; if (call_streq_0) { _fx_free_N14C_form__cexp_t(&call_streq_0); } - if (v_61) { - _fx_free_LN14C_form__cexp_t(&v_61); + if (v_63) { + _fx_free_LN14C_form__cexp_t(&v_63); } - if (v_60) { - _fx_free_N14C_form__cexp_t(&v_60); + if (v_62) { + _fx_free_N14C_form__cexp_t(&v_62); } - if (v_59) { - _fx_free_N14C_form__cexp_t(&v_59); + if (v_61) { + _fx_free_N14C_form__cexp_t(&v_61); } goto _fx_endmatch_7; } } } if (c_bop_0.tag == 1) { - if (FX_REC_VARIANT_TAG(v_52) == 20) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_62 = {0}; + if (FX_REC_VARIANT_TAG(v_54) == 20) { + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_64 = {0}; _fx_N14C_form__cexp_t dst_exp_0 = 0; _fx_LN15C_form__cstmt_t ccode_8 = 0; - _fx_N14C_form__cexp_t v_63 = 0; - _fx_N14C_form__cexp_t v_64 = 0; _fx_N14C_form__cexp_t v_65 = 0; - _fx_LN14C_form__cexp_t v_66 = 0; + _fx_N14C_form__cexp_t v_66 = 0; + _fx_N14C_form__cexp_t v_67 = 0; + _fx_LN14C_form__cexp_t v_68 = 0; _fx_N14C_form__cexp_t call_concat_0 = 0; _fx_LN15C_form__cstmt_t ccode_9 = 0; fx_str_t slit_13 = FX_MAKE_STR("v"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_13, ctyp_0, ccode_6, &kloc_0, block_stack_ref_0, km_idx_0, &v_62, 0), _fx_catch_20); - FX_COPY_PTR(v_62.t0, &dst_exp_0); - FX_COPY_PTR(v_62.t1, &ccode_8); - _fx_R9Ast__id_t v_67; + dstexp_r_0, &slit_13, ctyp_0, ccode_6, &kloc_0, block_stack_ref_0, km_idx_0, &v_64, 0), _fx_catch_20); + FX_COPY_PTR(v_64.t0, &dst_exp_0); + FX_COPY_PTR(v_64.t1, &ccode_8); + _fx_R9Ast__id_t v_69; fx_str_t slit_14 = FX_MAKE_STR("fx_rrb_concat"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_14, &v_67, 0), _fx_catch_20); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(ce1_0, &v_63, 0), _fx_catch_20); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(ce2_0, &v_64, 0), _fx_catch_20); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_0, &v_65, 0), _fx_catch_20); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_65, 0, true, &v_66), _fx_catch_20); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_64, v_66, false, &v_66), _fx_catch_20); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_63, v_66, false, &v_66), _fx_catch_20); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_14, &v_69, 0), _fx_catch_20); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(ce1_0, &v_65, 0), _fx_catch_20); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(ce2_0, &v_66, 0), _fx_catch_20); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_0, &v_67, 0), _fx_catch_20); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_67, 0, true, &v_68), _fx_catch_20); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_66, v_68, false, &v_68), _fx_catch_20); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_65, v_68, false, &v_68), _fx_catch_20); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_67, - v_66, _fx_g20C_gen_code__CTypCInt, &kloc_0, &call_concat_0, 0), _fx_catch_20); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_69, + v_68, _fx_g20C_gen_code__CTypCInt, &kloc_0, &call_concat_0, 0), _fx_catch_20); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( call_concat_0, ccode_8, &kloc_0, block_stack_ref_0, &ccode_9, 0), _fx_catch_20); @@ -21963,39 +21537,39 @@ static int if (call_concat_0) { _fx_free_N14C_form__cexp_t(&call_concat_0); } + if (v_68) { + _fx_free_LN14C_form__cexp_t(&v_68); + } + if (v_67) { + _fx_free_N14C_form__cexp_t(&v_67); + } if (v_66) { - _fx_free_LN14C_form__cexp_t(&v_66); + _fx_free_N14C_form__cexp_t(&v_66); } if (v_65) { _fx_free_N14C_form__cexp_t(&v_65); } - if (v_64) { - _fx_free_N14C_form__cexp_t(&v_64); - } - if (v_63) { - _fx_free_N14C_form__cexp_t(&v_63); - } if (ccode_8) { _fx_free_LN15C_form__cstmt_t(&ccode_8); } if (dst_exp_0) { _fx_free_N14C_form__cexp_t(&dst_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_62); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_64); goto _fx_endmatch_7; } } - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_68 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_70 = {0}; _fx_N14C_form__cexp_t res_5 = 0; _fx_N14C_form__cexp_t res_6 = 0; - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(bop_ctyp_0, &kloc_0, &v_68); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(bop_ctyp_0, &kloc_0, &v_70); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &c_bop_0, ce1_0, ce2_0, &v_68, &res_5), _fx_catch_21); - bool v_69; - FX_CALL(_fx_M10C_gen_codeFM15__eq_variants__B2N14C_form__ctyp_tN14C_form__ctyp_t(ctyp_0, bop_ctyp_0, &v_69, 0), + &c_bop_0, ce1_0, ce2_0, &v_70, &res_5), _fx_catch_21); + bool v_71; + FX_CALL(_fx_M10C_gen_codeFM15__eq_variants__B2N14C_form__ctyp_tN14C_form__ctyp_t(ctyp_0, bop_ctyp_0, &v_71, 0), _fx_catch_21); - if (v_69) { + if (v_71) { FX_COPY_PTR(res_5, &res_6); } else { @@ -22012,19 +21586,19 @@ static int if (res_5) { _fx_free_N14C_form__cexp_t(&res_5); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_68); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_70); _fx_endmatch_7: ; FX_CHECK_EXN(_fx_catch_22); _fx_catch_22: ; - if (v_52) { - _fx_free_N14C_form__ctyp_t(&v_52); + if (v_54) { + _fx_free_N14C_form__ctyp_t(&v_54); } if (bop_ctyp_0) { _fx_free_N14C_form__ctyp_t(&bop_ctyp_0); } - _fx_free_T2N17C_form__cbinary_tN14C_form__ctyp_t(&v_51); + _fx_free_T2N17C_form__cbinary_tN14C_form__ctyp_t(&v_53); } FX_CHECK_EXN(_fx_catch_23); @@ -22035,35 +21609,35 @@ static int if (ce2_0) { _fx_free_N14C_form__cexp_t(&ce2_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_13); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_15); if (ccode_5) { _fx_free_LN15C_form__cstmt_t(&ccode_5); } if (ce1_0) { _fx_free_N14C_form__cexp_t(&ce1_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_12); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_14); goto _fx_endmatch_49; } if (tag_0 == 7) { _fx_T3N12Ast__unary_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_1 = &kexp_0->u.KExpUnary; if (vcase_1->t0.tag == 6) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_70 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_72 = {0}; _fx_N14C_form__cexp_t ce1_5 = 0; _fx_LN15C_form__cstmt_t ccode_10 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_71 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_73 = {0}; _fx_N14C_form__cexp_t r_exp_0 = 0; _fx_LN15C_form__cstmt_t ccode_11 = 0; FX_CALL( atom2cexp_0.fp(&vcase_1->t1, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_70, atom2cexp_0.fcv), _fx_catch_24); - FX_COPY_PTR(v_70.t0, &ce1_5); - FX_COPY_PTR(v_70.t1, &ccode_10); + km_idx_0, &v_72, atom2cexp_0.fcv), _fx_catch_24); + FX_COPY_PTR(v_72.t0, &ce1_5); + FX_COPY_PTR(v_72.t1, &ccode_10); fx_str_t slit_15 = FX_MAKE_STR("r"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_15, ctyp_0, 0, &kloc_0, block_stack_ref_0, km_idx_0, &v_71, 0), _fx_catch_24); - FX_COPY_PTR(v_71.t0, &r_exp_0); + dstexp_r_0, &slit_15, ctyp_0, 0, &kloc_0, block_stack_ref_0, km_idx_0, &v_73, 0), _fx_catch_24); + FX_COPY_PTR(v_73.t0, &r_exp_0); FX_CALL( _fx_M10C_gen_codeFM15make_mkref_callLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( ce1_5, r_exp_0, ccode_10, &kloc_0, block_stack_ref_0, &ccode_11, 0), _fx_catch_24); @@ -22076,56 +21650,56 @@ static int if (r_exp_0) { _fx_free_N14C_form__cexp_t(&r_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_71); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_73); if (ccode_10) { _fx_free_LN15C_form__cstmt_t(&ccode_10); } if (ce1_5) { _fx_free_N14C_form__cexp_t(&ce1_5); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_70); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_72); goto _fx_endmatch_49; } } if (tag_0 == 7) { _fx_T3N12Ast__unary_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_2 = &kexp_0->u.KExpUnary; if (vcase_2->t0.tag == 7) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_72 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_74 = {0}; _fx_N14C_form__cexp_t ce_0 = 0; _fx_LN15C_form__cstmt_t ccode_12 = 0; - _fx_N14C_form__cexp_t v_73 = 0; + _fx_N14C_form__cexp_t v_75 = 0; _fx_N14K_form__atom_t* a1_1 = &vcase_2->t1; _fx_R9Ast__id_t a_id_0; if (a1_1->tag == 1) { a_id_0 = a1_1->u.AtomId; } else { - fx_exn_t v_74 = {0}; + fx_exn_t v_76 = {0}; fx_str_t slit_16 = FX_MAKE_STR("cgen: deref operand is not an identifier"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_16, &v_74, 0), _fx_catch_25); - FX_THROW(&v_74, false, _fx_catch_25); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_16, &v_76, 0), _fx_catch_25); + FX_THROW(&v_76, false, _fx_catch_25); _fx_catch_25: ; - fx_free_exn(&v_74); + fx_free_exn(&v_76); } FX_CHECK_EXN(_fx_catch_26); FX_CALL( _fx_M10C_gen_codeFM7id2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t9R9Ast__id_tBLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( &a_id_0, false, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_72, 0), _fx_catch_26); - FX_COPY_PTR(v_72.t0, &ce_0); - FX_COPY_PTR(v_72.t1, &ccode_12); + &v_74, 0), _fx_catch_26); + FX_COPY_PTR(v_74.t0, &ce_0); + FX_COPY_PTR(v_74.t1, &ccode_12); _fx_R9Ast__id_t n_id_0; fx_str_t slit_17 = FX_MAKE_STR("data"); FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_17, &n_id_0, 0), _fx_catch_26); FX_CALL( _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(ce_0, &n_id_0, ctyp_0, - &v_73, 0), _fx_catch_26); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_73, ccode_12, &v_1); + &v_75, 0), _fx_catch_26); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_75, ccode_12, &v_1); _fx_catch_26: ; - if (v_73) { - _fx_free_N14C_form__cexp_t(&v_73); + if (v_75) { + _fx_free_N14C_form__cexp_t(&v_75); } if (ccode_12) { _fx_free_LN15C_form__cstmt_t(&ccode_12); @@ -22133,23 +21707,23 @@ static int if (ce_0) { _fx_free_N14C_form__cexp_t(&ce_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_72); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_74); goto _fx_endmatch_49; } } if (tag_0 == 7) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_75 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_77 = {0}; _fx_N14C_form__cexp_t ce1_6 = 0; _fx_LN15C_form__cstmt_t ccode_13 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_76 = {0}; - _fx_N14C_form__cexp_t v_77 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_78 = {0}; + _fx_N14C_form__cexp_t v_79 = 0; _fx_T3N12Ast__unary_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_3 = &kexp_0->u.KExpUnary; _fx_N12Ast__unary_t* uop_0 = &vcase_3->t0; FX_CALL( atom2cexp_0.fp(&vcase_3->t1, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_75, atom2cexp_0.fcv), _fx_catch_28); - FX_COPY_PTR(v_75.t0, &ce1_6); - FX_COPY_PTR(v_75.t1, &ccode_13); + km_idx_0, &v_77, atom2cexp_0.fcv), _fx_catch_28); + FX_COPY_PTR(v_77.t0, &ce1_6); + FX_COPY_PTR(v_77.t1, &ccode_13); int tag_6 = uop_0->tag; _fx_N16C_form__cunary_t c_uop_0; if (tag_6 == 1) { @@ -22185,47 +21759,47 @@ static int } FX_CHECK_EXN(_fx_catch_28); if (res_7) { - fx_str_t v_78 = {0}; - fx_str_t v_79 = {0}; - fx_exn_t v_80 = {0}; - FX_CALL(_fx_M3AstFM6stringS1N12Ast__unary_t(uop_0, &v_78, 0), _fx_catch_27); + fx_str_t v_80 = {0}; + fx_str_t v_81 = {0}; + fx_exn_t v_82 = {0}; + FX_CALL(_fx_M3AstFM6stringS1N12Ast__unary_t(uop_0, &v_80, 0), _fx_catch_27); fx_str_t slit_18 = FX_MAKE_STR("cgen: unsupported unary op \'"); fx_str_t slit_19 = FX_MAKE_STR("\'"); { - const fx_str_t strs_1[] = { slit_18, v_78, slit_19 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_79), _fx_catch_27); + const fx_str_t strs_1[] = { slit_18, v_80, slit_19 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_81), _fx_catch_27); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_79, &v_80, 0), _fx_catch_27); - FX_THROW(&v_80, false, _fx_catch_27); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_81, &v_82, 0), _fx_catch_27); + FX_THROW(&v_82, false, _fx_catch_27); _fx_catch_27: ; - fx_free_exn(&v_80); - FX_FREE_STR(&v_79); - FX_FREE_STR(&v_78); + fx_free_exn(&v_82); + FX_FREE_STR(&v_81); + FX_FREE_STR(&v_80); goto _fx_endmatch_8; } FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_28); _fx_endmatch_8: ; FX_CHECK_EXN(_fx_catch_28); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_76); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_78); FX_CALL( _fx_M6C_formFM9CExpUnaryN14C_form__cexp_t3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &c_uop_0, ce1_6, &v_76, &v_77), _fx_catch_28); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_77, ccode_13, &v_1); + &c_uop_0, ce1_6, &v_78, &v_79), _fx_catch_28); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_79, ccode_13, &v_1); _fx_catch_28: ; - if (v_77) { - _fx_free_N14C_form__cexp_t(&v_77); + if (v_79) { + _fx_free_N14C_form__cexp_t(&v_79); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_76); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_78); if (ccode_13) { _fx_free_LN15C_form__cstmt_t(&ccode_13); } if (ce1_6) { _fx_free_N14C_form__cexp_t(&ce1_6); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_75); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_77); goto _fx_endmatch_49; } if (tag_0 == 8) { @@ -22235,67 +21809,67 @@ static int if (intr_0->tag == 2) { if (args_0 != 0) { if (args_0->tl == 0) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_81 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_83 = {0}; _fx_N14C_form__cexp_t cv_1 = 0; _fx_LN15C_form__cstmt_t ccode_14 = 0; _fx_N14K_form__ktyp_t ktyp_1 = 0; _fx_N14C_form__cexp_t extract_ctag_0 = 0; - _fx_LN14C_form__cexp_t v_82 = 0; + _fx_LN14C_form__cexp_t v_84 = 0; _fx_N14C_form__cexp_t extract_ctag_1 = 0; - _fx_N14K_form__atom_t* v_83 = &args_0->hd; + _fx_N14K_form__atom_t* v_85 = &args_0->hd; FX_CALL( - atom2cexp_0.fp(v_83, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_81, atom2cexp_0.fcv), _fx_catch_32); - FX_COPY_PTR(v_81.t0, &cv_1); - FX_COPY_PTR(v_81.t1, &ccode_14); - FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(v_83, &kloc_0, &ktyp_1, 0), + atom2cexp_0.fp(v_85, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_83, atom2cexp_0.fcv), _fx_catch_32); + FX_COPY_PTR(v_83.t0, &cv_1); + FX_COPY_PTR(v_83.t1, &ccode_14); + FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(v_85, &kloc_0, &ktyp_1, 0), _fx_catch_32); - _fx_R17K_form__ktprops_t v_84; + _fx_R17K_form__ktprops_t v_86; FX_CALL( - _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(ktyp_1, &kloc_0, &v_84, + _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(ktyp_1, &kloc_0, &v_86, 0), _fx_catch_32); - bool ktp_ptr_0 = v_84.ktp_ptr; + bool ktp_ptr_0 = v_86.ktp_ptr; if (ktp_ptr_0) { - FX_CALL(_fx_cons_LN14C_form__cexp_t(cv_1, 0, true, &v_82), _fx_catch_32); + FX_CALL(_fx_cons_LN14C_form__cexp_t(cv_1, 0, true, &v_84), _fx_catch_32); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g30C_form__std_FX_REC_VARIANT_TAG, v_82, _fx_g20C_gen_code__CTypCInt, &kloc_0, &extract_ctag_0, 0), + &_fx_g30C_form__std_FX_REC_VARIANT_TAG, v_84, _fx_g20C_gen_code__CTypCInt, &kloc_0, &extract_ctag_0, 0), _fx_catch_32); } else { - _fx_R9Ast__id_t v_85; + _fx_R9Ast__id_t v_87; fx_str_t slit_20 = FX_MAKE_STR("tag"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_20, &v_85, 0), _fx_catch_32); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_20, &v_87, 0), _fx_catch_32); FX_CALL( - _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(cv_1, &v_85, + _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(cv_1, &v_87, _fx_g20C_gen_code__CTypCInt, &extract_ctag_0, 0), _fx_catch_32); } if (FX_REC_VARIANT_TAG(ktyp_1) == 16) { - _fx_N15K_form__kinfo_t v_86 = {0}; + _fx_N15K_form__kinfo_t v_88 = {0}; _fx_R9Ast__id_t* tn_0 = &ktyp_1->u.KTypName; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(tn_0, &kloc_0, &v_86, 0), + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(tn_0, &kloc_0, &v_88, 0), _fx_catch_31); - if (v_86.tag == 5) { - _fx_R21K_form__kdefvariant_t v_87 = {0}; - _fx_N14C_form__cexp_t v_88 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_89 = {0}; + if (v_88.tag == 5) { + _fx_R21K_form__kdefvariant_t v_89 = {0}; _fx_N14C_form__cexp_t v_90 = 0; - _fx_N14K_form__klit_t v_91 = {0}; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_92 = {0}; - _fx_N14C_form__cexp_t v_93 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_91 = {0}; + _fx_N14C_form__cexp_t v_92 = 0; + _fx_N14K_form__klit_t v_93 = {0}; _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_94 = {0}; - fx_str_t v_95 = {0}; - fx_str_t v_96 = {0}; + _fx_N14C_form__cexp_t v_95 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_96 = {0}; fx_str_t v_97 = {0}; fx_str_t v_98 = {0}; fx_str_t v_99 = {0}; - fx_exn_t v_100 = {0}; - _fx_copy_R21K_form__kdefvariant_t(&v_86.u.KVariant->data, &v_87); - _fx_R16Ast__var_flags_t* kvar_flags_0 = &v_87.kvar_flags; + fx_str_t v_100 = {0}; + fx_str_t v_101 = {0}; + fx_exn_t v_102 = {0}; + _fx_copy_R21K_form__kdefvariant_t(&v_88.u.KVariant->data, &v_89); + _fx_R16Ast__var_flags_t* kvar_flags_0 = &v_89.kvar_flags; bool have_tag_0 = kvar_flags_0->var_flag_have_tag; bool is_recursive_0 = kvar_flags_0->var_flag_recursive; int_ ncases_0; - FX_CALL(_fx_M10C_gen_codeFM8length1_i1LT2R9Ast__id_tN14K_form__ktyp_t(v_87.kvar_cases, &ncases_0, 0), + FX_CALL(_fx_M10C_gen_codeFM8length1_i1LT2R9Ast__id_tN14K_form__ktyp_t(v_89.kvar_cases, &ncases_0, 0), _fx_catch_29); if (have_tag_0) { FX_COPY_PTR(extract_ctag_0, &extract_ctag_1); @@ -22321,90 +21895,90 @@ static int t_5 = false; } if (t_5) { - _fx_N17C_form__cbinary_t v_101; - _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpNE, &v_101); - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_88, 0), + _fx_N17C_form__cbinary_t v_103; + _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpNE, &v_103); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_90, 0), _fx_catch_29); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypCInt, &kloc_0, &v_89); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypCInt, &kloc_0, &v_91); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &v_101, cv_1, v_88, &v_89, &v_90), _fx_catch_29); - _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(1LL, &v_91); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypCInt, &kloc_0, &v_92); + &v_103, cv_1, v_90, &v_91, &v_92), _fx_catch_29); + _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(1LL, &v_93); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypCInt, &kloc_0, &v_94); FX_CALL( _fx_M6C_formFM7CExpLitN14C_form__cexp_t2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t( - &v_91, &v_92, &v_93), _fx_catch_29); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypCInt, &kloc_0, &v_94); + &v_93, &v_94, &v_95), _fx_catch_29); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypCInt, &kloc_0, &v_96); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g18C_gen_code__COpAdd, v_90, v_93, &v_94, &extract_ctag_1), _fx_catch_29); + &_fx_g18C_gen_code__COpAdd, v_92, v_95, &v_96, &extract_ctag_1), _fx_catch_29); } else { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn_0, &v_95, 0), _fx_catch_29); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_95, &v_96, 0), _fx_catch_29); - FX_CALL(_fx_F6stringS1i(ncases_0, &v_97, 0), _fx_catch_29); - FX_CALL(_fx_F6stringS1B(is_recursive_0, &v_98, 0), _fx_catch_29); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(tn_0, &v_97, 0), _fx_catch_29); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_97, &v_98, 0), _fx_catch_29); + FX_CALL(_fx_F6stringS1i(ncases_0, &v_99, 0), _fx_catch_29); + FX_CALL(_fx_F6stringS1B(is_recursive_0, &v_100, 0), _fx_catch_29); fx_str_t slit_21 = FX_MAKE_STR("cgen: variant \'"); fx_str_t slit_22 = FX_MAKE_STR("\' with no tag has "); fx_str_t slit_23 = FX_MAKE_STR(" cases, is_recursive="); { - const fx_str_t strs_2[] = { slit_21, v_96, slit_22, v_97, slit_23, v_98 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 6, &v_99), _fx_catch_29); + const fx_str_t strs_2[] = { slit_21, v_98, slit_22, v_99, slit_23, v_100 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 6, &v_101), _fx_catch_29); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_99, &v_100, 0), _fx_catch_29); - FX_THROW(&v_100, false, _fx_catch_29); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_101, &v_102, 0), _fx_catch_29); + FX_THROW(&v_102, false, _fx_catch_29); } } } _fx_catch_29: ; - fx_free_exn(&v_100); + fx_free_exn(&v_102); + FX_FREE_STR(&v_101); + FX_FREE_STR(&v_100); FX_FREE_STR(&v_99); FX_FREE_STR(&v_98); FX_FREE_STR(&v_97); - FX_FREE_STR(&v_96); - FX_FREE_STR(&v_95); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_96); + if (v_95) { + _fx_free_N14C_form__cexp_t(&v_95); + } _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_94); - if (v_93) { - _fx_free_N14C_form__cexp_t(&v_93); + _fx_free_N14K_form__klit_t(&v_93); + if (v_92) { + _fx_free_N14C_form__cexp_t(&v_92); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_92); - _fx_free_N14K_form__klit_t(&v_91); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_91); if (v_90) { _fx_free_N14C_form__cexp_t(&v_90); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_89); - if (v_88) { - _fx_free_N14C_form__cexp_t(&v_88); - } - _fx_free_R21K_form__kdefvariant_t(&v_87); + _fx_free_R21K_form__kdefvariant_t(&v_89); } else { - fx_str_t v_102 = {0}; - fx_str_t v_103 = {0}; fx_str_t v_104 = {0}; - fx_exn_t v_105 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(tn_0, &kloc_0, &v_102, 0), _fx_catch_30); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_102, &v_103, 0), _fx_catch_30); + fx_str_t v_105 = {0}; + fx_str_t v_106 = {0}; + fx_exn_t v_107 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(tn_0, &kloc_0, &v_104, 0), _fx_catch_30); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_104, &v_105, 0), _fx_catch_30); fx_str_t slit_24 = FX_MAKE_STR("cgen: unexpected type \'"); fx_str_t slit_25 = FX_MAKE_STR("\'; should be variant of exception"); { - const fx_str_t strs_3[] = { slit_24, v_103, slit_25 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_104), _fx_catch_30); + const fx_str_t strs_3[] = { slit_24, v_105, slit_25 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_106), _fx_catch_30); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_104, &v_105, 0), _fx_catch_30); - FX_THROW(&v_105, false, _fx_catch_30); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_106, &v_107, 0), _fx_catch_30); + FX_THROW(&v_107, false, _fx_catch_30); _fx_catch_30: ; - fx_free_exn(&v_105); + fx_free_exn(&v_107); + FX_FREE_STR(&v_106); + FX_FREE_STR(&v_105); FX_FREE_STR(&v_104); - FX_FREE_STR(&v_103); - FX_FREE_STR(&v_102); } FX_CHECK_EXN(_fx_catch_31); _fx_catch_31: ; - _fx_free_N15K_form__kinfo_t(&v_86); + _fx_free_N15K_form__kinfo_t(&v_88); } else { FX_COPY_PTR(extract_ctag_0, &extract_ctag_1); @@ -22416,8 +21990,8 @@ static int if (extract_ctag_1) { _fx_free_N14C_form__cexp_t(&extract_ctag_1); } - if (v_82) { - _fx_free_LN14C_form__cexp_t(&v_82); + if (v_84) { + _fx_free_LN14C_form__cexp_t(&v_84); } if (extract_ctag_0) { _fx_free_N14C_form__cexp_t(&extract_ctag_0); @@ -22431,210 +22005,210 @@ static int if (cv_1) { _fx_free_N14C_form__cexp_t(&cv_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_81); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_83); goto _fx_endmatch_16; } } } if (intr_0->tag == 3) { if (args_0 != 0) { - _fx_LN14K_form__atom_t v_106 = args_0->tl; - if (v_106 != 0) { - if (v_106->tl == 0) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_107 = {0}; + _fx_LN14K_form__atom_t v_108 = args_0->tl; + if (v_108 != 0) { + if (v_108->tl == 0) { + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_109 = {0}; _fx_N14C_form__cexp_t cv_2 = 0; _fx_LN15C_form__cstmt_t ccode_15 = 0; _fx_N14K_form__ktyp_t vktyp_0 = 0; - _fx_N14K_form__atom_t* vn_val_0 = &v_106->hd; - _fx_N14K_form__atom_t* v_108 = &args_0->hd; + _fx_N14K_form__atom_t* vn_val_0 = &v_108->hd; + _fx_N14K_form__atom_t* v_110 = &args_0->hd; FX_CALL( - atom2cexp_0.fp(v_108, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_107, atom2cexp_0.fcv), _fx_catch_42); - FX_COPY_PTR(v_107.t0, &cv_2); - FX_COPY_PTR(v_107.t1, &ccode_15); + atom2cexp_0.fp(v_110, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_109, atom2cexp_0.fcv), _fx_catch_42); + FX_COPY_PTR(v_109.t0, &cv_2); + FX_COPY_PTR(v_109.t1, &ccode_15); FX_CALL( - _fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(v_108, &kloc_0, &vktyp_0, 0), + _fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(v_110, &kloc_0, &vktyp_0, 0), _fx_catch_42); - _fx_R17K_form__ktprops_t v_109; + _fx_R17K_form__ktprops_t v_111; FX_CALL( _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(vktyp_0, &kloc_0, - &v_109, 0), _fx_catch_42); - bool ktp_ptr_1 = v_109.ktp_ptr; + &v_111, 0), _fx_catch_42); + bool ktp_ptr_1 = v_111.ktp_ptr; if (FX_REC_VARIANT_TAG(vktyp_0) == 21) { if (vn_val_0->tag == 1) { - _fx_N15C_form__cinfo_t v_110 = {0}; + _fx_N15C_form__cinfo_t v_112 = {0}; _fx_R9Ast__id_t* vn_0 = &vn_val_0->u.AtomId; - FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(vn_0, &kloc_0, &v_110, 0), + FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(vn_0, &kloc_0, &v_112, 0), _fx_catch_35); - if (v_110.tag == 5) { - _fx_R17C_form__cdefexn_t v_111 = {0}; + if (v_112.tag == 5) { + _fx_R17C_form__cdefexn_t v_113 = {0}; _fx_N14C_form__cexp_t exn_data_0 = 0; - _fx_N14C_form__ctyp_t v_112 = 0; - _fx_N14C_form__cexp_t v_113 = 0; - _fx_LN14C_form__cexp_t v_114 = 0; + _fx_N14C_form__ctyp_t v_114 = 0; + _fx_N14C_form__cexp_t v_115 = 0; + _fx_LN14C_form__cexp_t v_116 = 0; _fx_N14C_form__cexp_t exn_data_1 = 0; - _fx_copy_R17C_form__cdefexn_t(&v_110.u.CExn->data, &v_111); - _fx_R9Ast__id_t v_115; + _fx_copy_R17C_form__cdefexn_t(&v_112.u.CExn->data, &v_113); + _fx_R9Ast__id_t v_117; fx_str_t slit_26 = FX_MAKE_STR("data"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_26, &v_115, 0), _fx_catch_33); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_26, &v_117, 0), _fx_catch_33); FX_CALL( _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(cv_2, - &v_115, _fx_g19C_gen_code__CTypAny, &exn_data_0, 0), _fx_catch_33); - _fx_R9Ast__id_t v_116; + &v_117, _fx_g19C_gen_code__CTypAny, &exn_data_0, 0), _fx_catch_33); + _fx_R9Ast__id_t v_118; fx_str_t slit_27 = FX_MAKE_STR("FX_EXN_DATA"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_27, &v_116, 0), _fx_catch_33); - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_111.cexn_data, &v_112), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_27, &v_118, 0), _fx_catch_33); + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_113.cexn_data, &v_114), _fx_catch_33); FX_CALL( - _fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(v_112, &kloc_0, &v_113), + _fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(v_114, &kloc_0, &v_115), _fx_catch_33); - FX_CALL(_fx_cons_LN14C_form__cexp_t(exn_data_0, 0, true, &v_114), _fx_catch_33); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_113, v_114, false, &v_114), _fx_catch_33); + FX_CALL(_fx_cons_LN14C_form__cexp_t(exn_data_0, 0, true, &v_116), _fx_catch_33); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_115, v_116, false, &v_116), _fx_catch_33); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_116, v_114, ctyp_0, &kloc_0, &exn_data_1, 0), _fx_catch_33); + &v_118, v_116, ctyp_0, &kloc_0, &exn_data_1, 0), _fx_catch_33); _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, exn_data_1, ccode_15, &v_1); _fx_catch_33: ; if (exn_data_1) { _fx_free_N14C_form__cexp_t(&exn_data_1); } - if (v_114) { - _fx_free_LN14C_form__cexp_t(&v_114); + if (v_116) { + _fx_free_LN14C_form__cexp_t(&v_116); } - if (v_113) { - _fx_free_N14C_form__cexp_t(&v_113); + if (v_115) { + _fx_free_N14C_form__cexp_t(&v_115); } - if (v_112) { - _fx_free_N14C_form__ctyp_t(&v_112); + if (v_114) { + _fx_free_N14C_form__ctyp_t(&v_114); } if (exn_data_0) { _fx_free_N14C_form__cexp_t(&exn_data_0); } - _fx_free_R17C_form__cdefexn_t(&v_111); + _fx_free_R17C_form__cdefexn_t(&v_113); } else { - fx_str_t v_117 = {0}; - fx_str_t v_118 = {0}; fx_str_t v_119 = {0}; - fx_exn_t v_120 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(vn_0, &kloc_0, &v_117, 0), _fx_catch_34); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_117, &v_118, 0), _fx_catch_34); + fx_str_t v_120 = {0}; + fx_str_t v_121 = {0}; + fx_exn_t v_122 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(vn_0, &kloc_0, &v_119, 0), _fx_catch_34); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_119, &v_120, 0), _fx_catch_34); fx_str_t slit_28 = FX_MAKE_STR("cgen: information about exception \'"); fx_str_t slit_29 = FX_MAKE_STR("\' is not found"); { - const fx_str_t strs_4[] = { slit_28, v_118, slit_29 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_119), _fx_catch_34); + const fx_str_t strs_4[] = { slit_28, v_120, slit_29 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_121), _fx_catch_34); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_119, &v_120, 0), _fx_catch_34); - FX_THROW(&v_120, false, _fx_catch_34); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_121, &v_122, 0), _fx_catch_34); + FX_THROW(&v_122, false, _fx_catch_34); _fx_catch_34: ; - fx_free_exn(&v_120); + fx_free_exn(&v_122); + FX_FREE_STR(&v_121); + FX_FREE_STR(&v_120); FX_FREE_STR(&v_119); - FX_FREE_STR(&v_118); - FX_FREE_STR(&v_117); } FX_CHECK_EXN(_fx_catch_35); _fx_catch_35: ; - _fx_free_N15C_form__cinfo_t(&v_110); + _fx_free_N15C_form__cinfo_t(&v_112); goto _fx_endmatch_9; } } if (vn_val_0->tag == 2) { - _fx_N14K_form__klit_t* v_121 = &vn_val_0->u.AtomLit; - if (v_121->tag == 1) { - _fx_N14K_form__ktyp_t v_122 = 0; + _fx_N14K_form__klit_t* v_123 = &vn_val_0->u.AtomLit; + if (v_123->tag == 1) { + _fx_N14K_form__ktyp_t v_124 = 0; _fx_N14C_form__cexp_t cvu_0 = 0; _fx_N14C_form__cexp_t celem_0 = 0; FX_CALL( - _fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(vktyp_0, &kloc_0, &v_122, + _fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(vktyp_0, &kloc_0, &v_124, 0), _fx_catch_40); _fx_R9Ast__id_t case_id_0; - if (FX_REC_VARIANT_TAG(v_122) == 16) { - _fx_N15K_form__kinfo_t v_123 = {0}; - _fx_R9Ast__id_t* n_0 = &v_122->u.KTypName; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(n_0, &kloc_0, &v_123, 0), + if (FX_REC_VARIANT_TAG(v_124) == 16) { + _fx_N15K_form__kinfo_t v_125 = {0}; + _fx_R9Ast__id_t* n_0 = &v_124->u.KTypName; + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(n_0, &kloc_0, &v_125, 0), _fx_catch_38); - if (v_123.tag == 5) { - _fx_R21K_form__kdefvariant_t v_124 = {0}; - _fx_T2R9Ast__id_tN14K_form__ktyp_t v_125 = {0}; - _fx_copy_R21K_form__kdefvariant_t(&v_123.u.KVariant->data, &v_124); + if (v_125.tag == 5) { + _fx_R21K_form__kdefvariant_t v_126 = {0}; + _fx_T2R9Ast__id_tN14K_form__ktyp_t v_127 = {0}; + _fx_copy_R21K_form__kdefvariant_t(&v_125.u.KVariant->data, &v_126); int_ res_8; - FX_CALL(_fx_M10C_gen_codeFM3inti1l(v_121->u.KLitInt, &res_8, 0), _fx_catch_36); + FX_CALL(_fx_M10C_gen_codeFM3inti1l(v_123->u.KLitInt, &res_8, 0), _fx_catch_36); FX_CALL( _fx_M10C_gen_codeFM3nthT2R9Ast__id_tN14K_form__ktyp_t2LT2R9Ast__id_tN14K_form__ktyp_ti( - v_124.kvar_cases, res_8 - 1, &v_125, 0), _fx_catch_36); - _fx_R9Ast__id_t v_126 = v_125.t0; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&v_126, &case_id_0, 0), _fx_catch_36); + v_126.kvar_cases, res_8 - 1, &v_127, 0), _fx_catch_36); + _fx_R9Ast__id_t v_128 = v_127.t0; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&v_128, &case_id_0, 0), _fx_catch_36); _fx_catch_36: ; - _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&v_125); - _fx_free_R21K_form__kdefvariant_t(&v_124); + _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&v_127); + _fx_free_R21K_form__kdefvariant_t(&v_126); } else { - fx_str_t v_127 = {0}; - fx_str_t v_128 = {0}; fx_str_t v_129 = {0}; - fx_exn_t v_130 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n_0, &v_127, 0), _fx_catch_37); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_127, &v_128, 0), _fx_catch_37); + fx_str_t v_130 = {0}; + fx_str_t v_131 = {0}; + fx_exn_t v_132 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n_0, &v_129, 0), _fx_catch_37); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_129, &v_130, 0), _fx_catch_37); fx_str_t slit_30 = FX_MAKE_STR("cgen: invalid type \'"); fx_str_t slit_31 = FX_MAKE_STR("\'; variant is expected"); { - const fx_str_t strs_5[] = { slit_30, v_128, slit_31 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_5, 3, &v_129), _fx_catch_37); + const fx_str_t strs_5[] = { slit_30, v_130, slit_31 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_5, 3, &v_131), _fx_catch_37); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_129, &v_130, 0), _fx_catch_37); - FX_THROW(&v_130, false, _fx_catch_37); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_131, &v_132, 0), _fx_catch_37); + FX_THROW(&v_132, false, _fx_catch_37); _fx_catch_37: ; - fx_free_exn(&v_130); + fx_free_exn(&v_132); + FX_FREE_STR(&v_131); + FX_FREE_STR(&v_130); FX_FREE_STR(&v_129); - FX_FREE_STR(&v_128); - FX_FREE_STR(&v_127); } FX_CHECK_EXN(_fx_catch_38); _fx_catch_38: ; - _fx_free_N15K_form__kinfo_t(&v_123); + _fx_free_N15K_form__kinfo_t(&v_125); } else { - fx_str_t v_131 = {0}; - fx_str_t v_132 = {0}; - fx_exn_t v_133 = {0}; - FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(vktyp_0, &v_131, 0), _fx_catch_39); + fx_str_t v_133 = {0}; + fx_str_t v_134 = {0}; + fx_exn_t v_135 = {0}; + FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(vktyp_0, &v_133, 0), _fx_catch_39); fx_str_t slit_32 = FX_MAKE_STR("cgen: invalid type \'"); fx_str_t slit_33 = FX_MAKE_STR("\'; variant is expected"); { - const fx_str_t strs_6[] = { slit_32, v_131, slit_33 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_6, 3, &v_132), _fx_catch_39); + const fx_str_t strs_6[] = { slit_32, v_133, slit_33 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_6, 3, &v_134), _fx_catch_39); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_132, &v_133, 0), _fx_catch_39); - FX_THROW(&v_133, false, _fx_catch_39); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_134, &v_135, 0), _fx_catch_39); + FX_THROW(&v_135, false, _fx_catch_39); _fx_catch_39: ; - fx_free_exn(&v_133); - FX_FREE_STR(&v_132); - FX_FREE_STR(&v_131); + fx_free_exn(&v_135); + FX_FREE_STR(&v_134); + FX_FREE_STR(&v_133); } FX_CHECK_EXN(_fx_catch_40); if (ktp_ptr_1) { - _fx_R9Ast__id_t v_134; + _fx_R9Ast__id_t v_136; fx_str_t slit_34 = FX_MAKE_STR("u"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_34, &v_134, 0), _fx_catch_40); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_34, &v_136, 0), _fx_catch_40); FX_CALL( _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(cv_2, - &v_134, _fx_g19C_gen_code__CTypAny, &cvu_0, 0), _fx_catch_40); + &v_136, _fx_g19C_gen_code__CTypAny, &cvu_0, 0), _fx_catch_40); } else { - _fx_R9Ast__id_t v_135; + _fx_R9Ast__id_t v_137; fx_str_t slit_35 = FX_MAKE_STR("u"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_35, &v_135, 0), _fx_catch_40); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_35, &v_137, 0), _fx_catch_40); FX_CALL( _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(cv_2, - &v_135, _fx_g19C_gen_code__CTypAny, &cvu_0, 0), _fx_catch_40); + &v_137, _fx_g19C_gen_code__CTypAny, &cvu_0, 0), _fx_catch_40); } FX_CALL( _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(cvu_0, @@ -22648,19 +22222,19 @@ static int if (cvu_0) { _fx_free_N14C_form__cexp_t(&cvu_0); } - if (v_122) { - _fx_free_N14K_form__ktyp_t(&v_122); + if (v_124) { + _fx_free_N14K_form__ktyp_t(&v_124); } goto _fx_endmatch_9; } } - fx_exn_t v_136 = {0}; + fx_exn_t v_138 = {0}; fx_str_t slit_36 = FX_MAKE_STR("cgen: invalid IntrinVariantCase 2nd parameter"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_36, &v_136, 0), _fx_catch_41); - FX_THROW(&v_136, false, _fx_catch_41); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_36, &v_138, 0), _fx_catch_41); + FX_THROW(&v_138, false, _fx_catch_41); _fx_catch_41: ; - fx_free_exn(&v_136); + fx_free_exn(&v_138); _fx_endmatch_9: ; FX_CHECK_EXN(_fx_catch_42); @@ -22675,7 +22249,7 @@ static int if (cv_2) { _fx_free_N14C_form__cexp_t(&cv_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_107); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_109); goto _fx_endmatch_16; } } @@ -22684,26 +22258,26 @@ static int if (intr_0->tag == 6) { if (args_0 != 0) { if (args_0->tl == 0) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_137 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_139 = {0}; _fx_N14C_form__cexp_t cl_0 = 0; _fx_LN15C_form__cstmt_t ccode_16 = 0; - _fx_N14C_form__cexp_t v_138 = 0; + _fx_N14C_form__cexp_t v_140 = 0; FX_CALL( atom2cexp_0.fp(&args_0->hd, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_137, atom2cexp_0.fcv), _fx_catch_43); - FX_COPY_PTR(v_137.t0, &cl_0); - FX_COPY_PTR(v_137.t1, &ccode_16); - _fx_R9Ast__id_t v_139; + i2e_ref_0, km_idx_0, &v_139, atom2cexp_0.fcv), _fx_catch_43); + FX_COPY_PTR(v_139.t0, &cl_0); + FX_COPY_PTR(v_139.t1, &ccode_16); + _fx_R9Ast__id_t v_141; fx_str_t slit_37 = FX_MAKE_STR("hd"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_37, &v_139, 0), _fx_catch_43); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_37, &v_141, 0), _fx_catch_43); FX_CALL( - _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(cl_0, &v_139, - ctyp_0, &v_138, 0), _fx_catch_43); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_138, ccode_16, &v_1); + _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(cl_0, &v_141, + ctyp_0, &v_140, 0), _fx_catch_43); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_140, ccode_16, &v_1); _fx_catch_43: ; - if (v_138) { - _fx_free_N14C_form__cexp_t(&v_138); + if (v_140) { + _fx_free_N14C_form__cexp_t(&v_140); } if (ccode_16) { _fx_free_LN15C_form__cstmt_t(&ccode_16); @@ -22711,7 +22285,7 @@ static int if (cl_0) { _fx_free_N14C_form__cexp_t(&cl_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_137); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_139); goto _fx_endmatch_16; } } @@ -22719,26 +22293,26 @@ static int if (intr_0->tag == 7) { if (args_0 != 0) { if (args_0->tl == 0) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_140 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_142 = {0}; _fx_N14C_form__cexp_t cl_1 = 0; _fx_LN15C_form__cstmt_t ccode_17 = 0; - _fx_N14C_form__cexp_t v_141 = 0; + _fx_N14C_form__cexp_t v_143 = 0; FX_CALL( atom2cexp_0.fp(&args_0->hd, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_140, atom2cexp_0.fcv), _fx_catch_44); - FX_COPY_PTR(v_140.t0, &cl_1); - FX_COPY_PTR(v_140.t1, &ccode_17); - _fx_R9Ast__id_t v_142; + i2e_ref_0, km_idx_0, &v_142, atom2cexp_0.fcv), _fx_catch_44); + FX_COPY_PTR(v_142.t0, &cl_1); + FX_COPY_PTR(v_142.t1, &ccode_17); + _fx_R9Ast__id_t v_144; fx_str_t slit_38 = FX_MAKE_STR("tl"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_38, &v_142, 0), _fx_catch_44); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_38, &v_144, 0), _fx_catch_44); FX_CALL( - _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(cl_1, &v_142, - ctyp_0, &v_141, 0), _fx_catch_44); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_141, ccode_17, &v_1); + _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(cl_1, &v_144, + ctyp_0, &v_143, 0), _fx_catch_44); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_143, ccode_17, &v_1); _fx_catch_44: ; - if (v_141) { - _fx_free_N14C_form__cexp_t(&v_141); + if (v_143) { + _fx_free_N14C_form__cexp_t(&v_143); } if (ccode_17) { _fx_free_LN15C_form__cstmt_t(&ccode_17); @@ -22746,7 +22320,7 @@ static int if (cl_1) { _fx_free_N14C_form__cexp_t(&cl_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_140); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_142); goto _fx_endmatch_16; } } @@ -22754,12 +22328,12 @@ static int if (intr_0->tag == 4) { if (args_0 != 0) { if (args_0->tl == 0) { - _fx_Nt6option1rR23C_form__cdefinterface_t v_143 = {0}; + _fx_Nt6option1rR23C_form__cdefinterface_t v_145 = {0}; _fx_rR23C_form__cdefinterface_t dst_iface_0 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_144 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_146 = {0}; _fx_N14C_form__cexp_t src_exp_0 = 0; _fx_LN15C_form__cstmt_t ccode_18 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_145 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_147 = {0}; _fx_N14C_form__cexp_t dst_exp_1 = 0; _fx_LN15C_form__cstmt_t ccode_19 = 0; _fx_N14C_form__ctyp_t src_typ_0 = 0; @@ -22767,99 +22341,101 @@ static int _fx_LN15C_form__cstmt_t ccode_20 = 0; FX_CALL( _fx_M6C_formFM18get_cinterface_optNt6option1rRM15cdefinterface_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, - &kloc_0, &v_143, 0), _fx_catch_52); - if (v_143.tag == 2) { - FX_COPY_PTR(v_143.u.Some, &dst_iface_0); + &kloc_0, &v_145, 0), _fx_catch_52); + if (v_145.tag == 2) { + FX_COPY_PTR(v_145.u.Some, &dst_iface_0); } else { - fx_exn_t v_146 = {0}; + fx_exn_t v_148 = {0}; fx_str_t slit_39 = FX_MAKE_STR( "the destination type \'{ctyp2str(ctyp, kloc).0}\' of \'IntrinQueryIface\' intrinsic is not an inteface"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_39, &v_146, 0), _fx_catch_45); - FX_THROW(&v_146, false, _fx_catch_45); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_39, &v_148, 0), _fx_catch_45); + FX_THROW(&v_148, false, _fx_catch_45); _fx_catch_45: ; - fx_free_exn(&v_146); + fx_free_exn(&v_148); } FX_CHECK_EXN(_fx_catch_52); FX_CALL( atom2cexp_0.fp(&args_0->hd, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_144, atom2cexp_0.fcv), _fx_catch_52); - FX_COPY_PTR(v_144.t0, &src_exp_0); - FX_COPY_PTR(v_144.t1, &ccode_18); + i2e_ref_0, km_idx_0, &v_146, atom2cexp_0.fcv), _fx_catch_52); + FX_COPY_PTR(v_146.t0, &src_exp_0); + FX_COPY_PTR(v_146.t1, &ccode_18); fx_str_t slit_40 = FX_MAKE_STR("iface"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_40, ctyp_0, ccode_18, &kloc_0, block_stack_ref_0, km_idx_0, &v_145, 0), _fx_catch_52); - FX_COPY_PTR(v_145.t0, &dst_exp_1); - FX_COPY_PTR(v_145.t1, &ccode_19); + dstexp_r_0, &slit_40, ctyp_0, ccode_18, &kloc_0, block_stack_ref_0, km_idx_0, &v_147, 0), _fx_catch_52); + FX_COPY_PTR(v_147.t0, &dst_exp_1); + FX_COPY_PTR(v_147.t1, &ccode_19); FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(src_exp_0, &src_typ_0, 0), _fx_catch_52); if (FX_REC_VARIANT_TAG(src_typ_0) == 21) { - _fx_N15C_form__cinfo_t v_147 = {0}; + _fx_N15C_form__cinfo_t v_149 = {0}; FX_CALL( - _fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(&src_typ_0->u.CTypName, &kloc_0, &v_147, + _fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(&src_typ_0->u.CTypName, &kloc_0, &v_149, 0), _fx_catch_50); - int tag_7 = v_147.tag; + int tag_7 = v_149.tag; if (tag_7 == 6) { - _fx_N14C_form__cexp_t v_148 = 0; - _fx_N14C_form__cexp_t v_149 = 0; _fx_N14C_form__cexp_t v_150 = 0; - _fx_LN14C_form__cexp_t v_151 = 0; - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(src_exp_0, &v_148, 0), + _fx_N14C_form__cexp_t v_151 = 0; + _fx_N14C_form__cexp_t v_152 = 0; + _fx_LN14C_form__cexp_t v_153 = 0; + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(src_exp_0, &v_150, 0), _fx_catch_46); - _fx_R9Ast__id_t v_152 = dst_iface_0->data.ci_id; - FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_152, &kloc_0, &v_149, 0), + _fx_R23C_form__cdefinterface_t* v_154 = &dst_iface_0->data; + _fx_R9Ast__id_t v_155 = v_154->ci_id; + FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&v_155, &kloc_0, &v_151, 0), _fx_catch_46); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_1, &v_150, 0), + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_1, &v_152, 0), _fx_catch_46); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_150, 0, true, &v_151), _fx_catch_46); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_149, v_151, false, &v_151), _fx_catch_46); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_148, v_151, false, &v_151), _fx_catch_46); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_152, 0, true, &v_153), _fx_catch_46); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_151, v_153, false, &v_153), _fx_catch_46); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_150, v_153, false, &v_153), _fx_catch_46); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g26C_form__std_fx_query_iface, v_151, _fx_g20C_gen_code__CTypCInt, &kloc_0, &get_iface_exp_0, + &_fx_g26C_form__std_fx_query_iface, v_153, _fx_g20C_gen_code__CTypCInt, &kloc_0, &get_iface_exp_0, 0), _fx_catch_46); _fx_catch_46: ; + if (v_153) { + _fx_free_LN14C_form__cexp_t(&v_153); + } + if (v_152) { + _fx_free_N14C_form__cexp_t(&v_152); + } if (v_151) { - _fx_free_LN14C_form__cexp_t(&v_151); + _fx_free_N14C_form__cexp_t(&v_151); } if (v_150) { _fx_free_N14C_form__cexp_t(&v_150); } - if (v_149) { - _fx_free_N14C_form__cexp_t(&v_149); - } - if (v_148) { - _fx_free_N14C_form__cexp_t(&v_148); - } } else if (tag_7 == 4) { - _fx_R17C_form__cdeftyp_t v_153 = {0}; + _fx_R17C_form__cdeftyp_t v_156 = {0}; _fx_LR9Ast__id_t ct_ifaces_0 = 0; - fx_str_t v_154 = {0}; - fx_str_t v_155 = {0}; - _fx_T2SR9Ast__id_t v_156 = {0}; fx_str_t v_157 = {0}; fx_str_t v_158 = {0}; - fx_str_t v_159 = {0}; - fx_exn_t v_160 = {0}; - _fx_N14C_form__cexp_t v_161 = 0; - _fx_N14C_form__cexp_t v_162 = 0; - _fx_LN14C_form__cexp_t v_163 = 0; - _fx_copy_R17C_form__cdeftyp_t(&v_147.u.CTyp->data, &v_153); + _fx_T2SR9Ast__id_t v_159 = {0}; + fx_str_t v_160 = {0}; + fx_str_t v_161 = {0}; + fx_str_t v_162 = {0}; + fx_exn_t v_163 = {0}; + _fx_N14C_form__cexp_t v_164 = 0; + _fx_N14C_form__cexp_t v_165 = 0; + _fx_LN14C_form__cexp_t v_166 = 0; + _fx_copy_R17C_form__cdeftyp_t(&v_149.u.CTyp->data, &v_156); int_ idx_0 = -1; int_ i_1 = 0; - FX_COPY_PTR(v_153.ct_ifaces, &ct_ifaces_0); + FX_COPY_PTR(v_156.ct_ifaces, &ct_ifaces_0); _fx_LR9Ast__id_t lst_0 = ct_ifaces_0; for (; lst_0; lst_0 = lst_0->tl, i_1 += 1) { _fx_R9Ast__id_t* iface_0 = &lst_0->hd; - _fx_R9Ast__id_t v_164 = dst_iface_0->data.ci_name; - bool v_165; - FX_CALL(_fx_M3AstFM14same_or_parentB3RM4id_tRM4id_tRM5loc_t(iface_0, &v_164, &kloc_0, &v_165, 0), + _fx_R23C_form__cdefinterface_t* v_167 = &dst_iface_0->data; + _fx_R9Ast__id_t v_168 = v_167->ci_name; + bool v_169; + FX_CALL(_fx_M3AstFM14same_or_parentB3RM4id_tRM4id_tRM5loc_t(iface_0, &v_168, &kloc_0, &v_169, 0), _fx_catch_47); - if (v_165) { + if (v_169) { idx_0 = i_1; FX_BREAK(_fx_catch_47); } @@ -22868,112 +22444,113 @@ static int FX_CHECK_EXN(_fx_catch_48); } if (idx_0 < 0) { - fx_copy_str(&dst_iface_0->data.ci_cname, &v_154); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_154, &v_155, 0), _fx_catch_48); + _fx_R23C_form__cdefinterface_t* v_170 = &dst_iface_0->data; + fx_copy_str(&v_170->ci_cname, &v_157); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_157, &v_158, 0), _fx_catch_48); FX_CALL( - _fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(src_typ_0, &kloc_0, &v_156, 0), + _fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(src_typ_0, &kloc_0, &v_159, 0), _fx_catch_48); - fx_copy_str(&v_156.t0, &v_157); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_157, &v_158, 0), _fx_catch_48); + fx_copy_str(&v_159.t0, &v_160); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_160, &v_161, 0), _fx_catch_48); fx_str_t slit_41 = FX_MAKE_STR("the interface \'"); fx_str_t slit_42 = FX_MAKE_STR("\' is not implemented by \'"); fx_str_t slit_43 = FX_MAKE_STR("\'"); { - const fx_str_t strs_7[] = { slit_41, v_155, slit_42, v_158, slit_43 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_7, 5, &v_159), _fx_catch_48); + const fx_str_t strs_7[] = { slit_41, v_158, slit_42, v_161, slit_43 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_7, 5, &v_162), _fx_catch_48); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_159, &v_160, 0), _fx_catch_48); - FX_THROW(&v_160, false, _fx_catch_48); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_162, &v_163, 0), _fx_catch_48); + FX_THROW(&v_163, false, _fx_catch_48); } - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(idx_0, &kloc_0, &v_161, 0), + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(idx_0, &kloc_0, &v_164, 0), _fx_catch_48); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_1, &v_162, 0), + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_1, &v_165, 0), _fx_catch_48); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_162, 0, true, &v_163), _fx_catch_48); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_161, v_163, false, &v_163), _fx_catch_48); - FX_CALL(_fx_cons_LN14C_form__cexp_t(src_exp_0, v_163, false, &v_163), _fx_catch_48); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_165, 0, true, &v_166), _fx_catch_48); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_164, v_166, false, &v_166), _fx_catch_48); + FX_CALL(_fx_cons_LN14C_form__cexp_t(src_exp_0, v_166, false, &v_166), _fx_catch_48); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g25C_form__std_fx_make_iface, v_163, _fx_g20C_gen_code__CTypCInt, &kloc_0, &get_iface_exp_0, 0), + &_fx_g25C_form__std_fx_make_iface, v_166, _fx_g20C_gen_code__CTypCInt, &kloc_0, &get_iface_exp_0, 0), _fx_catch_48); _fx_catch_48: ; - if (v_163) { - _fx_free_LN14C_form__cexp_t(&v_163); + if (v_166) { + _fx_free_LN14C_form__cexp_t(&v_166); } - if (v_162) { - _fx_free_N14C_form__cexp_t(&v_162); + if (v_165) { + _fx_free_N14C_form__cexp_t(&v_165); } - if (v_161) { - _fx_free_N14C_form__cexp_t(&v_161); + if (v_164) { + _fx_free_N14C_form__cexp_t(&v_164); } - fx_free_exn(&v_160); - FX_FREE_STR(&v_159); + fx_free_exn(&v_163); + FX_FREE_STR(&v_162); + FX_FREE_STR(&v_161); + FX_FREE_STR(&v_160); + _fx_free_T2SR9Ast__id_t(&v_159); FX_FREE_STR(&v_158); FX_FREE_STR(&v_157); - _fx_free_T2SR9Ast__id_t(&v_156); - FX_FREE_STR(&v_155); - FX_FREE_STR(&v_154); FX_FREE_LIST_SIMPLE(&ct_ifaces_0); - _fx_free_R17C_form__cdeftyp_t(&v_153); + _fx_free_R17C_form__cdeftyp_t(&v_156); } else { - _fx_T2SR9Ast__id_t v_166 = {0}; - fx_str_t v_167 = {0}; - fx_str_t v_168 = {0}; - fx_str_t v_169 = {0}; - fx_exn_t v_170 = {0}; + _fx_T2SR9Ast__id_t v_171 = {0}; + fx_str_t v_172 = {0}; + fx_str_t v_173 = {0}; + fx_str_t v_174 = {0}; + fx_exn_t v_175 = {0}; FX_CALL( - _fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(src_typ_0, &kloc_0, &v_166, 0), + _fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(src_typ_0, &kloc_0, &v_171, 0), _fx_catch_49); - fx_copy_str(&v_166.t0, &v_167); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_167, &v_168, 0), _fx_catch_49); + fx_copy_str(&v_171.t0, &v_172); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_172, &v_173, 0), _fx_catch_49); fx_str_t slit_44 = FX_MAKE_STR("invalid type \'"); fx_str_t slit_45 = FX_MAKE_STR("\' of the first argument of \'IntrinQueryInterface\'"); { - const fx_str_t strs_8[] = { slit_44, v_168, slit_45 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_8, 3, &v_169), _fx_catch_49); + const fx_str_t strs_8[] = { slit_44, v_173, slit_45 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_8, 3, &v_174), _fx_catch_49); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_169, &v_170, 0), _fx_catch_49); - FX_THROW(&v_170, false, _fx_catch_49); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_174, &v_175, 0), _fx_catch_49); + FX_THROW(&v_175, false, _fx_catch_49); _fx_catch_49: ; - fx_free_exn(&v_170); - FX_FREE_STR(&v_169); - FX_FREE_STR(&v_168); - FX_FREE_STR(&v_167); - _fx_free_T2SR9Ast__id_t(&v_166); + fx_free_exn(&v_175); + FX_FREE_STR(&v_174); + FX_FREE_STR(&v_173); + FX_FREE_STR(&v_172); + _fx_free_T2SR9Ast__id_t(&v_171); } FX_CHECK_EXN(_fx_catch_50); _fx_catch_50: ; - _fx_free_N15C_form__cinfo_t(&v_147); + _fx_free_N15C_form__cinfo_t(&v_149); } else { - _fx_T2SR9Ast__id_t v_171 = {0}; - fx_str_t v_172 = {0}; - fx_str_t v_173 = {0}; - fx_str_t v_174 = {0}; - fx_exn_t v_175 = {0}; - FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(src_typ_0, &kloc_0, &v_171, 0), + _fx_T2SR9Ast__id_t v_176 = {0}; + fx_str_t v_177 = {0}; + fx_str_t v_178 = {0}; + fx_str_t v_179 = {0}; + fx_exn_t v_180 = {0}; + FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(src_typ_0, &kloc_0, &v_176, 0), _fx_catch_51); - fx_copy_str(&v_171.t0, &v_172); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_172, &v_173, 0), _fx_catch_51); + fx_copy_str(&v_176.t0, &v_177); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_177, &v_178, 0), _fx_catch_51); fx_str_t slit_46 = FX_MAKE_STR("invalid type \'"); fx_str_t slit_47 = FX_MAKE_STR("\' of the first argument of \'IntrinQueryInterface\'"); { - const fx_str_t strs_9[] = { slit_46, v_173, slit_47 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_9, 3, &v_174), _fx_catch_51); + const fx_str_t strs_9[] = { slit_46, v_178, slit_47 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_9, 3, &v_179), _fx_catch_51); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_174, &v_175, 0), _fx_catch_51); - FX_THROW(&v_175, false, _fx_catch_51); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_179, &v_180, 0), _fx_catch_51); + FX_THROW(&v_180, false, _fx_catch_51); _fx_catch_51: ; - fx_free_exn(&v_175); - FX_FREE_STR(&v_174); - FX_FREE_STR(&v_173); - FX_FREE_STR(&v_172); - _fx_free_T2SR9Ast__id_t(&v_171); + fx_free_exn(&v_180); + FX_FREE_STR(&v_179); + FX_FREE_STR(&v_178); + FX_FREE_STR(&v_177); + _fx_free_T2SR9Ast__id_t(&v_176); } FX_CHECK_EXN(_fx_catch_52); FX_CALL( @@ -22997,18 +22574,18 @@ static int if (dst_exp_1) { _fx_free_N14C_form__cexp_t(&dst_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_145); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_147); if (ccode_18) { _fx_free_LN15C_form__cstmt_t(&ccode_18); } if (src_exp_0) { _fx_free_N14C_form__cexp_t(&src_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_144); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_146); if (dst_iface_0) { _fx_free_rR23C_form__cdefinterface_t(&dst_iface_0); } - _fx_free_Nt6option1rR23C_form__cdefinterface_t(&v_143); + _fx_free_Nt6option1rR23C_form__cdefinterface_t(&v_145); goto _fx_endmatch_16; } } @@ -23016,78 +22593,79 @@ static int if (intr_0->tag == 5) { if (args_0 != 0) { if (args_0->tl == 0) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_176 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_181 = {0}; _fx_N14C_form__cexp_t src_exp_1 = 0; _fx_LN15C_form__cstmt_t ccode_21 = 0; _fx_N14C_form__ctyp_t src_typ_1 = 0; - _fx_Nt6option1rR23C_form__cdefinterface_t v_177 = {0}; + _fx_Nt6option1rR23C_form__cdefinterface_t v_182 = {0}; _fx_rR23C_form__cdefinterface_t src_iface_0 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_178 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_183 = {0}; _fx_N14C_form__cexp_t dst_exp_2 = 0; _fx_LN15C_form__cstmt_t ccode_22 = 0; _fx_N14C_form__cexp_t get_obj_exp_0 = 0; _fx_LN15C_form__cstmt_t ccode_23 = 0; FX_CALL( atom2cexp_0.fp(&args_0->hd, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_176, atom2cexp_0.fcv), _fx_catch_59); - FX_COPY_PTR(v_176.t0, &src_exp_1); - FX_COPY_PTR(v_176.t1, &ccode_21); + i2e_ref_0, km_idx_0, &v_181, atom2cexp_0.fcv), _fx_catch_59); + FX_COPY_PTR(v_181.t0, &src_exp_1); + FX_COPY_PTR(v_181.t1, &ccode_21); FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(src_exp_1, &src_typ_1, 0), _fx_catch_59); FX_CALL( _fx_M6C_formFM18get_cinterface_optNt6option1rRM15cdefinterface_t2N14C_form__ctyp_tR10Ast__loc_t(src_typ_1, - &kloc_0, &v_177, 0), _fx_catch_59); - if (v_177.tag == 2) { - FX_COPY_PTR(v_177.u.Some, &src_iface_0); + &kloc_0, &v_182, 0), _fx_catch_59); + if (v_182.tag == 2) { + FX_COPY_PTR(v_182.u.Some, &src_iface_0); } else { - fx_exn_t v_179 = {0}; + fx_exn_t v_184 = {0}; fx_str_t slit_48 = FX_MAKE_STR( "the argument of \'IntrinGetObject\' of type \'{ctyp2str(src_typ, kloc).0}\' is not an inteface"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_48, &v_179, 0), _fx_catch_53); - FX_THROW(&v_179, false, _fx_catch_53); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_48, &v_184, 0), _fx_catch_53); + FX_THROW(&v_184, false, _fx_catch_53); _fx_catch_53: ; - fx_free_exn(&v_179); + fx_free_exn(&v_184); } FX_CHECK_EXN(_fx_catch_59); fx_str_t slit_49 = FX_MAKE_STR("iface"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_49, ctyp_0, ccode_21, &kloc_0, block_stack_ref_0, km_idx_0, &v_178, 0), _fx_catch_59); - FX_COPY_PTR(v_178.t0, &dst_exp_2); - FX_COPY_PTR(v_178.t1, &ccode_22); + dstexp_r_0, &slit_49, ctyp_0, ccode_21, &kloc_0, block_stack_ref_0, km_idx_0, &v_183, 0), _fx_catch_59); + FX_COPY_PTR(v_183.t0, &dst_exp_2); + FX_COPY_PTR(v_183.t1, &ccode_22); if (FX_REC_VARIANT_TAG(ctyp_0) == 21) { - _fx_N15C_form__cinfo_t v_180 = {0}; + _fx_N15C_form__cinfo_t v_185 = {0}; FX_CALL( - _fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(&ctyp_0->u.CTypName, &kloc_0, &v_180, 0), + _fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(&ctyp_0->u.CTypName, &kloc_0, &v_185, 0), _fx_catch_57); - if (v_180.tag == 4) { - _fx_R17C_form__cdeftyp_t v_181 = {0}; + if (v_185.tag == 4) { + _fx_R17C_form__cdeftyp_t v_186 = {0}; _fx_LR9Ast__id_t ct_ifaces_1 = 0; - fx_str_t v_182 = {0}; - fx_str_t v_183 = {0}; - _fx_T2SR9Ast__id_t v_184 = {0}; - fx_str_t v_185 = {0}; - fx_str_t v_186 = {0}; fx_str_t v_187 = {0}; - fx_exn_t v_188 = {0}; - _fx_N14C_form__cexp_t v_189 = 0; - _fx_N14C_form__cexp_t v_190 = 0; - _fx_N14C_form__cexp_t v_191 = 0; - _fx_LN14C_form__cexp_t v_192 = 0; - _fx_copy_R17C_form__cdeftyp_t(&v_180.u.CTyp->data, &v_181); + fx_str_t v_188 = {0}; + _fx_T2SR9Ast__id_t v_189 = {0}; + fx_str_t v_190 = {0}; + fx_str_t v_191 = {0}; + fx_str_t v_192 = {0}; + fx_exn_t v_193 = {0}; + _fx_N14C_form__cexp_t v_194 = 0; + _fx_N14C_form__cexp_t v_195 = 0; + _fx_N14C_form__cexp_t v_196 = 0; + _fx_LN14C_form__cexp_t v_197 = 0; + _fx_copy_R17C_form__cdeftyp_t(&v_185.u.CTyp->data, &v_186); int_ idx_1 = -1; int_ i_2 = 0; - FX_COPY_PTR(v_181.ct_ifaces, &ct_ifaces_1); + FX_COPY_PTR(v_186.ct_ifaces, &ct_ifaces_1); _fx_LR9Ast__id_t lst_1 = ct_ifaces_1; for (; lst_1; lst_1 = lst_1->tl, i_2 += 1) { _fx_R9Ast__id_t* iface_1 = &lst_1->hd; - _fx_R9Ast__id_t v_193 = src_iface_0->data.ci_name; - bool v_194; - FX_CALL(_fx_M3AstFM14same_or_parentB3RM4id_tRM4id_tRM5loc_t(iface_1, &v_193, &kloc_0, &v_194, 0), + _fx_R23C_form__cdefinterface_t* v_198 = &src_iface_0->data; + _fx_R9Ast__id_t v_199 = v_198->ci_name; + bool v_200; + FX_CALL(_fx_M3AstFM14same_or_parentB3RM4id_tRM4id_tRM5loc_t(iface_1, &v_199, &kloc_0, &v_200, 0), _fx_catch_54); - if (v_194) { + if (v_200) { idx_1 = i_2; FX_BREAK(_fx_catch_54); } @@ -23096,116 +22674,117 @@ static int FX_CHECK_EXN(_fx_catch_55); } if (idx_1 < 0) { - fx_copy_str(&src_iface_0->data.ci_cname, &v_182); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_182, &v_183, 0), _fx_catch_55); + _fx_R23C_form__cdefinterface_t* v_201 = &src_iface_0->data; + fx_copy_str(&v_201->ci_cname, &v_187); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_187, &v_188, 0), _fx_catch_55); FX_CALL( - _fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_184, 0), + _fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_189, 0), _fx_catch_55); - fx_copy_str(&v_184.t0, &v_185); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_185, &v_186, 0), _fx_catch_55); + fx_copy_str(&v_189.t0, &v_190); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_190, &v_191, 0), _fx_catch_55); fx_str_t slit_50 = FX_MAKE_STR("the interface \'"); fx_str_t slit_51 = FX_MAKE_STR("\' is not implemented by \'"); fx_str_t slit_52 = FX_MAKE_STR("\'"); { - const fx_str_t strs_10[] = { slit_50, v_183, slit_51, v_186, slit_52 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_10, 5, &v_187), _fx_catch_55); + const fx_str_t strs_10[] = { slit_50, v_188, slit_51, v_191, slit_52 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_10, 5, &v_192), _fx_catch_55); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_187, &v_188, 0), _fx_catch_55); - FX_THROW(&v_188, false, _fx_catch_55); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_192, &v_193, 0), _fx_catch_55); + FX_THROW(&v_193, false, _fx_catch_55); } - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(src_exp_1, &v_189, 0), + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(src_exp_1, &v_194, 0), _fx_catch_55); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(idx_1, &kloc_0, &v_190, 0), + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(idx_1, &kloc_0, &v_195, 0), _fx_catch_55); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_2, &v_191, 0), + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_2, &v_196, 0), _fx_catch_55); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_191, 0, true, &v_192), _fx_catch_55); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_190, v_192, false, &v_192), _fx_catch_55); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_189, v_192, false, &v_192), _fx_catch_55); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_196, 0, true, &v_197), _fx_catch_55); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_195, v_197, false, &v_197), _fx_catch_55); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_194, v_197, false, &v_197), _fx_catch_55); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g25C_form__std_fx_get_object, v_192, _fx_g20C_gen_code__CTypCInt, &kloc_0, &get_obj_exp_0, 0), + &_fx_g25C_form__std_fx_get_object, v_197, _fx_g20C_gen_code__CTypCInt, &kloc_0, &get_obj_exp_0, 0), _fx_catch_55); _fx_catch_55: ; - if (v_192) { - _fx_free_LN14C_form__cexp_t(&v_192); + if (v_197) { + _fx_free_LN14C_form__cexp_t(&v_197); } - if (v_191) { - _fx_free_N14C_form__cexp_t(&v_191); + if (v_196) { + _fx_free_N14C_form__cexp_t(&v_196); } - if (v_190) { - _fx_free_N14C_form__cexp_t(&v_190); + if (v_195) { + _fx_free_N14C_form__cexp_t(&v_195); } - if (v_189) { - _fx_free_N14C_form__cexp_t(&v_189); + if (v_194) { + _fx_free_N14C_form__cexp_t(&v_194); } - fx_free_exn(&v_188); + fx_free_exn(&v_193); + FX_FREE_STR(&v_192); + FX_FREE_STR(&v_191); + FX_FREE_STR(&v_190); + _fx_free_T2SR9Ast__id_t(&v_189); + FX_FREE_STR(&v_188); FX_FREE_STR(&v_187); - FX_FREE_STR(&v_186); - FX_FREE_STR(&v_185); - _fx_free_T2SR9Ast__id_t(&v_184); - FX_FREE_STR(&v_183); - FX_FREE_STR(&v_182); FX_FREE_LIST_SIMPLE(&ct_ifaces_1); - _fx_free_R17C_form__cdeftyp_t(&v_181); + _fx_free_R17C_form__cdeftyp_t(&v_186); } else { - _fx_T2SR9Ast__id_t v_195 = {0}; - fx_str_t v_196 = {0}; - fx_str_t v_197 = {0}; - fx_str_t v_198 = {0}; - fx_exn_t v_199 = {0}; - FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_195, 0), + _fx_T2SR9Ast__id_t v_202 = {0}; + fx_str_t v_203 = {0}; + fx_str_t v_204 = {0}; + fx_str_t v_205 = {0}; + fx_exn_t v_206 = {0}; + FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_202, 0), _fx_catch_56); - fx_copy_str(&v_195.t0, &v_196); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_196, &v_197, 0), _fx_catch_56); + fx_copy_str(&v_202.t0, &v_203); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_203, &v_204, 0), _fx_catch_56); fx_str_t slit_53 = FX_MAKE_STR("invalid destination type \'"); fx_str_t slit_54 = FX_MAKE_STR("\'. It must be an object that implements some interfaces"); { - const fx_str_t strs_11[] = { slit_53, v_197, slit_54 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_11, 3, &v_198), _fx_catch_56); + const fx_str_t strs_11[] = { slit_53, v_204, slit_54 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_11, 3, &v_205), _fx_catch_56); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_198, &v_199, 0), _fx_catch_56); - FX_THROW(&v_199, false, _fx_catch_56); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_205, &v_206, 0), _fx_catch_56); + FX_THROW(&v_206, false, _fx_catch_56); _fx_catch_56: ; - fx_free_exn(&v_199); - FX_FREE_STR(&v_198); - FX_FREE_STR(&v_197); - FX_FREE_STR(&v_196); - _fx_free_T2SR9Ast__id_t(&v_195); + fx_free_exn(&v_206); + FX_FREE_STR(&v_205); + FX_FREE_STR(&v_204); + FX_FREE_STR(&v_203); + _fx_free_T2SR9Ast__id_t(&v_202); } FX_CHECK_EXN(_fx_catch_57); _fx_catch_57: ; - _fx_free_N15C_form__cinfo_t(&v_180); + _fx_free_N15C_form__cinfo_t(&v_185); } else { - _fx_T2SR9Ast__id_t v_200 = {0}; - fx_str_t v_201 = {0}; - fx_str_t v_202 = {0}; - fx_str_t v_203 = {0}; - fx_exn_t v_204 = {0}; - FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_200, 0), + _fx_T2SR9Ast__id_t v_207 = {0}; + fx_str_t v_208 = {0}; + fx_str_t v_209 = {0}; + fx_str_t v_210 = {0}; + fx_exn_t v_211 = {0}; + FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_207, 0), _fx_catch_58); - fx_copy_str(&v_200.t0, &v_201); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_201, &v_202, 0), _fx_catch_58); + fx_copy_str(&v_207.t0, &v_208); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_208, &v_209, 0), _fx_catch_58); fx_str_t slit_55 = FX_MAKE_STR("invalid destination type \'"); fx_str_t slit_56 = FX_MAKE_STR("\'. It must be an object that implements some interfaces"); { - const fx_str_t strs_12[] = { slit_55, v_202, slit_56 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_12, 3, &v_203), _fx_catch_58); + const fx_str_t strs_12[] = { slit_55, v_209, slit_56 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_12, 3, &v_210), _fx_catch_58); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_203, &v_204, 0), _fx_catch_58); - FX_THROW(&v_204, false, _fx_catch_58); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_210, &v_211, 0), _fx_catch_58); + FX_THROW(&v_211, false, _fx_catch_58); _fx_catch_58: ; - fx_free_exn(&v_204); - FX_FREE_STR(&v_203); - FX_FREE_STR(&v_202); - FX_FREE_STR(&v_201); - _fx_free_T2SR9Ast__id_t(&v_200); + fx_free_exn(&v_211); + FX_FREE_STR(&v_210); + FX_FREE_STR(&v_209); + FX_FREE_STR(&v_208); + _fx_free_T2SR9Ast__id_t(&v_207); } FX_CHECK_EXN(_fx_catch_59); FX_CALL( @@ -23226,11 +22805,11 @@ static int if (dst_exp_2) { _fx_free_N14C_form__cexp_t(&dst_exp_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_178); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_183); if (src_iface_0) { _fx_free_rR23C_form__cdefinterface_t(&src_iface_0); } - _fx_free_Nt6option1rR23C_form__cdefinterface_t(&v_177); + _fx_free_Nt6option1rR23C_form__cdefinterface_t(&v_182); if (src_typ_1) { _fx_free_N14C_form__ctyp_t(&src_typ_1); } @@ -23240,60 +22819,60 @@ static int if (src_exp_1) { _fx_free_N14C_form__cexp_t(&src_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_176); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_181); goto _fx_endmatch_16; } } } if (args_0 == 0) { if (intr_0->tag == 1) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_205 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_212 = {0}; _fx_N14C_form__cexp_t dst_exp_3 = 0; _fx_LN15C_form__cstmt_t ccode_24 = 0; _fx_N14C_form__cexp_t fx_status_exp_0 = 0; - _fx_N14C_form__cexp_t v_206 = 0; - _fx_LN14C_form__cexp_t v_207 = 0; + _fx_N14C_form__cexp_t v_213 = 0; + _fx_LN14C_form__cexp_t v_214 = 0; _fx_N14C_form__cexp_t e_7 = 0; - _fx_N15C_form__cstmt_t v_208 = 0; - _fx_LN15C_form__cstmt_t v_209 = 0; + _fx_N15C_form__cstmt_t v_215 = 0; + _fx_LN15C_form__cstmt_t v_216 = 0; fx_str_t slit_57 = FX_MAKE_STR("curr_exn"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_57, _fx_g19C_gen_code__CTypExn, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_205, 0), + dstexp_r_0, &slit_57, _fx_g19C_gen_code__CTypExn, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_212, 0), _fx_catch_60); - FX_COPY_PTR(v_205.t0, &dst_exp_3); - FX_COPY_PTR(v_205.t1, &ccode_24); + FX_COPY_PTR(v_212.t0, &dst_exp_3); + FX_COPY_PTR(v_212.t1, &ccode_24); FX_CALL( _fx_M10C_gen_codeFM14make_fx_statusN14C_form__cexp_t2R10Ast__loc_tR9Ast__id_t(&kloc_0, fx_status__0, &fx_status_exp_0, 0), _fx_catch_60); - _fx_R9Ast__id_t v_210; + _fx_R9Ast__id_t v_217; fx_str_t slit_58 = FX_MAKE_STR("fx_exn_get_and_reset"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_58, &v_210, 0), _fx_catch_60); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_3, &v_206, 0), _fx_catch_60); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_206, 0, true, &v_207), _fx_catch_60); - FX_CALL(_fx_cons_LN14C_form__cexp_t(fx_status_exp_0, v_207, false, &v_207), _fx_catch_60); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_58, &v_217, 0), _fx_catch_60); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_3, &v_213, 0), _fx_catch_60); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_213, 0, true, &v_214), _fx_catch_60); + FX_CALL(_fx_cons_LN14C_form__cexp_t(fx_status_exp_0, v_214, false, &v_214), _fx_catch_60); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_210, - v_207, _fx_g20C_gen_code__CTypVoid, &kloc_0, &e_7, 0), _fx_catch_60); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(e_7, &v_208), _fx_catch_60); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_208, ccode_24, true, &v_209), _fx_catch_60); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_3, v_209, &v_1); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_217, + v_214, _fx_g20C_gen_code__CTypVoid, &kloc_0, &e_7, 0), _fx_catch_60); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(e_7, &v_215), _fx_catch_60); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_215, ccode_24, true, &v_216), _fx_catch_60); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_3, v_216, &v_1); _fx_catch_60: ; - if (v_209) { - _fx_free_LN15C_form__cstmt_t(&v_209); + if (v_216) { + _fx_free_LN15C_form__cstmt_t(&v_216); } - if (v_208) { - _fx_free_N15C_form__cstmt_t(&v_208); + if (v_215) { + _fx_free_N15C_form__cstmt_t(&v_215); } if (e_7) { _fx_free_N14C_form__cexp_t(&e_7); } - if (v_207) { - _fx_free_LN14C_form__cexp_t(&v_207); + if (v_214) { + _fx_free_LN14C_form__cexp_t(&v_214); } - if (v_206) { - _fx_free_N14C_form__cexp_t(&v_206); + if (v_213) { + _fx_free_N14C_form__cexp_t(&v_213); } if (fx_status_exp_0) { _fx_free_N14C_form__cexp_t(&fx_status_exp_0); @@ -23304,108 +22883,100 @@ static int if (dst_exp_3) { _fx_free_N14C_form__cexp_t(&dst_exp_3); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_205); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_212); goto _fx_endmatch_16; } } if (intr_0->tag == 8) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___0 = {0}; - _fx_LN14K_form__atom_t args_1 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_211 = {0}; _fx_LN14C_form__cexp_t strs_13 = 0; _fx_LN15C_form__cstmt_t ccode_25 = 0; - _fx_LN19C_form__ctyp_attr_t v_212 = 0; + _fx_LN14K_form__atom_t args_1 = 0; + _fx_LN19C_form__ctyp_attr_t v_218 = 0; _fx_N14C_form__ctyp_t strs_ctyp_0 = 0; - _fx_LN14C_form__cexp_t v_213 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_214 = {0}; + _fx_LN14C_form__cexp_t v_219 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_220 = {0}; _fx_N14C_form__cexp_t strs0_0 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_215 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_221 = {0}; _fx_N14C_form__cexp_t dst_exp_4 = 0; _fx_LN15C_form__cstmt_t ccode_26 = 0; - _fx_R16Ast__val_flags_t v_216 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_217 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_218 = {0}; + _fx_R16Ast__val_flags_t v_222 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_223 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_224 = {0}; _fx_N14C_form__cexp_t strs_exp_0 = 0; _fx_LN15C_form__cstmt_t sub_ccode_0 = 0; - _fx_N14C_form__cexp_t v_219 = 0; - _fx_N14C_form__cexp_t v_220 = 0; - _fx_N14C_form__cexp_t v_221 = 0; - _fx_N14C_form__cexp_t v_222 = 0; - _fx_N14C_form__cexp_t v_223 = 0; - _fx_LN14C_form__cexp_t v_224 = 0; + _fx_N14C_form__cexp_t v_225 = 0; + _fx_N14C_form__cexp_t v_226 = 0; + _fx_N14C_form__cexp_t v_227 = 0; + _fx_N14C_form__cexp_t v_228 = 0; + _fx_N14C_form__cexp_t v_229 = 0; + _fx_LN14C_form__cexp_t v_230 = 0; _fx_N14C_form__cexp_t call_exp_0 = 0; _fx_LN15C_form__cstmt_t sub_ccode_1 = 0; - _fx_N15C_form__cstmt_t v_225 = 0; + _fx_N15C_form__cstmt_t v_231 = 0; _fx_LN15C_form__cstmt_t ccode_27 = 0; - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, ccode_0, &__fold_result___0); + FX_COPY_PTR(ccode_0, &ccode_25); FX_COPY_PTR(args_0, &args_1); _fx_LN14K_form__atom_t lst_2 = args_1; for (; lst_2; lst_2 = lst_2->tl) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_226 = {0}; - _fx_LN14C_form__cexp_t strs_14 = 0; - _fx_LN15C_form__cstmt_t ccode_28 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_227 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_232 = {0}; _fx_N14C_form__cexp_t c_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_29 = 0; - _fx_N14C_form__ctyp_t v_228 = 0; + _fx_LN15C_form__cstmt_t ccode1_0 = 0; + _fx_N14C_form__ctyp_t v_233 = 0; _fx_N14C_form__cexp_t s_exp_0 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_229 = {0}; + _fx_LN14C_form__cexp_t v_234 = 0; _fx_N14K_form__atom_t* a_0 = &lst_2->hd; - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___0, &v_226); - FX_COPY_PTR(v_226.t0, &strs_14); - FX_COPY_PTR(v_226.t1, &ccode_28); - FX_CALL(atom2cexp__0.fp(a_0, true, ccode_28, &kloc_0, &v_227, atom2cexp__0.fcv), _fx_catch_63); - FX_COPY_PTR(v_227.t0, &c_exp_0); - FX_COPY_PTR(v_227.t1, &ccode_29); - FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(c_exp_0, &v_228, 0), _fx_catch_63); - if (FX_REC_VARIANT_TAG(v_228) == 10) { + FX_CALL(atom2cexp__0.fp(a_0, true, ccode_25, &kloc_0, &v_232, atom2cexp__0.fcv), _fx_catch_63); + FX_COPY_PTR(v_232.t0, &c_exp_0); + FX_COPY_PTR(v_232.t1, &ccode1_0); + FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(c_exp_0, &v_233, 0), _fx_catch_63); + if (FX_REC_VARIANT_TAG(v_233) == 10) { if (a_0->tag == 2) { - _fx_N14K_form__klit_t* v_230 = &a_0->u.AtomLit; - if (v_230->tag == 6) { - fx_str_t v_231 = {0}; - _fx_N14K_form__klit_t v_232 = {0}; - _fx_N14C_form__cexp_t v_233 = 0; - _fx_LN14C_form__cexp_t v_234 = 0; - _fx_R9Ast__id_t v_235; + _fx_N14K_form__klit_t* v_235 = &a_0->u.AtomLit; + if (v_235->tag == 6) { + fx_str_t v_236 = {0}; + _fx_N14K_form__klit_t v_237 = {0}; + _fx_N14C_form__cexp_t v_238 = 0; + _fx_LN14C_form__cexp_t v_239 = 0; + _fx_R9Ast__id_t v_240; fx_str_t slit_59 = FX_MAKE_STR("FX_MAKE_STR1"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_59, &v_235, 0), _fx_catch_61); - FX_CALL(_fx_F6stringS1C(v_230->u.KLitChar, &v_231, 0), _fx_catch_61); - _fx_M6K_formFM10KLitStringN14K_form__klit_t1S(&v_231, &v_232); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_59, &v_240, 0), _fx_catch_61); + FX_CALL(_fx_F6stringS1C(v_235->u.KLitChar, &v_236, 0), _fx_catch_61); + _fx_M6K_formFM10KLitStringN14K_form__klit_t1S(&v_236, &v_237); FX_CALL( - _fx_M6C_formFM12make_lit_expN14C_form__cexp_t2N14K_form__klit_tR10Ast__loc_t(&v_232, &kloc_0, &v_233, + _fx_M6C_formFM12make_lit_expN14C_form__cexp_t2N14K_form__klit_tR10Ast__loc_t(&v_237, &kloc_0, &v_238, 0), _fx_catch_61); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_233, 0, true, &v_234), _fx_catch_61); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_238, 0, true, &v_239), _fx_catch_61); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_235, v_234, _fx_g22C_gen_code__CTypString, &kloc_0, &s_exp_0, 0), _fx_catch_61); + &v_240, v_239, _fx_g22C_gen_code__CTypString, &kloc_0, &s_exp_0, 0), _fx_catch_61); _fx_catch_61: ; - if (v_234) { - _fx_free_LN14C_form__cexp_t(&v_234); + if (v_239) { + _fx_free_LN14C_form__cexp_t(&v_239); } - if (v_233) { - _fx_free_N14C_form__cexp_t(&v_233); + if (v_238) { + _fx_free_N14C_form__cexp_t(&v_238); } - _fx_free_N14K_form__klit_t(&v_232); - FX_FREE_STR(&v_231); + _fx_free_N14K_form__klit_t(&v_237); + FX_FREE_STR(&v_236); goto _fx_endmatch_10; } } } - if (FX_REC_VARIANT_TAG(v_228) == 10) { + if (FX_REC_VARIANT_TAG(v_233) == 10) { if (a_0->tag == 1) { - _fx_LN14C_form__cexp_t v_236 = 0; - _fx_R9Ast__id_t v_237; + _fx_LN14C_form__cexp_t v_241 = 0; + _fx_R9Ast__id_t v_242; fx_str_t slit_60 = FX_MAKE_STR("FX_MAKE_VAR_STR1"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_60, &v_237, 0), _fx_catch_62); - FX_CALL(_fx_cons_LN14C_form__cexp_t(c_exp_0, 0, true, &v_236), _fx_catch_62); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_60, &v_242, 0), _fx_catch_62); + FX_CALL(_fx_cons_LN14C_form__cexp_t(c_exp_0, 0, true, &v_241), _fx_catch_62); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_237, v_236, _fx_g22C_gen_code__CTypString, &kloc_0, &s_exp_0, 0), _fx_catch_62); + &v_242, v_241, _fx_g22C_gen_code__CTypString, &kloc_0, &s_exp_0, 0), _fx_catch_62); _fx_catch_62: ; - if (v_236) { - _fx_free_LN14C_form__cexp_t(&v_236); + if (v_241) { + _fx_free_LN14C_form__cexp_t(&v_241); } goto _fx_endmatch_10; } @@ -23414,99 +22985,92 @@ static int _fx_endmatch_10: ; FX_CHECK_EXN(_fx_catch_63); - FX_CALL(_fx_cons_LN14C_form__cexp_t(s_exp_0, strs_14, false, &strs_14), _fx_catch_63); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(strs_14, ccode_29, &v_229); - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___0); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_229, &__fold_result___0); + FX_CALL(_fx_cons_LN14C_form__cexp_t(s_exp_0, strs_13, true, &v_234), _fx_catch_63); + _fx_free_LN14C_form__cexp_t(&strs_13); + FX_COPY_PTR(v_234, &strs_13); + _fx_free_LN15C_form__cstmt_t(&ccode_25); + FX_COPY_PTR(ccode1_0, &ccode_25); _fx_catch_63: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_229); + if (v_234) { + _fx_free_LN14C_form__cexp_t(&v_234); + } if (s_exp_0) { _fx_free_N14C_form__cexp_t(&s_exp_0); } - if (v_228) { - _fx_free_N14C_form__ctyp_t(&v_228); + if (v_233) { + _fx_free_N14C_form__ctyp_t(&v_233); } - if (ccode_29) { - _fx_free_LN15C_form__cstmt_t(&ccode_29); + if (ccode1_0) { + _fx_free_LN15C_form__cstmt_t(&ccode1_0); } if (c_exp_0) { _fx_free_N14C_form__cexp_t(&c_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_227); - if (ccode_28) { - _fx_free_LN15C_form__cstmt_t(&ccode_28); - } - if (strs_14) { - _fx_free_LN14C_form__cexp_t(&strs_14); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_226); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_232); FX_CHECK_EXN(_fx_catch_64); } - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___0, &v_211); - FX_COPY_PTR(v_211.t0, &strs_13); - FX_COPY_PTR(v_211.t1, &ccode_25); _fx_R9Ast__id_t strs_id_0; fx_str_t slit_61 = FX_MAKE_STR("strs"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_61, &strs_id_0, 0), _fx_catch_64); - FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g21C_gen_code__CTypConst, 0, true, &v_212), _fx_catch_64); + FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g21C_gen_code__CTypConst, 0, true, &v_218), _fx_catch_64); FX_CALL( - _fx_M6C_formFM12CTypRawArrayN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_212, + _fx_M6C_formFM12CTypRawArrayN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_218, _fx_g22C_gen_code__CTypString, &strs_ctyp_0), _fx_catch_64); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(strs_13, &v_213, 0), _fx_catch_64); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(strs_ctyp_0, &kloc_0, &v_214); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(strs_13, &v_219, 0), _fx_catch_64); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(strs_ctyp_0, &kloc_0, &v_220); FX_CALL( - _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_213, &v_214, + _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_219, &v_220, &strs0_0), _fx_catch_64); fx_str_t slit_62 = FX_MAKE_STR("concat_str"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_62, _fx_g22C_gen_code__CTypString, ccode_25, &kloc_0, block_stack_ref_0, km_idx_0, &v_215, 0), + dstexp_r_0, &slit_62, _fx_g22C_gen_code__CTypString, ccode_25, &kloc_0, block_stack_ref_0, km_idx_0, &v_221, 0), _fx_catch_64); - FX_COPY_PTR(v_215.t0, &dst_exp_4); - FX_COPY_PTR(v_215.t1, &ccode_26); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_216, 0), _fx_catch_64); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(strs0_0, &v_217); + FX_COPY_PTR(v_221.t0, &dst_exp_4); + FX_COPY_PTR(v_221.t1, &ccode_26); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_222, 0), _fx_catch_64); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(strs0_0, &v_223); fx_str_t slit_63 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &strs_id_0, strs_ctyp_0, &v_216, &slit_63, &v_217, 0, &kloc_0, &v_218, 0), _fx_catch_64); - FX_COPY_PTR(v_218.t0, &strs_exp_0); - FX_COPY_PTR(v_218.t1, &sub_ccode_0); - _fx_R9Ast__id_t v_238; + &strs_id_0, strs_ctyp_0, &v_222, &slit_63, &v_223, 0, &kloc_0, &v_224, 0), _fx_catch_64); + FX_COPY_PTR(v_224.t0, &strs_exp_0); + FX_COPY_PTR(v_224.t1, &sub_ccode_0); + _fx_R9Ast__id_t v_243; fx_str_t slit_64 = FX_MAKE_STR("fx_strjoin"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_64, &v_238, 0), _fx_catch_64); - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_219, 0), _fx_catch_64); - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_220, 0), _fx_catch_64); - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_221, 0), _fx_catch_64); - int_ v_239; - FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14C_form__cexp_t(strs_13, &v_239, 0), _fx_catch_64); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(v_239, &kloc_0, &v_222, 0), _fx_catch_64); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_4, &v_223, 0), _fx_catch_64); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_223, 0, true, &v_224), _fx_catch_64); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_222, v_224, false, &v_224), _fx_catch_64); - FX_CALL(_fx_cons_LN14C_form__cexp_t(strs_exp_0, v_224, false, &v_224), _fx_catch_64); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_221, v_224, false, &v_224), _fx_catch_64); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_220, v_224, false, &v_224), _fx_catch_64); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_219, v_224, false, &v_224), _fx_catch_64); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_64, &v_243, 0), _fx_catch_64); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_225, 0), _fx_catch_64); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_226, 0), _fx_catch_64); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_227, 0), _fx_catch_64); + int_ v_244; + FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14C_form__cexp_t(strs_13, &v_244, 0), _fx_catch_64); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(v_244, &kloc_0, &v_228, 0), _fx_catch_64); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_4, &v_229, 0), _fx_catch_64); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_229, 0, true, &v_230), _fx_catch_64); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_228, v_230, false, &v_230), _fx_catch_64); + FX_CALL(_fx_cons_LN14C_form__cexp_t(strs_exp_0, v_230, false, &v_230), _fx_catch_64); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_227, v_230, false, &v_230), _fx_catch_64); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_226, v_230, false, &v_230), _fx_catch_64); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_225, v_230, false, &v_230), _fx_catch_64); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_238, v_224, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_243, v_230, _fx_g19C_gen_code__CTypInt, &kloc_0, &call_exp_0, 0), _fx_catch_64); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( call_exp_0, sub_ccode_0, &kloc_0, block_stack_ref_0, &sub_ccode_1, 0), _fx_catch_64); FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(sub_ccode_1, &kloc_0, &v_225, 0), + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(sub_ccode_1, &kloc_0, &v_231, 0), _fx_catch_64); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_225, ccode_26, true, &ccode_27), _fx_catch_64); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_231, ccode_26, true, &ccode_27), _fx_catch_64); _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_4, ccode_27, &v_1); _fx_catch_64: ; if (ccode_27) { _fx_free_LN15C_form__cstmt_t(&ccode_27); } - if (v_225) { - _fx_free_N15C_form__cstmt_t(&v_225); + if (v_231) { + _fx_free_N15C_form__cstmt_t(&v_231); } if (sub_ccode_1) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_1); @@ -23514,23 +23078,23 @@ static int if (call_exp_0) { _fx_free_N14C_form__cexp_t(&call_exp_0); } - if (v_224) { - _fx_free_LN14C_form__cexp_t(&v_224); + if (v_230) { + _fx_free_LN14C_form__cexp_t(&v_230); } - if (v_223) { - _fx_free_N14C_form__cexp_t(&v_223); + if (v_229) { + _fx_free_N14C_form__cexp_t(&v_229); } - if (v_222) { - _fx_free_N14C_form__cexp_t(&v_222); + if (v_228) { + _fx_free_N14C_form__cexp_t(&v_228); } - if (v_221) { - _fx_free_N14C_form__cexp_t(&v_221); + if (v_227) { + _fx_free_N14C_form__cexp_t(&v_227); } - if (v_220) { - _fx_free_N14C_form__cexp_t(&v_220); + if (v_226) { + _fx_free_N14C_form__cexp_t(&v_226); } - if (v_219) { - _fx_free_N14C_form__cexp_t(&v_219); + if (v_225) { + _fx_free_N14C_form__cexp_t(&v_225); } if (sub_ccode_0) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_0); @@ -23538,224 +23102,222 @@ static int if (strs_exp_0) { _fx_free_N14C_form__cexp_t(&strs_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_218); - _fx_free_Nt6option1N14C_form__cexp_t(&v_217); - _fx_free_R16Ast__val_flags_t(&v_216); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_224); + _fx_free_Nt6option1N14C_form__cexp_t(&v_223); + _fx_free_R16Ast__val_flags_t(&v_222); if (ccode_26) { _fx_free_LN15C_form__cstmt_t(&ccode_26); } if (dst_exp_4) { _fx_free_N14C_form__cexp_t(&dst_exp_4); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_215); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_221); if (strs0_0) { _fx_free_N14C_form__cexp_t(&strs0_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_214); - if (v_213) { - _fx_free_LN14C_form__cexp_t(&v_213); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_220); + if (v_219) { + _fx_free_LN14C_form__cexp_t(&v_219); } if (strs_ctyp_0) { _fx_free_N14C_form__ctyp_t(&strs_ctyp_0); } - FX_FREE_LIST_SIMPLE(&v_212); + FX_FREE_LIST_SIMPLE(&v_218); + if (args_1) { + _fx_free_LN14K_form__atom_t(&args_1); + } if (ccode_25) { _fx_free_LN15C_form__cstmt_t(&ccode_25); } if (strs_13) { _fx_free_LN14C_form__cexp_t(&strs_13); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_211); - if (args_1) { - _fx_free_LN14K_form__atom_t(&args_1); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___0); goto _fx_endmatch_16; } if (intr_0->tag == 9) { if (args_0 != 0) { if (args_0->tl == 0) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_240 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_245 = {0}; _fx_N14C_form__cexp_t arr_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_30 = 0; - _fx_N14K_form__ktyp_t v_241 = 0; + _fx_LN15C_form__cstmt_t ccode_28 = 0; + _fx_N14K_form__ktyp_t v_246 = 0; _fx_N14C_form__cexp_t c_e_0 = 0; _fx_N14K_form__atom_t* arr_or_str_0 = &args_0->hd; FX_CALL( atom2cexp_0.fp(arr_or_str_0, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_240, atom2cexp_0.fcv), _fx_catch_69); - FX_COPY_PTR(v_240.t0, &arr_exp_0); - FX_COPY_PTR(v_240.t1, &ccode_30); + i2e_ref_0, km_idx_0, &v_245, atom2cexp_0.fcv), _fx_catch_69); + FX_COPY_PTR(v_245.t0, &arr_exp_0); + FX_COPY_PTR(v_245.t1, &ccode_28); FX_CALL( - _fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(arr_or_str_0, &kloc_0, &v_241, + _fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(arr_or_str_0, &kloc_0, &v_246, 0), _fx_catch_69); - int tag_8 = FX_REC_VARIANT_TAG(v_241); + int tag_8 = FX_REC_VARIANT_TAG(v_246); if (tag_8 == 10) { - _fx_LN14C_form__cexp_t v_242 = 0; - _fx_R9Ast__id_t v_243; + _fx_LN14C_form__cexp_t v_247 = 0; + _fx_R9Ast__id_t v_248; fx_str_t slit_65 = FX_MAKE_STR("FX_STR_LENGTH"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_65, &v_243, 0), _fx_catch_65); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_0, 0, true, &v_242), _fx_catch_65); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_65, &v_248, 0), _fx_catch_65); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_0, 0, true, &v_247), _fx_catch_65); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_243, v_242, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_0, 0), _fx_catch_65); + &v_248, v_247, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_0, 0), _fx_catch_65); _fx_catch_65: ; - if (v_242) { - _fx_free_LN14C_form__cexp_t(&v_242); + if (v_247) { + _fx_free_LN14C_form__cexp_t(&v_247); } } else if (tag_8 == 17) { - _fx_N14C_form__cexp_t v_244 = 0; - _fx_LN14C_form__cexp_t v_245 = 0; - _fx_R9Ast__id_t v_246; + _fx_N14C_form__cexp_t v_249 = 0; + _fx_LN14C_form__cexp_t v_250 = 0; + _fx_R9Ast__id_t v_251; fx_str_t slit_66 = FX_MAKE_STR("FX_ARR_SIZE"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_66, &v_246, 0), _fx_catch_66); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_244, 0), _fx_catch_66); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_244, 0, true, &v_245), _fx_catch_66); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_0, v_245, false, &v_245), _fx_catch_66); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_66, &v_251, 0), _fx_catch_66); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_249, 0), _fx_catch_66); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_249, 0, true, &v_250), _fx_catch_66); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_0, v_250, false, &v_250), _fx_catch_66); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_246, v_245, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_0, 0), _fx_catch_66); + &v_251, v_250, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_0, 0), _fx_catch_66); _fx_catch_66: ; - if (v_245) { - _fx_free_LN14C_form__cexp_t(&v_245); + if (v_250) { + _fx_free_LN14C_form__cexp_t(&v_250); } - if (v_244) { - _fx_free_N14C_form__cexp_t(&v_244); + if (v_249) { + _fx_free_N14C_form__cexp_t(&v_249); } } else if (tag_8 == 18) { - _fx_LN14C_form__cexp_t v_247 = 0; - _fx_R9Ast__id_t v_248; + _fx_LN14C_form__cexp_t v_252 = 0; + _fx_R9Ast__id_t v_253; fx_str_t slit_67 = FX_MAKE_STR("FX_RRB_SIZE"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_67, &v_248, 0), _fx_catch_67); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_0, 0, true, &v_247), _fx_catch_67); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_67, &v_253, 0), _fx_catch_67); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_0, 0, true, &v_252), _fx_catch_67); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_248, v_247, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_0, 0), _fx_catch_67); + &v_253, v_252, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_0, 0), _fx_catch_67); _fx_catch_67: ; - if (v_247) { - _fx_free_LN14C_form__cexp_t(&v_247); + if (v_252) { + _fx_free_LN14C_form__cexp_t(&v_252); } } else { - fx_str_t v_249 = {0}; - fx_str_t v_250 = {0}; - fx_str_t v_251 = {0}; - fx_str_t v_252 = {0}; - fx_exn_t v_253 = {0}; - FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(v_241, &v_249, 0), _fx_catch_68); - FX_CALL(_fx_M6K_formFM8atom2strS1N14K_form__atom_t(arr_or_str_0, &v_250, 0), _fx_catch_68); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_250, &v_251, 0), _fx_catch_68); + fx_str_t v_254 = {0}; + fx_str_t v_255 = {0}; + fx_str_t v_256 = {0}; + fx_str_t v_257 = {0}; + fx_exn_t v_258 = {0}; + FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(v_246, &v_254, 0), _fx_catch_68); + FX_CALL(_fx_M6K_formFM8atom2strS1N14K_form__atom_t(arr_or_str_0, &v_255, 0), _fx_catch_68); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_255, &v_256, 0), _fx_catch_68); fx_str_t slit_68 = FX_MAKE_STR("cgen: unsupported container type "); fx_str_t slit_69 = FX_MAKE_STR(" of "); fx_str_t slit_70 = FX_MAKE_STR(" in KExpIntrin(IntrinGetSize...)"); { - const fx_str_t strs_15[] = { slit_68, v_249, slit_69, v_251, slit_70 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_15, 5, &v_252), _fx_catch_68); + const fx_str_t strs_14[] = { slit_68, v_254, slit_69, v_256, slit_70 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_14, 5, &v_257), _fx_catch_68); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_252, &v_253, 0), _fx_catch_68); - FX_THROW(&v_253, false, _fx_catch_68); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_257, &v_258, 0), _fx_catch_68); + FX_THROW(&v_258, false, _fx_catch_68); _fx_catch_68: ; - fx_free_exn(&v_253); - FX_FREE_STR(&v_252); - FX_FREE_STR(&v_251); - FX_FREE_STR(&v_250); - FX_FREE_STR(&v_249); + fx_free_exn(&v_258); + FX_FREE_STR(&v_257); + FX_FREE_STR(&v_256); + FX_FREE_STR(&v_255); + FX_FREE_STR(&v_254); } FX_CHECK_EXN(_fx_catch_69); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, c_e_0, ccode_30, &v_1); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, c_e_0, ccode_28, &v_1); _fx_catch_69: ; if (c_e_0) { _fx_free_N14C_form__cexp_t(&c_e_0); } - if (v_241) { - _fx_free_N14K_form__ktyp_t(&v_241); + if (v_246) { + _fx_free_N14K_form__ktyp_t(&v_246); } - if (ccode_30) { - _fx_free_LN15C_form__cstmt_t(&ccode_30); + if (ccode_28) { + _fx_free_LN15C_form__cstmt_t(&ccode_28); } if (arr_exp_0) { _fx_free_N14C_form__cexp_t(&arr_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_240); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_245); goto _fx_endmatch_16; } } } if (intr_0->tag == 9) { if (args_0 != 0) { - _fx_LN14K_form__atom_t v_254 = args_0->tl; - if (v_254 != 0) { - if (v_254->tl == 0) { - _fx_N14K_form__atom_t* v_255 = &v_254->hd; - if (v_255->tag == 2) { - _fx_N14K_form__klit_t* v_256 = &v_255->u.AtomLit; - if (v_256->tag == 1) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_257 = {0}; + _fx_LN14K_form__atom_t v_259 = args_0->tl; + if (v_259 != 0) { + if (v_259->tl == 0) { + _fx_N14K_form__atom_t* v_260 = &v_259->hd; + if (v_260->tag == 2) { + _fx_N14K_form__klit_t* v_261 = &v_260->u.AtomLit; + if (v_261->tag == 1) { + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_262 = {0}; _fx_N14C_form__cexp_t arr_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_31 = 0; - _fx_N14K_form__ktyp_t v_258 = 0; + _fx_LN15C_form__cstmt_t ccode_29 = 0; + _fx_N14K_form__ktyp_t v_263 = 0; _fx_N14C_form__cexp_t c_e_1 = 0; - int64_t i_3 = v_256->u.KLitInt; + int64_t i_3 = v_261->u.KLitInt; _fx_N14K_form__atom_t* arr_or_str_1 = &args_0->hd; FX_CALL( atom2cexp_0.fp(arr_or_str_1, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_257, atom2cexp_0.fcv), _fx_catch_74); - FX_COPY_PTR(v_257.t0, &arr_exp_1); - FX_COPY_PTR(v_257.t1, &ccode_31); + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_262, atom2cexp_0.fcv), _fx_catch_74); + FX_COPY_PTR(v_262.t0, &arr_exp_1); + FX_COPY_PTR(v_262.t1, &ccode_29); FX_CALL( _fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(arr_or_str_1, &kloc_0, - &v_258, 0), _fx_catch_74); + &v_263, 0), _fx_catch_74); if (i_3 == 0LL) { - if (FX_REC_VARIANT_TAG(v_258) == 10) { - _fx_LN14C_form__cexp_t v_259 = 0; - _fx_R9Ast__id_t v_260; + if (FX_REC_VARIANT_TAG(v_263) == 10) { + _fx_LN14C_form__cexp_t v_264 = 0; + _fx_R9Ast__id_t v_265; fx_str_t slit_71 = FX_MAKE_STR("FX_STR_LENGTH"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_71, &v_260, 0), _fx_catch_70); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_1, 0, true, &v_259), _fx_catch_70); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_71, &v_265, 0), _fx_catch_70); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_1, 0, true, &v_264), _fx_catch_70); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_260, v_259, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_1, 0), _fx_catch_70); + &v_265, v_264, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_1, 0), _fx_catch_70); _fx_catch_70: ; - if (v_259) { - _fx_free_LN14C_form__cexp_t(&v_259); + if (v_264) { + _fx_free_LN14C_form__cexp_t(&v_264); } goto _fx_endmatch_11; } } if (i_3 == 0LL) { - if (FX_REC_VARIANT_TAG(v_258) == 18) { - _fx_LN14C_form__cexp_t v_261 = 0; - _fx_R9Ast__id_t v_262; + if (FX_REC_VARIANT_TAG(v_263) == 18) { + _fx_LN14C_form__cexp_t v_266 = 0; + _fx_R9Ast__id_t v_267; fx_str_t slit_72 = FX_MAKE_STR("FX_RRB_SIZE"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_72, &v_262, 0), _fx_catch_71); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_1, 0, true, &v_261), _fx_catch_71); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_72, &v_267, 0), _fx_catch_71); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_1, 0, true, &v_266), _fx_catch_71); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_262, v_261, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_1, 0), _fx_catch_71); + &v_267, v_266, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_1, 0), _fx_catch_71); _fx_catch_71: ; - if (v_261) { - _fx_free_LN14C_form__cexp_t(&v_261); + if (v_266) { + _fx_free_LN14C_form__cexp_t(&v_266); } goto _fx_endmatch_11; } } - if (FX_REC_VARIANT_TAG(v_258) == 17) { - fx_str_t v_263 = {0}; - fx_str_t v_264 = {0}; - fx_str_t v_265 = {0}; - fx_exn_t v_266 = {0}; - _fx_N14C_form__cexp_t v_267 = 0; - _fx_LN14C_form__cexp_t v_268 = 0; - int_ ndims_0 = v_258->u.KTypArray.t0; + if (FX_REC_VARIANT_TAG(v_263) == 17) { + fx_str_t v_268 = {0}; + fx_str_t v_269 = {0}; + fx_str_t v_270 = {0}; + fx_exn_t v_271 = {0}; + _fx_N14C_form__cexp_t v_272 = 0; + _fx_LN14C_form__cexp_t v_273 = 0; + int_ ndims_0 = v_263->u.KTypArray.t0; bool t_6; if (0LL <= i_3) { int64_t res_9; @@ -23766,67 +23328,67 @@ static int t_6 = false; } if (!t_6) { - FX_CALL(_fx_F6stringS1l(i_3, &v_263, 0), _fx_catch_72); - FX_CALL(_fx_F6stringS1i(ndims_0, &v_264, 0), _fx_catch_72); + FX_CALL(_fx_F6stringS1l(i_3, &v_268, 0), _fx_catch_72); + FX_CALL(_fx_F6stringS1i(ndims_0, &v_269, 0), _fx_catch_72); fx_str_t slit_73 = FX_MAKE_STR("array dimension index "); fx_str_t slit_74 = FX_MAKE_STR("i is beyond dimensionality "); { - const fx_str_t strs_16[] = { slit_73, v_263, slit_74, v_264 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_16, 4, &v_265), _fx_catch_72); + const fx_str_t strs_15[] = { slit_73, v_268, slit_74, v_269 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_15, 4, &v_270), _fx_catch_72); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_265, &v_266, 0), _fx_catch_72); - FX_THROW(&v_266, false, _fx_catch_72); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_270, &v_271, 0), _fx_catch_72); + FX_THROW(&v_271, false, _fx_catch_72); } - _fx_R9Ast__id_t v_269; + _fx_R9Ast__id_t v_274; fx_str_t slit_75 = FX_MAKE_STR("FX_ARR_SIZE"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_75, &v_269, 0), _fx_catch_72); - FX_CALL(_fx_M6C_formFM13make_int__expN14C_form__cexp_t2lR10Ast__loc_t(i_3, &kloc_0, &v_267, 0), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_75, &v_274, 0), _fx_catch_72); + FX_CALL(_fx_M6C_formFM13make_int__expN14C_form__cexp_t2lR10Ast__loc_t(i_3, &kloc_0, &v_272, 0), _fx_catch_72); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_267, 0, true, &v_268), _fx_catch_72); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_1, v_268, false, &v_268), _fx_catch_72); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_272, 0, true, &v_273), _fx_catch_72); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_1, v_273, false, &v_273), _fx_catch_72); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_269, v_268, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_1, 0), _fx_catch_72); + &v_274, v_273, _fx_g19C_gen_code__CTypInt, &kloc_0, &c_e_1, 0), _fx_catch_72); _fx_catch_72: ; - if (v_268) { - _fx_free_LN14C_form__cexp_t(&v_268); + if (v_273) { + _fx_free_LN14C_form__cexp_t(&v_273); } - if (v_267) { - _fx_free_N14C_form__cexp_t(&v_267); + if (v_272) { + _fx_free_N14C_form__cexp_t(&v_272); } - fx_free_exn(&v_266); - FX_FREE_STR(&v_265); - FX_FREE_STR(&v_264); - FX_FREE_STR(&v_263); + fx_free_exn(&v_271); + FX_FREE_STR(&v_270); + FX_FREE_STR(&v_269); + FX_FREE_STR(&v_268); goto _fx_endmatch_11; } - fx_exn_t v_270 = {0}; + fx_exn_t v_275 = {0}; fx_str_t slit_76 = FX_MAKE_STR("cgen: unsupported container type in KExpIntrin(IntrinGetSize...)"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_76, &v_270, 0), _fx_catch_73); - FX_THROW(&v_270, false, _fx_catch_73); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_76, &v_275, 0), _fx_catch_73); + FX_THROW(&v_275, false, _fx_catch_73); _fx_catch_73: ; - fx_free_exn(&v_270); + fx_free_exn(&v_275); _fx_endmatch_11: ; FX_CHECK_EXN(_fx_catch_74); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, c_e_1, ccode_31, &v_1); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, c_e_1, ccode_29, &v_1); _fx_catch_74: ; if (c_e_1) { _fx_free_N14C_form__cexp_t(&c_e_1); } - if (v_258) { - _fx_free_N14K_form__ktyp_t(&v_258); + if (v_263) { + _fx_free_N14K_form__ktyp_t(&v_263); } - if (ccode_31) { - _fx_free_LN15C_form__cstmt_t(&ccode_31); + if (ccode_29) { + _fx_free_LN15C_form__cstmt_t(&ccode_29); } if (arr_exp_1) { _fx_free_N14C_form__cexp_t(&arr_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_257); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_262); goto _fx_endmatch_16; } } @@ -23836,73 +23398,73 @@ static int } if (intr_0->tag == 10) { if (args_0 != 0) { - _fx_LN14K_form__atom_t v_271 = args_0->tl; - if (v_271 != 0) { - if (v_271->tl == 0) { + _fx_LN14K_form__atom_t v_276 = args_0->tl; + if (v_276 != 0) { + if (v_276->tl == 0) { _fx_N14C_form__cexp_t lbl_3 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_272 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_277 = {0}; _fx_N14C_form__cexp_t arrsz_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_32 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_273 = {0}; + _fx_LN15C_form__cstmt_t ccode_30 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_278 = {0}; _fx_N14C_form__cexp_t idx_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_33 = 0; - _fx_LN14C_form__cexp_t v_274 = 0; + _fx_LN15C_form__cstmt_t ccode_31 = 0; + _fx_LN14C_form__cexp_t v_279 = 0; _fx_N14C_form__cexp_t chk_0 = 0; - _fx_N15C_form__cstmt_t v_275 = 0; - _fx_LN15C_form__cstmt_t v_276 = 0; + _fx_N15C_form__cstmt_t v_280 = 0; + _fx_LN15C_form__cstmt_t v_281 = 0; FX_CALL( _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &lbl_3, 0), _fx_catch_75); FX_CALL( atom2cexp_0.fp(&args_0->hd, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_272, atom2cexp_0.fcv), _fx_catch_75); - FX_COPY_PTR(v_272.t0, &arrsz_exp_0); - FX_COPY_PTR(v_272.t1, &ccode_32); + i2e_ref_0, km_idx_0, &v_277, atom2cexp_0.fcv), _fx_catch_75); + FX_COPY_PTR(v_277.t0, &arrsz_exp_0); + FX_COPY_PTR(v_277.t1, &ccode_30); FX_CALL( - atom2cexp_0.fp(&v_271->hd, ccode_32, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_273, atom2cexp_0.fcv), _fx_catch_75); - FX_COPY_PTR(v_273.t0, &idx_exp_0); - FX_COPY_PTR(v_273.t1, &ccode_33); - _fx_R9Ast__id_t v_277; + atom2cexp_0.fp(&v_276->hd, ccode_30, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, + i2e_ref_0, km_idx_0, &v_278, atom2cexp_0.fcv), _fx_catch_75); + FX_COPY_PTR(v_278.t0, &idx_exp_0); + FX_COPY_PTR(v_278.t1, &ccode_31); + _fx_R9Ast__id_t v_282; fx_str_t slit_77 = FX_MAKE_STR("FX_CHKIDX_SCALAR"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_77, &v_277, 0), _fx_catch_75); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_3, 0, true, &v_274), _fx_catch_75); - FX_CALL(_fx_cons_LN14C_form__cexp_t(idx_exp_0, v_274, false, &v_274), _fx_catch_75); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arrsz_exp_0, v_274, false, &v_274), _fx_catch_75); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_77, &v_282, 0), _fx_catch_75); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_3, 0, true, &v_279), _fx_catch_75); + FX_CALL(_fx_cons_LN14C_form__cexp_t(idx_exp_0, v_279, false, &v_279), _fx_catch_75); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arrsz_exp_0, v_279, false, &v_279), _fx_catch_75); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_277, v_274, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_0, 0), _fx_catch_75); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_0, &v_275), _fx_catch_75); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_275, ccode_33, true, &v_276), _fx_catch_75); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_276, &v_1); + &v_282, v_279, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_0, 0), _fx_catch_75); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_0, &v_280), _fx_catch_75); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_280, ccode_31, true, &v_281), _fx_catch_75); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_281, &v_1); _fx_catch_75: ; - if (v_276) { - _fx_free_LN15C_form__cstmt_t(&v_276); + if (v_281) { + _fx_free_LN15C_form__cstmt_t(&v_281); } - if (v_275) { - _fx_free_N15C_form__cstmt_t(&v_275); + if (v_280) { + _fx_free_N15C_form__cstmt_t(&v_280); } if (chk_0) { _fx_free_N14C_form__cexp_t(&chk_0); } - if (v_274) { - _fx_free_LN14C_form__cexp_t(&v_274); + if (v_279) { + _fx_free_LN14C_form__cexp_t(&v_279); } - if (ccode_33) { - _fx_free_LN15C_form__cstmt_t(&ccode_33); + if (ccode_31) { + _fx_free_LN15C_form__cstmt_t(&ccode_31); } if (idx_exp_0) { _fx_free_N14C_form__cexp_t(&idx_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_273); - if (ccode_32) { - _fx_free_LN15C_form__cstmt_t(&ccode_32); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_278); + if (ccode_30) { + _fx_free_LN15C_form__cstmt_t(&ccode_30); } if (arrsz_exp_0) { _fx_free_N14C_form__cexp_t(&arrsz_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_272); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_277); if (lbl_3) { _fx_free_N14C_form__cexp_t(&lbl_3); } @@ -23913,145 +23475,145 @@ static int } if (intr_0->tag == 11) { if (args_0 != 0) { - _fx_LN14K_form__atom_t v_278 = args_0->tl; - if (v_278 != 0) { - _fx_LN14K_form__atom_t v_279 = v_278->tl; - if (v_279 != 0) { - _fx_LN14K_form__atom_t v_280 = v_279->tl; - if (v_280 != 0) { - _fx_LN14K_form__atom_t v_281 = v_280->tl; - if (v_281 != 0) { - _fx_LN14K_form__atom_t v_282 = v_281->tl; - if (v_282 != 0) { - if (v_282->tl == 0) { + _fx_LN14K_form__atom_t v_283 = args_0->tl; + if (v_283 != 0) { + _fx_LN14K_form__atom_t v_284 = v_283->tl; + if (v_284 != 0) { + _fx_LN14K_form__atom_t v_285 = v_284->tl; + if (v_285 != 0) { + _fx_LN14K_form__atom_t v_286 = v_285->tl; + if (v_286 != 0) { + _fx_LN14K_form__atom_t v_287 = v_286->tl; + if (v_287 != 0) { + if (v_287->tl == 0) { _fx_N14C_form__cexp_t lbl_4 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_283 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_288 = {0}; _fx_N14C_form__cexp_t arrsz_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_34 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_284 = {0}; + _fx_LN15C_form__cstmt_t ccode_32 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_289 = {0}; _fx_N14C_form__cexp_t a_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_35 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_285 = {0}; + _fx_LN15C_form__cstmt_t ccode_33 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_290 = {0}; _fx_N14C_form__cexp_t b_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_36 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_286 = {0}; + _fx_LN15C_form__cstmt_t ccode_34 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_291 = {0}; _fx_N14C_form__cexp_t delta_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_37 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_287 = {0}; + _fx_LN15C_form__cstmt_t ccode_35 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_292 = {0}; _fx_N14C_form__cexp_t scale_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_38 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_288 = {0}; + _fx_LN15C_form__cstmt_t ccode_36 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_293 = {0}; _fx_N14C_form__cexp_t shift_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_39 = 0; - _fx_LN14C_form__cexp_t v_289 = 0; + _fx_LN15C_form__cstmt_t ccode_37 = 0; + _fx_LN14C_form__cexp_t v_294 = 0; _fx_N14C_form__cexp_t chk_1 = 0; - _fx_N15C_form__cstmt_t v_290 = 0; - _fx_LN15C_form__cstmt_t v_291 = 0; + _fx_N15C_form__cstmt_t v_295 = 0; + _fx_LN15C_form__cstmt_t v_296 = 0; FX_CALL( _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &lbl_4, 0), _fx_catch_76); FX_CALL( atom2cexp_0.fp(&args_0->hd, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_283, atom2cexp_0.fcv), _fx_catch_76); - FX_COPY_PTR(v_283.t0, &arrsz_exp_1); - FX_COPY_PTR(v_283.t1, &ccode_34); + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_288, atom2cexp_0.fcv), _fx_catch_76); + FX_COPY_PTR(v_288.t0, &arrsz_exp_1); + FX_COPY_PTR(v_288.t1, &ccode_32); FX_CALL( - atom2cexp_0.fp(&v_278->hd, ccode_34, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_284, atom2cexp_0.fcv), _fx_catch_76); - FX_COPY_PTR(v_284.t0, &a_exp_0); - FX_COPY_PTR(v_284.t1, &ccode_35); + atom2cexp_0.fp(&v_283->hd, ccode_32, &kloc_0, block_stack_ref_0, defined_syms_ref_0, + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_289, atom2cexp_0.fcv), _fx_catch_76); + FX_COPY_PTR(v_289.t0, &a_exp_0); + FX_COPY_PTR(v_289.t1, &ccode_33); FX_CALL( - atom2cexp_0.fp(&v_279->hd, ccode_35, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_285, atom2cexp_0.fcv), _fx_catch_76); - FX_COPY_PTR(v_285.t0, &b_exp_0); - FX_COPY_PTR(v_285.t1, &ccode_36); + atom2cexp_0.fp(&v_284->hd, ccode_33, &kloc_0, block_stack_ref_0, defined_syms_ref_0, + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_290, atom2cexp_0.fcv), _fx_catch_76); + FX_COPY_PTR(v_290.t0, &b_exp_0); + FX_COPY_PTR(v_290.t1, &ccode_34); FX_CALL( - atom2cexp_0.fp(&v_280->hd, ccode_36, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_286, atom2cexp_0.fcv), _fx_catch_76); - FX_COPY_PTR(v_286.t0, &delta_exp_0); - FX_COPY_PTR(v_286.t1, &ccode_37); + atom2cexp_0.fp(&v_285->hd, ccode_34, &kloc_0, block_stack_ref_0, defined_syms_ref_0, + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_291, atom2cexp_0.fcv), _fx_catch_76); + FX_COPY_PTR(v_291.t0, &delta_exp_0); + FX_COPY_PTR(v_291.t1, &ccode_35); FX_CALL( - atom2cexp_0.fp(&v_281->hd, ccode_37, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_287, atom2cexp_0.fcv), _fx_catch_76); - FX_COPY_PTR(v_287.t0, &scale_exp_0); - FX_COPY_PTR(v_287.t1, &ccode_38); + atom2cexp_0.fp(&v_286->hd, ccode_35, &kloc_0, block_stack_ref_0, defined_syms_ref_0, + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_292, atom2cexp_0.fcv), _fx_catch_76); + FX_COPY_PTR(v_292.t0, &scale_exp_0); + FX_COPY_PTR(v_292.t1, &ccode_36); FX_CALL( - atom2cexp_0.fp(&v_282->hd, ccode_38, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_288, atom2cexp_0.fcv), _fx_catch_76); - FX_COPY_PTR(v_288.t0, &shift_exp_0); - FX_COPY_PTR(v_288.t1, &ccode_39); - _fx_R9Ast__id_t v_292; + atom2cexp_0.fp(&v_287->hd, ccode_36, &kloc_0, block_stack_ref_0, defined_syms_ref_0, + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_293, atom2cexp_0.fcv), _fx_catch_76); + FX_COPY_PTR(v_293.t0, &shift_exp_0); + FX_COPY_PTR(v_293.t1, &ccode_37); + _fx_R9Ast__id_t v_297; fx_str_t slit_78 = FX_MAKE_STR("FX_CHKIDX_RANGE"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_78, &v_292, 0), _fx_catch_76); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_4, 0, true, &v_289), _fx_catch_76); - FX_CALL(_fx_cons_LN14C_form__cexp_t(shift_exp_0, v_289, false, &v_289), _fx_catch_76); - FX_CALL(_fx_cons_LN14C_form__cexp_t(scale_exp_0, v_289, false, &v_289), _fx_catch_76); - FX_CALL(_fx_cons_LN14C_form__cexp_t(delta_exp_0, v_289, false, &v_289), _fx_catch_76); - FX_CALL(_fx_cons_LN14C_form__cexp_t(b_exp_0, v_289, false, &v_289), _fx_catch_76); - FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_0, v_289, false, &v_289), _fx_catch_76); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arrsz_exp_1, v_289, false, &v_289), _fx_catch_76); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_78, &v_297, 0), _fx_catch_76); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_4, 0, true, &v_294), _fx_catch_76); + FX_CALL(_fx_cons_LN14C_form__cexp_t(shift_exp_0, v_294, false, &v_294), _fx_catch_76); + FX_CALL(_fx_cons_LN14C_form__cexp_t(scale_exp_0, v_294, false, &v_294), _fx_catch_76); + FX_CALL(_fx_cons_LN14C_form__cexp_t(delta_exp_0, v_294, false, &v_294), _fx_catch_76); + FX_CALL(_fx_cons_LN14C_form__cexp_t(b_exp_0, v_294, false, &v_294), _fx_catch_76); + FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_0, v_294, false, &v_294), _fx_catch_76); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arrsz_exp_1, v_294, false, &v_294), _fx_catch_76); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_292, v_289, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_1, 0), _fx_catch_76); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_1, &v_290), _fx_catch_76); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_290, ccode_39, true, &v_291), _fx_catch_76); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_291, &v_1); + &v_297, v_294, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_1, 0), _fx_catch_76); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_1, &v_295), _fx_catch_76); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_295, ccode_37, true, &v_296), _fx_catch_76); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_296, &v_1); _fx_catch_76: ; - if (v_291) { - _fx_free_LN15C_form__cstmt_t(&v_291); + if (v_296) { + _fx_free_LN15C_form__cstmt_t(&v_296); } - if (v_290) { - _fx_free_N15C_form__cstmt_t(&v_290); + if (v_295) { + _fx_free_N15C_form__cstmt_t(&v_295); } if (chk_1) { _fx_free_N14C_form__cexp_t(&chk_1); } - if (v_289) { - _fx_free_LN14C_form__cexp_t(&v_289); + if (v_294) { + _fx_free_LN14C_form__cexp_t(&v_294); } - if (ccode_39) { - _fx_free_LN15C_form__cstmt_t(&ccode_39); + if (ccode_37) { + _fx_free_LN15C_form__cstmt_t(&ccode_37); } if (shift_exp_0) { _fx_free_N14C_form__cexp_t(&shift_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_288); - if (ccode_38) { - _fx_free_LN15C_form__cstmt_t(&ccode_38); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_293); + if (ccode_36) { + _fx_free_LN15C_form__cstmt_t(&ccode_36); } if (scale_exp_0) { _fx_free_N14C_form__cexp_t(&scale_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_287); - if (ccode_37) { - _fx_free_LN15C_form__cstmt_t(&ccode_37); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_292); + if (ccode_35) { + _fx_free_LN15C_form__cstmt_t(&ccode_35); } if (delta_exp_0) { _fx_free_N14C_form__cexp_t(&delta_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_286); - if (ccode_36) { - _fx_free_LN15C_form__cstmt_t(&ccode_36); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_291); + if (ccode_34) { + _fx_free_LN15C_form__cstmt_t(&ccode_34); } if (b_exp_0) { _fx_free_N14C_form__cexp_t(&b_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_285); - if (ccode_35) { - _fx_free_LN15C_form__cstmt_t(&ccode_35); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_290); + if (ccode_33) { + _fx_free_LN15C_form__cstmt_t(&ccode_33); } if (a_exp_0) { _fx_free_N14C_form__cexp_t(&a_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_284); - if (ccode_34) { - _fx_free_LN15C_form__cstmt_t(&ccode_34); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_289); + if (ccode_32) { + _fx_free_LN15C_form__cstmt_t(&ccode_32); } if (arrsz_exp_1) { _fx_free_N14C_form__cexp_t(&arrsz_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_283); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_288); if (lbl_4) { _fx_free_N14C_form__cexp_t(&lbl_4); } @@ -24067,58 +23629,58 @@ static int if (intr_0->tag == 12) { if (args_0 != 0) { if (args_0->tl == 0) { - _fx_N14K_form__atom_t* v_293 = &args_0->hd; - if (v_293->tag == 1) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_294 = {0}; + _fx_N14K_form__atom_t* v_298 = &args_0->hd; + if (v_298->tag == 1) { + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_299 = {0}; _fx_N14C_form__cexp_t dst_exp_5 = 0; - _fx_LN15C_form__cstmt_t ccode_40 = 0; - _fx_N14C_form__cexp_t v_295 = 0; - _fx_LN14C_form__cexp_t v_296 = 0; - _fx_N14C_form__cexp_t v_297 = 0; + _fx_LN15C_form__cstmt_t ccode_38 = 0; + _fx_N14C_form__cexp_t v_300 = 0; + _fx_LN14C_form__cexp_t v_301 = 0; + _fx_N14C_form__cexp_t v_302 = 0; _fx_N15C_form__cstmt_t macro_0 = 0; - _fx_LN15C_form__cstmt_t v_298 = 0; + _fx_LN15C_form__cstmt_t v_303 = 0; fx_str_t slit_79 = FX_MAKE_STR("make_fp_by_fcv"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_79, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_294, 0), _fx_catch_77); - FX_COPY_PTR(v_294.t0, &dst_exp_5); - FX_COPY_PTR(v_294.t1, &ccode_40); + dstexp_r_0, &slit_79, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_299, 0), _fx_catch_77); + FX_COPY_PTR(v_299.t0, &dst_exp_5); + FX_COPY_PTR(v_299.t1, &ccode_38); FX_CALL( - _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&v_293->u.AtomId, - _fx_g23C_form__std_CTypVoidPtr, &kloc_0, &v_295, 0), _fx_catch_77); - FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_exp_5, 0, true, &v_296), _fx_catch_77); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_295, v_296, false, &v_296), _fx_catch_77); + _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&v_298->u.AtomId, + _fx_g23C_form__std_CTypVoidPtr, &kloc_0, &v_300, 0), _fx_catch_77); + FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_exp_5, 0, true, &v_301), _fx_catch_77); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_300, v_301, false, &v_301), _fx_catch_77); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g29C_form__std_FX_MAKE_FP_BY_FCV, v_296, _fx_g20C_gen_code__CTypVoid, &kloc_0, &v_297, 0), + &_fx_g29C_form__std_FX_MAKE_FP_BY_FCV, v_301, _fx_g20C_gen_code__CTypVoid, &kloc_0, &v_302, 0), _fx_catch_77); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_297, ¯o_0), _fx_catch_77); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(macro_0, ccode_40, true, &v_298), _fx_catch_77); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_298, &v_1); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_302, ¯o_0), _fx_catch_77); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(macro_0, ccode_38, true, &v_303), _fx_catch_77); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_303, &v_1); _fx_catch_77: ; - if (v_298) { - _fx_free_LN15C_form__cstmt_t(&v_298); + if (v_303) { + _fx_free_LN15C_form__cstmt_t(&v_303); } if (macro_0) { _fx_free_N15C_form__cstmt_t(¯o_0); } - if (v_297) { - _fx_free_N14C_form__cexp_t(&v_297); + if (v_302) { + _fx_free_N14C_form__cexp_t(&v_302); } - if (v_296) { - _fx_free_LN14C_form__cexp_t(&v_296); + if (v_301) { + _fx_free_LN14C_form__cexp_t(&v_301); } - if (v_295) { - _fx_free_N14C_form__cexp_t(&v_295); + if (v_300) { + _fx_free_N14C_form__cexp_t(&v_300); } - if (ccode_40) { - _fx_free_LN15C_form__cstmt_t(&ccode_40); + if (ccode_38) { + _fx_free_LN15C_form__cstmt_t(&ccode_38); } if (dst_exp_5) { _fx_free_N14C_form__cexp_t(&dst_exp_5); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_294); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_299); goto _fx_endmatch_16; } } @@ -24126,453 +23688,453 @@ static int } if (intr_0->tag == 13) { if (args_0 != 0) { - _fx_LN14K_form__atom_t v_299 = args_0->tl; - if (v_299 != 0) { - _fx_LN14K_form__atom_t v_300 = v_299->tl; - if (v_300 != 0) { - _fx_LN14K_form__atom_t v_301 = v_300->tl; - if (v_301 != 0) { - _fx_LN14K_form__atom_t v_302 = v_301->tl; - if (v_302 != 0) { - _fx_LN14K_form__atom_t v_303 = v_302->tl; - if (v_303 != 0) { - _fx_LN14K_form__atom_t v_304 = v_303->tl; - if (v_304 != 0) { - _fx_LN14K_form__atom_t v_305 = v_304->tl; - if (v_305 != 0) { - _fx_LN14K_form__atom_t v_306 = v_305->tl; - if (v_306 != 0) { - _fx_LN14K_form__atom_t v_307 = v_306->tl; - if (v_307 != 0) { - _fx_LN14K_form__atom_t v_308 = v_307->tl; - if (v_308 != 0) { - _fx_LN14K_form__atom_t v_309 = v_308->tl; - if (v_309 != 0) { - _fx_LN14K_form__atom_t v_310 = v_309->tl; - if (v_310 != 0) { - _fx_LN14K_form__atom_t v_311 = v_310->tl; - if (v_311 != 0) { - _fx_LN14K_form__atom_t v_312 = v_311->tl; - if (v_312 != 0) { - _fx_LN14K_form__atom_t v_313 = v_312->tl; - if (v_313 != 0) { - if (v_313->tl == 0) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_314 = {0}; + _fx_LN14K_form__atom_t v_304 = args_0->tl; + if (v_304 != 0) { + _fx_LN14K_form__atom_t v_305 = v_304->tl; + if (v_305 != 0) { + _fx_LN14K_form__atom_t v_306 = v_305->tl; + if (v_306 != 0) { + _fx_LN14K_form__atom_t v_307 = v_306->tl; + if (v_307 != 0) { + _fx_LN14K_form__atom_t v_308 = v_307->tl; + if (v_308 != 0) { + _fx_LN14K_form__atom_t v_309 = v_308->tl; + if (v_309 != 0) { + _fx_LN14K_form__atom_t v_310 = v_309->tl; + if (v_310 != 0) { + _fx_LN14K_form__atom_t v_311 = v_310->tl; + if (v_311 != 0) { + _fx_LN14K_form__atom_t v_312 = v_311->tl; + if (v_312 != 0) { + _fx_LN14K_form__atom_t v_313 = v_312->tl; + if (v_313 != 0) { + _fx_LN14K_form__atom_t v_314 = v_313->tl; + if (v_314 != 0) { + _fx_LN14K_form__atom_t v_315 = v_314->tl; + if (v_315 != 0) { + _fx_LN14K_form__atom_t v_316 = v_315->tl; + if (v_316 != 0) { + _fx_LN14K_form__atom_t v_317 = v_316->tl; + if (v_317 != 0) { + _fx_LN14K_form__atom_t v_318 = v_317->tl; + if (v_318 != 0) { + if (v_318->tl == 0) { + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_319 = {0}; _fx_N14C_form__cexp_t m1exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_41 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_315 = {0}; + _fx_LN15C_form__cstmt_t ccode_39 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_320 = {0}; _fx_N14C_form__cexp_t t1exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_42 = 0; - _fx_N14K_form__atom_t v_316 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_317 = {0}; + _fx_LN15C_form__cstmt_t ccode_40 = 0; + _fx_N14K_form__atom_t v_321 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_322 = {0}; _fx_N14C_form__cexp_t rs1exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_43 = 0; - _fx_N14K_form__atom_t v_318 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_319 = {0}; + _fx_LN15C_form__cstmt_t ccode_41 = 0; + _fx_N14K_form__atom_t v_323 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_324 = {0}; _fx_N14C_form__cexp_t re1exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_44 = 0; - _fx_N14K_form__atom_t v_320 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_321 = {0}; + _fx_LN15C_form__cstmt_t ccode_42 = 0; + _fx_N14K_form__atom_t v_325 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_326 = {0}; _fx_N14C_form__cexp_t rd1exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_45 = 0; - _fx_N14K_form__atom_t v_322 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_323 = {0}; + _fx_LN15C_form__cstmt_t ccode_43 = 0; + _fx_N14K_form__atom_t v_327 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_328 = {0}; _fx_N14C_form__cexp_t cs1exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_46 = 0; - _fx_N14K_form__atom_t v_324 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_325 = {0}; + _fx_LN15C_form__cstmt_t ccode_44 = 0; + _fx_N14K_form__atom_t v_329 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_330 = {0}; _fx_N14C_form__cexp_t ce1exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_47 = 0; - _fx_N14K_form__atom_t v_326 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_327 = {0}; + _fx_LN15C_form__cstmt_t ccode_45 = 0; + _fx_N14K_form__atom_t v_331 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_332 = {0}; _fx_N14C_form__cexp_t cd1exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_48 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_328 = {0}; + _fx_LN15C_form__cstmt_t ccode_46 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_333 = {0}; _fx_N14C_form__cexp_t m2exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_49 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_329 = {0}; + _fx_LN15C_form__cstmt_t ccode_47 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_334 = {0}; _fx_N14C_form__cexp_t t2exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_50 = 0; - _fx_N14K_form__atom_t v_330 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_331 = {0}; + _fx_LN15C_form__cstmt_t ccode_48 = 0; + _fx_N14K_form__atom_t v_335 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_336 = {0}; _fx_N14C_form__cexp_t rs2exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_51 = 0; - _fx_N14K_form__atom_t v_332 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_333 = {0}; + _fx_LN15C_form__cstmt_t ccode_49 = 0; + _fx_N14K_form__atom_t v_337 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_338 = {0}; _fx_N14C_form__cexp_t re2exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_52 = 0; - _fx_N14K_form__atom_t v_334 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_335 = {0}; + _fx_LN15C_form__cstmt_t ccode_50 = 0; + _fx_N14K_form__atom_t v_339 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_340 = {0}; _fx_N14C_form__cexp_t rd2exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_53 = 0; - _fx_N14K_form__atom_t v_336 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_337 = {0}; + _fx_LN15C_form__cstmt_t ccode_51 = 0; + _fx_N14K_form__atom_t v_341 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_342 = {0}; _fx_N14C_form__cexp_t cs2exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_54 = 0; - _fx_N14K_form__atom_t v_338 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_339 = {0}; + _fx_LN15C_form__cstmt_t ccode_52 = 0; + _fx_N14K_form__atom_t v_343 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_344 = {0}; _fx_N14C_form__cexp_t ce2exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_55 = 0; - _fx_N14K_form__atom_t v_340 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_341 = {0}; + _fx_LN15C_form__cstmt_t ccode_53 = 0; + _fx_N14K_form__atom_t v_345 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_346 = {0}; _fx_N14C_form__cexp_t cd2exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_56 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_342 = {0}; + _fx_LN15C_form__cstmt_t ccode_54 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_347 = {0}; _fx_N14C_form__cexp_t dst_exp_6 = 0; - _fx_LN15C_form__cstmt_t ccode_57 = 0; - _fx_N14C_form__cexp_t v_343 = 0; - _fx_N14C_form__cexp_t v_344 = 0; - _fx_N14C_form__cexp_t v_345 = 0; - _fx_LN14C_form__cexp_t v_346 = 0; + _fx_LN15C_form__cstmt_t ccode_55 = 0; + _fx_N14C_form__cexp_t v_348 = 0; + _fx_N14C_form__cexp_t v_349 = 0; + _fx_N14C_form__cexp_t v_350 = 0; + _fx_LN14C_form__cexp_t v_351 = 0; _fx_N14C_form__cexp_t call_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_58 = 0; + _fx_LN15C_form__cstmt_t ccode_56 = 0; FX_CALL( atom2cexp_0.fp(&args_0->hd, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_314, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_314.t0, &m1exp_0); - FX_COPY_PTR(v_314.t1, &ccode_41); + &v_319, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_319.t0, &m1exp_0); + FX_COPY_PTR(v_319.t1, &ccode_39); FX_CALL( - atom2cexp_0.fp(&v_299->hd, ccode_41, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_304->hd, ccode_39, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_315, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_315.t0, &t1exp_0); - FX_COPY_PTR(v_315.t1, &ccode_42); + &v_320, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_320.t0, &t1exp_0); + FX_COPY_PTR(v_320.t1, &ccode_40); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_300->hd, 0LL, &v_316, 0), _fx_catch_78); + &v_305->hd, 0LL, &v_321, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_316, ccode_42, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_321, ccode_40, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_317, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_317.t0, &rs1exp_0); - FX_COPY_PTR(v_317.t1, &ccode_43); + &v_322, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_322.t0, &rs1exp_0); + FX_COPY_PTR(v_322.t1, &ccode_41); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_301->hd, -1LL, &v_318, 0), _fx_catch_78); + &v_306->hd, -1LL, &v_323, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_318, ccode_43, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_323, ccode_41, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_319, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_319.t0, &re1exp_0); - FX_COPY_PTR(v_319.t1, &ccode_44); + &v_324, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_324.t0, &re1exp_0); + FX_COPY_PTR(v_324.t1, &ccode_42); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_302->hd, 1LL, &v_320, 0), _fx_catch_78); + &v_307->hd, 1LL, &v_325, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_320, ccode_44, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_325, ccode_42, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_321, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_321.t0, &rd1exp_0); - FX_COPY_PTR(v_321.t1, &ccode_45); + &v_326, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_326.t0, &rd1exp_0); + FX_COPY_PTR(v_326.t1, &ccode_43); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_303->hd, 0LL, &v_322, 0), _fx_catch_78); + &v_308->hd, 0LL, &v_327, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_322, ccode_45, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_327, ccode_43, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_323, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_323.t0, &cs1exp_0); - FX_COPY_PTR(v_323.t1, &ccode_46); + &v_328, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_328.t0, &cs1exp_0); + FX_COPY_PTR(v_328.t1, &ccode_44); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_304->hd, -1LL, &v_324, 0), _fx_catch_78); + &v_309->hd, -1LL, &v_329, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_324, ccode_46, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_329, ccode_44, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_325, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_325.t0, &ce1exp_0); - FX_COPY_PTR(v_325.t1, &ccode_47); + &v_330, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_330.t0, &ce1exp_0); + FX_COPY_PTR(v_330.t1, &ccode_45); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_305->hd, 1LL, &v_326, 0), _fx_catch_78); + &v_310->hd, 1LL, &v_331, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_326, ccode_47, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_331, ccode_45, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_327, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_327.t0, &cd1exp_0); - FX_COPY_PTR(v_327.t1, &ccode_48); + &v_332, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_332.t0, &cd1exp_0); + FX_COPY_PTR(v_332.t1, &ccode_46); FX_CALL( - atom2cexp_0.fp(&v_306->hd, ccode_48, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_311->hd, ccode_46, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_328, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_328.t0, &m2exp_0); - FX_COPY_PTR(v_328.t1, &ccode_49); + &v_333, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_333.t0, &m2exp_0); + FX_COPY_PTR(v_333.t1, &ccode_47); FX_CALL( - atom2cexp_0.fp(&v_307->hd, ccode_49, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_312->hd, ccode_47, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_329, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_329.t0, &t2exp_0); - FX_COPY_PTR(v_329.t1, &ccode_50); + &v_334, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_334.t0, &t2exp_0); + FX_COPY_PTR(v_334.t1, &ccode_48); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_308->hd, 0LL, &v_330, 0), _fx_catch_78); + &v_313->hd, 0LL, &v_335, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_330, ccode_50, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_335, ccode_48, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_331, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_331.t0, &rs2exp_0); - FX_COPY_PTR(v_331.t1, &ccode_51); + &v_336, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_336.t0, &rs2exp_0); + FX_COPY_PTR(v_336.t1, &ccode_49); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_309->hd, -1LL, &v_332, 0), _fx_catch_78); + &v_314->hd, -1LL, &v_337, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_332, ccode_51, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_337, ccode_49, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_333, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_333.t0, &re2exp_0); - FX_COPY_PTR(v_333.t1, &ccode_52); + &v_338, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_338.t0, &re2exp_0); + FX_COPY_PTR(v_338.t1, &ccode_50); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_310->hd, 1LL, &v_334, 0), _fx_catch_78); + &v_315->hd, 1LL, &v_339, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_334, ccode_52, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_339, ccode_50, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_335, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_335.t0, &rd2exp_0); - FX_COPY_PTR(v_335.t1, &ccode_53); + &v_340, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_340.t0, &rd2exp_0); + FX_COPY_PTR(v_340.t1, &ccode_51); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_311->hd, 0LL, &v_336, 0), _fx_catch_78); + &v_316->hd, 0LL, &v_341, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_336, ccode_53, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_341, ccode_51, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_337, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_337.t0, &cs2exp_0); - FX_COPY_PTR(v_337.t1, &ccode_54); + &v_342, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_342.t0, &cs2exp_0); + FX_COPY_PTR(v_342.t1, &ccode_52); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_312->hd, -1LL, &v_338, 0), _fx_catch_78); + &v_317->hd, -1LL, &v_343, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_338, ccode_54, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_343, ccode_52, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_339, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_339.t0, &ce2exp_0); - FX_COPY_PTR(v_339.t1, &ccode_55); + &v_344, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_344.t0, &ce2exp_0); + FX_COPY_PTR(v_344.t1, &ccode_53); FX_CALL( _fx_M10C_gen_codeFM10handle_idxN14K_form__atom_t2N14K_form__atom_tl( - &v_313->hd, 1LL, &v_340, 0), _fx_catch_78); + &v_318->hd, 1LL, &v_345, 0), _fx_catch_78); FX_CALL( - atom2cexp_0.fp(&v_340, ccode_55, &kloc_0, block_stack_ref_0, + atom2cexp_0.fp(&v_345, ccode_53, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_341, atom2cexp_0.fcv), _fx_catch_78); - FX_COPY_PTR(v_341.t0, &cd2exp_0); - FX_COPY_PTR(v_341.t1, &ccode_56); + &v_346, atom2cexp_0.fcv), _fx_catch_78); + FX_COPY_PTR(v_346.t0, &cd2exp_0); + FX_COPY_PTR(v_346.t1, &ccode_54); fx_str_t slit_80 = FX_MAKE_STR("gemm"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_80, ctyp_0, ccode_56, &kloc_0, - block_stack_ref_0, km_idx_0, &v_342, 0), _fx_catch_78); - FX_COPY_PTR(v_342.t0, &dst_exp_6); - FX_COPY_PTR(v_342.t1, &ccode_57); - _fx_R9Ast__id_t v_347; + dstexp_r_0, &slit_80, ctyp_0, ccode_54, &kloc_0, + block_stack_ref_0, km_idx_0, &v_347, 0), _fx_catch_78); + FX_COPY_PTR(v_347.t0, &dst_exp_6); + FX_COPY_PTR(v_347.t1, &ccode_55); + _fx_R9Ast__id_t v_352; fx_str_t slit_81 = FX_MAKE_STR("fx_gemm"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_81, &v_347, 0), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_81, &v_352, 0), _fx_catch_78); FX_CALL( _fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t( - m1exp_0, &v_343, 0), _fx_catch_78); + m1exp_0, &v_348, 0), _fx_catch_78); FX_CALL( _fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t( - m2exp_0, &v_344, 0), _fx_catch_78); + m2exp_0, &v_349, 0), _fx_catch_78); FX_CALL( _fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t( - dst_exp_6, &v_345, 0), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_345, 0, true, &v_346), + dst_exp_6, &v_350, 0), _fx_catch_78); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_350, 0, true, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(cd2exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(cd2exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ce2exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(ce2exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(cs2exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(cs2exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(rd2exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(rd2exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(re2exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(re2exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(rs2exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(rs2exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(t2exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(t2exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_344, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_349, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(cd1exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(cd1exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(cs1exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(cs1exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(rd1exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(rd1exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(re1exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(re1exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(rs1exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(rs1exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(t1exp_0, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(t1exp_0, v_351, false, &v_351), _fx_catch_78); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_343, v_346, false, &v_346), + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_348, v_351, false, &v_351), _fx_catch_78); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_347, v_346, _fx_g20C_gen_code__CTypVoid, &kloc_0, + &v_352, v_351, _fx_g20C_gen_code__CTypVoid, &kloc_0, &call_exp_1, 0), _fx_catch_78); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - call_exp_1, ccode_57, &kloc_0, block_stack_ref_0, &ccode_58, + call_exp_1, ccode_55, &kloc_0, block_stack_ref_0, &ccode_56, 0), _fx_catch_78); _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_6, - ccode_58, &v_1); + ccode_56, &v_1); _fx_catch_78: ; - if (ccode_58) { - _fx_free_LN15C_form__cstmt_t(&ccode_58); + if (ccode_56) { + _fx_free_LN15C_form__cstmt_t(&ccode_56); } if (call_exp_1) { _fx_free_N14C_form__cexp_t(&call_exp_1); } - if (v_346) { - _fx_free_LN14C_form__cexp_t(&v_346); + if (v_351) { + _fx_free_LN14C_form__cexp_t(&v_351); } - if (v_345) { - _fx_free_N14C_form__cexp_t(&v_345); + if (v_350) { + _fx_free_N14C_form__cexp_t(&v_350); } - if (v_344) { - _fx_free_N14C_form__cexp_t(&v_344); + if (v_349) { + _fx_free_N14C_form__cexp_t(&v_349); } - if (v_343) { - _fx_free_N14C_form__cexp_t(&v_343); + if (v_348) { + _fx_free_N14C_form__cexp_t(&v_348); } - if (ccode_57) { - _fx_free_LN15C_form__cstmt_t(&ccode_57); + if (ccode_55) { + _fx_free_LN15C_form__cstmt_t(&ccode_55); } if (dst_exp_6) { _fx_free_N14C_form__cexp_t(&dst_exp_6); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_342); - if (ccode_56) { - _fx_free_LN15C_form__cstmt_t(&ccode_56); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_347); + if (ccode_54) { + _fx_free_LN15C_form__cstmt_t(&ccode_54); } if (cd2exp_0) { _fx_free_N14C_form__cexp_t(&cd2exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_341); - _fx_free_N14K_form__atom_t(&v_340); - if (ccode_55) { - _fx_free_LN15C_form__cstmt_t(&ccode_55); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_346); + _fx_free_N14K_form__atom_t(&v_345); + if (ccode_53) { + _fx_free_LN15C_form__cstmt_t(&ccode_53); } if (ce2exp_0) { _fx_free_N14C_form__cexp_t(&ce2exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_339); - _fx_free_N14K_form__atom_t(&v_338); - if (ccode_54) { - _fx_free_LN15C_form__cstmt_t(&ccode_54); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_344); + _fx_free_N14K_form__atom_t(&v_343); + if (ccode_52) { + _fx_free_LN15C_form__cstmt_t(&ccode_52); } if (cs2exp_0) { _fx_free_N14C_form__cexp_t(&cs2exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_337); - _fx_free_N14K_form__atom_t(&v_336); - if (ccode_53) { - _fx_free_LN15C_form__cstmt_t(&ccode_53); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_342); + _fx_free_N14K_form__atom_t(&v_341); + if (ccode_51) { + _fx_free_LN15C_form__cstmt_t(&ccode_51); } if (rd2exp_0) { _fx_free_N14C_form__cexp_t(&rd2exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_335); - _fx_free_N14K_form__atom_t(&v_334); - if (ccode_52) { - _fx_free_LN15C_form__cstmt_t(&ccode_52); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_340); + _fx_free_N14K_form__atom_t(&v_339); + if (ccode_50) { + _fx_free_LN15C_form__cstmt_t(&ccode_50); } if (re2exp_0) { _fx_free_N14C_form__cexp_t(&re2exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_333); - _fx_free_N14K_form__atom_t(&v_332); - if (ccode_51) { - _fx_free_LN15C_form__cstmt_t(&ccode_51); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_338); + _fx_free_N14K_form__atom_t(&v_337); + if (ccode_49) { + _fx_free_LN15C_form__cstmt_t(&ccode_49); } if (rs2exp_0) { _fx_free_N14C_form__cexp_t(&rs2exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_331); - _fx_free_N14K_form__atom_t(&v_330); - if (ccode_50) { - _fx_free_LN15C_form__cstmt_t(&ccode_50); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_336); + _fx_free_N14K_form__atom_t(&v_335); + if (ccode_48) { + _fx_free_LN15C_form__cstmt_t(&ccode_48); } if (t2exp_0) { _fx_free_N14C_form__cexp_t(&t2exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_329); - if (ccode_49) { - _fx_free_LN15C_form__cstmt_t(&ccode_49); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_334); + if (ccode_47) { + _fx_free_LN15C_form__cstmt_t(&ccode_47); } if (m2exp_0) { _fx_free_N14C_form__cexp_t(&m2exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_328); - if (ccode_48) { - _fx_free_LN15C_form__cstmt_t(&ccode_48); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_333); + if (ccode_46) { + _fx_free_LN15C_form__cstmt_t(&ccode_46); } if (cd1exp_0) { _fx_free_N14C_form__cexp_t(&cd1exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_327); - _fx_free_N14K_form__atom_t(&v_326); - if (ccode_47) { - _fx_free_LN15C_form__cstmt_t(&ccode_47); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_332); + _fx_free_N14K_form__atom_t(&v_331); + if (ccode_45) { + _fx_free_LN15C_form__cstmt_t(&ccode_45); } if (ce1exp_0) { _fx_free_N14C_form__cexp_t(&ce1exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_325); - _fx_free_N14K_form__atom_t(&v_324); - if (ccode_46) { - _fx_free_LN15C_form__cstmt_t(&ccode_46); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_330); + _fx_free_N14K_form__atom_t(&v_329); + if (ccode_44) { + _fx_free_LN15C_form__cstmt_t(&ccode_44); } if (cs1exp_0) { _fx_free_N14C_form__cexp_t(&cs1exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_323); - _fx_free_N14K_form__atom_t(&v_322); - if (ccode_45) { - _fx_free_LN15C_form__cstmt_t(&ccode_45); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_328); + _fx_free_N14K_form__atom_t(&v_327); + if (ccode_43) { + _fx_free_LN15C_form__cstmt_t(&ccode_43); } if (rd1exp_0) { _fx_free_N14C_form__cexp_t(&rd1exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_321); - _fx_free_N14K_form__atom_t(&v_320); - if (ccode_44) { - _fx_free_LN15C_form__cstmt_t(&ccode_44); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_326); + _fx_free_N14K_form__atom_t(&v_325); + if (ccode_42) { + _fx_free_LN15C_form__cstmt_t(&ccode_42); } if (re1exp_0) { _fx_free_N14C_form__cexp_t(&re1exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_319); - _fx_free_N14K_form__atom_t(&v_318); - if (ccode_43) { - _fx_free_LN15C_form__cstmt_t(&ccode_43); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_324); + _fx_free_N14K_form__atom_t(&v_323); + if (ccode_41) { + _fx_free_LN15C_form__cstmt_t(&ccode_41); } if (rs1exp_0) { _fx_free_N14C_form__cexp_t(&rs1exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_317); - _fx_free_N14K_form__atom_t(&v_316); - if (ccode_42) { - _fx_free_LN15C_form__cstmt_t(&ccode_42); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_322); + _fx_free_N14K_form__atom_t(&v_321); + if (ccode_40) { + _fx_free_LN15C_form__cstmt_t(&ccode_40); } if (t1exp_0) { _fx_free_N14C_form__cexp_t(&t1exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_315); - if (ccode_41) { - _fx_free_LN15C_form__cstmt_t(&ccode_41); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_320); + if (ccode_39) { + _fx_free_LN15C_form__cstmt_t(&ccode_39); } if (m1exp_0) { _fx_free_N14C_form__cexp_t(&m1exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_314); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_319); goto _fx_endmatch_16; } } @@ -24593,68 +24155,53 @@ static int } } if (intr_0->tag == 16) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___1 = {0}; - _fx_LN14K_form__atom_t args_2 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_348 = {0}; _fx_LN14C_form__cexp_t cargs_0 = 0; - _fx_LN15C_form__cstmt_t ccode_59 = 0; + _fx_LN15C_form__cstmt_t ccode_57 = 0; + _fx_LN14K_form__atom_t args_2 = 0; fx_str_t fname_0 = {0}; - _fx_N14K_form__atom_t v_349 = {0}; + _fx_N14K_form__atom_t v_353 = {0}; _fx_N14K_form__ktyp_t argtyp_0 = 0; fx_str_t prefix_0 = {0}; fx_str_t suffix_0 = {0}; fx_str_t fname_1 = {0}; - _fx_LN14C_form__cexp_t v_350 = 0; + _fx_LN14C_form__cexp_t v_354 = 0; _fx_N14C_form__cexp_t call_f_0 = 0; - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, ccode_0, &__fold_result___1); + FX_COPY_PTR(ccode_0, &ccode_57); FX_COPY_PTR(args_0, &args_2); _fx_LN14K_form__atom_t lst_3 = args_2; for (; lst_3; lst_3 = lst_3->tl) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_351 = {0}; - _fx_LN14C_form__cexp_t cargs_1 = 0; - _fx_LN15C_form__cstmt_t ccode_60 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_352 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_355 = {0}; _fx_N14C_form__cexp_t c_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_61 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_353 = {0}; + _fx_LN15C_form__cstmt_t ccode1_1 = 0; + _fx_LN14C_form__cexp_t v_356 = 0; _fx_N14K_form__atom_t* a_1 = &lst_3->hd; - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___1, &v_351); - FX_COPY_PTR(v_351.t0, &cargs_1); - FX_COPY_PTR(v_351.t1, &ccode_60); FX_CALL( - atom2cexp_0.fp(a_1, ccode_60, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_352, atom2cexp_0.fcv), _fx_catch_79); - FX_COPY_PTR(v_352.t0, &c_exp_1); - FX_COPY_PTR(v_352.t1, &ccode_61); - FX_CALL(_fx_cons_LN14C_form__cexp_t(c_exp_1, cargs_1, false, &cargs_1), _fx_catch_79); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(cargs_1, ccode_61, &v_353); - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___1); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_353, &__fold_result___1); + atom2cexp_0.fp(a_1, ccode_57, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_355, atom2cexp_0.fcv), _fx_catch_79); + FX_COPY_PTR(v_355.t0, &c_exp_1); + FX_COPY_PTR(v_355.t1, &ccode1_1); + FX_CALL(_fx_cons_LN14C_form__cexp_t(c_exp_1, cargs_0, true, &v_356), _fx_catch_79); + _fx_free_LN14C_form__cexp_t(&cargs_0); + FX_COPY_PTR(v_356, &cargs_0); + _fx_free_LN15C_form__cstmt_t(&ccode_57); + FX_COPY_PTR(ccode1_1, &ccode_57); _fx_catch_79: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_353); - if (ccode_61) { - _fx_free_LN15C_form__cstmt_t(&ccode_61); + if (v_356) { + _fx_free_LN14C_form__cexp_t(&v_356); + } + if (ccode1_1) { + _fx_free_LN15C_form__cstmt_t(&ccode1_1); } if (c_exp_1) { _fx_free_N14C_form__cexp_t(&c_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_352); - if (ccode_60) { - _fx_free_LN15C_form__cstmt_t(&ccode_60); - } - if (cargs_1) { - _fx_free_LN14C_form__cexp_t(&cargs_1); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_351); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_355); FX_CHECK_EXN(_fx_catch_80); } - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___1, &v_348); - FX_COPY_PTR(v_348.t0, &cargs_0); - FX_COPY_PTR(v_348.t1, &ccode_59); FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&intr_0->u.IntrinMath, &fname_0, 0), _fx_catch_80); - FX_CALL(_fx_M10C_gen_codeFM2hdN14K_form__atom_t1LN14K_form__atom_t(args_0, &v_349, 0), _fx_catch_80); - FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(&v_349, &kloc_0, &argtyp_0, 0), + FX_CALL(_fx_M10C_gen_codeFM2hdN14K_form__atom_t1LN14K_form__atom_t(args_0, &v_353, 0), _fx_catch_80); + FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(&v_353, &kloc_0, &argtyp_0, 0), _fx_catch_80); bool res_10; fx_str_t slit_82 = FX_MAKE_STR("floor"); @@ -24704,23 +24251,23 @@ static int _fx_endmatch_14: ; FX_CHECK_EXN(_fx_catch_80); { - const fx_str_t strs_17[] = { prefix_0, fname_0, suffix_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_17, 3, &fname_1), _fx_catch_80); + const fx_str_t strs_16[] = { prefix_0, fname_0, suffix_0 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_16, 3, &fname_1), _fx_catch_80); } - _fx_R9Ast__id_t v_354; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&fname_1, &v_354, 0), _fx_catch_80); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(cargs_0, &v_350, 0), _fx_catch_80); + _fx_R9Ast__id_t v_357; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&fname_1, &v_357, 0), _fx_catch_80); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(cargs_0, &v_354, 0), _fx_catch_80); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_354, v_350, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_357, v_354, ctyp_0, &kloc_0, &call_f_0, 0), _fx_catch_80); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, call_f_0, ccode_59, &v_1); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, call_f_0, ccode_57, &v_1); _fx_catch_80: ; if (call_f_0) { _fx_free_N14C_form__cexp_t(&call_f_0); } - if (v_350) { - _fx_free_LN14C_form__cexp_t(&v_350); + if (v_354) { + _fx_free_LN14C_form__cexp_t(&v_354); } FX_FREE_STR(&fname_1); FX_FREE_STR(&suffix_0); @@ -24728,39 +24275,37 @@ static int if (argtyp_0) { _fx_free_N14K_form__ktyp_t(&argtyp_0); } - _fx_free_N14K_form__atom_t(&v_349); + _fx_free_N14K_form__atom_t(&v_353); FX_FREE_STR(&fname_0); - if (ccode_59) { - _fx_free_LN15C_form__cstmt_t(&ccode_59); + if (args_2) { + _fx_free_LN14K_form__atom_t(&args_2); + } + if (ccode_57) { + _fx_free_LN15C_form__cstmt_t(&ccode_57); } if (cargs_0) { _fx_free_LN14C_form__cexp_t(&cargs_0); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_348); - if (args_2) { - _fx_free_LN14K_form__atom_t(&args_2); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___1); goto _fx_endmatch_16; } if (args_0 != 0) { if (args_0->tl == 0) { if (intr_0->tag == 17) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_355 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_358 = {0}; _fx_N14C_form__cexp_t c_exp_2 = 0; - _fx_LN15C_form__cstmt_t ccode_62 = 0; + _fx_LN15C_form__cstmt_t ccode_58 = 0; _fx_N14K_form__ktyp_t argtyp_1 = 0; fx_str_t prefix_1 = {0}; fx_str_t suffix_1 = {0}; fx_str_t fname_2 = {0}; - _fx_LN14C_form__cexp_t v_356 = 0; + _fx_LN14C_form__cexp_t v_359 = 0; _fx_N14C_form__cexp_t call_f_1 = 0; _fx_N14K_form__atom_t* arg_0 = &args_0->hd; FX_CALL( atom2cexp_0.fp(arg_0, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_355, atom2cexp_0.fcv), _fx_catch_85); - FX_COPY_PTR(v_355.t0, &c_exp_2); - FX_COPY_PTR(v_355.t1, &ccode_62); + km_idx_0, &v_358, atom2cexp_0.fcv), _fx_catch_85); + FX_COPY_PTR(v_358.t0, &c_exp_2); + FX_COPY_PTR(v_358.t1, &ccode_58); FX_CALL( _fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(arg_0, &kloc_0, &argtyp_1, 0), _fx_catch_85); @@ -24778,93 +24323,93 @@ static int fx_str_t slit_94 = FX_MAKE_STR("sat_d2"); fx_copy_str(&slit_94, &prefix_1); goto _fx_endmatch_15; } } - fx_str_t v_357 = {0}; - fx_str_t v_358 = {0}; - fx_exn_t v_359 = {0}; - FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(argtyp_1, &v_357, 0), _fx_catch_81); + fx_str_t v_360 = {0}; + fx_str_t v_361 = {0}; + fx_exn_t v_362 = {0}; + FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(argtyp_1, &v_360, 0), _fx_catch_81); fx_str_t slit_95 = FX_MAKE_STR("cgen: unsupported argument type "); fx_str_t slit_96 = FX_MAKE_STR(" of sat_...() intrinsic"); { - const fx_str_t strs_18[] = { slit_95, v_357, slit_96 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_18, 3, &v_358), _fx_catch_81); + const fx_str_t strs_17[] = { slit_95, v_360, slit_96 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_17, 3, &v_361), _fx_catch_81); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_358, &v_359, 0), _fx_catch_81); - FX_THROW(&v_359, false, _fx_catch_81); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_361, &v_362, 0), _fx_catch_81); + FX_THROW(&v_362, false, _fx_catch_81); _fx_catch_81: ; - fx_free_exn(&v_359); - FX_FREE_STR(&v_358); - FX_FREE_STR(&v_357); + fx_free_exn(&v_362); + FX_FREE_STR(&v_361); + FX_FREE_STR(&v_360); _fx_endmatch_15: ; FX_CHECK_EXN(_fx_catch_85); int tag_11 = FX_REC_VARIANT_TAG(ctyp_0); if (tag_11 == 5) { - fx_str_t v_360 = {0}; - FX_CALL(_fx_F6stringS1i(ctyp_0->u.CTypUInt, &v_360, 0), _fx_catch_82); + fx_str_t v_363 = {0}; + FX_CALL(_fx_F6stringS1i(ctyp_0->u.CTypUInt, &v_363, 0), _fx_catch_82); fx_str_t slit_97 = FX_MAKE_STR("u"); { - const fx_str_t strs_19[] = { slit_97, v_360 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_19, 2, &suffix_1), _fx_catch_82); + const fx_str_t strs_18[] = { slit_97, v_363 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_18, 2, &suffix_1), _fx_catch_82); } _fx_catch_82: ; - FX_FREE_STR(&v_360); + FX_FREE_STR(&v_363); } else if (tag_11 == 4) { - fx_str_t v_361 = {0}; - FX_CALL(_fx_F6stringS1i(ctyp_0->u.CTypSInt, &v_361, 0), _fx_catch_83); + fx_str_t v_364 = {0}; + FX_CALL(_fx_F6stringS1i(ctyp_0->u.CTypSInt, &v_364, 0), _fx_catch_83); fx_str_t slit_98 = FX_MAKE_STR("i"); { - const fx_str_t strs_20[] = { slit_98, v_361 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_20, 2, &suffix_1), _fx_catch_83); + const fx_str_t strs_19[] = { slit_98, v_364 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_19, 2, &suffix_1), _fx_catch_83); } _fx_catch_83: ; - FX_FREE_STR(&v_361); + FX_FREE_STR(&v_364); } else { - _fx_T2SR9Ast__id_t v_362 = {0}; - fx_str_t v_363 = {0}; - fx_str_t v_364 = {0}; - fx_exn_t v_365 = {0}; - FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_362, 0), + _fx_T2SR9Ast__id_t v_365 = {0}; + fx_str_t v_366 = {0}; + fx_str_t v_367 = {0}; + fx_exn_t v_368 = {0}; + FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_365, 0), _fx_catch_84); - FX_CALL(_fx_M10C_gen_codeFM6stringS1T2SR9Ast__id_t(&v_362, &v_363, 0), _fx_catch_84); + FX_CALL(_fx_M10C_gen_codeFM6stringS1T2SR9Ast__id_t(&v_365, &v_366, 0), _fx_catch_84); fx_str_t slit_99 = FX_MAKE_STR("cgen: unsupported return type "); fx_str_t slit_100 = FX_MAKE_STR(" of sat_...() intrinsic"); { - const fx_str_t strs_21[] = { slit_99, v_363, slit_100 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_21, 3, &v_364), _fx_catch_84); + const fx_str_t strs_20[] = { slit_99, v_366, slit_100 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_20, 3, &v_367), _fx_catch_84); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_364, &v_365, 0), _fx_catch_84); - FX_THROW(&v_365, false, _fx_catch_84); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_367, &v_368, 0), _fx_catch_84); + FX_THROW(&v_368, false, _fx_catch_84); _fx_catch_84: ; - fx_free_exn(&v_365); - FX_FREE_STR(&v_364); - FX_FREE_STR(&v_363); - _fx_free_T2SR9Ast__id_t(&v_362); + fx_free_exn(&v_368); + FX_FREE_STR(&v_367); + FX_FREE_STR(&v_366); + _fx_free_T2SR9Ast__id_t(&v_365); } FX_CHECK_EXN(_fx_catch_85); { - const fx_str_t strs_22[] = { prefix_1, suffix_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_22, 2, &fname_2), _fx_catch_85); + const fx_str_t strs_21[] = { prefix_1, suffix_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_21, 2, &fname_2), _fx_catch_85); } - _fx_R9Ast__id_t v_366; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&fname_2, &v_366, 0), _fx_catch_85); - FX_CALL(_fx_cons_LN14C_form__cexp_t(c_exp_2, 0, true, &v_356), _fx_catch_85); + _fx_R9Ast__id_t v_369; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&fname_2, &v_369, 0), _fx_catch_85); + FX_CALL(_fx_cons_LN14C_form__cexp_t(c_exp_2, 0, true, &v_359), _fx_catch_85); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_366, - v_356, ctyp_0, &kloc_0, &call_f_1, 0), _fx_catch_85); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, call_f_1, ccode_62, &v_1); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_369, + v_359, ctyp_0, &kloc_0, &call_f_1, 0), _fx_catch_85); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, call_f_1, ccode_58, &v_1); _fx_catch_85: ; if (call_f_1) { _fx_free_N14C_form__cexp_t(&call_f_1); } - if (v_356) { - _fx_free_LN14C_form__cexp_t(&v_356); + if (v_359) { + _fx_free_LN14C_form__cexp_t(&v_359); } FX_FREE_STR(&fname_2); FX_FREE_STR(&suffix_1); @@ -24872,88 +24417,73 @@ static int if (argtyp_1) { _fx_free_N14K_form__ktyp_t(&argtyp_1); } - if (ccode_62) { - _fx_free_LN15C_form__cstmt_t(&ccode_62); + if (ccode_58) { + _fx_free_LN15C_form__cstmt_t(&ccode_58); } if (c_exp_2) { _fx_free_N14C_form__cexp_t(&c_exp_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_355); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_358); goto _fx_endmatch_16; } } } if (intr_0->tag == 14) { if (args_0 != 0) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_367 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_370 = {0}; _fx_N14C_form__cexp_t arr_exp_2 = 0; - _fx_LN15C_form__cstmt_t ccode_63 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___2 = {0}; - _fx_LN14K_form__atom_t idxs_0 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_368 = {0}; + _fx_LN15C_form__cstmt_t ccode_59 = 0; _fx_LN14C_form__cexp_t i_exps_0 = 0; - _fx_LN15C_form__cstmt_t ccode_64 = 0; - _fx_N14C_form__cexp_t v_369 = 0; + _fx_LN15C_form__cstmt_t ccode_60 = 0; + _fx_LN14K_form__atom_t idxs_0 = 0; + _fx_N14C_form__cexp_t v_371 = 0; _fx_LN14C_form__cexp_t i_exps_1 = 0; _fx_N14C_form__ctyp_t elem_ctyp_0 = 0; - _fx_N14C_form__cexp_t v_370 = 0; - _fx_LN14C_form__cexp_t v_371 = 0; - _fx_LN14C_form__cexp_t v_372 = 0; - _fx_N14C_form__ctyp_t v_373 = 0; + _fx_N14C_form__cexp_t v_372 = 0; + _fx_LN14C_form__cexp_t v_373 = 0; + _fx_LN14C_form__cexp_t v_374 = 0; + _fx_N14C_form__ctyp_t v_375 = 0; _fx_N14C_form__cexp_t get_slice_exp_0 = 0; FX_CALL( atom2cexp_0.fp(&args_0->hd, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_367, atom2cexp_0.fcv), _fx_catch_88); - FX_COPY_PTR(v_367.t0, &arr_exp_2); - FX_COPY_PTR(v_367.t1, &ccode_63); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, ccode_63, &__fold_result___2); + km_idx_0, &v_370, atom2cexp_0.fcv), _fx_catch_88); + FX_COPY_PTR(v_370.t0, &arr_exp_2); + FX_COPY_PTR(v_370.t1, &ccode_59); + FX_COPY_PTR(ccode_59, &ccode_60); FX_COPY_PTR(args_0->tl, &idxs_0); _fx_LN14K_form__atom_t lst_4 = idxs_0; for (; lst_4; lst_4 = lst_4->tl) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_374 = {0}; - _fx_LN14C_form__cexp_t i_exps_2 = 0; - _fx_LN15C_form__cstmt_t ccode_65 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_375 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_376 = {0}; _fx_N14C_form__cexp_t i_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_66 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_376 = {0}; + _fx_LN15C_form__cstmt_t ccode1_2 = 0; + _fx_LN14C_form__cexp_t v_377 = 0; _fx_N14K_form__atom_t* i_4 = &lst_4->hd; - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___2, &v_374); - FX_COPY_PTR(v_374.t0, &i_exps_2); - FX_COPY_PTR(v_374.t1, &ccode_65); FX_CALL( - atom2cexp_0.fp(i_4, ccode_65, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_375, atom2cexp_0.fcv), _fx_catch_86); - FX_COPY_PTR(v_375.t0, &i_exp_0); - FX_COPY_PTR(v_375.t1, &ccode_66); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_0, i_exps_2, false, &i_exps_2), _fx_catch_86); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(i_exps_2, ccode_66, &v_376); - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___2); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_376, &__fold_result___2); + atom2cexp_0.fp(i_4, ccode_60, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_376, atom2cexp_0.fcv), _fx_catch_86); + FX_COPY_PTR(v_376.t0, &i_exp_0); + FX_COPY_PTR(v_376.t1, &ccode1_2); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_0, i_exps_0, true, &v_377), _fx_catch_86); + _fx_free_LN14C_form__cexp_t(&i_exps_0); + FX_COPY_PTR(v_377, &i_exps_0); + _fx_free_LN15C_form__cstmt_t(&ccode_60); + FX_COPY_PTR(ccode1_2, &ccode_60); _fx_catch_86: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_376); - if (ccode_66) { - _fx_free_LN15C_form__cstmt_t(&ccode_66); + if (v_377) { + _fx_free_LN14C_form__cexp_t(&v_377); + } + if (ccode1_2) { + _fx_free_LN15C_form__cstmt_t(&ccode1_2); } if (i_exp_0) { _fx_free_N14C_form__cexp_t(&i_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_375); - if (ccode_65) { - _fx_free_LN15C_form__cstmt_t(&ccode_65); - } - if (i_exps_2) { - _fx_free_LN14C_form__cexp_t(&i_exps_2); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_374); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_376); FX_CHECK_EXN(_fx_catch_88); } - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___2, &v_368); - FX_COPY_PTR(v_368.t0, &i_exps_0); - FX_COPY_PTR(v_368.t1, &ccode_64); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_369, 0), _fx_catch_88); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_369, i_exps_0, true, &i_exps_1), _fx_catch_88); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_371, 0), _fx_catch_88); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_371, i_exps_0, true, &i_exps_1), _fx_catch_88); int_ ndims_1; FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14C_form__cexp_t(i_exps_1, &ndims_1, 0), _fx_catch_88); _fx_R9Ast__id_t fname_3; @@ -24963,55 +24493,55 @@ static int FX_COPY_PTR(ctyp_0->u.CTypRawPtr.t1, &elem_ctyp_0); } else { - _fx_T2SR9Ast__id_t v_377 = {0}; - fx_str_t v_378 = {0}; + _fx_T2SR9Ast__id_t v_378 = {0}; fx_str_t v_379 = {0}; - fx_exn_t v_380 = {0}; - FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_377, 0), + fx_str_t v_380 = {0}; + fx_exn_t v_381 = {0}; + FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_378, 0), _fx_catch_87); - FX_CALL(_fx_M10C_gen_codeFM6stringS1T2SR9Ast__id_t(&v_377, &v_378, 0), _fx_catch_87); + FX_CALL(_fx_M10C_gen_codeFM6stringS1T2SR9Ast__id_t(&v_378, &v_379, 0), _fx_catch_87); fx_str_t slit_101 = FX_MAKE_STR("cgen: unexpected return type "); fx_str_t slit_102 = FX_MAKE_STR(" of IntrinGetSlice() intrinsic; should be raw pointer"); { - const fx_str_t strs_23[] = { slit_101, v_378, slit_102 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_23, 3, &v_379), _fx_catch_87); + const fx_str_t strs_22[] = { slit_101, v_379, slit_102 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_22, 3, &v_380), _fx_catch_87); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_379, &v_380, 0), _fx_catch_87); - FX_THROW(&v_380, false, _fx_catch_87); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_380, &v_381, 0), _fx_catch_87); + FX_THROW(&v_381, false, _fx_catch_87); _fx_catch_87: ; - fx_free_exn(&v_380); + fx_free_exn(&v_381); + FX_FREE_STR(&v_380); FX_FREE_STR(&v_379); - FX_FREE_STR(&v_378); - _fx_free_T2SR9Ast__id_t(&v_377); + _fx_free_T2SR9Ast__id_t(&v_378); } FX_CHECK_EXN(_fx_catch_88); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elem_ctyp_0, &kloc_0, &v_370), + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elem_ctyp_0, &kloc_0, &v_372), _fx_catch_88); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_1, &v_371, 0), _fx_catch_88); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_2, v_371, true, &v_372), _fx_catch_88); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_370, v_372, false, &v_372), _fx_catch_88); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elem_ctyp_0, &v_373, 0), _fx_catch_88); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_1, &v_373, 0), _fx_catch_88); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_2, v_373, true, &v_374), _fx_catch_88); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_372, v_374, false, &v_374), _fx_catch_88); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elem_ctyp_0, &v_375, 0), _fx_catch_88); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&fname_3, - v_372, v_373, &kloc_0, &get_slice_exp_0, 0), _fx_catch_88); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_slice_exp_0, ccode_64, &v_1); + v_374, v_375, &kloc_0, &get_slice_exp_0, 0), _fx_catch_88); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_slice_exp_0, ccode_60, &v_1); _fx_catch_88: ; if (get_slice_exp_0) { _fx_free_N14C_form__cexp_t(&get_slice_exp_0); } - if (v_373) { - _fx_free_N14C_form__ctyp_t(&v_373); + if (v_375) { + _fx_free_N14C_form__ctyp_t(&v_375); } - if (v_372) { - _fx_free_LN14C_form__cexp_t(&v_372); + if (v_374) { + _fx_free_LN14C_form__cexp_t(&v_374); } - if (v_371) { - _fx_free_LN14C_form__cexp_t(&v_371); + if (v_373) { + _fx_free_LN14C_form__cexp_t(&v_373); } - if (v_370) { - _fx_free_N14C_form__cexp_t(&v_370); + if (v_372) { + _fx_free_N14C_form__cexp_t(&v_372); } if (elem_ctyp_0) { _fx_free_N14C_form__ctyp_t(&elem_ctyp_0); @@ -25019,106 +24549,104 @@ static int if (i_exps_1) { _fx_free_LN14C_form__cexp_t(&i_exps_1); } - if (v_369) { - _fx_free_N14C_form__cexp_t(&v_369); + if (v_371) { + _fx_free_N14C_form__cexp_t(&v_371); } - if (ccode_64) { - _fx_free_LN15C_form__cstmt_t(&ccode_64); + if (idxs_0) { + _fx_free_LN14K_form__atom_t(&idxs_0); + } + if (ccode_60) { + _fx_free_LN15C_form__cstmt_t(&ccode_60); } if (i_exps_0) { _fx_free_LN14C_form__cexp_t(&i_exps_0); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_368); - if (idxs_0) { - _fx_free_LN14K_form__atom_t(&idxs_0); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___2); - if (ccode_63) { - _fx_free_LN15C_form__cstmt_t(&ccode_63); + if (ccode_59) { + _fx_free_LN15C_form__cstmt_t(&ccode_59); } if (arr_exp_2) { _fx_free_N14C_form__cexp_t(&arr_exp_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_367); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_370); goto _fx_endmatch_16; } } if (intr_0->tag == 15) { if (args_0 != 0) { - _fx_LN14K_form__atom_t v_381 = args_0->tl; - if (v_381 != 0) { - if (v_381->tl == 0) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_382 = {0}; - _fx_N14C_form__cexp_t ptr_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_67 = 0; + _fx_LN14K_form__atom_t v_382 = args_0->tl; + if (v_382 != 0) { + if (v_382->tl == 0) { _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_383 = {0}; + _fx_N14C_form__cexp_t ptr_exp_0 = 0; + _fx_LN15C_form__cstmt_t ccode_61 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_384 = {0}; _fx_N14C_form__cexp_t i_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_68 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_384 = {0}; + _fx_LN15C_form__cstmt_t ccode_62 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_385 = {0}; _fx_N14C_form__cexp_t get_elem_exp_0 = 0; FX_CALL( atom2cexp_0.fp(&args_0->hd, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_382, atom2cexp_0.fcv), _fx_catch_89); - FX_COPY_PTR(v_382.t0, &ptr_exp_0); - FX_COPY_PTR(v_382.t1, &ccode_67); - FX_CALL( - atom2cexp_0.fp(&v_381->hd, ccode_67, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_383, atom2cexp_0.fcv), _fx_catch_89); - FX_COPY_PTR(v_383.t0, &i_exp_1); - FX_COPY_PTR(v_383.t1, &ccode_68); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_384); + FX_COPY_PTR(v_383.t0, &ptr_exp_0); + FX_COPY_PTR(v_383.t1, &ccode_61); + FX_CALL( + atom2cexp_0.fp(&v_382->hd, ccode_61, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, + i2e_ref_0, km_idx_0, &v_384, atom2cexp_0.fcv), _fx_catch_89); + FX_COPY_PTR(v_384.t0, &i_exp_1); + FX_COPY_PTR(v_384.t1, &ccode_62); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_385); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g24C_gen_code__COpArrayElem, ptr_exp_0, i_exp_1, &v_384, &get_elem_exp_0), _fx_catch_89); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_elem_exp_0, ccode_68, &v_1); + &_fx_g24C_gen_code__COpArrayElem, ptr_exp_0, i_exp_1, &v_385, &get_elem_exp_0), _fx_catch_89); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_elem_exp_0, ccode_62, &v_1); _fx_catch_89: ; if (get_elem_exp_0) { _fx_free_N14C_form__cexp_t(&get_elem_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_384); - if (ccode_68) { - _fx_free_LN15C_form__cstmt_t(&ccode_68); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_385); + if (ccode_62) { + _fx_free_LN15C_form__cstmt_t(&ccode_62); } if (i_exp_1) { _fx_free_N14C_form__cexp_t(&i_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_383); - if (ccode_67) { - _fx_free_LN15C_form__cstmt_t(&ccode_67); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_384); + if (ccode_61) { + _fx_free_LN15C_form__cstmt_t(&ccode_61); } if (ptr_exp_0) { _fx_free_N14C_form__cexp_t(&ptr_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_382); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_383); goto _fx_endmatch_16; } } } } - fx_str_t v_385 = {0}; fx_str_t v_386 = {0}; fx_str_t v_387 = {0}; - fx_exn_t v_388 = {0}; - FX_CALL(_fx_M3AstFM6stringS1N13Ast__intrin_t(intr_0, &v_385, 0), _fx_catch_90); - int_ v_389; - FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14K_form__atom_t(args_0, &v_389, 0), _fx_catch_90); - FX_CALL(_fx_F6stringS1i(v_389, &v_386, 0), _fx_catch_90); + fx_str_t v_388 = {0}; + fx_exn_t v_389 = {0}; + FX_CALL(_fx_M3AstFM6stringS1N13Ast__intrin_t(intr_0, &v_386, 0), _fx_catch_90); + int_ v_390; + FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14K_form__atom_t(args_0, &v_390, 0), _fx_catch_90); + FX_CALL(_fx_F6stringS1i(v_390, &v_387, 0), _fx_catch_90); fx_str_t slit_103 = FX_MAKE_STR("cgen: unsupported KExpIntrin("); fx_str_t slit_104 = FX_MAKE_STR(", ...) or the wrong number of arguments ("); fx_str_t slit_105 = FX_MAKE_STR(")"); { - const fx_str_t strs_24[] = { slit_103, v_385, slit_104, v_386, slit_105 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_24, 5, &v_387), _fx_catch_90); + const fx_str_t strs_23[] = { slit_103, v_386, slit_104, v_387, slit_105 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_23, 5, &v_388), _fx_catch_90); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_387, &v_388, 0), _fx_catch_90); - FX_THROW(&v_388, false, _fx_catch_90); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_388, &v_389, 0), _fx_catch_90); + FX_THROW(&v_389, false, _fx_catch_90); _fx_catch_90: ; - fx_free_exn(&v_388); + fx_free_exn(&v_389); + FX_FREE_STR(&v_388); FX_FREE_STR(&v_387); FX_FREE_STR(&v_386); - FX_FREE_STR(&v_385); _fx_endmatch_16: ; FX_CHECK_EXN(_fx_catch_91); @@ -25129,52 +24657,52 @@ static int if (tag_0 == 10) { _fx_FPT2N14C_form__cexp_tLN15C_form__cstmt_t18LN14K_form__kexp_tLN15C_form__cstmt_trLrR23C_gen_code__block_ctx_trNt10Hashset__t1R9Ast__id_trNt6option1N14C_form__cexp_tN14C_form__cexp_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t process_seq_0 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_390 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_391 = {0}; _fx_N14C_form__cexp_t e_8 = 0; - _fx_LN15C_form__cstmt_t ccode_69 = 0; + _fx_LN15C_form__cstmt_t ccode_63 = 0; _fx_M10C_gen_codeFM7make_fpFPT2N14C_form__cexp_tLN15C_form__cstmt_t18LN14K_form__kexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trNt6option1N14C_form__cexp_tN14C_form__cexp_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t5rLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( block_stack_ref_1, defined_syms_ref_1, fwd_fdecls_ref_1, i2e_ref_1, *km_idx_1, &process_seq_0); FX_CALL( process_seq_0.fp(kexp_0->u.KExpSeq.t0, ccode_0, block_stack_ref_0, defined_syms_ref_0, dstexp_r_0, dummy_exp_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, - mod_sc_0, module_cleanup_ref_0, return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_390, process_seq_0.fcv), + mod_sc_0, module_cleanup_ref_0, return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_391, process_seq_0.fcv), _fx_catch_92); - FX_COPY_PTR(v_390.t0, &e_8); - FX_COPY_PTR(v_390.t1, &ccode_69); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, e_8, ccode_69, &v_1); + FX_COPY_PTR(v_391.t0, &e_8); + FX_COPY_PTR(v_391.t1, &ccode_63); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, e_8, ccode_63, &v_1); _fx_catch_92: ; - if (ccode_69) { - _fx_free_LN15C_form__cstmt_t(&ccode_69); + if (ccode_63) { + _fx_free_LN15C_form__cstmt_t(&ccode_63); } if (e_8) { _fx_free_N14C_form__cexp_t(&e_8); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_390); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_391); FX_FREE_FP(&process_seq_0); goto _fx_endmatch_49; } if (tag_0 == 9) { _fx_N14C_form__cexp_t parent_lbl_0 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_391 = {0}; - _fx_N14C_form__cexp_t dst_exp_7 = 0; - _fx_LN15C_form__cstmt_t ccode_70 = 0; _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_392 = {0}; + _fx_N14C_form__cexp_t dst_exp_7 = 0; + _fx_LN15C_form__cstmt_t ccode_64 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_393 = {0}; _fx_LN15C_form__cstmt_t sync_ccode_0 = 0; _fx_rR23C_gen_code__block_ctx_t bctx_sync_0 = 0; _fx_LN15C_form__cstmt_t bctx_cleanup_0 = 0; _fx_LN15C_form__cstmt_t bctx_prologue_0 = 0; _fx_LN15C_form__cstmt_t epilogue_0 = 0; - _fx_N15C_form__cstmt_t v_393 = 0; - _fx_LN15C_form__cstmt_t v_394 = 0; + _fx_N15C_form__cstmt_t v_394 = 0; _fx_LN15C_form__cstmt_t v_395 = 0; + _fx_LN15C_form__cstmt_t v_396 = 0; _fx_LN15C_form__cstmt_t sync_ccode_1 = 0; _fx_N15C_form__cstmt_t c_e_2 = 0; - _fx_LN14C_form__cexp_t v_396 = 0; + _fx_LN14C_form__cexp_t v_397 = 0; _fx_N14C_form__cexp_t check_exn_0 = 0; - _fx_N15C_form__cstmt_t v_397 = 0; _fx_N15C_form__cstmt_t v_398 = 0; - _fx_LN15C_form__cstmt_t v_399 = 0; + _fx_N15C_form__cstmt_t v_399 = 0; + _fx_LN15C_form__cstmt_t v_400 = 0; _fx_T2R9Ast__id_tN14K_form__kexp_t* vcase_5 = &kexp_0->u.KExpSync; _fx_N14K_form__kexp_t e_9 = vcase_5->t1; FX_CALL( @@ -25183,9 +24711,9 @@ static int fx_str_t slit_106 = FX_MAKE_STR("t"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_106, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_391, 0), _fx_catch_93); - FX_COPY_PTR(v_391.t0, &dst_exp_7); - FX_COPY_PTR(v_391.t1, &ccode_70); + dstexp_r_0, &slit_106, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_392, 0), _fx_catch_93); + FX_COPY_PTR(v_392.t0, &dst_exp_7); + FX_COPY_PTR(v_392.t1, &ccode_64); FX_CALL( _fx_M10C_gen_codeFM13new_block_ctxv4N24C_gen_code__block_kind_tR10Ast__loc_trLrRM11block_ctx_ti( &_fx_g27C_gen_code__BlockKind_Block, &kloc_0, block_stack_ref_0, km_idx_0, 0), _fx_catch_93); @@ -25193,64 +24721,64 @@ static int _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( e_9, dstexp_r_0, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, return_used_ref_0, - top_inline_ccode_ref_0, u1vals_0, &v_392, fx_fv), _fx_catch_93); - FX_COPY_PTR(v_392.t1, &sync_ccode_0); + top_inline_ccode_ref_0, u1vals_0, &v_393, fx_fv), _fx_catch_93); + FX_COPY_PTR(v_393.t1, &sync_ccode_0); FX_CALL( _fx_M10C_gen_codeFM14curr_block_ctxrRM11block_ctx_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &bctx_sync_0, 0), _fx_catch_93); - _fx_R23C_gen_code__block_ctx_t* v_400 = &bctx_sync_0->data; - int_ bctx_label_used_0 = v_400->bctx_label_used; - _fx_R9Ast__id_t bctx_label_0 = v_400->bctx_label; - FX_COPY_PTR(v_400->bctx_cleanup, &bctx_cleanup_0); - FX_COPY_PTR(v_400->bctx_prologue, &bctx_prologue_0); + _fx_R23C_gen_code__block_ctx_t* v_401 = &bctx_sync_0->data; + int_ bctx_label_used_0 = v_401->bctx_label_used; + _fx_R9Ast__id_t bctx_label_0 = v_401->bctx_label; + FX_COPY_PTR(v_401->bctx_cleanup, &bctx_cleanup_0); + FX_COPY_PTR(v_401->bctx_prologue, &bctx_prologue_0); if (bctx_label_used_0 == 0) { FX_COPY_PTR(bctx_cleanup_0, &epilogue_0); } else { - FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&bctx_label_0, &kloc_0, &v_393), + FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&bctx_label_0, &kloc_0, &v_394), _fx_catch_93); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_393, 0, true, &v_394), _fx_catch_93); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_394, 0, true, &v_395), _fx_catch_93); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(bctx_cleanup_0, v_394, + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(bctx_cleanup_0, v_395, &epilogue_0, 0), _fx_catch_93); } FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(sync_ccode_0, bctx_prologue_0, - &v_395, 0), _fx_catch_93); + &v_396, 0), _fx_catch_93); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(epilogue_0, v_395, &sync_ccode_1, + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(epilogue_0, v_396, &sync_ccode_1, 0), _fx_catch_93); - _fx_R10Ast__loc_t v_401; - FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(e_9, &v_401, 0), _fx_catch_93); - FX_CALL(_fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(sync_ccode_1, &v_401, &c_e_2, 0), + _fx_R10Ast__loc_t v_402; + FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(e_9, &v_402, 0), _fx_catch_93); + FX_CALL(_fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(sync_ccode_1, &v_402, &c_e_2, 0), _fx_catch_93); FX_CALL(_fx_M10C_gen_codeFM13pop_block_ctxv2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, 0), _fx_catch_93); - FX_CALL(_fx_cons_LN14C_form__cexp_t(parent_lbl_0, 0, true, &v_396), _fx_catch_93); + FX_CALL(_fx_cons_LN14C_form__cexp_t(parent_lbl_0, 0, true, &v_397), _fx_catch_93); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g24C_form__std_FX_CHECK_EXN, v_396, _fx_g20C_gen_code__CTypVoid, &kloc_0, &check_exn_0, 0), _fx_catch_93); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(check_exn_0, &v_397), _fx_catch_93); - FX_CALL(_fx_M6C_formFM9CStmtSyncN15C_form__cstmt_t2R9Ast__id_tN15C_form__cstmt_t(&vcase_5->t0, c_e_2, &v_398), + &_fx_g24C_form__std_FX_CHECK_EXN, v_397, _fx_g20C_gen_code__CTypVoid, &kloc_0, &check_exn_0, 0), _fx_catch_93); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(check_exn_0, &v_398), _fx_catch_93); + FX_CALL(_fx_M6C_formFM9CStmtSyncN15C_form__cstmt_t2R9Ast__id_tN15C_form__cstmt_t(&vcase_5->t0, c_e_2, &v_399), _fx_catch_93); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_398, ccode_70, true, &v_399), _fx_catch_93); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_397, v_399, false, &v_399), _fx_catch_93); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_7, v_399, &v_1); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_399, ccode_64, true, &v_400), _fx_catch_93); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_398, v_400, false, &v_400), _fx_catch_93); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_7, v_400, &v_1); _fx_catch_93: ; + if (v_400) { + _fx_free_LN15C_form__cstmt_t(&v_400); + } if (v_399) { - _fx_free_LN15C_form__cstmt_t(&v_399); + _fx_free_N15C_form__cstmt_t(&v_399); } if (v_398) { _fx_free_N15C_form__cstmt_t(&v_398); } - if (v_397) { - _fx_free_N15C_form__cstmt_t(&v_397); - } if (check_exn_0) { _fx_free_N14C_form__cexp_t(&check_exn_0); } - if (v_396) { - _fx_free_LN14C_form__cexp_t(&v_396); + if (v_397) { + _fx_free_LN14C_form__cexp_t(&v_397); } if (c_e_2) { _fx_free_N15C_form__cstmt_t(&c_e_2); @@ -25258,14 +24786,14 @@ static int if (sync_ccode_1) { _fx_free_LN15C_form__cstmt_t(&sync_ccode_1); } + if (v_396) { + _fx_free_LN15C_form__cstmt_t(&v_396); + } if (v_395) { _fx_free_LN15C_form__cstmt_t(&v_395); } if (v_394) { - _fx_free_LN15C_form__cstmt_t(&v_394); - } - if (v_393) { - _fx_free_N15C_form__cstmt_t(&v_393); + _fx_free_N15C_form__cstmt_t(&v_394); } if (epilogue_0) { _fx_free_LN15C_form__cstmt_t(&epilogue_0); @@ -25282,84 +24810,84 @@ static int if (sync_ccode_0) { _fx_free_LN15C_form__cstmt_t(&sync_ccode_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_392); - if (ccode_70) { - _fx_free_LN15C_form__cstmt_t(&ccode_70); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_393); + if (ccode_64) { + _fx_free_LN15C_form__cstmt_t(&ccode_64); } if (dst_exp_7) { _fx_free_N14C_form__cexp_t(&dst_exp_7); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_391); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_392); if (parent_lbl_0) { _fx_free_N14C_form__cexp_t(&parent_lbl_0); } goto _fx_endmatch_49; } if (tag_0 == 11) { - _fx_rNt6option1N14C_form__cexp_t v_402 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_403 = {0}; - _fx_N14C_form__cexp_t cc_0 = 0; - _fx_LN15C_form__cstmt_t ccode_71 = 0; + _fx_rNt6option1N14C_form__cexp_t v_403 = 0; _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_404 = {0}; - _fx_N14C_form__cexp_t dst_exp_8 = 0; - _fx_LN15C_form__cstmt_t ccode_72 = 0; + _fx_N14C_form__cexp_t cc_0 = 0; + _fx_LN15C_form__cstmt_t ccode_65 = 0; _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_405 = {0}; - _fx_LN15C_form__cstmt_t ccode1_0 = 0; + _fx_N14C_form__cexp_t dst_exp_8 = 0; + _fx_LN15C_form__cstmt_t ccode_66 = 0; _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_406 = {0}; + _fx_LN15C_form__cstmt_t ccode1_3 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_407 = {0}; _fx_LN15C_form__cstmt_t ccode2_0 = 0; _fx_N15C_form__cstmt_t c_e1_0 = 0; _fx_N15C_form__cstmt_t c_e2_0 = 0; - _fx_N15C_form__cstmt_t v_407 = 0; - _fx_LN15C_form__cstmt_t v_408 = 0; + _fx_N15C_form__cstmt_t v_408 = 0; + _fx_LN15C_form__cstmt_t v_409 = 0; _fx_T4N14K_form__kexp_tN14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_6 = &kexp_0->u.KExpIf; _fx_N14K_form__kexp_t e2_0 = vcase_6->t2; _fx_N14K_form__kexp_t e1_0 = vcase_6->t1; - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_402), _fx_catch_94); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_403), _fx_catch_94); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - vcase_6->t0, v_402, ccode_0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, + vcase_6->t0, v_403, ccode_0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_403, fx_fv), _fx_catch_94); - FX_COPY_PTR(v_403.t0, &cc_0); - FX_COPY_PTR(v_403.t1, &ccode_71); + return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_404, fx_fv), _fx_catch_94); + FX_COPY_PTR(v_404.t0, &cc_0); + FX_COPY_PTR(v_404.t1, &ccode_65); fx_str_t slit_107 = FX_MAKE_STR("t"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_107, ctyp_0, ccode_71, &kloc_0, block_stack_ref_0, km_idx_0, &v_404, 0), _fx_catch_94); - FX_COPY_PTR(v_404.t0, &dst_exp_8); - FX_COPY_PTR(v_404.t1, &ccode_72); + dstexp_r_0, &slit_107, ctyp_0, ccode_65, &kloc_0, block_stack_ref_0, km_idx_0, &v_405, 0), _fx_catch_94); + FX_COPY_PTR(v_405.t0, &dst_exp_8); + FX_COPY_PTR(v_405.t1, &ccode_66); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( e1_0, dstexp_r_0, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, return_used_ref_0, - top_inline_ccode_ref_0, u1vals_0, &v_405, fx_fv), _fx_catch_94); - FX_COPY_PTR(v_405.t1, &ccode1_0); + top_inline_ccode_ref_0, u1vals_0, &v_406, fx_fv), _fx_catch_94); + FX_COPY_PTR(v_406.t1, &ccode1_3); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( e2_0, dstexp_r_0, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, return_used_ref_0, - top_inline_ccode_ref_0, u1vals_0, &v_406, fx_fv), _fx_catch_94); - FX_COPY_PTR(v_406.t1, &ccode2_0); - _fx_R10Ast__loc_t v_409; - FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(e1_0, &v_409, 0), _fx_catch_94); - FX_CALL(_fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(ccode1_0, &v_409, &c_e1_0, 0), - _fx_catch_94); + top_inline_ccode_ref_0, u1vals_0, &v_407, fx_fv), _fx_catch_94); + FX_COPY_PTR(v_407.t1, &ccode2_0); _fx_R10Ast__loc_t v_410; - FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(e2_0, &v_410, 0), _fx_catch_94); - FX_CALL(_fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(ccode2_0, &v_410, &c_e2_0, 0), + FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(e1_0, &v_410, 0), _fx_catch_94); + FX_CALL(_fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(ccode1_3, &v_410, &c_e1_0, 0), + _fx_catch_94); + _fx_R10Ast__loc_t v_411; + FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(e2_0, &v_411, 0), _fx_catch_94); + FX_CALL(_fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(ccode2_0, &v_411, &c_e2_0, 0), _fx_catch_94); FX_CALL( _fx_M10C_gen_codeFM7make_ifN15C_form__cstmt_t4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t(cc_0, - c_e1_0, c_e2_0, &kloc_0, &v_407, 0), _fx_catch_94); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_407, ccode_72, true, &v_408), _fx_catch_94); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_8, v_408, &v_1); + c_e1_0, c_e2_0, &kloc_0, &v_408, 0), _fx_catch_94); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_408, ccode_66, true, &v_409), _fx_catch_94); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_8, v_409, &v_1); _fx_catch_94: ; - if (v_408) { - _fx_free_LN15C_form__cstmt_t(&v_408); + if (v_409) { + _fx_free_LN15C_form__cstmt_t(&v_409); } - if (v_407) { - _fx_free_N15C_form__cstmt_t(&v_407); + if (v_408) { + _fx_free_N15C_form__cstmt_t(&v_408); } if (c_e2_0) { _fx_free_N15C_form__cstmt_t(&c_e2_0); @@ -25370,131 +24898,116 @@ static int if (ccode2_0) { _fx_free_LN15C_form__cstmt_t(&ccode2_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_406); - if (ccode1_0) { - _fx_free_LN15C_form__cstmt_t(&ccode1_0); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_407); + if (ccode1_3) { + _fx_free_LN15C_form__cstmt_t(&ccode1_3); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_405); - if (ccode_72) { - _fx_free_LN15C_form__cstmt_t(&ccode_72); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_406); + if (ccode_66) { + _fx_free_LN15C_form__cstmt_t(&ccode_66); } if (dst_exp_8) { _fx_free_N14C_form__cexp_t(&dst_exp_8); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_404); - if (ccode_71) { - _fx_free_LN15C_form__cstmt_t(&ccode_71); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_405); + if (ccode_65) { + _fx_free_LN15C_form__cstmt_t(&ccode_65); } if (cc_0) { _fx_free_N14C_form__cexp_t(&cc_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_403); - if (v_402) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_402); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_404); + if (v_403) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_403); } goto _fx_endmatch_49; } if (tag_0 == 12) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___3 = {0}; + _fx_LN14C_form__cexp_t cargs_1 = 0; + _fx_LN15C_form__cstmt_t ccode_67 = 0; _fx_LN14K_form__atom_t args_3 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_411 = {0}; - _fx_LN14C_form__cexp_t args_4 = 0; - _fx_LN15C_form__cstmt_t ccode_73 = 0; _fx_N15C_form__cinfo_t v_412 = {0}; _fx_T2R9Ast__id_tN15C_form__cinfo_t v_413 = {0}; _fx_N15C_form__cinfo_t ci_0 = {0}; _fx_T5N14C_form__cexp_tBLN14C_form__cexp_tBLN15C_form__cstmt_t v_414 = {0}; _fx_N14C_form__cexp_t f_exp_1 = 0; _fx_LN14C_form__cexp_t fv_args_0 = 0; - _fx_LN15C_form__cstmt_t ccode_74 = 0; + _fx_LN15C_form__cstmt_t ccode_68 = 0; _fx_LN14C_form__cexp_t v_415 = 0; - _fx_LN14C_form__cexp_t args_5 = 0; + _fx_LN14C_form__cexp_t args_4 = 0; _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_416 = {0}; _fx_N14C_form__cexp_t call_exp_2 = 0; _fx_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t v_417 = {0}; _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_418 = {0}; _fx_N14C_form__cexp_t dst_exp_9 = 0; - _fx_LN15C_form__cstmt_t ccode_75 = 0; + _fx_LN15C_form__cstmt_t ccode_69 = 0; _fx_N14C_form__cexp_t v_419 = 0; _fx_LN14C_form__cexp_t v_420 = 0; - _fx_LN14C_form__cexp_t args_6 = 0; + _fx_LN14C_form__cexp_t args_5 = 0; _fx_N14C_form__cexp_t dst_exp_10 = 0; - _fx_LN15C_form__cstmt_t ccode_76 = 0; + _fx_LN15C_form__cstmt_t ccode_70 = 0; _fx_LN14C_form__cexp_t v_421 = 0; - _fx_LN14C_form__cexp_t args_7 = 0; + _fx_LN14C_form__cexp_t args_6 = 0; _fx_N14C_form__ctyp_t fcall_rt_0 = 0; _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_422 = {0}; _fx_N14C_form__cexp_t fcall_exp_0 = 0; _fx_N15C_form__cstmt_t v_423 = 0; _fx_LN15C_form__cstmt_t v_424 = 0; - _fx_LN15C_form__cstmt_t ccode_77 = 0; + _fx_LN15C_form__cstmt_t ccode_71 = 0; _fx_T3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_7 = &kexp_0->u.KExpCall; _fx_R9Ast__id_t* f_2 = &vcase_7->t0; - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, ccode_0, &__fold_result___3); + FX_COPY_PTR(ccode_0, &ccode_67); FX_COPY_PTR(vcase_7->t1, &args_3); _fx_LN14K_form__atom_t lst_5 = args_3; for (; lst_5; lst_5 = lst_5->tl) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_425 = {0}; - _fx_LN14C_form__cexp_t args_8 = 0; - _fx_LN15C_form__cstmt_t ccode_78 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_426 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_425 = {0}; _fx_N14C_form__cexp_t carg_0 = 0; - _fx_LN15C_form__cstmt_t ccode_79 = 0; + _fx_LN15C_form__cstmt_t ccode1_4 = 0; _fx_N14C_form__cexp_t carg_1 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_427 = {0}; + _fx_LN14C_form__cexp_t v_426 = 0; _fx_N14K_form__atom_t* arg_1 = &lst_5->hd; - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___3, &v_425); - FX_COPY_PTR(v_425.t0, &args_8); - FX_COPY_PTR(v_425.t1, &ccode_78); FX_CALL( - atom2cexp_0.fp(arg_1, ccode_78, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_426, atom2cexp_0.fcv), _fx_catch_95); - FX_COPY_PTR(v_426.t0, &carg_0); - FX_COPY_PTR(v_426.t1, &ccode_79); + atom2cexp_0.fp(arg_1, ccode_67, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_425, atom2cexp_0.fcv), _fx_catch_95); + FX_COPY_PTR(v_425.t0, &carg_0); + FX_COPY_PTR(v_425.t1, &ccode1_4); FX_CALL(_fx_M10C_gen_codeFM12make_fun_argN14C_form__cexp_t2N14C_form__cexp_tR10Ast__loc_t(carg_0, &kloc_0, &carg_1, 0), _fx_catch_95); - FX_CALL(_fx_cons_LN14C_form__cexp_t(carg_1, args_8, false, &args_8), _fx_catch_95); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(args_8, ccode_79, &v_427); - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___3); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_427, &__fold_result___3); + FX_CALL(_fx_cons_LN14C_form__cexp_t(carg_1, cargs_1, true, &v_426), _fx_catch_95); + _fx_free_LN14C_form__cexp_t(&cargs_1); + FX_COPY_PTR(v_426, &cargs_1); + _fx_free_LN15C_form__cstmt_t(&ccode_67); + FX_COPY_PTR(ccode1_4, &ccode_67); _fx_catch_95: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_427); + if (v_426) { + _fx_free_LN14C_form__cexp_t(&v_426); + } if (carg_1) { _fx_free_N14C_form__cexp_t(&carg_1); } - if (ccode_79) { - _fx_free_LN15C_form__cstmt_t(&ccode_79); + if (ccode1_4) { + _fx_free_LN15C_form__cstmt_t(&ccode1_4); } if (carg_0) { _fx_free_N14C_form__cexp_t(&carg_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_426); - if (ccode_78) { - _fx_free_LN15C_form__cstmt_t(&ccode_78); - } - if (args_8) { - _fx_free_LN14C_form__cexp_t(&args_8); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_425); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_425); FX_CHECK_EXN(_fx_catch_100); } - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___3, &v_411); - FX_COPY_PTR(v_411.t0, &args_4); - FX_COPY_PTR(v_411.t1, &ccode_73); FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(f_2, &kloc_0, &v_412, 0), _fx_catch_100); if (v_412.tag == 5) { - _fx_R17C_form__cdefexn_t v_428 = {0}; - _fx_N15C_form__cinfo_t v_429 = {0}; - _fx_copy_R17C_form__cdefexn_t(&v_412.u.CExn->data, &v_428); - _fx_R9Ast__id_t* cexn_make_0 = &v_428.cexn_make; - FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(cexn_make_0, &kloc_0, &v_429, 0), + _fx_R17C_form__cdefexn_t v_427 = {0}; + _fx_N15C_form__cinfo_t v_428 = {0}; + _fx_copy_R17C_form__cdefexn_t(&v_412.u.CExn->data, &v_427); + _fx_R9Ast__id_t* cexn_make_0 = &v_427.cexn_make; + FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(cexn_make_0, &kloc_0, &v_428, 0), _fx_catch_96); - _fx_make_T2R9Ast__id_tN15C_form__cinfo_t(cexn_make_0, &v_429, &v_413); + _fx_make_T2R9Ast__id_tN15C_form__cinfo_t(cexn_make_0, &v_428, &v_413); _fx_catch_96: ; - _fx_free_N15C_form__cinfo_t(&v_429); - _fx_free_R17C_form__cdefexn_t(&v_428); + _fx_free_N15C_form__cinfo_t(&v_428); + _fx_free_R17C_form__cdefexn_t(&v_427); } else { _fx_make_T2R9Ast__id_tN15C_form__cinfo_t(f_2, &v_412, &v_413); @@ -25507,89 +25020,89 @@ static int fx_str_t cf_cname_0 = {0}; _fx_N14C_form__ctyp_t cf_rt_0 = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t cf_args_0 = 0; - _fx_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB v_430 = {0}; + _fx_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB v_429 = {0}; _fx_N14C_form__cexp_t f_exp_2 = 0; _fx_LN14C_form__cexp_t fv_args_1 = 0; + _fx_N14C_form__cexp_t v_430 = 0; _fx_N14C_form__cexp_t v_431 = 0; - _fx_N14C_form__cexp_t v_432 = 0; + fx_str_t v_432 = {0}; fx_str_t v_433 = {0}; - fx_str_t v_434 = {0}; - fx_exn_t v_435 = {0}; - _fx_R17C_form__cdeffun_t* v_436 = &ci_0.u.CFun->data; - _fx_R10Ast__loc_t cf_loc_0 = v_436->cf_loc; - fx_copy_str(&v_436->cf_cname, &cf_cname_0); - _fx_R16Ast__fun_flags_t cf_flags_0 = v_436->cf_flags; - FX_COPY_PTR(v_436->cf_rt, &cf_rt_0); - FX_COPY_PTR(v_436->cf_args, &cf_args_0); + fx_exn_t v_434 = {0}; + _fx_R17C_form__cdeffun_t* v_435 = &ci_0.u.CFun->data; + _fx_R10Ast__loc_t cf_loc_0 = v_435->cf_loc; + fx_copy_str(&v_435->cf_cname, &cf_cname_0); + _fx_R16Ast__fun_flags_t cf_flags_0 = v_435->cf_flags; + FX_COPY_PTR(v_435->cf_rt, &cf_rt_0); + FX_COPY_PTR(v_435->cf_args, &cf_args_0); FX_CALL( _fx_M10C_gen_codeFM33ensure_sym_is_defined_or_declaredv4R9Ast__id_tR10Ast__loc_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_t( &f_3, &kloc_0, defined_syms_ref_0, fwd_fdecls_ref_0, 0), _fx_catch_97); bool is_nothrow_0 = cf_flags_0.fun_flag_nothrow; FX_CALL( _fx_M10C_gen_codeFM15unpack_fun_argsT4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB3LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__ctyp_tB( - cf_args_0, cf_rt_0, is_nothrow_0, &v_430, 0), _fx_catch_97); - _fx_R9Ast__id_t ret_id_0 = v_430.t1; - bool have_fv_arg_0 = v_430.t3; + cf_args_0, cf_rt_0, is_nothrow_0, &v_429, 0), _fx_catch_97); + _fx_R9Ast__id_t ret_id_0 = v_429.t1; + bool have_fv_arg_0 = v_429.t3; FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&f_3, &cf_loc_0, &f_exp_2, 0), _fx_catch_97); if (have_fv_arg_0) { if (!cf_flags_0.fun_flag_uses_fv) { - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_431, 0), _fx_catch_97); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_431, 0, true, &fv_args_1), _fx_catch_97); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_430, 0), _fx_catch_97); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_430, 0, true, &fv_args_1), _fx_catch_97); } else { - _fx_R9Ast__id_t v_437; + _fx_R9Ast__id_t v_436; FX_CALL( - _fx_M10C_gen_codeFM9curr_funcR9Ast__id_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &v_437, + _fx_M10C_gen_codeFM9curr_funcR9Ast__id_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &v_436, 0), _fx_catch_97); bool res_11; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&f_3, &v_437, &res_11, 0), _fx_catch_97); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&f_3, &v_436, &res_11, 0), _fx_catch_97); if (res_11) { - _fx_R9Ast__id_t v_438; + _fx_R9Ast__id_t v_437; fx_str_t slit_108 = FX_MAKE_STR("fx_fv"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_108, &v_438, 0), _fx_catch_97); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_108, &v_437, 0), _fx_catch_97); FX_CALL( - _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&v_438, - _fx_g23C_form__std_CTypVoidPtr, &cf_loc_0, &v_432, 0), _fx_catch_97); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_432, 0, true, &fv_args_1), _fx_catch_97); + _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&v_437, + _fx_g23C_form__std_CTypVoidPtr, &cf_loc_0, &v_431, 0), _fx_catch_97); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_431, 0, true, &fv_args_1), _fx_catch_97); } else { - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&cf_cname_0, &v_433, 0), _fx_catch_97); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&cf_cname_0, &v_432, 0), _fx_catch_97); fx_str_t slit_109 = FX_MAKE_STR("cgen: looks like lambda lifting did not transform \'"); fx_str_t slit_110 = FX_MAKE_STR( "\' call correctly. Functions that access free variables must be called via closure (except for the case when function calls itself)"); { - const fx_str_t strs_25[] = { slit_109, v_433, slit_110 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_25, 3, &v_434), _fx_catch_97); + const fx_str_t strs_24[] = { slit_109, v_432, slit_110 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_24, 3, &v_433), _fx_catch_97); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_434, &v_435, 0), _fx_catch_97); - FX_THROW(&v_435, false, _fx_catch_97); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_433, &v_434, 0), _fx_catch_97); + FX_THROW(&v_434, false, _fx_catch_97); } } } bool res_12; FX_CALL(_fx_M10C_gen_codeFM6__ne__B2R9Ast__id_tR9Ast__id_t(&ret_id_0, &_fx_g9Ast__noid, &res_12, 0), _fx_catch_97); - _fx_make_T5N14C_form__cexp_tBLN14C_form__cexp_tBLN15C_form__cstmt_t(f_exp_2, res_12, fv_args_1, is_nothrow_0, ccode_73, + _fx_make_T5N14C_form__cexp_tBLN14C_form__cexp_tBLN15C_form__cstmt_t(f_exp_2, res_12, fv_args_1, is_nothrow_0, ccode_67, &v_414); _fx_catch_97: ; - fx_free_exn(&v_435); - FX_FREE_STR(&v_434); + fx_free_exn(&v_434); FX_FREE_STR(&v_433); - if (v_432) { - _fx_free_N14C_form__cexp_t(&v_432); - } + FX_FREE_STR(&v_432); if (v_431) { _fx_free_N14C_form__cexp_t(&v_431); } + if (v_430) { + _fx_free_N14C_form__cexp_t(&v_430); + } if (fv_args_1) { _fx_free_LN14C_form__cexp_t(&fv_args_1); } if (f_exp_2) { _fx_free_N14C_form__cexp_t(&f_exp_2); } - _fx_free_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB(&v_430); + _fx_free_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB(&v_429); if (cf_args_0) { _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&cf_args_0); } @@ -25599,14 +25112,14 @@ static int FX_FREE_STR(&cf_cname_0); } else if (tag_12 == 2) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_439 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_438 = {0}; _fx_N14C_form__cexp_t fclo_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_80 = 0; - _fx_N14K_form__ktyp_t v_440 = 0; + _fx_LN15C_form__cstmt_t ccode_72 = 0; + _fx_N14K_form__ktyp_t v_439 = 0; _fx_N14K_form__ktyp_t ftyp_0 = 0; _fx_N14C_form__ctyp_t cftyp_0 = 0; _fx_N14C_form__cexp_t f_exp_3 = 0; - _fx_N14C_form__cexp_t v_441 = 0; + _fx_N14C_form__cexp_t v_440 = 0; _fx_LN14C_form__cexp_t fv_args_2 = 0; _fx_R16Ast__val_flags_t* cv_flags_0 = &ci_0.u.CVal.cv_flags; bool res_13; @@ -25625,37 +25138,37 @@ static int } FX_CALL( _fx_M10C_gen_codeFM7id2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t9R9Ast__id_tBLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( - &f_3, false, ccode_73, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_439, 0), _fx_catch_98); - FX_COPY_PTR(v_439.t0, &fclo_exp_0); - FX_COPY_PTR(v_439.t1, &ccode_80); - FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(&f_3, &kloc_0, &v_440, 0), + &f_3, false, ccode_67, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, + &v_438, 0), _fx_catch_98); + FX_COPY_PTR(v_438.t0, &fclo_exp_0); + FX_COPY_PTR(v_438.t1, &ccode_72); + FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(&f_3, &kloc_0, &v_439, 0), _fx_catch_98); - FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(v_440, &kloc_0, &ftyp_0, 0), + FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(v_439, &kloc_0, &ftyp_0, 0), _fx_catch_98); FX_CALL(_fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(ftyp_0, &kloc_0, &cftyp_0, 0), _fx_catch_98); - _fx_R9Ast__id_t v_442; + _fx_R9Ast__id_t v_441; fx_str_t slit_111 = FX_MAKE_STR("fp"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_111, &v_442, 0), _fx_catch_98); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_111, &v_441, 0), _fx_catch_98); FX_CALL( - _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(fclo_exp_0, &v_442, cftyp_0, + _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(fclo_exp_0, &v_441, cftyp_0, &f_exp_3, 0), _fx_catch_98); - _fx_R9Ast__id_t v_443; + _fx_R9Ast__id_t v_442; fx_str_t slit_112 = FX_MAKE_STR("fcv"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_112, &v_443, 0), _fx_catch_98); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_112, &v_442, 0), _fx_catch_98); FX_CALL( - _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(fclo_exp_0, &v_443, - _fx_g23C_form__std_CTypVoidPtr, &v_441, 0), _fx_catch_98); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_441, 0, true, &fv_args_2), _fx_catch_98); - _fx_make_T5N14C_form__cexp_tBLN14C_form__cexp_tBLN15C_form__cstmt_t(f_exp_3, true, fv_args_2, false, ccode_80, &v_414); + _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(fclo_exp_0, &v_442, + _fx_g23C_form__std_CTypVoidPtr, &v_440, 0), _fx_catch_98); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_440, 0, true, &fv_args_2), _fx_catch_98); + _fx_make_T5N14C_form__cexp_tBLN14C_form__cexp_tBLN15C_form__cstmt_t(f_exp_3, true, fv_args_2, false, ccode_72, &v_414); _fx_catch_98: ; if (fv_args_2) { _fx_free_LN14C_form__cexp_t(&fv_args_2); } - if (v_441) { - _fx_free_N14C_form__cexp_t(&v_441); + if (v_440) { + _fx_free_N14C_form__cexp_t(&v_440); } if (f_exp_3) { _fx_free_N14C_form__cexp_t(&f_exp_3); @@ -25666,45 +25179,45 @@ static int if (ftyp_0) { _fx_free_N14K_form__ktyp_t(&ftyp_0); } - if (v_440) { - _fx_free_N14K_form__ktyp_t(&v_440); + if (v_439) { + _fx_free_N14K_form__ktyp_t(&v_439); } - if (ccode_80) { - _fx_free_LN15C_form__cstmt_t(&ccode_80); + if (ccode_72) { + _fx_free_LN15C_form__cstmt_t(&ccode_72); } if (fclo_exp_0) { _fx_free_N14C_form__cexp_t(&fclo_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_439); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_438); } else { + fx_str_t v_443 = {0}; fx_str_t v_444 = {0}; fx_str_t v_445 = {0}; - fx_str_t v_446 = {0}; - fx_exn_t v_447 = {0}; - FX_CALL(_fx_M6C_formFM7idc2strS2R9Ast__id_tR10Ast__loc_t(&f_3, &kloc_0, &v_444, 0), _fx_catch_99); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_444, &v_445, 0), _fx_catch_99); + fx_exn_t v_446 = {0}; + FX_CALL(_fx_M6C_formFM7idc2strS2R9Ast__id_tR10Ast__loc_t(&f_3, &kloc_0, &v_443, 0), _fx_catch_99); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_443, &v_444, 0), _fx_catch_99); fx_str_t slit_113 = FX_MAKE_STR("cgen: the called \'"); fx_str_t slit_114 = FX_MAKE_STR("\' is not a function nor value"); { - const fx_str_t strs_26[] = { slit_113, v_445, slit_114 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_26, 3, &v_446), _fx_catch_99); + const fx_str_t strs_25[] = { slit_113, v_444, slit_114 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_25, 3, &v_445), _fx_catch_99); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_446, &v_447, 0), _fx_catch_99); - FX_THROW(&v_447, false, _fx_catch_99); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_445, &v_446, 0), _fx_catch_99); + FX_THROW(&v_446, false, _fx_catch_99); _fx_catch_99: ; - fx_free_exn(&v_447); - FX_FREE_STR(&v_446); + fx_free_exn(&v_446); FX_FREE_STR(&v_445); FX_FREE_STR(&v_444); + FX_FREE_STR(&v_443); } FX_CHECK_EXN(_fx_catch_100); FX_COPY_PTR(v_414.t0, &f_exp_1); bool have_out_arg_0 = v_414.t1; FX_COPY_PTR(v_414.t2, &fv_args_0); bool is_nothrow_1 = v_414.t3; - FX_COPY_PTR(v_414.t4, &ccode_74); + FX_COPY_PTR(v_414.t4, &ccode_68); bool t_8; if (!have_out_arg_0) { t_8 = FX_REC_VARIANT_TAG(ctyp_0) != 8; @@ -25714,37 +25227,37 @@ static int } if (t_8) { FX_CALL( - _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(fv_args_0, args_4, &v_415, 0), + _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(fv_args_0, cargs_1, &v_415, 0), _fx_catch_100); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_415, &args_5, 0), _fx_catch_100); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_415, &args_4, 0), _fx_catch_100); _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_416); FX_CALL( _fx_M6C_formFM8CExpCallN14C_form__cexp_t3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - f_exp_1, args_5, &v_416, &call_exp_2), _fx_catch_100); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, call_exp_2, ccode_74, &v_1); + f_exp_1, args_4, &v_416, &call_exp_2), _fx_catch_100); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, call_exp_2, ccode_68, &v_1); } else { if (FX_REC_VARIANT_TAG(ctyp_0) == 8) { - _fx_make_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t(args_4, dummy_exp_0, ccode_74, &v_417); + _fx_make_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t(cargs_1, dummy_exp_0, ccode_68, &v_417); } else { fx_str_t slit_115 = FX_MAKE_STR("res"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_115, ctyp_0, ccode_74, &kloc_0, block_stack_ref_0, km_idx_0, &v_418, 0), _fx_catch_100); + dstexp_r_0, &slit_115, ctyp_0, ccode_68, &kloc_0, block_stack_ref_0, km_idx_0, &v_418, 0), _fx_catch_100); FX_COPY_PTR(v_418.t0, &dst_exp_9); - FX_COPY_PTR(v_418.t1, &ccode_75); + FX_COPY_PTR(v_418.t1, &ccode_69); FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_9, &v_419, 0), _fx_catch_100); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_419, args_4, true, &v_420), _fx_catch_100); - _fx_make_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t(v_420, dst_exp_9, ccode_75, &v_417); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_419, cargs_1, true, &v_420), _fx_catch_100); + _fx_make_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t(v_420, dst_exp_9, ccode_69, &v_417); } - FX_COPY_PTR(v_417.t0, &args_6); + FX_COPY_PTR(v_417.t0, &args_5); FX_COPY_PTR(v_417.t1, &dst_exp_10); - FX_COPY_PTR(v_417.t2, &ccode_76); + FX_COPY_PTR(v_417.t2, &ccode_70); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(fv_args_0, args_6, &v_421, 0), + _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(fv_args_0, args_5, &v_421, 0), _fx_catch_100); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_421, &args_7, 0), _fx_catch_100); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_421, &args_6, 0), _fx_catch_100); if (is_nothrow_1) { FX_COPY_PTR(_fx_g20C_gen_code__CTypVoid, &fcall_rt_0); } @@ -25754,23 +25267,23 @@ static int _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(fcall_rt_0, &kloc_0, &v_422); FX_CALL( _fx_M6C_formFM8CExpCallN14C_form__cexp_t3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - f_exp_1, args_7, &v_422, &fcall_exp_0), _fx_catch_100); + f_exp_1, args_6, &v_422, &fcall_exp_0), _fx_catch_100); if (is_nothrow_1) { FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(fcall_exp_0, &v_423), _fx_catch_100); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_423, ccode_76, true, &v_424), _fx_catch_100); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_423, ccode_70, true, &v_424), _fx_catch_100); _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_10, v_424, &v_1); } else { FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - fcall_exp_0, ccode_76, &kloc_0, block_stack_ref_0, &ccode_77, 0), _fx_catch_100); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_10, ccode_77, &v_1); + fcall_exp_0, ccode_70, &kloc_0, block_stack_ref_0, &ccode_71, 0), _fx_catch_100); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_10, ccode_71, &v_1); } } _fx_catch_100: ; - if (ccode_77) { - _fx_free_LN15C_form__cstmt_t(&ccode_77); + if (ccode_71) { + _fx_free_LN15C_form__cstmt_t(&ccode_71); } if (v_424) { _fx_free_LN15C_form__cstmt_t(&v_424); @@ -25785,20 +25298,20 @@ static int if (fcall_rt_0) { _fx_free_N14C_form__ctyp_t(&fcall_rt_0); } - if (args_7) { - _fx_free_LN14C_form__cexp_t(&args_7); + if (args_6) { + _fx_free_LN14C_form__cexp_t(&args_6); } if (v_421) { _fx_free_LN14C_form__cexp_t(&v_421); } - if (ccode_76) { - _fx_free_LN15C_form__cstmt_t(&ccode_76); + if (ccode_70) { + _fx_free_LN15C_form__cstmt_t(&ccode_70); } if (dst_exp_10) { _fx_free_N14C_form__cexp_t(&dst_exp_10); } - if (args_6) { - _fx_free_LN14C_form__cexp_t(&args_6); + if (args_5) { + _fx_free_LN14C_form__cexp_t(&args_5); } if (v_420) { _fx_free_LN14C_form__cexp_t(&v_420); @@ -25806,8 +25319,8 @@ static int if (v_419) { _fx_free_N14C_form__cexp_t(&v_419); } - if (ccode_75) { - _fx_free_LN15C_form__cstmt_t(&ccode_75); + if (ccode_69) { + _fx_free_LN15C_form__cstmt_t(&ccode_69); } if (dst_exp_9) { _fx_free_N14C_form__cexp_t(&dst_exp_9); @@ -25818,14 +25331,14 @@ static int _fx_free_N14C_form__cexp_t(&call_exp_2); } _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_416); - if (args_5) { - _fx_free_LN14C_form__cexp_t(&args_5); + if (args_4) { + _fx_free_LN14C_form__cexp_t(&args_4); } if (v_415) { _fx_free_LN14C_form__cexp_t(&v_415); } - if (ccode_74) { - _fx_free_LN15C_form__cstmt_t(&ccode_74); + if (ccode_68) { + _fx_free_LN15C_form__cstmt_t(&ccode_68); } if (fv_args_0) { _fx_free_LN14C_form__cexp_t(&fv_args_0); @@ -25837,239 +25350,222 @@ static int _fx_free_N15C_form__cinfo_t(&ci_0); _fx_free_T2R9Ast__id_tN15C_form__cinfo_t(&v_413); _fx_free_N15C_form__cinfo_t(&v_412); - if (ccode_73) { - _fx_free_LN15C_form__cstmt_t(&ccode_73); - } - if (args_4) { - _fx_free_LN14C_form__cexp_t(&args_4); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_411); if (args_3) { _fx_free_LN14K_form__atom_t(&args_3); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___3); + if (ccode_67) { + _fx_free_LN15C_form__cstmt_t(&ccode_67); + } + if (cargs_1) { + _fx_free_LN14C_form__cexp_t(&cargs_1); + } goto _fx_endmatch_49; } if (tag_0 == 13) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_448 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_447 = {0}; _fx_N14C_form__cexp_t io_cexp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_81 = 0; + _fx_LN15C_form__cstmt_t ccode_73 = 0; _fx_N14C_form__cexp_t obj_cexp_0 = 0; - _fx_N14C_form__cexp_t v_449 = 0; - _fx_LN14C_form__cexp_t v_450 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___4 = {0}; - _fx_LN14K_form__atom_t args_9 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_451 = {0}; - _fx_LN14C_form__cexp_t args_10 = 0; - _fx_LN15C_form__cstmt_t ccode_82 = 0; + _fx_N14C_form__cexp_t v_448 = 0; + _fx_LN14C_form__cexp_t cargs_2 = 0; + _fx_LN15C_form__cstmt_t ccode_74 = 0; + _fx_LN14K_form__atom_t args_7 = 0; _fx_N14C_form__ctyp_t t_9 = 0; - _fx_Nt6option1rR23C_form__cdefinterface_t v_452 = {0}; + _fx_Nt6option1rR23C_form__cdefinterface_t v_449 = {0}; _fx_rR23C_form__cdefinterface_t obj_iface_0 = 0; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_453 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_454 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_450 = 0; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_451 = {0}; _fx_N14C_form__ctyp_t mt_0 = 0; _fx_N14C_form__cexp_t vtbl_0 = 0; _fx_N14C_form__cexp_t mexp_0 = 0; - _fx_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t v_455 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_456 = {0}; + _fx_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t v_452 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_453 = {0}; _fx_N14C_form__cexp_t dst_exp_11 = 0; - _fx_LN15C_form__cstmt_t ccode_83 = 0; - _fx_N14C_form__cexp_t v_457 = 0; - _fx_LN14C_form__cexp_t v_458 = 0; - _fx_LN14C_form__cexp_t args_11 = 0; + _fx_LN15C_form__cstmt_t ccode_75 = 0; + _fx_N14C_form__cexp_t v_454 = 0; + _fx_LN14C_form__cexp_t v_455 = 0; + _fx_LN14C_form__cexp_t args_8 = 0; _fx_N14C_form__cexp_t dst_exp_12 = 0; - _fx_LN15C_form__cstmt_t ccode_84 = 0; - _fx_N14C_form__cexp_t v_459 = 0; - _fx_LN14C_form__cexp_t args_12 = 0; - _fx_LN14C_form__cexp_t v_460 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_461 = {0}; + _fx_LN15C_form__cstmt_t ccode_76 = 0; + _fx_N14C_form__cexp_t v_456 = 0; + _fx_LN14C_form__cexp_t args_9 = 0; + _fx_LN14C_form__cexp_t v_457 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_458 = {0}; _fx_N14C_form__cexp_t mcall_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_85 = 0; + _fx_LN15C_form__cstmt_t ccode_77 = 0; _fx_T4R9Ast__id_tiLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_8 = &kexp_0->u.KExpICall; FX_CALL( _fx_M10C_gen_codeFM7id2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t9R9Ast__id_tBLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( &vcase_8->t0, true, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_448, 0), _fx_catch_103); - FX_COPY_PTR(v_448.t0, &io_cexp_0); - FX_COPY_PTR(v_448.t1, &ccode_81); - _fx_R9Ast__id_t v_462; + &v_447, 0), _fx_catch_103); + FX_COPY_PTR(v_447.t0, &io_cexp_0); + FX_COPY_PTR(v_447.t1, &ccode_73); + _fx_R9Ast__id_t v_459; fx_str_t slit_116 = FX_MAKE_STR("obj"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_116, &v_462, 0), _fx_catch_103); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_116, &v_459, 0), _fx_catch_103); FX_CALL( - _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(io_cexp_0, &v_462, + _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(io_cexp_0, &v_459, _fx_g23C_form__std_CTypVoidPtr, &obj_cexp_0, 0), _fx_catch_103); - FX_CALL(_fx_M10C_gen_codeFM12make_fun_argN14C_form__cexp_t2N14C_form__cexp_tR10Ast__loc_t(obj_cexp_0, &kloc_0, &v_449, 0), + FX_CALL(_fx_M10C_gen_codeFM12make_fun_argN14C_form__cexp_t2N14C_form__cexp_tR10Ast__loc_t(obj_cexp_0, &kloc_0, &v_448, 0), _fx_catch_103); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_449, 0, true, &v_450), _fx_catch_103); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(v_450, ccode_81, &__fold_result___4); - FX_COPY_PTR(vcase_8->t2, &args_9); - _fx_LN14K_form__atom_t lst_6 = args_9; + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_448, 0, true, &cargs_2), _fx_catch_103); + FX_COPY_PTR(ccode_73, &ccode_74); + FX_COPY_PTR(vcase_8->t2, &args_7); + _fx_LN14K_form__atom_t lst_6 = args_7; for (; lst_6; lst_6 = lst_6->tl) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_463 = {0}; - _fx_LN14C_form__cexp_t args_13 = 0; - _fx_LN15C_form__cstmt_t ccode_86 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_464 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_460 = {0}; _fx_N14C_form__cexp_t carg_2 = 0; - _fx_LN15C_form__cstmt_t ccode_87 = 0; + _fx_LN15C_form__cstmt_t ccode1_5 = 0; _fx_N14C_form__cexp_t carg_3 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_465 = {0}; + _fx_LN14C_form__cexp_t v_461 = 0; _fx_N14K_form__atom_t* arg_2 = &lst_6->hd; - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___4, &v_463); - FX_COPY_PTR(v_463.t0, &args_13); - FX_COPY_PTR(v_463.t1, &ccode_86); FX_CALL( - atom2cexp_0.fp(arg_2, ccode_86, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_464, atom2cexp_0.fcv), _fx_catch_101); - FX_COPY_PTR(v_464.t0, &carg_2); - FX_COPY_PTR(v_464.t1, &ccode_87); + atom2cexp_0.fp(arg_2, ccode_74, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_460, atom2cexp_0.fcv), _fx_catch_101); + FX_COPY_PTR(v_460.t0, &carg_2); + FX_COPY_PTR(v_460.t1, &ccode1_5); FX_CALL(_fx_M10C_gen_codeFM12make_fun_argN14C_form__cexp_t2N14C_form__cexp_tR10Ast__loc_t(carg_2, &kloc_0, &carg_3, 0), _fx_catch_101); - FX_CALL(_fx_cons_LN14C_form__cexp_t(carg_3, args_13, false, &args_13), _fx_catch_101); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(args_13, ccode_87, &v_465); - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___4); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_465, &__fold_result___4); + FX_CALL(_fx_cons_LN14C_form__cexp_t(carg_3, cargs_2, true, &v_461), _fx_catch_101); + _fx_free_LN14C_form__cexp_t(&cargs_2); + FX_COPY_PTR(v_461, &cargs_2); + _fx_free_LN15C_form__cstmt_t(&ccode_74); + FX_COPY_PTR(ccode1_5, &ccode_74); _fx_catch_101: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_465); + if (v_461) { + _fx_free_LN14C_form__cexp_t(&v_461); + } if (carg_3) { _fx_free_N14C_form__cexp_t(&carg_3); } - if (ccode_87) { - _fx_free_LN15C_form__cstmt_t(&ccode_87); + if (ccode1_5) { + _fx_free_LN15C_form__cstmt_t(&ccode1_5); } if (carg_2) { _fx_free_N14C_form__cexp_t(&carg_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_464); - if (ccode_86) { - _fx_free_LN15C_form__cstmt_t(&ccode_86); - } - if (args_13) { - _fx_free_LN14C_form__cexp_t(&args_13); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_463); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_460); FX_CHECK_EXN(_fx_catch_103); } - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___4, &v_451); - FX_COPY_PTR(v_451.t0, &args_10); - FX_COPY_PTR(v_451.t1, &ccode_82); FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(io_cexp_0, &t_9, 0), _fx_catch_103); FX_CALL( - _fx_M6C_formFM18get_cinterface_optNt6option1rRM15cdefinterface_t2N14C_form__ctyp_tR10Ast__loc_t(t_9, &kloc_0, &v_452, + _fx_M6C_formFM18get_cinterface_optNt6option1rRM15cdefinterface_t2N14C_form__ctyp_tR10Ast__loc_t(t_9, &kloc_0, &v_449, 0), _fx_catch_103); - if (v_452.tag == 2) { - FX_COPY_PTR(v_452.u.Some, &obj_iface_0); + if (v_449.tag == 2) { + FX_COPY_PTR(v_449.u.Some, &obj_iface_0); } else { - _fx_T2SR9Ast__id_t v_466 = {0}; - fx_str_t v_467 = {0}; - fx_str_t v_468 = {0}; - fx_str_t v_469 = {0}; - fx_exn_t v_470 = {0}; - FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(t_9, &kloc_0, &v_466, 0), _fx_catch_102); - fx_copy_str(&v_466.t0, &v_467); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_467, &v_468, 0), _fx_catch_102); + _fx_T2SR9Ast__id_t v_462 = {0}; + fx_str_t v_463 = {0}; + fx_str_t v_464 = {0}; + fx_str_t v_465 = {0}; + fx_exn_t v_466 = {0}; + FX_CALL(_fx_M6C_formFM8ctyp2strT2SR9Ast__id_t2N14C_form__ctyp_tR10Ast__loc_t(t_9, &kloc_0, &v_462, 0), _fx_catch_102); + fx_copy_str(&v_462.t0, &v_463); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_463, &v_464, 0), _fx_catch_102); fx_str_t slit_117 = FX_MAKE_STR("the first parameter (of type \'"); fx_str_t slit_118 = FX_MAKE_STR("\') of KExpICall is not an interface"); { - const fx_str_t strs_27[] = { slit_117, v_468, slit_118 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_27, 3, &v_469), _fx_catch_102); + const fx_str_t strs_26[] = { slit_117, v_464, slit_118 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_26, 3, &v_465), _fx_catch_102); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_469, &v_470, 0), _fx_catch_102); - FX_THROW(&v_470, false, _fx_catch_102); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_465, &v_466, 0), _fx_catch_102); + FX_THROW(&v_466, false, _fx_catch_102); _fx_catch_102: ; - fx_free_exn(&v_470); - FX_FREE_STR(&v_469); - FX_FREE_STR(&v_468); - FX_FREE_STR(&v_467); - _fx_free_T2SR9Ast__id_t(&v_466); + fx_free_exn(&v_466); + FX_FREE_STR(&v_465); + FX_FREE_STR(&v_464); + FX_FREE_STR(&v_463); + _fx_free_T2SR9Ast__id_t(&v_462); } FX_CHECK_EXN(_fx_catch_103); - FX_COPY_PTR(obj_iface_0->data.ci_all_methods, &v_453); + _fx_R23C_form__cdefinterface_t* v_467 = &obj_iface_0->data; + FX_COPY_PTR(v_467->ci_all_methods, &v_450); FX_CALL( - _fx_M10C_gen_codeFM3nthT2R9Ast__id_tN14C_form__ctyp_t2LT2R9Ast__id_tN14C_form__ctyp_ti(v_453, vcase_8->t1, &v_454, 0), + _fx_M10C_gen_codeFM3nthT2R9Ast__id_tN14C_form__ctyp_t2LT2R9Ast__id_tN14C_form__ctyp_ti(v_450, vcase_8->t1, &v_451, 0), _fx_catch_103); - _fx_R9Ast__id_t mname_0 = v_454.t0; - FX_COPY_PTR(v_454.t1, &mt_0); - _fx_R9Ast__id_t v_471; + _fx_R9Ast__id_t mname_0 = v_451.t0; + FX_COPY_PTR(v_451.t1, &mt_0); + _fx_R9Ast__id_t v_468; fx_str_t slit_119 = FX_MAKE_STR("vtbl"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_119, &v_471, 0), _fx_catch_103); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_119, &v_468, 0), _fx_catch_103); FX_CALL( - _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(io_cexp_0, &v_471, + _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(io_cexp_0, &v_468, _fx_g23C_form__std_CTypVoidPtr, &vtbl_0, 0), _fx_catch_103); FX_CALL( _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(vtbl_0, &mname_0, mt_0, &mexp_0, 0), _fx_catch_103); if (FX_REC_VARIANT_TAG(ctyp_0) == 8) { - _fx_make_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t(args_10, dummy_exp_0, ccode_82, &v_455); + _fx_make_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t(cargs_2, dummy_exp_0, ccode_74, &v_452); } else { fx_str_t slit_120 = FX_MAKE_STR("res"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_120, ctyp_0, ccode_82, &kloc_0, block_stack_ref_0, km_idx_0, &v_456, 0), _fx_catch_103); - FX_COPY_PTR(v_456.t0, &dst_exp_11); - FX_COPY_PTR(v_456.t1, &ccode_83); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_11, &v_457, 0), _fx_catch_103); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_457, args_10, true, &v_458), _fx_catch_103); - _fx_make_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t(v_458, dst_exp_11, ccode_83, &v_455); - } - FX_COPY_PTR(v_455.t0, &args_11); - FX_COPY_PTR(v_455.t1, &dst_exp_12); - FX_COPY_PTR(v_455.t2, &ccode_84); - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_459, 0), _fx_catch_103); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_459, args_11, true, &args_12), _fx_catch_103); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(args_12, &v_460, 0), _fx_catch_103); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypCInt, &kloc_0, &v_461); + dstexp_r_0, &slit_120, ctyp_0, ccode_74, &kloc_0, block_stack_ref_0, km_idx_0, &v_453, 0), _fx_catch_103); + FX_COPY_PTR(v_453.t0, &dst_exp_11); + FX_COPY_PTR(v_453.t1, &ccode_75); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(dst_exp_11, &v_454, 0), _fx_catch_103); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_454, cargs_2, true, &v_455), _fx_catch_103); + _fx_make_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t(v_455, dst_exp_11, ccode_75, &v_452); + } + FX_COPY_PTR(v_452.t0, &args_8); + FX_COPY_PTR(v_452.t1, &dst_exp_12); + FX_COPY_PTR(v_452.t2, &ccode_76); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_456, 0), _fx_catch_103); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_456, args_8, true, &args_9), _fx_catch_103); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(args_9, &v_457, 0), _fx_catch_103); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypCInt, &kloc_0, &v_458); FX_CALL( _fx_M6C_formFM8CExpCallN14C_form__cexp_t3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(mexp_0, - v_460, &v_461, &mcall_exp_0), _fx_catch_103); + v_457, &v_458, &mcall_exp_0), _fx_catch_103); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - mcall_exp_0, ccode_84, &kloc_0, block_stack_ref_0, &ccode_85, 0), _fx_catch_103); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_12, ccode_85, &v_1); + mcall_exp_0, ccode_76, &kloc_0, block_stack_ref_0, &ccode_77, 0), _fx_catch_103); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_12, ccode_77, &v_1); _fx_catch_103: ; - if (ccode_85) { - _fx_free_LN15C_form__cstmt_t(&ccode_85); + if (ccode_77) { + _fx_free_LN15C_form__cstmt_t(&ccode_77); } if (mcall_exp_0) { _fx_free_N14C_form__cexp_t(&mcall_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_461); - if (v_460) { - _fx_free_LN14C_form__cexp_t(&v_460); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_458); + if (v_457) { + _fx_free_LN14C_form__cexp_t(&v_457); } - if (args_12) { - _fx_free_LN14C_form__cexp_t(&args_12); + if (args_9) { + _fx_free_LN14C_form__cexp_t(&args_9); } - if (v_459) { - _fx_free_N14C_form__cexp_t(&v_459); + if (v_456) { + _fx_free_N14C_form__cexp_t(&v_456); } - if (ccode_84) { - _fx_free_LN15C_form__cstmt_t(&ccode_84); + if (ccode_76) { + _fx_free_LN15C_form__cstmt_t(&ccode_76); } if (dst_exp_12) { _fx_free_N14C_form__cexp_t(&dst_exp_12); } - if (args_11) { - _fx_free_LN14C_form__cexp_t(&args_11); + if (args_8) { + _fx_free_LN14C_form__cexp_t(&args_8); } - if (v_458) { - _fx_free_LN14C_form__cexp_t(&v_458); + if (v_455) { + _fx_free_LN14C_form__cexp_t(&v_455); } - if (v_457) { - _fx_free_N14C_form__cexp_t(&v_457); + if (v_454) { + _fx_free_N14C_form__cexp_t(&v_454); } - if (ccode_83) { - _fx_free_LN15C_form__cstmt_t(&ccode_83); + if (ccode_75) { + _fx_free_LN15C_form__cstmt_t(&ccode_75); } if (dst_exp_11) { _fx_free_N14C_form__cexp_t(&dst_exp_11); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_456); - _fx_free_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t(&v_455); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_453); + _fx_free_T3LN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t(&v_452); if (mexp_0) { _fx_free_N14C_form__cexp_t(&mexp_0); } @@ -26079,44 +25575,39 @@ static int if (mt_0) { _fx_free_N14C_form__ctyp_t(&mt_0); } - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_454); - if (v_453) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_453); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_451); + if (v_450) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_450); } if (obj_iface_0) { _fx_free_rR23C_form__cdefinterface_t(&obj_iface_0); } - _fx_free_Nt6option1rR23C_form__cdefinterface_t(&v_452); + _fx_free_Nt6option1rR23C_form__cdefinterface_t(&v_449); if (t_9) { _fx_free_N14C_form__ctyp_t(&t_9); } - if (ccode_82) { - _fx_free_LN15C_form__cstmt_t(&ccode_82); - } - if (args_10) { - _fx_free_LN14C_form__cexp_t(&args_10); + if (args_7) { + _fx_free_LN14K_form__atom_t(&args_7); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_451); - if (args_9) { - _fx_free_LN14K_form__atom_t(&args_9); + if (ccode_74) { + _fx_free_LN15C_form__cstmt_t(&ccode_74); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___4); - if (v_450) { - _fx_free_LN14C_form__cexp_t(&v_450); + if (cargs_2) { + _fx_free_LN14C_form__cexp_t(&cargs_2); } - if (v_449) { - _fx_free_N14C_form__cexp_t(&v_449); + if (v_448) { + _fx_free_N14C_form__cexp_t(&v_448); } if (obj_cexp_0) { _fx_free_N14C_form__cexp_t(&obj_cexp_0); } - if (ccode_81) { - _fx_free_LN15C_form__cstmt_t(&ccode_81); + if (ccode_73) { + _fx_free_LN15C_form__cstmt_t(&ccode_73); } if (io_cexp_0) { _fx_free_N14C_form__cexp_t(&io_cexp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_448); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_447); goto _fx_endmatch_49; } bool res_14; @@ -26131,74 +25622,66 @@ static int } FX_CHECK_EXN(_fx_cleanup); if (res_14) { - _fx_T2LN14K_form__atom_tS v_472 = {0}; - _fx_LN14K_form__atom_t args_14 = 0; + _fx_T2LN14K_form__atom_tS v_469 = {0}; + _fx_LN14K_form__atom_t args_10 = 0; fx_str_t prefix_2 = {0}; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___5 = {0}; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_473 = {0}; - _fx_LN14C_form__cexp_t cargs_2 = 0; - _fx_LN15C_form__cstmt_t ccode_88 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_474 = {0}; + _fx_LN14C_form__cexp_t cargs_3 = 0; + _fx_LN15C_form__cstmt_t ccode_78 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_470 = {0}; _fx_N14C_form__cexp_t t_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_89 = 0; - _fx_LN14C_form__cexp_t v_475 = 0; - _fx_N14C_form__cexp_t v_476 = 0; - _fx_LN14C_form__cexp_t v_477 = 0; - _fx_LN14C_form__cexp_t v_478 = 0; + _fx_LN15C_form__cstmt_t ccode_79 = 0; + _fx_LN14C_form__cexp_t v_471 = 0; + _fx_N14C_form__cexp_t v_472 = 0; + _fx_LN14C_form__cexp_t v_473 = 0; + _fx_LN14C_form__cexp_t v_474 = 0; _fx_N14C_form__cexp_t call_mktup_0 = 0; - _fx_N15C_form__cstmt_t v_479 = 0; - _fx_LN15C_form__cstmt_t v_480 = 0; - _fx_LN14C_form__cexp_t v_481 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_482 = {0}; + _fx_N15C_form__cstmt_t v_475 = 0; + _fx_LN15C_form__cstmt_t v_476 = 0; + _fx_LN14C_form__cexp_t v_477 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_478 = {0}; _fx_N14C_form__cexp_t e0_0 = 0; - _fx_R16Ast__val_flags_t v_483 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_484 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_485 = {0}; + _fx_R16Ast__val_flags_t v_479 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_480 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_481 = {0}; _fx_N14C_form__cexp_t t_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_90 = 0; + _fx_LN15C_form__cstmt_t ccode_80 = 0; int tag_13 = FX_REC_VARIANT_TAG(kexp_0); if (tag_13 == 14) { - fx_str_t slit_121 = FX_MAKE_STR("tup"); _fx_make_T2LN14K_form__atom_tS(kexp_0->u.KExpMkTuple.t0, &slit_121, &v_472); + fx_str_t slit_121 = FX_MAKE_STR("tup"); _fx_make_T2LN14K_form__atom_tS(kexp_0->u.KExpMkTuple.t0, &slit_121, &v_469); } else if (tag_13 == 15) { - fx_str_t slit_122 = FX_MAKE_STR("rec"); _fx_make_T2LN14K_form__atom_tS(kexp_0->u.KExpMkRecord.t0, &slit_122, &v_472); + fx_str_t slit_122 = FX_MAKE_STR("rec"); _fx_make_T2LN14K_form__atom_tS(kexp_0->u.KExpMkRecord.t0, &slit_122, &v_469); } else { - fx_exn_t v_486 = {0}; + fx_exn_t v_482 = {0}; fx_str_t slit_123 = FX_MAKE_STR("unexpected expression"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_123, &v_486, 0), _fx_catch_104); - FX_THROW(&v_486, false, _fx_catch_104); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_123, &v_482, 0), _fx_catch_104); + FX_THROW(&v_482, false, _fx_catch_104); _fx_catch_104: ; - fx_free_exn(&v_486); + fx_free_exn(&v_482); } FX_CHECK_EXN(_fx_catch_106); - FX_COPY_PTR(v_472.t0, &args_14); - fx_copy_str(&v_472.t1, &prefix_2); + FX_COPY_PTR(v_469.t0, &args_10); + fx_copy_str(&v_469.t1, &prefix_2); _fx_R9Ast__id_t tcon_0; FX_CALL( _fx_M11C_gen_typesFM15get_constructorR9Ast__id_t3N14C_form__ctyp_tBR10Ast__loc_t(ctyp_0, false, &kloc_0, &tcon_0, 0), _fx_catch_106); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, ccode_0, &__fold_result___5); - _fx_LN14K_form__atom_t lst_7 = args_14; + FX_COPY_PTR(ccode_0, &ccode_78); + _fx_LN14K_form__atom_t lst_7 = args_10; for (; lst_7; lst_7 = lst_7->tl) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_487 = {0}; - _fx_LN14C_form__cexp_t cargs_3 = 0; - _fx_LN15C_form__cstmt_t ccode_91 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_488 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_483 = {0}; _fx_N14C_form__cexp_t ca_0 = 0; - _fx_LN15C_form__cstmt_t ccode_92 = 0; + _fx_LN15C_form__cstmt_t ccode1_6 = 0; _fx_N14C_form__cexp_t ca_1 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_489 = {0}; + _fx_LN14C_form__cexp_t v_484 = 0; _fx_N14K_form__atom_t* a_2 = &lst_7->hd; - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___5, &v_487); - FX_COPY_PTR(v_487.t0, &cargs_3); - FX_COPY_PTR(v_487.t1, &ccode_91); FX_CALL( - atom2cexp_0.fp(a_2, ccode_91, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_488, atom2cexp_0.fcv), _fx_catch_105); - FX_COPY_PTR(v_488.t0, &ca_0); - FX_COPY_PTR(v_488.t1, &ccode_92); + atom2cexp_0.fp(a_2, ccode_78, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, + &v_483, atom2cexp_0.fcv), _fx_catch_105); + FX_COPY_PTR(v_483.t0, &ca_0); + FX_COPY_PTR(v_483.t1, &ccode1_6); bool res_15; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&tcon_0, &_fx_g9Ast__noid, &res_15, 0), _fx_catch_105); if (res_15) { @@ -26208,174 +25691,163 @@ static int FX_CALL(_fx_M10C_gen_codeFM12make_fun_argN14C_form__cexp_t2N14C_form__cexp_tR10Ast__loc_t(ca_0, &kloc_0, &ca_1, 0), _fx_catch_105); } - FX_CALL(_fx_cons_LN14C_form__cexp_t(ca_1, cargs_3, false, &cargs_3), _fx_catch_105); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(cargs_3, ccode_92, &v_489); - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___5); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_489, &__fold_result___5); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ca_1, cargs_3, true, &v_484), _fx_catch_105); + _fx_free_LN14C_form__cexp_t(&cargs_3); + FX_COPY_PTR(v_484, &cargs_3); + _fx_free_LN15C_form__cstmt_t(&ccode_78); + FX_COPY_PTR(ccode1_6, &ccode_78); _fx_catch_105: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_489); + if (v_484) { + _fx_free_LN14C_form__cexp_t(&v_484); + } if (ca_1) { _fx_free_N14C_form__cexp_t(&ca_1); } - if (ccode_92) { - _fx_free_LN15C_form__cstmt_t(&ccode_92); + if (ccode1_6) { + _fx_free_LN15C_form__cstmt_t(&ccode1_6); } if (ca_0) { _fx_free_N14C_form__cexp_t(&ca_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_488); - if (ccode_91) { - _fx_free_LN15C_form__cstmt_t(&ccode_91); - } - if (cargs_3) { - _fx_free_LN14C_form__cexp_t(&cargs_3); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_487); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_483); FX_CHECK_EXN(_fx_catch_106); } - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___5, &v_473); - FX_COPY_PTR(v_473.t0, &cargs_2); - FX_COPY_PTR(v_473.t1, &ccode_88); bool res_16; FX_CALL(_fx_M10C_gen_codeFM6__ne__B2R9Ast__id_tR9Ast__id_t(&tcon_0, &_fx_g9Ast__noid, &res_16, 0), _fx_catch_106); if (res_16) { FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &prefix_2, ctyp_0, ccode_88, &kloc_0, block_stack_ref_0, km_idx_0, &v_474, 0), _fx_catch_106); - FX_COPY_PTR(v_474.t0, &t_exp_0); - FX_COPY_PTR(v_474.t1, &ccode_89); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(cargs_2, &v_475, 0), _fx_catch_106); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(t_exp_0, &v_476, 0), _fx_catch_106); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_476, 0, true, &v_477), _fx_catch_106); - FX_CALL(_fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(v_475, v_477, &v_478, 0), + dstexp_r_0, &prefix_2, ctyp_0, ccode_78, &kloc_0, block_stack_ref_0, km_idx_0, &v_470, 0), _fx_catch_106); + FX_COPY_PTR(v_470.t0, &t_exp_0); + FX_COPY_PTR(v_470.t1, &ccode_79); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(cargs_3, &v_471, 0), _fx_catch_106); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(t_exp_0, &v_472, 0), _fx_catch_106); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_472, 0, true, &v_473), _fx_catch_106); + FX_CALL(_fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(v_471, v_473, &v_474, 0), _fx_catch_106); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&tcon_0, - v_478, _fx_g20C_gen_code__CTypVoid, &kloc_0, &call_mktup_0, 0), _fx_catch_106); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_mktup_0, &v_479), _fx_catch_106); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_479, ccode_89, true, &v_480), _fx_catch_106); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, t_exp_0, v_480, &v_1); + v_474, _fx_g20C_gen_code__CTypVoid, &kloc_0, &call_mktup_0, 0), _fx_catch_106); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_mktup_0, &v_475), _fx_catch_106); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_475, ccode_79, true, &v_476), _fx_catch_106); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, t_exp_0, v_476, &v_1); } else { _fx_R9Ast__id_t tup_2; FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &prefix_2, &tup_2, 0), _fx_catch_106); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(cargs_2, &v_481, 0), _fx_catch_106); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_482); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(cargs_3, &v_477, 0), _fx_catch_106); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_478); FX_CALL( - _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_481, &v_482, &e0_0), + _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_477, &v_478, &e0_0), _fx_catch_106); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_483, 0), _fx_catch_106); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(e0_0, &v_484); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_479, 0), _fx_catch_106); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(e0_0, &v_480); fx_str_t slit_124 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &tup_2, ctyp_0, &v_483, &slit_124, &v_484, ccode_88, &kloc_0, &v_485, 0), _fx_catch_106); - FX_COPY_PTR(v_485.t0, &t_exp_1); - FX_COPY_PTR(v_485.t1, &ccode_90); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, t_exp_1, ccode_90, &v_1); + &tup_2, ctyp_0, &v_479, &slit_124, &v_480, ccode_78, &kloc_0, &v_481, 0), _fx_catch_106); + FX_COPY_PTR(v_481.t0, &t_exp_1); + FX_COPY_PTR(v_481.t1, &ccode_80); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, t_exp_1, ccode_80, &v_1); } _fx_catch_106: ; - if (ccode_90) { - _fx_free_LN15C_form__cstmt_t(&ccode_90); + if (ccode_80) { + _fx_free_LN15C_form__cstmt_t(&ccode_80); } if (t_exp_1) { _fx_free_N14C_form__cexp_t(&t_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_485); - _fx_free_Nt6option1N14C_form__cexp_t(&v_484); - _fx_free_R16Ast__val_flags_t(&v_483); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_481); + _fx_free_Nt6option1N14C_form__cexp_t(&v_480); + _fx_free_R16Ast__val_flags_t(&v_479); if (e0_0) { _fx_free_N14C_form__cexp_t(&e0_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_482); - if (v_481) { - _fx_free_LN14C_form__cexp_t(&v_481); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_478); + if (v_477) { + _fx_free_LN14C_form__cexp_t(&v_477); } - if (v_480) { - _fx_free_LN15C_form__cstmt_t(&v_480); + if (v_476) { + _fx_free_LN15C_form__cstmt_t(&v_476); } - if (v_479) { - _fx_free_N15C_form__cstmt_t(&v_479); + if (v_475) { + _fx_free_N15C_form__cstmt_t(&v_475); } if (call_mktup_0) { _fx_free_N14C_form__cexp_t(&call_mktup_0); } - if (v_478) { - _fx_free_LN14C_form__cexp_t(&v_478); + if (v_474) { + _fx_free_LN14C_form__cexp_t(&v_474); } - if (v_477) { - _fx_free_LN14C_form__cexp_t(&v_477); + if (v_473) { + _fx_free_LN14C_form__cexp_t(&v_473); } - if (v_476) { - _fx_free_N14C_form__cexp_t(&v_476); + if (v_472) { + _fx_free_N14C_form__cexp_t(&v_472); } - if (v_475) { - _fx_free_LN14C_form__cexp_t(&v_475); + if (v_471) { + _fx_free_LN14C_form__cexp_t(&v_471); } - if (ccode_89) { - _fx_free_LN15C_form__cstmt_t(&ccode_89); + if (ccode_79) { + _fx_free_LN15C_form__cstmt_t(&ccode_79); } if (t_exp_0) { _fx_free_N14C_form__cexp_t(&t_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_474); - if (ccode_88) { - _fx_free_LN15C_form__cstmt_t(&ccode_88); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_470); + if (ccode_78) { + _fx_free_LN15C_form__cstmt_t(&ccode_78); } - if (cargs_2) { - _fx_free_LN14C_form__cexp_t(&cargs_2); + if (cargs_3) { + _fx_free_LN14C_form__cexp_t(&cargs_3); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_473); - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___5); FX_FREE_STR(&prefix_2); - if (args_14) { - _fx_free_LN14K_form__atom_t(&args_14); + if (args_10) { + _fx_free_LN14K_form__atom_t(&args_10); } - _fx_free_T2LN14K_form__atom_tS(&v_472); + _fx_free_T2LN14K_form__atom_tS(&v_469); goto _fx_endmatch_49; } if (tag_0 == 16) { - fx_str_t v_490 = {0}; + fx_str_t v_485 = {0}; fx_str_t fp_prefix_0 = {0}; _fx_N14C_form__cexp_t f_exp_4 = 0; - _fx_N14C_form__cexp_t v_491 = 0; - _fx_LN14C_form__cexp_t v_492 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_493 = {0}; + _fx_N14C_form__cexp_t v_486 = 0; + _fx_LN14C_form__cexp_t v_487 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_488 = {0}; _fx_N14C_form__cexp_t e0_1 = 0; - _fx_R16Ast__val_flags_t v_494 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_495 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_496 = {0}; + _fx_R16Ast__val_flags_t v_489 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_490 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_491 = {0}; _fx_N14C_form__cexp_t fp_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_93 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___6 = {0}; - _fx_LN14K_form__atom_t args_15 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_497 = {0}; + _fx_LN15C_form__cstmt_t ccode_81 = 0; _fx_LN14C_form__cexp_t cargs_4 = 0; - _fx_LN15C_form__cstmt_t ccode_94 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_498 = {0}; + _fx_LN15C_form__cstmt_t ccode_82 = 0; + _fx_LN14K_form__atom_t args_11 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_492 = {0}; _fx_N14C_form__cexp_t fp_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_95 = 0; - _fx_LN14C_form__cexp_t v_499 = 0; - _fx_N14C_form__cexp_t v_500 = 0; - _fx_LN14C_form__cexp_t v_501 = 0; - _fx_LN14C_form__cexp_t v_502 = 0; + _fx_LN15C_form__cstmt_t ccode_83 = 0; + _fx_LN14C_form__cexp_t v_493 = 0; + _fx_N14C_form__cexp_t v_494 = 0; + _fx_LN14C_form__cexp_t v_495 = 0; + _fx_LN14C_form__cexp_t v_496 = 0; _fx_N14C_form__cexp_t call_mkclo_0 = 0; - _fx_N15C_form__cstmt_t v_503 = 0; - _fx_LN15C_form__cstmt_t v_504 = 0; + _fx_N15C_form__cstmt_t v_497 = 0; + _fx_LN15C_form__cstmt_t v_498 = 0; _fx_T4R9Ast__id_tR9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_9 = &kexp_0->u.KExpMkClosure; - _fx_LN14K_form__atom_t args_16 = vcase_9->t2; + _fx_LN14K_form__atom_t args_12 = vcase_9->t2; _fx_R9Ast__id_t* f_4 = &vcase_9->t1; _fx_R9Ast__id_t* make_fp_0 = &vcase_9->t0; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(f_4, &v_490, 0), _fx_catch_108); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(f_4, &v_485, 0), _fx_catch_108); fx_str_t slit_125 = FX_MAKE_STR("_fp"); { - const fx_str_t strs_28[] = { v_490, slit_125 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_28, 2, &fp_prefix_0), _fx_catch_108); + const fx_str_t strs_27[] = { v_485, slit_125 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_27, 2, &fp_prefix_0), _fx_catch_108); } bool t_10; - if (args_16 == 0) { + if (args_12 == 0) { FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(make_fp_0, &_fx_g9Ast__noid, &t_10, 0), _fx_catch_108); } else { @@ -26389,653 +25861,553 @@ static int f_4, &kloc_0, defined_syms_ref_0, fwd_fdecls_ref_0, 0), _fx_catch_108); FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(f_4, &kloc_0, &f_exp_4, 0), _fx_catch_108); - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_491, 0), _fx_catch_108); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_491, 0, true, &v_492), _fx_catch_108); - FX_CALL(_fx_cons_LN14C_form__cexp_t(f_exp_4, v_492, false, &v_492), _fx_catch_108); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_493); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_486, 0), _fx_catch_108); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_486, 0, true, &v_487), _fx_catch_108); + FX_CALL(_fx_cons_LN14C_form__cexp_t(f_exp_4, v_487, false, &v_487), _fx_catch_108); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_488); FX_CALL( - _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_492, &v_493, &e0_1), + _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_487, &v_488, &e0_1), _fx_catch_108); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_494, 0), _fx_catch_108); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(e0_1, &v_495); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_489, 0), _fx_catch_108); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(e0_1, &v_490); fx_str_t slit_126 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &fp_id_0, ctyp_0, &v_494, &slit_126, &v_495, ccode_0, &kloc_0, &v_496, 0), _fx_catch_108); - FX_COPY_PTR(v_496.t0, &fp_exp_0); - FX_COPY_PTR(v_496.t1, &ccode_93); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, fp_exp_0, ccode_93, &v_1); + &fp_id_0, ctyp_0, &v_489, &slit_126, &v_490, ccode_0, &kloc_0, &v_491, 0), _fx_catch_108); + FX_COPY_PTR(v_491.t0, &fp_exp_0); + FX_COPY_PTR(v_491.t1, &ccode_81); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, fp_exp_0, ccode_81, &v_1); } else { - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, ccode_0, &__fold_result___6); - FX_COPY_PTR(args_16, &args_15); - _fx_LN14K_form__atom_t lst_8 = args_15; + FX_COPY_PTR(ccode_0, &ccode_82); + FX_COPY_PTR(args_12, &args_11); + _fx_LN14K_form__atom_t lst_8 = args_11; for (; lst_8; lst_8 = lst_8->tl) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_505 = {0}; - _fx_LN14C_form__cexp_t cargs_5 = 0; - _fx_LN15C_form__cstmt_t ccode_96 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_506 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_499 = {0}; _fx_N14C_form__cexp_t ca_2 = 0; - _fx_LN15C_form__cstmt_t ccode_97 = 0; + _fx_LN15C_form__cstmt_t ccode1_7 = 0; _fx_N14C_form__cexp_t ca_3 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_507 = {0}; + _fx_LN14C_form__cexp_t v_500 = 0; _fx_N14K_form__atom_t* a_3 = &lst_8->hd; - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___6, &v_505); - FX_COPY_PTR(v_505.t0, &cargs_5); - FX_COPY_PTR(v_505.t1, &ccode_96); FX_CALL( - atom2cexp_0.fp(a_3, ccode_96, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_506, atom2cexp_0.fcv), _fx_catch_107); - FX_COPY_PTR(v_506.t0, &ca_2); - FX_COPY_PTR(v_506.t1, &ccode_97); + atom2cexp_0.fp(a_3, ccode_82, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_499, atom2cexp_0.fcv), _fx_catch_107); + FX_COPY_PTR(v_499.t0, &ca_2); + FX_COPY_PTR(v_499.t1, &ccode1_7); FX_CALL(_fx_M10C_gen_codeFM12make_fun_argN14C_form__cexp_t2N14C_form__cexp_tR10Ast__loc_t(ca_2, &kloc_0, &ca_3, 0), _fx_catch_107); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ca_3, cargs_5, false, &cargs_5), _fx_catch_107); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(cargs_5, ccode_97, &v_507); - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___6); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_507, &__fold_result___6); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ca_3, cargs_4, true, &v_500), _fx_catch_107); + _fx_free_LN14C_form__cexp_t(&cargs_4); + FX_COPY_PTR(v_500, &cargs_4); + _fx_free_LN15C_form__cstmt_t(&ccode_82); + FX_COPY_PTR(ccode1_7, &ccode_82); _fx_catch_107: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_507); + if (v_500) { + _fx_free_LN14C_form__cexp_t(&v_500); + } if (ca_3) { _fx_free_N14C_form__cexp_t(&ca_3); } - if (ccode_97) { - _fx_free_LN15C_form__cstmt_t(&ccode_97); + if (ccode1_7) { + _fx_free_LN15C_form__cstmt_t(&ccode1_7); } if (ca_2) { _fx_free_N14C_form__cexp_t(&ca_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_506); - if (ccode_96) { - _fx_free_LN15C_form__cstmt_t(&ccode_96); - } - if (cargs_5) { - _fx_free_LN14C_form__cexp_t(&cargs_5); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_505); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_499); FX_CHECK_EXN(_fx_catch_108); } - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___6, &v_497); - FX_COPY_PTR(v_497.t0, &cargs_4); - FX_COPY_PTR(v_497.t1, &ccode_94); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &fp_prefix_0, ctyp_0, ccode_94, &kloc_0, block_stack_ref_0, km_idx_0, &v_498, 0), _fx_catch_108); - FX_COPY_PTR(v_498.t0, &fp_exp_1); - FX_COPY_PTR(v_498.t1, &ccode_95); + dstexp_r_0, &fp_prefix_0, ctyp_0, ccode_82, &kloc_0, block_stack_ref_0, km_idx_0, &v_492, 0), _fx_catch_108); + FX_COPY_PTR(v_492.t0, &fp_exp_1); + FX_COPY_PTR(v_492.t1, &ccode_83); FX_CALL( _fx_M10C_gen_codeFM33ensure_sym_is_defined_or_declaredv4R9Ast__id_tR10Ast__loc_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_t( make_fp_0, &kloc_0, defined_syms_ref_0, fwd_fdecls_ref_0, 0), _fx_catch_108); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(cargs_4, &v_499, 0), _fx_catch_108); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(fp_exp_1, &v_500, 0), _fx_catch_108); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_500, 0, true, &v_501), _fx_catch_108); - FX_CALL(_fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(v_499, v_501, &v_502, 0), + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(cargs_4, &v_493, 0), _fx_catch_108); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(fp_exp_1, &v_494, 0), _fx_catch_108); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_494, 0, true, &v_495), _fx_catch_108); + FX_CALL(_fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(v_493, v_495, &v_496, 0), _fx_catch_108); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(make_fp_0, - v_502, _fx_g20C_gen_code__CTypVoid, &kloc_0, &call_mkclo_0, 0), _fx_catch_108); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_mkclo_0, &v_503), _fx_catch_108); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_503, ccode_95, true, &v_504), _fx_catch_108); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, fp_exp_1, v_504, &v_1); + v_496, _fx_g20C_gen_code__CTypVoid, &kloc_0, &call_mkclo_0, 0), _fx_catch_108); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_mkclo_0, &v_497), _fx_catch_108); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_497, ccode_83, true, &v_498), _fx_catch_108); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, fp_exp_1, v_498, &v_1); } _fx_catch_108: ; - if (v_504) { - _fx_free_LN15C_form__cstmt_t(&v_504); + if (v_498) { + _fx_free_LN15C_form__cstmt_t(&v_498); } - if (v_503) { - _fx_free_N15C_form__cstmt_t(&v_503); + if (v_497) { + _fx_free_N15C_form__cstmt_t(&v_497); } if (call_mkclo_0) { _fx_free_N14C_form__cexp_t(&call_mkclo_0); } - if (v_502) { - _fx_free_LN14C_form__cexp_t(&v_502); + if (v_496) { + _fx_free_LN14C_form__cexp_t(&v_496); } - if (v_501) { - _fx_free_LN14C_form__cexp_t(&v_501); + if (v_495) { + _fx_free_LN14C_form__cexp_t(&v_495); } - if (v_500) { - _fx_free_N14C_form__cexp_t(&v_500); + if (v_494) { + _fx_free_N14C_form__cexp_t(&v_494); } - if (v_499) { - _fx_free_LN14C_form__cexp_t(&v_499); + if (v_493) { + _fx_free_LN14C_form__cexp_t(&v_493); } - if (ccode_95) { - _fx_free_LN15C_form__cstmt_t(&ccode_95); + if (ccode_83) { + _fx_free_LN15C_form__cstmt_t(&ccode_83); } if (fp_exp_1) { _fx_free_N14C_form__cexp_t(&fp_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_498); - if (ccode_94) { - _fx_free_LN15C_form__cstmt_t(&ccode_94); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_492); + if (args_11) { + _fx_free_LN14K_form__atom_t(&args_11); + } + if (ccode_82) { + _fx_free_LN15C_form__cstmt_t(&ccode_82); } if (cargs_4) { _fx_free_LN14C_form__cexp_t(&cargs_4); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_497); - if (args_15) { - _fx_free_LN14K_form__atom_t(&args_15); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___6); - if (ccode_93) { - _fx_free_LN15C_form__cstmt_t(&ccode_93); + if (ccode_81) { + _fx_free_LN15C_form__cstmt_t(&ccode_81); } if (fp_exp_0) { _fx_free_N14C_form__cexp_t(&fp_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_496); - _fx_free_Nt6option1N14C_form__cexp_t(&v_495); - _fx_free_R16Ast__val_flags_t(&v_494); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_491); + _fx_free_Nt6option1N14C_form__cexp_t(&v_490); + _fx_free_R16Ast__val_flags_t(&v_489); if (e0_1) { _fx_free_N14C_form__cexp_t(&e0_1); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_493); - if (v_492) { - _fx_free_LN14C_form__cexp_t(&v_492); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_488); + if (v_487) { + _fx_free_LN14C_form__cexp_t(&v_487); } - if (v_491) { - _fx_free_N14C_form__cexp_t(&v_491); + if (v_486) { + _fx_free_N14C_form__cexp_t(&v_486); } if (f_exp_4) { _fx_free_N14C_form__cexp_t(&f_exp_4); } FX_FREE_STR(&fp_prefix_0); - FX_FREE_STR(&v_490); + FX_FREE_STR(&v_485); goto _fx_endmatch_49; } if (tag_0 == 17) { _fx_LLT2BN14K_form__atom_t arows_0 = 0; - _fx_T2iN14C_form__ctyp_t v_508 = {0}; + _fx_T2iN14C_form__ctyp_t v_501 = {0}; _fx_N14C_form__ctyp_t elem_ctyp_1 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_509 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_502 = {0}; _fx_N14C_form__cexp_t arr_exp_3 = 0; - _fx_LN15C_form__cstmt_t ccode_98 = 0; - _fx_N14C_form__ctyp_t v_510 = 0; + _fx_LN15C_form__cstmt_t ccode_84 = 0; + _fx_N14C_form__ctyp_t v_503 = 0; _fx_N14C_form__cexp_t scalars_exp_0 = 0; - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___7 = {0}; - _fx_LLT2BN14K_form__atom_t arows_1 = 0; - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_511 = {0}; _fx_LN14C_form__cexp_t scalars_data_0 = 0; _fx_LN14C_form__cexp_t tags_data_0 = 0; _fx_LN14C_form__cexp_t arr_data_0 = 0; - _fx_LN15C_form__cstmt_t ccode_99 = 0; - _fx_LN14C_form__cexp_t v_512 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_513 = {0}; + _fx_LN15C_form__cstmt_t ccode_85 = 0; + _fx_LLT2BN14K_form__atom_t arows_1 = 0; + _fx_LN14C_form__cexp_t v_504 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_505 = {0}; _fx_LN15C_form__cstmt_t sub_ccode_2 = 0; - _fx_N14C_form__cexp_t v_514 = 0; - _fx_LN14C_form__cexp_t v_515 = 0; - _fx_LN14C_form__cexp_t v_516 = 0; + _fx_N14C_form__cexp_t v_506 = 0; + _fx_LN14C_form__cexp_t v_507 = 0; + _fx_LN14C_form__cexp_t v_508 = 0; _fx_LN14C_form__cexp_t tags_data_1 = 0; - _fx_N14C_form__ctyp_t v_517 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_518 = {0}; + _fx_N14C_form__ctyp_t v_509 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_510 = {0}; _fx_N14C_form__cexp_t tags_exp_0 = 0; _fx_LN15C_form__cstmt_t sub_ccode_3 = 0; - _fx_LN14C_form__cexp_t v_519 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_520 = {0}; + _fx_LN14C_form__cexp_t v_511 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_512 = {0}; _fx_N14C_form__cexp_t arr_data_exp_0 = 0; _fx_LN15C_form__cstmt_t sub_ccode_4 = 0; - _fx_N14C_form__cexp_t v_521 = 0; - _fx_LN14C_form__cexp_t v_522 = 0; + _fx_N14C_form__cexp_t v_513 = 0; + _fx_LN14C_form__cexp_t v_514 = 0; _fx_N14C_form__cexp_t sizeof_elem_exp_0 = 0; - _fx_T2BNt6option1N14C_form__cexp_t v_523 = {0}; + _fx_T2BNt6option1N14C_form__cexp_t v_515 = {0}; _fx_N14C_form__cexp_t free_f_exp_0 = 0; - _fx_T2BNt6option1N14C_form__cexp_t v_524 = {0}; + _fx_T2BNt6option1N14C_form__cexp_t v_516 = {0}; _fx_N14C_form__cexp_t copy_f_exp_0 = 0; - _fx_N14C_form__cexp_t v_525 = 0; - _fx_N14C_form__cexp_t v_526 = 0; - _fx_LN14C_form__cexp_t v_527 = 0; + _fx_N14C_form__cexp_t v_517 = 0; + _fx_N14C_form__cexp_t v_518 = 0; + _fx_LN14C_form__cexp_t v_519 = 0; _fx_N14C_form__cexp_t call_mkarr_0 = 0; _fx_LN15C_form__cstmt_t sub_ccode_5 = 0; - _fx_N15C_form__cstmt_t v_528 = 0; - _fx_LN15C_form__cstmt_t ccode_100 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_529 = {0}; + _fx_N15C_form__cstmt_t v_520 = 0; + _fx_LN15C_form__cstmt_t ccode_86 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_521 = {0}; _fx_N14C_form__cexp_t arr_exp_4 = 0; - _fx_LN15C_form__cstmt_t ccode_101 = 0; - _fx_LT2BN14K_form__atom_t v_530 = 0; + _fx_LN15C_form__cstmt_t ccode_87 = 0; + _fx_LT2BN14K_form__atom_t v_522 = 0; _fx_Li shape_0 = 0; - _fx_Li v_531 = 0; + _fx_Li v_523 = 0; _fx_LN14C_form__cexp_t shape_1 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___8 = {0}; - _fx_LLT2BN14K_form__atom_t arows_2 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_532 = {0}; _fx_LN14C_form__cexp_t data_0 = 0; - _fx_LN15C_form__cstmt_t ccode_102 = 0; - _fx_LN19C_form__ctyp_attr_t v_533 = 0; + _fx_LN15C_form__cstmt_t ccode_88 = 0; + _fx_LLT2BN14K_form__atom_t arows_2 = 0; + _fx_LN19C_form__ctyp_attr_t v_524 = 0; _fx_N14C_form__ctyp_t shape_ctyp_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_534 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_525 = {0}; _fx_N14C_form__cexp_t shape_arr_0 = 0; - _fx_R16Ast__val_flags_t v_535 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_536 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_537 = {0}; + _fx_R16Ast__val_flags_t v_526 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_527 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_528 = {0}; _fx_N14C_form__cexp_t shape_exp_0 = 0; _fx_LN15C_form__cstmt_t ccode__0 = 0; - _fx_LN14C_form__cexp_t v_538 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_539 = {0}; + _fx_LN14C_form__cexp_t v_529 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_530 = {0}; _fx_N14C_form__cexp_t data_exp_0 = 0; _fx_LN15C_form__cstmt_t glob_data_ccode__0 = 0; _fx_R17C_form__cdefval_t data_cv_0 = {0}; _fx_R16Ast__val_flags_t data_flags_0 = {0}; - _fx_R16Ast__val_flags_t v_540 = {0}; - _fx_R17C_form__cdefval_t v_541 = {0}; - _fx_N15C_form__cinfo_t v_542 = {0}; - _fx_Ta3N14C_form__cexp_t v_543 = {0}; + _fx_R16Ast__val_flags_t v_531 = {0}; + _fx_R17C_form__cdefval_t v_532 = {0}; + _fx_N15C_form__cinfo_t v_533 = {0}; + _fx_Ta3N14C_form__cexp_t v_534 = {0}; _fx_N14C_form__cexp_t sizeof_elem_exp_1 = 0; _fx_N14C_form__cexp_t free_f_exp_1 = 0; _fx_N14C_form__cexp_t copy_f_exp_1 = 0; - _fx_N14C_form__cexp_t v_544 = 0; - _fx_N14C_form__cexp_t v_545 = 0; - _fx_LN14C_form__cexp_t v_546 = 0; + _fx_N14C_form__cexp_t v_535 = 0; + _fx_N14C_form__cexp_t v_536 = 0; + _fx_LN14C_form__cexp_t v_537 = 0; _fx_N14C_form__cexp_t call_mkarr_1 = 0; _fx_LN15C_form__cstmt_t ccode__1 = 0; - _fx_N15C_form__cstmt_t v_547 = 0; - _fx_LN15C_form__cstmt_t v_548 = 0; - _fx_LN14C_form__cexp_t v_549 = 0; - _fx_N14C_form__cexp_t v_550 = 0; - _fx_LN15C_form__cstmt_t ccode_103 = 0; + _fx_N15C_form__cstmt_t v_538 = 0; + _fx_LN15C_form__cstmt_t v_539 = 0; + _fx_LN14C_form__cexp_t v_540 = 0; + _fx_N14C_form__cexp_t v_541 = 0; + _fx_LN15C_form__cstmt_t ccode_89 = 0; _fx_T3BLLT2BN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_10 = &kexp_0->u.KExpMkArray; _fx_LLT2BN14K_form__atom_t arows_3 = vcase_10->t1; bool all_literals_0 = vcase_10->t0; bool have_expanded_0; if (!all_literals_0) { - bool __fold_result___9 = false; + bool __fold_result___0 = false; FX_COPY_PTR(arows_3, &arows_0); _fx_LLT2BN14K_form__atom_t lst_9 = arows_0; for (; lst_9; lst_9 = lst_9->tl) { _fx_LT2BN14K_form__atom_t arow_0 = lst_9->hd; - bool __fold_result___10 = false; + bool __fold_result___1 = false; _fx_LT2BN14K_form__atom_t lst_10 = arow_0; for (; lst_10; lst_10 = lst_10->tl) { _fx_T2BN14K_form__atom_t* __pat___0 = &lst_10->hd; if (__pat___0->t0) { - __fold_result___10 = true; FX_BREAK(_fx_catch_109); + __fold_result___1 = true; FX_BREAK(_fx_catch_109); } _fx_catch_109: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_110); } - if (__fold_result___10) { - __fold_result___9 = true; FX_BREAK(_fx_catch_110); + if (__fold_result___1) { + __fold_result___0 = true; FX_BREAK(_fx_catch_110); } _fx_catch_110: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_126); } - have_expanded_0 = __fold_result___9; + have_expanded_0 = __fold_result___0; } else { have_expanded_0 = false; } if (FX_REC_VARIANT_TAG(ctyp_0) == 19) { _fx_T2iN14C_form__ctyp_t* vcase_11 = &ctyp_0->u.CTypArray; - _fx_make_T2iN14C_form__ctyp_t(vcase_11->t0, vcase_11->t1, &v_508); + _fx_make_T2iN14C_form__ctyp_t(vcase_11->t0, vcase_11->t1, &v_501); } else { - fx_exn_t v_551 = {0}; + fx_exn_t v_542 = {0}; fx_str_t slit_127 = FX_MAKE_STR("cgen: invalid output type of array construction expression"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_127, &v_551, 0), _fx_catch_111); - FX_THROW(&v_551, false, _fx_catch_111); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_127, &v_542, 0), _fx_catch_111); + FX_THROW(&v_542, false, _fx_catch_111); _fx_catch_111: ; - fx_free_exn(&v_551); + fx_free_exn(&v_542); } FX_CHECK_EXN(_fx_catch_126); - int_ dims_0 = v_508.t0; - FX_COPY_PTR(v_508.t1, &elem_ctyp_1); + int_ dims_0 = v_501.t0; + FX_COPY_PTR(v_501.t1, &elem_ctyp_1); if (have_expanded_0) { fx_str_t slit_128 = FX_MAKE_STR("arr"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_128, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_509, 0), _fx_catch_126); - FX_COPY_PTR(v_509.t0, &arr_exp_3); - FX_COPY_PTR(v_509.t1, &ccode_98); + dstexp_r_0, &slit_128, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_502, 0), _fx_catch_126); + FX_COPY_PTR(v_502.t0, &arr_exp_3); + FX_COPY_PTR(v_502.t1, &ccode_84); _fx_R9Ast__id_t scalars_id_0; fx_str_t slit_129 = FX_MAKE_STR("scalars"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_129, &scalars_id_0, 0), _fx_catch_126); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elem_ctyp_1, &v_510, 0), _fx_catch_126); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elem_ctyp_1, &v_503, 0), _fx_catch_126); FX_CALL( - _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&scalars_id_0, v_510, + _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&scalars_id_0, v_503, &kloc_0, &scalars_exp_0, 0), _fx_catch_126); - _fx_make_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(0, 0, 0, 0, ccode_98, - &__fold_result___7); + int_ nscalars_0 = 0; + FX_COPY_PTR(ccode_84, &ccode_85); FX_COPY_PTR(arows_3, &arows_1); _fx_LLT2BN14K_form__atom_t lst_11 = arows_1; for (; lst_11; lst_11 = lst_11->tl) { - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_552 = {0}; - _fx_LN14C_form__cexp_t scalars_data_1 = 0; - _fx_LN14C_form__cexp_t tags_data_2 = 0; - _fx_LN14C_form__cexp_t arr_data_1 = 0; - _fx_LN15C_form__cstmt_t ccode_104 = 0; - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___11 = {0}; - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_553 = {0}; - _fx_LN14C_form__cexp_t scalars_data_2 = 0; - _fx_LN14C_form__cexp_t tags_data_3 = 0; - _fx_LN14C_form__cexp_t arr_data_2 = 0; - _fx_LN15C_form__cstmt_t ccode_105 = 0; - _fx_N14C_form__cexp_t v_554 = 0; - _fx_LN14C_form__cexp_t v_555 = 0; - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_556 = {0}; + _fx_N14C_form__cexp_t v_543 = 0; + _fx_LN14C_form__cexp_t v_544 = 0; _fx_LT2BN14K_form__atom_t arow_1 = lst_11->hd; - _fx_copy_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___7, &v_552); - FX_COPY_PTR(v_552.t1, &scalars_data_1); - FX_COPY_PTR(v_552.t2, &tags_data_2); - FX_COPY_PTR(v_552.t3, &arr_data_1); - FX_COPY_PTR(v_552.t4, &ccode_104); - _fx_make_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(v_552.t0, scalars_data_1, - tags_data_2, arr_data_1, ccode_104, &__fold_result___11); _fx_LT2BN14K_form__atom_t lst_12 = arow_1; for (; lst_12; lst_12 = lst_12->tl) { _fx_N14K_form__atom_t a_4 = {0}; - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_557 = {0}; - _fx_LN14C_form__cexp_t scalars_data_3 = 0; - _fx_LN14C_form__cexp_t tags_data_4 = 0; - _fx_LN14C_form__cexp_t arr_data_3 = 0; - _fx_LN15C_form__cstmt_t ccode_106 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_558 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_545 = {0}; _fx_N14C_form__cexp_t e_10 = 0; - _fx_LN15C_form__cstmt_t ccode_107 = 0; - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_559 = {0}; + _fx_LN15C_form__cstmt_t ccode1_8 = 0; _fx_N14K_form__ktyp_t elem_ktyp_0 = 0; - _fx_N14K_form__ktyp_t v_560 = 0; - _fx_T2iN14C_form__cexp_t v_561 = {0}; + _fx_N14K_form__ktyp_t v_546 = 0; + _fx_T2iN14C_form__cexp_t v_547 = {0}; _fx_N14C_form__cexp_t elem_ptr_0 = 0; - _fx_N14C_form__cexp_t v_562 = 0; - _fx_LN14C_form__cexp_t v_563 = 0; - _fx_LN14C_form__cexp_t v_564 = 0; - _fx_T3iLN14C_form__cexp_tN14C_form__cexp_t v_565 = {0}; - _fx_LN14C_form__cexp_t scalars_data_4 = 0; + _fx_N14C_form__cexp_t v_548 = 0; + _fx_LN14C_form__cexp_t v_549 = 0; + _fx_LN14C_form__cexp_t v_550 = 0; + _fx_T3iLN14C_form__cexp_tN14C_form__cexp_t v_551 = {0}; + _fx_LN14C_form__cexp_t scalars_data1_0 = 0; _fx_N14C_form__cexp_t arr_data_elem_0 = 0; - _fx_N14C_form__cexp_t v_566 = 0; - _fx_LN14C_form__cexp_t v_567 = 0; - _fx_LN14C_form__cexp_t v_568 = 0; + _fx_N14C_form__cexp_t v_552 = 0; + _fx_LN14C_form__cexp_t v_553 = 0; + _fx_LN14C_form__cexp_t v_554 = 0; _fx_T2BN14K_form__atom_t* __pat___1 = &lst_12->hd; _fx_copy_N14K_form__atom_t(&__pat___1->t1, &a_4); - _fx_copy_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___11, - &v_557); - int_ nscalars_0 = v_557.t0; - FX_COPY_PTR(v_557.t1, &scalars_data_3); - FX_COPY_PTR(v_557.t2, &tags_data_4); - FX_COPY_PTR(v_557.t3, &arr_data_3); - FX_COPY_PTR(v_557.t4, &ccode_106); FX_CALL( - atom2cexp_0.fp(&a_4, ccode_106, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_558, atom2cexp_0.fcv), _fx_catch_117); - FX_COPY_PTR(v_558.t0, &e_10); - FX_COPY_PTR(v_558.t1, &ccode_107); + atom2cexp_0.fp(&a_4, ccode_85, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_545, atom2cexp_0.fcv), _fx_catch_117); + FX_COPY_PTR(v_545.t0, &e_10); + FX_COPY_PTR(v_545.t1, &ccode1_8); + _fx_free_LN15C_form__cstmt_t(&ccode_85); + FX_COPY_PTR(ccode1_8, &ccode_85); if (__pat___1->t0) { FX_CALL( _fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(&a_4, &kloc_0, &elem_ktyp_0, 0), _fx_catch_117); FX_CALL( - _fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(elem_ktyp_0, &kloc_0, &v_560, + _fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(elem_ktyp_0, &kloc_0, &v_546, 0), _fx_catch_117); - int tag_14 = FX_REC_VARIANT_TAG(v_560); + int tag_14 = FX_REC_VARIANT_TAG(v_546); if (tag_14 == 17) { - _fx_N14C_form__cexp_t v_569 = 0; - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_10, &v_569, 0), _fx_catch_112); - _fx_make_T2iN14C_form__cexp_t(v_560->u.KTypArray.t0, v_569, &v_561); + _fx_N14C_form__cexp_t v_555 = 0; + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_10, &v_555, 0), _fx_catch_112); + _fx_make_T2iN14C_form__cexp_t(v_546->u.KTypArray.t0, v_555, &v_547); _fx_catch_112: ; - if (v_569) { - _fx_free_N14C_form__cexp_t(&v_569); + if (v_555) { + _fx_free_N14C_form__cexp_t(&v_555); } } else if (tag_14 == 19) { - _fx_make_T2iN14C_form__cexp_t(100, e_10, &v_561); + _fx_make_T2iN14C_form__cexp_t(100, e_10, &v_547); } else if (tag_14 == 18) { - _fx_N14C_form__cexp_t v_570 = 0; - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_10, &v_570, 0), _fx_catch_113); - _fx_make_T2iN14C_form__cexp_t(110, v_570, &v_561); + _fx_N14C_form__cexp_t v_556 = 0; + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_10, &v_556, 0), _fx_catch_113); + _fx_make_T2iN14C_form__cexp_t(110, v_556, &v_547); _fx_catch_113: ; - if (v_570) { - _fx_free_N14C_form__cexp_t(&v_570); + if (v_556) { + _fx_free_N14C_form__cexp_t(&v_556); } } else { - fx_str_t v_571 = {0}; - fx_str_t v_572 = {0}; - fx_str_t v_573 = {0}; - fx_exn_t v_574 = {0}; - FX_CALL(_fx_M6K_formFM8atom2strS1N14K_form__atom_t(&a_4, &v_571, 0), _fx_catch_114); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_571, &v_572, 0), _fx_catch_114); + fx_str_t v_557 = {0}; + fx_str_t v_558 = {0}; + fx_str_t v_559 = {0}; + fx_exn_t v_560 = {0}; + FX_CALL(_fx_M6K_formFM8atom2strS1N14K_form__atom_t(&a_4, &v_557, 0), _fx_catch_114); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_557, &v_558, 0), _fx_catch_114); fx_str_t slit_130 = FX_MAKE_STR("cgen: the expanded structure "); fx_str_t slit_131 = FX_MAKE_STR(" is not an array, vector or list"); { - const fx_str_t strs_29[] = { slit_130, v_572, slit_131 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_29, 3, &v_573), _fx_catch_114); + const fx_str_t strs_28[] = { slit_130, v_558, slit_131 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_28, 3, &v_559), _fx_catch_114); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_573, &v_574, 0), _fx_catch_114); - FX_THROW(&v_574, false, _fx_catch_114); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_559, &v_560, 0), _fx_catch_114); + FX_THROW(&v_560, false, _fx_catch_114); _fx_catch_114: ; - fx_free_exn(&v_574); - FX_FREE_STR(&v_573); - FX_FREE_STR(&v_572); - FX_FREE_STR(&v_571); + fx_free_exn(&v_560); + FX_FREE_STR(&v_559); + FX_FREE_STR(&v_558); + FX_FREE_STR(&v_557); } FX_CHECK_EXN(_fx_catch_117); - int_ tag_15 = v_561.t0; - FX_COPY_PTR(v_561.t1, &elem_ptr_0); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(tag_15, &kloc_0, &v_562, 0), + int_ tag_15 = v_547.t0; + FX_COPY_PTR(v_547.t1, &elem_ptr_0); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(tag_15, &kloc_0, &v_548, 0), _fx_catch_117); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_562, tags_data_4, true, &v_563), _fx_catch_117); - FX_CALL(_fx_cons_LN14C_form__cexp_t(elem_ptr_0, arr_data_3, true, &v_564), _fx_catch_117); - _fx_make_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(nscalars_0, - scalars_data_3, v_563, v_564, ccode_107, &v_559); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_548, tags_data_0, true, &v_549), _fx_catch_117); + _fx_free_LN14C_form__cexp_t(&tags_data_0); + FX_COPY_PTR(v_549, &tags_data_0); + FX_CALL(_fx_cons_LN14C_form__cexp_t(elem_ptr_0, arr_data_0, true, &v_550), _fx_catch_117); + _fx_free_LN14C_form__cexp_t(&arr_data_0); + FX_COPY_PTR(v_550, &arr_data_0); } else { if (FX_REC_VARIANT_TAG(e_10) == 1) { - _fx_N14C_form__cexp_t v_575 = 0; - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_10, &v_575, 0), _fx_catch_115); - _fx_make_T3iLN14C_form__cexp_tN14C_form__cexp_t(nscalars_0, scalars_data_3, v_575, &v_565); + _fx_N14C_form__cexp_t v_561 = 0; + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_10, &v_561, 0), _fx_catch_115); + _fx_make_T3iLN14C_form__cexp_tN14C_form__cexp_t(nscalars_0, scalars_data_0, v_561, &v_551); _fx_catch_115: ; - if (v_575) { - _fx_free_N14C_form__cexp_t(&v_575); + if (v_561) { + _fx_free_N14C_form__cexp_t(&v_561); } } else { - _fx_LN14C_form__cexp_t v_576 = 0; - _fx_N14C_form__cexp_t v_577 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_578 = {0}; - _fx_N14C_form__cexp_t v_579 = 0; - FX_CALL(_fx_cons_LN14C_form__cexp_t(e_10, scalars_data_3, true, &v_576), _fx_catch_116); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(nscalars_0, &kloc_0, &v_577, 0), + _fx_LN14C_form__cexp_t v_562 = 0; + _fx_N14C_form__cexp_t v_563 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_564 = {0}; + _fx_N14C_form__cexp_t v_565 = 0; + FX_CALL(_fx_cons_LN14C_form__cexp_t(e_10, scalars_data_0, true, &v_562), _fx_catch_116); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(nscalars_0, &kloc_0, &v_563, 0), _fx_catch_116); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g23C_form__std_CTypVoidPtr, &kloc_0, &v_578); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g23C_form__std_CTypVoidPtr, &kloc_0, &v_564); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g18C_gen_code__COpAdd, scalars_exp_0, v_577, &v_578, &v_579), _fx_catch_116); - _fx_make_T3iLN14C_form__cexp_tN14C_form__cexp_t(nscalars_0 + 1, v_576, v_579, &v_565); + &_fx_g18C_gen_code__COpAdd, scalars_exp_0, v_563, &v_564, &v_565), _fx_catch_116); + _fx_make_T3iLN14C_form__cexp_tN14C_form__cexp_t(nscalars_0 + 1, v_562, v_565, &v_551); _fx_catch_116: ; - if (v_579) { - _fx_free_N14C_form__cexp_t(&v_579); + if (v_565) { + _fx_free_N14C_form__cexp_t(&v_565); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_578); - if (v_577) { - _fx_free_N14C_form__cexp_t(&v_577); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_564); + if (v_563) { + _fx_free_N14C_form__cexp_t(&v_563); } - if (v_576) { - _fx_free_LN14C_form__cexp_t(&v_576); + if (v_562) { + _fx_free_LN14C_form__cexp_t(&v_562); } } FX_CHECK_EXN(_fx_catch_117); - int_ nscalars_1 = v_565.t0; - FX_COPY_PTR(v_565.t1, &scalars_data_4); - FX_COPY_PTR(v_565.t2, &arr_data_elem_0); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_566, 0), _fx_catch_117); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_566, tags_data_4, true, &v_567), _fx_catch_117); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_data_elem_0, arr_data_3, true, &v_568), _fx_catch_117); - _fx_make_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(nscalars_1, - scalars_data_4, v_567, v_568, ccode_107, &v_559); - } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___11); - _fx_copy_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_559, - &__fold_result___11); + int_ nscalars1_0 = v_551.t0; + FX_COPY_PTR(v_551.t1, &scalars_data1_0); + FX_COPY_PTR(v_551.t2, &arr_data_elem_0); + nscalars_0 = nscalars1_0; + _fx_free_LN14C_form__cexp_t(&scalars_data_0); + FX_COPY_PTR(scalars_data1_0, &scalars_data_0); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_552, 0), _fx_catch_117); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_552, tags_data_0, true, &v_553), _fx_catch_117); + _fx_free_LN14C_form__cexp_t(&tags_data_0); + FX_COPY_PTR(v_553, &tags_data_0); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_data_elem_0, arr_data_0, true, &v_554), _fx_catch_117); + _fx_free_LN14C_form__cexp_t(&arr_data_0); + FX_COPY_PTR(v_554, &arr_data_0); + } _fx_catch_117: ; - if (v_568) { - _fx_free_LN14C_form__cexp_t(&v_568); + if (v_554) { + _fx_free_LN14C_form__cexp_t(&v_554); } - if (v_567) { - _fx_free_LN14C_form__cexp_t(&v_567); + if (v_553) { + _fx_free_LN14C_form__cexp_t(&v_553); } - if (v_566) { - _fx_free_N14C_form__cexp_t(&v_566); + if (v_552) { + _fx_free_N14C_form__cexp_t(&v_552); } if (arr_data_elem_0) { _fx_free_N14C_form__cexp_t(&arr_data_elem_0); } - if (scalars_data_4) { - _fx_free_LN14C_form__cexp_t(&scalars_data_4); + if (scalars_data1_0) { + _fx_free_LN14C_form__cexp_t(&scalars_data1_0); } - _fx_free_T3iLN14C_form__cexp_tN14C_form__cexp_t(&v_565); - if (v_564) { - _fx_free_LN14C_form__cexp_t(&v_564); + _fx_free_T3iLN14C_form__cexp_tN14C_form__cexp_t(&v_551); + if (v_550) { + _fx_free_LN14C_form__cexp_t(&v_550); } - if (v_563) { - _fx_free_LN14C_form__cexp_t(&v_563); + if (v_549) { + _fx_free_LN14C_form__cexp_t(&v_549); } - if (v_562) { - _fx_free_N14C_form__cexp_t(&v_562); + if (v_548) { + _fx_free_N14C_form__cexp_t(&v_548); } if (elem_ptr_0) { _fx_free_N14C_form__cexp_t(&elem_ptr_0); } - _fx_free_T2iN14C_form__cexp_t(&v_561); - if (v_560) { - _fx_free_N14K_form__ktyp_t(&v_560); + _fx_free_T2iN14C_form__cexp_t(&v_547); + if (v_546) { + _fx_free_N14K_form__ktyp_t(&v_546); } if (elem_ktyp_0) { _fx_free_N14K_form__ktyp_t(&elem_ktyp_0); } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_559); - if (ccode_107) { - _fx_free_LN15C_form__cstmt_t(&ccode_107); + if (ccode1_8) { + _fx_free_LN15C_form__cstmt_t(&ccode1_8); } if (e_10) { _fx_free_N14C_form__cexp_t(&e_10); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_558); - if (ccode_106) { - _fx_free_LN15C_form__cstmt_t(&ccode_106); - } - if (arr_data_3) { - _fx_free_LN14C_form__cexp_t(&arr_data_3); - } - if (tags_data_4) { - _fx_free_LN14C_form__cexp_t(&tags_data_4); - } - if (scalars_data_3) { - _fx_free_LN14C_form__cexp_t(&scalars_data_3); - } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_557); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_545); _fx_free_N14K_form__atom_t(&a_4); FX_CHECK_EXN(_fx_catch_118); } - _fx_copy_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___11, &v_553); - int_ nscalars_2 = v_553.t0; - FX_COPY_PTR(v_553.t1, &scalars_data_2); - FX_COPY_PTR(v_553.t2, &tags_data_3); - FX_COPY_PTR(v_553.t3, &arr_data_2); - FX_COPY_PTR(v_553.t4, &ccode_105); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(127, &kloc_0, &v_554, 0), _fx_catch_118); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_554, tags_data_3, true, &v_555), _fx_catch_118); - _fx_make_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(nscalars_2, scalars_data_2, - v_555, arr_data_2, ccode_105, &v_556); - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___7); - _fx_copy_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_556, &__fold_result___7); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(127, &kloc_0, &v_543, 0), _fx_catch_118); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_543, tags_data_0, true, &v_544), _fx_catch_118); + _fx_free_LN14C_form__cexp_t(&tags_data_0); + FX_COPY_PTR(v_544, &tags_data_0); _fx_catch_118: ; - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_556); - if (v_555) { - _fx_free_LN14C_form__cexp_t(&v_555); - } - if (v_554) { - _fx_free_N14C_form__cexp_t(&v_554); - } - if (ccode_105) { - _fx_free_LN15C_form__cstmt_t(&ccode_105); - } - if (arr_data_2) { - _fx_free_LN14C_form__cexp_t(&arr_data_2); - } - if (tags_data_3) { - _fx_free_LN14C_form__cexp_t(&tags_data_3); - } - if (scalars_data_2) { - _fx_free_LN14C_form__cexp_t(&scalars_data_2); + if (v_544) { + _fx_free_LN14C_form__cexp_t(&v_544); } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_553); - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___11); - if (ccode_104) { - _fx_free_LN15C_form__cstmt_t(&ccode_104); + if (v_543) { + _fx_free_N14C_form__cexp_t(&v_543); } - if (arr_data_1) { - _fx_free_LN14C_form__cexp_t(&arr_data_1); - } - if (tags_data_2) { - _fx_free_LN14C_form__cexp_t(&tags_data_2); - } - if (scalars_data_1) { - _fx_free_LN14C_form__cexp_t(&scalars_data_1); - } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_552); FX_CHECK_EXN(_fx_catch_126); } - _fx_copy_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___7, &v_511); - FX_COPY_PTR(v_511.t1, &scalars_data_0); - FX_COPY_PTR(v_511.t2, &tags_data_0); - FX_COPY_PTR(v_511.t3, &arr_data_0); - FX_COPY_PTR(v_511.t4, &ccode_99); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(scalars_data_0, &v_512, 0), _fx_catch_126); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(scalars_data_0, &v_504, 0), _fx_catch_126); FX_CALL( _fx_M10C_gen_codeFM14decl_plain_arrT2N14C_form__cexp_tLN15C_form__cstmt_t5R9Ast__id_tN14C_form__ctyp_tLN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &scalars_id_0, elem_ctyp_1, v_512, 0, &kloc_0, &v_513, 0), _fx_catch_126); - FX_COPY_PTR(v_513.t1, &sub_ccode_2); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(-1, &kloc_0, &v_514, 0), _fx_catch_126); - FX_CALL(_fx_M10C_gen_codeFM2tlLN14C_form__cexp_t1LN14C_form__cexp_t(tags_data_0, &v_515, 0), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_514, v_515, true, &v_516), _fx_catch_126); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_516, &tags_data_1, 0), _fx_catch_126); - _fx_R9Ast__id_t v_580; + &scalars_id_0, elem_ctyp_1, v_504, 0, &kloc_0, &v_505, 0), _fx_catch_126); + FX_COPY_PTR(v_505.t1, &sub_ccode_2); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(-1, &kloc_0, &v_506, 0), _fx_catch_126); + FX_CALL(_fx_M10C_gen_codeFM2tlLN14C_form__cexp_t1LN14C_form__cexp_t(tags_data_0, &v_507, 0), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_506, v_507, true, &v_508), _fx_catch_126); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_508, &tags_data_1, 0), _fx_catch_126); + _fx_R9Ast__id_t v_566; fx_str_t slit_132 = FX_MAKE_STR("tags"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_132, &v_580, 0), _fx_catch_126); - FX_CALL(_fx_M6C_formFM8CTypSIntN14C_form__ctyp_t1i(8, &v_517), _fx_catch_126); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_132, &v_566, 0), _fx_catch_126); + FX_CALL(_fx_M6C_formFM8CTypSIntN14C_form__ctyp_t1i(8, &v_509), _fx_catch_126); FX_CALL( _fx_M10C_gen_codeFM14decl_plain_arrT2N14C_form__cexp_tLN15C_form__cstmt_t5R9Ast__id_tN14C_form__ctyp_tLN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_580, v_517, tags_data_1, sub_ccode_2, &kloc_0, &v_518, 0), _fx_catch_126); - FX_COPY_PTR(v_518.t0, &tags_exp_0); - FX_COPY_PTR(v_518.t1, &sub_ccode_3); - _fx_R9Ast__id_t v_581; + &v_566, v_509, tags_data_1, sub_ccode_2, &kloc_0, &v_510, 0), _fx_catch_126); + FX_COPY_PTR(v_510.t0, &tags_exp_0); + FX_COPY_PTR(v_510.t1, &sub_ccode_3); + _fx_R9Ast__id_t v_567; fx_str_t slit_133 = FX_MAKE_STR("parts"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_133, &v_581, 0), _fx_catch_126); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(arr_data_0, &v_519, 0), _fx_catch_126); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_133, &v_567, 0), _fx_catch_126); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(arr_data_0, &v_511, 0), _fx_catch_126); FX_CALL( _fx_M10C_gen_codeFM14decl_plain_arrT2N14C_form__cexp_tLN15C_form__cstmt_t5R9Ast__id_tN14C_form__ctyp_tLN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_581, _fx_g23C_form__std_CTypVoidPtr, v_519, sub_ccode_3, &kloc_0, &v_520, 0), _fx_catch_126); - FX_COPY_PTR(v_520.t0, &arr_data_exp_0); - FX_COPY_PTR(v_520.t1, &sub_ccode_4); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elem_ctyp_1, &kloc_0, &v_521), + &v_567, _fx_g23C_form__std_CTypVoidPtr, v_511, sub_ccode_3, &kloc_0, &v_512, 0), _fx_catch_126); + FX_COPY_PTR(v_512.t0, &arr_data_exp_0); + FX_COPY_PTR(v_512.t1, &sub_ccode_4); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elem_ctyp_1, &kloc_0, &v_513), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_521, 0, true, &v_522), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_513, 0, true, &v_514), _fx_catch_126); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g18C_form__std_sizeof, v_522, _fx_g22C_gen_code__CTypSize_t, &kloc_0, &sizeof_elem_exp_0, 0), + &_fx_g18C_form__std_sizeof, v_514, _fx_g22C_gen_code__CTypSize_t, &kloc_0, &sizeof_elem_exp_0, 0), _fx_catch_126); FX_CALL( _fx_M11C_gen_typesFM10get_free_fT2BNt6option1N14C_form__cexp_t4N14C_form__ctyp_tBBR10Ast__loc_t(elem_ctyp_1, true, - false, &kloc_0, &v_523, 0), _fx_catch_126); - _fx_Nt6option1N14C_form__cexp_t* v_582 = &v_523.t1; - if (v_582->tag == 2) { + false, &kloc_0, &v_515, 0), _fx_catch_126); + _fx_Nt6option1N14C_form__cexp_t* v_568 = &v_515.t1; + if (v_568->tag == 2) { FX_CALL( - _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_582->u.Some, + _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_568->u.Some, _fx_g21C_form__std_fx_free_t, &kloc_0, &free_f_exp_0), _fx_catch_119); _fx_catch_119: ; @@ -27048,11 +26420,11 @@ static int FX_CHECK_EXN(_fx_catch_126); FX_CALL( _fx_M11C_gen_typesFM10get_copy_fT2BNt6option1N14C_form__cexp_t4N14C_form__ctyp_tBBR10Ast__loc_t(elem_ctyp_1, true, - false, &kloc_0, &v_524, 0), _fx_catch_126); - _fx_Nt6option1N14C_form__cexp_t* v_583 = &v_524.t1; - if (v_583->tag == 2) { + false, &kloc_0, &v_516, 0), _fx_catch_126); + _fx_Nt6option1N14C_form__cexp_t* v_569 = &v_516.t1; + if (v_569->tag == 2) { FX_CALL( - _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_583->u.Some, + _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_569->u.Some, _fx_g21C_form__std_fx_copy_t, &kloc_0, ©_f_exp_0), _fx_catch_121); _fx_catch_121: ; @@ -27063,45 +26435,45 @@ static int _fx_catch_122: ; } FX_CHECK_EXN(_fx_catch_126); - _fx_R9Ast__id_t v_584; + _fx_R9Ast__id_t v_570; fx_str_t slit_134 = FX_MAKE_STR("fx_compose_arr"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_134, &v_584, 0), _fx_catch_126); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(dims_0, &kloc_0, &v_525, 0), _fx_catch_126); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_3, &v_526, 0), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_526, 0, true, &v_527), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_data_exp_0, v_527, false, &v_527), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(tags_exp_0, v_527, false, &v_527), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_f_exp_0, v_527, false, &v_527), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(free_f_exp_0, v_527, false, &v_527), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(sizeof_elem_exp_0, v_527, false, &v_527), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_525, v_527, false, &v_527), _fx_catch_126); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_134, &v_570, 0), _fx_catch_126); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(dims_0, &kloc_0, &v_517, 0), _fx_catch_126); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_3, &v_518, 0), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_518, 0, true, &v_519), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_data_exp_0, v_519, false, &v_519), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(tags_exp_0, v_519, false, &v_519), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_f_exp_0, v_519, false, &v_519), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(free_f_exp_0, v_519, false, &v_519), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(sizeof_elem_exp_0, v_519, false, &v_519), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_517, v_519, false, &v_519), _fx_catch_126); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_584, v_527, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_570, v_519, _fx_g20C_gen_code__CTypCInt, &kloc_0, &call_mkarr_0, 0), _fx_catch_126); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( call_mkarr_0, sub_ccode_4, &kloc_0, block_stack_ref_0, &sub_ccode_5, 0), _fx_catch_126); FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(sub_ccode_5, &kloc_0, &v_528, 0), + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(sub_ccode_5, &kloc_0, &v_520, 0), _fx_catch_126); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_528, ccode_99, true, &ccode_100), _fx_catch_126); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, arr_exp_3, ccode_100, &v_1); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_520, ccode_85, true, &ccode_86), _fx_catch_126); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, arr_exp_3, ccode_86, &v_1); } else { fx_str_t slit_135 = FX_MAKE_STR("arr"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_135, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_529, 0), _fx_catch_126); - FX_COPY_PTR(v_529.t0, &arr_exp_4); - FX_COPY_PTR(v_529.t1, &ccode_101); + dstexp_r_0, &slit_135, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_521, 0), _fx_catch_126); + FX_COPY_PTR(v_521.t0, &arr_exp_4); + FX_COPY_PTR(v_521.t1, &ccode_87); int_ nrows_0; FX_CALL(_fx_M10C_gen_codeFM8length1_i1LLT2BN14K_form__atom_t(arows_3, &nrows_0, 0), _fx_catch_126); - FX_CALL(_fx_M10C_gen_codeFM2hdLT2BN14K_form__atom_t1LLT2BN14K_form__atom_t(arows_3, &v_530, 0), _fx_catch_126); + FX_CALL(_fx_M10C_gen_codeFM2hdLT2BN14K_form__atom_t1LLT2BN14K_form__atom_t(arows_3, &v_522, 0), _fx_catch_126); int_ ncols_0; - FX_CALL(_fx_M10C_gen_codeFM8length1_i1LT2BN14K_form__atom_t(v_530, &ncols_0, 0), _fx_catch_126); + FX_CALL(_fx_M10C_gen_codeFM8length1_i1LT2BN14K_form__atom_t(v_522, &ncols_0, 0), _fx_catch_126); if (nrows_0 > 1) { - FX_CALL(_fx_cons_Li(ncols_0, 0, true, &v_531), _fx_catch_126); - FX_CALL(_fx_cons_Li(nrows_0, v_531, true, &shape_0), _fx_catch_126); + FX_CALL(_fx_cons_Li(ncols_0, 0, true, &v_523), _fx_catch_126); + FX_CALL(_fx_cons_Li(nrows_0, v_523, true, &shape_0), _fx_catch_126); } else { FX_CALL(_fx_cons_Li(ncols_0, 0, true, &shape_0), _fx_catch_126); @@ -27122,178 +26494,147 @@ static int } FX_CHECK_EXN(_fx_catch_126); } - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, ccode_101, &__fold_result___8); + FX_COPY_PTR(ccode_87, &ccode_88); FX_COPY_PTR(arows_3, &arows_2); _fx_LLT2BN14K_form__atom_t lst_14 = arows_2; for (; lst_14; lst_14 = lst_14->tl) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_585 = {0}; - _fx_LN14C_form__cexp_t data_1 = 0; - _fx_LN15C_form__cstmt_t ccode_108 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___12 = {0}; _fx_LT2BN14K_form__atom_t arow_2 = lst_14->hd; - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___8, &v_585); - FX_COPY_PTR(v_585.t0, &data_1); - FX_COPY_PTR(v_585.t1, &ccode_108); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(data_1, ccode_108, &__fold_result___12); _fx_LT2BN14K_form__atom_t lst_15 = arow_2; for (; lst_15; lst_15 = lst_15->tl) { _fx_N14K_form__atom_t a_5 = {0}; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_586 = {0}; - _fx_LN14C_form__cexp_t data_2 = 0; - _fx_LN15C_form__cstmt_t ccode_109 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_587 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_571 = {0}; _fx_N14C_form__cexp_t e_11 = 0; - _fx_LN15C_form__cstmt_t ccode_110 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_588 = {0}; + _fx_LN15C_form__cstmt_t ccode1_9 = 0; + _fx_LN14C_form__cexp_t v_572 = 0; _fx_T2BN14K_form__atom_t* __pat___2 = &lst_15->hd; _fx_copy_N14K_form__atom_t(&__pat___2->t1, &a_5); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___12, &v_586); - FX_COPY_PTR(v_586.t0, &data_2); - FX_COPY_PTR(v_586.t1, &ccode_109); FX_CALL( - atom2cexp_0.fp(&a_5, ccode_109, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_587, atom2cexp_0.fcv), _fx_catch_124); - FX_COPY_PTR(v_587.t0, &e_11); - FX_COPY_PTR(v_587.t1, &ccode_110); - FX_CALL(_fx_cons_LN14C_form__cexp_t(e_11, data_2, false, &data_2), _fx_catch_124); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(data_2, ccode_110, &v_588); - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___12); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_588, &__fold_result___12); + atom2cexp_0.fp(&a_5, ccode_88, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_571, atom2cexp_0.fcv), _fx_catch_124); + FX_COPY_PTR(v_571.t0, &e_11); + FX_COPY_PTR(v_571.t1, &ccode1_9); + FX_CALL(_fx_cons_LN14C_form__cexp_t(e_11, data_0, true, &v_572), _fx_catch_124); + _fx_free_LN14C_form__cexp_t(&data_0); + FX_COPY_PTR(v_572, &data_0); + _fx_free_LN15C_form__cstmt_t(&ccode_88); + FX_COPY_PTR(ccode1_9, &ccode_88); _fx_catch_124: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_588); - if (ccode_110) { - _fx_free_LN15C_form__cstmt_t(&ccode_110); + if (v_572) { + _fx_free_LN14C_form__cexp_t(&v_572); + } + if (ccode1_9) { + _fx_free_LN15C_form__cstmt_t(&ccode1_9); } if (e_11) { _fx_free_N14C_form__cexp_t(&e_11); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_587); - if (ccode_109) { - _fx_free_LN15C_form__cstmt_t(&ccode_109); - } - if (data_2) { - _fx_free_LN14C_form__cexp_t(&data_2); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_586); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_571); _fx_free_N14K_form__atom_t(&a_5); FX_CHECK_EXN(_fx_catch_125); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___8); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___12, &__fold_result___8); _fx_catch_125: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___12); - if (ccode_108) { - _fx_free_LN15C_form__cstmt_t(&ccode_108); - } - if (data_1) { - _fx_free_LN14C_form__cexp_t(&data_1); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_585); FX_CHECK_EXN(_fx_catch_126); } - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___8, &v_532); - FX_COPY_PTR(v_532.t0, &data_0); - FX_COPY_PTR(v_532.t1, &ccode_102); if (all_literals_0) { int_ dims_1; FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14C_form__cexp_t(shape_1, &dims_1, 0), _fx_catch_126); - FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g21C_gen_code__CTypConst, 0, true, &v_533), _fx_catch_126); + FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g21C_gen_code__CTypConst, 0, true, &v_524), _fx_catch_126); FX_CALL( - _fx_M6C_formFM12CTypRawArrayN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_533, + _fx_M6C_formFM12CTypRawArrayN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_524, _fx_g19C_gen_code__CTypInt, &shape_ctyp_0), _fx_catch_126); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(shape_ctyp_0, &kloc_0, &v_534); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(shape_ctyp_0, &kloc_0, &v_525); FX_CALL( - _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(shape_1, &v_534, + _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(shape_1, &v_525, &shape_arr_0), _fx_catch_126); - _fx_R9Ast__id_t v_589; + _fx_R9Ast__id_t v_573; fx_str_t slit_136 = FX_MAKE_STR("shape"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_136, &v_589, 0), _fx_catch_126); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_535, 0), _fx_catch_126); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(shape_arr_0, &v_536); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_136, &v_573, 0), _fx_catch_126); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_526, 0), _fx_catch_126); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(shape_arr_0, &v_527); fx_str_t slit_137 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_589, shape_ctyp_0, &v_535, &slit_137, &v_536, 0, &kloc_0, &v_537, 0), _fx_catch_126); - FX_COPY_PTR(v_537.t0, &shape_exp_0); - FX_COPY_PTR(v_537.t1, &ccode__0); + &v_573, shape_ctyp_0, &v_526, &slit_137, &v_527, 0, &kloc_0, &v_528, 0), _fx_catch_126); + FX_COPY_PTR(v_528.t0, &shape_exp_0); + FX_COPY_PTR(v_528.t1, &ccode__0); _fx_R9Ast__id_t data_id_0; fx_str_t slit_138 = FX_MAKE_STR("data"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_138, &data_id_0, 0), _fx_catch_126); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(data_0, &v_538, 0), _fx_catch_126); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(data_0, &v_529, 0), _fx_catch_126); FX_CALL( _fx_M10C_gen_codeFM14decl_plain_arrT2N14C_form__cexp_tLN15C_form__cstmt_t5R9Ast__id_tN14C_form__ctyp_tLN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &data_id_0, elem_ctyp_1, v_538, *glob_data_ccode_0, &kloc_0, &v_539, 0), _fx_catch_126); - FX_COPY_PTR(v_539.t0, &data_exp_0); - FX_COPY_PTR(v_539.t1, &glob_data_ccode__0); + &data_id_0, elem_ctyp_1, v_529, *glob_data_ccode_0, &kloc_0, &v_530, 0), _fx_catch_126); + FX_COPY_PTR(v_530.t0, &data_exp_0); + FX_COPY_PTR(v_530.t1, &glob_data_ccode__0); FX_CALL(_fx_M6C_formFM8get_cvalRM9cdefval_t2R9Ast__id_tR10Ast__loc_t(&data_id_0, &kloc_0, &data_cv_0, 0), _fx_catch_126); _fx_copy_R16Ast__val_flags_t(&data_cv_0.cv_flags, &data_flags_0); _fx_make_R16Ast__val_flags_t(data_flags_0.val_flag_arg, data_flags_0.val_flag_mutable, data_flags_0.val_flag_temp, data_flags_0.val_flag_tempref, true, data_flags_0.val_flag_subarray, data_flags_0.val_flag_instance, - &data_flags_0.val_flag_method, data_flags_0.val_flag_ctor, data_flags_0.val_flag_global, &v_540); - _fx_make_R17C_form__cdefval_t(&data_cv_0.cv_name, data_cv_0.cv_typ, &data_cv_0.cv_cname, &v_540, &data_cv_0.cv_loc, - &v_541); - _fx_M6C_formFM4CValN15C_form__cinfo_t1RM9cdefval_t(&v_541, &v_542); - FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&data_id_0, &v_542, 0), _fx_catch_126); + &data_flags_0.val_flag_method, data_flags_0.val_flag_ctor, data_flags_0.val_flag_global, &v_531); + _fx_make_R17C_form__cdefval_t(&data_cv_0.cv_name, data_cv_0.cv_typ, &data_cv_0.cv_cname, &v_531, &data_cv_0.cv_loc, + &v_532); + _fx_M6C_formFM4CValN15C_form__cinfo_t1RM9cdefval_t(&v_532, &v_533); + FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&data_id_0, &v_533, 0), _fx_catch_126); _fx_free_LN15C_form__cstmt_t(glob_data_ccode_0); FX_COPY_PTR(glob_data_ccode__0, glob_data_ccode_0); FX_CALL( _fx_M10C_gen_codeFM23get_elem_size_free_copyTa3N14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elem_ctyp_1, - &kloc_0, &v_543, 0), _fx_catch_126); - FX_COPY_PTR(v_543.t0, &sizeof_elem_exp_1); - FX_COPY_PTR(v_543.t1, &free_f_exp_1); - FX_COPY_PTR(v_543.t2, ©_f_exp_1); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(dims_1, &kloc_0, &v_544, 0), _fx_catch_126); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_4, &v_545, 0), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_545, 0, true, &v_546), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(data_exp_0, v_546, false, &v_546), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_f_exp_1, v_546, false, &v_546), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(free_f_exp_1, v_546, false, &v_546), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(sizeof_elem_exp_1, v_546, false, &v_546), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(shape_exp_0, v_546, false, &v_546), _fx_catch_126); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_544, v_546, false, &v_546), _fx_catch_126); + &kloc_0, &v_534, 0), _fx_catch_126); + FX_COPY_PTR(v_534.t0, &sizeof_elem_exp_1); + FX_COPY_PTR(v_534.t1, &free_f_exp_1); + FX_COPY_PTR(v_534.t2, ©_f_exp_1); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(dims_1, &kloc_0, &v_535, 0), _fx_catch_126); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_4, &v_536, 0), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_536, 0, true, &v_537), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(data_exp_0, v_537, false, &v_537), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_f_exp_1, v_537, false, &v_537), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(free_f_exp_1, v_537, false, &v_537), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(sizeof_elem_exp_1, v_537, false, &v_537), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(shape_exp_0, v_537, false, &v_537), _fx_catch_126); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_535, v_537, false, &v_537), _fx_catch_126); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_form__std_fx_make_arr, v_546, _fx_g20C_gen_code__CTypCInt, &kloc_0, &call_mkarr_1, 0), + &_fx_g23C_form__std_fx_make_arr, v_537, _fx_g20C_gen_code__CTypCInt, &kloc_0, &call_mkarr_1, 0), _fx_catch_126); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( call_mkarr_1, ccode__0, &kloc_0, block_stack_ref_0, &ccode__1, 0), _fx_catch_126); FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(ccode__1, &kloc_0, &v_547, 0), + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(ccode__1, &kloc_0, &v_538, 0), _fx_catch_126); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_547, ccode_102, true, &v_548), _fx_catch_126); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, arr_exp_4, v_548, &v_1); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_538, ccode_88, true, &v_539), _fx_catch_126); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, arr_exp_4, v_539, &v_1); } else { - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(data_0, &v_549, 0), _fx_catch_126); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(data_0, &v_540, 0), _fx_catch_126); FX_CALL( _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, - block_stack_ref_0, &v_550, 0), _fx_catch_126); + block_stack_ref_0, &v_541, 0), _fx_catch_126); FX_CALL( _fx_M10C_gen_codeFM18make_make_arr_callLN15C_form__cstmt_t7N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_ti( - arr_exp_4, shape_1, v_549, ccode_102, v_550, &kloc_0, km_idx_0, &ccode_103, 0), _fx_catch_126); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, arr_exp_4, ccode_103, &v_1); + arr_exp_4, shape_1, v_540, ccode_88, v_541, &kloc_0, km_idx_0, &ccode_89, 0), _fx_catch_126); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, arr_exp_4, ccode_89, &v_1); } } _fx_catch_126: ; - if (ccode_103) { - _fx_free_LN15C_form__cstmt_t(&ccode_103); + if (ccode_89) { + _fx_free_LN15C_form__cstmt_t(&ccode_89); } - if (v_550) { - _fx_free_N14C_form__cexp_t(&v_550); + if (v_541) { + _fx_free_N14C_form__cexp_t(&v_541); } - if (v_549) { - _fx_free_LN14C_form__cexp_t(&v_549); + if (v_540) { + _fx_free_LN14C_form__cexp_t(&v_540); } - if (v_548) { - _fx_free_LN15C_form__cstmt_t(&v_548); + if (v_539) { + _fx_free_LN15C_form__cstmt_t(&v_539); } - if (v_547) { - _fx_free_N15C_form__cstmt_t(&v_547); + if (v_538) { + _fx_free_N15C_form__cstmt_t(&v_538); } if (ccode__1) { _fx_free_LN15C_form__cstmt_t(&ccode__1); @@ -27301,14 +26642,14 @@ static int if (call_mkarr_1) { _fx_free_N14C_form__cexp_t(&call_mkarr_1); } - if (v_546) { - _fx_free_LN14C_form__cexp_t(&v_546); + if (v_537) { + _fx_free_LN14C_form__cexp_t(&v_537); } - if (v_545) { - _fx_free_N14C_form__cexp_t(&v_545); + if (v_536) { + _fx_free_N14C_form__cexp_t(&v_536); } - if (v_544) { - _fx_free_N14C_form__cexp_t(&v_544); + if (v_535) { + _fx_free_N14C_form__cexp_t(&v_535); } if (copy_f_exp_1) { _fx_free_N14C_form__cexp_t(©_f_exp_1); @@ -27319,10 +26660,10 @@ static int if (sizeof_elem_exp_1) { _fx_free_N14C_form__cexp_t(&sizeof_elem_exp_1); } - _fx_free_Ta3N14C_form__cexp_t(&v_543); - _fx_free_N15C_form__cinfo_t(&v_542); - _fx_free_R17C_form__cdefval_t(&v_541); - _fx_free_R16Ast__val_flags_t(&v_540); + _fx_free_Ta3N14C_form__cexp_t(&v_534); + _fx_free_N15C_form__cinfo_t(&v_533); + _fx_free_R17C_form__cdefval_t(&v_532); + _fx_free_R16Ast__val_flags_t(&v_531); _fx_free_R16Ast__val_flags_t(&data_flags_0); _fx_free_R17C_form__cdefval_t(&data_cv_0); if (glob_data_ccode__0) { @@ -27331,9 +26672,9 @@ static int if (data_exp_0) { _fx_free_N14C_form__cexp_t(&data_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_539); - if (v_538) { - _fx_free_LN14C_form__cexp_t(&v_538); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_530); + if (v_529) { + _fx_free_LN14C_form__cexp_t(&v_529); } if (ccode__0) { _fx_free_LN15C_form__cstmt_t(&ccode__0); @@ -27341,48 +26682,46 @@ static int if (shape_exp_0) { _fx_free_N14C_form__cexp_t(&shape_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_537); - _fx_free_Nt6option1N14C_form__cexp_t(&v_536); - _fx_free_R16Ast__val_flags_t(&v_535); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_528); + _fx_free_Nt6option1N14C_form__cexp_t(&v_527); + _fx_free_R16Ast__val_flags_t(&v_526); if (shape_arr_0) { _fx_free_N14C_form__cexp_t(&shape_arr_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_534); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_525); if (shape_ctyp_0) { _fx_free_N14C_form__ctyp_t(&shape_ctyp_0); } - FX_FREE_LIST_SIMPLE(&v_533); - if (ccode_102) { - _fx_free_LN15C_form__cstmt_t(&ccode_102); + FX_FREE_LIST_SIMPLE(&v_524); + if (arows_2) { + _fx_free_LLT2BN14K_form__atom_t(&arows_2); + } + if (ccode_88) { + _fx_free_LN15C_form__cstmt_t(&ccode_88); } if (data_0) { _fx_free_LN14C_form__cexp_t(&data_0); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_532); - if (arows_2) { - _fx_free_LLT2BN14K_form__atom_t(&arows_2); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___8); if (shape_1) { _fx_free_LN14C_form__cexp_t(&shape_1); } - FX_FREE_LIST_SIMPLE(&v_531); + FX_FREE_LIST_SIMPLE(&v_523); FX_FREE_LIST_SIMPLE(&shape_0); - if (v_530) { - _fx_free_LT2BN14K_form__atom_t(&v_530); + if (v_522) { + _fx_free_LT2BN14K_form__atom_t(&v_522); } - if (ccode_101) { - _fx_free_LN15C_form__cstmt_t(&ccode_101); + if (ccode_87) { + _fx_free_LN15C_form__cstmt_t(&ccode_87); } if (arr_exp_4) { _fx_free_N14C_form__cexp_t(&arr_exp_4); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_529); - if (ccode_100) { - _fx_free_LN15C_form__cstmt_t(&ccode_100); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_521); + if (ccode_86) { + _fx_free_LN15C_form__cstmt_t(&ccode_86); } - if (v_528) { - _fx_free_N15C_form__cstmt_t(&v_528); + if (v_520) { + _fx_free_N15C_form__cstmt_t(&v_520); } if (sub_ccode_5) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_5); @@ -27390,31 +26729,31 @@ static int if (call_mkarr_0) { _fx_free_N14C_form__cexp_t(&call_mkarr_0); } - if (v_527) { - _fx_free_LN14C_form__cexp_t(&v_527); + if (v_519) { + _fx_free_LN14C_form__cexp_t(&v_519); } - if (v_526) { - _fx_free_N14C_form__cexp_t(&v_526); + if (v_518) { + _fx_free_N14C_form__cexp_t(&v_518); } - if (v_525) { - _fx_free_N14C_form__cexp_t(&v_525); + if (v_517) { + _fx_free_N14C_form__cexp_t(&v_517); } if (copy_f_exp_0) { _fx_free_N14C_form__cexp_t(©_f_exp_0); } - _fx_free_T2BNt6option1N14C_form__cexp_t(&v_524); + _fx_free_T2BNt6option1N14C_form__cexp_t(&v_516); if (free_f_exp_0) { _fx_free_N14C_form__cexp_t(&free_f_exp_0); } - _fx_free_T2BNt6option1N14C_form__cexp_t(&v_523); + _fx_free_T2BNt6option1N14C_form__cexp_t(&v_515); if (sizeof_elem_exp_0) { _fx_free_N14C_form__cexp_t(&sizeof_elem_exp_0); } - if (v_522) { - _fx_free_LN14C_form__cexp_t(&v_522); + if (v_514) { + _fx_free_LN14C_form__cexp_t(&v_514); } - if (v_521) { - _fx_free_N14C_form__cexp_t(&v_521); + if (v_513) { + _fx_free_N14C_form__cexp_t(&v_513); } if (sub_ccode_4) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_4); @@ -27422,9 +26761,9 @@ static int if (arr_data_exp_0) { _fx_free_N14C_form__cexp_t(&arr_data_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_520); - if (v_519) { - _fx_free_LN14C_form__cexp_t(&v_519); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_512); + if (v_511) { + _fx_free_LN14C_form__cexp_t(&v_511); } if (sub_ccode_3) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_3); @@ -27432,31 +26771,34 @@ static int if (tags_exp_0) { _fx_free_N14C_form__cexp_t(&tags_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_518); - if (v_517) { - _fx_free_N14C_form__ctyp_t(&v_517); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_510); + if (v_509) { + _fx_free_N14C_form__ctyp_t(&v_509); } if (tags_data_1) { _fx_free_LN14C_form__cexp_t(&tags_data_1); } - if (v_516) { - _fx_free_LN14C_form__cexp_t(&v_516); + if (v_508) { + _fx_free_LN14C_form__cexp_t(&v_508); } - if (v_515) { - _fx_free_LN14C_form__cexp_t(&v_515); + if (v_507) { + _fx_free_LN14C_form__cexp_t(&v_507); } - if (v_514) { - _fx_free_N14C_form__cexp_t(&v_514); + if (v_506) { + _fx_free_N14C_form__cexp_t(&v_506); } if (sub_ccode_2) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_513); - if (v_512) { - _fx_free_LN14C_form__cexp_t(&v_512); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_505); + if (v_504) { + _fx_free_LN14C_form__cexp_t(&v_504); + } + if (arows_1) { + _fx_free_LLT2BN14K_form__atom_t(&arows_1); } - if (ccode_99) { - _fx_free_LN15C_form__cstmt_t(&ccode_99); + if (ccode_85) { + _fx_free_LN15C_form__cstmt_t(&ccode_85); } if (arr_data_0) { _fx_free_LN14C_form__cexp_t(&arr_data_0); @@ -27467,28 +26809,23 @@ static int if (scalars_data_0) { _fx_free_LN14C_form__cexp_t(&scalars_data_0); } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_511); - if (arows_1) { - _fx_free_LLT2BN14K_form__atom_t(&arows_1); - } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___7); if (scalars_exp_0) { _fx_free_N14C_form__cexp_t(&scalars_exp_0); } - if (v_510) { - _fx_free_N14C_form__ctyp_t(&v_510); + if (v_503) { + _fx_free_N14C_form__ctyp_t(&v_503); } - if (ccode_98) { - _fx_free_LN15C_form__cstmt_t(&ccode_98); + if (ccode_84) { + _fx_free_LN15C_form__cstmt_t(&ccode_84); } if (arr_exp_3) { _fx_free_N14C_form__cexp_t(&arr_exp_3); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_509); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_502); if (elem_ctyp_1) { _fx_free_N14C_form__ctyp_t(&elem_ctyp_1); } - _fx_free_T2iN14C_form__ctyp_t(&v_508); + _fx_free_T2iN14C_form__ctyp_t(&v_501); if (arows_0) { _fx_free_LLT2BN14K_form__atom_t(&arows_0); } @@ -27496,359 +26833,341 @@ static int } if (tag_0 == 18) { _fx_LT2BN14K_form__atom_t elems_0 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_590 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_574 = {0}; _fx_N14C_form__cexp_t vec_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_111 = 0; + _fx_LN15C_form__cstmt_t ccode_90 = 0; _fx_N14C_form__ctyp_t elem_ctyp_2 = 0; - _fx_N14C_form__ctyp_t v_591 = 0; + _fx_N14C_form__ctyp_t v_575 = 0; _fx_N14C_form__cexp_t scalars_exp_1 = 0; - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___13 = {0}; - _fx_LT2BN14K_form__atom_t elems_1 = 0; - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_592 = {0}; - _fx_LN14C_form__cexp_t scalars_data_5 = 0; - _fx_LN14C_form__cexp_t tags_data_5 = 0; + _fx_LN14C_form__cexp_t scalars_data_1 = 0; + _fx_LN14C_form__cexp_t tags_data_2 = 0; _fx_LN14C_form__cexp_t vec_data_0 = 0; - _fx_LN15C_form__cstmt_t ccode_112 = 0; - _fx_LN14C_form__cexp_t v_593 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_594 = {0}; + _fx_LN15C_form__cstmt_t ccode_91 = 0; + _fx_LT2BN14K_form__atom_t elems_1 = 0; + _fx_LN14C_form__cexp_t scalars_data_2 = 0; + _fx_LN14C_form__cexp_t tags_data_3 = 0; + _fx_LN14C_form__cexp_t vec_data_1 = 0; + _fx_LN15C_form__cstmt_t ccode_92 = 0; + _fx_LN14C_form__cexp_t v_576 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_577 = {0}; _fx_LN15C_form__cstmt_t sub_ccode_6 = 0; - _fx_N14C_form__cexp_t v_595 = 0; - _fx_LN14C_form__cexp_t v_596 = 0; - _fx_LN14C_form__cexp_t v_597 = 0; - _fx_LN14C_form__cexp_t tags_data_6 = 0; - _fx_N14C_form__ctyp_t v_598 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_599 = {0}; + _fx_N14C_form__cexp_t v_578 = 0; + _fx_LN14C_form__cexp_t v_579 = 0; + _fx_LN14C_form__cexp_t v_580 = 0; + _fx_LN14C_form__cexp_t tags_data_4 = 0; + _fx_N14C_form__ctyp_t v_581 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_582 = {0}; _fx_N14C_form__cexp_t tags_exp_1 = 0; _fx_LN15C_form__cstmt_t sub_ccode_7 = 0; - _fx_LN14C_form__cexp_t v_600 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_601 = {0}; + _fx_LN14C_form__cexp_t v_583 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_584 = {0}; _fx_N14C_form__cexp_t vec_data_exp_0 = 0; _fx_LN15C_form__cstmt_t sub_ccode_8 = 0; - _fx_N14C_form__cexp_t v_602 = 0; - _fx_LN14C_form__cexp_t v_603 = 0; + _fx_N14C_form__cexp_t v_585 = 0; + _fx_LN14C_form__cexp_t v_586 = 0; _fx_N14C_form__cexp_t sizeof_elem_exp_2 = 0; - _fx_T2BNt6option1N14C_form__cexp_t v_604 = {0}; + _fx_T2BNt6option1N14C_form__cexp_t v_587 = {0}; _fx_N14C_form__cexp_t free_f_exp_2 = 0; - _fx_T2BNt6option1N14C_form__cexp_t v_605 = {0}; + _fx_T2BNt6option1N14C_form__cexp_t v_588 = {0}; _fx_N14C_form__cexp_t copy_f_exp_2 = 0; - _fx_N14C_form__cexp_t v_606 = 0; - _fx_LN14C_form__cexp_t v_607 = 0; + _fx_N14C_form__cexp_t v_589 = 0; + _fx_LN14C_form__cexp_t v_590 = 0; _fx_N14C_form__cexp_t call_mkvec_0 = 0; _fx_LN15C_form__cstmt_t sub_ccode_9 = 0; - _fx_N15C_form__cstmt_t v_608 = 0; - _fx_LN15C_form__cstmt_t ccode_113 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___14 = {0}; + _fx_N15C_form__cstmt_t v_591 = 0; + _fx_LN15C_form__cstmt_t ccode_93 = 0; + _fx_LN14C_form__cexp_t data_1 = 0; + _fx_LN15C_form__cstmt_t ccode_94 = 0; _fx_LT2BN14K_form__atom_t elems_2 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_609 = {0}; - _fx_LN14C_form__cexp_t data_3 = 0; - _fx_LN15C_form__cstmt_t ccode_114 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_610 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_592 = {0}; _fx_N14C_form__cexp_t vec_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_115 = 0; - _fx_LN14C_form__cexp_t v_611 = 0; - _fx_N14C_form__cexp_t v_612 = 0; - _fx_LN15C_form__cstmt_t ccode_116 = 0; + _fx_LN15C_form__cstmt_t ccode_95 = 0; + _fx_LN14C_form__cexp_t v_593 = 0; + _fx_N14C_form__cexp_t v_594 = 0; + _fx_LN15C_form__cstmt_t ccode_96 = 0; _fx_LT2BN14K_form__atom_t elems_3 = kexp_0->u.KExpMkVector.t0; - bool __fold_result___15 = false; + bool __fold_result___2 = false; FX_COPY_PTR(elems_3, &elems_0); _fx_LT2BN14K_form__atom_t lst_16 = elems_0; for (; lst_16; lst_16 = lst_16->tl) { _fx_T2BN14K_form__atom_t* __pat___3 = &lst_16->hd; if (__pat___3->t0) { - __fold_result___15 = true; FX_BREAK(_fx_catch_127); + __fold_result___2 = true; FX_BREAK(_fx_catch_127); } _fx_catch_127: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_140); } - bool have_expanded_1 = __fold_result___15; + bool have_expanded_1 = __fold_result___2; if (have_expanded_1) { fx_str_t slit_139 = FX_MAKE_STR("vec"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_139, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_590, 0), _fx_catch_140); - FX_COPY_PTR(v_590.t0, &vec_exp_0); - FX_COPY_PTR(v_590.t1, &ccode_111); + dstexp_r_0, &slit_139, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_574, 0), _fx_catch_140); + FX_COPY_PTR(v_574.t0, &vec_exp_0); + FX_COPY_PTR(v_574.t1, &ccode_90); if (FX_REC_VARIANT_TAG(ctyp_0) == 20) { FX_COPY_PTR(ctyp_0->u.CTypVector, &elem_ctyp_2); } else { - fx_exn_t v_613 = {0}; + fx_exn_t v_595 = {0}; fx_str_t slit_140 = FX_MAKE_STR("cgen: invalid output type of vector construction expression"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_140, &v_613, 0), _fx_catch_128); - FX_THROW(&v_613, false, _fx_catch_128); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_140, &v_595, 0), _fx_catch_128); + FX_THROW(&v_595, false, _fx_catch_128); _fx_catch_128: ; - fx_free_exn(&v_613); + fx_free_exn(&v_595); } FX_CHECK_EXN(_fx_catch_140); _fx_R9Ast__id_t scalars_id_1; fx_str_t slit_141 = FX_MAKE_STR("scalars"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_141, &scalars_id_1, 0), _fx_catch_140); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elem_ctyp_2, &v_591, 0), _fx_catch_140); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elem_ctyp_2, &v_575, 0), _fx_catch_140); FX_CALL( - _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&scalars_id_1, v_591, + _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&scalars_id_1, v_575, &kloc_0, &scalars_exp_1, 0), _fx_catch_140); - _fx_make_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(0, 0, 0, 0, ccode_111, - &__fold_result___13); + int_ nscalars_1 = 0; + FX_COPY_PTR(ccode_90, &ccode_91); FX_COPY_PTR(elems_3, &elems_1); _fx_LT2BN14K_form__atom_t lst_17 = elems_1; for (; lst_17; lst_17 = lst_17->tl) { _fx_N14K_form__atom_t a_6 = {0}; - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_614 = {0}; - _fx_LN14C_form__cexp_t scalars_data_6 = 0; - _fx_LN14C_form__cexp_t tags_data_7 = 0; - _fx_LN14C_form__cexp_t vec_data_1 = 0; - _fx_LN15C_form__cstmt_t ccode_117 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_615 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_596 = {0}; _fx_N14C_form__cexp_t e_12 = 0; - _fx_LN15C_form__cstmt_t ccode_118 = 0; - _fx_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_616 = {0}; + _fx_LN15C_form__cstmt_t ccode1_10 = 0; _fx_N14K_form__ktyp_t elem_ktyp_1 = 0; - _fx_N14K_form__ktyp_t v_617 = 0; - _fx_T2iN14C_form__cexp_t v_618 = {0}; + _fx_N14K_form__ktyp_t v_597 = 0; + _fx_T2iN14C_form__cexp_t v_598 = {0}; _fx_N14C_form__cexp_t elem_ptr_1 = 0; - _fx_N14C_form__cexp_t v_619 = 0; - _fx_LN14C_form__cexp_t v_620 = 0; - _fx_LN14C_form__cexp_t v_621 = 0; - _fx_T3iLN14C_form__cexp_tN14C_form__cexp_t v_622 = {0}; - _fx_LN14C_form__cexp_t scalars_data_7 = 0; + _fx_N14C_form__cexp_t v_599 = 0; + _fx_LN14C_form__cexp_t v_600 = 0; + _fx_LN14C_form__cexp_t v_601 = 0; + _fx_T3iLN14C_form__cexp_tN14C_form__cexp_t v_602 = {0}; + _fx_LN14C_form__cexp_t scalars_data1_1 = 0; _fx_N14C_form__cexp_t vec_data_elem_0 = 0; - _fx_N14C_form__cexp_t v_623 = 0; - _fx_LN14C_form__cexp_t v_624 = 0; - _fx_LN14C_form__cexp_t v_625 = 0; + _fx_N14C_form__cexp_t v_603 = 0; + _fx_LN14C_form__cexp_t v_604 = 0; + _fx_LN14C_form__cexp_t v_605 = 0; _fx_T2BN14K_form__atom_t* __pat___4 = &lst_17->hd; _fx_copy_N14K_form__atom_t(&__pat___4->t1, &a_6); - _fx_copy_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___13, &v_614); - int_ nscalars_3 = v_614.t0; - FX_COPY_PTR(v_614.t1, &scalars_data_6); - FX_COPY_PTR(v_614.t2, &tags_data_7); - FX_COPY_PTR(v_614.t3, &vec_data_1); - FX_COPY_PTR(v_614.t4, &ccode_117); FX_CALL( - atom2cexp_0.fp(&a_6, ccode_117, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_615, atom2cexp_0.fcv), _fx_catch_134); - FX_COPY_PTR(v_615.t0, &e_12); - FX_COPY_PTR(v_615.t1, &ccode_118); + atom2cexp_0.fp(&a_6, ccode_91, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_596, atom2cexp_0.fcv), _fx_catch_134); + FX_COPY_PTR(v_596.t0, &e_12); + FX_COPY_PTR(v_596.t1, &ccode1_10); if (__pat___4->t0) { FX_CALL( _fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(&a_6, &kloc_0, &elem_ktyp_1, 0), _fx_catch_134); FX_CALL( - _fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(elem_ktyp_1, &kloc_0, &v_617, 0), + _fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(elem_ktyp_1, &kloc_0, &v_597, 0), _fx_catch_134); - int tag_16 = FX_REC_VARIANT_TAG(v_617); + int tag_16 = FX_REC_VARIANT_TAG(v_597); if (tag_16 == 17) { - _fx_N14C_form__cexp_t v_626 = 0; - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_12, &v_626, 0), _fx_catch_129); - _fx_make_T2iN14C_form__cexp_t(v_617->u.KTypArray.t0, v_626, &v_618); + _fx_N14C_form__cexp_t v_606 = 0; + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_12, &v_606, 0), _fx_catch_129); + _fx_make_T2iN14C_form__cexp_t(v_597->u.KTypArray.t0, v_606, &v_598); _fx_catch_129: ; - if (v_626) { - _fx_free_N14C_form__cexp_t(&v_626); + if (v_606) { + _fx_free_N14C_form__cexp_t(&v_606); } } else if (tag_16 == 19) { - _fx_make_T2iN14C_form__cexp_t(100, e_12, &v_618); + _fx_make_T2iN14C_form__cexp_t(100, e_12, &v_598); } else if (tag_16 == 18) { - _fx_N14C_form__cexp_t v_627 = 0; - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_12, &v_627, 0), _fx_catch_130); - _fx_make_T2iN14C_form__cexp_t(110, v_627, &v_618); + _fx_N14C_form__cexp_t v_607 = 0; + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_12, &v_607, 0), _fx_catch_130); + _fx_make_T2iN14C_form__cexp_t(110, v_607, &v_598); _fx_catch_130: ; - if (v_627) { - _fx_free_N14C_form__cexp_t(&v_627); + if (v_607) { + _fx_free_N14C_form__cexp_t(&v_607); } } else { - fx_str_t v_628 = {0}; - fx_str_t v_629 = {0}; - fx_str_t v_630 = {0}; - fx_exn_t v_631 = {0}; - FX_CALL(_fx_M6K_formFM8atom2strS1N14K_form__atom_t(&a_6, &v_628, 0), _fx_catch_131); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_628, &v_629, 0), _fx_catch_131); + fx_str_t v_608 = {0}; + fx_str_t v_609 = {0}; + fx_str_t v_610 = {0}; + fx_exn_t v_611 = {0}; + FX_CALL(_fx_M6K_formFM8atom2strS1N14K_form__atom_t(&a_6, &v_608, 0), _fx_catch_131); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_608, &v_609, 0), _fx_catch_131); fx_str_t slit_142 = FX_MAKE_STR("cgen: the expanded structure "); fx_str_t slit_143 = FX_MAKE_STR(" is not an array, vector or list"); { - const fx_str_t strs_30[] = { slit_142, v_629, slit_143 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_30, 3, &v_630), _fx_catch_131); + const fx_str_t strs_29[] = { slit_142, v_609, slit_143 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_29, 3, &v_610), _fx_catch_131); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_630, &v_631, 0), _fx_catch_131); - FX_THROW(&v_631, false, _fx_catch_131); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_610, &v_611, 0), _fx_catch_131); + FX_THROW(&v_611, false, _fx_catch_131); _fx_catch_131: ; - fx_free_exn(&v_631); - FX_FREE_STR(&v_630); - FX_FREE_STR(&v_629); - FX_FREE_STR(&v_628); + fx_free_exn(&v_611); + FX_FREE_STR(&v_610); + FX_FREE_STR(&v_609); + FX_FREE_STR(&v_608); } FX_CHECK_EXN(_fx_catch_134); - int_ tag_17 = v_618.t0; - FX_COPY_PTR(v_618.t1, &elem_ptr_1); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(tag_17, &kloc_0, &v_619, 0), _fx_catch_134); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_619, tags_data_7, true, &v_620), _fx_catch_134); - FX_CALL(_fx_cons_LN14C_form__cexp_t(elem_ptr_1, vec_data_1, true, &v_621), _fx_catch_134); - _fx_make_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(nscalars_3, scalars_data_6, - v_620, v_621, ccode_118, &v_616); + int_ tag_17 = v_598.t0; + FX_COPY_PTR(v_598.t1, &elem_ptr_1); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(tag_17, &kloc_0, &v_599, 0), _fx_catch_134); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_599, tags_data_2, true, &v_600), _fx_catch_134); + _fx_free_LN14C_form__cexp_t(&tags_data_2); + FX_COPY_PTR(v_600, &tags_data_2); + FX_CALL(_fx_cons_LN14C_form__cexp_t(elem_ptr_1, vec_data_0, true, &v_601), _fx_catch_134); + _fx_free_LN14C_form__cexp_t(&vec_data_0); + FX_COPY_PTR(v_601, &vec_data_0); + _fx_free_LN15C_form__cstmt_t(&ccode_91); + FX_COPY_PTR(ccode1_10, &ccode_91); } else { if (FX_REC_VARIANT_TAG(e_12) == 1) { - _fx_N14C_form__cexp_t v_632 = 0; - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_12, &v_632, 0), _fx_catch_132); - _fx_make_T3iLN14C_form__cexp_tN14C_form__cexp_t(nscalars_3, scalars_data_6, v_632, &v_622); + _fx_N14C_form__cexp_t v_612 = 0; + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_12, &v_612, 0), _fx_catch_132); + _fx_make_T3iLN14C_form__cexp_tN14C_form__cexp_t(nscalars_1, scalars_data_1, v_612, &v_602); _fx_catch_132: ; - if (v_632) { - _fx_free_N14C_form__cexp_t(&v_632); + if (v_612) { + _fx_free_N14C_form__cexp_t(&v_612); } } else { - _fx_LN14C_form__cexp_t v_633 = 0; - _fx_N14C_form__cexp_t v_634 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_635 = {0}; - _fx_N14C_form__cexp_t v_636 = 0; - FX_CALL(_fx_cons_LN14C_form__cexp_t(e_12, scalars_data_6, true, &v_633), _fx_catch_133); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(nscalars_3, &kloc_0, &v_634, 0), + _fx_LN14C_form__cexp_t v_613 = 0; + _fx_N14C_form__cexp_t v_614 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_615 = {0}; + _fx_N14C_form__cexp_t v_616 = 0; + FX_CALL(_fx_cons_LN14C_form__cexp_t(e_12, scalars_data_1, true, &v_613), _fx_catch_133); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(nscalars_1, &kloc_0, &v_614, 0), _fx_catch_133); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g23C_form__std_CTypVoidPtr, &kloc_0, &v_635); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g23C_form__std_CTypVoidPtr, &kloc_0, &v_615); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g18C_gen_code__COpAdd, scalars_exp_1, v_634, &v_635, &v_636), _fx_catch_133); - _fx_make_T3iLN14C_form__cexp_tN14C_form__cexp_t(nscalars_3 + 1, v_633, v_636, &v_622); + &_fx_g18C_gen_code__COpAdd, scalars_exp_1, v_614, &v_615, &v_616), _fx_catch_133); + _fx_make_T3iLN14C_form__cexp_tN14C_form__cexp_t(nscalars_1 + 1, v_613, v_616, &v_602); _fx_catch_133: ; - if (v_636) { - _fx_free_N14C_form__cexp_t(&v_636); + if (v_616) { + _fx_free_N14C_form__cexp_t(&v_616); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_635); - if (v_634) { - _fx_free_N14C_form__cexp_t(&v_634); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_615); + if (v_614) { + _fx_free_N14C_form__cexp_t(&v_614); } - if (v_633) { - _fx_free_LN14C_form__cexp_t(&v_633); + if (v_613) { + _fx_free_LN14C_form__cexp_t(&v_613); } } FX_CHECK_EXN(_fx_catch_134); - int_ nscalars_4 = v_622.t0; - FX_COPY_PTR(v_622.t1, &scalars_data_7); - FX_COPY_PTR(v_622.t2, &vec_data_elem_0); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_623, 0), _fx_catch_134); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_623, tags_data_7, true, &v_624), _fx_catch_134); - FX_CALL(_fx_cons_LN14C_form__cexp_t(vec_data_elem_0, vec_data_1, true, &v_625), _fx_catch_134); - _fx_make_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(nscalars_4, scalars_data_7, - v_624, v_625, ccode_118, &v_616); - } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___13); - _fx_copy_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_616, &__fold_result___13); + int_ nscalars1_1 = v_602.t0; + FX_COPY_PTR(v_602.t1, &scalars_data1_1); + FX_COPY_PTR(v_602.t2, &vec_data_elem_0); + nscalars_1 = nscalars1_1; + _fx_free_LN14C_form__cexp_t(&scalars_data_1); + FX_COPY_PTR(scalars_data1_1, &scalars_data_1); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_603, 0), _fx_catch_134); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_603, tags_data_2, true, &v_604), _fx_catch_134); + _fx_free_LN14C_form__cexp_t(&tags_data_2); + FX_COPY_PTR(v_604, &tags_data_2); + FX_CALL(_fx_cons_LN14C_form__cexp_t(vec_data_elem_0, vec_data_0, true, &v_605), _fx_catch_134); + _fx_free_LN14C_form__cexp_t(&vec_data_0); + FX_COPY_PTR(v_605, &vec_data_0); + _fx_free_LN15C_form__cstmt_t(&ccode_91); + FX_COPY_PTR(ccode1_10, &ccode_91); + } _fx_catch_134: ; - if (v_625) { - _fx_free_LN14C_form__cexp_t(&v_625); + if (v_605) { + _fx_free_LN14C_form__cexp_t(&v_605); } - if (v_624) { - _fx_free_LN14C_form__cexp_t(&v_624); + if (v_604) { + _fx_free_LN14C_form__cexp_t(&v_604); } - if (v_623) { - _fx_free_N14C_form__cexp_t(&v_623); + if (v_603) { + _fx_free_N14C_form__cexp_t(&v_603); } if (vec_data_elem_0) { _fx_free_N14C_form__cexp_t(&vec_data_elem_0); } - if (scalars_data_7) { - _fx_free_LN14C_form__cexp_t(&scalars_data_7); + if (scalars_data1_1) { + _fx_free_LN14C_form__cexp_t(&scalars_data1_1); } - _fx_free_T3iLN14C_form__cexp_tN14C_form__cexp_t(&v_622); - if (v_621) { - _fx_free_LN14C_form__cexp_t(&v_621); + _fx_free_T3iLN14C_form__cexp_tN14C_form__cexp_t(&v_602); + if (v_601) { + _fx_free_LN14C_form__cexp_t(&v_601); } - if (v_620) { - _fx_free_LN14C_form__cexp_t(&v_620); + if (v_600) { + _fx_free_LN14C_form__cexp_t(&v_600); } - if (v_619) { - _fx_free_N14C_form__cexp_t(&v_619); + if (v_599) { + _fx_free_N14C_form__cexp_t(&v_599); } if (elem_ptr_1) { _fx_free_N14C_form__cexp_t(&elem_ptr_1); } - _fx_free_T2iN14C_form__cexp_t(&v_618); - if (v_617) { - _fx_free_N14K_form__ktyp_t(&v_617); + _fx_free_T2iN14C_form__cexp_t(&v_598); + if (v_597) { + _fx_free_N14K_form__ktyp_t(&v_597); } if (elem_ktyp_1) { _fx_free_N14K_form__ktyp_t(&elem_ktyp_1); } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_616); - if (ccode_118) { - _fx_free_LN15C_form__cstmt_t(&ccode_118); + if (ccode1_10) { + _fx_free_LN15C_form__cstmt_t(&ccode1_10); } if (e_12) { _fx_free_N14C_form__cexp_t(&e_12); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_615); - if (ccode_117) { - _fx_free_LN15C_form__cstmt_t(&ccode_117); - } - if (vec_data_1) { - _fx_free_LN14C_form__cexp_t(&vec_data_1); - } - if (tags_data_7) { - _fx_free_LN14C_form__cexp_t(&tags_data_7); - } - if (scalars_data_6) { - _fx_free_LN14C_form__cexp_t(&scalars_data_6); - } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_614); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_596); _fx_free_N14K_form__atom_t(&a_6); FX_CHECK_EXN(_fx_catch_140); } - _fx_copy_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___13, &v_592); - FX_COPY_PTR(v_592.t1, &scalars_data_5); - FX_COPY_PTR(v_592.t2, &tags_data_5); - FX_COPY_PTR(v_592.t3, &vec_data_0); - FX_COPY_PTR(v_592.t4, &ccode_112); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(scalars_data_5, &v_593, 0), _fx_catch_140); + FX_COPY_PTR(scalars_data_1, &scalars_data_2); + FX_COPY_PTR(tags_data_2, &tags_data_3); + FX_COPY_PTR(vec_data_0, &vec_data_1); + FX_COPY_PTR(ccode_91, &ccode_92); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(scalars_data_2, &v_576, 0), _fx_catch_140); FX_CALL( _fx_M10C_gen_codeFM14decl_plain_arrT2N14C_form__cexp_tLN15C_form__cstmt_t5R9Ast__id_tN14C_form__ctyp_tLN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &scalars_id_1, elem_ctyp_2, v_593, 0, &kloc_0, &v_594, 0), _fx_catch_140); - FX_COPY_PTR(v_594.t1, &sub_ccode_6); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(-1, &kloc_0, &v_595, 0), _fx_catch_140); - FX_CALL(_fx_M10C_gen_codeFM2tlLN14C_form__cexp_t1LN14C_form__cexp_t(tags_data_5, &v_596, 0), _fx_catch_140); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_595, v_596, true, &v_597), _fx_catch_140); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_597, &tags_data_6, 0), _fx_catch_140); - _fx_R9Ast__id_t v_637; + &scalars_id_1, elem_ctyp_2, v_576, 0, &kloc_0, &v_577, 0), _fx_catch_140); + FX_COPY_PTR(v_577.t1, &sub_ccode_6); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(-1, &kloc_0, &v_578, 0), _fx_catch_140); + FX_CALL(_fx_M10C_gen_codeFM2tlLN14C_form__cexp_t1LN14C_form__cexp_t(tags_data_3, &v_579, 0), _fx_catch_140); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_578, v_579, true, &v_580), _fx_catch_140); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_580, &tags_data_4, 0), _fx_catch_140); + _fx_R9Ast__id_t v_617; fx_str_t slit_144 = FX_MAKE_STR("tags"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_144, &v_637, 0), _fx_catch_140); - FX_CALL(_fx_M6C_formFM8CTypSIntN14C_form__ctyp_t1i(8, &v_598), _fx_catch_140); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_144, &v_617, 0), _fx_catch_140); + FX_CALL(_fx_M6C_formFM8CTypSIntN14C_form__ctyp_t1i(8, &v_581), _fx_catch_140); FX_CALL( _fx_M10C_gen_codeFM14decl_plain_arrT2N14C_form__cexp_tLN15C_form__cstmt_t5R9Ast__id_tN14C_form__ctyp_tLN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_637, v_598, tags_data_6, sub_ccode_6, &kloc_0, &v_599, 0), _fx_catch_140); - FX_COPY_PTR(v_599.t0, &tags_exp_1); - FX_COPY_PTR(v_599.t1, &sub_ccode_7); - _fx_R9Ast__id_t v_638; + &v_617, v_581, tags_data_4, sub_ccode_6, &kloc_0, &v_582, 0), _fx_catch_140); + FX_COPY_PTR(v_582.t0, &tags_exp_1); + FX_COPY_PTR(v_582.t1, &sub_ccode_7); + _fx_R9Ast__id_t v_618; fx_str_t slit_145 = FX_MAKE_STR("parts"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_145, &v_638, 0), _fx_catch_140); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(vec_data_0, &v_600, 0), _fx_catch_140); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_145, &v_618, 0), _fx_catch_140); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(vec_data_1, &v_583, 0), _fx_catch_140); FX_CALL( _fx_M10C_gen_codeFM14decl_plain_arrT2N14C_form__cexp_tLN15C_form__cstmt_t5R9Ast__id_tN14C_form__ctyp_tLN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_638, _fx_g23C_form__std_CTypVoidPtr, v_600, sub_ccode_7, &kloc_0, &v_601, 0), _fx_catch_140); - FX_COPY_PTR(v_601.t0, &vec_data_exp_0); - FX_COPY_PTR(v_601.t1, &sub_ccode_8); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elem_ctyp_2, &kloc_0, &v_602), + &v_618, _fx_g23C_form__std_CTypVoidPtr, v_583, sub_ccode_7, &kloc_0, &v_584, 0), _fx_catch_140); + FX_COPY_PTR(v_584.t0, &vec_data_exp_0); + FX_COPY_PTR(v_584.t1, &sub_ccode_8); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elem_ctyp_2, &kloc_0, &v_585), _fx_catch_140); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_602, 0, true, &v_603), _fx_catch_140); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_585, 0, true, &v_586), _fx_catch_140); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g18C_form__std_sizeof, v_603, _fx_g22C_gen_code__CTypSize_t, &kloc_0, &sizeof_elem_exp_2, 0), + &_fx_g18C_form__std_sizeof, v_586, _fx_g22C_gen_code__CTypSize_t, &kloc_0, &sizeof_elem_exp_2, 0), _fx_catch_140); FX_CALL( _fx_M11C_gen_typesFM10get_free_fT2BNt6option1N14C_form__cexp_t4N14C_form__ctyp_tBBR10Ast__loc_t(elem_ctyp_2, true, - false, &kloc_0, &v_604, 0), _fx_catch_140); - _fx_Nt6option1N14C_form__cexp_t* v_639 = &v_604.t1; - if (v_639->tag == 2) { + false, &kloc_0, &v_587, 0), _fx_catch_140); + _fx_Nt6option1N14C_form__cexp_t* v_619 = &v_587.t1; + if (v_619->tag == 2) { FX_CALL( - _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_639->u.Some, + _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_619->u.Some, _fx_g21C_form__std_fx_free_t, &kloc_0, &free_f_exp_2), _fx_catch_135); _fx_catch_135: ; @@ -27861,11 +27180,11 @@ static int FX_CHECK_EXN(_fx_catch_140); FX_CALL( _fx_M11C_gen_typesFM10get_copy_fT2BNt6option1N14C_form__cexp_t4N14C_form__ctyp_tBBR10Ast__loc_t(elem_ctyp_2, true, - false, &kloc_0, &v_605, 0), _fx_catch_140); - _fx_Nt6option1N14C_form__cexp_t* v_640 = &v_605.t1; - if (v_640->tag == 2) { + false, &kloc_0, &v_588, 0), _fx_catch_140); + _fx_Nt6option1N14C_form__cexp_t* v_620 = &v_588.t1; + if (v_620->tag == 2) { FX_CALL( - _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_640->u.Some, + _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_620->u.Some, _fx_g21C_form__std_fx_copy_t, &kloc_0, ©_f_exp_2), _fx_catch_137); _fx_catch_137: ; @@ -27876,127 +27195,112 @@ static int _fx_catch_138: ; } FX_CHECK_EXN(_fx_catch_140); - _fx_R9Ast__id_t v_641; + _fx_R9Ast__id_t v_621; fx_str_t slit_146 = FX_MAKE_STR("fx_compose_vec"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_146, &v_641, 0), _fx_catch_140); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(vec_exp_0, &v_606, 0), _fx_catch_140); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_606, 0, true, &v_607), _fx_catch_140); - FX_CALL(_fx_cons_LN14C_form__cexp_t(vec_data_exp_0, v_607, false, &v_607), _fx_catch_140); - FX_CALL(_fx_cons_LN14C_form__cexp_t(tags_exp_1, v_607, false, &v_607), _fx_catch_140); - FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_f_exp_2, v_607, false, &v_607), _fx_catch_140); - FX_CALL(_fx_cons_LN14C_form__cexp_t(free_f_exp_2, v_607, false, &v_607), _fx_catch_140); - FX_CALL(_fx_cons_LN14C_form__cexp_t(sizeof_elem_exp_2, v_607, false, &v_607), _fx_catch_140); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_146, &v_621, 0), _fx_catch_140); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(vec_exp_0, &v_589, 0), _fx_catch_140); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_589, 0, true, &v_590), _fx_catch_140); + FX_CALL(_fx_cons_LN14C_form__cexp_t(vec_data_exp_0, v_590, false, &v_590), _fx_catch_140); + FX_CALL(_fx_cons_LN14C_form__cexp_t(tags_exp_1, v_590, false, &v_590), _fx_catch_140); + FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_f_exp_2, v_590, false, &v_590), _fx_catch_140); + FX_CALL(_fx_cons_LN14C_form__cexp_t(free_f_exp_2, v_590, false, &v_590), _fx_catch_140); + FX_CALL(_fx_cons_LN14C_form__cexp_t(sizeof_elem_exp_2, v_590, false, &v_590), _fx_catch_140); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_641, v_607, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_621, v_590, _fx_g20C_gen_code__CTypCInt, &kloc_0, &call_mkvec_0, 0), _fx_catch_140); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( call_mkvec_0, sub_ccode_8, &kloc_0, block_stack_ref_0, &sub_ccode_9, 0), _fx_catch_140); FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(sub_ccode_9, &kloc_0, &v_608, 0), + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(sub_ccode_9, &kloc_0, &v_591, 0), _fx_catch_140); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_608, ccode_112, true, &ccode_113), _fx_catch_140); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, vec_exp_0, ccode_113, &v_1); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_591, ccode_92, true, &ccode_93), _fx_catch_140); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, vec_exp_0, ccode_93, &v_1); } else { - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, ccode_0, &__fold_result___14); + FX_COPY_PTR(ccode_0, &ccode_94); FX_COPY_PTR(elems_3, &elems_2); _fx_LT2BN14K_form__atom_t lst_18 = elems_2; for (; lst_18; lst_18 = lst_18->tl) { _fx_N14K_form__atom_t a_7 = {0}; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_642 = {0}; - _fx_LN14C_form__cexp_t data_4 = 0; - _fx_LN15C_form__cstmt_t ccode_119 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_643 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_622 = {0}; _fx_N14C_form__cexp_t e_13 = 0; - _fx_LN15C_form__cstmt_t ccode_120 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_644 = {0}; + _fx_LN15C_form__cstmt_t ccode1_11 = 0; + _fx_LN14C_form__cexp_t v_623 = 0; _fx_T2BN14K_form__atom_t* __pat___5 = &lst_18->hd; _fx_copy_N14K_form__atom_t(&__pat___5->t1, &a_7); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___14, &v_642); - FX_COPY_PTR(v_642.t0, &data_4); - FX_COPY_PTR(v_642.t1, &ccode_119); FX_CALL( - atom2cexp_0.fp(&a_7, ccode_119, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_643, atom2cexp_0.fcv), _fx_catch_139); - FX_COPY_PTR(v_643.t0, &e_13); - FX_COPY_PTR(v_643.t1, &ccode_120); - FX_CALL(_fx_cons_LN14C_form__cexp_t(e_13, data_4, false, &data_4), _fx_catch_139); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(data_4, ccode_120, &v_644); - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___14); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_644, &__fold_result___14); + atom2cexp_0.fp(&a_7, ccode_94, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_622, atom2cexp_0.fcv), _fx_catch_139); + FX_COPY_PTR(v_622.t0, &e_13); + FX_COPY_PTR(v_622.t1, &ccode1_11); + FX_CALL(_fx_cons_LN14C_form__cexp_t(e_13, data_1, true, &v_623), _fx_catch_139); + _fx_free_LN14C_form__cexp_t(&data_1); + FX_COPY_PTR(v_623, &data_1); + _fx_free_LN15C_form__cstmt_t(&ccode_94); + FX_COPY_PTR(ccode1_11, &ccode_94); _fx_catch_139: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_644); - if (ccode_120) { - _fx_free_LN15C_form__cstmt_t(&ccode_120); + if (v_623) { + _fx_free_LN14C_form__cexp_t(&v_623); + } + if (ccode1_11) { + _fx_free_LN15C_form__cstmt_t(&ccode1_11); } if (e_13) { _fx_free_N14C_form__cexp_t(&e_13); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_643); - if (ccode_119) { - _fx_free_LN15C_form__cstmt_t(&ccode_119); - } - if (data_4) { - _fx_free_LN14C_form__cexp_t(&data_4); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_642); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_622); _fx_free_N14K_form__atom_t(&a_7); FX_CHECK_EXN(_fx_catch_140); } - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___14, &v_609); - FX_COPY_PTR(v_609.t0, &data_3); - FX_COPY_PTR(v_609.t1, &ccode_114); fx_str_t slit_147 = FX_MAKE_STR("vec"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_147, ctyp_0, ccode_114, &kloc_0, block_stack_ref_0, km_idx_0, &v_610, 0), _fx_catch_140); - FX_COPY_PTR(v_610.t0, &vec_exp_1); - FX_COPY_PTR(v_610.t1, &ccode_115); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(data_3, &v_611, 0), _fx_catch_140); + dstexp_r_0, &slit_147, ctyp_0, ccode_94, &kloc_0, block_stack_ref_0, km_idx_0, &v_592, 0), _fx_catch_140); + FX_COPY_PTR(v_592.t0, &vec_exp_1); + FX_COPY_PTR(v_592.t1, &ccode_95); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(data_1, &v_593, 0), _fx_catch_140); FX_CALL( _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, - &v_612, 0), _fx_catch_140); + &v_594, 0), _fx_catch_140); FX_CALL( _fx_M10C_gen_codeFM18make_make_vec_callLN15C_form__cstmt_t6N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_ti( - vec_exp_1, v_611, ccode_115, v_612, &kloc_0, km_idx_0, &ccode_116, 0), _fx_catch_140); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, vec_exp_1, ccode_116, &v_1); + vec_exp_1, v_593, ccode_95, v_594, &kloc_0, km_idx_0, &ccode_96, 0), _fx_catch_140); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, vec_exp_1, ccode_96, &v_1); } _fx_catch_140: ; - if (ccode_116) { - _fx_free_LN15C_form__cstmt_t(&ccode_116); + if (ccode_96) { + _fx_free_LN15C_form__cstmt_t(&ccode_96); } - if (v_612) { - _fx_free_N14C_form__cexp_t(&v_612); + if (v_594) { + _fx_free_N14C_form__cexp_t(&v_594); } - if (v_611) { - _fx_free_LN14C_form__cexp_t(&v_611); + if (v_593) { + _fx_free_LN14C_form__cexp_t(&v_593); } - if (ccode_115) { - _fx_free_LN15C_form__cstmt_t(&ccode_115); + if (ccode_95) { + _fx_free_LN15C_form__cstmt_t(&ccode_95); } if (vec_exp_1) { _fx_free_N14C_form__cexp_t(&vec_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_610); - if (ccode_114) { - _fx_free_LN15C_form__cstmt_t(&ccode_114); - } - if (data_3) { - _fx_free_LN14C_form__cexp_t(&data_3); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_609); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_592); if (elems_2) { _fx_free_LT2BN14K_form__atom_t(&elems_2); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___14); - if (ccode_113) { - _fx_free_LN15C_form__cstmt_t(&ccode_113); + if (ccode_94) { + _fx_free_LN15C_form__cstmt_t(&ccode_94); + } + if (data_1) { + _fx_free_LN14C_form__cexp_t(&data_1); + } + if (ccode_93) { + _fx_free_LN15C_form__cstmt_t(&ccode_93); } - if (v_608) { - _fx_free_N15C_form__cstmt_t(&v_608); + if (v_591) { + _fx_free_N15C_form__cstmt_t(&v_591); } if (sub_ccode_9) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_9); @@ -28004,28 +27308,28 @@ static int if (call_mkvec_0) { _fx_free_N14C_form__cexp_t(&call_mkvec_0); } - if (v_607) { - _fx_free_LN14C_form__cexp_t(&v_607); + if (v_590) { + _fx_free_LN14C_form__cexp_t(&v_590); } - if (v_606) { - _fx_free_N14C_form__cexp_t(&v_606); + if (v_589) { + _fx_free_N14C_form__cexp_t(&v_589); } if (copy_f_exp_2) { _fx_free_N14C_form__cexp_t(©_f_exp_2); } - _fx_free_T2BNt6option1N14C_form__cexp_t(&v_605); + _fx_free_T2BNt6option1N14C_form__cexp_t(&v_588); if (free_f_exp_2) { _fx_free_N14C_form__cexp_t(&free_f_exp_2); } - _fx_free_T2BNt6option1N14C_form__cexp_t(&v_604); + _fx_free_T2BNt6option1N14C_form__cexp_t(&v_587); if (sizeof_elem_exp_2) { _fx_free_N14C_form__cexp_t(&sizeof_elem_exp_2); } - if (v_603) { - _fx_free_LN14C_form__cexp_t(&v_603); + if (v_586) { + _fx_free_LN14C_form__cexp_t(&v_586); } - if (v_602) { - _fx_free_N14C_form__cexp_t(&v_602); + if (v_585) { + _fx_free_N14C_form__cexp_t(&v_585); } if (sub_ccode_8) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_8); @@ -28033,9 +27337,9 @@ static int if (vec_data_exp_0) { _fx_free_N14C_form__cexp_t(&vec_data_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_601); - if (v_600) { - _fx_free_LN14C_form__cexp_t(&v_600); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_584); + if (v_583) { + _fx_free_LN14C_form__cexp_t(&v_583); } if (sub_ccode_7) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_7); @@ -28043,72 +27347,82 @@ static int if (tags_exp_1) { _fx_free_N14C_form__cexp_t(&tags_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_599); - if (v_598) { - _fx_free_N14C_form__ctyp_t(&v_598); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_582); + if (v_581) { + _fx_free_N14C_form__ctyp_t(&v_581); } - if (tags_data_6) { - _fx_free_LN14C_form__cexp_t(&tags_data_6); + if (tags_data_4) { + _fx_free_LN14C_form__cexp_t(&tags_data_4); } - if (v_597) { - _fx_free_LN14C_form__cexp_t(&v_597); + if (v_580) { + _fx_free_LN14C_form__cexp_t(&v_580); } - if (v_596) { - _fx_free_LN14C_form__cexp_t(&v_596); + if (v_579) { + _fx_free_LN14C_form__cexp_t(&v_579); } - if (v_595) { - _fx_free_N14C_form__cexp_t(&v_595); + if (v_578) { + _fx_free_N14C_form__cexp_t(&v_578); } if (sub_ccode_6) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_6); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_594); - if (v_593) { - _fx_free_LN14C_form__cexp_t(&v_593); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_577); + if (v_576) { + _fx_free_LN14C_form__cexp_t(&v_576); } - if (ccode_112) { - _fx_free_LN15C_form__cstmt_t(&ccode_112); + if (ccode_92) { + _fx_free_LN15C_form__cstmt_t(&ccode_92); } - if (vec_data_0) { - _fx_free_LN14C_form__cexp_t(&vec_data_0); + if (vec_data_1) { + _fx_free_LN14C_form__cexp_t(&vec_data_1); } - if (tags_data_5) { - _fx_free_LN14C_form__cexp_t(&tags_data_5); + if (tags_data_3) { + _fx_free_LN14C_form__cexp_t(&tags_data_3); } - if (scalars_data_5) { - _fx_free_LN14C_form__cexp_t(&scalars_data_5); + if (scalars_data_2) { + _fx_free_LN14C_form__cexp_t(&scalars_data_2); } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_592); if (elems_1) { _fx_free_LT2BN14K_form__atom_t(&elems_1); } - _fx_free_T5iLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___13); + if (ccode_91) { + _fx_free_LN15C_form__cstmt_t(&ccode_91); + } + if (vec_data_0) { + _fx_free_LN14C_form__cexp_t(&vec_data_0); + } + if (tags_data_2) { + _fx_free_LN14C_form__cexp_t(&tags_data_2); + } + if (scalars_data_1) { + _fx_free_LN14C_form__cexp_t(&scalars_data_1); + } if (scalars_exp_1) { _fx_free_N14C_form__cexp_t(&scalars_exp_1); } - if (v_591) { - _fx_free_N14C_form__ctyp_t(&v_591); + if (v_575) { + _fx_free_N14C_form__ctyp_t(&v_575); } if (elem_ctyp_2) { _fx_free_N14C_form__ctyp_t(&elem_ctyp_2); } - if (ccode_111) { - _fx_free_LN15C_form__cstmt_t(&ccode_111); + if (ccode_90) { + _fx_free_LN15C_form__cstmt_t(&ccode_90); } if (vec_exp_0) { _fx_free_N14C_form__cexp_t(&vec_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_590); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_574); if (elems_0) { _fx_free_LT2BN14K_form__atom_t(&elems_0); } goto _fx_endmatch_49; } if (tag_0 == 19) { - fx_exn_t v_645 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_646 = {0}; + fx_exn_t v_624 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_625 = {0}; _fx_N14C_form__cexp_t arr_exp_5 = 0; - _fx_LN15C_form__cstmt_t ccode_121 = 0; + _fx_LN15C_form__cstmt_t ccode_97 = 0; _fx_N14C_form__cexp_t lbl_5 = 0; _fx_N14C_form__ctyp_t arr_ctyp_0 = 0; _fx_T5N14K_form__atom_tN13Ast__border_tN18Ast__interpolate_tLN13K_form__dom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_12 = @@ -28117,12 +27431,12 @@ static int _fx_N13Ast__border_t* border_0 = &vcase_12->t1; if (vcase_12->t2.tag != 1) { fx_str_t slit_148 = FX_MAKE_STR("cgen: inter-element interpolation is not supported yet"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_148, &v_645, 0), _fx_catch_185); - FX_THROW(&v_645, false, _fx_catch_185); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_148, &v_624, 0), _fx_catch_185); + FX_THROW(&v_624, false, _fx_catch_185); } - FX_CALL(atom2cexp__0.fp(&vcase_12->t0, false, ccode_0, &kloc_0, &v_646, atom2cexp__0.fcv), _fx_catch_185); - FX_COPY_PTR(v_646.t0, &arr_exp_5); - FX_COPY_PTR(v_646.t1, &ccode_121); + FX_CALL(atom2cexp__0.fp(&vcase_12->t0, false, ccode_0, &kloc_0, &v_625, atom2cexp__0.fcv), _fx_catch_185); + FX_COPY_PTR(v_625.t0, &arr_exp_5); + FX_COPY_PTR(v_625.t1, &ccode_97); FX_CALL( _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &lbl_5, 0), _fx_catch_185); @@ -28131,375 +27445,375 @@ static int if (tag_18 == 12) { if (idxs_1 != 0) { if (idxs_1->tl == 0) { - _fx_N13K_form__dom_t* v_647 = &idxs_1->hd; - if (v_647->tag == 2) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_648 = {0}; + _fx_N13K_form__dom_t* v_626 = &idxs_1->hd; + if (v_626->tag == 2) { + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_627 = {0}; _fx_N14C_form__cexp_t i_exp_2 = 0; - _fx_LN15C_form__cstmt_t ccode_122 = 0; - _fx_LN14C_form__cexp_t v_649 = 0; + _fx_LN15C_form__cstmt_t ccode_98 = 0; + _fx_LN14C_form__cexp_t v_628 = 0; _fx_N14C_form__cexp_t get_elem_exp_1 = 0; FX_CALL( - atom2cexp_0.fp(&v_647->u.DomainFast, ccode_121, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_648, atom2cexp_0.fcv), _fx_catch_141); - FX_COPY_PTR(v_648.t0, &i_exp_2); - FX_COPY_PTR(v_648.t1, &ccode_122); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_2, 0, true, &v_649), _fx_catch_141); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_649, false, &v_649), _fx_catch_141); + atom2cexp_0.fp(&v_626->u.DomainFast, ccode_97, &kloc_0, block_stack_ref_0, defined_syms_ref_0, + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_627, atom2cexp_0.fcv), _fx_catch_141); + FX_COPY_PTR(v_627.t0, &i_exp_2); + FX_COPY_PTR(v_627.t1, &ccode_98); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_2, 0, true, &v_628), _fx_catch_141); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_628, false, &v_628), _fx_catch_141); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_form__std_FX_STR_ELEM, v_649, _fx_g23C_gen_code__CTypUniChar, &kloc_0, &get_elem_exp_1, 0), + &_fx_g23C_form__std_FX_STR_ELEM, v_628, _fx_g23C_gen_code__CTypUniChar, &kloc_0, &get_elem_exp_1, 0), _fx_catch_141); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_elem_exp_1, ccode_122, &v_1); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_elem_exp_1, ccode_98, &v_1); _fx_catch_141: ; if (get_elem_exp_1) { _fx_free_N14C_form__cexp_t(&get_elem_exp_1); } - if (v_649) { - _fx_free_LN14C_form__cexp_t(&v_649); + if (v_628) { + _fx_free_LN14C_form__cexp_t(&v_628); } - if (ccode_122) { - _fx_free_LN15C_form__cstmt_t(&ccode_122); + if (ccode_98) { + _fx_free_LN15C_form__cstmt_t(&ccode_98); } if (i_exp_2) { _fx_free_N14C_form__cexp_t(&i_exp_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_648); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_627); goto _fx_endmatch_19; } } } if (idxs_1 != 0) { if (idxs_1->tl == 0) { - _fx_N13K_form__dom_t* v_650 = &idxs_1->hd; - if (v_650->tag == 1) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_651 = {0}; + _fx_N13K_form__dom_t* v_629 = &idxs_1->hd; + if (v_629->tag == 1) { + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_630 = {0}; _fx_N14C_form__cexp_t i_exp_3 = 0; - _fx_LN15C_form__cstmt_t ccode_123 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_652 = {0}; + _fx_LN15C_form__cstmt_t ccode_99 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_631 = {0}; _fx_N14C_form__cexp_t get_elem_exp_2 = 0; - _fx_LN15C_form__cstmt_t ccode_124 = 0; - FX_CALL(atom2cexp__0.fp(&v_650->u.DomainElem, true, ccode_121, &kloc_0, &v_651, atom2cexp__0.fcv), + _fx_LN15C_form__cstmt_t ccode_100 = 0; + FX_CALL(atom2cexp__0.fp(&v_629->u.DomainElem, true, ccode_97, &kloc_0, &v_630, atom2cexp__0.fcv), _fx_catch_146); - FX_COPY_PTR(v_651.t0, &i_exp_3); - FX_COPY_PTR(v_651.t1, &ccode_123); + FX_COPY_PTR(v_630.t0, &i_exp_3); + FX_COPY_PTR(v_630.t1, &ccode_99); int tag_19 = border_0->tag; if (tag_19 == 1) { - _fx_LN14C_form__cexp_t v_653 = 0; + _fx_LN14C_form__cexp_t v_632 = 0; _fx_N14C_form__cexp_t chk_exp_0 = 0; - _fx_LN14C_form__cexp_t v_654 = 0; - _fx_N14C_form__cexp_t v_655 = 0; - _fx_N15C_form__cstmt_t v_656 = 0; - _fx_LN15C_form__cstmt_t v_657 = 0; - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_5, 0, true, &v_653), _fx_catch_142); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_3, v_653, false, &v_653), _fx_catch_142); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_653, false, &v_653), _fx_catch_142); + _fx_LN14C_form__cexp_t v_633 = 0; + _fx_N14C_form__cexp_t v_634 = 0; + _fx_N15C_form__cstmt_t v_635 = 0; + _fx_LN15C_form__cstmt_t v_636 = 0; + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_5, 0, true, &v_632), _fx_catch_142); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_3, v_632, false, &v_632), _fx_catch_142); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_632, false, &v_632), _fx_catch_142); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g25C_form__std_FX_STR_CHKIDX, v_653, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_exp_0, 0), + &_fx_g25C_form__std_FX_STR_CHKIDX, v_632, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_exp_0, 0), _fx_catch_142); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_3, 0, true, &v_654), _fx_catch_142); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_654, false, &v_654), _fx_catch_142); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_3, 0, true, &v_633), _fx_catch_142); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_633, false, &v_633), _fx_catch_142); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_form__std_FX_STR_ELEM, v_654, _fx_g23C_gen_code__CTypUniChar, &kloc_0, &v_655, 0), + &_fx_g23C_form__std_FX_STR_ELEM, v_633, _fx_g23C_gen_code__CTypUniChar, &kloc_0, &v_634, 0), _fx_catch_142); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_exp_0, &v_656), _fx_catch_142); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_656, ccode_123, true, &v_657), _fx_catch_142); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_655, v_657, &v_652); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_exp_0, &v_635), _fx_catch_142); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_635, ccode_99, true, &v_636), _fx_catch_142); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_634, v_636, &v_631); _fx_catch_142: ; - if (v_657) { - _fx_free_LN15C_form__cstmt_t(&v_657); + if (v_636) { + _fx_free_LN15C_form__cstmt_t(&v_636); } - if (v_656) { - _fx_free_N15C_form__cstmt_t(&v_656); + if (v_635) { + _fx_free_N15C_form__cstmt_t(&v_635); } - if (v_655) { - _fx_free_N14C_form__cexp_t(&v_655); + if (v_634) { + _fx_free_N14C_form__cexp_t(&v_634); } - if (v_654) { - _fx_free_LN14C_form__cexp_t(&v_654); + if (v_633) { + _fx_free_LN14C_form__cexp_t(&v_633); } if (chk_exp_0) { _fx_free_N14C_form__cexp_t(&chk_exp_0); } - if (v_653) { - _fx_free_LN14C_form__cexp_t(&v_653); + if (v_632) { + _fx_free_LN14C_form__cexp_t(&v_632); } } else if (tag_19 == 2) { - _fx_LN14C_form__cexp_t v_658 = 0; - _fx_N14C_form__cexp_t v_659 = 0; - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_3, 0, true, &v_658), _fx_catch_143); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_658, false, &v_658), _fx_catch_143); + _fx_LN14C_form__cexp_t v_637 = 0; + _fx_N14C_form__cexp_t v_638 = 0; + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_3, 0, true, &v_637), _fx_catch_143); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_637, false, &v_637), _fx_catch_143); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g28C_form__std_FX_STR_ELEM_CLIP, v_658, _fx_g23C_gen_code__CTypUniChar, &kloc_0, &v_659, 0), + &_fx_g28C_form__std_FX_STR_ELEM_CLIP, v_637, _fx_g23C_gen_code__CTypUniChar, &kloc_0, &v_638, 0), _fx_catch_143); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_659, ccode_123, &v_652); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_638, ccode_99, &v_631); _fx_catch_143: ; - if (v_659) { - _fx_free_N14C_form__cexp_t(&v_659); + if (v_638) { + _fx_free_N14C_form__cexp_t(&v_638); } - if (v_658) { - _fx_free_LN14C_form__cexp_t(&v_658); + if (v_637) { + _fx_free_LN14C_form__cexp_t(&v_637); } } else if (tag_19 == 3) { - _fx_LN14C_form__cexp_t v_660 = 0; - _fx_N14C_form__cexp_t v_661 = 0; - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_3, 0, true, &v_660), _fx_catch_144); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_660, false, &v_660), _fx_catch_144); + _fx_LN14C_form__cexp_t v_639 = 0; + _fx_N14C_form__cexp_t v_640 = 0; + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_3, 0, true, &v_639), _fx_catch_144); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_639, false, &v_639), _fx_catch_144); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g28C_form__std_FX_STR_ELEM_WRAP, v_660, _fx_g23C_gen_code__CTypUniChar, &kloc_0, &v_661, 0), + &_fx_g28C_form__std_FX_STR_ELEM_WRAP, v_639, _fx_g23C_gen_code__CTypUniChar, &kloc_0, &v_640, 0), _fx_catch_144); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_661, ccode_123, &v_652); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_640, ccode_99, &v_631); _fx_catch_144: ; - if (v_661) { - _fx_free_N14C_form__cexp_t(&v_661); + if (v_640) { + _fx_free_N14C_form__cexp_t(&v_640); } - if (v_660) { - _fx_free_LN14C_form__cexp_t(&v_660); + if (v_639) { + _fx_free_LN14C_form__cexp_t(&v_639); } } else if (tag_19 == 4) { - _fx_LN14C_form__cexp_t v_662 = 0; - _fx_N14C_form__cexp_t v_663 = 0; - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_3, 0, true, &v_662), _fx_catch_145); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_662, false, &v_662), _fx_catch_145); + _fx_LN14C_form__cexp_t v_641 = 0; + _fx_N14C_form__cexp_t v_642 = 0; + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_3, 0, true, &v_641), _fx_catch_145); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_641, false, &v_641), _fx_catch_145); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g28C_form__std_FX_STR_ELEM_ZERO, v_662, _fx_g23C_gen_code__CTypUniChar, &kloc_0, &v_663, 0), + &_fx_g28C_form__std_FX_STR_ELEM_ZERO, v_641, _fx_g23C_gen_code__CTypUniChar, &kloc_0, &v_642, 0), _fx_catch_145); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_663, ccode_123, &v_652); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_642, ccode_99, &v_631); _fx_catch_145: ; - if (v_663) { - _fx_free_N14C_form__cexp_t(&v_663); + if (v_642) { + _fx_free_N14C_form__cexp_t(&v_642); } - if (v_662) { - _fx_free_LN14C_form__cexp_t(&v_662); + if (v_641) { + _fx_free_LN14C_form__cexp_t(&v_641); } } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_146); } FX_CHECK_EXN(_fx_catch_146); - FX_COPY_PTR(v_652.t0, &get_elem_exp_2); - FX_COPY_PTR(v_652.t1, &ccode_124); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_elem_exp_2, ccode_124, &v_1); + FX_COPY_PTR(v_631.t0, &get_elem_exp_2); + FX_COPY_PTR(v_631.t1, &ccode_100); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_elem_exp_2, ccode_100, &v_1); _fx_catch_146: ; - if (ccode_124) { - _fx_free_LN15C_form__cstmt_t(&ccode_124); + if (ccode_100) { + _fx_free_LN15C_form__cstmt_t(&ccode_100); } if (get_elem_exp_2) { _fx_free_N14C_form__cexp_t(&get_elem_exp_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_652); - if (ccode_123) { - _fx_free_LN15C_form__cstmt_t(&ccode_123); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_631); + if (ccode_99) { + _fx_free_LN15C_form__cstmt_t(&ccode_99); } if (i_exp_3) { _fx_free_N14C_form__cexp_t(&i_exp_3); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_651); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_630); goto _fx_endmatch_19; } } } if (idxs_1 != 0) { if (idxs_1->tl == 0) { - _fx_N13K_form__dom_t* v_664 = &idxs_1->hd; - if (v_664->tag == 3) { - fx_exn_t v_665 = {0}; - _fx_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t v_666 = {0}; + _fx_N13K_form__dom_t* v_643 = &idxs_1->hd; + if (v_643->tag == 3) { + fx_exn_t v_644 = {0}; + _fx_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t v_645 = {0}; _fx_N14C_form__cexp_t a_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_125 = 0; - _fx_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t v_667 = {0}; + _fx_LN15C_form__cstmt_t ccode_101 = 0; + _fx_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t v_646 = {0}; _fx_N14C_form__cexp_t b_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_126 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_668 = {0}; + _fx_LN15C_form__cstmt_t ccode_102 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_647 = {0}; _fx_N14C_form__cexp_t delta_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_127 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_669 = {0}; + _fx_LN15C_form__cstmt_t ccode_103 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_648 = {0}; _fx_N14C_form__cexp_t substr_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_128 = 0; - _fx_N14C_form__cexp_t v_670 = 0; - _fx_N14C_form__cexp_t v_671 = 0; - _fx_N14C_form__cexp_t v_672 = 0; - _fx_LN14C_form__cexp_t v_673 = 0; + _fx_LN15C_form__cstmt_t ccode_104 = 0; + _fx_N14C_form__cexp_t v_649 = 0; + _fx_N14C_form__cexp_t v_650 = 0; + _fx_N14C_form__cexp_t v_651 = 0; + _fx_LN14C_form__cexp_t v_652 = 0; _fx_N14C_form__cexp_t call_substr_0 = 0; - _fx_LN15C_form__cstmt_t v_674 = 0; - _fx_Ta3N14K_form__atom_t* vcase_13 = &v_664->u.DomainRange; + _fx_LN15C_form__cstmt_t v_653 = 0; + _fx_Ta3N14K_form__atom_t* vcase_13 = &v_643->u.DomainRange; _fx_N14K_form__atom_t* b_0 = &vcase_13->t1; _fx_N14K_form__atom_t* a_8 = &vcase_13->t0; if (border_0->tag != 1) { fx_str_t slit_149 = FX_MAKE_STR("cgen: border extrapolation with ranges is not supported yet"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_149, &v_665, 0), _fx_catch_151); - FX_THROW(&v_665, false, _fx_catch_151); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_149, &v_644, 0), _fx_catch_151); + FX_THROW(&v_644, false, _fx_catch_151); } if (a_8->tag == 2) { if (a_8->u.AtomLit.tag == 8) { - _fx_N14C_form__cexp_t v_675 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_676 = {0}; - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_675, 0), + _fx_N14C_form__cexp_t v_654 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_655 = {0}; + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_654, 0), _fx_catch_147); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_675, ccode_121, &v_676); - _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(1, &v_676, &v_666); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_654, ccode_97, &v_655); + _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(1, &v_655, &v_645); _fx_catch_147: ; - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_676); - if (v_675) { - _fx_free_N14C_form__cexp_t(&v_675); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_655); + if (v_654) { + _fx_free_N14C_form__cexp_t(&v_654); } goto _fx_endmatch_17; } } - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_677 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_656 = {0}; FX_CALL( - atom2cexp_0.fp(a_8, ccode_121, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_677, atom2cexp_0.fcv), _fx_catch_148); - _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(0, &v_677, &v_666); + atom2cexp_0.fp(a_8, ccode_97, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_656, atom2cexp_0.fcv), _fx_catch_148); + _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(0, &v_656, &v_645); _fx_catch_148: ; - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_677); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_656); _fx_endmatch_17: ; FX_CHECK_EXN(_fx_catch_151); - int_ mask_0 = v_666.t0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* v_678 = &v_666.t1; - FX_COPY_PTR(v_678->t0, &a_exp_1); - FX_COPY_PTR(v_678->t1, &ccode_125); + int_ mask_0 = v_645.t0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* v_657 = &v_645.t1; + FX_COPY_PTR(v_657->t0, &a_exp_1); + FX_COPY_PTR(v_657->t1, &ccode_101); if (b_0->tag == 2) { if (b_0->u.AtomLit.tag == 8) { - _fx_N14C_form__cexp_t v_679 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_680 = {0}; - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_679, 0), + _fx_N14C_form__cexp_t v_658 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_659 = {0}; + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_658, 0), _fx_catch_149); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_679, ccode_125, &v_680); - _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(2 + mask_0, &v_680, &v_667); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_658, ccode_101, &v_659); + _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(2 + mask_0, &v_659, &v_646); _fx_catch_149: ; - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_680); - if (v_679) { - _fx_free_N14C_form__cexp_t(&v_679); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_659); + if (v_658) { + _fx_free_N14C_form__cexp_t(&v_658); } goto _fx_endmatch_18; } } - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_681 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_660 = {0}; FX_CALL( - atom2cexp_0.fp(b_0, ccode_125, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_681, atom2cexp_0.fcv), _fx_catch_150); - _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(mask_0, &v_681, &v_667); + atom2cexp_0.fp(b_0, ccode_101, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_660, atom2cexp_0.fcv), _fx_catch_150); + _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(mask_0, &v_660, &v_646); _fx_catch_150: ; - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_681); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_660); _fx_endmatch_18: ; FX_CHECK_EXN(_fx_catch_151); - int_ mask_1 = v_667.t0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* v_682 = &v_667.t1; - FX_COPY_PTR(v_682->t0, &b_exp_1); - FX_COPY_PTR(v_682->t1, &ccode_126); + int_ mask_1 = v_646.t0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* v_661 = &v_646.t1; + FX_COPY_PTR(v_661->t0, &b_exp_1); + FX_COPY_PTR(v_661->t1, &ccode_102); FX_CALL( - atom2cexp_0.fp(&vcase_13->t2, ccode_126, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_668, atom2cexp_0.fcv), _fx_catch_151); - FX_COPY_PTR(v_668.t0, &delta_exp_1); - FX_COPY_PTR(v_668.t1, &ccode_127); + atom2cexp_0.fp(&vcase_13->t2, ccode_102, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, + i2e_ref_0, km_idx_0, &v_647, atom2cexp_0.fcv), _fx_catch_151); + FX_COPY_PTR(v_647.t0, &delta_exp_1); + FX_COPY_PTR(v_647.t1, &ccode_103); fx_str_t slit_150 = FX_MAKE_STR("substr"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_150, ctyp_0, ccode_127, &kloc_0, block_stack_ref_0, km_idx_0, &v_669, 0), + dstexp_r_0, &slit_150, ctyp_0, ccode_103, &kloc_0, block_stack_ref_0, km_idx_0, &v_648, 0), _fx_catch_151); - FX_COPY_PTR(v_669.t0, &substr_exp_0); - FX_COPY_PTR(v_669.t1, &ccode_128); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_5, &v_670, 0), + FX_COPY_PTR(v_648.t0, &substr_exp_0); + FX_COPY_PTR(v_648.t1, &ccode_104); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_5, &v_649, 0), _fx_catch_151); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(mask_1, &kloc_0, &v_671, 0), + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(mask_1, &kloc_0, &v_650, 0), _fx_catch_151); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(substr_exp_0, &v_672, 0), + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(substr_exp_0, &v_651, 0), _fx_catch_151); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_672, 0, true, &v_673), _fx_catch_151); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_671, v_673, false, &v_673), _fx_catch_151); - FX_CALL(_fx_cons_LN14C_form__cexp_t(delta_exp_1, v_673, false, &v_673), _fx_catch_151); - FX_CALL(_fx_cons_LN14C_form__cexp_t(b_exp_1, v_673, false, &v_673), _fx_catch_151); - FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_1, v_673, false, &v_673), _fx_catch_151); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_670, v_673, false, &v_673), _fx_catch_151); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_651, 0, true, &v_652), _fx_catch_151); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_650, v_652, false, &v_652), _fx_catch_151); + FX_CALL(_fx_cons_LN14C_form__cexp_t(delta_exp_1, v_652, false, &v_652), _fx_catch_151); + FX_CALL(_fx_cons_LN14C_form__cexp_t(b_exp_1, v_652, false, &v_652), _fx_catch_151); + FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_1, v_652, false, &v_652), _fx_catch_151); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_649, v_652, false, &v_652), _fx_catch_151); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g21C_form__std_fx_substr, v_673, _fx_g22C_gen_code__CTypString, &kloc_0, &call_substr_0, 0), + &_fx_g21C_form__std_fx_substr, v_652, _fx_g22C_gen_code__CTypString, &kloc_0, &call_substr_0, 0), _fx_catch_151); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - call_substr_0, ccode_128, &kloc_0, block_stack_ref_0, &v_674, 0), _fx_catch_151); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, substr_exp_0, v_674, &v_1); + call_substr_0, ccode_104, &kloc_0, block_stack_ref_0, &v_653, 0), _fx_catch_151); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, substr_exp_0, v_653, &v_1); _fx_catch_151: ; - if (v_674) { - _fx_free_LN15C_form__cstmt_t(&v_674); + if (v_653) { + _fx_free_LN15C_form__cstmt_t(&v_653); } if (call_substr_0) { _fx_free_N14C_form__cexp_t(&call_substr_0); } - if (v_673) { - _fx_free_LN14C_form__cexp_t(&v_673); + if (v_652) { + _fx_free_LN14C_form__cexp_t(&v_652); } - if (v_672) { - _fx_free_N14C_form__cexp_t(&v_672); + if (v_651) { + _fx_free_N14C_form__cexp_t(&v_651); } - if (v_671) { - _fx_free_N14C_form__cexp_t(&v_671); + if (v_650) { + _fx_free_N14C_form__cexp_t(&v_650); } - if (v_670) { - _fx_free_N14C_form__cexp_t(&v_670); + if (v_649) { + _fx_free_N14C_form__cexp_t(&v_649); } - if (ccode_128) { - _fx_free_LN15C_form__cstmt_t(&ccode_128); + if (ccode_104) { + _fx_free_LN15C_form__cstmt_t(&ccode_104); } if (substr_exp_0) { _fx_free_N14C_form__cexp_t(&substr_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_669); - if (ccode_127) { - _fx_free_LN15C_form__cstmt_t(&ccode_127); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_648); + if (ccode_103) { + _fx_free_LN15C_form__cstmt_t(&ccode_103); } if (delta_exp_1) { _fx_free_N14C_form__cexp_t(&delta_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_668); - if (ccode_126) { - _fx_free_LN15C_form__cstmt_t(&ccode_126); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_647); + if (ccode_102) { + _fx_free_LN15C_form__cstmt_t(&ccode_102); } if (b_exp_1) { _fx_free_N14C_form__cexp_t(&b_exp_1); } - _fx_free_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(&v_667); - if (ccode_125) { - _fx_free_LN15C_form__cstmt_t(&ccode_125); + _fx_free_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(&v_646); + if (ccode_101) { + _fx_free_LN15C_form__cstmt_t(&ccode_101); } if (a_exp_1) { _fx_free_N14C_form__cexp_t(&a_exp_1); } - _fx_free_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(&v_666); - fx_free_exn(&v_665); + _fx_free_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(&v_645); + fx_free_exn(&v_644); goto _fx_endmatch_19; } } } - fx_exn_t v_683 = {0}; + fx_exn_t v_662 = {0}; fx_str_t slit_151 = FX_MAKE_STR("cgen: unexpected index type when accessing string (should be a single scalar index or range)"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_151, &v_683, 0), _fx_catch_152); - FX_THROW(&v_683, false, _fx_catch_152); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_151, &v_662, 0), _fx_catch_152); + FX_THROW(&v_662, false, _fx_catch_152); _fx_catch_152: ; - fx_free_exn(&v_683); + fx_free_exn(&v_662); _fx_endmatch_19: ; FX_CHECK_EXN(_fx_catch_153); @@ -28509,328 +27823,328 @@ static int else if (tag_18 == 20) { if (idxs_1 != 0) { if (idxs_1->tl == 0) { - _fx_N13K_form__dom_t* v_684 = &idxs_1->hd; - if (v_684->tag == 2) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_685 = {0}; + _fx_N13K_form__dom_t* v_663 = &idxs_1->hd; + if (v_663->tag == 2) { + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_664 = {0}; _fx_N14C_form__cexp_t i_exp_4 = 0; - _fx_LN15C_form__cstmt_t ccode_129 = 0; - _fx_N14C_form__cexp_t v_686 = 0; - _fx_LN14C_form__cexp_t v_687 = 0; + _fx_LN15C_form__cstmt_t ccode_105 = 0; + _fx_N14C_form__cexp_t v_665 = 0; + _fx_LN14C_form__cexp_t v_666 = 0; _fx_N14C_form__cexp_t get_elem_exp_3 = 0; FX_CALL( - atom2cexp_0.fp(&v_684->u.DomainFast, ccode_121, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_685, atom2cexp_0.fcv), _fx_catch_154); - FX_COPY_PTR(v_685.t0, &i_exp_4); - FX_COPY_PTR(v_685.t1, &ccode_129); - _fx_R9Ast__id_t v_688; + atom2cexp_0.fp(&v_663->u.DomainFast, ccode_97, &kloc_0, block_stack_ref_0, defined_syms_ref_0, + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_664, atom2cexp_0.fcv), _fx_catch_154); + FX_COPY_PTR(v_664.t0, &i_exp_4); + FX_COPY_PTR(v_664.t1, &ccode_105); + _fx_R9Ast__id_t v_667; fx_str_t slit_152 = FX_MAKE_STR("FX_RRB_ELEM"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_152, &v_688, 0), _fx_catch_154); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_686), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_152, &v_667, 0), _fx_catch_154); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_665), _fx_catch_154); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_4, 0, true, &v_687), _fx_catch_154); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_687, false, &v_687), _fx_catch_154); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_686, v_687, false, &v_687), _fx_catch_154); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_4, 0, true, &v_666), _fx_catch_154); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_666, false, &v_666), _fx_catch_154); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_665, v_666, false, &v_666), _fx_catch_154); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_688, v_687, ctyp_0, &kloc_0, &get_elem_exp_3, 0), _fx_catch_154); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_elem_exp_3, ccode_129, &v_1); + &v_667, v_666, ctyp_0, &kloc_0, &get_elem_exp_3, 0), _fx_catch_154); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_elem_exp_3, ccode_105, &v_1); _fx_catch_154: ; if (get_elem_exp_3) { _fx_free_N14C_form__cexp_t(&get_elem_exp_3); } - if (v_687) { - _fx_free_LN14C_form__cexp_t(&v_687); + if (v_666) { + _fx_free_LN14C_form__cexp_t(&v_666); } - if (v_686) { - _fx_free_N14C_form__cexp_t(&v_686); + if (v_665) { + _fx_free_N14C_form__cexp_t(&v_665); } - if (ccode_129) { - _fx_free_LN15C_form__cstmt_t(&ccode_129); + if (ccode_105) { + _fx_free_LN15C_form__cstmt_t(&ccode_105); } if (i_exp_4) { _fx_free_N14C_form__cexp_t(&i_exp_4); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_685); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_664); goto _fx_endmatch_24; } } } if (idxs_1 != 0) { if (idxs_1->tl == 0) { - _fx_N13K_form__dom_t* v_689 = &idxs_1->hd; - if (v_689->tag == 1) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_690 = {0}; + _fx_N13K_form__dom_t* v_668 = &idxs_1->hd; + if (v_668->tag == 1) { + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_669 = {0}; _fx_N14C_form__cexp_t i_exp_5 = 0; - _fx_LN15C_form__cstmt_t ccode_130 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_691 = {0}; + _fx_LN15C_form__cstmt_t ccode_106 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_670 = {0}; _fx_N14C_form__cexp_t get_elem_exp_4 = 0; - _fx_LN15C_form__cstmt_t ccode_131 = 0; - FX_CALL(atom2cexp__0.fp(&v_689->u.DomainElem, true, ccode_121, &kloc_0, &v_690, atom2cexp__0.fcv), + _fx_LN15C_form__cstmt_t ccode_107 = 0; + FX_CALL(atom2cexp__0.fp(&v_668->u.DomainElem, true, ccode_97, &kloc_0, &v_669, atom2cexp__0.fcv), _fx_catch_159); - FX_COPY_PTR(v_690.t0, &i_exp_5); - FX_COPY_PTR(v_690.t1, &ccode_130); + FX_COPY_PTR(v_669.t0, &i_exp_5); + FX_COPY_PTR(v_669.t1, &ccode_106); int tag_20 = border_0->tag; if (tag_20 == 1) { - _fx_LN14C_form__cexp_t v_692 = 0; + _fx_LN14C_form__cexp_t v_671 = 0; _fx_N14C_form__cexp_t chk_exp_1 = 0; - _fx_N14C_form__cexp_t v_693 = 0; - _fx_LN14C_form__cexp_t v_694 = 0; + _fx_N14C_form__cexp_t v_672 = 0; + _fx_LN14C_form__cexp_t v_673 = 0; _fx_N14C_form__cexp_t get_elem_exp_5 = 0; - _fx_N15C_form__cstmt_t v_695 = 0; - _fx_LN15C_form__cstmt_t v_696 = 0; - _fx_R9Ast__id_t v_697; + _fx_N15C_form__cstmt_t v_674 = 0; + _fx_LN15C_form__cstmt_t v_675 = 0; + _fx_R9Ast__id_t v_676; fx_str_t slit_153 = FX_MAKE_STR("FX_RRB_CHKIDX"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_153, &v_697, 0), _fx_catch_155); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_5, 0, true, &v_692), _fx_catch_155); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, v_692, false, &v_692), _fx_catch_155); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_692, false, &v_692), _fx_catch_155); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_153, &v_676, 0), _fx_catch_155); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_5, 0, true, &v_671), _fx_catch_155); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, v_671, false, &v_671), _fx_catch_155); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_671, false, &v_671), _fx_catch_155); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_697, v_692, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_exp_1, 0), _fx_catch_155); - _fx_R9Ast__id_t v_698; + &v_676, v_671, _fx_g20C_gen_code__CTypVoid, &kloc_0, &chk_exp_1, 0), _fx_catch_155); + _fx_R9Ast__id_t v_677; fx_str_t slit_154 = FX_MAKE_STR("FX_RRB_ELEM"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_154, &v_698, 0), _fx_catch_155); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_693), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_154, &v_677, 0), _fx_catch_155); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_672), _fx_catch_155); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, 0, true, &v_694), _fx_catch_155); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_694, false, &v_694), _fx_catch_155); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_693, v_694, false, &v_694), _fx_catch_155); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, 0, true, &v_673), _fx_catch_155); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_673, false, &v_673), _fx_catch_155); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_672, v_673, false, &v_673), _fx_catch_155); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_698, v_694, ctyp_0, &kloc_0, &get_elem_exp_5, 0), _fx_catch_155); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_exp_1, &v_695), _fx_catch_155); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_695, ccode_130, true, &v_696), _fx_catch_155); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(get_elem_exp_5, v_696, &v_691); + &v_677, v_673, ctyp_0, &kloc_0, &get_elem_exp_5, 0), _fx_catch_155); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(chk_exp_1, &v_674), _fx_catch_155); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_674, ccode_106, true, &v_675), _fx_catch_155); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(get_elem_exp_5, v_675, &v_670); _fx_catch_155: ; - if (v_696) { - _fx_free_LN15C_form__cstmt_t(&v_696); + if (v_675) { + _fx_free_LN15C_form__cstmt_t(&v_675); } - if (v_695) { - _fx_free_N15C_form__cstmt_t(&v_695); + if (v_674) { + _fx_free_N15C_form__cstmt_t(&v_674); } if (get_elem_exp_5) { _fx_free_N14C_form__cexp_t(&get_elem_exp_5); } - if (v_694) { - _fx_free_LN14C_form__cexp_t(&v_694); + if (v_673) { + _fx_free_LN14C_form__cexp_t(&v_673); } - if (v_693) { - _fx_free_N14C_form__cexp_t(&v_693); + if (v_672) { + _fx_free_N14C_form__cexp_t(&v_672); } if (chk_exp_1) { _fx_free_N14C_form__cexp_t(&chk_exp_1); } - if (v_692) { - _fx_free_LN14C_form__cexp_t(&v_692); + if (v_671) { + _fx_free_LN14C_form__cexp_t(&v_671); } } else if (tag_20 == 2) { - _fx_N14C_form__cexp_t v_699 = 0; - _fx_LN14C_form__cexp_t v_700 = 0; + _fx_N14C_form__cexp_t v_678 = 0; + _fx_LN14C_form__cexp_t v_679 = 0; _fx_N14C_form__cexp_t get_elem_exp_6 = 0; - _fx_R9Ast__id_t v_701; + _fx_R9Ast__id_t v_680; fx_str_t slit_155 = FX_MAKE_STR("FX_RRB_ELEM_CLIP"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_155, &v_701, 0), _fx_catch_156); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_699), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_155, &v_680, 0), _fx_catch_156); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_678), _fx_catch_156); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, 0, true, &v_700), _fx_catch_156); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_700, false, &v_700), _fx_catch_156); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_699, v_700, false, &v_700), _fx_catch_156); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, 0, true, &v_679), _fx_catch_156); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_679, false, &v_679), _fx_catch_156); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_678, v_679, false, &v_679), _fx_catch_156); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_701, v_700, ctyp_0, &kloc_0, &get_elem_exp_6, 0), _fx_catch_156); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(get_elem_exp_6, ccode_130, &v_691); + &v_680, v_679, ctyp_0, &kloc_0, &get_elem_exp_6, 0), _fx_catch_156); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(get_elem_exp_6, ccode_106, &v_670); _fx_catch_156: ; if (get_elem_exp_6) { _fx_free_N14C_form__cexp_t(&get_elem_exp_6); } - if (v_700) { - _fx_free_LN14C_form__cexp_t(&v_700); + if (v_679) { + _fx_free_LN14C_form__cexp_t(&v_679); } - if (v_699) { - _fx_free_N14C_form__cexp_t(&v_699); + if (v_678) { + _fx_free_N14C_form__cexp_t(&v_678); } } else if (tag_20 == 3) { - _fx_N14C_form__cexp_t v_702 = 0; - _fx_LN14C_form__cexp_t v_703 = 0; + _fx_N14C_form__cexp_t v_681 = 0; + _fx_LN14C_form__cexp_t v_682 = 0; _fx_N14C_form__cexp_t get_elem_exp_7 = 0; - _fx_R9Ast__id_t v_704; + _fx_R9Ast__id_t v_683; fx_str_t slit_156 = FX_MAKE_STR("FX_RRB_ELEM_WRAP"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_156, &v_704, 0), _fx_catch_157); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_702), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_156, &v_683, 0), _fx_catch_157); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_681), _fx_catch_157); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, 0, true, &v_703), _fx_catch_157); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_703, false, &v_703), _fx_catch_157); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_702, v_703, false, &v_703), _fx_catch_157); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, 0, true, &v_682), _fx_catch_157); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_682, false, &v_682), _fx_catch_157); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_681, v_682, false, &v_682), _fx_catch_157); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_704, v_703, ctyp_0, &kloc_0, &get_elem_exp_7, 0), _fx_catch_157); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(get_elem_exp_7, ccode_130, &v_691); + &v_683, v_682, ctyp_0, &kloc_0, &get_elem_exp_7, 0), _fx_catch_157); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(get_elem_exp_7, ccode_106, &v_670); _fx_catch_157: ; if (get_elem_exp_7) { _fx_free_N14C_form__cexp_t(&get_elem_exp_7); } - if (v_703) { - _fx_free_LN14C_form__cexp_t(&v_703); + if (v_682) { + _fx_free_LN14C_form__cexp_t(&v_682); } - if (v_702) { - _fx_free_N14C_form__cexp_t(&v_702); + if (v_681) { + _fx_free_N14C_form__cexp_t(&v_681); } } else if (tag_20 == 4) { - _fx_N14C_form__cexp_t v_705 = 0; - _fx_LN14C_form__cexp_t v_706 = 0; + _fx_N14C_form__cexp_t v_684 = 0; + _fx_LN14C_form__cexp_t v_685 = 0; _fx_N14C_form__cexp_t get_elem_exp_8 = 0; - _fx_R9Ast__id_t v_707; + _fx_R9Ast__id_t v_686; fx_str_t slit_157 = FX_MAKE_STR("FX_RRB_ELEM_ZERO"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_157, &v_707, 0), _fx_catch_158); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_705), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_157, &v_686, 0), _fx_catch_158); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_684), _fx_catch_158); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, 0, true, &v_706), _fx_catch_158); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_706, false, &v_706), _fx_catch_158); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_705, v_706, false, &v_706), _fx_catch_158); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_5, 0, true, &v_685), _fx_catch_158); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_685, false, &v_685), _fx_catch_158); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_684, v_685, false, &v_685), _fx_catch_158); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_707, v_706, ctyp_0, &kloc_0, &get_elem_exp_8, 0), _fx_catch_158); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(get_elem_exp_8, ccode_130, &v_691); + &v_686, v_685, ctyp_0, &kloc_0, &get_elem_exp_8, 0), _fx_catch_158); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(get_elem_exp_8, ccode_106, &v_670); _fx_catch_158: ; if (get_elem_exp_8) { _fx_free_N14C_form__cexp_t(&get_elem_exp_8); } - if (v_706) { - _fx_free_LN14C_form__cexp_t(&v_706); + if (v_685) { + _fx_free_LN14C_form__cexp_t(&v_685); } - if (v_705) { - _fx_free_N14C_form__cexp_t(&v_705); + if (v_684) { + _fx_free_N14C_form__cexp_t(&v_684); } } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_159); } FX_CHECK_EXN(_fx_catch_159); - FX_COPY_PTR(v_691.t0, &get_elem_exp_4); - FX_COPY_PTR(v_691.t1, &ccode_131); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_elem_exp_4, ccode_131, &v_1); + FX_COPY_PTR(v_670.t0, &get_elem_exp_4); + FX_COPY_PTR(v_670.t1, &ccode_107); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, get_elem_exp_4, ccode_107, &v_1); _fx_catch_159: ; - if (ccode_131) { - _fx_free_LN15C_form__cstmt_t(&ccode_131); + if (ccode_107) { + _fx_free_LN15C_form__cstmt_t(&ccode_107); } if (get_elem_exp_4) { _fx_free_N14C_form__cexp_t(&get_elem_exp_4); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_691); - if (ccode_130) { - _fx_free_LN15C_form__cstmt_t(&ccode_130); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_670); + if (ccode_106) { + _fx_free_LN15C_form__cstmt_t(&ccode_106); } if (i_exp_5) { _fx_free_N14C_form__cexp_t(&i_exp_5); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_690); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_669); goto _fx_endmatch_24; } } } if (idxs_1 != 0) { if (idxs_1->tl == 0) { - _fx_N13K_form__dom_t* v_708 = &idxs_1->hd; - if (v_708->tag == 3) { - fx_exn_t v_709 = {0}; - _fx_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t v_710 = {0}; + _fx_N13K_form__dom_t* v_687 = &idxs_1->hd; + if (v_687->tag == 3) { + fx_exn_t v_688 = {0}; + _fx_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t v_689 = {0}; _fx_N14C_form__cexp_t a_exp_2 = 0; - _fx_LN15C_form__cstmt_t ccode_132 = 0; - _fx_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t v_711 = {0}; + _fx_LN15C_form__cstmt_t ccode_108 = 0; + _fx_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t v_690 = {0}; _fx_N14C_form__cexp_t b_exp_2 = 0; - _fx_LN15C_form__cstmt_t ccode_133 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_712 = {0}; + _fx_LN15C_form__cstmt_t ccode_109 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_691 = {0}; _fx_N14C_form__cexp_t slice_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_134 = 0; - _fx_N14C_form__cexp_t v_713 = 0; - _fx_N14C_form__cexp_t v_714 = 0; - _fx_N14C_form__cexp_t v_715 = 0; - _fx_N14C_form__cexp_t v_716 = 0; - _fx_LN14C_form__cexp_t v_717 = 0; + _fx_LN15C_form__cstmt_t ccode_110 = 0; + _fx_N14C_form__cexp_t v_692 = 0; + _fx_N14C_form__cexp_t v_693 = 0; + _fx_N14C_form__cexp_t v_694 = 0; + _fx_N14C_form__cexp_t v_695 = 0; + _fx_LN14C_form__cexp_t v_696 = 0; _fx_N14C_form__cexp_t call_slice_0 = 0; - _fx_LN15C_form__cstmt_t v_718 = 0; - _fx_Ta3N14K_form__atom_t* vcase_14 = &v_708->u.DomainRange; + _fx_LN15C_form__cstmt_t v_697 = 0; + _fx_Ta3N14K_form__atom_t* vcase_14 = &v_687->u.DomainRange; _fx_N14K_form__atom_t* delta_0 = &vcase_14->t2; _fx_N14K_form__atom_t* b_1 = &vcase_14->t1; _fx_N14K_form__atom_t* a_9 = &vcase_14->t0; if (border_0->tag != 1) { fx_str_t slit_158 = FX_MAKE_STR("cgen: border extrapolation with ranges is not supported yet"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_158, &v_709, 0), _fx_catch_165); - FX_THROW(&v_709, false, _fx_catch_165); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_158, &v_688, 0), _fx_catch_165); + FX_THROW(&v_688, false, _fx_catch_165); } if (a_9->tag == 2) { if (a_9->u.AtomLit.tag == 8) { - _fx_N14C_form__cexp_t v_719 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_720 = {0}; - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_719, 0), + _fx_N14C_form__cexp_t v_698 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_699 = {0}; + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_698, 0), _fx_catch_160); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_719, ccode_121, &v_720); - _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(1, &v_720, &v_710); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_698, ccode_97, &v_699); + _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(1, &v_699, &v_689); _fx_catch_160: ; - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_720); - if (v_719) { - _fx_free_N14C_form__cexp_t(&v_719); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_699); + if (v_698) { + _fx_free_N14C_form__cexp_t(&v_698); } goto _fx_endmatch_20; } } - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_721 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_700 = {0}; FX_CALL( - atom2cexp_0.fp(a_9, ccode_121, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_721, atom2cexp_0.fcv), _fx_catch_161); - _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(0, &v_721, &v_710); + atom2cexp_0.fp(a_9, ccode_97, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_700, atom2cexp_0.fcv), _fx_catch_161); + _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(0, &v_700, &v_689); _fx_catch_161: ; - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_721); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_700); _fx_endmatch_20: ; FX_CHECK_EXN(_fx_catch_165); - int_ mask_2 = v_710.t0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* v_722 = &v_710.t1; - FX_COPY_PTR(v_722->t0, &a_exp_2); - FX_COPY_PTR(v_722->t1, &ccode_132); + int_ mask_2 = v_689.t0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* v_701 = &v_689.t1; + FX_COPY_PTR(v_701->t0, &a_exp_2); + FX_COPY_PTR(v_701->t1, &ccode_108); if (b_1->tag == 2) { if (b_1->u.AtomLit.tag == 8) { - _fx_N14C_form__cexp_t v_723 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_724 = {0}; - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_723, 0), + _fx_N14C_form__cexp_t v_702 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_703 = {0}; + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_702, 0), _fx_catch_162); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_723, ccode_132, &v_724); - _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(2 + mask_2, &v_724, &v_711); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_702, ccode_108, &v_703); + _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(2 + mask_2, &v_703, &v_690); _fx_catch_162: ; - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_724); - if (v_723) { - _fx_free_N14C_form__cexp_t(&v_723); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_703); + if (v_702) { + _fx_free_N14C_form__cexp_t(&v_702); } goto _fx_endmatch_21; } } - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_725 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_704 = {0}; FX_CALL( - atom2cexp_0.fp(b_1, ccode_132, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_725, atom2cexp_0.fcv), _fx_catch_163); - _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(mask_2, &v_725, &v_711); + atom2cexp_0.fp(b_1, ccode_108, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_704, atom2cexp_0.fcv), _fx_catch_163); + _fx_make_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(mask_2, &v_704, &v_690); _fx_catch_163: ; - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_725); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_704); _fx_endmatch_21: ; FX_CHECK_EXN(_fx_catch_165); - int_ mask_3 = v_711.t0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* v_726 = &v_711.t1; - FX_COPY_PTR(v_726->t0, &b_exp_2); - FX_COPY_PTR(v_726->t1, &ccode_133); + int_ mask_3 = v_690.t0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* v_705 = &v_690.t1; + FX_COPY_PTR(v_705->t0, &b_exp_2); + FX_COPY_PTR(v_705->t1, &ccode_109); int tag_21 = delta_0->tag; int_ delta_1; bool res_18; @@ -28840,9 +28154,9 @@ static int } } if (tag_21 == 2) { - _fx_N14K_form__klit_t* v_727 = &delta_0->u.AtomLit; - if (v_727->tag == 1) { - if (v_727->u.KLitInt == 1LL) { + _fx_N14K_form__klit_t* v_706 = &delta_0->u.AtomLit; + if (v_706->tag == 1) { + if (v_706->u.KLitInt == 1LL) { res_18 = true; goto _fx_endmatch_22; } } @@ -28855,111 +28169,111 @@ static int delta_1 = 1; goto _fx_endmatch_23; } if (tag_21 == 2) { - _fx_N14K_form__klit_t* v_728 = &delta_0->u.AtomLit; - if (v_728->tag == 1) { - if (v_728->u.KLitInt == -1LL) { + _fx_N14K_form__klit_t* v_707 = &delta_0->u.AtomLit; + if (v_707->tag == 1) { + if (v_707->u.KLitInt == -1LL) { delta_1 = -1; goto _fx_endmatch_23; } } } - fx_exn_t v_729 = {0}; + fx_exn_t v_708 = {0}; fx_str_t slit_159 = FX_MAKE_STR("cgen: vector slicing only supports stride == ±1"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_159, &v_729, 0), _fx_catch_164); - FX_THROW(&v_729, false, _fx_catch_164); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_159, &v_708, 0), _fx_catch_164); + FX_THROW(&v_708, false, _fx_catch_164); _fx_catch_164: ; - fx_free_exn(&v_729); + fx_free_exn(&v_708); _fx_endmatch_23: ; FX_CHECK_EXN(_fx_catch_165); fx_str_t slit_160 = FX_MAKE_STR("slice"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_160, ctyp_0, ccode_133, &kloc_0, block_stack_ref_0, km_idx_0, &v_712, 0), + dstexp_r_0, &slit_160, ctyp_0, ccode_109, &kloc_0, block_stack_ref_0, km_idx_0, &v_691, 0), _fx_catch_165); - FX_COPY_PTR(v_712.t0, &slice_exp_0); - FX_COPY_PTR(v_712.t1, &ccode_134); - _fx_R9Ast__id_t v_730; + FX_COPY_PTR(v_691.t0, &slice_exp_0); + FX_COPY_PTR(v_691.t1, &ccode_110); + _fx_R9Ast__id_t v_709; fx_str_t slit_161 = FX_MAKE_STR("fx_rrb_slice"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_161, &v_730, 0), _fx_catch_165); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_5, &v_713, 0), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_161, &v_709, 0), _fx_catch_165); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_5, &v_692, 0), _fx_catch_165); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(delta_1, &kloc_0, &v_714, 0), + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(delta_1, &kloc_0, &v_693, 0), _fx_catch_165); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(mask_3, &kloc_0, &v_715, 0), + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(mask_3, &kloc_0, &v_694, 0), _fx_catch_165); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(slice_exp_0, &v_716, 0), + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(slice_exp_0, &v_695, 0), _fx_catch_165); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_716, 0, true, &v_717), _fx_catch_165); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_715, v_717, false, &v_717), _fx_catch_165); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_714, v_717, false, &v_717), _fx_catch_165); - FX_CALL(_fx_cons_LN14C_form__cexp_t(b_exp_2, v_717, false, &v_717), _fx_catch_165); - FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_2, v_717, false, &v_717), _fx_catch_165); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_713, v_717, false, &v_717), _fx_catch_165); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_695, 0, true, &v_696), _fx_catch_165); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_694, v_696, false, &v_696), _fx_catch_165); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_693, v_696, false, &v_696), _fx_catch_165); + FX_CALL(_fx_cons_LN14C_form__cexp_t(b_exp_2, v_696, false, &v_696), _fx_catch_165); + FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_2, v_696, false, &v_696), _fx_catch_165); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_692, v_696, false, &v_696), _fx_catch_165); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_730, v_717, ctyp_0, &kloc_0, &call_slice_0, 0), _fx_catch_165); + &v_709, v_696, ctyp_0, &kloc_0, &call_slice_0, 0), _fx_catch_165); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - call_slice_0, ccode_134, &kloc_0, block_stack_ref_0, &v_718, 0), _fx_catch_165); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, slice_exp_0, v_718, &v_1); + call_slice_0, ccode_110, &kloc_0, block_stack_ref_0, &v_697, 0), _fx_catch_165); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, slice_exp_0, v_697, &v_1); _fx_catch_165: ; - if (v_718) { - _fx_free_LN15C_form__cstmt_t(&v_718); + if (v_697) { + _fx_free_LN15C_form__cstmt_t(&v_697); } if (call_slice_0) { _fx_free_N14C_form__cexp_t(&call_slice_0); } - if (v_717) { - _fx_free_LN14C_form__cexp_t(&v_717); + if (v_696) { + _fx_free_LN14C_form__cexp_t(&v_696); } - if (v_716) { - _fx_free_N14C_form__cexp_t(&v_716); + if (v_695) { + _fx_free_N14C_form__cexp_t(&v_695); } - if (v_715) { - _fx_free_N14C_form__cexp_t(&v_715); + if (v_694) { + _fx_free_N14C_form__cexp_t(&v_694); } - if (v_714) { - _fx_free_N14C_form__cexp_t(&v_714); + if (v_693) { + _fx_free_N14C_form__cexp_t(&v_693); } - if (v_713) { - _fx_free_N14C_form__cexp_t(&v_713); + if (v_692) { + _fx_free_N14C_form__cexp_t(&v_692); } - if (ccode_134) { - _fx_free_LN15C_form__cstmt_t(&ccode_134); + if (ccode_110) { + _fx_free_LN15C_form__cstmt_t(&ccode_110); } if (slice_exp_0) { _fx_free_N14C_form__cexp_t(&slice_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_712); - if (ccode_133) { - _fx_free_LN15C_form__cstmt_t(&ccode_133); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_691); + if (ccode_109) { + _fx_free_LN15C_form__cstmt_t(&ccode_109); } if (b_exp_2) { _fx_free_N14C_form__cexp_t(&b_exp_2); } - _fx_free_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(&v_711); - if (ccode_132) { - _fx_free_LN15C_form__cstmt_t(&ccode_132); + _fx_free_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(&v_690); + if (ccode_108) { + _fx_free_LN15C_form__cstmt_t(&ccode_108); } if (a_exp_2) { _fx_free_N14C_form__cexp_t(&a_exp_2); } - _fx_free_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(&v_710); - fx_free_exn(&v_709); + _fx_free_T2iT2N14C_form__cexp_tLN15C_form__cstmt_t(&v_689); + fx_free_exn(&v_688); goto _fx_endmatch_24; } } } - fx_exn_t v_731 = {0}; + fx_exn_t v_710 = {0}; fx_str_t slit_162 = FX_MAKE_STR("cgen: unexpected index type when accessing vector (should be a single scalar index or range)"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_162, &v_731, 0), _fx_catch_166); - FX_THROW(&v_731, false, _fx_catch_166); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_162, &v_710, 0), _fx_catch_166); + FX_THROW(&v_710, false, _fx_catch_166); _fx_catch_166: ; - fx_free_exn(&v_731); + fx_free_exn(&v_710); _fx_endmatch_24: ; FX_CHECK_EXN(_fx_catch_167); @@ -28968,54 +28282,51 @@ static int } else if (tag_18 == 19) { _fx_LN13K_form__dom_t idxs_2 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_732 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_711 = {0}; _fx_N14C_form__cexp_t subarr_exp_0 = 0; - _fx_N14C_form__cexp_t v_733 = 0; - _fx_N14C_form__cexp_t v_734 = 0; - _fx_LN14C_form__cexp_t v_735 = 0; + _fx_N14C_form__cexp_t v_712 = 0; + _fx_N14C_form__cexp_t v_713 = 0; + _fx_LN14C_form__cexp_t v_714 = 0; _fx_N14C_form__cexp_t call_flatten_0 = 0; - _fx_LN15C_form__cstmt_t v_736 = 0; - fx_exn_t v_737 = {0}; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___16 = {0}; - _fx_LN13K_form__dom_t idxs_3 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_738 = {0}; + _fx_LN15C_form__cstmt_t v_715 = 0; + fx_exn_t v_716 = {0}; _fx_LN14C_form__cexp_t range_data_0 = 0; - _fx_LN15C_form__cstmt_t ccode_135 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_739 = {0}; + _fx_LN15C_form__cstmt_t ccode_111 = 0; + _fx_LN13K_form__dom_t idxs_3 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_717 = {0}; _fx_N14C_form__cexp_t subarr_exp_1 = 0; - _fx_LN15C_form__cstmt_t ccode_136 = 0; - _fx_LN19C_form__ctyp_attr_t v_740 = 0; + _fx_LN15C_form__cstmt_t ccode_112 = 0; + _fx_LN19C_form__ctyp_attr_t v_718 = 0; _fx_N14C_form__ctyp_t rdata_ctyp_0 = 0; - _fx_LN14C_form__cexp_t v_741 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_742 = {0}; + _fx_LN14C_form__cexp_t v_719 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_720 = {0}; _fx_N14C_form__cexp_t rdata_arr_0 = 0; - _fx_R16Ast__val_flags_t v_743 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_744 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_745 = {0}; + _fx_R16Ast__val_flags_t v_721 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_722 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_723 = {0}; _fx_N14C_form__cexp_t rdata_exp_0 = 0; _fx_LN15C_form__cstmt_t sub_ccode_10 = 0; - _fx_N14C_form__cexp_t v_746 = 0; - _fx_N14C_form__cexp_t v_747 = 0; - _fx_LN14C_form__cexp_t v_748 = 0; + _fx_N14C_form__cexp_t v_724 = 0; + _fx_N14C_form__cexp_t v_725 = 0; + _fx_LN14C_form__cexp_t v_726 = 0; _fx_N14C_form__cexp_t call_subarr_0 = 0; _fx_LN15C_form__cstmt_t sub_ccode_11 = 0; - _fx_N15C_form__cstmt_t v_749 = 0; - _fx_LN15C_form__cstmt_t ccode_137 = 0; - _fx_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___17 = {0}; - _fx_LN13K_form__dom_t idxs_4 = 0; - _fx_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_750 = {0}; + _fx_N15C_form__cstmt_t v_727 = 0; + _fx_LN15C_form__cstmt_t ccode_113 = 0; _fx_Nt6option1N14C_form__cexp_t chk_exp_opt_0 = {0}; - _fx_LN14C_form__cexp_t i_exps_3 = 0; - _fx_LN15C_form__cstmt_t ccode_138 = 0; - _fx_LN15C_form__cstmt_t ccode_139 = 0; + _fx_LN14C_form__cexp_t i_exps_2 = 0; + _fx_LN15C_form__cstmt_t ccode_114 = 0; + _fx_LN13K_form__dom_t idxs_4 = 0; + _fx_Nt6option1N14C_form__cexp_t chk_exp_opt_1 = {0}; + _fx_LN15C_form__cstmt_t ccode_115 = 0; _fx_LR9Ast__id_t access_op_0 = 0; - _fx_N14C_form__cexp_t v_751 = 0; - _fx_LN14C_form__cexp_t v_752 = 0; - _fx_LN14C_form__cexp_t v_753 = 0; - _fx_N14C_form__ctyp_t v_754 = 0; + _fx_N14C_form__cexp_t v_728 = 0; + _fx_LN14C_form__cexp_t v_729 = 0; + _fx_LN14C_form__cexp_t v_730 = 0; + _fx_N14C_form__ctyp_t v_731 = 0; _fx_N14C_form__cexp_t get_elem_exp_9 = 0; - _fx_N14C_form__cexp_t v_755 = 0; - bool __fold_result___18 = false; + _fx_N14C_form__cexp_t v_732 = 0; + bool __fold_result___3 = false; FX_COPY_PTR(idxs_1, &idxs_2); _fx_LN13K_form__dom_t lst_19 = idxs_2; for (; lst_19; lst_19 = lst_19->tl) { @@ -29029,31 +28340,31 @@ static int } FX_CHECK_EXN(_fx_catch_168); if (res_19) { - __fold_result___18 = true; FX_BREAK(_fx_catch_168); + __fold_result___3 = true; FX_BREAK(_fx_catch_168); } _fx_catch_168: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_183); } - bool need_subarr_0 = __fold_result___18; + bool need_subarr_0 = __fold_result___3; bool need_flatten_0; if (need_subarr_0) { bool res_20; if (idxs_1 != 0) { if (idxs_1->tl == 0) { - _fx_N13K_form__dom_t* v_756 = &idxs_1->hd; - if (v_756->tag == 3) { - _fx_Ta3N14K_form__atom_t* vcase_15 = &v_756->u.DomainRange; - _fx_N14K_form__atom_t* v_757 = &vcase_15->t0; - if (v_757->tag == 2) { - _fx_N14K_form__atom_t* v_758 = &vcase_15->t1; - if (v_758->tag == 2) { - _fx_N14K_form__atom_t* v_759 = &vcase_15->t2; - if (v_759->tag == 2) { - if (v_757->u.AtomLit.tag == 8) { - if (v_758->u.AtomLit.tag == 8) { - if (v_759->u.AtomLit.tag == 8) { + _fx_N13K_form__dom_t* v_733 = &idxs_1->hd; + if (v_733->tag == 3) { + _fx_Ta3N14K_form__atom_t* vcase_15 = &v_733->u.DomainRange; + _fx_N14K_form__atom_t* v_734 = &vcase_15->t0; + if (v_734->tag == 2) { + _fx_N14K_form__atom_t* v_735 = &vcase_15->t1; + if (v_735->tag == 2) { + _fx_N14K_form__atom_t* v_736 = &vcase_15->t2; + if (v_736->tag == 2) { + if (v_734->u.AtomLit.tag == 8) { + if (v_735->u.AtomLit.tag == 8) { + if (v_736->u.AtomLit.tag == 8) { res_20 = true; goto _fx_endmatch_25; } } @@ -29066,20 +28377,20 @@ static int } if (idxs_1 != 0) { if (idxs_1->tl == 0) { - _fx_N13K_form__dom_t* v_760 = &idxs_1->hd; - if (v_760->tag == 3) { - _fx_Ta3N14K_form__atom_t* vcase_16 = &v_760->u.DomainRange; - _fx_N14K_form__atom_t* v_761 = &vcase_16->t0; - if (v_761->tag == 2) { - _fx_N14K_form__atom_t* v_762 = &vcase_16->t1; - if (v_762->tag == 2) { - _fx_N14K_form__atom_t* v_763 = &vcase_16->t2; - if (v_763->tag == 2) { - if (v_761->u.AtomLit.tag == 8) { - if (v_762->u.AtomLit.tag == 8) { - _fx_N14K_form__klit_t* v_764 = &v_763->u.AtomLit; - if (v_764->tag == 1) { - if (v_764->u.KLitInt == 1LL) { + _fx_N13K_form__dom_t* v_737 = &idxs_1->hd; + if (v_737->tag == 3) { + _fx_Ta3N14K_form__atom_t* vcase_16 = &v_737->u.DomainRange; + _fx_N14K_form__atom_t* v_738 = &vcase_16->t0; + if (v_738->tag == 2) { + _fx_N14K_form__atom_t* v_739 = &vcase_16->t1; + if (v_739->tag == 2) { + _fx_N14K_form__atom_t* v_740 = &vcase_16->t2; + if (v_740->tag == 2) { + if (v_738->u.AtomLit.tag == 8) { + if (v_739->u.AtomLit.tag == 8) { + _fx_N14K_form__klit_t* v_741 = &v_740->u.AtomLit; + if (v_741->tag == 1) { + if (v_741->u.KLitInt == 1LL) { res_20 = true; goto _fx_endmatch_25; } } @@ -29110,320 +28421,300 @@ static int fx_str_t slit_163 = FX_MAKE_STR("arr"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_163, ctyp_0, ccode_121, &kloc_0, block_stack_ref_0, km_idx_0, &v_732, 0), _fx_catch_183); - FX_COPY_PTR(v_732.t0, &subarr_exp_0); - _fx_R9Ast__id_t v_765; + dstexp_r_0, &slit_163, ctyp_0, ccode_97, &kloc_0, block_stack_ref_0, km_idx_0, &v_711, 0), _fx_catch_183); + FX_COPY_PTR(v_711.t0, &subarr_exp_0); + _fx_R9Ast__id_t v_742; fx_str_t slit_164 = FX_MAKE_STR("fx_flatten_arr"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_164, &v_765, 0), _fx_catch_183); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_5, &v_733, 0), _fx_catch_183); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(subarr_exp_0, &v_734, 0), _fx_catch_183); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_734, 0, true, &v_735), _fx_catch_183); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_733, v_735, false, &v_735), _fx_catch_183); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_164, &v_742, 0), _fx_catch_183); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_5, &v_712, 0), _fx_catch_183); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(subarr_exp_0, &v_713, 0), _fx_catch_183); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_713, 0, true, &v_714), _fx_catch_183); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_712, v_714, false, &v_714), _fx_catch_183); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_765, - v_735, _fx_g20C_gen_code__CTypCInt, &kloc_0, &call_flatten_0, 0), _fx_catch_183); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_742, + v_714, _fx_g20C_gen_code__CTypCInt, &kloc_0, &call_flatten_0, 0), _fx_catch_183); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - call_flatten_0, ccode_121, &kloc_0, block_stack_ref_0, &v_736, 0), _fx_catch_183); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, subarr_exp_0, v_736, &v_1); + call_flatten_0, ccode_97, &kloc_0, block_stack_ref_0, &v_715, 0), _fx_catch_183); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, subarr_exp_0, v_715, &v_1); } else if (need_subarr_0) { if (border_0->tag != 1) { fx_str_t slit_165 = FX_MAKE_STR("cgen: border extrapolation with ranges is not supported yet"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_165, &v_737, 0), _fx_catch_183); - FX_THROW(&v_737, false, _fx_catch_183); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_165, &v_716, 0), _fx_catch_183); + FX_THROW(&v_716, false, _fx_catch_183); } - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, ccode_121, &__fold_result___16); + FX_COPY_PTR(ccode_97, &ccode_111); FX_COPY_PTR(idxs_1, &idxs_3); _fx_LN13K_form__dom_t lst_20 = idxs_3; for (; lst_20; lst_20 = lst_20->tl) { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_766 = {0}; - _fx_LN14C_form__cexp_t range_data_1 = 0; - _fx_LN15C_form__cstmt_t ccode_140 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_767 = {0}; _fx_N13K_form__dom_t* d_1 = &lst_20->hd; - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___16, &v_766); - FX_COPY_PTR(v_766.t0, &range_data_1); - FX_COPY_PTR(v_766.t1, &ccode_140); int tag_22 = d_1->tag; if (tag_22 == 1) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_768 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_743 = {0}; _fx_N14C_form__cexp_t i_exp_6 = 0; - _fx_LN15C_form__cstmt_t ccode_141 = 0; - _fx_N14C_form__cexp_t v_769 = 0; - _fx_LN14C_form__cexp_t v_770 = 0; + _fx_LN15C_form__cstmt_t ccode1_12 = 0; + _fx_N14C_form__cexp_t v_744 = 0; + _fx_LN14C_form__cexp_t v_745 = 0; FX_CALL( - atom2cexp_0.fp(&d_1->u.DomainElem, ccode_140, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_768, atom2cexp_0.fcv), _fx_catch_169); - FX_COPY_PTR(v_768.t0, &i_exp_6); - FX_COPY_PTR(v_768.t1, &ccode_141); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_769, 0), _fx_catch_169); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_769, range_data_1, true, &v_770), _fx_catch_169); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_6, v_770, false, &v_770), _fx_catch_169); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(v_770, ccode_141, &v_767); + atom2cexp_0.fp(&d_1->u.DomainElem, ccode_111, &kloc_0, block_stack_ref_0, defined_syms_ref_0, + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_743, atom2cexp_0.fcv), _fx_catch_169); + FX_COPY_PTR(v_743.t0, &i_exp_6); + FX_COPY_PTR(v_743.t1, &ccode1_12); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_744, 0), _fx_catch_169); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_744, range_data_0, true, &v_745), _fx_catch_169); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_6, v_745, false, &v_745), _fx_catch_169); + _fx_free_LN14C_form__cexp_t(&range_data_0); + FX_COPY_PTR(v_745, &range_data_0); + _fx_free_LN15C_form__cstmt_t(&ccode_111); + FX_COPY_PTR(ccode1_12, &ccode_111); _fx_catch_169: ; - if (v_770) { - _fx_free_LN14C_form__cexp_t(&v_770); + if (v_745) { + _fx_free_LN14C_form__cexp_t(&v_745); } - if (v_769) { - _fx_free_N14C_form__cexp_t(&v_769); + if (v_744) { + _fx_free_N14C_form__cexp_t(&v_744); } - if (ccode_141) { - _fx_free_LN15C_form__cstmt_t(&ccode_141); + if (ccode1_12) { + _fx_free_LN15C_form__cstmt_t(&ccode1_12); } if (i_exp_6) { _fx_free_N14C_form__cexp_t(&i_exp_6); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_768); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_743); } else if (tag_22 == 2) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_771 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_746 = {0}; _fx_N14C_form__cexp_t i_exp_7 = 0; - _fx_LN15C_form__cstmt_t ccode_142 = 0; - _fx_N14C_form__cexp_t v_772 = 0; - _fx_LN14C_form__cexp_t v_773 = 0; + _fx_LN15C_form__cstmt_t ccode1_13 = 0; + _fx_N14C_form__cexp_t v_747 = 0; + _fx_LN14C_form__cexp_t v_748 = 0; FX_CALL( - atom2cexp_0.fp(&d_1->u.DomainFast, ccode_140, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_771, atom2cexp_0.fcv), _fx_catch_170); - FX_COPY_PTR(v_771.t0, &i_exp_7); - FX_COPY_PTR(v_771.t1, &ccode_142); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_772, 0), _fx_catch_170); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_772, range_data_1, true, &v_773), _fx_catch_170); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_7, v_773, false, &v_773), _fx_catch_170); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(v_773, ccode_142, &v_767); + atom2cexp_0.fp(&d_1->u.DomainFast, ccode_111, &kloc_0, block_stack_ref_0, defined_syms_ref_0, + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_746, atom2cexp_0.fcv), _fx_catch_170); + FX_COPY_PTR(v_746.t0, &i_exp_7); + FX_COPY_PTR(v_746.t1, &ccode1_13); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_747, 0), _fx_catch_170); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_747, range_data_0, true, &v_748), _fx_catch_170); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_7, v_748, false, &v_748), _fx_catch_170); + _fx_free_LN14C_form__cexp_t(&range_data_0); + FX_COPY_PTR(v_748, &range_data_0); + _fx_free_LN15C_form__cstmt_t(&ccode_111); + FX_COPY_PTR(ccode1_13, &ccode_111); _fx_catch_170: ; - if (v_773) { - _fx_free_LN14C_form__cexp_t(&v_773); + if (v_748) { + _fx_free_LN14C_form__cexp_t(&v_748); } - if (v_772) { - _fx_free_N14C_form__cexp_t(&v_772); + if (v_747) { + _fx_free_N14C_form__cexp_t(&v_747); } - if (ccode_142) { - _fx_free_LN15C_form__cstmt_t(&ccode_142); + if (ccode1_13) { + _fx_free_LN15C_form__cstmt_t(&ccode1_13); } if (i_exp_7) { _fx_free_N14C_form__cexp_t(&i_exp_7); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_771); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_746); } else if (tag_22 == 3) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_774 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_749 = {0}; _fx_N14C_form__cexp_t a_exp_3 = 0; - _fx_LN15C_form__cstmt_t ccode_143 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_775 = {0}; + _fx_LN15C_form__cstmt_t ccode1_14 = 0; + _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_750 = {0}; _fx_LN14C_form__cexp_t range_delta_0 = 0; - _fx_LN15C_form__cstmt_t ccode_144 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_776 = {0}; + _fx_LN15C_form__cstmt_t ccode2_1 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_751 = {0}; _fx_N14C_form__cexp_t d_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_145 = 0; - _fx_LN14C_form__cexp_t v_777 = 0; - _fx_LN14C_form__cexp_t v_778 = 0; + _fx_LN15C_form__cstmt_t ccode3_0 = 0; + _fx_LN14C_form__cexp_t v_752 = 0; + _fx_LN14C_form__cexp_t v_753 = 0; _fx_Ta3N14K_form__atom_t* vcase_17 = &d_1->u.DomainRange; _fx_N14K_form__atom_t* b_2 = &vcase_17->t1; _fx_N14K_form__atom_t* a_10 = &vcase_17->t0; if (a_10->tag == 2) { if (a_10->u.AtomLit.tag == 8) { - _fx_N14C_form__cexp_t v_779 = 0; - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_779, 0), + _fx_N14C_form__cexp_t v_754 = 0; + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_754, 0), _fx_catch_171); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_779, ccode_140, &v_774); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_754, ccode_111, &v_749); _fx_catch_171: ; - if (v_779) { - _fx_free_N14C_form__cexp_t(&v_779); + if (v_754) { + _fx_free_N14C_form__cexp_t(&v_754); } goto _fx_endmatch_27; } } FX_CALL( - atom2cexp_0.fp(a_10, ccode_140, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_774, atom2cexp_0.fcv), _fx_catch_172); + atom2cexp_0.fp(a_10, ccode_111, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, + i2e_ref_0, km_idx_0, &v_749, atom2cexp_0.fcv), _fx_catch_172); _fx_catch_172: ; _fx_endmatch_27: ; FX_CHECK_EXN(_fx_catch_175); - FX_COPY_PTR(v_774.t0, &a_exp_3); - FX_COPY_PTR(v_774.t1, &ccode_143); + FX_COPY_PTR(v_749.t0, &a_exp_3); + FX_COPY_PTR(v_749.t1, &ccode1_14); if (b_2->tag == 2) { if (b_2->u.AtomLit.tag == 8) { - _fx_N14C_form__cexp_t v_780 = 0; - _fx_LN14C_form__cexp_t v_781 = 0; - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(2, &kloc_0, &v_780, 0), + _fx_N14C_form__cexp_t v_755 = 0; + _fx_LN14C_form__cexp_t v_756 = 0; + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(2, &kloc_0, &v_755, 0), _fx_catch_173); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_780, 0, true, &v_781), _fx_catch_173); - FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_3, v_781, false, &v_781), _fx_catch_173); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(v_781, ccode_143, &v_775); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_755, 0, true, &v_756), _fx_catch_173); + FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_3, v_756, false, &v_756), _fx_catch_173); + _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(v_756, ccode1_14, &v_750); _fx_catch_173: ; - if (v_781) { - _fx_free_LN14C_form__cexp_t(&v_781); + if (v_756) { + _fx_free_LN14C_form__cexp_t(&v_756); } - if (v_780) { - _fx_free_N14C_form__cexp_t(&v_780); + if (v_755) { + _fx_free_N14C_form__cexp_t(&v_755); } goto _fx_endmatch_28; } } - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_782 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_757 = {0}; _fx_N14C_form__cexp_t b_exp_3 = 0; - _fx_LN15C_form__cstmt_t ccode_146 = 0; - _fx_N14C_form__cexp_t v_783 = 0; - _fx_LN14C_form__cexp_t v_784 = 0; + _fx_LN15C_form__cstmt_t ccode__2 = 0; + _fx_N14C_form__cexp_t v_758 = 0; + _fx_LN14C_form__cexp_t v_759 = 0; FX_CALL( - atom2cexp_0.fp(b_2, ccode_143, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_782, atom2cexp_0.fcv), _fx_catch_174); - FX_COPY_PTR(v_782.t0, &b_exp_3); - FX_COPY_PTR(v_782.t1, &ccode_146); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(1, &kloc_0, &v_783, 0), _fx_catch_174); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_783, 0, true, &v_784), _fx_catch_174); - FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_3, v_784, false, &v_784), _fx_catch_174); - FX_CALL(_fx_cons_LN14C_form__cexp_t(b_exp_3, v_784, false, &v_784), _fx_catch_174); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(v_784, ccode_146, &v_775); + atom2cexp_0.fp(b_2, ccode1_14, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_757, atom2cexp_0.fcv), _fx_catch_174); + FX_COPY_PTR(v_757.t0, &b_exp_3); + FX_COPY_PTR(v_757.t1, &ccode__2); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(1, &kloc_0, &v_758, 0), _fx_catch_174); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_758, 0, true, &v_759), _fx_catch_174); + FX_CALL(_fx_cons_LN14C_form__cexp_t(a_exp_3, v_759, false, &v_759), _fx_catch_174); + FX_CALL(_fx_cons_LN14C_form__cexp_t(b_exp_3, v_759, false, &v_759), _fx_catch_174); + _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(v_759, ccode__2, &v_750); _fx_catch_174: ; - if (v_784) { - _fx_free_LN14C_form__cexp_t(&v_784); + if (v_759) { + _fx_free_LN14C_form__cexp_t(&v_759); } - if (v_783) { - _fx_free_N14C_form__cexp_t(&v_783); + if (v_758) { + _fx_free_N14C_form__cexp_t(&v_758); } - if (ccode_146) { - _fx_free_LN15C_form__cstmt_t(&ccode_146); + if (ccode__2) { + _fx_free_LN15C_form__cstmt_t(&ccode__2); } if (b_exp_3) { _fx_free_N14C_form__cexp_t(&b_exp_3); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_782); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_757); _fx_endmatch_28: ; FX_CHECK_EXN(_fx_catch_175); - FX_COPY_PTR(v_775.t0, &range_delta_0); - FX_COPY_PTR(v_775.t1, &ccode_144); + FX_COPY_PTR(v_750.t0, &range_delta_0); + FX_COPY_PTR(v_750.t1, &ccode2_1); FX_CALL( - atom2cexp_0.fp(&vcase_17->t2, ccode_144, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, - i2e_ref_0, km_idx_0, &v_776, atom2cexp_0.fcv), _fx_catch_175); - FX_COPY_PTR(v_776.t0, &d_exp_0); - FX_COPY_PTR(v_776.t1, &ccode_145); - FX_CALL(_fx_cons_LN14C_form__cexp_t(d_exp_0, range_delta_0, true, &v_777), _fx_catch_175); + atom2cexp_0.fp(&vcase_17->t2, ccode2_1, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, + i2e_ref_0, km_idx_0, &v_751, atom2cexp_0.fcv), _fx_catch_175); + FX_COPY_PTR(v_751.t0, &d_exp_0); + FX_COPY_PTR(v_751.t1, &ccode3_0); + FX_CALL(_fx_cons_LN14C_form__cexp_t(d_exp_0, range_delta_0, true, &v_752), _fx_catch_175); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(v_777, range_data_1, - &v_778, 0), _fx_catch_175); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(v_778, ccode_145, &v_767); + _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(v_752, range_data_0, + &v_753, 0), _fx_catch_175); + _fx_free_LN14C_form__cexp_t(&range_data_0); + FX_COPY_PTR(v_753, &range_data_0); + _fx_free_LN15C_form__cstmt_t(&ccode_111); + FX_COPY_PTR(ccode3_0, &ccode_111); _fx_catch_175: ; - if (v_778) { - _fx_free_LN14C_form__cexp_t(&v_778); + if (v_753) { + _fx_free_LN14C_form__cexp_t(&v_753); } - if (v_777) { - _fx_free_LN14C_form__cexp_t(&v_777); + if (v_752) { + _fx_free_LN14C_form__cexp_t(&v_752); } - if (ccode_145) { - _fx_free_LN15C_form__cstmt_t(&ccode_145); + if (ccode3_0) { + _fx_free_LN15C_form__cstmt_t(&ccode3_0); } if (d_exp_0) { _fx_free_N14C_form__cexp_t(&d_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_776); - if (ccode_144) { - _fx_free_LN15C_form__cstmt_t(&ccode_144); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_751); + if (ccode2_1) { + _fx_free_LN15C_form__cstmt_t(&ccode2_1); } if (range_delta_0) { _fx_free_LN14C_form__cexp_t(&range_delta_0); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_775); - if (ccode_143) { - _fx_free_LN15C_form__cstmt_t(&ccode_143); + _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_750); + if (ccode1_14) { + _fx_free_LN15C_form__cstmt_t(&ccode1_14); } if (a_exp_3) { _fx_free_N14C_form__cexp_t(&a_exp_3); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_774); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_749); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_176); } FX_CHECK_EXN(_fx_catch_176); - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___16); - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_767, &__fold_result___16); _fx_catch_176: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_767); - if (ccode_140) { - _fx_free_LN15C_form__cstmt_t(&ccode_140); - } - if (range_data_1) { - _fx_free_LN14C_form__cexp_t(&range_data_1); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_766); FX_CHECK_EXN(_fx_catch_183); } - _fx_copy_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___16, &v_738); - FX_COPY_PTR(v_738.t0, &range_data_0); - FX_COPY_PTR(v_738.t1, &ccode_135); fx_str_t slit_166 = FX_MAKE_STR("arr"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_166, ctyp_0, ccode_135, &kloc_0, block_stack_ref_0, km_idx_0, &v_739, 0), _fx_catch_183); - FX_COPY_PTR(v_739.t0, &subarr_exp_1); - FX_COPY_PTR(v_739.t1, &ccode_136); - FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g21C_gen_code__CTypConst, 0, true, &v_740), _fx_catch_183); + dstexp_r_0, &slit_166, ctyp_0, ccode_111, &kloc_0, block_stack_ref_0, km_idx_0, &v_717, 0), _fx_catch_183); + FX_COPY_PTR(v_717.t0, &subarr_exp_1); + FX_COPY_PTR(v_717.t1, &ccode_112); + FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g21C_gen_code__CTypConst, 0, true, &v_718), _fx_catch_183); FX_CALL( - _fx_M6C_formFM12CTypRawArrayN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_740, + _fx_M6C_formFM12CTypRawArrayN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_718, _fx_g19C_gen_code__CTypInt, &rdata_ctyp_0), _fx_catch_183); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(range_data_0, &v_741, 0), _fx_catch_183); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(rdata_ctyp_0, &kloc_0, &v_742); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(range_data_0, &v_719, 0), _fx_catch_183); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(rdata_ctyp_0, &kloc_0, &v_720); FX_CALL( - _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_741, &v_742, + _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_719, &v_720, &rdata_arr_0), _fx_catch_183); - _fx_R9Ast__id_t v_785; + _fx_R9Ast__id_t v_760; fx_str_t slit_167 = FX_MAKE_STR("ranges"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_167, &v_785, 0), _fx_catch_183); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_743, 0), _fx_catch_183); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(rdata_arr_0, &v_744); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_167, &v_760, 0), _fx_catch_183); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_721, 0), _fx_catch_183); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(rdata_arr_0, &v_722); fx_str_t slit_168 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_785, rdata_ctyp_0, &v_743, &slit_168, &v_744, 0, &kloc_0, &v_745, 0), _fx_catch_183); - FX_COPY_PTR(v_745.t0, &rdata_exp_0); - FX_COPY_PTR(v_745.t1, &sub_ccode_10); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_5, &v_746, 0), _fx_catch_183); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(subarr_exp_1, &v_747, 0), _fx_catch_183); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_747, 0, true, &v_748), _fx_catch_183); - FX_CALL(_fx_cons_LN14C_form__cexp_t(rdata_exp_0, v_748, false, &v_748), _fx_catch_183); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_746, v_748, false, &v_748), _fx_catch_183); + &v_760, rdata_ctyp_0, &v_721, &slit_168, &v_722, 0, &kloc_0, &v_723, 0), _fx_catch_183); + FX_COPY_PTR(v_723.t0, &rdata_exp_0); + FX_COPY_PTR(v_723.t1, &sub_ccode_10); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(arr_exp_5, &v_724, 0), _fx_catch_183); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(subarr_exp_1, &v_725, 0), _fx_catch_183); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_725, 0, true, &v_726), _fx_catch_183); + FX_CALL(_fx_cons_LN14C_form__cexp_t(rdata_exp_0, v_726, false, &v_726), _fx_catch_183); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_724, v_726, false, &v_726), _fx_catch_183); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g21C_form__std_fx_subarr, v_748, _fx_g19C_gen_code__CTypInt, &kloc_0, &call_subarr_0, 0), _fx_catch_183); + &_fx_g21C_form__std_fx_subarr, v_726, _fx_g19C_gen_code__CTypInt, &kloc_0, &call_subarr_0, 0), _fx_catch_183); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( call_subarr_0, sub_ccode_10, &kloc_0, block_stack_ref_0, &sub_ccode_11, 0), _fx_catch_183); FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(sub_ccode_11, &kloc_0, &v_749, 0), + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(sub_ccode_11, &kloc_0, &v_727, 0), _fx_catch_183); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_749, ccode_136, true, &ccode_137), _fx_catch_183); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, subarr_exp_1, ccode_137, &v_1); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_727, ccode_112, true, &ccode_113), _fx_catch_183); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, subarr_exp_1, ccode_113, &v_1); } else { - _fx_make_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&_fx_g18C_gen_code__None2_, 0, - ccode_121, &__fold_result___17); + _fx_copy_Nt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &chk_exp_opt_0); + FX_COPY_PTR(ccode_97, &ccode_114); int_ dim_0 = 0; FX_COPY_PTR(idxs_1, &idxs_4); _fx_LN13K_form__dom_t lst_21 = idxs_4; for (; lst_21; lst_21 = lst_21->tl, dim_0 += 1) { - _fx_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_786 = {0}; - _fx_Nt6option1N14C_form__cexp_t chk_exp_opt_1 = {0}; - _fx_LN14C_form__cexp_t i_exps_4 = 0; - _fx_LN15C_form__cstmt_t ccode_147 = 0; _fx_N13K_form__dom_t d_2 = {0}; - _fx_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t v_787 = {0}; _fx_N13K_form__dom_t* d_3 = &lst_21->hd; - _fx_copy_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___17, &v_786); - _fx_copy_Nt6option1N14C_form__cexp_t(&v_786.t0, &chk_exp_opt_1); - FX_COPY_PTR(v_786.t1, &i_exps_4); - FX_COPY_PTR(v_786.t2, &ccode_147); if (border_0->tag == 1) { _fx_copy_N13K_form__dom_t(d_3, &d_2); } @@ -29438,155 +28729,150 @@ static int } int tag_23 = d_2.tag; if (tag_23 == 2) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_788 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_761 = {0}; _fx_N14C_form__cexp_t i_exp_8 = 0; - _fx_LN15C_form__cstmt_t ccode_148 = 0; - _fx_LN14C_form__cexp_t v_789 = 0; + _fx_LN15C_form__cstmt_t ccode1_15 = 0; + _fx_LN14C_form__cexp_t v_762 = 0; FX_CALL( - atom2cexp_0.fp(&d_2.u.DomainFast, ccode_147, &kloc_0, block_stack_ref_0, defined_syms_ref_0, - fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_788, atom2cexp_0.fcv), _fx_catch_177); - FX_COPY_PTR(v_788.t0, &i_exp_8); - FX_COPY_PTR(v_788.t1, &ccode_148); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_8, i_exps_4, true, &v_789), _fx_catch_177); - _fx_make_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&chk_exp_opt_1, v_789, ccode_148, - &v_787); + atom2cexp_0.fp(&d_2.u.DomainFast, ccode_114, &kloc_0, block_stack_ref_0, defined_syms_ref_0, + fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_761, atom2cexp_0.fcv), _fx_catch_177); + FX_COPY_PTR(v_761.t0, &i_exp_8); + FX_COPY_PTR(v_761.t1, &ccode1_15); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_8, i_exps_2, true, &v_762), _fx_catch_177); + _fx_free_LN14C_form__cexp_t(&i_exps_2); + FX_COPY_PTR(v_762, &i_exps_2); + _fx_free_LN15C_form__cstmt_t(&ccode_114); + FX_COPY_PTR(ccode1_15, &ccode_114); _fx_catch_177: ; - if (v_789) { - _fx_free_LN14C_form__cexp_t(&v_789); + if (v_762) { + _fx_free_LN14C_form__cexp_t(&v_762); } - if (ccode_148) { - _fx_free_LN15C_form__cstmt_t(&ccode_148); + if (ccode1_15) { + _fx_free_LN15C_form__cstmt_t(&ccode1_15); } if (i_exp_8) { _fx_free_N14C_form__cexp_t(&i_exp_8); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_788); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_761); } else if (tag_23 == 1) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_790 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_763 = {0}; _fx_N14C_form__cexp_t i_exp_9 = 0; - _fx_LN15C_form__cstmt_t ccode_149 = 0; - _fx_N14C_form__cexp_t v_791 = 0; - _fx_LN14C_form__cexp_t v_792 = 0; + _fx_LN15C_form__cstmt_t ccode1_16 = 0; + _fx_N14C_form__cexp_t v_764 = 0; + _fx_LN14C_form__cexp_t v_765 = 0; _fx_N14C_form__cexp_t chk_exp1_0 = 0; _fx_Nt6option1N14C_form__cexp_t chk_exp_opt_2 = {0}; - _fx_LN14C_form__cexp_t v_793 = 0; - FX_CALL(atom2cexp__0.fp(&d_2.u.DomainElem, true, ccode_147, &kloc_0, &v_790, atom2cexp__0.fcv), + _fx_Nt6option1N14C_form__cexp_t v_766 = {0}; + _fx_LN14C_form__cexp_t v_767 = 0; + FX_CALL(atom2cexp__0.fp(&d_2.u.DomainElem, true, ccode_114, &kloc_0, &v_763, atom2cexp__0.fcv), _fx_catch_179); - FX_COPY_PTR(v_790.t0, &i_exp_9); - FX_COPY_PTR(v_790.t1, &ccode_149); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(dim_0, &kloc_0, &v_791, 0), + FX_COPY_PTR(v_763.t0, &i_exp_9); + FX_COPY_PTR(v_763.t1, &ccode1_16); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(dim_0, &kloc_0, &v_764, 0), _fx_catch_179); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_9, 0, true, &v_792), _fx_catch_179); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_791, v_792, false, &v_792), _fx_catch_179); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_792, false, &v_792), _fx_catch_179); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_9, 0, true, &v_765), _fx_catch_179); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_764, v_765, false, &v_765), _fx_catch_179); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_765, false, &v_765), _fx_catch_179); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g22C_form__std_FX_CHKIDX1, v_792, _fx_g20C_gen_code__CTypBool, &kloc_0, &chk_exp1_0, 0), + &_fx_g22C_form__std_FX_CHKIDX1, v_765, _fx_g20C_gen_code__CTypBool, &kloc_0, &chk_exp1_0, 0), _fx_catch_179); - if (chk_exp_opt_1.tag == 2) { - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_794 = {0}; + _fx_copy_Nt6option1N14C_form__cexp_t(&chk_exp_opt_0, &chk_exp_opt_2); + if (chk_exp_opt_2.tag == 2) { + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_768 = {0}; _fx_N14C_form__cexp_t chk_exp_2 = 0; - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &kloc_0, &v_794); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &kloc_0, &v_768); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_gen_code__COpLogicAnd, chk_exp_opt_1.u.Some, chk_exp1_0, &v_794, &chk_exp_2), + &_fx_g23C_gen_code__COpLogicAnd, chk_exp_opt_2.u.Some, chk_exp1_0, &v_768, &chk_exp_2), _fx_catch_178); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(chk_exp_2, &chk_exp_opt_2); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(chk_exp_2, &v_766); _fx_catch_178: ; if (chk_exp_2) { _fx_free_N14C_form__cexp_t(&chk_exp_2); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_794); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_768); } else { - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(chk_exp1_0, &chk_exp_opt_2); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(chk_exp1_0, &v_766); } FX_CHECK_EXN(_fx_catch_179); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_9, i_exps_4, true, &v_793), _fx_catch_179); - _fx_make_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&chk_exp_opt_2, v_793, ccode_149, - &v_787); + _fx_free_Nt6option1N14C_form__cexp_t(&chk_exp_opt_0); + _fx_copy_Nt6option1N14C_form__cexp_t(&v_766, &chk_exp_opt_0); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_9, i_exps_2, true, &v_767), _fx_catch_179); + _fx_free_LN14C_form__cexp_t(&i_exps_2); + FX_COPY_PTR(v_767, &i_exps_2); + _fx_free_LN15C_form__cstmt_t(&ccode_114); + FX_COPY_PTR(ccode1_16, &ccode_114); _fx_catch_179: ; - if (v_793) { - _fx_free_LN14C_form__cexp_t(&v_793); + if (v_767) { + _fx_free_LN14C_form__cexp_t(&v_767); } + _fx_free_Nt6option1N14C_form__cexp_t(&v_766); _fx_free_Nt6option1N14C_form__cexp_t(&chk_exp_opt_2); if (chk_exp1_0) { _fx_free_N14C_form__cexp_t(&chk_exp1_0); } - if (v_792) { - _fx_free_LN14C_form__cexp_t(&v_792); + if (v_765) { + _fx_free_LN14C_form__cexp_t(&v_765); } - if (v_791) { - _fx_free_N14C_form__cexp_t(&v_791); + if (v_764) { + _fx_free_N14C_form__cexp_t(&v_764); } - if (ccode_149) { - _fx_free_LN15C_form__cstmt_t(&ccode_149); + if (ccode1_16) { + _fx_free_LN15C_form__cstmt_t(&ccode1_16); } if (i_exp_9) { _fx_free_N14C_form__cexp_t(&i_exp_9); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_790); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_763); } else { - fx_exn_t v_795 = {0}; + fx_exn_t v_769 = {0}; fx_str_t slit_169 = FX_MAKE_STR("cgen: unexpected index type"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_169, &v_795, 0), _fx_catch_180); - FX_THROW(&v_795, false, _fx_catch_180); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_169, &v_769, 0), _fx_catch_180); + FX_THROW(&v_769, false, _fx_catch_180); _fx_catch_180: ; - fx_free_exn(&v_795); + fx_free_exn(&v_769); } FX_CHECK_EXN(_fx_catch_181); - _fx_free_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___17); - _fx_copy_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_787, &__fold_result___17); _fx_catch_181: ; - _fx_free_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_787); _fx_free_N13K_form__dom_t(&d_2); - if (ccode_147) { - _fx_free_LN15C_form__cstmt_t(&ccode_147); - } - if (i_exps_4) { - _fx_free_LN14C_form__cexp_t(&i_exps_4); - } - _fx_free_Nt6option1N14C_form__cexp_t(&chk_exp_opt_1); - _fx_free_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_786); FX_CHECK_EXN(_fx_catch_183); } - _fx_copy_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___17, &v_750); - _fx_copy_Nt6option1N14C_form__cexp_t(&v_750.t0, &chk_exp_opt_0); - FX_COPY_PTR(v_750.t1, &i_exps_3); - FX_COPY_PTR(v_750.t2, &ccode_138); - if (chk_exp_opt_0.tag == 2) { - _fx_LN14C_form__cexp_t v_796 = 0; + _fx_copy_Nt6option1N14C_form__cexp_t(&chk_exp_opt_0, &chk_exp_opt_1); + if (chk_exp_opt_1.tag == 2) { + _fx_LN14C_form__cexp_t v_770 = 0; _fx_N14C_form__cexp_t call_chkidx_0 = 0; - _fx_N15C_form__cstmt_t v_797 = 0; - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_5, 0, true, &v_796), _fx_catch_182); - FX_CALL(_fx_cons_LN14C_form__cexp_t(chk_exp_opt_0.u.Some, v_796, false, &v_796), _fx_catch_182); + _fx_N15C_form__cstmt_t v_771 = 0; + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_5, 0, true, &v_770), _fx_catch_182); + FX_CALL(_fx_cons_LN14C_form__cexp_t(chk_exp_opt_1.u.Some, v_770, false, &v_770), _fx_catch_182); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g21C_form__std_FX_CHKIDX, v_796, _fx_g20C_gen_code__CTypVoid, &kloc_0, &call_chkidx_0, 0), + &_fx_g21C_form__std_FX_CHKIDX, v_770, _fx_g20C_gen_code__CTypVoid, &kloc_0, &call_chkidx_0, 0), _fx_catch_182); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_chkidx_0, &v_797), _fx_catch_182); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_797, ccode_138, true, &ccode_139), _fx_catch_182); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_chkidx_0, &v_771), _fx_catch_182); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_771, ccode_114, true, &ccode_115), _fx_catch_182); _fx_catch_182: ; - if (v_797) { - _fx_free_N15C_form__cstmt_t(&v_797); + if (v_771) { + _fx_free_N15C_form__cstmt_t(&v_771); } if (call_chkidx_0) { _fx_free_N14C_form__cexp_t(&call_chkidx_0); } - if (v_796) { - _fx_free_LN14C_form__cexp_t(&v_796); + if (v_770) { + _fx_free_LN14C_form__cexp_t(&v_770); } } else { - FX_COPY_PTR(ccode_138, &ccode_139); + FX_COPY_PTR(ccode_114, &ccode_115); } FX_CHECK_EXN(_fx_catch_183); int_ ndims_2; @@ -29608,61 +28894,60 @@ static int FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_183); } FX_CHECK_EXN(_fx_catch_183); - _fx_R9Ast__id_t v_798; - FX_CALL(_fx_M10C_gen_codeFM3nthR9Ast__id_t2LR9Ast__id_ti(access_op_0, ndims_2 - 1, &v_798, 0), _fx_catch_183); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_751), + _fx_R9Ast__id_t v_772; + FX_CALL(_fx_M10C_gen_codeFM3nthR9Ast__id_t2LR9Ast__id_ti(access_op_0, ndims_2 - 1, &v_772, 0), _fx_catch_183); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_728), _fx_catch_183); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_3, &v_752, 0), _fx_catch_183); - FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_752, true, &v_753), _fx_catch_183); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_751, v_753, false, &v_753), _fx_catch_183); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(ctyp_0, &v_754, 0), _fx_catch_183); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_2, &v_729, 0), _fx_catch_183); + FX_CALL(_fx_cons_LN14C_form__cexp_t(arr_exp_5, v_729, true, &v_730), _fx_catch_183); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_728, v_730, false, &v_730), _fx_catch_183); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(ctyp_0, &v_731, 0), _fx_catch_183); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_798, - v_753, v_754, &kloc_0, &get_elem_exp_9, 0), _fx_catch_183); - FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(get_elem_exp_9, &v_755, 0), _fx_catch_183); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_755, ccode_139, &v_1); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_772, + v_730, v_731, &kloc_0, &get_elem_exp_9, 0), _fx_catch_183); + FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(get_elem_exp_9, &v_732, 0), _fx_catch_183); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_732, ccode_115, &v_1); } _fx_catch_183: ; - if (v_755) { - _fx_free_N14C_form__cexp_t(&v_755); + if (v_732) { + _fx_free_N14C_form__cexp_t(&v_732); } if (get_elem_exp_9) { _fx_free_N14C_form__cexp_t(&get_elem_exp_9); } - if (v_754) { - _fx_free_N14C_form__ctyp_t(&v_754); + if (v_731) { + _fx_free_N14C_form__ctyp_t(&v_731); } - if (v_753) { - _fx_free_LN14C_form__cexp_t(&v_753); + if (v_730) { + _fx_free_LN14C_form__cexp_t(&v_730); } - if (v_752) { - _fx_free_LN14C_form__cexp_t(&v_752); + if (v_729) { + _fx_free_LN14C_form__cexp_t(&v_729); } - if (v_751) { - _fx_free_N14C_form__cexp_t(&v_751); + if (v_728) { + _fx_free_N14C_form__cexp_t(&v_728); } FX_FREE_LIST_SIMPLE(&access_op_0); - if (ccode_139) { - _fx_free_LN15C_form__cstmt_t(&ccode_139); - } - if (ccode_138) { - _fx_free_LN15C_form__cstmt_t(&ccode_138); + if (ccode_115) { + _fx_free_LN15C_form__cstmt_t(&ccode_115); } - if (i_exps_3) { - _fx_free_LN14C_form__cexp_t(&i_exps_3); - } - _fx_free_Nt6option1N14C_form__cexp_t(&chk_exp_opt_0); - _fx_free_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&v_750); + _fx_free_Nt6option1N14C_form__cexp_t(&chk_exp_opt_1); if (idxs_4) { _fx_free_LN13K_form__dom_t(&idxs_4); } - _fx_free_T3Nt6option1N14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___17); - if (ccode_137) { - _fx_free_LN15C_form__cstmt_t(&ccode_137); + if (ccode_114) { + _fx_free_LN15C_form__cstmt_t(&ccode_114); } - if (v_749) { - _fx_free_N15C_form__cstmt_t(&v_749); + if (i_exps_2) { + _fx_free_LN14C_form__cexp_t(&i_exps_2); + } + _fx_free_Nt6option1N14C_form__cexp_t(&chk_exp_opt_0); + if (ccode_113) { + _fx_free_LN15C_form__cstmt_t(&ccode_113); + } + if (v_727) { + _fx_free_N15C_form__cstmt_t(&v_727); } if (sub_ccode_11) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_11); @@ -29670,14 +28955,14 @@ static int if (call_subarr_0) { _fx_free_N14C_form__cexp_t(&call_subarr_0); } - if (v_748) { - _fx_free_LN14C_form__cexp_t(&v_748); + if (v_726) { + _fx_free_LN14C_form__cexp_t(&v_726); } - if (v_747) { - _fx_free_N14C_form__cexp_t(&v_747); + if (v_725) { + _fx_free_N14C_form__cexp_t(&v_725); } - if (v_746) { - _fx_free_N14C_form__cexp_t(&v_746); + if (v_724) { + _fx_free_N14C_form__cexp_t(&v_724); } if (sub_ccode_10) { _fx_free_LN15C_form__cstmt_t(&sub_ccode_10); @@ -29685,72 +28970,70 @@ static int if (rdata_exp_0) { _fx_free_N14C_form__cexp_t(&rdata_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_745); - _fx_free_Nt6option1N14C_form__cexp_t(&v_744); - _fx_free_R16Ast__val_flags_t(&v_743); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_723); + _fx_free_Nt6option1N14C_form__cexp_t(&v_722); + _fx_free_R16Ast__val_flags_t(&v_721); if (rdata_arr_0) { _fx_free_N14C_form__cexp_t(&rdata_arr_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_742); - if (v_741) { - _fx_free_LN14C_form__cexp_t(&v_741); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_720); + if (v_719) { + _fx_free_LN14C_form__cexp_t(&v_719); } if (rdata_ctyp_0) { _fx_free_N14C_form__ctyp_t(&rdata_ctyp_0); } - FX_FREE_LIST_SIMPLE(&v_740); - if (ccode_136) { - _fx_free_LN15C_form__cstmt_t(&ccode_136); + FX_FREE_LIST_SIMPLE(&v_718); + if (ccode_112) { + _fx_free_LN15C_form__cstmt_t(&ccode_112); } if (subarr_exp_1) { _fx_free_N14C_form__cexp_t(&subarr_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_739); - if (ccode_135) { - _fx_free_LN15C_form__cstmt_t(&ccode_135); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_717); + if (idxs_3) { + _fx_free_LN13K_form__dom_t(&idxs_3); + } + if (ccode_111) { + _fx_free_LN15C_form__cstmt_t(&ccode_111); } if (range_data_0) { _fx_free_LN14C_form__cexp_t(&range_data_0); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_738); - if (idxs_3) { - _fx_free_LN13K_form__dom_t(&idxs_3); - } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___16); - fx_free_exn(&v_737); - if (v_736) { - _fx_free_LN15C_form__cstmt_t(&v_736); + fx_free_exn(&v_716); + if (v_715) { + _fx_free_LN15C_form__cstmt_t(&v_715); } if (call_flatten_0) { _fx_free_N14C_form__cexp_t(&call_flatten_0); } - if (v_735) { - _fx_free_LN14C_form__cexp_t(&v_735); + if (v_714) { + _fx_free_LN14C_form__cexp_t(&v_714); } - if (v_734) { - _fx_free_N14C_form__cexp_t(&v_734); + if (v_713) { + _fx_free_N14C_form__cexp_t(&v_713); } - if (v_733) { - _fx_free_N14C_form__cexp_t(&v_733); + if (v_712) { + _fx_free_N14C_form__cexp_t(&v_712); } if (subarr_exp_0) { _fx_free_N14C_form__cexp_t(&subarr_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_732); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_711); if (idxs_2) { _fx_free_LN13K_form__dom_t(&idxs_2); } } else { - fx_exn_t v_799 = {0}; + fx_exn_t v_773 = {0}; fx_str_t slit_170 = FX_MAKE_STR( "cgen: unknown/unsupported type of the container, it should be CTypArray _ or CTypVector _ or CTypString"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_170, &v_799, 0), _fx_catch_184); - FX_THROW(&v_799, false, _fx_catch_184); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_170, &v_773, 0), _fx_catch_184); + FX_THROW(&v_773, false, _fx_catch_184); _fx_catch_184: ; - fx_free_exn(&v_799); + fx_free_exn(&v_773); } FX_CHECK_EXN(_fx_catch_185); @@ -29761,43 +29044,43 @@ static int if (lbl_5) { _fx_free_N14C_form__cexp_t(&lbl_5); } - if (ccode_121) { - _fx_free_LN15C_form__cstmt_t(&ccode_121); + if (ccode_97) { + _fx_free_LN15C_form__cstmt_t(&ccode_97); } if (arr_exp_5) { _fx_free_N14C_form__cexp_t(&arr_exp_5); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_646); - fx_free_exn(&v_645); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_625); + fx_free_exn(&v_624); goto _fx_endmatch_49; } if (tag_0 == 20) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_800 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_774 = {0}; _fx_N14C_form__cexp_t ce1_7 = 0; - _fx_LN15C_form__cstmt_t ccode_150 = 0; - _fx_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti v_801 = {0}; + _fx_LN15C_form__cstmt_t ccode_116 = 0; + _fx_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti v_775 = {0}; _fx_N14C_form__cexp_t ce1_8 = 0; _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_0 = 0; - fx_str_t v_802 = {0}; - fx_str_t v_803 = {0}; - fx_str_t v_804 = {0}; - fx_exn_t v_805 = {0}; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_806 = {0}; - _fx_N14C_form__cexp_t v_807 = 0; + fx_str_t v_776 = {0}; + fx_str_t v_777 = {0}; + fx_str_t v_778 = {0}; + fx_exn_t v_779 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_780 = {0}; + _fx_N14C_form__cexp_t v_781 = 0; _fx_T3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t* vcase_18 = &kexp_0->u.KExpMem; int_ n_1 = vcase_18->t1; FX_CALL( _fx_M10C_gen_codeFM7id2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t9R9Ast__id_tBLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( &vcase_18->t0, false, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_800, 0), _fx_catch_186); - FX_COPY_PTR(v_800.t0, &ce1_7); - FX_COPY_PTR(v_800.t1, &ccode_150); + km_idx_0, &v_774, 0), _fx_catch_186); + FX_COPY_PTR(v_774.t0, &ce1_7); + FX_COPY_PTR(v_774.t1, &ccode_116); FX_CALL( _fx_M10C_gen_codeFM10get_structT4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti1N14C_form__cexp_t(ce1_7, - &v_801, 0), _fx_catch_186); - FX_COPY_PTR(v_801.t1, &ce1_8); - FX_COPY_PTR(v_801.t2, &relems_0); - int_ ofs_0 = v_801.t3; + &v_775, 0), _fx_catch_186); + FX_COPY_PTR(v_775.t1, &ce1_8); + FX_COPY_PTR(v_775.t2, &relems_0); + int_ ofs_0 = v_775.t3; int_ nelems_0; FX_CALL(_fx_M10C_gen_codeFM8length1_i1LT2R9Ast__id_tN14C_form__ctyp_t(relems_0, &nelems_0, 0), _fx_catch_186); bool t_11; @@ -29808,189 +29091,189 @@ static int t_11 = n_1 + ofs_0 >= nelems_0; } if (t_11) { - FX_CALL(_fx_F6stringS1i(n_1, &v_802, 0), _fx_catch_186); - FX_CALL(_fx_F6stringS1i(nelems_0, &v_803, 0), _fx_catch_186); + FX_CALL(_fx_F6stringS1i(n_1, &v_776, 0), _fx_catch_186); + FX_CALL(_fx_F6stringS1i(nelems_0, &v_777, 0), _fx_catch_186); fx_str_t slit_171 = FX_MAKE_STR("cgen: the tuple/record element index "); fx_str_t slit_172 = FX_MAKE_STR(" is out of range [0, "); fx_str_t slit_173 = FX_MAKE_STR("]"); { - const fx_str_t strs_31[] = { slit_171, v_802, slit_172, v_803, slit_173 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_31, 5, &v_804), _fx_catch_186); + const fx_str_t strs_30[] = { slit_171, v_776, slit_172, v_777, slit_173 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_30, 5, &v_778), _fx_catch_186); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_804, &v_805, 0), _fx_catch_186); - FX_THROW(&v_805, false, _fx_catch_186); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_778, &v_779, 0), _fx_catch_186); + FX_THROW(&v_779, false, _fx_catch_186); } FX_CALL( - _fx_M10C_gen_codeFM3nthT2R9Ast__id_tN14C_form__ctyp_t2LT2R9Ast__id_tN14C_form__ctyp_ti(relems_0, n_1 + ofs_0, &v_806, + _fx_M10C_gen_codeFM3nthT2R9Ast__id_tN14C_form__ctyp_t2LT2R9Ast__id_tN14C_form__ctyp_ti(relems_0, n_1 + ofs_0, &v_780, 0), _fx_catch_186); - _fx_R9Ast__id_t n_id_1 = v_806.t0; + _fx_R9Ast__id_t n_id_1 = v_780.t0; FX_CALL( - _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(ce1_8, &n_id_1, ctyp_0, &v_807, + _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(ce1_8, &n_id_1, ctyp_0, &v_781, 0), _fx_catch_186); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_807, ccode_150, &v_1); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_781, ccode_116, &v_1); _fx_catch_186: ; - if (v_807) { - _fx_free_N14C_form__cexp_t(&v_807); - } - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_806); - fx_free_exn(&v_805); - FX_FREE_STR(&v_804); - FX_FREE_STR(&v_803); - FX_FREE_STR(&v_802); + if (v_781) { + _fx_free_N14C_form__cexp_t(&v_781); + } + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_780); + fx_free_exn(&v_779); + FX_FREE_STR(&v_778); + FX_FREE_STR(&v_777); + FX_FREE_STR(&v_776); if (relems_0) { _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_0); } if (ce1_8) { _fx_free_N14C_form__cexp_t(&ce1_8); } - _fx_free_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti(&v_801); - if (ccode_150) { - _fx_free_LN15C_form__cstmt_t(&ccode_150); + _fx_free_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti(&v_775); + if (ccode_116) { + _fx_free_LN15C_form__cstmt_t(&ccode_116); } if (ce1_7) { _fx_free_N14C_form__cexp_t(&ce1_7); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_800); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_774); goto _fx_endmatch_49; } if (tag_0 == 21) { _fx_N14K_form__ktyp_t ktyp_2 = 0; - _fx_LN15C_form__cstmt_t ccode_151 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_808 = {0}; + _fx_LN15C_form__cstmt_t ccode_117 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_782 = {0}; _fx_N14C_form__cexp_t i_exp_10 = 0; - _fx_LN15C_form__cstmt_t ccode_152 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_809 = {0}; + _fx_LN15C_form__cstmt_t ccode_118 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_783 = {0}; _fx_N14C_form__cexp_t e_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_153 = 0; + _fx_LN15C_form__cstmt_t ccode_119 = 0; _fx_N14C_form__ctyp_t ctyp_2 = 0; - _fx_N14C_form__cexp_t v_810 = 0; - _fx_N14C_form__cexp_t v_811 = 0; - _fx_N14C_form__cexp_t v_812 = 0; - _fx_LN14C_form__cexp_t v_813 = 0; + _fx_N14C_form__cexp_t v_784 = 0; + _fx_N14C_form__cexp_t v_785 = 0; + _fx_N14C_form__cexp_t v_786 = 0; + _fx_LN14C_form__cexp_t v_787 = 0; _fx_N14C_form__cexp_t copy_arr_data_0 = 0; - _fx_LN15C_form__cstmt_t ccode_154 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_814 = {0}; + _fx_LN15C_form__cstmt_t ccode_120 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_788 = {0}; _fx_N14C_form__cexp_t i_exp_11 = 0; - _fx_LN15C_form__cstmt_t ccode_155 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_815 = {0}; + _fx_LN15C_form__cstmt_t ccode_121 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_789 = {0}; _fx_N14C_form__cexp_t a_exp_4 = 0; - _fx_LN15C_form__cstmt_t ccode_156 = 0; + _fx_LN15C_form__cstmt_t ccode_122 = 0; _fx_T3R9Ast__id_tN14K_form__atom_tR10Ast__loc_t* vcase_19 = &kexp_0->u.KExpAssign; _fx_N14K_form__atom_t* a_11 = &vcase_19->t1; _fx_R9Ast__id_t* i_6 = &vcase_19->t0; FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(i_6, &kloc_0, &ktyp_2, 0), _fx_catch_187); - _fx_R17K_form__ktprops_t v_816; - FX_CALL(_fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(ktyp_2, &kloc_0, &v_816, 0), + _fx_R17K_form__ktprops_t v_790; + FX_CALL(_fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(ktyp_2, &kloc_0, &v_790, 0), _fx_catch_187); - bool ktp_complex_0 = v_816.ktp_complex; + bool ktp_complex_0 = v_790.ktp_complex; if (ktp_complex_0) { FX_CALL( _fx_M10C_gen_codeFM7id2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t9R9Ast__id_tBLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( i_6, true, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_808, 0), _fx_catch_187); - FX_COPY_PTR(v_808.t0, &i_exp_10); - FX_COPY_PTR(v_808.t1, &ccode_152); - FX_CALL(atom2cexp__0.fp(a_11, true, ccode_152, &kloc_0, &v_809, atom2cexp__0.fcv), _fx_catch_187); - FX_COPY_PTR(v_809.t0, &e_exp_0); - FX_COPY_PTR(v_809.t1, &ccode_153); + &v_782, 0), _fx_catch_187); + FX_COPY_PTR(v_782.t0, &i_exp_10); + FX_COPY_PTR(v_782.t1, &ccode_118); + FX_CALL(atom2cexp__0.fp(a_11, true, ccode_118, &kloc_0, &v_783, atom2cexp__0.fcv), _fx_catch_187); + FX_COPY_PTR(v_783.t0, &e_exp_0); + FX_COPY_PTR(v_783.t1, &ccode_119); FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(i_exp_10, &ctyp_2, 0), _fx_catch_187); - bool v_817; - FX_CALL(_fx_M6K_formFM11is_subarrayB2R9Ast__id_tR10Ast__loc_t(i_6, &kloc_0, &v_817, 0), _fx_catch_187); - if (v_817) { - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_exp_0, &v_810, 0), _fx_catch_187); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(i_exp_10, &v_811, 0), _fx_catch_187); - FX_CALL(_fx_M6C_formFM13make_bool_expN14C_form__cexp_t2BR10Ast__loc_t(true, &kloc_0, &v_812, 0), _fx_catch_187); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_812, 0, true, &v_813), _fx_catch_187); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_811, v_813, false, &v_813), _fx_catch_187); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_810, v_813, false, &v_813), _fx_catch_187); + bool v_791; + FX_CALL(_fx_M6K_formFM11is_subarrayB2R9Ast__id_tR10Ast__loc_t(i_6, &kloc_0, &v_791, 0), _fx_catch_187); + if (v_791) { + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(e_exp_0, &v_784, 0), _fx_catch_187); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(i_exp_10, &v_785, 0), _fx_catch_187); + FX_CALL(_fx_M6C_formFM13make_bool_expN14C_form__cexp_t2BR10Ast__loc_t(true, &kloc_0, &v_786, 0), _fx_catch_187); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_786, 0, true, &v_787), _fx_catch_187); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_785, v_787, false, &v_787), _fx_catch_187); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_784, v_787, false, &v_787), _fx_catch_187); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g28C_form__std_fx_copy_arr_data, v_813, _fx_g19C_gen_code__CTypInt, &kloc_0, ©_arr_data_0, 0), + &_fx_g28C_form__std_fx_copy_arr_data, v_787, _fx_g19C_gen_code__CTypInt, &kloc_0, ©_arr_data_0, 0), _fx_catch_187); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - copy_arr_data_0, ccode_153, &kloc_0, block_stack_ref_0, &ccode_151, 0), _fx_catch_187); + copy_arr_data_0, ccode_119, &kloc_0, block_stack_ref_0, &ccode_117, 0), _fx_catch_187); } else { FX_CALL( _fx_M11C_gen_typesFM13gen_free_codeLN15C_form__cstmt_t6N14C_form__cexp_tN14C_form__ctyp_tBBLN15C_form__cstmt_tR10Ast__loc_t( - i_exp_10, ctyp_2, true, false, ccode_153, &kloc_0, &ccode_154, 0), _fx_catch_187); + i_exp_10, ctyp_2, true, false, ccode_119, &kloc_0, &ccode_120, 0), _fx_catch_187); FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - e_exp_0, i_exp_10, ctyp_2, ccode_154, &kloc_0, &ccode_151, 0), _fx_catch_187); + e_exp_0, i_exp_10, ctyp_2, ccode_120, &kloc_0, &ccode_117, 0), _fx_catch_187); } } else { FX_CALL( _fx_M10C_gen_codeFM7id2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t9R9Ast__id_tBLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( i_6, false, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_814, 0), _fx_catch_187); - FX_COPY_PTR(v_814.t0, &i_exp_11); - FX_COPY_PTR(v_814.t1, &ccode_155); + &v_788, 0), _fx_catch_187); + FX_COPY_PTR(v_788.t0, &i_exp_11); + FX_COPY_PTR(v_788.t1, &ccode_121); FX_CALL( - atom2cexp_0.fp(a_11, ccode_155, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, - km_idx_0, &v_815, atom2cexp_0.fcv), _fx_catch_187); - FX_COPY_PTR(v_815.t0, &a_exp_4); - FX_COPY_PTR(v_815.t1, &ccode_156); + atom2cexp_0.fp(a_11, ccode_121, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, + km_idx_0, &v_789, atom2cexp_0.fcv), _fx_catch_187); + FX_COPY_PTR(v_789.t0, &a_exp_4); + FX_COPY_PTR(v_789.t1, &ccode_122); FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - a_exp_4, i_exp_11, ctyp_0, ccode_156, &kloc_0, &ccode_151, 0), _fx_catch_187); + a_exp_4, i_exp_11, ctyp_0, ccode_122, &kloc_0, &ccode_117, 0), _fx_catch_187); } - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, ccode_151, &v_1); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, ccode_117, &v_1); _fx_catch_187: ; - if (ccode_156) { - _fx_free_LN15C_form__cstmt_t(&ccode_156); + if (ccode_122) { + _fx_free_LN15C_form__cstmt_t(&ccode_122); } if (a_exp_4) { _fx_free_N14C_form__cexp_t(&a_exp_4); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_815); - if (ccode_155) { - _fx_free_LN15C_form__cstmt_t(&ccode_155); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_789); + if (ccode_121) { + _fx_free_LN15C_form__cstmt_t(&ccode_121); } if (i_exp_11) { _fx_free_N14C_form__cexp_t(&i_exp_11); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_814); - if (ccode_154) { - _fx_free_LN15C_form__cstmt_t(&ccode_154); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_788); + if (ccode_120) { + _fx_free_LN15C_form__cstmt_t(&ccode_120); } if (copy_arr_data_0) { _fx_free_N14C_form__cexp_t(©_arr_data_0); } - if (v_813) { - _fx_free_LN14C_form__cexp_t(&v_813); + if (v_787) { + _fx_free_LN14C_form__cexp_t(&v_787); } - if (v_812) { - _fx_free_N14C_form__cexp_t(&v_812); + if (v_786) { + _fx_free_N14C_form__cexp_t(&v_786); } - if (v_811) { - _fx_free_N14C_form__cexp_t(&v_811); + if (v_785) { + _fx_free_N14C_form__cexp_t(&v_785); } - if (v_810) { - _fx_free_N14C_form__cexp_t(&v_810); + if (v_784) { + _fx_free_N14C_form__cexp_t(&v_784); } if (ctyp_2) { _fx_free_N14C_form__ctyp_t(&ctyp_2); } - if (ccode_153) { - _fx_free_LN15C_form__cstmt_t(&ccode_153); + if (ccode_119) { + _fx_free_LN15C_form__cstmt_t(&ccode_119); } if (e_exp_0) { _fx_free_N14C_form__cexp_t(&e_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_809); - if (ccode_152) { - _fx_free_LN15C_form__cstmt_t(&ccode_152); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_783); + if (ccode_118) { + _fx_free_LN15C_form__cstmt_t(&ccode_118); } if (i_exp_10) { _fx_free_N14C_form__cexp_t(&i_exp_10); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_808); - if (ccode_151) { - _fx_free_LN15C_form__cstmt_t(&ccode_151); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_782); + if (ccode_117) { + _fx_free_LN15C_form__cstmt_t(&ccode_117); } if (ktyp_2) { _fx_free_N14K_form__ktyp_t(&ktyp_2); @@ -29998,95 +29281,95 @@ static int goto _fx_endmatch_49; } if (tag_0 == 22) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_818 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_792 = {0}; _fx_N14C_form__cexp_t dst_exp_13 = 0; - _fx_LN15C_form__cstmt_t ccode_157 = 0; - _fx_LN15C_form__cstmt_t ccode_158 = 0; + _fx_LN15C_form__cstmt_t ccode_123 = 0; + _fx_LN15C_form__cstmt_t ccode_124 = 0; fx_str_t slit_174 = FX_MAKE_STR("res"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_174, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_818, 0), _fx_catch_188); - FX_COPY_PTR(v_818.t0, &dst_exp_13); - FX_COPY_PTR(v_818.t1, &ccode_157); + dstexp_r_0, &slit_174, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_792, 0), _fx_catch_188); + FX_COPY_PTR(v_792.t0, &dst_exp_13); + FX_COPY_PTR(v_792.t1, &ccode_123); FX_CALL( - process_cases_0.fp(kexp_0->u.KExpMatch.t0, dstexp_r_0, ccode_157, false, &kloc_0, block_stack_ref_0, + process_cases_0.fp(kexp_0->u.KExpMatch.t0, dstexp_r_0, ccode_123, false, &kloc_0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, - &ccode_158, process_cases_0.fcv), _fx_catch_188); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_13, ccode_158, &v_1); + &ccode_124, process_cases_0.fcv), _fx_catch_188); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_13, ccode_124, &v_1); _fx_catch_188: ; - if (ccode_158) { - _fx_free_LN15C_form__cstmt_t(&ccode_158); + if (ccode_124) { + _fx_free_LN15C_form__cstmt_t(&ccode_124); } - if (ccode_157) { - _fx_free_LN15C_form__cstmt_t(&ccode_157); + if (ccode_123) { + _fx_free_LN15C_form__cstmt_t(&ccode_123); } if (dst_exp_13) { _fx_free_N14C_form__cexp_t(&dst_exp_13); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_818); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_792); goto _fx_endmatch_49; } if (tag_0 == 23) { - _fx_Ta2N14K_form__kexp_t v_819 = {0}; + _fx_Ta2N14K_form__kexp_t v_793 = {0}; _fx_N14K_form__kexp_t pop_exn_0 = 0; _fx_N14K_form__kexp_t catch_e_0 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_820 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_794 = {0}; _fx_N14C_form__cexp_t dst_exp_14 = 0; - _fx_LN15C_form__cstmt_t ccode_159 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_821 = {0}; + _fx_LN15C_form__cstmt_t ccode_125 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_795 = {0}; _fx_LN15C_form__cstmt_t try_ccode_0 = 0; _fx_rR23C_gen_code__block_ctx_t bctx_try_0 = 0; _fx_LN15C_form__cstmt_t bctx_cleanup_1 = 0; _fx_LN15C_form__cstmt_t bctx_prologue_1 = 0; _fx_LN15C_form__cstmt_t epilogue_1 = 0; - _fx_N15C_form__cstmt_t v_822 = 0; - _fx_LN15C_form__cstmt_t v_823 = 0; - _fx_LN15C_form__cstmt_t v_824 = 0; - _fx_LN15C_form__cstmt_t v_825 = 0; - _fx_LN15C_form__cstmt_t ccode_160 = 0; + _fx_N15C_form__cstmt_t v_796 = 0; + _fx_LN15C_form__cstmt_t v_797 = 0; + _fx_LN15C_form__cstmt_t v_798 = 0; + _fx_LN15C_form__cstmt_t v_799 = 0; + _fx_LN15C_form__cstmt_t ccode_126 = 0; _fx_N14C_form__cexp_t fx_status_exp_1 = 0; - _fx_rNt6option1N14C_form__cexp_t v_826 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_827 = {0}; + _fx_rNt6option1N14C_form__cexp_t v_800 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_801 = {0}; _fx_LN15C_form__cstmt_t catch_ccode_0 = 0; - _fx_N14C_form__cexp_t v_828 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_829 = {0}; - _fx_N14C_form__cexp_t v_830 = 0; - _fx_N15C_form__cstmt_t v_831 = 0; + _fx_N14C_form__cexp_t v_802 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_803 = {0}; + _fx_N14C_form__cexp_t v_804 = 0; + _fx_N15C_form__cstmt_t v_805 = 0; _fx_LN15C_form__cstmt_t catch_ccode_1 = 0; _fx_LN15C_form__cstmt_t catch_ccode_2 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_832 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_806 = {0}; _fx_LN15C_form__cstmt_t catch_ccode_3 = 0; - _fx_N14C_form__cexp_t v_833 = 0; - _fx_N14C_form__cexp_t v_834 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_835 = {0}; + _fx_N14C_form__cexp_t v_807 = 0; + _fx_N14C_form__cexp_t v_808 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_809 = {0}; _fx_N14C_form__cexp_t check_neg_status_0 = 0; - _fx_N15C_form__cstmt_t v_836 = 0; - _fx_N15C_form__cstmt_t v_837 = 0; + _fx_N15C_form__cstmt_t v_810 = 0; + _fx_N15C_form__cstmt_t v_811 = 0; _fx_N15C_form__cstmt_t catch_clause_0 = 0; - _fx_LN15C_form__cstmt_t v_838 = 0; + _fx_LN15C_form__cstmt_t v_812 = 0; _fx_T3N14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_20 = &kexp_0->u.KExpTryCatch; _fx_N14K_form__kexp_t catch_e_1 = vcase_20->t1; _fx_N14K_form__kexp_t try_e_0 = vcase_20->t0; int tag_25 = FX_REC_VARIANT_TAG(catch_e_1); if (tag_25 == 10) { - _fx_LN14K_form__kexp_t v_839 = catch_e_1->u.KExpSeq.t0; - if (v_839 != 0) { - _fx_N14K_form__kexp_t pop_exn_1 = v_839->hd; + _fx_LN14K_form__kexp_t v_813 = catch_e_1->u.KExpSeq.t0; + if (v_813 != 0) { + _fx_N14K_form__kexp_t pop_exn_1 = v_813->hd; if (FX_REC_VARIANT_TAG(pop_exn_1) == 31) { - _fx_N14K_form__kexp_t v_840 = pop_exn_1->u.KDefVal.t1; - if (FX_REC_VARIANT_TAG(v_840) == 8) { - if (v_840->u.KExpIntrin.t0.tag == 1) { - _fx_N14K_form__kexp_t v_841 = 0; + _fx_N14K_form__kexp_t v_814 = pop_exn_1->u.KDefVal.t1; + if (FX_REC_VARIANT_TAG(v_814) == 8) { + if (v_814->u.KExpIntrin.t0.tag == 1) { + _fx_N14K_form__kexp_t v_815 = 0; FX_CALL( - _fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_839->tl, &kloc_0, &v_841, + _fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_813->tl, &kloc_0, &v_815, 0), _fx_catch_189); - _fx_make_Ta2N14K_form__kexp_t(pop_exn_1, v_841, &v_819); + _fx_make_Ta2N14K_form__kexp_t(pop_exn_1, v_815, &v_793); _fx_catch_189: ; - if (v_841) { - _fx_free_N14K_form__kexp_t(&v_841); + if (v_815) { + _fx_free_N14K_form__kexp_t(&v_815); } goto _fx_endmatch_29; } @@ -30095,44 +29378,44 @@ static int } } if (tag_25 == 10) { - _fx_LN14K_form__kexp_t v_842 = catch_e_1->u.KExpSeq.t0; - if (v_842 != 0) { - _fx_N14K_form__kexp_t pop_exn_2 = v_842->hd; + _fx_LN14K_form__kexp_t v_816 = catch_e_1->u.KExpSeq.t0; + if (v_816 != 0) { + _fx_N14K_form__kexp_t pop_exn_2 = v_816->hd; if (FX_REC_VARIANT_TAG(pop_exn_2) == 8) { if (pop_exn_2->u.KExpIntrin.t0.tag == 1) { - _fx_N14K_form__kexp_t v_843 = 0; + _fx_N14K_form__kexp_t v_817 = 0; FX_CALL( - _fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_842->tl, &kloc_0, &v_843, 0), + _fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_816->tl, &kloc_0, &v_817, 0), _fx_catch_190); - _fx_make_Ta2N14K_form__kexp_t(pop_exn_2, v_843, &v_819); + _fx_make_Ta2N14K_form__kexp_t(pop_exn_2, v_817, &v_793); _fx_catch_190: ; - if (v_843) { - _fx_free_N14K_form__kexp_t(&v_843); + if (v_817) { + _fx_free_N14K_form__kexp_t(&v_817); } goto _fx_endmatch_29; } } } } - fx_exn_t v_844 = {0}; + fx_exn_t v_818 = {0}; fx_str_t slit_175 = FX_MAKE_STR("catch part in KExpTryCatch() should be a sequence starting with \'val x = pop_exn()\'"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_175, &v_844, 0), _fx_catch_191); - FX_THROW(&v_844, false, _fx_catch_191); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_175, &v_818, 0), _fx_catch_191); + FX_THROW(&v_818, false, _fx_catch_191); _fx_catch_191: ; - fx_free_exn(&v_844); + fx_free_exn(&v_818); _fx_endmatch_29: ; FX_CHECK_EXN(_fx_catch_193); - FX_COPY_PTR(v_819.t0, &pop_exn_0); - FX_COPY_PTR(v_819.t1, &catch_e_0); + FX_COPY_PTR(v_793.t0, &pop_exn_0); + FX_COPY_PTR(v_793.t1, &catch_e_0); fx_str_t slit_176 = FX_MAKE_STR("res"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_176, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_820, 0), _fx_catch_193); - FX_COPY_PTR(v_820.t0, &dst_exp_14); - FX_COPY_PTR(v_820.t1, &ccode_159); + dstexp_r_0, &slit_176, ctyp_0, ccode_0, &kloc_0, block_stack_ref_0, km_idx_0, &v_794, 0), _fx_catch_193); + FX_COPY_PTR(v_794.t0, &dst_exp_14); + FX_COPY_PTR(v_794.t1, &ccode_125); _fx_R10Ast__loc_t try_loc_0; FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(try_e_0, &try_loc_0, 0), _fx_catch_193); _fx_R10Ast__loc_t try_end_loc_0; @@ -30144,55 +29427,55 @@ static int _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( try_e_0, dstexp_r_0, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, return_used_ref_0, - top_inline_ccode_ref_0, u1vals_0, &v_821, fx_fv), _fx_catch_193); - FX_COPY_PTR(v_821.t1, &try_ccode_0); + top_inline_ccode_ref_0, u1vals_0, &v_795, fx_fv), _fx_catch_193); + FX_COPY_PTR(v_795.t1, &try_ccode_0); FX_CALL( _fx_M10C_gen_codeFM14curr_block_ctxrRM11block_ctx_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &bctx_try_0, 0), _fx_catch_193); - _fx_R23C_gen_code__block_ctx_t* v_845 = &bctx_try_0->data; - int_ bctx_label_used_1 = v_845->bctx_label_used; - _fx_R9Ast__id_t bctx_label_1 = v_845->bctx_label; - FX_COPY_PTR(v_845->bctx_cleanup, &bctx_cleanup_1); - FX_COPY_PTR(v_845->bctx_prologue, &bctx_prologue_1); + _fx_R23C_gen_code__block_ctx_t* v_819 = &bctx_try_0->data; + int_ bctx_label_used_1 = v_819->bctx_label_used; + _fx_R9Ast__id_t bctx_label_1 = v_819->bctx_label; + FX_COPY_PTR(v_819->bctx_cleanup, &bctx_cleanup_1); + FX_COPY_PTR(v_819->bctx_prologue, &bctx_prologue_1); if (bctx_label_used_1 == 0) { FX_COPY_PTR(bctx_cleanup_1, &epilogue_1); } else { - FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&bctx_label_1, &try_end_loc_0, &v_822), + FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&bctx_label_1, &try_end_loc_0, &v_796), _fx_catch_193); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_822, 0, true, &v_823), _fx_catch_193); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_796, 0, true, &v_797), _fx_catch_193); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(bctx_cleanup_1, v_823, + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(bctx_cleanup_1, v_797, &epilogue_1, 0), _fx_catch_193); } FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(bctx_prologue_1, ccode_159, - &v_824, 0), _fx_catch_193); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(bctx_prologue_1, ccode_125, + &v_798, 0), _fx_catch_193); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(try_ccode_0, v_824, &v_825, 0), + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(try_ccode_0, v_798, &v_799, 0), _fx_catch_193); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(epilogue_1, v_825, &ccode_160, + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(epilogue_1, v_799, &ccode_126, 0), _fx_catch_193); FX_CALL(_fx_M10C_gen_codeFM13pop_block_ctxv2R10Ast__loc_trLrRM11block_ctx_t(&try_end_loc_0, block_stack_ref_0, 0), _fx_catch_193); FX_CALL( _fx_M10C_gen_codeFM14make_fx_statusN14C_form__cexp_t2R10Ast__loc_tR9Ast__id_t(&try_end_loc_0, fx_status__0, &fx_status_exp_1, 0), _fx_catch_193); - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_826), _fx_catch_193); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_800), _fx_catch_193); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - pop_exn_0, v_826, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, + pop_exn_0, v_800, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, return_used_ref_0, - top_inline_ccode_ref_0, u1vals_0, &v_827, fx_fv), _fx_catch_193); - FX_COPY_PTR(v_827.t1, &catch_ccode_0); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &try_end_loc_0, &v_828, 0), _fx_catch_193); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypVoid, &try_end_loc_0, &v_829); + top_inline_ccode_ref_0, u1vals_0, &v_801, fx_fv), _fx_catch_193); + FX_COPY_PTR(v_801.t1, &catch_ccode_0); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &try_end_loc_0, &v_802, 0), _fx_catch_193); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypVoid, &try_end_loc_0, &v_803); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g21C_gen_code__COpAssign, fx_status_exp_1, v_828, &v_829, &v_830), _fx_catch_193); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_830, &v_831), _fx_catch_193); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_831, catch_ccode_0, true, &catch_ccode_1), _fx_catch_193); + &_fx_g21C_gen_code__COpAssign, fx_status_exp_1, v_802, &v_803, &v_804), _fx_catch_193); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_804, &v_805), _fx_catch_193); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_805, catch_ccode_0, true, &catch_ccode_1), _fx_catch_193); if (FX_REC_VARIANT_TAG(ctyp_0) == 8) { FX_COPY_PTR(catch_ccode_1, &catch_ccode_2); } @@ -30208,97 +29491,97 @@ static int _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( catch_e_0, dstexp_r_0, catch_ccode_2, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_832, fx_fv), _fx_catch_193); - FX_COPY_PTR(v_832.t1, &catch_ccode_3); - _fx_N17C_form__cbinary_t v_846; - _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpLT, &v_846); + return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_806, fx_fv), _fx_catch_193); + FX_COPY_PTR(v_806.t1, &catch_ccode_3); + _fx_N17C_form__cbinary_t v_820; + _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpLT, &v_820); FX_CALL( - _fx_M10C_gen_codeFM14make_fx_statusN14C_form__cexp_t2R10Ast__loc_tR9Ast__id_t(&try_end_loc_0, fx_status__0, &v_833, 0), + _fx_M10C_gen_codeFM14make_fx_statusN14C_form__cexp_t2R10Ast__loc_tR9Ast__id_t(&try_end_loc_0, fx_status__0, &v_807, 0), _fx_catch_193); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &try_end_loc_0, &v_834, 0), _fx_catch_193); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &try_end_loc_0, &v_835); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &try_end_loc_0, &v_808, 0), _fx_catch_193); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &try_end_loc_0, &v_809); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &v_846, v_833, v_834, &v_835, &check_neg_status_0), _fx_catch_193); + &v_820, v_807, v_808, &v_809, &check_neg_status_0), _fx_catch_193); _fx_R10Ast__loc_t catch_loc_0; FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(catch_e_0, &catch_loc_0, 0), _fx_catch_193); FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(catch_ccode_3, &catch_loc_0, &v_836, 0), + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(catch_ccode_3, &catch_loc_0, &v_810, 0), _fx_catch_193); - FX_CALL(_fx_M6C_formFM8CStmtNopN15C_form__cstmt_t1R10Ast__loc_t(&try_end_loc_0, &v_837), _fx_catch_193); + FX_CALL(_fx_M6C_formFM8CStmtNopN15C_form__cstmt_t1R10Ast__loc_t(&try_end_loc_0, &v_811), _fx_catch_193); FX_CALL( _fx_M10C_gen_codeFM7make_ifN15C_form__cstmt_t4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t( - check_neg_status_0, v_836, v_837, &catch_loc_0, &catch_clause_0, 0), _fx_catch_193); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(catch_clause_0, ccode_160, true, &v_838), _fx_catch_193); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_14, v_838, &v_1); + check_neg_status_0, v_810, v_811, &catch_loc_0, &catch_clause_0, 0), _fx_catch_193); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(catch_clause_0, ccode_126, true, &v_812), _fx_catch_193); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dst_exp_14, v_812, &v_1); _fx_catch_193: ; - if (v_838) { - _fx_free_LN15C_form__cstmt_t(&v_838); + if (v_812) { + _fx_free_LN15C_form__cstmt_t(&v_812); } if (catch_clause_0) { _fx_free_N15C_form__cstmt_t(&catch_clause_0); } - if (v_837) { - _fx_free_N15C_form__cstmt_t(&v_837); + if (v_811) { + _fx_free_N15C_form__cstmt_t(&v_811); } - if (v_836) { - _fx_free_N15C_form__cstmt_t(&v_836); + if (v_810) { + _fx_free_N15C_form__cstmt_t(&v_810); } if (check_neg_status_0) { _fx_free_N14C_form__cexp_t(&check_neg_status_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_835); - if (v_834) { - _fx_free_N14C_form__cexp_t(&v_834); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_809); + if (v_808) { + _fx_free_N14C_form__cexp_t(&v_808); } - if (v_833) { - _fx_free_N14C_form__cexp_t(&v_833); + if (v_807) { + _fx_free_N14C_form__cexp_t(&v_807); } if (catch_ccode_3) { _fx_free_LN15C_form__cstmt_t(&catch_ccode_3); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_832); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_806); if (catch_ccode_2) { _fx_free_LN15C_form__cstmt_t(&catch_ccode_2); } if (catch_ccode_1) { _fx_free_LN15C_form__cstmt_t(&catch_ccode_1); } - if (v_831) { - _fx_free_N15C_form__cstmt_t(&v_831); + if (v_805) { + _fx_free_N15C_form__cstmt_t(&v_805); } - if (v_830) { - _fx_free_N14C_form__cexp_t(&v_830); + if (v_804) { + _fx_free_N14C_form__cexp_t(&v_804); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_829); - if (v_828) { - _fx_free_N14C_form__cexp_t(&v_828); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_803); + if (v_802) { + _fx_free_N14C_form__cexp_t(&v_802); } if (catch_ccode_0) { _fx_free_LN15C_form__cstmt_t(&catch_ccode_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_827); - if (v_826) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_826); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_801); + if (v_800) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_800); } if (fx_status_exp_1) { _fx_free_N14C_form__cexp_t(&fx_status_exp_1); } - if (ccode_160) { - _fx_free_LN15C_form__cstmt_t(&ccode_160); + if (ccode_126) { + _fx_free_LN15C_form__cstmt_t(&ccode_126); } - if (v_825) { - _fx_free_LN15C_form__cstmt_t(&v_825); + if (v_799) { + _fx_free_LN15C_form__cstmt_t(&v_799); } - if (v_824) { - _fx_free_LN15C_form__cstmt_t(&v_824); + if (v_798) { + _fx_free_LN15C_form__cstmt_t(&v_798); } - if (v_823) { - _fx_free_LN15C_form__cstmt_t(&v_823); + if (v_797) { + _fx_free_LN15C_form__cstmt_t(&v_797); } - if (v_822) { - _fx_free_N15C_form__cstmt_t(&v_822); + if (v_796) { + _fx_free_N15C_form__cstmt_t(&v_796); } if (epilogue_1) { _fx_free_LN15C_form__cstmt_t(&epilogue_1); @@ -30315,33 +29598,33 @@ static int if (try_ccode_0) { _fx_free_LN15C_form__cstmt_t(&try_ccode_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_821); - if (ccode_159) { - _fx_free_LN15C_form__cstmt_t(&ccode_159); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_795); + if (ccode_125) { + _fx_free_LN15C_form__cstmt_t(&ccode_125); } if (dst_exp_14) { _fx_free_N14C_form__cexp_t(&dst_exp_14); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_820); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_794); if (catch_e_0) { _fx_free_N14K_form__kexp_t(&catch_e_0); } if (pop_exn_0) { _fx_free_N14K_form__kexp_t(&pop_exn_0); } - _fx_free_Ta2N14K_form__kexp_t(&v_819); + _fx_free_Ta2N14K_form__kexp_t(&v_793); goto _fx_endmatch_49; } if (tag_0 == 24) { _fx_N14C_form__cexp_t lbl_6 = 0; - _fx_LN15C_form__cstmt_t ccode_161 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_847 = {0}; + _fx_LN15C_form__cstmt_t ccode_127 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_821 = {0}; _fx_N14C_form__cexp_t i_exp_12 = 0; - _fx_LN15C_form__cstmt_t ccode_162 = 0; - _fx_N14C_form__cexp_t v_848 = 0; - _fx_LN14C_form__cexp_t v_849 = 0; + _fx_LN15C_form__cstmt_t ccode_128 = 0; + _fx_N14C_form__cexp_t v_822 = 0; + _fx_LN14C_form__cexp_t v_823 = 0; _fx_N14C_form__cexp_t throw_exp_0 = 0; - _fx_N15C_form__cstmt_t v_850 = 0; + _fx_N15C_form__cstmt_t v_824 = 0; _fx_T3R9Ast__id_tBR10Ast__loc_t* vcase_21 = &kexp_0->u.KExpThrow; _fx_R9Ast__id_t* i_7 = &vcase_21->t0; FX_CALL( @@ -30351,84 +29634,84 @@ static int FX_CALL( _fx_M10C_gen_codeFM7id2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t9R9Ast__id_tBLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( i_7, false, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_847, 0), _fx_catch_198); - FX_COPY_PTR(v_847.t0, &i_exp_12); - FX_COPY_PTR(v_847.t1, &ccode_162); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(i_exp_12, &v_848, 0), _fx_catch_198); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_6, 0, true, &v_849), _fx_catch_198); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_848, v_849, false, &v_849), _fx_catch_198); + &v_821, 0), _fx_catch_198); + FX_COPY_PTR(v_821.t0, &i_exp_12); + FX_COPY_PTR(v_821.t1, &ccode_128); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(i_exp_12, &v_822, 0), _fx_catch_198); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_6, 0, true, &v_823), _fx_catch_198); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_822, v_823, false, &v_823), _fx_catch_198); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g22C_form__std_FX_RETHROW, v_849, _fx_g20C_gen_code__CTypVoid, &kloc_0, &throw_exp_0, 0), _fx_catch_198); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(throw_exp_0, &v_850), _fx_catch_198); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_850, ccode_162, true, &ccode_161), _fx_catch_198); + &_fx_g22C_form__std_FX_RETHROW, v_823, _fx_g20C_gen_code__CTypVoid, &kloc_0, &throw_exp_0, 0), _fx_catch_198); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(throw_exp_0, &v_824), _fx_catch_198); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_824, ccode_128, true, &ccode_127), _fx_catch_198); } else { - _fx_Nt6option1R9Ast__id_t v_851; + _fx_Nt6option1R9Ast__id_t v_825; FX_CALL( _fx_M10C_gen_codeFM8find_optNt6option1R9Ast__id_t2Rt6Map__t2R9Ast__id_tR9Ast__id_tR9Ast__id_t( - &_fx_g23Ast__builtin_exceptions, i_7, &v_851, 0), _fx_catch_198); - if (v_851.tag == 2) { - fx_str_t v_852 = {0}; - fx_str_t v_853 = {0}; + &_fx_g23Ast__builtin_exceptions, i_7, &v_825, 0), _fx_catch_198); + if (v_825.tag == 2) { + fx_str_t v_826 = {0}; + fx_str_t v_827 = {0}; _fx_N14C_form__cexp_t i_exp_13 = 0; - _fx_LN14C_form__cexp_t v_854 = 0; + _fx_LN14C_form__cexp_t v_828 = 0; _fx_N14C_form__cexp_t throw_exp_1 = 0; - _fx_N15C_form__cstmt_t v_855 = 0; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(i_7, &v_852, 0), _fx_catch_194); + _fx_N15C_form__cstmt_t v_829 = 0; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(i_7, &v_826, 0), _fx_catch_194); fx_str_t slit_177 = FX_MAKE_STR("FX_EXN_"); { - const fx_str_t strs_32[] = { slit_177, v_852 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_32, 2, &v_853), _fx_catch_194); + const fx_str_t strs_31[] = { slit_177, v_826 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_31, 2, &v_827), _fx_catch_194); } _fx_R9Ast__id_t i_8; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_853, &i_8, 0), _fx_catch_194); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_827, &i_8, 0), _fx_catch_194); FX_CALL( _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&i_8, _fx_g20C_gen_code__CTypCInt, &kloc_0, &i_exp_13, 0), _fx_catch_194); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_6, 0, true, &v_854), _fx_catch_194); - FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_13, v_854, false, &v_854), _fx_catch_194); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_6, 0, true, &v_828), _fx_catch_194); + FX_CALL(_fx_cons_LN14C_form__cexp_t(i_exp_13, v_828, false, &v_828), _fx_catch_194); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g25C_form__std_FX_FAST_THROW, v_854, _fx_g20C_gen_code__CTypVoid, &kloc_0, &throw_exp_1, 0), + &_fx_g25C_form__std_FX_FAST_THROW, v_828, _fx_g20C_gen_code__CTypVoid, &kloc_0, &throw_exp_1, 0), _fx_catch_194); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(throw_exp_1, &v_855), _fx_catch_194); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_855, ccode_0, true, &ccode_161), _fx_catch_194); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(throw_exp_1, &v_829), _fx_catch_194); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_829, ccode_0, true, &ccode_127), _fx_catch_194); _fx_catch_194: ; - if (v_855) { - _fx_free_N15C_form__cstmt_t(&v_855); + if (v_829) { + _fx_free_N15C_form__cstmt_t(&v_829); } if (throw_exp_1) { _fx_free_N14C_form__cexp_t(&throw_exp_1); } - if (v_854) { - _fx_free_LN14C_form__cexp_t(&v_854); + if (v_828) { + _fx_free_LN14C_form__cexp_t(&v_828); } if (i_exp_13) { _fx_free_N14C_form__cexp_t(&i_exp_13); } - FX_FREE_STR(&v_853); - FX_FREE_STR(&v_852); + FX_FREE_STR(&v_827); + FX_FREE_STR(&v_826); } else { - _fx_N15K_form__kinfo_t v_856 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_857 = {0}; + _fx_N15K_form__kinfo_t v_830 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_831 = {0}; _fx_N14C_form__cexp_t i_exp_14 = 0; - _fx_LN15C_form__cstmt_t ccode_163 = 0; - _fx_N14C_form__cexp_t v_858 = 0; - _fx_N14C_form__cexp_t v_859 = 0; - _fx_LN14C_form__cexp_t v_860 = 0; + _fx_LN15C_form__cstmt_t ccode_129 = 0; + _fx_N14C_form__cexp_t v_832 = 0; + _fx_N14C_form__cexp_t v_833 = 0; + _fx_LN14C_form__cexp_t v_834 = 0; _fx_N14C_form__cexp_t throw_exp_2 = 0; - _fx_N15C_form__cstmt_t v_861 = 0; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(i_7, &kloc_0, &v_856, 0), _fx_catch_197); - int tag_26 = v_856.tag; + _fx_N15C_form__cstmt_t v_835 = 0; + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(i_7, &kloc_0, &v_830, 0), _fx_catch_197); + int tag_26 = v_830.tag; bool move_f_0; if (tag_26 == 4) { move_f_0 = false; goto _fx_endmatch_30; } if (tag_26 == 2) { - if (FX_REC_VARIANT_TAG(v_856.u.KVal.kv_typ) == 21) { + if (FX_REC_VARIANT_TAG(v_830.u.KVal.kv_typ) == 21) { FX_CALL(_fx_M10C_gen_codeFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(u1vals_0, i_7, &move_f_0, 0), _fx_catch_195); @@ -30436,84 +29719,84 @@ static int goto _fx_endmatch_30; } } - fx_exn_t v_862 = {0}; + fx_exn_t v_836 = {0}; fx_str_t slit_178 = FX_MAKE_STR("cgen: throw is applied to neither exception nor value of \'exn\' type"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_178, &v_862, 0), _fx_catch_196); - FX_THROW(&v_862, false, _fx_catch_196); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_178, &v_836, 0), _fx_catch_196); + FX_THROW(&v_836, false, _fx_catch_196); _fx_catch_196: ; - fx_free_exn(&v_862); + fx_free_exn(&v_836); _fx_endmatch_30: ; FX_CHECK_EXN(_fx_catch_197); FX_CALL( _fx_M10C_gen_codeFM7id2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t9R9Ast__id_tBLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( i_7, move_f_0, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_857, 0), _fx_catch_197); - FX_COPY_PTR(v_857.t0, &i_exp_14); - FX_COPY_PTR(v_857.t1, &ccode_163); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(i_exp_14, &v_858, 0), _fx_catch_197); - FX_CALL(_fx_M6C_formFM13make_bool_expN14C_form__cexp_t2BR10Ast__loc_t(move_f_0, &kloc_0, &v_859, 0), _fx_catch_197); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_6, 0, true, &v_860), _fx_catch_197); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_859, v_860, false, &v_860), _fx_catch_197); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_858, v_860, false, &v_860), _fx_catch_197); + &v_831, 0), _fx_catch_197); + FX_COPY_PTR(v_831.t0, &i_exp_14); + FX_COPY_PTR(v_831.t1, &ccode_129); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(i_exp_14, &v_832, 0), _fx_catch_197); + FX_CALL(_fx_M6C_formFM13make_bool_expN14C_form__cexp_t2BR10Ast__loc_t(move_f_0, &kloc_0, &v_833, 0), _fx_catch_197); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_6, 0, true, &v_834), _fx_catch_197); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_833, v_834, false, &v_834), _fx_catch_197); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_832, v_834, false, &v_834), _fx_catch_197); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g20C_form__std_FX_THROW, v_860, _fx_g20C_gen_code__CTypVoid, &kloc_0, &throw_exp_2, 0), _fx_catch_197); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(throw_exp_2, &v_861), _fx_catch_197); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_861, ccode_163, true, &ccode_161), _fx_catch_197); + &_fx_g20C_form__std_FX_THROW, v_834, _fx_g20C_gen_code__CTypVoid, &kloc_0, &throw_exp_2, 0), _fx_catch_197); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(throw_exp_2, &v_835), _fx_catch_197); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_835, ccode_129, true, &ccode_127), _fx_catch_197); _fx_catch_197: ; - if (v_861) { - _fx_free_N15C_form__cstmt_t(&v_861); + if (v_835) { + _fx_free_N15C_form__cstmt_t(&v_835); } if (throw_exp_2) { _fx_free_N14C_form__cexp_t(&throw_exp_2); } - if (v_860) { - _fx_free_LN14C_form__cexp_t(&v_860); + if (v_834) { + _fx_free_LN14C_form__cexp_t(&v_834); } - if (v_859) { - _fx_free_N14C_form__cexp_t(&v_859); + if (v_833) { + _fx_free_N14C_form__cexp_t(&v_833); } - if (v_858) { - _fx_free_N14C_form__cexp_t(&v_858); + if (v_832) { + _fx_free_N14C_form__cexp_t(&v_832); } - if (ccode_163) { - _fx_free_LN15C_form__cstmt_t(&ccode_163); + if (ccode_129) { + _fx_free_LN15C_form__cstmt_t(&ccode_129); } if (i_exp_14) { _fx_free_N14C_form__cexp_t(&i_exp_14); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_857); - _fx_free_N15K_form__kinfo_t(&v_856); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_831); + _fx_free_N15K_form__kinfo_t(&v_830); } FX_CHECK_EXN(_fx_catch_198); } - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, ccode_161, &v_1); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, ccode_127, &v_1); _fx_catch_198: ; - if (v_850) { - _fx_free_N15C_form__cstmt_t(&v_850); + if (v_824) { + _fx_free_N15C_form__cstmt_t(&v_824); } if (throw_exp_0) { _fx_free_N14C_form__cexp_t(&throw_exp_0); } - if (v_849) { - _fx_free_LN14C_form__cexp_t(&v_849); + if (v_823) { + _fx_free_LN14C_form__cexp_t(&v_823); } - if (v_848) { - _fx_free_N14C_form__cexp_t(&v_848); + if (v_822) { + _fx_free_N14C_form__cexp_t(&v_822); } - if (ccode_162) { - _fx_free_LN15C_form__cstmt_t(&ccode_162); + if (ccode_128) { + _fx_free_LN15C_form__cstmt_t(&ccode_128); } if (i_exp_12) { _fx_free_N14C_form__cexp_t(&i_exp_12); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_847); - if (ccode_161) { - _fx_free_LN15C_form__cstmt_t(&ccode_161); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_821); + if (ccode_127) { + _fx_free_LN15C_form__cstmt_t(&ccode_127); } if (lbl_6) { _fx_free_N14C_form__cexp_t(&lbl_6); @@ -30521,19 +29804,19 @@ static int goto _fx_endmatch_49; } if (tag_0 == 25) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_863 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_837 = {0}; _fx_N14C_form__cexp_t ce1_9 = 0; - _fx_LN15C_form__cstmt_t ccode_164 = 0; + _fx_LN15C_form__cstmt_t ccode_130 = 0; _fx_N14K_form__ktyp_t atyp_0 = 0; _fx_N14C_form__ctyp_t ctyp_3 = 0; - _fx_N14C_form__cexp_t v_864 = 0; + _fx_N14C_form__cexp_t v_838 = 0; _fx_T3N14K_form__atom_tN14K_form__ktyp_tR10Ast__loc_t* vcase_22 = &kexp_0->u.KExpCast; _fx_N14K_form__atom_t* a1_2 = &vcase_22->t0; FX_CALL( atom2cexp_0.fp(a1_2, ccode_0, &kloc_0, block_stack_ref_0, defined_syms_ref_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, - &v_863, atom2cexp_0.fcv), _fx_catch_203); - FX_COPY_PTR(v_863.t0, &ce1_9); - FX_COPY_PTR(v_863.t1, &ccode_164); + &v_837, atom2cexp_0.fcv), _fx_catch_203); + FX_COPY_PTR(v_837.t0, &ce1_9); + FX_COPY_PTR(v_837.t1, &ccode_130); FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(a1_2, &kloc_0, &atyp_0, 0), _fx_catch_203); FX_CALL(_fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(vcase_22->t1, &kloc_0, &ctyp_3, 0), @@ -30542,23 +29825,23 @@ static int if (atyp_0->u.KTypFloat == 16) { if (FX_REC_VARIANT_TAG(ctyp_3) == 7) { if (ctyp_3->u.CTypFloat == 32) { - _fx_LN14C_form__cexp_t v_865 = 0; - _fx_N14C_form__ctyp_t v_866 = 0; - _fx_R9Ast__id_t v_867; + _fx_LN14C_form__cexp_t v_839 = 0; + _fx_N14C_form__ctyp_t v_840 = 0; + _fx_R9Ast__id_t v_841; fx_str_t slit_179 = FX_MAKE_STR("FX_FLOAT"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_179, &v_867, 0), _fx_catch_199); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1_9, 0, true, &v_865), _fx_catch_199); - FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(32, &v_866), _fx_catch_199); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_179, &v_841, 0), _fx_catch_199); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1_9, 0, true, &v_839), _fx_catch_199); + FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(32, &v_840), _fx_catch_199); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_867, v_865, v_866, &kloc_0, &v_864, 0), _fx_catch_199); + &v_841, v_839, v_840, &kloc_0, &v_838, 0), _fx_catch_199); _fx_catch_199: ; - if (v_866) { - _fx_free_N14C_form__ctyp_t(&v_866); + if (v_840) { + _fx_free_N14C_form__ctyp_t(&v_840); } - if (v_865) { - _fx_free_LN14C_form__cexp_t(&v_865); + if (v_839) { + _fx_free_LN14C_form__cexp_t(&v_839); } goto _fx_endmatch_31; } @@ -30567,70 +29850,70 @@ static int } if (FX_REC_VARIANT_TAG(atyp_0) == 5) { if (atyp_0->u.KTypFloat == 16) { - _fx_LN14C_form__cexp_t v_868 = 0; - _fx_N14C_form__ctyp_t v_869 = 0; - _fx_N14C_form__cexp_t v_870 = 0; - _fx_R9Ast__id_t v_871; + _fx_LN14C_form__cexp_t v_842 = 0; + _fx_N14C_form__ctyp_t v_843 = 0; + _fx_N14C_form__cexp_t v_844 = 0; + _fx_R9Ast__id_t v_845; fx_str_t slit_180 = FX_MAKE_STR("FX_FLOAT"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_180, &v_871, 0), _fx_catch_200); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1_9, 0, true, &v_868), _fx_catch_200); - FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(32, &v_869), _fx_catch_200); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_180, &v_845, 0), _fx_catch_200); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1_9, 0, true, &v_842), _fx_catch_200); + FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(32, &v_843), _fx_catch_200); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_871, - v_868, v_869, &kloc_0, &v_870, 0), _fx_catch_200); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_845, + v_842, v_843, &kloc_0, &v_844, 0), _fx_catch_200); FX_CALL( - _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_870, ctyp_3, &kloc_0, - &v_864), _fx_catch_200); + _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_844, ctyp_3, &kloc_0, + &v_838), _fx_catch_200); _fx_catch_200: ; - if (v_870) { - _fx_free_N14C_form__cexp_t(&v_870); + if (v_844) { + _fx_free_N14C_form__cexp_t(&v_844); } - if (v_869) { - _fx_free_N14C_form__ctyp_t(&v_869); + if (v_843) { + _fx_free_N14C_form__ctyp_t(&v_843); } - if (v_868) { - _fx_free_LN14C_form__cexp_t(&v_868); + if (v_842) { + _fx_free_LN14C_form__cexp_t(&v_842); } goto _fx_endmatch_31; } } if (FX_REC_VARIANT_TAG(ctyp_3) == 7) { if (ctyp_3->u.CTypFloat == 16) { - _fx_LN14C_form__cexp_t v_872 = 0; - _fx_N14C_form__ctyp_t v_873 = 0; - _fx_R9Ast__id_t v_874; + _fx_LN14C_form__cexp_t v_846 = 0; + _fx_N14C_form__ctyp_t v_847 = 0; + _fx_R9Ast__id_t v_848; fx_str_t slit_181 = FX_MAKE_STR("FX_FLOAT16"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_181, &v_874, 0), _fx_catch_201); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1_9, 0, true, &v_872), _fx_catch_201); - FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(16, &v_873), _fx_catch_201); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_181, &v_848, 0), _fx_catch_201); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ce1_9, 0, true, &v_846), _fx_catch_201); + FX_CALL(_fx_M6C_formFM9CTypFloatN14C_form__ctyp_t1i(16, &v_847), _fx_catch_201); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_874, - v_872, v_873, &kloc_0, &v_864, 0), _fx_catch_201); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_848, + v_846, v_847, &kloc_0, &v_838, 0), _fx_catch_201); _fx_catch_201: ; - if (v_873) { - _fx_free_N14C_form__ctyp_t(&v_873); + if (v_847) { + _fx_free_N14C_form__ctyp_t(&v_847); } - if (v_872) { - _fx_free_LN14C_form__cexp_t(&v_872); + if (v_846) { + _fx_free_LN14C_form__cexp_t(&v_846); } goto _fx_endmatch_31; } } FX_CALL( _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(ce1_9, ctyp_3, &kloc_0, - &v_864), _fx_catch_202); + &v_838), _fx_catch_202); _fx_catch_202: ; _fx_endmatch_31: ; FX_CHECK_EXN(_fx_catch_203); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_864, ccode_164, &v_1); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(true, v_838, ccode_130, &v_1); _fx_catch_203: ; - if (v_864) { - _fx_free_N14C_form__cexp_t(&v_864); + if (v_838) { + _fx_free_N14C_form__cexp_t(&v_838); } if (ctyp_3) { _fx_free_N14C_form__ctyp_t(&ctyp_3); @@ -30638,74 +29921,71 @@ static int if (atyp_0) { _fx_free_N14K_form__ktyp_t(&atyp_0); } - if (ccode_164) { - _fx_free_LN15C_form__cstmt_t(&ccode_164); + if (ccode_130) { + _fx_free_LN15C_form__cstmt_t(&ccode_130); } if (ce1_9) { _fx_free_N14C_form__cexp_t(&ce1_9); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_863); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_837); goto _fx_endmatch_49; } if (tag_0 == 26) { _fx_N14C_form__cexp_t map_lbl_0 = 0; _fx_Nt10Hashset__t1R9Ast__id_t decl_inside_for_0 = 0; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t e_idoml_l_0 = 0; + _fx_ri ndims_ref_0 = 0; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t e_idoml_l_1 = 0; _fx_N14C_form__cexp_t glob_status_0 = 0; - _fx_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t v_875 = {0}; - _fx_R16Ast__val_flags_t v_876 = {0}; - _fx_N14C_form__cexp_t v_877 = 0; - _fx_Nt6option1N14C_form__cexp_t v_878 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_879 = {0}; + _fx_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t v_849 = {0}; + _fx_R16Ast__val_flags_t v_850 = {0}; + _fx_N14C_form__cexp_t v_851 = 0; + _fx_Nt6option1N14C_form__cexp_t v_852 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_853 = {0}; _fx_N14C_form__cexp_t par_status_0 = 0; - _fx_LN15C_form__cstmt_t ccode_165 = 0; - _fx_R16Ast__val_flags_t v_880 = {0}; - _fx_N14C_form__cexp_t v_881 = 0; - _fx_Nt6option1N14C_form__cexp_t v_882 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_883 = {0}; + _fx_LN15C_form__cstmt_t ccode_131 = 0; + _fx_R16Ast__val_flags_t v_854 = {0}; + _fx_N14C_form__cexp_t v_855 = 0; + _fx_Nt6option1N14C_form__cexp_t v_856 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_857 = {0}; _fx_N14C_form__cexp_t nested_status_0 = 0; _fx_LN15C_form__cstmt_t decl_nested_status_0 = 0; - _fx_N14C_form__cexp_t v_884 = 0; + _fx_N14C_form__cexp_t v_858 = 0; _fx_N14C_form__cexp_t par_status_1 = 0; - _fx_LN15C_form__cstmt_t ccode_166 = 0; + _fx_LN15C_form__cstmt_t ccode_132 = 0; _fx_N14C_form__cexp_t nested_status_1 = 0; _fx_LN15C_form__cstmt_t decl_nested_status_1 = 0; - _fx_N14K_form__ktyp_t v_885 = 0; + _fx_N14K_form__ktyp_t v_859 = 0; _fx_LN14K_form__ktyp_t coll_typs_0 = 0; - _fx_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t - __fold_result___19 = {0}; - _fx_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t - v_886 = {0}; _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t dst_data_0 = 0; - _fx_LN15C_form__cstmt_t ccode_167 = 0; + _fx_LN15C_form__cstmt_t ccode_133 = 0; _fx_LN15C_form__cstmt_t finalize_ccode_0 = 0; _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t dst_data_1 = 0; - _fx_FPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrR23C_gen_code__block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB + _fx_FPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrR23C_gen_code__block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB form_map_0 = {0}; - _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_887 = {0}; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_888 = 0; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_889 = 0; - _fx_Ta2LN15C_form__cstmt_t v_890 = {0}; + _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_860 = {0}; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_861 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_862 = 0; + _fx_Ta2LN15C_form__cstmt_t v_863 = {0}; _fx_LN15C_form__cstmt_t pre_map_ccode_0 = 0; _fx_LN15C_form__cstmt_t map_ccode_0 = 0; _fx_LN15C_form__cstmt_t map_ccode_1 = 0; - _fx_LN14C_form__cexp_t v_891 = 0; + _fx_LN14C_form__cexp_t v_864 = 0; _fx_N14C_form__cexp_t update_exn_parallel_0 = 0; - _fx_N15C_form__cstmt_t v_892 = 0; + _fx_N15C_form__cstmt_t v_865 = 0; _fx_LN15C_form__cstmt_t map_ccode_2 = 0; _fx_LN15C_form__cstmt_t map_ccode_3 = 0; - _fx_LN14C_form__cexp_t cargs_6 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_893 = {0}; + _fx_LN14C_form__cexp_t cargs_5 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_866 = {0}; _fx_N14C_form__cexp_t t_exp_2 = 0; _fx_LN15C_form__cstmt_t map_ccode_4 = 0; - _fx_N14C_form__cexp_t v_894 = 0; - _fx_LN14C_form__cexp_t v_895 = 0; - _fx_LN14C_form__cexp_t v_896 = 0; + _fx_N14C_form__cexp_t v_867 = 0; + _fx_LN14C_form__cexp_t v_868 = 0; + _fx_LN14C_form__cexp_t v_869 = 0; _fx_N14C_form__cexp_t call_mktup_1 = 0; - _fx_N15C_form__cstmt_t v_897 = 0; - _fx_LN15C_form__cstmt_t v_898 = 0; - _fx_LN15C_form__cstmt_t v_899 = 0; + _fx_N15C_form__cstmt_t v_870 = 0; + _fx_LN15C_form__cstmt_t v_871 = 0; + _fx_LN15C_form__cstmt_t v_872 = 0; _fx_T4LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_23 = &kexp_0->u.KExpMap; _fx_R16Ast__for_flags_t* flags_0 = &vcase_23->t2; @@ -30730,24 +30010,24 @@ static int } else { FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(256, &decl_inside_for_0, 0), _fx_catch_218); - bool __fold_result___20 = true; + bool __fold_result___4 = true; FX_COPY_PTR(e_idoml_l_2, &e_idoml_l_0); _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t lst_22 = e_idoml_l_0; for (; lst_22; lst_22 = lst_22->tl) { _fx_N14K_form__kexp_t e_14 = 0; _fx_LT2R9Ast__id_tN13K_form__dom_t idoml_0 = 0; _fx_LR9Ast__id_t idxl_0 = 0; - _fx_LN14K_form__kexp_t v_900 = 0; - _fx_Nt10Hashset__t1R9Ast__id_t v_901 = 0; + _fx_LN14K_form__kexp_t v_873 = 0; + _fx_Nt10Hashset__t1R9Ast__id_t v_874 = 0; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* __pat___6 = &lst_22->hd; FX_COPY_PTR(__pat___6->t0, &e_14); FX_COPY_PTR(__pat___6->t1, &idoml_0); FX_COPY_PTR(__pat___6->t2, &idxl_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_14, 0, true, &v_900), _fx_catch_208); - FX_CALL(_fx_M6K_formFM8declaredNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_900, 256, &v_901, 0), + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_14, 0, true, &v_873), _fx_catch_208); + FX_CALL(_fx_M6K_formFM8declaredNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_873, 256, &v_874, 0), _fx_catch_208); FX_CALL( - _fx_M10C_gen_codeFM5unionv2Nt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_t(decl_inside_for_0, v_901, 0), + _fx_M10C_gen_codeFM5unionv2Nt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_t(decl_inside_for_0, v_874, 0), _fx_catch_208); _fx_LR9Ast__id_t lst_23 = idxl_0; for (; lst_23; lst_23 = lst_23->tl) { @@ -30758,7 +30038,7 @@ static int _fx_catch_204: ; FX_CHECK_EXN(_fx_catch_208); } - bool __fold_result___21 = true; + bool __fold_result___5 = true; _fx_LT2R9Ast__id_tN13K_form__dom_t lst_24 = idoml_0; for (; lst_24; lst_24 = lst_24->tl) { _fx_N13K_form__dom_t dom_0 = {0}; @@ -30768,18 +30048,18 @@ static int FX_CALL(_fx_M10C_gen_codeFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(decl_inside_for_0, &i_10, 0), _fx_catch_207); int tag_27 = dom_0.tag; - bool v_902; + bool v_875; if (tag_27 == 1) { - _fx_N14K_form__atom_t* v_903 = &dom_0.u.DomainElem; - if (v_903->tag == 1) { - _fx_R17K_form__kdefval_t v_904 = {0}; + _fx_N14K_form__atom_t* v_876 = &dom_0.u.DomainElem; + if (v_876->tag == 1) { + _fx_R17K_form__kdefval_t v_877 = {0}; _fx_R16Ast__val_flags_t kv_flags_0 = {0}; _fx_N14K_form__ktyp_t kv_typ_0 = 0; - _fx_R9Ast__id_t* col_0 = &v_903->u.AtomId; - FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(col_0, &kloc_0, &v_904, 0), + _fx_R9Ast__id_t* col_0 = &v_876->u.AtomId; + FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(col_0, &kloc_0, &v_877, 0), _fx_catch_205); - _fx_copy_R16Ast__val_flags_t(&v_904.kv_flags, &kv_flags_0); - FX_COPY_PTR(v_904.kv_typ, &kv_typ_0); + _fx_copy_R16Ast__val_flags_t(&v_877.kv_flags, &kv_flags_0); + FX_COPY_PTR(v_877.kv_typ, &kv_typ_0); bool t_12; if (!kv_flags_0.val_flag_mutable) { int tag_28 = FX_REC_VARIANT_TAG(kv_typ_0); @@ -30806,14 +30086,14 @@ static int t_12 = false; } if (t_12) { - bool v_905; + bool v_878; FX_CALL( - _fx_M10C_gen_codeFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(decl_inside_for_0, col_0, &v_905, 0), + _fx_M10C_gen_codeFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(decl_inside_for_0, col_0, &v_878, 0), _fx_catch_205); - v_902 = !v_905; + v_875 = !v_878; } else { - v_902 = false; + v_875 = false; } _fx_catch_205: ; @@ -30821,15 +30101,15 @@ static int _fx_free_N14K_form__ktyp_t(&kv_typ_0); } _fx_free_R16Ast__val_flags_t(&kv_flags_0); - _fx_free_R17K_form__kdefval_t(&v_904); + _fx_free_R17K_form__kdefval_t(&v_877); goto _fx_endmatch_33; } } if (tag_27 == 1) { - _fx_N14K_form__atom_t* v_906 = &dom_0.u.DomainElem; - if (v_906->tag == 2) { - if (v_906->u.AtomLit.tag == 5) { - v_902 = true; goto _fx_endmatch_33; + _fx_N14K_form__atom_t* v_879 = &dom_0.u.DomainElem; + if (v_879->tag == 2) { + if (v_879->u.AtomLit.tag == 5) { + v_875 = true; goto _fx_endmatch_33; } } } @@ -30851,21 +30131,21 @@ static int if (t_13) { FX_CALL( _fx_M10C_gen_codeFM16check_range_elemB3N14K_form__atom_tNt10Hashset__t1R9Ast__id_tR10Ast__loc_t( - &vcase_24->t2, decl_inside_for_0, &kloc_0, &v_902, 0), _fx_catch_206); + &vcase_24->t2, decl_inside_for_0, &kloc_0, &v_875, 0), _fx_catch_206); } else { - v_902 = false; + v_875 = false; } _fx_catch_206: ; goto _fx_endmatch_33; } - v_902 = false; + v_875 = false; _fx_endmatch_33: ; FX_CHECK_EXN(_fx_catch_207); - if (!v_902) { - __fold_result___21 = false; FX_BREAK(_fx_catch_207); + if (!v_875) { + __fold_result___5 = false; FX_BREAK(_fx_catch_207); } _fx_catch_207: ; @@ -30873,16 +30153,16 @@ static int FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_208); } - if (!__fold_result___21) { - __fold_result___20 = false; FX_BREAK(_fx_catch_208); + if (!__fold_result___5) { + __fold_result___4 = false; FX_BREAK(_fx_catch_208); } _fx_catch_208: ; - if (v_901) { - _fx_free_Nt10Hashset__t1R9Ast__id_t(&v_901); + if (v_874) { + _fx_free_Nt10Hashset__t1R9Ast__id_t(&v_874); } - if (v_900) { - _fx_free_LN14K_form__kexp_t(&v_900); + if (v_873) { + _fx_free_LN14K_form__kexp_t(&v_873); } FX_FREE_LIST_SIMPLE(&idxl_0); if (idoml_0) { @@ -30894,9 +30174,10 @@ static int FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_218); } - pre_alloc_array_0 = __fold_result___20; + pre_alloc_array_0 = __fold_result___4; } - int_ __fold_result___22 = 0; + FX_CALL(_fx_make_ri(0, &ndims_ref_0), _fx_catch_218); + int_* ndims_3 = &ndims_ref_0->data; int_ for_idx_0 = 0; FX_COPY_PTR(e_idoml_l_2, &e_idoml_l_1); _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t lst_25 = e_idoml_l_1; @@ -30908,7 +30189,7 @@ static int FX_CALL( _fx_M10C_gen_codeFM17compute_for_ndimsi4iiLT2R9Ast__id_tN13K_form__dom_tR10Ast__loc_t(for_idx_0, nfors_0, idoml_1, &for_loc_0, &ndims_i_0, 0), _fx_catch_209); - __fold_result___22 = __fold_result___22 + ndims_i_0; + *ndims_3 = *ndims_3 + ndims_i_0; _fx_catch_209: ; if (idoml_1) { @@ -30916,7 +30197,6 @@ static int } FX_CHECK_EXN(_fx_catch_218); } - int_ ndims_3 = __fold_result___22; bool is_parallel_map_0; if (pre_alloc_array_0) { is_parallel_map_0 = flags_0->for_flag_parallel; @@ -30928,43 +30208,43 @@ static int _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(fx_status__0, _fx_g20C_gen_code__CTypCInt, &kloc_0, &glob_status_0, 0), _fx_catch_218); if (is_parallel_map_0) { - _fx_R9Ast__id_t v_907; + _fx_R9Ast__id_t v_880; fx_str_t slit_182 = FX_MAKE_STR("par_status"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_182, &v_907, 0), _fx_catch_218); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_876, 0), _fx_catch_218); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_877, 0), _fx_catch_218); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_877, &v_878); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_182, &v_880, 0), _fx_catch_218); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_850, 0), _fx_catch_218); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_851, 0), _fx_catch_218); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_851, &v_852); fx_str_t slit_183 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_907, _fx_g20C_gen_code__CTypCInt, &v_876, &slit_183, &v_878, ccode_0, &kloc_0, &v_879, 0), _fx_catch_218); - FX_COPY_PTR(v_879.t0, &par_status_0); - FX_COPY_PTR(v_879.t1, &ccode_165); - _fx_R9Ast__id_t v_908; + &v_880, _fx_g20C_gen_code__CTypCInt, &v_850, &slit_183, &v_852, ccode_0, &kloc_0, &v_853, 0), _fx_catch_218); + FX_COPY_PTR(v_853.t0, &par_status_0); + FX_COPY_PTR(v_853.t1, &ccode_131); + _fx_R9Ast__id_t v_881; fx_str_t slit_184 = FX_MAKE_STR("status"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_184, &v_908, 0), _fx_catch_218); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_880, 0), _fx_catch_218); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_881, 0), _fx_catch_218); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_881, &v_882); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_184, &v_881, 0), _fx_catch_218); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_854, 0), _fx_catch_218); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_855, 0), _fx_catch_218); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_855, &v_856); fx_str_t slit_185 = FX_MAKE_STR("fx_status"); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_908, _fx_g20C_gen_code__CTypCInt, &v_880, &slit_185, &v_882, 0, &kloc_0, &v_883, 0), _fx_catch_218); - FX_COPY_PTR(v_883.t0, &nested_status_0); - FX_COPY_PTR(v_883.t1, &decl_nested_status_0); - _fx_make_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(par_status_0, ccode_165, - nested_status_0, decl_nested_status_0, &v_875); + &v_881, _fx_g20C_gen_code__CTypCInt, &v_854, &slit_185, &v_856, 0, &kloc_0, &v_857, 0), _fx_catch_218); + FX_COPY_PTR(v_857.t0, &nested_status_0); + FX_COPY_PTR(v_857.t1, &decl_nested_status_0); + _fx_make_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(par_status_0, ccode_131, + nested_status_0, decl_nested_status_0, &v_849); } else { - FX_CALL(_fx_M6C_formFM14make_dummy_expN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_884, 0), _fx_catch_218); - _fx_make_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(v_884, ccode_0, glob_status_0, 0, - &v_875); - } - FX_COPY_PTR(v_875.t0, &par_status_1); - FX_COPY_PTR(v_875.t1, &ccode_166); - FX_COPY_PTR(v_875.t2, &nested_status_1); - FX_COPY_PTR(v_875.t3, &decl_nested_status_1); - FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(ktyp_0, &for_loc_0, &v_885, 0), + FX_CALL(_fx_M6C_formFM14make_dummy_expN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_858, 0), _fx_catch_218); + _fx_make_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(v_858, ccode_0, glob_status_0, 0, + &v_849); + } + FX_COPY_PTR(v_849.t0, &par_status_1); + FX_COPY_PTR(v_849.t1, &ccode_132); + FX_COPY_PTR(v_849.t2, &nested_status_1); + FX_COPY_PTR(v_849.t3, &decl_nested_status_1); + FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(ktyp_0, &for_loc_0, &v_859, 0), _fx_catch_218); if (unzip_mode_0 == false) { FX_CALL(_fx_cons_LN14K_form__ktyp_t(ktyp_0, 0, true, &coll_typs_0), _fx_catch_210); @@ -30973,336 +30253,331 @@ static int goto _fx_endmatch_34; } if (unzip_mode_0 == true) { - if (FX_REC_VARIANT_TAG(v_885) == 14) { - FX_COPY_PTR(v_885->u.KTypTuple, &coll_typs_0); goto _fx_endmatch_34; + if (FX_REC_VARIANT_TAG(v_859) == 14) { + FX_COPY_PTR(v_859->u.KTypTuple, &coll_typs_0); goto _fx_endmatch_34; } } - fx_exn_t v_909 = {0}; + fx_exn_t v_882 = {0}; fx_str_t slit_186 = FX_MAKE_STR("cgen: the result of @unzip comprehension should be a tuple"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_186, &v_909, 0), _fx_catch_211); - FX_THROW(&v_909, false, _fx_catch_211); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_186, &v_882, 0), _fx_catch_211); + FX_THROW(&v_882, false, _fx_catch_211); _fx_catch_211: ; - fx_free_exn(&v_909); + fx_free_exn(&v_882); _fx_endmatch_34: ; FX_CHECK_EXN(_fx_catch_218); - _fx_make_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - 0, ccode_166, 0, &__fold_result___19); + FX_COPY_PTR(ccode_132, &ccode_133); _fx_LN14K_form__ktyp_t lst_26 = coll_typs_0; for (; lst_26; lst_26 = lst_26->tl) { - _fx_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t - v_910 = {0}; - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t dst_data_2 = 0; - _fx_LN15C_form__cstmt_t ccode_168 = 0; - _fx_LN15C_form__cstmt_t finalize_ccode_1 = 0; _fx_N14C_form__ctyp_t coll_ctyp_0 = 0; - _fx_N14K_form__ktyp_t v_911 = 0; - _fx_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t - v_912 = {0}; + _fx_N14K_form__ktyp_t v_883 = 0; _fx_N14K_form__ktyp_t coll_typ_0 = lst_26->hd; - _fx_copy_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &__fold_result___19, &v_910); - FX_COPY_PTR(v_910.t0, &dst_data_2); - FX_COPY_PTR(v_910.t1, &ccode_168); - FX_COPY_PTR(v_910.t2, &finalize_ccode_1); FX_CALL( _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(coll_typ_0, &kloc_0, &coll_ctyp_0, 0), _fx_catch_216); - FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(coll_typ_0, &kloc_0, &v_911, 0), + FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(coll_typ_0, &kloc_0, &v_883, 0), _fx_catch_216); if (for_flag_make_0.tag == 2) { - if (FX_REC_VARIANT_TAG(v_911) == 17) { + if (FX_REC_VARIANT_TAG(v_883) == 17) { if (FX_REC_VARIANT_TAG(coll_ctyp_0) == 19) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_913 = {0}; - _fx_R16Ast__val_flags_t v_914 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_884 = {0}; + _fx_R16Ast__val_flags_t v_885 = {0}; _fx_N14C_form__cexp_t dst_exp_15 = 0; - _fx_LN15C_form__cstmt_t ccode_169 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_915 = {0}; - _fx_N14C_form__cexp_t v_916 = 0; - _fx_N14C_form__ctyp_t v_917 = 0; - _fx_R16Ast__val_flags_t v_918 = {0}; - _fx_N14C_form__cexp_t v_919 = 0; - _fx_Nt6option1N14C_form__cexp_t v_920 = {0}; + _fx_LN15C_form__cstmt_t ccode1_17 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_886 = {0}; + _fx_N14C_form__cexp_t v_887 = 0; + _fx_N14C_form__ctyp_t v_888 = 0; + _fx_R16Ast__val_flags_t v_889 = {0}; + _fx_N14C_form__cexp_t v_890 = 0; + _fx_Nt6option1N14C_form__cexp_t v_891 = {0}; _fx_N14C_form__cexp_t dst_ptr_0 = 0; - _fx_LN15C_form__cstmt_t ccode_170 = 0; - fx_str_t v_921 = {0}; - fx_str_t v_922 = {0}; - fx_str_t v_923 = {0}; - fx_exn_t v_924 = {0}; - _fx_N14C_form__cexp_t v_925 = 0; - _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_926 = {0}; - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_927 = 0; + _fx_LN15C_form__cstmt_t ccode2_2 = 0; + fx_str_t v_892 = {0}; + fx_str_t v_893 = {0}; + fx_str_t v_894 = {0}; + fx_exn_t v_895 = {0}; + _fx_N14C_form__cexp_t v_896 = 0; + _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_897 = {0}; + _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_898 = 0; _fx_T2iN14C_form__ctyp_t* vcase_25 = &coll_ctyp_0->u.CTypArray; _fx_N14C_form__ctyp_t elemtyp_0 = vcase_25->t1; int_ nd_0 = vcase_25->t0; if (unzip_mode_0) { - _fx_R9Ast__id_t v_928; + _fx_R9Ast__id_t v_899; fx_str_t slit_187 = FX_MAKE_STR("arr"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_187, &v_928, 0), _fx_catch_212); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_914, 0), _fx_catch_212); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_187, &v_899, 0), _fx_catch_212); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_885, 0), _fx_catch_212); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &v_928, coll_ctyp_0, &v_914, &_fx_g18C_gen_code__None2_, ccode_168, &for_loc_0, block_stack_ref_0, - &v_913, 0), _fx_catch_212); + &v_899, coll_ctyp_0, &v_885, &_fx_g18C_gen_code__None2_, ccode_133, &for_loc_0, block_stack_ref_0, + &v_884, 0), _fx_catch_212); } else { fx_str_t slit_188 = FX_MAKE_STR("arr"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_188, coll_ctyp_0, ccode_168, &for_loc_0, block_stack_ref_0, km_idx_0, &v_913, 0), + dstexp_r_0, &slit_188, coll_ctyp_0, ccode_133, &for_loc_0, block_stack_ref_0, km_idx_0, &v_884, 0), _fx_catch_212); } - FX_COPY_PTR(v_913.t0, &dst_exp_15); - FX_COPY_PTR(v_913.t1, &ccode_169); + FX_COPY_PTR(v_884.t0, &dst_exp_15); + FX_COPY_PTR(v_884.t1, &ccode1_17); if (is_parallel_map_0) { - FX_CALL(_fx_M6C_formFM14make_dummy_expN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_916, 0), _fx_catch_212); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_916, ccode_169, &v_915); + FX_CALL(_fx_M6C_formFM14make_dummy_expN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_887, 0), _fx_catch_212); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_887, ccode1_17, &v_886); } else { - _fx_R9Ast__id_t v_929; + _fx_R9Ast__id_t v_900; fx_str_t slit_189 = FX_MAKE_STR("dstptr"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_189, &v_929, 0), _fx_catch_212); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elemtyp_0, &v_917, 0), _fx_catch_212); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_918, 0), _fx_catch_212); - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&for_loc_0, &v_919, 0), _fx_catch_212); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_919, &v_920); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_189, &v_900, 0), _fx_catch_212); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elemtyp_0, &v_888, 0), _fx_catch_212); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_889, 0), _fx_catch_212); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&for_loc_0, &v_890, 0), _fx_catch_212); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_890, &v_891); fx_str_t slit_190 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_929, v_917, &v_918, &slit_190, &v_920, ccode_169, &for_loc_0, &v_915, 0), _fx_catch_212); + &v_900, v_888, &v_889, &slit_190, &v_891, ccode1_17, &for_loc_0, &v_886, 0), _fx_catch_212); } - FX_COPY_PTR(v_915.t0, &dst_ptr_0); - FX_COPY_PTR(v_915.t1, &ccode_170); - if (nd_0 != ndims_3) { - FX_CALL(_fx_F6stringS1i(ndims_3, &v_921, 0), _fx_catch_212); - FX_CALL(_fx_F6stringS1i(nd_0, &v_922, 0), _fx_catch_212); + FX_COPY_PTR(v_886.t0, &dst_ptr_0); + FX_COPY_PTR(v_886.t1, &ccode2_2); + if (nd_0 != *ndims_3) { + FX_CALL(_fx_F6stringS1i(*ndims_3, &v_892, 0), _fx_catch_212); + FX_CALL(_fx_F6stringS1i(nd_0, &v_893, 0), _fx_catch_212); fx_str_t slit_191 = FX_MAKE_STR("cgen: invalid dimensionaly of array comprehension result (computed: "); fx_str_t slit_192 = FX_MAKE_STR(", expected: "); fx_str_t slit_193 = FX_MAKE_STR(")"); { - const fx_str_t strs_33[] = { slit_191, v_921, slit_192, v_922, slit_193 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_33, 5, &v_923), _fx_catch_212); + const fx_str_t strs_32[] = { slit_191, v_892, slit_192, v_893, slit_193 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_32, 5, &v_894), _fx_catch_212); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_923, &v_924, 0), _fx_catch_212); - FX_THROW(&v_924, false, _fx_catch_212); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_894, &v_895, 0), _fx_catch_212); + FX_THROW(&v_895, false, _fx_catch_212); } else { - FX_CALL(_fx_M6C_formFM14make_dummy_expN14C_form__cexp_t1R10Ast__loc_t(&for_loc_0, &v_925, 0), + FX_CALL(_fx_M6C_formFM14make_dummy_expN14C_form__cexp_t1R10Ast__loc_t(&for_loc_0, &v_896, 0), _fx_catch_212); _fx_make_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( - coll_ctyp_0, elemtyp_0, dst_exp_15, dst_ptr_0, v_925, &v_926); + coll_ctyp_0, elemtyp_0, dst_exp_15, dst_ptr_0, v_896, &v_897); FX_CALL( _fx_cons_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( - &v_926, dst_data_2, true, &v_927), _fx_catch_212); - _fx_make_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - v_927, ccode_170, finalize_ccode_1, &v_912); + &v_897, dst_data_0, true, &v_898), _fx_catch_212); + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( + &dst_data_0); + FX_COPY_PTR(v_898, &dst_data_0); + _fx_free_LN15C_form__cstmt_t(&ccode_133); + FX_COPY_PTR(ccode2_2, &ccode_133); } _fx_catch_212: ; - if (v_927) { - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_927); + if (v_898) { + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_898); } - _fx_free_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_926); - if (v_925) { - _fx_free_N14C_form__cexp_t(&v_925); + _fx_free_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_897); + if (v_896) { + _fx_free_N14C_form__cexp_t(&v_896); } - fx_free_exn(&v_924); - FX_FREE_STR(&v_923); - FX_FREE_STR(&v_922); - FX_FREE_STR(&v_921); - if (ccode_170) { - _fx_free_LN15C_form__cstmt_t(&ccode_170); + fx_free_exn(&v_895); + FX_FREE_STR(&v_894); + FX_FREE_STR(&v_893); + FX_FREE_STR(&v_892); + if (ccode2_2) { + _fx_free_LN15C_form__cstmt_t(&ccode2_2); } if (dst_ptr_0) { _fx_free_N14C_form__cexp_t(&dst_ptr_0); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_920); - if (v_919) { - _fx_free_N14C_form__cexp_t(&v_919); + _fx_free_Nt6option1N14C_form__cexp_t(&v_891); + if (v_890) { + _fx_free_N14C_form__cexp_t(&v_890); } - _fx_free_R16Ast__val_flags_t(&v_918); - if (v_917) { - _fx_free_N14C_form__ctyp_t(&v_917); + _fx_free_R16Ast__val_flags_t(&v_889); + if (v_888) { + _fx_free_N14C_form__ctyp_t(&v_888); } - if (v_916) { - _fx_free_N14C_form__cexp_t(&v_916); + if (v_887) { + _fx_free_N14C_form__cexp_t(&v_887); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_915); - if (ccode_169) { - _fx_free_LN15C_form__cstmt_t(&ccode_169); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_886); + if (ccode1_17) { + _fx_free_LN15C_form__cstmt_t(&ccode1_17); } if (dst_exp_15) { _fx_free_N14C_form__cexp_t(&dst_exp_15); } - _fx_free_R16Ast__val_flags_t(&v_914); - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_913); + _fx_free_R16Ast__val_flags_t(&v_885); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_884); goto _fx_endmatch_35; } } } if (for_flag_make_0.tag == 4) { - if (FX_REC_VARIANT_TAG(v_911) == 18) { + if (FX_REC_VARIANT_TAG(v_883) == 18) { if (FX_REC_VARIANT_TAG(coll_ctyp_0) == 20) { - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_930 = {0}; - _fx_R16Ast__val_flags_t v_931 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_901 = {0}; + _fx_R16Ast__val_flags_t v_902 = {0}; _fx_N14C_form__cexp_t dst_exp_16 = 0; - _fx_LN15C_form__cstmt_t ccode_171 = 0; - _fx_Ta3N14C_form__cexp_t v_932 = {0}; + _fx_LN15C_form__cstmt_t ccode1_18 = 0; + _fx_Ta3N14C_form__cexp_t v_903 = {0}; _fx_N14C_form__cexp_t sizeof_elem_exp_3 = 0; _fx_N14C_form__cexp_t free_f_exp_3 = 0; _fx_N14C_form__cexp_t copy_f_exp_3 = 0; _fx_N14C_form__ctyp_t iter_t_0 = 0; - _fx_R16Ast__val_flags_t v_933 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_934 = {0}; + _fx_R16Ast__val_flags_t v_904 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_905 = {0}; _fx_N14C_form__cexp_t iter_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_172 = 0; - _fx_N14C_form__cexp_t v_935 = 0; - _fx_LN14C_form__cexp_t v_936 = 0; + _fx_LN15C_form__cstmt_t ccode2_3 = 0; + _fx_N14C_form__cexp_t v_906 = 0; + _fx_LN14C_form__cexp_t v_907 = 0; _fx_N14C_form__cexp_t call_start_write_0 = 0; - _fx_N14C_form__ctyp_t v_937 = 0; - _fx_R16Ast__val_flags_t v_938 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_939 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_940 = {0}; + _fx_N14C_form__ctyp_t v_908 = 0; + _fx_R16Ast__val_flags_t v_909 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_910 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_911 = {0}; _fx_N14C_form__cexp_t dst_ptr_1 = 0; - _fx_LN15C_form__cstmt_t ccode_173 = 0; - _fx_LN14C_form__cexp_t v_941 = 0; + _fx_LN15C_form__cstmt_t ccode3_1 = 0; + _fx_LN14C_form__cexp_t v_912 = 0; _fx_N14C_form__cexp_t call_end_write_0 = 0; - _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_942 = {0}; - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_943 = 0; - _fx_N15C_form__cstmt_t v_944 = 0; - _fx_LN15C_form__cstmt_t v_945 = 0; + _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_913 = {0}; + _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_914 = 0; + _fx_N15C_form__cstmt_t v_915 = 0; + _fx_LN15C_form__cstmt_t v_916 = 0; _fx_N14C_form__ctyp_t elemtyp_1 = coll_ctyp_0->u.CTypVector; if (unzip_mode_0) { - _fx_R9Ast__id_t v_946; + _fx_R9Ast__id_t v_917; fx_str_t slit_194 = FX_MAKE_STR("vec"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_194, &v_946, 0), _fx_catch_213); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_931, 0), _fx_catch_213); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_194, &v_917, 0), _fx_catch_213); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_902, 0), _fx_catch_213); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &v_946, coll_ctyp_0, &v_931, &_fx_g18C_gen_code__None2_, ccode_168, &for_loc_0, block_stack_ref_0, - &v_930, 0), _fx_catch_213); + &v_917, coll_ctyp_0, &v_902, &_fx_g18C_gen_code__None2_, ccode_133, &for_loc_0, block_stack_ref_0, + &v_901, 0), _fx_catch_213); } else { fx_str_t slit_195 = FX_MAKE_STR("vec"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_195, coll_ctyp_0, ccode_168, &for_loc_0, block_stack_ref_0, km_idx_0, &v_930, 0), + dstexp_r_0, &slit_195, coll_ctyp_0, ccode_133, &for_loc_0, block_stack_ref_0, km_idx_0, &v_901, 0), _fx_catch_213); } - FX_COPY_PTR(v_930.t0, &dst_exp_16); - FX_COPY_PTR(v_930.t1, &ccode_171); + FX_COPY_PTR(v_901.t0, &dst_exp_16); + FX_COPY_PTR(v_901.t1, &ccode1_18); FX_CALL( _fx_M10C_gen_codeFM23get_elem_size_free_copyTa3N14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elemtyp_1, - &for_loc_0, &v_932, 0), _fx_catch_213); - FX_COPY_PTR(v_932.t0, &sizeof_elem_exp_3); - FX_COPY_PTR(v_932.t1, &free_f_exp_3); - FX_COPY_PTR(v_932.t2, ©_f_exp_3); - _fx_R9Ast__id_t v_947; + &for_loc_0, &v_903, 0), _fx_catch_213); + FX_COPY_PTR(v_903.t0, &sizeof_elem_exp_3); + FX_COPY_PTR(v_903.t1, &free_f_exp_3); + FX_COPY_PTR(v_903.t2, ©_f_exp_3); + _fx_R9Ast__id_t v_918; fx_str_t slit_196 = FX_MAKE_STR("fx_rrbiter_t"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_196, &v_947, 0), _fx_catch_213); - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_947, &iter_t_0), _fx_catch_213); - _fx_R9Ast__id_t v_948; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_196, &v_918, 0), _fx_catch_213); + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_918, &iter_t_0), _fx_catch_213); + _fx_R9Ast__id_t v_919; fx_str_t slit_197 = FX_MAKE_STR("iter"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_197, &v_948, 0), _fx_catch_213); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_933, 0), _fx_catch_213); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_197, &v_919, 0), _fx_catch_213); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_904, 0), _fx_catch_213); fx_str_t slit_198 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_948, iter_t_0, &v_933, &slit_198, &_fx_g18C_gen_code__None2_, ccode_171, &for_loc_0, &v_934, 0), + &v_919, iter_t_0, &v_904, &slit_198, &_fx_g18C_gen_code__None2_, ccode1_18, &for_loc_0, &v_905, 0), _fx_catch_213); - FX_COPY_PTR(v_934.t0, &iter_exp_0); - FX_COPY_PTR(v_934.t1, &ccode_172); - _fx_R9Ast__id_t v_949; + FX_COPY_PTR(v_905.t0, &iter_exp_0); + FX_COPY_PTR(v_905.t1, &ccode2_3); + _fx_R9Ast__id_t v_920; fx_str_t slit_199 = FX_MAKE_STR("FX_RRB_START_WRITE"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_199, &v_949, 0), _fx_catch_213); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elemtyp_1, &for_loc_0, &v_935), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_199, &v_920, 0), _fx_catch_213); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elemtyp_1, &for_loc_0, &v_906), _fx_catch_213); - FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_exp_0, 0, true, &v_936), _fx_catch_213); - FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_exp_16, v_936, false, &v_936), _fx_catch_213); - FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_f_exp_3, v_936, false, &v_936), _fx_catch_213); - FX_CALL(_fx_cons_LN14C_form__cexp_t(free_f_exp_3, v_936, false, &v_936), _fx_catch_213); - FX_CALL(_fx_cons_LN14C_form__cexp_t(sizeof_elem_exp_3, v_936, false, &v_936), _fx_catch_213); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_935, v_936, false, &v_936), _fx_catch_213); + FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_exp_0, 0, true, &v_907), _fx_catch_213); + FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_exp_16, v_907, false, &v_907), _fx_catch_213); + FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_f_exp_3, v_907, false, &v_907), _fx_catch_213); + FX_CALL(_fx_cons_LN14C_form__cexp_t(free_f_exp_3, v_907, false, &v_907), _fx_catch_213); + FX_CALL(_fx_cons_LN14C_form__cexp_t(sizeof_elem_exp_3, v_907, false, &v_907), _fx_catch_213); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_906, v_907, false, &v_907), _fx_catch_213); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_949, v_936, _fx_g23C_form__std_CTypVoidPtr, &for_loc_0, &call_start_write_0, 0), _fx_catch_213); - _fx_R9Ast__id_t v_950; + &v_920, v_907, _fx_g23C_form__std_CTypVoidPtr, &for_loc_0, &call_start_write_0, 0), _fx_catch_213); + _fx_R9Ast__id_t v_921; fx_str_t slit_200 = FX_MAKE_STR("dstptr"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_200, &v_950, 0), _fx_catch_213); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elemtyp_1, &v_937, 0), _fx_catch_213); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_938, 0), _fx_catch_213); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(call_start_write_0, &v_939); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_200, &v_921, 0), _fx_catch_213); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elemtyp_1, &v_908, 0), _fx_catch_213); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_909, 0), _fx_catch_213); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(call_start_write_0, &v_910); fx_str_t slit_201 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_950, v_937, &v_938, &slit_201, &v_939, ccode_172, &for_loc_0, &v_940, 0), _fx_catch_213); - FX_COPY_PTR(v_940.t0, &dst_ptr_1); - FX_COPY_PTR(v_940.t1, &ccode_173); - _fx_R9Ast__id_t v_951; + &v_921, v_908, &v_909, &slit_201, &v_910, ccode2_3, &for_loc_0, &v_911, 0), _fx_catch_213); + FX_COPY_PTR(v_911.t0, &dst_ptr_1); + FX_COPY_PTR(v_911.t1, &ccode3_1); + _fx_R9Ast__id_t v_922; fx_str_t slit_202 = FX_MAKE_STR("FX_RRB_END_WRITE"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_202, &v_951, 0), _fx_catch_213); - FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_ptr_1, 0, true, &v_941), _fx_catch_213); - FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_exp_0, v_941, false, &v_941), _fx_catch_213); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_202, &v_922, 0), _fx_catch_213); + FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_ptr_1, 0, true, &v_912), _fx_catch_213); + FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_exp_0, v_912, false, &v_912), _fx_catch_213); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_951, v_941, _fx_g20C_gen_code__CTypVoid, &for_loc_0, &call_end_write_0, 0), _fx_catch_213); + &v_922, v_912, _fx_g20C_gen_code__CTypVoid, &for_loc_0, &call_end_write_0, 0), _fx_catch_213); _fx_make_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(coll_ctyp_0, - elemtyp_1, dst_exp_16, dst_ptr_1, iter_exp_0, &v_942); + elemtyp_1, dst_exp_16, dst_ptr_1, iter_exp_0, &v_913); FX_CALL( - _fx_cons_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_942, - dst_data_2, true, &v_943), _fx_catch_213); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_end_write_0, &v_944), _fx_catch_213); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_944, finalize_ccode_1, true, &v_945), _fx_catch_213); - _fx_make_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - v_943, ccode_173, v_945, &v_912); + _fx_cons_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_913, + dst_data_0, true, &v_914), _fx_catch_213); + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( + &dst_data_0); + FX_COPY_PTR(v_914, &dst_data_0); + _fx_free_LN15C_form__cstmt_t(&ccode_133); + FX_COPY_PTR(ccode3_1, &ccode_133); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_end_write_0, &v_915), _fx_catch_213); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_915, finalize_ccode_0, true, &v_916), _fx_catch_213); + _fx_free_LN15C_form__cstmt_t(&finalize_ccode_0); + FX_COPY_PTR(v_916, &finalize_ccode_0); _fx_catch_213: ; - if (v_945) { - _fx_free_LN15C_form__cstmt_t(&v_945); + if (v_916) { + _fx_free_LN15C_form__cstmt_t(&v_916); } - if (v_944) { - _fx_free_N15C_form__cstmt_t(&v_944); + if (v_915) { + _fx_free_N15C_form__cstmt_t(&v_915); } - if (v_943) { - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_943); + if (v_914) { + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_914); } - _fx_free_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_942); + _fx_free_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_913); if (call_end_write_0) { _fx_free_N14C_form__cexp_t(&call_end_write_0); } - if (v_941) { - _fx_free_LN14C_form__cexp_t(&v_941); + if (v_912) { + _fx_free_LN14C_form__cexp_t(&v_912); } - if (ccode_173) { - _fx_free_LN15C_form__cstmt_t(&ccode_173); + if (ccode3_1) { + _fx_free_LN15C_form__cstmt_t(&ccode3_1); } if (dst_ptr_1) { _fx_free_N14C_form__cexp_t(&dst_ptr_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_940); - _fx_free_Nt6option1N14C_form__cexp_t(&v_939); - _fx_free_R16Ast__val_flags_t(&v_938); - if (v_937) { - _fx_free_N14C_form__ctyp_t(&v_937); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_911); + _fx_free_Nt6option1N14C_form__cexp_t(&v_910); + _fx_free_R16Ast__val_flags_t(&v_909); + if (v_908) { + _fx_free_N14C_form__ctyp_t(&v_908); } if (call_start_write_0) { _fx_free_N14C_form__cexp_t(&call_start_write_0); } - if (v_936) { - _fx_free_LN14C_form__cexp_t(&v_936); + if (v_907) { + _fx_free_LN14C_form__cexp_t(&v_907); } - if (v_935) { - _fx_free_N14C_form__cexp_t(&v_935); + if (v_906) { + _fx_free_N14C_form__cexp_t(&v_906); } - if (ccode_172) { - _fx_free_LN15C_form__cstmt_t(&ccode_172); + if (ccode2_3) { + _fx_free_LN15C_form__cstmt_t(&ccode2_3); } if (iter_exp_0) { _fx_free_N14C_form__cexp_t(&iter_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_934); - _fx_free_R16Ast__val_flags_t(&v_933); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_905); + _fx_free_R16Ast__val_flags_t(&v_904); if (iter_t_0) { _fx_free_N14C_form__ctyp_t(&iter_t_0); } @@ -31315,106 +30590,108 @@ static int if (sizeof_elem_exp_3) { _fx_free_N14C_form__cexp_t(&sizeof_elem_exp_3); } - _fx_free_Ta3N14C_form__cexp_t(&v_932); - if (ccode_171) { - _fx_free_LN15C_form__cstmt_t(&ccode_171); + _fx_free_Ta3N14C_form__cexp_t(&v_903); + if (ccode1_18) { + _fx_free_LN15C_form__cstmt_t(&ccode1_18); } if (dst_exp_16) { _fx_free_N14C_form__cexp_t(&dst_exp_16); } - _fx_free_R16Ast__val_flags_t(&v_931); - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_930); + _fx_free_R16Ast__val_flags_t(&v_902); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_901); goto _fx_endmatch_35; } } } if (for_flag_make_0.tag == 3) { - if (FX_REC_VARIANT_TAG(v_911) == 19) { + if (FX_REC_VARIANT_TAG(v_883) == 19) { _fx_N14C_form__ctyp_t elemtyp_2 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_952 = {0}; - _fx_R16Ast__val_flags_t v_953 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_923 = {0}; + _fx_R16Ast__val_flags_t v_924 = {0}; _fx_N14C_form__cexp_t dst_exp_17 = 0; - _fx_LN15C_form__cstmt_t ccode_174 = 0; - _fx_R16Ast__val_flags_t v_954 = {0}; - _fx_N14C_form__cexp_t v_955 = 0; - _fx_Nt6option1N14C_form__cexp_t v_956 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_957 = {0}; + _fx_LN15C_form__cstmt_t ccode1_19 = 0; + _fx_R16Ast__val_flags_t v_925 = {0}; + _fx_N14C_form__cexp_t v_926 = 0; + _fx_Nt6option1N14C_form__cexp_t v_927 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_928 = {0}; _fx_N14C_form__cexp_t lst_end_0 = 0; - _fx_LN15C_form__cstmt_t ccode_175 = 0; - _fx_N14C_form__cexp_t v_958 = 0; - _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_959 = {0}; - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_960 = 0; + _fx_LN15C_form__cstmt_t ccode2_4 = 0; + _fx_N14C_form__cexp_t v_929 = 0; + _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_930 = {0}; + _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_931 = 0; FX_CALL( - _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(v_911->u.KTypList, &for_loc_0, + _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(v_883->u.KTypList, &for_loc_0, &elemtyp_2, 0), _fx_catch_214); if (unzip_mode_0) { - _fx_R9Ast__id_t v_961; + _fx_R9Ast__id_t v_932; fx_str_t slit_203 = FX_MAKE_STR("lst"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_203, &v_961, 0), _fx_catch_214); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_953, 0), _fx_catch_214); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_203, &v_932, 0), _fx_catch_214); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_924, 0), _fx_catch_214); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - &v_961, coll_ctyp_0, &v_953, &_fx_g18C_gen_code__None2_, ccode_168, &for_loc_0, block_stack_ref_0, - &v_952, 0), _fx_catch_214); + &v_932, coll_ctyp_0, &v_924, &_fx_g18C_gen_code__None2_, ccode_133, &for_loc_0, block_stack_ref_0, + &v_923, 0), _fx_catch_214); } else { fx_str_t slit_204 = FX_MAKE_STR("lst"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_204, coll_ctyp_0, ccode_168, &for_loc_0, block_stack_ref_0, km_idx_0, &v_952, 0), + dstexp_r_0, &slit_204, coll_ctyp_0, ccode_133, &for_loc_0, block_stack_ref_0, km_idx_0, &v_923, 0), _fx_catch_214); } - FX_COPY_PTR(v_952.t0, &dst_exp_17); - FX_COPY_PTR(v_952.t1, &ccode_174); - _fx_R9Ast__id_t v_962; + FX_COPY_PTR(v_923.t0, &dst_exp_17); + FX_COPY_PTR(v_923.t1, &ccode1_19); + _fx_R9Ast__id_t v_933; fx_str_t slit_205 = FX_MAKE_STR("lstend"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_205, &v_962, 0), _fx_catch_214); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_954, 0), _fx_catch_214); - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&for_loc_0, &v_955, 0), _fx_catch_214); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_955, &v_956); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_205, &v_933, 0), _fx_catch_214); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_925, 0), _fx_catch_214); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&for_loc_0, &v_926, 0), _fx_catch_214); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_926, &v_927); fx_str_t slit_206 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_962, coll_ctyp_0, &v_954, &slit_206, &v_956, ccode_174, &for_loc_0, &v_957, 0), _fx_catch_214); - FX_COPY_PTR(v_957.t0, &lst_end_0); - FX_COPY_PTR(v_957.t1, &ccode_175); - FX_CALL(_fx_M6C_formFM14make_dummy_expN14C_form__cexp_t1R10Ast__loc_t(&for_loc_0, &v_958, 0), _fx_catch_214); + &v_933, coll_ctyp_0, &v_925, &slit_206, &v_927, ccode1_19, &for_loc_0, &v_928, 0), _fx_catch_214); + FX_COPY_PTR(v_928.t0, &lst_end_0); + FX_COPY_PTR(v_928.t1, &ccode2_4); + FX_CALL(_fx_M6C_formFM14make_dummy_expN14C_form__cexp_t1R10Ast__loc_t(&for_loc_0, &v_929, 0), _fx_catch_214); _fx_make_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(coll_ctyp_0, - elemtyp_2, dst_exp_17, v_958, lst_end_0, &v_959); + elemtyp_2, dst_exp_17, v_929, lst_end_0, &v_930); FX_CALL( - _fx_cons_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_959, - dst_data_2, true, &v_960), _fx_catch_214); - _fx_make_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - v_960, ccode_175, finalize_ccode_1, &v_912); + _fx_cons_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_930, + dst_data_0, true, &v_931), _fx_catch_214); + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&dst_data_0); + FX_COPY_PTR(v_931, &dst_data_0); + _fx_free_LN15C_form__cstmt_t(&ccode_133); + FX_COPY_PTR(ccode2_4, &ccode_133); _fx_catch_214: ; - if (v_960) { - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_960); + if (v_931) { + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_931); } - _fx_free_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_959); - if (v_958) { - _fx_free_N14C_form__cexp_t(&v_958); + _fx_free_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_930); + if (v_929) { + _fx_free_N14C_form__cexp_t(&v_929); } - if (ccode_175) { - _fx_free_LN15C_form__cstmt_t(&ccode_175); + if (ccode2_4) { + _fx_free_LN15C_form__cstmt_t(&ccode2_4); } if (lst_end_0) { _fx_free_N14C_form__cexp_t(&lst_end_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_957); - _fx_free_Nt6option1N14C_form__cexp_t(&v_956); - if (v_955) { - _fx_free_N14C_form__cexp_t(&v_955); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_928); + _fx_free_Nt6option1N14C_form__cexp_t(&v_927); + if (v_926) { + _fx_free_N14C_form__cexp_t(&v_926); } - _fx_free_R16Ast__val_flags_t(&v_954); - if (ccode_174) { - _fx_free_LN15C_form__cstmt_t(&ccode_174); + _fx_free_R16Ast__val_flags_t(&v_925); + if (ccode1_19) { + _fx_free_LN15C_form__cstmt_t(&ccode1_19); } if (dst_exp_17) { _fx_free_N14C_form__cexp_t(&dst_exp_17); } - _fx_free_R16Ast__val_flags_t(&v_953); - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_952); + _fx_free_R16Ast__val_flags_t(&v_924); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_923); if (elemtyp_2) { _fx_free_N14C_form__ctyp_t(&elemtyp_2); } @@ -31422,10 +30699,10 @@ static int } } fx_str_t maptype_str_0 = {0}; - fx_str_t v_963 = {0}; - fx_str_t v_964 = {0}; - fx_str_t v_965 = {0}; - fx_exn_t v_966 = {0}; + fx_str_t v_934 = {0}; + fx_str_t v_935 = {0}; + fx_str_t v_936 = {0}; + fx_exn_t v_937 = {0}; int tag_29 = for_flag_make_0.tag; if (tag_29 == 2) { fx_str_t slit_207 = FX_MAKE_STR("make_array"); fx_copy_str(&slit_207, &maptype_str_0); @@ -31440,91 +30717,69 @@ static int fx_str_t slit_210 = FX_MAKE_STR("???"); fx_copy_str(&slit_210, &maptype_str_0); } FX_CHECK_EXN(_fx_catch_215); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&maptype_str_0, &v_963, 0), _fx_catch_215); - FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(coll_typ_0, &v_964, 0), _fx_catch_215); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&maptype_str_0, &v_934, 0), _fx_catch_215); + FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(coll_typ_0, &v_935, 0), _fx_catch_215); fx_str_t slit_211 = FX_MAKE_STR("cgen: invalid combination of comprehension type \'"); fx_str_t slit_212 = FX_MAKE_STR("\' and the output collection type \'"); fx_str_t slit_213 = FX_MAKE_STR("\'"); { - const fx_str_t strs_34[] = { slit_211, v_963, slit_212, v_964, slit_213 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_34, 5, &v_965), _fx_catch_215); + const fx_str_t strs_33[] = { slit_211, v_934, slit_212, v_935, slit_213 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_33, 5, &v_936), _fx_catch_215); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_965, &v_966, 0), _fx_catch_215); - FX_THROW(&v_966, false, _fx_catch_215); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_936, &v_937, 0), _fx_catch_215); + FX_THROW(&v_937, false, _fx_catch_215); _fx_catch_215: ; - fx_free_exn(&v_966); - FX_FREE_STR(&v_965); - FX_FREE_STR(&v_964); - FX_FREE_STR(&v_963); + fx_free_exn(&v_937); + FX_FREE_STR(&v_936); + FX_FREE_STR(&v_935); + FX_FREE_STR(&v_934); FX_FREE_STR(&maptype_str_0); _fx_endmatch_35: ; FX_CHECK_EXN(_fx_catch_216); - _fx_free_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &__fold_result___19); - _fx_copy_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &v_912, &__fold_result___19); _fx_catch_216: ; - _fx_free_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &v_912); - if (v_911) { - _fx_free_N14K_form__ktyp_t(&v_911); + if (v_883) { + _fx_free_N14K_form__ktyp_t(&v_883); } if (coll_ctyp_0) { _fx_free_N14C_form__ctyp_t(&coll_ctyp_0); } - if (finalize_ccode_1) { - _fx_free_LN15C_form__cstmt_t(&finalize_ccode_1); - } - if (ccode_168) { - _fx_free_LN15C_form__cstmt_t(&ccode_168); - } - if (dst_data_2) { - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&dst_data_2); - } - _fx_free_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &v_910); FX_CHECK_EXN(_fx_catch_218); } - _fx_copy_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &__fold_result___19, &v_886); - FX_COPY_PTR(v_886.t0, &dst_data_0); - FX_COPY_PTR(v_886.t1, &ccode_167); - FX_COPY_PTR(v_886.t2, &finalize_ccode_0); FX_CALL( _fx_M10C_gen_codeFM3revLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t1LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( dst_data_0, &dst_data_1, 0), _fx_catch_218); - _fx_M10C_gen_codeFM7make_fpFPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB5rLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( + _fx_M10C_gen_codeFM7make_fpFPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB5rLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( block_stack_ref_1, defined_syms_ref_1, fwd_fdecls_ref_1, i2e_ref_1, *km_idx_1, &form_map_0); - _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(vcase_23->t1, 0, 0, &v_887); - FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_887, 0, true, &v_888), _fx_catch_218); + _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(vcase_23->t1, 0, 0, &v_860); + FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_860, 0, true, &v_861), _fx_catch_218); FX_CALL( _fx_M10C_gen_codeFM7__add__LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t( - e_idoml_l_2, v_888, &v_889, 0), _fx_catch_218); + e_idoml_l_2, v_861, &v_862, 0), _fx_catch_218); FX_CALL( - form_map_0.fp(0, 0, v_889, 0, 0, block_stack_ref_0, decl_nested_status_1, defined_syms_ref_0, dst_data_1, + form_map_0.fp(0, 0, v_862, 0, 0, block_stack_ref_0, decl_nested_status_1, defined_syms_ref_0, dst_data_1, &end_for_loc_0, &for_flag_make_0, for_letters_0, &for_loc_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, is_parallel_map_0, &kloc_0, km_idx_0, map_lbl_0, mod_sc_0, module_cleanup_ref_0, - ndims_3, need_make_array_0, nested_status_1, nfors_0, par_status_1, pre_alloc_array_0, return_used_ref_0, - top_inline_ccode_ref_0, u1vals_0, unzip_mode_0, &v_890, form_map_0.fcv), _fx_catch_218); - FX_COPY_PTR(v_890.t0, &pre_map_ccode_0); - FX_COPY_PTR(v_890.t1, &map_ccode_0); + ndims_ref_0, need_make_array_0, nested_status_1, nfors_0, par_status_1, pre_alloc_array_0, return_used_ref_0, + top_inline_ccode_ref_0, u1vals_0, unzip_mode_0, &v_863, form_map_0.fcv), _fx_catch_218); + FX_COPY_PTR(v_863.t0, &pre_map_ccode_0); + FX_COPY_PTR(v_863.t1, &map_ccode_0); if (!is_parallel_map_0) { FX_COPY_PTR(map_ccode_0, &map_ccode_1); } else { - _fx_R9Ast__id_t v_967; + _fx_R9Ast__id_t v_938; fx_str_t slit_214 = FX_MAKE_STR("FX_UPDATE_EXN_PARALLEL"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_214, &v_967, 0), _fx_catch_218); - FX_CALL(_fx_cons_LN14C_form__cexp_t(map_lbl_0, 0, true, &v_891), _fx_catch_218); - FX_CALL(_fx_cons_LN14C_form__cexp_t(par_status_1, v_891, false, &v_891), _fx_catch_218); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_214, &v_938, 0), _fx_catch_218); + FX_CALL(_fx_cons_LN14C_form__cexp_t(map_lbl_0, 0, true, &v_864), _fx_catch_218); + FX_CALL(_fx_cons_LN14C_form__cexp_t(par_status_1, v_864, false, &v_864), _fx_catch_218); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_967, v_891, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_938, v_864, _fx_g20C_gen_code__CTypVoid, &kloc_0, &update_exn_parallel_0, 0), _fx_catch_218); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(update_exn_parallel_0, &v_892), _fx_catch_218); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_892, map_ccode_0, true, &map_ccode_1), _fx_catch_218); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(update_exn_parallel_0, &v_865), _fx_catch_218); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_865, map_ccode_0, true, &map_ccode_1), _fx_catch_218); } FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(finalize_ccode_0, map_ccode_1, @@ -31550,7 +30805,7 @@ static int 0), _fx_catch_217); _fx_LN14C_form__cexp_t node_1 = 0; FX_CALL(_fx_cons_LN14C_form__cexp_t(res_23, 0, false, &node_1), _fx_catch_217); - FX_LIST_APPEND(cargs_6, lstend_1, node_1); + FX_LIST_APPEND(cargs_5, lstend_1, node_1); _fx_catch_217: ; if (res_23) { @@ -31564,48 +30819,48 @@ static int fx_str_t slit_215 = FX_MAKE_STR("tup"); FX_CALL( _fx_M10C_gen_codeFM10get_dstexpT2N14C_form__cexp_tLN15C_form__cstmt_t7rNt6option1N14C_form__cexp_tSN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_ti( - dstexp_r_0, &slit_215, ctyp_0, map_ccode_2, &kloc_0, block_stack_ref_0, km_idx_0, &v_893, 0), _fx_catch_218); - FX_COPY_PTR(v_893.t0, &t_exp_2); - FX_COPY_PTR(v_893.t1, &map_ccode_4); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(t_exp_2, &v_894, 0), _fx_catch_218); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_894, 0, true, &v_895), _fx_catch_218); - FX_CALL(_fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(cargs_6, v_895, &v_896, 0), + dstexp_r_0, &slit_215, ctyp_0, map_ccode_2, &kloc_0, block_stack_ref_0, km_idx_0, &v_866, 0), _fx_catch_218); + FX_COPY_PTR(v_866.t0, &t_exp_2); + FX_COPY_PTR(v_866.t1, &map_ccode_4); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(t_exp_2, &v_867, 0), _fx_catch_218); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_867, 0, true, &v_868), _fx_catch_218); + FX_CALL(_fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(cargs_5, v_868, &v_869, 0), _fx_catch_218); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&tcon_1, - v_896, _fx_g20C_gen_code__CTypVoid, &kloc_0, &call_mktup_1, 0), _fx_catch_218); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_mktup_1, &v_897), _fx_catch_218); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_897, map_ccode_4, true, &map_ccode_3), _fx_catch_218); + v_869, _fx_g20C_gen_code__CTypVoid, &kloc_0, &call_mktup_1, 0), _fx_catch_218); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_mktup_1, &v_870), _fx_catch_218); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_870, map_ccode_4, true, &map_ccode_3), _fx_catch_218); } FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(pre_map_ccode_0, ccode_167, - &v_898, 0), _fx_catch_218); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(pre_map_ccode_0, ccode_133, + &v_871, 0), _fx_catch_218); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(map_ccode_3, v_898, &v_899, 0), + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(map_ccode_3, v_871, &v_872, 0), _fx_catch_218); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_899, &v_1); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_872, &v_1); _fx_catch_218: ; - if (v_899) { - _fx_free_LN15C_form__cstmt_t(&v_899); + if (v_872) { + _fx_free_LN15C_form__cstmt_t(&v_872); } - if (v_898) { - _fx_free_LN15C_form__cstmt_t(&v_898); + if (v_871) { + _fx_free_LN15C_form__cstmt_t(&v_871); } - if (v_897) { - _fx_free_N15C_form__cstmt_t(&v_897); + if (v_870) { + _fx_free_N15C_form__cstmt_t(&v_870); } if (call_mktup_1) { _fx_free_N14C_form__cexp_t(&call_mktup_1); } - if (v_896) { - _fx_free_LN14C_form__cexp_t(&v_896); + if (v_869) { + _fx_free_LN14C_form__cexp_t(&v_869); } - if (v_895) { - _fx_free_LN14C_form__cexp_t(&v_895); + if (v_868) { + _fx_free_LN14C_form__cexp_t(&v_868); } - if (v_894) { - _fx_free_N14C_form__cexp_t(&v_894); + if (v_867) { + _fx_free_N14C_form__cexp_t(&v_867); } if (map_ccode_4) { _fx_free_LN15C_form__cstmt_t(&map_ccode_4); @@ -31613,9 +30868,9 @@ static int if (t_exp_2) { _fx_free_N14C_form__cexp_t(&t_exp_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_893); - if (cargs_6) { - _fx_free_LN14C_form__cexp_t(&cargs_6); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_866); + if (cargs_5) { + _fx_free_LN14C_form__cexp_t(&cargs_5); } if (map_ccode_3) { _fx_free_LN15C_form__cstmt_t(&map_ccode_3); @@ -31623,14 +30878,14 @@ static int if (map_ccode_2) { _fx_free_LN15C_form__cstmt_t(&map_ccode_2); } - if (v_892) { - _fx_free_N15C_form__cstmt_t(&v_892); + if (v_865) { + _fx_free_N15C_form__cstmt_t(&v_865); } if (update_exn_parallel_0) { _fx_free_N14C_form__cexp_t(&update_exn_parallel_0); } - if (v_891) { - _fx_free_LN14C_form__cexp_t(&v_891); + if (v_864) { + _fx_free_LN14C_form__cexp_t(&v_864); } if (map_ccode_1) { _fx_free_LN15C_form__cstmt_t(&map_ccode_1); @@ -31641,14 +30896,14 @@ static int if (pre_map_ccode_0) { _fx_free_LN15C_form__cstmt_t(&pre_map_ccode_0); } - _fx_free_Ta2LN15C_form__cstmt_t(&v_890); - if (v_889) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_889); + _fx_free_Ta2LN15C_form__cstmt_t(&v_863); + if (v_862) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_862); } - if (v_888) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_888); + if (v_861) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_861); } - _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_887); + _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_860); FX_FREE_FP(&form_map_0); if (dst_data_1) { _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&dst_data_1); @@ -31656,21 +30911,17 @@ static int if (finalize_ccode_0) { _fx_free_LN15C_form__cstmt_t(&finalize_ccode_0); } - if (ccode_167) { - _fx_free_LN15C_form__cstmt_t(&ccode_167); + if (ccode_133) { + _fx_free_LN15C_form__cstmt_t(&ccode_133); } if (dst_data_0) { _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&dst_data_0); } - _fx_free_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &v_886); - _fx_free_T3LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &__fold_result___19); if (coll_typs_0) { _fx_free_LN14K_form__ktyp_t(&coll_typs_0); } - if (v_885) { - _fx_free_N14K_form__ktyp_t(&v_885); + if (v_859) { + _fx_free_N14K_form__ktyp_t(&v_859); } if (decl_nested_status_1) { _fx_free_LN15C_form__cstmt_t(&decl_nested_status_1); @@ -31678,14 +30929,14 @@ static int if (nested_status_1) { _fx_free_N14C_form__cexp_t(&nested_status_1); } - if (ccode_166) { - _fx_free_LN15C_form__cstmt_t(&ccode_166); + if (ccode_132) { + _fx_free_LN15C_form__cstmt_t(&ccode_132); } if (par_status_1) { _fx_free_N14C_form__cexp_t(&par_status_1); } - if (v_884) { - _fx_free_N14C_form__cexp_t(&v_884); + if (v_858) { + _fx_free_N14C_form__cexp_t(&v_858); } if (decl_nested_status_0) { _fx_free_LN15C_form__cstmt_t(&decl_nested_status_0); @@ -31693,31 +30944,32 @@ static int if (nested_status_0) { _fx_free_N14C_form__cexp_t(&nested_status_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_883); - _fx_free_Nt6option1N14C_form__cexp_t(&v_882); - if (v_881) { - _fx_free_N14C_form__cexp_t(&v_881); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_857); + _fx_free_Nt6option1N14C_form__cexp_t(&v_856); + if (v_855) { + _fx_free_N14C_form__cexp_t(&v_855); } - _fx_free_R16Ast__val_flags_t(&v_880); - if (ccode_165) { - _fx_free_LN15C_form__cstmt_t(&ccode_165); + _fx_free_R16Ast__val_flags_t(&v_854); + if (ccode_131) { + _fx_free_LN15C_form__cstmt_t(&ccode_131); } if (par_status_0) { _fx_free_N14C_form__cexp_t(&par_status_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_879); - _fx_free_Nt6option1N14C_form__cexp_t(&v_878); - if (v_877) { - _fx_free_N14C_form__cexp_t(&v_877); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_853); + _fx_free_Nt6option1N14C_form__cexp_t(&v_852); + if (v_851) { + _fx_free_N14C_form__cexp_t(&v_851); } - _fx_free_R16Ast__val_flags_t(&v_876); - _fx_free_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(&v_875); + _fx_free_R16Ast__val_flags_t(&v_850); + _fx_free_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(&v_849); if (glob_status_0) { _fx_free_N14C_form__cexp_t(&glob_status_0); } if (e_idoml_l_1) { _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&e_idoml_l_1); } + FX_FREE_REF_SIMPLE(&ndims_ref_0); if (e_idoml_l_0) { _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&e_idoml_l_0); } @@ -31732,58 +30984,57 @@ static int if (tag_0 == 27) { _fx_N14C_form__cexp_t lbl_7 = 0; _fx_N14C_form__cexp_t glob_status_1 = 0; - _fx_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t v_968 = {0}; - _fx_R16Ast__val_flags_t v_969 = {0}; - _fx_N14C_form__cexp_t v_970 = 0; - _fx_Nt6option1N14C_form__cexp_t v_971 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_972 = {0}; + _fx_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t v_939 = {0}; + _fx_R16Ast__val_flags_t v_940 = {0}; + _fx_N14C_form__cexp_t v_941 = 0; + _fx_Nt6option1N14C_form__cexp_t v_942 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_943 = {0}; _fx_N14C_form__cexp_t par_status_2 = 0; - _fx_LN15C_form__cstmt_t ccode_176 = 0; - _fx_R16Ast__val_flags_t v_973 = {0}; - _fx_N14C_form__cexp_t v_974 = 0; - _fx_Nt6option1N14C_form__cexp_t v_975 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_976 = {0}; + _fx_LN15C_form__cstmt_t ccode_134 = 0; + _fx_R16Ast__val_flags_t v_944 = {0}; + _fx_N14C_form__cexp_t v_945 = 0; + _fx_Nt6option1N14C_form__cexp_t v_946 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_947 = {0}; _fx_N14C_form__cexp_t nested_status_2 = 0; _fx_LN15C_form__cstmt_t decl_nested_status_2 = 0; - _fx_N14C_form__cexp_t v_977 = 0; + _fx_N14C_form__cexp_t v_948 = 0; _fx_N14C_form__cexp_t par_status_3 = 0; - _fx_LN15C_form__cstmt_t ccode_177 = 0; + _fx_LN15C_form__cstmt_t ccode_135 = 0; _fx_N14C_form__cexp_t nested_status_3 = 0; _fx_LN15C_form__cstmt_t decl_nested_status_3 = 0; - _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_978 = {0}; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_979 = 0; + _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_949 = {0}; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_950 = 0; _fx_T8LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN15C_form__cstmt_t - v_980 = {0}; + v_951 = {0}; _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t for_headers_0 = 0; - _fx_LN15C_form__cstmt_t ccode_178 = 0; + _fx_LN15C_form__cstmt_t ccode_136 = 0; _fx_LN15C_form__cstmt_t pre_body_ccode_0 = 0; _fx_LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_t body_elems_0 = 0; _fx_LN15C_form__cstmt_t post_ccode_0 = 0; _fx_LN15C_form__cstmt_t body_ccode_0 = 0; _fx_LN15C_form__cstmt_t body_ccode_1 = 0; - _fx_rNt6option1N14C_form__cexp_t v_981 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_982 = {0}; + _fx_rNt6option1N14C_form__cexp_t v_952 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_953 = {0}; _fx_LN15C_form__cstmt_t body_ccode_2 = 0; - _fx_T2R9Ast__id_tN15C_form__cstmt_t v_983 = {0}; + _fx_T2R9Ast__id_tN15C_form__cstmt_t v_954 = {0}; _fx_N15C_form__cstmt_t body_stmt_0 = 0; - _fx_N15C_form__cstmt_t __fold_result___23 = 0; - _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_984 = 0; _fx_N15C_form__cstmt_t for_stmt_0 = 0; + _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_955 = 0; _fx_LN15C_form__cstmt_t post_ccode_1 = 0; - _fx_N15C_form__cstmt_t v_985 = 0; - _fx_Ta2LN15C_form__cstmt_t v_986 = {0}; - _fx_LN14C_form__cexp_t v_987 = 0; + _fx_N15C_form__cstmt_t v_956 = 0; + _fx_Ta2LN15C_form__cstmt_t v_957 = {0}; + _fx_LN14C_form__cexp_t v_958 = 0; _fx_N14C_form__cexp_t update_exn_parallel_1 = 0; - _fx_N15C_form__cstmt_t v_988 = 0; - _fx_LN15C_form__cstmt_t v_989 = 0; - _fx_N15C_form__cstmt_t v_990 = 0; - _fx_LN15C_form__cstmt_t v_991 = 0; + _fx_N15C_form__cstmt_t v_959 = 0; + _fx_LN15C_form__cstmt_t v_960 = 0; + _fx_N15C_form__cstmt_t v_961 = 0; + _fx_LN15C_form__cstmt_t v_962 = 0; _fx_LN15C_form__cstmt_t omp_pragma_0 = 0; _fx_LN15C_form__cstmt_t post_ccode_2 = 0; - _fx_LN15C_form__cstmt_t v_992 = 0; - _fx_LN15C_form__cstmt_t v_993 = 0; - _fx_LN15C_form__cstmt_t v_994 = 0; - _fx_LN15C_form__cstmt_t v_995 = 0; + _fx_LN15C_form__cstmt_t v_963 = 0; + _fx_LN15C_form__cstmt_t v_964 = 0; + _fx_LN15C_form__cstmt_t v_965 = 0; + _fx_LN15C_form__cstmt_t v_966 = 0; _fx_T5LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tR10Ast__loc_t* vcase_26 = &kexp_0->u.KExpFor; _fx_R16Ast__for_flags_t* flags_1 = &vcase_26->t3; @@ -31805,53 +31056,53 @@ static int _fx_g20C_gen_code__CTypCInt, &kloc_0, &glob_status_1, 0), _fx_catch_220); bool is_parallel_for_0 = flags_1->for_flag_parallel; if (is_parallel_for_0) { - _fx_R9Ast__id_t v_996; + _fx_R9Ast__id_t v_967; fx_str_t slit_216 = FX_MAKE_STR("par_status"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_216, &v_996, 0), _fx_catch_220); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_969, 0), _fx_catch_220); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_970, 0), _fx_catch_220); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_970, &v_971); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_216, &v_967, 0), _fx_catch_220); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_940, 0), _fx_catch_220); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_941, 0), _fx_catch_220); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_941, &v_942); fx_str_t slit_217 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_996, _fx_g20C_gen_code__CTypCInt, &v_969, &slit_217, &v_971, ccode_0, &kloc_0, &v_972, 0), _fx_catch_220); - FX_COPY_PTR(v_972.t0, &par_status_2); - FX_COPY_PTR(v_972.t1, &ccode_176); - _fx_R9Ast__id_t v_997; + &v_967, _fx_g20C_gen_code__CTypCInt, &v_940, &slit_217, &v_942, ccode_0, &kloc_0, &v_943, 0), _fx_catch_220); + FX_COPY_PTR(v_943.t0, &par_status_2); + FX_COPY_PTR(v_943.t1, &ccode_134); + _fx_R9Ast__id_t v_968; fx_str_t slit_218 = FX_MAKE_STR("status"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_218, &v_997, 0), _fx_catch_220); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_973, 0), _fx_catch_220); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_974, 0), _fx_catch_220); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_974, &v_975); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_218, &v_968, 0), _fx_catch_220); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_944, 0), _fx_catch_220); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kloc_0, &v_945, 0), _fx_catch_220); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_945, &v_946); fx_str_t slit_219 = FX_MAKE_STR("fx_status"); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_997, _fx_g20C_gen_code__CTypCInt, &v_973, &slit_219, &v_975, 0, &kloc_0, &v_976, 0), _fx_catch_220); - FX_COPY_PTR(v_976.t0, &nested_status_2); - FX_COPY_PTR(v_976.t1, &decl_nested_status_2); - _fx_make_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(par_status_2, ccode_176, - nested_status_2, decl_nested_status_2, &v_968); + &v_968, _fx_g20C_gen_code__CTypCInt, &v_944, &slit_219, &v_946, 0, &kloc_0, &v_947, 0), _fx_catch_220); + FX_COPY_PTR(v_947.t0, &nested_status_2); + FX_COPY_PTR(v_947.t1, &decl_nested_status_2); + _fx_make_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(par_status_2, ccode_134, + nested_status_2, decl_nested_status_2, &v_939); } else { - FX_CALL(_fx_M6C_formFM14make_dummy_expN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_977, 0), _fx_catch_220); - _fx_make_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(v_977, ccode_0, glob_status_1, 0, - &v_968); - } - FX_COPY_PTR(v_968.t0, &par_status_3); - FX_COPY_PTR(v_968.t1, &ccode_177); - FX_COPY_PTR(v_968.t2, &nested_status_3); - FX_COPY_PTR(v_968.t3, &decl_nested_status_3); - _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(body_0, 0, 0, &v_978); - FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_978, 0, true, &v_979), _fx_catch_220); + FX_CALL(_fx_M6C_formFM14make_dummy_expN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_948, 0), _fx_catch_220); + _fx_make_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(v_948, ccode_0, glob_status_1, 0, + &v_939); + } + FX_COPY_PTR(v_939.t0, &par_status_3); + FX_COPY_PTR(v_939.t1, &ccode_135); + FX_COPY_PTR(v_939.t2, &nested_status_3); + FX_COPY_PTR(v_939.t3, &decl_nested_status_3); + _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(body_0, 0, 0, &v_949); + FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_949, 0, true, &v_950), _fx_catch_220); FX_CALL( - process_for_0.fp(lbl_7, idoml_2, vcase_26->t1, 0, 1, ndims_4, 0, v_979, ccode_177, &kloc_0, block_stack_ref_0, - defined_syms_ref_0, for_letters_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_980, process_for_0.fcv), + process_for_0.fp(lbl_7, idoml_2, vcase_26->t1, 0, 1, ndims_4, 0, v_950, ccode_135, &kloc_0, block_stack_ref_0, + defined_syms_ref_0, for_letters_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_951, process_for_0.fcv), _fx_catch_220); - FX_COPY_PTR(v_980.t0, &for_headers_0); - FX_COPY_PTR(v_980.t4, &ccode_178); - FX_COPY_PTR(v_980.t5, &pre_body_ccode_0); - FX_COPY_PTR(v_980.t6, &body_elems_0); - FX_COPY_PTR(v_980.t7, &post_ccode_0); + FX_COPY_PTR(v_951.t0, &for_headers_0); + FX_COPY_PTR(v_951.t4, &ccode_136); + FX_COPY_PTR(v_951.t5, &pre_body_ccode_0); + FX_COPY_PTR(v_951.t6, &body_elems_0); + FX_COPY_PTR(v_951.t7, &post_ccode_0); FX_CALL( _fx_M10C_gen_codeFM17new_for_block_ctxv7iR16Ast__for_flags_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_trLrRM11block_ctx_ti( ndims_4, flags_1, nested_status_3, par_status_3, &kloc_0, block_stack_ref_0, km_idx_0, 0), _fx_catch_220); @@ -31861,45 +31112,43 @@ static int FX_CALL( _fx_M10C_gen_codeFM19decl_for_body_elemsLN15C_form__cstmt_t4LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t( body_elems_0, body_ccode_0, block_stack_ref_0, i2e_ref_0, &body_ccode_1, 0), _fx_catch_220); - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_981), _fx_catch_220); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_952), _fx_catch_220); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - body_0, v_981, body_ccode_1, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, + body_0, v_952, body_ccode_1, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_982, fx_fv), _fx_catch_220); - FX_COPY_PTR(v_982.t1, &body_ccode_2); + return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_953, fx_fv), _fx_catch_220); + FX_COPY_PTR(v_953.t1, &body_ccode_2); _fx_R10Ast__loc_t body_loc_0; FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(body_0, &body_loc_0, 0), _fx_catch_220); FX_CALL( _fx_M10C_gen_codeFM18finalize_loop_bodyT2R9Ast__id_tN15C_form__cstmt_t4LN15C_form__cstmt_tBR10Ast__loc_trLrRM11block_ctx_t( - body_ccode_2, true, &body_loc_0, block_stack_ref_0, &v_983, 0), _fx_catch_220); - _fx_R9Ast__id_t br_label_0 = v_983.t0; - FX_COPY_PTR(v_983.t1, &body_stmt_0); - FX_COPY_PTR(body_stmt_0, &__fold_result___23); + body_ccode_2, true, &body_loc_0, block_stack_ref_0, &v_954, 0), _fx_catch_220); + _fx_R9Ast__id_t br_label_0 = v_954.t0; + FX_COPY_PTR(v_954.t1, &body_stmt_0); + FX_COPY_PTR(body_stmt_0, &for_stmt_0); FX_CALL( _fx_M10C_gen_codeFM3revLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t1LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - for_headers_0, &v_984, 0), _fx_catch_220); + for_headers_0, &v_955, 0), _fx_catch_220); int_ k_0 = 0; - _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t lst_28 = v_984; + _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t lst_28 = v_955; for (; lst_28; lst_28 = lst_28->tl, k_0 += 1) { _fx_Nt6option1N14C_form__ctyp_t t_opt_0 = {0}; _fx_LN14C_form__cexp_t for_inits_0 = 0; _fx_Nt6option1N14C_form__cexp_t for_check_opt_0 = {0}; _fx_LN14C_form__cexp_t for_incrs_0 = 0; - _fx_N15C_form__cstmt_t for_stmt_1 = 0; - _fx_N15C_form__cstmt_t for_stmt_2 = 0; - _fx_N15C_form__cstmt_t v_998 = 0; - _fx_LN15C_form__cstmt_t v_999 = 0; + _fx_N15C_form__cstmt_t for_stmt1_0 = 0; + _fx_N15C_form__cstmt_t v_969 = 0; + _fx_LN15C_form__cstmt_t v_970 = 0; _fx_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t* __pat___10 = &lst_28->hd; _fx_copy_Nt6option1N14C_form__ctyp_t(&__pat___10->t0, &t_opt_0); FX_COPY_PTR(__pat___10->t1, &for_inits_0); _fx_copy_Nt6option1N14C_form__cexp_t(&__pat___10->t2, &for_check_opt_0); FX_COPY_PTR(__pat___10->t3, &for_incrs_0); - FX_COPY_PTR(__fold_result___23, &for_stmt_1); FX_CALL( _fx_M6C_formFM8CStmtForN15C_form__cstmt_t6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t( - &t_opt_0, for_inits_0, &for_check_opt_0, for_incrs_0, for_stmt_1, &kloc_0, &for_stmt_2), _fx_catch_219); + &t_opt_0, for_inits_0, &for_check_opt_0, for_incrs_0, for_stmt_0, &kloc_0, &for_stmt1_0), _fx_catch_219); bool t_14; if (k_0 > 0) { t_14 = true; @@ -31908,29 +31157,26 @@ static int t_14 = pre_body_ccode_0 == 0; } if (t_14) { - FX_COPY_PTR(for_stmt_2, &v_998); + FX_COPY_PTR(for_stmt1_0, &v_969); } else { - FX_CALL(_fx_cons_LN15C_form__cstmt_t(for_stmt_2, pre_body_ccode_0, true, &v_999), _fx_catch_219); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(for_stmt1_0, pre_body_ccode_0, true, &v_970), _fx_catch_219); FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(v_999, &for_loc_1, &v_998, 0), + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(v_970, &for_loc_1, &v_969, 0), _fx_catch_219); } - _fx_free_N15C_form__cstmt_t(&__fold_result___23); - FX_COPY_PTR(v_998, &__fold_result___23); + _fx_free_N15C_form__cstmt_t(&for_stmt_0); + FX_COPY_PTR(v_969, &for_stmt_0); _fx_catch_219: ; - if (v_999) { - _fx_free_LN15C_form__cstmt_t(&v_999); - } - if (v_998) { - _fx_free_N15C_form__cstmt_t(&v_998); + if (v_970) { + _fx_free_LN15C_form__cstmt_t(&v_970); } - if (for_stmt_2) { - _fx_free_N15C_form__cstmt_t(&for_stmt_2); + if (v_969) { + _fx_free_N15C_form__cstmt_t(&v_969); } - if (for_stmt_1) { - _fx_free_N15C_form__cstmt_t(&for_stmt_1); + if (for_stmt1_0) { + _fx_free_N15C_form__cstmt_t(&for_stmt1_0); } if (for_incrs_0) { _fx_free_LN14C_form__cexp_t(&for_incrs_0); @@ -31942,61 +31188,60 @@ static int _fx_free_Nt6option1N14C_form__ctyp_t(&t_opt_0); FX_CHECK_EXN(_fx_catch_220); } - FX_COPY_PTR(__fold_result___23, &for_stmt_0); bool res_24; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&br_label_0, &_fx_g9Ast__noid, &res_24, 0), _fx_catch_220); if (res_24) { FX_COPY_PTR(post_ccode_0, &post_ccode_1); } else { - FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&br_label_0, &end_for_loc_1, &v_985), + FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&br_label_0, &end_for_loc_1, &v_956), _fx_catch_220); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_985, post_ccode_0, true, &post_ccode_1), _fx_catch_220); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_956, post_ccode_0, true, &post_ccode_1), _fx_catch_220); } if (!is_parallel_for_0) { - _fx_make_Ta2LN15C_form__cstmt_t(0, post_ccode_1, &v_986); + _fx_make_Ta2LN15C_form__cstmt_t(0, post_ccode_1, &v_957); } else { - _fx_R9Ast__id_t v_1000; + _fx_R9Ast__id_t v_971; fx_str_t slit_220 = FX_MAKE_STR("FX_UPDATE_EXN_PARALLEL"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_220, &v_1000, 0), _fx_catch_220); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_7, 0, true, &v_987), _fx_catch_220); - FX_CALL(_fx_cons_LN14C_form__cexp_t(par_status_3, v_987, false, &v_987), _fx_catch_220); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_220, &v_971, 0), _fx_catch_220); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_7, 0, true, &v_958), _fx_catch_220); + FX_CALL(_fx_cons_LN14C_form__cexp_t(par_status_3, v_958, false, &v_958), _fx_catch_220); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_1000, - v_987, _fx_g20C_gen_code__CTypVoid, &kloc_0, &update_exn_parallel_1, 0), _fx_catch_220); + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_971, v_958, + _fx_g20C_gen_code__CTypVoid, &kloc_0, &update_exn_parallel_1, 0), _fx_catch_220); fx_str_t slit_221 = FX_MAKE_STR("omp parallel for"); - FX_CALL(_fx_M6C_formFM12CMacroPragmaN15C_form__cstmt_t2SR10Ast__loc_t(&slit_221, &kloc_0, &v_988), _fx_catch_220); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_988, 0, true, &v_989), _fx_catch_220); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(update_exn_parallel_1, &v_990), _fx_catch_220); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_990, post_ccode_1, true, &v_991), _fx_catch_220); - _fx_make_Ta2LN15C_form__cstmt_t(v_989, v_991, &v_986); - } - FX_COPY_PTR(v_986.t0, &omp_pragma_0); - FX_COPY_PTR(v_986.t1, &post_ccode_2); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(for_stmt_0, 0, true, &v_992), _fx_catch_220); + FX_CALL(_fx_M6C_formFM12CMacroPragmaN15C_form__cstmt_t2SR10Ast__loc_t(&slit_221, &kloc_0, &v_959), _fx_catch_220); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_959, 0, true, &v_960), _fx_catch_220); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(update_exn_parallel_1, &v_961), _fx_catch_220); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_961, post_ccode_1, true, &v_962), _fx_catch_220); + _fx_make_Ta2LN15C_form__cstmt_t(v_960, v_962, &v_957); + } + FX_COPY_PTR(v_957.t0, &omp_pragma_0); + FX_COPY_PTR(v_957.t1, &post_ccode_2); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(for_stmt_0, 0, true, &v_963), _fx_catch_220); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(omp_pragma_0, ccode_178, &v_993, + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(omp_pragma_0, ccode_136, &v_964, 0), _fx_catch_220); - FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_992, v_993, &v_994, 0), + FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_963, v_964, &v_965, 0), _fx_catch_220); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(post_ccode_2, v_994, &v_995, 0), + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(post_ccode_2, v_965, &v_966, 0), _fx_catch_220); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_995, &v_1); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_966, &v_1); _fx_catch_220: ; - if (v_995) { - _fx_free_LN15C_form__cstmt_t(&v_995); + if (v_966) { + _fx_free_LN15C_form__cstmt_t(&v_966); } - if (v_994) { - _fx_free_LN15C_form__cstmt_t(&v_994); + if (v_965) { + _fx_free_LN15C_form__cstmt_t(&v_965); } - if (v_993) { - _fx_free_LN15C_form__cstmt_t(&v_993); + if (v_964) { + _fx_free_LN15C_form__cstmt_t(&v_964); } - if (v_992) { - _fx_free_LN15C_form__cstmt_t(&v_992); + if (v_963) { + _fx_free_LN15C_form__cstmt_t(&v_963); } if (post_ccode_2) { _fx_free_LN15C_form__cstmt_t(&post_ccode_2); @@ -32004,50 +31249,47 @@ static int if (omp_pragma_0) { _fx_free_LN15C_form__cstmt_t(&omp_pragma_0); } - if (v_991) { - _fx_free_LN15C_form__cstmt_t(&v_991); + if (v_962) { + _fx_free_LN15C_form__cstmt_t(&v_962); } - if (v_990) { - _fx_free_N15C_form__cstmt_t(&v_990); + if (v_961) { + _fx_free_N15C_form__cstmt_t(&v_961); } - if (v_989) { - _fx_free_LN15C_form__cstmt_t(&v_989); + if (v_960) { + _fx_free_LN15C_form__cstmt_t(&v_960); } - if (v_988) { - _fx_free_N15C_form__cstmt_t(&v_988); + if (v_959) { + _fx_free_N15C_form__cstmt_t(&v_959); } if (update_exn_parallel_1) { _fx_free_N14C_form__cexp_t(&update_exn_parallel_1); } - if (v_987) { - _fx_free_LN14C_form__cexp_t(&v_987); + if (v_958) { + _fx_free_LN14C_form__cexp_t(&v_958); } - _fx_free_Ta2LN15C_form__cstmt_t(&v_986); - if (v_985) { - _fx_free_N15C_form__cstmt_t(&v_985); + _fx_free_Ta2LN15C_form__cstmt_t(&v_957); + if (v_956) { + _fx_free_N15C_form__cstmt_t(&v_956); } if (post_ccode_1) { _fx_free_LN15C_form__cstmt_t(&post_ccode_1); } + if (v_955) { + _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_955); + } if (for_stmt_0) { _fx_free_N15C_form__cstmt_t(&for_stmt_0); } - if (v_984) { - _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_984); - } - if (__fold_result___23) { - _fx_free_N15C_form__cstmt_t(&__fold_result___23); - } if (body_stmt_0) { _fx_free_N15C_form__cstmt_t(&body_stmt_0); } - _fx_free_T2R9Ast__id_tN15C_form__cstmt_t(&v_983); + _fx_free_T2R9Ast__id_tN15C_form__cstmt_t(&v_954); if (body_ccode_2) { _fx_free_LN15C_form__cstmt_t(&body_ccode_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_982); - if (v_981) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_981); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_953); + if (v_952) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_952); } if (body_ccode_1) { _fx_free_LN15C_form__cstmt_t(&body_ccode_1); @@ -32064,32 +31306,32 @@ static int if (pre_body_ccode_0) { _fx_free_LN15C_form__cstmt_t(&pre_body_ccode_0); } - if (ccode_178) { - _fx_free_LN15C_form__cstmt_t(&ccode_178); + if (ccode_136) { + _fx_free_LN15C_form__cstmt_t(&ccode_136); } if (for_headers_0) { _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&for_headers_0); } _fx_free_T8LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN15C_form__cstmt_t( - &v_980); - if (v_979) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_979); + &v_951); + if (v_950) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_950); } - _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_978); + _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_949); if (decl_nested_status_3) { _fx_free_LN15C_form__cstmt_t(&decl_nested_status_3); } if (nested_status_3) { _fx_free_N14C_form__cexp_t(&nested_status_3); } - if (ccode_177) { - _fx_free_LN15C_form__cstmt_t(&ccode_177); + if (ccode_135) { + _fx_free_LN15C_form__cstmt_t(&ccode_135); } if (par_status_3) { _fx_free_N14C_form__cexp_t(&par_status_3); } - if (v_977) { - _fx_free_N14C_form__cexp_t(&v_977); + if (v_948) { + _fx_free_N14C_form__cexp_t(&v_948); } if (decl_nested_status_2) { _fx_free_LN15C_form__cstmt_t(&decl_nested_status_2); @@ -32097,25 +31339,25 @@ static int if (nested_status_2) { _fx_free_N14C_form__cexp_t(&nested_status_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_976); - _fx_free_Nt6option1N14C_form__cexp_t(&v_975); - if (v_974) { - _fx_free_N14C_form__cexp_t(&v_974); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_947); + _fx_free_Nt6option1N14C_form__cexp_t(&v_946); + if (v_945) { + _fx_free_N14C_form__cexp_t(&v_945); } - _fx_free_R16Ast__val_flags_t(&v_973); - if (ccode_176) { - _fx_free_LN15C_form__cstmt_t(&ccode_176); + _fx_free_R16Ast__val_flags_t(&v_944); + if (ccode_134) { + _fx_free_LN15C_form__cstmt_t(&ccode_134); } if (par_status_2) { _fx_free_N14C_form__cexp_t(&par_status_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_972); - _fx_free_Nt6option1N14C_form__cexp_t(&v_971); - if (v_970) { - _fx_free_N14C_form__cexp_t(&v_970); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_943); + _fx_free_Nt6option1N14C_form__cexp_t(&v_942); + if (v_941) { + _fx_free_N14C_form__cexp_t(&v_941); } - _fx_free_R16Ast__val_flags_t(&v_969); - _fx_free_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(&v_968); + _fx_free_R16Ast__val_flags_t(&v_940); + _fx_free_T4N14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tLN15C_form__cstmt_t(&v_939); if (glob_status_1) { _fx_free_N14C_form__cexp_t(&glob_status_1); } @@ -32125,76 +31367,76 @@ static int goto _fx_endmatch_49; } if (tag_0 == 28) { - _fx_rNt6option1N14C_form__cexp_t v_1001 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1002 = {0}; + _fx_rNt6option1N14C_form__cexp_t v_972 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_973 = {0}; _fx_N14C_form__cexp_t cc_1 = 0; _fx_LN15C_form__cstmt_t cc_code_0 = 0; - _fx_T2BLN15C_form__cstmt_t v_1003 = {0}; + _fx_T2BLN15C_form__cstmt_t v_974 = {0}; _fx_LN15C_form__cstmt_t check_code_0 = 0; - _fx_rNt6option1N14C_form__cexp_t v_1004 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1005 = {0}; + _fx_rNt6option1N14C_form__cexp_t v_975 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_976 = {0}; _fx_LN15C_form__cstmt_t body_ccode_3 = 0; _fx_LN15C_form__cstmt_t body_ccode_4 = 0; - _fx_T2R9Ast__id_tN15C_form__cstmt_t v_1006 = {0}; + _fx_T2R9Ast__id_tN15C_form__cstmt_t v_977 = {0}; _fx_N15C_form__cstmt_t body_stmt_1 = 0; _fx_N15C_form__cstmt_t loop_stmt_0 = 0; - _fx_LN15C_form__cstmt_t v_1007 = 0; + _fx_LN15C_form__cstmt_t v_978 = 0; _fx_T3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t* vcase_27 = &kexp_0->u.KExpWhile; FX_CALL( _fx_M10C_gen_codeFM13new_block_ctxv4N24C_gen_code__block_kind_tR10Ast__loc_trLrRM11block_ctx_ti( &_fx_g26C_gen_code__BlockKind_Loop, &kloc_0, block_stack_ref_0, km_idx_0, 0), _fx_catch_222); - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1001), _fx_catch_222); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_972), _fx_catch_222); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - vcase_27->t0, v_1001, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, - fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1002, fx_fv), _fx_catch_222); - FX_COPY_PTR(v_1002.t0, &cc_1); - FX_COPY_PTR(v_1002.t1, &cc_code_0); + vcase_27->t0, v_972, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, + fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, return_used_ref_0, + top_inline_ccode_ref_0, u1vals_0, &v_973, fx_fv), _fx_catch_222); + FX_COPY_PTR(v_973.t0, &cc_1); + FX_COPY_PTR(v_973.t1, &cc_code_0); if (cc_code_0 == 0) { if (FX_REC_VARIANT_TAG(cc_1) == 2) { - _fx_N14K_form__klit_t* v_1008 = &cc_1->u.CExpLit.t0; - if (v_1008->tag == 7) { - if (v_1008->u.KLitBool == true) { - _fx_make_T2BLN15C_form__cstmt_t(true, 0, &v_1003); goto _fx_endmatch_36; + _fx_N14K_form__klit_t* v_979 = &cc_1->u.CExpLit.t0; + if (v_979->tag == 7) { + if (v_979->u.KLitBool == true) { + _fx_make_T2BLN15C_form__cstmt_t(true, 0, &v_974); goto _fx_endmatch_36; } } } } if (cc_code_0 == 0) { - _fx_make_T2BLN15C_form__cstmt_t(false, 0, &v_1003); goto _fx_endmatch_36; + _fx_make_T2BLN15C_form__cstmt_t(false, 0, &v_974); goto _fx_endmatch_36; } - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_1009 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_980 = {0}; _fx_N14C_form__cexp_t not_cc_0 = 0; _fx_N15C_form__cstmt_t break_stmt_1 = 0; - _fx_N15C_form__cstmt_t v_1010 = 0; + _fx_N15C_form__cstmt_t v_981 = 0; _fx_N15C_form__cstmt_t check_cc_0 = 0; - _fx_LN15C_form__cstmt_t v_1011 = 0; + _fx_LN15C_form__cstmt_t v_982 = 0; _fx_R10Ast__loc_t cc_loc_0; FX_CALL(_fx_M6C_formFM12get_cexp_locR10Ast__loc_t1N14C_form__cexp_t(cc_1, &cc_loc_0, 0), _fx_catch_221); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &cc_loc_0, &v_1009); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &cc_loc_0, &v_980); FX_CALL( _fx_M6C_formFM9CExpUnaryN14C_form__cexp_t3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_gen_code__COpLogicNot, cc_1, &v_1009, ¬_cc_0), _fx_catch_221); + &_fx_g23C_gen_code__COpLogicNot, cc_1, &v_980, ¬_cc_0), _fx_catch_221); FX_CALL( _fx_M10C_gen_codeFM15make_break_stmtN15C_form__cstmt_t2R10Ast__loc_trLrRM11block_ctx_t(&cc_loc_0, block_stack_ref_0, &break_stmt_1, 0), _fx_catch_221); - FX_CALL(_fx_M6C_formFM8CStmtNopN15C_form__cstmt_t1R10Ast__loc_t(&cc_loc_0, &v_1010), _fx_catch_221); + FX_CALL(_fx_M6C_formFM8CStmtNopN15C_form__cstmt_t1R10Ast__loc_t(&cc_loc_0, &v_981), _fx_catch_221); FX_CALL( _fx_M10C_gen_codeFM7make_ifN15C_form__cstmt_t4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t( - not_cc_0, break_stmt_1, v_1010, &cc_loc_0, &check_cc_0, 0), _fx_catch_221); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(check_cc_0, cc_code_0, true, &v_1011), _fx_catch_221); - _fx_make_T2BLN15C_form__cstmt_t(true, v_1011, &v_1003); + not_cc_0, break_stmt_1, v_981, &cc_loc_0, &check_cc_0, 0), _fx_catch_221); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(check_cc_0, cc_code_0, true, &v_982), _fx_catch_221); + _fx_make_T2BLN15C_form__cstmt_t(true, v_982, &v_974); _fx_catch_221: ; - if (v_1011) { - _fx_free_LN15C_form__cstmt_t(&v_1011); + if (v_982) { + _fx_free_LN15C_form__cstmt_t(&v_982); } if (check_cc_0) { _fx_free_N15C_form__cstmt_t(&check_cc_0); } - if (v_1010) { - _fx_free_N15C_form__cstmt_t(&v_1010); + if (v_981) { + _fx_free_N15C_form__cstmt_t(&v_981); } if (break_stmt_1) { _fx_free_N15C_form__cstmt_t(&break_stmt_1); @@ -32202,26 +31444,26 @@ static int if (not_cc_0) { _fx_free_N14C_form__cexp_t(¬_cc_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_1009); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_980); _fx_endmatch_36: ; FX_CHECK_EXN(_fx_catch_222); - bool is_for_loop_0 = v_1003.t0; - FX_COPY_PTR(v_1003.t1, &check_code_0); - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1004), _fx_catch_222); + bool is_for_loop_0 = v_974.t0; + FX_COPY_PTR(v_974.t1, &check_code_0); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_975), _fx_catch_222); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - vcase_27->t1, v_1004, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, - fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1005, fx_fv), _fx_catch_222); - FX_COPY_PTR(v_1005.t1, &body_ccode_3); + vcase_27->t1, v_975, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, + fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, return_used_ref_0, + top_inline_ccode_ref_0, u1vals_0, &v_976, fx_fv), _fx_catch_222); + FX_COPY_PTR(v_976.t1, &body_ccode_3); FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(body_ccode_3, check_code_0, &body_ccode_4, 0), _fx_catch_222); FX_CALL( _fx_M10C_gen_codeFM18finalize_loop_bodyT2R9Ast__id_tN15C_form__cstmt_t4LN15C_form__cstmt_tBR10Ast__loc_trLrRM11block_ctx_t( - body_ccode_4, true, &kloc_0, block_stack_ref_0, &v_1006, 0), _fx_catch_222); - FX_COPY_PTR(v_1006.t1, &body_stmt_1); + body_ccode_4, true, &kloc_0, block_stack_ref_0, &v_977, 0), _fx_catch_222); + FX_COPY_PTR(v_977.t1, &body_stmt_1); if (is_for_loop_0) { FX_CALL( _fx_M6C_formFM8CStmtForN15C_form__cstmt_t6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t( @@ -32233,12 +31475,12 @@ static int _fx_M6C_formFM10CStmtWhileN15C_form__cstmt_t3N14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t(cc_1, body_stmt_1, &kloc_0, &loop_stmt_0), _fx_catch_222); } - FX_CALL(_fx_cons_LN15C_form__cstmt_t(loop_stmt_0, ccode_0, true, &v_1007), _fx_catch_222); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_1007, &v_1); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(loop_stmt_0, ccode_0, true, &v_978), _fx_catch_222); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_978, &v_1); _fx_catch_222: ; - if (v_1007) { - _fx_free_LN15C_form__cstmt_t(&v_1007); + if (v_978) { + _fx_free_LN15C_form__cstmt_t(&v_978); } if (loop_stmt_0) { _fx_free_N15C_form__cstmt_t(&loop_stmt_0); @@ -32246,111 +31488,111 @@ static int if (body_stmt_1) { _fx_free_N15C_form__cstmt_t(&body_stmt_1); } - _fx_free_T2R9Ast__id_tN15C_form__cstmt_t(&v_1006); + _fx_free_T2R9Ast__id_tN15C_form__cstmt_t(&v_977); if (body_ccode_4) { _fx_free_LN15C_form__cstmt_t(&body_ccode_4); } if (body_ccode_3) { _fx_free_LN15C_form__cstmt_t(&body_ccode_3); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1005); - if (v_1004) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_1004); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_976); + if (v_975) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_975); } if (check_code_0) { _fx_free_LN15C_form__cstmt_t(&check_code_0); } - _fx_free_T2BLN15C_form__cstmt_t(&v_1003); + _fx_free_T2BLN15C_form__cstmt_t(&v_974); if (cc_code_0) { _fx_free_LN15C_form__cstmt_t(&cc_code_0); } if (cc_1) { _fx_free_N14C_form__cexp_t(&cc_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1002); - if (v_1001) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_1001); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_973); + if (v_972) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_972); } goto _fx_endmatch_49; } if (tag_0 == 29) { - _fx_rNt6option1N14C_form__cexp_t v_1012 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1013 = {0}; + _fx_rNt6option1N14C_form__cexp_t v_983 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_984 = {0}; _fx_LN15C_form__cstmt_t body_ccode_5 = 0; - _fx_rNt6option1N14C_form__cexp_t v_1014 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1015 = {0}; + _fx_rNt6option1N14C_form__cexp_t v_985 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_986 = {0}; _fx_N14C_form__cexp_t cc_2 = 0; _fx_LN15C_form__cstmt_t cc_code_1 = 0; - _fx_T2BLN15C_form__cstmt_t v_1016 = {0}; + _fx_T2BLN15C_form__cstmt_t v_987 = {0}; _fx_LN15C_form__cstmt_t check_code_1 = 0; _fx_LN15C_form__cstmt_t body_ccode_6 = 0; - _fx_T2R9Ast__id_tN15C_form__cstmt_t v_1017 = {0}; + _fx_T2R9Ast__id_tN15C_form__cstmt_t v_988 = {0}; _fx_N15C_form__cstmt_t body_stmt_2 = 0; _fx_N15C_form__cstmt_t loop_stmt_1 = 0; - _fx_LN15C_form__cstmt_t v_1018 = 0; + _fx_LN15C_form__cstmt_t v_989 = 0; _fx_T3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t* vcase_28 = &kexp_0->u.KExpDoWhile; FX_CALL( _fx_M10C_gen_codeFM13new_block_ctxv4N24C_gen_code__block_kind_tR10Ast__loc_trLrRM11block_ctx_ti( &_fx_g26C_gen_code__BlockKind_Loop, &kloc_0, block_stack_ref_0, km_idx_0, 0), _fx_catch_224); - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1012), _fx_catch_224); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_983), _fx_catch_224); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - vcase_28->t0, v_1012, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, - fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1013, fx_fv), _fx_catch_224); - FX_COPY_PTR(v_1013.t1, &body_ccode_5); - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1014), _fx_catch_224); + vcase_28->t0, v_983, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, + fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, return_used_ref_0, + top_inline_ccode_ref_0, u1vals_0, &v_984, fx_fv), _fx_catch_224); + FX_COPY_PTR(v_984.t1, &body_ccode_5); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_985), _fx_catch_224); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - vcase_28->t1, v_1014, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, - fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1015, fx_fv), _fx_catch_224); - FX_COPY_PTR(v_1015.t0, &cc_2); - FX_COPY_PTR(v_1015.t1, &cc_code_1); + vcase_28->t1, v_985, 0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, + fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, return_used_ref_0, + top_inline_ccode_ref_0, u1vals_0, &v_986, fx_fv), _fx_catch_224); + FX_COPY_PTR(v_986.t0, &cc_2); + FX_COPY_PTR(v_986.t1, &cc_code_1); if (cc_code_1 == 0) { if (FX_REC_VARIANT_TAG(cc_2) == 2) { - _fx_N14K_form__klit_t* v_1019 = &cc_2->u.CExpLit.t0; - if (v_1019->tag == 7) { - if (v_1019->u.KLitBool == true) { - _fx_make_T2BLN15C_form__cstmt_t(true, 0, &v_1016); goto _fx_endmatch_37; + _fx_N14K_form__klit_t* v_990 = &cc_2->u.CExpLit.t0; + if (v_990->tag == 7) { + if (v_990->u.KLitBool == true) { + _fx_make_T2BLN15C_form__cstmt_t(true, 0, &v_987); goto _fx_endmatch_37; } } } } if (cc_code_1 == 0) { - _fx_make_T2BLN15C_form__cstmt_t(false, 0, &v_1016); goto _fx_endmatch_37; + _fx_make_T2BLN15C_form__cstmt_t(false, 0, &v_987); goto _fx_endmatch_37; } - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_1020 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_991 = {0}; _fx_N14C_form__cexp_t not_cc_1 = 0; _fx_N15C_form__cstmt_t break_stmt_2 = 0; - _fx_N15C_form__cstmt_t v_1021 = 0; + _fx_N15C_form__cstmt_t v_992 = 0; _fx_N15C_form__cstmt_t check_cc_1 = 0; - _fx_LN15C_form__cstmt_t v_1022 = 0; + _fx_LN15C_form__cstmt_t v_993 = 0; _fx_R10Ast__loc_t cc_loc_1; FX_CALL(_fx_M6C_formFM12get_cexp_locR10Ast__loc_t1N14C_form__cexp_t(cc_2, &cc_loc_1, 0), _fx_catch_223); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &cc_loc_1, &v_1020); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &cc_loc_1, &v_991); FX_CALL( _fx_M6C_formFM9CExpUnaryN14C_form__cexp_t3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_gen_code__COpLogicNot, cc_2, &v_1020, ¬_cc_1), _fx_catch_223); + &_fx_g23C_gen_code__COpLogicNot, cc_2, &v_991, ¬_cc_1), _fx_catch_223); FX_CALL( _fx_M10C_gen_codeFM15make_break_stmtN15C_form__cstmt_t2R10Ast__loc_trLrRM11block_ctx_t(&cc_loc_1, block_stack_ref_0, &break_stmt_2, 0), _fx_catch_223); - FX_CALL(_fx_M6C_formFM8CStmtNopN15C_form__cstmt_t1R10Ast__loc_t(&cc_loc_1, &v_1021), _fx_catch_223); + FX_CALL(_fx_M6C_formFM8CStmtNopN15C_form__cstmt_t1R10Ast__loc_t(&cc_loc_1, &v_992), _fx_catch_223); FX_CALL( _fx_M10C_gen_codeFM7make_ifN15C_form__cstmt_t4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t( - not_cc_1, break_stmt_2, v_1021, &cc_loc_1, &check_cc_1, 0), _fx_catch_223); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(check_cc_1, cc_code_1, true, &v_1022), _fx_catch_223); - _fx_make_T2BLN15C_form__cstmt_t(true, v_1022, &v_1016); + not_cc_1, break_stmt_2, v_992, &cc_loc_1, &check_cc_1, 0), _fx_catch_223); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(check_cc_1, cc_code_1, true, &v_993), _fx_catch_223); + _fx_make_T2BLN15C_form__cstmt_t(true, v_993, &v_987); _fx_catch_223: ; - if (v_1022) { - _fx_free_LN15C_form__cstmt_t(&v_1022); + if (v_993) { + _fx_free_LN15C_form__cstmt_t(&v_993); } if (check_cc_1) { _fx_free_N15C_form__cstmt_t(&check_cc_1); } - if (v_1021) { - _fx_free_N15C_form__cstmt_t(&v_1021); + if (v_992) { + _fx_free_N15C_form__cstmt_t(&v_992); } if (break_stmt_2) { _fx_free_N15C_form__cstmt_t(&break_stmt_2); @@ -32358,19 +31600,19 @@ static int if (not_cc_1) { _fx_free_N14C_form__cexp_t(¬_cc_1); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_1020); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_991); _fx_endmatch_37: ; FX_CHECK_EXN(_fx_catch_224); - bool is_for_loop_1 = v_1016.t0; - FX_COPY_PTR(v_1016.t1, &check_code_1); + bool is_for_loop_1 = v_987.t0; + FX_COPY_PTR(v_987.t1, &check_code_1); FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(check_code_1, body_ccode_5, &body_ccode_6, 0), _fx_catch_224); FX_CALL( _fx_M10C_gen_codeFM18finalize_loop_bodyT2R9Ast__id_tN15C_form__cstmt_t4LN15C_form__cstmt_tBR10Ast__loc_trLrRM11block_ctx_t( - body_ccode_6, true, &kloc_0, block_stack_ref_0, &v_1017, 0), _fx_catch_224); - FX_COPY_PTR(v_1017.t1, &body_stmt_2); + body_ccode_6, true, &kloc_0, block_stack_ref_0, &v_988, 0), _fx_catch_224); + FX_COPY_PTR(v_988.t1, &body_stmt_2); if (is_for_loop_1) { FX_CALL( _fx_M6C_formFM8CStmtForN15C_form__cstmt_t6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t( @@ -32382,12 +31624,12 @@ static int _fx_M6C_formFM12CStmtDoWhileN15C_form__cstmt_t3N15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t(body_stmt_2, cc_2, &kloc_0, &loop_stmt_1), _fx_catch_224); } - FX_CALL(_fx_cons_LN15C_form__cstmt_t(loop_stmt_1, ccode_0, true, &v_1018), _fx_catch_224); - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_1018, &v_1); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(loop_stmt_1, ccode_0, true, &v_989), _fx_catch_224); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, v_989, &v_1); _fx_catch_224: ; - if (v_1018) { - _fx_free_LN15C_form__cstmt_t(&v_1018); + if (v_989) { + _fx_free_LN15C_form__cstmt_t(&v_989); } if (loop_stmt_1) { _fx_free_N15C_form__cstmt_t(&loop_stmt_1); @@ -32395,164 +31637,165 @@ static int if (body_stmt_2) { _fx_free_N15C_form__cstmt_t(&body_stmt_2); } - _fx_free_T2R9Ast__id_tN15C_form__cstmt_t(&v_1017); + _fx_free_T2R9Ast__id_tN15C_form__cstmt_t(&v_988); if (body_ccode_6) { _fx_free_LN15C_form__cstmt_t(&body_ccode_6); } if (check_code_1) { _fx_free_LN15C_form__cstmt_t(&check_code_1); } - _fx_free_T2BLN15C_form__cstmt_t(&v_1016); + _fx_free_T2BLN15C_form__cstmt_t(&v_987); if (cc_code_1) { _fx_free_LN15C_form__cstmt_t(&cc_code_1); } if (cc_2) { _fx_free_N14C_form__cexp_t(&cc_2); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1015); - if (v_1014) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_1014); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_986); + if (v_985) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_985); } if (body_ccode_5) { _fx_free_LN15C_form__cstmt_t(&body_ccode_5); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1013); - if (v_1012) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_1012); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_984); + if (v_983) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_983); } goto _fx_endmatch_49; } if (tag_0 == 30) { - _fx_rR23C_gen_code__block_ctx_t v_1023 = 0; - fx_exn_t v_1024 = {0}; - _fx_N14C_form__cexp_t v_1025 = 0; - _fx_N15C_form__cstmt_t v_1026 = 0; - _fx_LN15C_form__cstmt_t v_1027 = 0; + _fx_rR23C_gen_code__block_ctx_t v_994 = 0; + fx_exn_t v_995 = {0}; + _fx_N14C_form__cexp_t v_996 = 0; + _fx_N15C_form__cstmt_t v_997 = 0; + _fx_LN15C_form__cstmt_t v_998 = 0; FX_CALL( - _fx_M10C_gen_codeFM14curr_block_ctxrRM11block_ctx_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, - &v_1023, 0), _fx_catch_225); - _fx_N24C_gen_code__block_kind_t v_1028 = v_1023->data.bctx_kind; - if (v_1028.tag != 1) { + _fx_M10C_gen_codeFM14curr_block_ctxrRM11block_ctx_t2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, &v_994, + 0), _fx_catch_225); + _fx_R23C_gen_code__block_ctx_t* v_999 = &v_994->data; + _fx_N24C_gen_code__block_kind_t v_1000 = v_999->bctx_kind; + if (v_1000.tag != 1) { fx_str_t slit_222 = FX_MAKE_STR("cgen: unexpected ccode expression"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_222, &v_1024, 0), _fx_catch_225); - FX_THROW(&v_1024, false, _fx_catch_225); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &slit_222, &v_995, 0), _fx_catch_225); + FX_THROW(&v_995, false, _fx_catch_225); } - FX_CALL(_fx_M6C_formFM9CExpCCodeN14C_form__cexp_t2SR10Ast__loc_t(&kexp_0->u.KExpCCode.t0, &kloc_0, &v_1025), + FX_CALL(_fx_M6C_formFM9CExpCCodeN14C_form__cexp_t2SR10Ast__loc_t(&kexp_0->u.KExpCCode.t0, &kloc_0, &v_996), _fx_catch_225); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_1025, &v_1026), _fx_catch_225); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1026, *top_inline_ccode_0, true, &v_1027), _fx_catch_225); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_996, &v_997), _fx_catch_225); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_997, *top_inline_ccode_0, true, &v_998), _fx_catch_225); _fx_free_LN15C_form__cstmt_t(top_inline_ccode_0); - FX_COPY_PTR(v_1027, top_inline_ccode_0); + FX_COPY_PTR(v_998, top_inline_ccode_0); _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, ccode_0, &v_1); _fx_catch_225: ; - if (v_1027) { - _fx_free_LN15C_form__cstmt_t(&v_1027); + if (v_998) { + _fx_free_LN15C_form__cstmt_t(&v_998); } - if (v_1026) { - _fx_free_N15C_form__cstmt_t(&v_1026); + if (v_997) { + _fx_free_N15C_form__cstmt_t(&v_997); } - if (v_1025) { - _fx_free_N14C_form__cexp_t(&v_1025); + if (v_996) { + _fx_free_N14C_form__cexp_t(&v_996); } - fx_free_exn(&v_1024); - if (v_1023) { - _fx_free_rR23C_gen_code__block_ctx_t(&v_1023); + fx_free_exn(&v_995); + if (v_994) { + _fx_free_rR23C_gen_code__block_ctx_t(&v_994); } goto _fx_endmatch_49; } if (tag_0 == 31) { - _fx_R17K_form__kdefval_t v_1029 = {0}; + _fx_R17K_form__kdefval_t v_1001 = {0}; _fx_R16Ast__val_flags_t kv_flags_1 = {0}; fx_str_t kv_cname_0 = {0}; _fx_N14K_form__ktyp_t kv_typ_1 = 0; _fx_N14C_form__ctyp_t ctyp_4 = 0; _fx_rR23C_gen_code__block_ctx_t bctx_1 = 0; - _fx_T3SSR10Ast__loc_t v_1030 = {0}; + _fx_T3SSR10Ast__loc_t v_1002 = {0}; fx_str_t ccode_data_kind_0 = {0}; fx_str_t ccode_data_lit_0 = {0}; - _fx_LN15C_form__cstmt_t ccode_179 = 0; - _fx_N14C_form__cexp_t v_1031 = 0; - _fx_Nt6option1N14C_form__cexp_t v_1032 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1033 = {0}; + _fx_LN15C_form__cstmt_t ccode_137 = 0; + _fx_N14C_form__cexp_t v_1003 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1004 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1005 = {0}; _fx_LN15C_form__cstmt_t delta_ccode_0 = 0; - _fx_LN15C_form__cstmt_t v_1034 = 0; - _fx_LN15C_form__cstmt_t v_1035 = 0; + _fx_LN15C_form__cstmt_t v_1006 = 0; + _fx_LN15C_form__cstmt_t v_1007 = 0; _fx_N14C_form__cexp_t tag_exp_0 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1036 = {0}; - _fx_LN14C_form__cexp_t v_1037 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_1038 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1008 = {0}; + _fx_LN14C_form__cexp_t v_1009 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_1010 = {0}; _fx_N14C_form__cexp_t init_exp_0 = 0; - _fx_N14C_form__cexp_t v_1039 = 0; - _fx_R16Ast__val_flags_t v_1040 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1041 = {0}; + _fx_N14C_form__cexp_t v_1011 = 0; + _fx_R16Ast__val_flags_t v_1012 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1013 = {0}; _fx_N14C_form__cexp_t i_exp_15 = 0; - _fx_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti v_1042 = {0}; + _fx_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti v_1014 = {0}; _fx_N14C_form__ctyp_t struct_ctyp_0 = 0; - fx_str_t v_1043 = {0}; - fx_str_t v_1044 = {0}; + fx_str_t v_1015 = {0}; + fx_str_t v_1016 = {0}; _fx_N14C_form__cexp_t rc_exp_0 = 0; - _fx_LN14C_form__cexp_t v_1045 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_1046 = {0}; + _fx_LN14C_form__cexp_t v_1017 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_1018 = {0}; _fx_N14C_form__cexp_t data_init_0 = 0; - _fx_R16Ast__val_flags_t v_1047 = {0}; - _fx_R16Ast__val_flags_t v_1048 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_1049 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1050 = {0}; + _fx_R16Ast__val_flags_t v_1019 = {0}; + _fx_R16Ast__val_flags_t v_1020 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_1021 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1022 = {0}; _fx_N14C_form__cexp_t data_exp_1 = 0; _fx_LN15C_form__cstmt_t delta_ccode_1 = 0; - _fx_N14C_form__cexp_t v_1051 = 0; + _fx_N14C_form__cexp_t v_1023 = 0; _fx_N14C_form__cexp_t init_exp_1 = 0; _fx_LN15C_form__cstmt_t delta_ccode_2 = 0; - _fx_R16Ast__val_flags_t v_1052 = {0}; - _fx_R16Ast__val_flags_t v_1053 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_1054 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1055 = {0}; + _fx_R16Ast__val_flags_t v_1024 = {0}; + _fx_R16Ast__val_flags_t v_1025 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_1026 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1027 = {0}; _fx_LN15C_form__cstmt_t delta_ccode_3 = 0; - _fx_LN15C_form__cstmt_t v_1056 = 0; - _fx_LN15C_form__cstmt_t v_1057 = 0; - _fx_rNt6option1N14C_form__cexp_t v_1058 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1059 = {0}; + _fx_LN15C_form__cstmt_t v_1028 = 0; + _fx_LN15C_form__cstmt_t v_1029 = 0; + _fx_rNt6option1N14C_form__cexp_t v_1030 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1031 = {0}; _fx_N14C_form__cexp_t ce2_5 = 0; - _fx_LN15C_form__cstmt_t ccode_180 = 0; + _fx_LN15C_form__cstmt_t ccode_138 = 0; _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t res_25 = {0}; - _fx_rNt6option1N14C_form__cexp_t v_1060 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1061 = {0}; + _fx_rNt6option1N14C_form__cexp_t v_1032 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1033 = {0}; _fx_N14C_form__cexp_t ce2_6 = 0; - _fx_LN15C_form__cstmt_t ccode_181 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1062 = {0}; + _fx_LN15C_form__cstmt_t ccode_139 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1034 = {0}; _fx_LN15C_form__cstmt_t saved_cleanup_0 = 0; - _fx_T3R16Ast__val_flags_tNt6option1N14C_form__cexp_tB v_1063 = {0}; - _fx_T2Nt6option1N14C_form__cexp_tB v_1064 = {0}; + _fx_T3R16Ast__val_flags_tNt6option1N14C_form__cexp_tB v_1035 = {0}; + _fx_T2Nt6option1N14C_form__cexp_tB v_1036 = {0}; _fx_Nt6option1N14C_form__cexp_t e0_opt_0 = {0}; _fx_R16Ast__val_flags_t flags_2 = {0}; _fx_Nt6option1N14C_form__cexp_t e0_opt_1 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1065 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1037 = {0}; _fx_N14C_form__cexp_t i_exp_16 = 0; _fx_LN15C_form__cstmt_t delta_ccode_4 = 0; - _fx_LN15C_form__cstmt_t ccode_182 = 0; - _fx_LN15C_form__cstmt_t v_1066 = 0; - _fx_LN15C_form__cstmt_t v_1067 = 0; - _fx_LN15C_form__cstmt_t v_1068 = 0; - _fx_LN15C_form__cstmt_t v_1069 = 0; - _fx_LN15C_form__cstmt_t v_1070 = 0; - _fx_LN15C_form__cstmt_t v_1071 = 0; - _fx_Nt6option1N14C_form__cexp_t v_1072 = {0}; - _fx_rNt6option1N14C_form__cexp_t v_1073 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1074 = {0}; - _fx_LN15C_form__cstmt_t ccode_183 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1075 = {0}; + _fx_LN15C_form__cstmt_t ccode_140 = 0; + _fx_LN15C_form__cstmt_t v_1038 = 0; + _fx_LN15C_form__cstmt_t v_1039 = 0; + _fx_LN15C_form__cstmt_t v_1040 = 0; + _fx_LN15C_form__cstmt_t v_1041 = 0; + _fx_LN15C_form__cstmt_t v_1042 = 0; + _fx_LN15C_form__cstmt_t v_1043 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1044 = {0}; + _fx_rNt6option1N14C_form__cexp_t v_1045 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1046 = {0}; + _fx_LN15C_form__cstmt_t ccode_141 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1047 = {0}; _fx_N14C_form__cexp_t ce2_7 = 0; - _fx_LN15C_form__cstmt_t ccode_184 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1076 = {0}; - _fx_N15C_form__cinfo_t v_1077 = {0}; + _fx_LN15C_form__cstmt_t ccode_142 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1048 = {0}; + _fx_N15C_form__cinfo_t v_1049 = {0}; _fx_T3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t* vcase_29 = &kexp_0->u.KDefVal; _fx_N14K_form__kexp_t e2_1 = vcase_29->t1; _fx_R9Ast__id_t* i_11 = &vcase_29->t0; - FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(i_11, &kloc_0, &v_1029, 0), _fx_catch_236); - _fx_copy_R16Ast__val_flags_t(&v_1029.kv_flags, &kv_flags_1); - fx_copy_str(&v_1029.kv_cname, &kv_cname_0); - FX_COPY_PTR(v_1029.kv_typ, &kv_typ_1); + FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(i_11, &kloc_0, &v_1001, 0), _fx_catch_236); + _fx_copy_R16Ast__val_flags_t(&v_1001.kv_flags, &kv_flags_1); + fx_copy_str(&v_1001.kv_cname, &kv_cname_0); + FX_COPY_PTR(v_1001.kv_typ, &kv_typ_1); bool res_26; FX_CALL(_fx_M6K_formFM13is_val_globalB1R16Ast__val_flags_t(&kv_flags_1, &res_26, 0), _fx_catch_236); bool t_15; @@ -32565,13 +31808,13 @@ static int if (t_15) { FX_CALL(_fx_M10C_gen_codeFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(*defined_syms_0, i_11, 0), _fx_catch_236); } - _fx_R17K_form__ktprops_t v_1078; + _fx_R17K_form__ktprops_t v_1050; FX_CALL( - _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(kv_typ_1, &kloc_0, &v_1078, 0), + _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(kv_typ_1, &kloc_0, &v_1050, 0), _fx_catch_236); - bool ktp_scalar_0 = v_1078.ktp_scalar; - bool ktp_complex_1 = v_1078.ktp_complex; - bool ktp_ptr_2 = v_1078.ktp_ptr; + bool ktp_scalar_0 = v_1050.ktp_scalar; + bool ktp_complex_1 = v_1050.ktp_complex; + bool ktp_ptr_2 = v_1050.ktp_ptr; FX_CALL(_fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(kv_typ_1, &kloc_0, &ctyp_4, 0), _fx_catch_236); FX_CALL( @@ -32580,24 +31823,25 @@ static int if (FX_REC_VARIANT_TAG(e2_1) == 30) { _fx_T2ST2N14K_form__ktyp_tR10Ast__loc_t* vcase_30 = &e2_1->u.KExpCCode; fx_str_t slit_223 = FX_MAKE_STR("ccode"); - _fx_make_T3SSR10Ast__loc_t(&slit_223, &vcase_30->t0, &vcase_30->t1.t1, &v_1030); + _fx_make_T3SSR10Ast__loc_t(&slit_223, &vcase_30->t0, &vcase_30->t1.t1, &v_1002); } else { fx_str_t slit_224 = FX_MAKE_STR(""); fx_str_t slit_225 = FX_MAKE_STR(""); - _fx_make_T3SSR10Ast__loc_t(&slit_224, &slit_225, &kloc_0, &v_1030); + _fx_make_T3SSR10Ast__loc_t(&slit_224, &slit_225, &kloc_0, &v_1002); } FX_CHECK_EXN(_fx_catch_236); - fx_copy_str(&v_1030.t0, &ccode_data_kind_0); - fx_copy_str(&v_1030.t1, &ccode_data_lit_0); - _fx_R10Ast__loc_t ccode_loc_0 = v_1030.t2; + fx_copy_str(&v_1002.t0, &ccode_data_kind_0); + fx_copy_str(&v_1002.t1, &ccode_data_lit_0); + _fx_R10Ast__loc_t ccode_loc_0 = v_1002.t2; int_ ctor_id_0 = kv_flags_1.val_flag_ctor; bool is_temp_0 = kv_flags_1.val_flag_temp; bool is_temp_ref_0 = kv_flags_1.val_flag_tempref; - _fx_N24C_gen_code__block_kind_t v_1079 = bctx_1->data.bctx_kind; + _fx_R23C_gen_code__block_ctx_t* v_1051 = &bctx_1->data; + _fx_N24C_gen_code__block_kind_t v_1052 = v_1051->bctx_kind; bool is_global_0; bool t_16; - if (v_1079.tag == 1) { + if (v_1052.tag == 1) { t_16 = !is_temp_0; } else { @@ -32615,18 +31859,18 @@ static int _fx_T4N13Ast__binary_tN14K_form__atom_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_31 = &e2_1->u.KExpBinary; if (FX_REC_VARIANT_TAG(vcase_31->t0) == 26) { - _fx_N14K_form__atom_t* v_1080 = &vcase_31->t2; - if (v_1080->tag == 1) { - _fx_R9Ast__id_t* l_0 = &v_1080->u.AtomId; + _fx_N14K_form__atom_t* v_1053 = &vcase_31->t2; + if (v_1053->tag == 1) { + _fx_R9Ast__id_t* l_0 = &v_1053->u.AtomId; bool res_27; FX_CALL(_fx_M10C_gen_codeFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(u1vals_0, l_0, &res_27, 0), _fx_catch_236); if (res_27) { - _fx_N15K_form__kinfo_t v_1081 = {0}; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(l_0, &kloc_0, &v_1081, 0), + _fx_N15K_form__kinfo_t v_1054 = {0}; + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(l_0, &kloc_0, &v_1054, 0), _fx_catch_226); - if (v_1081.tag == 2) { - is_fast_cons_0 = v_1081.u.KVal.kv_flags.val_flag_temp; + if (v_1054.tag == 2) { + is_fast_cons_0 = v_1054.u.KVal.kv_flags.val_flag_temp; } else { is_fast_cons_0 = false; @@ -32634,7 +31878,7 @@ static int FX_CHECK_EXN(_fx_catch_226); _fx_catch_226: ; - _fx_free_N15K_form__kinfo_t(&v_1081); + _fx_free_N15K_form__kinfo_t(&v_1054); goto _fx_endmatch_38; } } @@ -32648,47 +31892,49 @@ static int else { is_fast_cons_0 = false; } - bool v_1082; + bool v_1055; fx_str_t slit_226 = FX_MAKE_STR("ccode"); - v_1082 = _fx_F6__eq__B2SS(&ccode_data_kind_0, &slit_226, 0); - if (v_1082) { - FX_CALL(_fx_M6C_formFM9CExpCCodeN14C_form__cexp_t2SR10Ast__loc_t(&ccode_data_lit_0, &ccode_loc_0, &v_1031), + v_1055 = _fx_F6__eq__B2SS(&ccode_data_kind_0, &slit_226, 0); + if (v_1055) { + FX_CALL(_fx_M6C_formFM9CExpCCodeN14C_form__cexp_t2SR10Ast__loc_t(&ccode_data_lit_0, &ccode_loc_0, &v_1003), _fx_catch_236); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1031, &v_1032); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1003, &v_1004); fx_str_t slit_227 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - i_11, ctyp_4, &kv_flags_1, &slit_227, &v_1032, 0, &kloc_0, &v_1033, 0), _fx_catch_236); - FX_COPY_PTR(v_1033.t1, &delta_ccode_0); - FX_COPY_PTR(bctx_1->data.bctx_prologue, &v_1034); + i_11, ctyp_4, &kv_flags_1, &slit_227, &v_1004, 0, &kloc_0, &v_1005, 0), _fx_catch_236); + FX_COPY_PTR(v_1005.t1, &delta_ccode_0); + _fx_R23C_gen_code__block_ctx_t* v_1056 = &bctx_1->data; + FX_COPY_PTR(v_1056->bctx_prologue, &v_1006); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(delta_ccode_0, v_1034, - &v_1035, 0), _fx_catch_236); - _fx_LN15C_form__cstmt_t* v_1083 = &bctx_1->data.bctx_prologue; - _fx_free_LN15C_form__cstmt_t(v_1083); - FX_COPY_PTR(v_1035, v_1083); - FX_COPY_PTR(ccode_0, &ccode_179); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(delta_ccode_0, v_1006, + &v_1007, 0), _fx_catch_236); + _fx_R23C_gen_code__block_ctx_t* v_1057 = &bctx_1->data; + _fx_LN15C_form__cstmt_t* v_1058 = &v_1057->bctx_prologue; + _fx_free_LN15C_form__cstmt_t(v_1058); + FX_COPY_PTR(v_1007, v_1058); + FX_COPY_PTR(ccode_0, &ccode_137); } else if (ctor_id_0 > 0) { FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(ctor_id_0, &kloc_0, &tag_exp_0, 0), _fx_catch_236); bool is_null_0; if (FX_REC_VARIANT_TAG(kv_typ_1) == 16) { - _fx_N15K_form__kinfo_t v_1084 = {0}; + _fx_N15K_form__kinfo_t v_1059 = {0}; FX_CALL( - _fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(&kv_typ_1->u.KTypName, &kloc_0, &v_1084, 0), + _fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(&kv_typ_1->u.KTypName, &kloc_0, &v_1059, 0), _fx_catch_227); - if (v_1084.tag == 5) { - _fx_R21K_form__kdefvariant_t v_1085 = {0}; - _fx_copy_R21K_form__kdefvariant_t(&v_1084.u.KVariant->data, &v_1085); - _fx_R16Ast__var_flags_t* kvar_flags_1 = &v_1085.kvar_flags; + if (v_1059.tag == 5) { + _fx_R21K_form__kdefvariant_t v_1060 = {0}; + _fx_copy_R21K_form__kdefvariant_t(&v_1059.u.KVariant->data, &v_1060); + _fx_R16Ast__var_flags_t* kvar_flags_1 = &v_1060.kvar_flags; if (kvar_flags_1->var_flag_recursive) { is_null_0 = kvar_flags_1->var_flag_opt; } else { is_null_0 = false; } - _fx_free_R21K_form__kdefvariant_t(&v_1085); + _fx_free_R21K_form__kdefvariant_t(&v_1060); } else { is_null_0 = false; @@ -32696,90 +31942,92 @@ static int FX_CHECK_EXN(_fx_catch_227); _fx_catch_227: ; - _fx_free_N15K_form__kinfo_t(&v_1084); + _fx_free_N15K_form__kinfo_t(&v_1059); } else { is_null_0 = false; } FX_CHECK_EXN(_fx_catch_236); if (!ktp_ptr_2) { - FX_CALL(_fx_cons_LN14C_form__cexp_t(tag_exp_0, 0, true, &v_1037), _fx_catch_236); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_4, &kloc_0, &v_1038); + FX_CALL(_fx_cons_LN14C_form__cexp_t(tag_exp_0, 0, true, &v_1009), _fx_catch_236); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_4, &kloc_0, &v_1010); FX_CALL( - _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_1037, &v_1038, + _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_1009, &v_1010, &init_exp_0), _fx_catch_236); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(init_exp_0, 0, &v_1036); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(init_exp_0, 0, &v_1008); } else if (is_null_0) { - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_1039, 0), _fx_catch_236); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_1039, 0, &v_1036); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&kloc_0, &v_1011, 0), _fx_catch_236); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_1011, 0, &v_1008); } else { - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_1040, 0), _fx_catch_236); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_1012, 0), _fx_catch_236); fx_str_t slit_228 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - i_11, ctyp_4, &v_1040, &slit_228, &_fx_g18C_gen_code__None2_, 0, &kloc_0, &v_1041, 0), _fx_catch_236); - FX_COPY_PTR(v_1041.t0, &i_exp_15); + i_11, ctyp_4, &v_1012, &slit_228, &_fx_g18C_gen_code__None2_, 0, &kloc_0, &v_1013, 0), _fx_catch_236); + FX_COPY_PTR(v_1013.t0, &i_exp_15); FX_CALL( _fx_M10C_gen_codeFM10get_structT4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti1N14C_form__cexp_t( - i_exp_15, &v_1042, 0), _fx_catch_236); - _fx_R9Ast__id_t rn_0 = v_1042.t0; + i_exp_15, &v_1014, 0), _fx_catch_236); + _fx_R9Ast__id_t rn_0 = v_1014.t0; FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&rn_0, &struct_ctyp_0), _fx_catch_236); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(i_11, &v_1043, 0), _fx_catch_236); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(i_11, &v_1015, 0), _fx_catch_236); fx_str_t slit_229 = FX_MAKE_STR("_data"); { - const fx_str_t strs_35[] = { v_1043, slit_229 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_35, 2, &v_1044), _fx_catch_236); + const fx_str_t strs_34[] = { v_1015, slit_229 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_34, 2, &v_1016), _fx_catch_236); } _fx_R9Ast__id_t data_id_1; - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &v_1044, &data_id_1, 0), _fx_catch_236); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &v_1016, &data_id_1, 0), _fx_catch_236); FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(1, &kloc_0, &rc_exp_0, 0), _fx_catch_236); - FX_CALL(_fx_cons_LN14C_form__cexp_t(tag_exp_0, 0, true, &v_1045), _fx_catch_236); - FX_CALL(_fx_cons_LN14C_form__cexp_t(rc_exp_0, v_1045, false, &v_1045), _fx_catch_236); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(struct_ctyp_0, &kloc_0, &v_1046); + FX_CALL(_fx_cons_LN14C_form__cexp_t(tag_exp_0, 0, true, &v_1017), _fx_catch_236); + FX_CALL(_fx_cons_LN14C_form__cexp_t(rc_exp_0, v_1017, false, &v_1017), _fx_catch_236); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(struct_ctyp_0, &kloc_0, &v_1018); FX_CALL( - _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_1045, &v_1046, + _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_1017, &v_1018, &data_init_0), _fx_catch_236); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_1047, 0), _fx_catch_236); - _fx_make_R16Ast__val_flags_t(v_1047.val_flag_arg, v_1047.val_flag_mutable, v_1047.val_flag_temp, - v_1047.val_flag_tempref, true, v_1047.val_flag_subarray, v_1047.val_flag_instance, &v_1047.val_flag_method, - v_1047.val_flag_ctor, v_1047.val_flag_global, &v_1048); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(data_init_0, &v_1049); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_1019, 0), _fx_catch_236); + _fx_make_R16Ast__val_flags_t(v_1019.val_flag_arg, v_1019.val_flag_mutable, v_1019.val_flag_temp, + v_1019.val_flag_tempref, true, v_1019.val_flag_subarray, v_1019.val_flag_instance, &v_1019.val_flag_method, + v_1019.val_flag_ctor, v_1019.val_flag_global, &v_1020); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(data_init_0, &v_1021); fx_str_t slit_230 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &data_id_1, struct_ctyp_0, &v_1048, &slit_230, &v_1049, 0, &kloc_0, &v_1050, 0), _fx_catch_236); - FX_COPY_PTR(v_1050.t0, &data_exp_1); - FX_COPY_PTR(v_1050.t1, &delta_ccode_1); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(data_exp_1, &v_1051, 0), _fx_catch_236); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_1051, delta_ccode_1, &v_1036); - } - FX_COPY_PTR(v_1036.t0, &init_exp_1); - FX_COPY_PTR(v_1036.t1, &delta_ccode_2); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_1052, 0), _fx_catch_236); - _fx_make_R16Ast__val_flags_t(v_1052.val_flag_arg, v_1052.val_flag_mutable, v_1052.val_flag_temp, - v_1052.val_flag_tempref, v_1052.val_flag_private, v_1052.val_flag_subarray, v_1052.val_flag_instance, - &v_1052.val_flag_method, v_1052.val_flag_ctor, mod_sc_0, &v_1053); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(init_exp_1, &v_1054); + &data_id_1, struct_ctyp_0, &v_1020, &slit_230, &v_1021, 0, &kloc_0, &v_1022, 0), _fx_catch_236); + FX_COPY_PTR(v_1022.t0, &data_exp_1); + FX_COPY_PTR(v_1022.t1, &delta_ccode_1); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(data_exp_1, &v_1023, 0), _fx_catch_236); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_1023, delta_ccode_1, &v_1008); + } + FX_COPY_PTR(v_1008.t0, &init_exp_1); + FX_COPY_PTR(v_1008.t1, &delta_ccode_2); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_1024, 0), _fx_catch_236); + _fx_make_R16Ast__val_flags_t(v_1024.val_flag_arg, v_1024.val_flag_mutable, v_1024.val_flag_temp, + v_1024.val_flag_tempref, v_1024.val_flag_private, v_1024.val_flag_subarray, v_1024.val_flag_instance, + &v_1024.val_flag_method, v_1024.val_flag_ctor, mod_sc_0, &v_1025); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(init_exp_1, &v_1026); fx_str_t slit_231 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - i_11, ctyp_4, &v_1053, &slit_231, &v_1054, delta_ccode_2, &kloc_0, &v_1055, 0), _fx_catch_236); - FX_COPY_PTR(v_1055.t1, &delta_ccode_3); - FX_COPY_PTR(bctx_1->data.bctx_prologue, &v_1056); + i_11, ctyp_4, &v_1025, &slit_231, &v_1026, delta_ccode_2, &kloc_0, &v_1027, 0), _fx_catch_236); + FX_COPY_PTR(v_1027.t1, &delta_ccode_3); + _fx_R23C_gen_code__block_ctx_t* v_1061 = &bctx_1->data; + FX_COPY_PTR(v_1061->bctx_prologue, &v_1028); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(delta_ccode_3, v_1056, - &v_1057, 0), _fx_catch_236); - _fx_LN15C_form__cstmt_t* v_1086 = &bctx_1->data.bctx_prologue; - _fx_free_LN15C_form__cstmt_t(v_1086); - FX_COPY_PTR(v_1057, v_1086); - FX_COPY_PTR(ccode_0, &ccode_179); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(delta_ccode_3, v_1028, + &v_1029, 0), _fx_catch_236); + _fx_R23C_gen_code__block_ctx_t* v_1062 = &bctx_1->data; + _fx_LN15C_form__cstmt_t* v_1063 = &v_1062->bctx_prologue; + _fx_free_LN15C_form__cstmt_t(v_1063); + FX_COPY_PTR(v_1029, v_1063); + FX_COPY_PTR(ccode_0, &ccode_137); } else { - bool v_1087; + bool v_1064; if (is_fast_cons_0) { - v_1087 = true; + v_1064 = true; } else { bool t_17; @@ -32793,22 +32041,22 @@ static int t_17 = false; } if (t_17) { - FX_CALL(_fx_M10C_gen_codeFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(u1vals_0, i_11, &v_1087, 0), + FX_CALL(_fx_M10C_gen_codeFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(u1vals_0, i_11, &v_1064, 0), _fx_catch_236); } else { - v_1087 = false; + v_1064 = false; } } - if (v_1087) { - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1058), _fx_catch_236); + if (v_1064) { + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1030), _fx_catch_236); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - e2_1, v_1058, ccode_0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, + e2_1, v_1030, ccode_0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1059, fx_fv), _fx_catch_236); - FX_COPY_PTR(v_1059.t0, &ce2_5); - FX_COPY_PTR(v_1059.t1, &ccode_180); + return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1031, fx_fv), _fx_catch_236); + FX_COPY_PTR(v_1031.t0, &ce2_5); + FX_COPY_PTR(v_1031.t1, &ccode_138); fx_str_t slit_232 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( @@ -32816,21 +32064,21 @@ static int FX_CALL( _fx_M10C_gen_codeFM3addv3Nt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tR9Ast__id_tN14C_form__cexp_t(*i2e_0, i_11, ce2_5, 0), _fx_catch_236); - FX_COPY_PTR(ccode_180, &ccode_179); + FX_COPY_PTR(ccode_138, &ccode_137); } else if (is_temp_ref_0) { - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1060), _fx_catch_236); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1032), _fx_catch_236); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - e2_1, v_1060, ccode_0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, + e2_1, v_1032, ccode_0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1061, fx_fv), _fx_catch_236); - FX_COPY_PTR(v_1061.t0, &ce2_6); - FX_COPY_PTR(v_1061.t1, &ccode_181); + return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1033, fx_fv), _fx_catch_236); + FX_COPY_PTR(v_1033.t0, &ce2_6); + FX_COPY_PTR(v_1033.t1, &ccode_139); FX_CALL( _fx_M10C_gen_codeFM17add_local_temprefT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t( - i_11, ctyp_4, &kv_flags_1, ce2_6, ccode_181, &kloc_0, i2e_ref_0, &v_1062, 0), _fx_catch_236); - FX_COPY_PTR(v_1062.t1, &ccode_179); + i_11, ctyp_4, &kv_flags_1, ce2_6, ccode_139, &kloc_0, i2e_ref_0, &v_1034, 0), _fx_catch_236); + FX_COPY_PTR(v_1034.t1, &ccode_137); } else { bool t_18; @@ -32890,16 +32138,18 @@ static int FX_CHECK_EXN(_fx_catch_236); } if (t_19) { - FX_COPY_PTR(bctx_1->data.bctx_cleanup, &saved_cleanup_0); - _fx_LN15C_form__cstmt_t* v_1088 = &bctx_1->data.bctx_cleanup; - _fx_free_LN15C_form__cstmt_t(v_1088); - *v_1088 = 0; + _fx_R23C_gen_code__block_ctx_t* v_1065 = &bctx_1->data; + FX_COPY_PTR(v_1065->bctx_cleanup, &saved_cleanup_0); + _fx_R23C_gen_code__block_ctx_t* v_1066 = &bctx_1->data; + _fx_LN15C_form__cstmt_t* v_1067 = &v_1066->bctx_cleanup; + _fx_free_LN15C_form__cstmt_t(v_1067); + *v_1067 = 0; bool assign_e2_0; if (ktp_complex_1 == true) { if (FX_REC_VARIANT_TAG(e2_1) == 5) { - _fx_N14K_form__atom_t* v_1089 = &e2_1->u.KExpAtom.t0; - if (v_1089->tag == 2) { - if (v_1089->u.AtomLit.tag == 8) { + _fx_N14K_form__atom_t* v_1068 = &e2_1->u.KExpAtom.t0; + if (v_1068->tag == 2) { + if (v_1068->u.AtomLit.tag == 8) { assign_e2_0 = false; goto _fx_endmatch_40; } } @@ -32911,11 +32161,11 @@ static int FX_CHECK_EXN(_fx_catch_236); if (!is_global_0) { _fx_make_T3R16Ast__val_flags_tNt6option1N14C_form__cexp_tB(&kv_flags_1, &_fx_g18C_gen_code__None2_, - assign_e2_0, &v_1063); + assign_e2_0, &v_1035); } else { if (ktp_complex_1) { - _fx_make_T2Nt6option1N14C_form__cexp_tB(&_fx_g18C_gen_code__None2_, assign_e2_0, &v_1064); + _fx_make_T2Nt6option1N14C_form__cexp_tB(&_fx_g18C_gen_code__None2_, assign_e2_0, &v_1036); } else { bool t_20; @@ -32928,139 +32178,145 @@ static int if (t_20) { if (FX_REC_VARIANT_TAG(e2_1) == 5) { _fx_T2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_32 = &e2_1->u.KExpAtom; - _fx_N14K_form__atom_t* v_1090 = &vcase_32->t0; - if (v_1090->tag == 2) { + _fx_N14K_form__atom_t* v_1069 = &vcase_32->t0; + if (v_1069->tag == 2) { _fx_N14C_form__ctyp_t e2_ctyp_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_1091 = {0}; - _fx_N14C_form__cexp_t v_1092 = 0; - _fx_Nt6option1N14C_form__cexp_t v_1093 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t* v_1094 = &vcase_32->t1; - _fx_R10Ast__loc_t* e2_loc_0 = &v_1094->t1; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_1070 = {0}; + _fx_N14C_form__cexp_t v_1071 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1072 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t* v_1073 = &vcase_32->t1; + _fx_R10Ast__loc_t* e2_loc_0 = &v_1073->t1; FX_CALL( - _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(v_1094->t0, + _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(v_1073->t0, e2_loc_0, &e2_ctyp_0, 0), _fx_catch_228); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(e2_ctyp_0, e2_loc_0, &v_1091); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(e2_ctyp_0, e2_loc_0, &v_1070); FX_CALL( _fx_M6C_formFM7CExpLitN14C_form__cexp_t2N14K_form__klit_tT2N14C_form__ctyp_tR10Ast__loc_t( - &v_1090->u.AtomLit, &v_1091, &v_1092), _fx_catch_228); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1092, &v_1093); - _fx_make_T2Nt6option1N14C_form__cexp_tB(&v_1093, false, &v_1064); + &v_1069->u.AtomLit, &v_1070, &v_1071), _fx_catch_228); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1071, &v_1072); + _fx_make_T2Nt6option1N14C_form__cexp_tB(&v_1072, false, &v_1036); _fx_catch_228: ; - _fx_free_Nt6option1N14C_form__cexp_t(&v_1093); - if (v_1092) { - _fx_free_N14C_form__cexp_t(&v_1092); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1072); + if (v_1071) { + _fx_free_N14C_form__cexp_t(&v_1071); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_1091); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_1070); if (e2_ctyp_0) { _fx_free_N14C_form__ctyp_t(&e2_ctyp_0); } goto _fx_endmatch_41; } } - _fx_make_T2Nt6option1N14C_form__cexp_tB(&_fx_g18C_gen_code__None2_, assign_e2_0, &v_1064); + _fx_make_T2Nt6option1N14C_form__cexp_tB(&_fx_g18C_gen_code__None2_, assign_e2_0, &v_1036); _fx_endmatch_41: ; FX_CHECK_EXN(_fx_catch_236); } else { - _fx_make_T2Nt6option1N14C_form__cexp_tB(&_fx_g18C_gen_code__None2_, assign_e2_0, &v_1064); + _fx_make_T2Nt6option1N14C_form__cexp_tB(&_fx_g18C_gen_code__None2_, assign_e2_0, &v_1036); } } - _fx_copy_Nt6option1N14C_form__cexp_t(&v_1064.t0, &e0_opt_0); - bool assign_e2_1 = v_1064.t1; - _fx_make_T3R16Ast__val_flags_tNt6option1N14C_form__cexp_tB(&kv_flags_1, &e0_opt_0, assign_e2_1, &v_1063); + _fx_copy_Nt6option1N14C_form__cexp_t(&v_1036.t0, &e0_opt_0); + bool assign_e2_1 = v_1036.t1; + _fx_make_T3R16Ast__val_flags_tNt6option1N14C_form__cexp_tB(&kv_flags_1, &e0_opt_0, assign_e2_1, &v_1035); } - _fx_copy_R16Ast__val_flags_t(&v_1063.t0, &flags_2); - _fx_copy_Nt6option1N14C_form__cexp_t(&v_1063.t1, &e0_opt_1); - bool assign_e2_2 = v_1063.t2; + _fx_copy_R16Ast__val_flags_t(&v_1035.t0, &flags_2); + _fx_copy_Nt6option1N14C_form__cexp_t(&v_1035.t1, &e0_opt_1); + bool assign_e2_2 = v_1035.t2; FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - i_11, ctyp_4, &flags_2, &e0_opt_1, 0, &kloc_0, block_stack_ref_0, &v_1065, 0), _fx_catch_236); - FX_COPY_PTR(v_1065.t0, &i_exp_16); - FX_COPY_PTR(v_1065.t1, &delta_ccode_4); + i_11, ctyp_4, &flags_2, &e0_opt_1, 0, &kloc_0, block_stack_ref_0, &v_1037, 0), _fx_catch_236); + FX_COPY_PTR(v_1037.t0, &i_exp_16); + FX_COPY_PTR(v_1037.t1, &delta_ccode_4); if (is_global_0) { - FX_COPY_PTR(bctx_1->data.bctx_prologue, &v_1066); + _fx_R23C_gen_code__block_ctx_t* v_1074 = &bctx_1->data; + FX_COPY_PTR(v_1074->bctx_prologue, &v_1038); FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(delta_ccode_4, - v_1066, &v_1067, 0), _fx_catch_236); - _fx_LN15C_form__cstmt_t* v_1095 = &bctx_1->data.bctx_prologue; - _fx_free_LN15C_form__cstmt_t(v_1095); - FX_COPY_PTR(v_1067, v_1095); - FX_COPY_PTR(ccode_0, &ccode_182); + v_1038, &v_1039, 0), _fx_catch_236); + _fx_R23C_gen_code__block_ctx_t* v_1075 = &bctx_1->data; + _fx_LN15C_form__cstmt_t* v_1076 = &v_1075->bctx_prologue; + _fx_free_LN15C_form__cstmt_t(v_1076); + FX_COPY_PTR(v_1039, v_1076); + FX_COPY_PTR(ccode_0, &ccode_140); } else { FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(delta_ccode_4, - ccode_0, &ccode_182, 0), _fx_catch_236); + ccode_0, &ccode_140, 0), _fx_catch_236); } if (is_global_0) { - FX_COPY_PTR(bctx_1->data.bctx_cleanup, &v_1068); + _fx_R23C_gen_code__block_ctx_t* v_1077 = &bctx_1->data; + FX_COPY_PTR(v_1077->bctx_cleanup, &v_1040); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_1068, - *module_cleanup_0, &v_1069, 0), _fx_catch_236); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_1040, + *module_cleanup_0, &v_1041, 0), _fx_catch_236); _fx_free_LN15C_form__cstmt_t(module_cleanup_0); - FX_COPY_PTR(v_1069, module_cleanup_0); - _fx_LN15C_form__cstmt_t* v_1096 = &bctx_1->data.bctx_cleanup; - _fx_free_LN15C_form__cstmt_t(v_1096); - FX_COPY_PTR(saved_cleanup_0, v_1096); + FX_COPY_PTR(v_1041, module_cleanup_0); + _fx_R23C_gen_code__block_ctx_t* v_1078 = &bctx_1->data; + _fx_LN15C_form__cstmt_t* v_1079 = &v_1078->bctx_cleanup; + _fx_free_LN15C_form__cstmt_t(v_1079); + FX_COPY_PTR(saved_cleanup_0, v_1079); } else { - FX_COPY_PTR(bctx_1->data.bctx_cleanup, &v_1070); + _fx_R23C_gen_code__block_ctx_t* v_1080 = &bctx_1->data; + FX_COPY_PTR(v_1080->bctx_cleanup, &v_1042); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_1070, - saved_cleanup_0, &v_1071, 0), _fx_catch_236); - _fx_LN15C_form__cstmt_t* v_1097 = &bctx_1->data.bctx_cleanup; - _fx_free_LN15C_form__cstmt_t(v_1097); - FX_COPY_PTR(v_1071, v_1097); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_1042, + saved_cleanup_0, &v_1043, 0), _fx_catch_236); + _fx_R23C_gen_code__block_ctx_t* v_1081 = &bctx_1->data; + _fx_LN15C_form__cstmt_t* v_1082 = &v_1081->bctx_cleanup; + _fx_free_LN15C_form__cstmt_t(v_1082); + FX_COPY_PTR(v_1043, v_1082); } if (assign_e2_2) { - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(i_exp_16, &v_1072); - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&v_1072, &v_1073), _fx_catch_236); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(i_exp_16, &v_1044); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&v_1044, &v_1045), _fx_catch_236); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - e2_1, v_1073, ccode_182, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, + e2_1, v_1045, ccode_140, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, - module_cleanup_ref_0, return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1074, fx_fv), + module_cleanup_ref_0, return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1046, fx_fv), _fx_catch_236); - FX_COPY_PTR(v_1074.t1, &ccode_183); - if (ccode_183 != 0) { - _fx_LN15C_form__cstmt_t v_1098 = ccode_183->tl; - if (v_1098 != 0) { - _fx_N15C_form__cstmt_t v_1099 = v_1098->hd; - if (FX_REC_VARIANT_TAG(v_1099) == 16) { + FX_COPY_PTR(v_1046.t1, &ccode_141); + if (ccode_141 != 0) { + _fx_LN15C_form__cstmt_t v_1083 = ccode_141->tl; + if (v_1083 != 0) { + _fx_N15C_form__cstmt_t v_1084 = v_1083->hd; + if (FX_REC_VARIANT_TAG(v_1084) == 16) { _fx_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t* vcase_33 = - &v_1099->u.CDefVal; + &v_1084->u.CDefVal; if (vcase_33->t2.tag == 1) { - _fx_N15C_form__cstmt_t v_1100 = ccode_183->hd; - if (FX_REC_VARIANT_TAG(v_1100) == 3) { - _fx_N14C_form__cexp_t v_1101 = v_1100->u.CExp; - if (FX_REC_VARIANT_TAG(v_1101) == 3) { + _fx_N15C_form__cstmt_t v_1085 = ccode_141->hd; + if (FX_REC_VARIANT_TAG(v_1085) == 3) { + _fx_N14C_form__cexp_t v_1086 = v_1085->u.CExp; + if (FX_REC_VARIANT_TAG(v_1086) == 3) { _fx_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* - vcase_34 = &v_1101->u.CExpBinary; + vcase_34 = &v_1086->u.CExpBinary; if (vcase_34->t0.tag == 15) { - _fx_N14C_form__cexp_t v_1102 = vcase_34->t1; - if (FX_REC_VARIANT_TAG(v_1102) == 1) { + _fx_N14C_form__cexp_t v_1087 = vcase_34->t1; + if (FX_REC_VARIANT_TAG(v_1087) == 1) { _fx_R9Ast__id_t* i_12 = &vcase_33->t1; bool res_29; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_1102->u.CExpIdent.t0, i_12, &res_29, 0), + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_1087->u.CExpIdent.t0, i_12, &res_29, 0), _fx_catch_236); if (res_29) { - _fx_Nt6option1N14C_form__cexp_t v_1103 = {0}; - _fx_N15C_form__cstmt_t v_1104 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1088 = {0}; + _fx_N15C_form__cstmt_t v_1089 = 0; _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(vcase_34->t2, - &v_1103); + &v_1088); FX_CALL( _fx_M6C_formFM7CDefValN15C_form__cstmt_t4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t( - vcase_33->t0, i_12, &v_1103, &vcase_34->t3.t1, &v_1104), _fx_catch_229); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1104, v_1098->tl, true, &ccode_179), + vcase_33->t0, i_12, &v_1088, &vcase_34->t3.t1, &v_1089), _fx_catch_229); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1089, v_1083->tl, true, &ccode_137), _fx_catch_229); _fx_catch_229: ; - if (v_1104) { - _fx_free_N15C_form__cstmt_t(&v_1104); + if (v_1089) { + _fx_free_N15C_form__cstmt_t(&v_1089); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_1103); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1088); goto _fx_endmatch_42; } } @@ -33071,168 +32327,168 @@ static int } } } - FX_COPY_PTR(ccode_183, &ccode_179); + FX_COPY_PTR(ccode_141, &ccode_137); _fx_endmatch_42: ; FX_CHECK_EXN(_fx_catch_236); } else { - FX_COPY_PTR(ccode_182, &ccode_179); + FX_COPY_PTR(ccode_140, &ccode_137); } } else { if (ktp_ptr_2 == false) { if (FX_REC_VARIANT_TAG(e2_1) == 5) { _fx_T2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_35 = &e2_1->u.KExpAtom; - _fx_N14K_form__atom_t* v_1105 = &vcase_35->t0; - if (v_1105->tag == 2) { - if (v_1105->u.AtomLit.tag == 8) { - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_1106 = {0}; - _fx_N14C_form__cexp_t v_1107 = 0; - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_4, &vcase_35->t1.t1, &v_1106); + _fx_N14K_form__atom_t* v_1090 = &vcase_35->t0; + if (v_1090->tag == 2) { + if (v_1090->u.AtomLit.tag == 8) { + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_1091 = {0}; + _fx_N14C_form__cexp_t v_1092 = 0; + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ctyp_4, &vcase_35->t1.t1, &v_1091); FX_CALL( _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(0, - &v_1106, &v_1107), _fx_catch_230); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_1107, ccode_0, &v_1075); + &v_1091, &v_1092), _fx_catch_230); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(v_1092, ccode_0, &v_1047); _fx_catch_230: ; - if (v_1107) { - _fx_free_N14C_form__cexp_t(&v_1107); + if (v_1092) { + _fx_free_N14C_form__cexp_t(&v_1092); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_1106); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_1091); goto _fx_endmatch_43; } } } } - _fx_rNt6option1N14C_form__cexp_t v_1108 = 0; - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1108), _fx_catch_231); + _fx_rNt6option1N14C_form__cexp_t v_1093 = 0; + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1093), _fx_catch_231); FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - e2_1, v_1108, ccode_0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, + e2_1, v_1093, ccode_0, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1075, fx_fv), _fx_catch_231); + return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1047, fx_fv), _fx_catch_231); _fx_catch_231: ; - if (v_1108) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_1108); + if (v_1093) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_1093); } _fx_endmatch_43: ; FX_CHECK_EXN(_fx_catch_236); - FX_COPY_PTR(v_1075.t0, &ce2_7); - FX_COPY_PTR(v_1075.t1, &ccode_184); + FX_COPY_PTR(v_1047.t0, &ce2_7); + FX_COPY_PTR(v_1047.t1, &ccode_142); if (FX_REC_VARIANT_TAG(e2_1) == 15) { - if (ccode_184 != 0) { - _fx_N15C_form__cstmt_t v_1109 = ccode_184->hd; - if (FX_REC_VARIANT_TAG(v_1109) == 16) { - _fx_Nt6option1N14C_form__cexp_t* v_1110 = &v_1109->u.CDefVal.t2; - if (v_1110->tag == 2) { - _fx_Nt6option1N14C_form__cexp_t v_1111 = {0}; - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1110->u.Some, &v_1111); + if (ccode_142 != 0) { + _fx_N15C_form__cstmt_t v_1094 = ccode_142->hd; + if (FX_REC_VARIANT_TAG(v_1094) == 16) { + _fx_Nt6option1N14C_form__cexp_t* v_1095 = &v_1094->u.CDefVal.t2; + if (v_1095->tag == 2) { + _fx_Nt6option1N14C_form__cexp_t v_1096 = {0}; + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1095->u.Some, &v_1096); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - i_11, ctyp_4, &kv_flags_1, &v_1111, ccode_184->tl, &kloc_0, block_stack_ref_0, &v_1076, 0), + i_11, ctyp_4, &kv_flags_1, &v_1096, ccode_142->tl, &kloc_0, block_stack_ref_0, &v_1048, 0), _fx_catch_232); _fx_catch_232: ; - _fx_free_Nt6option1N14C_form__cexp_t(&v_1111); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1096); goto _fx_endmatch_44; } } } } if (FX_REC_VARIANT_TAG(e2_1) == 14) { - if (ccode_184 != 0) { - _fx_N15C_form__cstmt_t v_1112 = ccode_184->hd; - if (FX_REC_VARIANT_TAG(v_1112) == 16) { - _fx_Nt6option1N14C_form__cexp_t* v_1113 = &v_1112->u.CDefVal.t2; - if (v_1113->tag == 2) { - _fx_Nt6option1N14C_form__cexp_t v_1114 = {0}; - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1113->u.Some, &v_1114); + if (ccode_142 != 0) { + _fx_N15C_form__cstmt_t v_1097 = ccode_142->hd; + if (FX_REC_VARIANT_TAG(v_1097) == 16) { + _fx_Nt6option1N14C_form__cexp_t* v_1098 = &v_1097->u.CDefVal.t2; + if (v_1098->tag == 2) { + _fx_Nt6option1N14C_form__cexp_t v_1099 = {0}; + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1098->u.Some, &v_1099); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - i_11, ctyp_4, &kv_flags_1, &v_1114, ccode_184->tl, &kloc_0, block_stack_ref_0, &v_1076, 0), + i_11, ctyp_4, &kv_flags_1, &v_1099, ccode_142->tl, &kloc_0, block_stack_ref_0, &v_1048, 0), _fx_catch_233); _fx_catch_233: ; - _fx_free_Nt6option1N14C_form__cexp_t(&v_1114); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1099); goto _fx_endmatch_44; } } } } - _fx_Nt6option1N14C_form__cexp_t v_1115 = {0}; - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(ce2_7, &v_1115); + _fx_Nt6option1N14C_form__cexp_t v_1100 = {0}; + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(ce2_7, &v_1100); FX_CALL( _fx_M10C_gen_codeFM9add_localT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - i_11, ctyp_4, &kv_flags_1, &v_1115, ccode_184, &kloc_0, block_stack_ref_0, &v_1076, 0), _fx_catch_234); + i_11, ctyp_4, &kv_flags_1, &v_1100, ccode_142, &kloc_0, block_stack_ref_0, &v_1048, 0), _fx_catch_234); _fx_catch_234: ; - _fx_free_Nt6option1N14C_form__cexp_t(&v_1115); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1100); _fx_endmatch_44: ; FX_CHECK_EXN(_fx_catch_236); - FX_COPY_PTR(v_1076.t1, &ccode_179); + FX_COPY_PTR(v_1048.t1, &ccode_137); } } } if (FX_STR_LENGTH(kv_cname_0) != 0) { - FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(i_11, &kloc_0, &v_1077, 0), _fx_catch_236); - if (v_1077.tag == 2) { + FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(i_11, &kloc_0, &v_1049, 0), _fx_catch_236); + if (v_1049.tag == 2) { _fx_R17C_form__cdefval_t cv_3 = {0}; - _fx_N15C_form__cinfo_t v_1116 = {0}; - _fx_R17C_form__cdefval_t* cv_4 = &v_1077.u.CVal; + _fx_N15C_form__cinfo_t v_1101 = {0}; + _fx_R17C_form__cdefval_t* cv_4 = &v_1049.u.CVal; _fx_make_R17C_form__cdefval_t(&cv_4->cv_name, cv_4->cv_typ, &kv_cname_0, &cv_4->cv_flags, &cv_4->cv_loc, &cv_3); - _fx_M6C_formFM4CValN15C_form__cinfo_t1RM9cdefval_t(&cv_3, &v_1116); - FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(i_11, &v_1116, 0), _fx_catch_235); + _fx_M6C_formFM4CValN15C_form__cinfo_t1RM9cdefval_t(&cv_3, &v_1101); + FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(i_11, &v_1101, 0), _fx_catch_235); _fx_catch_235: ; - _fx_free_N15C_form__cinfo_t(&v_1116); + _fx_free_N15C_form__cinfo_t(&v_1101); _fx_free_R17C_form__cdefval_t(&cv_3); } FX_CHECK_EXN(_fx_catch_236); } - _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, ccode_179, &v_1); + _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, ccode_137, &v_1); _fx_catch_236: ; - _fx_free_N15C_form__cinfo_t(&v_1077); - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1076); - if (ccode_184) { - _fx_free_LN15C_form__cstmt_t(&ccode_184); + _fx_free_N15C_form__cinfo_t(&v_1049); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1048); + if (ccode_142) { + _fx_free_LN15C_form__cstmt_t(&ccode_142); } if (ce2_7) { _fx_free_N14C_form__cexp_t(&ce2_7); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1075); - if (ccode_183) { - _fx_free_LN15C_form__cstmt_t(&ccode_183); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1047); + if (ccode_141) { + _fx_free_LN15C_form__cstmt_t(&ccode_141); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1074); - if (v_1073) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_1073); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1046); + if (v_1045) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_1045); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_1072); - if (v_1071) { - _fx_free_LN15C_form__cstmt_t(&v_1071); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1044); + if (v_1043) { + _fx_free_LN15C_form__cstmt_t(&v_1043); } - if (v_1070) { - _fx_free_LN15C_form__cstmt_t(&v_1070); + if (v_1042) { + _fx_free_LN15C_form__cstmt_t(&v_1042); } - if (v_1069) { - _fx_free_LN15C_form__cstmt_t(&v_1069); + if (v_1041) { + _fx_free_LN15C_form__cstmt_t(&v_1041); } - if (v_1068) { - _fx_free_LN15C_form__cstmt_t(&v_1068); + if (v_1040) { + _fx_free_LN15C_form__cstmt_t(&v_1040); } - if (v_1067) { - _fx_free_LN15C_form__cstmt_t(&v_1067); + if (v_1039) { + _fx_free_LN15C_form__cstmt_t(&v_1039); } - if (v_1066) { - _fx_free_LN15C_form__cstmt_t(&v_1066); + if (v_1038) { + _fx_free_LN15C_form__cstmt_t(&v_1038); } - if (ccode_182) { - _fx_free_LN15C_form__cstmt_t(&ccode_182); + if (ccode_140) { + _fx_free_LN15C_form__cstmt_t(&ccode_140); } if (delta_ccode_4) { _fx_free_LN15C_form__cstmt_t(&delta_ccode_4); @@ -33240,58 +32496,58 @@ static int if (i_exp_16) { _fx_free_N14C_form__cexp_t(&i_exp_16); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1065); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1037); _fx_free_Nt6option1N14C_form__cexp_t(&e0_opt_1); _fx_free_R16Ast__val_flags_t(&flags_2); _fx_free_Nt6option1N14C_form__cexp_t(&e0_opt_0); - _fx_free_T2Nt6option1N14C_form__cexp_tB(&v_1064); - _fx_free_T3R16Ast__val_flags_tNt6option1N14C_form__cexp_tB(&v_1063); + _fx_free_T2Nt6option1N14C_form__cexp_tB(&v_1036); + _fx_free_T3R16Ast__val_flags_tNt6option1N14C_form__cexp_tB(&v_1035); if (saved_cleanup_0) { _fx_free_LN15C_form__cstmt_t(&saved_cleanup_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1062); - if (ccode_181) { - _fx_free_LN15C_form__cstmt_t(&ccode_181); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1034); + if (ccode_139) { + _fx_free_LN15C_form__cstmt_t(&ccode_139); } if (ce2_6) { _fx_free_N14C_form__cexp_t(&ce2_6); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1061); - if (v_1060) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_1060); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1033); + if (v_1032) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_1032); } _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&res_25); - if (ccode_180) { - _fx_free_LN15C_form__cstmt_t(&ccode_180); + if (ccode_138) { + _fx_free_LN15C_form__cstmt_t(&ccode_138); } if (ce2_5) { _fx_free_N14C_form__cexp_t(&ce2_5); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1059); - if (v_1058) { - _fx_free_rNt6option1N14C_form__cexp_t(&v_1058); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1031); + if (v_1030) { + _fx_free_rNt6option1N14C_form__cexp_t(&v_1030); } - if (v_1057) { - _fx_free_LN15C_form__cstmt_t(&v_1057); + if (v_1029) { + _fx_free_LN15C_form__cstmt_t(&v_1029); } - if (v_1056) { - _fx_free_LN15C_form__cstmt_t(&v_1056); + if (v_1028) { + _fx_free_LN15C_form__cstmt_t(&v_1028); } if (delta_ccode_3) { _fx_free_LN15C_form__cstmt_t(&delta_ccode_3); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1055); - _fx_free_Nt6option1N14C_form__cexp_t(&v_1054); - _fx_free_R16Ast__val_flags_t(&v_1053); - _fx_free_R16Ast__val_flags_t(&v_1052); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1027); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1026); + _fx_free_R16Ast__val_flags_t(&v_1025); + _fx_free_R16Ast__val_flags_t(&v_1024); if (delta_ccode_2) { _fx_free_LN15C_form__cstmt_t(&delta_ccode_2); } if (init_exp_1) { _fx_free_N14C_form__cexp_t(&init_exp_1); } - if (v_1051) { - _fx_free_N14C_form__cexp_t(&v_1051); + if (v_1023) { + _fx_free_N14C_form__cexp_t(&v_1023); } if (delta_ccode_1) { _fx_free_LN15C_form__cstmt_t(&delta_ccode_1); @@ -33299,65 +32555,65 @@ static int if (data_exp_1) { _fx_free_N14C_form__cexp_t(&data_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1050); - _fx_free_Nt6option1N14C_form__cexp_t(&v_1049); - _fx_free_R16Ast__val_flags_t(&v_1048); - _fx_free_R16Ast__val_flags_t(&v_1047); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1022); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1021); + _fx_free_R16Ast__val_flags_t(&v_1020); + _fx_free_R16Ast__val_flags_t(&v_1019); if (data_init_0) { _fx_free_N14C_form__cexp_t(&data_init_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_1046); - if (v_1045) { - _fx_free_LN14C_form__cexp_t(&v_1045); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_1018); + if (v_1017) { + _fx_free_LN14C_form__cexp_t(&v_1017); } if (rc_exp_0) { _fx_free_N14C_form__cexp_t(&rc_exp_0); } - FX_FREE_STR(&v_1044); - FX_FREE_STR(&v_1043); + FX_FREE_STR(&v_1016); + FX_FREE_STR(&v_1015); if (struct_ctyp_0) { _fx_free_N14C_form__ctyp_t(&struct_ctyp_0); } - _fx_free_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti(&v_1042); + _fx_free_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti(&v_1014); if (i_exp_15) { _fx_free_N14C_form__cexp_t(&i_exp_15); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1041); - _fx_free_R16Ast__val_flags_t(&v_1040); - if (v_1039) { - _fx_free_N14C_form__cexp_t(&v_1039); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1013); + _fx_free_R16Ast__val_flags_t(&v_1012); + if (v_1011) { + _fx_free_N14C_form__cexp_t(&v_1011); } if (init_exp_0) { _fx_free_N14C_form__cexp_t(&init_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_1038); - if (v_1037) { - _fx_free_LN14C_form__cexp_t(&v_1037); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_1010); + if (v_1009) { + _fx_free_LN14C_form__cexp_t(&v_1009); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1036); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1008); if (tag_exp_0) { _fx_free_N14C_form__cexp_t(&tag_exp_0); } - if (v_1035) { - _fx_free_LN15C_form__cstmt_t(&v_1035); + if (v_1007) { + _fx_free_LN15C_form__cstmt_t(&v_1007); } - if (v_1034) { - _fx_free_LN15C_form__cstmt_t(&v_1034); + if (v_1006) { + _fx_free_LN15C_form__cstmt_t(&v_1006); } if (delta_ccode_0) { _fx_free_LN15C_form__cstmt_t(&delta_ccode_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1033); - _fx_free_Nt6option1N14C_form__cexp_t(&v_1032); - if (v_1031) { - _fx_free_N14C_form__cexp_t(&v_1031); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1005); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1004); + if (v_1003) { + _fx_free_N14C_form__cexp_t(&v_1003); } - if (ccode_179) { - _fx_free_LN15C_form__cstmt_t(&ccode_179); + if (ccode_137) { + _fx_free_LN15C_form__cstmt_t(&ccode_137); } FX_FREE_STR(&ccode_data_lit_0); FX_FREE_STR(&ccode_data_kind_0); - _fx_free_T3SSR10Ast__loc_t(&v_1030); + _fx_free_T3SSR10Ast__loc_t(&v_1002); if (bctx_1) { _fx_free_rR23C_gen_code__block_ctx_t(&bctx_1); } @@ -33369,32 +32625,32 @@ static int } FX_FREE_STR(&kv_cname_0); _fx_free_R16Ast__val_flags_t(&kv_flags_1); - _fx_free_R17K_form__kdefval_t(&v_1029); + _fx_free_R17K_form__kdefval_t(&v_1001); goto _fx_endmatch_49; } if (tag_0 == 32) { fx_str_t kf_cname_0 = {0}; _fx_N14K_form__kexp_t kf_body_0 = 0; _fx_N14K_form__ktyp_t kf_rt_0 = 0; - _fx_N15C_form__cinfo_t v_1117 = {0}; - _fx_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__ctyp_tBrR17C_form__cdeffun_t v_1118 = {0}; - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t args_17 = 0; + _fx_N15C_form__cinfo_t v_1102 = {0}; + _fx_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__ctyp_tBrR17C_form__cdeffun_t v_1103 = {0}; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t args_13 = 0; _fx_N14C_form__ctyp_t rt_0 = 0; _fx_rR17C_form__cdeffun_t cf_0 = 0; - _fx_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB v_1119 = {0}; + _fx_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB v_1104 = {0}; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t real_args_0 = 0; _fx_rB really_nothrow_0 = 0; _fx_LN15C_form__cstmt_t new_body_0 = 0; - _fx_LN15C_form__cstmt_t v_1120 = 0; - _fx_R17C_form__cdeffun_t v_1121 = {0}; - _fx_R17K_form__kdeffun_t* v_1122 = &kexp_0->u.KDefFun->data; - _fx_R10Ast__loc_t kf_loc_0 = v_1122->kf_loc; - _fx_R16Ast__fun_flags_t kf_flags_0 = v_1122->kf_flags; - fx_copy_str(&v_1122->kf_cname, &kf_cname_0); - FX_COPY_PTR(v_1122->kf_body, &kf_body_0); - _fx_R25K_form__kdefclosureinfo_t kf_closure_0 = v_1122->kf_closure; - FX_COPY_PTR(v_1122->kf_rt, &kf_rt_0); - _fx_R9Ast__id_t kf_name_0 = v_1122->kf_name; + _fx_LN15C_form__cstmt_t v_1105 = 0; + _fx_R17C_form__cdeffun_t v_1106 = {0}; + _fx_R17K_form__kdeffun_t* v_1107 = &kexp_0->u.KDefFun->data; + _fx_R10Ast__loc_t kf_loc_0 = v_1107->kf_loc; + _fx_R16Ast__fun_flags_t kf_flags_0 = v_1107->kf_flags; + fx_copy_str(&v_1107->kf_cname, &kf_cname_0); + FX_COPY_PTR(v_1107->kf_body, &kf_body_0); + _fx_R25K_form__kdefclosureinfo_t kf_closure_0 = v_1107->kf_closure; + FX_COPY_PTR(v_1107->kf_rt, &kf_rt_0); + _fx_R9Ast__id_t kf_name_0 = v_1107->kf_name; _fx_R9Ast__id_t kci_fcv_t_0 = kf_closure_0.kci_fcv_t; _fx_R9Ast__id_t kci_arg_0 = kf_closure_0.kci_arg; _fx_N17Ast__fun_constr_t ctor_0 = kf_flags_0.fun_flag_ctor; @@ -33406,54 +32662,54 @@ static int &kf_name_0, &kf_loc_0, defined_syms_ref_0, fwd_fdecls_ref_0, 0), _fx_catch_256); } FX_CALL(_fx_M10C_gen_codeFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(*defined_syms_0, &kf_name_0, 0), _fx_catch_256); - _fx_N24C_gen_code__block_kind_t v_1123; - _fx_M10C_gen_codeFM13BlockKind_FunN24C_gen_code__block_kind_t1R9Ast__id_t(&kf_name_0, &v_1123); + _fx_N24C_gen_code__block_kind_t v_1108; + _fx_M10C_gen_codeFM13BlockKind_FunN24C_gen_code__block_kind_t1R9Ast__id_t(&kf_name_0, &v_1108); FX_CALL( - _fx_M10C_gen_codeFM13new_block_ctxv4N24C_gen_code__block_kind_tR10Ast__loc_trLrRM11block_ctx_ti(&v_1123, &kloc_0, + _fx_M10C_gen_codeFM13new_block_ctxv4N24C_gen_code__block_kind_tR10Ast__loc_trLrRM11block_ctx_ti(&v_1108, &kloc_0, block_stack_ref_0, km_idx_0, 0), _fx_catch_256); - FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_1117, 0), + FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_1102, 0), _fx_catch_256); - if (v_1117.tag == 3) { - _fx_R17C_form__cdeffun_t v_1124 = {0}; - _fx_rR17C_form__cdeffun_t cf_1 = v_1117.u.CFun; - _fx_copy_R17C_form__cdeffun_t(&cf_1->data, &v_1124); - bool is_nothrow_2 = v_1124.cf_flags.fun_flag_nothrow; + if (v_1102.tag == 3) { + _fx_R17C_form__cdeffun_t v_1109 = {0}; + _fx_rR17C_form__cdeffun_t cf_1 = v_1102.u.CFun; + _fx_copy_R17C_form__cdeffun_t(&cf_1->data, &v_1109); + bool is_nothrow_2 = v_1109.cf_flags.fun_flag_nothrow; _fx_make_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__ctyp_tBrR17C_form__cdeffun_t( - v_1124.cf_args, v_1124.cf_rt, is_nothrow_2, cf_1, &v_1118); - _fx_free_R17C_form__cdeffun_t(&v_1124); + v_1109.cf_args, v_1109.cf_rt, is_nothrow_2, cf_1, &v_1103); + _fx_free_R17C_form__cdeffun_t(&v_1109); } else { - fx_str_t v_1125 = {0}; - fx_str_t v_1126 = {0}; - fx_str_t v_1127 = {0}; - fx_exn_t v_1128 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_1125, 0), _fx_catch_237); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1125, &v_1126, 0), _fx_catch_237); + fx_str_t v_1110 = {0}; + fx_str_t v_1111 = {0}; + fx_str_t v_1112 = {0}; + fx_exn_t v_1113 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_1110, 0), _fx_catch_237); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1110, &v_1111, 0), _fx_catch_237); fx_str_t slit_233 = FX_MAKE_STR("cgen: the function \'"); fx_str_t slit_234 = FX_MAKE_STR("\' declaration was not properly converted"); { - const fx_str_t strs_36[] = { slit_233, v_1126, slit_234 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_36, 3, &v_1127), _fx_catch_237); + const fx_str_t strs_35[] = { slit_233, v_1111, slit_234 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_35, 3, &v_1112), _fx_catch_237); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1127, &v_1128, 0), _fx_catch_237); - FX_THROW(&v_1128, false, _fx_catch_237); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1112, &v_1113, 0), _fx_catch_237); + FX_THROW(&v_1113, false, _fx_catch_237); _fx_catch_237: ; - fx_free_exn(&v_1128); - FX_FREE_STR(&v_1127); - FX_FREE_STR(&v_1126); - FX_FREE_STR(&v_1125); + fx_free_exn(&v_1113); + FX_FREE_STR(&v_1112); + FX_FREE_STR(&v_1111); + FX_FREE_STR(&v_1110); } FX_CHECK_EXN(_fx_catch_256); - FX_COPY_PTR(v_1118.t0, &args_17); - FX_COPY_PTR(v_1118.t1, &rt_0); - bool is_nothrow_3 = v_1118.t2; - FX_COPY_PTR(v_1118.t3, &cf_0); + FX_COPY_PTR(v_1103.t0, &args_13); + FX_COPY_PTR(v_1103.t1, &rt_0); + bool is_nothrow_3 = v_1103.t2; + FX_COPY_PTR(v_1103.t3, &cf_0); FX_CALL( _fx_M10C_gen_codeFM15unpack_fun_argsT4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB3LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__ctyp_tB( - args_17, rt_0, is_nothrow_3, &v_1119, 0), _fx_catch_256); - FX_COPY_PTR(v_1119.t0, &real_args_0); - _fx_R9Ast__id_t retid_0 = v_1119.t1; + args_13, rt_0, is_nothrow_3, &v_1104, 0), _fx_catch_256); + FX_COPY_PTR(v_1104.t0, &real_args_0); + _fx_R9Ast__id_t retid_0 = v_1104.t1; FX_CALL(_fx_make_rB(false, &really_nothrow_0), _fx_catch_256); int_ nreal_args_0; FX_CALL( @@ -33461,100 +32717,100 @@ static int _fx_catch_256); if (ctor_0.tag == 1) { if (FX_REC_VARIANT_TAG(kf_body_0) == 30) { - _fx_N14C_form__cexp_t v_1129 = 0; - _fx_N15C_form__cstmt_t v_1130 = 0; + _fx_N14C_form__cexp_t v_1114 = 0; + _fx_N15C_form__cstmt_t v_1115 = 0; _fx_T2ST2N14K_form__ktyp_tR10Ast__loc_t* vcase_36 = &kf_body_0->u.KExpCCode; - FX_CALL(_fx_M6C_formFM9CExpCCodeN14C_form__cexp_t2SR10Ast__loc_t(&vcase_36->t0, &vcase_36->t1.t1, &v_1129), + FX_CALL(_fx_M6C_formFM9CExpCCodeN14C_form__cexp_t2SR10Ast__loc_t(&vcase_36->t0, &vcase_36->t1.t1, &v_1114), _fx_catch_238); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_1129, &v_1130), _fx_catch_238); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1130, 0, true, &new_body_0), _fx_catch_238); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_1114, &v_1115), _fx_catch_238); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1115, 0, true, &new_body_0), _fx_catch_238); _fx_catch_238: ; - if (v_1130) { - _fx_free_N15C_form__cstmt_t(&v_1130); + if (v_1115) { + _fx_free_N15C_form__cstmt_t(&v_1115); } - if (v_1129) { - _fx_free_N14C_form__cexp_t(&v_1129); + if (v_1114) { + _fx_free_N14C_form__cexp_t(&v_1114); } goto _fx_endmatch_48; } } if (ctor_0.tag == 1) { - _fx_Nt6option1N14C_form__cexp_t v_1131 = {0}; - _fx_N14C_form__cexp_t v_1132 = 0; - _fx_N14C_form__cexp_t v_1133 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1116 = {0}; + _fx_N14C_form__cexp_t v_1117 = 0; + _fx_N14C_form__cexp_t v_1118 = 0; _fx_rNt6option1N14C_form__cexp_t dstexp_r_1 = 0; - _fx_R16Ast__val_flags_t v_1134 = {0}; - _fx_N14C_form__cexp_t v_1135 = 0; - _fx_Nt6option1N14C_form__cexp_t v_1136 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1137 = {0}; + _fx_R16Ast__val_flags_t v_1119 = {0}; + _fx_N14C_form__cexp_t v_1120 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1121 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1122 = {0}; _fx_N14C_form__cexp_t status_exp_0 = 0; - _fx_LN15C_form__cstmt_t ccode_185 = 0; - _fx_LN15C_form__cstmt_t ccode_186 = 0; + _fx_LN15C_form__cstmt_t ccode_143 = 0; + _fx_LN15C_form__cstmt_t ccode_144 = 0; _fx_N14C_form__cexp_t call_chkstk_0 = 0; - _fx_LN15C_form__cstmt_t ccode_187 = 0; - _fx_N14C_form__ctyp_t v_1138 = 0; + _fx_LN15C_form__cstmt_t ccode_145 = 0; + _fx_N14C_form__ctyp_t v_1123 = 0; _fx_N14C_form__ctyp_t fcv_ptr_ctyp_0 = 0; _fx_N14C_form__cexp_t fcv_arg_exp0_0 = 0; _fx_N14C_form__cexp_t cast_ptr_0 = 0; - _fx_R16Ast__val_flags_t v_1139 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_1140 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1141 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1142 = {0}; + _fx_R16Ast__val_flags_t v_1124 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_1125 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1126 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1127 = {0}; _fx_N14C_form__cexp_t ret_e_0 = 0; - _fx_LN15C_form__cstmt_t ccode_188 = 0; + _fx_LN15C_form__cstmt_t ccode_146 = 0; _fx_rR23C_gen_code__block_ctx_t bctx_2 = 0; - _fx_LN15C_form__cstmt_t ccode_189 = 0; + _fx_LN15C_form__cstmt_t ccode_147 = 0; _fx_LN15C_form__cstmt_t bctx_cleanup_2 = 0; _fx_LN15C_form__cstmt_t bctx_prologue_2 = 0; - _fx_LN15C_form__cstmt_t ccode_190 = 0; - _fx_N15C_form__cstmt_t v_1143 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1144 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_1145 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1146 = {0}; + _fx_LN15C_form__cstmt_t ccode_148 = 0; + _fx_N15C_form__cstmt_t v_1128 = 0; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1129 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_1130 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1131 = {0}; _fx_N14C_form__cexp_t ret_e_1 = 0; - _fx_LN15C_form__cstmt_t ccode_191 = 0; - _fx_LN15C_form__cstmt_t v_1147 = 0; + _fx_LN15C_form__cstmt_t ccode_149 = 0; + _fx_LN15C_form__cstmt_t v_1132 = 0; _fx_N14C_form__cexp_t ret_e_2 = 0; - _fx_LN15C_form__cstmt_t ccode_192 = 0; - _fx_LN15C_form__cstmt_t ccode_193 = 0; + _fx_LN15C_form__cstmt_t ccode_150 = 0; + _fx_LN15C_form__cstmt_t ccode_151 = 0; _fx_N14C_form__cexp_t chk_ret_0 = 0; - _fx_Nt6option1N14C_form__cexp_t v_1148 = {0}; - _fx_N15C_form__cstmt_t v_1149 = 0; - _fx_Nt6option1N14C_form__cexp_t v_1150 = {0}; - _fx_N15C_form__cstmt_t v_1151 = 0; - _fx_Nt6option1N14C_form__cexp_t v_1152 = {0}; - _fx_N15C_form__cstmt_t v_1153 = 0; - _fx_LN15C_form__cstmt_t v_1154 = 0; - _fx_LN15C_form__cstmt_t v_1155 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1133 = {0}; + _fx_N15C_form__cstmt_t v_1134 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1135 = {0}; + _fx_N15C_form__cstmt_t v_1136 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1137 = {0}; + _fx_N15C_form__cstmt_t v_1138 = 0; + _fx_LN15C_form__cstmt_t v_1139 = 0; + _fx_LN15C_form__cstmt_t v_1140 = 0; bool res_31; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&retid_0, &_fx_g9Ast__noid, &res_31, 0), _fx_catch_241); if (res_31) { - _fx_copy_Nt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1131); + _fx_copy_Nt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &v_1116); } else { - FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&retid_0, &kf_loc_0, &v_1132, 0), + FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&retid_0, &kf_loc_0, &v_1117, 0), _fx_catch_241); - FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(v_1132, &v_1133, 0), _fx_catch_241); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1133, &v_1131); + FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(v_1117, &v_1118, 0), _fx_catch_241); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1118, &v_1116); } - FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&v_1131, &dstexp_r_1), _fx_catch_241); + FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&v_1116, &dstexp_r_1), _fx_catch_241); _fx_free_rNt6option1N14C_form__cexp_t(func_dstexp_r_0); FX_COPY_PTR(dstexp_r_1, func_dstexp_r_0); *return_used_0 = 0; _fx_R9Ast__id_t orig_status_id_0; fx_str_t slit_235 = FX_MAKE_STR("fx_status"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_235, &orig_status_id_0, 0), _fx_catch_241); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_1134, 0), _fx_catch_241); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kf_loc_0, &v_1135, 0), _fx_catch_241); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1135, &v_1136); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_1119, 0), _fx_catch_241); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kf_loc_0, &v_1120, 0), _fx_catch_241); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1120, &v_1121); fx_str_t slit_236 = FX_MAKE_STR("fx_status"); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &orig_status_id_0, _fx_g20C_gen_code__CTypCInt, &v_1134, &slit_236, &v_1136, 0, &kf_loc_0, &v_1137, 0), + &orig_status_id_0, _fx_g20C_gen_code__CTypCInt, &v_1119, &slit_236, &v_1121, 0, &kf_loc_0, &v_1122, 0), _fx_catch_241); - FX_COPY_PTR(v_1137.t0, &status_exp_0); - FX_COPY_PTR(v_1137.t1, &ccode_185); + FX_COPY_PTR(v_1122.t0, &status_exp_0); + FX_COPY_PTR(v_1122.t1, &ccode_143); _fx_R9Ast__id_t status_id_0; if (is_nothrow_3) { status_id_0 = _fx_g9Ast__noid; @@ -33572,46 +32828,46 @@ static int t_21 = !kf_flags_0.fun_flag_recursive; } if (t_21) { - FX_COPY_PTR(ccode_185, &ccode_186); + FX_COPY_PTR(ccode_143, &ccode_144); } else { - _fx_R9Ast__id_t v_1156; + _fx_R9Ast__id_t v_1141; fx_str_t slit_237 = FX_MAKE_STR("fx_check_stack"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_237, &v_1156, 0), _fx_catch_241); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_237, &v_1141, 0), _fx_catch_241); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_1156, 0, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_1141, 0, _fx_g20C_gen_code__CTypCInt, &kf_loc_0, &call_chkstk_0, 0), _fx_catch_241); FX_CALL( _fx_M10C_gen_codeFM11add_fx_callLN15C_form__cstmt_t4N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - call_chkstk_0, ccode_185, &kf_loc_0, block_stack_ref_0, &ccode_186, 0), _fx_catch_241); + call_chkstk_0, ccode_143, &kf_loc_0, block_stack_ref_0, &ccode_144, 0), _fx_catch_241); } _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t lst_29 = real_args_0; for (; lst_29; lst_29 = lst_29->tl) { _fx_LN19C_form__carg_attr_t flags_3 = 0; - _fx_N14C_form__cexp_t v_1157 = 0; - _fx_N14C_form__cexp_t v_1158 = 0; + _fx_N14C_form__cexp_t v_1142 = 0; + _fx_N14C_form__cexp_t v_1143 = 0; _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* __pat___11 = &lst_29->hd; _fx_R9Ast__id_t a_12 = __pat___11->t0; FX_COPY_PTR(__pat___11->t2, &flags_3); - bool v_1159; + bool v_1144; FX_CALL( _fx_M10C_gen_codeFM3memB2LN19C_form__carg_attr_tN19C_form__carg_attr_t(flags_3, - &_fx_g25C_gen_code__CArgPassByPtr, &v_1159, 0), _fx_catch_239); - if (v_1159) { - FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&a_12, &kf_loc_0, &v_1157, 0), + &_fx_g25C_gen_code__CArgPassByPtr, &v_1144, 0), _fx_catch_239); + if (v_1144) { + FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&a_12, &kf_loc_0, &v_1142, 0), _fx_catch_239); - FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(v_1157, &v_1158, 0), _fx_catch_239); + FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(v_1142, &v_1143, 0), _fx_catch_239); FX_CALL( _fx_M10C_gen_codeFM3addv3Nt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tR9Ast__id_tN14C_form__cexp_t(*i2e_0, - &a_12, v_1158, 0), _fx_catch_239); + &a_12, v_1143, 0), _fx_catch_239); } _fx_catch_239: ; - if (v_1158) { - _fx_free_N14C_form__cexp_t(&v_1158); + if (v_1143) { + _fx_free_N14C_form__cexp_t(&v_1143); } - if (v_1157) { - _fx_free_N14C_form__cexp_t(&v_1157); + if (v_1142) { + _fx_free_N14C_form__cexp_t(&v_1142); } FX_FREE_LIST_SIMPLE(&flags_3); FX_CHECK_EXN(_fx_catch_241); @@ -33619,69 +32875,71 @@ static int bool res_33; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&kci_arg_0, &_fx_g9Ast__noid, &res_33, 0), _fx_catch_241); if (res_33) { - FX_COPY_PTR(ccode_186, &ccode_187); + FX_COPY_PTR(ccode_144, &ccode_145); } else { - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&kci_fcv_t_0, &v_1138), _fx_catch_241); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_1138, &fcv_ptr_ctyp_0, 0), _fx_catch_241); - _fx_R9Ast__id_t v_1160; + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&kci_fcv_t_0, &v_1123), _fx_catch_241); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_1123, &fcv_ptr_ctyp_0, 0), _fx_catch_241); + _fx_R9Ast__id_t v_1145; fx_str_t slit_238 = FX_MAKE_STR("fx_fv"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_238, &v_1160, 0), _fx_catch_241); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_238, &v_1145, 0), _fx_catch_241); FX_CALL( - _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&v_1160, + _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&v_1145, _fx_g23C_form__std_CTypVoidPtr, &kf_loc_0, &fcv_arg_exp0_0, 0), _fx_catch_241); FX_CALL( _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(fcv_arg_exp0_0, fcv_ptr_ctyp_0, &kf_loc_0, &cast_ptr_0), _fx_catch_241); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_1139, 0), _fx_catch_241); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(cast_ptr_0, &v_1140); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_1124, 0), _fx_catch_241); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(cast_ptr_0, &v_1125); fx_str_t slit_239 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &kci_arg_0, fcv_ptr_ctyp_0, &v_1139, &slit_239, &v_1140, ccode_186, &kf_loc_0, &v_1141, 0), _fx_catch_241); - FX_COPY_PTR(v_1141.t1, &ccode_187); + &kci_arg_0, fcv_ptr_ctyp_0, &v_1124, &slit_239, &v_1125, ccode_144, &kf_loc_0, &v_1126, 0), _fx_catch_241); + FX_COPY_PTR(v_1126.t1, &ccode_145); } FX_CALL( _fx_M10C_gen_codeFM9kexp2cexpT2N14C_form__cexp_tLN15C_form__cstmt_t17N14K_form__kexp_trNt6option1N14C_form__cexp_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tiLN12Ast__scope_trLN15C_form__cstmt_trirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( - kf_body_0, dstexp_r_1, ccode_187, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, + kf_body_0, dstexp_r_1, ccode_145, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, module_cleanup_ref_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1142, fx_fv), _fx_catch_241); - FX_COPY_PTR(v_1142.t0, &ret_e_0); - FX_COPY_PTR(v_1142.t1, &ccode_188); + return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_1127, fx_fv), _fx_catch_241); + FX_COPY_PTR(v_1127.t0, &ret_e_0); + FX_COPY_PTR(v_1127.t1, &ccode_146); _fx_R10Ast__loc_t end_loc_0; FX_CALL(_fx_M6K_formFM12get_kexp_endR10Ast__loc_t1N14K_form__kexp_t(kf_body_0, &end_loc_0, 0), _fx_catch_241); FX_CALL( _fx_M10C_gen_codeFM14curr_block_ctxrRM11block_ctx_t2R10Ast__loc_trLrRM11block_ctx_t(&end_loc_0, block_stack_ref_0, &bctx_2, 0), _fx_catch_241); - if (ccode_188 != 0) { - _fx_N15C_form__cstmt_t v_1161 = ccode_188->hd; - if (FX_REC_VARIANT_TAG(v_1161) == 3) { - _fx_N14C_form__cexp_t v_1162 = v_1161->u.CExp; - if (FX_REC_VARIANT_TAG(v_1162) == 9) { - _fx_N14C_form__cexp_t v_1163 = v_1162->u.CExpCall.t0; - if (FX_REC_VARIANT_TAG(v_1163) == 1) { + if (ccode_146 != 0) { + _fx_N15C_form__cstmt_t v_1146 = ccode_146->hd; + if (FX_REC_VARIANT_TAG(v_1146) == 3) { + _fx_N14C_form__cexp_t v_1147 = v_1146->u.CExp; + if (FX_REC_VARIANT_TAG(v_1147) == 9) { + _fx_N14C_form__cexp_t v_1148 = v_1147->u.CExpCall.t0; + if (FX_REC_VARIANT_TAG(v_1148) == 1) { bool res_34; FX_CALL( - _fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_1163->u.CExpIdent.t0, &_fx_g24C_form__std_FX_CHECK_EXN, &res_34, + _fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_1148->u.CExpIdent.t0, &_fx_g24C_form__std_FX_CHECK_EXN, &res_34, 0), _fx_catch_241); if (res_34) { - bctx_2->data.bctx_label_used = bctx_2->data.bctx_label_used - 1; - FX_COPY_PTR(ccode_188->tl, &ccode_189); + _fx_R23C_gen_code__block_ctx_t* v_1149 = &bctx_2->data; + _fx_R23C_gen_code__block_ctx_t* v_1150 = &bctx_2->data; + v_1150->bctx_label_used = v_1149->bctx_label_used - 1; + FX_COPY_PTR(ccode_146->tl, &ccode_147); goto _fx_endmatch_45; } } } } } - FX_COPY_PTR(ccode_188, &ccode_189); + FX_COPY_PTR(ccode_146, &ccode_147); _fx_endmatch_45: ; FX_CHECK_EXN(_fx_catch_241); - _fx_R23C_gen_code__block_ctx_t* v_1164 = &bctx_2->data; - int_ bctx_label_used_2 = v_1164->bctx_label_used; - FX_COPY_PTR(v_1164->bctx_cleanup, &bctx_cleanup_2); - FX_COPY_PTR(v_1164->bctx_prologue, &bctx_prologue_2); - _fx_R9Ast__id_t bctx_label_2 = v_1164->bctx_label; + _fx_R23C_gen_code__block_ctx_t* v_1151 = &bctx_2->data; + int_ bctx_label_used_2 = v_1151->bctx_label_used; + FX_COPY_PTR(v_1151->bctx_cleanup, &bctx_cleanup_2); + FX_COPY_PTR(v_1151->bctx_prologue, &bctx_prologue_2); + _fx_R9Ast__id_t bctx_label_2 = v_1151->bctx_label; bool t_22; if (bctx_label_used_2 > 0) { t_22 = true; @@ -33690,17 +32948,18 @@ static int t_22 = *return_used_0 > 0; } if (t_22) { - FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&bctx_label_2, &end_loc_0, &v_1143), + FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&bctx_label_2, &end_loc_0, &v_1128), _fx_catch_241); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1143, ccode_189, true, &ccode_190), _fx_catch_241); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1128, ccode_147, true, &ccode_148), _fx_catch_241); } else { - FX_COPY_PTR(ccode_189, &ccode_190); + FX_COPY_PTR(ccode_147, &ccode_148); } if (bctx_cleanup_2 == 0) { - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(ret_e_0, ccode_190, &v_1144); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(ret_e_0, ccode_148, &v_1129); } else { + bool v_1152; bool res_35; FX_CALL(_fx_M10C_gen_codeFM6__ne__B2R9Ast__id_tR9Ast__id_t(&retid_0, &_fx_g9Ast__noid, &res_35, 0), _fx_catch_241); bool t_23; @@ -33711,16 +32970,15 @@ static int FX_CALL(_fx_M10C_gen_codeFM6__ne__B2R9Ast__id_tR9Ast__id_t(&status_id_0, &_fx_g9Ast__noid, &t_23, 0), _fx_catch_241); } - bool t_24; if (t_23) { - t_24 = true; + v_1152 = true; } else { - _fx_copy_Nt6option1N14C_form__cexp_t(&dstexp_r_1->data, &v_1145); - FX_CALL(_fx_M10C_gen_codeFM6issomeB1Nt6option1N14C_form__cexp_t(&v_1145, &t_24, 0), _fx_catch_241); + _fx_copy_Nt6option1N14C_form__cexp_t(&dstexp_r_1->data, &v_1130); + FX_CALL(_fx_M10C_gen_codeFM6issomeB1Nt6option1N14C_form__cexp_t(&v_1130, &v_1152, 0), _fx_catch_241); } - if (t_24) { - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(ret_e_0, ccode_190, &v_1146); + if (v_1152) { + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(ret_e_0, ccode_148, &v_1131); } else { int tag_31 = FX_REC_VARIANT_TAG(ret_e_0); @@ -33741,129 +32999,129 @@ static int _fx_endmatch_46: ; FX_CHECK_EXN(_fx_catch_241); if (res_36) { - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(ret_e_0, ccode_190, &v_1146); goto _fx_endmatch_47; + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(ret_e_0, ccode_148, &v_1131); goto _fx_endmatch_47; } - _fx_N14C_form__ctyp_t v_1165 = 0; - _fx_R16Ast__val_flags_t v_1166 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_1167 = {0}; - _fx_R9Ast__id_t v_1168; + _fx_N14C_form__ctyp_t v_1153 = 0; + _fx_R16Ast__val_flags_t v_1154 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_1155 = {0}; + _fx_R9Ast__id_t v_1156; fx_str_t slit_240 = FX_MAKE_STR("result"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_240, &v_1168, 0), _fx_catch_240); - FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(ret_e_0, &v_1165, 0), _fx_catch_240); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_1166, 0), _fx_catch_240); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(ret_e_0, &v_1167); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_240, &v_1156, 0), _fx_catch_240); + FX_CALL(_fx_M6C_formFM12get_cexp_typN14C_form__ctyp_t1N14C_form__cexp_t(ret_e_0, &v_1153, 0), _fx_catch_240); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_1154, 0), _fx_catch_240); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(ret_e_0, &v_1155); fx_str_t slit_241 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_1168, v_1165, &v_1166, &slit_241, &v_1167, ccode_190, &end_loc_0, &v_1146, 0), _fx_catch_240); + &v_1156, v_1153, &v_1154, &slit_241, &v_1155, ccode_148, &end_loc_0, &v_1131, 0), _fx_catch_240); _fx_catch_240: ; - _fx_free_Nt6option1N14C_form__cexp_t(&v_1167); - _fx_free_R16Ast__val_flags_t(&v_1166); - if (v_1165) { - _fx_free_N14C_form__ctyp_t(&v_1165); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1155); + _fx_free_R16Ast__val_flags_t(&v_1154); + if (v_1153) { + _fx_free_N14C_form__ctyp_t(&v_1153); } _fx_endmatch_47: ; FX_CHECK_EXN(_fx_catch_241); } - FX_COPY_PTR(v_1146.t0, &ret_e_1); - FX_COPY_PTR(v_1146.t1, &ccode_191); + FX_COPY_PTR(v_1131.t0, &ret_e_1); + FX_COPY_PTR(v_1131.t1, &ccode_149); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(bctx_cleanup_2, ccode_191, - &v_1147, 0), _fx_catch_241); - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(ret_e_1, v_1147, &v_1144); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(bctx_cleanup_2, ccode_149, + &v_1132, 0), _fx_catch_241); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(ret_e_1, v_1132, &v_1129); } - FX_COPY_PTR(v_1144.t0, &ret_e_2); - FX_COPY_PTR(v_1144.t1, &ccode_192); + FX_COPY_PTR(v_1129.t0, &ret_e_2); + FX_COPY_PTR(v_1129.t1, &ccode_150); bool res_37; FX_CALL(_fx_M10C_gen_codeFM6__ne__B2R9Ast__id_tR9Ast__id_t(&status_id_0, &_fx_g9Ast__noid, &res_37, 0), _fx_catch_241); if (res_37) { if (*return_used_0 > 0) { - _fx_R9Ast__id_t v_1169; + _fx_R9Ast__id_t v_1157; fx_str_t slit_242 = FX_MAKE_STR("FX_CHECK_RETURN"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_242, &v_1169, 0), _fx_catch_241); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_242, &v_1157, 0), _fx_catch_241); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_1169, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_1157, 0, _fx_g20C_gen_code__CTypCInt, &end_loc_0, &chk_ret_0, 0), _fx_catch_241); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(chk_ret_0, &v_1148); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(chk_ret_0, &v_1133); FX_CALL( - _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1148, &end_loc_0, - &v_1149), _fx_catch_241); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1149, ccode_192, true, &ccode_193), _fx_catch_241); + _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1133, &end_loc_0, + &v_1134), _fx_catch_241); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1134, ccode_150, true, &ccode_151), _fx_catch_241); } else { - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(status_exp_0, &v_1150); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(status_exp_0, &v_1135); FX_CALL( - _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1150, &end_loc_0, - &v_1151), _fx_catch_241); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1151, ccode_192, true, &ccode_193), _fx_catch_241); + _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1135, &end_loc_0, + &v_1136), _fx_catch_241); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1136, ccode_150, true, &ccode_151), _fx_catch_241); } } else if (FX_REC_VARIANT_TAG(rt_0) == 8) { - FX_COPY_PTR(ccode_192, &ccode_193); + FX_COPY_PTR(ccode_150, &ccode_151); } else { - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(ret_e_2, &v_1152); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(ret_e_2, &v_1137); FX_CALL( - _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1152, &end_loc_0, - &v_1153), _fx_catch_241); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1153, ccode_192, true, &ccode_193), _fx_catch_241); + _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1137, &end_loc_0, + &v_1138), _fx_catch_241); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1138, ccode_150, true, &ccode_151), _fx_catch_241); } - FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(bctx_prologue_2, &v_1154, 0), _fx_catch_241); - FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(ccode_193, &v_1155, 0), _fx_catch_241); + FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(bctx_prologue_2, &v_1139, 0), _fx_catch_241); + FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(ccode_151, &v_1140, 0), _fx_catch_241); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_1154, v_1155, &new_body_0, + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_1139, v_1140, &new_body_0, 0), _fx_catch_241); _fx_catch_241: ; - if (v_1155) { - _fx_free_LN15C_form__cstmt_t(&v_1155); + if (v_1140) { + _fx_free_LN15C_form__cstmt_t(&v_1140); } - if (v_1154) { - _fx_free_LN15C_form__cstmt_t(&v_1154); + if (v_1139) { + _fx_free_LN15C_form__cstmt_t(&v_1139); } - if (v_1153) { - _fx_free_N15C_form__cstmt_t(&v_1153); + if (v_1138) { + _fx_free_N15C_form__cstmt_t(&v_1138); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_1152); - if (v_1151) { - _fx_free_N15C_form__cstmt_t(&v_1151); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1137); + if (v_1136) { + _fx_free_N15C_form__cstmt_t(&v_1136); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_1150); - if (v_1149) { - _fx_free_N15C_form__cstmt_t(&v_1149); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1135); + if (v_1134) { + _fx_free_N15C_form__cstmt_t(&v_1134); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_1148); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1133); if (chk_ret_0) { _fx_free_N14C_form__cexp_t(&chk_ret_0); } - if (ccode_193) { - _fx_free_LN15C_form__cstmt_t(&ccode_193); + if (ccode_151) { + _fx_free_LN15C_form__cstmt_t(&ccode_151); } - if (ccode_192) { - _fx_free_LN15C_form__cstmt_t(&ccode_192); + if (ccode_150) { + _fx_free_LN15C_form__cstmt_t(&ccode_150); } if (ret_e_2) { _fx_free_N14C_form__cexp_t(&ret_e_2); } - if (v_1147) { - _fx_free_LN15C_form__cstmt_t(&v_1147); + if (v_1132) { + _fx_free_LN15C_form__cstmt_t(&v_1132); } - if (ccode_191) { - _fx_free_LN15C_form__cstmt_t(&ccode_191); + if (ccode_149) { + _fx_free_LN15C_form__cstmt_t(&ccode_149); } if (ret_e_1) { _fx_free_N14C_form__cexp_t(&ret_e_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1146); - _fx_free_Nt6option1N14C_form__cexp_t(&v_1145); - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1144); - if (v_1143) { - _fx_free_N15C_form__cstmt_t(&v_1143); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1131); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1130); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1129); + if (v_1128) { + _fx_free_N15C_form__cstmt_t(&v_1128); } - if (ccode_190) { - _fx_free_LN15C_form__cstmt_t(&ccode_190); + if (ccode_148) { + _fx_free_LN15C_form__cstmt_t(&ccode_148); } if (bctx_prologue_2) { _fx_free_LN15C_form__cstmt_t(&bctx_prologue_2); @@ -33871,22 +33129,22 @@ static int if (bctx_cleanup_2) { _fx_free_LN15C_form__cstmt_t(&bctx_cleanup_2); } - if (ccode_189) { - _fx_free_LN15C_form__cstmt_t(&ccode_189); + if (ccode_147) { + _fx_free_LN15C_form__cstmt_t(&ccode_147); } if (bctx_2) { _fx_free_rR23C_gen_code__block_ctx_t(&bctx_2); } - if (ccode_188) { - _fx_free_LN15C_form__cstmt_t(&ccode_188); + if (ccode_146) { + _fx_free_LN15C_form__cstmt_t(&ccode_146); } if (ret_e_0) { _fx_free_N14C_form__cexp_t(&ret_e_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1142); - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1141); - _fx_free_Nt6option1N14C_form__cexp_t(&v_1140); - _fx_free_R16Ast__val_flags_t(&v_1139); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1127); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1126); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1125); + _fx_free_R16Ast__val_flags_t(&v_1124); if (cast_ptr_0) { _fx_free_N14C_form__cexp_t(&cast_ptr_0); } @@ -33896,354 +33154,344 @@ static int if (fcv_ptr_ctyp_0) { _fx_free_N14C_form__ctyp_t(&fcv_ptr_ctyp_0); } - if (v_1138) { - _fx_free_N14C_form__ctyp_t(&v_1138); + if (v_1123) { + _fx_free_N14C_form__ctyp_t(&v_1123); } - if (ccode_187) { - _fx_free_LN15C_form__cstmt_t(&ccode_187); + if (ccode_145) { + _fx_free_LN15C_form__cstmt_t(&ccode_145); } if (call_chkstk_0) { _fx_free_N14C_form__cexp_t(&call_chkstk_0); } - if (ccode_186) { - _fx_free_LN15C_form__cstmt_t(&ccode_186); + if (ccode_144) { + _fx_free_LN15C_form__cstmt_t(&ccode_144); } - if (ccode_185) { - _fx_free_LN15C_form__cstmt_t(&ccode_185); + if (ccode_143) { + _fx_free_LN15C_form__cstmt_t(&ccode_143); } if (status_exp_0) { _fx_free_N14C_form__cexp_t(&status_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1137); - _fx_free_Nt6option1N14C_form__cexp_t(&v_1136); - if (v_1135) { - _fx_free_N14C_form__cexp_t(&v_1135); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1122); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1121); + if (v_1120) { + _fx_free_N14C_form__cexp_t(&v_1120); } - _fx_free_R16Ast__val_flags_t(&v_1134); + _fx_free_R16Ast__val_flags_t(&v_1119); if (dstexp_r_1) { _fx_free_rNt6option1N14C_form__cexp_t(&dstexp_r_1); } - if (v_1133) { - _fx_free_N14C_form__cexp_t(&v_1133); + if (v_1118) { + _fx_free_N14C_form__cexp_t(&v_1118); } - if (v_1132) { - _fx_free_N14C_form__cexp_t(&v_1132); + if (v_1117) { + _fx_free_N14C_form__cexp_t(&v_1117); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_1131); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1116); goto _fx_endmatch_48; } if (ctor_0.tag == 3) { _fx_N14C_form__cexp_t var_exp_0 = 0; _fx_N14C_form__ctyp_t result_ctyp_0 = 0; - _fx_T3N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t v_1170 = {0}; - _fx_N14C_form__cexp_t v_1171 = 0; - _fx_LN14C_form__cexp_t v_1172 = 0; + _fx_T3N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t v_1158 = {0}; + _fx_N14C_form__cexp_t v_1159 = 0; + _fx_LN14C_form__cexp_t v_1160 = 0; _fx_N14C_form__cexp_t alloc_var_0 = 0; - _fx_R16Ast__val_flags_t v_1173 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1174 = {0}; + _fx_R16Ast__val_flags_t v_1161 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1162 = {0}; _fx_N14C_form__cexp_t var_exp_1 = 0; - _fx_N15C_form__cstmt_t v_1175 = 0; - _fx_LN15C_form__cstmt_t ccode_194 = 0; - _fx_LN15C_form__cstmt_t ccode_195 = 0; + _fx_N15C_form__cstmt_t v_1163 = 0; + _fx_LN15C_form__cstmt_t ccode_152 = 0; + _fx_LN15C_form__cstmt_t ccode_153 = 0; _fx_N14C_form__ctyp_t ifaces_ctyp_0 = 0; _fx_N14C_form__ctyp_t ifaces_ptr_ctyp_0 = 0; - _fx_N14C_form__cexp_t v_1176 = 0; - _fx_N14C_form__cexp_t v_1177 = 0; - _fx_N14C_form__cexp_t v_1178 = 0; - _fx_N14C_form__cexp_t v_1179 = 0; - _fx_N15C_form__cstmt_t v_1180 = 0; - _fx_N14C_form__cexp_t v_1181 = 0; - _fx_Nt6option1N14C_form__cexp_t v_1182 = {0}; - _fx_N15C_form__cstmt_t v_1183 = 0; + _fx_N14C_form__cexp_t v_1164 = 0; + _fx_N14C_form__cexp_t v_1165 = 0; + _fx_N14C_form__cexp_t v_1166 = 0; + _fx_N14C_form__cexp_t v_1167 = 0; + _fx_N15C_form__cstmt_t v_1168 = 0; + _fx_N14C_form__cexp_t v_1169 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1170 = {0}; + _fx_N15C_form__cstmt_t v_1171 = 0; _fx_LN15C_form__cstmt_t ret_ccode_0 = 0; _fx_N14C_form__cexp_t var_exp_2 = 0; - _fx_LN15C_form__cstmt_t ccode_196 = 0; + _fx_LN15C_form__cstmt_t ccode_154 = 0; _fx_LN15C_form__cstmt_t ret_ccode_1 = 0; - _fx_N14C_form__cexp_t v_1184 = 0; - _fx_N14C_form__cexp_t v_1185 = 0; + _fx_N14C_form__cexp_t v_1172 = 0; + _fx_N14C_form__cexp_t v_1173 = 0; _fx_N14C_form__cexp_t init_tag_0 = 0; - _fx_LN15C_form__cstmt_t ccode_197 = 0; - _fx_N15C_form__cstmt_t v_1186 = 0; + _fx_LN15C_form__cstmt_t ccode_155 = 0; + _fx_N15C_form__cstmt_t v_1174 = 0; _fx_N14C_form__cexp_t dst_base_0 = 0; _fx_N14C_form__cexp_t dst_base_1 = 0; - _fx_LN15C_form__cstmt_t __fold_result___24 = 0; - _fx_LN15C_form__cstmt_t ccode_198 = 0; - _fx_LN15C_form__cstmt_t v_1187 = 0; - _fx_T3BBR9Ast__id_t v_1188; + _fx_LN15C_form__cstmt_t ccode_156 = 0; + _fx_LN15C_form__cstmt_t v_1175 = 0; + _fx_T3BBR9Ast__id_t v_1176; if (FX_REC_VARIANT_TAG(kf_rt_0) == 16) { - _fx_N15K_form__kinfo_t v_1189 = {0}; + _fx_N15K_form__kinfo_t v_1177 = {0}; _fx_R9Ast__id_t* vn_1 = &kf_rt_0->u.KTypName; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(vn_1, &kf_loc_0, &v_1189, 0), + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(vn_1, &kf_loc_0, &v_1177, 0), _fx_catch_244); - if (v_1189.tag == 5) { - _fx_R21K_form__kdefvariant_t v_1190 = {0}; - _fx_N15C_form__cinfo_t v_1191 = {0}; - _fx_copy_R21K_form__kdefvariant_t(&v_1189.u.KVariant->data, &v_1190); - _fx_R16Ast__var_flags_t* kvar_flags_2 = &v_1190.kvar_flags; + if (v_1177.tag == 5) { + _fx_R21K_form__kdefvariant_t v_1178 = {0}; + _fx_N15C_form__cinfo_t v_1179 = {0}; + _fx_copy_R21K_form__kdefvariant_t(&v_1177.u.KVariant->data, &v_1178); + _fx_R16Ast__var_flags_t* kvar_flags_2 = &v_1178.kvar_flags; bool have_tag_1 = kvar_flags_2->var_flag_have_tag; bool is_recursive_1 = kvar_flags_2->var_flag_recursive; - FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(vn_1, &kf_loc_0, &v_1191, 0), + FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(vn_1, &kf_loc_0, &v_1179, 0), _fx_catch_242); _fx_R9Ast__id_t ifaces_id_0; - if (v_1191.tag == 4) { - _fx_R17C_form__cdeftyp_t v_1192 = {0}; - _fx_copy_R17C_form__cdeftyp_t(&v_1191.u.CTyp->data, &v_1192); - ifaces_id_0 = v_1192.ct_ifaces_id; - _fx_free_R17C_form__cdeftyp_t(&v_1192); + if (v_1179.tag == 4) { + _fx_R17C_form__cdeftyp_t v_1180 = {0}; + _fx_copy_R17C_form__cdeftyp_t(&v_1179.u.CTyp->data, &v_1180); + ifaces_id_0 = v_1180.ct_ifaces_id; + _fx_free_R17C_form__cdeftyp_t(&v_1180); } else { ifaces_id_0 = _fx_g9Ast__noid; } FX_CHECK_EXN(_fx_catch_242); _fx_T3BBR9Ast__id_t tup_3 = { have_tag_1, is_recursive_1, ifaces_id_0 }; - v_1188 = tup_3; + v_1176 = tup_3; _fx_catch_242: ; - _fx_free_N15C_form__cinfo_t(&v_1191); - _fx_free_R21K_form__kdefvariant_t(&v_1190); + _fx_free_N15C_form__cinfo_t(&v_1179); + _fx_free_R21K_form__kdefvariant_t(&v_1178); } else { - fx_str_t v_1193 = {0}; - fx_str_t v_1194 = {0}; - fx_str_t v_1195 = {0}; - fx_exn_t v_1196 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_1193, 0), _fx_catch_243); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1193, &v_1194, 0), _fx_catch_243); + fx_str_t v_1181 = {0}; + fx_str_t v_1182 = {0}; + fx_str_t v_1183 = {0}; + fx_exn_t v_1184 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_1181, 0), _fx_catch_243); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1181, &v_1182, 0), _fx_catch_243); fx_str_t slit_243 = FX_MAKE_STR("cgen: the return type of variant constructor "); fx_str_t slit_244 = FX_MAKE_STR(" is not variant"); { - const fx_str_t strs_37[] = { slit_243, v_1194, slit_244 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_37, 3, &v_1195), _fx_catch_243); + const fx_str_t strs_36[] = { slit_243, v_1182, slit_244 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_36, 3, &v_1183), _fx_catch_243); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1195, &v_1196, 0), _fx_catch_243); - FX_THROW(&v_1196, false, _fx_catch_243); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1183, &v_1184, 0), _fx_catch_243); + FX_THROW(&v_1184, false, _fx_catch_243); _fx_catch_243: ; - fx_free_exn(&v_1196); - FX_FREE_STR(&v_1195); - FX_FREE_STR(&v_1194); - FX_FREE_STR(&v_1193); + fx_free_exn(&v_1184); + FX_FREE_STR(&v_1183); + FX_FREE_STR(&v_1182); + FX_FREE_STR(&v_1181); } FX_CHECK_EXN(_fx_catch_244); _fx_catch_244: ; - _fx_free_N15K_form__kinfo_t(&v_1189); + _fx_free_N15K_form__kinfo_t(&v_1177); } else { - fx_str_t v_1197 = {0}; - fx_str_t v_1198 = {0}; - fx_str_t v_1199 = {0}; - fx_exn_t v_1200 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_1197, 0), _fx_catch_245); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1197, &v_1198, 0), _fx_catch_245); + fx_str_t v_1185 = {0}; + fx_str_t v_1186 = {0}; + fx_str_t v_1187 = {0}; + fx_exn_t v_1188 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_1185, 0), _fx_catch_245); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1185, &v_1186, 0), _fx_catch_245); fx_str_t slit_245 = FX_MAKE_STR("cgen: the return type of variant constructor "); fx_str_t slit_246 = FX_MAKE_STR(" is not variant"); { - const fx_str_t strs_38[] = { slit_245, v_1198, slit_246 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_38, 3, &v_1199), _fx_catch_245); + const fx_str_t strs_37[] = { slit_245, v_1186, slit_246 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_37, 3, &v_1187), _fx_catch_245); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1199, &v_1200, 0), _fx_catch_245); - FX_THROW(&v_1200, false, _fx_catch_245); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1187, &v_1188, 0), _fx_catch_245); + FX_THROW(&v_1188, false, _fx_catch_245); _fx_catch_245: ; - fx_free_exn(&v_1200); - FX_FREE_STR(&v_1199); - FX_FREE_STR(&v_1198); - FX_FREE_STR(&v_1197); + fx_free_exn(&v_1188); + FX_FREE_STR(&v_1187); + FX_FREE_STR(&v_1186); + FX_FREE_STR(&v_1185); } FX_CHECK_EXN(_fx_catch_247); - bool have_tag_2 = v_1188.t0; - bool is_recursive_variant_0 = v_1188.t1; - _fx_R9Ast__id_t ifaces_id_1 = v_1188.t2; + bool have_tag_2 = v_1176.t0; + bool is_recursive_variant_0 = v_1176.t1; + _fx_R9Ast__id_t ifaces_id_1 = v_1176.t2; FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&retid_0, &kf_loc_0, &var_exp_0, 0), _fx_catch_247); FX_CALL( _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(kf_rt_0, &kf_loc_0, &result_ctyp_0, 0), _fx_catch_247); if (is_recursive_variant_0) { - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(result_ctyp_0, &kf_loc_0, &v_1171), + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(result_ctyp_0, &kf_loc_0, &v_1159), _fx_catch_247); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1171, 0, true, &v_1172), _fx_catch_247); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1159, 0, true, &v_1160), _fx_catch_247); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g48C_form__std_FX_MAKE_RECURSIVE_VARIANT_IMPL_START, v_1172, _fx_g20C_gen_code__CTypVoid, &kf_loc_0, + &_fx_g48C_form__std_FX_MAKE_RECURSIVE_VARIANT_IMPL_START, v_1160, _fx_g20C_gen_code__CTypVoid, &kf_loc_0, &alloc_var_0, 0), _fx_catch_247); - _fx_R9Ast__id_t v_1201; + _fx_R9Ast__id_t v_1189; fx_str_t slit_247 = FX_MAKE_STR("v"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_247, &v_1201, 0), _fx_catch_247); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_1173, 0), _fx_catch_247); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_247, &v_1189, 0), _fx_catch_247); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_1161, 0), _fx_catch_247); fx_str_t slit_248 = FX_MAKE_STR("v"); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_1201, result_ctyp_0, &v_1173, &slit_248, &_fx_g18C_gen_code__None2_, 0, &kf_loc_0, &v_1174, 0), + &v_1189, result_ctyp_0, &v_1161, &slit_248, &_fx_g18C_gen_code__None2_, 0, &kf_loc_0, &v_1162, 0), _fx_catch_247); - FX_COPY_PTR(v_1174.t0, &var_exp_1); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(alloc_var_0, &v_1175), _fx_catch_247); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1175, 0, true, &ccode_194), _fx_catch_247); + FX_COPY_PTR(v_1162.t0, &var_exp_1); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(alloc_var_0, &v_1163), _fx_catch_247); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1163, 0, true, &ccode_152), _fx_catch_247); bool res_38; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&ifaces_id_1, &_fx_g9Ast__noid, &res_38, 0), _fx_catch_247); if (res_38) { - FX_COPY_PTR(ccode_194, &ccode_195); + FX_COPY_PTR(ccode_152, &ccode_153); } else { - _fx_R9Ast__id_t v_1202; + _fx_R9Ast__id_t v_1190; fx_str_t slit_249 = FX_MAKE_STR("fx_ifaces_t"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_249, &v_1202, 0), _fx_catch_247); - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_1202, &ifaces_ctyp_0), _fx_catch_247); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_249, &v_1190, 0), _fx_catch_247); + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_1190, &ifaces_ctyp_0), _fx_catch_247); FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(ifaces_ctyp_0, &ifaces_ptr_ctyp_0, 0), _fx_catch_247); - _fx_R9Ast__id_t v_1203; + _fx_R9Ast__id_t v_1191; fx_str_t slit_250 = FX_MAKE_STR("ifaces"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_250, &v_1203, 0), _fx_catch_247); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_250, &v_1191, 0), _fx_catch_247); FX_CALL( - _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(var_exp_1, &v_1203, - ifaces_ptr_ctyp_0, &v_1176, 0), _fx_catch_247); + _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(var_exp_1, &v_1191, + ifaces_ptr_ctyp_0, &v_1164, 0), _fx_catch_247); FX_CALL( _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&ifaces_id_1, - ifaces_ctyp_0, &kloc_0, &v_1177, 0), _fx_catch_247); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(v_1177, &v_1178, 0), _fx_catch_247); + ifaces_ctyp_0, &kloc_0, &v_1165, 0), _fx_catch_247); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(v_1165, &v_1166, 0), _fx_catch_247); FX_CALL( - _fx_M6C_formFM11make_assignN14C_form__cexp_t2N14C_form__cexp_tN14C_form__cexp_t(v_1176, v_1178, &v_1179, 0), + _fx_M6C_formFM11make_assignN14C_form__cexp_t2N14C_form__cexp_tN14C_form__cexp_t(v_1164, v_1166, &v_1167, 0), _fx_catch_247); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_1179, &v_1180), _fx_catch_247); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1180, ccode_194, true, &ccode_195), _fx_catch_247); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_1167, &v_1168), _fx_catch_247); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1168, ccode_152, true, &ccode_153), _fx_catch_247); } - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kf_loc_0, &v_1181, 0), _fx_catch_247); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1181, &v_1182); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kf_loc_0, &v_1169, 0), _fx_catch_247); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1169, &v_1170); FX_CALL( - _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1182, &kf_loc_0, - &v_1183), _fx_catch_247); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1183, 0, true, &ret_ccode_0), _fx_catch_247); - _fx_make_T3N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t(var_exp_1, ccode_195, ret_ccode_0, &v_1170); + _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1170, &kf_loc_0, + &v_1171), _fx_catch_247); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1171, 0, true, &ret_ccode_0), _fx_catch_247); + _fx_make_T3N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t(var_exp_1, ccode_153, ret_ccode_0, &v_1158); } else { - _fx_make_T3N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t(var_exp_0, 0, 0, &v_1170); + _fx_make_T3N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t(var_exp_0, 0, 0, &v_1158); } - FX_COPY_PTR(v_1170.t0, &var_exp_2); - FX_COPY_PTR(v_1170.t1, &ccode_196); - FX_COPY_PTR(v_1170.t2, &ret_ccode_1); - _fx_R9Ast__id_t v_1204; + FX_COPY_PTR(v_1158.t0, &var_exp_2); + FX_COPY_PTR(v_1158.t1, &ccode_154); + FX_COPY_PTR(v_1158.t2, &ret_ccode_1); + _fx_R9Ast__id_t v_1192; fx_str_t slit_251 = FX_MAKE_STR("tag"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_251, &v_1204, 0), _fx_catch_247); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_251, &v_1192, 0), _fx_catch_247); FX_CALL( - _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(var_exp_2, &v_1204, - _fx_g19C_gen_code__CTypInt, &v_1184, 0), _fx_catch_247); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(ctor_0.u.CtorVariant, &kloc_0, &v_1185, 0), + _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(var_exp_2, &v_1192, + _fx_g19C_gen_code__CTypInt, &v_1172, 0), _fx_catch_247); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(ctor_0.u.CtorVariant, &kloc_0, &v_1173, 0), _fx_catch_247); FX_CALL( - _fx_M6C_formFM11make_assignN14C_form__cexp_t2N14C_form__cexp_tN14C_form__cexp_t(v_1184, v_1185, &init_tag_0, 0), + _fx_M6C_formFM11make_assignN14C_form__cexp_t2N14C_form__cexp_tN14C_form__cexp_t(v_1172, v_1173, &init_tag_0, 0), _fx_catch_247); if (have_tag_2) { - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(init_tag_0, &v_1186), _fx_catch_247); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1186, ccode_196, true, &ccode_197), _fx_catch_247); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(init_tag_0, &v_1174), _fx_catch_247); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1174, ccode_154, true, &ccode_155), _fx_catch_247); } else { - FX_COPY_PTR(ccode_196, &ccode_197); + FX_COPY_PTR(ccode_154, &ccode_155); } - _fx_R9Ast__id_t v_1205; + _fx_R9Ast__id_t v_1193; fx_str_t slit_252 = FX_MAKE_STR("u"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_252, &v_1205, 0), _fx_catch_247); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_252, &v_1193, 0), _fx_catch_247); FX_CALL( - _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(var_exp_2, &v_1205, + _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(var_exp_2, &v_1193, _fx_g19C_gen_code__CTypAny, &dst_base_0, 0), _fx_catch_247); - _fx_R9Ast__id_t v_1206; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&kf_name_0, &v_1206, 0), _fx_catch_247); + _fx_R9Ast__id_t v_1194; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&kf_name_0, &v_1194, 0), _fx_catch_247); FX_CALL( - _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(dst_base_0, &v_1206, + _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(dst_base_0, &v_1194, _fx_g19C_gen_code__CTypAny, &dst_base_1, 0), _fx_catch_247); - FX_COPY_PTR(ccode_197, &__fold_result___24); + FX_COPY_PTR(ccode_155, &ccode_156); int_ idx_2 = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t lst_30 = real_args_0; for (; lst_30; lst_30 = lst_30->tl, idx_2 += 1) { - _fx_N14C_form__ctyp_t t_25 = 0; + _fx_N14C_form__ctyp_t t_24 = 0; _fx_LN19C_form__carg_attr_t flags_4 = 0; - _fx_LN15C_form__cstmt_t ccode_199 = 0; _fx_N14C_form__cexp_t src_exp_2 = 0; - _fx_T2N14C_form__cexp_tN14C_form__ctyp_t v_1207 = {0}; + _fx_T2N14C_form__cexp_tN14C_form__ctyp_t v_1195 = {0}; _fx_N14C_form__cexp_t src_exp_3 = 0; - _fx_N14C_form__ctyp_t t_26 = 0; + _fx_N14C_form__ctyp_t t_25 = 0; _fx_N14C_form__cexp_t dst_exp_19 = 0; - fx_str_t v_1208 = {0}; - fx_str_t v_1209 = {0}; - _fx_LN15C_form__cstmt_t v_1210 = 0; + fx_str_t v_1196 = {0}; + fx_str_t v_1197 = {0}; + _fx_LN15C_form__cstmt_t v_1198 = 0; _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* __pat___12 = &lst_30->hd; _fx_R9Ast__id_t a_13 = __pat___12->t0; - FX_COPY_PTR(__pat___12->t1, &t_25); + FX_COPY_PTR(__pat___12->t1, &t_24); FX_COPY_PTR(__pat___12->t2, &flags_4); - FX_COPY_PTR(__fold_result___24, &ccode_199); FX_CALL( - _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&a_13, t_25, &kf_loc_0, + _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&a_13, t_24, &kf_loc_0, &src_exp_2, 0), _fx_catch_246); FX_CALL( _fx_M10C_gen_codeFM19maybe_deref_fun_argT2N14C_form__cexp_tN14C_form__ctyp_t5iN14C_form__cexp_tN14C_form__ctyp_tLN19C_form__carg_attr_tR10Ast__loc_t( - idx_2, src_exp_2, t_25, flags_4, &kf_loc_0, &v_1207, 0), _fx_catch_246); - FX_COPY_PTR(v_1207.t0, &src_exp_3); - FX_COPY_PTR(v_1207.t1, &t_26); + idx_2, src_exp_2, t_24, flags_4, &kf_loc_0, &v_1195, 0), _fx_catch_246); + FX_COPY_PTR(v_1195.t0, &src_exp_3); + FX_COPY_PTR(v_1195.t1, &t_25); if (nreal_args_0 == 1) { FX_COPY_PTR(dst_base_1, &dst_exp_19); } else { - FX_CALL(_fx_F6stringS1i(idx_2, &v_1208, 0), _fx_catch_246); + FX_CALL(_fx_F6stringS1i(idx_2, &v_1196, 0), _fx_catch_246); fx_str_t slit_253 = FX_MAKE_STR("t"); { - const fx_str_t strs_39[] = { slit_253, v_1208 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_39, 2, &v_1209), _fx_catch_246); + const fx_str_t strs_38[] = { slit_253, v_1196 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_38, 2, &v_1197), _fx_catch_246); } _fx_R9Ast__id_t tup_elem_0; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_1209, &tup_elem_0, 0), _fx_catch_246); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_1197, &tup_elem_0, 0), _fx_catch_246); FX_CALL( _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(dst_base_1, - &tup_elem_0, t_26, &dst_exp_19, 0), _fx_catch_246); + &tup_elem_0, t_25, &dst_exp_19, 0), _fx_catch_246); } FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - src_exp_3, dst_exp_19, t_26, ccode_199, &kf_loc_0, &v_1210, 0), _fx_catch_246); - _fx_free_LN15C_form__cstmt_t(&__fold_result___24); - FX_COPY_PTR(v_1210, &__fold_result___24); + src_exp_3, dst_exp_19, t_25, ccode_156, &kf_loc_0, &v_1198, 0), _fx_catch_246); + _fx_free_LN15C_form__cstmt_t(&ccode_156); + FX_COPY_PTR(v_1198, &ccode_156); _fx_catch_246: ; - if (v_1210) { - _fx_free_LN15C_form__cstmt_t(&v_1210); + if (v_1198) { + _fx_free_LN15C_form__cstmt_t(&v_1198); } - FX_FREE_STR(&v_1209); - FX_FREE_STR(&v_1208); + FX_FREE_STR(&v_1197); + FX_FREE_STR(&v_1196); if (dst_exp_19) { _fx_free_N14C_form__cexp_t(&dst_exp_19); } - if (t_26) { - _fx_free_N14C_form__ctyp_t(&t_26); + if (t_25) { + _fx_free_N14C_form__ctyp_t(&t_25); } if (src_exp_3) { _fx_free_N14C_form__cexp_t(&src_exp_3); } - _fx_free_T2N14C_form__cexp_tN14C_form__ctyp_t(&v_1207); + _fx_free_T2N14C_form__cexp_tN14C_form__ctyp_t(&v_1195); if (src_exp_2) { _fx_free_N14C_form__cexp_t(&src_exp_2); } - if (ccode_199) { - _fx_free_LN15C_form__cstmt_t(&ccode_199); - } FX_FREE_LIST_SIMPLE(&flags_4); - if (t_25) { - _fx_free_N14C_form__ctyp_t(&t_25); + if (t_24) { + _fx_free_N14C_form__ctyp_t(&t_24); } FX_CHECK_EXN(_fx_catch_247); } - FX_COPY_PTR(__fold_result___24, &ccode_198); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(ret_ccode_1, ccode_198, - &v_1187, 0), _fx_catch_247); - FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(v_1187, &new_body_0, 0), _fx_catch_247); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(ret_ccode_1, ccode_156, + &v_1175, 0), _fx_catch_247); + FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(v_1175, &new_body_0, 0), _fx_catch_247); _fx_catch_247: ; - if (v_1187) { - _fx_free_LN15C_form__cstmt_t(&v_1187); - } - if (ccode_198) { - _fx_free_LN15C_form__cstmt_t(&ccode_198); + if (v_1175) { + _fx_free_LN15C_form__cstmt_t(&v_1175); } - if (__fold_result___24) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___24); + if (ccode_156) { + _fx_free_LN15C_form__cstmt_t(&ccode_156); } if (dst_base_1) { _fx_free_N14C_form__cexp_t(&dst_base_1); @@ -34251,26 +33499,26 @@ static int if (dst_base_0) { _fx_free_N14C_form__cexp_t(&dst_base_0); } - if (v_1186) { - _fx_free_N15C_form__cstmt_t(&v_1186); + if (v_1174) { + _fx_free_N15C_form__cstmt_t(&v_1174); } - if (ccode_197) { - _fx_free_LN15C_form__cstmt_t(&ccode_197); + if (ccode_155) { + _fx_free_LN15C_form__cstmt_t(&ccode_155); } if (init_tag_0) { _fx_free_N14C_form__cexp_t(&init_tag_0); } - if (v_1185) { - _fx_free_N14C_form__cexp_t(&v_1185); + if (v_1173) { + _fx_free_N14C_form__cexp_t(&v_1173); } - if (v_1184) { - _fx_free_N14C_form__cexp_t(&v_1184); + if (v_1172) { + _fx_free_N14C_form__cexp_t(&v_1172); } if (ret_ccode_1) { _fx_free_LN15C_form__cstmt_t(&ret_ccode_1); } - if (ccode_196) { - _fx_free_LN15C_form__cstmt_t(&ccode_196); + if (ccode_154) { + _fx_free_LN15C_form__cstmt_t(&ccode_154); } if (var_exp_2) { _fx_free_N14C_form__cexp_t(&var_exp_2); @@ -34278,27 +33526,27 @@ static int if (ret_ccode_0) { _fx_free_LN15C_form__cstmt_t(&ret_ccode_0); } - if (v_1183) { - _fx_free_N15C_form__cstmt_t(&v_1183); + if (v_1171) { + _fx_free_N15C_form__cstmt_t(&v_1171); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_1182); - if (v_1181) { - _fx_free_N14C_form__cexp_t(&v_1181); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1170); + if (v_1169) { + _fx_free_N14C_form__cexp_t(&v_1169); } - if (v_1180) { - _fx_free_N15C_form__cstmt_t(&v_1180); + if (v_1168) { + _fx_free_N15C_form__cstmt_t(&v_1168); } - if (v_1179) { - _fx_free_N14C_form__cexp_t(&v_1179); + if (v_1167) { + _fx_free_N14C_form__cexp_t(&v_1167); } - if (v_1178) { - _fx_free_N14C_form__cexp_t(&v_1178); + if (v_1166) { + _fx_free_N14C_form__cexp_t(&v_1166); } - if (v_1177) { - _fx_free_N14C_form__cexp_t(&v_1177); + if (v_1165) { + _fx_free_N14C_form__cexp_t(&v_1165); } - if (v_1176) { - _fx_free_N14C_form__cexp_t(&v_1176); + if (v_1164) { + _fx_free_N14C_form__cexp_t(&v_1164); } if (ifaces_ptr_ctyp_0) { _fx_free_N14C_form__ctyp_t(&ifaces_ptr_ctyp_0); @@ -34306,30 +33554,30 @@ static int if (ifaces_ctyp_0) { _fx_free_N14C_form__ctyp_t(&ifaces_ctyp_0); } - if (ccode_195) { - _fx_free_LN15C_form__cstmt_t(&ccode_195); + if (ccode_153) { + _fx_free_LN15C_form__cstmt_t(&ccode_153); } - if (ccode_194) { - _fx_free_LN15C_form__cstmt_t(&ccode_194); + if (ccode_152) { + _fx_free_LN15C_form__cstmt_t(&ccode_152); } - if (v_1175) { - _fx_free_N15C_form__cstmt_t(&v_1175); + if (v_1163) { + _fx_free_N15C_form__cstmt_t(&v_1163); } if (var_exp_1) { _fx_free_N14C_form__cexp_t(&var_exp_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1174); - _fx_free_R16Ast__val_flags_t(&v_1173); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1162); + _fx_free_R16Ast__val_flags_t(&v_1161); if (alloc_var_0) { _fx_free_N14C_form__cexp_t(&alloc_var_0); } - if (v_1172) { - _fx_free_LN14C_form__cexp_t(&v_1172); + if (v_1160) { + _fx_free_LN14C_form__cexp_t(&v_1160); } - if (v_1171) { - _fx_free_N14C_form__cexp_t(&v_1171); + if (v_1159) { + _fx_free_N14C_form__cexp_t(&v_1159); } - _fx_free_T3N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_1170); + _fx_free_T3N14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_1158); if (result_ctyp_0) { _fx_free_N14C_form__ctyp_t(&result_ctyp_0); } @@ -34339,316 +33587,305 @@ static int goto _fx_endmatch_48; } if (ctor_0.tag == 4) { - _fx_N15K_form__kinfo_t v_1211 = {0}; + _fx_N15K_form__kinfo_t v_1199 = {0}; _fx_N14C_form__ctyp_t fcv_t_0 = 0; - _fx_T2BNt6option1N14C_form__cexp_t v_1212 = {0}; + _fx_T2BNt6option1N14C_form__cexp_t v_1200 = {0}; _fx_N14C_form__cexp_t free_f_exp_4 = 0; - _fx_N14C_form__cexp_t v_1213 = 0; - _fx_N14C_form__cexp_t v_1214 = 0; - _fx_LN14C_form__cexp_t v_1215 = 0; + _fx_N14C_form__cexp_t v_1201 = 0; + _fx_N14C_form__cexp_t v_1202 = 0; + _fx_LN14C_form__cexp_t v_1203 = 0; _fx_N14C_form__cexp_t alloc_fcv_0 = 0; - _fx_N14C_form__ctyp_t v_1216 = 0; - _fx_R16Ast__val_flags_t v_1217 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1218 = {0}; + _fx_N14C_form__ctyp_t v_1204 = 0; + _fx_R16Ast__val_flags_t v_1205 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_1206 = {0}; _fx_N14C_form__cexp_t fcv_exp_0 = 0; - _fx_N14C_form__cexp_t v_1219 = 0; - _fx_Nt6option1N14C_form__cexp_t v_1220 = {0}; - _fx_N15C_form__cstmt_t v_1221 = 0; + _fx_N14C_form__cexp_t v_1207 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1208 = {0}; + _fx_N15C_form__cstmt_t v_1209 = 0; _fx_LN15C_form__cstmt_t ret_ccode_2 = 0; - _fx_N15C_form__cstmt_t v_1222 = 0; - _fx_LN15C_form__cstmt_t ccode_200 = 0; - _fx_LN15C_form__cstmt_t __fold_result___25 = 0; - _fx_LN15C_form__cstmt_t ccode_201 = 0; - _fx_LN15C_form__cstmt_t v_1223 = 0; + _fx_N15C_form__cstmt_t v_1210 = 0; + _fx_LN15C_form__cstmt_t ccode_157 = 0; + _fx_LN15C_form__cstmt_t ccode_158 = 0; + _fx_LN15C_form__cstmt_t v_1211 = 0; _fx_R9Ast__id_t* f_id_0 = &ctor_0.u.CtorFP; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(f_id_0, &kf_loc_0, &v_1211, 0), + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(f_id_0, &kf_loc_0, &v_1199, 0), _fx_catch_251); _fx_R9Ast__id_t fcv_t_id_0; - if (v_1211.tag == 3) { - _fx_R17K_form__kdeffun_t v_1224 = {0}; - _fx_copy_R17K_form__kdeffun_t(&v_1211.u.KFun->data, &v_1224); - fcv_t_id_0 = v_1224.kf_closure.kci_fcv_t; - _fx_free_R17K_form__kdeffun_t(&v_1224); + if (v_1199.tag == 3) { + _fx_R17K_form__kdeffun_t v_1212 = {0}; + _fx_copy_R17K_form__kdeffun_t(&v_1199.u.KFun->data, &v_1212); + fcv_t_id_0 = v_1212.kf_closure.kci_fcv_t; + _fx_free_R17K_form__kdeffun_t(&v_1212); } else { - fx_str_t v_1225 = {0}; - fx_str_t v_1226 = {0}; - fx_str_t v_1227 = {0}; - fx_exn_t v_1228 = {0}; - FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(f_id_0, &kf_loc_0, &v_1225, 0), _fx_catch_248); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1225, &v_1226, 0), _fx_catch_248); + fx_str_t v_1213 = {0}; + fx_str_t v_1214 = {0}; + fx_str_t v_1215 = {0}; + fx_exn_t v_1216 = {0}; + FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(f_id_0, &kf_loc_0, &v_1213, 0), _fx_catch_248); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1213, &v_1214, 0), _fx_catch_248); fx_str_t slit_254 = FX_MAKE_STR("cgen: \'"); fx_str_t slit_255 = FX_MAKE_STR("\' is not a function"); { - const fx_str_t strs_40[] = { slit_254, v_1226, slit_255 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_40, 3, &v_1227), _fx_catch_248); + const fx_str_t strs_39[] = { slit_254, v_1214, slit_255 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_39, 3, &v_1215), _fx_catch_248); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1227, &v_1228, 0), _fx_catch_248); - FX_THROW(&v_1228, false, _fx_catch_248); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1215, &v_1216, 0), _fx_catch_248); + FX_THROW(&v_1216, false, _fx_catch_248); _fx_catch_248: ; - fx_free_exn(&v_1228); - FX_FREE_STR(&v_1227); - FX_FREE_STR(&v_1226); - FX_FREE_STR(&v_1225); + fx_free_exn(&v_1216); + FX_FREE_STR(&v_1215); + FX_FREE_STR(&v_1214); + FX_FREE_STR(&v_1213); } FX_CHECK_EXN(_fx_catch_251); FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&fcv_t_id_0, &fcv_t_0), _fx_catch_251); FX_CALL( _fx_M11C_gen_typesFM10get_free_fT2BNt6option1N14C_form__cexp_t4N14C_form__ctyp_tBBR10Ast__loc_t(fcv_t_0, true, - false, &kf_loc_0, &v_1212, 0), _fx_catch_251); - _fx_Nt6option1N14C_form__cexp_t* v_1229 = &v_1212.t1; - if (v_1229->tag == 2) { - FX_COPY_PTR(v_1229->u.Some, &free_f_exp_4); + false, &kf_loc_0, &v_1200, 0), _fx_catch_251); + _fx_Nt6option1N14C_form__cexp_t* v_1217 = &v_1200.t1; + if (v_1217->tag == 2) { + FX_COPY_PTR(v_1217->u.Some, &free_f_exp_4); } else { - fx_str_t v_1230 = {0}; - fx_str_t v_1231 = {0}; - fx_str_t v_1232 = {0}; - fx_exn_t v_1233 = {0}; - FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(&fcv_t_id_0, &kf_loc_0, &v_1230, 0), _fx_catch_249); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1230, &v_1231, 0), _fx_catch_249); + fx_str_t v_1218 = {0}; + fx_str_t v_1219 = {0}; + fx_str_t v_1220 = {0}; + fx_exn_t v_1221 = {0}; + FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(&fcv_t_id_0, &kf_loc_0, &v_1218, 0), _fx_catch_249); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1218, &v_1219, 0), _fx_catch_249); fx_str_t slit_256 = FX_MAKE_STR("cgen: missing destructor for closure vars \'"); fx_str_t slit_257 = FX_MAKE_STR("\'"); { - const fx_str_t strs_41[] = { slit_256, v_1231, slit_257 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_41, 3, &v_1232), _fx_catch_249); + const fx_str_t strs_40[] = { slit_256, v_1219, slit_257 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_40, 3, &v_1220), _fx_catch_249); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1232, &v_1233, 0), _fx_catch_249); - FX_THROW(&v_1233, false, _fx_catch_249); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1220, &v_1221, 0), _fx_catch_249); + FX_THROW(&v_1221, false, _fx_catch_249); _fx_catch_249: ; - fx_free_exn(&v_1233); - FX_FREE_STR(&v_1232); - FX_FREE_STR(&v_1231); - FX_FREE_STR(&v_1230); + fx_free_exn(&v_1221); + FX_FREE_STR(&v_1220); + FX_FREE_STR(&v_1219); + FX_FREE_STR(&v_1218); } FX_CHECK_EXN(_fx_catch_251); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(fcv_t_0, &kf_loc_0, &v_1213), + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(fcv_t_0, &kf_loc_0, &v_1201), _fx_catch_251); FX_CALL( _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(f_id_0, - _fx_g23C_form__std_CTypVoidPtr, &kloc_0, &v_1214, 0), _fx_catch_251); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1214, 0, true, &v_1215), _fx_catch_251); - FX_CALL(_fx_cons_LN14C_form__cexp_t(free_f_exp_4, v_1215, false, &v_1215), _fx_catch_251); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1213, v_1215, false, &v_1215), _fx_catch_251); + _fx_g23C_form__std_CTypVoidPtr, &kloc_0, &v_1202, 0), _fx_catch_251); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1202, 0, true, &v_1203), _fx_catch_251); + FX_CALL(_fx_cons_LN14C_form__cexp_t(free_f_exp_4, v_1203, false, &v_1203), _fx_catch_251); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1201, v_1203, false, &v_1203), _fx_catch_251); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g33C_form__std_FX_MAKE_FP_IMPL_START, v_1215, _fx_g20C_gen_code__CTypVoid, &kf_loc_0, &alloc_fcv_0, 0), + &_fx_g33C_form__std_FX_MAKE_FP_IMPL_START, v_1203, _fx_g20C_gen_code__CTypVoid, &kf_loc_0, &alloc_fcv_0, 0), _fx_catch_251); - _fx_R9Ast__id_t v_1234; + _fx_R9Ast__id_t v_1222; fx_str_t slit_258 = FX_MAKE_STR("fcv"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_258, &v_1234, 0), _fx_catch_251); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(fcv_t_0, &v_1216, 0), _fx_catch_251); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_1217, 0), _fx_catch_251); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_258, &v_1222, 0), _fx_catch_251); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(fcv_t_0, &v_1204, 0), _fx_catch_251); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_1205, 0), _fx_catch_251); fx_str_t slit_259 = FX_MAKE_STR("fcv"); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_1234, v_1216, &v_1217, &slit_259, &_fx_g18C_gen_code__None2_, 0, &kf_loc_0, &v_1218, 0), _fx_catch_251); - FX_COPY_PTR(v_1218.t0, &fcv_exp_0); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kf_loc_0, &v_1219, 0), _fx_catch_251); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1219, &v_1220); + &v_1222, v_1204, &v_1205, &slit_259, &_fx_g18C_gen_code__None2_, 0, &kf_loc_0, &v_1206, 0), _fx_catch_251); + FX_COPY_PTR(v_1206.t0, &fcv_exp_0); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kf_loc_0, &v_1207, 0), _fx_catch_251); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1207, &v_1208); FX_CALL( - _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1220, &kf_loc_0, &v_1221), + _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1208, &kf_loc_0, &v_1209), _fx_catch_251); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1221, 0, true, &ret_ccode_2), _fx_catch_251); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(alloc_fcv_0, &v_1222), _fx_catch_251); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1222, 0, true, &ccode_200), _fx_catch_251); - FX_COPY_PTR(ccode_200, &__fold_result___25); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1209, 0, true, &ret_ccode_2), _fx_catch_251); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(alloc_fcv_0, &v_1210), _fx_catch_251); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1210, 0, true, &ccode_157), _fx_catch_251); + FX_COPY_PTR(ccode_157, &ccode_158); int_ idx_3 = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t lst_31 = real_args_0; for (; lst_31; lst_31 = lst_31->tl, idx_3 += 1) { - _fx_N14C_form__ctyp_t t_27 = 0; + _fx_N14C_form__ctyp_t t_26 = 0; _fx_LN19C_form__carg_attr_t flags_5 = 0; - _fx_LN15C_form__cstmt_t ccode_202 = 0; _fx_N14C_form__cexp_t src_exp_4 = 0; - _fx_T2N14C_form__cexp_tN14C_form__ctyp_t v_1235 = {0}; + _fx_T2N14C_form__cexp_tN14C_form__ctyp_t v_1223 = {0}; _fx_N14C_form__cexp_t src_exp_5 = 0; - _fx_N14C_form__ctyp_t t_28 = 0; - fx_str_t v_1236 = {0}; - fx_str_t v_1237 = {0}; + _fx_N14C_form__ctyp_t t_27 = 0; + fx_str_t v_1224 = {0}; + fx_str_t v_1225 = {0}; _fx_N14C_form__cexp_t dst_exp_20 = 0; - _fx_LN15C_form__cstmt_t v_1238 = 0; + _fx_LN15C_form__cstmt_t v_1226 = 0; _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* __pat___13 = &lst_31->hd; _fx_R9Ast__id_t a_14 = __pat___13->t0; - FX_COPY_PTR(__pat___13->t1, &t_27); + FX_COPY_PTR(__pat___13->t1, &t_26); FX_COPY_PTR(__pat___13->t2, &flags_5); - FX_COPY_PTR(__fold_result___25, &ccode_202); FX_CALL( - _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&a_14, t_27, &kf_loc_0, + _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&a_14, t_26, &kf_loc_0, &src_exp_4, 0), _fx_catch_250); FX_CALL( _fx_M10C_gen_codeFM19maybe_deref_fun_argT2N14C_form__cexp_tN14C_form__ctyp_t5iN14C_form__cexp_tN14C_form__ctyp_tLN19C_form__carg_attr_tR10Ast__loc_t( - idx_3, src_exp_4, t_27, flags_5, &kf_loc_0, &v_1235, 0), _fx_catch_250); - FX_COPY_PTR(v_1235.t0, &src_exp_5); - FX_COPY_PTR(v_1235.t1, &t_28); - FX_CALL(_fx_F6stringS1i(idx_3, &v_1236, 0), _fx_catch_250); + idx_3, src_exp_4, t_26, flags_5, &kf_loc_0, &v_1223, 0), _fx_catch_250); + FX_COPY_PTR(v_1223.t0, &src_exp_5); + FX_COPY_PTR(v_1223.t1, &t_27); + FX_CALL(_fx_F6stringS1i(idx_3, &v_1224, 0), _fx_catch_250); fx_str_t slit_260 = FX_MAKE_STR("t"); { - const fx_str_t strs_42[] = { slit_260, v_1236 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_42, 2, &v_1237), _fx_catch_250); + const fx_str_t strs_41[] = { slit_260, v_1224 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_41, 2, &v_1225), _fx_catch_250); } _fx_R9Ast__id_t fcv_elem_0; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_1237, &fcv_elem_0, 0), _fx_catch_250); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_1225, &fcv_elem_0, 0), _fx_catch_250); FX_CALL( _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(fcv_exp_0, &fcv_elem_0, - t_28, &dst_exp_20, 0), _fx_catch_250); + t_27, &dst_exp_20, 0), _fx_catch_250); FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - src_exp_5, dst_exp_20, t_28, ccode_202, &kf_loc_0, &v_1238, 0), _fx_catch_250); - _fx_free_LN15C_form__cstmt_t(&__fold_result___25); - FX_COPY_PTR(v_1238, &__fold_result___25); + src_exp_5, dst_exp_20, t_27, ccode_158, &kf_loc_0, &v_1226, 0), _fx_catch_250); + _fx_free_LN15C_form__cstmt_t(&ccode_158); + FX_COPY_PTR(v_1226, &ccode_158); _fx_catch_250: ; - if (v_1238) { - _fx_free_LN15C_form__cstmt_t(&v_1238); + if (v_1226) { + _fx_free_LN15C_form__cstmt_t(&v_1226); } if (dst_exp_20) { _fx_free_N14C_form__cexp_t(&dst_exp_20); } - FX_FREE_STR(&v_1237); - FX_FREE_STR(&v_1236); - if (t_28) { - _fx_free_N14C_form__ctyp_t(&t_28); + FX_FREE_STR(&v_1225); + FX_FREE_STR(&v_1224); + if (t_27) { + _fx_free_N14C_form__ctyp_t(&t_27); } if (src_exp_5) { _fx_free_N14C_form__cexp_t(&src_exp_5); } - _fx_free_T2N14C_form__cexp_tN14C_form__ctyp_t(&v_1235); + _fx_free_T2N14C_form__cexp_tN14C_form__ctyp_t(&v_1223); if (src_exp_4) { _fx_free_N14C_form__cexp_t(&src_exp_4); } - if (ccode_202) { - _fx_free_LN15C_form__cstmt_t(&ccode_202); - } FX_FREE_LIST_SIMPLE(&flags_5); - if (t_27) { - _fx_free_N14C_form__ctyp_t(&t_27); + if (t_26) { + _fx_free_N14C_form__ctyp_t(&t_26); } FX_CHECK_EXN(_fx_catch_251); } - FX_COPY_PTR(__fold_result___25, &ccode_201); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(ret_ccode_2, ccode_201, - &v_1223, 0), _fx_catch_251); - FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(v_1223, &new_body_0, 0), _fx_catch_251); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(ret_ccode_2, ccode_158, + &v_1211, 0), _fx_catch_251); + FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(v_1211, &new_body_0, 0), _fx_catch_251); _fx_catch_251: ; - if (v_1223) { - _fx_free_LN15C_form__cstmt_t(&v_1223); + if (v_1211) { + _fx_free_LN15C_form__cstmt_t(&v_1211); } - if (ccode_201) { - _fx_free_LN15C_form__cstmt_t(&ccode_201); + if (ccode_158) { + _fx_free_LN15C_form__cstmt_t(&ccode_158); } - if (__fold_result___25) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___25); + if (ccode_157) { + _fx_free_LN15C_form__cstmt_t(&ccode_157); } - if (ccode_200) { - _fx_free_LN15C_form__cstmt_t(&ccode_200); - } - if (v_1222) { - _fx_free_N15C_form__cstmt_t(&v_1222); + if (v_1210) { + _fx_free_N15C_form__cstmt_t(&v_1210); } if (ret_ccode_2) { _fx_free_LN15C_form__cstmt_t(&ret_ccode_2); } - if (v_1221) { - _fx_free_N15C_form__cstmt_t(&v_1221); + if (v_1209) { + _fx_free_N15C_form__cstmt_t(&v_1209); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_1220); - if (v_1219) { - _fx_free_N14C_form__cexp_t(&v_1219); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1208); + if (v_1207) { + _fx_free_N14C_form__cexp_t(&v_1207); } if (fcv_exp_0) { _fx_free_N14C_form__cexp_t(&fcv_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1218); - _fx_free_R16Ast__val_flags_t(&v_1217); - if (v_1216) { - _fx_free_N14C_form__ctyp_t(&v_1216); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_1206); + _fx_free_R16Ast__val_flags_t(&v_1205); + if (v_1204) { + _fx_free_N14C_form__ctyp_t(&v_1204); } if (alloc_fcv_0) { _fx_free_N14C_form__cexp_t(&alloc_fcv_0); } - if (v_1215) { - _fx_free_LN14C_form__cexp_t(&v_1215); + if (v_1203) { + _fx_free_LN14C_form__cexp_t(&v_1203); } - if (v_1214) { - _fx_free_N14C_form__cexp_t(&v_1214); + if (v_1202) { + _fx_free_N14C_form__cexp_t(&v_1202); } - if (v_1213) { - _fx_free_N14C_form__cexp_t(&v_1213); + if (v_1201) { + _fx_free_N14C_form__cexp_t(&v_1201); } if (free_f_exp_4) { _fx_free_N14C_form__cexp_t(&free_f_exp_4); } - _fx_free_T2BNt6option1N14C_form__cexp_t(&v_1212); + _fx_free_T2BNt6option1N14C_form__cexp_t(&v_1200); if (fcv_t_0) { _fx_free_N14C_form__ctyp_t(&fcv_t_0); } - _fx_free_N15K_form__kinfo_t(&v_1211); + _fx_free_N15K_form__kinfo_t(&v_1199); goto _fx_endmatch_48; } if (ctor_0.tag == 5) { - _fx_N15C_form__cinfo_t v_1239 = {0}; - _fx_T5N14C_form__ctyp_tR9Ast__id_tBR9Ast__id_tR9Ast__id_t v_1240 = {0}; + _fx_N15C_form__cinfo_t v_1227 = {0}; + _fx_T5N14C_form__ctyp_tR9Ast__id_tBR9Ast__id_tR9Ast__id_t v_1228 = {0}; _fx_N14C_form__ctyp_t exn_typ_0 = 0; _fx_N14C_form__ctyp_t exn_data_t_0 = 0; - _fx_N14C_form__cexp_t v_1241 = 0; - _fx_N14C_form__cexp_t v_1242 = 0; - _fx_N14C_form__cexp_t v_1243 = 0; - _fx_LN14C_form__cexp_t v_1244 = 0; + _fx_N14C_form__cexp_t v_1229 = 0; + _fx_N14C_form__cexp_t v_1230 = 0; + _fx_N14C_form__cexp_t v_1231 = 0; + _fx_LN14C_form__cexp_t v_1232 = 0; _fx_N14C_form__cexp_t alloc_exn_data_0 = 0; - _fx_N14C_form__cexp_t v_1245 = 0; - _fx_Nt6option1N14C_form__cexp_t v_1246 = {0}; - _fx_N15C_form__cstmt_t v_1247 = 0; + _fx_N14C_form__cexp_t v_1233 = 0; + _fx_Nt6option1N14C_form__cexp_t v_1234 = {0}; + _fx_N15C_form__cstmt_t v_1235 = 0; _fx_LN15C_form__cstmt_t ret_ccode_3 = 0; - _fx_N14C_form__ctyp_t v_1248 = 0; + _fx_N14C_form__ctyp_t v_1236 = 0; _fx_N14C_form__cexp_t exn_data_2 = 0; _fx_N14C_form__cexp_t dst_exp_21 = 0; - _fx_N15C_form__cstmt_t v_1249 = 0; - _fx_LN15C_form__cstmt_t ccode_203 = 0; - _fx_LN15C_form__cstmt_t __fold_result___26 = 0; - _fx_LN15C_form__cstmt_t ccode_204 = 0; - _fx_LN15C_form__cstmt_t v_1250 = 0; + _fx_N15C_form__cstmt_t v_1237 = 0; + _fx_LN15C_form__cstmt_t ccode_159 = 0; + _fx_LN15C_form__cstmt_t ccode_160 = 0; + _fx_LN15C_form__cstmt_t v_1238 = 0; _fx_R9Ast__id_t* exn_id_0 = &ctor_0.u.CtorExn; - FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(exn_id_0, &kf_loc_0, &v_1239, 0), + FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(exn_id_0, &kf_loc_0, &v_1227, 0), _fx_catch_254); - if (v_1239.tag == 5) { - _fx_R17C_form__cdefexn_t v_1251 = {0}; - _fx_copy_R17C_form__cdefexn_t(&v_1239.u.CExn->data, &v_1251); - _fx_make_T5N14C_form__ctyp_tR9Ast__id_tBR9Ast__id_tR9Ast__id_t(v_1251.cexn_typ, &v_1251.cexn_tag, v_1251.cexn_std, - &v_1251.cexn_data, &v_1251.cexn_info, &v_1240); - _fx_free_R17C_form__cdefexn_t(&v_1251); + if (v_1227.tag == 5) { + _fx_R17C_form__cdefexn_t v_1239 = {0}; + _fx_copy_R17C_form__cdefexn_t(&v_1227.u.CExn->data, &v_1239); + _fx_make_T5N14C_form__ctyp_tR9Ast__id_tBR9Ast__id_tR9Ast__id_t(v_1239.cexn_typ, &v_1239.cexn_tag, v_1239.cexn_std, + &v_1239.cexn_data, &v_1239.cexn_info, &v_1228); + _fx_free_R17C_form__cdefexn_t(&v_1239); } else { - fx_str_t v_1252 = {0}; - fx_str_t v_1253 = {0}; - fx_str_t v_1254 = {0}; - fx_exn_t v_1255 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(exn_id_0, &kf_loc_0, &v_1252, 0), _fx_catch_252); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1252, &v_1253, 0), _fx_catch_252); + fx_str_t v_1240 = {0}; + fx_str_t v_1241 = {0}; + fx_str_t v_1242 = {0}; + fx_exn_t v_1243 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(exn_id_0, &kf_loc_0, &v_1240, 0), _fx_catch_252); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1240, &v_1241, 0), _fx_catch_252); fx_str_t slit_261 = FX_MAKE_STR("cgen: constructor of exception \'"); fx_str_t slit_262 = FX_MAKE_STR("\' is expecting converted KExn=>CExn structure"); { - const fx_str_t strs_43[] = { slit_261, v_1253, slit_262 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_43, 3, &v_1254), _fx_catch_252); + const fx_str_t strs_42[] = { slit_261, v_1241, slit_262 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_42, 3, &v_1242), _fx_catch_252); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1254, &v_1255, 0), _fx_catch_252); - FX_THROW(&v_1255, false, _fx_catch_252); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_1242, &v_1243, 0), _fx_catch_252); + FX_THROW(&v_1243, false, _fx_catch_252); _fx_catch_252: ; - fx_free_exn(&v_1255); - FX_FREE_STR(&v_1254); - FX_FREE_STR(&v_1253); - FX_FREE_STR(&v_1252); + fx_free_exn(&v_1243); + FX_FREE_STR(&v_1242); + FX_FREE_STR(&v_1241); + FX_FREE_STR(&v_1240); } FX_CHECK_EXN(_fx_catch_254); - FX_COPY_PTR(v_1240.t0, &exn_typ_0); - _fx_R9Ast__id_t exn_tag_0 = v_1240.t1; - bool exn_std_0 = v_1240.t2; - _fx_R9Ast__id_t exn_data_id_0 = v_1240.t3; - _fx_R9Ast__id_t exn_info_0 = v_1240.t4; + FX_COPY_PTR(v_1228.t0, &exn_typ_0); + _fx_R9Ast__id_t exn_tag_0 = v_1228.t1; + bool exn_std_0 = v_1228.t2; + _fx_R9Ast__id_t exn_data_id_0 = v_1228.t3; + _fx_R9Ast__id_t exn_info_0 = v_1228.t4; if (exn_std_0) { FX_COPY_PTR(ccode_0, &new_body_0); } @@ -34656,140 +33893,131 @@ static int FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&exn_data_id_0, &exn_data_t_0), _fx_catch_254); FX_CALL( _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&exn_tag_0, - _fx_g20C_gen_code__CTypCInt, &kf_loc_0, &v_1241, 0), _fx_catch_254); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(exn_data_t_0, &kf_loc_0, &v_1242), + _fx_g20C_gen_code__CTypCInt, &kf_loc_0, &v_1229, 0), _fx_catch_254); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(exn_data_t_0, &kf_loc_0, &v_1230), _fx_catch_254); FX_CALL( _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&exn_info_0, - _fx_g25C_form__std_fx_exn_info_t, &kf_loc_0, &v_1243, 0), _fx_catch_254); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1243, 0, true, &v_1244), _fx_catch_254); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1242, v_1244, false, &v_1244), _fx_catch_254); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1241, v_1244, false, &v_1244), _fx_catch_254); + _fx_g25C_form__std_fx_exn_info_t, &kf_loc_0, &v_1231, 0), _fx_catch_254); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1231, 0, true, &v_1232), _fx_catch_254); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1230, v_1232, false, &v_1232), _fx_catch_254); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_1229, v_1232, false, &v_1232), _fx_catch_254); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g34C_form__std_FX_MAKE_EXN_IMPL_START, v_1244, _fx_g20C_gen_code__CTypVoid, &kf_loc_0, &alloc_exn_data_0, + &_fx_g34C_form__std_FX_MAKE_EXN_IMPL_START, v_1232, _fx_g20C_gen_code__CTypVoid, &kf_loc_0, &alloc_exn_data_0, 0), _fx_catch_254); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kf_loc_0, &v_1245, 0), _fx_catch_254); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1245, &v_1246); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kf_loc_0, &v_1233, 0), _fx_catch_254); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_1233, &v_1234); FX_CALL( - _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1246, &kf_loc_0, - &v_1247), _fx_catch_254); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1247, 0, true, &ret_ccode_3), _fx_catch_254); - _fx_R9Ast__id_t v_1256; + _fx_M6C_formFM11CStmtReturnN15C_form__cstmt_t2Nt6option1N14C_form__cexp_tR10Ast__loc_t(&v_1234, &kf_loc_0, + &v_1235), _fx_catch_254); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1235, 0, true, &ret_ccode_3), _fx_catch_254); + _fx_R9Ast__id_t v_1244; fx_str_t slit_263 = FX_MAKE_STR("exn_data"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_263, &v_1256, 0), _fx_catch_254); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(exn_data_t_0, &v_1248, 0), _fx_catch_254); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_263, &v_1244, 0), _fx_catch_254); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(exn_data_t_0, &v_1236, 0), _fx_catch_254); FX_CALL( - _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&v_1256, v_1248, + _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&v_1244, v_1236, &kf_loc_0, &exn_data_2, 0), _fx_catch_254); - _fx_R9Ast__id_t v_1257; + _fx_R9Ast__id_t v_1245; fx_str_t slit_264 = FX_MAKE_STR("data"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_264, &v_1257, 0), _fx_catch_254); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_264, &v_1245, 0), _fx_catch_254); FX_CALL( - _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(exn_data_2, &v_1257, + _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(exn_data_2, &v_1245, exn_typ_0, &dst_exp_21, 0), _fx_catch_254); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(alloc_exn_data_0, &v_1249), _fx_catch_254); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1249, 0, true, &ccode_203), _fx_catch_254); - FX_COPY_PTR(ccode_203, &__fold_result___26); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(alloc_exn_data_0, &v_1237), _fx_catch_254); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_1237, 0, true, &ccode_159), _fx_catch_254); + FX_COPY_PTR(ccode_159, &ccode_160); int_ idx_4 = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t lst_32 = real_args_0; for (; lst_32; lst_32 = lst_32->tl, idx_4 += 1) { - _fx_N14C_form__ctyp_t t_29 = 0; + _fx_N14C_form__ctyp_t t_28 = 0; _fx_LN19C_form__carg_attr_t flags_6 = 0; - _fx_LN15C_form__cstmt_t ccode_205 = 0; _fx_N14C_form__cexp_t src_exp_6 = 0; - _fx_T2N14C_form__cexp_tN14C_form__ctyp_t v_1258 = {0}; + _fx_T2N14C_form__cexp_tN14C_form__ctyp_t v_1246 = {0}; _fx_N14C_form__cexp_t src_exp_7 = 0; - _fx_N14C_form__ctyp_t t_30 = 0; + _fx_N14C_form__ctyp_t t_29 = 0; _fx_N14C_form__cexp_t dst_exp_22 = 0; - fx_str_t v_1259 = {0}; - fx_str_t v_1260 = {0}; - _fx_LN15C_form__cstmt_t v_1261 = 0; + fx_str_t v_1247 = {0}; + fx_str_t v_1248 = {0}; + _fx_LN15C_form__cstmt_t v_1249 = 0; _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* __pat___14 = &lst_32->hd; _fx_R9Ast__id_t a_15 = __pat___14->t0; - FX_COPY_PTR(__pat___14->t1, &t_29); + FX_COPY_PTR(__pat___14->t1, &t_28); FX_COPY_PTR(__pat___14->t2, &flags_6); - FX_COPY_PTR(__fold_result___26, &ccode_205); FX_CALL( - _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&a_15, t_29, + _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&a_15, t_28, &kf_loc_0, &src_exp_6, 0), _fx_catch_253); FX_CALL( _fx_M10C_gen_codeFM19maybe_deref_fun_argT2N14C_form__cexp_tN14C_form__ctyp_t5iN14C_form__cexp_tN14C_form__ctyp_tLN19C_form__carg_attr_tR10Ast__loc_t( - idx_4, src_exp_6, t_29, flags_6, &kf_loc_0, &v_1258, 0), _fx_catch_253); - FX_COPY_PTR(v_1258.t0, &src_exp_7); - FX_COPY_PTR(v_1258.t1, &t_30); + idx_4, src_exp_6, t_28, flags_6, &kf_loc_0, &v_1246, 0), _fx_catch_253); + FX_COPY_PTR(v_1246.t0, &src_exp_7); + FX_COPY_PTR(v_1246.t1, &t_29); if (nreal_args_0 == 1) { FX_COPY_PTR(dst_exp_21, &dst_exp_22); } else { - FX_CALL(_fx_F6stringS1i(idx_4, &v_1259, 0), _fx_catch_253); + FX_CALL(_fx_F6stringS1i(idx_4, &v_1247, 0), _fx_catch_253); fx_str_t slit_265 = FX_MAKE_STR("t"); { - const fx_str_t strs_44[] = { slit_265, v_1259 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_44, 2, &v_1260), _fx_catch_253); + const fx_str_t strs_43[] = { slit_265, v_1247 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_43, 2, &v_1248), _fx_catch_253); } _fx_R9Ast__id_t t_elem_0; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_1260, &t_elem_0, 0), _fx_catch_253); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_1248, &t_elem_0, 0), _fx_catch_253); FX_CALL( _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(dst_exp_21, - &t_elem_0, t_30, &dst_exp_22, 0), _fx_catch_253); + &t_elem_0, t_29, &dst_exp_22, 0), _fx_catch_253); } FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - src_exp_7, dst_exp_22, t_30, ccode_205, &kf_loc_0, &v_1261, 0), _fx_catch_253); - _fx_free_LN15C_form__cstmt_t(&__fold_result___26); - FX_COPY_PTR(v_1261, &__fold_result___26); + src_exp_7, dst_exp_22, t_29, ccode_160, &kf_loc_0, &v_1249, 0), _fx_catch_253); + _fx_free_LN15C_form__cstmt_t(&ccode_160); + FX_COPY_PTR(v_1249, &ccode_160); _fx_catch_253: ; - if (v_1261) { - _fx_free_LN15C_form__cstmt_t(&v_1261); + if (v_1249) { + _fx_free_LN15C_form__cstmt_t(&v_1249); } - FX_FREE_STR(&v_1260); - FX_FREE_STR(&v_1259); + FX_FREE_STR(&v_1248); + FX_FREE_STR(&v_1247); if (dst_exp_22) { _fx_free_N14C_form__cexp_t(&dst_exp_22); } - if (t_30) { - _fx_free_N14C_form__ctyp_t(&t_30); + if (t_29) { + _fx_free_N14C_form__ctyp_t(&t_29); } if (src_exp_7) { _fx_free_N14C_form__cexp_t(&src_exp_7); } - _fx_free_T2N14C_form__cexp_tN14C_form__ctyp_t(&v_1258); + _fx_free_T2N14C_form__cexp_tN14C_form__ctyp_t(&v_1246); if (src_exp_6) { _fx_free_N14C_form__cexp_t(&src_exp_6); } - if (ccode_205) { - _fx_free_LN15C_form__cstmt_t(&ccode_205); - } FX_FREE_LIST_SIMPLE(&flags_6); - if (t_29) { - _fx_free_N14C_form__ctyp_t(&t_29); + if (t_28) { + _fx_free_N14C_form__ctyp_t(&t_28); } FX_CHECK_EXN(_fx_catch_254); } - FX_COPY_PTR(__fold_result___26, &ccode_204); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(ret_ccode_3, ccode_204, - &v_1250, 0), _fx_catch_254); - FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(v_1250, &new_body_0, 0), _fx_catch_254); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(ret_ccode_3, ccode_160, + &v_1238, 0), _fx_catch_254); + FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(v_1238, &new_body_0, 0), _fx_catch_254); } _fx_catch_254: ; - if (v_1250) { - _fx_free_LN15C_form__cstmt_t(&v_1250); + if (v_1238) { + _fx_free_LN15C_form__cstmt_t(&v_1238); } - if (ccode_204) { - _fx_free_LN15C_form__cstmt_t(&ccode_204); + if (ccode_160) { + _fx_free_LN15C_form__cstmt_t(&ccode_160); } - if (__fold_result___26) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___26); + if (ccode_159) { + _fx_free_LN15C_form__cstmt_t(&ccode_159); } - if (ccode_203) { - _fx_free_LN15C_form__cstmt_t(&ccode_203); - } - if (v_1249) { - _fx_free_N15C_form__cstmt_t(&v_1249); + if (v_1237) { + _fx_free_N15C_form__cstmt_t(&v_1237); } if (dst_exp_21) { _fx_free_N14C_form__cexp_t(&dst_exp_21); @@ -34797,33 +34025,33 @@ static int if (exn_data_2) { _fx_free_N14C_form__cexp_t(&exn_data_2); } - if (v_1248) { - _fx_free_N14C_form__ctyp_t(&v_1248); + if (v_1236) { + _fx_free_N14C_form__ctyp_t(&v_1236); } if (ret_ccode_3) { _fx_free_LN15C_form__cstmt_t(&ret_ccode_3); } - if (v_1247) { - _fx_free_N15C_form__cstmt_t(&v_1247); + if (v_1235) { + _fx_free_N15C_form__cstmt_t(&v_1235); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_1246); - if (v_1245) { - _fx_free_N14C_form__cexp_t(&v_1245); + _fx_free_Nt6option1N14C_form__cexp_t(&v_1234); + if (v_1233) { + _fx_free_N14C_form__cexp_t(&v_1233); } if (alloc_exn_data_0) { _fx_free_N14C_form__cexp_t(&alloc_exn_data_0); } - if (v_1244) { - _fx_free_LN14C_form__cexp_t(&v_1244); + if (v_1232) { + _fx_free_LN14C_form__cexp_t(&v_1232); } - if (v_1243) { - _fx_free_N14C_form__cexp_t(&v_1243); + if (v_1231) { + _fx_free_N14C_form__cexp_t(&v_1231); } - if (v_1242) { - _fx_free_N14C_form__cexp_t(&v_1242); + if (v_1230) { + _fx_free_N14C_form__cexp_t(&v_1230); } - if (v_1241) { - _fx_free_N14C_form__cexp_t(&v_1241); + if (v_1229) { + _fx_free_N14C_form__cexp_t(&v_1229); } if (exn_data_t_0) { _fx_free_N14C_form__ctyp_t(&exn_data_t_0); @@ -34831,56 +34059,58 @@ static int if (exn_typ_0) { _fx_free_N14C_form__ctyp_t(&exn_typ_0); } - _fx_free_T5N14C_form__ctyp_tR9Ast__id_tBR9Ast__id_tR9Ast__id_t(&v_1240); - _fx_free_N15C_form__cinfo_t(&v_1239); + _fx_free_T5N14C_form__ctyp_tR9Ast__id_tBR9Ast__id_tR9Ast__id_t(&v_1228); + _fx_free_N15C_form__cinfo_t(&v_1227); goto _fx_endmatch_48; } - fx_str_t v_1262 = {0}; - fx_str_t v_1263 = {0}; - fx_str_t v_1264 = {0}; - fx_str_t v_1265 = {0}; - fx_exn_t v_1266 = {0}; - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&kf_cname_0, &v_1262, 0), _fx_catch_255); - FX_CALL(_fx_M3AstFM8ctor2strS1N17Ast__fun_constr_t(&ctor_0, &v_1263, 0), _fx_catch_255); - FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1263, &v_1264, 0), _fx_catch_255); + fx_str_t v_1250 = {0}; + fx_str_t v_1251 = {0}; + fx_str_t v_1252 = {0}; + fx_str_t v_1253 = {0}; + fx_exn_t v_1254 = {0}; + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&kf_cname_0, &v_1250, 0), _fx_catch_255); + FX_CALL(_fx_M3AstFM8ctor2strS1N17Ast__fun_constr_t(&ctor_0, &v_1251, 0), _fx_catch_255); + FX_CALL(_fx_M10C_gen_codeFM6stringS1S(&v_1251, &v_1252, 0), _fx_catch_255); fx_str_t slit_266 = FX_MAKE_STR("cgen: unsupported type of constructor "); fx_str_t slit_267 = FX_MAKE_STR(": "); { - const fx_str_t strs_45[] = { slit_266, v_1262, slit_267, v_1264 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_45, 4, &v_1265), _fx_catch_255); + const fx_str_t strs_44[] = { slit_266, v_1250, slit_267, v_1252 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_44, 4, &v_1253), _fx_catch_255); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_1265, &v_1266, 0), _fx_catch_255); - FX_THROW(&v_1266, false, _fx_catch_255); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kloc_0, &v_1253, &v_1254, 0), _fx_catch_255); + FX_THROW(&v_1254, false, _fx_catch_255); _fx_catch_255: ; - fx_free_exn(&v_1266); - FX_FREE_STR(&v_1265); - FX_FREE_STR(&v_1264); - FX_FREE_STR(&v_1263); - FX_FREE_STR(&v_1262); + fx_free_exn(&v_1254); + FX_FREE_STR(&v_1253); + FX_FREE_STR(&v_1252); + FX_FREE_STR(&v_1251); + FX_FREE_STR(&v_1250); _fx_endmatch_48: ; FX_CHECK_EXN(_fx_catch_256); FX_CALL(_fx_M10C_gen_codeFM13pop_block_ctxv2R10Ast__loc_trLrRM11block_ctx_t(&kloc_0, block_stack_ref_0, 0), _fx_catch_256); - _fx_R16Ast__fun_flags_t* v_1267 = &cf_0->data.cf_flags; + _fx_R17C_form__cdeffun_t* v_1255 = &cf_0->data; + _fx_R16Ast__fun_flags_t* v_1256 = &v_1255->cf_flags; + bool v_1257 = really_nothrow_0->data; _fx_R16Ast__fun_flags_t new_cf_flags_0 = - { v_1267->fun_flag_pure, v_1267->fun_flag_ccode, v_1267->fun_flag_have_keywords, v_1267->fun_flag_inline, - v_1267->fun_flag_nothrow, really_nothrow_0->data, v_1267->fun_flag_private, v_1267->fun_flag_ctor, - v_1267->fun_flag_method_of, v_1267->fun_flag_uses_fv, v_1267->fun_flag_recursive, v_1267->fun_flag_instance }; - _fx_R17C_form__cdeffun_t* v_1268 = &cf_0->data; - FX_CALL(_fx_M6C_formFM15filter_out_nopsLN15C_form__cstmt_t1LN15C_form__cstmt_t(new_body_0, &v_1120, 0), _fx_catch_256); - _fx_make_R17C_form__cdeffun_t(&v_1268->cf_name, &v_1268->cf_cname, v_1268->cf_args, v_1268->cf_rt, v_1120, - &new_cf_flags_0, v_1268->cf_scope, &v_1268->cf_loc, &v_1121); - _fx_R17C_form__cdeffun_t* v_1269 = &cf_0->data; - _fx_free_R17C_form__cdeffun_t(v_1269); - _fx_copy_R17C_form__cdeffun_t(&v_1121, v_1269); + { v_1256->fun_flag_pure, v_1256->fun_flag_ccode, v_1256->fun_flag_have_keywords, v_1256->fun_flag_inline, + v_1256->fun_flag_nothrow, v_1257, v_1256->fun_flag_private, v_1256->fun_flag_ctor, v_1256->fun_flag_method_of, + v_1256->fun_flag_uses_fv, v_1256->fun_flag_recursive, v_1256->fun_flag_instance }; + _fx_R17C_form__cdeffun_t* v_1258 = &cf_0->data; + FX_CALL(_fx_M6C_formFM15filter_out_nopsLN15C_form__cstmt_t1LN15C_form__cstmt_t(new_body_0, &v_1105, 0), _fx_catch_256); + _fx_make_R17C_form__cdeffun_t(&v_1258->cf_name, &v_1258->cf_cname, v_1258->cf_args, v_1258->cf_rt, v_1105, + &new_cf_flags_0, v_1258->cf_scope, &v_1258->cf_loc, &v_1106); + _fx_R17C_form__cdeffun_t* v_1259 = &cf_0->data; + _fx_free_R17C_form__cdeffun_t(v_1259); + _fx_copy_R17C_form__cdeffun_t(&v_1106, v_1259); _fx_make_T3BN14C_form__cexp_tLN15C_form__cstmt_t(false, dummy_exp_0, ccode_0, &v_1); _fx_catch_256: ; - _fx_free_R17C_form__cdeffun_t(&v_1121); - if (v_1120) { - _fx_free_LN15C_form__cstmt_t(&v_1120); + _fx_free_R17C_form__cdeffun_t(&v_1106); + if (v_1105) { + _fx_free_LN15C_form__cstmt_t(&v_1105); } if (new_body_0) { _fx_free_LN15C_form__cstmt_t(&new_body_0); @@ -34889,18 +34119,18 @@ static int if (real_args_0) { _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&real_args_0); } - _fx_free_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB(&v_1119); + _fx_free_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tR9Ast__id_tN14C_form__ctyp_tB(&v_1104); if (cf_0) { _fx_free_rR17C_form__cdeffun_t(&cf_0); } if (rt_0) { _fx_free_N14C_form__ctyp_t(&rt_0); } - if (args_17) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&args_17); + if (args_13) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&args_13); } - _fx_free_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__ctyp_tBrR17C_form__cdeffun_t(&v_1118); - _fx_free_N15C_form__cinfo_t(&v_1117); + _fx_free_T4LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__ctyp_tBrR17C_form__cdeffun_t(&v_1103); + _fx_free_N15C_form__cinfo_t(&v_1102); if (kf_rt_0) { _fx_free_N14K_form__ktyp_t(&kf_rt_0); } @@ -34932,32 +34162,32 @@ _fx_endmatch_49: ; bool assign_0 = v_1.t0; FX_COPY_PTR(v_1.t1, &result_exp_0); FX_COPY_PTR(v_1.t2, &ccode_1); - bool t_31; + bool t_30; if (!assign_0) { - t_31 = true; + t_30 = true; } else { - t_31 = FX_REC_VARIANT_TAG(ctyp_0) == 8; + t_30 = FX_REC_VARIANT_TAG(ctyp_0) == 8; } - if (t_31) { + if (t_30) { _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(result_exp_0, ccode_1, fx_result); } else { _fx_copy_Nt6option1N14C_form__cexp_t(&dstexp_r_0->data, &v_2); if (v_2.tag == 2) { - _fx_LN15C_form__cstmt_t ccode_206 = 0; + _fx_LN15C_form__cstmt_t ccode_161 = 0; _fx_N14C_form__cexp_t dst_exp_23 = v_2.u.Some; bool skip_copy_0; if (FX_REC_VARIANT_TAG(result_exp_0) == 2) { if (result_exp_0->u.CExpLit.t0.tag == 8) { - _fx_R17C_form__ctprops_t v_1270 = {0}; + _fx_R17C_form__ctprops_t v_1260 = {0}; FX_CALL( - _fx_M11C_gen_typesFM11get_ctpropsR17C_form__ctprops_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_1270, + _fx_M11C_gen_typesFM11get_ctpropsR17C_form__ctprops_t2N14C_form__ctyp_tR10Ast__loc_t(ctyp_0, &kloc_0, &v_1260, 0), _fx_catch_257); - skip_copy_0 = v_1270.ctp_ptr; + skip_copy_0 = v_1260.ctp_ptr; _fx_catch_257: ; - _fx_free_R17C_form__ctprops_t(&v_1270); + _fx_free_R17C_form__ctprops_t(&v_1260); goto _fx_endmatch_50; } } @@ -34966,18 +34196,18 @@ _fx_endmatch_49: ; _fx_endmatch_50: ; FX_CHECK_EXN(_fx_catch_258); if (skip_copy_0) { - FX_COPY_PTR(ccode_1, &ccode_206); + FX_COPY_PTR(ccode_1, &ccode_161); } else { FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - result_exp_0, dst_exp_23, ctyp_0, ccode_1, &kloc_0, &ccode_206, 0), _fx_catch_258); + result_exp_0, dst_exp_23, ctyp_0, ccode_1, &kloc_0, &ccode_161, 0), _fx_catch_258); } - _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(dst_exp_23, ccode_206, fx_result); + _fx_make_T2N14C_form__cexp_tLN15C_form__cstmt_t(dst_exp_23, ccode_161, fx_result); _fx_catch_258: ; - if (ccode_206) { - _fx_free_LN15C_form__cstmt_t(&ccode_206); + if (ccode_161) { + _fx_free_LN15C_form__cstmt_t(&ccode_161); } } else { @@ -35216,17 +34446,17 @@ static int _fx_M10C_gen_codeFM16check_range_elemB3N14K_form__atom_tNt10Hashset__ bool v_0; FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(k_0, kloc_0, &v_0, 0), _fx_catch_0); if (!v_0) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_1; FX_CALL( _fx_M10C_gen_codeFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(decl_inside_for_0, k_0, - __fold_result___0 & 9223372036854775807ULL, &v_1, 0), _fx_catch_0); + h_0 & 9223372036854775807ULL, &v_1, 0), _fx_catch_0); *fx_result = !(v_1.t1 >= 0); } else { @@ -35242,7 +34472,7 @@ static int _fx_M10C_gen_codeFM16check_range_elemB3N14K_form__atom_tNt10Hashset__ } static int - _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB( + _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB( struct _fx_LN15C_form__cstmt_t_data_t* pre_map_ccode_0, int_ for_idx_0, struct _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t_data_t* e_idoml_l_0, @@ -35267,7 +34497,7 @@ static int struct _fx_N14C_form__cexp_t_data_t* map_lbl_0, struct _fx_LN12Ast__scope_t_data_t* mod_sc_0, struct _fx_rLN15C_form__cstmt_t_data_t* module_cleanup_ref_0, - int_ ndims_0, + struct _fx_ri_data_t* ndims_ref_0, bool need_make_array_0, struct _fx_N14C_form__cexp_t_data_t* nested_status_0, int_ nfors_0, @@ -35312,50 +34542,47 @@ static int _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_5 = {0}; _fx_N14C_form__cexp_t dst_exp0_0 = 0; _fx_LN15C_form__cstmt_t alloc_array_ccode_0 = 0; - _fx_T2iLN14C_form__cexp_t __fold_result___0 = {0}; - _fx_T2iLN14C_form__cexp_t v_6 = {0}; _fx_LN14C_form__cexp_t cmp_size_list_0 = 0; + _fx_LN14C_form__cexp_t cmp_size_list_1 = 0; _fx_N14C_form__cexp_t lbl_1 = 0; - _fx_LN15C_form__cstmt_t __fold_result___1 = 0; _fx_LN15C_form__cstmt_t then_ccode_0 = 0; _fx_N14C_form__cexp_t cc_exp_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_7 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_6 = {0}; _fx_N14C_form__cexp_t cc_exp_1 = 0; _fx_LN15C_form__cstmt_t else_ccode_0 = 0; + _fx_N15C_form__cstmt_t v_7 = 0; _fx_N15C_form__cstmt_t v_8 = 0; - _fx_N15C_form__cstmt_t v_9 = 0; _fx_N15C_form__cstmt_t check_or_create_0 = 0; - _fx_Ta2LN15C_form__cstmt_t v_10 = {0}; + _fx_Ta2LN15C_form__cstmt_t v_9 = {0}; + _fx_LN15C_form__cstmt_t v_10 = 0; _fx_LN15C_form__cstmt_t v_11 = 0; _fx_LN15C_form__cstmt_t v_12 = 0; _fx_LN15C_form__cstmt_t v_13 = 0; _fx_LN15C_form__cstmt_t v_14 = 0; _fx_LN15C_form__cstmt_t v_15 = 0; - _fx_LN15C_form__cstmt_t v_16 = 0; _fx_LN15C_form__cstmt_t pre_map_ccode_1 = 0; _fx_LN15C_form__cstmt_t init_ccode_1 = 0; _fx_LN15C_form__cstmt_t body_ccode_0 = 0; _fx_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tTa2LN15C_form__cstmt_t - v_17 = {0}; + v_16 = {0}; _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t dst_data_1 = 0; _fx_LN15C_form__cstmt_t pre_body_ccode_1 = 0; _fx_LN15C_form__cstmt_t pre_map_ccode_2 = 0; _fx_LN15C_form__cstmt_t body_ccode_1 = 0; - _fx_T2R9Ast__id_tN15C_form__cstmt_t v_18 = {0}; + _fx_T2R9Ast__id_tN15C_form__cstmt_t v_17 = {0}; _fx_N15C_form__cstmt_t body_stmt_0 = 0; - _fx_LN15C_form__cstmt_t v_19 = 0; - _fx_LN15C_form__cstmt_t __fold_result___2 = 0; - _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_20 = 0; - _fx_LN15C_form__cstmt_t for_ccode_0 = 0; + _fx_LN15C_form__cstmt_t v_18 = 0; + _fx_LN15C_form__cstmt_t acc_for_ccode_0 = 0; + _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t v_19 = 0; _fx_LN15C_form__cstmt_t post_ccode_1 = 0; - _fx_N15C_form__cstmt_t v_21 = 0; + _fx_N15C_form__cstmt_t v_20 = 0; + _fx_LN15C_form__cstmt_t v_21 = 0; _fx_LN15C_form__cstmt_t v_22 = 0; - _fx_LN15C_form__cstmt_t v_23 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); - _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB_cldata_t* + _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB_cldata_t* cv_0 = - (_fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB_cldata_t*) + (_fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB_cldata_t*) fx_fv; _fx_rLrR23C_gen_code__block_ctx_t block_stack_ref_1 = cv_0->t0; _fx_rNt10Hashset__t1R9Ast__id_t defined_syms_ref_1 = cv_0->t1; @@ -35366,19 +34593,20 @@ static int block_stack_ref_1, defined_syms_ref_1, fwd_fdecls_ref_1, i2e_ref_1, *km_idx_1, &kexp2cexp_0); _fx_M10C_gen_codeFM7make_fpFPT8LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN15C_form__cstmt_t16N14C_form__cexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tiiiiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_tLSrLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti5rLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( block_stack_ref_1, defined_syms_ref_1, fwd_fdecls_ref_1, i2e_ref_1, *km_idx_1, &process_for_0); + int_* ndims_0 = &ndims_ref_0->data; if (e_idoml_l_0 != 0) { - _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* v_24 = &e_idoml_l_0->hd; + _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* v_23 = &e_idoml_l_0->hd; _fx_make_T4N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t( - v_24->t0, v_24->t1, v_24->t2, e_idoml_l_0->tl, &v_0); + v_23->t0, v_23->t1, v_23->t2, e_idoml_l_0->tl, &v_0); } else { - fx_exn_t v_25 = {0}; + fx_exn_t v_24 = {0}; fx_str_t slit_0 = FX_MAKE_STR("cgen: empty e_idoml_l in KExpMap"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(for_loc_0, &slit_0, &v_25, 0), _fx_catch_0); - FX_THROW(&v_25, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(for_loc_0, &slit_0, &v_24, 0), _fx_catch_0); + FX_THROW(&v_24, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_25); + fx_free_exn(&v_24); } FX_CHECK_EXN(_fx_cleanup); FX_COPY_PTR(v_0.t0, &init_kexp_0); @@ -35408,7 +34636,7 @@ static int _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_trLrRM11block_ctx_t(&nested_loc_1, block_stack_ref_0, &lbl_0, 0), _fx_cleanup); FX_CALL( - process_for_0.fp(lbl_0, idoml_0, at_ids_0, for_idx_0, nfors_0, ndims_0, dims_ofs_0, nested_e_idoml_0, 0, &nested_loc_1, + process_for_0.fp(lbl_0, idoml_0, at_ids_0, for_idx_0, nfors_0, *ndims_0, dims_ofs_0, nested_e_idoml_0, 0, &nested_loc_1, block_stack_ref_0, defined_syms_ref_0, for_letters_0, fwd_fdecls_ref_0, i2e_ref_0, km_idx_0, &v_3, process_for_0.fcv), _fx_cleanup); FX_COPY_PTR(v_3.t0, &for_headers_0); @@ -35420,9 +34648,9 @@ static int FX_COPY_PTR(v_3.t6, &body_elems_0); FX_COPY_PTR(v_3.t7, &post_ccode_0); if (n_exps_0 != 0) { - int_ v_26; - FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14C_form__cexp_t(n_exps_0, &v_26, 0), _fx_catch_1); - _fx_make_T3iLN14C_form__cexp_tLN15C_form__cstmt_t(v_26, n_exps_0, 0, &v_4); + int_ v_25; + FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14C_form__cexp_t(n_exps_0, &v_25, 0), _fx_catch_1); + _fx_make_T3iLN14C_form__cexp_tLN15C_form__cstmt_t(v_25, n_exps_0, 0, &v_4); _fx_catch_1: ; goto _fx_endmatch_0; @@ -35430,36 +34658,36 @@ static int if (need_make_array_0 == true) { if (n_exps_0 == 0) { if (list_exps_0 != 0) { - _fx_LN14C_form__cexp_t v_27 = 0; + _fx_LN14C_form__cexp_t v_26 = 0; _fx_N14C_form__cexp_t call_list_len_0 = 0; - _fx_R16Ast__val_flags_t v_28 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_29 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_30 = {0}; + _fx_R16Ast__val_flags_t v_27 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_28 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_29 = {0}; _fx_N14C_form__cexp_t lstlen_0 = 0; _fx_LN15C_form__cstmt_t lst_len_ccode_1 = 0; - _fx_LN14C_form__cexp_t v_31 = 0; - FX_CALL(_fx_cons_LN14C_form__cexp_t(list_exps_0->hd, 0, true, &v_27), _fx_catch_2); + _fx_LN14C_form__cexp_t v_30 = 0; + FX_CALL(_fx_cons_LN14C_form__cexp_t(list_exps_0->hd, 0, true, &v_26), _fx_catch_2); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g26C_form__std_fx_list_length, v_27, _fx_g19C_gen_code__CTypInt, &nested_loc_1, &call_list_len_0, 0), + &_fx_g26C_form__std_fx_list_length, v_26, _fx_g19C_gen_code__CTypInt, &nested_loc_1, &call_list_len_0, 0), _fx_catch_2); - _fx_R9Ast__id_t v_32; + _fx_R9Ast__id_t v_31; fx_str_t slit_1 = FX_MAKE_STR("len"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_1, &v_32, 0), _fx_catch_2); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_28, 0), _fx_catch_2); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(call_list_len_0, &v_29); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_1, &v_31, 0), _fx_catch_2); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_27, 0), _fx_catch_2); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(call_list_len_0, &v_28); fx_str_t slit_2 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_32, _fx_g19C_gen_code__CTypInt, &v_28, &slit_2, &v_29, 0, &nested_loc_1, &v_30, 0), _fx_catch_2); - FX_COPY_PTR(v_30.t0, &lstlen_0); - FX_COPY_PTR(v_30.t1, &lst_len_ccode_1); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lstlen_0, 0, true, &v_31), _fx_catch_2); - _fx_make_T3iLN14C_form__cexp_tLN15C_form__cstmt_t(1, v_31, lst_len_ccode_1, &v_4); + &v_31, _fx_g19C_gen_code__CTypInt, &v_27, &slit_2, &v_28, 0, &nested_loc_1, &v_29, 0), _fx_catch_2); + FX_COPY_PTR(v_29.t0, &lstlen_0); + FX_COPY_PTR(v_29.t1, &lst_len_ccode_1); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lstlen_0, 0, true, &v_30), _fx_catch_2); + _fx_make_T3iLN14C_form__cexp_tLN15C_form__cstmt_t(1, v_30, lst_len_ccode_1, &v_4); _fx_catch_2: ; - if (v_31) { - _fx_free_LN14C_form__cexp_t(&v_31); + if (v_30) { + _fx_free_LN14C_form__cexp_t(&v_30); } if (lst_len_ccode_1) { _fx_free_LN15C_form__cstmt_t(&lst_len_ccode_1); @@ -35467,14 +34695,14 @@ static int if (lstlen_0) { _fx_free_N14C_form__cexp_t(&lstlen_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_30); - _fx_free_Nt6option1N14C_form__cexp_t(&v_29); - _fx_free_R16Ast__val_flags_t(&v_28); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_29); + _fx_free_Nt6option1N14C_form__cexp_t(&v_28); + _fx_free_R16Ast__val_flags_t(&v_27); if (call_list_len_0) { _fx_free_N14C_form__cexp_t(&call_list_len_0); } - if (v_27) { - _fx_free_LN14C_form__cexp_t(&v_27); + if (v_26) { + _fx_free_LN14C_form__cexp_t(&v_26); } goto _fx_endmatch_0; } @@ -35483,16 +34711,16 @@ static int if (need_make_array_0 == true) { if (n_exps_0 == 0) { if (list_exps_0 == 0) { - fx_str_t v_33 = {0}; - fx_exn_t v_34 = {0}; + fx_str_t v_32 = {0}; + fx_exn_t v_33 = {0}; fx_str_t slit_3 = FX_MAKE_STR("array comprehension uses \'for\' with indefinite range"); - FX_CALL(_fx_M10C_gen_codeFM11for_err_msgS4iiiS(for_idx_0, nfors_0, -1, &slit_3, &v_33, 0), _fx_catch_3); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&nested_loc_1, &v_33, &v_34, 0), _fx_catch_3); - FX_THROW(&v_34, false, _fx_catch_3); + FX_CALL(_fx_M10C_gen_codeFM11for_err_msgS4iiiS(for_idx_0, nfors_0, -1, &slit_3, &v_32, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&nested_loc_1, &v_32, &v_33, 0), _fx_catch_3); + FX_THROW(&v_33, false, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_34); - FX_FREE_STR(&v_33); + fx_free_exn(&v_33); + FX_FREE_STR(&v_32); goto _fx_endmatch_0; } } @@ -35519,64 +34747,56 @@ _fx_endmatch_0: ; t_0 = true; } else { - t_0 = dims_ofs_0 + ndims_i_0 < ndims_0; + t_0 = dims_ofs_0 + ndims_i_0 < *ndims_0; } if (!t_0) { - _fx_make_T2iLN14C_form__cexp_t(0, 0, &__fold_result___0); + int_ k_0 = 0; _fx_LN14C_form__cexp_t lst_0 = n_exps_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_T2iLN14C_form__cexp_t v_35 = {0}; - _fx_LN14C_form__cexp_t cmp_size_list_1 = 0; - _fx_N14C_form__cexp_t v_36 = 0; - _fx_LN14C_form__cexp_t v_37 = 0; + _fx_N14C_form__cexp_t v_34 = 0; + _fx_LN14C_form__cexp_t v_35 = 0; _fx_N14C_form__cexp_t size_i_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_38 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_36 = {0}; _fx_N14C_form__cexp_t cmp_size_i_0 = 0; - _fx_T2iLN14C_form__cexp_t v_39 = {0}; + _fx_LN14C_form__cexp_t v_37 = 0; _fx_N14C_form__cexp_t n_exp_0 = lst_0->hd; - _fx_copy_T2iLN14C_form__cexp_t(&__fold_result___0, &v_35); - int_ k_0 = v_35.t0; - FX_COPY_PTR(v_35.t1, &cmp_size_list_1); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(k_0, &nested_loc_1, &v_36, 0), _fx_catch_4); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_36, 0, true, &v_37), _fx_catch_4); - FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_exp0_0, v_37, false, &v_37), _fx_catch_4); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(k_0, &nested_loc_1, &v_34, 0), _fx_catch_4); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_34, 0, true, &v_35), _fx_catch_4); + FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_exp0_0, v_35, false, &v_35), _fx_catch_4); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_form__std_FX_ARR_SIZE, v_37, _fx_g19C_gen_code__CTypInt, &nested_loc_1, &size_i_0, 0), _fx_catch_4); - _fx_N17C_form__cbinary_t v_40; - _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_40); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &nested_loc_1, &v_38); + &_fx_g23C_form__std_FX_ARR_SIZE, v_35, _fx_g19C_gen_code__CTypInt, &nested_loc_1, &size_i_0, 0), _fx_catch_4); + _fx_N17C_form__cbinary_t v_38; + _fx_M6C_formFM6COpCmpN17C_form__cbinary_t1N12Ast__cmpop_t(&_fx_g17C_gen_code__CmpEQ, &v_38); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &nested_loc_1, &v_36); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &v_40, size_i_0, n_exp_0, &v_38, &cmp_size_i_0), _fx_catch_4); - FX_CALL(_fx_cons_LN14C_form__cexp_t(cmp_size_i_0, cmp_size_list_1, false, &cmp_size_list_1), _fx_catch_4); - _fx_make_T2iLN14C_form__cexp_t(k_0 + 1, cmp_size_list_1, &v_39); - _fx_free_T2iLN14C_form__cexp_t(&__fold_result___0); - _fx_copy_T2iLN14C_form__cexp_t(&v_39, &__fold_result___0); + &v_38, size_i_0, n_exp_0, &v_36, &cmp_size_i_0), _fx_catch_4); + k_0 = k_0 + 1; + FX_CALL(_fx_cons_LN14C_form__cexp_t(cmp_size_i_0, cmp_size_list_0, true, &v_37), _fx_catch_4); + _fx_free_LN14C_form__cexp_t(&cmp_size_list_0); + FX_COPY_PTR(v_37, &cmp_size_list_0); _fx_catch_4: ; - _fx_free_T2iLN14C_form__cexp_t(&v_39); + if (v_37) { + _fx_free_LN14C_form__cexp_t(&v_37); + } if (cmp_size_i_0) { _fx_free_N14C_form__cexp_t(&cmp_size_i_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_38); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_36); if (size_i_0) { _fx_free_N14C_form__cexp_t(&size_i_0); } - if (v_37) { - _fx_free_LN14C_form__cexp_t(&v_37); - } - if (v_36) { - _fx_free_N14C_form__cexp_t(&v_36); + if (v_35) { + _fx_free_LN14C_form__cexp_t(&v_35); } - if (cmp_size_list_1) { - _fx_free_LN14C_form__cexp_t(&cmp_size_list_1); + if (v_34) { + _fx_free_N14C_form__cexp_t(&v_34); } - _fx_free_T2iLN14C_form__cexp_t(&v_35); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T2iLN14C_form__cexp_t(&__fold_result___0, &v_6); - FX_COPY_PTR(v_6.t1, &cmp_size_list_0); + FX_COPY_PTR(cmp_size_list_0, &cmp_size_list_1); if (pre_alloc_array_0) { FX_COPY_PTR(map_lbl_0, &lbl_1); } @@ -35590,48 +34810,46 @@ _fx_endmatch_0: ; _fx_N14C_form__ctyp_t elemtyp_0 = 0; _fx_N14C_form__cexp_t dst_exp_0 = 0; _fx_N14C_form__cexp_t dst_ptr_0 = 0; - _fx_LN15C_form__cstmt_t then_ccode_1 = 0; - _fx_LN15C_form__cstmt_t then_ccode_2 = 0; - _fx_LN15C_form__cstmt_t v_41 = 0; - _fx_N14C_form__cexp_t v_42 = 0; - _fx_N14C_form__ctyp_t v_43 = 0; + _fx_LN15C_form__cstmt_t then_ccode1_0 = 0; + _fx_LN15C_form__cstmt_t v_39 = 0; + _fx_N14C_form__cexp_t v_40 = 0; + _fx_N14C_form__ctyp_t v_41 = 0; _fx_N14C_form__cexp_t arr_data_0 = 0; _fx_N14C_form__cexp_t set_dstptr_0 = 0; - _fx_N15C_form__cstmt_t v_44 = 0; + _fx_N15C_form__cstmt_t v_42 = 0; _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t* __pat___0 = &lst_1->hd; FX_COPY_PTR(__pat___0->t1, &elemtyp_0); FX_COPY_PTR(__pat___0->t2, &dst_exp_0); FX_COPY_PTR(__pat___0->t3, &dst_ptr_0); - FX_COPY_PTR(__fold_result___1, &then_ccode_1); FX_CALL( _fx_M10C_gen_codeFM18make_make_arr_callLN15C_form__cstmt_t7N14C_form__cexp_tLN14C_form__cexp_tLN14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_ti( - dst_exp_0, n_exps_2, 0, then_ccode_1, lbl_1, &nested_loc_1, km_idx_0, &then_ccode_2, 0), _fx_catch_5); + dst_exp_0, n_exps_2, 0, then_ccode_0, lbl_1, &nested_loc_1, km_idx_0, &then_ccode1_0, 0), _fx_catch_5); if (is_parallel_map_0) { - FX_COPY_PTR(then_ccode_2, &v_41); + FX_COPY_PTR(then_ccode1_0, &v_39); } else { - _fx_R9Ast__id_t v_45; + _fx_R9Ast__id_t v_43; fx_str_t slit_4 = FX_MAKE_STR("data"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_4, &v_45, 0), _fx_catch_5); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_4, &v_43, 0), _fx_catch_5); FX_CALL( - _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(dst_exp_0, &v_45, - _fx_g23C_form__std_CTypVoidPtr, &v_42, 0), _fx_catch_5); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elemtyp_0, &v_43, 0), _fx_catch_5); + _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(dst_exp_0, &v_43, + _fx_g23C_form__std_CTypVoidPtr, &v_40, 0), _fx_catch_5); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elemtyp_0, &v_41, 0), _fx_catch_5); FX_CALL( - _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_42, v_43, + _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_40, v_41, &nested_loc_1, &arr_data_0), _fx_catch_5); FX_CALL( _fx_M6C_formFM11make_assignN14C_form__cexp_t2N14C_form__cexp_tN14C_form__cexp_t(dst_ptr_0, arr_data_0, &set_dstptr_0, 0), _fx_catch_5); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(set_dstptr_0, &v_44), _fx_catch_5); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_44, then_ccode_2, true, &v_41), _fx_catch_5); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(set_dstptr_0, &v_42), _fx_catch_5); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_42, then_ccode1_0, true, &v_39), _fx_catch_5); } - _fx_free_LN15C_form__cstmt_t(&__fold_result___1); - FX_COPY_PTR(v_41, &__fold_result___1); + _fx_free_LN15C_form__cstmt_t(&then_ccode_0); + FX_COPY_PTR(v_39, &then_ccode_0); _fx_catch_5: ; - if (v_44) { - _fx_free_N15C_form__cstmt_t(&v_44); + if (v_42) { + _fx_free_N15C_form__cstmt_t(&v_42); } if (set_dstptr_0) { _fx_free_N14C_form__cexp_t(&set_dstptr_0); @@ -35639,20 +34857,17 @@ _fx_endmatch_0: ; if (arr_data_0) { _fx_free_N14C_form__cexp_t(&arr_data_0); } - if (v_43) { - _fx_free_N14C_form__ctyp_t(&v_43); - } - if (v_42) { - _fx_free_N14C_form__cexp_t(&v_42); - } if (v_41) { - _fx_free_LN15C_form__cstmt_t(&v_41); + _fx_free_N14C_form__ctyp_t(&v_41); + } + if (v_40) { + _fx_free_N14C_form__cexp_t(&v_40); } - if (then_ccode_2) { - _fx_free_LN15C_form__cstmt_t(&then_ccode_2); + if (v_39) { + _fx_free_LN15C_form__cstmt_t(&v_39); } - if (then_ccode_1) { - _fx_free_LN15C_form__cstmt_t(&then_ccode_1); + if (then_ccode1_0) { + _fx_free_LN15C_form__cstmt_t(&then_ccode1_0); } if (dst_ptr_0) { _fx_free_N14C_form__cexp_t(&dst_ptr_0); @@ -35665,7 +34880,6 @@ _fx_endmatch_0: ; } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &then_ccode_0); bool t_1; if (for_idx_0 == 0) { t_1 = true; @@ -35677,59 +34891,59 @@ _fx_endmatch_0: ; FX_COPY_PTR(then_ccode_0, &alloc_array_ccode_0); } else { - _fx_R9Ast__id_t v_46; + _fx_R9Ast__id_t v_44; fx_str_t slit_5 = FX_MAKE_STR("data"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_5, &v_46, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_5, &v_44, 0), _fx_cleanup); FX_CALL( - _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(dst_exp0_0, &v_46, + _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(dst_exp0_0, &v_44, _fx_g23C_form__std_CTypVoidPtr, &cc_exp_0, 0), _fx_cleanup); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &nested_loc_1, &v_7); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypBool, &nested_loc_1, &v_6); FX_CALL( _fx_M6C_formFM9CExpUnaryN14C_form__cexp_t3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g23C_gen_code__COpLogicNot, cc_exp_0, &v_7, &cc_exp_1), _fx_cleanup); + &_fx_g23C_gen_code__COpLogicNot, cc_exp_0, &v_6, &cc_exp_1), _fx_cleanup); FX_CALL( _fx_M10C_gen_codeFM17add_size_eq_checkLN15C_form__cstmt_t4LN14C_form__cexp_tLN15C_form__cstmt_tN14C_form__cexp_tR10Ast__loc_t( - cmp_size_list_0, 0, lbl_1, &nested_loc_1, &else_ccode_0, 0), _fx_cleanup); + cmp_size_list_1, 0, lbl_1, &nested_loc_1, &else_ccode_0, 0), _fx_cleanup); FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(then_ccode_0, &nested_loc_1, &v_8, + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(then_ccode_0, &nested_loc_1, &v_7, 0), _fx_cleanup); FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(else_ccode_0, &nested_loc_1, &v_9, + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(else_ccode_0, &nested_loc_1, &v_8, 0), _fx_cleanup); FX_CALL( _fx_M10C_gen_codeFM7make_ifN15C_form__cstmt_t4N14C_form__cexp_tN15C_form__cstmt_tN15C_form__cstmt_tR10Ast__loc_t( - cc_exp_1, v_8, v_9, &nested_loc_1, &check_or_create_0, 0), _fx_cleanup); + cc_exp_1, v_7, v_8, &nested_loc_1, &check_or_create_0, 0), _fx_cleanup); FX_CALL(_fx_cons_LN15C_form__cstmt_t(check_or_create_0, 0, true, &alloc_array_ccode_0), _fx_cleanup); } } if (pre_alloc_array_0) { FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(pre_map_ccode_delta_0, - pre_map_ccode_0, &v_11, 0), _fx_cleanup); + pre_map_ccode_0, &v_10, 0), _fx_cleanup); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(alloc_array_ccode_0, v_11, &v_12, + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(alloc_array_ccode_0, v_10, &v_11, 0), _fx_cleanup); FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(lst_len_ccode_0, init_ccode_0, - &v_13, 0), _fx_cleanup); - _fx_make_Ta2LN15C_form__cstmt_t(v_12, v_13, &v_10); + &v_12, 0), _fx_cleanup); + _fx_make_Ta2LN15C_form__cstmt_t(v_11, v_12, &v_9); } else { FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(pre_map_ccode_delta_0, - init_ccode_0, &v_14, 0), _fx_cleanup); + init_ccode_0, &v_13, 0), _fx_cleanup); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(lst_len_ccode_0, v_14, &v_15, 0), + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(lst_len_ccode_0, v_13, &v_14, 0), _fx_cleanup); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(alloc_array_ccode_0, v_15, &v_16, + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(alloc_array_ccode_0, v_14, &v_15, 0), _fx_cleanup); - _fx_make_Ta2LN15C_form__cstmt_t(pre_map_ccode_0, v_16, &v_10); + _fx_make_Ta2LN15C_form__cstmt_t(pre_map_ccode_0, v_15, &v_9); } - FX_COPY_PTR(v_10.t0, &pre_map_ccode_1); - FX_COPY_PTR(v_10.t1, &init_ccode_1); - _fx_R16Ast__for_flags_t v_47; - FX_CALL(_fx_M3AstFM17default_for_flagsRM11for_flags_t0(&v_47, 0), _fx_cleanup); + FX_COPY_PTR(v_9.t0, &pre_map_ccode_1); + FX_COPY_PTR(v_9.t1, &init_ccode_1); + _fx_R16Ast__for_flags_t v_45; + FX_CALL(_fx_M3AstFM17default_for_flagsRM11for_flags_t0(&v_45, 0), _fx_cleanup); bool t_2; if (is_parallel_map_0) { t_2 = for_idx_0 <= 0; @@ -35737,82 +34951,75 @@ _fx_endmatch_0: ; else { t_2 = false; } - _fx_R16Ast__for_flags_t for_flags_0 = { t_2, v_47.for_flag_make, v_47.for_flag_unzip, v_47.for_flag_fold, for_idx_0 > 0 }; + _fx_R16Ast__for_flags_t for_flags_0 = { t_2, v_45.for_flag_make, v_45.for_flag_unzip, v_45.for_flag_fold, for_idx_0 > 0 }; FX_CALL( _fx_M10C_gen_codeFM17new_for_block_ctxv7iR16Ast__for_flags_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_trLrRM11block_ctx_ti( - ndims_0, &for_flags_0, nested_status_0, par_status_0, kloc_0, block_stack_ref_0, km_idx_0, 0), _fx_cleanup); + *ndims_0, &for_flags_0, nested_status_0, par_status_0, kloc_0, block_stack_ref_0, km_idx_0, 0), _fx_cleanup); FX_CALL( _fx_M10C_gen_codeFM19decl_for_body_elemsLN15C_form__cstmt_t4LT3R9Ast__id_tN14C_form__cexp_tR16Ast__val_flags_tLN15C_form__cstmt_trLrRM11block_ctx_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t( body_elems_0, 0, block_stack_ref_0, i2e_ref_0, &body_ccode_0, 0), _fx_cleanup); if (nested_e_idoml_0 != 0) { if (nested_e_idoml_0->tl == 0) { - _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* v_48 = &nested_e_idoml_0->hd; - if (v_48->t2 == 0) { - if (v_48->t1 == 0) { + _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* v_46 = &nested_e_idoml_0->hd; + if (v_46->t2 == 0) { + if (v_46->t1 == 0) { _fx_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t - v_49 = {0}; + v_47 = {0}; + fx_str_t v_48 = {0}; + fx_str_t v_49 = {0}; fx_str_t v_50 = {0}; - fx_str_t v_51 = {0}; - fx_str_t v_52 = {0}; - fx_exn_t v_53 = {0}; - _fx_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t - __fold_result___3 = {0}; - _fx_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t - v_54 = {0}; - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t dst_data_2 = 0; + fx_exn_t v_51 = {0}; + _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t new_dst_data_0 = 0; _fx_LN15C_form__cstmt_t decl_dstptr_ccode_all_0 = 0; - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_55 = 0; - _fx_LN15C_form__cstmt_t v_56 = 0; - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_57 = 0; - _fx_LN15C_form__cstmt_t v_58 = 0; - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t dst_data_3 = 0; + _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_52 = 0; + _fx_LN15C_form__cstmt_t v_53 = 0; + _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_54 = 0; + _fx_LN15C_form__cstmt_t v_55 = 0; + _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t dst_data_2 = 0; _fx_LN15C_form__cstmt_t pre_body_ccode_2 = 0; _fx_LN15C_form__cstmt_t body_ccode_2 = 0; _fx_rNt6option1N14C_form__cexp_t body_dst_r_0 = 0; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_59 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_56 = {0}; _fx_N14C_form__cexp_t result0_0 = 0; _fx_LN15C_form__cstmt_t body_ccode_3 = 0; - _fx_Nt6option1N14C_form__cexp_t v_60 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_57 = {0}; _fx_N14C_form__cexp_t result_0 = 0; - _fx_LN15C_form__cstmt_t __fold_result___4 = 0; _fx_LN15C_form__cstmt_t body_ccode_4 = 0; - _fx_Ta2LN15C_form__cstmt_t v_61 = {0}; - _fx_N14K_form__kexp_t body_0 = v_48->t0; + _fx_Ta2LN15C_form__cstmt_t v_58 = {0}; + _fx_N14K_form__kexp_t body_0 = v_46->t0; _fx_R10Ast__loc_t body_loc_0; FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(body_0, &body_loc_0, 0), _fx_catch_14); if (!is_parallel_map_0) { _fx_make_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - true, dst_data_0, pre_body_ccode_0, body_ccode_0, &v_49); + true, dst_data_0, pre_body_ccode_0, body_ccode_0, &v_47); } else { int_ n_i_exps_0; FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14C_form__cexp_t(i_exps_1, &n_i_exps_0, 0), _fx_catch_14); - int_ v_62; - FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14C_form__cexp_t(n_exps_2, &v_62, 0), _fx_catch_14); + int_ v_59; + FX_CALL(_fx_M10C_gen_codeFM8length1_i1LN14C_form__cexp_t(n_exps_2, &v_59, 0), _fx_catch_14); bool t_3; - if (n_i_exps_0 == v_62) { - t_3 = n_i_exps_0 == ndims_0; + if (n_i_exps_0 == v_59) { + t_3 = n_i_exps_0 == *ndims_0; } else { t_3 = false; } if (!t_3) { - FX_CALL(_fx_F6stringS1i(n_i_exps_0, &v_50, 0), _fx_catch_14); - FX_CALL(_fx_F6stringS1i(ndims_0, &v_51, 0), _fx_catch_14); + FX_CALL(_fx_F6stringS1i(n_i_exps_0, &v_48, 0), _fx_catch_14); + FX_CALL(_fx_F6stringS1i(*ndims_0, &v_49, 0), _fx_catch_14); fx_str_t slit_6 = FX_MAKE_STR( "cgen: internal error when compiling parallel for: incorrect number of iteration indices (="); fx_str_t slit_7 = FX_MAKE_STR(").There should be as many as the output array dimensionality (="); fx_str_t slit_8 = FX_MAKE_STR(")"); { - const fx_str_t strs_0[] = { slit_6, v_50, slit_7, v_51, slit_8 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_52), _fx_catch_14); + const fx_str_t strs_0[] = { slit_6, v_48, slit_7, v_49, slit_8 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_50), _fx_catch_14); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&body_loc_0, &v_52, &v_53, 0), _fx_catch_14); - FX_THROW(&v_53, false, _fx_catch_14); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&body_loc_0, &v_50, &v_51, 0), _fx_catch_14); + FX_THROW(&v_51, false, _fx_catch_14); } - _fx_make_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - 0, 0, &__fold_result___3); _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t lst_2 = dst_data_0; for (; lst_2; lst_2 = lst_2->tl) { @@ -35820,143 +35027,125 @@ _fx_endmatch_0: ; _fx_N14C_form__ctyp_t elemtyp_1 = 0; _fx_N14C_form__cexp_t dst_exp_1 = 0; _fx_N14C_form__cexp_t iter_0 = 0; - _fx_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t - v_63 = {0}; - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t dst_data_4 = - 0; - _fx_LN15C_form__cstmt_t decl_dstptr_ccode_all_1 = 0; _fx_N14C_form__ctyp_t elemtyp_ptr_0 = 0; _fx_LN14C_form__cexp_t dst_idxs_0 = 0; + _fx_N14C_form__cexp_t v_60 = 0; + _fx_LN14C_form__cexp_t v_61 = 0; + _fx_LN14C_form__cexp_t v_62 = 0; + _fx_LN14C_form__cexp_t v_63 = 0; _fx_N14C_form__cexp_t v_64 = 0; _fx_LN14C_form__cexp_t v_65 = 0; - _fx_LN14C_form__cexp_t v_66 = 0; - _fx_LN14C_form__cexp_t v_67 = 0; - _fx_N14C_form__cexp_t v_68 = 0; - _fx_LN14C_form__cexp_t v_69 = 0; _fx_N14C_form__cexp_t get_arr_slice_0 = 0; - _fx_R16Ast__val_flags_t v_70 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_71 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_72 = {0}; + _fx_R16Ast__val_flags_t v_66 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_67 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_68 = {0}; _fx_N14C_form__cexp_t dst_ptr_1 = 0; _fx_LN15C_form__cstmt_t decl_dstptr_ccode_0 = 0; - _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_73 = {0}; - _fx_LN15C_form__cstmt_t v_74 = 0; - _fx_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t - v_75 = {0}; + _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_69 = {0}; + _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t v_70 = 0; + _fx_LN15C_form__cstmt_t v_71 = 0; _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t* __pat___1 = &lst_2->hd; FX_COPY_PTR(__pat___1->t0, &coll_ctyp_0); FX_COPY_PTR(__pat___1->t1, &elemtyp_1); FX_COPY_PTR(__pat___1->t2, &dst_exp_1); FX_COPY_PTR(__pat___1->t4, &iter_0); - _fx_copy_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - &__fold_result___3, &v_63); - FX_COPY_PTR(v_63.t0, &dst_data_4); - FX_COPY_PTR(v_63.t1, &decl_dstptr_ccode_all_1); FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(elemtyp_1, &elemtyp_ptr_0, 0), _fx_catch_6); - if (ndims_0 == 1) { + if (*ndims_0 == 1) { FX_COPY_PTR(i_exps_1, &dst_idxs_0); } else { - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &body_loc_0, &v_64, 0), + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &body_loc_0, &v_60, 0), _fx_catch_6); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_1, &v_65, 0), _fx_catch_6); - FX_CALL(_fx_M10C_gen_codeFM2tlLN14C_form__cexp_t1LN14C_form__cexp_t(v_65, &v_66, 0), _fx_catch_6); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_64, v_66, true, &v_67), _fx_catch_6); - FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_67, &dst_idxs_0, 0), + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(i_exps_1, &v_61, 0), _fx_catch_6); + FX_CALL(_fx_M10C_gen_codeFM2tlLN14C_form__cexp_t1LN14C_form__cexp_t(v_61, &v_62, 0), _fx_catch_6); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_60, v_62, true, &v_63), _fx_catch_6); + FX_CALL(_fx_M10C_gen_codeFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(v_63, &dst_idxs_0, 0), _fx_catch_6); } - _fx_R9Ast__id_t v_76; + _fx_R9Ast__id_t v_72; FX_CALL( - _fx_M10C_gen_codeFM3nthR9Ast__id_t2LR9Ast__id_ti(_fx_g21C_form__std_FX_PTR_xD, ndims_0 - 1, &v_76, 0), + _fx_M10C_gen_codeFM3nthR9Ast__id_t2LR9Ast__id_ti(_fx_g21C_form__std_FX_PTR_xD, *ndims_0 - 1, &v_72, 0), _fx_catch_6); FX_CALL( - _fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elemtyp_1, &body_loc_0, &v_68), + _fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elemtyp_1, &body_loc_0, &v_64), _fx_catch_6); - FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_exp_1, dst_idxs_0, true, &v_69), _fx_catch_6); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_68, v_69, false, &v_69), _fx_catch_6); + FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_exp_1, dst_idxs_0, true, &v_65), _fx_catch_6); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_64, v_65, false, &v_65), _fx_catch_6); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &v_76, v_69, elemtyp_ptr_0, &body_loc_0, &get_arr_slice_0, 0), _fx_catch_6); - _fx_R9Ast__id_t v_77; + &v_72, v_65, elemtyp_ptr_0, &body_loc_0, &get_arr_slice_0, 0), _fx_catch_6); + _fx_R9Ast__id_t v_73; fx_str_t slit_9 = FX_MAKE_STR("dstptr"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_9, &v_77, 0), _fx_catch_6); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_70, 0), _fx_catch_6); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(get_arr_slice_0, &v_71); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_9, &v_73, 0), _fx_catch_6); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_66, 0), _fx_catch_6); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(get_arr_slice_0, &v_67); fx_str_t slit_10 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_77, elemtyp_ptr_0, &v_70, &slit_10, &v_71, 0, &body_loc_0, &v_72, 0), _fx_catch_6); - FX_COPY_PTR(v_72.t0, &dst_ptr_1); - FX_COPY_PTR(v_72.t1, &decl_dstptr_ccode_0); + &v_73, elemtyp_ptr_0, &v_66, &slit_10, &v_67, 0, &body_loc_0, &v_68, 0), _fx_catch_6); + FX_COPY_PTR(v_68.t0, &dst_ptr_1); + FX_COPY_PTR(v_68.t1, &decl_dstptr_ccode_0); _fx_make_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( - coll_ctyp_0, elemtyp_1, dst_exp_1, dst_ptr_1, iter_0, &v_73); + coll_ctyp_0, elemtyp_1, dst_exp_1, dst_ptr_1, iter_0, &v_69); FX_CALL( - _fx_cons_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_73, - dst_data_4, false, &dst_data_4), _fx_catch_6); + _fx_cons_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_69, + new_dst_data_0, true, &v_70), _fx_catch_6); + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( + &new_dst_data_0); + FX_COPY_PTR(v_70, &new_dst_data_0); FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t( - decl_dstptr_ccode_0, decl_dstptr_ccode_all_1, &v_74, 0), _fx_catch_6); - _fx_make_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - dst_data_4, v_74, &v_75); - _fx_free_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - &__fold_result___3); - _fx_copy_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - &v_75, &__fold_result___3); + decl_dstptr_ccode_0, decl_dstptr_ccode_all_0, &v_71, 0), _fx_catch_6); + _fx_free_LN15C_form__cstmt_t(&decl_dstptr_ccode_all_0); + FX_COPY_PTR(v_71, &decl_dstptr_ccode_all_0); _fx_catch_6: ; - _fx_free_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - &v_75); - if (v_74) { - _fx_free_LN15C_form__cstmt_t(&v_74); + if (v_71) { + _fx_free_LN15C_form__cstmt_t(&v_71); } - _fx_free_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_73); + if (v_70) { + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( + &v_70); + } + _fx_free_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_69); if (decl_dstptr_ccode_0) { _fx_free_LN15C_form__cstmt_t(&decl_dstptr_ccode_0); } if (dst_ptr_1) { _fx_free_N14C_form__cexp_t(&dst_ptr_1); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_72); - _fx_free_Nt6option1N14C_form__cexp_t(&v_71); - _fx_free_R16Ast__val_flags_t(&v_70); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_68); + _fx_free_Nt6option1N14C_form__cexp_t(&v_67); + _fx_free_R16Ast__val_flags_t(&v_66); if (get_arr_slice_0) { _fx_free_N14C_form__cexp_t(&get_arr_slice_0); } - if (v_69) { - _fx_free_LN14C_form__cexp_t(&v_69); - } - if (v_68) { - _fx_free_N14C_form__cexp_t(&v_68); - } - if (v_67) { - _fx_free_LN14C_form__cexp_t(&v_67); - } - if (v_66) { - _fx_free_LN14C_form__cexp_t(&v_66); - } if (v_65) { _fx_free_LN14C_form__cexp_t(&v_65); } if (v_64) { _fx_free_N14C_form__cexp_t(&v_64); } + if (v_63) { + _fx_free_LN14C_form__cexp_t(&v_63); + } + if (v_62) { + _fx_free_LN14C_form__cexp_t(&v_62); + } + if (v_61) { + _fx_free_LN14C_form__cexp_t(&v_61); + } + if (v_60) { + _fx_free_N14C_form__cexp_t(&v_60); + } if (dst_idxs_0) { _fx_free_LN14C_form__cexp_t(&dst_idxs_0); } if (elemtyp_ptr_0) { _fx_free_N14C_form__ctyp_t(&elemtyp_ptr_0); } - if (decl_dstptr_ccode_all_1) { - _fx_free_LN15C_form__cstmt_t(&decl_dstptr_ccode_all_1); - } - if (dst_data_4) { - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( - &dst_data_4); - } - _fx_free_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - &v_63); if (iter_0) { _fx_free_N14C_form__cexp_t(&iter_0); } @@ -35971,71 +35160,66 @@ _fx_endmatch_0: ; } FX_CHECK_EXN(_fx_catch_14); } - _fx_copy_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - &__fold_result___3, &v_54); - FX_COPY_PTR(v_54.t0, &dst_data_2); - FX_COPY_PTR(v_54.t1, &decl_dstptr_ccode_all_0); - if (ndims_0 == 1) { + if (*ndims_0 == 1) { FX_CALL( _fx_M10C_gen_codeFM3revLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t1LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( - dst_data_2, &v_55, 0), _fx_catch_14); + new_dst_data_0, &v_52, 0), _fx_catch_14); FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t( - decl_dstptr_ccode_all_0, body_ccode_0, &v_56, 0), _fx_catch_14); + decl_dstptr_ccode_all_0, body_ccode_0, &v_53, 0), _fx_catch_14); _fx_make_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - false, v_55, pre_body_ccode_0, v_56, &v_49); + false, v_52, pre_body_ccode_0, v_53, &v_47); } else { FX_CALL( _fx_M10C_gen_codeFM3revLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t1LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( - dst_data_2, &v_57, 0), _fx_catch_14); + new_dst_data_0, &v_54, 0), _fx_catch_14); FX_CALL( _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t( - decl_dstptr_ccode_all_0, pre_body_ccode_0, &v_58, 0), _fx_catch_14); + decl_dstptr_ccode_all_0, pre_body_ccode_0, &v_55, 0), _fx_catch_14); _fx_make_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - true, v_57, v_58, body_ccode_0, &v_49); + true, v_54, v_55, body_ccode_0, &v_47); } } - bool add_incr_dstptr_0 = v_49.t0; - FX_COPY_PTR(v_49.t1, &dst_data_3); - FX_COPY_PTR(v_49.t2, &pre_body_ccode_2); - FX_COPY_PTR(v_49.t3, &body_ccode_2); + bool add_incr_dstptr_0 = v_47.t0; + FX_COPY_PTR(v_47.t1, &dst_data_2); + FX_COPY_PTR(v_47.t2, &pre_body_ccode_2); + FX_COPY_PTR(v_47.t3, &body_ccode_2); FX_CALL(_fx_make_rNt6option1N14C_form__cexp_t(&_fx_g18C_gen_code__None2_, &body_dst_r_0), _fx_catch_14); FX_CALL( kexp2cexp_0.fp(body_0, body_dst_r_0, body_ccode_2, block_stack_ref_0, defined_syms_ref_0, for_letters_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, km_idx_0, mod_sc_0, - module_cleanup_ref_0, return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_59, kexp2cexp_0.fcv), + module_cleanup_ref_0, return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, &v_56, kexp2cexp_0.fcv), _fx_catch_14); - FX_COPY_PTR(v_59.t0, &result0_0); - FX_COPY_PTR(v_59.t1, &body_ccode_3); - _fx_copy_Nt6option1N14C_form__cexp_t(&body_dst_r_0->data, &v_60); - if (v_60.tag == 2) { - FX_COPY_PTR(v_60.u.Some, &result_0); + FX_COPY_PTR(v_56.t0, &result0_0); + FX_COPY_PTR(v_56.t1, &body_ccode_3); + _fx_copy_Nt6option1N14C_form__cexp_t(&body_dst_r_0->data, &v_57); + if (v_57.tag == 2) { + FX_COPY_PTR(v_57.u.Some, &result_0); } else { FX_COPY_PTR(result0_0, &result_0); } FX_CHECK_EXN(_fx_catch_14); - FX_COPY_PTR(body_ccode_3, &__fold_result___4); + FX_COPY_PTR(body_ccode_3, &body_ccode_4); int_ j_0 = 0; - _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t lst_3 = dst_data_3; + _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t lst_3 = dst_data_2; for (; lst_3; lst_3 = lst_3->tl, j_0 += 1) { _fx_N14C_form__ctyp_t coll_ctyp_1 = 0; _fx_N14C_form__ctyp_t elemtyp_2 = 0; _fx_N14C_form__cexp_t dst_exp_2 = 0; _fx_N14C_form__cexp_t dst_ptr_2 = 0; _fx_N14C_form__cexp_t iter_1 = 0; - _fx_LN15C_form__cstmt_t body_ccode_5 = 0; _fx_N14C_form__cexp_t result_j_0 = 0; - _fx_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti v_78 = {0}; + _fx_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti v_74 = {0}; _fx_N14C_form__cexp_t result_1 = 0; _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_0 = 0; - fx_str_t v_79 = {0}; - fx_str_t v_80 = {0}; - fx_str_t v_81 = {0}; - fx_exn_t v_82 = {0}; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_83 = {0}; - _fx_LN15C_form__cstmt_t v_84 = 0; + fx_str_t v_75 = {0}; + fx_str_t v_76 = {0}; + fx_str_t v_77 = {0}; + fx_exn_t v_78 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_79 = {0}; + _fx_LN15C_form__cstmt_t v_80 = 0; _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t* __pat___2 = &lst_3->hd; FX_COPY_PTR(__pat___2->t0, &coll_ctyp_1); @@ -36043,17 +35227,16 @@ _fx_endmatch_0: ; FX_COPY_PTR(__pat___2->t2, &dst_exp_2); FX_COPY_PTR(__pat___2->t3, &dst_ptr_2); FX_COPY_PTR(__pat___2->t4, &iter_1); - FX_COPY_PTR(__fold_result___4, &body_ccode_5); if (!unzip_mode_0) { FX_COPY_PTR(result_0, &result_j_0); } else { FX_CALL( _fx_M10C_gen_codeFM10get_structT4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti1N14C_form__cexp_t( - result_0, &v_78, 0), _fx_catch_13); - FX_COPY_PTR(v_78.t1, &result_1); - FX_COPY_PTR(v_78.t2, &relems_0); - int_ ofs_0 = v_78.t3; + result_0, &v_74, 0), _fx_catch_13); + FX_COPY_PTR(v_74.t1, &result_1); + FX_COPY_PTR(v_74.t2, &relems_0); + int_ ofs_0 = v_74.t3; int_ nelems_0; FX_CALL(_fx_M10C_gen_codeFM8length1_i1LT2R9Ast__id_tN14C_form__ctyp_t(relems_0, &nelems_0, 0), _fx_catch_13); @@ -36065,51 +35248,51 @@ _fx_endmatch_0: ; t_4 = j_0 + ofs_0 >= nelems_0; } if (t_4) { - FX_CALL(_fx_F6stringS1i(j_0, &v_79, 0), _fx_catch_13); - FX_CALL(_fx_F6stringS1i(nelems_0, &v_80, 0), _fx_catch_13); + FX_CALL(_fx_F6stringS1i(j_0, &v_75, 0), _fx_catch_13); + FX_CALL(_fx_F6stringS1i(nelems_0, &v_76, 0), _fx_catch_13); fx_str_t slit_11 = FX_MAKE_STR("cgen: the tuple/record element index "); fx_str_t slit_12 = FX_MAKE_STR(" is out of range [:: 0, "); fx_str_t slit_13 = FX_MAKE_STR("]"); { - const fx_str_t strs_1[] = { slit_11, v_79, slit_12, v_80, slit_13 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 5, &v_81), _fx_catch_13); + const fx_str_t strs_1[] = { slit_11, v_75, slit_12, v_76, slit_13 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 5, &v_77), _fx_catch_13); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&body_loc_0, &v_81, &v_82, 0), _fx_catch_13); - FX_THROW(&v_82, false, _fx_catch_13); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&body_loc_0, &v_77, &v_78, 0), _fx_catch_13); + FX_THROW(&v_78, false, _fx_catch_13); } FX_CALL( _fx_M10C_gen_codeFM3nthT2R9Ast__id_tN14C_form__ctyp_t2LT2R9Ast__id_tN14C_form__ctyp_ti(relems_0, - j_0 + ofs_0, &v_83, 0), _fx_catch_13); - _fx_R9Ast__id_t j_id_0 = v_83.t0; + j_0 + ofs_0, &v_79, 0), _fx_catch_13); + _fx_R9Ast__id_t j_id_0 = v_79.t0; FX_CALL( _fx_M6C_formFM8cexp_memN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(result_1, &j_id_0, elemtyp_2, &result_j_0, 0), _fx_catch_13); } int tag_0 = for_flag_make_0->tag; if (tag_0 == 2) { - _fx_N14C_form__cexp_t v_85 = 0; - FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(dst_ptr_2, &v_85, 0), _fx_catch_7); + _fx_N14C_form__cexp_t v_81 = 0; + FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(dst_ptr_2, &v_81, 0), _fx_catch_7); FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - result_j_0, v_85, elemtyp_2, body_ccode_5, &body_loc_0, &v_84, 0), _fx_catch_7); + result_j_0, v_81, elemtyp_2, body_ccode_4, &body_loc_0, &v_80, 0), _fx_catch_7); _fx_catch_7: ; - if (v_85) { - _fx_free_N14C_form__cexp_t(&v_85); + if (v_81) { + _fx_free_N14C_form__cexp_t(&v_81); } } else if (tag_0 == 4) { - _fx_T2BNt6option1N14C_form__cexp_t v_86 = {0}; + _fx_T2BNt6option1N14C_form__cexp_t v_82 = {0}; _fx_N14C_form__cexp_t lbl_2 = 0; - _fx_N14C_form__cexp_t v_87 = 0; - _fx_LN14C_form__cexp_t v_88 = 0; + _fx_N14C_form__cexp_t v_83 = 0; + _fx_LN14C_form__cexp_t v_84 = 0; _fx_N14C_form__cexp_t write_call_0 = 0; - _fx_N15C_form__cstmt_t v_89 = 0; + _fx_N15C_form__cstmt_t v_85 = 0; FX_CALL( _fx_M11C_gen_typesFM10get_copy_fT2BNt6option1N14C_form__cexp_t4N14C_form__ctyp_tBBR10Ast__loc_t( - elemtyp_2, true, false, &body_loc_0, &v_86, 0), _fx_catch_10); + elemtyp_2, true, false, &body_loc_0, &v_82, 0), _fx_catch_10); _fx_R9Ast__id_t write_f_0; - if (v_86.t1.tag == 2) { + if (v_82.t1.tag == 2) { fx_str_t slit_14 = FX_MAKE_STR("FX_RRB_WRITE"); FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_14, &write_f_0, 0), _fx_catch_8); @@ -36126,141 +35309,138 @@ _fx_endmatch_0: ; _fx_M10C_gen_codeFM16curr_block_labelN14C_form__cexp_t2R10Ast__loc_trLrRM11block_ctx_t(&body_loc_0, block_stack_ref_0, &lbl_2, 0), _fx_catch_10); FX_CALL( - _fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elemtyp_2, &body_loc_0, &v_87), + _fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(elemtyp_2, &body_loc_0, &v_83), _fx_catch_10); - FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_2, 0, true, &v_88), _fx_catch_10); - FX_CALL(_fx_cons_LN14C_form__cexp_t(result_j_0, v_88, false, &v_88), _fx_catch_10); - FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_ptr_2, v_88, false, &v_88), _fx_catch_10); - FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_1, v_88, false, &v_88), _fx_catch_10); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_87, v_88, false, &v_88), _fx_catch_10); + FX_CALL(_fx_cons_LN14C_form__cexp_t(lbl_2, 0, true, &v_84), _fx_catch_10); + FX_CALL(_fx_cons_LN14C_form__cexp_t(result_j_0, v_84, false, &v_84), _fx_catch_10); + FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_ptr_2, v_84, false, &v_84), _fx_catch_10); + FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_1, v_84, false, &v_84), _fx_catch_10); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_83, v_84, false, &v_84), _fx_catch_10); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &write_f_0, v_88, _fx_g20C_gen_code__CTypVoid, &body_loc_0, &write_call_0, 0), _fx_catch_10); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(write_call_0, &v_89), _fx_catch_10); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_89, body_ccode_5, true, &v_84), _fx_catch_10); + &write_f_0, v_84, _fx_g20C_gen_code__CTypVoid, &body_loc_0, &write_call_0, 0), _fx_catch_10); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(write_call_0, &v_85), _fx_catch_10); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_85, body_ccode_4, true, &v_80), _fx_catch_10); _fx_catch_10: ; - if (v_89) { - _fx_free_N15C_form__cstmt_t(&v_89); + if (v_85) { + _fx_free_N15C_form__cstmt_t(&v_85); } if (write_call_0) { _fx_free_N14C_form__cexp_t(&write_call_0); } - if (v_88) { - _fx_free_LN14C_form__cexp_t(&v_88); + if (v_84) { + _fx_free_LN14C_form__cexp_t(&v_84); } - if (v_87) { - _fx_free_N14C_form__cexp_t(&v_87); + if (v_83) { + _fx_free_N14C_form__cexp_t(&v_83); } if (lbl_2) { _fx_free_N14C_form__cexp_t(&lbl_2); } - _fx_free_T2BNt6option1N14C_form__cexp_t(&v_86); + _fx_free_T2BNt6option1N14C_form__cexp_t(&v_82); } else if (tag_0 == 3) { - _fx_R16Ast__val_flags_t v_90 = {0}; - _fx_N14C_form__cexp_t v_91 = 0; - _fx_Nt6option1N14C_form__cexp_t v_92 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_93 = {0}; + _fx_R16Ast__val_flags_t v_86 = {0}; + _fx_N14C_form__cexp_t v_87 = 0; + _fx_Nt6option1N14C_form__cexp_t v_88 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_89 = {0}; _fx_N14C_form__cexp_t node_exp_0 = 0; - _fx_LN15C_form__cstmt_t body_ccode_6 = 0; - _fx_N14C_form__cexp_t v_94 = 0; - _fx_LN15C_form__cstmt_t body_ccode_7 = 0; - _fx_LN14C_form__cexp_t v_95 = 0; + _fx_LN15C_form__cstmt_t body_ccode1_0 = 0; + _fx_N14C_form__cexp_t v_90 = 0; + _fx_LN15C_form__cstmt_t body_ccode2_0 = 0; + _fx_LN14C_form__cexp_t v_91 = 0; _fx_N14C_form__cexp_t append_call_0 = 0; - _fx_N15C_form__cstmt_t v_96 = 0; - _fx_R9Ast__id_t v_97; + _fx_N15C_form__cstmt_t v_92 = 0; + _fx_R9Ast__id_t v_93; fx_str_t slit_16 = FX_MAKE_STR("node"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_16, &v_97, 0), _fx_catch_11); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_90, 0), _fx_catch_11); - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&body_loc_0, &v_91, 0), _fx_catch_11); - _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_91, &v_92); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(km_idx_0, &slit_16, &v_93, 0), _fx_catch_11); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_86, 0), _fx_catch_11); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&body_loc_0, &v_87, 0), _fx_catch_11); + _fx_M10C_gen_codeFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(v_87, &v_88); fx_str_t slit_17 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &v_97, coll_ctyp_1, &v_90, &slit_17, &v_92, body_ccode_5, &body_loc_0, &v_93, 0), _fx_catch_11); - FX_COPY_PTR(v_93.t0, &node_exp_0); - FX_COPY_PTR(v_93.t1, &body_ccode_6); - FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&body_loc_0, &v_94, 0), _fx_catch_11); + &v_93, coll_ctyp_1, &v_86, &slit_17, &v_88, body_ccode_4, &body_loc_0, &v_89, 0), _fx_catch_11); + FX_COPY_PTR(v_89.t0, &node_exp_0); + FX_COPY_PTR(v_89.t1, &body_ccode1_0); + FX_CALL(_fx_M6C_formFM12make_nullptrN14C_form__cexp_t1R10Ast__loc_t(&body_loc_0, &v_90, 0), _fx_catch_11); FX_CALL( _fx_M10C_gen_codeFM14make_cons_callLN15C_form__cstmt_t7N14C_form__cexp_tN14C_form__cexp_tBN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_trLrRM11block_ctx_t( - result_j_0, v_94, false, node_exp_0, body_ccode_6, &body_loc_0, block_stack_ref_0, &body_ccode_7, 0), - _fx_catch_11); - FX_CALL(_fx_cons_LN14C_form__cexp_t(node_exp_0, 0, true, &v_95), _fx_catch_11); - FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_1, v_95, false, &v_95), _fx_catch_11); - FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_exp_2, v_95, false, &v_95), _fx_catch_11); + result_j_0, v_90, false, node_exp_0, body_ccode1_0, &body_loc_0, block_stack_ref_0, &body_ccode2_0, + 0), _fx_catch_11); + FX_CALL(_fx_cons_LN14C_form__cexp_t(node_exp_0, 0, true, &v_91), _fx_catch_11); + FX_CALL(_fx_cons_LN14C_form__cexp_t(iter_1, v_91, false, &v_91), _fx_catch_11); + FX_CALL(_fx_cons_LN14C_form__cexp_t(dst_exp_2, v_91, false, &v_91), _fx_catch_11); FX_CALL( _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( - &_fx_g26C_form__std_FX_LIST_APPEND, v_95, _fx_g20C_gen_code__CTypVoid, &body_loc_0, &append_call_0, + &_fx_g26C_form__std_FX_LIST_APPEND, v_91, _fx_g20C_gen_code__CTypVoid, &body_loc_0, &append_call_0, 0), _fx_catch_11); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(append_call_0, &v_96), _fx_catch_11); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_96, body_ccode_7, true, &v_84), _fx_catch_11); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(append_call_0, &v_92), _fx_catch_11); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_92, body_ccode2_0, true, &v_80), _fx_catch_11); _fx_catch_11: ; - if (v_96) { - _fx_free_N15C_form__cstmt_t(&v_96); + if (v_92) { + _fx_free_N15C_form__cstmt_t(&v_92); } if (append_call_0) { _fx_free_N14C_form__cexp_t(&append_call_0); } - if (v_95) { - _fx_free_LN14C_form__cexp_t(&v_95); + if (v_91) { + _fx_free_LN14C_form__cexp_t(&v_91); } - if (body_ccode_7) { - _fx_free_LN15C_form__cstmt_t(&body_ccode_7); + if (body_ccode2_0) { + _fx_free_LN15C_form__cstmt_t(&body_ccode2_0); } - if (v_94) { - _fx_free_N14C_form__cexp_t(&v_94); + if (v_90) { + _fx_free_N14C_form__cexp_t(&v_90); } - if (body_ccode_6) { - _fx_free_LN15C_form__cstmt_t(&body_ccode_6); + if (body_ccode1_0) { + _fx_free_LN15C_form__cstmt_t(&body_ccode1_0); } if (node_exp_0) { _fx_free_N14C_form__cexp_t(&node_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_93); - _fx_free_Nt6option1N14C_form__cexp_t(&v_92); - if (v_91) { - _fx_free_N14C_form__cexp_t(&v_91); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_89); + _fx_free_Nt6option1N14C_form__cexp_t(&v_88); + if (v_87) { + _fx_free_N14C_form__cexp_t(&v_87); } - _fx_free_R16Ast__val_flags_t(&v_90); + _fx_free_R16Ast__val_flags_t(&v_86); } else { - fx_exn_t v_98 = {0}; + fx_exn_t v_94 = {0}; fx_str_t slit_18 = FX_MAKE_STR("unsupported kind of comprehension (only arrays, vectors and lists are supported)"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&body_loc_0, &slit_18, &v_98, 0), _fx_catch_12); - FX_THROW(&v_98, false, _fx_catch_12); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&body_loc_0, &slit_18, &v_94, 0), _fx_catch_12); + FX_THROW(&v_94, false, _fx_catch_12); _fx_catch_12: ; - fx_free_exn(&v_98); + fx_free_exn(&v_94); } FX_CHECK_EXN(_fx_catch_13); - _fx_free_LN15C_form__cstmt_t(&__fold_result___4); - FX_COPY_PTR(v_84, &__fold_result___4); + _fx_free_LN15C_form__cstmt_t(&body_ccode_4); + FX_COPY_PTR(v_80, &body_ccode_4); _fx_catch_13: ; - if (v_84) { - _fx_free_LN15C_form__cstmt_t(&v_84); - } - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_83); - fx_free_exn(&v_82); - FX_FREE_STR(&v_81); - FX_FREE_STR(&v_80); - FX_FREE_STR(&v_79); + if (v_80) { + _fx_free_LN15C_form__cstmt_t(&v_80); + } + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_79); + fx_free_exn(&v_78); + FX_FREE_STR(&v_77); + FX_FREE_STR(&v_76); + FX_FREE_STR(&v_75); if (relems_0) { _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_0); } if (result_1) { _fx_free_N14C_form__cexp_t(&result_1); } - _fx_free_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti(&v_78); + _fx_free_T4R9Ast__id_tN14C_form__cexp_tLT2R9Ast__id_tN14C_form__ctyp_ti(&v_74); if (result_j_0) { _fx_free_N14C_form__cexp_t(&result_j_0); } - if (body_ccode_5) { - _fx_free_LN15C_form__cstmt_t(&body_ccode_5); - } if (iter_1) { _fx_free_N14C_form__cexp_t(&iter_1); } @@ -36278,7 +35458,6 @@ _fx_endmatch_0: ; } FX_CHECK_EXN(_fx_catch_14); } - FX_COPY_PTR(__fold_result___4, &body_ccode_4); bool t_5; if (add_incr_dstptr_0) { t_5 = need_make_array_0; @@ -36286,29 +35465,26 @@ _fx_endmatch_0: ; else { t_5 = false; } - _fx_make_Ta2LN15C_form__cstmt_t(pre_map_ccode_1, body_ccode_4, &v_61); + _fx_make_Ta2LN15C_form__cstmt_t(pre_map_ccode_1, body_ccode_4, &v_58); _fx_make_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tTa2LN15C_form__cstmt_t( - t_5, dst_data_3, pre_body_ccode_2, &v_61, &v_17); + t_5, dst_data_2, pre_body_ccode_2, &v_58, &v_16); _fx_catch_14: ; - _fx_free_Ta2LN15C_form__cstmt_t(&v_61); + _fx_free_Ta2LN15C_form__cstmt_t(&v_58); if (body_ccode_4) { _fx_free_LN15C_form__cstmt_t(&body_ccode_4); } - if (__fold_result___4) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___4); - } if (result_0) { _fx_free_N14C_form__cexp_t(&result_0); } - _fx_free_Nt6option1N14C_form__cexp_t(&v_60); + _fx_free_Nt6option1N14C_form__cexp_t(&v_57); if (body_ccode_3) { _fx_free_LN15C_form__cstmt_t(&body_ccode_3); } if (result0_0) { _fx_free_N14C_form__cexp_t(&result0_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_59); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_56); if (body_dst_r_0) { _fx_free_rNt6option1N14C_form__cexp_t(&body_dst_r_0); } @@ -36318,108 +35494,102 @@ _fx_endmatch_0: ; if (pre_body_ccode_2) { _fx_free_LN15C_form__cstmt_t(&pre_body_ccode_2); } - if (dst_data_3) { + if (dst_data_2) { _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( - &dst_data_3); + &dst_data_2); } - if (v_58) { - _fx_free_LN15C_form__cstmt_t(&v_58); + if (v_55) { + _fx_free_LN15C_form__cstmt_t(&v_55); } - if (v_57) { - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_57); + if (v_54) { + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_54); } - if (v_56) { - _fx_free_LN15C_form__cstmt_t(&v_56); + if (v_53) { + _fx_free_LN15C_form__cstmt_t(&v_53); } - if (v_55) { - _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_55); + if (v_52) { + _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&v_52); } if (decl_dstptr_ccode_all_0) { _fx_free_LN15C_form__cstmt_t(&decl_dstptr_ccode_all_0); } - if (dst_data_2) { + if (new_dst_data_0) { _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t( - &dst_data_2); + &new_dst_data_0); } - _fx_free_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - &v_54); - _fx_free_T2LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_t( - &__fold_result___3); - fx_free_exn(&v_53); - FX_FREE_STR(&v_52); - FX_FREE_STR(&v_51); + fx_free_exn(&v_51); FX_FREE_STR(&v_50); + FX_FREE_STR(&v_49); + FX_FREE_STR(&v_48); _fx_free_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &v_49); + &v_47); goto _fx_endmatch_1; } } } } - _fx_Ta2LN15C_form__cstmt_t v_99 = {0}; + _fx_Ta2LN15C_form__cstmt_t v_95 = {0}; FX_CALL( - _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB( + _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB( pre_map_ccode_1, for_idx_0 + 1, nested_e_idoml_0, i_exps_1, n_exps_2, block_stack_ref_0, decl_nested_status_0, defined_syms_ref_0, dst_data_0, end_for_loc_0, for_flag_make_0, for_letters_0, for_loc_0, func_dstexp_r_ref_0, fwd_fdecls_ref_0, fx_status__0, glob_data_ccode_ref_0, i2e_ref_0, is_parallel_map_0, kloc_0, km_idx_0, map_lbl_0, - mod_sc_0, module_cleanup_ref_0, ndims_0, need_make_array_0, nested_status_0, nfors_0, par_status_0, pre_alloc_array_0, - return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, unzip_mode_0, &v_99, fx_fv), _fx_catch_15); + mod_sc_0, module_cleanup_ref_0, ndims_ref_0, need_make_array_0, nested_status_0, nfors_0, par_status_0, + pre_alloc_array_0, return_used_ref_0, top_inline_ccode_ref_0, u1vals_0, unzip_mode_0, &v_95, fx_fv), _fx_catch_15); _fx_make_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tTa2LN15C_form__cstmt_t( - false, dst_data_0, pre_body_ccode_0, &v_99, &v_17); + false, dst_data_0, pre_body_ccode_0, &v_95, &v_16); _fx_catch_15: ; - _fx_free_Ta2LN15C_form__cstmt_t(&v_99); + _fx_free_Ta2LN15C_form__cstmt_t(&v_95); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_cleanup); - bool add_incr_dstptr_1 = v_17.t0; - FX_COPY_PTR(v_17.t1, &dst_data_1); - FX_COPY_PTR(v_17.t2, &pre_body_ccode_1); - _fx_Ta2LN15C_form__cstmt_t* v_100 = &v_17.t3; - FX_COPY_PTR(v_100->t0, &pre_map_ccode_2); - FX_COPY_PTR(v_100->t1, &body_ccode_1); + bool add_incr_dstptr_1 = v_16.t0; + FX_COPY_PTR(v_16.t1, &dst_data_1); + FX_COPY_PTR(v_16.t2, &pre_body_ccode_1); + _fx_Ta2LN15C_form__cstmt_t* v_96 = &v_16.t3; + FX_COPY_PTR(v_96->t0, &pre_map_ccode_2); + FX_COPY_PTR(v_96->t1, &body_ccode_1); FX_CALL( _fx_M10C_gen_codeFM18finalize_loop_bodyT2R9Ast__id_tN15C_form__cstmt_t4LN15C_form__cstmt_tBR10Ast__loc_trLrRM11block_ctx_t( - body_ccode_1, !need_make_array_0, kloc_0, block_stack_ref_0, &v_18, 0), _fx_cleanup); - _fx_R9Ast__id_t br_label_0 = v_18.t0; - FX_COPY_PTR(v_18.t1, &body_stmt_0); + body_ccode_1, !need_make_array_0, kloc_0, block_stack_ref_0, &v_17, 0), _fx_cleanup); + _fx_R9Ast__id_t br_label_0 = v_17.t0; + FX_COPY_PTR(v_17.t1, &body_stmt_0); int_ nfor_headers_0; FX_CALL( _fx_M10C_gen_codeFM8length1_i1LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( for_headers_0, &nfor_headers_0, 0), _fx_cleanup); - FX_CALL(_fx_M6C_formFM10stmt2ccodeLN15C_form__cstmt_t1N15C_form__cstmt_t(body_stmt_0, &v_19, 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(v_19, &__fold_result___2, 0), _fx_cleanup); + FX_CALL(_fx_M6C_formFM10stmt2ccodeLN15C_form__cstmt_t1N15C_form__cstmt_t(body_stmt_0, &v_18, 0), _fx_cleanup); + FX_CALL(_fx_M10C_gen_codeFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(v_18, &acc_for_ccode_0, 0), _fx_cleanup); FX_CALL( _fx_M10C_gen_codeFM3revLT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t1LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t( - for_headers_0, &v_20, 0), _fx_cleanup); + for_headers_0, &v_19, 0), _fx_cleanup); int_ k_1 = 0; - _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t lst_4 = v_20; + _fx_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t lst_4 = v_19; for (; lst_4; lst_4 = lst_4->tl, k_1 += 1) { _fx_Nt6option1N14C_form__ctyp_t t_opt_0 = {0}; _fx_LN14C_form__cexp_t for_inits_0 = 0; _fx_Nt6option1N14C_form__cexp_t for_check_opt_0 = {0}; _fx_LN14C_form__cexp_t for_incrs_0 = 0; - _fx_LN15C_form__cstmt_t for_ccode_1 = 0; _fx_LN14C_form__cexp_t for_incrs_1 = 0; - _fx_LN14C_form__cexp_t v_101 = 0; + _fx_LN14C_form__cexp_t v_97 = 0; _fx_LN15C_form__cstmt_t for_body_ccode_0 = 0; - _fx_Ta2Nt6option1N14C_form__ctyp_t v_102 = {0}; + _fx_Ta2Nt6option1N14C_form__ctyp_t v_98 = {0}; _fx_Nt6option1N14C_form__ctyp_t t_opt_1 = {0}; _fx_Nt6option1N14C_form__ctyp_t init_t_opt_0 = {0}; + _fx_LN15C_form__cstmt_t for_ccode_0 = 0; + _fx_N15C_form__cstmt_t v_99 = 0; + _fx_N15C_form__cstmt_t v_100 = 0; + _fx_LN15C_form__cstmt_t for_ccode_1 = 0; _fx_LN15C_form__cstmt_t for_ccode_2 = 0; - _fx_N15C_form__cstmt_t v_103 = 0; - _fx_N15C_form__cstmt_t v_104 = 0; + _fx_N15C_form__cstmt_t v_101 = 0; + _fx_LN15C_form__cstmt_t v_102 = 0; _fx_LN15C_form__cstmt_t for_ccode_3 = 0; - _fx_LN15C_form__cstmt_t for_ccode_4 = 0; - _fx_N15C_form__cstmt_t v_105 = 0; - _fx_LN15C_form__cstmt_t v_106 = 0; - _fx_LN15C_form__cstmt_t for_ccode_5 = 0; _fx_T4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t* __pat___3 = &lst_4->hd; _fx_copy_Nt6option1N14C_form__ctyp_t(&__pat___3->t0, &t_opt_0); FX_COPY_PTR(__pat___3->t1, &for_inits_0); _fx_copy_Nt6option1N14C_form__cexp_t(&__pat___3->t2, &for_check_opt_0); FX_COPY_PTR(__pat___3->t3, &for_incrs_0); - FX_COPY_PTR(__fold_result___2, &for_ccode_1); bool t_6; if (k_1 > 0) { t_6 = true; @@ -36435,30 +35605,30 @@ _fx_endmatch_1: ; _fx_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t lst_5 = dst_data_1; for (; lst_5; lst_5 = lst_5->tl) { _fx_N14C_form__cexp_t dst_ptr_3 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_107 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_103 = {0}; _fx_N14C_form__cexp_t res_1 = 0; _fx_T5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t* __pat___4 = &lst_5->hd; FX_COPY_PTR(__pat___4->t3, &dst_ptr_3); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypVoid, for_loc_0, &v_107); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_code__CTypVoid, for_loc_0, &v_103); FX_CALL( _fx_M6C_formFM9CExpUnaryN14C_form__cexp_t3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g24C_gen_code__COpSuffixInc, dst_ptr_3, &v_107, &res_1), _fx_catch_16); + &_fx_g24C_gen_code__COpSuffixInc, dst_ptr_3, &v_103, &res_1), _fx_catch_16); _fx_LN14C_form__cexp_t node_0 = 0; FX_CALL(_fx_cons_LN14C_form__cexp_t(res_1, 0, false, &node_0), _fx_catch_16); - FX_LIST_APPEND(v_101, lstend_0, node_0); + FX_LIST_APPEND(v_97, lstend_0, node_0); _fx_catch_16: ; if (res_1) { _fx_free_N14C_form__cexp_t(&res_1); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_107); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_103); if (dst_ptr_3) { _fx_free_N14C_form__cexp_t(&dst_ptr_3); } FX_CHECK_EXN(_fx_catch_21); } FX_CALL( - _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(for_incrs_0, v_101, &for_incrs_1, + _fx_M10C_gen_codeFM7__add__LN14C_form__cexp_t2LN14C_form__cexp_tLN14C_form__cexp_t(for_incrs_0, v_97, &for_incrs_1, 0), _fx_catch_21); } bool insert_pragma_0; @@ -36476,105 +35646,100 @@ _fx_endmatch_1: ; insert_pragma_0 = false; } if (!insert_pragma_0) { - FX_COPY_PTR(for_ccode_1, &for_body_ccode_0); + FX_COPY_PTR(acc_for_ccode_0, &for_body_ccode_0); } else { FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(for_ccode_1, + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(acc_for_ccode_0, decl_nested_status_0, &for_body_ccode_0, 0), _fx_catch_21); } if (insert_pragma_0 == false) { if (t_opt_0.tag == 2) { if (post_ccode_0 != 0) { - _fx_make_Ta2Nt6option1N14C_form__ctyp_t(&_fx_g18C_gen_code__None1_, &t_opt_0, &v_102); goto _fx_endmatch_2; + _fx_make_Ta2Nt6option1N14C_form__ctyp_t(&_fx_g18C_gen_code__None1_, &t_opt_0, &v_98); goto _fx_endmatch_2; } } } - _fx_make_Ta2Nt6option1N14C_form__ctyp_t(&t_opt_0, &_fx_g18C_gen_code__None1_, &v_102); + _fx_make_Ta2Nt6option1N14C_form__ctyp_t(&t_opt_0, &_fx_g18C_gen_code__None1_, &v_98); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_21); - _fx_copy_Nt6option1N14C_form__ctyp_t(&v_102.t0, &t_opt_1); - _fx_copy_Nt6option1N14C_form__ctyp_t(&v_102.t1, &init_t_opt_0); + _fx_copy_Nt6option1N14C_form__ctyp_t(&v_98.t0, &t_opt_1); + _fx_copy_Nt6option1N14C_form__ctyp_t(&v_98.t1, &init_t_opt_0); if (init_t_opt_0.tag == 2) { - _fx_LN15C_form__cstmt_t __fold_result___5 = 0; + _fx_LN15C_form__cstmt_t for_ccode_4 = 0; _fx_LN14C_form__cexp_t lst_6 = for_inits_0; for (; lst_6; lst_6 = lst_6->tl) { - _fx_LN15C_form__cstmt_t for_ccode_6 = 0; - _fx_LN15C_form__cstmt_t v_108 = 0; + _fx_LN15C_form__cstmt_t v_104 = 0; _fx_N14C_form__cexp_t e_0 = lst_6->hd; - FX_COPY_PTR(__fold_result___5, &for_ccode_6); if (FX_REC_VARIANT_TAG(e_0) == 3) { _fx_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* vcase_0 = &e_0->u.CExpBinary; if (vcase_0->t0.tag == 15) { - _fx_N14C_form__cexp_t v_109 = vcase_0->t1; - if (FX_REC_VARIANT_TAG(v_109) == 1) { - _fx_N15C_form__cstmt_t v_110 = 0; - _fx_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t* vcase_1 = &v_109->u.CExpIdent; + _fx_N14C_form__cexp_t v_105 = vcase_0->t1; + if (FX_REC_VARIANT_TAG(v_105) == 1) { + _fx_N15C_form__cstmt_t v_106 = 0; + _fx_T2R9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t* vcase_1 = &v_105->u.CExpIdent; FX_CALL( _fx_M6C_formFM7CDefValN15C_form__cstmt_t4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t( - init_t_opt_0.u.Some, &vcase_1->t0, &_fx_g18C_gen_code__None2_, &vcase_1->t1.t1, &v_110), + init_t_opt_0.u.Some, &vcase_1->t0, &_fx_g18C_gen_code__None2_, &vcase_1->t1.t1, &v_106), _fx_catch_17); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_110, for_ccode_6, true, &v_108), _fx_catch_17); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_106, for_ccode_4, true, &v_104), _fx_catch_17); _fx_catch_17: ; - if (v_110) { - _fx_free_N15C_form__cstmt_t(&v_110); + if (v_106) { + _fx_free_N15C_form__cstmt_t(&v_106); } goto _fx_endmatch_3; } } } - fx_exn_t v_111 = {0}; - _fx_R10Ast__loc_t v_112; - FX_CALL(_fx_M6C_formFM12get_cexp_locR10Ast__loc_t1N14C_form__cexp_t(e_0, &v_112, 0), _fx_catch_18); + fx_exn_t v_107 = {0}; + _fx_R10Ast__loc_t v_108; + FX_CALL(_fx_M6C_formFM12get_cexp_locR10Ast__loc_t1N14C_form__cexp_t(e_0, &v_108, 0), _fx_catch_18); fx_str_t slit_19 = FX_MAKE_STR("invalid expression in the for-loop initialization part (should be i=)"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_112, &slit_19, &v_111, 0), _fx_catch_18); - FX_THROW(&v_111, false, _fx_catch_18); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_108, &slit_19, &v_107, 0), _fx_catch_18); + FX_THROW(&v_107, false, _fx_catch_18); _fx_catch_18: ; - fx_free_exn(&v_111); + fx_free_exn(&v_107); _fx_endmatch_3: ; FX_CHECK_EXN(_fx_catch_19); - _fx_free_LN15C_form__cstmt_t(&__fold_result___5); - FX_COPY_PTR(v_108, &__fold_result___5); + _fx_free_LN15C_form__cstmt_t(&for_ccode_4); + FX_COPY_PTR(v_104, &for_ccode_4); _fx_catch_19: ; - if (v_108) { - _fx_free_LN15C_form__cstmt_t(&v_108); - } - if (for_ccode_6) { - _fx_free_LN15C_form__cstmt_t(&for_ccode_6); + if (v_104) { + _fx_free_LN15C_form__cstmt_t(&v_104); } FX_CHECK_EXN(_fx_catch_20); } - FX_COPY_PTR(__fold_result___5, &for_ccode_2); + FX_COPY_PTR(for_ccode_4, &for_ccode_0); _fx_catch_20: ; - if (__fold_result___5) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___5); + if (for_ccode_4) { + _fx_free_LN15C_form__cstmt_t(&for_ccode_4); } } FX_CHECK_EXN(_fx_catch_21); FX_CALL( - _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(for_body_ccode_0, kloc_0, &v_103, 0), + _fx_M6C_formFM11rccode2stmtN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(for_body_ccode_0, kloc_0, &v_99, 0), _fx_catch_21); FX_CALL( _fx_M6C_formFM8CStmtForN15C_form__cstmt_t6Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_tN15C_form__cstmt_tR10Ast__loc_t( - &t_opt_1, for_inits_0, &for_check_opt_0, for_incrs_1, v_103, kloc_0, &v_104), _fx_catch_21); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_104, for_ccode_2, true, &for_ccode_3), _fx_catch_21); + &t_opt_1, for_inits_0, &for_check_opt_0, for_incrs_1, v_99, kloc_0, &v_100), _fx_catch_21); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_100, for_ccode_0, true, &for_ccode_1), _fx_catch_21); if (!insert_pragma_0) { - FX_COPY_PTR(for_ccode_3, &for_ccode_4); + FX_COPY_PTR(for_ccode_1, &for_ccode_2); } else { fx_str_t slit_20 = FX_MAKE_STR("omp parallel for"); - FX_CALL(_fx_M6C_formFM12CMacroPragmaN15C_form__cstmt_t2SR10Ast__loc_t(&slit_20, kloc_0, &v_105), _fx_catch_21); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_105, 0, true, &v_106), _fx_catch_21); + FX_CALL(_fx_M6C_formFM12CMacroPragmaN15C_form__cstmt_t2SR10Ast__loc_t(&slit_20, kloc_0, &v_101), _fx_catch_21); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_101, 0, true, &v_102), _fx_catch_21); FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(for_ccode_3, v_106, - &for_ccode_4, 0), _fx_catch_21); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(for_ccode_1, v_102, + &for_ccode_2, 0), _fx_catch_21); } bool t_8; if (k_1 > 0) { @@ -36584,56 +35749,53 @@ _fx_endmatch_1: ; t_8 = pre_body_ccode_1 == 0; } if (t_8) { - FX_COPY_PTR(for_ccode_4, &for_ccode_5); + FX_COPY_PTR(for_ccode_2, &for_ccode_3); } else { FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(for_ccode_4, pre_body_ccode_1, - &for_ccode_5, 0), _fx_catch_21); + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(for_ccode_2, pre_body_ccode_1, + &for_ccode_3, 0), _fx_catch_21); } - _fx_free_LN15C_form__cstmt_t(&__fold_result___2); - FX_COPY_PTR(for_ccode_5, &__fold_result___2); + _fx_free_LN15C_form__cstmt_t(&acc_for_ccode_0); + FX_COPY_PTR(for_ccode_3, &acc_for_ccode_0); _fx_catch_21: ; - if (for_ccode_5) { - _fx_free_LN15C_form__cstmt_t(&for_ccode_5); - } - if (v_106) { - _fx_free_LN15C_form__cstmt_t(&v_106); - } - if (v_105) { - _fx_free_N15C_form__cstmt_t(&v_105); - } - if (for_ccode_4) { - _fx_free_LN15C_form__cstmt_t(&for_ccode_4); - } if (for_ccode_3) { _fx_free_LN15C_form__cstmt_t(&for_ccode_3); } - if (v_104) { - _fx_free_N15C_form__cstmt_t(&v_104); + if (v_102) { + _fx_free_LN15C_form__cstmt_t(&v_102); } - if (v_103) { - _fx_free_N15C_form__cstmt_t(&v_103); + if (v_101) { + _fx_free_N15C_form__cstmt_t(&v_101); } if (for_ccode_2) { _fx_free_LN15C_form__cstmt_t(&for_ccode_2); } + if (for_ccode_1) { + _fx_free_LN15C_form__cstmt_t(&for_ccode_1); + } + if (v_100) { + _fx_free_N15C_form__cstmt_t(&v_100); + } + if (v_99) { + _fx_free_N15C_form__cstmt_t(&v_99); + } + if (for_ccode_0) { + _fx_free_LN15C_form__cstmt_t(&for_ccode_0); + } _fx_free_Nt6option1N14C_form__ctyp_t(&init_t_opt_0); _fx_free_Nt6option1N14C_form__ctyp_t(&t_opt_1); - _fx_free_Ta2Nt6option1N14C_form__ctyp_t(&v_102); + _fx_free_Ta2Nt6option1N14C_form__ctyp_t(&v_98); if (for_body_ccode_0) { _fx_free_LN15C_form__cstmt_t(&for_body_ccode_0); } - if (v_101) { - _fx_free_LN14C_form__cexp_t(&v_101); + if (v_97) { + _fx_free_LN14C_form__cexp_t(&v_97); } if (for_incrs_1) { _fx_free_LN14C_form__cexp_t(&for_incrs_1); } - if (for_ccode_1) { - _fx_free_LN15C_form__cstmt_t(&for_ccode_1); - } if (for_incrs_0) { _fx_free_LN14C_form__cexp_t(&for_incrs_0); } @@ -36644,23 +35806,22 @@ _fx_endmatch_1: ; _fx_free_Nt6option1N14C_form__ctyp_t(&t_opt_0); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___2, &for_ccode_0); bool res_2; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&br_label_0, &_fx_g9Ast__noid, &res_2, 0), _fx_cleanup); if (res_2) { FX_COPY_PTR(post_ccode_0, &post_ccode_1); } else { - FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&br_label_0, end_for_loc_0, &v_21), + FX_CALL(_fx_M6C_formFM10CStmtLabelN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&br_label_0, end_for_loc_0, &v_20), _fx_cleanup); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_21, post_ccode_0, true, &post_ccode_1), _fx_cleanup); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_20, post_ccode_0, true, &post_ccode_1), _fx_cleanup); } FX_CALL( - _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(for_ccode_0, init_ccode_1, &v_22, - 0), _fx_cleanup); - FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(post_ccode_1, v_22, &v_23, 0), + _fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(acc_for_ccode_0, init_ccode_1, + &v_21, 0), _fx_cleanup); + FX_CALL(_fx_M10C_gen_codeFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(post_ccode_1, v_21, &v_22, 0), _fx_cleanup); - _fx_make_Ta2LN15C_form__cstmt_t(pre_map_ccode_2, v_23, fx_result); + _fx_make_Ta2LN15C_form__cstmt_t(pre_map_ccode_2, v_22, fx_result); _fx_cleanup: ; FX_FREE_FP(&kexp2cexp_0); @@ -36733,40 +35894,41 @@ _fx_cleanup: ; if (alloc_array_ccode_0) { _fx_free_LN15C_form__cstmt_t(&alloc_array_ccode_0); } - _fx_free_T2iLN14C_form__cexp_t(&__fold_result___0); - _fx_free_T2iLN14C_form__cexp_t(&v_6); if (cmp_size_list_0) { _fx_free_LN14C_form__cexp_t(&cmp_size_list_0); } + if (cmp_size_list_1) { + _fx_free_LN14C_form__cexp_t(&cmp_size_list_1); + } if (lbl_1) { _fx_free_N14C_form__cexp_t(&lbl_1); } - if (__fold_result___1) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___1); - } if (then_ccode_0) { _fx_free_LN15C_form__cstmt_t(&then_ccode_0); } if (cc_exp_0) { _fx_free_N14C_form__cexp_t(&cc_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_7); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_6); if (cc_exp_1) { _fx_free_N14C_form__cexp_t(&cc_exp_1); } if (else_ccode_0) { _fx_free_LN15C_form__cstmt_t(&else_ccode_0); } + if (v_7) { + _fx_free_N15C_form__cstmt_t(&v_7); + } if (v_8) { _fx_free_N15C_form__cstmt_t(&v_8); } - if (v_9) { - _fx_free_N15C_form__cstmt_t(&v_9); - } if (check_or_create_0) { _fx_free_N15C_form__cstmt_t(&check_or_create_0); } - _fx_free_Ta2LN15C_form__cstmt_t(&v_10); + _fx_free_Ta2LN15C_form__cstmt_t(&v_9); + if (v_10) { + _fx_free_LN15C_form__cstmt_t(&v_10); + } if (v_11) { _fx_free_LN15C_form__cstmt_t(&v_11); } @@ -36782,9 +35944,6 @@ _fx_cleanup: ; if (v_15) { _fx_free_LN15C_form__cstmt_t(&v_15); } - if (v_16) { - _fx_free_LN15C_form__cstmt_t(&v_16); - } if (pre_map_ccode_1) { _fx_free_LN15C_form__cstmt_t(&pre_map_ccode_1); } @@ -36795,7 +35954,7 @@ _fx_cleanup: ; _fx_free_LN15C_form__cstmt_t(&body_ccode_0); } _fx_free_T4BLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tLN15C_form__cstmt_tTa2LN15C_form__cstmt_t( - &v_17); + &v_16); if (dst_data_1) { _fx_free_LT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_t(&dst_data_1); } @@ -36808,51 +35967,48 @@ _fx_cleanup: ; if (body_ccode_1) { _fx_free_LN15C_form__cstmt_t(&body_ccode_1); } - _fx_free_T2R9Ast__id_tN15C_form__cstmt_t(&v_18); + _fx_free_T2R9Ast__id_tN15C_form__cstmt_t(&v_17); if (body_stmt_0) { _fx_free_N15C_form__cstmt_t(&body_stmt_0); } - if (v_19) { - _fx_free_LN15C_form__cstmt_t(&v_19); - } - if (__fold_result___2) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___2); + if (v_18) { + _fx_free_LN15C_form__cstmt_t(&v_18); } - if (v_20) { - _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_20); + if (acc_for_ccode_0) { + _fx_free_LN15C_form__cstmt_t(&acc_for_ccode_0); } - if (for_ccode_0) { - _fx_free_LN15C_form__cstmt_t(&for_ccode_0); + if (v_19) { + _fx_free_LT4Nt6option1N14C_form__ctyp_tLN14C_form__cexp_tNt6option1N14C_form__cexp_tLN14C_form__cexp_t(&v_19); } if (post_ccode_1) { _fx_free_LN15C_form__cstmt_t(&post_ccode_1); } + if (v_20) { + _fx_free_N15C_form__cstmt_t(&v_20); + } if (v_21) { - _fx_free_N15C_form__cstmt_t(&v_21); + _fx_free_LN15C_form__cstmt_t(&v_21); } if (v_22) { _fx_free_LN15C_form__cstmt_t(&v_22); } - if (v_23) { - _fx_free_LN15C_form__cstmt_t(&v_23); - } return fx_status; } FX_EXTERN_C int - _fx_M10C_gen_codeFM7make_fpFPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB5rLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( + _fx_M10C_gen_codeFM7make_fpFPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB5rLrRM11block_ctx_trNt10Hashset__t1R9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_ti( struct _fx_rLrR23C_gen_code__block_ctx_t_data_t* arg0, struct _fx_rNt10Hashset__t1R9Ast__id_t_data_t* arg1, struct _fx_rLN15C_form__cstmt_t_data_t* arg2, struct _fx_rNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_t_data_t* arg3, int_ arg4, - struct _fx_FPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrR23C_gen_code__block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB* + struct _fx_FPTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrR23C_gen_code__block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB* fx_result) { FX_MAKE_FP_IMPL_START( - _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB_cldata_t, - _fx_free_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB, - _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_tiBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB); + _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB_cldata_t, + _fx_free_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB, + _fx_M10C_gen_codeFM8form_mapTa2LN15C_form__cstmt_t34LN15C_form__cstmt_tiLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14C_form__cexp_tLN14C_form__cexp_trLrRM11block_ctx_tLN15C_form__cstmt_trNt10Hashset__t1R9Ast__id_tLT5N14C_form__ctyp_tN14C_form__ctyp_tN14C_form__cexp_tN14C_form__cexp_tN14C_form__cexp_tR10Ast__loc_tN15Ast__for_make_tLSR10Ast__loc_trrNt6option1N14C_form__cexp_trLN15C_form__cstmt_tR9Ast__id_trLN15C_form__cstmt_trNt10Hashmap__t2R9Ast__id_tN14C_form__cexp_tBR10Ast__loc_tiN14C_form__cexp_tLN12Ast__scope_trLN15C_form__cstmt_triBN14C_form__cexp_tiN14C_form__cexp_tBrirLN15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tB); FX_COPY_PTR(arg0, &fcv->t0); FX_COPY_PTR(arg1, &fcv->t1); FX_COPY_PTR(arg2, &fcv->t2); @@ -36870,15 +36026,13 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM13gen_ccode_allLR17C_form__cmodule_t1LR17K_fo _fx_LN15C_form__cstmt_t all_ctypes_fwd_decl_0 = 0; _fx_LN15C_form__cstmt_t all_ctypes_decl_0 = 0; _fx_LN15C_form__cstmt_t all_ctypes_fun_decl_0 = 0; - _fx_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t __fold_result___0 = - {0}; - _fx_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t v_1 = {0}; _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t kmods_plus_0 = 0; - _fx_LR17C_form__cmodule_t __fold_result___1 = 0; - _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t __fold_result___2 = 0; - _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t v_2 = 0; + _fx_LN15C_form__cstmt_t all_exn_data_decls_0 = 0; + _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t kmods_plus_1 = 0; _fx_LR17C_form__cmodule_t cmods_0 = 0; - _fx_LR17C_form__cmodule_t __fold_result___3 = 0; + _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t res_0 = 0; + _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t v_1 = 0; + _fx_LR17C_form__cmodule_t res_1 = 0; int fx_status = 0; FX_CALL(_fx_M11C_gen_typesFM16convert_all_typsTa3LN15C_form__cstmt_t1LR17K_form__kmodule_t(kmods_0, &v_0, 0), _fx_cleanup); FX_COPY_PTR(v_0.t0, &all_ctypes_fwd_decl_0); @@ -36886,125 +36040,117 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM13gen_ccode_allLR17C_form__cmodule_t1LR17K_fo FX_COPY_PTR(v_0.t2, &all_ctypes_fun_decl_0); fx_str_t slit_0 = FX_MAKE_STR("\ttypes definitions have been translated to C"); FX_CALL(_fx_M3AstFM10pr_verbosev1S(&slit_0, 0), _fx_cleanup); - _fx_make_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(0, 0, - &__fold_result___0); _fx_LR17K_form__kmodule_t lst_0 = kmods_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t v_3 = {0}; - _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t kmods_plus_1 = 0; - _fx_LN15C_form__cstmt_t all_exn_data_decls_0 = 0; - _fx_LN14K_form__kexp_t v_4 = 0; - _fx_Ta3LN15C_form__cstmt_t v_5 = {0}; + _fx_LN14K_form__kexp_t v_2 = 0; + _fx_Ta3LN15C_form__cstmt_t v_3 = {0}; _fx_LN15C_form__cstmt_t c_fdecls_0 = 0; _fx_LN15C_form__cstmt_t mod_init_calls_0 = 0; _fx_LN15C_form__cstmt_t mod_exn_data_decls_0 = 0; - _fx_LN15C_form__cstmt_t __fold_result___4 = 0; - _fx_LN15C_form__cstmt_t v_6 = 0; - _fx_T4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t v_7 = {0}; - _fx_LN15C_form__cstmt_t __fold_result___5 = 0; - _fx_LN15C_form__cstmt_t v_8 = 0; + _fx_LN15C_form__cstmt_t res_2 = 0; + _fx_LN15C_form__cstmt_t v_4 = 0; + _fx_T4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t v_5 = {0}; + _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t v_6 = 0; + _fx_LN15C_form__cstmt_t res_3 = 0; + _fx_LN15C_form__cstmt_t v_7 = 0; + _fx_Ta2LN15C_form__cstmt_t v_8 = {0}; _fx_LN15C_form__cstmt_t v_9 = 0; - _fx_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t v_10 = {0}; _fx_R17K_form__kmodule_t* km_0 = &lst_0->hd; - _fx_copy_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &__fold_result___0, &v_3); - FX_COPY_PTR(v_3.t0, &kmods_plus_1); - FX_COPY_PTR(v_3.t1, &all_exn_data_decls_0); - FX_COPY_PTR(km_0->km_top, &v_4); - FX_CALL(_fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2iLN14K_form__kexp_t(km_0->km_idx, v_4, &v_5, 0), + FX_COPY_PTR(km_0->km_top, &v_2); + FX_CALL(_fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2iLN14K_form__kexp_t(km_0->km_idx, v_2, &v_3, 0), _fx_catch_4); - FX_COPY_PTR(v_5.t0, &c_fdecls_0); - FX_COPY_PTR(v_5.t1, &mod_init_calls_0); - FX_COPY_PTR(v_5.t2, &mod_exn_data_decls_0); + FX_COPY_PTR(v_3.t0, &c_fdecls_0); + FX_COPY_PTR(v_3.t1, &mod_init_calls_0); + FX_COPY_PTR(v_3.t2, &mod_exn_data_decls_0); _fx_LN15C_form__cstmt_t lst_1 = all_exn_data_decls_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN15C_form__cstmt_t r_0 = 0; + _fx_LN15C_form__cstmt_t v_10 = 0; _fx_N15C_form__cstmt_t a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___4, &r_0); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN15C_form__cstmt_t(&__fold_result___4); - FX_COPY_PTR(r_0, &__fold_result___4); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, res_2, true, &v_10), _fx_catch_0); + _fx_free_LN15C_form__cstmt_t(&res_2); + FX_COPY_PTR(v_10, &res_2); _fx_catch_0: ; - if (r_0) { - _fx_free_LN15C_form__cstmt_t(&r_0); + if (v_10) { + _fx_free_LN15C_form__cstmt_t(&v_10); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___4, &v_6); + FX_COPY_PTR(res_2, &v_4); _fx_make_T4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(km_0, c_fdecls_0, - mod_init_calls_0, v_6, &v_7); + mod_init_calls_0, v_4, &v_5); FX_CALL( - _fx_cons_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_7, kmods_plus_1, false, - &kmods_plus_1), _fx_catch_4); + _fx_cons_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_5, kmods_plus_0, true, + &v_6), _fx_catch_4); + _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&kmods_plus_0); + FX_COPY_PTR(v_6, &kmods_plus_0); _fx_LN15C_form__cstmt_t lst_2 = mod_exn_data_decls_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN15C_form__cstmt_t r_1 = 0; + _fx_LN15C_form__cstmt_t v_11 = 0; _fx_N15C_form__cstmt_t a_1 = lst_2->hd; - FX_COPY_PTR(__fold_result___5, &r_1); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_1, r_1, false, &r_1), _fx_catch_1); - _fx_free_LN15C_form__cstmt_t(&__fold_result___5); - FX_COPY_PTR(r_1, &__fold_result___5); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_1, res_3, true, &v_11), _fx_catch_1); + _fx_free_LN15C_form__cstmt_t(&res_3); + FX_COPY_PTR(v_11, &res_3); _fx_catch_1: ; - if (r_1) { - _fx_free_LN15C_form__cstmt_t(&r_1); + if (v_11) { + _fx_free_LN15C_form__cstmt_t(&v_11); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___5, &v_8); - if (v_8 == 0) { + FX_COPY_PTR(res_3, &v_7); + _fx_make_Ta2LN15C_form__cstmt_t(v_7, all_exn_data_decls_0, &v_8); + if (v_8.t0 == 0) { FX_COPY_PTR(all_exn_data_decls_0, &v_9); } - else if (all_exn_data_decls_0 == 0) { - FX_COPY_PTR(v_8, &v_9); + else if (v_8.t1 == 0) { + FX_COPY_PTR(v_7, &v_9); } else { - _fx_LN15C_form__cstmt_t v_11 = 0; + _fx_LN15C_form__cstmt_t v_12 = 0; _fx_LN15C_form__cstmt_t lstend_0 = 0; - _fx_LN15C_form__cstmt_t lst_3 = v_8; + _fx_LN15C_form__cstmt_t lst_3 = v_7; for (; lst_3; lst_3 = lst_3->tl) { _fx_N15C_form__cstmt_t x_0 = lst_3->hd; _fx_LN15C_form__cstmt_t node_0 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_0, 0, false, &node_0), _fx_catch_2); - FX_LIST_APPEND(v_11, lstend_0, node_0); + FX_LIST_APPEND(v_12, lstend_0, node_0); _fx_catch_2: ; FX_CHECK_EXN(_fx_catch_3); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_11, all_exn_data_decls_0, &v_9, + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_12, all_exn_data_decls_0, &v_9, 0); _fx_catch_3: ; - if (v_11) { - _fx_free_LN15C_form__cstmt_t(&v_11); + if (v_12) { + _fx_free_LN15C_form__cstmt_t(&v_12); } } FX_CHECK_EXN(_fx_catch_4); - _fx_make_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - kmods_plus_1, v_9, &v_10); - _fx_free_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &__fold_result___0); - _fx_copy_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_10, - &__fold_result___0); + _fx_free_LN15C_form__cstmt_t(&all_exn_data_decls_0); + FX_COPY_PTR(v_9, &all_exn_data_decls_0); _fx_catch_4: ; - _fx_free_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_10); if (v_9) { _fx_free_LN15C_form__cstmt_t(&v_9); } - if (v_8) { - _fx_free_LN15C_form__cstmt_t(&v_8); + _fx_free_Ta2LN15C_form__cstmt_t(&v_8); + if (v_7) { + _fx_free_LN15C_form__cstmt_t(&v_7); } - if (__fold_result___5) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___5); + if (res_3) { + _fx_free_LN15C_form__cstmt_t(&res_3); } - _fx_free_T4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_7); if (v_6) { - _fx_free_LN15C_form__cstmt_t(&v_6); + _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_6); + } + _fx_free_T4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_5); + if (v_4) { + _fx_free_LN15C_form__cstmt_t(&v_4); } - if (__fold_result___4) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___4); + if (res_2) { + _fx_free_LN15C_form__cstmt_t(&res_2); } if (mod_exn_data_decls_0) { _fx_free_LN15C_form__cstmt_t(&mod_exn_data_decls_0); @@ -37015,66 +36161,55 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM13gen_ccode_allLR17C_form__cmodule_t1LR17K_fo if (c_fdecls_0) { _fx_free_LN15C_form__cstmt_t(&c_fdecls_0); } - _fx_free_Ta3LN15C_form__cstmt_t(&v_5); - if (v_4) { - _fx_free_LN14K_form__kexp_t(&v_4); - } - if (all_exn_data_decls_0) { - _fx_free_LN15C_form__cstmt_t(&all_exn_data_decls_0); + _fx_free_Ta3LN15C_form__cstmt_t(&v_3); + if (v_2) { + _fx_free_LN14K_form__kexp_t(&v_2); } - if (kmods_plus_1) { - _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&kmods_plus_1); - } - _fx_free_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_3); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &__fold_result___0, &v_1); - FX_COPY_PTR(v_1.t0, &kmods_plus_0); + FX_COPY_PTR(kmods_plus_0, &kmods_plus_1); fx_str_t slit_1 = FX_MAKE_STR("\tfunction declarations and exceptions have been translated to C"); FX_CALL(_fx_M3AstFM10pr_verbosev1S(&slit_1, 0), _fx_cleanup); - _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t lst_4 = kmods_plus_0; + _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t lst_4 = kmods_plus_1; for (; lst_4; lst_4 = lst_4->tl) { - _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t r_2 = 0; + _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t v_13 = 0; _fx_T4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t* a_2 = &lst_4->hd; - FX_COPY_PTR(__fold_result___2, &r_2); - FX_CALL(_fx_cons_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(a_2, r_2, false, &r_2), + FX_CALL( + _fx_cons_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(a_2, res_0, true, &v_13), _fx_catch_5); - _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&__fold_result___2); - FX_COPY_PTR(r_2, &__fold_result___2); + _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&res_0); + FX_COPY_PTR(v_13, &res_0); _fx_catch_5: ; - if (r_2) { - _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&r_2); + if (v_13) { + _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_13); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___2, &v_2); - _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t lst_5 = v_2; + FX_COPY_PTR(res_0, &v_1); + _fx_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t lst_5 = v_1; for (; lst_5; lst_5 = lst_5->tl) { _fx_R17K_form__kmodule_t km_1 = {0}; _fx_LN15C_form__cstmt_t c_fdecls_1 = 0; _fx_LN15C_form__cstmt_t mod_init_calls_1 = 0; _fx_LN15C_form__cstmt_t exn_data_decls_0 = 0; - _fx_LR17C_form__cmodule_t cmods_1 = 0; _fx_R14Ast__pragmas_t km_pragmas_0 = {0}; fx_str_t km_cname_0 = {0}; - _fx_Ta2LN15C_form__cstmt_t v_12 = {0}; + _fx_Ta2LN15C_form__cstmt_t v_14 = {0}; _fx_LN15C_form__cstmt_t prologue_0 = 0; _fx_LN15C_form__cstmt_t ccode_0 = 0; - _fx_LN15C_form__cstmt_t v_13 = 0; - _fx_LN15C_form__cstmt_t ctypes_0 = 0; - fx_str_t v_14 = {0}; _fx_LN15C_form__cstmt_t v_15 = 0; - _fx_LN15C_form__cstmt_t v_16 = 0; - _fx_R17C_form__cmodule_t v_17 = {0}; - _fx_LR17C_form__cmodule_t v_18 = 0; + _fx_LN15C_form__cstmt_t ctypes_0 = 0; + fx_str_t v_16 = {0}; + _fx_LN15C_form__cstmt_t v_17 = 0; + _fx_LN15C_form__cstmt_t v_18 = 0; + _fx_R17C_form__cmodule_t v_19 = {0}; + _fx_LR17C_form__cmodule_t v_20 = 0; _fx_T4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t* __pat___0 = &lst_5->hd; _fx_copy_R17K_form__kmodule_t(&__pat___0->t0, &km_1); FX_COPY_PTR(__pat___0->t1, &c_fdecls_1); FX_COPY_PTR(__pat___0->t2, &mod_init_calls_1); FX_COPY_PTR(__pat___0->t3, &exn_data_decls_0); - FX_COPY_PTR(__fold_result___1, &cmods_1); _fx_copy_R14Ast__pragmas_t(&km_1.km_pragmas, &km_pragmas_0); bool km_skip_0 = km_1.km_skip; bool km_main_0 = km_1.km_main; @@ -37082,117 +36217,117 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM13gen_ccode_allLR17C_form__cmodule_t1LR17K_fo _fx_R9Ast__id_t km_name_0 = km_1.km_name; FX_CALL( _fx_M10C_gen_codeFM9gen_ccodeTa2LN15C_form__cstmt_t4LR17C_form__cmodule_tR17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - cmods_1, &km_1, c_fdecls_1, mod_init_calls_1, &v_12, 0), _fx_catch_12); - FX_COPY_PTR(v_12.t0, &prologue_0); - FX_COPY_PTR(v_12.t1, &ccode_0); - _fx_R9Ast__id_t v_19 = km_1.km_name; + cmods_0, &km_1, c_fdecls_1, mod_init_calls_1, &v_14, 0), _fx_catch_12); + FX_COPY_PTR(v_14.t0, &prologue_0); + FX_COPY_PTR(v_14.t1, &ccode_0); + _fx_R9Ast__id_t v_21 = km_1.km_name; if (all_ctypes_decl_0 == 0) { - FX_COPY_PTR(exn_data_decls_0, &v_13); + FX_COPY_PTR(exn_data_decls_0, &v_15); } else if (exn_data_decls_0 == 0) { - FX_COPY_PTR(all_ctypes_decl_0, &v_13); + FX_COPY_PTR(all_ctypes_decl_0, &v_15); } else { - _fx_LN15C_form__cstmt_t v_20 = 0; + _fx_LN15C_form__cstmt_t v_22 = 0; _fx_LN15C_form__cstmt_t lstend_1 = 0; _fx_LN15C_form__cstmt_t lst_6 = all_ctypes_decl_0; for (; lst_6; lst_6 = lst_6->tl) { _fx_N15C_form__cstmt_t x_1 = lst_6->hd; _fx_LN15C_form__cstmt_t node_1 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_1, 0, false, &node_1), _fx_catch_6); - FX_LIST_APPEND(v_20, lstend_1, node_1); + FX_LIST_APPEND(v_22, lstend_1, node_1); _fx_catch_6: ; FX_CHECK_EXN(_fx_catch_7); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_20, exn_data_decls_0, &v_13, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_22, exn_data_decls_0, &v_15, 0); _fx_catch_7: ; - if (v_20) { - _fx_free_LN15C_form__cstmt_t(&v_20); + if (v_22) { + _fx_free_LN15C_form__cstmt_t(&v_22); } } FX_CHECK_EXN(_fx_catch_12); FX_CALL( _fx_M11C_gen_typesFM18elim_unused_ctypesLN15C_form__cstmt_t5R9Ast__id_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &v_19, all_ctypes_fwd_decl_0, v_13, all_ctypes_fun_decl_0, ccode_0, &ctypes_0, 0), _fx_catch_12); - FX_CALL(_fx_M8K_mangleFM12mangle_mnameS1S(&km_cname_0, &v_14, 0), _fx_catch_12); + &v_21, all_ctypes_fwd_decl_0, v_15, all_ctypes_fun_decl_0, ccode_0, &ctypes_0, 0), _fx_catch_12); + FX_CALL(_fx_M8K_mangleFM12mangle_mnameS1S(&km_cname_0, &v_16, 0), _fx_catch_12); if (ctypes_0 == 0) { - FX_COPY_PTR(ccode_0, &v_15); + FX_COPY_PTR(ccode_0, &v_17); } else if (ccode_0 == 0) { - FX_COPY_PTR(ctypes_0, &v_15); + FX_COPY_PTR(ctypes_0, &v_17); } else { - _fx_LN15C_form__cstmt_t v_21 = 0; + _fx_LN15C_form__cstmt_t v_23 = 0; _fx_LN15C_form__cstmt_t lstend_2 = 0; _fx_LN15C_form__cstmt_t lst_7 = ctypes_0; for (; lst_7; lst_7 = lst_7->tl) { _fx_N15C_form__cstmt_t x_2 = lst_7->hd; _fx_LN15C_form__cstmt_t node_2 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_2, 0, false, &node_2), _fx_catch_8); - FX_LIST_APPEND(v_21, lstend_2, node_2); + FX_LIST_APPEND(v_23, lstend_2, node_2); _fx_catch_8: ; FX_CHECK_EXN(_fx_catch_9); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_21, ccode_0, &v_15, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_23, ccode_0, &v_17, 0); _fx_catch_9: ; - if (v_21) { - _fx_free_LN15C_form__cstmt_t(&v_21); + if (v_23) { + _fx_free_LN15C_form__cstmt_t(&v_23); } } FX_CHECK_EXN(_fx_catch_12); if (prologue_0 == 0) { - FX_COPY_PTR(v_15, &v_16); + FX_COPY_PTR(v_17, &v_18); } - else if (v_15 == 0) { - FX_COPY_PTR(prologue_0, &v_16); + else if (v_17 == 0) { + FX_COPY_PTR(prologue_0, &v_18); } else { - _fx_LN15C_form__cstmt_t v_22 = 0; + _fx_LN15C_form__cstmt_t v_24 = 0; _fx_LN15C_form__cstmt_t lstend_3 = 0; _fx_LN15C_form__cstmt_t lst_8 = prologue_0; for (; lst_8; lst_8 = lst_8->tl) { _fx_N15C_form__cstmt_t x_3 = lst_8->hd; _fx_LN15C_form__cstmt_t node_3 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_3, 0, false, &node_3), _fx_catch_10); - FX_LIST_APPEND(v_22, lstend_3, node_3); + FX_LIST_APPEND(v_24, lstend_3, node_3); _fx_catch_10: ; FX_CHECK_EXN(_fx_catch_11); } - _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_22, v_15, &v_16, 0); + _fx_M10C_gen_codeFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_24, v_17, &v_18, 0); _fx_catch_11: ; - if (v_22) { - _fx_free_LN15C_form__cstmt_t(&v_22); + if (v_24) { + _fx_free_LN15C_form__cstmt_t(&v_24); } } FX_CHECK_EXN(_fx_catch_12); - _fx_make_R17C_form__cmodule_t(&km_name_0, &v_14, v_16, km_main_0, true, km_skip_0, &km_pragmas_0, &v_17); - FX_CALL(_fx_cons_LR17C_form__cmodule_t(&v_17, cmods_1, true, &v_18), _fx_catch_12); - _fx_free_LR17C_form__cmodule_t(&__fold_result___1); - FX_COPY_PTR(v_18, &__fold_result___1); + _fx_make_R17C_form__cmodule_t(&km_name_0, &v_16, v_18, km_main_0, true, km_skip_0, &km_pragmas_0, &v_19); + FX_CALL(_fx_cons_LR17C_form__cmodule_t(&v_19, cmods_0, true, &v_20), _fx_catch_12); + _fx_free_LR17C_form__cmodule_t(&cmods_0); + FX_COPY_PTR(v_20, &cmods_0); _fx_catch_12: ; - if (v_18) { - _fx_free_LR17C_form__cmodule_t(&v_18); + if (v_20) { + _fx_free_LR17C_form__cmodule_t(&v_20); } - _fx_free_R17C_form__cmodule_t(&v_17); - if (v_16) { - _fx_free_LN15C_form__cstmt_t(&v_16); + _fx_free_R17C_form__cmodule_t(&v_19); + if (v_18) { + _fx_free_LN15C_form__cstmt_t(&v_18); } - if (v_15) { - _fx_free_LN15C_form__cstmt_t(&v_15); + if (v_17) { + _fx_free_LN15C_form__cstmt_t(&v_17); } - FX_FREE_STR(&v_14); + FX_FREE_STR(&v_16); if (ctypes_0) { _fx_free_LN15C_form__cstmt_t(&ctypes_0); } - if (v_13) { - _fx_free_LN15C_form__cstmt_t(&v_13); + if (v_15) { + _fx_free_LN15C_form__cstmt_t(&v_15); } if (ccode_0) { _fx_free_LN15C_form__cstmt_t(&ccode_0); @@ -37200,12 +36335,9 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM13gen_ccode_allLR17C_form__cmodule_t1LR17K_fo if (prologue_0) { _fx_free_LN15C_form__cstmt_t(&prologue_0); } - _fx_free_Ta2LN15C_form__cstmt_t(&v_12); + _fx_free_Ta2LN15C_form__cstmt_t(&v_14); FX_FREE_STR(&km_cname_0); _fx_free_R14Ast__pragmas_t(&km_pragmas_0); - if (cmods_1) { - _fx_free_LR17C_form__cmodule_t(&cmods_1); - } if (exn_data_decls_0) { _fx_free_LN15C_form__cstmt_t(&exn_data_decls_0); } @@ -37218,25 +36350,23 @@ FX_EXTERN_C int _fx_M10C_gen_codeFM13gen_ccode_allLR17C_form__cmodule_t1LR17K_fo _fx_free_R17K_form__kmodule_t(&km_1); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &cmods_0); fx_str_t slit_2 = FX_MAKE_STR("\tall modules have been translated"); FX_CALL(_fx_M3AstFM10pr_verbosev1S(&slit_2, 0), _fx_cleanup); _fx_LR17C_form__cmodule_t lst_9 = cmods_0; for (; lst_9; lst_9 = lst_9->tl) { - _fx_LR17C_form__cmodule_t r_3 = 0; + _fx_LR17C_form__cmodule_t v_25 = 0; _fx_R17C_form__cmodule_t* a_3 = &lst_9->hd; - FX_COPY_PTR(__fold_result___3, &r_3); - FX_CALL(_fx_cons_LR17C_form__cmodule_t(a_3, r_3, false, &r_3), _fx_catch_13); - _fx_free_LR17C_form__cmodule_t(&__fold_result___3); - FX_COPY_PTR(r_3, &__fold_result___3); + FX_CALL(_fx_cons_LR17C_form__cmodule_t(a_3, res_1, true, &v_25), _fx_catch_13); + _fx_free_LR17C_form__cmodule_t(&res_1); + FX_COPY_PTR(v_25, &res_1); _fx_catch_13: ; - if (r_3) { - _fx_free_LR17C_form__cmodule_t(&r_3); + if (v_25) { + _fx_free_LR17C_form__cmodule_t(&v_25); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___3, fx_result); + FX_COPY_PTR(res_1, fx_result); _fx_cleanup: ; _fx_free_Ta3LN15C_form__cstmt_t(&v_0); @@ -37249,26 +36379,26 @@ _fx_cleanup: ; if (all_ctypes_fun_decl_0) { _fx_free_LN15C_form__cstmt_t(&all_ctypes_fun_decl_0); } - _fx_free_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t( - &__fold_result___0); - _fx_free_T2LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_1); if (kmods_plus_0) { _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&kmods_plus_0); } - if (__fold_result___1) { - _fx_free_LR17C_form__cmodule_t(&__fold_result___1); + if (all_exn_data_decls_0) { + _fx_free_LN15C_form__cstmt_t(&all_exn_data_decls_0); } - if (__fold_result___2) { - _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&__fold_result___2); - } - if (v_2) { - _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_2); + if (kmods_plus_1) { + _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&kmods_plus_1); } if (cmods_0) { _fx_free_LR17C_form__cmodule_t(&cmods_0); } - if (__fold_result___3) { - _fx_free_LR17C_form__cmodule_t(&__fold_result___3); + if (res_0) { + _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&res_0); + } + if (v_1) { + _fx_free_LT4R17K_form__kmodule_tLN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_t(&v_1); + } + if (res_1) { + _fx_free_LR17C_form__cmodule_t(&res_1); } return fx_status; } diff --git a/compiler/bootstrap/C_gen_fdecls.c b/compiler/bootstrap/C_gen_fdecls.c index 8f155e2e..39548be6 100644 --- a/compiler/bootstrap/C_gen_fdecls.c +++ b/compiler/bootstrap/C_gen_fdecls.c @@ -1272,23 +1272,11 @@ typedef struct _fx_T2N14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form_ struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t* t1; } _fx_T2N14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t; -typedef struct _fx_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t { - struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* t0; - struct _fx_LN15C_form__cstmt_t_data_t* t1; -} _fx_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t; - typedef struct _fx_T2R9Ast__id_tLN15C_form__cstmt_t { struct _fx_R9Ast__id_t t0; struct _fx_LN15C_form__cstmt_t_data_t* t1; } _fx_T2R9Ast__id_tLN15C_form__cstmt_t; -typedef struct _fx_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t { - struct _fx_LN15C_form__cstmt_t_data_t* t0; - struct _fx_LR9Ast__id_t_data_t* t1; - struct _fx_LN14C_form__cexp_t_data_t* t2; - struct _fx_Rt6Set__t1R9Ast__id_t t3; -} _fx_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t; - typedef struct { int_ rc; int_ data; @@ -4820,30 +4808,6 @@ static void _fx_make_T2N14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_for FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t( - struct _fx_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t* dst) -{ - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&dst->t0); - _fx_free_LN15C_form__cstmt_t(&dst->t1); -} - -static void _fx_copy_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t( - struct _fx_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t* src, - struct _fx_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t( - struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* t0, - struct _fx_LN15C_form__cstmt_t_data_t* t1, - struct _fx_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_T2R9Ast__id_tLN15C_form__cstmt_t(struct _fx_T2R9Ast__id_tLN15C_form__cstmt_t* dst) { _fx_free_LN15C_form__cstmt_t(&dst->t1); @@ -4866,38 +4830,6 @@ static void _fx_make_T2R9Ast__id_tLN15C_form__cstmt_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t( - struct _fx_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t* dst) -{ - _fx_free_LN15C_form__cstmt_t(&dst->t0); - fx_free_list_simple(&dst->t1); - _fx_free_LN14C_form__cexp_t(&dst->t2); - _fx_free_Rt6Set__t1R9Ast__id_t(&dst->t3); -} - -static void _fx_copy_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t( - struct _fx_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t* src, - struct _fx_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); - _fx_copy_Rt6Set__t1R9Ast__id_t(&src->t3, &dst->t3); -} - -static void _fx_make_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t( - struct _fx_LN15C_form__cstmt_t_data_t* t0, - struct _fx_LR9Ast__id_t_data_t* t1, - struct _fx_LN14C_form__cexp_t_data_t* t2, - struct _fx_Rt6Set__t1R9Ast__id_t* t3, - struct _fx_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); - _fx_copy_Rt6Set__t1R9Ast__id_t(t3, &fx_result->t3); -} - _fx_Nt6option1N14C_form__cexp_t _fx_g18C_gen_fdecls__None = { 1 }; _fx_Nt6option1R9Ast__id_t _fx_g20C_gen_fdecls__None1_ = { 1 }; _fx_N12Set__color_t _fx_g17C_gen_fdecls__Red = { 1 }; @@ -5230,28 +5162,27 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM3revLN14C_form__cexp_t1LN14C_form__cexp_t( struct _fx_LN14C_form__cexp_t_data_t** fx_result, void* fx_fv) { - _fx_LN14C_form__cexp_t __fold_result___0 = 0; + _fx_LN14C_form__cexp_t res_0 = 0; int fx_status = 0; _fx_LN14C_form__cexp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14C_form__cexp_t r_0 = 0; + _fx_LN14C_form__cexp_t v_0 = 0; _fx_N14C_form__cexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14C_form__cexp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14C_form__cexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14C_form__cexp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN14C_form__cexp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14C_form__cexp_t(&r_0); + if (v_0) { + _fx_free_LN14C_form__cexp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN14C_form__cexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14C_form__cexp_t(&res_0); } return fx_status; } @@ -5261,28 +5192,27 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM3revLT2R9Ast__id_tN14C_form__ctyp_t1LT2R9As struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t** fx_result, void* fx_fv) { - _fx_LT2R9Ast__id_tN14C_form__ctyp_t __fold_result___0 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t res_0 = 0; int fx_status = 0; _fx_LT2R9Ast__id_tN14C_form__ctyp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2R9Ast__id_tN14C_form__ctyp_t r_0 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_0 = 0; _fx_T2R9Ast__id_tN14C_form__ctyp_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&r_0); + if (v_0) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&res_0); } return fx_status; } @@ -5293,28 +5223,27 @@ FX_EXTERN_C int struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t** fx_result, void* fx_fv) { - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t __fold_result___0 = 0; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t res_0 = 0; int fx_status = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t r_0 = 0; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_0 = 0; _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&r_0); + if (v_0) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&__fold_result___0); + if (res_0) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&res_0); } return fx_status; } @@ -5324,28 +5253,27 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t struct _fx_LN15C_form__cstmt_t_data_t** fx_result, void* fx_fv) { - _fx_LN15C_form__cstmt_t __fold_result___0 = 0; + _fx_LN15C_form__cstmt_t res_0 = 0; int fx_status = 0; _fx_LN15C_form__cstmt_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN15C_form__cstmt_t r_0 = 0; + _fx_LN15C_form__cstmt_t v_0 = 0; _fx_N15C_form__cstmt_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN15C_form__cstmt_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN15C_form__cstmt_t(&r_0); + if (v_0) { + _fx_free_LN15C_form__cstmt_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); + if (res_0) { + _fx_free_LN15C_form__cstmt_t(&res_0); } return fx_status; } @@ -5355,25 +5283,24 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM3revLR9Ast__id_t1LR9Ast__id_t( struct _fx_LR9Ast__id_t_data_t** fx_result, void* fx_fv) { - _fx_LR9Ast__id_t __fold_result___0 = 0; + _fx_LR9Ast__id_t res_0 = 0; int fx_status = 0; _fx_LR9Ast__id_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LR9Ast__id_t r_0 = 0; + _fx_LR9Ast__id_t v_0 = 0; _fx_R9Ast__id_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_0); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LR9Ast__id_t(a_0, res_0, true, &v_0), _fx_catch_0); + FX_FREE_LIST_SIMPLE(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_0); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_0); return fx_status; } @@ -5886,7 +5813,6 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 _fx_N14K_form__ktyp_t rt_0 = 0; _fx_LR9Ast__id_t kf_params_0 = 0; fx_str_t kf_cname_0 = {0}; - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t __fold_result___0 = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t args_0 = 0; _fx_N14C_form__ctyp_t crt_0 = 0; _fx_T2N14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_7 = {0}; @@ -5929,7 +5855,6 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 int_ idx_0 = 0; _fx_LR9Ast__id_t lst_1 = kf_params_0; for (; lst_1; lst_1 = lst_1->tl, idx_0 += 1) { - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t args_3 = 0; _fx_R17K_form__kdefval_t v_20 = {0}; _fx_N14K_form__ktyp_t t_0 = 0; fx_str_t cname_0 = {0}; @@ -5939,8 +5864,8 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 _fx_N14C_form__ctyp_t ctyp_1 = 0; _fx_LN19C_form__carg_attr_t arg_flags_0 = 0; _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_23 = {0}; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_24 = 0; _fx_R9Ast__id_t* arg_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___0, &args_3); FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(arg_0, &kf_loc_0, &v_20, 0), _fx_catch_2); FX_COPY_PTR(v_20.kv_typ, &t_0); _fx_R9Ast__id_t arg_1; @@ -5966,36 +5891,36 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 } FX_CALL(_fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(t_0, &kf_loc_0, &ctyp_0, 0), _fx_catch_2); - _fx_R17K_form__ktprops_t v_24; + _fx_R17K_form__ktprops_t v_25; FX_CALL( - _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(t_0, &kf_loc_0, &v_24, 0), + _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(t_0, &kf_loc_0, &v_25, 0), _fx_catch_2); - bool ktp_pass_by_ref_0 = v_24.ktp_pass_by_ref; + bool ktp_pass_by_ref_0 = v_25.ktp_pass_by_ref; if (ktp_pass_by_ref_0) { if (FX_REC_VARIANT_TAG(ctyp_0) == 19) { - _fx_N14C_form__ctyp_t v_25 = 0; - _fx_LN19C_form__carg_attr_t v_26 = 0; - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(ctyp_0, &v_25, 0), _fx_catch_0); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g27C_gen_fdecls__CArgPassByPtr, 0, true, &v_26), _fx_catch_0); - _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(v_25, v_26, &v_22); + _fx_N14C_form__ctyp_t v_26 = 0; + _fx_LN19C_form__carg_attr_t v_27 = 0; + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(ctyp_0, &v_26, 0), _fx_catch_0); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g27C_gen_fdecls__CArgPassByPtr, 0, true, &v_27), _fx_catch_0); + _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(v_26, v_27, &v_22); _fx_catch_0: ; - FX_FREE_LIST_SIMPLE(&v_26); - if (v_25) { - _fx_free_N14C_form__ctyp_t(&v_25); + FX_FREE_LIST_SIMPLE(&v_27); + if (v_26) { + _fx_free_N14C_form__ctyp_t(&v_26); } } else { - _fx_N14C_form__ctyp_t v_27 = 0; - _fx_LN19C_form__carg_attr_t v_28 = 0; - FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(ctyp_0, &v_27, 0), _fx_catch_1); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g27C_gen_fdecls__CArgPassByPtr, 0, true, &v_28), _fx_catch_1); - _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(v_27, v_28, &v_22); + _fx_N14C_form__ctyp_t v_28 = 0; + _fx_LN19C_form__carg_attr_t v_29 = 0; + FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(ctyp_0, &v_28, 0), _fx_catch_1); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g27C_gen_fdecls__CArgPassByPtr, 0, true, &v_29), _fx_catch_1); + _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(v_28, v_29, &v_22); _fx_catch_1: ; - FX_FREE_LIST_SIMPLE(&v_28); - if (v_27) { - _fx_free_N14C_form__ctyp_t(&v_27); + FX_FREE_LIST_SIMPLE(&v_29); + if (v_28) { + _fx_free_N14C_form__ctyp_t(&v_28); } } FX_CHECK_EXN(_fx_catch_2); @@ -6009,12 +5934,14 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 _fx_M6C_formFM10add_cf_argv4R9Ast__id_tN14C_form__ctyp_tSR10Ast__loc_t(&arg_1, ctyp_1, &cname_0, &kf_loc_0, 0), _fx_catch_2); _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&arg_1, ctyp_1, arg_flags_0, &v_23); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_23, args_3, false, &args_3), - _fx_catch_2); - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&__fold_result___0); - FX_COPY_PTR(args_3, &__fold_result___0); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_23, args_0, true, &v_24), _fx_catch_2); + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&args_0); + FX_COPY_PTR(v_24, &args_0); _fx_catch_2: ; + if (v_24) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_24); + } _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_23); FX_FREE_LIST_SIMPLE(&arg_flags_0); if (ctyp_1) { @@ -6030,16 +5957,12 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 _fx_free_N14K_form__ktyp_t(&t_0); } _fx_free_R17K_form__kdefval_t(&v_20); - if (args_3) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&args_3); - } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___0, &args_0); - _fx_R17K_form__ktprops_t v_29; - FX_CALL(_fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(rt_0, &kf_loc_0, &v_29, 0), + _fx_R17K_form__ktprops_t v_30; + FX_CALL(_fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(rt_0, &kf_loc_0, &v_30, 0), _fx_catch_3); - bool rt_scalar_0 = v_29.ktp_scalar; + bool rt_scalar_0 = v_30.ktp_scalar; FX_CALL(_fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(rt_0, &kf_loc_0, &crt_0, 0), _fx_catch_3); bool is_nothrow_0 = kf_flags_0.fun_flag_nothrow; @@ -6058,12 +5981,12 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 args_0, &v_7); } else { - _fx_R9Ast__id_t v_30; + _fx_R9Ast__id_t v_31; fx_str_t slit_2 = FX_MAKE_STR("fx_result"); - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(cm_idx_0, &slit_2, &v_30, 0), _fx_catch_3); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(cm_idx_0, &slit_2, &v_31, 0), _fx_catch_3); FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(crt_0, &crt_1, 0), _fx_catch_3); fx_str_t slit_3 = FX_MAKE_STR("fx_result"); - FX_CALL(_fx_M6C_formFM10add_cf_argv4R9Ast__id_tN14C_form__ctyp_tSR10Ast__loc_t(&v_30, crt_1, &slit_3, &kf_loc_0, 0), + FX_CALL(_fx_M6C_formFM10add_cf_argv4R9Ast__id_tN14C_form__ctyp_tSR10Ast__loc_t(&v_31, crt_1, &slit_3, &kf_loc_0, 0), _fx_catch_3); if (is_nothrow_0) { FX_COPY_PTR(_fx_g22C_gen_fdecls__CTypVoid, &v_8); @@ -6073,7 +5996,7 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 } FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g24C_gen_fdecls__CArgRetVal, 0, true, &v_9), _fx_catch_3); FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g27C_gen_fdecls__CArgPassByPtr, v_9, false, &v_9), _fx_catch_3); - _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_30, crt_1, v_9, &v_10); + _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_31, crt_1, v_9, &v_10); FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_10, args_0, true, &v_11), _fx_catch_3); _fx_make_T2N14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(v_8, v_11, &v_7); } @@ -6100,9 +6023,9 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 args_2, &v_14, 0), _fx_catch_3); bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&kci_arg_0, &_fx_g9Ast__noid, &res_0, 0), _fx_catch_3); - _fx_R16Ast__fun_flags_t v_31; + _fx_R16Ast__fun_flags_t v_32; if (res_0) { - v_31 = kf_flags_0; + v_32 = kf_flags_0; } else { _fx_R16Ast__fun_flags_t rec_0 = @@ -6110,9 +6033,9 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 kf_flags_0.fun_flag_inline, kf_flags_0.fun_flag_nothrow, kf_flags_0.fun_flag_really_nothrow, kf_flags_0.fun_flag_private, kf_flags_0.fun_flag_ctor, kf_flags_0.fun_flag_method_of, true, kf_flags_0.fun_flag_recursive, kf_flags_0.fun_flag_instance }; - v_31 = rec_0; + v_32 = rec_0; } - _fx_make_R17C_form__cdeffun_t(&kf_name_0, &kf_cname_0, v_14, new_crt_0, 0, &v_31, kf_scope_0, &kf_loc_0, &v_15); + _fx_make_R17C_form__cdeffun_t(&kf_name_0, &kf_cname_0, v_14, new_crt_0, 0, &v_32, kf_scope_0, &kf_loc_0, &v_15); FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_15, &cf_0), _fx_catch_3); _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(cf_0, &v_16); FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&kf_name_0, &v_16, 0), _fx_catch_3); @@ -6165,9 +6088,6 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 if (args_0) { _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&args_0); } - if (__fold_result___0) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&__fold_result___0); - } FX_FREE_STR(&kf_cname_0); FX_FREE_LIST_SIMPLE(&kf_params_0); if (rt_0) { @@ -6182,17 +6102,17 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 if (tag_0 == 37) { _fx_LT2R9Ast__id_tN14K_form__ktyp_t kcv_freevars_0 = 0; fx_str_t kcv_cname_0 = {0}; - _fx_N14C_form__ctyp_t v_32 = 0; + _fx_N14C_form__ctyp_t v_33 = 0; _fx_N14C_form__ctyp_t fcv_typ_0 = 0; _fx_N14C_form__cexp_t dst_exp_0 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_33 = {0}; _fx_T2R9Ast__id_tN14C_form__ctyp_t v_34 = {0}; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_35 = 0; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_35 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_36 = 0; _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_0 = 0; - _fx_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t __fold_result___1 = {0}; - _fx_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t v_36 = {0}; _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_1 = 0; _fx_LN15C_form__cstmt_t free_ccode_0 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_2 = 0; + _fx_LN15C_form__cstmt_t free_ccode_1 = 0; _fx_T2R9Ast__id_tLN15C_form__cstmt_t v_37 = {0}; _fx_LN14C_form__cexp_t v_38 = 0; _fx_N14C_form__cexp_t call_free_0 = 0; @@ -6225,8 +6145,8 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 FX_COPY_PTR(v_58->kcv_freevars, &kcv_freevars_0); fx_copy_str(&v_58->kcv_cname, &kcv_cname_0); _fx_R9Ast__id_t kcv_name_0 = v_58->kcv_name; - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&kcv_name_0, &v_32), _fx_catch_5); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_32, &fcv_typ_0, 0), _fx_catch_5); + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&kcv_name_0, &v_33), _fx_catch_5); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_33, &fcv_typ_0, 0), _fx_catch_5); _fx_R9Ast__id_t dst_id_0; fx_str_t slit_6 = FX_MAKE_STR("dst"); FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_6, &dst_id_0, 0), _fx_catch_5); @@ -6236,86 +6156,75 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 _fx_R9Ast__id_t v_59; fx_str_t slit_7 = FX_MAKE_STR("free_f"); FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_7, &v_59, 0), _fx_catch_5); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_59, _fx_g21C_form__std_fx_free_t, &v_33); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_59, _fx_g21C_form__std_fx_free_t, &v_34); _fx_R9Ast__id_t v_60; fx_str_t slit_8 = FX_MAKE_STR("rc"); FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_8, &v_60, 0), _fx_catch_5); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_60, _fx_g21C_gen_fdecls__CTypInt, &v_34); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_34, 0, true, &v_35), _fx_catch_5); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_33, v_35, true, &relems_0), _fx_catch_5); - _fx_make_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t(relems_0, 0, &__fold_result___1); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_60, _fx_g21C_gen_fdecls__CTypInt, &v_35); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_35, 0, true, &v_36), _fx_catch_5); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_34, v_36, true, &relems_0), _fx_catch_5); + FX_COPY_PTR(relems_0, &relems_1); int_ idx_1 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_2 = kcv_freevars_0; for (; lst_2; lst_2 = lst_2->tl, idx_1 += 1) { _fx_N14K_form__ktyp_t kt_0 = 0; - _fx_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t v_61 = {0}; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_2 = 0; - _fx_LN15C_form__cstmt_t free_ccode_1 = 0; _fx_N14C_form__ctyp_t ctyp_2 = 0; + fx_str_t v_61 = {0}; fx_str_t v_62 = {0}; - fx_str_t v_63 = {0}; _fx_N14C_form__cexp_t elem_exp_0 = 0; - _fx_LN15C_form__cstmt_t free_ccode_2 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_64 = {0}; - _fx_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t v_65 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_63 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_64 = 0; + _fx_LN15C_form__cstmt_t v_65 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___0 = &lst_2->hd; FX_COPY_PTR(__pat___0->t1, &kt_0); - _fx_copy_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t(&__fold_result___1, &v_61); - FX_COPY_PTR(v_61.t0, &relems_2); - FX_COPY_PTR(v_61.t1, &free_ccode_1); FX_CALL( _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(kt_0, &kcv_loc_0, &ctyp_2, 0), _fx_catch_4); - FX_CALL(_fx_F6stringS1i(idx_1, &v_62, 0), _fx_catch_4); + FX_CALL(_fx_F6stringS1i(idx_1, &v_61, 0), _fx_catch_4); fx_str_t slit_9 = FX_MAKE_STR("t"); { - const fx_str_t strs_1[] = { slit_9, v_62 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_63), _fx_catch_4); + const fx_str_t strs_1[] = { slit_9, v_61 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_62), _fx_catch_4); } _fx_R9Ast__id_t c_id_0; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_63, &c_id_0, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_62, &c_id_0, 0), _fx_catch_4); FX_CALL( _fx_M6C_formFM10cexp_arrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tN14C_form__ctyp_t(dst_exp_0, &c_id_0, ctyp_2, &elem_exp_0, 0), _fx_catch_4); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&c_id_0, ctyp_2, &v_63); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_63, relems_1, true, &v_64), _fx_catch_4); + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_1); + FX_COPY_PTR(v_64, &relems_1); FX_CALL( _fx_M11C_gen_typesFM13gen_free_codeLN15C_form__cstmt_t6N14C_form__cexp_tN14C_form__ctyp_tBBLN15C_form__cstmt_tR10Ast__loc_t( - elem_exp_0, ctyp_2, true, false, free_ccode_1, &kcv_loc_0, &free_ccode_2, 0), _fx_catch_4); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&c_id_0, ctyp_2, &v_64); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_64, relems_2, false, &relems_2), _fx_catch_4); - _fx_make_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t(relems_2, free_ccode_2, &v_65); - _fx_free_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t(&__fold_result___1); - _fx_copy_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t(&v_65, &__fold_result___1); + elem_exp_0, ctyp_2, true, false, free_ccode_0, &kcv_loc_0, &v_65, 0), _fx_catch_4); + _fx_free_LN15C_form__cstmt_t(&free_ccode_0); + FX_COPY_PTR(v_65, &free_ccode_0); _fx_catch_4: ; - _fx_free_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t(&v_65); - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_64); - if (free_ccode_2) { - _fx_free_LN15C_form__cstmt_t(&free_ccode_2); + if (v_65) { + _fx_free_LN15C_form__cstmt_t(&v_65); + } + if (v_64) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_64); } + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_63); if (elem_exp_0) { _fx_free_N14C_form__cexp_t(&elem_exp_0); } - FX_FREE_STR(&v_63); FX_FREE_STR(&v_62); + FX_FREE_STR(&v_61); if (ctyp_2) { _fx_free_N14C_form__ctyp_t(&ctyp_2); } - if (free_ccode_1) { - _fx_free_LN15C_form__cstmt_t(&free_ccode_1); - } - if (relems_2) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_2); - } - _fx_free_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t(&v_61); if (kt_0) { _fx_free_N14K_form__ktyp_t(&kt_0); } FX_CHECK_EXN(_fx_catch_5); } - _fx_copy_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t(&__fold_result___1, &v_36); - FX_COPY_PTR(v_36.t0, &relems_1); - FX_COPY_PTR(v_36.t1, &free_ccode_0); - if (free_ccode_0 == 0) { + FX_COPY_PTR(relems_1, &relems_2); + FX_COPY_PTR(free_ccode_0, &free_ccode_1); + if (free_ccode_1 == 0) { _fx_make_T2R9Ast__id_tLN15C_form__cstmt_t(&_fx_g19C_form__std_fx_free, 0, &v_37); } else { @@ -6324,7 +6233,7 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t( &_fx_g19C_form__std_fx_free, v_38, _fx_g22C_gen_fdecls__CTypVoid, &kcv_loc_0, &call_free_0, 0), _fx_catch_5); FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_free_0, &v_39), _fx_catch_5); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_39, free_ccode_0, true, &freecode_0), _fx_catch_5); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_39, free_ccode_1, true, &freecode_0), _fx_catch_5); _fx_R9Ast__id_t free_f_0; fx_str_t slit_10 = FX_MAKE_STR("free_cv"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(cm_idx_0, &slit_10, &free_f_0, 0), _fx_catch_5); @@ -6359,7 +6268,7 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 } _fx_R9Ast__id_t free_f_1 = v_37.t0; FX_COPY_PTR(v_37.t1, &decl_free_f_0); - FX_CALL(_fx_M12C_gen_fdeclsFM3revLT2R9Ast__id_tN14C_form__ctyp_t1LT2R9Ast__id_tN14C_form__ctyp_t(relems_1, &v_50, 0), + FX_CALL(_fx_M12C_gen_fdeclsFM3revLT2R9Ast__id_tN14C_form__ctyp_t1LT2R9Ast__id_tN14C_form__ctyp_t(relems_2, &v_50, 0), _fx_catch_5); FX_CALL( _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t( @@ -6440,30 +6349,34 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 _fx_free_LN14C_form__cexp_t(&v_38); } _fx_free_T2R9Ast__id_tLN15C_form__cstmt_t(&v_37); + if (free_ccode_1) { + _fx_free_LN15C_form__cstmt_t(&free_ccode_1); + } + if (relems_2) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_2); + } if (free_ccode_0) { _fx_free_LN15C_form__cstmt_t(&free_ccode_0); } if (relems_1) { _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_1); } - _fx_free_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t(&v_36); - _fx_free_T2LT2R9Ast__id_tN14C_form__ctyp_tLN15C_form__cstmt_t(&__fold_result___1); if (relems_0) { _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_0); } - if (v_35) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_35); + if (v_36) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_36); } + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_35); _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_34); - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_33); if (dst_exp_0) { _fx_free_N14C_form__cexp_t(&dst_exp_0); } if (fcv_typ_0) { _fx_free_N14C_form__ctyp_t(&fcv_typ_0); } - if (v_32) { - _fx_free_N14C_form__ctyp_t(&v_32); + if (v_33) { + _fx_free_N14C_form__ctyp_t(&v_33); } FX_FREE_STR(&kcv_cname_0); if (kcv_freevars_0) { @@ -6727,7 +6640,7 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 _fx_N14C_form__cexp_t dst_exp_1 = 0; _fx_N14C_form__ctyp_t ke_ctyp_0 = 0; _fx_N14C_form__cexp_t dst_data_exp_0 = 0; - _fx_LN15C_form__cstmt_t free_ccode_3 = 0; + _fx_LN15C_form__cstmt_t free_ccode_2 = 0; _fx_T2R9Ast__id_tN14C_form__ctyp_t v_108 = {0}; _fx_T2R9Ast__id_tN14C_form__ctyp_t v_109 = {0}; _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_110 = 0; @@ -6800,7 +6713,7 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 ke_ctyp_0, &dst_data_exp_0, 0), _fx_catch_8); FX_CALL( _fx_M11C_gen_typesFM13gen_free_codeLN15C_form__cstmt_t6N14C_form__cexp_tN14C_form__ctyp_tBBLN15C_form__cstmt_tR10Ast__loc_t( - dst_data_exp_0, ke_ctyp_0, true, false, 0, &ke_loc_1, &free_ccode_3, 0), _fx_catch_8); + dst_data_exp_0, ke_ctyp_0, true, false, 0, &ke_loc_1, &free_ccode_2, 0), _fx_catch_8); _fx_R9Ast__id_t v_138; fx_str_t slit_19 = FX_MAKE_STR("rc"); FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_19, &v_138, 0), _fx_catch_8); @@ -6811,7 +6724,7 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_139, ke_ctyp_0, &v_109); FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_109, 0, true, &v_110), _fx_catch_8); FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_108, v_110, true, &relems_3), _fx_catch_8); - if (free_ccode_3 == 0) { + if (free_ccode_2 == 0) { _fx_make_T2R9Ast__id_tLN15C_form__cstmt_t(&_fx_g19C_form__std_fx_free, 0, &v_111); } else { @@ -6821,7 +6734,7 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 &_fx_g19C_form__std_fx_free, v_112, _fx_g22C_gen_fdecls__CTypVoid, &ke_loc_1, &call_free_1, 0), _fx_catch_8); FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_free_1, &v_113), _fx_catch_8); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_113, free_ccode_3, true, &freecode_1), _fx_catch_8); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_113, free_ccode_2, true, &freecode_1), _fx_catch_8); _fx_R9Ast__id_t free_f_2; fx_str_t slit_21 = FX_MAKE_STR("free_exn"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(cm_idx_0, &slit_21, &free_f_2, 0), _fx_catch_8); @@ -6984,8 +6897,8 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 } _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_109); _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_108); - if (free_ccode_3) { - _fx_free_LN15C_form__cstmt_t(&free_ccode_3); + if (free_ccode_2) { + _fx_free_LN15C_form__cstmt_t(&free_ccode_2); } if (dst_data_exp_0) { _fx_free_N14C_form__cexp_t(&dst_data_exp_0); @@ -7140,73 +7053,72 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 _fx_N14C_form__ctyp_t entry_ctyp_0 = 0; _fx_LN19C_form__ctyp_attr_t v_151 = 0; _fx_N14C_form__ctyp_t entries_ctyp_0 = 0; - _fx_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t __fold_result___2 = {0}; - _fx_LT2R9Ast__id_tLR9Ast__id_t kvar_ifaces_1 = 0; - _fx_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t v_152 = {0}; _fx_LN15C_form__cstmt_t init_ccode_0 = 0; _fx_LR9Ast__id_t ids_0 = 0; _fx_LN14C_form__cexp_t pairs_0 = 0; _fx_Rt6Set__t1R9Ast__id_t all_ids_0 = {0}; - _fx_LN14C_form__cexp_t v_153 = 0; + _fx_LT2R9Ast__id_tLR9Ast__id_t kvar_ifaces_1 = 0; + _fx_LN14C_form__cexp_t v_152 = 0; _fx_LT2R9Ast__id_tLR9Ast__id_t kvar_ifaces_2 = 0; _fx_N14C_form__ctyp_t ifaces_ctyp_0 = 0; + fx_str_t v_153 = {0}; fx_str_t v_154 = {0}; - fx_str_t v_155 = {0}; fx_str_t ifaces_cname_0 = {0}; - _fx_R16Ast__val_flags_t v_156 = {0}; + _fx_R16Ast__val_flags_t v_155 = {0}; _fx_R16Ast__val_flags_t cv_flags_4 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_157 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_156 = {0}; _fx_N14C_form__cexp_t ifaces_id_exp_0 = 0; _fx_LN15C_form__cstmt_t decl_ifaces_id_0 = 0; - _fx_LN14C_form__cexp_t v_158 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_159 = {0}; + _fx_LN14C_form__cexp_t v_157 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_158 = {0}; _fx_N14C_form__cexp_t entries_init_exp_0 = 0; - _fx_R16Ast__val_flags_t v_160 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_161 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_162 = {0}; + _fx_R16Ast__val_flags_t v_159 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_160 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_161 = {0}; _fx_N14C_form__cexp_t iface_entries_exp_0 = 0; _fx_LN15C_form__cstmt_t init_ccode_1 = 0; - _fx_LN19C_form__ctyp_attr_t v_163 = 0; + _fx_LN19C_form__ctyp_attr_t v_162 = 0; _fx_N14C_form__ctyp_t ids_ctyp_0 = 0; - _fx_LR9Ast__id_t v_164 = 0; - _fx_LN14C_form__cexp_t v_165 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_166 = {0}; + _fx_LR9Ast__id_t v_163 = 0; + _fx_LN14C_form__cexp_t v_164 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_165 = {0}; _fx_N14C_form__cexp_t ids_init_exp_0 = 0; - _fx_R16Ast__val_flags_t v_167 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_168 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_169 = {0}; + _fx_R16Ast__val_flags_t v_166 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_167 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_168 = {0}; _fx_N14C_form__cexp_t ids_exp_0 = 0; _fx_LN15C_form__cstmt_t init_ccode_2 = 0; + _fx_N14C_form__cexp_t v_169 = 0; _fx_N14C_form__cexp_t v_170 = 0; _fx_N14C_form__cexp_t v_171 = 0; _fx_N14C_form__cexp_t v_172 = 0; - _fx_N14C_form__cexp_t v_173 = 0; - _fx_LN14C_form__cexp_t v_174 = 0; + _fx_LN14C_form__cexp_t v_173 = 0; _fx_LN14C_form__cexp_t init_ifaces_args_0 = 0; _fx_N14C_form__cexp_t call_init_ifaces_0 = 0; - _fx_N15C_form__cstmt_t v_175 = 0; + _fx_N15C_form__cstmt_t v_174 = 0; _fx_LN15C_form__cstmt_t init_ccode_3 = 0; - _fx_R17C_form__cdeftyp_t v_176 = {0}; + _fx_R17C_form__cdeftyp_t v_175 = {0}; + _fx_LN15C_form__cstmt_t v_176 = 0; _fx_LN15C_form__cstmt_t v_177 = 0; - _fx_LN15C_form__cstmt_t v_178 = 0; - _fx_N15C_form__cstmt_t v_179 = 0; - _fx_LN15C_form__cstmt_t v_180 = 0; + _fx_N15C_form__cstmt_t v_178 = 0; + _fx_LN15C_form__cstmt_t v_179 = 0; FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(kvar_name_0, kvar_loc_0, &v_150, 0), _fx_catch_18); if (v_150.tag == 4) { FX_COPY_PTR(v_150.u.CTyp, &ct_1); } else { - fx_exn_t v_181 = {0}; + fx_exn_t v_180 = {0}; fx_str_t slit_24 = FX_MAKE_STR("variant type \'{idk2str(kvar_name, kvar_loc)}\' was not converted to C yet"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(kvar_loc_0, &slit_24, &v_181, 0), _fx_catch_11); - FX_THROW(&v_181, false, _fx_catch_11); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(kvar_loc_0, &slit_24, &v_180, 0), _fx_catch_11); + FX_THROW(&v_180, false, _fx_catch_11); _fx_catch_11: ; - fx_free_exn(&v_181); + fx_free_exn(&v_180); } FX_CHECK_EXN(_fx_catch_18); - _fx_R9Ast__id_t free_f_4 = ct_1->data.ct_props.ctp_free.t1; + _fx_R17C_form__cdeftyp_t* v_181 = &ct_1->data; + _fx_R9Ast__id_t free_f_4 = v_181->ct_props.ctp_free.t1; _fx_R9Ast__id_t v_182; fx_str_t slit_25 = FX_MAKE_STR("fx_iface_entry_t"); FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_25, &v_182, 0), _fx_catch_18); @@ -7215,44 +7127,34 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 FX_CALL( _fx_M6C_formFM12CTypRawArrayN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_151, entry_ctyp_0, &entries_ctyp_0), _fx_catch_18); - _fx_make_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t(0, 0, 0, &_fx_g16Ast__empty_idset, - &__fold_result___2); + _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &all_ids_0); FX_COPY_PTR(kvar_ifaces_0, &kvar_ifaces_1); _fx_LT2R9Ast__id_tLR9Ast__id_t lst_3 = kvar_ifaces_1; for (; lst_3; lst_3 = lst_3->tl) { _fx_LR9Ast__id_t methods_0 = 0; - _fx_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t v_183 = {0}; - _fx_LN15C_form__cstmt_t init_ccode_4 = 0; - _fx_LR9Ast__id_t ids_1 = 0; - _fx_LN14C_form__cexp_t pairs_1 = 0; - _fx_Rt6Set__t1R9Ast__id_t all_ids_1 = {0}; _fx_LN14C_form__cexp_t mptrs_0 = 0; - _fx_LN19C_form__ctyp_attr_t v_184 = 0; + _fx_LN19C_form__ctyp_attr_t v_183 = 0; _fx_N14C_form__ctyp_t vtbl_ctyp_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_185 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_184 = {0}; _fx_N14C_form__cexp_t vtbl_init_exp_0 = 0; - _fx_R16Ast__val_flags_t v_186 = {0}; - _fx_Nt6option1N14C_form__cexp_t v_187 = {0}; - _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t v_188 = {0}; - _fx_LN15C_form__cstmt_t init_ccode_5 = 0; - _fx_N14K_form__ktyp_t v_189 = 0; - _fx_Nt6option1rR23K_form__kdefinterface_t v_190 = {0}; + _fx_R16Ast__val_flags_t v_185 = {0}; + _fx_Nt6option1N14C_form__cexp_t v_186 = {0}; + _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t __tup___0 = {0}; + _fx_LN15C_form__cstmt_t v_187 = 0; + _fx_N14K_form__ktyp_t v_188 = 0; + _fx_Nt6option1rR23K_form__kdefinterface_t v_189 = {0}; _fx_rR23K_form__kdefinterface_t iface_0 = 0; + _fx_N14C_form__cexp_t v_190 = 0; _fx_N14C_form__cexp_t v_191 = 0; - _fx_N14C_form__cexp_t v_192 = 0; - _fx_LN14C_form__cexp_t v_193 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_194 = {0}; + _fx_LN14C_form__cexp_t v_192 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_193 = {0}; _fx_N14C_form__cexp_t pair_0 = 0; - _fx_Rt6Set__t1R9Ast__id_t v_195 = {0}; - _fx_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t v_196 = {0}; + _fx_LR9Ast__id_t v_194 = 0; + _fx_LN14C_form__cexp_t v_195 = 0; + _fx_Rt6Set__t1R9Ast__id_t v_196 = {0}; _fx_T2R9Ast__id_tLR9Ast__id_t* __pat___1 = &lst_3->hd; _fx_R9Ast__id_t iname_0 = __pat___1->t0; FX_COPY_PTR(__pat___1->t1, &methods_0); - _fx_copy_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t(&__fold_result___2, &v_183); - FX_COPY_PTR(v_183.t0, &init_ccode_4); - FX_COPY_PTR(v_183.t1, &ids_1); - FX_COPY_PTR(v_183.t2, &pairs_1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_183.t3, &all_ids_1); _fx_LN14C_form__cexp_t lstend_0 = 0; _fx_LR9Ast__id_t lst_4 = methods_0; for (; lst_4; lst_4 = lst_4->tl) { @@ -7278,31 +7180,33 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 } FX_CHECK_EXN(_fx_catch_14); } - FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g23C_gen_fdecls__CTypConst, 0, true, &v_184), _fx_catch_14); - FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g24C_gen_fdecls__CTypStatic, v_184, false, &v_184), _fx_catch_14); + FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g23C_gen_fdecls__CTypConst, 0, true, &v_183), _fx_catch_14); + FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g24C_gen_fdecls__CTypStatic, v_183, false, &v_183), _fx_catch_14); FX_CALL( - _fx_M6C_formFM12CTypRawArrayN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_184, + _fx_M6C_formFM12CTypRawArrayN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_183, _fx_g23C_form__std_CTypVoidPtr, &vtbl_ctyp_0), _fx_catch_14); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(vtbl_ctyp_0, kvar_loc_0, &v_185); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(vtbl_ctyp_0, kvar_loc_0, &v_184); FX_CALL( - _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(mptrs_0, &v_185, + _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(mptrs_0, &v_184, &vtbl_init_exp_0), _fx_catch_14); _fx_R9Ast__id_t vtbl_0; fx_str_t slit_26 = FX_MAKE_STR("vtbl"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(cm_idx_0, &slit_26, &vtbl_0, 0), _fx_catch_14); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_186, 0), _fx_catch_14); - _fx_M12C_gen_fdeclsFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(vtbl_init_exp_0, &v_187); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_185, 0), _fx_catch_14); + _fx_M12C_gen_fdeclsFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(vtbl_init_exp_0, &v_186); fx_str_t slit_27 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &vtbl_0, vtbl_ctyp_0, &v_186, &slit_27, &v_187, init_ccode_4, kvar_loc_0, &v_188, 0), _fx_catch_14); - FX_COPY_PTR(v_188.t1, &init_ccode_5); - FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&iname_0, &v_189), _fx_catch_14); + &vtbl_0, vtbl_ctyp_0, &v_185, &slit_27, &v_186, init_ccode_0, kvar_loc_0, &__tup___0, 0), _fx_catch_14); + FX_COPY_PTR(__tup___0.t1, &v_187); + _fx_free_LN15C_form__cstmt_t(&init_ccode_0); + FX_COPY_PTR(v_187, &init_ccode_0); + FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&iname_0, &v_188), _fx_catch_14); FX_CALL( - _fx_M6K_formFM18get_kinterface_optNt6option1rRM15kdefinterface_t2N14K_form__ktyp_tR10Ast__loc_t(v_189, - kvar_loc_0, &v_190, 0), _fx_catch_14); - if (v_190.tag == 2) { - FX_COPY_PTR(v_190.u.Some, &iface_0); + _fx_M6K_formFM18get_kinterface_optNt6option1rRM15kdefinterface_t2N14K_form__ktyp_tR10Ast__loc_t(v_188, + kvar_loc_0, &v_189, 0), _fx_catch_14); + if (v_189.tag == 2) { + FX_COPY_PTR(v_189.u.Some, &iface_0); } else { fx_exn_t v_198 = {0}; @@ -7315,150 +7219,145 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 fx_free_exn(&v_198); } FX_CHECK_EXN(_fx_catch_14); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, kvar_loc_0, &v_191, 0), _fx_catch_14); - FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&vtbl_0, kvar_loc_0, &v_192, 0), + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, kvar_loc_0, &v_190, 0), _fx_catch_14); + FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&vtbl_0, kvar_loc_0, &v_191, 0), _fx_catch_14); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_192, 0, true, &v_193), _fx_catch_14); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_191, v_193, false, &v_193), _fx_catch_14); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(entry_ctyp_0, kvar_loc_0, &v_194); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_191, 0, true, &v_192), _fx_catch_14); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_190, v_192, false, &v_192), _fx_catch_14); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(entry_ctyp_0, kvar_loc_0, &v_193); FX_CALL( - _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_193, &v_194, + _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_192, &v_193, &pair_0), _fx_catch_14); - _fx_R9Ast__id_t v_199 = iface_0->data.ki_id; - FX_CALL(_fx_cons_LR9Ast__id_t(&v_199, ids_1, false, &ids_1), _fx_catch_14); - FX_CALL(_fx_cons_LN14C_form__cexp_t(pair_0, pairs_1, false, &pairs_1), _fx_catch_14); - _fx_R9Ast__id_t v_200 = iface_0->data.ki_id; + _fx_R23K_form__kdefinterface_t* v_199 = &iface_0->data; + _fx_R9Ast__id_t v_200 = v_199->ki_id; + FX_CALL(_fx_cons_LR9Ast__id_t(&v_200, ids_0, true, &v_194), _fx_catch_14); + FX_FREE_LIST_SIMPLE(&ids_0); + FX_COPY_PTR(v_194, &ids_0); + FX_CALL(_fx_cons_LN14C_form__cexp_t(pair_0, pairs_0, true, &v_195), _fx_catch_14); + _fx_free_LN14C_form__cexp_t(&pairs_0); + FX_COPY_PTR(v_195, &pairs_0); + _fx_R23K_form__kdefinterface_t* v_201 = &iface_0->data; + _fx_R9Ast__id_t v_202 = v_201->ki_id; FX_CALL( - _fx_M12C_gen_fdeclsFM3addRt6Set__t1R9Ast__id_t2Rt6Set__t1R9Ast__id_tR9Ast__id_t(&all_ids_1, &v_200, &v_195, + _fx_M12C_gen_fdeclsFM3addRt6Set__t1R9Ast__id_t2Rt6Set__t1R9Ast__id_tR9Ast__id_t(&all_ids_0, &v_202, &v_196, 0), _fx_catch_14); - _fx_make_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t(init_ccode_5, ids_1, pairs_1, - &v_195, &v_196); - _fx_free_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t(&__fold_result___2); - _fx_copy_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t(&v_196, &__fold_result___2); + _fx_free_Rt6Set__t1R9Ast__id_t(&all_ids_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_196, &all_ids_0); _fx_catch_14: ; - _fx_free_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t(&v_196); - _fx_free_Rt6Set__t1R9Ast__id_t(&v_195); + _fx_free_Rt6Set__t1R9Ast__id_t(&v_196); + if (v_195) { + _fx_free_LN14C_form__cexp_t(&v_195); + } + FX_FREE_LIST_SIMPLE(&v_194); if (pair_0) { _fx_free_N14C_form__cexp_t(&pair_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_194); - if (v_193) { - _fx_free_LN14C_form__cexp_t(&v_193); - } + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_193); if (v_192) { - _fx_free_N14C_form__cexp_t(&v_192); + _fx_free_LN14C_form__cexp_t(&v_192); } if (v_191) { _fx_free_N14C_form__cexp_t(&v_191); } + if (v_190) { + _fx_free_N14C_form__cexp_t(&v_190); + } if (iface_0) { _fx_free_rR23K_form__kdefinterface_t(&iface_0); } - _fx_free_Nt6option1rR23K_form__kdefinterface_t(&v_190); - if (v_189) { - _fx_free_N14K_form__ktyp_t(&v_189); + _fx_free_Nt6option1rR23K_form__kdefinterface_t(&v_189); + if (v_188) { + _fx_free_N14K_form__ktyp_t(&v_188); } - if (init_ccode_5) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_5); + if (v_187) { + _fx_free_LN15C_form__cstmt_t(&v_187); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_188); - _fx_free_Nt6option1N14C_form__cexp_t(&v_187); - _fx_free_R16Ast__val_flags_t(&v_186); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&__tup___0); + _fx_free_Nt6option1N14C_form__cexp_t(&v_186); + _fx_free_R16Ast__val_flags_t(&v_185); if (vtbl_init_exp_0) { _fx_free_N14C_form__cexp_t(&vtbl_init_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_185); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_184); if (vtbl_ctyp_0) { _fx_free_N14C_form__ctyp_t(&vtbl_ctyp_0); } - FX_FREE_LIST_SIMPLE(&v_184); + FX_FREE_LIST_SIMPLE(&v_183); if (mptrs_0) { _fx_free_LN14C_form__cexp_t(&mptrs_0); } - _fx_free_Rt6Set__t1R9Ast__id_t(&all_ids_1); - if (pairs_1) { - _fx_free_LN14C_form__cexp_t(&pairs_1); - } - FX_FREE_LIST_SIMPLE(&ids_1); - if (init_ccode_4) { - _fx_free_LN15C_form__cstmt_t(&init_ccode_4); - } - _fx_free_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t(&v_183); FX_FREE_LIST_SIMPLE(&methods_0); FX_CHECK_EXN(_fx_catch_18); } - _fx_copy_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t(&__fold_result___2, &v_152); - FX_COPY_PTR(v_152.t0, &init_ccode_0); - FX_COPY_PTR(v_152.t1, &ids_0); - FX_COPY_PTR(v_152.t2, &pairs_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_152.t3, &all_ids_0); - FX_CALL(_fx_M12C_gen_fdeclsFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(pairs_0, &v_153, 0), _fx_catch_18); + FX_CALL(_fx_M12C_gen_fdeclsFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(pairs_0, &v_152, 0), _fx_catch_18); FX_COPY_PTR(kvar_ifaces_0, &kvar_ifaces_2); _fx_LT2R9Ast__id_tLR9Ast__id_t lst_5 = kvar_ifaces_2; - _fx_LN14C_form__cexp_t lst_6 = v_153; + _fx_LN14C_form__cexp_t lst_6 = v_152; for (; lst_5 && lst_6; lst_6 = lst_6->tl, lst_5 = lst_5->tl) { _fx_N14C_form__cexp_t pair_1 = lst_6->hd; _fx_T2R9Ast__id_tLR9Ast__id_t* __pat___2 = &lst_5->hd; _fx_R9Ast__id_t iname_1 = __pat___2->t0; _fx_R9Ast__id_t iname_2 = iname_1; for (;;) { - _fx_N14K_form__ktyp_t v_201 = 0; - _fx_Nt6option1rR23K_form__kdefinterface_t v_202 = {0}; - _fx_LR9Ast__id_t v_203 = 0; - _fx_LN14C_form__cexp_t v_204 = 0; - _fx_Rt6Set__t1R9Ast__id_t v_205 = {0}; + _fx_N14K_form__ktyp_t v_203 = 0; + _fx_Nt6option1rR23K_form__kdefinterface_t v_204 = {0}; + _fx_LR9Ast__id_t v_205 = 0; + _fx_LN14C_form__cexp_t v_206 = 0; + _fx_Rt6Set__t1R9Ast__id_t v_207 = {0}; bool res_4; FX_CALL(_fx_M12C_gen_fdeclsFM6__ne__B2R9Ast__id_tR9Ast__id_t(&iname_2, &_fx_g9Ast__noid, &res_4, 0), _fx_catch_15); if (!res_4) { FX_BREAK(_fx_catch_15); } - FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&iname_2, &v_201), _fx_catch_15); + FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&iname_2, &v_203), _fx_catch_15); FX_CALL( - _fx_M6K_formFM18get_kinterface_optNt6option1rRM15kdefinterface_t2N14K_form__ktyp_tR10Ast__loc_t(v_201, - kvar_loc_0, &v_202, 0), _fx_catch_15); - _fx_Ta2R9Ast__id_t v_206; - if (v_202.tag == 2) { - _fx_rR23K_form__kdefinterface_t iface_1 = v_202.u.Some; - _fx_R9Ast__id_t v_207 = iface_1->data.ki_id; - _fx_R9Ast__id_t v_208 = iface_1->data.ki_base; - _fx_Ta2R9Ast__id_t tup_0 = { v_207, v_208 }; - v_206 = tup_0; + _fx_M6K_formFM18get_kinterface_optNt6option1rRM15kdefinterface_t2N14K_form__ktyp_tR10Ast__loc_t(v_203, + kvar_loc_0, &v_204, 0), _fx_catch_15); + _fx_Ta2R9Ast__id_t v_208; + if (v_204.tag == 2) { + _fx_rR23K_form__kdefinterface_t iface_1 = v_204.u.Some; + _fx_R23K_form__kdefinterface_t* v_209 = &iface_1->data; + _fx_R9Ast__id_t v_210 = v_209->ki_id; + _fx_R23K_form__kdefinterface_t* v_211 = &iface_1->data; + _fx_R9Ast__id_t v_212 = v_211->ki_base; + _fx_Ta2R9Ast__id_t tup_0 = { v_210, v_212 }; + v_208 = tup_0; } else { - _fx_Ta2R9Ast__id_t tup_1 = { _fx_g9Ast__noid, _fx_g9Ast__noid }; v_206 = tup_1; + _fx_Ta2R9Ast__id_t tup_1 = { _fx_g9Ast__noid, _fx_g9Ast__noid }; v_208 = tup_1; } FX_CHECK_EXN(_fx_catch_15); - _fx_R9Ast__id_t iface_id_0 = v_206.t0; - _fx_R9Ast__id_t parent_0 = v_206.t1; - bool v_209; - FX_CALL(_fx_M12C_gen_fdeclsFM3memB2Rt6Set__t1R9Ast__id_tR9Ast__id_t(&all_ids_0, &iface_id_0, &v_209, 0), + _fx_R9Ast__id_t iface_id_0 = v_208.t0; + _fx_R9Ast__id_t parent_0 = v_208.t1; + bool v_213; + FX_CALL(_fx_M12C_gen_fdeclsFM3memB2Rt6Set__t1R9Ast__id_tR9Ast__id_t(&all_ids_0, &iface_id_0, &v_213, 0), _fx_catch_15); - if (!v_209) { - FX_CALL(_fx_cons_LR9Ast__id_t(&iface_id_0, ids_0, true, &v_203), _fx_catch_15); + if (!v_213) { + FX_CALL(_fx_cons_LR9Ast__id_t(&iface_id_0, ids_0, true, &v_205), _fx_catch_15); FX_FREE_LIST_SIMPLE(&ids_0); - FX_COPY_PTR(v_203, &ids_0); - FX_CALL(_fx_cons_LN14C_form__cexp_t(pair_1, pairs_0, true, &v_204), _fx_catch_15); + FX_COPY_PTR(v_205, &ids_0); + FX_CALL(_fx_cons_LN14C_form__cexp_t(pair_1, pairs_0, true, &v_206), _fx_catch_15); _fx_free_LN14C_form__cexp_t(&pairs_0); - FX_COPY_PTR(v_204, &pairs_0); + FX_COPY_PTR(v_206, &pairs_0); FX_CALL( _fx_M12C_gen_fdeclsFM3addRt6Set__t1R9Ast__id_t2Rt6Set__t1R9Ast__id_tR9Ast__id_t(&all_ids_0, &iface_id_0, - &v_205, 0), _fx_catch_15); + &v_207, 0), _fx_catch_15); _fx_free_Rt6Set__t1R9Ast__id_t(&all_ids_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_205, &all_ids_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_207, &all_ids_0); } iname_2 = parent_0; _fx_catch_15: ; - _fx_free_Rt6Set__t1R9Ast__id_t(&v_205); - if (v_204) { - _fx_free_LN14C_form__cexp_t(&v_204); + _fx_free_Rt6Set__t1R9Ast__id_t(&v_207); + if (v_206) { + _fx_free_LN14C_form__cexp_t(&v_206); } - FX_FREE_LIST_SIMPLE(&v_203); - _fx_free_Nt6option1rR23K_form__kdefinterface_t(&v_202); - if (v_201) { - _fx_free_N14K_form__ktyp_t(&v_201); + FX_FREE_LIST_SIMPLE(&v_205); + _fx_free_Nt6option1rR23K_form__kdefinterface_t(&v_204); + if (v_203) { + _fx_free_N14K_form__ktyp_t(&v_203); } FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_16); @@ -7469,58 +7368,58 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 } int s_0 = !lst_5 + !lst_6; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_18); - _fx_R9Ast__id_t v_210; + _fx_R9Ast__id_t v_214; fx_str_t slit_29 = FX_MAKE_STR("fx_ifaces_t"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_29, &v_210, 0), _fx_catch_18); - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_210, &ifaces_ctyp_0), _fx_catch_18); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(kvar_name_0, &v_154, 0), _fx_catch_18); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_29, &v_214, 0), _fx_catch_18); + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_214, &ifaces_ctyp_0), _fx_catch_18); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(kvar_name_0, &v_153, 0), _fx_catch_18); fx_str_t slit_30 = FX_MAKE_STR("_ifaces"); { - const fx_str_t strs_8[] = { v_154, slit_30 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_8, 2, &v_155), _fx_catch_18); + const fx_str_t strs_8[] = { v_153, slit_30 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_8, 2, &v_154), _fx_catch_18); } _fx_R9Ast__id_t ifaces_id_0; - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(cm_idx_0, &v_155, &ifaces_id_0, 0), _fx_catch_18); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(cm_idx_0, &v_154, &ifaces_id_0, 0), _fx_catch_18); fx_str_t* kvar_cname_0 = &v_6.kvar_cname; fx_str_t slit_31 = FX_MAKE_STR("_ifaces"); { const fx_str_t strs_9[] = { *kvar_cname_0, slit_31 }; FX_CALL(fx_strjoin(0, 0, 0, strs_9, 2, &ifaces_cname_0), _fx_catch_18); } - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_156, 0), _fx_catch_18); - _fx_make_R16Ast__val_flags_t(v_156.val_flag_arg, true, v_156.val_flag_temp, v_156.val_flag_tempref, - v_156.val_flag_private, v_156.val_flag_subarray, v_156.val_flag_instance, &v_156.val_flag_method, - v_156.val_flag_ctor, v_6.kvar_scope, &cv_flags_4); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_155, 0), _fx_catch_18); + _fx_make_R16Ast__val_flags_t(v_155.val_flag_arg, true, v_155.val_flag_temp, v_155.val_flag_tempref, + v_155.val_flag_private, v_155.val_flag_subarray, v_155.val_flag_instance, &v_155.val_flag_method, + v_155.val_flag_ctor, v_6.kvar_scope, &cv_flags_4); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &ifaces_id_0, ifaces_ctyp_0, &cv_flags_4, &ifaces_cname_0, &_fx_g18C_gen_fdecls__None, 0, kvar_loc_0, &v_157, + &ifaces_id_0, ifaces_ctyp_0, &cv_flags_4, &ifaces_cname_0, &_fx_g18C_gen_fdecls__None, 0, kvar_loc_0, &v_156, 0), _fx_catch_18); - FX_COPY_PTR(v_157.t0, &ifaces_id_exp_0); - FX_COPY_PTR(v_157.t1, &decl_ifaces_id_0); - FX_CALL(_fx_M12C_gen_fdeclsFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(pairs_0, &v_158, 0), _fx_catch_18); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(entries_ctyp_0, kvar_loc_0, &v_159); + FX_COPY_PTR(v_156.t0, &ifaces_id_exp_0); + FX_COPY_PTR(v_156.t1, &decl_ifaces_id_0); + FX_CALL(_fx_M12C_gen_fdeclsFM3revLN14C_form__cexp_t1LN14C_form__cexp_t(pairs_0, &v_157, 0), _fx_catch_18); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(entries_ctyp_0, kvar_loc_0, &v_158); FX_CALL( - _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_158, &v_159, + _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_157, &v_158, &entries_init_exp_0), _fx_catch_18); _fx_R9Ast__id_t iface_entries_0; fx_str_t slit_32 = FX_MAKE_STR("ifaces_entries"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(cm_idx_0, &slit_32, &iface_entries_0, 0), _fx_catch_18); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_160, 0), _fx_catch_18); - _fx_M12C_gen_fdeclsFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(entries_init_exp_0, &v_161); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_159, 0), _fx_catch_18); + _fx_M12C_gen_fdeclsFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(entries_init_exp_0, &v_160); fx_str_t slit_33 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &iface_entries_0, entries_ctyp_0, &v_160, &slit_33, &v_161, init_ccode_0, kvar_loc_0, &v_162, 0), + &iface_entries_0, entries_ctyp_0, &v_159, &slit_33, &v_160, init_ccode_0, kvar_loc_0, &v_161, 0), _fx_catch_18); - FX_COPY_PTR(v_162.t0, &iface_entries_exp_0); - FX_COPY_PTR(v_162.t1, &init_ccode_1); - FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g23C_gen_fdecls__CTypConst, 0, true, &v_163), _fx_catch_18); + FX_COPY_PTR(v_161.t0, &iface_entries_exp_0); + FX_COPY_PTR(v_161.t1, &init_ccode_1); + FX_CALL(_fx_cons_LN19C_form__ctyp_attr_t(&_fx_g23C_gen_fdecls__CTypConst, 0, true, &v_162), _fx_catch_18); FX_CALL( - _fx_M6C_formFM12CTypRawArrayN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_163, + _fx_M6C_formFM12CTypRawArrayN14C_form__ctyp_t2LN19C_form__ctyp_attr_tN14C_form__ctyp_t(v_162, _fx_g22C_gen_fdecls__CTypCInt, &ids_ctyp_0), _fx_catch_18); - FX_CALL(_fx_M12C_gen_fdeclsFM3revLR9Ast__id_t1LR9Ast__id_t(ids_0, &v_164, 0), _fx_catch_18); + FX_CALL(_fx_M12C_gen_fdeclsFM3revLR9Ast__id_t1LR9Ast__id_t(ids_0, &v_163, 0), _fx_catch_18); _fx_LN14C_form__cexp_t lstend_1 = 0; - _fx_LR9Ast__id_t lst_7 = v_164; + _fx_LR9Ast__id_t lst_7 = v_163; for (; lst_7; lst_7 = lst_7->tl) { _fx_N14C_form__cexp_t res_5 = 0; _fx_R9Ast__id_t* i_0 = &lst_7->hd; @@ -7529,7 +7428,7 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 _fx_g22C_gen_fdecls__CTypCInt, kvar_loc_0, &res_5, 0), _fx_catch_17); _fx_LN14C_form__cexp_t node_1 = 0; FX_CALL(_fx_cons_LN14C_form__cexp_t(res_5, 0, false, &node_1), _fx_catch_17); - FX_LIST_APPEND(v_165, lstend_1, node_1); + FX_LIST_APPEND(v_164, lstend_1, node_1); _fx_catch_17: ; if (res_5) { @@ -7537,81 +7436,81 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 } FX_CHECK_EXN(_fx_catch_18); } - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ids_ctyp_0, kvar_loc_0, &v_166); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ids_ctyp_0, kvar_loc_0, &v_165); FX_CALL( - _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_165, &v_166, + _fx_M6C_formFM8CExpInitN14C_form__cexp_t2LN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(v_164, &v_165, &ids_init_exp_0), _fx_catch_18); _fx_R9Ast__id_t ifaces_ids_0; fx_str_t slit_34 = FX_MAKE_STR("ifaces_ids"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(cm_idx_0, &slit_34, &ifaces_ids_0, 0), _fx_catch_18); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_167, 0), _fx_catch_18); - _fx_M12C_gen_fdeclsFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(ids_init_exp_0, &v_168); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_166, 0), _fx_catch_18); + _fx_M12C_gen_fdeclsFM4SomeNt6option1N14C_form__cexp_t1N14C_form__cexp_t(ids_init_exp_0, &v_167); fx_str_t slit_35 = FX_MAKE_STR(""); FX_CALL( _fx_M6C_formFM14create_cdefvalT2N14C_form__cexp_tLN15C_form__cstmt_t7R9Ast__id_tN14C_form__ctyp_tR16Ast__val_flags_tSNt6option1N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - &ifaces_ids_0, ids_ctyp_0, &v_167, &slit_35, &v_168, init_ccode_1, kvar_loc_0, &v_169, 0), _fx_catch_18); - FX_COPY_PTR(v_169.t0, &ids_exp_0); - FX_COPY_PTR(v_169.t1, &init_ccode_2); + &ifaces_ids_0, ids_ctyp_0, &v_166, &slit_35, &v_167, init_ccode_1, kvar_loc_0, &v_168, 0), _fx_catch_18); + FX_COPY_PTR(v_168.t0, &ids_exp_0); + FX_COPY_PTR(v_168.t1, &init_ccode_2); FX_CALL( _fx_M6C_formFM13make_id_t_expN14C_form__cexp_t3R9Ast__id_tN14C_form__ctyp_tR10Ast__loc_t(&free_f_4, - _fx_g21C_form__std_fx_free_t, kvar_loc_0, &v_170, 0), _fx_catch_18); + _fx_g21C_form__std_fx_free_t, kvar_loc_0, &v_169, 0), _fx_catch_18); FX_CALL( - _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_170, - _fx_g23C_form__std_CTypVoidPtr, kvar_loc_0, &v_171), _fx_catch_18); - int_ v_211; - FX_CALL(_fx_M12C_gen_fdeclsFM8length1_i1LR9Ast__id_t(ids_0, &v_211, 0), _fx_catch_18); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(v_211, kvar_loc_0, &v_172, 0), _fx_catch_18); - FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(ifaces_id_exp_0, &v_173, 0), _fx_catch_18); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_173, 0, true, &v_174), _fx_catch_18); - FX_CALL(_fx_cons_LN14C_form__cexp_t(iface_entries_exp_0, v_174, false, &v_174), _fx_catch_18); - FX_CALL(_fx_cons_LN14C_form__cexp_t(ids_exp_0, v_174, false, &v_174), _fx_catch_18); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_172, v_174, false, &v_174), _fx_catch_18); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_171, v_174, true, &init_ifaces_args_0), _fx_catch_18); - _fx_R9Ast__id_t v_212; + _fx_M6C_formFM8CExpCastN14C_form__cexp_t3N14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(v_169, + _fx_g23C_form__std_CTypVoidPtr, kvar_loc_0, &v_170), _fx_catch_18); + int_ v_215; + FX_CALL(_fx_M12C_gen_fdeclsFM8length1_i1LR9Ast__id_t(ids_0, &v_215, 0), _fx_catch_18); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(v_215, kvar_loc_0, &v_171, 0), _fx_catch_18); + FX_CALL(_fx_M6C_formFM13cexp_get_addrN14C_form__cexp_t1N14C_form__cexp_t(ifaces_id_exp_0, &v_172, 0), _fx_catch_18); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_172, 0, true, &v_173), _fx_catch_18); + FX_CALL(_fx_cons_LN14C_form__cexp_t(iface_entries_exp_0, v_173, false, &v_173), _fx_catch_18); + FX_CALL(_fx_cons_LN14C_form__cexp_t(ids_exp_0, v_173, false, &v_173), _fx_catch_18); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_171, v_173, false, &v_173), _fx_catch_18); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_170, v_173, true, &init_ifaces_args_0), _fx_catch_18); + _fx_R9Ast__id_t v_216; fx_str_t slit_36 = FX_MAKE_STR("fx_init_ifaces"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_36, &v_212, 0), _fx_catch_18); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_36, &v_216, 0), _fx_catch_18); FX_CALL( - _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_212, + _fx_M6C_formFM9make_callN14C_form__cexp_t4R9Ast__id_tLN14C_form__cexp_tN14C_form__ctyp_tR10Ast__loc_t(&v_216, init_ifaces_args_0, _fx_g22C_gen_fdecls__CTypVoid, kvar_loc_0, &call_init_ifaces_0, 0), _fx_catch_18); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_init_ifaces_0, &v_175), _fx_catch_18); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_175, init_ccode_2, true, &init_ccode_3), _fx_catch_18); - _fx_R17C_form__cdeftyp_t* v_213 = &ct_1->data; - _fx_make_R17C_form__cdeftyp_t(&v_213->ct_name, v_213->ct_typ, &v_213->ct_cname, &v_213->ct_props, - v_213->ct_data_start, &v_213->ct_enum, v_213->ct_ifaces, &ifaces_id_0, v_213->ct_scope, &v_213->ct_loc, &v_176); - _fx_R17C_form__cdeftyp_t* v_214 = &ct_1->data; - _fx_free_R17C_form__cdeftyp_t(v_214); - _fx_copy_R17C_form__cdeftyp_t(&v_176, v_214); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(call_init_ifaces_0, &v_174), _fx_catch_18); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_174, init_ccode_2, true, &init_ccode_3), _fx_catch_18); + _fx_R17C_form__cdeftyp_t* v_217 = &ct_1->data; + _fx_make_R17C_form__cdeftyp_t(&v_217->ct_name, v_217->ct_typ, &v_217->ct_cname, &v_217->ct_props, + v_217->ct_data_start, &v_217->ct_enum, v_217->ct_ifaces, &ifaces_id_0, v_217->ct_scope, &v_217->ct_loc, &v_175); + _fx_R17C_form__cdeftyp_t* v_218 = &ct_1->data; + _fx_free_R17C_form__cdeftyp_t(v_218); + _fx_copy_R17C_form__cdeftyp_t(&v_175, v_218); FX_CALL( _fx_M12C_gen_fdeclsFM7__add__LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(decl_ifaces_id_0, - top_fcv_decls_0, &v_177, 0), _fx_catch_18); + top_fcv_decls_0, &v_176, 0), _fx_catch_18); _fx_free_LN15C_form__cstmt_t(&top_fcv_decls_0); - FX_COPY_PTR(v_177, &top_fcv_decls_0); - FX_CALL(_fx_M12C_gen_fdeclsFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(init_ccode_3, &v_178, 0), _fx_catch_18); - FX_CALL(_fx_M6C_formFM10CStmtBlockN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(v_178, kvar_loc_0, &v_179), + FX_COPY_PTR(v_176, &top_fcv_decls_0); + FX_CALL(_fx_M12C_gen_fdeclsFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(init_ccode_3, &v_177, 0), _fx_catch_18); + FX_CALL(_fx_M6C_formFM10CStmtBlockN15C_form__cstmt_t2LN15C_form__cstmt_tR10Ast__loc_t(v_177, kvar_loc_0, &v_178), _fx_catch_18); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_179, mod_init_calls_0, true, &v_180), _fx_catch_18); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_178, mod_init_calls_0, true, &v_179), _fx_catch_18); _fx_free_LN15C_form__cstmt_t(&mod_init_calls_0); - FX_COPY_PTR(v_180, &mod_init_calls_0); + FX_COPY_PTR(v_179, &mod_init_calls_0); _fx_catch_18: ; - if (v_180) { - _fx_free_LN15C_form__cstmt_t(&v_180); - } if (v_179) { - _fx_free_N15C_form__cstmt_t(&v_179); + _fx_free_LN15C_form__cstmt_t(&v_179); } if (v_178) { - _fx_free_LN15C_form__cstmt_t(&v_178); + _fx_free_N15C_form__cstmt_t(&v_178); } if (v_177) { _fx_free_LN15C_form__cstmt_t(&v_177); } - _fx_free_R17C_form__cdeftyp_t(&v_176); + if (v_176) { + _fx_free_LN15C_form__cstmt_t(&v_176); + } + _fx_free_R17C_form__cdeftyp_t(&v_175); if (init_ccode_3) { _fx_free_LN15C_form__cstmt_t(&init_ccode_3); } - if (v_175) { - _fx_free_N15C_form__cstmt_t(&v_175); + if (v_174) { + _fx_free_N15C_form__cstmt_t(&v_174); } if (call_init_ifaces_0) { _fx_free_N14C_form__cexp_t(&call_init_ifaces_0); @@ -7619,11 +7518,8 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 if (init_ifaces_args_0) { _fx_free_LN14C_form__cexp_t(&init_ifaces_args_0); } - if (v_174) { - _fx_free_LN14C_form__cexp_t(&v_174); - } if (v_173) { - _fx_free_N14C_form__cexp_t(&v_173); + _fx_free_LN14C_form__cexp_t(&v_173); } if (v_172) { _fx_free_N14C_form__cexp_t(&v_172); @@ -7634,42 +7530,45 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 if (v_170) { _fx_free_N14C_form__cexp_t(&v_170); } + if (v_169) { + _fx_free_N14C_form__cexp_t(&v_169); + } if (init_ccode_2) { _fx_free_LN15C_form__cstmt_t(&init_ccode_2); } if (ids_exp_0) { _fx_free_N14C_form__cexp_t(&ids_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_169); - _fx_free_Nt6option1N14C_form__cexp_t(&v_168); - _fx_free_R16Ast__val_flags_t(&v_167); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_168); + _fx_free_Nt6option1N14C_form__cexp_t(&v_167); + _fx_free_R16Ast__val_flags_t(&v_166); if (ids_init_exp_0) { _fx_free_N14C_form__cexp_t(&ids_init_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_166); - if (v_165) { - _fx_free_LN14C_form__cexp_t(&v_165); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_165); + if (v_164) { + _fx_free_LN14C_form__cexp_t(&v_164); } - FX_FREE_LIST_SIMPLE(&v_164); + FX_FREE_LIST_SIMPLE(&v_163); if (ids_ctyp_0) { _fx_free_N14C_form__ctyp_t(&ids_ctyp_0); } - FX_FREE_LIST_SIMPLE(&v_163); + FX_FREE_LIST_SIMPLE(&v_162); if (init_ccode_1) { _fx_free_LN15C_form__cstmt_t(&init_ccode_1); } if (iface_entries_exp_0) { _fx_free_N14C_form__cexp_t(&iface_entries_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_162); - _fx_free_Nt6option1N14C_form__cexp_t(&v_161); - _fx_free_R16Ast__val_flags_t(&v_160); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_161); + _fx_free_Nt6option1N14C_form__cexp_t(&v_160); + _fx_free_R16Ast__val_flags_t(&v_159); if (entries_init_exp_0) { _fx_free_N14C_form__cexp_t(&entries_init_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_159); - if (v_158) { - _fx_free_LN14C_form__cexp_t(&v_158); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_158); + if (v_157) { + _fx_free_LN14C_form__cexp_t(&v_157); } if (decl_ifaces_id_0) { _fx_free_LN15C_form__cstmt_t(&decl_ifaces_id_0); @@ -7677,20 +7576,23 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 if (ifaces_id_exp_0) { _fx_free_N14C_form__cexp_t(&ifaces_id_exp_0); } - _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_157); + _fx_free_T2N14C_form__cexp_tLN15C_form__cstmt_t(&v_156); _fx_free_R16Ast__val_flags_t(&cv_flags_4); - _fx_free_R16Ast__val_flags_t(&v_156); + _fx_free_R16Ast__val_flags_t(&v_155); FX_FREE_STR(&ifaces_cname_0); - FX_FREE_STR(&v_155); FX_FREE_STR(&v_154); + FX_FREE_STR(&v_153); if (ifaces_ctyp_0) { _fx_free_N14C_form__ctyp_t(&ifaces_ctyp_0); } if (kvar_ifaces_2) { _fx_free_LT2R9Ast__id_tLR9Ast__id_t(&kvar_ifaces_2); } - if (v_153) { - _fx_free_LN14C_form__cexp_t(&v_153); + if (v_152) { + _fx_free_LN14C_form__cexp_t(&v_152); + } + if (kvar_ifaces_1) { + _fx_free_LT2R9Ast__id_tLR9Ast__id_t(&kvar_ifaces_1); } _fx_free_Rt6Set__t1R9Ast__id_t(&all_ids_0); if (pairs_0) { @@ -7700,11 +7602,6 @@ FX_EXTERN_C int _fx_M12C_gen_fdeclsFM18convert_all_fdeclsTa3LN15C_form__cstmt_t2 if (init_ccode_0) { _fx_free_LN15C_form__cstmt_t(&init_ccode_0); } - _fx_free_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t(&v_152); - if (kvar_ifaces_1) { - _fx_free_LT2R9Ast__id_tLR9Ast__id_t(&kvar_ifaces_1); - } - _fx_free_T4LN15C_form__cstmt_tLR9Ast__id_tLN14C_form__cexp_tRt6Set__t1R9Ast__id_t(&__fold_result___2); if (entries_ctyp_0) { _fx_free_N14C_form__ctyp_t(&entries_ctyp_0); } diff --git a/compiler/bootstrap/C_gen_types.c b/compiler/bootstrap/C_gen_types.c index a5ca7c9b..6bed5d73 100644 --- a/compiler/bootstrap/C_gen_types.c +++ b/compiler/bootstrap/C_gen_types.c @@ -1597,14 +1597,6 @@ typedef struct _fx_T2N14C_form__ctyp_tNt6option1R9Ast__id_t { struct _fx_Nt6option1R9Ast__id_t t1; } _fx_T2N14C_form__ctyp_tNt6option1R9Ast__id_t; -typedef struct _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t { - struct _fx_LN15C_form__cstmt_t_data_t* t0; - struct _fx_LN15C_form__cstmt_t_data_t* t1; - struct _fx_LN15C_form__cstmt_t_data_t* t2; - struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* t3; - struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t* t4; -} _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t; - typedef struct _fx_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t { struct _fx_N14C_form__ctyp_t_data_t* t0; struct _fx_LN19C_form__carg_attr_t_data_t* t1; @@ -1616,12 +1608,6 @@ typedef struct _fx_T2BN14C_form__cexp_t { struct _fx_N14C_form__cexp_t_data_t* t1; } _fx_T2BN14C_form__cexp_t; -typedef struct _fx_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t { - struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t* t0; - struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t* t1; - struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* t2; -} _fx_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t; - typedef struct _fx_T2N15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t { struct _fx_N15C_form__cstmt_t_data_t* t0; struct _fx_Nt10Hashset__t1R9Ast__id_t_data_t* t1; @@ -5779,49 +5765,6 @@ static void _fx_make_T2N14C_form__ctyp_tNt6option1R9Ast__id_t( fx_result->t1 = *t1; } -static void - _fx_free_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - struct _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* - dst) -{ - _fx_free_LN15C_form__cstmt_t(&dst->t0); - _fx_free_LN15C_form__cstmt_t(&dst->t1); - _fx_free_LN15C_form__cstmt_t(&dst->t2); - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&dst->t3); - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&dst->t4); -} - -static void - _fx_copy_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - struct _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* - src, - struct _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* - dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); - FX_COPY_PTR(src->t3, &dst->t3); - FX_COPY_PTR(src->t4, &dst->t4); -} - -static void - _fx_make_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - struct _fx_LN15C_form__cstmt_t_data_t* t0, - struct _fx_LN15C_form__cstmt_t_data_t* t1, - struct _fx_LN15C_form__cstmt_t_data_t* t2, - struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* t3, - struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t* t4, - struct _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* - fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); - FX_COPY_PTR(t3, &fx_result->t3); - FX_COPY_PTR(t4, &fx_result->t4); -} - static void _fx_free_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t( struct _fx_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t* dst) { @@ -5870,41 +5813,6 @@ static void _fx_make_T2BN14C_form__cexp_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void - _fx_free_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - struct _fx_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t* - dst) -{ - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&dst->t0); - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&dst->t1); - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&dst->t2); -} - -static void - _fx_copy_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - struct _fx_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t* - src, - struct _fx_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t* - dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); -} - -static void - _fx_make_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t* t0, - struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t* t1, - struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t* t2, - struct _fx_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t* - fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); -} - static void _fx_free_T2N15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t( struct _fx_T2N15C_form__cstmt_tNt10Hashset__t1R9Ast__id_t* dst) { @@ -6632,28 +6540,27 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM3revLT2LN14C_form__cexp_tLN15C_form__cstmt_t struct _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t_data_t** fx_result, void* fx_fv) { - _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t __fold_result___0 = 0; + _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t res_0 = 0; int fx_status = 0; _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t r_0 = 0; + _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t v_0 = 0; _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&r_0); + if (v_0) { + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&res_0); } return fx_status; } @@ -6663,28 +6570,27 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM3revLT2R9Ast__id_tN14C_form__ctyp_t1LT2R9Ast struct _fx_LT2R9Ast__id_tN14C_form__ctyp_t_data_t** fx_result, void* fx_fv) { - _fx_LT2R9Ast__id_tN14C_form__ctyp_t __fold_result___0 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t res_0 = 0; int fx_status = 0; _fx_LT2R9Ast__id_tN14C_form__ctyp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2R9Ast__id_tN14C_form__ctyp_t r_0 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_0 = 0; _fx_T2R9Ast__id_tN14C_form__ctyp_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&r_0); + if (v_0) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&res_0); } return fx_status; } @@ -6695,28 +6601,27 @@ FX_EXTERN_C int struct _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t_data_t** fx_result, void* fx_fv) { - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t __fold_result___0 = 0; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t res_0 = 0; int fx_status = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t r_0 = 0; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_0 = 0; _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&r_0); + if (v_0) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&__fold_result___0); + if (res_0) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&res_0); } return fx_status; } @@ -6726,28 +6631,27 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t( struct _fx_LN15C_form__cstmt_t_data_t** fx_result, void* fx_fv) { - _fx_LN15C_form__cstmt_t __fold_result___0 = 0; + _fx_LN15C_form__cstmt_t res_0 = 0; int fx_status = 0; _fx_LN15C_form__cstmt_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN15C_form__cstmt_t r_0 = 0; + _fx_LN15C_form__cstmt_t v_0 = 0; _fx_N15C_form__cstmt_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN15C_form__cstmt_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN15C_form__cstmt_t(&r_0); + if (v_0) { + _fx_free_LN15C_form__cstmt_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); + if (res_0) { + _fx_free_LN15C_form__cstmt_t(&res_0); } return fx_status; } @@ -6773,11 +6677,12 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1S* v_2 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, *ht_table_0, tabsz_0); - _fx_free_Rt24Hashset__hashset_entry_t1S(v_2); - _fx_copy_Rt24Hashset__hashset_entry_t1S(entry_0, v_2); + _fx_Rt24Hashset__hashset_entry_t1S* v_3 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, *ht_table_0, tabsz_0); + _fx_free_Rt24Hashset__hashset_entry_t1S(v_3); + _fx_copy_Rt24Hashset__hashset_entry_t1S(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -6822,9 +6727,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -6876,26 +6784,27 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM4growv2Nt10Hashset__t1Si( for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt24Hashset__hashset_entry_t1S v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1S* v_3 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt24Hashset__hashset_entry_t1S(FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M11C_gen_typesFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1SRt24Hashset__hashset_entry_t1S(tabsz_0, - &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt24Hashset__hashset_entry_t1S(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -6933,26 +6842,28 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M11C_gen_typesFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -7044,32 +6955,11 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9A bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -7103,17 +6993,17 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t( void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( - _fx_M11C_gen_typesFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_cleanup); + _fx_M11C_gen_typesFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, &v_0, + 0), _fx_cleanup); *fx_result = v_0.t1 >= 0; _fx_cleanup: ; @@ -7201,17 +7091,19 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1SSq( } if (t_1) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_)(FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1S* v_10 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -7221,11 +7113,12 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1SSq( } _fx_make_Rt24Hashset__hashset_entry_t1S(hv_0, k_0, &v_2); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt24Hashset__hashset_entry_t1S* v_8 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0); - _fx_free_Rt24Hashset__hashset_entry_t1S(v_8); - _fx_copy_Rt24Hashset__hashset_entry_t1S(&v_2, v_8); + _fx_Rt24Hashset__hashset_entry_t1S* v_11 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0); + _fx_free_Rt24Hashset__hashset_entry_t1S(v_11); + _fx_copy_Rt24Hashset__hashset_entry_t1S(&v_2, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -7277,32 +7170,11 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_t bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -7318,14 +7190,14 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_t FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -7337,27 +7209,29 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_t FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -7365,11 +7239,14 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_t fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -9731,8 +9608,11 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM16convert_all_typsTa3LN15C_form__cstmt_t1LR1 _fx_LN15C_form__cstmt_t v_4 = 0; int fx_status = 0; FX_CALL(_fx_make_rLN15C_form__cstmt_t(0, &top_fwd_decl_ref_0), _fx_cleanup); + _fx_LN15C_form__cstmt_t* top_fwd_decl_0 = &top_fwd_decl_ref_0->data; FX_CALL(_fx_make_rLN15C_form__cstmt_t(0, &top_typ_decl_ref_0), _fx_cleanup); + _fx_LN15C_form__cstmt_t* top_typ_decl_0 = &top_typ_decl_ref_0->data; FX_CALL(_fx_make_rLN15C_form__cstmt_t(0, &top_typfun_decl_ref_0), _fx_cleanup); + _fx_LN15C_form__cstmt_t* top_typfun_decl_0 = &top_typfun_decl_ref_0->data; FX_CALL(_fx_make_rRt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &all_decls_ref_0), _fx_cleanup); FX_CALL(_fx_make_rRt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &all_fwd_decls_ref_0), _fx_cleanup); FX_CALL(_fx_make_rRt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &all_visited_ref_0), _fx_cleanup); @@ -9825,9 +9705,9 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM16convert_all_typsTa3LN15C_form__cstmt_t1LR1 } FX_CHECK_EXN(_fx_cleanup); } - FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(top_fwd_decl_ref_0->data, &v_2, 0), _fx_cleanup); - FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(top_typ_decl_ref_0->data, &v_3, 0), _fx_cleanup); - FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(top_typfun_decl_ref_0->data, &v_4, 0), _fx_cleanup); + FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(*top_fwd_decl_0, &v_2, 0), _fx_cleanup); + FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(*top_typ_decl_0, &v_3, 0), _fx_cleanup); + FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(*top_typfun_decl_0, &v_4, 0), _fx_cleanup); _fx_make_Ta3LN15C_form__cstmt_t(v_2, v_3, v_4, fx_result); _fx_cleanup: ; @@ -9991,8 +9871,9 @@ static int _fx_M11C_gen_typesFM12add_fwd_declv5R9Ast__id_tBN15C_form__cstmt_trRt _fx_endmatch_0: ; FX_CHECK_EXN(_fx_cleanup); FX_COPY_PTR(v_5.t0, &t_2); + int_ v_10 = all_fwd_decls_0->size; FX_COPY_FP(&all_fwd_decls_0->cmp, &v_6); - _fx_make_Rt6Set__t1R9Ast__id_t(t_2, all_fwd_decls_0->size + dsz_0, &v_6, &v_7); + _fx_make_Rt6Set__t1R9Ast__id_t(t_2, v_10 + dsz_0, &v_6, &v_7); _fx_free_Rt6Set__t1R9Ast__id_t(all_fwd_decls_0); _fx_copy_Rt6Set__t1R9Ast__id_t(&v_7, all_fwd_decls_0); FX_CALL(_fx_cons_LN15C_form__cstmt_t(decl_0, *top_fwd_decl_0, true, &v_8), _fx_cleanup); @@ -10082,30 +9963,31 @@ static int _fx_endmatch_0: ; FX_CHECK_EXN(_fx_cleanup); FX_COPY_PTR(v_3.t0, &t_1); + int_ v_7 = all_decls_0->size; FX_COPY_FP(&all_decls_0->cmp, &v_4); - _fx_make_Rt6Set__t1R9Ast__id_t(t_1, all_decls_0->size + dsz_0, &v_4, &v_5); + _fx_make_Rt6Set__t1R9Ast__id_t(t_1, v_7 + dsz_0, &v_4, &v_5); _fx_free_Rt6Set__t1R9Ast__id_t(all_decls_0); _fx_copy_Rt6Set__t1R9Ast__id_t(&v_5, all_decls_0); if (FX_REC_VARIANT_TAG(decl_0) == 17) { - _fx_LN15C_form__cstmt_t v_7 = 0; - FX_CALL(_fx_cons_LN15C_form__cstmt_t(decl_0, *top_typfun_decl_0, true, &v_7), _fx_catch_1); + _fx_LN15C_form__cstmt_t v_8 = 0; + FX_CALL(_fx_cons_LN15C_form__cstmt_t(decl_0, *top_typfun_decl_0, true, &v_8), _fx_catch_1); _fx_free_LN15C_form__cstmt_t(top_typfun_decl_0); - FX_COPY_PTR(v_7, top_typfun_decl_0); + FX_COPY_PTR(v_8, top_typfun_decl_0); _fx_catch_1: ; - if (v_7) { - _fx_free_LN15C_form__cstmt_t(&v_7); + if (v_8) { + _fx_free_LN15C_form__cstmt_t(&v_8); } } else { - _fx_LN15C_form__cstmt_t v_8 = 0; - FX_CALL(_fx_cons_LN15C_form__cstmt_t(decl_0, *top_typ_decl_0, true, &v_8), _fx_catch_2); + _fx_LN15C_form__cstmt_t v_9 = 0; + FX_CALL(_fx_cons_LN15C_form__cstmt_t(decl_0, *top_typ_decl_0, true, &v_9), _fx_catch_2); _fx_free_LN15C_form__cstmt_t(top_typ_decl_0); - FX_COPY_PTR(v_8, top_typ_decl_0); + FX_COPY_PTR(v_9, top_typ_decl_0); _fx_catch_2: ; - if (v_8) { - _fx_free_LN15C_form__cstmt_t(&v_8); + if (v_9) { + _fx_free_LN15C_form__cstmt_t(&v_9); } } FX_CHECK_EXN(_fx_cleanup); @@ -10449,6 +10331,8 @@ static int _fx_FPv1R9Ast__id_t __lambda___0 = {0}; int fx_status = 0; _fx_Rt6Set__t1R9Ast__id_t* all_decls_0 = &all_decls_ref_0->data; + _fx_Rt6Set__t1R9Ast__id_t* all_fwd_decls_0 = &all_fwd_decls_ref_0->data; + _fx_Rt6Map__t2R9Ast__id_tR29C_gen_types__ctyp_temp_info_t* all_saved_rec_vars_0 = &all_saved_rec_vars_ref_0->data; _fx_Rt6Set__t1R9Ast__id_t* all_visited_0 = &all_visited_ref_0->data; int_* curr_cm_idx_0 = &curr_cm_idx_ref_0->data; _fx_LN15C_form__cstmt_t* top_typ_decl_0 = &top_typ_decl_ref_0->data; @@ -10460,12 +10344,12 @@ static int if (kt_info_0.tag == 5) { _fx_FPB1R9Ast__id_t __lambda___1 = {0}; _fx_Rt6Set__t1R9Ast__id_t v_8 = {0}; - _fx_R16Ast__var_flags_t kvar_flags_0 = kt_info_0.u.KVariant->data.kvar_flags; + _fx_R21K_form__kdefvariant_t* v_9 = &kt_info_0.u.KVariant->data; + _fx_R16Ast__var_flags_t kvar_flags_0 = v_9->kvar_flags; if (kvar_flags_0.var_flag_recursive) { - bool v_9; - FX_CALL(_fx_M11C_gen_typesFM3memB2Rt6Set__t1R9Ast__id_tR9Ast__id_t(&all_fwd_decls_ref_0->data, tn_0, &v_9, 0), - _fx_catch_0); - bool fwd_decl_0 = !v_9; + bool v_10; + FX_CALL(_fx_M11C_gen_typesFM3memB2Rt6Set__t1R9Ast__id_tR9Ast__id_t(all_fwd_decls_0, tn_0, &v_10, 0), _fx_catch_0); + bool fwd_decl_0 = !v_10; _fx_M11C_gen_typesFM7make_fpFPB1R9Ast__id_t1R9Ast__id_t(tn_0, &__lambda___1); FX_CALL( _fx_M11C_gen_typesFM6filterRt6Set__t1R9Ast__id_t2Rt6Set__t1R9Ast__id_tFPB1R9Ast__id_t(&deps_0, &__lambda___1, &v_8, @@ -10489,26 +10373,26 @@ static int _fx_copy_Rt6Set__t1R9Ast__id_t(&v_0.t2, &deps_1); if (visited_0 == true) { if (recursive_variant_0 == false) { - fx_str_t v_10 = {0}; fx_str_t v_11 = {0}; fx_str_t v_12 = {0}; - fx_exn_t v_13 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_10, 0), _fx_catch_1); - FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_10, &v_11, 0), _fx_catch_1); + fx_str_t v_13 = {0}; + fx_exn_t v_14 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_11, 0), _fx_catch_1); + FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_11, &v_12, 0), _fx_catch_1); fx_str_t slit_0 = FX_MAKE_STR("non-recursive variant type \'"); fx_str_t slit_1 = FX_MAKE_STR("\' references itself directly or indirectly"); { - const fx_str_t strs_0[] = { slit_0, v_11, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_12), _fx_catch_1); + const fx_str_t strs_0[] = { slit_0, v_12, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_13), _fx_catch_1); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_12, &v_13, 0), _fx_catch_1); - FX_THROW(&v_13, false, _fx_catch_1); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_13, &v_14, 0), _fx_catch_1); + FX_THROW(&v_14, false, _fx_catch_1); _fx_catch_1: ; - fx_free_exn(&v_13); + fx_free_exn(&v_14); + FX_FREE_STR(&v_13); FX_FREE_STR(&v_12); FX_FREE_STR(&v_11); - FX_FREE_STR(&v_10); goto _fx_endmatch_0; } } @@ -10537,31 +10421,31 @@ _fx_endmatch_0: ; else { FX_CALL( _fx_M11C_gen_typesFM8find_optNt6option1RM16ctyp_temp_info_t2Rt6Map__t2R9Ast__id_tRM16ctyp_temp_info_tR9Ast__id_t( - &all_saved_rec_vars_ref_0->data, tn_0, &v_4, 0), _fx_cleanup); + all_saved_rec_vars_0, tn_0, &v_4, 0), _fx_cleanup); if (v_4.tag == 2) { _fx_copy_R29C_gen_types__ctyp_temp_info_t(&v_4.u.Some, &v_3); } else { - fx_str_t v_14 = {0}; fx_str_t v_15 = {0}; fx_str_t v_16 = {0}; - fx_exn_t v_17 = {0}; - FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_14, 0), _fx_catch_2); - FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_14, &v_15, 0), _fx_catch_2); + fx_str_t v_17 = {0}; + fx_exn_t v_18 = {0}; + FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_15, 0), _fx_catch_2); + FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_15, &v_16, 0), _fx_catch_2); fx_str_t slit_3 = FX_MAKE_STR("cgen: missing information about recursive variant \'"); fx_str_t slit_4 = FX_MAKE_STR("\'"); { - const fx_str_t strs_1[] = { slit_3, v_15, slit_4 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_16), _fx_catch_2); + const fx_str_t strs_1[] = { slit_3, v_16, slit_4 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_17), _fx_catch_2); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_16, &v_17, 0), _fx_catch_2); - FX_THROW(&v_17, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_17, &v_18, 0), _fx_catch_2); + FX_THROW(&v_18, false, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_17); + fx_free_exn(&v_18); + FX_FREE_STR(&v_17); FX_FREE_STR(&v_16); FX_FREE_STR(&v_15); - FX_FREE_STR(&v_14); } FX_CHECK_EXN(_fx_cleanup); } @@ -10571,13 +10455,16 @@ _fx_endmatch_0: ; FX_COPY_PTR(v_3.ctti_copyf_decl, ©f_decl_0); FX_COPY_PTR(v_3.ctti_freef_decl, &freef_decl_0); FX_COPY_PTR(v_3.ctti_struct_decl, &struct_decl_0); - _fx_R9Ast__id_t free_f_0 = freef_decl_0->data.cf_name; - _fx_R9Ast__id_t copy_f_0 = copyf_decl_0->data.cf_name; - _fx_copy_R17C_form__ctprops_t(&struct_decl_0->data.ct_props, &ct_props_0); + _fx_R17C_form__cdeffun_t* v_19 = &freef_decl_0->data; + _fx_R9Ast__id_t free_f_0 = v_19->cf_name; + _fx_R17C_form__cdeffun_t* v_20 = ©f_decl_0->data; + _fx_R9Ast__id_t copy_f_0 = v_20->cf_name; + _fx_R17C_form__cdeftyp_t* v_21 = &struct_decl_0->data; + _fx_copy_R17C_form__ctprops_t(&v_21->ct_props, &ct_props_0); _fx_copy_R17C_form__cdeftyp_t(&struct_decl_0->data, &v_5); - _fx_N14C_form__ctyp_t v_18 = v_5.ct_typ; - if (FX_REC_VARIANT_TAG(v_18) == 17) { - _fx_N14C_form__ctyp_t a_struct_typ_0 = v_18->u.CTypRawPtr.t1; + _fx_N14C_form__ctyp_t v_22 = v_5.ct_typ; + if (FX_REC_VARIANT_TAG(v_22) == 17) { + _fx_N14C_form__ctyp_t a_struct_typ_0 = v_22->u.CTypRawPtr.t1; if (FX_REC_VARIANT_TAG(a_struct_typ_0) == 14) { _fx_N14C_form__ctyp_t struct_typ_1 = 0; _fx_Nt6option1R9Ast__id_t* struct_id_opt_0 = &a_struct_typ_0->u.CTypStruct.t0; @@ -10599,15 +10486,15 @@ _fx_endmatch_0: ; goto _fx_endmatch_1; } } - _fx_N14C_form__ctyp_t v_19 = 0; - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(tn_0, &v_19), _fx_catch_5); - _fx_Nt6option1R9Ast__id_t v_20; - _fx_M11C_gen_typesFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(tn_0, &v_20); - _fx_make_T2N14C_form__ctyp_tNt6option1R9Ast__id_t(v_19, &v_20, &v_6); + _fx_N14C_form__ctyp_t v_23 = 0; + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(tn_0, &v_23), _fx_catch_5); + _fx_Nt6option1R9Ast__id_t v_24; + _fx_M11C_gen_typesFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(tn_0, &v_24); + _fx_make_T2N14C_form__ctyp_tNt6option1R9Ast__id_t(v_23, &v_24, &v_6); _fx_catch_5: ; - if (v_19) { - _fx_free_N14C_form__ctyp_t(&v_19); + if (v_23) { + _fx_free_N14C_form__ctyp_t(&v_23); } _fx_endmatch_1: ; @@ -10623,209 +10510,202 @@ _fx_endmatch_1: ; top_fwd_decl_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, &__lambda___0); FX_CALL(_fx_M11C_gen_typesFM3appv2Rt6Set__t1R9Ast__id_tFPv1R9Ast__id_t(&deps_1, &__lambda___0, 0), _fx_cleanup); if (kt_info_0.tag == 7) { - _fx_R23K_form__kdefinterface_t v_21 = {0}; - _fx_Rt6Set__t1R9Ast__id_t v_22 = {0}; - _fx_copy_R23K_form__kdefinterface_t(&kt_info_0.u.KInterface->data, &v_21); + _fx_R23K_form__kdefinterface_t v_25 = {0}; + _fx_Rt6Set__t1R9Ast__id_t v_26 = {0}; + _fx_copy_R23K_form__kdefinterface_t(&kt_info_0.u.KInterface->data, &v_25); FX_CALL( - _fx_M11C_gen_typesFM3addRt6Set__t1R9Ast__id_t2Rt6Set__t1R9Ast__id_tR9Ast__id_t(all_decls_0, &v_21.ki_name, &v_22, 0), + _fx_M11C_gen_typesFM3addRt6Set__t1R9Ast__id_t2Rt6Set__t1R9Ast__id_tR9Ast__id_t(all_decls_0, &v_25.ki_name, &v_26, 0), _fx_catch_6); _fx_free_Rt6Set__t1R9Ast__id_t(all_decls_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_22, all_decls_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_26, all_decls_0); _fx_catch_6: ; - _fx_free_Rt6Set__t1R9Ast__id_t(&v_22); - _fx_free_R23K_form__kdefinterface_t(&v_21); + _fx_free_Rt6Set__t1R9Ast__id_t(&v_26); + _fx_free_R23K_form__kdefinterface_t(&v_25); } else { - _fx_N15C_form__cstmt_t v_23 = 0; - _fx_N15C_form__cstmt_t v_24 = 0; - _fx_N15C_form__cstmt_t v_25 = 0; - FX_CALL(_fx_M6C_formFM7CDefTypN15C_form__cstmt_t1rRM9cdeftyp_t(struct_decl_0, &v_23), _fx_catch_7); + _fx_N15C_form__cstmt_t v_27 = 0; + _fx_N15C_form__cstmt_t v_28 = 0; + _fx_N15C_form__cstmt_t v_29 = 0; + FX_CALL(_fx_M6C_formFM7CDefTypN15C_form__cstmt_t1rRM9cdeftyp_t(struct_decl_0, &v_27), _fx_catch_7); FX_CALL( _fx_M11C_gen_typesFM8add_declv5R9Ast__id_tN15C_form__cstmt_trRt6Set__t1R9Ast__id_trLN15C_form__cstmt_trLN15C_form__cstmt_t( - tn_0, v_23, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_7); + tn_0, v_27, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_7); if (ktp_0.ktp_custom_free) { - FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(freef_decl_0, &v_24), _fx_catch_7); + FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(freef_decl_0, &v_28), _fx_catch_7); FX_CALL( _fx_M11C_gen_typesFM8add_declv5R9Ast__id_tN15C_form__cstmt_trRt6Set__t1R9Ast__id_trLN15C_form__cstmt_trLN15C_form__cstmt_t( - &free_f_0, v_24, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_7); + &free_f_0, v_28, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_7); } if (ktp_0.ktp_custom_copy) { - FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(copyf_decl_0, &v_25), _fx_catch_7); + FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(copyf_decl_0, &v_29), _fx_catch_7); FX_CALL( _fx_M11C_gen_typesFM8add_declv5R9Ast__id_tN15C_form__cstmt_trRt6Set__t1R9Ast__id_trLN15C_form__cstmt_trLN15C_form__cstmt_t( - ©_f_0, v_25, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_7); + ©_f_0, v_29, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_7); } _fx_catch_7: ; - if (v_25) { - _fx_free_N15C_form__cstmt_t(&v_25); + if (v_29) { + _fx_free_N15C_form__cstmt_t(&v_29); } - if (v_24) { - _fx_free_N15C_form__cstmt_t(&v_24); + if (v_28) { + _fx_free_N15C_form__cstmt_t(&v_28); } - if (v_23) { - _fx_free_N15C_form__cstmt_t(&v_23); + if (v_27) { + _fx_free_N15C_form__cstmt_t(&v_27); } } FX_CHECK_EXN(_fx_cleanup); int tag_0 = kt_info_0.tag; if (tag_0 == 8) { _fx_N14K_form__ktyp_t kt_typ_0 = 0; - _fx_R17K_form__kdeftyp_t* v_26 = &kt_info_0.u.KTyp->data; - _fx_R10Ast__loc_t kt_loc_0 = v_26->kt_loc; - FX_COPY_PTR(v_26->kt_typ, &kt_typ_0); + _fx_R17K_form__kdeftyp_t* v_30 = &kt_info_0.u.KTyp->data; + _fx_R10Ast__loc_t kt_loc_0 = v_30->kt_loc; + FX_COPY_PTR(v_30->kt_typ, &kt_typ_0); int tag_1 = FX_REC_VARIANT_TAG(kt_typ_0); if (tag_1 == 14) { - _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t - __fold_result___0 = {0}; - _fx_LN14K_form__ktyp_t telems_0 = 0; - _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t - v_27 = {0}; _fx_LN15C_form__cstmt_t free_code_0 = 0; _fx_LN15C_form__cstmt_t copy_code_0 = 0; _fx_LN15C_form__cstmt_t make_code_0 = 0; _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_0 = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t make_args_0 = 0; - _fx_LR9Ast__id_t mktupl_0 = 0; - _fx_N14C_form__ctyp_t v_28 = 0; - _fx_LN19C_form__carg_attr_t v_29 = 0; - _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_30 = {0}; + _fx_LN14K_form__ktyp_t telems_0 = 0; + _fx_LN15C_form__cstmt_t free_code_1 = 0; + _fx_LN15C_form__cstmt_t copy_code_1 = 0; + _fx_LN15C_form__cstmt_t make_code_1 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_1 = 0; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t make_args_1 = 0; - fx_str_t v_31 = {0}; - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_32 = 0; - _fx_LN15C_form__cstmt_t v_33 = 0; - _fx_R17C_form__cdeffun_t v_34 = {0}; + _fx_LR9Ast__id_t mktupl_0 = 0; + _fx_N14C_form__ctyp_t v_31 = 0; + _fx_LN19C_form__carg_attr_t v_32 = 0; + _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_33 = {0}; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t make_args_2 = 0; + fx_str_t v_34 = {0}; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_35 = 0; + _fx_LN15C_form__cstmt_t v_36 = 0; + _fx_R17C_form__cdeffun_t v_37 = {0}; _fx_rR17C_form__cdeffun_t mktup_decl_0 = 0; - _fx_N15C_form__cinfo_t v_35 = {0}; - _fx_N15C_form__cstmt_t v_36 = 0; - _fx_LN15C_form__cstmt_t v_37 = 0; - _fx_R17C_form__cdeffun_t v_38 = {0}; - _fx_LN15C_form__cstmt_t v_39 = 0; - _fx_R17C_form__cdeffun_t v_40 = {0}; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_41 = 0; - _fx_N14C_form__ctyp_t v_42 = 0; - _fx_R17C_form__ctprops_t v_43 = {0}; - _fx_R17C_form__cdeftyp_t v_44 = {0}; - _fx_make_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - 0, 0, 0, 0, 0, &__fold_result___0); + _fx_N15C_form__cinfo_t v_38 = {0}; + _fx_N15C_form__cstmt_t v_39 = 0; + _fx_LN15C_form__cstmt_t v_40 = 0; + _fx_R17C_form__cdeffun_t v_41 = {0}; + _fx_LN15C_form__cstmt_t v_42 = 0; + _fx_R17C_form__cdeffun_t v_43 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_44 = 0; + _fx_N14C_form__ctyp_t v_45 = 0; + _fx_R17C_form__ctprops_t v_46 = {0}; + _fx_R17C_form__cdeftyp_t v_47 = {0}; int_ i_0 = 0; FX_COPY_PTR(kt_typ_0->u.KTypTuple, &telems_0); _fx_LN14K_form__ktyp_t lst_0 = telems_0; for (; lst_0; lst_0 = lst_0->tl, i_0 += 1) { - _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t - v_45 = {0}; - _fx_LN15C_form__cstmt_t free_code_1 = 0; - _fx_LN15C_form__cstmt_t copy_code_1 = 0; - _fx_LN15C_form__cstmt_t make_code_1 = 0; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_1 = 0; - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t make_args_2 = 0; - fx_str_t v_46 = {0}; - fx_str_t v_47 = {0}; + fx_str_t v_48 = {0}; + fx_str_t v_49 = {0}; _fx_N14C_form__ctyp_t cti_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_48 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_50 = {0}; _fx_N14C_form__cexp_t selem_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_49 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_51 = {0}; _fx_N14C_form__cexp_t delem_0 = 0; - _fx_LN15C_form__cstmt_t free_code_2 = 0; - _fx_LN15C_form__cstmt_t copy_code_2 = 0; + _fx_LN15C_form__cstmt_t v_52 = 0; + _fx_LN15C_form__cstmt_t v_53 = 0; _fx_N14C_form__cexp_t selem2_0 = 0; - _fx_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t v_50 = {0}; - _fx_N14C_form__ctyp_t v_51 = 0; - _fx_LN19C_form__carg_attr_t v_52 = 0; - _fx_N14C_form__cexp_t v_53 = 0; + _fx_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t v_54 = {0}; + _fx_N14C_form__ctyp_t v_55 = 0; + _fx_LN19C_form__carg_attr_t v_56 = 0; + _fx_N14C_form__cexp_t v_57 = 0; _fx_N14C_form__ctyp_t cti_arg_0 = 0; _fx_LN19C_form__carg_attr_t cti_arg_flags_0 = 0; _fx_N14C_form__cexp_t selem2_1 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_54 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_58 = {0}; _fx_N14C_form__cexp_t delem2_0 = 0; - _fx_LN15C_form__cstmt_t make_code_2 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_55 = {0}; - _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_56 = {0}; - _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t - v_57 = {0}; + _fx_LN15C_form__cstmt_t v_59 = 0; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_60 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_61 = 0; + _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_62 = {0}; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_63 = 0; _fx_N14K_form__ktyp_t kti_0 = lst_0->hd; - _fx_copy_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &__fold_result___0, &v_45); - FX_COPY_PTR(v_45.t0, &free_code_1); - FX_COPY_PTR(v_45.t1, ©_code_1); - FX_COPY_PTR(v_45.t2, &make_code_1); - FX_COPY_PTR(v_45.t3, &relems_1); - FX_COPY_PTR(v_45.t4, &make_args_2); - FX_CALL(_fx_F6stringS1i(i_0, &v_46, 0), _fx_catch_8); + FX_CALL(_fx_F6stringS1i(i_0, &v_48, 0), _fx_catch_8); fx_str_t slit_5 = FX_MAKE_STR("t"); { - const fx_str_t strs_2[] = { slit_5, v_46 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 2, &v_47), _fx_catch_8); + const fx_str_t strs_2[] = { slit_5, v_48 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 2, &v_49), _fx_catch_8); } _fx_R9Ast__id_t ni_0; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_47, &ni_0, 0), _fx_catch_8); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_49, &ni_0, 0), _fx_catch_8); FX_CALL(_fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(kti_0, &kt_loc_0, &cti_0, 0), _fx_catch_8); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_0, loc_0, &v_48); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_0, loc_0, &v_50); FX_CALL( _fx_M6C_formFM9CExpArrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(src_exp_0, - &ni_0, &v_48, &selem_0), _fx_catch_8); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_0, loc_0, &v_49); + &ni_0, &v_50, &selem_0), _fx_catch_8); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_0, loc_0, &v_51); FX_CALL( _fx_M6C_formFM9CExpArrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(dst_exp_0, - &ni_0, &v_49, &delem_0), _fx_catch_8); + &ni_0, &v_51, &delem_0), _fx_catch_8); FX_CALL( _fx_M11C_gen_typesFM13gen_free_codeLN15C_form__cstmt_t6N14C_form__cexp_tN14C_form__ctyp_tBBLN15C_form__cstmt_tR10Ast__loc_t( - delem_0, cti_0, false, false, free_code_1, &kt_loc_0, &free_code_2, 0), _fx_catch_8); + delem_0, cti_0, false, false, free_code_0, &kt_loc_0, &v_52, 0), _fx_catch_8); + _fx_free_LN15C_form__cstmt_t(&free_code_0); + FX_COPY_PTR(v_52, &free_code_0); FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - selem_0, delem_0, cti_0, copy_code_1, &kt_loc_0, ©_code_2, 0), _fx_catch_8); - _fx_R17K_form__ktprops_t v_58; + selem_0, delem_0, cti_0, copy_code_0, &kt_loc_0, &v_53, 0), _fx_catch_8); + _fx_free_LN15C_form__cstmt_t(©_code_0); + FX_COPY_PTR(v_53, ©_code_0); + _fx_R17K_form__ktprops_t v_64; FX_CALL( - _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(kti_0, &kt_loc_0, &v_58, 0), + _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(kti_0, &kt_loc_0, &v_64, 0), _fx_catch_8); - bool ktp_pass_by_ref_0 = v_58.ktp_pass_by_ref; + bool ktp_pass_by_ref_0 = v_64.ktp_pass_by_ref; FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&ni_0, loc_0, &selem2_0, 0), _fx_catch_8); if (ktp_pass_by_ref_0) { - FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(cti_0, &v_51, 0), _fx_catch_8); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, 0, true, &v_52), _fx_catch_8); - FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(selem2_0, &v_53, 0), _fx_catch_8); - _fx_make_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(v_51, v_52, v_53, &v_50); + FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(cti_0, &v_55, 0), _fx_catch_8); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, 0, true, &v_56), _fx_catch_8); + FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(selem2_0, &v_57, 0), _fx_catch_8); + _fx_make_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(v_55, v_56, v_57, &v_54); } else { - _fx_make_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(cti_0, 0, selem2_0, &v_50); + _fx_make_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(cti_0, 0, selem2_0, &v_54); } - FX_COPY_PTR(v_50.t0, &cti_arg_0); - FX_COPY_PTR(v_50.t1, &cti_arg_flags_0); - FX_COPY_PTR(v_50.t2, &selem2_1); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_0, loc_0, &v_54); + FX_COPY_PTR(v_54.t0, &cti_arg_0); + FX_COPY_PTR(v_54.t1, &cti_arg_flags_0); + FX_COPY_PTR(v_54.t2, &selem2_1); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_0, loc_0, &v_58); FX_CALL( _fx_M6C_formFM9CExpArrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t( - fx_result_exp_0, &ni_0, &v_54, &delem2_0), _fx_catch_8); + fx_result_exp_0, &ni_0, &v_58, &delem2_0), _fx_catch_8); FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - selem2_1, delem2_0, cti_0, make_code_1, &kt_loc_0, &make_code_2, 0), _fx_catch_8); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&ni_0, cti_0, &v_55); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_55, relems_1, false, &relems_1), _fx_catch_8); - _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&ni_0, cti_arg_0, cti_arg_flags_0, &v_56); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_56, make_args_2, false, &make_args_2), + selem2_1, delem2_0, cti_0, make_code_0, &kt_loc_0, &v_59, 0), _fx_catch_8); + _fx_free_LN15C_form__cstmt_t(&make_code_0); + FX_COPY_PTR(v_59, &make_code_0); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&ni_0, cti_0, &v_60); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_60, relems_0, true, &v_61), _fx_catch_8); + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_0); + FX_COPY_PTR(v_61, &relems_0); + _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&ni_0, cti_arg_0, cti_arg_flags_0, &v_62); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_62, make_args_0, true, &v_63), _fx_catch_8); - _fx_make_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - free_code_2, copy_code_2, make_code_2, relems_1, make_args_2, &v_57); - _fx_free_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &__fold_result___0); - _fx_copy_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &v_57, &__fold_result___0); + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_0); + FX_COPY_PTR(v_63, &make_args_0); _fx_catch_8: ; - _fx_free_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &v_57); - _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_56); - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_55); - if (make_code_2) { - _fx_free_LN15C_form__cstmt_t(&make_code_2); + if (v_63) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_63); + } + _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_62); + if (v_61) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_61); + } + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_60); + if (v_59) { + _fx_free_LN15C_form__cstmt_t(&v_59); } if (delem2_0) { _fx_free_N14C_form__cexp_t(&delem2_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_54); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_58); if (selem2_1) { _fx_free_N14C_form__cexp_t(&selem2_1); } @@ -10833,68 +10713,49 @@ _fx_endmatch_1: ; if (cti_arg_0) { _fx_free_N14C_form__ctyp_t(&cti_arg_0); } - if (v_53) { - _fx_free_N14C_form__cexp_t(&v_53); + if (v_57) { + _fx_free_N14C_form__cexp_t(&v_57); } - FX_FREE_LIST_SIMPLE(&v_52); - if (v_51) { - _fx_free_N14C_form__ctyp_t(&v_51); + FX_FREE_LIST_SIMPLE(&v_56); + if (v_55) { + _fx_free_N14C_form__ctyp_t(&v_55); } - _fx_free_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(&v_50); + _fx_free_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(&v_54); if (selem2_0) { _fx_free_N14C_form__cexp_t(&selem2_0); } - if (copy_code_2) { - _fx_free_LN15C_form__cstmt_t(©_code_2); + if (v_53) { + _fx_free_LN15C_form__cstmt_t(&v_53); } - if (free_code_2) { - _fx_free_LN15C_form__cstmt_t(&free_code_2); + if (v_52) { + _fx_free_LN15C_form__cstmt_t(&v_52); } if (delem_0) { _fx_free_N14C_form__cexp_t(&delem_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_49); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_51); if (selem_0) { _fx_free_N14C_form__cexp_t(&selem_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_48); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_50); if (cti_0) { _fx_free_N14C_form__ctyp_t(&cti_0); } - FX_FREE_STR(&v_47); - FX_FREE_STR(&v_46); - if (make_args_2) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_2); - } - if (relems_1) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_1); - } - if (make_code_1) { - _fx_free_LN15C_form__cstmt_t(&make_code_1); - } - if (copy_code_1) { - _fx_free_LN15C_form__cstmt_t(©_code_1); - } - if (free_code_1) { - _fx_free_LN15C_form__cstmt_t(&free_code_1); - } - _fx_free_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &v_45); + FX_FREE_STR(&v_49); + FX_FREE_STR(&v_48); FX_CHECK_EXN(_fx_catch_9); } - _fx_copy_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &__fold_result___0, &v_27); - FX_COPY_PTR(v_27.t0, &free_code_0); - FX_COPY_PTR(v_27.t1, ©_code_0); - FX_COPY_PTR(v_27.t2, &make_code_0); - FX_COPY_PTR(v_27.t3, &relems_0); - FX_COPY_PTR(v_27.t4, &make_args_0); + FX_COPY_PTR(free_code_0, &free_code_1); + FX_COPY_PTR(copy_code_0, ©_code_1); + FX_COPY_PTR(make_code_0, &make_code_1); + FX_COPY_PTR(relems_0, &relems_1); + FX_COPY_PTR(make_args_0, &make_args_1); if (ktp_0.ktp_complex) { - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(fx_result_ct_0, &v_28, 0), _fx_catch_9); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g23C_gen_types__CArgRetVal, 0, true, &v_29), _fx_catch_9); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, v_29, false, &v_29), _fx_catch_9); - _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&fx_result_id_0, v_28, v_29, &v_30); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_30, make_args_0, true, &make_args_1), + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(fx_result_ct_0, &v_31, 0), _fx_catch_9); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g23C_gen_types__CArgRetVal, 0, true, &v_32), _fx_catch_9); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, v_32, false, &v_32), _fx_catch_9); + _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&fx_result_id_0, v_31, v_32, &v_33); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_33, make_args_1, true, &make_args_2), _fx_catch_9); _fx_R9Ast__id_t mktup_id_0; fx_str_t slit_6 = FX_MAKE_STR("mktup"); @@ -10902,99 +10763,117 @@ _fx_endmatch_1: ; fx_str_t slit_7 = FX_MAKE_STR("_fx_make_"); { const fx_str_t strs_3[] = { slit_7, tp_cname_wo_prefix_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 2, &v_31), _fx_catch_9); + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 2, &v_34), _fx_catch_9); } FX_CALL( _fx_M11C_gen_typesFM3revLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t1LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - make_args_1, &v_32, 0), _fx_catch_9); - FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(make_code_0, &v_33, 0), _fx_catch_9); - _fx_R16Ast__fun_flags_t v_59; - FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_59, 0), _fx_catch_9); - _fx_R16Ast__fun_flags_t v_60 = - { v_59.fun_flag_pure, v_59.fun_flag_ccode, v_59.fun_flag_have_keywords, v_59.fun_flag_inline, true, - v_59.fun_flag_really_nothrow, true, v_59.fun_flag_ctor, v_59.fun_flag_method_of, v_59.fun_flag_uses_fv, - v_59.fun_flag_recursive, v_59.fun_flag_instance }; - _fx_make_R17C_form__cdeffun_t(&mktup_id_0, &v_31, v_32, _fx_g21C_gen_types__CTypVoid, v_33, &v_60, 0, loc_0, &v_34); - FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_34, &mktup_decl_0), _fx_catch_9); - _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(mktup_decl_0, &v_35); - FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&mktup_id_0, &v_35, 0), _fx_catch_9); - FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(mktup_decl_0, &v_36), _fx_catch_9); + make_args_2, &v_35, 0), _fx_catch_9); + FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(make_code_1, &v_36, 0), _fx_catch_9); + _fx_R16Ast__fun_flags_t v_65; + FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_65, 0), _fx_catch_9); + _fx_R16Ast__fun_flags_t v_66 = + { v_65.fun_flag_pure, v_65.fun_flag_ccode, v_65.fun_flag_have_keywords, v_65.fun_flag_inline, true, + v_65.fun_flag_really_nothrow, true, v_65.fun_flag_ctor, v_65.fun_flag_method_of, v_65.fun_flag_uses_fv, + v_65.fun_flag_recursive, v_65.fun_flag_instance }; + _fx_make_R17C_form__cdeffun_t(&mktup_id_0, &v_34, v_35, _fx_g21C_gen_types__CTypVoid, v_36, &v_66, 0, loc_0, &v_37); + FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_37, &mktup_decl_0), _fx_catch_9); + _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(mktup_decl_0, &v_38); + FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&mktup_id_0, &v_38, 0), _fx_catch_9); + FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(mktup_decl_0, &v_39), _fx_catch_9); FX_CALL( _fx_M11C_gen_typesFM8add_declv5R9Ast__id_tN15C_form__cstmt_trRt6Set__t1R9Ast__id_trLN15C_form__cstmt_trLN15C_form__cstmt_t( - &mktup_id_0, v_36, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_9); - _fx_R17C_form__cdeffun_t* v_61 = &freef_decl_0->data; - FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(free_code_0, &v_37, 0), _fx_catch_9); - _fx_make_R17C_form__cdeffun_t(&v_61->cf_name, &v_61->cf_cname, v_61->cf_args, v_61->cf_rt, v_37, &v_61->cf_flags, - v_61->cf_scope, &v_61->cf_loc, &v_38); - _fx_R17C_form__cdeffun_t* v_62 = &freef_decl_0->data; - _fx_free_R17C_form__cdeffun_t(v_62); - _fx_copy_R17C_form__cdeffun_t(&v_38, v_62); - _fx_R17C_form__cdeffun_t* v_63 = ©f_decl_0->data; - FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(copy_code_0, &v_39, 0), _fx_catch_9); - _fx_make_R17C_form__cdeffun_t(&v_63->cf_name, &v_63->cf_cname, v_63->cf_args, v_63->cf_rt, v_39, &v_63->cf_flags, - v_63->cf_scope, &v_63->cf_loc, &v_40); - _fx_R17C_form__cdeffun_t* v_64 = ©f_decl_0->data; - _fx_free_R17C_form__cdeffun_t(v_64); - _fx_copy_R17C_form__cdeffun_t(&v_40, v_64); + &mktup_id_0, v_39, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_9); + _fx_R17C_form__cdeffun_t* v_67 = &freef_decl_0->data; + FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(free_code_1, &v_40, 0), _fx_catch_9); + _fx_make_R17C_form__cdeffun_t(&v_67->cf_name, &v_67->cf_cname, v_67->cf_args, v_67->cf_rt, v_40, &v_67->cf_flags, + v_67->cf_scope, &v_67->cf_loc, &v_41); + _fx_R17C_form__cdeffun_t* v_68 = &freef_decl_0->data; + _fx_free_R17C_form__cdeffun_t(v_68); + _fx_copy_R17C_form__cdeffun_t(&v_41, v_68); + _fx_R17C_form__cdeffun_t* v_69 = ©f_decl_0->data; + FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(copy_code_1, &v_42, 0), _fx_catch_9); + _fx_make_R17C_form__cdeffun_t(&v_69->cf_name, &v_69->cf_cname, v_69->cf_args, v_69->cf_rt, v_42, &v_69->cf_flags, + v_69->cf_scope, &v_69->cf_loc, &v_43); + _fx_R17C_form__cdeffun_t* v_70 = ©f_decl_0->data; + _fx_free_R17C_form__cdeffun_t(v_70); + _fx_copy_R17C_form__cdeffun_t(&v_43, v_70); FX_CALL(_fx_cons_LR9Ast__id_t(&mktup_id_0, 0, true, &mktupl_0), _fx_catch_9); } - _fx_R17C_form__cdeftyp_t* v_65 = &struct_decl_0->data; - _fx_Nt6option1R9Ast__id_t v_66; - _fx_M11C_gen_typesFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(tn_0, &v_66); - FX_CALL(_fx_M11C_gen_typesFM3revLT2R9Ast__id_tN14C_form__ctyp_t1LT2R9Ast__id_tN14C_form__ctyp_t(relems_0, &v_41, 0), + _fx_R17C_form__cdeftyp_t* v_71 = &struct_decl_0->data; + _fx_Nt6option1R9Ast__id_t v_72; + _fx_M11C_gen_typesFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(tn_0, &v_72); + FX_CALL(_fx_M11C_gen_typesFM3revLT2R9Ast__id_tN14C_form__ctyp_t1LT2R9Ast__id_tN14C_form__ctyp_t(relems_1, &v_44, 0), _fx_catch_9); FX_CALL( - _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&v_66, v_41, - &v_42), _fx_catch_9); + _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&v_72, v_44, + &v_45), _fx_catch_9); _fx_make_R17C_form__ctprops_t(ct_props_0.ctp_scalar, ct_props_0.ctp_complex, ct_props_0.ctp_ptr, - ct_props_0.ctp_pass_by_ref, mktupl_0, &ct_props_0.ctp_free, &ct_props_0.ctp_copy, &v_43); - _fx_make_R17C_form__cdeftyp_t(&v_65->ct_name, v_42, &v_65->ct_cname, &v_43, v_65->ct_data_start, &v_65->ct_enum, - v_65->ct_ifaces, &v_65->ct_ifaces_id, v_65->ct_scope, &v_65->ct_loc, &v_44); - _fx_R17C_form__cdeftyp_t* v_67 = &struct_decl_0->data; - _fx_free_R17C_form__cdeftyp_t(v_67); - _fx_copy_R17C_form__cdeftyp_t(&v_44, v_67); + ct_props_0.ctp_pass_by_ref, mktupl_0, &ct_props_0.ctp_free, &ct_props_0.ctp_copy, &v_46); + _fx_make_R17C_form__cdeftyp_t(&v_71->ct_name, v_45, &v_71->ct_cname, &v_46, v_71->ct_data_start, &v_71->ct_enum, + v_71->ct_ifaces, &v_71->ct_ifaces_id, v_71->ct_scope, &v_71->ct_loc, &v_47); + _fx_R17C_form__cdeftyp_t* v_73 = &struct_decl_0->data; + _fx_free_R17C_form__cdeftyp_t(v_73); + _fx_copy_R17C_form__cdeftyp_t(&v_47, v_73); _fx_catch_9: ; - _fx_free_R17C_form__cdeftyp_t(&v_44); - _fx_free_R17C_form__ctprops_t(&v_43); + _fx_free_R17C_form__cdeftyp_t(&v_47); + _fx_free_R17C_form__ctprops_t(&v_46); + if (v_45) { + _fx_free_N14C_form__ctyp_t(&v_45); + } + if (v_44) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_44); + } + _fx_free_R17C_form__cdeffun_t(&v_43); if (v_42) { - _fx_free_N14C_form__ctyp_t(&v_42); + _fx_free_LN15C_form__cstmt_t(&v_42); } - if (v_41) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_41); + _fx_free_R17C_form__cdeffun_t(&v_41); + if (v_40) { + _fx_free_LN15C_form__cstmt_t(&v_40); } - _fx_free_R17C_form__cdeffun_t(&v_40); if (v_39) { - _fx_free_LN15C_form__cstmt_t(&v_39); + _fx_free_N15C_form__cstmt_t(&v_39); } - _fx_free_R17C_form__cdeffun_t(&v_38); - if (v_37) { - _fx_free_LN15C_form__cstmt_t(&v_37); + _fx_free_N15C_form__cinfo_t(&v_38); + if (mktup_decl_0) { + _fx_free_rR17C_form__cdeffun_t(&mktup_decl_0); } + _fx_free_R17C_form__cdeffun_t(&v_37); if (v_36) { - _fx_free_N15C_form__cstmt_t(&v_36); + _fx_free_LN15C_form__cstmt_t(&v_36); } - _fx_free_N15C_form__cinfo_t(&v_35); - if (mktup_decl_0) { - _fx_free_rR17C_form__cdeffun_t(&mktup_decl_0); + if (v_35) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_35); } - _fx_free_R17C_form__cdeffun_t(&v_34); - if (v_33) { - _fx_free_LN15C_form__cstmt_t(&v_33); + FX_FREE_STR(&v_34); + if (make_args_2) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_2); } - if (v_32) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_32); + _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_33); + FX_FREE_LIST_SIMPLE(&v_32); + if (v_31) { + _fx_free_N14C_form__ctyp_t(&v_31); } - FX_FREE_STR(&v_31); + FX_FREE_LIST_SIMPLE(&mktupl_0); if (make_args_1) { _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_1); } - _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_30); - FX_FREE_LIST_SIMPLE(&v_29); - if (v_28) { - _fx_free_N14C_form__ctyp_t(&v_28); + if (relems_1) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_1); + } + if (make_code_1) { + _fx_free_LN15C_form__cstmt_t(&make_code_1); + } + if (copy_code_1) { + _fx_free_LN15C_form__cstmt_t(©_code_1); + } + if (free_code_1) { + _fx_free_LN15C_form__cstmt_t(&free_code_1); + } + if (telems_0) { + _fx_free_LN14K_form__ktyp_t(&telems_0); } - FX_FREE_LIST_SIMPLE(&mktupl_0); if (make_args_0) { _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_0); } @@ -11010,166 +10889,152 @@ _fx_endmatch_1: ; if (free_code_0) { _fx_free_LN15C_form__cstmt_t(&free_code_0); } - _fx_free_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &v_27); - if (telems_0) { - _fx_free_LN14K_form__ktyp_t(&telems_0); - } - _fx_free_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &__fold_result___0); } else if (tag_1 == 15) { - _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t - __fold_result___1 = {0}; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t relems_2 = 0; - _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t - v_68 = {0}; + _fx_LN15C_form__cstmt_t free_code_2 = 0; + _fx_LN15C_form__cstmt_t copy_code_2 = 0; + _fx_LN15C_form__cstmt_t make_code_2 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_2 = 0; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t make_args_3 = 0; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t relems__0 = 0; _fx_LN15C_form__cstmt_t free_code_3 = 0; _fx_LN15C_form__cstmt_t copy_code_3 = 0; _fx_LN15C_form__cstmt_t make_code_3 = 0; _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_3 = 0; - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t make_args_3 = 0; - _fx_LR9Ast__id_t mkrecl_0 = 0; - _fx_N14C_form__ctyp_t v_69 = 0; - _fx_LN19C_form__carg_attr_t v_70 = 0; - _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_71 = {0}; _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t make_args_4 = 0; - fx_str_t v_72 = {0}; - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_73 = 0; - _fx_LN15C_form__cstmt_t v_74 = 0; - _fx_R17C_form__cdeffun_t v_75 = {0}; + _fx_LR9Ast__id_t mkrecl_0 = 0; + _fx_N14C_form__ctyp_t v_74 = 0; + _fx_LN19C_form__carg_attr_t v_75 = 0; + _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_76 = {0}; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t make_args_5 = 0; + fx_str_t v_77 = {0}; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_78 = 0; + _fx_LN15C_form__cstmt_t v_79 = 0; + _fx_R17C_form__cdeffun_t v_80 = {0}; _fx_rR17C_form__cdeffun_t mkrec_decl_0 = 0; - _fx_N15C_form__cinfo_t v_76 = {0}; - _fx_N15C_form__cstmt_t v_77 = 0; - _fx_LN15C_form__cstmt_t v_78 = 0; - _fx_R17C_form__cdeffun_t v_79 = {0}; - _fx_LN15C_form__cstmt_t v_80 = 0; - _fx_R17C_form__cdeffun_t v_81 = {0}; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_82 = 0; - _fx_N14C_form__ctyp_t v_83 = 0; - _fx_R17C_form__ctprops_t v_84 = {0}; - _fx_R17C_form__cdeftyp_t v_85 = {0}; - _fx_make_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - 0, 0, 0, 0, 0, &__fold_result___1); - FX_COPY_PTR(kt_typ_0->u.KTypRecord.t1, &relems_2); - _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_1 = relems_2; + _fx_N15C_form__cinfo_t v_81 = {0}; + _fx_N15C_form__cstmt_t v_82 = 0; + _fx_LN15C_form__cstmt_t v_83 = 0; + _fx_R17C_form__cdeffun_t v_84 = {0}; + _fx_LN15C_form__cstmt_t v_85 = 0; + _fx_R17C_form__cdeffun_t v_86 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_87 = 0; + _fx_N14C_form__ctyp_t v_88 = 0; + _fx_R17C_form__ctprops_t v_89 = {0}; + _fx_R17C_form__cdeftyp_t v_90 = {0}; + FX_COPY_PTR(kt_typ_0->u.KTypRecord.t1, &relems__0); + _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_1 = relems__0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N14K_form__ktyp_t kti_1 = 0; - _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t - v_86 = {0}; - _fx_LN15C_form__cstmt_t free_code_4 = 0; - _fx_LN15C_form__cstmt_t copy_code_4 = 0; - _fx_LN15C_form__cstmt_t make_code_4 = 0; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_4 = 0; - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t make_args_5 = 0; _fx_N14C_form__ctyp_t cti_1 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_87 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_91 = {0}; _fx_N14C_form__cexp_t selem_1 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_88 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_92 = {0}; _fx_N14C_form__cexp_t delem_1 = 0; - _fx_LN15C_form__cstmt_t free_code_5 = 0; - _fx_LN15C_form__cstmt_t copy_code_5 = 0; - fx_str_t v_89 = {0}; - fx_str_t v_90 = {0}; + _fx_LN15C_form__cstmt_t v_93 = 0; + _fx_LN15C_form__cstmt_t v_94 = 0; + fx_str_t v_95 = {0}; + fx_str_t v_96 = {0}; _fx_N14C_form__cexp_t selem2_2 = 0; - _fx_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t v_91 = {0}; - _fx_N14C_form__ctyp_t v_92 = 0; - _fx_LN19C_form__carg_attr_t v_93 = 0; - _fx_N14C_form__cexp_t v_94 = 0; + _fx_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t v_97 = {0}; + _fx_N14C_form__ctyp_t v_98 = 0; + _fx_LN19C_form__carg_attr_t v_99 = 0; + _fx_N14C_form__cexp_t v_100 = 0; _fx_N14C_form__ctyp_t cti_arg_1 = 0; _fx_LN19C_form__carg_attr_t cti_arg_flags_1 = 0; _fx_N14C_form__cexp_t selem2_3 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_95 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_101 = {0}; _fx_N14C_form__cexp_t delem2_1 = 0; - _fx_LN15C_form__cstmt_t make_code_5 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_96 = {0}; - _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_97 = {0}; - _fx_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t - v_98 = {0}; + _fx_LN15C_form__cstmt_t v_102 = 0; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_103 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_104 = 0; + _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_105 = {0}; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_106 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___0 = &lst_1->hd; _fx_R9Ast__id_t ni_1 = __pat___0->t0; FX_COPY_PTR(__pat___0->t1, &kti_1); - _fx_copy_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &__fold_result___1, &v_86); - FX_COPY_PTR(v_86.t0, &free_code_4); - FX_COPY_PTR(v_86.t1, ©_code_4); - FX_COPY_PTR(v_86.t2, &make_code_4); - FX_COPY_PTR(v_86.t3, &relems_4); - FX_COPY_PTR(v_86.t4, &make_args_5); FX_CALL(_fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(kti_1, loc_0, &cti_1, 0), _fx_catch_10); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_1, &kt_loc_0, &v_87); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_1, &kt_loc_0, &v_91); FX_CALL( _fx_M6C_formFM9CExpArrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(src_exp_0, - &ni_1, &v_87, &selem_1), _fx_catch_10); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_1, &kt_loc_0, &v_88); + &ni_1, &v_91, &selem_1), _fx_catch_10); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_1, &kt_loc_0, &v_92); FX_CALL( _fx_M6C_formFM9CExpArrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(dst_exp_0, - &ni_1, &v_88, &delem_1), _fx_catch_10); + &ni_1, &v_92, &delem_1), _fx_catch_10); FX_CALL( _fx_M11C_gen_typesFM13gen_free_codeLN15C_form__cstmt_t6N14C_form__cexp_tN14C_form__ctyp_tBBLN15C_form__cstmt_tR10Ast__loc_t( - delem_1, cti_1, false, false, free_code_4, &kt_loc_0, &free_code_5, 0), _fx_catch_10); + delem_1, cti_1, false, false, free_code_2, &kt_loc_0, &v_93, 0), _fx_catch_10); + _fx_free_LN15C_form__cstmt_t(&free_code_2); + FX_COPY_PTR(v_93, &free_code_2); FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - selem_1, delem_1, cti_1, copy_code_4, &kt_loc_0, ©_code_5, 0), _fx_catch_10); - _fx_R17K_form__ktprops_t v_99; + selem_1, delem_1, cti_1, copy_code_2, &kt_loc_0, &v_94, 0), _fx_catch_10); + _fx_free_LN15C_form__cstmt_t(©_code_2); + FX_COPY_PTR(v_94, ©_code_2); + _fx_R17K_form__ktprops_t v_107; FX_CALL( - _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(kti_1, &kt_loc_0, &v_99, 0), + _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(kti_1, &kt_loc_0, &v_107, 0), _fx_catch_10); - bool ktp_pass_by_ref_1 = v_99.ktp_pass_by_ref; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ni_1, &v_89, 0), _fx_catch_10); + bool ktp_pass_by_ref_1 = v_107.ktp_pass_by_ref; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ni_1, &v_95, 0), _fx_catch_10); fx_str_t slit_8 = FX_MAKE_STR("r_"); { - const fx_str_t strs_4[] = { slit_8, v_89 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 2, &v_90), _fx_catch_10); + const fx_str_t strs_4[] = { slit_8, v_95 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 2, &v_96), _fx_catch_10); } _fx_R9Ast__id_t arg_ni_0; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_90, &arg_ni_0, 0), _fx_catch_10); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_96, &arg_ni_0, 0), _fx_catch_10); FX_CALL(_fx_M6C_formFM11make_id_expN14C_form__cexp_t2R9Ast__id_tR10Ast__loc_t(&arg_ni_0, loc_0, &selem2_2, 0), _fx_catch_10); if (ktp_pass_by_ref_1) { - FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(cti_1, &v_92, 0), _fx_catch_10); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, 0, true, &v_93), _fx_catch_10); - FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(selem2_2, &v_94, 0), _fx_catch_10); - _fx_make_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(v_92, v_93, v_94, &v_91); + FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(cti_1, &v_98, 0), _fx_catch_10); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, 0, true, &v_99), _fx_catch_10); + FX_CALL(_fx_M6C_formFM10cexp_derefN14C_form__cexp_t1N14C_form__cexp_t(selem2_2, &v_100, 0), _fx_catch_10); + _fx_make_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(v_98, v_99, v_100, &v_97); } else { - _fx_make_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(cti_1, 0, selem2_2, &v_91); + _fx_make_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(cti_1, 0, selem2_2, &v_97); } - FX_COPY_PTR(v_91.t0, &cti_arg_1); - FX_COPY_PTR(v_91.t1, &cti_arg_flags_1); - FX_COPY_PTR(v_91.t2, &selem2_3); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_1, loc_0, &v_95); + FX_COPY_PTR(v_97.t0, &cti_arg_1); + FX_COPY_PTR(v_97.t1, &cti_arg_flags_1); + FX_COPY_PTR(v_97.t2, &selem2_3); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(cti_1, loc_0, &v_101); FX_CALL( _fx_M6C_formFM9CExpArrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t( - fx_result_exp_0, &ni_1, &v_95, &delem2_1), _fx_catch_10); + fx_result_exp_0, &ni_1, &v_101, &delem2_1), _fx_catch_10); FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - selem2_3, delem2_1, cti_1, make_code_4, &kt_loc_0, &make_code_5, 0), _fx_catch_10); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&ni_1, cti_1, &v_96); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_96, relems_4, false, &relems_4), _fx_catch_10); - _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&arg_ni_0, cti_arg_1, cti_arg_flags_1, &v_97); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_97, make_args_5, false, &make_args_5), + selem2_3, delem2_1, cti_1, make_code_2, &kt_loc_0, &v_102, 0), _fx_catch_10); + _fx_free_LN15C_form__cstmt_t(&make_code_2); + FX_COPY_PTR(v_102, &make_code_2); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&ni_1, cti_1, &v_103); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_103, relems_2, true, &v_104), _fx_catch_10); + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_2); + FX_COPY_PTR(v_104, &relems_2); + _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&arg_ni_0, cti_arg_1, cti_arg_flags_1, &v_105); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_105, make_args_3, true, &v_106), _fx_catch_10); - _fx_make_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - free_code_5, copy_code_5, make_code_5, relems_4, make_args_5, &v_98); - _fx_free_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &__fold_result___1); - _fx_copy_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &v_98, &__fold_result___1); + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_3); + FX_COPY_PTR(v_106, &make_args_3); _fx_catch_10: ; - _fx_free_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &v_98); - _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_97); - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_96); - if (make_code_5) { - _fx_free_LN15C_form__cstmt_t(&make_code_5); + if (v_106) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_106); + } + _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_105); + if (v_104) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_104); + } + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_103); + if (v_102) { + _fx_free_LN15C_form__cstmt_t(&v_102); } if (delem2_1) { _fx_free_N14C_form__cexp_t(&delem2_1); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_95); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_101); if (selem2_3) { _fx_free_N14C_form__cexp_t(&selem2_3); } @@ -11177,71 +11042,52 @@ _fx_endmatch_1: ; if (cti_arg_1) { _fx_free_N14C_form__ctyp_t(&cti_arg_1); } - if (v_94) { - _fx_free_N14C_form__cexp_t(&v_94); + if (v_100) { + _fx_free_N14C_form__cexp_t(&v_100); } - FX_FREE_LIST_SIMPLE(&v_93); - if (v_92) { - _fx_free_N14C_form__ctyp_t(&v_92); + FX_FREE_LIST_SIMPLE(&v_99); + if (v_98) { + _fx_free_N14C_form__ctyp_t(&v_98); } - _fx_free_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(&v_91); + _fx_free_T3N14C_form__ctyp_tLN19C_form__carg_attr_tN14C_form__cexp_t(&v_97); if (selem2_2) { _fx_free_N14C_form__cexp_t(&selem2_2); } - FX_FREE_STR(&v_90); - FX_FREE_STR(&v_89); - if (copy_code_5) { - _fx_free_LN15C_form__cstmt_t(©_code_5); + FX_FREE_STR(&v_96); + FX_FREE_STR(&v_95); + if (v_94) { + _fx_free_LN15C_form__cstmt_t(&v_94); } - if (free_code_5) { - _fx_free_LN15C_form__cstmt_t(&free_code_5); + if (v_93) { + _fx_free_LN15C_form__cstmt_t(&v_93); } if (delem_1) { _fx_free_N14C_form__cexp_t(&delem_1); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_88); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_92); if (selem_1) { _fx_free_N14C_form__cexp_t(&selem_1); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_87); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_91); if (cti_1) { _fx_free_N14C_form__ctyp_t(&cti_1); } - if (make_args_5) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_5); - } - if (relems_4) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_4); - } - if (make_code_4) { - _fx_free_LN15C_form__cstmt_t(&make_code_4); - } - if (copy_code_4) { - _fx_free_LN15C_form__cstmt_t(©_code_4); - } - if (free_code_4) { - _fx_free_LN15C_form__cstmt_t(&free_code_4); - } - _fx_free_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &v_86); if (kti_1) { _fx_free_N14K_form__ktyp_t(&kti_1); } FX_CHECK_EXN(_fx_catch_11); } - _fx_copy_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &__fold_result___1, &v_68); - FX_COPY_PTR(v_68.t0, &free_code_3); - FX_COPY_PTR(v_68.t1, ©_code_3); - FX_COPY_PTR(v_68.t2, &make_code_3); - FX_COPY_PTR(v_68.t3, &relems_3); - FX_COPY_PTR(v_68.t4, &make_args_3); + FX_COPY_PTR(free_code_2, &free_code_3); + FX_COPY_PTR(copy_code_2, ©_code_3); + FX_COPY_PTR(make_code_2, &make_code_3); + FX_COPY_PTR(relems_2, &relems_3); + FX_COPY_PTR(make_args_3, &make_args_4); if (ktp_0.ktp_complex) { - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(fx_result_ct_0, &v_69, 0), _fx_catch_11); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g23C_gen_types__CArgRetVal, 0, true, &v_70), _fx_catch_11); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, v_70, false, &v_70), _fx_catch_11); - _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&fx_result_id_0, v_69, v_70, &v_71); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_71, make_args_3, true, &make_args_4), + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(fx_result_ct_0, &v_74, 0), _fx_catch_11); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g23C_gen_types__CArgRetVal, 0, true, &v_75), _fx_catch_11); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, v_75, false, &v_75), _fx_catch_11); + _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&fx_result_id_0, v_74, v_75, &v_76); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_76, make_args_4, true, &make_args_5), _fx_catch_11); _fx_R9Ast__id_t mkrec_id_0; fx_str_t slit_9 = FX_MAKE_STR("mktup"); @@ -11249,102 +11095,102 @@ _fx_endmatch_1: ; fx_str_t slit_10 = FX_MAKE_STR("_fx_make_"); { const fx_str_t strs_5[] = { slit_10, tp_cname_wo_prefix_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_5, 2, &v_72), _fx_catch_11); + FX_CALL(fx_strjoin(0, 0, 0, strs_5, 2, &v_77), _fx_catch_11); } FX_CALL( _fx_M11C_gen_typesFM3revLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t1LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - make_args_4, &v_73, 0), _fx_catch_11); - FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(make_code_3, &v_74, 0), _fx_catch_11); - _fx_R16Ast__fun_flags_t v_100; - FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_100, 0), _fx_catch_11); - _fx_R16Ast__fun_flags_t v_101 = - { v_100.fun_flag_pure, v_100.fun_flag_ccode, v_100.fun_flag_have_keywords, v_100.fun_flag_inline, true, - v_100.fun_flag_really_nothrow, true, v_100.fun_flag_ctor, v_100.fun_flag_method_of, v_100.fun_flag_uses_fv, - v_100.fun_flag_recursive, v_100.fun_flag_instance }; - _fx_make_R17C_form__cdeffun_t(&mkrec_id_0, &v_72, v_73, _fx_g21C_gen_types__CTypVoid, v_74, &v_101, 0, loc_0, - &v_75); - FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_75, &mkrec_decl_0), _fx_catch_11); - _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(mkrec_decl_0, &v_76); - FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&mkrec_id_0, &v_76, 0), _fx_catch_11); - FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(mkrec_decl_0, &v_77), _fx_catch_11); + make_args_5, &v_78, 0), _fx_catch_11); + FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(make_code_3, &v_79, 0), _fx_catch_11); + _fx_R16Ast__fun_flags_t v_108; + FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_108, 0), _fx_catch_11); + _fx_R16Ast__fun_flags_t v_109 = + { v_108.fun_flag_pure, v_108.fun_flag_ccode, v_108.fun_flag_have_keywords, v_108.fun_flag_inline, true, + v_108.fun_flag_really_nothrow, true, v_108.fun_flag_ctor, v_108.fun_flag_method_of, v_108.fun_flag_uses_fv, + v_108.fun_flag_recursive, v_108.fun_flag_instance }; + _fx_make_R17C_form__cdeffun_t(&mkrec_id_0, &v_77, v_78, _fx_g21C_gen_types__CTypVoid, v_79, &v_109, 0, loc_0, + &v_80); + FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_80, &mkrec_decl_0), _fx_catch_11); + _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(mkrec_decl_0, &v_81); + FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&mkrec_id_0, &v_81, 0), _fx_catch_11); + FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(mkrec_decl_0, &v_82), _fx_catch_11); FX_CALL( _fx_M11C_gen_typesFM8add_declv5R9Ast__id_tN15C_form__cstmt_trRt6Set__t1R9Ast__id_trLN15C_form__cstmt_trLN15C_form__cstmt_t( - &mkrec_id_0, v_77, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_11); - _fx_R17C_form__cdeffun_t* v_102 = &freef_decl_0->data; - FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(free_code_3, &v_78, 0), _fx_catch_11); - _fx_make_R17C_form__cdeffun_t(&v_102->cf_name, &v_102->cf_cname, v_102->cf_args, v_102->cf_rt, v_78, - &v_102->cf_flags, v_102->cf_scope, &v_102->cf_loc, &v_79); - _fx_R17C_form__cdeffun_t* v_103 = &freef_decl_0->data; - _fx_free_R17C_form__cdeffun_t(v_103); - _fx_copy_R17C_form__cdeffun_t(&v_79, v_103); - _fx_R17C_form__cdeffun_t* v_104 = ©f_decl_0->data; - FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(copy_code_3, &v_80, 0), _fx_catch_11); - _fx_make_R17C_form__cdeffun_t(&v_104->cf_name, &v_104->cf_cname, v_104->cf_args, v_104->cf_rt, v_80, - &v_104->cf_flags, v_104->cf_scope, &v_104->cf_loc, &v_81); - _fx_R17C_form__cdeffun_t* v_105 = ©f_decl_0->data; - _fx_free_R17C_form__cdeffun_t(v_105); - _fx_copy_R17C_form__cdeffun_t(&v_81, v_105); + &mkrec_id_0, v_82, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_11); + _fx_R17C_form__cdeffun_t* v_110 = &freef_decl_0->data; + FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(free_code_3, &v_83, 0), _fx_catch_11); + _fx_make_R17C_form__cdeffun_t(&v_110->cf_name, &v_110->cf_cname, v_110->cf_args, v_110->cf_rt, v_83, + &v_110->cf_flags, v_110->cf_scope, &v_110->cf_loc, &v_84); + _fx_R17C_form__cdeffun_t* v_111 = &freef_decl_0->data; + _fx_free_R17C_form__cdeffun_t(v_111); + _fx_copy_R17C_form__cdeffun_t(&v_84, v_111); + _fx_R17C_form__cdeffun_t* v_112 = ©f_decl_0->data; + FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(copy_code_3, &v_85, 0), _fx_catch_11); + _fx_make_R17C_form__cdeffun_t(&v_112->cf_name, &v_112->cf_cname, v_112->cf_args, v_112->cf_rt, v_85, + &v_112->cf_flags, v_112->cf_scope, &v_112->cf_loc, &v_86); + _fx_R17C_form__cdeffun_t* v_113 = ©f_decl_0->data; + _fx_free_R17C_form__cdeffun_t(v_113); + _fx_copy_R17C_form__cdeffun_t(&v_86, v_113); FX_CALL(_fx_cons_LR9Ast__id_t(&mkrec_id_0, 0, true, &mkrecl_0), _fx_catch_11); } - _fx_R17C_form__cdeftyp_t* v_106 = &struct_decl_0->data; - _fx_Nt6option1R9Ast__id_t v_107; - _fx_M11C_gen_typesFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(tn_0, &v_107); - FX_CALL(_fx_M11C_gen_typesFM3revLT2R9Ast__id_tN14C_form__ctyp_t1LT2R9Ast__id_tN14C_form__ctyp_t(relems_3, &v_82, 0), + _fx_R17C_form__cdeftyp_t* v_114 = &struct_decl_0->data; + _fx_Nt6option1R9Ast__id_t v_115; + _fx_M11C_gen_typesFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(tn_0, &v_115); + FX_CALL(_fx_M11C_gen_typesFM3revLT2R9Ast__id_tN14C_form__ctyp_t1LT2R9Ast__id_tN14C_form__ctyp_t(relems_3, &v_87, 0), _fx_catch_11); FX_CALL( - _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&v_107, v_82, - &v_83), _fx_catch_11); + _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&v_115, v_87, + &v_88), _fx_catch_11); _fx_make_R17C_form__ctprops_t(ct_props_0.ctp_scalar, ct_props_0.ctp_complex, ct_props_0.ctp_ptr, - ct_props_0.ctp_pass_by_ref, mkrecl_0, &ct_props_0.ctp_free, &ct_props_0.ctp_copy, &v_84); - _fx_make_R17C_form__cdeftyp_t(&v_106->ct_name, v_83, &v_106->ct_cname, &v_84, v_106->ct_data_start, &v_106->ct_enum, - v_106->ct_ifaces, &v_106->ct_ifaces_id, v_106->ct_scope, &v_106->ct_loc, &v_85); - _fx_R17C_form__cdeftyp_t* v_108 = &struct_decl_0->data; - _fx_free_R17C_form__cdeftyp_t(v_108); - _fx_copy_R17C_form__cdeftyp_t(&v_85, v_108); + ct_props_0.ctp_pass_by_ref, mkrecl_0, &ct_props_0.ctp_free, &ct_props_0.ctp_copy, &v_89); + _fx_make_R17C_form__cdeftyp_t(&v_114->ct_name, v_88, &v_114->ct_cname, &v_89, v_114->ct_data_start, &v_114->ct_enum, + v_114->ct_ifaces, &v_114->ct_ifaces_id, v_114->ct_scope, &v_114->ct_loc, &v_90); + _fx_R17C_form__cdeftyp_t* v_116 = &struct_decl_0->data; + _fx_free_R17C_form__cdeftyp_t(v_116); + _fx_copy_R17C_form__cdeftyp_t(&v_90, v_116); _fx_catch_11: ; - _fx_free_R17C_form__cdeftyp_t(&v_85); - _fx_free_R17C_form__ctprops_t(&v_84); - if (v_83) { - _fx_free_N14C_form__ctyp_t(&v_83); + _fx_free_R17C_form__cdeftyp_t(&v_90); + _fx_free_R17C_form__ctprops_t(&v_89); + if (v_88) { + _fx_free_N14C_form__ctyp_t(&v_88); } - if (v_82) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_82); + if (v_87) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_87); } - _fx_free_R17C_form__cdeffun_t(&v_81); - if (v_80) { - _fx_free_LN15C_form__cstmt_t(&v_80); + _fx_free_R17C_form__cdeffun_t(&v_86); + if (v_85) { + _fx_free_LN15C_form__cstmt_t(&v_85); } - _fx_free_R17C_form__cdeffun_t(&v_79); - if (v_78) { - _fx_free_LN15C_form__cstmt_t(&v_78); + _fx_free_R17C_form__cdeffun_t(&v_84); + if (v_83) { + _fx_free_LN15C_form__cstmt_t(&v_83); } - if (v_77) { - _fx_free_N15C_form__cstmt_t(&v_77); + if (v_82) { + _fx_free_N15C_form__cstmt_t(&v_82); } - _fx_free_N15C_form__cinfo_t(&v_76); + _fx_free_N15C_form__cinfo_t(&v_81); if (mkrec_decl_0) { _fx_free_rR17C_form__cdeffun_t(&mkrec_decl_0); } - _fx_free_R17C_form__cdeffun_t(&v_75); - if (v_74) { - _fx_free_LN15C_form__cstmt_t(&v_74); + _fx_free_R17C_form__cdeffun_t(&v_80); + if (v_79) { + _fx_free_LN15C_form__cstmt_t(&v_79); } - if (v_73) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_73); + if (v_78) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_78); } - FX_FREE_STR(&v_72); - if (make_args_4) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_4); + FX_FREE_STR(&v_77); + if (make_args_5) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_5); } - _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_71); - FX_FREE_LIST_SIMPLE(&v_70); - if (v_69) { - _fx_free_N14C_form__ctyp_t(&v_69); + _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_76); + FX_FREE_LIST_SIMPLE(&v_75); + if (v_74) { + _fx_free_N14C_form__ctyp_t(&v_74); } FX_FREE_LIST_SIMPLE(&mkrecl_0); - if (make_args_3) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_3); + if (make_args_4) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_4); } if (relems_3) { _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_3); @@ -11358,89 +11204,100 @@ _fx_endmatch_1: ; if (free_code_3) { _fx_free_LN15C_form__cstmt_t(&free_code_3); } - _fx_free_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &v_68); + if (relems__0) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&relems__0); + } + if (make_args_3) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&make_args_3); + } if (relems_2) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&relems_2); + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_2); + } + if (make_code_2) { + _fx_free_LN15C_form__cstmt_t(&make_code_2); + } + if (copy_code_2) { + _fx_free_LN15C_form__cstmt_t(©_code_2); + } + if (free_code_2) { + _fx_free_LN15C_form__cstmt_t(&free_code_2); } - _fx_free_T5LN15C_form__cstmt_tLN15C_form__cstmt_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_tLT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t( - &__fold_result___1); } else if (tag_1 == 19) { _fx_N14C_form__ctyp_t ct_hd_0 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_109 = {0}; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_110 = {0}; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_111 = {0}; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_112 = 0; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_5 = 0; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_117 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_118 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_119 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_120 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_4 = 0; _fx_N14C_form__cexp_t f_0 = 0; _fx_N14C_form__cexp_t tn_arg_0 = 0; - _fx_T2BNt6option1N14C_form__cexp_t v_113 = {0}; + _fx_T2BNt6option1N14C_form__cexp_t v_121 = {0}; _fx_N14C_form__cexp_t free_hd_f_0 = 0; - _fx_LN14C_form__cexp_t v_114 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_115 = {0}; - _fx_N14C_form__cexp_t v_116 = 0; - _fx_N15C_form__cstmt_t v_117 = 0; - _fx_LN15C_form__cstmt_t free_code_6 = 0; - _fx_R17C_form__cdeffun_t v_118 = {0}; + _fx_LN14C_form__cexp_t v_122 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_123 = {0}; + _fx_N14C_form__cexp_t v_124 = 0; + _fx_N15C_form__cstmt_t v_125 = 0; + _fx_LN15C_form__cstmt_t free_code_4 = 0; + _fx_R17C_form__cdeffun_t v_126 = {0}; _fx_N14C_form__cexp_t make_list_m_0 = 0; - _fx_T2BNt6option1N14C_form__cexp_t v_119 = {0}; - _fx_T2BN14C_form__cexp_t v_120 = {0}; + _fx_T2BNt6option1N14C_form__cexp_t v_127 = {0}; + _fx_T2BN14C_form__cexp_t v_128 = {0}; _fx_N14C_form__cexp_t copy_hd_f_0 = 0; - _fx_T2N14C_form__ctyp_tLN19C_form__carg_attr_t v_121 = {0}; - _fx_N14C_form__ctyp_t v_122 = 0; - _fx_LN19C_form__carg_attr_t v_123 = 0; + _fx_T2N14C_form__ctyp_tLN19C_form__carg_attr_t v_129 = {0}; + _fx_N14C_form__ctyp_t v_130 = 0; + _fx_LN19C_form__carg_attr_t v_131 = 0; _fx_N14C_form__ctyp_t ct_hd_arg_0 = 0; _fx_LN19C_form__carg_attr_t hd_arg_flags_0 = 0; - _fx_N14C_form__ctyp_t v_124 = 0; - _fx_N14C_form__cexp_t v_125 = 0; - _fx_LN14C_form__cexp_t v_126 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_127 = {0}; - _fx_N14C_form__cexp_t v_128 = 0; - _fx_N15C_form__cstmt_t v_129 = 0; + _fx_N14C_form__ctyp_t v_132 = 0; + _fx_N14C_form__cexp_t v_133 = 0; + _fx_LN14C_form__cexp_t v_134 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_135 = {0}; + _fx_N14C_form__cexp_t v_136 = 0; + _fx_N15C_form__cstmt_t v_137 = 0; _fx_LN15C_form__cstmt_t make_list_body_0 = 0; - fx_str_t v_130 = {0}; - _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_131 = {0}; - _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_132 = {0}; - _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_133 = {0}; - _fx_N14C_form__ctyp_t v_134 = 0; - _fx_LN19C_form__carg_attr_t v_135 = 0; - _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_136 = {0}; - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_137 = 0; - _fx_R17C_form__cdeffun_t v_138 = {0}; - _fx_rR17C_form__cdeffun_t cons_decl_0 = 0; - _fx_N15C_form__cinfo_t v_139 = {0}; - _fx_N15C_form__cstmt_t v_140 = 0; - _fx_N14C_form__ctyp_t v_141 = 0; + fx_str_t v_138 = {0}; + _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_139 = {0}; + _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_140 = {0}; + _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_141 = {0}; _fx_N14C_form__ctyp_t v_142 = 0; - _fx_LR9Ast__id_t v_143 = 0; - _fx_R17C_form__ctprops_t v_144 = {0}; - _fx_R17C_form__cdeftyp_t v_145 = {0}; + _fx_LN19C_form__carg_attr_t v_143 = 0; + _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_144 = {0}; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_145 = 0; + _fx_R17C_form__cdeffun_t v_146 = {0}; + _fx_rR17C_form__cdeffun_t cons_decl_0 = 0; + _fx_N15C_form__cinfo_t v_147 = {0}; + _fx_N15C_form__cstmt_t v_148 = 0; + _fx_N14C_form__ctyp_t v_149 = 0; + _fx_N14C_form__ctyp_t v_150 = 0; + _fx_LR9Ast__id_t v_151 = 0; + _fx_R17C_form__ctprops_t v_152 = {0}; + _fx_R17C_form__cdeftyp_t v_153 = {0}; FX_CALL( _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(kt_typ_0->u.KTypList, &kt_loc_0, &ct_hd_0, 0), _fx_catch_14); _fx_R9Ast__id_t free_f_1 = ct_props_0.ctp_free.t1; - _fx_R9Ast__id_t v_146; + _fx_R9Ast__id_t v_154; fx_str_t slit_11 = FX_MAKE_STR("rc"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_11, &v_146, 0), _fx_catch_14); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_146, _fx_g20C_gen_types__CTypInt, &v_109); - _fx_R9Ast__id_t v_147; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_11, &v_154, 0), _fx_catch_14); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_154, _fx_g20C_gen_types__CTypInt, &v_117); + _fx_R9Ast__id_t v_155; fx_str_t slit_12 = FX_MAKE_STR("tl"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_12, &v_147, 0), _fx_catch_14); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_147, fx_result_ct_0, &v_110); - _fx_R9Ast__id_t v_148; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_12, &v_155, 0), _fx_catch_14); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_155, fx_result_ct_0, &v_118); + _fx_R9Ast__id_t v_156; fx_str_t slit_13 = FX_MAKE_STR("hd"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_13, &v_148, 0), _fx_catch_14); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_148, ct_hd_0, &v_111); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_111, 0, true, &v_112), _fx_catch_14); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_110, v_112, false, &v_112), _fx_catch_14); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_109, v_112, true, &relems_5), _fx_catch_14); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_13, &v_156, 0), _fx_catch_14); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_156, ct_hd_0, &v_119); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_119, 0, true, &v_120), _fx_catch_14); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_118, v_120, false, &v_120), _fx_catch_14); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_117, v_120, true, &relems_4), _fx_catch_14); bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&free_f_1, &_fx_g9Ast__noid, &res_0, 0), _fx_catch_14); - _fx_Ta2R9Ast__id_t v_149; + _fx_Ta2R9Ast__id_t v_157; if (res_0) { _fx_Ta2R9Ast__id_t tup_0 = { _fx_g31C_form__std_FX_FREE_LIST_SIMPLE, _fx_g31C_form__std_fx_free_list_simple }; - v_149 = tup_0; + v_157 = tup_0; } else { FX_CALL( @@ -11450,52 +11307,52 @@ _fx_endmatch_1: ; _fx_catch_14); FX_CALL( _fx_M11C_gen_typesFM10get_free_fT2BNt6option1N14C_form__cexp_t4N14C_form__ctyp_tBBR10Ast__loc_t(ct_hd_0, true, - false, loc_0, &v_113, 0), _fx_catch_14); - _fx_Nt6option1N14C_form__cexp_t* v_150 = &v_113.t1; - if (v_150->tag == 2) { - FX_COPY_PTR(v_150->u.Some, &free_hd_f_0); + false, loc_0, &v_121, 0), _fx_catch_14); + _fx_Nt6option1N14C_form__cexp_t* v_158 = &v_121.t1; + if (v_158->tag == 2) { + FX_COPY_PTR(v_158->u.Some, &free_hd_f_0); } else { - fx_str_t v_151 = {0}; - fx_str_t v_152 = {0}; - fx_str_t v_153 = {0}; - fx_exn_t v_154 = {0}; - FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_151, 0), _fx_catch_12); - FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_151, &v_152, 0), _fx_catch_12); + fx_str_t v_159 = {0}; + fx_str_t v_160 = {0}; + fx_str_t v_161 = {0}; + fx_exn_t v_162 = {0}; + FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_159, 0), _fx_catch_12); + FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_159, &v_160, 0), _fx_catch_12); fx_str_t slit_14 = FX_MAKE_STR("unexpected element destructor when converting "); { - const fx_str_t strs_6[] = { slit_14, v_152 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_6, 2, &v_153), _fx_catch_12); + const fx_str_t strs_6[] = { slit_14, v_160 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_6, 2, &v_161), _fx_catch_12); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_153, &v_154, 0), _fx_catch_12); - FX_THROW(&v_154, false, _fx_catch_12); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_161, &v_162, 0), _fx_catch_12); + FX_THROW(&v_162, false, _fx_catch_12); _fx_catch_12: ; - fx_free_exn(&v_154); - FX_FREE_STR(&v_153); - FX_FREE_STR(&v_152); - FX_FREE_STR(&v_151); + fx_free_exn(&v_162); + FX_FREE_STR(&v_161); + FX_FREE_STR(&v_160); + FX_FREE_STR(&v_159); } FX_CHECK_EXN(_fx_catch_14); - FX_CALL(_fx_cons_LN14C_form__cexp_t(free_hd_f_0, 0, true, &v_114), _fx_catch_14); - FX_CALL(_fx_cons_LN14C_form__cexp_t(tn_arg_0, v_114, false, &v_114), _fx_catch_14); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g21C_gen_types__CTypVoid, loc_0, &v_115); + FX_CALL(_fx_cons_LN14C_form__cexp_t(free_hd_f_0, 0, true, &v_122), _fx_catch_14); + FX_CALL(_fx_cons_LN14C_form__cexp_t(tn_arg_0, v_122, false, &v_122), _fx_catch_14); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g21C_gen_types__CTypVoid, loc_0, &v_123); FX_CALL( _fx_M6C_formFM8CExpCallN14C_form__cexp_t3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(f_0, - v_114, &v_115, &v_116), _fx_catch_14); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_116, &v_117), _fx_catch_14); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_117, 0, true, &free_code_6), _fx_catch_14); - _fx_R17C_form__cdeffun_t* v_155 = &freef_decl_0->data; - _fx_make_R17C_form__cdeffun_t(&v_155->cf_name, &v_155->cf_cname, v_155->cf_args, v_155->cf_rt, free_code_6, - &v_155->cf_flags, v_155->cf_scope, &v_155->cf_loc, &v_118); - _fx_R17C_form__cdeffun_t* v_156 = &freef_decl_0->data; - _fx_free_R17C_form__cdeffun_t(v_156); - _fx_copy_R17C_form__cdeffun_t(&v_118, v_156); + v_122, &v_123, &v_124), _fx_catch_14); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_124, &v_125), _fx_catch_14); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_125, 0, true, &free_code_4), _fx_catch_14); + _fx_R17C_form__cdeffun_t* v_163 = &freef_decl_0->data; + _fx_make_R17C_form__cdeffun_t(&v_163->cf_name, &v_163->cf_cname, v_163->cf_args, v_163->cf_rt, free_code_4, + &v_163->cf_flags, v_163->cf_scope, &v_163->cf_loc, &v_126); + _fx_R17C_form__cdeffun_t* v_164 = &freef_decl_0->data; + _fx_free_R17C_form__cdeffun_t(v_164); + _fx_copy_R17C_form__cdeffun_t(&v_126, v_164); _fx_Ta2R9Ast__id_t tup_1 = { _fx_g9Ast__noid, free_f_1 }; - v_149 = tup_1; + v_157 = tup_1; } - _fx_R9Ast__id_t free_m_0 = v_149.t0; - _fx_R9Ast__id_t free_f_2 = v_149.t1; + _fx_R9Ast__id_t free_m_0 = v_157.t0; + _fx_R9Ast__id_t free_f_2 = v_157.t1; _fx_R9Ast__id_t cons_id_0; fx_str_t slit_15 = FX_MAKE_STR("cons"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(*curr_cm_idx_0, &slit_15, &cons_id_0, 0), _fx_catch_14); @@ -11504,280 +11361,280 @@ _fx_endmatch_1: ; &kt_loc_0, &make_list_m_0, 0), _fx_catch_14); FX_CALL( _fx_M11C_gen_typesFM10get_copy_fT2BNt6option1N14C_form__cexp_t4N14C_form__ctyp_tBBR10Ast__loc_t(ct_hd_0, false, - true, loc_0, &v_119, 0), _fx_catch_14); - _fx_Nt6option1N14C_form__cexp_t* v_157 = &v_119.t1; - if (v_157->tag == 2) { - _fx_make_T2BN14C_form__cexp_t(v_119.t0, v_157->u.Some, &v_120); + true, loc_0, &v_127, 0), _fx_catch_14); + _fx_Nt6option1N14C_form__cexp_t* v_165 = &v_127.t1; + if (v_165->tag == 2) { + _fx_make_T2BN14C_form__cexp_t(v_127.t0, v_165->u.Some, &v_128); } else { - fx_str_t v_158 = {0}; - fx_str_t v_159 = {0}; - fx_str_t v_160 = {0}; - fx_exn_t v_161 = {0}; - FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_158, 0), _fx_catch_13); - FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_158, &v_159, 0), _fx_catch_13); + fx_str_t v_166 = {0}; + fx_str_t v_167 = {0}; + fx_str_t v_168 = {0}; + fx_exn_t v_169 = {0}; + FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_166, 0), _fx_catch_13); + FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_166, &v_167, 0), _fx_catch_13); fx_str_t slit_16 = FX_MAKE_STR("missing element copy operator when converting "); { - const fx_str_t strs_7[] = { slit_16, v_159 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_7, 2, &v_160), _fx_catch_13); + const fx_str_t strs_7[] = { slit_16, v_167 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_7, 2, &v_168), _fx_catch_13); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_160, &v_161, 0), _fx_catch_13); - FX_THROW(&v_161, false, _fx_catch_13); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_168, &v_169, 0), _fx_catch_13); + FX_THROW(&v_169, false, _fx_catch_13); _fx_catch_13: ; - fx_free_exn(&v_161); - FX_FREE_STR(&v_160); - FX_FREE_STR(&v_159); - FX_FREE_STR(&v_158); + fx_free_exn(&v_169); + FX_FREE_STR(&v_168); + FX_FREE_STR(&v_167); + FX_FREE_STR(&v_166); } FX_CHECK_EXN(_fx_catch_14); - bool pass_by_ref_0 = v_120.t0; - FX_COPY_PTR(v_120.t1, ©_hd_f_0); + bool pass_by_ref_0 = v_128.t0; + FX_COPY_PTR(v_128.t1, ©_hd_f_0); if (pass_by_ref_0) { - FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(ct_hd_0, &v_122, 0), _fx_catch_14); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, 0, true, &v_123), _fx_catch_14); - _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(v_122, v_123, &v_121); + FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(ct_hd_0, &v_130, 0), _fx_catch_14); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, 0, true, &v_131), _fx_catch_14); + _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(v_130, v_131, &v_129); } else { - _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(ct_hd_0, 0, &v_121); - } - FX_COPY_PTR(v_121.t0, &ct_hd_arg_0); - FX_COPY_PTR(v_121.t1, &hd_arg_flags_0); - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(tn_0, &v_124), _fx_catch_14); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(v_124, loc_0, &v_125), _fx_catch_14); - FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_hd_f_0, 0, true, &v_126), _fx_catch_14); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_125, v_126, false, &v_126), _fx_catch_14); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_types__CTypInt, loc_0, &v_127); + _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(ct_hd_0, 0, &v_129); + } + FX_COPY_PTR(v_129.t0, &ct_hd_arg_0); + FX_COPY_PTR(v_129.t1, &hd_arg_flags_0); + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(tn_0, &v_132), _fx_catch_14); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(v_132, loc_0, &v_133), _fx_catch_14); + FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_hd_f_0, 0, true, &v_134), _fx_catch_14); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_133, v_134, false, &v_134), _fx_catch_14); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_types__CTypInt, loc_0, &v_135); FX_CALL( _fx_M6C_formFM8CExpCallN14C_form__cexp_t3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - make_list_m_0, v_126, &v_127, &v_128), _fx_catch_14); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_128, &v_129), _fx_catch_14); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_129, 0, true, &make_list_body_0), _fx_catch_14); + make_list_m_0, v_134, &v_135, &v_136), _fx_catch_14); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_136, &v_137), _fx_catch_14); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_137, 0, true, &make_list_body_0), _fx_catch_14); fx_str_t slit_17 = FX_MAKE_STR("_fx_cons_"); { const fx_str_t strs_8[] = { slit_17, tp_cname_wo_prefix_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_8, 2, &v_130), _fx_catch_14); + FX_CALL(fx_strjoin(0, 0, 0, strs_8, 2, &v_138), _fx_catch_14); } - _fx_R9Ast__id_t v_162; + _fx_R9Ast__id_t v_170; fx_str_t slit_18 = FX_MAKE_STR("hd"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_18, &v_162, 0), _fx_catch_14); - _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_162, ct_hd_arg_0, hd_arg_flags_0, &v_131); - _fx_R9Ast__id_t v_163; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_18, &v_170, 0), _fx_catch_14); + _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_170, ct_hd_arg_0, hd_arg_flags_0, &v_139); + _fx_R9Ast__id_t v_171; fx_str_t slit_19 = FX_MAKE_STR("tl"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_19, &v_163, 0), _fx_catch_14); - _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_163, fx_result_ct_0, 0, &v_132); - _fx_R9Ast__id_t v_164; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_19, &v_171, 0), _fx_catch_14); + _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_171, fx_result_ct_0, 0, &v_140); + _fx_R9Ast__id_t v_172; fx_str_t slit_20 = FX_MAKE_STR("addref_tl"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_20, &v_164, 0), _fx_catch_14); - _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_164, _fx_g21C_gen_types__CTypBool, 0, &v_133); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(fx_result_ct_0, &v_134, 0), _fx_catch_14); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g23C_gen_types__CArgRetVal, 0, true, &v_135), _fx_catch_14); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, v_135, false, &v_135), _fx_catch_14); - _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&fx_result_id_0, v_134, v_135, &v_136); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_136, 0, true, &v_137), _fx_catch_14); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_133, v_137, false, &v_137), _fx_catch_14); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_132, v_137, false, &v_137), _fx_catch_14); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_131, v_137, false, &v_137), _fx_catch_14); - _fx_R16Ast__fun_flags_t v_165; - FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_165, 0), _fx_catch_14); - _fx_R16Ast__fun_flags_t v_166 = - { v_165.fun_flag_pure, v_165.fun_flag_ccode, v_165.fun_flag_have_keywords, v_165.fun_flag_inline, - v_165.fun_flag_nothrow, v_165.fun_flag_really_nothrow, true, v_165.fun_flag_ctor, v_165.fun_flag_method_of, - v_165.fun_flag_uses_fv, v_165.fun_flag_recursive, v_165.fun_flag_instance }; - _fx_make_R17C_form__cdeffun_t(&cons_id_0, &v_130, v_137, _fx_g21C_gen_types__CTypCInt, make_list_body_0, &v_166, 0, - loc_0, &v_138); - FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_138, &cons_decl_0), _fx_catch_14); - _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(cons_decl_0, &v_139); - FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&cons_id_0, &v_139, 0), _fx_catch_14); - FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(cons_decl_0, &v_140), _fx_catch_14); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_20, &v_172, 0), _fx_catch_14); + _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_172, _fx_g21C_gen_types__CTypBool, 0, &v_141); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(fx_result_ct_0, &v_142, 0), _fx_catch_14); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g23C_gen_types__CArgRetVal, 0, true, &v_143), _fx_catch_14); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, v_143, false, &v_143), _fx_catch_14); + _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&fx_result_id_0, v_142, v_143, &v_144); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_144, 0, true, &v_145), _fx_catch_14); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_141, v_145, false, &v_145), _fx_catch_14); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_140, v_145, false, &v_145), _fx_catch_14); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_139, v_145, false, &v_145), _fx_catch_14); + _fx_R16Ast__fun_flags_t v_173; + FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_173, 0), _fx_catch_14); + _fx_R16Ast__fun_flags_t v_174 = + { v_173.fun_flag_pure, v_173.fun_flag_ccode, v_173.fun_flag_have_keywords, v_173.fun_flag_inline, + v_173.fun_flag_nothrow, v_173.fun_flag_really_nothrow, true, v_173.fun_flag_ctor, v_173.fun_flag_method_of, + v_173.fun_flag_uses_fv, v_173.fun_flag_recursive, v_173.fun_flag_instance }; + _fx_make_R17C_form__cdeffun_t(&cons_id_0, &v_138, v_145, _fx_g21C_gen_types__CTypCInt, make_list_body_0, &v_174, 0, + loc_0, &v_146); + FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_146, &cons_decl_0), _fx_catch_14); + _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(cons_decl_0, &v_147); + FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&cons_id_0, &v_147, 0), _fx_catch_14); + FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(cons_decl_0, &v_148), _fx_catch_14); FX_CALL( _fx_M11C_gen_typesFM8add_declv5R9Ast__id_tN15C_form__cstmt_trRt6Set__t1R9Ast__id_trLN15C_form__cstmt_trLN15C_form__cstmt_t( - &cons_id_0, v_140, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_14); - _fx_R17C_form__cdeftyp_t* v_167 = &struct_decl_0->data; + &cons_id_0, v_148, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_14); + _fx_R17C_form__cdeftyp_t* v_175 = &struct_decl_0->data; FX_CALL( _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&struct_id_opt_1, - relems_5, &v_141), _fx_catch_14); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_141, &v_142, 0), _fx_catch_14); - FX_CALL(_fx_cons_LR9Ast__id_t(&cons_id_0, 0, true, &v_143), _fx_catch_14); - _fx_Ta2R9Ast__id_t v_168 = { free_m_0, free_f_2 }; + relems_4, &v_149), _fx_catch_14); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_149, &v_150, 0), _fx_catch_14); + FX_CALL(_fx_cons_LR9Ast__id_t(&cons_id_0, 0, true, &v_151), _fx_catch_14); + _fx_Ta2R9Ast__id_t v_176 = { free_m_0, free_f_2 }; _fx_make_R17C_form__ctprops_t(ct_props_0.ctp_scalar, ct_props_0.ctp_complex, ct_props_0.ctp_ptr, - ct_props_0.ctp_pass_by_ref, v_143, &v_168, &ct_props_0.ctp_copy, &v_144); - _fx_make_R17C_form__cdeftyp_t(&v_167->ct_name, v_142, &v_167->ct_cname, &v_144, v_167->ct_data_start, &v_167->ct_enum, - v_167->ct_ifaces, &v_167->ct_ifaces_id, v_167->ct_scope, &v_167->ct_loc, &v_145); - _fx_R17C_form__cdeftyp_t* v_169 = &struct_decl_0->data; - _fx_free_R17C_form__cdeftyp_t(v_169); - _fx_copy_R17C_form__cdeftyp_t(&v_145, v_169); + ct_props_0.ctp_pass_by_ref, v_151, &v_176, &ct_props_0.ctp_copy, &v_152); + _fx_make_R17C_form__cdeftyp_t(&v_175->ct_name, v_150, &v_175->ct_cname, &v_152, v_175->ct_data_start, &v_175->ct_enum, + v_175->ct_ifaces, &v_175->ct_ifaces_id, v_175->ct_scope, &v_175->ct_loc, &v_153); + _fx_R17C_form__cdeftyp_t* v_177 = &struct_decl_0->data; + _fx_free_R17C_form__cdeftyp_t(v_177); + _fx_copy_R17C_form__cdeftyp_t(&v_153, v_177); _fx_catch_14: ; - _fx_free_R17C_form__cdeftyp_t(&v_145); - _fx_free_R17C_form__ctprops_t(&v_144); - FX_FREE_LIST_SIMPLE(&v_143); - if (v_142) { - _fx_free_N14C_form__ctyp_t(&v_142); + _fx_free_R17C_form__cdeftyp_t(&v_153); + _fx_free_R17C_form__ctprops_t(&v_152); + FX_FREE_LIST_SIMPLE(&v_151); + if (v_150) { + _fx_free_N14C_form__ctyp_t(&v_150); } - if (v_141) { - _fx_free_N14C_form__ctyp_t(&v_141); + if (v_149) { + _fx_free_N14C_form__ctyp_t(&v_149); } - if (v_140) { - _fx_free_N15C_form__cstmt_t(&v_140); + if (v_148) { + _fx_free_N15C_form__cstmt_t(&v_148); } - _fx_free_N15C_form__cinfo_t(&v_139); + _fx_free_N15C_form__cinfo_t(&v_147); if (cons_decl_0) { _fx_free_rR17C_form__cdeffun_t(&cons_decl_0); } - _fx_free_R17C_form__cdeffun_t(&v_138); - if (v_137) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_137); + _fx_free_R17C_form__cdeffun_t(&v_146); + if (v_145) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_145); } - _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_136); - FX_FREE_LIST_SIMPLE(&v_135); - if (v_134) { - _fx_free_N14C_form__ctyp_t(&v_134); + _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_144); + FX_FREE_LIST_SIMPLE(&v_143); + if (v_142) { + _fx_free_N14C_form__ctyp_t(&v_142); } - _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_133); - _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_132); - _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_131); - FX_FREE_STR(&v_130); + _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_141); + _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_140); + _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_139); + FX_FREE_STR(&v_138); if (make_list_body_0) { _fx_free_LN15C_form__cstmt_t(&make_list_body_0); } - if (v_129) { - _fx_free_N15C_form__cstmt_t(&v_129); + if (v_137) { + _fx_free_N15C_form__cstmt_t(&v_137); } - if (v_128) { - _fx_free_N14C_form__cexp_t(&v_128); + if (v_136) { + _fx_free_N14C_form__cexp_t(&v_136); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_127); - if (v_126) { - _fx_free_LN14C_form__cexp_t(&v_126); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_135); + if (v_134) { + _fx_free_LN14C_form__cexp_t(&v_134); } - if (v_125) { - _fx_free_N14C_form__cexp_t(&v_125); + if (v_133) { + _fx_free_N14C_form__cexp_t(&v_133); } - if (v_124) { - _fx_free_N14C_form__ctyp_t(&v_124); + if (v_132) { + _fx_free_N14C_form__ctyp_t(&v_132); } FX_FREE_LIST_SIMPLE(&hd_arg_flags_0); if (ct_hd_arg_0) { _fx_free_N14C_form__ctyp_t(&ct_hd_arg_0); } - FX_FREE_LIST_SIMPLE(&v_123); - if (v_122) { - _fx_free_N14C_form__ctyp_t(&v_122); + FX_FREE_LIST_SIMPLE(&v_131); + if (v_130) { + _fx_free_N14C_form__ctyp_t(&v_130); } - _fx_free_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(&v_121); + _fx_free_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(&v_129); if (copy_hd_f_0) { _fx_free_N14C_form__cexp_t(©_hd_f_0); } - _fx_free_T2BN14C_form__cexp_t(&v_120); - _fx_free_T2BNt6option1N14C_form__cexp_t(&v_119); + _fx_free_T2BN14C_form__cexp_t(&v_128); + _fx_free_T2BNt6option1N14C_form__cexp_t(&v_127); if (make_list_m_0) { _fx_free_N14C_form__cexp_t(&make_list_m_0); } - _fx_free_R17C_form__cdeffun_t(&v_118); - if (free_code_6) { - _fx_free_LN15C_form__cstmt_t(&free_code_6); + _fx_free_R17C_form__cdeffun_t(&v_126); + if (free_code_4) { + _fx_free_LN15C_form__cstmt_t(&free_code_4); } - if (v_117) { - _fx_free_N15C_form__cstmt_t(&v_117); + if (v_125) { + _fx_free_N15C_form__cstmt_t(&v_125); } - if (v_116) { - _fx_free_N14C_form__cexp_t(&v_116); + if (v_124) { + _fx_free_N14C_form__cexp_t(&v_124); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_115); - if (v_114) { - _fx_free_LN14C_form__cexp_t(&v_114); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_123); + if (v_122) { + _fx_free_LN14C_form__cexp_t(&v_122); } if (free_hd_f_0) { _fx_free_N14C_form__cexp_t(&free_hd_f_0); } - _fx_free_T2BNt6option1N14C_form__cexp_t(&v_113); + _fx_free_T2BNt6option1N14C_form__cexp_t(&v_121); if (tn_arg_0) { _fx_free_N14C_form__cexp_t(&tn_arg_0); } if (f_0) { _fx_free_N14C_form__cexp_t(&f_0); } - if (relems_5) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_5); + if (relems_4) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_4); } - if (v_112) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_112); + if (v_120) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_120); } - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_111); - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_110); - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_109); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_119); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_118); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_117); if (ct_hd_0) { _fx_free_N14C_form__ctyp_t(&ct_hd_0); } } else if (tag_1 == 20) { _fx_N14C_form__ctyp_t ctyp_0 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_170 = {0}; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_171 = {0}; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_172 = 0; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_6 = 0; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_178 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_179 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_180 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_5 = 0; _fx_N14C_form__cexp_t f_1 = 0; _fx_N14C_form__cexp_t tn_arg_1 = 0; - _fx_T2BNt6option1N14C_form__cexp_t v_173 = {0}; + _fx_T2BNt6option1N14C_form__cexp_t v_181 = {0}; _fx_N14C_form__cexp_t free_hd_f_1 = 0; - _fx_LN14C_form__cexp_t v_174 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_175 = {0}; - _fx_N14C_form__cexp_t v_176 = 0; - _fx_N15C_form__cstmt_t v_177 = 0; - _fx_LN15C_form__cstmt_t free_code_7 = 0; - _fx_R17C_form__cdeffun_t v_178 = {0}; + _fx_LN14C_form__cexp_t v_182 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_183 = {0}; + _fx_N14C_form__cexp_t v_184 = 0; + _fx_N15C_form__cstmt_t v_185 = 0; + _fx_LN15C_form__cstmt_t free_code_5 = 0; + _fx_R17C_form__cdeffun_t v_186 = {0}; _fx_N14C_form__cexp_t mkref_m_0 = 0; - _fx_T2BNt6option1N14C_form__cexp_t v_179 = {0}; - _fx_T2BN14C_form__cexp_t v_180 = {0}; + _fx_T2BNt6option1N14C_form__cexp_t v_187 = {0}; + _fx_T2BN14C_form__cexp_t v_188 = {0}; _fx_N14C_form__cexp_t copy_data_f_0 = 0; - _fx_T2N14C_form__ctyp_tLN19C_form__carg_attr_t v_181 = {0}; - _fx_N14C_form__ctyp_t v_182 = 0; - _fx_LN19C_form__carg_attr_t v_183 = 0; + _fx_T2N14C_form__ctyp_tLN19C_form__carg_attr_t v_189 = {0}; + _fx_N14C_form__ctyp_t v_190 = 0; + _fx_LN19C_form__carg_attr_t v_191 = 0; _fx_N14C_form__ctyp_t ct_arg_0 = 0; _fx_LN19C_form__carg_attr_t ct_arg_flags_0 = 0; - _fx_N14C_form__ctyp_t v_184 = 0; - _fx_N14C_form__cexp_t v_185 = 0; - _fx_LN14C_form__cexp_t v_186 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_187 = {0}; - _fx_N14C_form__cexp_t v_188 = 0; - _fx_N15C_form__cstmt_t v_189 = 0; - _fx_LN15C_form__cstmt_t mkref_body_0 = 0; - fx_str_t v_190 = {0}; - _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_191 = {0}; _fx_N14C_form__ctyp_t v_192 = 0; - _fx_LN19C_form__carg_attr_t v_193 = 0; - _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_194 = {0}; - _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_195 = 0; - _fx_R17C_form__cdeffun_t v_196 = {0}; - _fx_rR17C_form__cdeffun_t mkref_decl_0 = 0; - _fx_N15C_form__cinfo_t v_197 = {0}; - _fx_N15C_form__cstmt_t v_198 = 0; - _fx_N14C_form__ctyp_t v_199 = 0; + _fx_N14C_form__cexp_t v_193 = 0; + _fx_LN14C_form__cexp_t v_194 = 0; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_195 = {0}; + _fx_N14C_form__cexp_t v_196 = 0; + _fx_N15C_form__cstmt_t v_197 = 0; + _fx_LN15C_form__cstmt_t mkref_body_0 = 0; + fx_str_t v_198 = {0}; + _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_199 = {0}; _fx_N14C_form__ctyp_t v_200 = 0; - _fx_LR9Ast__id_t v_201 = 0; - _fx_R17C_form__ctprops_t v_202 = {0}; - _fx_R17C_form__cdeftyp_t v_203 = {0}; + _fx_LN19C_form__carg_attr_t v_201 = 0; + _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_202 = {0}; + _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t v_203 = 0; + _fx_R17C_form__cdeffun_t v_204 = {0}; + _fx_rR17C_form__cdeffun_t mkref_decl_0 = 0; + _fx_N15C_form__cinfo_t v_205 = {0}; + _fx_N15C_form__cstmt_t v_206 = 0; + _fx_N14C_form__ctyp_t v_207 = 0; + _fx_N14C_form__ctyp_t v_208 = 0; + _fx_LR9Ast__id_t v_209 = 0; + _fx_R17C_form__ctprops_t v_210 = {0}; + _fx_R17C_form__cdeftyp_t v_211 = {0}; FX_CALL( _fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(kt_typ_0->u.KTypRef, &kt_loc_0, &ctyp_0, 0), _fx_catch_17); _fx_R9Ast__id_t free_f_3 = ct_props_0.ctp_free.t1; - _fx_R9Ast__id_t v_204; + _fx_R9Ast__id_t v_212; fx_str_t slit_21 = FX_MAKE_STR("rc"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_21, &v_204, 0), _fx_catch_17); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_204, _fx_g20C_gen_types__CTypInt, &v_170); - _fx_R9Ast__id_t v_205; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_21, &v_212, 0), _fx_catch_17); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_212, _fx_g20C_gen_types__CTypInt, &v_178); + _fx_R9Ast__id_t v_213; fx_str_t slit_22 = FX_MAKE_STR("data"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_22, &v_205, 0), _fx_catch_17); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_205, ctyp_0, &v_171); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_171, 0, true, &v_172), _fx_catch_17); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_170, v_172, true, &relems_6), _fx_catch_17); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_22, &v_213, 0), _fx_catch_17); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_213, ctyp_0, &v_179); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_179, 0, true, &v_180), _fx_catch_17); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_178, v_180, true, &relems_5), _fx_catch_17); bool res_1; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&free_f_3, &_fx_g9Ast__noid, &res_1, 0), _fx_catch_17); - _fx_Ta2R9Ast__id_t v_206; + _fx_Ta2R9Ast__id_t v_214; if (res_1) { _fx_Ta2R9Ast__id_t tup_2 = { _fx_g30C_form__std_FX_FREE_REF_SIMPLE, _fx_g30C_form__std_fx_free_ref_simple }; - v_206 = tup_2; + v_214 = tup_2; } else { FX_CALL( @@ -11787,52 +11644,52 @@ _fx_endmatch_1: ; _fx_catch_17); FX_CALL( _fx_M11C_gen_typesFM10get_free_fT2BNt6option1N14C_form__cexp_t4N14C_form__ctyp_tBBR10Ast__loc_t(ctyp_0, true, - false, loc_0, &v_173, 0), _fx_catch_17); - _fx_Nt6option1N14C_form__cexp_t* v_207 = &v_173.t1; - if (v_207->tag == 2) { - FX_COPY_PTR(v_207->u.Some, &free_hd_f_1); + false, loc_0, &v_181, 0), _fx_catch_17); + _fx_Nt6option1N14C_form__cexp_t* v_215 = &v_181.t1; + if (v_215->tag == 2) { + FX_COPY_PTR(v_215->u.Some, &free_hd_f_1); } else { - fx_str_t v_208 = {0}; - fx_str_t v_209 = {0}; - fx_str_t v_210 = {0}; - fx_exn_t v_211 = {0}; - FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_208, 0), _fx_catch_15); - FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_208, &v_209, 0), _fx_catch_15); + fx_str_t v_216 = {0}; + fx_str_t v_217 = {0}; + fx_str_t v_218 = {0}; + fx_exn_t v_219 = {0}; + FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_216, 0), _fx_catch_15); + FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_216, &v_217, 0), _fx_catch_15); fx_str_t slit_23 = FX_MAKE_STR("unexpected element destructor when converting "); { - const fx_str_t strs_9[] = { slit_23, v_209 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_9, 2, &v_210), _fx_catch_15); + const fx_str_t strs_9[] = { slit_23, v_217 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_9, 2, &v_218), _fx_catch_15); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_210, &v_211, 0), _fx_catch_15); - FX_THROW(&v_211, false, _fx_catch_15); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_218, &v_219, 0), _fx_catch_15); + FX_THROW(&v_219, false, _fx_catch_15); _fx_catch_15: ; - fx_free_exn(&v_211); - FX_FREE_STR(&v_210); - FX_FREE_STR(&v_209); - FX_FREE_STR(&v_208); + fx_free_exn(&v_219); + FX_FREE_STR(&v_218); + FX_FREE_STR(&v_217); + FX_FREE_STR(&v_216); } FX_CHECK_EXN(_fx_catch_17); - FX_CALL(_fx_cons_LN14C_form__cexp_t(free_hd_f_1, 0, true, &v_174), _fx_catch_17); - FX_CALL(_fx_cons_LN14C_form__cexp_t(tn_arg_1, v_174, false, &v_174), _fx_catch_17); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g21C_gen_types__CTypVoid, loc_0, &v_175); + FX_CALL(_fx_cons_LN14C_form__cexp_t(free_hd_f_1, 0, true, &v_182), _fx_catch_17); + FX_CALL(_fx_cons_LN14C_form__cexp_t(tn_arg_1, v_182, false, &v_182), _fx_catch_17); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g21C_gen_types__CTypVoid, loc_0, &v_183); FX_CALL( _fx_M6C_formFM8CExpCallN14C_form__cexp_t3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t(f_1, - v_174, &v_175, &v_176), _fx_catch_17); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_176, &v_177), _fx_catch_17); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_177, 0, true, &free_code_7), _fx_catch_17); - _fx_R17C_form__cdeffun_t* v_212 = &freef_decl_0->data; - _fx_make_R17C_form__cdeffun_t(&v_212->cf_name, &v_212->cf_cname, v_212->cf_args, v_212->cf_rt, free_code_7, - &v_212->cf_flags, v_212->cf_scope, &v_212->cf_loc, &v_178); - _fx_R17C_form__cdeffun_t* v_213 = &freef_decl_0->data; - _fx_free_R17C_form__cdeffun_t(v_213); - _fx_copy_R17C_form__cdeffun_t(&v_178, v_213); + v_182, &v_183, &v_184), _fx_catch_17); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_184, &v_185), _fx_catch_17); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_185, 0, true, &free_code_5), _fx_catch_17); + _fx_R17C_form__cdeffun_t* v_220 = &freef_decl_0->data; + _fx_make_R17C_form__cdeffun_t(&v_220->cf_name, &v_220->cf_cname, v_220->cf_args, v_220->cf_rt, free_code_5, + &v_220->cf_flags, v_220->cf_scope, &v_220->cf_loc, &v_186); + _fx_R17C_form__cdeffun_t* v_221 = &freef_decl_0->data; + _fx_free_R17C_form__cdeffun_t(v_221); + _fx_copy_R17C_form__cdeffun_t(&v_186, v_221); _fx_Ta2R9Ast__id_t tup_3 = { _fx_g9Ast__noid, free_f_3 }; - v_206 = tup_3; + v_214 = tup_3; } - _fx_R9Ast__id_t free_m_1 = v_206.t0; - _fx_R9Ast__id_t free_f_4 = v_206.t1; + _fx_R9Ast__id_t free_m_1 = v_214.t0; + _fx_R9Ast__id_t free_f_4 = v_214.t1; _fx_R9Ast__id_t mkref_id_0; fx_str_t slit_24 = FX_MAKE_STR("mkref"); FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(*curr_cm_idx_0, &slit_24, &mkref_id_0, 0), _fx_catch_17); @@ -11841,196 +11698,196 @@ _fx_endmatch_1: ; &kt_loc_0, &mkref_m_0, 0), _fx_catch_17); FX_CALL( _fx_M11C_gen_typesFM10get_copy_fT2BNt6option1N14C_form__cexp_t4N14C_form__ctyp_tBBR10Ast__loc_t(ctyp_0, false, true, - loc_0, &v_179, 0), _fx_catch_17); - _fx_Nt6option1N14C_form__cexp_t* v_214 = &v_179.t1; - if (v_214->tag == 2) { - _fx_make_T2BN14C_form__cexp_t(v_179.t0, v_214->u.Some, &v_180); + loc_0, &v_187, 0), _fx_catch_17); + _fx_Nt6option1N14C_form__cexp_t* v_222 = &v_187.t1; + if (v_222->tag == 2) { + _fx_make_T2BN14C_form__cexp_t(v_187.t0, v_222->u.Some, &v_188); } else { - fx_str_t v_215 = {0}; - fx_str_t v_216 = {0}; - fx_str_t v_217 = {0}; - fx_exn_t v_218 = {0}; - FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_215, 0), _fx_catch_16); - FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_215, &v_216, 0), _fx_catch_16); + fx_str_t v_223 = {0}; + fx_str_t v_224 = {0}; + fx_str_t v_225 = {0}; + fx_exn_t v_226 = {0}; + FX_CALL(_fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_223, 0), _fx_catch_16); + FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_223, &v_224, 0), _fx_catch_16); fx_str_t slit_25 = FX_MAKE_STR("missing element copy operator when converting "); { - const fx_str_t strs_10[] = { slit_25, v_216 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_10, 2, &v_217), _fx_catch_16); + const fx_str_t strs_10[] = { slit_25, v_224 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_10, 2, &v_225), _fx_catch_16); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_217, &v_218, 0), _fx_catch_16); - FX_THROW(&v_218, false, _fx_catch_16); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_225, &v_226, 0), _fx_catch_16); + FX_THROW(&v_226, false, _fx_catch_16); _fx_catch_16: ; - fx_free_exn(&v_218); - FX_FREE_STR(&v_217); - FX_FREE_STR(&v_216); - FX_FREE_STR(&v_215); + fx_free_exn(&v_226); + FX_FREE_STR(&v_225); + FX_FREE_STR(&v_224); + FX_FREE_STR(&v_223); } FX_CHECK_EXN(_fx_catch_17); - bool pass_by_ref_1 = v_180.t0; - FX_COPY_PTR(v_180.t1, ©_data_f_0); + bool pass_by_ref_1 = v_188.t0; + FX_COPY_PTR(v_188.t1, ©_data_f_0); if (pass_by_ref_1) { - FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(ctyp_0, &v_182, 0), _fx_catch_17); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, 0, true, &v_183), _fx_catch_17); - _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(v_182, v_183, &v_181); + FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(ctyp_0, &v_190, 0), _fx_catch_17); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, 0, true, &v_191), _fx_catch_17); + _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(v_190, v_191, &v_189); } else { - _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(ctyp_0, 0, &v_181); - } - FX_COPY_PTR(v_181.t0, &ct_arg_0); - FX_COPY_PTR(v_181.t1, &ct_arg_flags_0); - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(tn_0, &v_184), _fx_catch_17); - FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(v_184, loc_0, &v_185), _fx_catch_17); - FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_data_f_0, 0, true, &v_186), _fx_catch_17); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_185, v_186, false, &v_186), _fx_catch_17); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_types__CTypInt, loc_0, &v_187); + _fx_make_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(ctyp_0, 0, &v_189); + } + FX_COPY_PTR(v_189.t0, &ct_arg_0); + FX_COPY_PTR(v_189.t1, &ct_arg_flags_0); + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(tn_0, &v_192), _fx_catch_17); + FX_CALL(_fx_M6C_formFM7CExpTypN14C_form__cexp_t2N14C_form__ctyp_tR10Ast__loc_t(v_192, loc_0, &v_193), _fx_catch_17); + FX_CALL(_fx_cons_LN14C_form__cexp_t(copy_data_f_0, 0, true, &v_194), _fx_catch_17); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_193, v_194, false, &v_194), _fx_catch_17); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_types__CTypInt, loc_0, &v_195); FX_CALL( _fx_M6C_formFM8CExpCallN14C_form__cexp_t3N14C_form__cexp_tLN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - mkref_m_0, v_186, &v_187, &v_188), _fx_catch_17); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_188, &v_189), _fx_catch_17); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_189, 0, true, &mkref_body_0), _fx_catch_17); + mkref_m_0, v_194, &v_195, &v_196), _fx_catch_17); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_196, &v_197), _fx_catch_17); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_197, 0, true, &mkref_body_0), _fx_catch_17); fx_str_t slit_26 = FX_MAKE_STR("_fx_make_"); { const fx_str_t strs_11[] = { slit_26, tp_cname_wo_prefix_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_11, 2, &v_190), _fx_catch_17); + FX_CALL(fx_strjoin(0, 0, 0, strs_11, 2, &v_198), _fx_catch_17); } - _fx_R9Ast__id_t v_219; + _fx_R9Ast__id_t v_227; fx_str_t slit_27 = FX_MAKE_STR("arg"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_27, &v_219, 0), _fx_catch_17); - _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_219, ct_arg_0, ct_arg_flags_0, &v_191); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(fx_result_ct_0, &v_192, 0), _fx_catch_17); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g23C_gen_types__CArgRetVal, 0, true, &v_193), _fx_catch_17); - FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, v_193, false, &v_193), _fx_catch_17); - _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&fx_result_id_0, v_192, v_193, &v_194); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_194, 0, true, &v_195), _fx_catch_17); - FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_191, v_195, false, &v_195), _fx_catch_17); - _fx_R16Ast__fun_flags_t v_220; - FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_220, 0), _fx_catch_17); - _fx_R16Ast__fun_flags_t v_221 = - { v_220.fun_flag_pure, v_220.fun_flag_ccode, v_220.fun_flag_have_keywords, v_220.fun_flag_inline, - v_220.fun_flag_nothrow, v_220.fun_flag_really_nothrow, true, v_220.fun_flag_ctor, v_220.fun_flag_method_of, - v_220.fun_flag_uses_fv, v_220.fun_flag_recursive, v_220.fun_flag_instance }; - _fx_make_R17C_form__cdeffun_t(&mkref_id_0, &v_190, v_195, _fx_g21C_gen_types__CTypCInt, mkref_body_0, &v_221, 0, loc_0, - &v_196); - FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_196, &mkref_decl_0), _fx_catch_17); - _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(mkref_decl_0, &v_197); - FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&mkref_id_0, &v_197, 0), _fx_catch_17); - FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(mkref_decl_0, &v_198), _fx_catch_17); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_27, &v_227, 0), _fx_catch_17); + _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_227, ct_arg_0, ct_arg_flags_0, &v_199); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(fx_result_ct_0, &v_200, 0), _fx_catch_17); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g23C_gen_types__CArgRetVal, 0, true, &v_201), _fx_catch_17); + FX_CALL(_fx_cons_LN19C_form__carg_attr_t(&_fx_g26C_gen_types__CArgPassByPtr, v_201, false, &v_201), _fx_catch_17); + _fx_make_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&fx_result_id_0, v_200, v_201, &v_202); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_202, 0, true, &v_203), _fx_catch_17); + FX_CALL(_fx_cons_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_199, v_203, false, &v_203), _fx_catch_17); + _fx_R16Ast__fun_flags_t v_228; + FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_228, 0), _fx_catch_17); + _fx_R16Ast__fun_flags_t v_229 = + { v_228.fun_flag_pure, v_228.fun_flag_ccode, v_228.fun_flag_have_keywords, v_228.fun_flag_inline, + v_228.fun_flag_nothrow, v_228.fun_flag_really_nothrow, true, v_228.fun_flag_ctor, v_228.fun_flag_method_of, + v_228.fun_flag_uses_fv, v_228.fun_flag_recursive, v_228.fun_flag_instance }; + _fx_make_R17C_form__cdeffun_t(&mkref_id_0, &v_198, v_203, _fx_g21C_gen_types__CTypCInt, mkref_body_0, &v_229, 0, loc_0, + &v_204); + FX_CALL(_fx_make_rR17C_form__cdeffun_t(&v_204, &mkref_decl_0), _fx_catch_17); + _fx_M6C_formFM4CFunN15C_form__cinfo_t1rRM9cdeffun_t(mkref_decl_0, &v_205); + FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&mkref_id_0, &v_205, 0), _fx_catch_17); + FX_CALL(_fx_M6C_formFM7CDefFunN15C_form__cstmt_t1rRM9cdeffun_t(mkref_decl_0, &v_206), _fx_catch_17); FX_CALL( _fx_M11C_gen_typesFM8add_declv5R9Ast__id_tN15C_form__cstmt_trRt6Set__t1R9Ast__id_trLN15C_form__cstmt_trLN15C_form__cstmt_t( - &mkref_id_0, v_198, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_17); - _fx_R17C_form__cdeftyp_t* v_222 = &struct_decl_0->data; + &mkref_id_0, v_206, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_17); + _fx_R17C_form__cdeftyp_t* v_230 = &struct_decl_0->data; FX_CALL( _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&struct_id_opt_1, - relems_6, &v_199), _fx_catch_17); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_199, &v_200, 0), _fx_catch_17); - FX_CALL(_fx_cons_LR9Ast__id_t(&mkref_id_0, 0, true, &v_201), _fx_catch_17); - _fx_Ta2R9Ast__id_t v_223 = { free_m_1, free_f_4 }; + relems_5, &v_207), _fx_catch_17); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_207, &v_208, 0), _fx_catch_17); + FX_CALL(_fx_cons_LR9Ast__id_t(&mkref_id_0, 0, true, &v_209), _fx_catch_17); + _fx_Ta2R9Ast__id_t v_231 = { free_m_1, free_f_4 }; _fx_make_R17C_form__ctprops_t(ct_props_0.ctp_scalar, ct_props_0.ctp_complex, ct_props_0.ctp_ptr, - ct_props_0.ctp_pass_by_ref, v_201, &v_223, &ct_props_0.ctp_copy, &v_202); - _fx_make_R17C_form__cdeftyp_t(&v_222->ct_name, v_200, &v_222->ct_cname, &v_202, v_222->ct_data_start, &v_222->ct_enum, - v_222->ct_ifaces, &v_222->ct_ifaces_id, v_222->ct_scope, &v_222->ct_loc, &v_203); - _fx_R17C_form__cdeftyp_t* v_224 = &struct_decl_0->data; - _fx_free_R17C_form__cdeftyp_t(v_224); - _fx_copy_R17C_form__cdeftyp_t(&v_203, v_224); + ct_props_0.ctp_pass_by_ref, v_209, &v_231, &ct_props_0.ctp_copy, &v_210); + _fx_make_R17C_form__cdeftyp_t(&v_230->ct_name, v_208, &v_230->ct_cname, &v_210, v_230->ct_data_start, &v_230->ct_enum, + v_230->ct_ifaces, &v_230->ct_ifaces_id, v_230->ct_scope, &v_230->ct_loc, &v_211); + _fx_R17C_form__cdeftyp_t* v_232 = &struct_decl_0->data; + _fx_free_R17C_form__cdeftyp_t(v_232); + _fx_copy_R17C_form__cdeftyp_t(&v_211, v_232); _fx_catch_17: ; - _fx_free_R17C_form__cdeftyp_t(&v_203); - _fx_free_R17C_form__ctprops_t(&v_202); - FX_FREE_LIST_SIMPLE(&v_201); - if (v_200) { - _fx_free_N14C_form__ctyp_t(&v_200); + _fx_free_R17C_form__cdeftyp_t(&v_211); + _fx_free_R17C_form__ctprops_t(&v_210); + FX_FREE_LIST_SIMPLE(&v_209); + if (v_208) { + _fx_free_N14C_form__ctyp_t(&v_208); } - if (v_199) { - _fx_free_N14C_form__ctyp_t(&v_199); + if (v_207) { + _fx_free_N14C_form__ctyp_t(&v_207); } - if (v_198) { - _fx_free_N15C_form__cstmt_t(&v_198); + if (v_206) { + _fx_free_N15C_form__cstmt_t(&v_206); } - _fx_free_N15C_form__cinfo_t(&v_197); + _fx_free_N15C_form__cinfo_t(&v_205); if (mkref_decl_0) { _fx_free_rR17C_form__cdeffun_t(&mkref_decl_0); } - _fx_free_R17C_form__cdeffun_t(&v_196); - if (v_195) { - _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_195); + _fx_free_R17C_form__cdeffun_t(&v_204); + if (v_203) { + _fx_free_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_203); } - _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_194); - FX_FREE_LIST_SIMPLE(&v_193); - if (v_192) { - _fx_free_N14C_form__ctyp_t(&v_192); + _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_202); + FX_FREE_LIST_SIMPLE(&v_201); + if (v_200) { + _fx_free_N14C_form__ctyp_t(&v_200); } - _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_191); - FX_FREE_STR(&v_190); + _fx_free_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t(&v_199); + FX_FREE_STR(&v_198); if (mkref_body_0) { _fx_free_LN15C_form__cstmt_t(&mkref_body_0); } - if (v_189) { - _fx_free_N15C_form__cstmt_t(&v_189); + if (v_197) { + _fx_free_N15C_form__cstmt_t(&v_197); } - if (v_188) { - _fx_free_N14C_form__cexp_t(&v_188); + if (v_196) { + _fx_free_N14C_form__cexp_t(&v_196); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_187); - if (v_186) { - _fx_free_LN14C_form__cexp_t(&v_186); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_195); + if (v_194) { + _fx_free_LN14C_form__cexp_t(&v_194); } - if (v_185) { - _fx_free_N14C_form__cexp_t(&v_185); + if (v_193) { + _fx_free_N14C_form__cexp_t(&v_193); } - if (v_184) { - _fx_free_N14C_form__ctyp_t(&v_184); + if (v_192) { + _fx_free_N14C_form__ctyp_t(&v_192); } FX_FREE_LIST_SIMPLE(&ct_arg_flags_0); if (ct_arg_0) { _fx_free_N14C_form__ctyp_t(&ct_arg_0); } - FX_FREE_LIST_SIMPLE(&v_183); - if (v_182) { - _fx_free_N14C_form__ctyp_t(&v_182); + FX_FREE_LIST_SIMPLE(&v_191); + if (v_190) { + _fx_free_N14C_form__ctyp_t(&v_190); } - _fx_free_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(&v_181); + _fx_free_T2N14C_form__ctyp_tLN19C_form__carg_attr_t(&v_189); if (copy_data_f_0) { _fx_free_N14C_form__cexp_t(©_data_f_0); } - _fx_free_T2BN14C_form__cexp_t(&v_180); - _fx_free_T2BNt6option1N14C_form__cexp_t(&v_179); + _fx_free_T2BN14C_form__cexp_t(&v_188); + _fx_free_T2BNt6option1N14C_form__cexp_t(&v_187); if (mkref_m_0) { _fx_free_N14C_form__cexp_t(&mkref_m_0); } - _fx_free_R17C_form__cdeffun_t(&v_178); - if (free_code_7) { - _fx_free_LN15C_form__cstmt_t(&free_code_7); + _fx_free_R17C_form__cdeffun_t(&v_186); + if (free_code_5) { + _fx_free_LN15C_form__cstmt_t(&free_code_5); } - if (v_177) { - _fx_free_N15C_form__cstmt_t(&v_177); + if (v_185) { + _fx_free_N15C_form__cstmt_t(&v_185); } - if (v_176) { - _fx_free_N14C_form__cexp_t(&v_176); + if (v_184) { + _fx_free_N14C_form__cexp_t(&v_184); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_175); - if (v_174) { - _fx_free_LN14C_form__cexp_t(&v_174); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_183); + if (v_182) { + _fx_free_LN14C_form__cexp_t(&v_182); } if (free_hd_f_1) { _fx_free_N14C_form__cexp_t(&free_hd_f_1); } - _fx_free_T2BNt6option1N14C_form__cexp_t(&v_173); + _fx_free_T2BNt6option1N14C_form__cexp_t(&v_181); if (tn_arg_1) { _fx_free_N14C_form__cexp_t(&tn_arg_1); } if (f_1) { _fx_free_N14C_form__cexp_t(&f_1); } - if (relems_6) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_6); + if (relems_5) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_5); } - if (v_172) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_172); + if (v_180) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_180); } - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_171); - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_170); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_179); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_178); if (ctyp_0) { _fx_free_N14C_form__ctyp_t(&ctyp_0); } @@ -12038,15 +11895,15 @@ _fx_endmatch_1: ; else if (tag_1 == 13) { _fx_LN14C_form__ctyp_t cargs_0 = 0; _fx_N14C_form__ctyp_t fp_ctyp_0 = 0; - _fx_N14C_form__ctyp_t v_225 = 0; + _fx_N14C_form__ctyp_t v_233 = 0; _fx_N14C_form__ctyp_t fv_ctyp_0 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_226 = {0}; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_227 = {0}; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_228 = 0; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_7 = 0; - _fx_N14C_form__ctyp_t v_229 = 0; - _fx_R17C_form__ctprops_t v_230 = {0}; - _fx_R17C_form__cdeftyp_t v_231 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_234 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_235 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_236 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_6 = 0; + _fx_N14C_form__ctyp_t v_237 = 0; + _fx_R17C_form__ctprops_t v_238 = {0}; + _fx_R17C_form__cdeftyp_t v_239 = {0}; _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t* vcase_0 = &kt_typ_0->u.KTypFun; FX_CALL( _fx_M11C_gen_typesFM15ktyp2ctyp_fargsLN14C_form__ctyp_t3LN14K_form__ktyp_tN14K_form__ktyp_tR10Ast__loc_t( @@ -12054,54 +11911,54 @@ _fx_endmatch_1: ; FX_CALL( _fx_M6C_formFM13CTypFunRawPtrN14C_form__ctyp_t2LN14C_form__ctyp_tN14C_form__ctyp_t(cargs_0, _fx_g21C_gen_types__CTypCInt, &fp_ctyp_0), _fx_catch_18); - _fx_R9Ast__id_t v_232; + _fx_R9Ast__id_t v_240; fx_str_t slit_28 = FX_MAKE_STR("fx_fcv_t"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_28, &v_232, 0), _fx_catch_18); - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_232, &v_225), _fx_catch_18); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_225, &fv_ctyp_0, 0), _fx_catch_18); - _fx_R9Ast__id_t v_233; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_28, &v_240, 0), _fx_catch_18); + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&v_240, &v_233), _fx_catch_18); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_233, &fv_ctyp_0, 0), _fx_catch_18); + _fx_R9Ast__id_t v_241; fx_str_t slit_29 = FX_MAKE_STR("fp"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_29, &v_233, 0), _fx_catch_18); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_233, fp_ctyp_0, &v_226); - _fx_R9Ast__id_t v_234; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_29, &v_241, 0), _fx_catch_18); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_241, fp_ctyp_0, &v_234); + _fx_R9Ast__id_t v_242; fx_str_t slit_30 = FX_MAKE_STR("fcv"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_30, &v_234, 0), _fx_catch_18); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_234, fv_ctyp_0, &v_227); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_227, 0, true, &v_228), _fx_catch_18); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_226, v_228, true, &relems_7), _fx_catch_18); - _fx_R17C_form__cdeftyp_t* v_235 = &struct_decl_0->data; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_30, &v_242, 0), _fx_catch_18); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_242, fv_ctyp_0, &v_235); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_235, 0, true, &v_236), _fx_catch_18); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_234, v_236, true, &relems_6), _fx_catch_18); + _fx_R17C_form__cdeftyp_t* v_243 = &struct_decl_0->data; FX_CALL( _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&struct_id_opt_1, - relems_7, &v_229), _fx_catch_18); - _fx_Ta2R9Ast__id_t v_236 = { _fx_g22C_form__std_FX_FREE_FP, _fx_g22C_form__std_fx_free_fp }; - _fx_Ta2R9Ast__id_t v_237 = { _fx_g22C_form__std_FX_COPY_FP, _fx_g22C_form__std_fx_copy_fp }; - _fx_make_R17C_form__ctprops_t(ct_props_0.ctp_scalar, ct_props_0.ctp_complex, false, true, ct_props_0.ctp_make, &v_236, - &v_237, &v_230); - _fx_make_R17C_form__cdeftyp_t(&v_235->ct_name, v_229, &v_235->ct_cname, &v_230, v_235->ct_data_start, &v_235->ct_enum, - v_235->ct_ifaces, &v_235->ct_ifaces_id, v_235->ct_scope, &v_235->ct_loc, &v_231); - _fx_R17C_form__cdeftyp_t* v_238 = &struct_decl_0->data; - _fx_free_R17C_form__cdeftyp_t(v_238); - _fx_copy_R17C_form__cdeftyp_t(&v_231, v_238); + relems_6, &v_237), _fx_catch_18); + _fx_Ta2R9Ast__id_t v_244 = { _fx_g22C_form__std_FX_FREE_FP, _fx_g22C_form__std_fx_free_fp }; + _fx_Ta2R9Ast__id_t v_245 = { _fx_g22C_form__std_FX_COPY_FP, _fx_g22C_form__std_fx_copy_fp }; + _fx_make_R17C_form__ctprops_t(ct_props_0.ctp_scalar, ct_props_0.ctp_complex, false, true, ct_props_0.ctp_make, &v_244, + &v_245, &v_238); + _fx_make_R17C_form__cdeftyp_t(&v_243->ct_name, v_237, &v_243->ct_cname, &v_238, v_243->ct_data_start, &v_243->ct_enum, + v_243->ct_ifaces, &v_243->ct_ifaces_id, v_243->ct_scope, &v_243->ct_loc, &v_239); + _fx_R17C_form__cdeftyp_t* v_246 = &struct_decl_0->data; + _fx_free_R17C_form__cdeftyp_t(v_246); + _fx_copy_R17C_form__cdeftyp_t(&v_239, v_246); _fx_catch_18: ; - _fx_free_R17C_form__cdeftyp_t(&v_231); - _fx_free_R17C_form__ctprops_t(&v_230); - if (v_229) { - _fx_free_N14C_form__ctyp_t(&v_229); + _fx_free_R17C_form__cdeftyp_t(&v_239); + _fx_free_R17C_form__ctprops_t(&v_238); + if (v_237) { + _fx_free_N14C_form__ctyp_t(&v_237); } - if (relems_7) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_7); + if (relems_6) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_6); } - if (v_228) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_228); + if (v_236) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_236); } - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_227); - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_226); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_235); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_234); if (fv_ctyp_0) { _fx_free_N14C_form__ctyp_t(&fv_ctyp_0); } - if (v_225) { - _fx_free_N14C_form__ctyp_t(&v_225); + if (v_233) { + _fx_free_N14C_form__ctyp_t(&v_233); } if (fp_ctyp_0) { _fx_free_N14C_form__ctyp_t(&fp_ctyp_0); @@ -12124,59 +11981,58 @@ _fx_endmatch_1: ; _fx_T2N14C_form__ctyp_tR10Ast__loc_t int_ctx_0 = {0}; _fx_T2N14C_form__ctyp_tR10Ast__loc_t void_ctx_0 = {0}; _fx_N14C_form__cexp_t dst_exp_1 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_239 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_247 = {0}; _fx_N14C_form__cexp_t src_tag_exp_0 = 0; _fx_N14C_form__cexp_t dst_tag_exp_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_240 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_248 = {0}; _fx_N14C_form__cexp_t src_u_exp_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_241 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_249 = {0}; _fx_N14C_form__cexp_t dst_u_exp_0 = 0; - _fx_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t - __fold_result___2 = {0}; - _fx_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t - v_242 = {0}; _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t free_cases_0 = 0; _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t copy_cases_0 = 0; _fx_LT2R9Ast__id_tN14C_form__ctyp_t uelems_0 = 0; - _fx_LN15C_form__cstmt_t free_code_8 = 0; - _fx_LN15C_form__cstmt_t free_code_9 = 0; - _fx_N14C_form__cexp_t v_243 = 0; + _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t free_cases_1 = 0; + _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t copy_cases_1 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t uelems_1 = 0; + _fx_LN15C_form__cstmt_t free_code_6 = 0; + _fx_LN15C_form__cstmt_t free_code_7 = 0; + _fx_N14C_form__cexp_t v_250 = 0; _fx_N14C_form__cexp_t clear_tag_0 = 0; - _fx_N15C_form__cstmt_t v_244 = 0; - _fx_LN15C_form__cstmt_t copy_code_6 = 0; - _fx_LN15C_form__cstmt_t copy_code_7 = 0; - _fx_N14C_form__cexp_t v_245 = 0; + _fx_N15C_form__cstmt_t v_251 = 0; + _fx_LN15C_form__cstmt_t copy_code_4 = 0; + _fx_LN15C_form__cstmt_t copy_code_5 = 0; + _fx_N14C_form__cexp_t v_252 = 0; _fx_N15C_form__cstmt_t default_copy_code_0 = 0; - _fx_N14C_form__cexp_t v_246 = 0; - _fx_N15C_form__cstmt_t v_247 = 0; + _fx_N14C_form__cexp_t v_253 = 0; + _fx_N15C_form__cstmt_t v_254 = 0; _fx_LN15C_form__cstmt_t default_copy_code_1 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_7 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_255 = 0; + _fx_N14C_form__ctyp_t v_256 = 0; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_257 = {0}; _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_8 = 0; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_248 = 0; - _fx_N14C_form__ctyp_t v_249 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_250 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_258 = {0}; _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_9 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_251 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_259 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_260 = {0}; _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_10 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_252 = {0}; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_253 = {0}; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_11 = 0; - _fx_N14C_form__ctyp_t v_254 = 0; - _fx_N14C_form__ctyp_t v_255 = 0; - _fx_R17C_form__cdeftyp_t v_256 = {0}; - _fx_N14C_form__ctyp_t v_257 = 0; - _fx_R17C_form__cdeftyp_t v_258 = {0}; + _fx_N14C_form__ctyp_t v_261 = 0; + _fx_N14C_form__ctyp_t v_262 = 0; + _fx_R17C_form__cdeftyp_t v_263 = {0}; + _fx_N14C_form__ctyp_t v_264 = 0; + _fx_R17C_form__cdeftyp_t v_265 = {0}; _fx_LR9Ast__id_t ct_ifaces_0 = 0; - _fx_R17C_form__cdeftyp_t v_259 = {0}; - _fx_LN15C_form__cstmt_t v_260 = 0; - _fx_R17C_form__cdeffun_t v_261 = {0}; - _fx_LN15C_form__cstmt_t v_262 = 0; - _fx_R17C_form__cdeffun_t v_263 = {0}; - _fx_R21K_form__kdefvariant_t* v_264 = &kt_info_0.u.KVariant->data; - _fx_R10Ast__loc_t kvar_loc_0 = v_264->kvar_loc; - _fx_R16Ast__var_flags_t kvar_flags_1 = v_264->kvar_flags; - FX_COPY_PTR(v_264->kvar_ifaces, &kvar_ifaces_0); - FX_COPY_PTR(v_264->kvar_cases, &kvar_cases_0); - fx_copy_str(&v_264->kvar_cname, &kvar_cname_0); + _fx_R17C_form__cdeftyp_t v_266 = {0}; + _fx_LN15C_form__cstmt_t v_267 = 0; + _fx_R17C_form__cdeffun_t v_268 = {0}; + _fx_LN15C_form__cstmt_t v_269 = 0; + _fx_R17C_form__cdeffun_t v_270 = {0}; + _fx_R21K_form__kdefvariant_t* v_271 = &kt_info_0.u.KVariant->data; + _fx_R10Ast__loc_t kvar_loc_0 = v_271->kvar_loc; + _fx_R16Ast__var_flags_t kvar_flags_1 = v_271->kvar_flags; + FX_COPY_PTR(v_271->kvar_ifaces, &kvar_ifaces_0); + FX_COPY_PTR(v_271->kvar_cases, &kvar_cases_0); + fx_copy_str(&v_271->kvar_cname, &kvar_cname_0); bool have_tag_0 = kvar_flags_1.var_flag_have_tag; _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g21C_gen_types__CTypCInt, &kvar_loc_0, &int_ctx_0); _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g21C_gen_types__CTypVoid, &kvar_loc_0, &void_ctx_0); @@ -12187,10 +12043,10 @@ _fx_endmatch_1: ; fx_str_t slit_32 = FX_MAKE_STR("u"); FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_32, &u_id_0, 0), _fx_catch_29); if (recursive_variant_0) { - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(struct_typ_0, &kvar_loc_0, &v_239); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(struct_typ_0, &kvar_loc_0, &v_247); FX_CALL( _fx_M6C_formFM9CExpUnaryN14C_form__cexp_t3N16C_form__cunary_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g21C_gen_types__COpDeref, dst_exp_0, &v_239, &dst_exp_1), _fx_catch_29); + &_fx_g21C_gen_types__COpDeref, dst_exp_0, &v_247, &dst_exp_1), _fx_catch_29); } else { FX_COPY_PTR(dst_exp_0, &dst_exp_1); @@ -12201,128 +12057,113 @@ _fx_endmatch_1: ; FX_CALL( _fx_M6C_formFM9CExpArrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(dst_exp_1, &tag_id_0, &int_ctx_0, &dst_tag_exp_0), _fx_catch_29); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_types__CTypAny, &kvar_loc_0, &v_240); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_types__CTypAny, &kvar_loc_0, &v_248); FX_CALL( _fx_M6C_formFM9CExpArrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(src_exp_0, - &u_id_0, &v_240, &src_u_exp_0), _fx_catch_29); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_types__CTypAny, &kvar_loc_0, &v_241); + &u_id_0, &v_248, &src_u_exp_0), _fx_catch_29); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(_fx_g20C_gen_types__CTypAny, &kvar_loc_0, &v_249); FX_CALL( _fx_M6C_formFM9CExpArrowN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(dst_exp_1, - &u_id_0, &v_241, &dst_u_exp_0), _fx_catch_29); - _fx_make_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - 0, 0, 0, &__fold_result___2); + &u_id_0, &v_249, &dst_u_exp_0), _fx_catch_29); int_ i_1 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_2 = kvar_cases_0; for (; lst_2; lst_2 = lst_2->tl, i_1 += 1) { _fx_N14K_form__ktyp_t kt_0 = 0; - _fx_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t - v_265 = {0}; - _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t free_cases_1 = 0; - _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t copy_cases_1 = 0; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t uelems_1 = 0; - _fx_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t - v_266 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___1 = &lst_2->hd; _fx_R9Ast__id_t ni_2 = __pat___1->t0; FX_COPY_PTR(__pat___1->t1, &kt_0); - _fx_copy_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - &__fold_result___2, &v_265); - FX_COPY_PTR(v_265.t0, &free_cases_1); - FX_COPY_PTR(v_265.t1, ©_cases_1); - FX_COPY_PTR(v_265.t2, &uelems_1); int_ label_i_0 = i_1 + 1; - if (FX_REC_VARIANT_TAG(kt_0) == 7) { - _fx_make_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - free_cases_1, copy_cases_1, uelems_1, &v_266); - } - else { + if (FX_REC_VARIANT_TAG(kt_0) != 7) { _fx_N14C_form__ctyp_t ti_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_267 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_272 = {0}; _fx_N14C_form__cexp_t selem_i_0 = 0; - _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_268 = {0}; + _fx_T2N14C_form__ctyp_tR10Ast__loc_t v_273 = {0}; _fx_N14C_form__cexp_t delem_i_0 = 0; - _fx_N14C_form__cexp_t v_269 = 0; + _fx_N14C_form__cexp_t v_274 = 0; _fx_LN14C_form__cexp_t switch_label_i_exps_0 = 0; _fx_LN15C_form__cstmt_t free_code_i_0 = 0; - _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t free_cases_2 = 0; + _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t v_275 = 0; _fx_LN15C_form__cstmt_t copy_code_i_0 = 0; - _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t copy_cases_2 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_270 = {0}; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_271 = 0; + _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t v_276 = 0; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_277 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_278 = 0; FX_CALL(_fx_M11C_gen_typesFM9ktyp2ctypN14C_form__ctyp_t2N14K_form__ktyp_tR10Ast__loc_t(kt_0, loc_0, &ti_0, 0), _fx_catch_22); _fx_R9Ast__id_t ni_clean_0; FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&ni_2, &ni_clean_0, 0), _fx_catch_22); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ti_0, &kvar_loc_0, &v_267); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ti_0, &kvar_loc_0, &v_272); FX_CALL( _fx_M6C_formFM7CExpMemN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(src_u_exp_0, - &ni_clean_0, &v_267, &selem_i_0), _fx_catch_22); - _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ti_0, &kvar_loc_0, &v_268); + &ni_clean_0, &v_272, &selem_i_0), _fx_catch_22); + _fx_make_T2N14C_form__ctyp_tR10Ast__loc_t(ti_0, &kvar_loc_0, &v_273); FX_CALL( _fx_M6C_formFM7CExpMemN14C_form__cexp_t3N14C_form__cexp_tR9Ast__id_tT2N14C_form__ctyp_tR10Ast__loc_t(dst_u_exp_0, - &ni_clean_0, &v_268, &delem_i_0), _fx_catch_22); - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(label_i_0, &kvar_loc_0, &v_269, 0), + &ni_clean_0, &v_273, &delem_i_0), _fx_catch_22); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(label_i_0, &kvar_loc_0, &v_274, 0), _fx_catch_22); - FX_CALL(_fx_cons_LN14C_form__cexp_t(v_269, 0, true, &switch_label_i_exps_0), _fx_catch_22); + FX_CALL(_fx_cons_LN14C_form__cexp_t(v_274, 0, true, &switch_label_i_exps_0), _fx_catch_22); FX_CALL( _fx_M11C_gen_typesFM13gen_free_codeLN15C_form__cstmt_t6N14C_form__cexp_tN14C_form__ctyp_tBBLN15C_form__cstmt_tR10Ast__loc_t( delem_i_0, ti_0, false, false, 0, &kvar_loc_0, &free_code_i_0, 0), _fx_catch_22); if (free_code_i_0 == 0) { - FX_COPY_PTR(free_cases_1, &free_cases_2); + FX_COPY_PTR(free_cases_0, &v_275); } else { - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_272 = {0}; - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(switch_label_i_exps_0, free_code_i_0, &v_272); - FX_CALL(_fx_cons_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_272, free_cases_1, true, &free_cases_2), - _fx_catch_20); + _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_279 = {0}; + _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(switch_label_i_exps_0, free_code_i_0, &v_279); + FX_CALL(_fx_cons_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_279, free_cases_0, true, &v_275), _fx_catch_20); _fx_catch_20: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_272); + _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_279); } FX_CHECK_EXN(_fx_catch_22); + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&free_cases_0); + FX_COPY_PTR(v_275, &free_cases_0); FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( selem_i_0, delem_i_0, ti_0, 0, &kvar_loc_0, ©_code_i_0, 0), _fx_catch_22); if (copy_code_i_0 != 0) { if (copy_code_i_0->tl == 0) { - _fx_N15C_form__cstmt_t v_273 = copy_code_i_0->hd; - if (FX_REC_VARIANT_TAG(v_273) == 3) { - _fx_N14C_form__cexp_t v_274 = v_273->u.CExp; - if (FX_REC_VARIANT_TAG(v_274) == 3) { - if (v_274->u.CExpBinary.t0.tag == 15) { - FX_COPY_PTR(copy_cases_1, ©_cases_2); goto _fx_endmatch_2; + _fx_N15C_form__cstmt_t v_280 = copy_code_i_0->hd; + if (FX_REC_VARIANT_TAG(v_280) == 3) { + _fx_N14C_form__cexp_t v_281 = v_280->u.CExp; + if (FX_REC_VARIANT_TAG(v_281) == 3) { + if (v_281->u.CExpBinary.t0.tag == 15) { + FX_COPY_PTR(copy_cases_0, &v_276); goto _fx_endmatch_2; } } } } } - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_275 = {0}; - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(switch_label_i_exps_0, copy_code_i_0, &v_275); - FX_CALL(_fx_cons_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_275, copy_cases_1, true, ©_cases_2), _fx_catch_21); + _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_282 = {0}; + _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(switch_label_i_exps_0, copy_code_i_0, &v_282); + FX_CALL(_fx_cons_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_282, copy_cases_0, true, &v_276), _fx_catch_21); _fx_catch_21: ; - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_275); + _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_282); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_22); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&ni_clean_0, ti_0, &v_270); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_270, uelems_1, true, &v_271), _fx_catch_22); - _fx_make_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - free_cases_2, copy_cases_2, v_271, &v_266); + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(©_cases_0); + FX_COPY_PTR(v_276, ©_cases_0); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&ni_clean_0, ti_0, &v_277); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_277, uelems_0, true, &v_278), _fx_catch_22); + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&uelems_0); + FX_COPY_PTR(v_278, &uelems_0); _fx_catch_22: ; - if (v_271) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_271); + if (v_278) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_278); } - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_270); - if (copy_cases_2) { - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(©_cases_2); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_277); + if (v_276) { + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_276); } if (copy_code_i_0) { _fx_free_LN15C_form__cstmt_t(©_code_i_0); } - if (free_cases_2) { - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&free_cases_2); + if (v_275) { + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_275); } if (free_code_i_0) { _fx_free_LN15C_form__cstmt_t(&free_code_i_0); @@ -12330,168 +12171,149 @@ _fx_endmatch_1: ; if (switch_label_i_exps_0) { _fx_free_LN14C_form__cexp_t(&switch_label_i_exps_0); } - if (v_269) { - _fx_free_N14C_form__cexp_t(&v_269); + if (v_274) { + _fx_free_N14C_form__cexp_t(&v_274); } if (delem_i_0) { _fx_free_N14C_form__cexp_t(&delem_i_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_268); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_273); if (selem_i_0) { _fx_free_N14C_form__cexp_t(&selem_i_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_267); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_272); if (ti_0) { _fx_free_N14C_form__ctyp_t(&ti_0); } } FX_CHECK_EXN(_fx_catch_23); - _fx_free_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - &__fold_result___2); - _fx_copy_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - &v_266, &__fold_result___2); _fx_catch_23: ; - _fx_free_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - &v_266); - if (uelems_1) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&uelems_1); - } - if (copy_cases_1) { - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(©_cases_1); - } - if (free_cases_1) { - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&free_cases_1); - } - _fx_free_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - &v_265); if (kt_0) { _fx_free_N14K_form__ktyp_t(&kt_0); } FX_CHECK_EXN(_fx_catch_29); } - _fx_copy_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - &__fold_result___2, &v_242); - FX_COPY_PTR(v_242.t0, &free_cases_0); - FX_COPY_PTR(v_242.t1, ©_cases_0); - FX_COPY_PTR(v_242.t2, &uelems_0); - if (free_cases_0 == 0) { + FX_COPY_PTR(free_cases_0, &free_cases_1); + FX_COPY_PTR(copy_cases_0, ©_cases_1); + FX_COPY_PTR(uelems_0, &uelems_1); + if (free_cases_1 == 0) { goto _fx_endmatch_3; } if (have_tag_0 == false) { - if (free_cases_0 != 0) { - fx_str_t v_276 = {0}; - fx_str_t v_277 = {0}; - fx_exn_t v_278 = {0}; - if (free_cases_0->tl != 0) { - FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&kvar_cname_0, &v_276, 0), _fx_catch_24); + if (free_cases_1 != 0) { + fx_str_t v_283 = {0}; + fx_str_t v_284 = {0}; + fx_exn_t v_285 = {0}; + if (free_cases_1->tl != 0) { + FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&kvar_cname_0, &v_283, 0), _fx_catch_24); fx_str_t slit_33 = FX_MAKE_STR("cgen: variant \'"); fx_str_t slit_34 = FX_MAKE_STR("\' with no tag somehow has multiple cases in the destructor"); { - const fx_str_t strs_12[] = { slit_33, v_276, slit_34 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_12, 3, &v_277), _fx_catch_24); + const fx_str_t strs_12[] = { slit_33, v_283, slit_34 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_12, 3, &v_284), _fx_catch_24); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kvar_loc_0, &v_277, &v_278, 0), _fx_catch_24); - FX_THROW(&v_278, false, _fx_catch_24); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kvar_loc_0, &v_284, &v_285, 0), _fx_catch_24); + FX_THROW(&v_285, false, _fx_catch_24); } - FX_COPY_PTR(free_cases_0->hd.t1, &free_code_8); + FX_COPY_PTR(free_cases_1->hd.t1, &free_code_6); _fx_catch_24: ; - fx_free_exn(&v_278); - FX_FREE_STR(&v_277); - FX_FREE_STR(&v_276); + fx_free_exn(&v_285); + FX_FREE_STR(&v_284); + FX_FREE_STR(&v_283); goto _fx_endmatch_3; } } - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_279 = {0}; - _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t free_cases_3 = 0; - _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t v_280 = 0; - _fx_N15C_form__cstmt_t v_281 = 0; - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, 0, &v_279); - FX_CALL(_fx_cons_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_279, free_cases_0, true, &free_cases_3), _fx_catch_25); + _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_286 = {0}; + _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t free_cases_2 = 0; + _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t v_287 = 0; + _fx_N15C_form__cstmt_t v_288 = 0; + _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, 0, &v_286); + FX_CALL(_fx_cons_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_286, free_cases_1, true, &free_cases_2), _fx_catch_25); FX_CALL( - _fx_M11C_gen_typesFM3revLT2LN14C_form__cexp_tLN15C_form__cstmt_t1LT2LN14C_form__cexp_tLN15C_form__cstmt_t(free_cases_3, - &v_280, 0), _fx_catch_25); + _fx_M11C_gen_typesFM3revLT2LN14C_form__cexp_tLN15C_form__cstmt_t1LT2LN14C_form__cexp_tLN15C_form__cstmt_t(free_cases_2, + &v_287, 0), _fx_catch_25); FX_CALL( _fx_M6C_formFM11CStmtSwitchN15C_form__cstmt_t3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - dst_tag_exp_0, v_280, &kvar_loc_0, &v_281), _fx_catch_25); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_281, 0, true, &free_code_8), _fx_catch_25); + dst_tag_exp_0, v_287, &kvar_loc_0, &v_288), _fx_catch_25); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_288, 0, true, &free_code_6), _fx_catch_25); _fx_catch_25: ; - if (v_281) { - _fx_free_N15C_form__cstmt_t(&v_281); + if (v_288) { + _fx_free_N15C_form__cstmt_t(&v_288); } - if (v_280) { - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_280); + if (v_287) { + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_287); } - if (free_cases_3) { - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&free_cases_3); + if (free_cases_2) { + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&free_cases_2); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_279); + _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_286); _fx_endmatch_3: ; FX_CHECK_EXN(_fx_catch_29); if (recursive_variant_0) { FX_CALL( _fx_M11C_gen_typesFM15decref_and_freeLN15C_form__cstmt_t3N14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - dst_exp_1, free_code_8, &kvar_loc_0, &free_code_9, 0), _fx_catch_29); + dst_exp_1, free_code_6, &kvar_loc_0, &free_code_7, 0), _fx_catch_29); } else if (have_tag_0) { - FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kvar_loc_0, &v_243, 0), _fx_catch_29); + FX_CALL(_fx_M6C_formFM12make_int_expN14C_form__cexp_t2iR10Ast__loc_t(0, &kvar_loc_0, &v_250, 0), _fx_catch_29); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g22C_gen_types__COpAssign, dst_tag_exp_0, v_243, &void_ctx_0, &clear_tag_0), _fx_catch_29); - if (free_code_8 != 0) { - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(clear_tag_0, &v_244), _fx_catch_29); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_244, free_code_8, true, &free_code_9), _fx_catch_29); + &_fx_g22C_gen_types__COpAssign, dst_tag_exp_0, v_250, &void_ctx_0, &clear_tag_0), _fx_catch_29); + if (free_code_6 != 0) { + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(clear_tag_0, &v_251), _fx_catch_29); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_251, free_code_6, true, &free_code_7), _fx_catch_29); } } else { - FX_COPY_PTR(free_code_8, &free_code_9); + FX_COPY_PTR(free_code_6, &free_code_7); } if (have_tag_0) { FX_CALL( _fx_M11C_gen_typesFM13gen_copy_codeLN15C_form__cstmt_t5N14C_form__cexp_tN14C_form__cexp_tN14C_form__ctyp_tLN15C_form__cstmt_tR10Ast__loc_t( - src_tag_exp_0, dst_tag_exp_0, _fx_g21C_gen_types__CTypCInt, 0, &kvar_loc_0, ©_code_7, 0), _fx_catch_29); + src_tag_exp_0, dst_tag_exp_0, _fx_g21C_gen_types__CTypCInt, 0, &kvar_loc_0, ©_code_5, 0), _fx_catch_29); FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g22C_gen_types__COpAssign, dst_u_exp_0, src_u_exp_0, &void_ctx_0, &v_245), _fx_catch_29); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_245, &default_copy_code_0), _fx_catch_29); - if (copy_cases_0 == 0) { - FX_CALL(_fx_cons_LN15C_form__cstmt_t(default_copy_code_0, copy_code_7, true, ©_code_6), _fx_catch_26); + &_fx_g22C_gen_types__COpAssign, dst_u_exp_0, src_u_exp_0, &void_ctx_0, &v_252), _fx_catch_29); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_252, &default_copy_code_0), _fx_catch_29); + if (copy_cases_1 == 0) { + FX_CALL(_fx_cons_LN15C_form__cstmt_t(default_copy_code_0, copy_code_5, true, ©_code_4), _fx_catch_26); _fx_catch_26: ; } else { - _fx_LN15C_form__cstmt_t v_282 = 0; - _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_283 = {0}; - _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t copy_cases_3 = 0; - _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t v_284 = 0; - _fx_N15C_form__cstmt_t v_285 = 0; - FX_CALL(_fx_cons_LN15C_form__cstmt_t(default_copy_code_0, 0, true, &v_282), _fx_catch_27); - _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, v_282, &v_283); - FX_CALL(_fx_cons_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_283, copy_cases_0, true, ©_cases_3), _fx_catch_27); + _fx_LN15C_form__cstmt_t v_289 = 0; + _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t v_290 = {0}; + _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t copy_cases_2 = 0; + _fx_LT2LN14C_form__cexp_tLN15C_form__cstmt_t v_291 = 0; + _fx_N15C_form__cstmt_t v_292 = 0; + FX_CALL(_fx_cons_LN15C_form__cstmt_t(default_copy_code_0, 0, true, &v_289), _fx_catch_27); + _fx_make_T2LN14C_form__cexp_tLN15C_form__cstmt_t(0, v_289, &v_290); + FX_CALL(_fx_cons_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_290, copy_cases_1, true, ©_cases_2), _fx_catch_27); FX_CALL( _fx_M11C_gen_typesFM3revLT2LN14C_form__cexp_tLN15C_form__cstmt_t1LT2LN14C_form__cexp_tLN15C_form__cstmt_t( - copy_cases_3, &v_284, 0), _fx_catch_27); + copy_cases_2, &v_291, 0), _fx_catch_27); FX_CALL( _fx_M6C_formFM11CStmtSwitchN15C_form__cstmt_t3N14C_form__cexp_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tR10Ast__loc_t( - src_tag_exp_0, v_284, &kvar_loc_0, &v_285), _fx_catch_27); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_285, copy_code_7, true, ©_code_6), _fx_catch_27); + src_tag_exp_0, v_291, &kvar_loc_0, &v_292), _fx_catch_27); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_292, copy_code_5, true, ©_code_4), _fx_catch_27); _fx_catch_27: ; - if (v_285) { - _fx_free_N15C_form__cstmt_t(&v_285); + if (v_292) { + _fx_free_N15C_form__cstmt_t(&v_292); } - if (v_284) { - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_284); + if (v_291) { + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_291); } - if (copy_cases_3) { - _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(©_cases_3); + if (copy_cases_2) { + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(©_cases_2); } - _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_283); - if (v_282) { - _fx_free_LN15C_form__cstmt_t(&v_282); + _fx_free_T2LN14C_form__cexp_tLN15C_form__cstmt_t(&v_290); + if (v_289) { + _fx_free_LN15C_form__cstmt_t(&v_289); } } FX_CHECK_EXN(_fx_catch_29); @@ -12499,72 +12321,72 @@ _fx_endmatch_1: ; else { FX_CALL( _fx_M6C_formFM10CExpBinaryN14C_form__cexp_t4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t( - &_fx_g22C_gen_types__COpAssign, dst_u_exp_0, src_u_exp_0, &void_ctx_0, &v_246), _fx_catch_29); - FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_246, &v_247), _fx_catch_29); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_247, 0, true, &default_copy_code_1), _fx_catch_29); - if (copy_cases_0 != 0) { - if (copy_cases_0->tl == 0) { - FX_COPY_PTR(copy_cases_0->hd.t1, ©_code_6); goto _fx_endmatch_4; + &_fx_g22C_gen_types__COpAssign, dst_u_exp_0, src_u_exp_0, &void_ctx_0, &v_253), _fx_catch_29); + FX_CALL(_fx_M6C_formFM4CExpN15C_form__cstmt_t1N14C_form__cexp_t(v_253, &v_254), _fx_catch_29); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_254, 0, true, &default_copy_code_1), _fx_catch_29); + if (copy_cases_1 != 0) { + if (copy_cases_1->tl == 0) { + FX_COPY_PTR(copy_cases_1->hd.t1, ©_code_4); goto _fx_endmatch_4; } } - FX_COPY_PTR(default_copy_code_1, ©_code_6); + FX_COPY_PTR(default_copy_code_1, ©_code_4); _fx_endmatch_4: ; FX_CHECK_EXN(_fx_catch_29); } - if (uelems_0 != 0) { - FX_CALL(_fx_M11C_gen_typesFM3revLT2R9Ast__id_tN14C_form__ctyp_t1LT2R9Ast__id_tN14C_form__ctyp_t(uelems_0, &v_248, 0), + if (uelems_1 != 0) { + FX_CALL(_fx_M11C_gen_typesFM3revLT2R9Ast__id_tN14C_form__ctyp_t1LT2R9Ast__id_tN14C_form__ctyp_t(uelems_1, &v_255, 0), _fx_catch_29); FX_CALL( _fx_M6C_formFM9CTypUnionN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t( - &_fx_g19C_gen_types__None5_, v_248, &v_249), _fx_catch_29); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&u_id_0, v_249, &v_250); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_250, 0, true, &relems_8), _fx_catch_29); + &_fx_g19C_gen_types__None5_, v_255, &v_256), _fx_catch_29); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&u_id_0, v_256, &v_257); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_257, 0, true, &relems_7), _fx_catch_29); } if (have_tag_0) { - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&tag_id_0, _fx_g21C_gen_types__CTypCInt, &v_251); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_251, relems_8, true, &relems_9), _fx_catch_29); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&tag_id_0, _fx_g21C_gen_types__CTypCInt, &v_258); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_258, relems_7, true, &relems_8), _fx_catch_29); } else { - FX_COPY_PTR(relems_8, &relems_9); + FX_COPY_PTR(relems_7, &relems_8); } if (recursive_variant_0) { if (kvar_ifaces_0 == 0) { - FX_COPY_PTR(relems_9, &relems_10); + FX_COPY_PTR(relems_8, &relems_9); } else { - _fx_R9Ast__id_t v_286; + _fx_R9Ast__id_t v_293; fx_str_t slit_35 = FX_MAKE_STR("ifaces"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_35, &v_286, 0), _fx_catch_29); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_286, _fx_g28C_form__std_fx_ifaces_t_cptr, &v_252); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_252, relems_9, true, &relems_10), _fx_catch_29); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_35, &v_293, 0), _fx_catch_29); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_293, _fx_g28C_form__std_fx_ifaces_t_cptr, &v_259); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_259, relems_8, true, &relems_9), _fx_catch_29); } - _fx_R9Ast__id_t v_287; + _fx_R9Ast__id_t v_294; fx_str_t slit_36 = FX_MAKE_STR("rc"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_36, &v_287, 0), _fx_catch_29); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_287, _fx_g20C_gen_types__CTypInt, &v_253); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_253, relems_10, true, &relems_11), _fx_catch_29); - _fx_R17C_form__cdeftyp_t* v_288 = &struct_decl_0->data; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_36, &v_294, 0), _fx_catch_29); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_294, _fx_g20C_gen_types__CTypInt, &v_260); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_260, relems_9, true, &relems_10), _fx_catch_29); + _fx_R17C_form__cdeftyp_t* v_295 = &struct_decl_0->data; FX_CALL( _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&struct_id_opt_1, - relems_11, &v_254), _fx_catch_29); - FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_254, &v_255, 0), _fx_catch_29); - _fx_make_R17C_form__cdeftyp_t(&v_288->ct_name, v_255, &v_288->ct_cname, &v_288->ct_props, v_288->ct_data_start, - &v_288->ct_enum, v_288->ct_ifaces, &v_288->ct_ifaces_id, v_288->ct_scope, &v_288->ct_loc, &v_256); - _fx_R17C_form__cdeftyp_t* v_289 = &struct_decl_0->data; - _fx_free_R17C_form__cdeftyp_t(v_289); - _fx_copy_R17C_form__cdeftyp_t(&v_256, v_289); + relems_10, &v_261), _fx_catch_29); + FX_CALL(_fx_M6C_formFM8make_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_261, &v_262, 0), _fx_catch_29); + _fx_make_R17C_form__cdeftyp_t(&v_295->ct_name, v_262, &v_295->ct_cname, &v_295->ct_props, v_295->ct_data_start, + &v_295->ct_enum, v_295->ct_ifaces, &v_295->ct_ifaces_id, v_295->ct_scope, &v_295->ct_loc, &v_263); + _fx_R17C_form__cdeftyp_t* v_296 = &struct_decl_0->data; + _fx_free_R17C_form__cdeftyp_t(v_296); + _fx_copy_R17C_form__cdeftyp_t(&v_263, v_296); } else { - _fx_R17C_form__cdeftyp_t* v_290 = &struct_decl_0->data; + _fx_R17C_form__cdeftyp_t* v_297 = &struct_decl_0->data; FX_CALL( _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&struct_id_opt_1, - relems_9, &v_257), _fx_catch_29); - _fx_make_R17C_form__cdeftyp_t(&v_290->ct_name, v_257, &v_290->ct_cname, &v_290->ct_props, v_290->ct_data_start, - &v_290->ct_enum, v_290->ct_ifaces, &v_290->ct_ifaces_id, v_290->ct_scope, &v_290->ct_loc, &v_258); - _fx_R17C_form__cdeftyp_t* v_291 = &struct_decl_0->data; - _fx_free_R17C_form__cdeftyp_t(v_291); - _fx_copy_R17C_form__cdeftyp_t(&v_258, v_291); + relems_8, &v_264), _fx_catch_29); + _fx_make_R17C_form__cdeftyp_t(&v_297->ct_name, v_264, &v_297->ct_cname, &v_297->ct_props, v_297->ct_data_start, + &v_297->ct_enum, v_297->ct_ifaces, &v_297->ct_ifaces_id, v_297->ct_scope, &v_297->ct_loc, &v_265); + _fx_R17C_form__cdeftyp_t* v_298 = &struct_decl_0->data; + _fx_free_R17C_form__cdeftyp_t(v_298); + _fx_copy_R17C_form__cdeftyp_t(&v_265, v_298); } _fx_LR9Ast__id_t lstend_0 = 0; _fx_LT2R9Ast__id_tLR9Ast__id_t lst_3 = kvar_ifaces_0; @@ -12577,106 +12399,115 @@ _fx_endmatch_1: ; _fx_catch_28: ; FX_CHECK_EXN(_fx_catch_29); } - _fx_R17C_form__cdeftyp_t* v_292 = &struct_decl_0->data; - _fx_make_R17C_form__cdeftyp_t(&v_292->ct_name, v_292->ct_typ, &v_292->ct_cname, &v_292->ct_props, v_292->ct_data_start, - &_fx_g9Ast__noid, ct_ifaces_0, &v_292->ct_ifaces_id, v_292->ct_scope, &v_292->ct_loc, &v_259); - _fx_R17C_form__cdeftyp_t* v_293 = &struct_decl_0->data; - _fx_free_R17C_form__cdeftyp_t(v_293); - _fx_copy_R17C_form__cdeftyp_t(&v_259, v_293); - _fx_R17C_form__cdeffun_t* v_294 = &freef_decl_0->data; - FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(free_code_9, &v_260, 0), _fx_catch_29); - _fx_make_R17C_form__cdeffun_t(&v_294->cf_name, &v_294->cf_cname, v_294->cf_args, v_294->cf_rt, v_260, &v_294->cf_flags, - v_294->cf_scope, &v_294->cf_loc, &v_261); - _fx_R17C_form__cdeffun_t* v_295 = &freef_decl_0->data; - _fx_free_R17C_form__cdeffun_t(v_295); - _fx_copy_R17C_form__cdeffun_t(&v_261, v_295); - _fx_R17C_form__cdeffun_t* v_296 = ©f_decl_0->data; - FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(copy_code_6, &v_262, 0), _fx_catch_29); - _fx_make_R17C_form__cdeffun_t(&v_296->cf_name, &v_296->cf_cname, v_296->cf_args, v_296->cf_rt, v_262, &v_296->cf_flags, - v_296->cf_scope, &v_296->cf_loc, &v_263); - _fx_R17C_form__cdeffun_t* v_297 = ©f_decl_0->data; - _fx_free_R17C_form__cdeffun_t(v_297); - _fx_copy_R17C_form__cdeffun_t(&v_263, v_297); + _fx_R17C_form__cdeftyp_t* v_299 = &struct_decl_0->data; + _fx_make_R17C_form__cdeftyp_t(&v_299->ct_name, v_299->ct_typ, &v_299->ct_cname, &v_299->ct_props, v_299->ct_data_start, + &_fx_g9Ast__noid, ct_ifaces_0, &v_299->ct_ifaces_id, v_299->ct_scope, &v_299->ct_loc, &v_266); + _fx_R17C_form__cdeftyp_t* v_300 = &struct_decl_0->data; + _fx_free_R17C_form__cdeftyp_t(v_300); + _fx_copy_R17C_form__cdeftyp_t(&v_266, v_300); + _fx_R17C_form__cdeffun_t* v_301 = &freef_decl_0->data; + FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(free_code_7, &v_267, 0), _fx_catch_29); + _fx_make_R17C_form__cdeffun_t(&v_301->cf_name, &v_301->cf_cname, v_301->cf_args, v_301->cf_rt, v_267, &v_301->cf_flags, + v_301->cf_scope, &v_301->cf_loc, &v_268); + _fx_R17C_form__cdeffun_t* v_302 = &freef_decl_0->data; + _fx_free_R17C_form__cdeffun_t(v_302); + _fx_copy_R17C_form__cdeffun_t(&v_268, v_302); + _fx_R17C_form__cdeffun_t* v_303 = ©f_decl_0->data; + FX_CALL(_fx_M11C_gen_typesFM3revLN15C_form__cstmt_t1LN15C_form__cstmt_t(copy_code_4, &v_269, 0), _fx_catch_29); + _fx_make_R17C_form__cdeffun_t(&v_303->cf_name, &v_303->cf_cname, v_303->cf_args, v_303->cf_rt, v_269, &v_303->cf_flags, + v_303->cf_scope, &v_303->cf_loc, &v_270); + _fx_R17C_form__cdeffun_t* v_304 = ©f_decl_0->data; + _fx_free_R17C_form__cdeffun_t(v_304); + _fx_copy_R17C_form__cdeffun_t(&v_270, v_304); _fx_catch_29: ; - _fx_free_R17C_form__cdeffun_t(&v_263); - if (v_262) { - _fx_free_LN15C_form__cstmt_t(&v_262); + _fx_free_R17C_form__cdeffun_t(&v_270); + if (v_269) { + _fx_free_LN15C_form__cstmt_t(&v_269); } - _fx_free_R17C_form__cdeffun_t(&v_261); - if (v_260) { - _fx_free_LN15C_form__cstmt_t(&v_260); + _fx_free_R17C_form__cdeffun_t(&v_268); + if (v_267) { + _fx_free_LN15C_form__cstmt_t(&v_267); } - _fx_free_R17C_form__cdeftyp_t(&v_259); + _fx_free_R17C_form__cdeftyp_t(&v_266); FX_FREE_LIST_SIMPLE(&ct_ifaces_0); - _fx_free_R17C_form__cdeftyp_t(&v_258); - if (v_257) { - _fx_free_N14C_form__ctyp_t(&v_257); + _fx_free_R17C_form__cdeftyp_t(&v_265); + if (v_264) { + _fx_free_N14C_form__ctyp_t(&v_264); } - _fx_free_R17C_form__cdeftyp_t(&v_256); - if (v_255) { - _fx_free_N14C_form__ctyp_t(&v_255); + _fx_free_R17C_form__cdeftyp_t(&v_263); + if (v_262) { + _fx_free_N14C_form__ctyp_t(&v_262); } - if (v_254) { - _fx_free_N14C_form__ctyp_t(&v_254); + if (v_261) { + _fx_free_N14C_form__ctyp_t(&v_261); } - if (relems_11) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_11); - } - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_253); - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_252); if (relems_10) { _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_10); } - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_251); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_260); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_259); if (relems_9) { _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_9); } - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_250); - if (v_249) { - _fx_free_N14C_form__ctyp_t(&v_249); - } - if (v_248) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_248); - } + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_258); if (relems_8) { _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_8); } + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_257); + if (v_256) { + _fx_free_N14C_form__ctyp_t(&v_256); + } + if (v_255) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_255); + } + if (relems_7) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_7); + } if (default_copy_code_1) { _fx_free_LN15C_form__cstmt_t(&default_copy_code_1); } - if (v_247) { - _fx_free_N15C_form__cstmt_t(&v_247); + if (v_254) { + _fx_free_N15C_form__cstmt_t(&v_254); } - if (v_246) { - _fx_free_N14C_form__cexp_t(&v_246); + if (v_253) { + _fx_free_N14C_form__cexp_t(&v_253); } if (default_copy_code_0) { _fx_free_N15C_form__cstmt_t(&default_copy_code_0); } - if (v_245) { - _fx_free_N14C_form__cexp_t(&v_245); + if (v_252) { + _fx_free_N14C_form__cexp_t(&v_252); } - if (copy_code_7) { - _fx_free_LN15C_form__cstmt_t(©_code_7); + if (copy_code_5) { + _fx_free_LN15C_form__cstmt_t(©_code_5); } - if (copy_code_6) { - _fx_free_LN15C_form__cstmt_t(©_code_6); + if (copy_code_4) { + _fx_free_LN15C_form__cstmt_t(©_code_4); } - if (v_244) { - _fx_free_N15C_form__cstmt_t(&v_244); + if (v_251) { + _fx_free_N15C_form__cstmt_t(&v_251); } if (clear_tag_0) { _fx_free_N14C_form__cexp_t(&clear_tag_0); } - if (v_243) { - _fx_free_N14C_form__cexp_t(&v_243); + if (v_250) { + _fx_free_N14C_form__cexp_t(&v_250); } - if (free_code_9) { - _fx_free_LN15C_form__cstmt_t(&free_code_9); + if (free_code_7) { + _fx_free_LN15C_form__cstmt_t(&free_code_7); } - if (free_code_8) { - _fx_free_LN15C_form__cstmt_t(&free_code_8); + if (free_code_6) { + _fx_free_LN15C_form__cstmt_t(&free_code_6); + } + if (uelems_1) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&uelems_1); + } + if (copy_cases_1) { + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(©_cases_1); + } + if (free_cases_1) { + _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&free_cases_1); } if (uelems_0) { _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&uelems_0); @@ -12687,25 +12518,21 @@ _fx_endmatch_1: ; if (free_cases_0) { _fx_free_LT2LN14C_form__cexp_tLN15C_form__cstmt_t(&free_cases_0); } - _fx_free_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - &v_242); - _fx_free_T3LT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2LN14C_form__cexp_tLN15C_form__cstmt_tLT2R9Ast__id_tN14C_form__ctyp_t( - &__fold_result___2); if (dst_u_exp_0) { _fx_free_N14C_form__cexp_t(&dst_u_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_241); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_249); if (src_u_exp_0) { _fx_free_N14C_form__cexp_t(&src_u_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_240); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_248); if (dst_tag_exp_0) { _fx_free_N14C_form__cexp_t(&dst_tag_exp_0); } if (src_tag_exp_0) { _fx_free_N14C_form__cexp_t(&src_tag_exp_0); } - _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_239); + _fx_free_T2N14C_form__ctyp_tR10Ast__loc_t(&v_247); if (dst_exp_1) { _fx_free_N14C_form__cexp_t(&dst_exp_1); } @@ -12723,68 +12550,68 @@ _fx_endmatch_1: ; _fx_LN12Ast__scope_t ki_scope_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t ki_all_methods_0 = 0; fx_str_t ki_cname_0 = {0}; - fx_str_t v_298 = {0}; - fx_str_t v_299 = {0}; - fx_str_t v_300 = {0}; + fx_str_t v_305 = {0}; + fx_str_t v_306 = {0}; + fx_str_t v_307 = {0}; fx_str_t vtbl_cname_0 = {0}; - _fx_R23C_form__cdefinterface_t v_301 = {0}; + _fx_R23C_form__cdefinterface_t v_308 = {0}; _fx_rR23C_form__cdefinterface_t iface_decl_0 = 0; - _fx_N15C_form__cinfo_t v_302 = {0}; + _fx_N15C_form__cinfo_t v_309 = {0}; _fx_LT2R9Ast__id_tN14C_form__ctyp_t vtbl_elems_0 = 0; _fx_R17C_form__ctprops_t ctp_0 = {0}; - _fx_N14C_form__ctyp_t v_303 = 0; - _fx_N14C_form__ctyp_t v_304 = 0; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_305 = {0}; - _fx_T2R9Ast__id_tN14C_form__ctyp_t v_306 = {0}; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_307 = 0; - _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_12 = 0; - _fx_N15C_form__cstmt_t v_308 = 0; - _fx_N14C_form__ctyp_t v_309 = 0; - _fx_R17C_form__ctprops_t v_310 = {0}; - _fx_R17C_form__cdeftyp_t v_311 = {0}; - _fx_rR17C_form__cdeftyp_t vtbl_decl_0 = 0; - _fx_N15C_form__cinfo_t v_312 = {0}; - _fx_N15C_form__cstmt_t v_313 = 0; - _fx_N15C_form__cstmt_t v_314 = 0; - _fx_LN15C_form__cstmt_t v_315 = 0; + _fx_N14C_form__ctyp_t v_310 = 0; + _fx_N14C_form__ctyp_t v_311 = 0; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_312 = {0}; + _fx_T2R9Ast__id_tN14C_form__ctyp_t v_313 = {0}; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t v_314 = 0; + _fx_LT2R9Ast__id_tN14C_form__ctyp_t relems_11 = 0; + _fx_N15C_form__cstmt_t v_315 = 0; _fx_N14C_form__ctyp_t v_316 = 0; - _fx_R17C_form__cdeftyp_t v_317 = {0}; - _fx_R23C_form__cdefinterface_t v_318 = {0}; - _fx_R23K_form__kdefinterface_t* v_319 = &kt_info_0.u.KInterface->data; - _fx_R10Ast__loc_t ki_loc_0 = v_319->ki_loc; - FX_COPY_PTR(v_319->ki_scope, &ki_scope_0); - FX_COPY_PTR(v_319->ki_all_methods, &ki_all_methods_0); - _fx_R9Ast__id_t ki_id_0 = v_319->ki_id; - _fx_R9Ast__id_t ki_base_0 = v_319->ki_base; - fx_copy_str(&v_319->ki_cname, &ki_cname_0); - _fx_R9Ast__id_t ki_name_0 = v_319->ki_name; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ki_name_0, &v_298, 0), _fx_catch_32); + _fx_R17C_form__ctprops_t v_317 = {0}; + _fx_R17C_form__cdeftyp_t v_318 = {0}; + _fx_rR17C_form__cdeftyp_t vtbl_decl_0 = 0; + _fx_N15C_form__cinfo_t v_319 = {0}; + _fx_N15C_form__cstmt_t v_320 = 0; + _fx_N15C_form__cstmt_t v_321 = 0; + _fx_LN15C_form__cstmt_t v_322 = 0; + _fx_N14C_form__ctyp_t v_323 = 0; + _fx_R17C_form__cdeftyp_t v_324 = {0}; + _fx_R23C_form__cdefinterface_t v_325 = {0}; + _fx_R23K_form__kdefinterface_t* v_326 = &kt_info_0.u.KInterface->data; + _fx_R10Ast__loc_t ki_loc_0 = v_326->ki_loc; + FX_COPY_PTR(v_326->ki_scope, &ki_scope_0); + FX_COPY_PTR(v_326->ki_all_methods, &ki_all_methods_0); + _fx_R9Ast__id_t ki_id_0 = v_326->ki_id; + _fx_R9Ast__id_t ki_base_0 = v_326->ki_base; + fx_copy_str(&v_326->ki_cname, &ki_cname_0); + _fx_R9Ast__id_t ki_name_0 = v_326->ki_name; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ki_name_0, &v_305, 0), _fx_catch_32); fx_str_t slit_37 = FX_MAKE_STR("_vtbl_t"); { - const fx_str_t strs_13[] = { v_298, slit_37 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_13, 2, &v_299), _fx_catch_32); + const fx_str_t strs_13[] = { v_305, slit_37 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_13, 2, &v_306), _fx_catch_32); } _fx_R9Ast__id_t vtbl_id_0; - FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(*curr_cm_idx_0, &v_299, &vtbl_id_0, 0), _fx_catch_32); - FX_CALL(_fx_M8K_mangleFM9remove_fxS1S(&ki_cname_0, &v_300, 0), _fx_catch_32); + FX_CALL(_fx_M6C_formFM7gen_idcR9Ast__id_t2iS(*curr_cm_idx_0, &v_306, &vtbl_id_0, 0), _fx_catch_32); + FX_CALL(_fx_M8K_mangleFM9remove_fxS1S(&ki_cname_0, &v_307, 0), _fx_catch_32); fx_str_t slit_38 = FX_MAKE_STR("_vtbl_t"); { - const fx_str_t strs_14[] = { v_300, slit_38 }; + const fx_str_t strs_14[] = { v_307, slit_38 }; FX_CALL(fx_strjoin(0, 0, 0, strs_14, 2, &vtbl_cname_0), _fx_catch_32); } _fx_make_R23C_form__cdefinterface_t(&ki_name_0, &ki_cname_0, &ki_id_0, &vtbl_id_0, &ki_base_0, 0, ki_scope_0, &ki_loc_0, - &v_301); - FX_CALL(_fx_make_rR23C_form__cdefinterface_t(&v_301, &iface_decl_0), _fx_catch_32); - _fx_M6C_formFM10CInterfaceN15C_form__cinfo_t1rRM15cdefinterface_t(iface_decl_0, &v_302); - FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&ki_name_0, &v_302, 0), _fx_catch_32); + &v_308); + FX_CALL(_fx_make_rR23C_form__cdefinterface_t(&v_308, &iface_decl_0), _fx_catch_32); + _fx_M6C_formFM10CInterfaceN15C_form__cinfo_t1rRM15cdefinterface_t(iface_decl_0, &v_309); + FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&ki_name_0, &v_309, 0), _fx_catch_32); _fx_LT2R9Ast__id_tN14C_form__ctyp_t lstend_1 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_4 = ki_all_methods_0; for (; lst_4; lst_4 = lst_4->tl) { _fx_N14K_form__ktyp_t t_0 = 0; - _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t v_320 = {0}; + _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t v_327 = {0}; _fx_LN14K_form__ktyp_t args_0 = 0; _fx_N14K_form__ktyp_t rt_0 = 0; - _fx_LN14C_form__ctyp_t v_321 = 0; + _fx_LN14C_form__ctyp_t v_328 = 0; _fx_LN14C_form__ctyp_t cargs_1 = 0; _fx_N14C_form__ctyp_t ctyp_1 = 0; _fx_T2R9Ast__id_tN14C_form__ctyp_t tup_4 = {0}; @@ -12795,47 +12622,47 @@ _fx_endmatch_1: ; FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&f_2, &f_3, 0), _fx_catch_31); if (FX_REC_VARIANT_TAG(t_0) == 13) { _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t* vcase_1 = &t_0->u.KTypFun; - _fx_make_T2LN14K_form__ktyp_tN14K_form__ktyp_t(vcase_1->t0, vcase_1->t1, &v_320); + _fx_make_T2LN14K_form__ktyp_tN14K_form__ktyp_t(vcase_1->t0, vcase_1->t1, &v_327); } else { - fx_str_t v_322 = {0}; - fx_str_t v_323 = {0}; - fx_str_t v_324 = {0}; - fx_str_t v_325 = {0}; - fx_str_t v_326 = {0}; - fx_str_t v_327 = {0}; - fx_exn_t v_328 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ki_name_0, &v_322, 0), _fx_catch_30); - FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_322, &v_323, 0), _fx_catch_30); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&f_3, &v_324, 0), _fx_catch_30); - FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_324, &v_325, 0), _fx_catch_30); - FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(t_0, &v_326, 0), _fx_catch_30); + fx_str_t v_329 = {0}; + fx_str_t v_330 = {0}; + fx_str_t v_331 = {0}; + fx_str_t v_332 = {0}; + fx_str_t v_333 = {0}; + fx_str_t v_334 = {0}; + fx_exn_t v_335 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ki_name_0, &v_329, 0), _fx_catch_30); + FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_329, &v_330, 0), _fx_catch_30); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&f_3, &v_331, 0), _fx_catch_30); + FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_331, &v_332, 0), _fx_catch_30); + FX_CALL(_fx_M6K_formFM6stringS1N14K_form__ktyp_t(t_0, &v_333, 0), _fx_catch_30); fx_str_t slit_39 = FX_MAKE_STR("cgen: method "); fx_str_t slit_40 = FX_MAKE_STR("."); fx_str_t slit_41 = FX_MAKE_STR(" has non-function type "); { - const fx_str_t strs_15[] = { slit_39, v_323, slit_40, v_325, slit_41, v_326 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_15, 6, &v_327), _fx_catch_30); + const fx_str_t strs_15[] = { slit_39, v_330, slit_40, v_332, slit_41, v_333 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_15, 6, &v_334), _fx_catch_30); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&ki_loc_0, &v_327, &v_328, 0), _fx_catch_30); - FX_THROW(&v_328, false, _fx_catch_30); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&ki_loc_0, &v_334, &v_335, 0), _fx_catch_30); + FX_THROW(&v_335, false, _fx_catch_30); _fx_catch_30: ; - fx_free_exn(&v_328); - FX_FREE_STR(&v_327); - FX_FREE_STR(&v_326); - FX_FREE_STR(&v_325); - FX_FREE_STR(&v_324); - FX_FREE_STR(&v_323); - FX_FREE_STR(&v_322); + fx_free_exn(&v_335); + FX_FREE_STR(&v_334); + FX_FREE_STR(&v_333); + FX_FREE_STR(&v_332); + FX_FREE_STR(&v_331); + FX_FREE_STR(&v_330); + FX_FREE_STR(&v_329); } FX_CHECK_EXN(_fx_catch_31); - FX_COPY_PTR(v_320.t0, &args_0); - FX_COPY_PTR(v_320.t1, &rt_0); + FX_COPY_PTR(v_327.t0, &args_0); + FX_COPY_PTR(v_327.t1, &rt_0); FX_CALL( _fx_M11C_gen_typesFM15ktyp2ctyp_fargsLN14C_form__ctyp_t3LN14K_form__ktyp_tN14K_form__ktyp_tR10Ast__loc_t(args_0, - rt_0, loc_0, &v_321, 0), _fx_catch_31); - FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, v_321, true, &cargs_1), _fx_catch_31); + rt_0, loc_0, &v_328, 0), _fx_catch_31); + FX_CALL(_fx_cons_LN14C_form__ctyp_t(_fx_g23C_form__std_CTypVoidPtr, v_328, true, &cargs_1), _fx_catch_31); FX_CALL( _fx_M6C_formFM13CTypFunRawPtrN14C_form__ctyp_t2LN14C_form__ctyp_tN14C_form__ctyp_t(cargs_1, _fx_g21C_gen_types__CTypCInt, &ctyp_1), _fx_catch_31); @@ -12852,8 +12679,8 @@ _fx_endmatch_1: ; if (cargs_1) { _fx_free_LN14C_form__ctyp_t(&cargs_1); } - if (v_321) { - _fx_free_LN14C_form__ctyp_t(&v_321); + if (v_328) { + _fx_free_LN14C_form__ctyp_t(&v_328); } if (rt_0) { _fx_free_N14K_form__ktyp_t(&rt_0); @@ -12861,125 +12688,125 @@ _fx_endmatch_1: ; if (args_0) { _fx_free_LN14K_form__ktyp_t(&args_0); } - _fx_free_T2LN14K_form__ktyp_tN14K_form__ktyp_t(&v_320); + _fx_free_T2LN14K_form__ktyp_tN14K_form__ktyp_t(&v_327); if (t_0) { _fx_free_N14K_form__ktyp_t(&t_0); } FX_CHECK_EXN(_fx_catch_32); } - _fx_Ta2R9Ast__id_t v_329 = { _fx_g25C_form__std_FX_FREE_IFACE, _fx_g25C_form__std_fx_free_iface }; - _fx_Ta2R9Ast__id_t v_330 = { _fx_g25C_form__std_FX_COPY_IFACE, _fx_g25C_form__std_fx_copy_iface }; - _fx_make_R17C_form__ctprops_t(false, true, false, true, 0, &v_329, &v_330, &ctp_0); - _fx_R9Ast__id_t v_331; + _fx_Ta2R9Ast__id_t v_336 = { _fx_g25C_form__std_FX_FREE_IFACE, _fx_g25C_form__std_fx_free_iface }; + _fx_Ta2R9Ast__id_t v_337 = { _fx_g25C_form__std_FX_COPY_IFACE, _fx_g25C_form__std_fx_copy_iface }; + _fx_make_R17C_form__ctprops_t(false, true, false, true, 0, &v_336, &v_337, &ctp_0); + _fx_R9Ast__id_t v_338; fx_str_t slit_42 = FX_MAKE_STR("vtbl"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_42, &v_331, 0), _fx_catch_32); - FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&vtbl_id_0, &v_303), _fx_catch_32); - FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_303, &v_304, 0), _fx_catch_32); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_331, v_304, &v_305); - _fx_R9Ast__id_t v_332; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_42, &v_338, 0), _fx_catch_32); + FX_CALL(_fx_M6C_formFM8CTypNameN14C_form__ctyp_t1R9Ast__id_t(&vtbl_id_0, &v_310), _fx_catch_32); + FX_CALL(_fx_M6C_formFM14make_const_ptrN14C_form__ctyp_t1N14C_form__ctyp_t(v_310, &v_311, 0), _fx_catch_32); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_338, v_311, &v_312); + _fx_R9Ast__id_t v_339; fx_str_t slit_43 = FX_MAKE_STR("obj"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_43, &v_332, 0), _fx_catch_32); - _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_332, _fx_g23C_form__std_CTypVoidPtr, &v_306); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_306, 0, true, &v_307), _fx_catch_32); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_305, v_307, true, &relems_12), _fx_catch_32); - FX_CALL(_fx_M6C_formFM14CDefForwardTypN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&ki_name_0, loc_0, &v_308), + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_43, &v_339, 0), _fx_catch_32); + _fx_make_T2R9Ast__id_tN14C_form__ctyp_t(&v_339, _fx_g23C_form__std_CTypVoidPtr, &v_313); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_313, 0, true, &v_314), _fx_catch_32); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14C_form__ctyp_t(&v_312, v_314, true, &relems_11), _fx_catch_32); + FX_CALL(_fx_M6C_formFM14CDefForwardTypN15C_form__cstmt_t2R9Ast__id_tR10Ast__loc_t(&ki_name_0, loc_0, &v_315), _fx_catch_32); FX_CALL( _fx_M11C_gen_typesFM12add_fwd_declv5R9Ast__id_tBN15C_form__cstmt_trRt6Set__t1R9Ast__id_trLN15C_form__cstmt_t(tn_0, - true, v_308, all_fwd_decls_ref_0, top_fwd_decl_ref_0, 0), _fx_catch_32); - _fx_Nt6option1R9Ast__id_t v_333; - _fx_M11C_gen_typesFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&vtbl_id_0, &v_333); + true, v_315, all_fwd_decls_ref_0, top_fwd_decl_ref_0, 0), _fx_catch_32); + _fx_Nt6option1R9Ast__id_t v_340; + _fx_M11C_gen_typesFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&vtbl_id_0, &v_340); FX_CALL( - _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&v_333, vtbl_elems_0, - &v_309), _fx_catch_32); - _fx_Ta2R9Ast__id_t v_334 = { _fx_g9Ast__noid, _fx_g9Ast__noid }; - _fx_Ta2R9Ast__id_t v_335 = { _fx_g9Ast__noid, _fx_g9Ast__noid }; - _fx_make_R17C_form__ctprops_t(false, false, true, true, 0, &v_334, &v_335, &v_310); - _fx_make_R17C_form__cdeftyp_t(&vtbl_id_0, v_309, &vtbl_cname_0, &v_310, 0, &_fx_g9Ast__noid, 0, &_fx_g9Ast__noid, - ki_scope_0, &ki_loc_0, &v_311); - FX_CALL(_fx_make_rR17C_form__cdeftyp_t(&v_311, &vtbl_decl_0), _fx_catch_32); - _fx_M6C_formFM4CTypN15C_form__cinfo_t1rRM9cdeftyp_t(vtbl_decl_0, &v_312); - FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&vtbl_id_0, &v_312, 0), _fx_catch_32); - FX_CALL(_fx_M6C_formFM7CDefTypN15C_form__cstmt_t1rRM9cdeftyp_t(vtbl_decl_0, &v_313), _fx_catch_32); + _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&v_340, vtbl_elems_0, + &v_316), _fx_catch_32); + _fx_Ta2R9Ast__id_t v_341 = { _fx_g9Ast__noid, _fx_g9Ast__noid }; + _fx_Ta2R9Ast__id_t v_342 = { _fx_g9Ast__noid, _fx_g9Ast__noid }; + _fx_make_R17C_form__ctprops_t(false, false, true, true, 0, &v_341, &v_342, &v_317); + _fx_make_R17C_form__cdeftyp_t(&vtbl_id_0, v_316, &vtbl_cname_0, &v_317, 0, &_fx_g9Ast__noid, 0, &_fx_g9Ast__noid, + ki_scope_0, &ki_loc_0, &v_318); + FX_CALL(_fx_make_rR17C_form__cdeftyp_t(&v_318, &vtbl_decl_0), _fx_catch_32); + _fx_M6C_formFM4CTypN15C_form__cinfo_t1rRM9cdeftyp_t(vtbl_decl_0, &v_319); + FX_CALL(_fx_M6C_formFM13set_idc_entryv2R9Ast__id_tN15C_form__cinfo_t(&vtbl_id_0, &v_319, 0), _fx_catch_32); + FX_CALL(_fx_M6C_formFM7CDefTypN15C_form__cstmt_t1rRM9cdeftyp_t(vtbl_decl_0, &v_320), _fx_catch_32); FX_CALL( _fx_M11C_gen_typesFM8add_declv5R9Ast__id_tN15C_form__cstmt_trRt6Set__t1R9Ast__id_trLN15C_form__cstmt_trLN15C_form__cstmt_t( - &vtbl_id_0, v_313, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_32); - FX_CALL(_fx_M6C_formFM13CDefInterfaceN15C_form__cstmt_t1rRM15cdefinterface_t(iface_decl_0, &v_314), _fx_catch_32); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_314, *top_typ_decl_0, true, &v_315), _fx_catch_32); + &vtbl_id_0, v_320, all_decls_ref_0, top_typ_decl_ref_0, top_typfun_decl_ref_0, 0), _fx_catch_32); + FX_CALL(_fx_M6C_formFM13CDefInterfaceN15C_form__cstmt_t1rRM15cdefinterface_t(iface_decl_0, &v_321), _fx_catch_32); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(v_321, *top_typ_decl_0, true, &v_322), _fx_catch_32); _fx_free_LN15C_form__cstmt_t(top_typ_decl_0); - FX_COPY_PTR(v_315, top_typ_decl_0); - _fx_R17C_form__cdeftyp_t* v_336 = &struct_decl_0->data; - _fx_Nt6option1R9Ast__id_t v_337; - _fx_M11C_gen_typesFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&ki_name_0, &v_337); + FX_COPY_PTR(v_322, top_typ_decl_0); + _fx_R17C_form__cdeftyp_t* v_343 = &struct_decl_0->data; + _fx_Nt6option1R9Ast__id_t v_344; + _fx_M11C_gen_typesFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&ki_name_0, &v_344); FX_CALL( - _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&v_337, relems_12, - &v_316), _fx_catch_32); - _fx_make_R17C_form__cdeftyp_t(&v_336->ct_name, v_316, &v_336->ct_cname, &ctp_0, v_336->ct_data_start, &v_336->ct_enum, - v_336->ct_ifaces, &v_336->ct_ifaces_id, v_336->ct_scope, &v_336->ct_loc, &v_317); - _fx_R17C_form__cdeftyp_t* v_338 = &struct_decl_0->data; - _fx_free_R17C_form__cdeftyp_t(v_338); - _fx_copy_R17C_form__cdeftyp_t(&v_317, v_338); - _fx_R23C_form__cdefinterface_t* v_339 = &iface_decl_0->data; - _fx_make_R23C_form__cdefinterface_t(&v_339->ci_name, &v_339->ci_cname, &v_339->ci_id, &v_339->ci_vtbl, &v_339->ci_base, - vtbl_elems_0, v_339->ci_scope, &v_339->ci_loc, &v_318); - _fx_R23C_form__cdefinterface_t* v_340 = &iface_decl_0->data; - _fx_free_R23C_form__cdefinterface_t(v_340); - _fx_copy_R23C_form__cdefinterface_t(&v_318, v_340); + _fx_M6C_formFM10CTypStructN14C_form__ctyp_t2Nt6option1R9Ast__id_tLT2R9Ast__id_tN14C_form__ctyp_t(&v_344, relems_11, + &v_323), _fx_catch_32); + _fx_make_R17C_form__cdeftyp_t(&v_343->ct_name, v_323, &v_343->ct_cname, &ctp_0, v_343->ct_data_start, &v_343->ct_enum, + v_343->ct_ifaces, &v_343->ct_ifaces_id, v_343->ct_scope, &v_343->ct_loc, &v_324); + _fx_R17C_form__cdeftyp_t* v_345 = &struct_decl_0->data; + _fx_free_R17C_form__cdeftyp_t(v_345); + _fx_copy_R17C_form__cdeftyp_t(&v_324, v_345); + _fx_R23C_form__cdefinterface_t* v_346 = &iface_decl_0->data; + _fx_make_R23C_form__cdefinterface_t(&v_346->ci_name, &v_346->ci_cname, &v_346->ci_id, &v_346->ci_vtbl, &v_346->ci_base, + vtbl_elems_0, v_346->ci_scope, &v_346->ci_loc, &v_325); + _fx_R23C_form__cdefinterface_t* v_347 = &iface_decl_0->data; + _fx_free_R23C_form__cdefinterface_t(v_347); + _fx_copy_R23C_form__cdefinterface_t(&v_325, v_347); _fx_catch_32: ; - _fx_free_R23C_form__cdefinterface_t(&v_318); - _fx_free_R17C_form__cdeftyp_t(&v_317); - if (v_316) { - _fx_free_N14C_form__ctyp_t(&v_316); + _fx_free_R23C_form__cdefinterface_t(&v_325); + _fx_free_R17C_form__cdeftyp_t(&v_324); + if (v_323) { + _fx_free_N14C_form__ctyp_t(&v_323); } - if (v_315) { - _fx_free_LN15C_form__cstmt_t(&v_315); + if (v_322) { + _fx_free_LN15C_form__cstmt_t(&v_322); } - if (v_314) { - _fx_free_N15C_form__cstmt_t(&v_314); + if (v_321) { + _fx_free_N15C_form__cstmt_t(&v_321); } - if (v_313) { - _fx_free_N15C_form__cstmt_t(&v_313); + if (v_320) { + _fx_free_N15C_form__cstmt_t(&v_320); } - _fx_free_N15C_form__cinfo_t(&v_312); + _fx_free_N15C_form__cinfo_t(&v_319); if (vtbl_decl_0) { _fx_free_rR17C_form__cdeftyp_t(&vtbl_decl_0); } - _fx_free_R17C_form__cdeftyp_t(&v_311); - _fx_free_R17C_form__ctprops_t(&v_310); - if (v_309) { - _fx_free_N14C_form__ctyp_t(&v_309); + _fx_free_R17C_form__cdeftyp_t(&v_318); + _fx_free_R17C_form__ctprops_t(&v_317); + if (v_316) { + _fx_free_N14C_form__ctyp_t(&v_316); } - if (v_308) { - _fx_free_N15C_form__cstmt_t(&v_308); + if (v_315) { + _fx_free_N15C_form__cstmt_t(&v_315); } - if (relems_12) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_12); + if (relems_11) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&relems_11); } - if (v_307) { - _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_307); + if (v_314) { + _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&v_314); } - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_306); - _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_305); - if (v_304) { - _fx_free_N14C_form__ctyp_t(&v_304); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_313); + _fx_free_T2R9Ast__id_tN14C_form__ctyp_t(&v_312); + if (v_311) { + _fx_free_N14C_form__ctyp_t(&v_311); } - if (v_303) { - _fx_free_N14C_form__ctyp_t(&v_303); + if (v_310) { + _fx_free_N14C_form__ctyp_t(&v_310); } _fx_free_R17C_form__ctprops_t(&ctp_0); if (vtbl_elems_0) { _fx_free_LT2R9Ast__id_tN14C_form__ctyp_t(&vtbl_elems_0); } - _fx_free_N15C_form__cinfo_t(&v_302); + _fx_free_N15C_form__cinfo_t(&v_309); if (iface_decl_0) { _fx_free_rR23C_form__cdefinterface_t(&iface_decl_0); } - _fx_free_R23C_form__cdefinterface_t(&v_301); + _fx_free_R23C_form__cdefinterface_t(&v_308); FX_FREE_STR(&vtbl_cname_0); - FX_FREE_STR(&v_300); - FX_FREE_STR(&v_299); - FX_FREE_STR(&v_298); + FX_FREE_STR(&v_307); + FX_FREE_STR(&v_306); + FX_FREE_STR(&v_305); FX_FREE_STR(&ki_cname_0); if (ki_all_methods_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&ki_all_methods_0); @@ -12987,26 +12814,26 @@ _fx_endmatch_1: ; FX_FREE_LIST_SIMPLE(&ki_scope_0); } else { - fx_str_t v_341 = {0}; - fx_str_t v_342 = {0}; - fx_str_t v_343 = {0}; - fx_exn_t v_344 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_341, 0), _fx_catch_33); - FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_341, &v_342, 0), _fx_catch_33); + fx_str_t v_348 = {0}; + fx_str_t v_349 = {0}; + fx_str_t v_350 = {0}; + fx_exn_t v_351 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(tn_0, loc_0, &v_348, 0), _fx_catch_33); + FX_CALL(_fx_M11C_gen_typesFM6stringS1S(&v_348, &v_349, 0), _fx_catch_33); fx_str_t slit_44 = FX_MAKE_STR("type \'"); fx_str_t slit_45 = FX_MAKE_STR("\' cannot be converted to C"); { - const fx_str_t strs_16[] = { slit_44, v_342, slit_45 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_16, 3, &v_343), _fx_catch_33); + const fx_str_t strs_16[] = { slit_44, v_349, slit_45 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_16, 3, &v_350), _fx_catch_33); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_343, &v_344, 0), _fx_catch_33); - FX_THROW(&v_344, false, _fx_catch_33); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_350, &v_351, 0), _fx_catch_33); + FX_THROW(&v_351, false, _fx_catch_33); _fx_catch_33: ; - fx_free_exn(&v_344); - FX_FREE_STR(&v_343); - FX_FREE_STR(&v_342); - FX_FREE_STR(&v_341); + fx_free_exn(&v_351); + FX_FREE_STR(&v_350); + FX_FREE_STR(&v_349); + FX_FREE_STR(&v_348); } _fx_cleanup: ; @@ -13476,6 +13303,7 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM17used_ids_by_ccodeNt10Hashset__t1R9Ast__id_ int fx_status = 0; FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(size0_0, &used_ids_arg_0, 0), _fx_cleanup); FX_CALL(_fx_make_rNt10Hashset__t1R9Ast__id_t(used_ids_arg_0, &used_ids_ref_0), _fx_cleanup); + _fx_Nt10Hashset__t1R9Ast__id_t* used_ids_0 = &used_ids_ref_0->data; _fx_M11C_gen_typesFM7make_fpFPv2N14C_form__ctyp_tR22C_form__c_fold_callb_t1rNt10Hashset__t1R9Ast__id_t(used_ids_ref_0, &used_ctyp_0); _fx_M11C_gen_typesFM7make_fpFPv2N15C_form__cstmt_tR22C_form__c_fold_callb_t1rNt10Hashset__t1R9Ast__id_t(used_ids_ref_0, @@ -13495,7 +13323,7 @@ FX_EXTERN_C int _fx_M11C_gen_typesFM17used_ids_by_ccodeNt10Hashset__t1R9Ast__id_ _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(used_ids_ref_0->data, fx_result); + FX_COPY_PTR(*used_ids_0, fx_result); _fx_cleanup: ; if (used_ids_arg_0) { @@ -13544,16 +13372,16 @@ static int _fx_M11C_gen_typesFM9used_ctypv2N14C_form__ctyp_tR22C_form__c_fold_ca v_2 = !v_3; } if (v_2) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( - _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, n_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_catch_0); + _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, n_0, h_0 & 9223372036854775807ULL, + 0), _fx_catch_0); } _fx_catch_0: ; @@ -13578,16 +13406,16 @@ static int _fx_M11C_gen_typesFM9used_ctypv2N14C_form__ctyp_tR22C_form__c_fold_ca v_6 = !v_7; } if (v_6) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)n_1->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)n_1->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)n_1->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)n_1->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)n_1->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)n_1->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( - _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, n_1, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_1); + _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, n_1, h_1 & 9223372036854775807ULL, + 0), _fx_catch_1); } _fx_catch_1: ; @@ -13610,16 +13438,16 @@ static int _fx_M11C_gen_typesFM9used_ctypv2N14C_form__ctyp_tR22C_form__c_fold_ca v_9 = !v_10; } if (v_9) { - uint64_t __fold_result___2 = 14695981039346656037ULL; - uint64_t h_6 = __fold_result___2 ^ ((uint64_t)n_2->m ^ 14695981039346656037ULL); - __fold_result___2 = h_6 * 1099511628211ULL; - uint64_t h_7 = __fold_result___2 ^ ((uint64_t)n_2->i ^ 14695981039346656037ULL); - __fold_result___2 = h_7 * 1099511628211ULL; - uint64_t h_8 = __fold_result___2 ^ ((uint64_t)n_2->j ^ 14695981039346656037ULL); - __fold_result___2 = h_8 * 1099511628211ULL; + uint64_t h_2 = 14695981039346656037ULL; + h_2 = h_2 ^ ((uint64_t)n_2->m ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)n_2->i ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)n_2->j ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; FX_CALL( - _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, n_2, - __fold_result___2 & 9223372036854775807ULL, 0), _fx_catch_2); + _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, n_2, h_2 & 9223372036854775807ULL, + 0), _fx_catch_2); } _fx_catch_2: ; @@ -13682,16 +13510,16 @@ static int _fx_M11C_gen_typesFM17used_ids_by_cstmtv2N15C_form__cstmt_tR22C_form_ v_5 = !v_6; } if (v_5) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( - _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, i_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_catch_0); + _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, i_0, h_0 & 9223372036854775807ULL, + 0), _fx_catch_0); } _fx_catch_0: ; @@ -13715,16 +13543,16 @@ static int _fx_M11C_gen_typesFM17used_ids_by_cstmtv2N15C_form__cstmt_tR22C_form_ v_8 = !v_9; } if (v_8) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)i_1->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)i_1->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)i_1->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)i_1->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_1->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_1->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( - _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, i_1, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_1); + _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, i_1, h_1 & 9223372036854775807ULL, + 0), _fx_catch_1); } _fx_catch_1: ; @@ -13743,16 +13571,16 @@ static int _fx_M11C_gen_typesFM17used_ids_by_cstmtv2N15C_form__cstmt_tR22C_form_ v_10 = !v_11; } if (v_10) { - uint64_t __fold_result___2 = 14695981039346656037ULL; - uint64_t h_6 = __fold_result___2 ^ ((uint64_t)ct_ifaces_id_0->m ^ 14695981039346656037ULL); - __fold_result___2 = h_6 * 1099511628211ULL; - uint64_t h_7 = __fold_result___2 ^ ((uint64_t)ct_ifaces_id_0->i ^ 14695981039346656037ULL); - __fold_result___2 = h_7 * 1099511628211ULL; - uint64_t h_8 = __fold_result___2 ^ ((uint64_t)ct_ifaces_id_0->j ^ 14695981039346656037ULL); - __fold_result___2 = h_8 * 1099511628211ULL; + uint64_t h_2 = 14695981039346656037ULL; + h_2 = h_2 ^ ((uint64_t)ct_ifaces_id_0->m ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)ct_ifaces_id_0->i ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)ct_ifaces_id_0->j ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; FX_CALL( _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, ct_ifaces_id_0, - __fold_result___2 & 9223372036854775807ULL, 0), _fx_catch_2); + h_2 & 9223372036854775807ULL, 0), _fx_catch_2); } _fx_catch_2: ; @@ -13780,16 +13608,16 @@ static int _fx_M11C_gen_typesFM17used_ids_by_cstmtv2N15C_form__cstmt_tR22C_form_ v_15 = !v_16; } if (v_15) { - uint64_t __fold_result___3 = 14695981039346656037ULL; - uint64_t h_9 = __fold_result___3 ^ ((uint64_t)ci_base_0->m ^ 14695981039346656037ULL); - __fold_result___3 = h_9 * 1099511628211ULL; - uint64_t h_10 = __fold_result___3 ^ ((uint64_t)ci_base_0->i ^ 14695981039346656037ULL); - __fold_result___3 = h_10 * 1099511628211ULL; - uint64_t h_11 = __fold_result___3 ^ ((uint64_t)ci_base_0->j ^ 14695981039346656037ULL); - __fold_result___3 = h_11 * 1099511628211ULL; + uint64_t h_3 = 14695981039346656037ULL; + h_3 = h_3 ^ ((uint64_t)ci_base_0->m ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; + h_3 = h_3 ^ ((uint64_t)ci_base_0->i ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; + h_3 = h_3 ^ ((uint64_t)ci_base_0->j ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; FX_CALL( _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, ci_base_0, - __fold_result___3 & 9223372036854775807ULL, 0), _fx_catch_3); + h_3 & 9223372036854775807ULL, 0), _fx_catch_3); } bool v_17; if (ci_vtbl_0->m > 0) { @@ -13803,16 +13631,16 @@ static int _fx_M11C_gen_typesFM17used_ids_by_cstmtv2N15C_form__cstmt_tR22C_form_ v_17 = !v_18; } if (v_17) { - uint64_t __fold_result___4 = 14695981039346656037ULL; - uint64_t h_12 = __fold_result___4 ^ ((uint64_t)ci_vtbl_0->m ^ 14695981039346656037ULL); - __fold_result___4 = h_12 * 1099511628211ULL; - uint64_t h_13 = __fold_result___4 ^ ((uint64_t)ci_vtbl_0->i ^ 14695981039346656037ULL); - __fold_result___4 = h_13 * 1099511628211ULL; - uint64_t h_14 = __fold_result___4 ^ ((uint64_t)ci_vtbl_0->j ^ 14695981039346656037ULL); - __fold_result___4 = h_14 * 1099511628211ULL; + uint64_t h_4 = 14695981039346656037ULL; + h_4 = h_4 ^ ((uint64_t)ci_vtbl_0->m ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; + h_4 = h_4 ^ ((uint64_t)ci_vtbl_0->i ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; + h_4 = h_4 ^ ((uint64_t)ci_vtbl_0->j ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; FX_CALL( _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, ci_vtbl_0, - __fold_result___4 & 9223372036854775807ULL, 0), _fx_catch_3); + h_4 & 9223372036854775807ULL, 0), _fx_catch_3); } _fx_catch_3: ; @@ -13835,16 +13663,16 @@ static int _fx_M11C_gen_typesFM17used_ids_by_cstmtv2N15C_form__cstmt_tR22C_form_ v_20 = !v_21; } if (v_20) { - uint64_t __fold_result___5 = 14695981039346656037ULL; - uint64_t h_15 = __fold_result___5 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___5 = h_15 * 1099511628211ULL; - uint64_t h_16 = __fold_result___5 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___5 = h_16 * 1099511628211ULL; - uint64_t h_17 = __fold_result___5 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___5 = h_17 * 1099511628211ULL; + uint64_t h_5 = 14695981039346656037ULL; + h_5 = h_5 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; + h_5 = h_5 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; + h_5 = h_5 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; FX_CALL( - _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, n_0, - __fold_result___5 & 9223372036854775807ULL, 0), _fx_catch_4); + _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*used_ids_0, n_0, h_5 & 9223372036854775807ULL, + 0), _fx_catch_4); } _fx_catch_4: ; @@ -13882,11 +13710,10 @@ FX_EXTERN_C int _fx_Nt10Hashset__t1S used_names_0 = 0; _fx_Nt10Hashset__t1S used_fwd_names_0 = 0; _fx_Nt10Hashset__t1R9Ast__id_t used_ids_0 = 0; - _fx_LN15C_form__cstmt_t __fold_result___0 = 0; + _fx_LN15C_form__cstmt_t ctypes_ccode_0 = 0; _fx_LN15C_form__cstmt_t v_0 = 0; _fx_LN15C_form__cstmt_t v_1 = 0; - _fx_LN15C_form__cstmt_t ctypes_ccode_0 = 0; - _fx_LN15C_form__cstmt_t __fold_result___1 = 0; + _fx_LN15C_form__cstmt_t res_0 = 0; int fx_status = 0; FX_CALL(_fx_M3AstFM17empty_str_hashsetNt10Hashset__t1S1i(1024, &used_names_0, 0), _fx_cleanup); FX_CALL(_fx_M3AstFM17empty_str_hashsetNt10Hashset__t1S1i(1024, &used_fwd_names_0, 0), _fx_cleanup); @@ -13952,49 +13779,39 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_cleanup); _fx_LN15C_form__cstmt_t lst_2 = v_1; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN15C_form__cstmt_t ctypes_ccode_1 = 0; _fx_LN15C_form__cstmt_t v_4 = 0; _fx_N15C_form__cstmt_t s_0 = lst_2->hd; - FX_COPY_PTR(__fold_result___0, &ctypes_ccode_1); bool v_5; FX_CALL( _fx_M11C_gen_typesFM12is_used_declB5N15C_form__cstmt_tNt10Hashset__t1R9Ast__id_tBNt10Hashset__t1SNt10Hashset__t1S(s_0, used_ids_0, true, used_fwd_names_0, used_names_0, &v_5, 0), _fx_catch_4); if (v_5) { - FX_CALL(_fx_cons_LN15C_form__cstmt_t(s_0, ctypes_ccode_1, true, &v_4), _fx_catch_4); - } - else { - FX_COPY_PTR(ctypes_ccode_1, &v_4); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(s_0, ctypes_ccode_0, true, &v_4), _fx_catch_4); + _fx_free_LN15C_form__cstmt_t(&ctypes_ccode_0); + FX_COPY_PTR(v_4, &ctypes_ccode_0); } - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); - FX_COPY_PTR(v_4, &__fold_result___0); _fx_catch_4: ; if (v_4) { _fx_free_LN15C_form__cstmt_t(&v_4); } - if (ctypes_ccode_1) { - _fx_free_LN15C_form__cstmt_t(&ctypes_ccode_1); - } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &ctypes_ccode_0); _fx_LN15C_form__cstmt_t lst_3 = ctypes_ccode_0; for (; lst_3; lst_3 = lst_3->tl) { - _fx_LN15C_form__cstmt_t r_0 = 0; + _fx_LN15C_form__cstmt_t v_6 = 0; _fx_N15C_form__cstmt_t a_0 = lst_3->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, r_0, false, &r_0), _fx_catch_5); - _fx_free_LN15C_form__cstmt_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, res_0, true, &v_6), _fx_catch_5); + _fx_free_LN15C_form__cstmt_t(&res_0); + FX_COPY_PTR(v_6, &res_0); _fx_catch_5: ; - if (r_0) { - _fx_free_LN15C_form__cstmt_t(&r_0); + if (v_6) { + _fx_free_LN15C_form__cstmt_t(&v_6); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; if (used_names_0) { @@ -14006,8 +13823,8 @@ _fx_cleanup: ; if (used_ids_0) { _fx_free_Nt10Hashset__t1R9Ast__id_t(&used_ids_0); } - if (__fold_result___0) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); + if (ctypes_ccode_0) { + _fx_free_LN15C_form__cstmt_t(&ctypes_ccode_0); } if (v_0) { _fx_free_LN15C_form__cstmt_t(&v_0); @@ -14015,11 +13832,8 @@ _fx_cleanup: ; if (v_1) { _fx_free_LN15C_form__cstmt_t(&v_1); } - if (ctypes_ccode_0) { - _fx_free_LN15C_form__cstmt_t(&ctypes_ccode_0); - } - if (__fold_result___1) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___1); + if (res_0) { + _fx_free_LN15C_form__cstmt_t(&res_0); } return fx_status; } @@ -14041,17 +13855,17 @@ static int _fx_M11C_gen_typesFM12is_used_declB5N15C_form__cstmt_tNt10Hashset__t1 _fx_copy_R17C_form__cdeftyp_t(&s_0->u.CDefTyp->data, &v_0); fx_str_t* ct_cname_0 = &v_0.ct_cname; _fx_R9Ast__id_t* ct_name_0 = &v_0.ct_name; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)ct_name_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)ct_name_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)ct_name_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)ct_name_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)ct_name_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)ct_name_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_1; FX_CALL( _fx_M11C_gen_typesFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(used_ids_0, ct_name_0, - __fold_result___0 & 9223372036854775807ULL, &v_1, 0), _fx_catch_5); + h_0 & 9223372036854775807ULL, &v_1, 0), _fx_catch_5); bool t_1; if (v_1.t1 >= 0) { t_1 = true; @@ -14100,17 +13914,17 @@ static int _fx_M11C_gen_typesFM12is_used_declB5N15C_form__cstmt_tNt10Hashset__t1 FX_CHECK_EXN(_fx_catch_5); } _fx_R9Ast__id_t v_4 = result_0; - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)v_4.m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)v_4.i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)v_4.j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)v_4.m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)v_4.i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)v_4.j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; _fx_Ta2i v_5; FX_CALL( _fx_M11C_gen_typesFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(used_ids_0, &v_4, - __fold_result___1 & 9223372036854775807ULL, &v_5, 0), _fx_catch_5); + h_1 & 9223372036854775807ULL, &v_5, 0), _fx_catch_5); t_1 = v_5.t1 >= 0; } if (t_1) { @@ -14153,17 +13967,17 @@ static int _fx_M11C_gen_typesFM12is_used_declB5N15C_form__cstmt_tNt10Hashset__t1 fx_str_t v_9 = {0}; _fx_T2R9Ast__id_tR10Ast__loc_t* vcase_0 = &s_0->u.CDefForwardTyp; _fx_R9Ast__id_t* tn_0 = &vcase_0->t0; - uint64_t __fold_result___2 = 14695981039346656037ULL; - uint64_t h_6 = __fold_result___2 ^ ((uint64_t)tn_0->m ^ 14695981039346656037ULL); - __fold_result___2 = h_6 * 1099511628211ULL; - uint64_t h_7 = __fold_result___2 ^ ((uint64_t)tn_0->i ^ 14695981039346656037ULL); - __fold_result___2 = h_7 * 1099511628211ULL; - uint64_t h_8 = __fold_result___2 ^ ((uint64_t)tn_0->j ^ 14695981039346656037ULL); - __fold_result___2 = h_8 * 1099511628211ULL; + uint64_t h_2 = 14695981039346656037ULL; + h_2 = h_2 ^ ((uint64_t)tn_0->m ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)tn_0->i ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)tn_0->j ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; _fx_Ta2i v_10; FX_CALL( _fx_M11C_gen_typesFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(used_ids_0, tn_0, - __fold_result___2 & 9223372036854775807ULL, &v_10, 0), _fx_catch_6); + h_2 & 9223372036854775807ULL, &v_10, 0), _fx_catch_6); if (v_10.t1 >= 0) { if (!final_0) { *fx_result = true; @@ -14292,7 +14106,7 @@ static int _fx_M11C_gen_typesFM12is_used_declB5N15C_form__cstmt_tNt10Hashset__t1 t_8 = true; } else { - bool __fold_result___3 = false; + bool __fold_result___0 = false; FX_COPY_PTR(v_22.cenum_members, &cenum_members_0); _fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t lst_0 = cenum_members_0; for (; lst_0; lst_0 = lst_0->tl) { @@ -14302,14 +14116,14 @@ static int _fx_M11C_gen_typesFM12is_used_declB5N15C_form__cstmt_tNt10Hashset__t1 _fx_M11C_gen_typesFM10__lambda__B2T2R9Ast__id_tNt6option1N14C_form__cexp_tNt10Hashset__t1R9Ast__id_t(a_0, used_ids_0, &v_23, 0), _fx_catch_9); if (v_23) { - __fold_result___3 = true; FX_BREAK(_fx_catch_9); + __fold_result___0 = true; FX_BREAK(_fx_catch_9); } _fx_catch_9: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_10); } - t_8 = __fold_result___3; + t_8 = __fold_result___0; } if (t_8) { if (!final_0) { @@ -14403,17 +14217,17 @@ static int _fx_M11C_gen_typesFM10__lambda__B2T2R9Ast__id_tNt6option1N14C_form__c { int fx_status = 0; _fx_R9Ast__id_t m_0 = arg0_0->t0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)m_0.m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)m_0.i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)m_0.j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)m_0.m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)m_0.i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)m_0.j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( - _fx_M11C_gen_typesFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(used_ids_0, &m_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_cleanup); + _fx_M11C_gen_typesFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(used_ids_0, &m_0, h_0 & 9223372036854775807ULL, + &v_0, 0), _fx_cleanup); *fx_result = v_0.t1 >= 0; _fx_cleanup: ; @@ -14479,13 +14293,18 @@ static int int_ v_5 = uv_1->u.t.t2; for (int_ j_0 = 0; j_0 < v_5; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_1); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_6 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_6->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_1); - _fx_R9Ast__id_t v_6 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_7 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_8 = v_7->key; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_1); - FX_CALL( - _fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(used_ids_0, &v_6, - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv, 0), _fx_catch_1); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_9 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + FX_CALL(_fx_M11C_gen_typesFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(used_ids_0, &v_8, v_9->hv, 0), + _fx_catch_1); } _fx_catch_1: ; diff --git a/compiler/bootstrap/C_post_adjust_decls.c b/compiler/bootstrap/C_post_adjust_decls.c index 966eb9b0..133ae774 100644 --- a/compiler/bootstrap/C_post_adjust_decls.c +++ b/compiler/bootstrap/C_post_adjust_decls.c @@ -2696,7 +2696,7 @@ static int _fx_FPN15C_form__cstmt_t2N15C_form__cstmt_tR17C_form__c_callb_t adjust_cstmt_0 = {0}; _fx_LN15C_form__cstmt_t saved_decls_0 = 0; _fx_LN15C_form__cstmt_t sseq_1 = 0; - _fx_LN15C_form__cstmt_t __fold_result___0 = 0; + _fx_LN15C_form__cstmt_t res_0 = 0; _fx_LN15C_form__cstmt_t local_decls_0 = 0; _fx_LN15C_form__cstmt_t v_0 = 0; _fx_LN15C_form__cstmt_t sseq_2 = 0; @@ -2714,36 +2714,35 @@ static int _fx_LN15C_form__cstmt_t lstend_0 = 0; _fx_LN15C_form__cstmt_t lst_0 = sseq_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_N15C_form__cstmt_t res_0 = 0; + _fx_N15C_form__cstmt_t res_1 = 0; _fx_N15C_form__cstmt_t s_0 = lst_0->hd; - FX_CALL(adjust_cstmt_0.fp(s_0, callb_0, &res_0, adjust_cstmt_0.fcv), _fx_catch_0); + FX_CALL(adjust_cstmt_0.fp(s_0, callb_0, &res_1, adjust_cstmt_0.fcv), _fx_catch_0); _fx_LN15C_form__cstmt_t node_0 = 0; - FX_CALL(_fx_cons_LN15C_form__cstmt_t(res_0, 0, false, &node_0), _fx_catch_0); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(res_1, 0, false, &node_0), _fx_catch_0); FX_LIST_APPEND(sseq_1, lstend_0, node_0); _fx_catch_0: ; - if (res_0) { - _fx_free_N15C_form__cstmt_t(&res_0); + if (res_1) { + _fx_free_N15C_form__cstmt_t(&res_1); } FX_CHECK_EXN(_fx_cleanup); } FX_COPY_PTR(*local_decls_1, &local_decls_0); _fx_LN15C_form__cstmt_t lst_1 = local_decls_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN15C_form__cstmt_t r_0 = 0; + _fx_LN15C_form__cstmt_t v_1 = 0; _fx_N15C_form__cstmt_t a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN15C_form__cstmt_t(a_0, res_0, true, &v_1), _fx_catch_1); + _fx_free_LN15C_form__cstmt_t(&res_0); + FX_COPY_PTR(v_1, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LN15C_form__cstmt_t(&r_0); + if (v_1) { + _fx_free_LN15C_form__cstmt_t(&v_1); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &v_0); + FX_COPY_PTR(res_0, &v_0); if (v_0 == 0) { FX_COPY_PTR(sseq_1, &sseq_2); } @@ -2751,23 +2750,23 @@ static int FX_COPY_PTR(v_0, &sseq_2); } else { - _fx_LN15C_form__cstmt_t v_1 = 0; + _fx_LN15C_form__cstmt_t v_2 = 0; _fx_LN15C_form__cstmt_t lstend_1 = 0; _fx_LN15C_form__cstmt_t lst_2 = v_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_N15C_form__cstmt_t x_0 = lst_2->hd; _fx_LN15C_form__cstmt_t node_1 = 0; FX_CALL(_fx_cons_LN15C_form__cstmt_t(x_0, 0, false, &node_1), _fx_catch_2); - FX_LIST_APPEND(v_1, lstend_1, node_1); + FX_LIST_APPEND(v_2, lstend_1, node_1); _fx_catch_2: ; FX_CHECK_EXN(_fx_catch_3); } - _fx_M19C_post_adjust_declsFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_1, sseq_1, &sseq_2, 0); + _fx_M19C_post_adjust_declsFM5link2LN15C_form__cstmt_t2LN15C_form__cstmt_tLN15C_form__cstmt_t(v_2, sseq_1, &sseq_2, 0); _fx_catch_3: ; - if (v_1) { - _fx_free_LN15C_form__cstmt_t(&v_1); + if (v_2) { + _fx_free_LN15C_form__cstmt_t(&v_2); } } FX_CHECK_EXN(_fx_cleanup); @@ -2783,8 +2782,8 @@ _fx_cleanup: ; if (sseq_1) { _fx_free_LN15C_form__cstmt_t(&sseq_1); } - if (__fold_result___0) { - _fx_free_LN15C_form__cstmt_t(&__fold_result___0); + if (res_0) { + _fx_free_LN15C_form__cstmt_t(&res_0); } if (local_decls_0) { _fx_free_LN15C_form__cstmt_t(&local_decls_0); @@ -2937,15 +2936,16 @@ _fx_endmatch_0: ; _fx_LN15C_form__cstmt_t new_cf_body_0 = 0; _fx_R17C_form__cdeffun_t v_6 = {0}; _fx_rR17C_form__cdeffun_t cf_0 = s_0->u.CDefFun; - FX_COPY_PTR(cf_0->data.cf_body, &cf_body_0); + _fx_R17C_form__cdeffun_t* v_7 = &cf_0->data; + FX_COPY_PTR(v_7->cf_body, &cf_body_0); FX_CALL(adjust_sseq_0.fp(cf_body_0, callb_0, local_decls_ref_0, local_have_ops_ref_0, &new_cf_body_0, adjust_sseq_0.fcv), _fx_catch_1); - _fx_R17C_form__cdeffun_t* v_7 = &cf_0->data; - _fx_make_R17C_form__cdeffun_t(&v_7->cf_name, &v_7->cf_cname, v_7->cf_args, v_7->cf_rt, new_cf_body_0, &v_7->cf_flags, - v_7->cf_scope, &v_7->cf_loc, &v_6); _fx_R17C_form__cdeffun_t* v_8 = &cf_0->data; - _fx_free_R17C_form__cdeffun_t(v_8); - _fx_copy_R17C_form__cdeffun_t(&v_6, v_8); + _fx_make_R17C_form__cdeffun_t(&v_8->cf_name, &v_8->cf_cname, v_8->cf_args, v_8->cf_rt, new_cf_body_0, &v_8->cf_flags, + v_8->cf_scope, &v_8->cf_loc, &v_6); + _fx_R17C_form__cdeffun_t* v_9 = &cf_0->data; + _fx_free_R17C_form__cdeffun_t(v_9); + _fx_copy_R17C_form__cdeffun_t(&v_6, v_9); *local_have_ops_0 = false; FX_COPY_PTR(s_0, fx_result); diff --git a/compiler/bootstrap/C_post_rename_locals.c b/compiler/bootstrap/C_post_rename_locals.c index aa106a74..2949c6b6 100644 --- a/compiler/bootstrap/C_post_rename_locals.c +++ b/compiler/bootstrap/C_post_rename_locals.c @@ -3028,9 +3028,11 @@ FX_EXTERN_C int _fx_M20C_post_rename_localsFM9add_fast_i4iA1iA1Rt20Hashmap__hash int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt20Hashmap__hashentry_t2ii* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -3078,25 +3080,26 @@ FX_EXTERN_C int _fx_M20C_post_rename_localsFM4growv2Nt10Hashmap__t2iii( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2ii* v_2 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2ii v_2 = *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, ht_table_0, j_0); - int_ v_3; + _fx_Rt20Hashmap__hashentry_t2ii v_3 = *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, ht_table_0, j_0); + int_ v_4; FX_CALL( _fx_M20C_post_rename_localsFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2iiRt20Hashmap__hashentry_t2ii(tabsz_0, - &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -3185,17 +3188,19 @@ FX_EXTERN_C int _fx_M20C_post_rename_localsFM18find_idx_or_inserti2Nt10Hashmap__ } if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_5 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_5 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_6 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_)(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2ii* v_7 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_7->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -3203,11 +3208,13 @@ FX_EXTERN_C int _fx_M20C_post_rename_localsFM18find_idx_or_inserti2Nt10Hashmap__ fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt20Hashmap__hashentry_t2ii v_5 = { hv_0, k_0, self_0->u.t.t0.data }; + _fx_Rt20Hashmap__hashentry_t2ii v_8 = { hv_0, k_0, self_0->u.t.t0.data }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, self_0->u.t.t5, found_0) = v_5; + _fx_Rt20Hashmap__hashentry_t2ii* v_9 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, self_0->u.t.t5, found_0); + *v_9 = v_8; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_10 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_10 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -3444,9 +3451,11 @@ static int _fx_M20C_post_rename_localsFM14gen_cval_cnamev3R9Ast__id_tR10Ast__loc FX_CALL(_fx_M20C_post_rename_localsFM18find_idx_or_inserti2Nt10Hashmap__t2iii(*prefix_hash_0, prefix_0, &idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1((*prefix_hash_0)->u.t.t5, 0, idx_0), _fx_catch_0); - int_ j1_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0)->data + 1; + _fx_Rt20Hashmap__hashentry_t2ii* v_5 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0); + int_ j1_0 = v_5->data + 1; FX_CHKIDX(FX_CHKIDX1((*prefix_hash_0)->u.t.t5, 0, idx_0), _fx_catch_0); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0)->data = j1_0; + _fx_Rt20Hashmap__hashentry_t2ii* v_6 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0); + v_6->data = j1_0; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, prefix_0), _fx_catch_0); fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, prefix_0), &v_1); FX_CALL(_fx_F6stringS1i(j1_0, &v_2, 0), _fx_catch_0); @@ -3469,23 +3478,23 @@ static int _fx_M20C_post_rename_localsFM14gen_cval_cnamev3R9Ast__id_tR10Ast__loc FX_FREE_STR(&cv_cname_0); } else { - fx_str_t v_5 = {0}; - fx_str_t v_6 = {0}; - fx_exn_t v_7 = {0}; - FX_CALL(_fx_M6C_formFM7idc2strS2R9Ast__id_tR10Ast__loc_t(n_0, loc_0, &v_5, 0), _fx_catch_1); + fx_str_t v_7 = {0}; + fx_str_t v_8 = {0}; + fx_exn_t v_9 = {0}; + FX_CALL(_fx_M6C_formFM7idc2strS2R9Ast__id_tR10Ast__loc_t(n_0, loc_0, &v_7, 0), _fx_catch_1); fx_str_t slit_1 = FX_MAKE_STR("invalid id info for \'"); fx_str_t slit_2 = FX_MAKE_STR("\'; it must be CVal"); { - const fx_str_t strs_1[] = { slit_1, v_5, slit_2 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_6), _fx_catch_1); + const fx_str_t strs_1[] = { slit_1, v_7, slit_2 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_8), _fx_catch_1); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_6, &v_7, 0), _fx_catch_1); - FX_THROW(&v_7, false, _fx_catch_1); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_8, &v_9, 0), _fx_catch_1); + FX_THROW(&v_9, false, _fx_catch_1); _fx_catch_1: ; - fx_free_exn(&v_7); - FX_FREE_STR(&v_6); - FX_FREE_STR(&v_5); + fx_free_exn(&v_9); + FX_FREE_STR(&v_8); + FX_FREE_STR(&v_7); } FX_CHECK_EXN(_fx_cleanup); } @@ -3549,9 +3558,13 @@ static int _fx_M20C_post_rename_localsFM12rename_cstmtv2N15C_form__cstmt_tR22C_f _fx_M20C_post_rename_localsFM18find_idx_or_inserti2Nt10Hashmap__t2iii(*prefix_hash_0, prefix_0, &idx_0, 0), _fx_catch_2); FX_CHKIDX(FX_CHKIDX1((*prefix_hash_0)->u.t.t5, 0, idx_0), _fx_catch_2); - int_ j1_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0)->data + 1; + _fx_Rt20Hashmap__hashentry_t2ii* v_5 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0); + int_ j1_0 = v_5->data + 1; FX_CHKIDX(FX_CHKIDX1((*prefix_hash_0)->u.t.t5, 0, idx_0), _fx_catch_2); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0)->data = j1_0; + _fx_Rt20Hashmap__hashentry_t2ii* v_6 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0); + v_6->data = j1_0; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, prefix_0), _fx_catch_2); fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, prefix_0), &v_1); FX_CALL(_fx_F6stringS1i(j1_0, &v_2, 0), _fx_catch_2); @@ -3574,23 +3587,23 @@ static int _fx_M20C_post_rename_localsFM12rename_cstmtv2N15C_form__cstmt_tR22C_f FX_FREE_STR(&cl_cname_0); } else { - fx_str_t v_5 = {0}; - fx_str_t v_6 = {0}; - fx_exn_t v_7 = {0}; - FX_CALL(_fx_M6C_formFM7idc2strS2R9Ast__id_tR10Ast__loc_t(n_1, loc_0, &v_5, 0), _fx_catch_3); + fx_str_t v_7 = {0}; + fx_str_t v_8 = {0}; + fx_exn_t v_9 = {0}; + FX_CALL(_fx_M6C_formFM7idc2strS2R9Ast__id_tR10Ast__loc_t(n_1, loc_0, &v_7, 0), _fx_catch_3); fx_str_t slit_1 = FX_MAKE_STR("invalid id info for \'"); fx_str_t slit_2 = FX_MAKE_STR("\'; it must be CLabel"); { - const fx_str_t strs_1[] = { slit_1, v_5, slit_2 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_6), _fx_catch_3); + const fx_str_t strs_1[] = { slit_1, v_7, slit_2 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_8), _fx_catch_3); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_6, &v_7, 0), _fx_catch_3); - FX_THROW(&v_7, false, _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_8, &v_9, 0), _fx_catch_3); + FX_THROW(&v_9, false, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_7); - FX_FREE_STR(&v_6); - FX_FREE_STR(&v_5); + fx_free_exn(&v_9); + FX_FREE_STR(&v_8); + FX_FREE_STR(&v_7); } FX_CHECK_EXN(_fx_catch_4); @@ -3612,11 +3625,11 @@ static int _fx_M20C_post_rename_localsFM12rename_cstmtv2N15C_form__cstmt_tR22C_f _fx_T4N17C_form__cbinary_tN14C_form__cexp_tN14C_form__cexp_tT2N14C_form__ctyp_tR10Ast__loc_t* vcase_3 = &e_0->u.CExpBinary; if (vcase_3->t0.tag == 15) { - _fx_N14C_form__cexp_t v_8 = vcase_3->t1; - if (FX_REC_VARIANT_TAG(v_8) == 1) { + _fx_N14C_form__cexp_t v_10 = vcase_3->t1; + if (FX_REC_VARIANT_TAG(v_10) == 1) { FX_CALL( _fx_M20C_post_rename_localsFM14gen_cval_cnamev3R9Ast__id_tR10Ast__loc_trNt10Hashmap__t2ii( - &v_8->u.CExpIdent.t0, &vcase_2->t5, prefix_hash_ref_0, 0), _fx_catch_5); + &v_10->u.CExpIdent.t0, &vcase_2->t5, prefix_hash_ref_0, 0), _fx_catch_5); _fx_catch_5: ; goto _fx_endmatch_0; @@ -3642,46 +3655,46 @@ static int _fx_M20C_post_rename_localsFM12rename_cstmtv2N15C_form__cstmt_tR22C_f if (tag_0 == 17) { _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t cf_args_0 = 0; _fx_Nt10Hashmap__t2ii saved_hash_0 = 0; - fx_arr_t v_9 = {0}; - fx_arr_t v_10 = {0}; fx_arr_t v_11 = {0}; fx_arr_t v_12 = {0}; - _fx_Nt10Hashmap__t2ii v_13 = 0; - _fx_R17C_form__cdeffun_t* v_14 = &s_0->u.CDefFun->data; - _fx_R10Ast__loc_t cf_loc_0 = v_14->cf_loc; - FX_COPY_PTR(v_14->cf_args, &cf_args_0); + fx_arr_t v_13 = {0}; + fx_arr_t v_14 = {0}; + _fx_Nt10Hashmap__t2ii v_15 = 0; + _fx_R17C_form__cdeffun_t* v_16 = &s_0->u.CDefFun->data; + _fx_R10Ast__loc_t cf_loc_0 = v_16->cf_loc; + FX_COPY_PTR(v_16->cf_args, &cf_args_0); FX_COPY_PTR(*prefix_hash_0, &saved_hash_0); - _fx_Rt20Hashmap__hashentry_t2ii v_15 = (*global_prefix_hash_0)->u.t.t0; - fx_copy_arr(&(*global_prefix_hash_0)->u.t.t4, &v_9); + _fx_Rt20Hashmap__hashentry_t2ii v_17 = (*global_prefix_hash_0)->u.t.t0; + fx_copy_arr(&(*global_prefix_hash_0)->u.t.t4, &v_11); int_* dstptr_0 = 0; - int_ ni_0 = FX_ARR_SIZE(v_9, 0); - int_* ptr_v_0 = FX_PTR_1D(int_, v_9, 0); + int_ ni_0 = FX_ARR_SIZE(v_11, 0); + int_* ptr_v_0 = FX_PTR_1D(int_, v_11, 0); { const int_ shape_0[] = { ni_0 }; - FX_CALL(fx_make_arr(1, shape_0, sizeof(int_), 0, 0, 0, &v_10), _fx_catch_9); + FX_CALL(fx_make_arr(1, shape_0, sizeof(int_), 0, 0, 0, &v_12), _fx_catch_9); } - dstptr_0 = (int_*)v_10.data; + dstptr_0 = (int_*)v_12.data; for (int_ i_0 = 0; i_0 < ni_0; i_0++, dstptr_0++) { int_ x_0 = ptr_v_0[i_0]; *dstptr_0 = x_0; } - fx_copy_arr(&(*global_prefix_hash_0)->u.t.t5, &v_11); + fx_copy_arr(&(*global_prefix_hash_0)->u.t.t5, &v_13); _fx_Rt20Hashmap__hashentry_t2ii* dstptr_1 = 0; - int_ ni_1 = FX_ARR_SIZE(v_11, 0); - _fx_Rt20Hashmap__hashentry_t2ii* ptr_v_1 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, v_11, 0); + int_ ni_1 = FX_ARR_SIZE(v_13, 0); + _fx_Rt20Hashmap__hashentry_t2ii* ptr_v_1 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, v_13, 0); { const int_ shape_1[] = { ni_1 }; - FX_CALL(fx_make_arr(1, shape_1, sizeof(_fx_Rt20Hashmap__hashentry_t2ii), 0, 0, 0, &v_12), _fx_catch_9); + FX_CALL(fx_make_arr(1, shape_1, sizeof(_fx_Rt20Hashmap__hashentry_t2ii), 0, 0, 0, &v_14), _fx_catch_9); } - dstptr_1 = (_fx_Rt20Hashmap__hashentry_t2ii*)v_12.data; + dstptr_1 = (_fx_Rt20Hashmap__hashentry_t2ii*)v_14.data; for (int_ i_1 = 0; i_1 < ni_1; i_1++, dstptr_1++) { _fx_Rt20Hashmap__hashentry_t2ii x_1 = ptr_v_1[i_1]; *dstptr_1 = x_1; } FX_CALL( - _fx_M20C_post_rename_localsFM1tNt10Hashmap__t2ii6Rt20Hashmap__hashentry_t2iiiiiA1iA1Rt20Hashmap__hashentry_t2ii(&v_15, - (*global_prefix_hash_0)->u.t.t1, (*global_prefix_hash_0)->u.t.t2, (*global_prefix_hash_0)->u.t.t3, &v_10, &v_12, - &v_13), _fx_catch_9); + _fx_M20C_post_rename_localsFM1tNt10Hashmap__t2ii6Rt20Hashmap__hashentry_t2iiiiiA1iA1Rt20Hashmap__hashentry_t2ii(&v_17, + (*global_prefix_hash_0)->u.t.t1, (*global_prefix_hash_0)->u.t.t2, (*global_prefix_hash_0)->u.t.t3, &v_12, &v_14, + &v_15), _fx_catch_9); _fx_free_Nt10Hashmap__t2ii(prefix_hash_0); - FX_COPY_PTR(v_13, prefix_hash_0); + FX_COPY_PTR(v_15, prefix_hash_0); _fx_LT3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t lst_1 = cf_args_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_T3R9Ast__id_tN14C_form__ctyp_tLN19C_form__carg_attr_t* __pat___0 = &lst_1->hd; @@ -3698,13 +3711,13 @@ static int _fx_M20C_post_rename_localsFM12rename_cstmtv2N15C_form__cstmt_tR22C_f FX_COPY_PTR(saved_hash_0, prefix_hash_0); _fx_catch_9: ; - if (v_13) { - _fx_free_Nt10Hashmap__t2ii(&v_13); + if (v_15) { + _fx_free_Nt10Hashmap__t2ii(&v_15); } + FX_FREE_ARR(&v_14); + FX_FREE_ARR(&v_13); FX_FREE_ARR(&v_12); FX_FREE_ARR(&v_11); - FX_FREE_ARR(&v_10); - FX_FREE_ARR(&v_9); if (saved_hash_0) { _fx_free_Nt10Hashmap__t2ii(&saved_hash_0); } diff --git a/compiler/bootstrap/C_pp.c b/compiler/bootstrap/C_pp.c index 246b4854..c25e8a4a 100644 --- a/compiler/bootstrap/C_pp.c +++ b/compiler/bootstrap/C_pp.c @@ -4955,7 +4955,8 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( fx_str_t v_2 = {0}; _fx_T2R9Ast__id_tN15C_form__cstmt_t* vcase_0 = &s_0->u.CStmtSync; _fx_R9Ast__id_t* n_0 = &vcase_0->t0; - if (_fx_g12Options__opt.enable_openmp) { + bool v_3 = _fx_g12Options__opt.enable_openmp; + if (v_3) { FX_CALL(_fx_M2PPFM7newlinev1RM1t(pp_0, 0), _fx_catch_9); fx_str_t slit_6 = FX_MAKE_STR("#pragma omp critical"); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_6, 0), _fx_catch_9); @@ -5123,8 +5124,8 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( for (; lst_0; lst_0 = lst_0->tl) { _fx_LN14C_form__cexp_t labels_0 = 0; _fx_LN15C_form__cstmt_t code_0 = 0; - fx_str_t v_3 = {0}; fx_str_t v_4 = {0}; + fx_str_t v_5 = {0}; _fx_T2LN14C_form__cexp_tLN15C_form__cstmt_t* __pat___0 = &lst_0->hd; FX_COPY_PTR(__pat___0->t0, &labels_0); FX_COPY_PTR(__pat___0->t1, &code_0); @@ -5159,8 +5160,8 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( FX_CALL(_fx_M2PPFM3endv1RM1t(pp_0, 0), _fx_catch_24); FX_CALL(_fx_M2PPFM6break0v1RM1t(pp_0, 0), _fx_catch_24); FX_CALL(_fx_M2PPFM6beginvv1RM1t(pp_0, 0), _fx_catch_24); - int_ v_5; - FX_CALL(_fx_M4C_ppFM8length1_i1LN15C_form__cstmt_t(code_0, &v_5, 0), _fx_catch_24); + int_ v_6; + FX_CALL(_fx_M4C_ppFM8length1_i1LN15C_form__cstmt_t(code_0, &v_6, 0), _fx_catch_24); int_ t_0; if (isdefault_0) { t_0 = 0; @@ -5168,7 +5169,7 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( else { t_0 = 1; } - int_ codelen_0 = v_5 + t_0; + int_ codelen_0 = v_6 + t_0; int_ i_0 = 0; _fx_LN15C_form__cstmt_t lst_2 = code_0; for (; lst_2; lst_2 = lst_2->tl, i_0 += 1) { @@ -5186,13 +5187,13 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( } if (isdefault_0) { if (code_0 == 0) { - FX_CALL(_fx_F7__mul__S2Ci((char_)32, 3, &v_3, 0), _fx_catch_24); + FX_CALL(_fx_F7__mul__S2Ci((char_)32, 3, &v_4, 0), _fx_catch_24); fx_str_t slit_30 = FX_MAKE_STR(";"); { - const fx_str_t strs_1[] = { v_3, slit_30 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_4), _fx_catch_24); + const fx_str_t strs_1[] = { v_4, slit_30 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_5), _fx_catch_24); } - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_4, 0), _fx_catch_24); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_5, 0), _fx_catch_24); } } else { @@ -5202,8 +5203,8 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( FX_CALL(_fx_M2PPFM6break0v1RM1t(pp_0, 0), _fx_catch_24); _fx_catch_24: ; + FX_FREE_STR(&v_5); FX_FREE_STR(&v_4); - FX_FREE_STR(&v_3); if (code_0) { _fx_free_LN15C_form__cstmt_t(&code_0); } @@ -5221,15 +5222,15 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( } } else if (tag_0 == 16) { - _fx_N15C_form__cinfo_t v_6 = {0}; + _fx_N15C_form__cinfo_t v_7 = {0}; _fx_T4N14C_form__ctyp_tR9Ast__id_tNt6option1N14C_form__cexp_tR10Ast__loc_t* vcase_8 = &s_0->u.CDefVal; _fx_R10Ast__loc_t* loc_0 = &vcase_8->t3; _fx_Nt6option1N14C_form__cexp_t* e_opt_1 = &vcase_8->t2; _fx_R9Ast__id_t* n_1 = &vcase_8->t1; - FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(n_1, loc_0, &v_6, 0), _fx_catch_27); + FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(n_1, loc_0, &v_7, 0), _fx_catch_27); bool is_private_0; - if (v_6.tag == 2) { - is_private_0 = v_6.u.CVal.cv_flags.val_flag_private; + if (v_7.tag == 2) { + is_private_0 = v_7.u.CVal.cv_flags.val_flag_private; } else { is_private_0 = false; @@ -5241,10 +5242,10 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_33, 0), _fx_catch_27); FX_CALL(_fx_M2PPFM5spacev1RM1t(pp_0, 0), _fx_catch_27); } - _fx_Nt6option1R9Ast__id_t v_7; - _fx_M4C_ppFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(n_1, &v_7); + _fx_Nt6option1R9Ast__id_t v_8; + _fx_M4C_ppFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(n_1, &v_8); FX_CALL( - _fx_M4C_ppFM8pp_ctyp_v4R5PP__tN14C_form__ctyp_tNt6option1R9Ast__id_tR10Ast__loc_t(pp_0, vcase_8->t0, &v_7, loc_0, 0), + _fx_M4C_ppFM8pp_ctyp_v4R5PP__tN14C_form__ctyp_tNt6option1R9Ast__id_tR10Ast__loc_t(pp_0, vcase_8->t0, &v_8, loc_0, 0), _fx_catch_27); if (e_opt_1->tag == 2) { fx_str_t slit_34 = FX_MAKE_STR(" ="); @@ -5260,14 +5261,14 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( FX_CALL(_fx_M2PPFM3endv1RM1t(pp_0, 0), _fx_catch_27); _fx_catch_27: ; - _fx_free_N15C_form__cinfo_t(&v_6); + _fx_free_N15C_form__cinfo_t(&v_7); } else if (tag_0 == 17) { _fx_LN15C_form__cstmt_t cf_body_0 = 0; - _fx_R17C_form__cdeffun_t* v_8 = &s_0->u.CDefFun->data; - _fx_R10Ast__loc_t cf_loc_0 = v_8->cf_loc; - FX_COPY_PTR(v_8->cf_body, &cf_body_0); - _fx_R9Ast__id_t cf_name_0 = v_8->cf_name; + _fx_R17C_form__cdeffun_t* v_9 = &s_0->u.CDefFun->data; + _fx_R10Ast__loc_t cf_loc_0 = v_9->cf_loc; + FX_COPY_PTR(v_9->cf_body, &cf_body_0); + _fx_R9Ast__id_t cf_name_0 = v_9->cf_name; FX_CALL(_fx_M4C_ppFM14pprint_fun_hdrv5R5PP__tR9Ast__id_tBR10Ast__loc_tB(pp_0, &cf_name_0, false, &cf_loc_0, false, 0), _fx_catch_29); FX_CALL(_fx_M2PPFM6beginvv1RM1t(pp_0, 0), _fx_catch_29); @@ -5298,12 +5299,12 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( } } else if (tag_0 == 19) { - _fx_N15C_form__cinfo_t v_9 = {0}; + _fx_N15C_form__cinfo_t v_10 = {0}; _fx_T2R9Ast__id_tR10Ast__loc_t* vcase_9 = &s_0->u.CDefForwardSym; _fx_R10Ast__loc_t* cf_loc_1 = &vcase_9->t1; _fx_R9Ast__id_t* cf_name_1 = &vcase_9->t0; - FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(cf_name_1, cf_loc_1, &v_9, 0), _fx_catch_33); - int tag_1 = v_9.tag; + FX_CALL(_fx_M6C_formFM6cinfo_N15C_form__cinfo_t2R9Ast__id_tR10Ast__loc_t(cf_name_1, cf_loc_1, &v_10, 0), _fx_catch_33); + int tag_1 = v_10.tag; if (tag_1 == 3) { FX_CALL(_fx_M4C_ppFM14pprint_fun_hdrv5R5PP__tR9Ast__id_tBR10Ast__loc_tB(pp_0, cf_name_1, true, cf_loc_1, true, 0), _fx_catch_30); @@ -5315,57 +5316,57 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( fx_str_t slit_38 = FX_MAKE_STR("FX_EXTERN_C_VAL("); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_38, 0), _fx_catch_31); FX_CALL(_fx_M2PPFM3cutv1RM1t(pp_0, 0), _fx_catch_31); - _fx_Nt6option1R9Ast__id_t v_10; - _fx_M4C_ppFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(cf_name_1, &v_10); + _fx_Nt6option1R9Ast__id_t v_11; + _fx_M4C_ppFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(cf_name_1, &v_11); fx_str_t slit_39 = FX_MAKE_STR(""); fx_str_t slit_40 = FX_MAKE_STR(")"); FX_CALL( _fx_M4C_ppFM9pp_ctyp__v7R5PP__tSSN14C_form__ctyp_tNt6option1R9Ast__id_tBR10Ast__loc_t(pp_0, &slit_39, &slit_40, - v_9.u.CVal.cv_typ, &v_10, true, cf_loc_1, 0), _fx_catch_31); + v_10.u.CVal.cv_typ, &v_11, true, cf_loc_1, 0), _fx_catch_31); FX_CALL(_fx_M2PPFM3endv1RM1t(pp_0, 0), _fx_catch_31); _fx_catch_31: ; } else { - fx_str_t v_11 = {0}; fx_str_t v_12 = {0}; fx_str_t v_13 = {0}; - fx_exn_t v_14 = {0}; - FX_CALL(_fx_M6C_formFM7idc2strS2R9Ast__id_tR10Ast__loc_t(cf_name_1, cf_loc_1, &v_11, 0), _fx_catch_32); - FX_CALL(_fx_M4C_ppFM6stringS1S(&v_11, &v_12, 0), _fx_catch_32); + fx_str_t v_14 = {0}; + fx_exn_t v_15 = {0}; + FX_CALL(_fx_M6C_formFM7idc2strS2R9Ast__id_tR10Ast__loc_t(cf_name_1, cf_loc_1, &v_12, 0), _fx_catch_32); + FX_CALL(_fx_M4C_ppFM6stringS1S(&v_12, &v_13, 0), _fx_catch_32); fx_str_t slit_41 = FX_MAKE_STR("the forward declaration of "); fx_str_t slit_42 = FX_MAKE_STR(" does not reference a function or a value"); { - const fx_str_t strs_2[] = { slit_41, v_12, slit_42 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_13), _fx_catch_32); + const fx_str_t strs_2[] = { slit_41, v_13, slit_42 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_14), _fx_catch_32); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(cf_loc_1, &v_13, &v_14, 0), _fx_catch_32); - FX_THROW(&v_14, false, _fx_catch_32); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(cf_loc_1, &v_14, &v_15, 0), _fx_catch_32); + FX_THROW(&v_15, false, _fx_catch_32); _fx_catch_32: ; - fx_free_exn(&v_14); + fx_free_exn(&v_15); + FX_FREE_STR(&v_14); FX_FREE_STR(&v_13); FX_FREE_STR(&v_12); - FX_FREE_STR(&v_11); } FX_CHECK_EXN(_fx_catch_33); _fx_catch_33: ; - _fx_free_N15C_form__cinfo_t(&v_9); + _fx_free_N15C_form__cinfo_t(&v_10); } else if (tag_0 == 18) { _fx_N14C_form__ctyp_t ct_typ_0 = 0; - _fx_R17C_form__cdeftyp_t* v_15 = &s_0->u.CDefTyp->data; - _fx_R10Ast__loc_t ct_loc_0 = v_15->ct_loc; - FX_COPY_PTR(v_15->ct_typ, &ct_typ_0); - _fx_R9Ast__id_t ct_name_0 = v_15->ct_name; - _fx_Nt6option1R9Ast__id_t v_16; - _fx_M4C_ppFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&ct_name_0, &v_16); + _fx_R17C_form__cdeftyp_t* v_16 = &s_0->u.CDefTyp->data; + _fx_R10Ast__loc_t ct_loc_0 = v_16->ct_loc; + FX_COPY_PTR(v_16->ct_typ, &ct_typ_0); + _fx_R9Ast__id_t ct_name_0 = v_16->ct_name; + _fx_Nt6option1R9Ast__id_t v_17; + _fx_M4C_ppFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&ct_name_0, &v_17); fx_str_t slit_43 = FX_MAKE_STR("typedef "); fx_str_t slit_44 = FX_MAKE_STR(";"); FX_CALL( _fx_M4C_ppFM9pp_ctyp__v7R5PP__tSSN14C_form__ctyp_tNt6option1R9Ast__id_tBR10Ast__loc_t(pp_0, &slit_43, &slit_44, - ct_typ_0, &v_16, true, &ct_loc_0, 0), _fx_catch_34); + ct_typ_0, &v_17, true, &ct_loc_0, 0), _fx_catch_34); FX_CALL(_fx_M2PPFM7newlinev1RM1t(pp_0, 0), _fx_catch_34); _fx_catch_34: ; @@ -5389,10 +5390,10 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( else if (tag_0 == 21) { _fx_LT2R9Ast__id_tNt6option1N14C_form__cexp_t cenum_members_0 = 0; fx_str_t cenum_cname_0 = {0}; - _fx_R18C_form__cdefenum_t* v_17 = &s_0->u.CDefEnum->data; - _fx_R10Ast__loc_t cenum_loc_0 = v_17->cenum_loc; - FX_COPY_PTR(v_17->cenum_members, &cenum_members_0); - fx_copy_str(&v_17->cenum_cname, &cenum_cname_0); + _fx_R18C_form__cdefenum_t* v_18 = &s_0->u.CDefEnum->data; + _fx_R10Ast__loc_t cenum_loc_0 = v_18->cenum_loc; + FX_COPY_PTR(v_18->cenum_members, &cenum_members_0); + fx_copy_str(&v_18->cenum_cname, &cenum_cname_0); fx_str_t slit_47 = FX_MAKE_STR("typedef enum {"); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_47, 0), _fx_catch_38); FX_CALL(_fx_M2PPFM6break0v1RM1t(pp_0, 0), _fx_catch_38); @@ -5443,24 +5444,24 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( } else if (tag_0 == 22) { fx_str_t ci_cname_0 = {0}; - fx_str_t v_18 = {0}; fx_str_t v_19 = {0}; - fx_str_t vtbl_cname_0 = {0}; fx_str_t v_20 = {0}; + fx_str_t vtbl_cname_0 = {0}; fx_str_t v_21 = {0}; - _fx_R23C_form__cdefinterface_t* v_22 = &s_0->u.CDefInterface->data; - _fx_R10Ast__loc_t ci_loc_0 = v_22->ci_loc; - _fx_R9Ast__id_t ci_vtbl_0 = v_22->ci_vtbl; - fx_copy_str(&v_22->ci_cname, &ci_cname_0); + fx_str_t v_22 = {0}; + _fx_R23C_form__cdefinterface_t* v_23 = &s_0->u.CDefInterface->data; + _fx_R10Ast__loc_t ci_loc_0 = v_23->ci_loc; + _fx_R9Ast__id_t ci_vtbl_0 = v_23->ci_vtbl; + fx_copy_str(&v_23->ci_cname, &ci_cname_0); FX_CALL(_fx_M2PPFM6beginvv1RM1t(pp_0, 0), _fx_catch_39); - FX_CALL(_fx_M4C_ppFM6stringS1S(&ci_cname_0, &v_18, 0), _fx_catch_39); + FX_CALL(_fx_M4C_ppFM6stringS1S(&ci_cname_0, &v_19, 0), _fx_catch_39); fx_str_t slit_53 = FX_MAKE_STR("typedef struct "); fx_str_t slit_54 = FX_MAKE_STR(" {"); { - const fx_str_t strs_3[] = { slit_53, v_18, slit_54 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_19), _fx_catch_39); + const fx_str_t strs_3[] = { slit_53, v_19, slit_54 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_20), _fx_catch_39); } - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_19, 0), _fx_catch_39); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_20, 0), _fx_catch_39); FX_CALL(_fx_M2PPFM7newlinev1RM1t(pp_0, 0), _fx_catch_39); FX_CALL(_fx_M6C_formFM13get_idc_cnameS2R9Ast__id_tR10Ast__loc_t(&ci_vtbl_0, &ci_loc_0, &vtbl_cname_0, 0), _fx_catch_39); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &vtbl_cname_0, 0), _fx_catch_39); @@ -5471,33 +5472,33 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_56, 0), _fx_catch_39); FX_CALL(_fx_M2PPFM3endv1RM1t(pp_0, 0), _fx_catch_39); FX_CALL(_fx_M2PPFM7newlinev1RM1t(pp_0, 0), _fx_catch_39); - FX_CALL(_fx_M4C_ppFM6stringS1S(&ci_cname_0, &v_20, 0), _fx_catch_39); + FX_CALL(_fx_M4C_ppFM6stringS1S(&ci_cname_0, &v_21, 0), _fx_catch_39); fx_str_t slit_57 = FX_MAKE_STR("} "); fx_str_t slit_58 = FX_MAKE_STR(";"); { - const fx_str_t strs_4[] = { slit_57, v_20, slit_58 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_21), _fx_catch_39); + const fx_str_t strs_4[] = { slit_57, v_21, slit_58 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_22), _fx_catch_39); } - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_21, 0), _fx_catch_39); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_22, 0), _fx_catch_39); FX_CALL(_fx_M2PPFM7newlinev1RM1t(pp_0, 0), _fx_catch_39); _fx_catch_39: ; + FX_FREE_STR(&v_22); FX_FREE_STR(&v_21); - FX_FREE_STR(&v_20); FX_FREE_STR(&vtbl_cname_0); + FX_FREE_STR(&v_20); FX_FREE_STR(&v_19); - FX_FREE_STR(&v_18); FX_FREE_STR(&ci_cname_0); } else if (tag_0 == 23) { _fx_LN15C_form__cstmt_t cm_body_0 = 0; _fx_LR9Ast__id_t cm_args_0 = 0; fx_str_t cm_cname_0 = {0}; - _fx_R19C_form__cdefmacro_t* v_23 = &s_0->u.CMacroDef->data; - _fx_R10Ast__loc_t cm_loc_0 = v_23->cm_loc; - FX_COPY_PTR(v_23->cm_body, &cm_body_0); - FX_COPY_PTR(v_23->cm_args, &cm_args_0); - fx_copy_str(&v_23->cm_cname, &cm_cname_0); + _fx_R19C_form__cdefmacro_t* v_24 = &s_0->u.CMacroDef->data; + _fx_R10Ast__loc_t cm_loc_0 = v_24->cm_loc; + FX_COPY_PTR(v_24->cm_body, &cm_body_0); + FX_COPY_PTR(v_24->cm_args, &cm_args_0); + fx_copy_str(&v_24->cm_cname, &cm_cname_0); fx_str_t slit_59 = FX_MAKE_STR("#define "); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_59, 0), _fx_catch_44); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &cm_cname_0, 0), _fx_catch_44); @@ -5569,19 +5570,19 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( for (; lst_7; lst_7 = lst_7->tl, i_4 += 1) { _fx_N14C_form__cexp_t c_0 = 0; _fx_LN15C_form__cstmt_t sl_0 = 0; - fx_str_t v_24 = {0}; + fx_str_t v_25 = {0}; _fx_T2N14C_form__cexp_tLN15C_form__cstmt_t* __pat___2 = &lst_7->hd; FX_COPY_PTR(__pat___2->t0, &c_0); FX_COPY_PTR(__pat___2->t1, &sl_0); FX_CALL(_fx_M2PPFM6break0v1RM1t(pp_0, 0), _fx_catch_47); FX_CALL(_fx_M2PPFM5beginv1RM1t(pp_0, 0), _fx_catch_47); if (i_4 == 0) { - fx_str_t slit_66 = FX_MAKE_STR("#if "); fx_copy_str(&slit_66, &v_24); + fx_str_t slit_66 = FX_MAKE_STR("#if "); fx_copy_str(&slit_66, &v_25); } else { - fx_str_t slit_67 = FX_MAKE_STR("#elif "); fx_copy_str(&slit_67, &v_24); + fx_str_t slit_67 = FX_MAKE_STR("#elif "); fx_copy_str(&slit_67, &v_25); } - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_24, 0), _fx_catch_47); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_25, 0), _fx_catch_47); FX_CALL(_fx_M4C_ppFM8pp_cexp_v3R5PP__tN14C_form__cexp_ti(pp_0, c_0, 0, 0), _fx_catch_47); FX_CALL(_fx_M2PPFM3endv1RM1t(pp_0, 0), _fx_catch_47); FX_CALL(_fx_M2PPFM6break0v1RM1t(pp_0, 0), _fx_catch_47); @@ -5595,7 +5596,7 @@ FX_EXTERN_C int _fx_M4C_ppFM9pp_cstmt_v2R5PP__tN15C_form__cstmt_t( } _fx_catch_47: ; - FX_FREE_STR(&v_24); + FX_FREE_STR(&v_25); if (sl_0) { _fx_free_LN15C_form__cstmt_t(&sl_0); } diff --git a/compiler/bootstrap/Compiler.c b/compiler/bootstrap/Compiler.c index 2a4a937f..d6bb4a5b 100644 --- a/compiler/bootstrap/Compiler.c +++ b/compiler/bootstrap/Compiler.c @@ -2085,11 +2085,6 @@ typedef struct _fx_N20Compiler__msgcolor_t { int tag; } _fx_N20Compiler__msgcolor_t; -typedef struct _fx_T2LN14Lexer__token_tB { - struct _fx_LN14Lexer__token_t_data_t* t0; - bool t1; -} _fx_T2LN14Lexer__token_tB; - typedef struct _fx_T2SB { fx_str_t t0; bool t1; @@ -2101,6 +2096,11 @@ typedef struct _fx_LT2SB_data_t { struct _fx_T2SB hd; } _fx_LT2SB_data_t, *_fx_LT2SB; +typedef struct _fx_Ta2LN14Lexer__token_t { + struct _fx_LN14Lexer__token_t_data_t* t0; + struct _fx_LN14Lexer__token_t_data_t* t1; +} _fx_Ta2LN14Lexer__token_t; + typedef struct _fx_T2SLS { fx_str_t t0; struct _fx_LS_data_t* t1; @@ -2176,14 +2176,6 @@ typedef struct _fx_T5BBLSBS { fx_str_t t4; } _fx_T5BBLSBS; -typedef struct _fx_T5BBLSBLS { - bool t0; - bool t1; - struct _fx_LS_data_t* t2; - bool t3; - struct _fx_LS_data_t* t4; -} _fx_T5BBLSBLS; - typedef struct _fx_Ta3i { int_ t0; int_ t1; @@ -8001,26 +7993,6 @@ static int _fx_cons_LR17C_form__cmodule_t( FX_MAKE_LIST_IMPL(_fx_LR17C_form__cmodule_t, _fx_copy_R17C_form__cmodule_t); } -static void _fx_free_T2LN14Lexer__token_tB(struct _fx_T2LN14Lexer__token_tB* dst) -{ - _fx_free_LN14Lexer__token_t(&dst->t0); -} - -static void _fx_copy_T2LN14Lexer__token_tB(struct _fx_T2LN14Lexer__token_tB* src, struct _fx_T2LN14Lexer__token_tB* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - dst->t1 = src->t1; -} - -static void _fx_make_T2LN14Lexer__token_tB( - struct _fx_LN14Lexer__token_t_data_t* t0, - bool t1, - struct _fx_T2LN14Lexer__token_tB* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - fx_result->t1 = t1; -} - static void _fx_free_T2SB(struct _fx_T2SB* dst) { fx_free_str(&dst->t0); @@ -8048,6 +8020,27 @@ static int _fx_cons_LT2SB(struct _fx_T2SB* hd, struct _fx_LT2SB_data_t* tl, bool FX_MAKE_LIST_IMPL(_fx_LT2SB, _fx_copy_T2SB); } +static void _fx_free_Ta2LN14Lexer__token_t(struct _fx_Ta2LN14Lexer__token_t* dst) +{ + _fx_free_LN14Lexer__token_t(&dst->t0); + _fx_free_LN14Lexer__token_t(&dst->t1); +} + +static void _fx_copy_Ta2LN14Lexer__token_t(struct _fx_Ta2LN14Lexer__token_t* src, struct _fx_Ta2LN14Lexer__token_t* dst) +{ + FX_COPY_PTR(src->t0, &dst->t0); + FX_COPY_PTR(src->t1, &dst->t1); +} + +static void _fx_make_Ta2LN14Lexer__token_t( + struct _fx_LN14Lexer__token_t_data_t* t0, + struct _fx_LN14Lexer__token_t_data_t* t1, + struct _fx_Ta2LN14Lexer__token_t* fx_result) +{ + FX_COPY_PTR(t0, &fx_result->t0); + FX_COPY_PTR(t1, &fx_result->t1); +} + static void _fx_free_T2SLS(struct _fx_T2SLS* dst) { fx_free_str(&dst->t0); @@ -8302,36 +8295,6 @@ static void _fx_make_T5BBLSBS(bool t0, bool t1, struct _fx_LS_data_t* t2, bool t fx_copy_str(t4, &fx_result->t4); } -static void _fx_free_T5BBLSBLS(struct _fx_T5BBLSBLS* dst) -{ - _fx_free_LS(&dst->t2); - _fx_free_LS(&dst->t4); -} - -static void _fx_copy_T5BBLSBLS(struct _fx_T5BBLSBLS* src, struct _fx_T5BBLSBLS* dst) -{ - dst->t0 = src->t0; - dst->t1 = src->t1; - FX_COPY_PTR(src->t2, &dst->t2); - dst->t3 = src->t3; - FX_COPY_PTR(src->t4, &dst->t4); -} - -static void _fx_make_T5BBLSBLS( - bool t0, - bool t1, - struct _fx_LS_data_t* t2, - bool t3, - struct _fx_LS_data_t* t4, - struct _fx_T5BBLSBLS* fx_result) -{ - fx_result->t0 = t0; - fx_result->t1 = t1; - FX_COPY_PTR(t2, &fx_result->t2); - fx_result->t3 = t3; - FX_COPY_PTR(t4, &fx_result->t4); -} - static void _fx_free_T2LR17C_form__cmodule_tB(struct _fx_T2LR17C_form__cmodule_tB* dst) { _fx_free_LR17C_form__cmodule_t(&dst->t0); @@ -8880,68 +8843,61 @@ static int _fx_M8CompilerFM6qsort_v5iiA1EFPB2EEi( } } } - int_ __fold_result___0 = lo_2; + int_ i0_0 = lo_2; int_ n_0 = FX_LOOP_COUNT(lo_2, hi_2, 1); for (int_ j_0 = 0; j_0 < n_0; j_0++) { fx_exn_t v_9 = {0}; int_ j_1 = lo_2 + j_0 * 1; - int_ i0_0 = __fold_result___0; FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, j_1), _fx_catch_0); fx_copy_exn(FX_PTR_1D(fx_exn_t, *arr_0, j_1), &v_9); bool v_10; FX_CALL(lt_0->fp(&v_9, &p_1, &v_10, lt_0->fcv), _fx_catch_0); - int_ v_11; if (v_10) { - _fx_M8CompilerFM6_swap_v3A1Eii(arr_0, i0_0, j_1, 0); v_11 = i0_0 + 1; + _fx_M8CompilerFM6_swap_v3A1Eii(arr_0, i0_0, j_1, 0); i0_0 = i0_0 + 1; } - else { - v_11 = i0_0; - } - __fold_result___0 = v_11; _fx_catch_0: ; fx_free_exn(&v_9); FX_CHECK_EXN(_fx_catch_2); } - int_ i0_1 = __fold_result___0; - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_1), _fx_catch_2); - fx_copy_exn(FX_PTR_1D(fx_exn_t, *arr_0, i0_1), &a_1); + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_0), _fx_catch_2); + fx_copy_exn(FX_PTR_1D(fx_exn_t, *arr_0, i0_0), &a_1); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); - fx_exn_t* v_12 = FX_PTR_1D(fx_exn_t, *arr_0, hi_2); + fx_exn_t* v_11 = FX_PTR_1D(fx_exn_t, *arr_0, hi_2); + fx_free_exn(v_11); + fx_copy_exn(&a_1, v_11); + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_0), _fx_catch_2); + fx_exn_t* v_12 = FX_PTR_1D(fx_exn_t, *arr_0, i0_0); fx_free_exn(v_12); - fx_copy_exn(&a_1, v_12); - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_1), _fx_catch_2); - fx_exn_t* v_13 = FX_PTR_1D(fx_exn_t, *arr_0, i0_1); - fx_free_exn(v_13); - fx_copy_exn(&p_1, v_13); + fx_copy_exn(&p_1, v_12); int_ i1_0 = hi_2; - int_ n_1 = FX_LOOP_COUNT(i0_1, hi_2, 1); + int_ n_1 = FX_LOOP_COUNT(i0_0, hi_2, 1); for (int_ j_2 = 0; j_2 < n_1; j_2++) { - fx_exn_t v_14 = {0}; - int_ j_3 = i0_1 + j_2 * 1; - int_ v_15 = j_3 + 1; - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, v_15), _fx_catch_1); - fx_copy_exn(FX_PTR_1D(fx_exn_t, *arr_0, v_15), &v_14); - bool v_16; - FX_CALL(lt_0->fp(&p_1, &v_14, &v_16, lt_0->fcv), _fx_catch_1); - if (v_16) { + fx_exn_t v_13 = {0}; + int_ j_3 = i0_0 + j_2 * 1; + int_ v_14 = j_3 + 1; + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, v_14), _fx_catch_1); + fx_copy_exn(FX_PTR_1D(fx_exn_t, *arr_0, v_14), &v_13); + bool v_15; + FX_CALL(lt_0->fp(&p_1, &v_13, &v_15, lt_0->fcv), _fx_catch_1); + if (v_15) { i1_0 = j_3; FX_BREAK(_fx_catch_1); } _fx_catch_1: ; - fx_free_exn(&v_14); + fx_free_exn(&v_13); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_2); } - if (i0_1 - lo_2 < hi_2 - i1_0) { + if (i0_0 - lo_2 < hi_2 - i1_0) { if (i1_0 < prefix_0) { FX_CALL(_fx_M8CompilerFM6qsort_v5iiA1EFPB2EEi(i1_0 + 1, hi_2, arr_0, lt_0, prefix_0, 0), _fx_catch_2); } lo_1 = lo_2; - hi_1 = i0_1 - 1; + hi_1 = i0_0 - 1; } else { - FX_CALL(_fx_M8CompilerFM6qsort_v5iiA1EFPB2EEi(lo_2, i0_1 - 1, arr_0, lt_0, prefix_0, 0), _fx_catch_2); + FX_CALL(_fx_M8CompilerFM6qsort_v5iiA1EFPB2EEi(lo_2, i0_0 - 1, arr_0, lt_0, prefix_0, 0), _fx_catch_2); if (i1_0 < prefix_0) { lo_1 = i1_0 + 1; hi_1 = hi_2; } @@ -8955,17 +8911,17 @@ static int _fx_M8CompilerFM6qsort_v5iiA1EFPB2EEi( fx_copy_exn(FX_PTR_1D(fx_exn_t, *arr_0, lo_2), &a_2); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); fx_copy_exn(FX_PTR_1D(fx_exn_t, *arr_0, hi_2), &b_1); - bool v_17; - FX_CALL(lt_0->fp(&b_1, &a_2, &v_17, lt_0->fcv), _fx_catch_2); - if (v_17) { + bool v_16; + FX_CALL(lt_0->fp(&b_1, &a_2, &v_16, lt_0->fcv), _fx_catch_2); + if (v_16) { FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); - fx_exn_t* v_18 = FX_PTR_1D(fx_exn_t, *arr_0, hi_2); - fx_free_exn(v_18); - fx_copy_exn(&a_2, v_18); + fx_exn_t* v_17 = FX_PTR_1D(fx_exn_t, *arr_0, hi_2); + fx_free_exn(v_17); + fx_copy_exn(&a_2, v_17); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, lo_2), _fx_catch_2); - fx_exn_t* v_19 = FX_PTR_1D(fx_exn_t, *arr_0, lo_2); - fx_free_exn(v_19); - fx_copy_exn(&b_1, v_19); + fx_exn_t* v_18 = FX_PTR_1D(fx_exn_t, *arr_0, lo_2); + fx_free_exn(v_18); + fx_copy_exn(&b_1, v_18); FX_BREAK(_fx_catch_2); } else { @@ -8994,28 +8950,27 @@ _fx_cleanup: ; FX_EXTERN_C int _fx_M8CompilerFM3revLS1LS(struct _fx_LS_data_t* l_0, struct _fx_LS_data_t** fx_result, void* fx_fv) { - _fx_LS __fold_result___0 = 0; + _fx_LS res_0 = 0; int fx_status = 0; _fx_LS lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LS r_0 = 0; + _fx_LS v_0 = 0; fx_str_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LS(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LS(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LS(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LS(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LS(&r_0); + if (v_0) { + _fx_free_LS(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LS(&__fold_result___0); + if (res_0) { + _fx_free_LS(&res_0); } return fx_status; } @@ -9077,11 +9032,12 @@ FX_EXTERN_C int _fx_M8CompilerFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1S int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1S* v_2 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, *ht_table_0, tabsz_0); - _fx_free_Rt24Hashset__hashset_entry_t1S(v_2); - _fx_copy_Rt24Hashset__hashset_entry_t1S(entry_0, v_2); + _fx_Rt24Hashset__hashset_entry_t1S* v_3 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, *ht_table_0, tabsz_0); + _fx_free_Rt24Hashset__hashset_entry_t1S(v_3); + _fx_copy_Rt24Hashset__hashset_entry_t1S(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -9133,26 +9089,27 @@ FX_EXTERN_C int _fx_M8CompilerFM4growv2Nt10Hashset__t1Si( for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt24Hashset__hashset_entry_t1S v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1S* v_3 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt24Hashset__hashset_entry_t1S(FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M8CompilerFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1SRt24Hashset__hashset_entry_t1S(tabsz_0, - &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt24Hashset__hashset_entry_t1S(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -9300,17 +9257,19 @@ FX_EXTERN_C int _fx_M8CompilerFM4add_v3Nt10Hashset__t1SSq( } if (t_1) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_)(FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1S* v_10 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -9320,11 +9279,12 @@ FX_EXTERN_C int _fx_M8CompilerFM4add_v3Nt10Hashset__t1SSq( } _fx_make_Rt24Hashset__hashset_entry_t1S(hv_0, k_0, &v_2); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt24Hashset__hashset_entry_t1S* v_8 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0); - _fx_free_Rt24Hashset__hashset_entry_t1S(v_8); - _fx_copy_Rt24Hashset__hashset_entry_t1S(&v_2, v_8); + _fx_Rt24Hashset__hashset_entry_t1S* v_11 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0); + _fx_free_Rt24Hashset__hashset_entry_t1S(v_11); + _fx_copy_Rt24Hashset__hashset_entry_t1S(&v_2, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -9351,13 +9311,14 @@ FX_EXTERN_C int _fx_M8CompilerFM4listLS1Nt10Hashset__t1S( int_ v_0 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_0; j_0++) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, j_0)->hv >= 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1S* v_1 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, j_0); + if (v_1->hv >= 9223372036854775808ULL) { FX_CONTINUE(_fx_catch_0); } FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, j_0), _fx_catch_0); + _fx_Rt24Hashset__hashset_entry_t1S* v_2 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, j_0); _fx_LS node_0 = 0; - FX_CALL(_fx_cons_LS(&FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, j_0)->key, 0, false, &node_0), - _fx_catch_0); + FX_CALL(_fx_cons_LS(&v_2->key, 0, false, &node_0), _fx_catch_0); FX_LIST_APPEND(*fx_result, lstend_0, node_0); _fx_catch_0: ; @@ -9566,7 +9527,6 @@ FX_EXTERN_C int _fx_M8CompilerFM12get_preambleLN14Lexer__token_t1S( _fx_LN14Lexer__token_t preamble_0 = 0; fx_str_t v_0 = {0}; fx_str_t bare_name_0 = {0}; - _fx_T2LN14Lexer__token_tB __fold_result___0 = {0}; _fx_T2SB v_1 = {0}; _fx_T2SB v_2 = {0}; _fx_T2SB v_3 = {0}; @@ -9576,14 +9536,13 @@ FX_EXTERN_C int _fx_M8CompilerFM12get_preambleLN14Lexer__token_t1S( _fx_T2SB v_7 = {0}; _fx_T2SB v_8 = {0}; _fx_LT2SB v_9 = 0; - _fx_T2LN14Lexer__token_tB v_10 = {0}; - _fx_LN14Lexer__token_t __fold_result___1 = 0; - _fx_LT2SN17Options__optval_t v_11 = 0; + _fx_LN14Lexer__token_t p_0 = 0; + _fx_LT2SN17Options__optval_t v_10 = 0; int fx_status = 0; - if (_fx_g12Options__opt.use_preamble) { + bool v_11 = _fx_g12Options__opt.use_preamble; + if (v_11) { FX_CALL(_fx_M8FilenameFM8basenameS1S(mfname_0, &v_0, 0), _fx_cleanup); FX_CALL(_fx_M8FilenameFM16remove_extensionS1S(&v_0, &bare_name_0, 0), _fx_cleanup); - _fx_make_T2LN14Lexer__token_tB(0, false, &__fold_result___0); fx_str_t slit_0 = FX_MAKE_STR("Builtins"); _fx_make_T2SB(&slit_0, true, &v_1); fx_str_t slit_1 = FX_MAKE_STR("Math"); @@ -9611,151 +9570,139 @@ FX_EXTERN_C int _fx_M8CompilerFM12get_preambleLN14Lexer__token_t1S( _fx_LT2SB lst_0 = v_9; for (; lst_0; lst_0 = lst_0->tl) { fx_str_t mname_0 = {0}; - _fx_T2LN14Lexer__token_tB v_12 = {0}; - _fx_LN14Lexer__token_t preamble_1 = 0; - _fx_T2LN14Lexer__token_tB v_13 = {0}; + _fx_N14Lexer__token_t v_12 = {0}; + _fx_N14Lexer__token_t v_13 = {0}; _fx_N14Lexer__token_t v_14 = {0}; - _fx_N14Lexer__token_t v_15 = {0}; - _fx_N14Lexer__token_t v_16 = {0}; + _fx_LN14Lexer__token_t v_15 = 0; + _fx_Ta2LN14Lexer__token_t v_16 = {0}; _fx_LN14Lexer__token_t v_17 = 0; - _fx_LN14Lexer__token_t v_18 = 0; + _fx_N14Lexer__token_t v_18 = {0}; _fx_N14Lexer__token_t v_19 = {0}; - _fx_N14Lexer__token_t v_20 = {0}; - _fx_LN14Lexer__token_t v_21 = 0; + _fx_LN14Lexer__token_t v_20 = 0; + _fx_Ta2LN14Lexer__token_t v_21 = {0}; _fx_LN14Lexer__token_t v_22 = 0; _fx_T2SB* __pat___0 = &lst_0->hd; fx_copy_str(&__pat___0->t0, &mname_0); - _fx_copy_T2LN14Lexer__token_tB(&__fold_result___0, &v_12); - FX_COPY_PTR(v_12.t0, &preamble_1); - bool found_0 = v_12.t1; - if (found_0) { - _fx_make_T2LN14Lexer__token_tB(preamble_1, found_0, &v_13); + bool v_23 = _fx_F6__eq__B2SS(&bare_name_0, &mname_0, 0); + if (v_23) { + FX_BREAK(_fx_catch_4); } - else { - bool v_23 = _fx_F6__eq__B2SS(&bare_name_0, &mname_0, 0); - if (v_23) { - _fx_make_T2LN14Lexer__token_tB(preamble_1, true, &v_13); + if (__pat___0->t1) { + _fx_M5LexerFM5IDENTN14Lexer__token_t2BS(true, &mname_0, &v_12); + _fx_M5LexerFM6IMPORTN14Lexer__token_t1B(false, &v_13); + _fx_M5LexerFM4STARN14Lexer__token_t1B(true, &v_14); + FX_CALL(_fx_cons_LN14Lexer__token_t(&_fx_g19Compiler__SEMICOLON, 0, true, &v_15), _fx_catch_4); + FX_CALL(_fx_cons_LN14Lexer__token_t(&v_14, v_15, false, &v_15), _fx_catch_4); + FX_CALL(_fx_cons_LN14Lexer__token_t(&v_13, v_15, false, &v_15), _fx_catch_4); + FX_CALL(_fx_cons_LN14Lexer__token_t(&v_12, v_15, false, &v_15), _fx_catch_4); + FX_CALL(_fx_cons_LN14Lexer__token_t(&_fx_g14Compiler__FROM, v_15, false, &v_15), _fx_catch_4); + _fx_make_Ta2LN14Lexer__token_t(preamble_0, v_15, &v_16); + if (v_16.t0 == 0) { + FX_COPY_PTR(v_15, &v_17); } - else if (__pat___0->t1) { - _fx_M5LexerFM5IDENTN14Lexer__token_t2BS(true, &mname_0, &v_14); - _fx_M5LexerFM6IMPORTN14Lexer__token_t1B(false, &v_15); - _fx_M5LexerFM4STARN14Lexer__token_t1B(true, &v_16); - FX_CALL(_fx_cons_LN14Lexer__token_t(&_fx_g19Compiler__SEMICOLON, 0, true, &v_17), _fx_catch_4); - FX_CALL(_fx_cons_LN14Lexer__token_t(&v_16, v_17, false, &v_17), _fx_catch_4); - FX_CALL(_fx_cons_LN14Lexer__token_t(&v_15, v_17, false, &v_17), _fx_catch_4); - FX_CALL(_fx_cons_LN14Lexer__token_t(&v_14, v_17, false, &v_17), _fx_catch_4); - FX_CALL(_fx_cons_LN14Lexer__token_t(&_fx_g14Compiler__FROM, v_17, false, &v_17), _fx_catch_4); - if (preamble_1 == 0) { - FX_COPY_PTR(v_17, &v_18); - } - else if (v_17 == 0) { - FX_COPY_PTR(preamble_1, &v_18); + else if (v_16.t1 == 0) { + FX_COPY_PTR(preamble_0, &v_17); + } + else { + _fx_LN14Lexer__token_t v_24 = 0; + _fx_LN14Lexer__token_t lstend_0 = 0; + _fx_LN14Lexer__token_t lst_1 = preamble_0; + for (; lst_1; lst_1 = lst_1->tl) { + _fx_N14Lexer__token_t* x_0 = &lst_1->hd; + _fx_LN14Lexer__token_t node_0 = 0; + FX_CALL(_fx_cons_LN14Lexer__token_t(x_0, 0, false, &node_0), _fx_catch_0); + FX_LIST_APPEND(v_24, lstend_0, node_0); + + _fx_catch_0: ; + FX_CHECK_EXN(_fx_catch_1); } - else { - _fx_LN14Lexer__token_t v_24 = 0; - _fx_LN14Lexer__token_t lstend_0 = 0; - _fx_LN14Lexer__token_t lst_1 = preamble_1; - for (; lst_1; lst_1 = lst_1->tl) { - _fx_N14Lexer__token_t* x_0 = &lst_1->hd; - _fx_LN14Lexer__token_t node_0 = 0; - FX_CALL(_fx_cons_LN14Lexer__token_t(x_0, 0, false, &node_0), _fx_catch_0); - FX_LIST_APPEND(v_24, lstend_0, node_0); - - _fx_catch_0: ; - FX_CHECK_EXN(_fx_catch_1); - } - _fx_M8CompilerFM5link2LN14Lexer__token_t2LN14Lexer__token_tLN14Lexer__token_t(v_24, v_17, &v_18, 0); - - _fx_catch_1: ; - if (v_24) { - _fx_free_LN14Lexer__token_t(&v_24); - } + _fx_M8CompilerFM5link2LN14Lexer__token_t2LN14Lexer__token_tLN14Lexer__token_t(v_24, v_15, &v_17, 0); + + _fx_catch_1: ; + if (v_24) { + _fx_free_LN14Lexer__token_t(&v_24); } - FX_CHECK_EXN(_fx_catch_4); - _fx_make_T2LN14Lexer__token_tB(v_18, false, &v_13); + } + FX_CHECK_EXN(_fx_catch_4); + _fx_free_LN14Lexer__token_t(&preamble_0); + FX_COPY_PTR(v_17, &preamble_0); + } + else { + _fx_M5LexerFM6IMPORTN14Lexer__token_t1B(true, &v_18); + _fx_M5LexerFM5IDENTN14Lexer__token_t2BS(true, &mname_0, &v_19); + FX_CALL(_fx_cons_LN14Lexer__token_t(&_fx_g19Compiler__SEMICOLON, 0, true, &v_20), _fx_catch_4); + FX_CALL(_fx_cons_LN14Lexer__token_t(&v_19, v_20, false, &v_20), _fx_catch_4); + FX_CALL(_fx_cons_LN14Lexer__token_t(&v_18, v_20, false, &v_20), _fx_catch_4); + _fx_make_Ta2LN14Lexer__token_t(preamble_0, v_20, &v_21); + if (v_21.t0 == 0) { + FX_COPY_PTR(v_20, &v_22); + } + else if (v_21.t1 == 0) { + FX_COPY_PTR(preamble_0, &v_22); } else { - _fx_M5LexerFM6IMPORTN14Lexer__token_t1B(true, &v_19); - _fx_M5LexerFM5IDENTN14Lexer__token_t2BS(true, &mname_0, &v_20); - FX_CALL(_fx_cons_LN14Lexer__token_t(&_fx_g19Compiler__SEMICOLON, 0, true, &v_21), _fx_catch_4); - FX_CALL(_fx_cons_LN14Lexer__token_t(&v_20, v_21, false, &v_21), _fx_catch_4); - FX_CALL(_fx_cons_LN14Lexer__token_t(&v_19, v_21, false, &v_21), _fx_catch_4); - if (preamble_1 == 0) { - FX_COPY_PTR(v_21, &v_22); - } - else if (v_21 == 0) { - FX_COPY_PTR(preamble_1, &v_22); + _fx_LN14Lexer__token_t v_25 = 0; + _fx_LN14Lexer__token_t lstend_1 = 0; + _fx_LN14Lexer__token_t lst_2 = preamble_0; + for (; lst_2; lst_2 = lst_2->tl) { + _fx_N14Lexer__token_t* x_1 = &lst_2->hd; + _fx_LN14Lexer__token_t node_1 = 0; + FX_CALL(_fx_cons_LN14Lexer__token_t(x_1, 0, false, &node_1), _fx_catch_2); + FX_LIST_APPEND(v_25, lstend_1, node_1); + + _fx_catch_2: ; + FX_CHECK_EXN(_fx_catch_3); } - else { - _fx_LN14Lexer__token_t v_25 = 0; - _fx_LN14Lexer__token_t lstend_1 = 0; - _fx_LN14Lexer__token_t lst_2 = preamble_1; - for (; lst_2; lst_2 = lst_2->tl) { - _fx_N14Lexer__token_t* x_1 = &lst_2->hd; - _fx_LN14Lexer__token_t node_1 = 0; - FX_CALL(_fx_cons_LN14Lexer__token_t(x_1, 0, false, &node_1), _fx_catch_2); - FX_LIST_APPEND(v_25, lstend_1, node_1); - - _fx_catch_2: ; - FX_CHECK_EXN(_fx_catch_3); - } - _fx_M8CompilerFM5link2LN14Lexer__token_t2LN14Lexer__token_tLN14Lexer__token_t(v_25, v_21, &v_22, 0); - - _fx_catch_3: ; - if (v_25) { - _fx_free_LN14Lexer__token_t(&v_25); - } + _fx_M8CompilerFM5link2LN14Lexer__token_t2LN14Lexer__token_tLN14Lexer__token_t(v_25, v_20, &v_22, 0); + + _fx_catch_3: ; + if (v_25) { + _fx_free_LN14Lexer__token_t(&v_25); } - FX_CHECK_EXN(_fx_catch_4); - _fx_make_T2LN14Lexer__token_tB(v_22, false, &v_13); } + FX_CHECK_EXN(_fx_catch_4); + _fx_free_LN14Lexer__token_t(&preamble_0); + FX_COPY_PTR(v_22, &preamble_0); } - _fx_free_T2LN14Lexer__token_tB(&__fold_result___0); - _fx_copy_T2LN14Lexer__token_tB(&v_13, &__fold_result___0); _fx_catch_4: ; if (v_22) { _fx_free_LN14Lexer__token_t(&v_22); } - if (v_21) { - _fx_free_LN14Lexer__token_t(&v_21); + _fx_free_Ta2LN14Lexer__token_t(&v_21); + if (v_20) { + _fx_free_LN14Lexer__token_t(&v_20); } - _fx_free_N14Lexer__token_t(&v_20); _fx_free_N14Lexer__token_t(&v_19); - if (v_18) { - _fx_free_LN14Lexer__token_t(&v_18); - } + _fx_free_N14Lexer__token_t(&v_18); if (v_17) { _fx_free_LN14Lexer__token_t(&v_17); } - _fx_free_N14Lexer__token_t(&v_16); - _fx_free_N14Lexer__token_t(&v_15); - _fx_free_N14Lexer__token_t(&v_14); - _fx_free_T2LN14Lexer__token_tB(&v_13); - if (preamble_1) { - _fx_free_LN14Lexer__token_t(&preamble_1); + _fx_free_Ta2LN14Lexer__token_t(&v_16); + if (v_15) { + _fx_free_LN14Lexer__token_t(&v_15); } - _fx_free_T2LN14Lexer__token_tB(&v_12); + _fx_free_N14Lexer__token_t(&v_14); + _fx_free_N14Lexer__token_t(&v_13); + _fx_free_N14Lexer__token_t(&v_12); FX_FREE_STR(&mname_0); + FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T2LN14Lexer__token_tB(&__fold_result___0, &v_10); - FX_COPY_PTR(v_10.t0, &preamble_0); } - FX_COPY_PTR(preamble_0, &__fold_result___1); - FX_COPY_PTR(_fx_g12Options__opt.defines, &v_11); - _fx_LT2SN17Options__optval_t lst_3 = v_11; + FX_COPY_PTR(preamble_0, &p_0); + FX_COPY_PTR(_fx_g12Options__opt.defines, &v_10); + _fx_LT2SN17Options__optval_t lst_3 = v_10; for (; lst_3; lst_3 = lst_3->tl) { fx_str_t n_0 = {0}; _fx_N17Options__optval_t v_26 = {0}; - _fx_LN14Lexer__token_t p_0 = 0; _fx_N10Ast__lit_t v_27 = {0}; _fx_N14Lexer__token_t v_28 = {0}; _fx_N14Lexer__token_t v_29 = {0}; + _fx_LN14Lexer__token_t v_30 = 0; _fx_T2SN17Options__optval_t* __pat___1 = &lst_3->hd; fx_copy_str(&__pat___1->t0, &n_0); _fx_copy_N17Options__optval_t(&__pat___1->t1, &v_26); - FX_COPY_PTR(__fold_result___1, &p_0); int tag_0 = v_26.tag; if (tag_0 == 1) { _fx_M3AstFM7LitBoolN10Ast__lit_t1B(v_26.u.OptBool, &v_27); @@ -9772,24 +9719,24 @@ FX_EXTERN_C int _fx_M8CompilerFM12get_preambleLN14Lexer__token_t1S( FX_CHECK_EXN(_fx_catch_5); _fx_M5LexerFM5IDENTN14Lexer__token_t2BS(true, &n_0, &v_28); _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_27, &v_29); - FX_CALL(_fx_cons_LN14Lexer__token_t(&v_29, p_0, false, &p_0), _fx_catch_5); - FX_CALL(_fx_cons_LN14Lexer__token_t(&v_28, p_0, false, &p_0), _fx_catch_5); - FX_CALL(_fx_cons_LN14Lexer__token_t(&_fx_g19Compiler__PP_DEFINE, p_0, false, &p_0), _fx_catch_5); - _fx_free_LN14Lexer__token_t(&__fold_result___1); - FX_COPY_PTR(p_0, &__fold_result___1); + FX_CALL(_fx_cons_LN14Lexer__token_t(&v_29, p_0, true, &v_30), _fx_catch_5); + FX_CALL(_fx_cons_LN14Lexer__token_t(&v_28, v_30, false, &v_30), _fx_catch_5); + FX_CALL(_fx_cons_LN14Lexer__token_t(&_fx_g19Compiler__PP_DEFINE, v_30, false, &v_30), _fx_catch_5); + _fx_free_LN14Lexer__token_t(&p_0); + FX_COPY_PTR(v_30, &p_0); _fx_catch_5: ; + if (v_30) { + _fx_free_LN14Lexer__token_t(&v_30); + } _fx_free_N14Lexer__token_t(&v_29); _fx_free_N14Lexer__token_t(&v_28); _fx_free_N10Ast__lit_t(&v_27); - if (p_0) { - _fx_free_LN14Lexer__token_t(&p_0); - } _fx_free_N17Options__optval_t(&v_26); FX_FREE_STR(&n_0); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, fx_result); + FX_COPY_PTR(p_0, fx_result); _fx_cleanup: ; if (preamble_0) { @@ -9797,7 +9744,6 @@ _fx_cleanup: ; } FX_FREE_STR(&v_0); FX_FREE_STR(&bare_name_0); - _fx_free_T2LN14Lexer__token_tB(&__fold_result___0); _fx_free_T2SB(&v_1); _fx_free_T2SB(&v_2); _fx_free_T2SB(&v_3); @@ -9809,12 +9755,11 @@ _fx_cleanup: ; if (v_9) { _fx_free_LT2SB(&v_9); } - _fx_free_T2LN14Lexer__token_tB(&v_10); - if (__fold_result___1) { - _fx_free_LN14Lexer__token_t(&__fold_result___1); + if (p_0) { + _fx_free_LN14Lexer__token_t(&p_0); } - if (v_11) { - _fx_free_LT2SN17Options__optval_t(&v_11); + if (v_10) { + _fx_free_LT2SN17Options__optval_t(&v_10); } return fx_status; } @@ -10158,13 +10103,14 @@ FX_EXTERN_C int _fx_M8CompilerFM9parse_allB2SLS( _fx_LS inc_dirs_0 = 0; _fx_LN14Lexer__token_t preamble_0 = 0; _fx_Li v_9 = 0; - _fx_Li __fold_result___0 = 0; + _fx_Li res_1 = 0; _fx_Li v_10 = 0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_1), _fx_catch_9); - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_1))->u.defmodule_t.t7 = true; + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_1); + v_11->u.defmodule_t.t7 = true; FX_CALL(_fx_M8FilenameFM7dirnameS1S(&mfname_0, &dir1_0, 0), _fx_catch_9); - bool v_11 = _fx_F6__eq__B2SS(&dir1_0, &dir0_0, 0); - if (!v_11) { + bool v_12 = _fx_F6__eq__B2SS(&dir1_0, &dir0_0, 0); + if (!v_12) { FX_CALL(_fx_cons_LS(&dir1_0, 0, true, &v_8), _fx_catch_9); } if (v_8 == 0) { @@ -10174,60 +10120,60 @@ FX_EXTERN_C int _fx_M8CompilerFM9parse_allB2SLS( FX_COPY_PTR(v_8, &inc_dirs_0); } else { - _fx_LS v_12 = 0; + _fx_LS v_13 = 0; _fx_LS lstend_3 = 0; _fx_LS lst_3 = v_8; for (; lst_3; lst_3 = lst_3->tl) { fx_str_t* x_2 = &lst_3->hd; _fx_LS node_3 = 0; FX_CALL(_fx_cons_LS(x_2, 0, false, &node_3), _fx_catch_5); - FX_LIST_APPEND(v_12, lstend_3, node_3); + FX_LIST_APPEND(v_13, lstend_3, node_3); _fx_catch_5: ; FX_CHECK_EXN(_fx_catch_6); } - _fx_M8CompilerFM5link2LS2LSLS(v_12, inc_dirs0_3, &inc_dirs_0, 0); + _fx_M8CompilerFM5link2LS2LSLS(v_13, inc_dirs0_3, &inc_dirs_0, 0); _fx_catch_6: ; - if (v_12) { - _fx_free_LS(&v_12); + if (v_13) { + _fx_free_LS(&v_13); } } FX_CHECK_EXN(_fx_catch_9); FX_CALL(_fx_M8CompilerFM12get_preambleLN14Lexer__token_t1S(&mfname_0, &preamble_0, 0), _fx_catch_9); - bool v_13; - FX_CALL(_fx_M6ParserFM5parseB3iLN14Lexer__token_tLS(m_idx_1, preamble_0, inc_dirs_0, &v_13, 0), _fx_catch_9); - ok_0 = (bool)(ok_0 & v_13); + bool v_14; + FX_CALL(_fx_M6ParserFM5parseB3iLN14Lexer__token_tLS(m_idx_1, preamble_0, inc_dirs_0, &v_14, 0), _fx_catch_9); + ok_0 = (bool)(ok_0 & v_14); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_1), _fx_catch_9); - FX_COPY_PTR((*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_1))->u.defmodule_t.t5, &v_9); + _fx_N16Ast__defmodule_t v_15 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_1); + FX_COPY_PTR(v_15->u.defmodule_t.t5, &v_9); _fx_Li lst_4 = v_9; for (; lst_4; lst_4 = lst_4->tl) { - _fx_Li r_0 = 0; + _fx_Li v_16 = 0; int_ a_0 = lst_4->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_Li(a_0, r_0, false, &r_0), _fx_catch_7); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_Li(a_0, res_1, true, &v_16), _fx_catch_7); + FX_FREE_LIST_SIMPLE(&res_1); + FX_COPY_PTR(v_16, &res_1); _fx_catch_7: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_16); FX_CHECK_EXN(_fx_catch_9); } - FX_COPY_PTR(__fold_result___0, &v_10); + FX_COPY_PTR(res_1, &v_10); _fx_Li lst_5 = v_10; for (; lst_5; lst_5 = lst_5->tl) { _fx_N16Ast__defmodule_t dep_minfo_0 = 0; - _fx_Li v_14 = 0; + _fx_Li v_17 = 0; int_ dep_0 = lst_5->hd; FX_CALL(_fx_M3AstFM10get_moduleN16Ast__defmodule_t1i(dep_0, &dep_minfo_0, 0), _fx_catch_8); if (!dep_minfo_0->u.defmodule_t.t7) { - FX_CALL(_fx_cons_Li(dep_0, queue_0, true, &v_14), _fx_catch_8); + FX_CALL(_fx_cons_Li(dep_0, queue_0, true, &v_17), _fx_catch_8); FX_FREE_LIST_SIMPLE(&queue_0); - FX_COPY_PTR(v_14, &queue_0); + FX_COPY_PTR(v_17, &queue_0); } _fx_catch_8: ; - FX_FREE_LIST_SIMPLE(&v_14); + FX_FREE_LIST_SIMPLE(&v_17); if (dep_minfo_0) { _fx_free_N16Ast__defmodule_t(&dep_minfo_0); } @@ -10246,82 +10192,82 @@ FX_EXTERN_C int _fx_M8CompilerFM9parse_allB2SLS( _fx_free_LN14Lexer__token_t(&preamble_0); } FX_FREE_LIST_SIMPLE(&v_9); - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_1); FX_FREE_LIST_SIMPLE(&v_10); if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_0); fx_status = 0; int tag_0 = exn_0.tag; if (tag_0 == _FX_EXN_E22LexerUtils__LexerError) { - fx_str_t v_15 = {0}; - fx_str_t v_16 = {0}; - fx_str_t v_17 = {0}; + fx_str_t v_18 = {0}; + fx_str_t v_19 = {0}; + fx_str_t v_20 = {0}; _fx_T2Ta2iS* vcase_0 = &FX_EXN_DATA(_fx_E22LexerUtils__LexerError_data_t, exn_0.data); - _fx_Ta2i* v_18 = &vcase_0->t0; - FX_CALL(_fx_F6stringS1i(v_18->t0, &v_15, 0), _fx_catch_10); - FX_CALL(_fx_F6stringS1i(v_18->t1, &v_16, 0), _fx_catch_10); + _fx_Ta2i* v_21 = &vcase_0->t0; + FX_CALL(_fx_F6stringS1i(v_21->t0, &v_18, 0), _fx_catch_10); + FX_CALL(_fx_F6stringS1i(v_21->t1, &v_19, 0), _fx_catch_10); fx_str_t slit_0 = FX_MAKE_STR(":"); fx_str_t slit_1 = FX_MAKE_STR(":"); fx_str_t slit_2 = FX_MAKE_STR(": error: "); fx_str_t* msg_0 = &vcase_0->t1; fx_str_t slit_3 = FX_MAKE_STR("\n"); { - const fx_str_t strs_0[] = { mfname_0, slit_0, v_15, slit_1, v_16, slit_2, *msg_0, slit_3 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 8, &v_17), _fx_catch_10); + const fx_str_t strs_0[] = { mfname_0, slit_0, v_18, slit_1, v_19, slit_2, *msg_0, slit_3 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 8, &v_20), _fx_catch_10); } - _fx_F12print_stringv1S(&v_17, 0); + _fx_F12print_stringv1S(&v_20, 0); fx_str_t slit_4 = FX_MAKE_STR("\n"); _fx_F12print_stringv1S(&slit_4, 0); ok_0 = false; _fx_catch_10: ; - FX_FREE_STR(&v_17); - FX_FREE_STR(&v_16); - FX_FREE_STR(&v_15); + FX_FREE_STR(&v_20); + FX_FREE_STR(&v_19); + FX_FREE_STR(&v_18); } else if (tag_0 == _FX_EXN_E18Parser__ParseError) { - fx_str_t v_19 = {0}; - fx_str_t v_20 = {0}; - fx_str_t v_21 = {0}; + fx_str_t v_22 = {0}; + fx_str_t v_23 = {0}; + fx_str_t v_24 = {0}; _fx_T2R10Ast__loc_tS* vcase_1 = &FX_EXN_DATA(_fx_E18Parser__ParseError_data_t, exn_0.data); _fx_R10Ast__loc_t* loc_0 = &vcase_1->t0; - FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(loc_0, &v_19, 0), _fx_catch_11); - FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(loc_0, &v_20, 0), _fx_catch_11); + FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(loc_0, &v_22, 0), _fx_catch_11); + FX_CALL(_fx_M3AstFM11loc_excerptS1RM5loc_t(loc_0, &v_23, 0), _fx_catch_11); fx_str_t slit_5 = FX_MAKE_STR(": error: "); fx_str_t* msg_1 = &vcase_1->t1; fx_str_t slit_6 = FX_MAKE_STR("\n"); { - const fx_str_t strs_1[] = { v_19, slit_5, *msg_1, v_20, slit_6 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 5, &v_21), _fx_catch_11); + const fx_str_t strs_1[] = { v_22, slit_5, *msg_1, v_23, slit_6 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 5, &v_24), _fx_catch_11); } - _fx_F12print_stringv1S(&v_21, 0); + _fx_F12print_stringv1S(&v_24, 0); fx_str_t slit_7 = FX_MAKE_STR("\n"); _fx_F12print_stringv1S(&slit_7, 0); ok_0 = false; _fx_catch_11: ; - FX_FREE_STR(&v_21); - FX_FREE_STR(&v_20); - FX_FREE_STR(&v_19); + FX_FREE_STR(&v_24); + FX_FREE_STR(&v_23); + FX_FREE_STR(&v_22); } else { - fx_str_t v_22 = {0}; - fx_str_t v_23 = {0}; - FX_CALL(_fx_F6stringS1E(&exn_0, &v_22, 0), _fx_catch_12); + fx_str_t v_25 = {0}; + fx_str_t v_26 = {0}; + FX_CALL(_fx_F6stringS1E(&exn_0, &v_25, 0), _fx_catch_12); fx_str_t slit_8 = FX_MAKE_STR(": exception "); fx_str_t slit_9 = FX_MAKE_STR(" occured"); { - const fx_str_t strs_2[] = { mfname_0, slit_8, v_22, slit_9 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 4, &v_23), _fx_catch_12); + const fx_str_t strs_2[] = { mfname_0, slit_8, v_25, slit_9 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 4, &v_26), _fx_catch_12); } - _fx_F12print_stringv1S(&v_23, 0); + _fx_F12print_stringv1S(&v_26, 0); fx_str_t slit_10 = FX_MAKE_STR("\n"); _fx_F12print_stringv1S(&slit_10, 0); ok_0 = false; _fx_catch_12: ; - FX_FREE_STR(&v_23); - FX_FREE_STR(&v_22); + FX_FREE_STR(&v_26); + FX_FREE_STR(&v_25); } FX_CHECK_EXN(_fx_catch_13); } @@ -10374,7 +10320,7 @@ FX_EXTERN_C int _fx_M8CompilerFM8toposortLi1LT2iLi( fx_arr_t graph_1 = {0}; fx_arr_t processed_0 = {0}; _fx_rLi result_ref_0 = 0; - _fx_Li __fold_result___0 = 0; + _fx_Li res_0 = 0; _fx_Li result_0 = 0; int fx_status = 0; _fx_Li* dstptr_0 = 0; @@ -10400,9 +10346,11 @@ FX_EXTERN_C int _fx_M8CompilerFM8toposortLi1LT2iLi( *dstptr_1 = false; } FX_CALL(_fx_make_rLi(0, &result_ref_0), _fx_cleanup); + _fx_Li* result_1 = &result_ref_0->data; for (int_ i_1 = 0; i_1 < nvtx_0; i_1++) { FX_CHKIDX(FX_CHKIDX1(processed_0, 0, i_1), _fx_catch_0); - if (*FX_PTR_1D(bool, processed_0, i_1)) { + bool v_0 = *FX_PTR_1D(bool, processed_0, i_1); + if (v_0) { FX_CONTINUE(_fx_catch_0); } FX_CALL(_fx_M8CompilerFM3dfsv5iLiA1LiA1BrLi(i_1, 0, &graph_1, &processed_0, result_ref_0, 0), _fx_catch_0); @@ -10411,21 +10359,20 @@ FX_EXTERN_C int _fx_M8CompilerFM8toposortLi1LT2iLi( FX_CHECK_CONTINUE(); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(result_ref_0->data, &result_0); + FX_COPY_PTR(*result_1, &result_0); _fx_Li lst_1 = result_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_Li r_0 = 0; + _fx_Li v_1 = 0; int_ a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_Li(a_0, r_0, false, &r_0), _fx_catch_1); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_Li(a_0, res_0, true, &v_1), _fx_catch_1); + FX_FREE_LIST_SIMPLE(&res_0); + FX_COPY_PTR(v_1, &res_0); _fx_catch_1: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_1); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; FX_FREE_ARR(&graph_1); @@ -10433,7 +10380,7 @@ _fx_cleanup: ; if (result_ref_0) { _fx_free_rLi(&result_ref_0); } - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_0); FX_FREE_LIST_SIMPLE(&result_0); return fx_status; } @@ -10502,7 +10449,8 @@ static int _fx_M8CompilerFM3dfsv5iLiA1LiA1BrLi( for (; lst_2; lst_2 = lst_2->tl) { int_ j_1 = lst_2->hd; FX_CHKIDX(FX_CHKIDX1(*processed_0, 0, j_1), _fx_catch_2); - if (*FX_PTR_1D(bool, *processed_0, j_1)) { + bool v_5 = *FX_PTR_1D(bool, *processed_0, j_1); + if (v_5) { FX_CONTINUE(_fx_catch_2); } FX_CALL(_fx_M8CompilerFM3dfsv5iLiA1LiA1BrLi(j_1, visited_1, graph_0, processed_0, result_ref_0, 0), _fx_catch_2); @@ -10515,7 +10463,8 @@ static int _fx_M8CompilerFM3dfsv5iLiA1LiA1BrLi( FX_FREE_LIST_SIMPLE(result_0); FX_COPY_PTR(v_3, result_0); FX_CHKIDX(FX_CHKIDX1(*processed_0, 0, i_0), _fx_cleanup); - *FX_PTR_1D(bool, *processed_0, i_0) = true; + bool* v_6 = FX_PTR_1D(bool, *processed_0, i_0); + *v_6 = true; _fx_cleanup: ; FX_FREE_LIST_SIMPLE(&deps_0); @@ -10607,8 +10556,9 @@ _fx_catch_0: ; } bool v_3 = _fx_F6__eq__B2SS(&cur_stamp_0, &old_stamp_0, 0); if (!v_3) { + bool v_4 = _fx_g12Options__opt.force_rebuild; bool t_0; - if (!_fx_g12Options__opt.force_rebuild) { + if (!v_4) { t_0 = FX_STR_LENGTH(old_stamp_0) != 0; } else { @@ -10668,12 +10618,12 @@ _fx_catch_0: ; fx_str_t new_kform_0 = {0}; fx_str_t old_kform_0 = {0}; fx_exn_t exn_2 = {0}; - _fx_T3BBS v_4 = {0}; + _fx_T3BBS v_5 = {0}; fx_exn_t exn_3 = {0}; - fx_str_t v_5 = {0}; + fx_str_t v_6 = {0}; fx_str_t status_j_0 = {0}; fx_str_t status_j_1 = {0}; - fx_str_t v_6 = {0}; + fx_str_t v_7 = {0}; _fx_R17K_form__kmodule_t rec_0 = {0}; _fx_R17K_form__kmodule_t* km_0 = &lst_0->hd; _fx_copy_R14Ast__pragmas_t(&km_0->km_pragmas, &km_pragmas_0); @@ -10717,14 +10667,14 @@ _fx_catch_0: ; bool have_o_0; FX_CALL(_fx_M8FilenameFM6existsB1S(&o_filename_0, &have_o_0, 0), _fx_catch_5); bool have_all_0 = (bool)((bool)(have_k_0 & have_c_0) & have_o_0); - bool t_1; + bool v_8; if (_fx_g12Options__opt.force_rebuild) { - t_1 = true; + v_8 = true; } else { - t_1 = !have_all_0; + v_8 = !have_all_0; } - if (t_1) { + if (v_8) { fx_str_t slit_9 = FX_MAKE_STR(""); fx_copy_str(&slit_9, &old_kform_0); } else { @@ -10756,9 +10706,9 @@ _fx_catch_0: ; FX_CHECK_EXN(_fx_catch_5); } } - bool v_7 = _fx_F6__eq__B2SS(&new_kform_0, &old_kform_0, 0); - if (v_7) { - fx_str_t slit_11 = FX_MAKE_STR(""); _fx_make_T3BBS(true, true, &slit_11, &v_4); + bool v_9 = _fx_F6__eq__B2SS(&new_kform_0, &old_kform_0, 0); + if (v_9) { + fx_str_t slit_11 = FX_MAKE_STR(""); _fx_make_T3BBS(true, true, &slit_11, &v_5); } else { bool well_written_0; @@ -10790,19 +10740,19 @@ _fx_catch_0: ; FX_CHECK_EXN(_fx_catch_5); } if (well_written_0) { - fx_str_t slit_12 = FX_MAKE_STR(""); fx_copy_str(&slit_12, &v_5); + fx_str_t slit_12 = FX_MAKE_STR(""); fx_copy_str(&slit_12, &v_6); } else if (_fx_g21Compiler__iscolorterm) { - fx_str_t slit_13 = FX_MAKE_STR("failed to write .k"); fx_copy_str(&slit_13, &v_5); + fx_str_t slit_13 = FX_MAKE_STR("failed to write .k"); fx_copy_str(&slit_13, &v_6); } else { - fx_str_t slit_14 = FX_MAKE_STR("failed to write .k"); fx_copy_str(&slit_14, &v_5); + fx_str_t slit_14 = FX_MAKE_STR("failed to write .k"); fx_copy_str(&slit_14, &v_6); } - _fx_make_T3BBS(well_written_0, false, &v_5, &v_4); + _fx_make_T3BBS(well_written_0, false, &v_6, &v_5); } - bool ok_j_0 = v_4.t0; - bool same_kform_0 = v_4.t1; - fx_copy_str(&v_4.t2, &status_j_0); + bool ok_j_0 = v_5.t0; + bool same_kform_0 = v_5.t1; + fx_copy_str(&v_5.t2, &status_j_0); ok_1 = (bool)(ok_1 & ok_j_0); if (!same_kform_0) { if (have_c_0) { @@ -10819,7 +10769,8 @@ _fx_catch_0: ; for (; lst_1; lst_1 = lst_1->tl) { int_ d_0 = lst_1->hd; FX_CHKIDX(FX_CHKIDX1(skip_flags_0, 0, d_0), _fx_catch_4); - if (!*FX_PTR_1D(bool, skip_flags_0, d_0)) { + bool v_10 = *FX_PTR_1D(bool, skip_flags_0, d_0); + if (!v_10) { __fold_result___0 = false; FX_BREAK(_fx_catch_4); } @@ -10848,11 +10799,12 @@ _fx_catch_0: ; fx_str_t slit_19 = FX_MAKE_STR(": "); { const fx_str_t strs_3[] = { slit_18, km_cname_0, slit_19, status_j_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 4, &v_6), _fx_catch_5); + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 4, &v_7), _fx_catch_5); } - FX_CALL(_fx_M3AstFM10pr_verbosev1S(&v_6, 0), _fx_catch_5); + FX_CALL(_fx_M3AstFM10pr_verbosev1S(&v_7, 0), _fx_catch_5); FX_CHKIDX(FX_CHKIDX1(skip_flags_0, 0, km_idx_0), _fx_catch_5); - *FX_PTR_1D(bool, skip_flags_0, km_idx_0) = skip_module_0; + bool* v_11 = FX_PTR_1D(bool, skip_flags_0, km_idx_0); + *v_11 = skip_module_0; _fx_make_R17K_form__kmodule_t(&km_0->km_name, km_0->km_idx, km_0->km_toposort_idx, &km_0->km_cname, km_0->km_top, km_0->km_deps, skip_module_0, km_0->km_main, &km_0->km_pragmas, &rec_0); _fx_LR17K_form__kmodule_t node_0 = 0; @@ -10861,12 +10813,12 @@ _fx_catch_0: ; _fx_catch_5: ; _fx_free_R17K_form__kmodule_t(&rec_0); - FX_FREE_STR(&v_6); + FX_FREE_STR(&v_7); FX_FREE_STR(&status_j_1); FX_FREE_STR(&status_j_0); - FX_FREE_STR(&v_5); + FX_FREE_STR(&v_6); fx_free_exn(&exn_3); - _fx_free_T3BBS(&v_4); + _fx_free_T3BBS(&v_5); fx_free_exn(&exn_2); FX_FREE_STR(&old_kform_0); FX_FREE_STR(&new_kform_0); @@ -11028,7 +10980,8 @@ FX_EXTERN_C int _fx_M8CompilerFM14k_optimize_allT2LR17K_form__kmodule_tB1LR17K_f FX_COPY_PTR(v_25, &temp_kmods_0); fx_str_t slit_12 = FX_MAKE_STR("\tinline"); FX_CALL(_fx_M3AstFM10pr_verbosev1S(&slit_12, 0), _fx_catch_0); - if (_fx_g12Options__opt.inline_thresh > 0) { + int_ v_32 = _fx_g12Options__opt.inline_thresh; + if (v_32 > 0) { FX_CALL(_fx_M8K_inlineFM11inline_someLR17K_form__kmodule_t1LR17K_form__kmodule_t(temp_kmods_0, &v_26, 0), _fx_catch_0); _fx_free_LR17K_form__kmodule_t(&temp_kmods_0); FX_COPY_PTR(v_26, &temp_kmods_0); @@ -11311,29 +11264,27 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( _fx_LR17C_form__cmodule_t cmods_1 = 0; fx_arr_t v_33 = {0}; fx_arr_t results_0 = {0}; - _fx_T5BBLSBLS __fold_result___0 = {0}; - _fx_T5BBLSBLS v_34 = {0}; _fx_LS all_clibs_0 = 0; _fx_LS objs_0 = 0; + fx_str_t v_34 = {0}; fx_str_t v_35 = {0}; fx_str_t v_36 = {0}; fx_str_t v_37 = {0}; - fx_str_t v_38 = {0}; fx_str_t custom_clibs_0 = {0}; - fx_str_t v_39 = {0}; + fx_str_t v_38 = {0}; fx_str_t custom_clibs_1 = {0}; - fx_str_t v_40 = {0}; + fx_str_t v_39 = {0}; fx_str_t custom_clibs_2 = {0}; + _fx_LS v_40 = 0; _fx_LS v_41 = 0; - _fx_LS v_42 = 0; - fx_str_t v_43 = {0}; + fx_str_t v_42 = {0}; fx_str_t clibs_4 = {0}; + fx_str_t v_43 = {0}; fx_str_t v_44 = {0}; fx_str_t v_45 = {0}; fx_str_t v_46 = {0}; - fx_str_t v_47 = {0}; fx_str_t cmd_0 = {0}; - fx_str_t v_48 = {0}; + fx_str_t v_47 = {0}; fx_str_t cmd_1 = {0}; int fx_status = 0; FX_CALL(_fx_g11Sys__osname.fp(true, &osinfo_0, _fx_g11Sys__osname.fcv), _fx_cleanup); @@ -11435,15 +11386,15 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( const fx_str_t strs_3[] = { v_8, slit_26 }; FX_CALL(fx_strjoin(0, 0, 0, strs_3, 2, &cpp_comp_0), _fx_cleanup); } - bool v_49; + bool v_48; fx_str_t slit_27 = FX_MAKE_STR("Darwin"); - FX_CALL(_fx_M8CompilerFM8containsB2SS(&osinfo_0, &slit_27, &v_49, 0), _fx_cleanup); - if (v_49) { + FX_CALL(_fx_M8CompilerFM8containsB2SS(&osinfo_0, &slit_27, &v_48, 0), _fx_cleanup); + if (v_48) { if (enable_openmp_0) { - bool v_50; + bool v_49; fx_str_t slit_28 = FX_MAKE_STR("gcc"); - FX_CALL(_fx_M8CompilerFM8containsB2SS(&c_comp_0, &slit_28, &v_50, 0), _fx_cleanup); - if (v_50) { + FX_CALL(_fx_M8CompilerFM8containsB2SS(&c_comp_0, &slit_28, &v_49, 0), _fx_cleanup); + if (v_49) { fx_str_t slit_29 = FX_MAKE_STR("-fopenmp"); fx_str_t slit_30 = FX_MAKE_STR(" -lgomp"); _fx_make_Ta2S(&slit_29, &slit_30, &v_10); @@ -11459,10 +11410,10 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( } fx_copy_str(&v_10.t0, &omp_cflags_0); fx_copy_str(&v_10.t1, &omp_lib_0); - bool v_51; + bool v_50; fx_str_t slit_35 = FX_MAKE_STR("x86_64"); - FX_CALL(_fx_M8CompilerFM8containsB2SS(&osinfo_0, &slit_35, &v_51, 0), _fx_cleanup); - if (v_51) { + FX_CALL(_fx_M8CompilerFM8containsB2SS(&osinfo_0, &slit_35, &v_50, 0), _fx_cleanup); + if (v_50) { fx_str_t slit_36 = FX_MAKE_STR(" "); { const fx_str_t strs_4[] = { slit_36, omp_cflags_0, omp_lib_0 }; @@ -11472,10 +11423,10 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( _fx_make_Ta3S(&slit_37, &omp_cflags_0, &v_12, &v_11); } else { - bool v_52; + bool v_51; fx_str_t slit_38 = FX_MAKE_STR("arm64"); - FX_CALL(_fx_M8CompilerFM8containsB2SS(&osinfo_0, &slit_38, &v_52, 0), _fx_cleanup); - if (v_52) { + FX_CALL(_fx_M8CompilerFM8containsB2SS(&osinfo_0, &slit_38, &v_51, 0), _fx_cleanup); + if (v_51) { fx_str_t slit_39 = FX_MAKE_STR(" "); { const fx_str_t strs_5[] = { slit_39, omp_cflags_0, omp_lib_0 }; @@ -11498,10 +11449,10 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( _fx_make_Ta4S(&slit_44, &libpath_0, &cflags_1, &clibs_0, &v_9); } else { - bool v_53; + bool v_52; fx_str_t slit_45 = FX_MAKE_STR("Linux"); - FX_CALL(_fx_M8CompilerFM8containsB2SS(&osinfo_0, &slit_45, &v_53, 0), _fx_cleanup); - if (v_53) { + FX_CALL(_fx_M8CompilerFM8containsB2SS(&osinfo_0, &slit_45, &v_52, 0), _fx_cleanup); + if (v_52) { if (enable_openmp_0) { fx_str_t slit_46 = FX_MAKE_STR(" -fopenmp"); fx_copy_str(&slit_46, &omp_flags_0); } @@ -11669,36 +11620,36 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( _fx_LN15C_form__cstmt_t cmod_ccode_0 = 0; fx_str_t cmod_cname_0 = {0}; fx_str_t output_fname_0 = {0}; - _fx_Ta2S v_54 = {0}; + _fx_Ta2S v_53 = {0}; fx_str_t comp_0 = {0}; fx_str_t ext_0 = {0}; fx_str_t output_fname_1 = {0}; fx_str_t output_fname_c_0 = {0}; - _fx_T3BBS v_55 = {0}; + _fx_T3BBS v_54 = {0}; fx_str_t str_new_0 = {0}; fx_str_t str_old_0 = {0}; fx_exn_t exn_0 = {0}; fx_exn_t exn_1 = {0}; + fx_str_t v_55 = {0}; fx_str_t v_56 = {0}; fx_str_t v_57 = {0}; - fx_str_t v_58 = {0}; fx_str_t status_j_0 = {0}; fx_str_t c_filename_0 = {0}; fx_str_t obj_filename_0 = {0}; - _fx_T3BBS v_59 = {0}; + _fx_T3BBS v_58 = {0}; + fx_str_t v_59 = {0}; fx_str_t v_60 = {0}; fx_str_t v_61 = {0}; fx_str_t v_62 = {0}; fx_str_t v_63 = {0}; - fx_str_t v_64 = {0}; fx_str_t cmd_2 = {0}; _fx_R7File__t p_0 = {0}; fx_str_t status_0 = {0}; fx_str_t status_j_1 = {0}; + fx_str_t v_64 = {0}; fx_str_t v_65 = {0}; fx_str_t v_66 = {0}; - fx_str_t v_67 = {0}; - _fx_LS v_68 = 0; + _fx_LS v_67 = 0; _fx_LS clibs_5 = 0; _fx_T5BBLSBS tup_0 = {0}; _fx_copy_R17C_form__cmodule_t(ptr_v_0 + i_0, &__pat___0); @@ -11722,27 +11673,28 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( is_cpp_0 = false; } if (is_cpp_0) { - fx_str_t slit_83 = FX_MAKE_STR(".cpp"); _fx_make_Ta2S(&cpp_comp_1, &slit_83, &v_54); + fx_str_t slit_83 = FX_MAKE_STR(".cpp"); _fx_make_Ta2S(&cpp_comp_1, &slit_83, &v_53); } else { - fx_str_t slit_84 = FX_MAKE_STR(".c"); _fx_make_Ta2S(&c_comp_1, &slit_84, &v_54); + fx_str_t slit_84 = FX_MAKE_STR(".c"); _fx_make_Ta2S(&c_comp_1, &slit_84, &v_53); } - fx_copy_str(&v_54.t0, &comp_0); - fx_copy_str(&v_54.t1, &ext_0); + fx_copy_str(&v_53.t0, &comp_0); + fx_copy_str(&v_53.t1, &ext_0); FX_CALL(_fx_M8FilenameFM9normalizeS2SS(&build_dir_0, &output_fname_0, &output_fname_1, 0), _fx_catch_6); { const fx_str_t strs_14[] = { output_fname_1, ext_0 }; FX_CALL(fx_strjoin(0, 0, 0, strs_14, 2, &output_fname_c_0), _fx_catch_6); } if (__pat___0.cmod_skip) { - fx_str_t slit_85 = FX_MAKE_STR("skipped"); _fx_make_T3BBS(true, false, &slit_85, &v_55); + fx_str_t slit_85 = FX_MAKE_STR("skipped"); _fx_make_T3BBS(true, false, &slit_85, &v_54); } else if (is_runtime_0) { - fx_str_t slit_86 = FX_MAKE_STR(""); _fx_make_T3BBS(true, true, &slit_86, &v_55); + fx_str_t slit_86 = FX_MAKE_STR(""); _fx_make_T3BBS(true, true, &slit_86, &v_54); } else { FX_CALL(_fx_M4C_ppFM20pprint_top_to_stringS1LN15C_form__cstmt_t(cmod_ccode_0, &str_new_0, 0), _fx_catch_6); - if (_fx_g12Options__opt.force_rebuild) { + bool v_68 = _fx_g12Options__opt.force_rebuild; + if (v_68) { fx_str_t slit_87 = FX_MAKE_STR(""); fx_copy_str(&slit_87, &str_old_0); } else { @@ -11776,7 +11728,7 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( } bool v_69 = _fx_F6__eq__B2SS(&str_new_0, &str_old_0, 0); if (v_69) { - fx_str_t slit_89 = FX_MAKE_STR("skipped"); _fx_make_T3BBS(ok_1, false, &slit_89, &v_55); + fx_str_t slit_89 = FX_MAKE_STR("skipped"); _fx_make_T3BBS(ok_1, false, &slit_89, &v_54); } else { bool well_written_0; @@ -11808,24 +11760,24 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( FX_CHECK_EXN(_fx_catch_6); } if (well_written_0) { - fx_str_t slit_90 = FX_MAKE_STR(""); fx_copy_str(&slit_90, &v_56); + fx_str_t slit_90 = FX_MAKE_STR(""); fx_copy_str(&slit_90, &v_55); } else { - FX_CALL(_fx_M8CompilerFM6stringS1S(&output_fname_c_0, &v_57, 0), _fx_catch_6); + FX_CALL(_fx_M8CompilerFM6stringS1S(&output_fname_c_0, &v_56, 0), _fx_catch_6); fx_str_t slit_91 = FX_MAKE_STR("failed to write "); { - const fx_str_t strs_15[] = { slit_91, v_57 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_15, 2, &v_58), _fx_catch_6); + const fx_str_t strs_15[] = { slit_91, v_56 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_15, 2, &v_57), _fx_catch_6); } - FX_CALL(_fx_M8CompilerFM6clrmsgS2N20Compiler__msgcolor_tS(&_fx_g16Compiler__MsgRed, &v_58, &v_56, 0), + FX_CALL(_fx_M8CompilerFM6clrmsgS2N20Compiler__msgcolor_tS(&_fx_g16Compiler__MsgRed, &v_57, &v_55, 0), _fx_catch_6); } - _fx_make_T3BBS(well_written_0, well_written_0, &v_56, &v_55); + _fx_make_T3BBS(well_written_0, well_written_0, &v_55, &v_54); } } - bool ok_j_0 = v_55.t0; - bool reprocess_0 = v_55.t1; - fx_copy_str(&v_55.t2, &status_j_0); + bool ok_j_0 = v_54.t0; + bool reprocess_0 = v_54.t1; + fx_copy_str(&v_54.t2, &status_j_0); if (is_runtime_0) { fx_str_t slit_92 = FX_MAKE_STR(".c"); { @@ -11853,16 +11805,16 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( v_70 = false; } if (v_70) { - FX_CALL(_fx_M8CompilerFM6stringS1S(&comp_0, &v_60, 0), _fx_catch_6); - FX_CALL(_fx_M8CompilerFM6stringS1S(&cflags_5, &v_61, 0), _fx_catch_6); - FX_CALL(_fx_M8CompilerFM6stringS1S(&obj_opt_0, &v_62, 0), _fx_catch_6); - FX_CALL(_fx_M8CompilerFM6stringS1S(&obj_filename_0, &v_63, 0), _fx_catch_6); - FX_CALL(_fx_M8CompilerFM6stringS1S(&c_filename_0, &v_64, 0), _fx_catch_6); + FX_CALL(_fx_M8CompilerFM6stringS1S(&comp_0, &v_59, 0), _fx_catch_6); + FX_CALL(_fx_M8CompilerFM6stringS1S(&cflags_5, &v_60, 0), _fx_catch_6); + FX_CALL(_fx_M8CompilerFM6stringS1S(&obj_opt_0, &v_61, 0), _fx_catch_6); + FX_CALL(_fx_M8CompilerFM6stringS1S(&obj_filename_0, &v_62, 0), _fx_catch_6); + FX_CALL(_fx_M8CompilerFM6stringS1S(&c_filename_0, &v_63, 0), _fx_catch_6); fx_str_t slit_93 = FX_MAKE_STR(" "); fx_str_t slit_94 = FX_MAKE_STR(" "); fx_str_t slit_95 = FX_MAKE_STR(" "); { - const fx_str_t strs_18[] = { v_60, slit_93, v_61, slit_94, v_62, v_63, slit_95, v_64 }; + const fx_str_t strs_18[] = { v_59, slit_93, v_60, slit_94, v_61, v_62, slit_95, v_63 }; FX_CALL(fx_strjoin(0, 0, 0, strs_18, 8, &cmd_2), _fx_catch_6); } bool v_72; @@ -11906,35 +11858,35 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( FX_CALL(_fx_M8CompilerFM6clrmsgS2N20Compiler__msgcolor_tS(&_fx_g16Compiler__MsgRed, &slit_99, &status_0, 0), _fx_catch_6); } - _fx_make_T3BBS(result_0, true, &status_0, &v_59); + _fx_make_T3BBS(result_0, true, &status_0, &v_58); } else { - _fx_make_T3BBS(ok_j_0, false, &status_j_0, &v_59); + _fx_make_T3BBS(ok_j_0, false, &status_j_0, &v_58); } - bool ok_j_1 = v_59.t0; - bool recompiled_0 = v_59.t1; - fx_copy_str(&v_59.t2, &status_j_1); - FX_CALL(_fx_M8CompilerFM6stringS1S(&c_filename_0, &v_65, 0), _fx_catch_6); - FX_CALL(_fx_M8CompilerFM6stringS1S(&status_j_1, &v_66, 0), _fx_catch_6); + bool ok_j_1 = v_58.t0; + bool recompiled_0 = v_58.t1; + fx_copy_str(&v_58.t2, &status_j_1); + FX_CALL(_fx_M8CompilerFM6stringS1S(&c_filename_0, &v_64, 0), _fx_catch_6); + FX_CALL(_fx_M8CompilerFM6stringS1S(&status_j_1, &v_65, 0), _fx_catch_6); fx_str_t slit_100 = FX_MAKE_STR("CC "); fx_str_t slit_101 = FX_MAKE_STR(": "); { - const fx_str_t strs_19[] = { slit_100, v_65, slit_101, v_66 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_19, 4, &v_67), _fx_catch_6); + const fx_str_t strs_19[] = { slit_100, v_64, slit_101, v_65 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_19, 4, &v_66), _fx_catch_6); } - FX_CALL(_fx_M3AstFM10pr_verbosev1S(&v_67, 0), _fx_catch_6); + FX_CALL(_fx_M3AstFM10pr_verbosev1S(&v_66, 0), _fx_catch_6); _fx_LS lstend_2 = 0; _fx_LT2SR10Ast__loc_t lst_2 = pragma_clibs_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_T2SR10Ast__loc_t* __pat___1 = &lst_2->hd; _fx_LS node_2 = 0; FX_CALL(_fx_cons_LS(&__pat___1->t0, 0, false, &node_2), _fx_catch_5); - FX_LIST_APPEND(v_68, lstend_2, node_2); + FX_LIST_APPEND(v_67, lstend_2, node_2); _fx_catch_5: ; FX_CHECK_EXN(_fx_catch_6); } - FX_CALL(_fx_M8CompilerFM3revLS1LS(v_68, &clibs_5, 0), _fx_catch_6); + FX_CALL(_fx_M8CompilerFM3revLS1LS(v_67, &clibs_5, 0), _fx_catch_6); _fx_make_T5BBLSBS(is_cpp_0, recompiled_0, clibs_5, ok_j_1, &obj_filename_0, &tup_0); _fx_copy_T5BBLSBS(&tup_0, dstptr_0); @@ -11943,38 +11895,38 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( if (clibs_5) { _fx_free_LS(&clibs_5); } - if (v_68) { - _fx_free_LS(&v_68); + if (v_67) { + _fx_free_LS(&v_67); } - FX_FREE_STR(&v_67); FX_FREE_STR(&v_66); FX_FREE_STR(&v_65); + FX_FREE_STR(&v_64); FX_FREE_STR(&status_j_1); FX_FREE_STR(&status_0); _fx_free_R7File__t(&p_0); FX_FREE_STR(&cmd_2); - FX_FREE_STR(&v_64); FX_FREE_STR(&v_63); FX_FREE_STR(&v_62); FX_FREE_STR(&v_61); FX_FREE_STR(&v_60); - _fx_free_T3BBS(&v_59); + FX_FREE_STR(&v_59); + _fx_free_T3BBS(&v_58); FX_FREE_STR(&obj_filename_0); FX_FREE_STR(&c_filename_0); FX_FREE_STR(&status_j_0); - FX_FREE_STR(&v_58); FX_FREE_STR(&v_57); FX_FREE_STR(&v_56); + FX_FREE_STR(&v_55); fx_free_exn(&exn_1); fx_free_exn(&exn_0); FX_FREE_STR(&str_old_0); FX_FREE_STR(&str_new_0); - _fx_free_T3BBS(&v_55); + _fx_free_T3BBS(&v_54); FX_FREE_STR(&output_fname_c_0); FX_FREE_STR(&output_fname_1); FX_FREE_STR(&ext_0); FX_FREE_STR(&comp_0); - _fx_free_Ta2S(&v_54); + _fx_free_Ta2S(&v_53); FX_FREE_STR(&output_fname_0); FX_FREE_STR(&cmod_cname_0); if (cmod_ccode_0) { @@ -11987,43 +11939,37 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( FX_CHECK_EXN_PARALLEL(fx_status, par_status_0); } FX_UPDATE_EXN_PARALLEL(par_status_0, _fx_cleanup); - _fx_make_T5BBLSBLS(false, false, 0, ok_1, 0, &__fold_result___0); + bool any_cpp_0 = false; + bool any_recompiled_0 = false; + bool ok_2 = ok_1; int_ ni_1 = FX_ARR_SIZE(results_0, 0); _fx_T5BBLSBS* ptr_results_0 = FX_PTR_1D(_fx_T5BBLSBS, results_0, 0); for (int_ i_2 = 0; i_2 < ni_1; i_2++) { _fx_T5BBLSBS __pat___2 = {0}; _fx_LS clibs_j_0 = 0; fx_str_t obj_0 = {0}; - _fx_T5BBLSBLS v_75 = {0}; - _fx_LS all_clibs_1 = 0; - _fx_LS objs_1 = 0; + _fx_LS v_75 = 0; _fx_LS v_76 = 0; - _fx_T5BBLSBLS v_77 = {0}; _fx_copy_T5BBLSBS(ptr_results_0 + i_2, &__pat___2); FX_COPY_PTR(__pat___2.t2, &clibs_j_0); fx_copy_str(&__pat___2.t4, &obj_0); - _fx_copy_T5BBLSBLS(&__fold_result___0, &v_75); - FX_COPY_PTR(v_75.t2, &all_clibs_1); - FX_COPY_PTR(v_75.t4, &objs_1); - FX_CALL(_fx_M8CompilerFM7__add__LS2LSLS(clibs_j_0, all_clibs_1, &v_76, 0), _fx_catch_7); - FX_CALL(_fx_cons_LS(&obj_0, objs_1, false, &objs_1), _fx_catch_7); - _fx_make_T5BBLSBLS((bool)(v_75.t0 | __pat___2.t0), (bool)(v_75.t1 | __pat___2.t1), v_76, (bool)(v_75.t3 & __pat___2.t3), - objs_1, &v_77); - _fx_free_T5BBLSBLS(&__fold_result___0); - _fx_copy_T5BBLSBLS(&v_77, &__fold_result___0); + any_cpp_0 = (bool)(any_cpp_0 | __pat___2.t0); + any_recompiled_0 = (bool)(any_recompiled_0 | __pat___2.t1); + FX_CALL(_fx_M8CompilerFM7__add__LS2LSLS(clibs_j_0, all_clibs_0, &v_75, 0), _fx_catch_7); + _fx_free_LS(&all_clibs_0); + FX_COPY_PTR(v_75, &all_clibs_0); + ok_2 = (bool)(ok_2 & __pat___2.t3); + FX_CALL(_fx_cons_LS(&obj_0, objs_0, true, &v_76), _fx_catch_7); + _fx_free_LS(&objs_0); + FX_COPY_PTR(v_76, &objs_0); _fx_catch_7: ; - _fx_free_T5BBLSBLS(&v_77); if (v_76) { _fx_free_LS(&v_76); } - if (objs_1) { - _fx_free_LS(&objs_1); - } - if (all_clibs_1) { - _fx_free_LS(&all_clibs_1); + if (v_75) { + _fx_free_LS(&v_75); } - _fx_free_T5BBLSBLS(&v_75); FX_FREE_STR(&obj_0); if (clibs_j_0) { _fx_free_LS(&clibs_j_0); @@ -12031,13 +11977,7 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( _fx_free_T5BBLSBS(&__pat___2); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T5BBLSBLS(&__fold_result___0, &v_34); - bool any_cpp_0 = v_34.t0; - bool any_recompiled_0 = v_34.t1; - FX_COPY_PTR(v_34.t2, &all_clibs_0); - bool ok_2 = v_34.t3; - FX_COPY_PTR(v_34.t4, &objs_0); - bool v_78; + bool v_77; bool t_0; if (ok_2) { t_0 = !any_recompiled_0; @@ -12046,20 +11986,20 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( t_0 = false; } if (t_0) { - fx_copy_str(&_fx_g12Options__opt.app_filename, &v_35); FX_CALL(_fx_M8FilenameFM6existsB1S(&v_35, &v_78, 0), _fx_cleanup); + fx_copy_str(&_fx_g12Options__opt.app_filename, &v_34); FX_CALL(_fx_M8FilenameFM6existsB1S(&v_34, &v_77, 0), _fx_cleanup); } else { - v_78 = false; + v_77 = false; } - if (v_78) { - fx_copy_str(&_fx_g12Options__opt.app_filename, &v_36); - FX_CALL(_fx_M8CompilerFM6stringS1S(&v_36, &v_37, 0), _fx_cleanup); + if (v_77) { + fx_copy_str(&_fx_g12Options__opt.app_filename, &v_35); + FX_CALL(_fx_M8CompilerFM6stringS1S(&v_35, &v_36, 0), _fx_cleanup); fx_str_t slit_102 = FX_MAKE_STR(" is up-to-date\n"); { - const fx_str_t strs_20[] = { v_37, slit_102 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_20, 2, &v_38), _fx_cleanup); + const fx_str_t strs_20[] = { v_36, slit_102 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_20, 2, &v_37), _fx_cleanup); } - FX_CALL(_fx_M3AstFM10pr_verbosev1S(&v_38, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM10pr_verbosev1S(&v_37, 0), _fx_cleanup); *fx_result = ok_2; } else if (!ok_2) { @@ -12068,15 +12008,15 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( else { fx_str_t slit_103 = FX_MAKE_STR("FICUS_LINK_LIBRARIES"); FX_CALL(_fx_M3SysFM6getenvS1S(&slit_103, &custom_clibs_0, 0), _fx_cleanup); - fx_copy_str(&_fx_g12Options__opt.clibs, &v_39); - if (FX_STR_LENGTH(v_39) == 0) { + fx_copy_str(&_fx_g12Options__opt.clibs, &v_38); + if (FX_STR_LENGTH(v_38) == 0) { fx_copy_str(&custom_clibs_0, &custom_clibs_1); } else { - fx_copy_str(&_fx_g12Options__opt.clibs, &v_40); + fx_copy_str(&_fx_g12Options__opt.clibs, &v_39); fx_str_t slit_104 = FX_MAKE_STR(" "); { - const fx_str_t strs_21[] = { custom_clibs_0, slit_104, v_40 }; + const fx_str_t strs_21[] = { custom_clibs_0, slit_104, v_39 }; FX_CALL(fx_strjoin(0, 0, 0, strs_21, 3, &custom_clibs_1), _fx_cleanup); } } @@ -12084,9 +12024,9 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( fx_copy_str(&custom_clibs_1, &custom_clibs_2); } else { - FX_CALL(_fx_M8CompilerFM3revLS1LS(all_clibs_0, &v_41, 0), _fx_cleanup); + FX_CALL(_fx_M8CompilerFM3revLS1LS(all_clibs_0, &v_40, 0), _fx_cleanup); _fx_LS lstend_3 = 0; - _fx_LS lst_3 = v_41; + _fx_LS lst_3 = v_40; for (; lst_3; lst_3 = lst_3->tl) { fx_str_t concat_str_2 = {0}; fx_str_t* l_0 = &lst_3->hd; @@ -12096,17 +12036,17 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( } _fx_LS node_3 = 0; FX_CALL(_fx_cons_LS(&concat_str_2, 0, false, &node_3), _fx_catch_8); - FX_LIST_APPEND(v_42, lstend_3, node_3); + FX_LIST_APPEND(v_41, lstend_3, node_3); _fx_catch_8: ; FX_FREE_STR(&concat_str_2); FX_CHECK_EXN(_fx_cleanup); } fx_str_t slit_105 = FX_MAKE_STR(" "); - FX_CALL(_fx_M8CompilerFM4joinS2SLS(&slit_105, v_42, &v_43, 0), _fx_cleanup); + FX_CALL(_fx_M8CompilerFM4joinS2SLS(&slit_105, v_41, &v_42, 0), _fx_cleanup); fx_str_t slit_106 = FX_MAKE_STR(" "); { - const fx_str_t strs_23[] = { custom_clibs_1, slit_106, v_43 }; + const fx_str_t strs_23[] = { custom_clibs_1, slit_106, v_42 }; FX_CALL(fx_strjoin(0, 0, 0, strs_23, 3, &custom_clibs_2), _fx_cleanup); } } @@ -12115,36 +12055,36 @@ FX_EXTERN_C int _fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS( const fx_str_t strs_24[] = { clibs_3, slit_107, custom_clibs_2 }; FX_CALL(fx_strjoin(0, 0, 0, strs_24, 3, &clibs_4), _fx_cleanup); } - FX_CALL(_fx_M8CompilerFM6stringS1S(&clibs_4, &v_44, 0), _fx_cleanup); + FX_CALL(_fx_M8CompilerFM6stringS1S(&clibs_4, &v_43, 0), _fx_cleanup); fx_str_t slit_108 = FX_MAKE_STR("Linking the app with flags="); { - const fx_str_t strs_25[] = { slit_108, v_44 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_25, 2, &v_45), _fx_cleanup); + const fx_str_t strs_25[] = { slit_108, v_43 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_25, 2, &v_44), _fx_cleanup); } - FX_CALL(_fx_M3AstFM10pr_verbosev1S(&v_45, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM10pr_verbosev1S(&v_44, 0), _fx_cleanup); if (any_cpp_0) { - fx_copy_str(&cpp_comp_1, &v_46); + fx_copy_str(&cpp_comp_1, &v_45); } else { - fx_copy_str(&c_comp_1, &v_46); + fx_copy_str(&c_comp_1, &v_45); } - fx_copy_str(&_fx_g12Options__opt.app_filename, &v_47); + fx_copy_str(&_fx_g12Options__opt.app_filename, &v_46); fx_str_t slit_109 = FX_MAKE_STR(" "); { - const fx_str_t strs_26[] = { v_46, slit_109, appname_opt_0, v_47 }; + const fx_str_t strs_26[] = { v_45, slit_109, appname_opt_0, v_46 }; FX_CALL(fx_strjoin(0, 0, 0, strs_26, 4, &cmd_0), _fx_cleanup); } fx_str_t slit_110 = FX_MAKE_STR(" "); - FX_CALL(_fx_M8CompilerFM4joinS2SLS(&slit_110, objs_0, &v_48, 0), _fx_cleanup); + FX_CALL(_fx_M8CompilerFM4joinS2SLS(&slit_110, objs_0, &v_47, 0), _fx_cleanup); fx_str_t slit_111 = FX_MAKE_STR(" "); fx_str_t slit_112 = FX_MAKE_STR(" "); { - const fx_str_t strs_27[] = { cmd_0, slit_111, v_48, slit_112, clibs_4 }; + const fx_str_t strs_27[] = { cmd_0, slit_111, v_47, slit_112, clibs_4 }; FX_CALL(fx_strjoin(0, 0, 0, strs_27, 5, &cmd_1), _fx_cleanup); } - int_ v_79; - FX_CALL(_fx_M3SysFM7commandi1S(&cmd_1, &v_79, 0), _fx_cleanup); - *fx_result = v_79 == 0; + int_ v_78; + FX_CALL(_fx_M3SysFM7commandi1S(&cmd_1, &v_78, 0), _fx_cleanup); + *fx_result = v_78 == 0; } _fx_cleanup: ; @@ -12234,37 +12174,35 @@ _fx_cleanup: ; } FX_FREE_ARR(&v_33); FX_FREE_ARR(&results_0); - _fx_free_T5BBLSBLS(&__fold_result___0); - _fx_free_T5BBLSBLS(&v_34); if (all_clibs_0) { _fx_free_LS(&all_clibs_0); } if (objs_0) { _fx_free_LS(&objs_0); } + FX_FREE_STR(&v_34); FX_FREE_STR(&v_35); FX_FREE_STR(&v_36); FX_FREE_STR(&v_37); - FX_FREE_STR(&v_38); FX_FREE_STR(&custom_clibs_0); - FX_FREE_STR(&v_39); + FX_FREE_STR(&v_38); FX_FREE_STR(&custom_clibs_1); - FX_FREE_STR(&v_40); + FX_FREE_STR(&v_39); FX_FREE_STR(&custom_clibs_2); + if (v_40) { + _fx_free_LS(&v_40); + } if (v_41) { _fx_free_LS(&v_41); } - if (v_42) { - _fx_free_LS(&v_42); - } - FX_FREE_STR(&v_43); + FX_FREE_STR(&v_42); FX_FREE_STR(&clibs_4); + FX_FREE_STR(&v_43); FX_FREE_STR(&v_44); FX_FREE_STR(&v_45); FX_FREE_STR(&v_46); - FX_FREE_STR(&v_47); FX_FREE_STR(&cmd_0); - FX_FREE_STR(&v_48); + FX_FREE_STR(&v_47); FX_FREE_STR(&cmd_1); return fx_status; } @@ -12326,11 +12264,11 @@ FX_EXTERN_C int _fx_M8CompilerFM22print_all_compile_errsv0(void* fx_fv) fx_arr_t v_0 = {0}; fx_arr_t v_1 = {0}; _fx_Nt10Hashset__t1S seen_0 = 0; - _fx_LE __fold_result___0 = 0; - _fx_LE __fold_result___1 = 0; + _fx_LE acc_0 = 0; + _fx_LE res_0 = 0; _fx_LE v_2 = 0; _fx_LE uniq_0 = 0; - _fx_LE __fold_result___2 = 0; + _fx_LE res_1 = 0; _fx_LE v_3 = 0; _fx_LE sorted_0 = 0; fx_str_t v_4 = {0}; @@ -12364,28 +12302,25 @@ FX_EXTERN_C int _fx_M8CompilerFM22print_all_compile_errsv0(void* fx_fv) 0, &v_0, &v_1, &seen_0), _fx_cleanup); _fx_LE lst_0 = _fx_g21Ast__all_compile_errs; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LE r_0 = 0; + _fx_LE v_9 = 0; fx_exn_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LE(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LE(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LE(a_0, res_0, true, &v_9), _fx_catch_0); + _fx_free_LE(&res_0); + FX_COPY_PTR(v_9, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LE(&r_0); + if (v_9) { + _fx_free_LE(&v_9); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_2); + FX_COPY_PTR(res_0, &v_2); _fx_LE lst_1 = v_2; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LE acc_0 = 0; fx_str_t msg_0 = {0}; fx_str_t key_0 = {0}; - _fx_LE v_9 = 0; + _fx_LE v_10 = 0; fx_exn_t* e_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___0, &acc_0); int tag_0 = e_0->tag; if (tag_0 == _FX_EXN_E17Ast__CompileError) { fx_copy_str(&FX_EXN_DATA(_fx_E17Ast__CompileError_data_t, e_0->data).t1, &msg_0); @@ -12404,66 +12339,62 @@ FX_EXTERN_C int _fx_M8CompilerFM22print_all_compile_errsv0(void* fx_fv) fx_str_t slit_2 = FX_MAKE_STR(""); fx_copy_str(&slit_2, &msg_0); } FX_CHECK_EXN(_fx_catch_3); - int_ v_10 = _fx_M6StringFM4findi2SC(&msg_0, (char_)10, 0); - if (v_10 == -1) { + int_ v_11 = _fx_M6StringFM4findi2SC(&msg_0, (char_)10, 0); + if (v_11 == -1) { fx_copy_str(&msg_0, &key_0); } else { - FX_CALL(fx_substr(&msg_0, 0, v_10, 1, 1, &key_0), _fx_catch_2); _fx_catch_2: ; + FX_CALL(fx_substr(&msg_0, 0, v_11, 1, 1, &key_0), _fx_catch_2); _fx_catch_2: ; } FX_CHECK_EXN(_fx_catch_3); - bool v_11; + bool v_12; if (FX_STR_LENGTH(key_0) != 0) { - uint64_t v_12 = _fx_F4hashq1S(&key_0, 0); - _fx_Ta2i v_13; - FX_CALL(_fx_M8CompilerFM9find_idx_Ta2i3Nt10Hashset__t1SSq(seen_0, &key_0, v_12 & 9223372036854775807ULL, &v_13, 0), + uint64_t v_13 = _fx_F4hashq1S(&key_0, 0); + _fx_Ta2i v_14; + FX_CALL(_fx_M8CompilerFM9find_idx_Ta2i3Nt10Hashset__t1SSq(seen_0, &key_0, v_13 & 9223372036854775807ULL, &v_14, 0), _fx_catch_3); - v_11 = v_13.t1 >= 0; + v_12 = v_14.t1 >= 0; } else { - v_11 = false; + v_12 = false; } - if (v_11) { - FX_COPY_PTR(acc_0, &v_9); + if (v_12) { + FX_COPY_PTR(acc_0, &v_10); } else { if (FX_STR_LENGTH(key_0) != 0) { - uint64_t v_14 = _fx_F4hashq1S(&key_0, 0); - FX_CALL(_fx_M8CompilerFM4add_v3Nt10Hashset__t1SSq(seen_0, &key_0, v_14 & 9223372036854775807ULL, 0), _fx_catch_3); + uint64_t v_15 = _fx_F4hashq1S(&key_0, 0); + FX_CALL(_fx_M8CompilerFM4add_v3Nt10Hashset__t1SSq(seen_0, &key_0, v_15 & 9223372036854775807ULL, 0), _fx_catch_3); } - FX_CALL(_fx_cons_LE(e_0, acc_0, true, &v_9), _fx_catch_3); + FX_CALL(_fx_cons_LE(e_0, acc_0, true, &v_10), _fx_catch_3); } - _fx_free_LE(&__fold_result___0); - FX_COPY_PTR(v_9, &__fold_result___0); + _fx_free_LE(&acc_0); + FX_COPY_PTR(v_10, &acc_0); _fx_catch_3: ; - if (v_9) { - _fx_free_LE(&v_9); + if (v_10) { + _fx_free_LE(&v_10); } FX_FREE_STR(&key_0); FX_FREE_STR(&msg_0); - if (acc_0) { - _fx_free_LE(&acc_0); - } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &uniq_0); + FX_COPY_PTR(acc_0, &uniq_0); _fx_LE lst_2 = uniq_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LE r_1 = 0; + _fx_LE v_16 = 0; fx_exn_t* a_1 = &lst_2->hd; - FX_COPY_PTR(__fold_result___2, &r_1); - FX_CALL(_fx_cons_LE(a_1, r_1, false, &r_1), _fx_catch_4); - _fx_free_LE(&__fold_result___2); - FX_COPY_PTR(r_1, &__fold_result___2); + FX_CALL(_fx_cons_LE(a_1, res_1, true, &v_16), _fx_catch_4); + _fx_free_LE(&res_1); + FX_COPY_PTR(v_16, &res_1); _fx_catch_4: ; - if (r_1) { - _fx_free_LE(&r_1); + if (v_16) { + _fx_free_LE(&v_16); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___2, &v_3); + FX_COPY_PTR(res_1, &v_3); if (v_3 == 0) { FX_COPY_PTR(v_3, &sorted_0); goto _fx_endmatch_0; } @@ -12473,38 +12404,38 @@ FX_EXTERN_C int _fx_M8CompilerFM22print_all_compile_errsv0(void* fx_fv) } } if (v_3 != 0) { - _fx_LE v_15 = v_3->tl; - if (v_15 != 0) { - if (v_15->tl == 0) { - _fx_LE v_16 = 0; - fx_exn_t* b_0 = &v_15->hd; + _fx_LE v_17 = v_3->tl; + if (v_17 != 0) { + if (v_17->tl == 0) { + _fx_LE v_18 = 0; + fx_exn_t* b_0 = &v_17->hd; fx_exn_t* a_2 = &v_3->hd; - _fx_Ta3i v_17; + _fx_Ta3i v_19; if (b_0->tag == _FX_EXN_E17Ast__CompileError) { _fx_R10Ast__loc_t* loc_0 = &FX_EXN_DATA(_fx_E17Ast__CompileError_data_t, b_0->data).t0; _fx_Ta3i tup_0 = { loc_0->m_idx, loc_0->line0, loc_0->col0 }; - v_17 = tup_0; + v_19 = tup_0; } else { - _fx_Ta3i tup_1 = { 1000000000, 0, 0 }; v_17 = tup_1; + _fx_Ta3i tup_1 = { 1000000000, 0, 0 }; v_19 = tup_1; } FX_CHECK_EXN(_fx_catch_5); - int_ ma_0 = v_17.t0; - int_ la_0 = v_17.t1; - int_ ca_0 = v_17.t2; - _fx_Ta3i v_18; + int_ ma_0 = v_19.t0; + int_ la_0 = v_19.t1; + int_ ca_0 = v_19.t2; + _fx_Ta3i v_20; if (a_2->tag == _FX_EXN_E17Ast__CompileError) { _fx_R10Ast__loc_t* loc_1 = &FX_EXN_DATA(_fx_E17Ast__CompileError_data_t, a_2->data).t0; _fx_Ta3i tup_2 = { loc_1->m_idx, loc_1->line0, loc_1->col0 }; - v_18 = tup_2; + v_20 = tup_2; } else { - _fx_Ta3i tup_3 = { 1000000000, 0, 0 }; v_18 = tup_3; + _fx_Ta3i tup_3 = { 1000000000, 0, 0 }; v_20 = tup_3; } FX_CHECK_EXN(_fx_catch_5); - int_ mb_0 = v_18.t0; - int_ lb_0 = v_18.t1; - int_ cb_0 = v_18.t2; + int_ mb_0 = v_20.t0; + int_ lb_0 = v_20.t1; + int_ cb_0 = v_20.t2; bool t_0; if (ma_0 < mb_0) { t_0 = true; @@ -12524,16 +12455,16 @@ FX_EXTERN_C int _fx_M8CompilerFM22print_all_compile_errsv0(void* fx_fv) t_0 = false; } if (t_0) { - FX_CALL(_fx_cons_LE(a_2, 0, true, &v_16), _fx_catch_5); - FX_CALL(_fx_cons_LE(b_0, v_16, true, &sorted_0), _fx_catch_5); + FX_CALL(_fx_cons_LE(a_2, 0, true, &v_18), _fx_catch_5); + FX_CALL(_fx_cons_LE(b_0, v_18, true, &sorted_0), _fx_catch_5); } else { FX_COPY_PTR(v_3, &sorted_0); } _fx_catch_5: ; - if (v_16) { - _fx_free_LE(&v_16); + if (v_18) { + _fx_free_LE(&v_18); } goto _fx_endmatch_0; } @@ -12626,11 +12557,11 @@ _fx_cleanup: ; if (seen_0) { _fx_free_Nt10Hashset__t1S(&seen_0); } - if (__fold_result___0) { - _fx_free_LE(&__fold_result___0); + if (acc_0) { + _fx_free_LE(&acc_0); } - if (__fold_result___1) { - _fx_free_LE(&__fold_result___1); + if (res_0) { + _fx_free_LE(&res_0); } if (v_2) { _fx_free_LE(&v_2); @@ -12638,8 +12569,8 @@ _fx_cleanup: ; if (uniq_0) { _fx_free_LE(&uniq_0); } - if (__fold_result___2) { - _fx_free_LE(&__fold_result___2); + if (res_1) { + _fx_free_LE(&res_1); } if (v_3) { _fx_free_LE(&v_3); @@ -12696,12 +12627,13 @@ FX_EXTERN_C int _fx_M8CompilerFM11process_allB1S(fx_str_t* fname0_0, bool* fx_re fx_str_t v_20 = {0}; fx_str_t appname_1 = {0}; _fx_LS v_21 = 0; + _fx_LS v_22 = 0; fx_str_t cmd_0 = {0}; fx_str_t plural_0 = {0}; - fx_str_t v_22 = {0}; fx_str_t v_23 = {0}; fx_str_t v_24 = {0}; fx_str_t v_25 = {0}; + fx_str_t v_26 = {0}; FX_CALL(_fx_M8CompilerFM15find_ficus_dirsT2SLS0(&v_0, 0), _fx_catch_6); fx_copy_str(&v_0.t0, &ficus_root_0); FX_COPY_PTR(v_0.t1, &ficus_path_0); @@ -12740,18 +12672,18 @@ FX_EXTERN_C int _fx_M8CompilerFM11process_allB1S(fx_str_t* fname0_0, bool* fx_re _fx_N16Ast__defmodule_t* ptr_all_modules_0 = FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, 0); for (int_ i_0 = 0; i_0 < ni_0; i_0++) { _fx_N16Ast__defmodule_t minfo_0 = 0; - _fx_Li v_26 = 0; + _fx_Li v_27 = 0; _fx_T2iLi tup_0 = {0}; FX_COPY_PTR(ptr_all_modules_0[i_0], &minfo_0); - FX_COPY_PTR(minfo_0->u.defmodule_t.t5, &v_26); - _fx_make_T2iLi(minfo_0->u.defmodule_t.t2, v_26, &tup_0); + FX_COPY_PTR(minfo_0->u.defmodule_t.t5, &v_27); + _fx_make_T2iLi(minfo_0->u.defmodule_t.t2, v_27, &tup_0); _fx_LT2iLi node_0 = 0; FX_CALL(_fx_cons_LT2iLi(&tup_0, 0, false, &node_0), _fx_catch_0); FX_LIST_APPEND(graph_0, lstend_0, node_0); _fx_catch_0: ; _fx_free_T2iLi(&tup_0); - FX_FREE_LIST_SIMPLE(&v_26); + FX_FREE_LIST_SIMPLE(&v_27); if (minfo_0) { _fx_free_N16Ast__defmodule_t(&minfo_0); } @@ -12774,7 +12706,8 @@ FX_EXTERN_C int _fx_M8CompilerFM11process_allB1S(fx_str_t* fname0_0, bool* fx_re FX_CHECK_EXN(_fx_catch_6); FX_FREE_LIST_SIMPLE(&_fx_g23Ast__all_modules_sorted); FX_COPY_PTR(v_8, &_fx_g23Ast__all_modules_sorted); - if (_fx_g12Options__opt.print_ast0) { + bool v_28 = _fx_g12Options__opt.print_ast0; + if (v_28) { _fx_Li lst_0 = _fx_g23Ast__all_modules_sorted; for (; lst_0; lst_0 = lst_0->tl) { _fx_N16Ast__defmodule_t minfo_1 = 0; @@ -12794,9 +12727,9 @@ FX_EXTERN_C int _fx_M8CompilerFM11process_allB1S(fx_str_t* fname0_0, bool* fx_re for (; lst_1; lst_1 = lst_1->tl) { fx_str_t res_0 = {0}; int_ m_idx_0 = lst_1->hd; - _fx_R9Ast__id_t v_27; - FX_CALL(_fx_M3AstFM15get_module_nameRM4id_t1i(m_idx_0, &v_27, 0), _fx_catch_2); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_27, &res_0, 0), _fx_catch_2); + _fx_R9Ast__id_t v_29; + FX_CALL(_fx_M3AstFM15get_module_nameRM4id_t1i(m_idx_0, &v_29, 0), _fx_catch_2); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_29, &res_0, 0), _fx_catch_2); _fx_LS node_1 = 0; FX_CALL(_fx_cons_LS(&res_0, 0, false, &node_1), _fx_catch_2); FX_LIST_APPEND(v_9, lstend_1, node_1); @@ -12838,7 +12771,8 @@ FX_EXTERN_C int _fx_M8CompilerFM11process_allB1S(fx_str_t* fname0_0, bool* fx_re fx_str_t slit_9 = FX_MAKE_STR("Type checking complete"); fx_copy_str(&slit_9, &v_11); } FX_CALL(_fx_M3AstFM10pr_verbosev1S(&v_11, 0), _fx_catch_6); - if (_fx_g12Options__opt.print_ast) { + bool v_30 = _fx_g12Options__opt.print_ast; + if (v_30) { _fx_Li lst_3 = _fx_g23Ast__all_modules_sorted; for (; lst_3; lst_3 = lst_3->tl) { _fx_N16Ast__defmodule_t minfo_2 = 0; @@ -12875,7 +12809,8 @@ FX_EXTERN_C int _fx_M8CompilerFM11process_allB1S(fx_str_t* fname0_0, bool* fx_re fx_str_t slit_11 = FX_MAKE_STR("K-normalization complete"); fx_copy_str(&slit_11, &v_13); } FX_CALL(_fx_M3AstFM10pr_verbosev1S(&v_13, 0), _fx_catch_6); - if (_fx_g12Options__opt.print_k0) { + bool v_31 = _fx_g12Options__opt.print_k0; + if (v_31) { FX_CALL(_fx_M4K_ppFM8pp_kmodsv1LR17K_form__kmodule_t(kmods_1, 0), _fx_catch_6); } } @@ -12903,13 +12838,15 @@ FX_EXTERN_C int _fx_M8CompilerFM11process_allB1S(fx_str_t* fname0_0, bool* fx_re fx_str_t slit_15 = FX_MAKE_STR("K-form optimization complete"); fx_copy_str(&slit_15, &v_16); } FX_CALL(_fx_M3AstFM10pr_verbosev1S(&v_16, 0), _fx_catch_6); - if (_fx_g12Options__opt.print_k) { + bool v_32 = _fx_g12Options__opt.print_k; + if (v_32) { FX_CALL(_fx_M4K_ppFM8pp_kmodsv1LR17K_form__kmodule_t(kmods_2, 0), _fx_catch_6); } } _fx_g19Ast__compiler_stage = _fx_g25Compiler__CompilerBackend; + bool v_33 = _fx_g12Options__opt.gen_c; bool ok_4; - if (!_fx_g12Options__opt.gen_c) { + if (!v_33) { ok_4 = ok_3; } else { @@ -12972,43 +12909,43 @@ FX_EXTERN_C int _fx_M8CompilerFM11process_allB1S(fx_str_t* fname0_0, bool* fx_re } FX_COPY_PTR(v_17.t0, &cmods_3); bool ok_5 = v_17.t1; - bool t_1; + bool v_34; if (ok_5) { if (_fx_g12Options__opt.make_app) { - t_1 = true; + v_34 = true; } else { - t_1 = _fx_g12Options__opt.run_app; + v_34 = _fx_g12Options__opt.run_app; } } else { - t_1 = false; + v_34 = false; } bool ok_6; - if (t_1) { + if (v_34) { FX_CALL(_fx_M8CompilerFM6run_ccB2LR17C_form__cmodule_tS(cmods_3, &ficus_root_0, &ok_6, 0), _fx_catch_6); } else { ok_6 = ok_5; } - bool t_2; + bool v_35; if (ok_6) { - t_2 = _fx_g12Options__opt.run_app; + v_35 = _fx_g12Options__opt.run_app; } else { - t_2 = false; + v_35 = false; } - if (t_2) { + if (v_35) { fx_copy_str(&_fx_g12Options__opt.app_filename, &appname_0); FX_CALL(_fx_M8FilenameFM6getcwdS0(&v_20, 0), _fx_catch_6); FX_CALL(_fx_M8FilenameFM9normalizeS2SS(&v_20, &appname_0, &appname_1, 0), _fx_catch_6); FX_COPY_PTR(_fx_g12Options__opt.app_args, &v_21); - FX_CALL(_fx_cons_LS(&appname_1, v_21, false, &v_21), _fx_catch_6); + FX_CALL(_fx_cons_LS(&appname_1, v_21, true, &v_22), _fx_catch_6); fx_str_t slit_21 = FX_MAKE_STR(" "); - FX_CALL(_fx_F4joinS2SLS(&slit_21, v_21, &cmd_0, 0), _fx_catch_6); - int_ v_28; - FX_CALL(_fx_M3SysFM7commandi1S(&cmd_0, &v_28, 0), _fx_catch_6); - ok_4 = v_28 == 0; + FX_CALL(_fx_F4joinS2SLS(&slit_21, v_22, &cmd_0, 0), _fx_catch_6); + int_ v_36; + FX_CALL(_fx_M3SysFM7commandi1S(&cmd_0, &v_36, 0), _fx_catch_6); + ok_4 = v_36 == 0; } else { ok_4 = ok_6; @@ -13025,42 +12962,43 @@ FX_EXTERN_C int _fx_M8CompilerFM11process_allB1S(fx_str_t* fname0_0, bool* fx_re else { fx_str_t slit_23 = FX_MAKE_STR("warnings"); fx_copy_str(&slit_23, &plural_0); } - if (_fx_g12Options__opt.Werror) { - FX_CALL(_fx_F6stringS1i(nwarns_0, &v_22, 0), _fx_catch_6); + bool v_37 = _fx_g12Options__opt.Werror; + if (v_37) { + FX_CALL(_fx_F6stringS1i(nwarns_0, &v_23, 0), _fx_catch_6); fx_str_t slit_24 = FX_MAKE_STR("\n"); fx_str_t slit_25 = FX_MAKE_STR(" "); fx_str_t slit_26 = FX_MAKE_STR(" generated (treated as errors due to -Werror)."); { - const fx_str_t strs_2[] = { slit_24, v_22, slit_25, plural_0, slit_26 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_23), _fx_catch_6); + const fx_str_t strs_2[] = { slit_24, v_23, slit_25, plural_0, slit_26 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_24), _fx_catch_6); } - _fx_F12print_stringv1S(&v_23, 0); + _fx_F12print_stringv1S(&v_24, 0); fx_str_t slit_27 = FX_MAKE_STR("\n"); _fx_F12print_stringv1S(&slit_27, 0); } else { - FX_CALL(_fx_F6stringS1i(nwarns_0, &v_24, 0), _fx_catch_6); + FX_CALL(_fx_F6stringS1i(nwarns_0, &v_25, 0), _fx_catch_6); fx_str_t slit_28 = FX_MAKE_STR("\n"); fx_str_t slit_29 = FX_MAKE_STR(" "); fx_str_t slit_30 = FX_MAKE_STR(" generated."); { - const fx_str_t strs_3[] = { slit_28, v_24, slit_29, plural_0, slit_30 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_25), _fx_catch_6); + const fx_str_t strs_3[] = { slit_28, v_25, slit_29, plural_0, slit_30 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_26), _fx_catch_6); } - _fx_F12print_stringv1S(&v_25, 0); + _fx_F12print_stringv1S(&v_26, 0); fx_str_t slit_31 = FX_MAKE_STR("\n"); _fx_F12print_stringv1S(&slit_31, 0); } } if (ok_4) { - bool t_3; + bool v_38; if (_fx_g12Options__opt.Werror) { - t_3 = _fx_g22Ast__all_compile_warns > 0; + v_38 = _fx_g22Ast__all_compile_warns > 0; } else { - t_3 = false; + v_38 = false; } - *fx_result = !t_3; + *fx_result = !v_38; } else { *fx_result = false; @@ -13125,55 +13063,58 @@ _fx_catch_6: ; if (v_21) { _fx_free_LS(&v_21); } + if (v_22) { + _fx_free_LS(&v_22); + } FX_FREE_STR(&cmd_0); FX_FREE_STR(&plural_0); - FX_FREE_STR(&v_22); FX_FREE_STR(&v_23); FX_FREE_STR(&v_24); FX_FREE_STR(&v_25); + FX_FREE_STR(&v_26); if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_0); fx_status = 0; FX_CALL(_fx_M8CompilerFM22print_all_compile_errsv0(0), _fx_cleanup); int tag_0 = exn_0.tag; if (tag_0 == _FX_EXN_E4Fail) { - fx_str_t v_29 = {0}; + fx_str_t v_39 = {0}; fx_str_t slit_32 = FX_MAKE_STR(": "); fx_str_t* msg_0 = &FX_EXN_DATA(_fx_E4Fail_data_t, exn_0.data); { const fx_str_t strs_4[] = { _fx_g15Compiler__error, slit_32, *msg_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_29), _fx_catch_7); + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_39), _fx_catch_7); } - _fx_F12print_stringv1S(&v_29, 0); + _fx_F12print_stringv1S(&v_39, 0); fx_str_t slit_33 = FX_MAKE_STR("\n"); _fx_F12print_stringv1S(&slit_33, 0); _fx_catch_7: ; - FX_FREE_STR(&v_29); + FX_FREE_STR(&v_39); } else if (tag_0 == _FX_EXN_E17Ast__CompileError) { FX_CALL(_fx_M3AstFM17print_compile_errv1E(&exn_0, 0), _fx_catch_8); _fx_catch_8: ; } else if (tag_0 != _FX_EXN_E30Compiler__CumulativeParseError) { - fx_str_t v_30 = {0}; - fx_str_t v_31 = {0}; - FX_CALL(_fx_F6stringS1E(&exn_0, &v_30, 0), _fx_catch_9); + fx_str_t v_40 = {0}; + fx_str_t v_41 = {0}; + FX_CALL(_fx_F6stringS1E(&exn_0, &v_40, 0), _fx_catch_9); fx_str_t slit_34 = FX_MAKE_STR("\n" U"\n"); fx_str_t slit_35 = FX_MAKE_STR(": Exception "); fx_str_t slit_36 = FX_MAKE_STR(" occured"); { - const fx_str_t strs_5[] = { slit_34, _fx_g15Compiler__error, slit_35, v_30, slit_36 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_5, 5, &v_31), _fx_catch_9); + const fx_str_t strs_5[] = { slit_34, _fx_g15Compiler__error, slit_35, v_40, slit_36 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_5, 5, &v_41), _fx_catch_9); } - _fx_F12print_stringv1S(&v_31, 0); + _fx_F12print_stringv1S(&v_41, 0); fx_str_t slit_37 = FX_MAKE_STR("\n"); _fx_F12print_stringv1S(&slit_37, 0); _fx_catch_9: ; - FX_FREE_STR(&v_31); - FX_FREE_STR(&v_30); + FX_FREE_STR(&v_41); + FX_FREE_STR(&v_40); } FX_CHECK_EXN(_fx_cleanup); *fx_result = false; diff --git a/compiler/bootstrap/Filename.c b/compiler/bootstrap/Filename.c index dd23add9..9a63cd03 100644 --- a/compiler/bootstrap/Filename.c +++ b/compiler/bootstrap/Filename.c @@ -268,68 +268,61 @@ static int _fx_M8FilenameFM6qsort_v5iiA1SFPB2SSi( } } } - int_ __fold_result___0 = lo_2; + int_ i0_0 = lo_2; int_ n_0 = FX_LOOP_COUNT(lo_2, hi_2, 1); for (int_ j_0 = 0; j_0 < n_0; j_0++) { fx_str_t v_9 = {0}; int_ j_1 = lo_2 + j_0 * 1; - int_ i0_0 = __fold_result___0; FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, j_1), _fx_catch_0); fx_copy_str(FX_PTR_1D(fx_str_t, *arr_0, j_1), &v_9); bool v_10; FX_CALL(lt_0->fp(&v_9, &p_1, &v_10, lt_0->fcv), _fx_catch_0); - int_ v_11; if (v_10) { - _fx_M8FilenameFM6_swap_v3A1Sii(arr_0, i0_0, j_1, 0); v_11 = i0_0 + 1; + _fx_M8FilenameFM6_swap_v3A1Sii(arr_0, i0_0, j_1, 0); i0_0 = i0_0 + 1; } - else { - v_11 = i0_0; - } - __fold_result___0 = v_11; _fx_catch_0: ; FX_FREE_STR(&v_9); FX_CHECK_EXN(_fx_catch_2); } - int_ i0_1 = __fold_result___0; - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_1), _fx_catch_2); - fx_copy_str(FX_PTR_1D(fx_str_t, *arr_0, i0_1), &a_1); + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_0), _fx_catch_2); + fx_copy_str(FX_PTR_1D(fx_str_t, *arr_0, i0_0), &a_1); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); - fx_str_t* v_12 = FX_PTR_1D(fx_str_t, *arr_0, hi_2); + fx_str_t* v_11 = FX_PTR_1D(fx_str_t, *arr_0, hi_2); + FX_FREE_STR(v_11); + fx_copy_str(&a_1, v_11); + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_0), _fx_catch_2); + fx_str_t* v_12 = FX_PTR_1D(fx_str_t, *arr_0, i0_0); FX_FREE_STR(v_12); - fx_copy_str(&a_1, v_12); - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_1), _fx_catch_2); - fx_str_t* v_13 = FX_PTR_1D(fx_str_t, *arr_0, i0_1); - FX_FREE_STR(v_13); - fx_copy_str(&p_1, v_13); + fx_copy_str(&p_1, v_12); int_ i1_0 = hi_2; - int_ n_1 = FX_LOOP_COUNT(i0_1, hi_2, 1); + int_ n_1 = FX_LOOP_COUNT(i0_0, hi_2, 1); for (int_ j_2 = 0; j_2 < n_1; j_2++) { - fx_str_t v_14 = {0}; - int_ j_3 = i0_1 + j_2 * 1; - int_ v_15 = j_3 + 1; - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, v_15), _fx_catch_1); - fx_copy_str(FX_PTR_1D(fx_str_t, *arr_0, v_15), &v_14); - bool v_16; - FX_CALL(lt_0->fp(&p_1, &v_14, &v_16, lt_0->fcv), _fx_catch_1); - if (v_16) { + fx_str_t v_13 = {0}; + int_ j_3 = i0_0 + j_2 * 1; + int_ v_14 = j_3 + 1; + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, v_14), _fx_catch_1); + fx_copy_str(FX_PTR_1D(fx_str_t, *arr_0, v_14), &v_13); + bool v_15; + FX_CALL(lt_0->fp(&p_1, &v_13, &v_15, lt_0->fcv), _fx_catch_1); + if (v_15) { i1_0 = j_3; FX_BREAK(_fx_catch_1); } _fx_catch_1: ; - FX_FREE_STR(&v_14); + FX_FREE_STR(&v_13); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_2); } - if (i0_1 - lo_2 < hi_2 - i1_0) { + if (i0_0 - lo_2 < hi_2 - i1_0) { if (i1_0 < prefix_0) { FX_CALL(_fx_M8FilenameFM6qsort_v5iiA1SFPB2SSi(i1_0 + 1, hi_2, arr_0, lt_0, prefix_0, 0), _fx_catch_2); } lo_1 = lo_2; - hi_1 = i0_1 - 1; + hi_1 = i0_0 - 1; } else { - FX_CALL(_fx_M8FilenameFM6qsort_v5iiA1SFPB2SSi(lo_2, i0_1 - 1, arr_0, lt_0, prefix_0, 0), _fx_catch_2); + FX_CALL(_fx_M8FilenameFM6qsort_v5iiA1SFPB2SSi(lo_2, i0_0 - 1, arr_0, lt_0, prefix_0, 0), _fx_catch_2); if (i1_0 < prefix_0) { lo_1 = i1_0 + 1; hi_1 = hi_2; } @@ -343,17 +336,17 @@ static int _fx_M8FilenameFM6qsort_v5iiA1SFPB2SSi( fx_copy_str(FX_PTR_1D(fx_str_t, *arr_0, lo_2), &a_2); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); fx_copy_str(FX_PTR_1D(fx_str_t, *arr_0, hi_2), &b_1); - bool v_17; - FX_CALL(lt_0->fp(&b_1, &a_2, &v_17, lt_0->fcv), _fx_catch_2); - if (v_17) { + bool v_16; + FX_CALL(lt_0->fp(&b_1, &a_2, &v_16, lt_0->fcv), _fx_catch_2); + if (v_16) { FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); - fx_str_t* v_18 = FX_PTR_1D(fx_str_t, *arr_0, hi_2); - FX_FREE_STR(v_18); - fx_copy_str(&a_2, v_18); + fx_str_t* v_17 = FX_PTR_1D(fx_str_t, *arr_0, hi_2); + FX_FREE_STR(v_17); + fx_copy_str(&a_2, v_17); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, lo_2), _fx_catch_2); - fx_str_t* v_19 = FX_PTR_1D(fx_str_t, *arr_0, lo_2); - FX_FREE_STR(v_19); - fx_copy_str(&b_1, v_19); + fx_str_t* v_18 = FX_PTR_1D(fx_str_t, *arr_0, lo_2); + FX_FREE_STR(v_18); + fx_copy_str(&b_1, v_18); FX_BREAK(_fx_catch_2); } else { @@ -474,14 +467,17 @@ FX_EXTERN_C int _fx_M8FilenameFM5splitTa2S1S(fx_str_t* path_0, struct _fx_Ta2S* FX_BREAK(_fx_catch_0); } else { - bool t_0; + bool v_8; if (pos_1 == 0) { - t_0 = true; + v_8 = true; } else { - int_ v_8 = pos_1 - 1; FX_STR_CHKIDX(path_2, v_8, _fx_catch_0); t_0 = FX_STR_ELEM(path_2, v_8) == (char_)58; + int_ v_9 = pos_1 - 1; + FX_STR_CHKIDX(path_2, v_9, _fx_catch_0); + char_ v_10 = FX_STR_ELEM(path_2, v_9); + v_8 = v_10 == (char_)58; } - if (t_0) { + if (v_8) { FX_CALL(fx_substr(&path_2, 0, pos_1 + 1, 1, 1, &v_1), _fx_catch_0); FX_CALL(fx_substr(&path_2, pos_1 + 1, 0, 1, 2, &v_2), _fx_catch_0); _fx_make_Ta2S(&v_1, &v_2, &result_3); diff --git a/compiler/bootstrap/K_annotate.c b/compiler/bootstrap/K_annotate.c index d81f92a3..82b7b8ab 100644 --- a/compiler/bootstrap/K_annotate.c +++ b/compiler/bootstrap/K_annotate.c @@ -936,6 +936,11 @@ typedef struct _fx_LLN14K_form__kexp_t_data_t { struct _fx_LN14K_form__kexp_t_data_t* hd; } _fx_LLN14K_form__kexp_t_data_t, *_fx_LLN14K_form__kexp_t; +typedef struct _fx_Ta2LN14K_form__kexp_t { + struct _fx_LN14K_form__kexp_t_data_t* t0; + struct _fx_LN14K_form__kexp_t_data_t* t1; +} _fx_Ta2LN14K_form__kexp_t; + typedef struct { int_ rc; int_ data; @@ -3248,6 +3253,27 @@ static int _fx_cons_LLN14K_form__kexp_t( FX_MAKE_LIST_IMPL(_fx_LLN14K_form__kexp_t, FX_COPY_PTR); } +static void _fx_free_Ta2LN14K_form__kexp_t(struct _fx_Ta2LN14K_form__kexp_t* dst) +{ + _fx_free_LN14K_form__kexp_t(&dst->t0); + _fx_free_LN14K_form__kexp_t(&dst->t1); +} + +static void _fx_copy_Ta2LN14K_form__kexp_t(struct _fx_Ta2LN14K_form__kexp_t* src, struct _fx_Ta2LN14K_form__kexp_t* dst) +{ + FX_COPY_PTR(src->t0, &dst->t0); + FX_COPY_PTR(src->t1, &dst->t1); +} + +static void _fx_make_Ta2LN14K_form__kexp_t( + struct _fx_LN14K_form__kexp_t_data_t* t0, + struct _fx_LN14K_form__kexp_t_data_t* t1, + struct _fx_Ta2LN14K_form__kexp_t* fx_result) +{ + FX_COPY_PTR(t0, &fx_result->t0); + FX_COPY_PTR(t1, &fx_result->t1); +} + _fx_Nt6option1FPv3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t _fx_g16K_annotate__None = 0; _fx_Nt6option1Nt10Hashset__t1R9Ast__id_t _fx_g18K_annotate__None1_ = { 1 }; _fx_N12Set__color_t _fx_g15K_annotate__Red = { 1 }; @@ -3432,12 +3458,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -3491,28 +3518,29 @@ FX_EXTERN_C int _fx_M10K_annotateFM4growv2Nt10Hashmap__t2R9Ast__id_tNt10Hashset_ for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0)->hv < - 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M10K_annotateFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tRt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -3532,14 +3560,14 @@ FX_EXTERN_C int _fx_M10K_annotateFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tNt10 { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -3558,32 +3586,11 @@ FX_EXTERN_C int _fx_M10K_annotateFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tNt10 bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -3623,14 +3630,14 @@ FX_EXTERN_C int _fx_M10K_annotateFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -3658,32 +3665,11 @@ FX_EXTERN_C int _fx_M10K_annotateFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -3699,14 +3685,14 @@ FX_EXTERN_C int _fx_M10K_annotateFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -3719,28 +3705,29 @@ FX_EXTERN_C int _fx_M10K_annotateFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -3751,12 +3738,13 @@ FX_EXTERN_C int _fx_M10K_annotateFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_COPY_PTR(self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(hv_0, k_0, v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -3803,32 +3791,11 @@ FX_EXTERN_C int _fx_M10K_annotateFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9As bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4274,108 +4241,99 @@ FX_EXTERN_C int _fx_M10K_annotateFM14get_ktyp_deps_Rt6Set__t1R9Ast__id_t2N14K_fo goto _fx_endmatch_1; } if (tag_0 == 13) { - _fx_Rt6Set__t1R9Ast__id_t __fold_result___0 = {0}; + _fx_Rt6Set__t1R9Ast__id_t deps_3 = {0}; _fx_LN14K_form__ktyp_t v_0 = 0; _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t* vcase_0 = &t_2->u.KTypFun; - _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_2, &__fold_result___0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_2, &deps_3); FX_CALL(_fx_cons_LN14K_form__ktyp_t(vcase_0->t1, vcase_0->t0, true, &v_0), _fx_catch_2); _fx_LN14K_form__ktyp_t lst_0 = v_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_Rt6Set__t1R9Ast__id_t deps_3 = {0}; _fx_Rt6Set__t1R9Ast__id_t v_1 = {0}; _fx_N14K_form__ktyp_t t_3 = lst_0->hd; - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___0, &deps_3); FX_CALL( _fx_M10K_annotateFM14get_ktyp_deps_Rt6Set__t1R9Ast__id_t2N14K_form__ktyp_tRt6Set__t1R9Ast__id_t(t_3, &deps_3, &v_1, 0), _fx_catch_1); - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_1, &__fold_result___0); + _fx_free_Rt6Set__t1R9Ast__id_t(&deps_3); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_1, &deps_3); _fx_catch_1: ; _fx_free_Rt6Set__t1R9Ast__id_t(&v_1); - _fx_free_Rt6Set__t1R9Ast__id_t(&deps_3); FX_CHECK_EXN(_fx_catch_2); } _fx_free_Rt6Set__t1R9Ast__id_t(&result_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___0, &result_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_3, &result_0); FX_BREAK(_fx_catch_2); _fx_catch_2: ; if (v_0) { _fx_free_LN14K_form__ktyp_t(&v_0); } - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___0); + _fx_free_Rt6Set__t1R9Ast__id_t(&deps_3); goto _fx_endmatch_1; } if (tag_0 == 14) { - _fx_Rt6Set__t1R9Ast__id_t __fold_result___1 = {0}; + _fx_Rt6Set__t1R9Ast__id_t deps_4 = {0}; _fx_LN14K_form__ktyp_t tl_0 = 0; - _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_2, &__fold_result___1); + _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_2, &deps_4); FX_COPY_PTR(t_2->u.KTypTuple, &tl_0); _fx_LN14K_form__ktyp_t lst_1 = tl_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_Rt6Set__t1R9Ast__id_t deps_4 = {0}; _fx_Rt6Set__t1R9Ast__id_t v_2 = {0}; _fx_N14K_form__ktyp_t t_4 = lst_1->hd; - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___1, &deps_4); FX_CALL( _fx_M10K_annotateFM14get_ktyp_deps_Rt6Set__t1R9Ast__id_t2N14K_form__ktyp_tRt6Set__t1R9Ast__id_t(t_4, &deps_4, &v_2, 0), _fx_catch_3); - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_2, &__fold_result___1); + _fx_free_Rt6Set__t1R9Ast__id_t(&deps_4); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_2, &deps_4); _fx_catch_3: ; _fx_free_Rt6Set__t1R9Ast__id_t(&v_2); - _fx_free_Rt6Set__t1R9Ast__id_t(&deps_4); FX_CHECK_EXN(_fx_catch_4); } _fx_free_Rt6Set__t1R9Ast__id_t(&result_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___1, &result_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_4, &result_0); FX_BREAK(_fx_catch_4); _fx_catch_4: ; if (tl_0) { _fx_free_LN14K_form__ktyp_t(&tl_0); } - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___1); + _fx_free_Rt6Set__t1R9Ast__id_t(&deps_4); goto _fx_endmatch_1; } if (tag_0 == 15) { - _fx_Rt6Set__t1R9Ast__id_t __fold_result___2 = {0}; + _fx_Rt6Set__t1R9Ast__id_t deps_5 = {0}; _fx_LT2R9Ast__id_tN14K_form__ktyp_t relems_0 = 0; - _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_2, &__fold_result___2); + _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_2, &deps_5); FX_COPY_PTR(t_2->u.KTypRecord.t1, &relems_0); _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_2 = relems_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_N14K_form__ktyp_t ti_0 = 0; - _fx_Rt6Set__t1R9Ast__id_t deps_5 = {0}; _fx_Rt6Set__t1R9Ast__id_t v_3 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___0 = &lst_2->hd; FX_COPY_PTR(__pat___0->t1, &ti_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___2, &deps_5); FX_CALL( _fx_M10K_annotateFM14get_ktyp_deps_Rt6Set__t1R9Ast__id_t2N14K_form__ktyp_tRt6Set__t1R9Ast__id_t(ti_0, &deps_5, &v_3, 0), _fx_catch_5); - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___2); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_3, &__fold_result___2); + _fx_free_Rt6Set__t1R9Ast__id_t(&deps_5); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_3, &deps_5); _fx_catch_5: ; _fx_free_Rt6Set__t1R9Ast__id_t(&v_3); - _fx_free_Rt6Set__t1R9Ast__id_t(&deps_5); if (ti_0) { _fx_free_N14K_form__ktyp_t(&ti_0); } FX_CHECK_EXN(_fx_catch_6); } _fx_free_Rt6Set__t1R9Ast__id_t(&result_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___2, &result_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_5, &result_0); FX_BREAK(_fx_catch_6); _fx_catch_6: ; if (relems_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&relems_0); } - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___2); + _fx_free_Rt6Set__t1R9Ast__id_t(&deps_5); goto _fx_endmatch_1; } if (tag_0 == 16) { @@ -4506,42 +4464,34 @@ FX_EXTERN_C int _fx_M10K_annotateFM12get_typ_depsRt6Set__t1R9Ast__id_t2R9Ast__id int tag_0 = v_0.tag; if (tag_0 == 5) { _fx_R21K_form__kdefvariant_t v_1 = {0}; - _fx_Rt6Set__t1R9Ast__id_t __fold_result___0 = {0}; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t kvar_cases_0 = 0; _fx_Rt6Set__t1R9Ast__id_t deps_0 = {0}; - _fx_Rt6Set__t1R9Ast__id_t __fold_result___1 = {0}; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t kvar_cases_0 = 0; _fx_LT2R9Ast__id_tLR9Ast__id_t kvar_ifaces_0 = 0; _fx_copy_R21K_form__kdefvariant_t(&v_0.u.KVariant->data, &v_1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &__fold_result___0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &deps_0); FX_COPY_PTR(v_1.kvar_cases, &kvar_cases_0); _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_0 = kvar_cases_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_N14K_form__ktyp_t ti_0 = 0; - _fx_Rt6Set__t1R9Ast__id_t deps_1 = {0}; _fx_Rt6Set__t1R9Ast__id_t v_2 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___0 = &lst_0->hd; FX_COPY_PTR(__pat___0->t1, &ti_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___0, &deps_1); FX_CALL( - _fx_M10K_annotateFM14get_ktyp_deps_Rt6Set__t1R9Ast__id_t2N14K_form__ktyp_tRt6Set__t1R9Ast__id_t(ti_0, &deps_1, &v_2, + _fx_M10K_annotateFM14get_ktyp_deps_Rt6Set__t1R9Ast__id_t2N14K_form__ktyp_tRt6Set__t1R9Ast__id_t(ti_0, &deps_0, &v_2, 0), _fx_catch_0); - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_2, &__fold_result___0); + _fx_free_Rt6Set__t1R9Ast__id_t(&deps_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_2, &deps_0); _fx_catch_0: ; _fx_free_Rt6Set__t1R9Ast__id_t(&v_2); - _fx_free_Rt6Set__t1R9Ast__id_t(&deps_1); if (ti_0) { _fx_free_N14K_form__ktyp_t(&ti_0); } FX_CHECK_EXN(_fx_catch_3); } - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___0, &deps_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_0, &__fold_result___1); FX_COPY_PTR(v_1.kvar_ifaces, &kvar_ifaces_0); _fx_LT2R9Ast__id_tLR9Ast__id_t lst_1 = kvar_ifaces_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_Rt6Set__t1R9Ast__id_t deps_2 = {0}; _fx_Nt11Set__tree_t1R9Ast__id_t v_3 = 0; _fx_FPi2R9Ast__id_tR9Ast__id_t v_4 = {0}; _fx_T2Nt11Set__tree_t1R9Ast__id_ti v_5 = {0}; @@ -4552,9 +4502,8 @@ FX_EXTERN_C int _fx_M10K_annotateFM12get_typ_depsRt6Set__t1R9Ast__id_t2R9Ast__id _fx_Rt6Set__t1R9Ast__id_t v_8 = {0}; _fx_T2R9Ast__id_tLR9Ast__id_t* __pat___1 = &lst_1->hd; _fx_R9Ast__id_t iname_0 = __pat___1->t0; - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___1, &deps_2); - FX_COPY_PTR(deps_2.root, &v_3); - FX_COPY_FP(&deps_2.cmp, &v_4); + FX_COPY_PTR(deps_0.root, &v_3); + FX_COPY_FP(&deps_0.cmp, &v_4); FX_CALL( _fx_M10K_annotateFM12add_to_tree_T2Nt11Set__tree_t1R9Ast__id_ti3Nt11Set__tree_t1R9Ast__id_tR9Ast__id_tFPi2R9Ast__id_tR9Ast__id_t( v_3, &iname_0, &v_4, &v_5, 0), _fx_catch_2); @@ -4581,10 +4530,11 @@ FX_EXTERN_C int _fx_M10K_annotateFM12get_typ_depsRt6Set__t1R9Ast__id_t2R9Ast__id _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_2); FX_COPY_PTR(v_6.t0, &t_1); - FX_COPY_FP(&deps_2.cmp, &v_7); - _fx_make_Rt6Set__t1R9Ast__id_t(t_1, deps_2.size + dsz_0, &v_7, &v_8); - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_8, &__fold_result___1); + int_ v_10 = deps_0.size; + FX_COPY_FP(&deps_0.cmp, &v_7); + _fx_make_Rt6Set__t1R9Ast__id_t(t_1, v_10 + dsz_0, &v_7, &v_8); + _fx_free_Rt6Set__t1R9Ast__id_t(&deps_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_8, &deps_0); _fx_catch_2: ; _fx_free_Rt6Set__t1R9Ast__id_t(&v_8); @@ -4601,149 +4551,141 @@ FX_EXTERN_C int _fx_M10K_annotateFM12get_typ_depsRt6Set__t1R9Ast__id_t2R9Ast__id if (v_3) { _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_3); } - _fx_free_Rt6Set__t1R9Ast__id_t(&deps_2); FX_CHECK_EXN(_fx_catch_3); } - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___1, fx_result); + _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_0, fx_result); _fx_catch_3: ; if (kvar_ifaces_0) { _fx_free_LT2R9Ast__id_tLR9Ast__id_t(&kvar_ifaces_0); } - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___1); - _fx_free_Rt6Set__t1R9Ast__id_t(&deps_0); if (kvar_cases_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&kvar_cases_0); } - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___0); + _fx_free_Rt6Set__t1R9Ast__id_t(&deps_0); _fx_free_R21K_form__kdefvariant_t(&v_1); } else if (tag_0 == 8) { - _fx_R17K_form__kdeftyp_t v_10 = {0}; - _fx_copy_R17K_form__kdeftyp_t(&v_0.u.KTyp->data, &v_10); + _fx_R17K_form__kdeftyp_t v_11 = {0}; + _fx_copy_R17K_form__kdeftyp_t(&v_0.u.KTyp->data, &v_11); FX_CALL( - _fx_M10K_annotateFM14get_ktyp_deps_Rt6Set__t1R9Ast__id_t2N14K_form__ktyp_tRt6Set__t1R9Ast__id_t(v_10.kt_typ, + _fx_M10K_annotateFM14get_ktyp_deps_Rt6Set__t1R9Ast__id_t2N14K_form__ktyp_tRt6Set__t1R9Ast__id_t(v_11.kt_typ, &_fx_g16Ast__empty_idset, fx_result, 0), _fx_catch_4); _fx_catch_4: ; - _fx_free_R17K_form__kdeftyp_t(&v_10); + _fx_free_R17K_form__kdeftyp_t(&v_11); } else if (tag_0 == 7) { - _fx_R23K_form__kdefinterface_t v_11 = {0}; - _fx_Rt6Set__t1R9Ast__id_t __fold_result___2 = {0}; + _fx_R23K_form__kdefinterface_t v_12 = {0}; + _fx_Rt6Set__t1R9Ast__id_t deps_1 = {0}; _fx_LT2R9Ast__id_tN14K_form__ktyp_t ki_all_methods_0 = 0; - _fx_Rt6Set__t1R9Ast__id_t deps_3 = {0}; - _fx_Nt11Set__tree_t1R9Ast__id_t v_12 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_13 = {0}; - _fx_T2Nt11Set__tree_t1R9Ast__id_ti v_14 = {0}; + _fx_Nt11Set__tree_t1R9Ast__id_t v_13 = 0; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_14 = {0}; + _fx_T2Nt11Set__tree_t1R9Ast__id_ti v_15 = {0}; _fx_Nt11Set__tree_t1R9Ast__id_t t_2 = 0; - _fx_T2Nt11Set__tree_t1R9Ast__id_tB v_15 = {0}; + _fx_T2Nt11Set__tree_t1R9Ast__id_tB v_16 = {0}; _fx_Nt11Set__tree_t1R9Ast__id_t t_3 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_16 = {0}; - _fx_copy_R23K_form__kdefinterface_t(&v_0.u.KInterface->data, &v_11); - _fx_R9Ast__id_t* ki_base_0 = &v_11.ki_base; - _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &__fold_result___2); - FX_COPY_PTR(v_11.ki_all_methods, &ki_all_methods_0); + _fx_FPi2R9Ast__id_tR9Ast__id_t v_17 = {0}; + _fx_copy_R23K_form__kdefinterface_t(&v_0.u.KInterface->data, &v_12); + _fx_R9Ast__id_t* ki_base_0 = &v_12.ki_base; + _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &deps_1); + FX_COPY_PTR(v_12.ki_all_methods, &ki_all_methods_0); _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_2 = ki_all_methods_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_N14K_form__ktyp_t ti_1 = 0; - _fx_Rt6Set__t1R9Ast__id_t deps_4 = {0}; - _fx_Rt6Set__t1R9Ast__id_t v_17 = {0}; + _fx_Rt6Set__t1R9Ast__id_t v_18 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___2 = &lst_2->hd; FX_COPY_PTR(__pat___2->t1, &ti_1); - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___2, &deps_4); FX_CALL( - _fx_M10K_annotateFM14get_ktyp_deps_Rt6Set__t1R9Ast__id_t2N14K_form__ktyp_tRt6Set__t1R9Ast__id_t(ti_1, &deps_4, - &v_17, 0), _fx_catch_5); - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___2); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_17, &__fold_result___2); + _fx_M10K_annotateFM14get_ktyp_deps_Rt6Set__t1R9Ast__id_t2N14K_form__ktyp_tRt6Set__t1R9Ast__id_t(ti_1, &deps_1, + &v_18, 0), _fx_catch_5); + _fx_free_Rt6Set__t1R9Ast__id_t(&deps_1); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_18, &deps_1); _fx_catch_5: ; - _fx_free_Rt6Set__t1R9Ast__id_t(&v_17); - _fx_free_Rt6Set__t1R9Ast__id_t(&deps_4); + _fx_free_Rt6Set__t1R9Ast__id_t(&v_18); if (ti_1) { _fx_free_N14K_form__ktyp_t(&ti_1); } FX_CHECK_EXN(_fx_catch_7); } - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___2, &deps_3); bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(ki_base_0, &_fx_g9Ast__noid, &res_0, 0), _fx_catch_7); if (res_0) { - _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_3, fx_result); + _fx_copy_Rt6Set__t1R9Ast__id_t(&deps_1, fx_result); } else { - FX_COPY_PTR(deps_3.root, &v_12); - FX_COPY_FP(&deps_3.cmp, &v_13); + FX_COPY_PTR(deps_1.root, &v_13); + FX_COPY_FP(&deps_1.cmp, &v_14); FX_CALL( _fx_M10K_annotateFM12add_to_tree_T2Nt11Set__tree_t1R9Ast__id_ti3Nt11Set__tree_t1R9Ast__id_tR9Ast__id_tFPi2R9Ast__id_tR9Ast__id_t( - v_12, ki_base_0, &v_13, &v_14, 0), _fx_catch_7); - FX_COPY_PTR(v_14.t0, &t_2); - int_ dsz_1 = v_14.t1; + v_13, ki_base_0, &v_14, &v_15, 0), _fx_catch_7); + FX_COPY_PTR(v_15.t0, &t_2); + int_ dsz_1 = v_15.t1; if ((t_2 != 0) + 1 == 2) { _fx_T4N12Set__color_tNt11Set__tree_t1R9Ast__id_tR9Ast__id_tNt11Set__tree_t1R9Ast__id_t* vcase_1 = &t_2->u.Node; if (vcase_1->t0.tag == 1) { - _fx_Nt11Set__tree_t1R9Ast__id_t v_18 = 0; + _fx_Nt11Set__tree_t1R9Ast__id_t v_19 = 0; FX_CALL( _fx_M10K_annotateFM4NodeNt11Set__tree_t1R9Ast__id_t4N12Set__color_tNt11Set__tree_t1R9Ast__id_tR9Ast__id_tNt11Set__tree_t1R9Ast__id_t( - &_fx_g17K_annotate__Black, vcase_1->t1, &vcase_1->t2, vcase_1->t3, &v_18), _fx_catch_6); - _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(v_18, false, &v_15); + &_fx_g17K_annotate__Black, vcase_1->t1, &vcase_1->t2, vcase_1->t3, &v_19), _fx_catch_6); + _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(v_19, false, &v_16); _fx_catch_6: ; - if (v_18) { - _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_18); + if (v_19) { + _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_19); } goto _fx_endmatch_1; } } - _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(t_2, true, &v_15); + _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(t_2, true, &v_16); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_7); - FX_COPY_PTR(v_15.t0, &t_3); - FX_COPY_FP(&deps_3.cmp, &v_16); - _fx_make_Rt6Set__t1R9Ast__id_t(t_3, deps_3.size + dsz_1, &v_16, fx_result); + FX_COPY_PTR(v_16.t0, &t_3); + int_ v_20 = deps_1.size; + FX_COPY_FP(&deps_1.cmp, &v_17); + _fx_make_Rt6Set__t1R9Ast__id_t(t_3, v_20 + dsz_1, &v_17, fx_result); } _fx_catch_7: ; - FX_FREE_FP(&v_16); + FX_FREE_FP(&v_17); if (t_3) { _fx_free_Nt11Set__tree_t1R9Ast__id_t(&t_3); } - _fx_free_T2Nt11Set__tree_t1R9Ast__id_tB(&v_15); + _fx_free_T2Nt11Set__tree_t1R9Ast__id_tB(&v_16); if (t_2) { _fx_free_Nt11Set__tree_t1R9Ast__id_t(&t_2); } - _fx_free_T2Nt11Set__tree_t1R9Ast__id_ti(&v_14); - FX_FREE_FP(&v_13); - if (v_12) { - _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_12); + _fx_free_T2Nt11Set__tree_t1R9Ast__id_ti(&v_15); + FX_FREE_FP(&v_14); + if (v_13) { + _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_13); } - _fx_free_Rt6Set__t1R9Ast__id_t(&deps_3); if (ki_all_methods_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&ki_all_methods_0); } - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___2); - _fx_free_R23K_form__kdefinterface_t(&v_11); + _fx_free_Rt6Set__t1R9Ast__id_t(&deps_1); + _fx_free_R23K_form__kdefinterface_t(&v_12); } else { - fx_str_t v_19 = {0}; - fx_str_t v_20 = {0}; - fx_exn_t v_21 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(n_0, loc_0, &v_19, 0), _fx_catch_8); + fx_str_t v_21 = {0}; + fx_str_t v_22 = {0}; + fx_exn_t v_23 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(n_0, loc_0, &v_21, 0), _fx_catch_8); fx_str_t slit_0 = FX_MAKE_STR("the symbol \'"); fx_str_t slit_1 = FX_MAKE_STR("\' is not a type"); { - const fx_str_t strs_0[] = { slit_0, v_19, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_20), _fx_catch_8); + const fx_str_t strs_0[] = { slit_0, v_21, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_22), _fx_catch_8); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_20, &v_21, 0), _fx_catch_8); - FX_THROW(&v_21, false, _fx_catch_8); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_22, &v_23, 0), _fx_catch_8); + FX_THROW(&v_23, false, _fx_catch_8); _fx_catch_8: ; - fx_free_exn(&v_21); - FX_FREE_STR(&v_20); - FX_FREE_STR(&v_19); + fx_free_exn(&v_23); + FX_FREE_STR(&v_22); + FX_FREE_STR(&v_21); } _fx_cleanup: ; @@ -4779,7 +4721,7 @@ FX_EXTERN_C int _fx_M10K_annotateFM14find_recursivev1LN14K_form__kexp_t( fx_arr_t table_0 = {0}; _fx_LR9Ast__id_t res_0 = 0; _fx_LR9Ast__id_t v_4 = 0; - _fx_LR9Ast__id_t __fold_result___0 = 0; + _fx_LR9Ast__id_t res_1 = 0; _fx_LR9Ast__id_t all_typs_0 = 0; int fx_status = 0; FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(1, &idset0_0, 0), _fx_cleanup); @@ -4855,111 +4797,111 @@ FX_EXTERN_C int _fx_M10K_annotateFM14find_recursivev1LN14K_form__kexp_t( FX_COPY_PTR(res_0, &v_4); _fx_LR9Ast__id_t lst_1 = v_4; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LR9Ast__id_t r_0 = 0; + _fx_LR9Ast__id_t v_8 = 0; _fx_R9Ast__id_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_2); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LR9Ast__id_t(a_0, res_1, true, &v_8), _fx_catch_2); + FX_FREE_LIST_SIMPLE(&res_1); + FX_COPY_PTR(v_8, &res_1); _fx_catch_2: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_8); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &all_typs_0); - int_ res_1; + FX_COPY_PTR(res_1, &all_typs_0); + int_ res_2; FX_CALL( _fx_M3AstFM17calc_sets_closurei3iLRM4id_tNt10Hashmap__t2RM4id_tNt10Hashset__t1RM4id_t(10, all_typs_0, *all_typ_deps_0, - &res_1, 0), _fx_cleanup); + &res_2, 0), _fx_cleanup); _fx_LR9Ast__id_t lst_2 = all_typs_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_N15K_form__kinfo_t v_8 = {0}; + _fx_N15K_form__kinfo_t v_9 = {0}; _fx_R9Ast__id_t* n_1 = &lst_2->hd; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(n_1, &_fx_g10Ast__noloc, &v_8, 0), _fx_catch_5); - if (v_8.tag == 5) { - _fx_Nt6option1Nt10Hashset__t1R9Ast__id_t v_9 = {0}; - _fx_Nt10Hashset__t1R9Ast__id_t v_10 = 0; - _fx_LT2R9Ast__id_tLR9Ast__id_t v_11 = 0; - _fx_R21K_form__kdefvariant_t v_12 = {0}; - _fx_rR21K_form__kdefvariant_t kvar_0 = v_8.u.KVariant; - _fx_Ta2i v_13; + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(n_1, &_fx_g10Ast__noloc, &v_9, 0), _fx_catch_5); + if (v_9.tag == 5) { + _fx_Nt6option1Nt10Hashset__t1R9Ast__id_t v_10 = {0}; + _fx_Nt10Hashset__t1R9Ast__id_t v_11 = 0; + _fx_LT2R9Ast__id_tLR9Ast__id_t v_12 = 0; + _fx_R21K_form__kdefvariant_t v_13 = {0}; + _fx_rR21K_form__kdefvariant_t kvar_0 = v_9.u.KVariant; + _fx_Ta2i v_14; FX_CALL( _fx_M10K_annotateFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tR9Ast__id_t(*all_typ_deps_0, - n_1, &v_13, 0), _fx_catch_4); - int_ j_1 = v_13.t1; + n_1, &v_14, 0), _fx_catch_4); + int_ j_1 = v_14.t1; if (j_1 >= 0) { FX_CHKIDX(FX_CHKIDX1((*all_typ_deps_0)->u.t.t5, 0, j_1), _fx_catch_4); - FX_COPY_PTR( - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_typ_deps_0)->u.t.t5, - j_1)->data, &v_10); - _fx_M10K_annotateFM4SomeNt6option1Nt10Hashset__t1R9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(v_10, &v_9); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_15 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_typ_deps_0)->u.t.t5, j_1); + FX_COPY_PTR(v_15->data, &v_11); + _fx_M10K_annotateFM4SomeNt6option1Nt10Hashset__t1R9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(v_11, &v_10); } else { - _fx_copy_Nt6option1Nt10Hashset__t1R9Ast__id_t(&_fx_g18K_annotate__None1_, &v_9); + _fx_copy_Nt6option1Nt10Hashset__t1R9Ast__id_t(&_fx_g18K_annotate__None1_, &v_10); } - bool v_14; - bool res_2; - if (v_9.tag == 2) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___1 ^ ((uint64_t)n_1->m ^ 14695981039346656037ULL); - __fold_result___1 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___1 ^ ((uint64_t)n_1->i ^ 14695981039346656037ULL); - __fold_result___1 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___1 ^ ((uint64_t)n_1->j ^ 14695981039346656037ULL); - __fold_result___1 = h_2 * 1099511628211ULL; - _fx_Ta2i v_15; + bool v_16; + bool res_3; + if (v_10.tag == 2) { + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)n_1->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_1->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_1->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + _fx_Ta2i v_17; FX_CALL( - _fx_M10K_annotateFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(v_9.u.Some, n_1, - __fold_result___1 & 9223372036854775807ULL, &v_15, 0), _fx_catch_3); - res_2 = v_15.t1 >= 0; + _fx_M10K_annotateFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(v_10.u.Some, n_1, + h_0 & 9223372036854775807ULL, &v_17, 0), _fx_catch_3); + res_3 = v_17.t1 >= 0; _fx_catch_3: ; } else { - res_2 = false; + res_3 = false; } FX_CHECK_EXN(_fx_catch_4); bool t_0; - if (res_2) { + if (res_3) { t_0 = true; } else { - FX_COPY_PTR(kvar_0->data.kvar_ifaces, &v_11); t_0 = v_11 != 0; + _fx_R21K_form__kdefvariant_t* v_18 = &kvar_0->data; FX_COPY_PTR(v_18->kvar_ifaces, &v_12); t_0 = v_12 != 0; } if (t_0) { - v_14 = true; + v_16 = true; } else { - v_14 = kvar_0->data.kvar_flags.var_flag_have_mutable; + _fx_R21K_form__kdefvariant_t* v_19 = &kvar_0->data; v_16 = v_19->kvar_flags.var_flag_have_mutable; } - if (v_14) { - _fx_R16Ast__var_flags_t kvar_flags_0 = kvar_0->data.kvar_flags; - _fx_R21K_form__kdefvariant_t* v_16 = &kvar_0->data; - _fx_R16Ast__var_flags_t v_17 = + if (v_16) { + _fx_R21K_form__kdefvariant_t* v_20 = &kvar_0->data; + _fx_R16Ast__var_flags_t kvar_flags_0 = v_20->kvar_flags; + _fx_R21K_form__kdefvariant_t* v_21 = &kvar_0->data; + _fx_R16Ast__var_flags_t v_22 = { kvar_flags_0.var_flag_class_from, kvar_flags_0.var_flag_record, true, kvar_flags_0.var_flag_have_tag, kvar_flags_0.var_flag_have_mutable, kvar_flags_0.var_flag_opt, kvar_flags_0.var_flag_instance }; - _fx_make_R21K_form__kdefvariant_t(&v_16->kvar_name, &v_16->kvar_cname, &v_16->kvar_proto, &v_16->kvar_props, - v_16->kvar_targs, v_16->kvar_cases, v_16->kvar_ctors, &v_17, v_16->kvar_ifaces, v_16->kvar_scope, - &v_16->kvar_loc, &v_12); - _fx_R21K_form__kdefvariant_t* v_18 = &kvar_0->data; - _fx_free_R21K_form__kdefvariant_t(v_18); - _fx_copy_R21K_form__kdefvariant_t(&v_12, v_18); + _fx_make_R21K_form__kdefvariant_t(&v_21->kvar_name, &v_21->kvar_cname, &v_21->kvar_proto, &v_21->kvar_props, + v_21->kvar_targs, v_21->kvar_cases, v_21->kvar_ctors, &v_22, v_21->kvar_ifaces, v_21->kvar_scope, + &v_21->kvar_loc, &v_13); + _fx_R21K_form__kdefvariant_t* v_23 = &kvar_0->data; + _fx_free_R21K_form__kdefvariant_t(v_23); + _fx_copy_R21K_form__kdefvariant_t(&v_13, v_23); } _fx_catch_4: ; - _fx_free_R21K_form__kdefvariant_t(&v_12); - if (v_11) { - _fx_free_LT2R9Ast__id_tLR9Ast__id_t(&v_11); + _fx_free_R21K_form__kdefvariant_t(&v_13); + if (v_12) { + _fx_free_LT2R9Ast__id_tLR9Ast__id_t(&v_12); } - if (v_10) { - _fx_free_Nt10Hashset__t1R9Ast__id_t(&v_10); + if (v_11) { + _fx_free_Nt10Hashset__t1R9Ast__id_t(&v_11); } - _fx_free_Nt6option1Nt10Hashset__t1R9Ast__id_t(&v_9); + _fx_free_Nt6option1Nt10Hashset__t1R9Ast__id_t(&v_10); } FX_CHECK_EXN(_fx_catch_5); _fx_catch_5: ; - _fx_free_N15K_form__kinfo_t(&v_8); + _fx_free_N15K_form__kinfo_t(&v_9); FX_CHECK_EXN(_fx_cleanup); } @@ -4988,7 +4930,7 @@ _fx_cleanup: ; FX_FREE_ARR(&table_0); FX_FREE_LIST_SIMPLE(&res_0); FX_FREE_LIST_SIMPLE(&v_4); - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_1); FX_FREE_LIST_SIMPLE(&all_typs_0); return fx_status; } @@ -5018,10 +4960,11 @@ static int _fx_M10K_annotateFM16fold_deps0_kexp_v2N14K_form__kexp_tR22K_form__k_ _fx_M10K_annotateFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tR9Ast__id_t( *all_typ_deps_0, kvar_name_0, &idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1((*all_typ_deps_0)->u.t.t5, 0, idx_0), _fx_catch_0); - _fx_Nt10Hashset__t1R9Ast__id_t* v_1 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_typ_deps_0)->u.t.t5, idx_0)->data; - _fx_free_Nt10Hashset__t1R9Ast__id_t(v_1); - FX_COPY_PTR(deps_1, v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_1 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_typ_deps_0)->u.t.t5, idx_0); + _fx_Nt10Hashset__t1R9Ast__id_t* v_2 = &v_1->data; + _fx_free_Nt10Hashset__t1R9Ast__id_t(v_2); + FX_COPY_PTR(deps_1, v_2); _fx_catch_0: ; if (deps_1) { @@ -5031,13 +4974,13 @@ static int _fx_M10K_annotateFM16fold_deps0_kexp_v2N14K_form__kexp_tR22K_form__k_ _fx_free_R21K_form__kdefvariant_t(&v_0); } else if (tag_0 == 36) { - _fx_R17K_form__kdeftyp_t v_2 = {0}; + _fx_R17K_form__kdeftyp_t v_3 = {0}; _fx_Rt6Set__t1R9Ast__id_t deps_2 = {0}; _fx_Nt10Hashset__t1R9Ast__id_t deps_3 = 0; - _fx_copy_R17K_form__kdeftyp_t(&e_0->u.KDefTyp->data, &v_2); - _fx_R9Ast__id_t* kt_name_0 = &v_2.kt_name; + _fx_copy_R17K_form__kdeftyp_t(&e_0->u.KDefTyp->data, &v_3); + _fx_R9Ast__id_t* kt_name_0 = &v_3.kt_name; FX_CALL( - _fx_M10K_annotateFM12get_typ_depsRt6Set__t1R9Ast__id_t2R9Ast__id_tR10Ast__loc_t(kt_name_0, &v_2.kt_loc, &deps_2, 0), + _fx_M10K_annotateFM12get_typ_depsRt6Set__t1R9Ast__id_t2R9Ast__id_tR10Ast__loc_t(kt_name_0, &v_3.kt_loc, &deps_2, 0), _fx_catch_1); FX_CALL(_fx_M3AstFM10id_hashsetNt10Hashset__t1RM4id_t1Rt6Set__t1RM4id_t(&deps_2, &deps_3, 0), _fx_catch_1); int_ idx_1; @@ -5045,17 +4988,18 @@ static int _fx_M10K_annotateFM16fold_deps0_kexp_v2N14K_form__kexp_tR22K_form__k_ _fx_M10K_annotateFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tR9Ast__id_t( *all_typ_deps_0, kt_name_0, &idx_1, 0), _fx_catch_1); FX_CHKIDX(FX_CHKIDX1((*all_typ_deps_0)->u.t.t5, 0, idx_1), _fx_catch_1); - _fx_Nt10Hashset__t1R9Ast__id_t* v_3 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_typ_deps_0)->u.t.t5, idx_1)->data; - _fx_free_Nt10Hashset__t1R9Ast__id_t(v_3); - FX_COPY_PTR(deps_3, v_3); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_4 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_typ_deps_0)->u.t.t5, idx_1); + _fx_Nt10Hashset__t1R9Ast__id_t* v_5 = &v_4->data; + _fx_free_Nt10Hashset__t1R9Ast__id_t(v_5); + FX_COPY_PTR(deps_3, v_5); _fx_catch_1: ; if (deps_3) { _fx_free_Nt10Hashset__t1R9Ast__id_t(&deps_3); } _fx_free_Rt6Set__t1R9Ast__id_t(&deps_2); - _fx_free_R17K_form__kdeftyp_t(&v_2); + _fx_free_R17K_form__kdeftyp_t(&v_3); } else { FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(e_0, callb_0, 0), _fx_catch_2); _fx_catch_2: ; @@ -5402,8 +5346,9 @@ static int _fx_M10K_annotateFM12get_ktprops_R17K_form__ktprops_t3N14K_form__ktyp _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_12); FX_COPY_PTR(v_15.t0, &t_3); + int_ v_20 = visited_0->size; FX_COPY_FP(&visited_0->cmp, &v_16); - _fx_make_Rt6Set__t1R9Ast__id_t(t_3, visited_0->size + dsz_0, &v_16, &v_17); + _fx_make_Rt6Set__t1R9Ast__id_t(t_3, v_20 + dsz_0, &v_16, &v_17); _fx_free_Rt6Set__t1R9Ast__id_t(visited_0); _fx_copy_Rt6Set__t1R9Ast__id_t(&v_17, visited_0); bool __fold_result___2 = false; @@ -5412,11 +5357,11 @@ static int _fx_M10K_annotateFM12get_ktprops_R17K_form__ktprops_t3N14K_form__ktyp _fx_N14K_form__ktyp_t ti_2 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___1 = &lst_2->hd; FX_COPY_PTR(__pat___1->t1, &ti_2); - _fx_R17K_form__ktprops_t v_20; + _fx_R17K_form__ktprops_t v_21; FX_CALL( _fx_M10K_annotateFM12get_ktprops_R17K_form__ktprops_t3N14K_form__ktyp_tR10Ast__loc_trRt6Set__t1R9Ast__id_t( - ti_2, &kvar_loc_0, visited_ref_0, &v_20, 0), _fx_catch_11); - if (v_20.ktp_complex) { + ti_2, &kvar_loc_0, visited_ref_0, &v_21, 0), _fx_catch_11); + if (v_21.ktp_complex) { __fold_result___2 = true; FX_BREAK(_fx_catch_11); } @@ -5431,15 +5376,15 @@ static int _fx_M10K_annotateFM12get_ktprops_R17K_form__ktprops_t3N14K_form__ktyp _fx_R17K_form__ktprops_t rec_11 = { have_complex_5, false, false, true, have_complex_5, have_complex_5 }; kvp_0 = rec_11; } - _fx_R21K_form__kdefvariant_t* v_21 = &kvar_0->data; - _fx_Nt6option1R17K_form__ktprops_t v_22; - _fx_M10K_annotateFM4SomeNt6option1R17K_form__ktprops_t1R17K_form__ktprops_t(&kvp_0, &v_22); - _fx_make_R21K_form__kdefvariant_t(&v_21->kvar_name, &v_21->kvar_cname, &v_21->kvar_proto, &v_22, v_21->kvar_targs, - v_21->kvar_cases, v_21->kvar_ctors, &v_21->kvar_flags, v_21->kvar_ifaces, v_21->kvar_scope, &v_21->kvar_loc, + _fx_R21K_form__kdefvariant_t* v_22 = &kvar_0->data; + _fx_Nt6option1R17K_form__ktprops_t v_23; + _fx_M10K_annotateFM4SomeNt6option1R17K_form__ktprops_t1R17K_form__ktprops_t(&kvp_0, &v_23); + _fx_make_R21K_form__kdefvariant_t(&v_22->kvar_name, &v_22->kvar_cname, &v_22->kvar_proto, &v_23, v_22->kvar_targs, + v_22->kvar_cases, v_22->kvar_ctors, &v_22->kvar_flags, v_22->kvar_ifaces, v_22->kvar_scope, &v_22->kvar_loc, &v_18); - _fx_R21K_form__kdefvariant_t* v_23 = &kvar_0->data; - _fx_free_R21K_form__kdefvariant_t(v_23); - _fx_copy_R21K_form__kdefvariant_t(&v_18, v_23); + _fx_R21K_form__kdefvariant_t* v_24 = &kvar_0->data; + _fx_free_R21K_form__kdefvariant_t(v_24); + _fx_copy_R21K_form__kdefvariant_t(&v_18, v_24); *fx_result = kvp_0; _fx_catch_12: ; @@ -5480,37 +5425,37 @@ static int _fx_M10K_annotateFM12get_ktprops_R17K_form__ktprops_t3N14K_form__ktyp else if (tag_1 == 8) { _fx_N14K_form__ktyp_t kt_typ_0 = 0; _fx_rR17K_form__kdeftyp_t kt_0 = v_5.u.KTyp; - _fx_R17K_form__kdeftyp_t* v_24 = &kt_0->data; - _fx_R10Ast__loc_t kt_loc_0 = v_24->kt_loc; - _fx_Nt6option1R17K_form__ktprops_t kt_props_0 = v_24->kt_props; - FX_COPY_PTR(v_24->kt_typ, &kt_typ_0); - _fx_R9Ast__id_t kt_name_0 = v_24->kt_name; + _fx_R17K_form__kdeftyp_t* v_25 = &kt_0->data; + _fx_R10Ast__loc_t kt_loc_0 = v_25->kt_loc; + _fx_Nt6option1R17K_form__ktprops_t kt_props_0 = v_25->kt_props; + FX_COPY_PTR(v_25->kt_typ, &kt_typ_0); + _fx_R9Ast__id_t kt_name_0 = v_25->kt_name; if (kt_props_0.tag == 2) { *fx_result = kt_props_0.u.Some; } else { - _fx_Nt11Set__tree_t1R9Ast__id_t v_25 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_26 = {0}; + _fx_Nt11Set__tree_t1R9Ast__id_t v_26 = 0; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_27 = {0}; _fx_Nt11Set__tree_t1R9Ast__id_t t_5 = 0; _fx_FPi2R9Ast__id_tR9Ast__id_t cmp_2 = {0}; - fx_str_t v_27 = {0}; fx_str_t v_28 = {0}; - fx_exn_t v_29 = {0}; - _fx_Nt11Set__tree_t1R9Ast__id_t v_30 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_31 = {0}; - _fx_T2Nt11Set__tree_t1R9Ast__id_ti v_32 = {0}; + fx_str_t v_29 = {0}; + fx_exn_t v_30 = {0}; + _fx_Nt11Set__tree_t1R9Ast__id_t v_31 = 0; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_32 = {0}; + _fx_T2Nt11Set__tree_t1R9Ast__id_ti v_33 = {0}; _fx_Nt11Set__tree_t1R9Ast__id_t t_6 = 0; - _fx_T2Nt11Set__tree_t1R9Ast__id_tB v_33 = {0}; + _fx_T2Nt11Set__tree_t1R9Ast__id_tB v_34 = {0}; _fx_Nt11Set__tree_t1R9Ast__id_t t_7 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_34 = {0}; - _fx_Rt6Set__t1R9Ast__id_t v_35 = {0}; - _fx_R17K_form__kdeftyp_t v_36 = {0}; - FX_COPY_PTR(visited_0->root, &v_25); - FX_COPY_FP(&visited_0->cmp, &v_26); + _fx_FPi2R9Ast__id_tR9Ast__id_t v_35 = {0}; + _fx_Rt6Set__t1R9Ast__id_t v_36 = {0}; + _fx_R17K_form__kdeftyp_t v_37 = {0}; + FX_COPY_PTR(visited_0->root, &v_26); + FX_COPY_FP(&visited_0->cmp, &v_27); bool result_1 = 0; - FX_COPY_PTR(v_25, &t_5); + FX_COPY_PTR(v_26, &t_5); _fx_R9Ast__id_t x_2 = *n_0; - FX_COPY_FP(&v_26, &cmp_2); + FX_COPY_FP(&v_27, &cmp_2); for (;;) { _fx_Nt11Set__tree_t1R9Ast__id_t t_8 = 0; _fx_FPi2R9Ast__id_tR9Ast__id_t cmp_3 = {0}; @@ -5558,87 +5503,88 @@ static int _fx_M10K_annotateFM12get_ktprops_R17K_form__ktprops_t3N14K_form__ktyp FX_CHECK_EXN(_fx_catch_18); } if (result_1) { - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kt_name_0, &kt_loc_0, &v_27, 0), _fx_catch_18); + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kt_name_0, &kt_loc_0, &v_28, 0), _fx_catch_18); fx_str_t slit_1 = FX_MAKE_STR("unexpected recursive type "); { - const fx_str_t strs_1[] = { slit_1, v_27 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_28), _fx_catch_18); + const fx_str_t strs_1[] = { slit_1, v_28 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_29), _fx_catch_18); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_28, &v_29, 0), _fx_catch_18); - FX_THROW(&v_29, false, _fx_catch_18); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_29, &v_30, 0), _fx_catch_18); + FX_THROW(&v_30, false, _fx_catch_18); } - FX_COPY_PTR(visited_0->root, &v_30); - FX_COPY_FP(&visited_0->cmp, &v_31); + FX_COPY_PTR(visited_0->root, &v_31); + FX_COPY_FP(&visited_0->cmp, &v_32); FX_CALL( _fx_M10K_annotateFM12add_to_tree_T2Nt11Set__tree_t1R9Ast__id_ti3Nt11Set__tree_t1R9Ast__id_tR9Ast__id_tFPi2R9Ast__id_tR9Ast__id_t( - v_30, n_0, &v_31, &v_32, 0), _fx_catch_18); - FX_COPY_PTR(v_32.t0, &t_6); - int_ dsz_1 = v_32.t1; + v_31, n_0, &v_32, &v_33, 0), _fx_catch_18); + FX_COPY_PTR(v_33.t0, &t_6); + int_ dsz_1 = v_33.t1; if ((t_6 != 0) + 1 == 2) { _fx_T4N12Set__color_tNt11Set__tree_t1R9Ast__id_tR9Ast__id_tNt11Set__tree_t1R9Ast__id_t* vcase_3 = &t_6->u.Node; if (vcase_3->t0.tag == 1) { - _fx_Nt11Set__tree_t1R9Ast__id_t v_37 = 0; + _fx_Nt11Set__tree_t1R9Ast__id_t v_38 = 0; FX_CALL( _fx_M10K_annotateFM4NodeNt11Set__tree_t1R9Ast__id_t4N12Set__color_tNt11Set__tree_t1R9Ast__id_tR9Ast__id_tNt11Set__tree_t1R9Ast__id_t( - &_fx_g17K_annotate__Black, vcase_3->t1, &vcase_3->t2, vcase_3->t3, &v_37), _fx_catch_17); - _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(v_37, false, &v_33); + &_fx_g17K_annotate__Black, vcase_3->t1, &vcase_3->t2, vcase_3->t3, &v_38), _fx_catch_17); + _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(v_38, false, &v_34); _fx_catch_17: ; - if (v_37) { - _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_37); + if (v_38) { + _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_38); } goto _fx_endmatch_1; } } - _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(t_6, true, &v_33); + _fx_make_T2Nt11Set__tree_t1R9Ast__id_tB(t_6, true, &v_34); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_18); - FX_COPY_PTR(v_33.t0, &t_7); - FX_COPY_FP(&visited_0->cmp, &v_34); - _fx_make_Rt6Set__t1R9Ast__id_t(t_7, visited_0->size + dsz_1, &v_34, &v_35); + FX_COPY_PTR(v_34.t0, &t_7); + int_ v_39 = visited_0->size; + FX_COPY_FP(&visited_0->cmp, &v_35); + _fx_make_Rt6Set__t1R9Ast__id_t(t_7, v_39 + dsz_1, &v_35, &v_36); _fx_free_Rt6Set__t1R9Ast__id_t(visited_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_35, visited_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_36, visited_0); _fx_R17K_form__ktprops_t ktp_0; FX_CALL( _fx_M10K_annotateFM12get_ktprops_R17K_form__ktprops_t3N14K_form__ktyp_tR10Ast__loc_trRt6Set__t1R9Ast__id_t( kt_typ_0, &kt_loc_0, visited_ref_0, &ktp_0, 0), _fx_catch_18); - _fx_R17K_form__kdeftyp_t* v_38 = &kt_0->data; - _fx_Nt6option1R17K_form__ktprops_t v_39; - _fx_M10K_annotateFM4SomeNt6option1R17K_form__ktprops_t1R17K_form__ktprops_t(&ktp_0, &v_39); - _fx_make_R17K_form__kdeftyp_t(&v_38->kt_name, &v_38->kt_cname, &v_38->kt_proto, &v_39, v_38->kt_targs, v_38->kt_typ, - v_38->kt_scope, &v_38->kt_loc, &v_36); _fx_R17K_form__kdeftyp_t* v_40 = &kt_0->data; - _fx_free_R17K_form__kdeftyp_t(v_40); - _fx_copy_R17K_form__kdeftyp_t(&v_36, v_40); + _fx_Nt6option1R17K_form__ktprops_t v_41; + _fx_M10K_annotateFM4SomeNt6option1R17K_form__ktprops_t1R17K_form__ktprops_t(&ktp_0, &v_41); + _fx_make_R17K_form__kdeftyp_t(&v_40->kt_name, &v_40->kt_cname, &v_40->kt_proto, &v_41, v_40->kt_targs, v_40->kt_typ, + v_40->kt_scope, &v_40->kt_loc, &v_37); + _fx_R17K_form__kdeftyp_t* v_42 = &kt_0->data; + _fx_free_R17K_form__kdeftyp_t(v_42); + _fx_copy_R17K_form__kdeftyp_t(&v_37, v_42); *fx_result = ktp_0; _fx_catch_18: ; - _fx_free_R17K_form__kdeftyp_t(&v_36); - _fx_free_Rt6Set__t1R9Ast__id_t(&v_35); - FX_FREE_FP(&v_34); + _fx_free_R17K_form__kdeftyp_t(&v_37); + _fx_free_Rt6Set__t1R9Ast__id_t(&v_36); + FX_FREE_FP(&v_35); if (t_7) { _fx_free_Nt11Set__tree_t1R9Ast__id_t(&t_7); } - _fx_free_T2Nt11Set__tree_t1R9Ast__id_tB(&v_33); + _fx_free_T2Nt11Set__tree_t1R9Ast__id_tB(&v_34); if (t_6) { _fx_free_Nt11Set__tree_t1R9Ast__id_t(&t_6); } - _fx_free_T2Nt11Set__tree_t1R9Ast__id_ti(&v_32); - FX_FREE_FP(&v_31); - if (v_30) { - _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_30); + _fx_free_T2Nt11Set__tree_t1R9Ast__id_ti(&v_33); + FX_FREE_FP(&v_32); + if (v_31) { + _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_31); } - fx_free_exn(&v_29); + fx_free_exn(&v_30); + FX_FREE_STR(&v_29); FX_FREE_STR(&v_28); - FX_FREE_STR(&v_27); FX_FREE_FP(&cmp_2); if (t_5) { _fx_free_Nt11Set__tree_t1R9Ast__id_t(&t_5); } - FX_FREE_FP(&v_26); - if (v_25) { - _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_25); + FX_FREE_FP(&v_27); + if (v_26) { + _fx_free_Nt11Set__tree_t1R9Ast__id_t(&v_26); } } FX_CHECK_EXN(_fx_catch_19); @@ -5652,23 +5598,23 @@ static int _fx_M10K_annotateFM12get_ktprops_R17K_form__ktprops_t3N14K_form__ktyp _fx_R17K_form__ktprops_t rec_12 = { true, false, false, true, false, false }; *fx_result = rec_12; } else { - fx_str_t v_41 = {0}; - fx_str_t v_42 = {0}; - fx_exn_t v_43 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(n_0, loc_0, &v_41, 0), _fx_catch_20); + fx_str_t v_43 = {0}; + fx_str_t v_44 = {0}; + fx_exn_t v_45 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(n_0, loc_0, &v_43, 0), _fx_catch_20); fx_str_t slit_2 = FX_MAKE_STR("unsupported named type \'"); fx_str_t slit_3 = FX_MAKE_STR("\'"); { - const fx_str_t strs_2[] = { slit_2, v_41, slit_3 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_42), _fx_catch_20); + const fx_str_t strs_2[] = { slit_2, v_43, slit_3 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_44), _fx_catch_20); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_42, &v_43, 0), _fx_catch_20); - FX_THROW(&v_43, false, _fx_catch_20); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_44, &v_45, 0), _fx_catch_20); + FX_THROW(&v_45, false, _fx_catch_20); _fx_catch_20: ; - fx_free_exn(&v_43); - FX_FREE_STR(&v_42); - FX_FREE_STR(&v_41); + fx_free_exn(&v_45); + FX_FREE_STR(&v_44); + FX_FREE_STR(&v_43); } FX_CHECK_EXN(_fx_catch_21); @@ -5690,8 +5636,8 @@ FX_EXTERN_C int _fx_M10K_annotateFM14annotate_typesLR17K_form__kmodule_t1LR17K_f void* fx_fv) { _fx_LLN14K_form__kexp_t v_0 = 0; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; - _fx_LLN14K_form__kexp_t __fold_result___1 = 0; + _fx_LN14K_form__kexp_t s_0 = 0; + _fx_LLN14K_form__kexp_t res_0 = 0; _fx_LLN14K_form__kexp_t v_1 = 0; _fx_LN14K_form__kexp_t top_code_0 = 0; int fx_status = 0; @@ -5708,96 +5654,93 @@ FX_EXTERN_C int _fx_M10K_annotateFM14annotate_typesLR17K_form__kmodule_t1LR17K_f } _fx_LLN14K_form__kexp_t lst_1 = v_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LLN14K_form__kexp_t r_0 = 0; + _fx_LLN14K_form__kexp_t v_2 = 0; _fx_LN14K_form__kexp_t a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LLN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LLN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LLN14K_form__kexp_t(a_0, res_0, true, &v_2), _fx_catch_1); + _fx_free_LLN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_2, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LLN14K_form__kexp_t(&r_0); + if (v_2) { + _fx_free_LLN14K_form__kexp_t(&v_2); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_1); + FX_COPY_PTR(res_0, &v_1); _fx_LLN14K_form__kexp_t lst_2 = v_1; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN14K_form__kexp_t s_0 = 0; - _fx_LN14K_form__kexp_t v_2 = 0; + _fx_Ta2LN14K_form__kexp_t v_3 = {0}; + _fx_LN14K_form__kexp_t v_4 = 0; _fx_LN14K_form__kexp_t l_0 = lst_2->hd; - FX_COPY_PTR(__fold_result___0, &s_0); - if (l_0 == 0) { - FX_COPY_PTR(s_0, &v_2); + _fx_make_Ta2LN14K_form__kexp_t(l_0, s_0, &v_3); + if (v_3.t0 == 0) { + FX_COPY_PTR(s_0, &v_4); } - else if (s_0 == 0) { - FX_COPY_PTR(l_0, &v_2); + else if (v_3.t1 == 0) { + FX_COPY_PTR(l_0, &v_4); } else { - _fx_LN14K_form__kexp_t v_3 = 0; + _fx_LN14K_form__kexp_t v_5 = 0; _fx_LN14K_form__kexp_t lstend_1 = 0; _fx_LN14K_form__kexp_t lst_3 = l_0; for (; lst_3; lst_3 = lst_3->tl) { _fx_N14K_form__kexp_t x_0 = lst_3->hd; _fx_LN14K_form__kexp_t node_1 = 0; FX_CALL(_fx_cons_LN14K_form__kexp_t(x_0, 0, false, &node_1), _fx_catch_2); - FX_LIST_APPEND(v_3, lstend_1, node_1); + FX_LIST_APPEND(v_5, lstend_1, node_1); _fx_catch_2: ; FX_CHECK_EXN(_fx_catch_3); } - _fx_M10K_annotateFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_3, s_0, &v_2, 0); + _fx_M10K_annotateFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_5, s_0, &v_4, 0); _fx_catch_3: ; - if (v_3) { - _fx_free_LN14K_form__kexp_t(&v_3); + if (v_5) { + _fx_free_LN14K_form__kexp_t(&v_5); } } FX_CHECK_EXN(_fx_catch_4); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(v_2, &__fold_result___0); + _fx_free_LN14K_form__kexp_t(&s_0); + FX_COPY_PTR(v_4, &s_0); _fx_catch_4: ; - if (v_2) { - _fx_free_LN14K_form__kexp_t(&v_2); - } - if (s_0) { - _fx_free_LN14K_form__kexp_t(&s_0); + if (v_4) { + _fx_free_LN14K_form__kexp_t(&v_4); } + _fx_free_Ta2LN14K_form__kexp_t(&v_3); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &top_code_0); + FX_COPY_PTR(s_0, &top_code_0); FX_CALL(_fx_M10K_annotateFM14find_recursivev1LN14K_form__kexp_t(top_code_0, 0), _fx_cleanup); _fx_LN14K_form__kexp_t lst_4 = top_code_0; for (; lst_4; lst_4 = lst_4->tl) { _fx_N14K_form__kexp_t e_0 = lst_4->hd; int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 34) { - _fx_N14K_form__ktyp_t v_4 = 0; + _fx_N14K_form__ktyp_t v_6 = 0; _fx_LR9Ast__id_t kvar_ctors_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t kvar_cases_0 = 0; - _fx_R21K_form__kdefvariant_t v_5 = {0}; + _fx_R21K_form__kdefvariant_t v_7 = {0}; _fx_rR21K_form__kdefvariant_t kvar_0 = e_0->u.KDefVariant; - _fx_R21K_form__kdefvariant_t* v_6 = &kvar_0->data; - _fx_R10Ast__loc_t kvar_loc_0 = v_6->kvar_loc; - _fx_R9Ast__id_t kvar_name_0 = v_6->kvar_name; - FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&kvar_name_0, &v_4), _fx_catch_6); - _fx_R17K_form__ktprops_t res_0; + _fx_R21K_form__kdefvariant_t* v_8 = &kvar_0->data; + _fx_R10Ast__loc_t kvar_loc_0 = v_8->kvar_loc; + _fx_R9Ast__id_t kvar_name_0 = v_8->kvar_name; + FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&kvar_name_0, &v_6), _fx_catch_6); + _fx_R17K_form__ktprops_t res_1; FX_CALL( - _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(v_4, &kvar_loc_0, &res_0, 0), + _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(v_6, &kvar_loc_0, &res_1, 0), _fx_catch_6); - _fx_R21K_form__kdefvariant_t* v_7 = &kvar_0->data; - _fx_R16Ast__var_flags_t kvar_flags_0 = v_7->kvar_flags; - FX_COPY_PTR(v_7->kvar_ctors, &kvar_ctors_0); - FX_COPY_PTR(v_7->kvar_cases, &kvar_cases_0); + _fx_R21K_form__kdefvariant_t* v_9 = &kvar_0->data; + _fx_R16Ast__var_flags_t kvar_flags_0 = v_9->kvar_flags; + FX_COPY_PTR(v_9->kvar_ctors, &kvar_ctors_0); + FX_COPY_PTR(v_9->kvar_cases, &kvar_cases_0); bool is_recursive_0 = kvar_flags_0.var_flag_recursive; int_ ncases_0 = _fx_M10K_annotateFM6lengthi1LT2R9Ast__id_tN14K_form__ktyp_t(kvar_cases_0, 0); bool option_like_0; if (kvar_cases_0 != 0) { - _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_8 = kvar_cases_0->tl; - if (v_8 != 0) { - if (v_8->tl == 0) { + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_10 = kvar_cases_0->tl; + if (v_10 != 0) { + if (v_10->tl == 0) { if (FX_REC_VARIANT_TAG(kvar_cases_0->hd.t1) == 7) { option_like_0 = true; goto _fx_endmatch_0; } @@ -5821,70 +5764,71 @@ FX_EXTERN_C int _fx_M10K_annotateFM14annotate_typesLR17K_form__kmodule_t1LR17K_f if (!is_recursive_0) { _fx_LR9Ast__id_t lst_5 = kvar_ctors_0; for (; lst_5; lst_5 = lst_5->tl) { - _fx_N15K_form__kinfo_t v_9 = {0}; + _fx_N15K_form__kinfo_t v_11 = {0}; _fx_R9Ast__id_t* ctor_0 = &lst_5->hd; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(ctor_0, &kvar_loc_0, &v_9, 0), + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(ctor_0, &kvar_loc_0, &v_11, 0), _fx_catch_5); - if (v_9.tag == 3) { - _fx_R17K_form__kdeffun_t v_10 = {0}; - _fx_rR17K_form__kdeffun_t kf_0 = v_9.u.KFun; - _fx_R16Ast__fun_flags_t kf_flags_0 = kf_0->data.kf_flags; - _fx_R17K_form__kdeffun_t* v_11 = &kf_0->data; - _fx_R16Ast__fun_flags_t v_12 = + if (v_11.tag == 3) { + _fx_R17K_form__kdeffun_t v_12 = {0}; + _fx_rR17K_form__kdeffun_t kf_0 = v_11.u.KFun; + _fx_R17K_form__kdeffun_t* v_13 = &kf_0->data; + _fx_R16Ast__fun_flags_t kf_flags_0 = v_13->kf_flags; + _fx_R17K_form__kdeffun_t* v_14 = &kf_0->data; + _fx_R16Ast__fun_flags_t v_15 = { kf_flags_0.fun_flag_pure, kf_flags_0.fun_flag_ccode, kf_flags_0.fun_flag_have_keywords, kf_flags_0.fun_flag_inline, true, kf_flags_0.fun_flag_really_nothrow, kf_flags_0.fun_flag_private, kf_flags_0.fun_flag_ctor, kf_flags_0.fun_flag_method_of, kf_flags_0.fun_flag_uses_fv, kf_flags_0.fun_flag_recursive, kf_flags_0.fun_flag_instance }; - _fx_make_R17K_form__kdeffun_t(&v_11->kf_name, &v_11->kf_cname, v_11->kf_params, v_11->kf_rt, v_11->kf_body, - &v_12, &v_11->kf_closure, v_11->kf_scope, &v_11->kf_loc, &v_10); - _fx_R17K_form__kdeffun_t* v_13 = &kf_0->data; - _fx_free_R17K_form__kdeffun_t(v_13); - _fx_copy_R17K_form__kdeffun_t(&v_10, v_13); - _fx_free_R17K_form__kdeffun_t(&v_10); + _fx_make_R17K_form__kdeffun_t(&v_14->kf_name, &v_14->kf_cname, v_14->kf_params, v_14->kf_rt, v_14->kf_body, + &v_15, &v_14->kf_closure, v_14->kf_scope, &v_14->kf_loc, &v_12); + _fx_R17K_form__kdeffun_t* v_16 = &kf_0->data; + _fx_free_R17K_form__kdeffun_t(v_16); + _fx_copy_R17K_form__kdeffun_t(&v_12, v_16); + _fx_free_R17K_form__kdeffun_t(&v_12); } FX_CHECK_EXN(_fx_catch_5); _fx_catch_5: ; - _fx_free_N15K_form__kinfo_t(&v_9); + _fx_free_N15K_form__kinfo_t(&v_11); FX_CHECK_EXN(_fx_catch_6); } } - _fx_R21K_form__kdefvariant_t* v_14 = &kvar_0->data; - _fx_R16Ast__var_flags_t v_15 = + _fx_R21K_form__kdefvariant_t* v_17 = &kvar_0->data; + _fx_R16Ast__var_flags_t v_18 = { kvar_flags_0.var_flag_class_from, kvar_flags_0.var_flag_record, kvar_flags_0.var_flag_recursive, !no_tag_0, kvar_flags_0.var_flag_have_mutable, option_like_0, kvar_flags_0.var_flag_instance }; - _fx_make_R21K_form__kdefvariant_t(&v_14->kvar_name, &v_14->kvar_cname, &v_14->kvar_proto, &v_14->kvar_props, - v_14->kvar_targs, v_14->kvar_cases, v_14->kvar_ctors, &v_15, v_14->kvar_ifaces, v_14->kvar_scope, &v_14->kvar_loc, - &v_5); - _fx_R21K_form__kdefvariant_t* v_16 = &kvar_0->data; - _fx_free_R21K_form__kdefvariant_t(v_16); - _fx_copy_R21K_form__kdefvariant_t(&v_5, v_16); + _fx_make_R21K_form__kdefvariant_t(&v_17->kvar_name, &v_17->kvar_cname, &v_17->kvar_proto, &v_17->kvar_props, + v_17->kvar_targs, v_17->kvar_cases, v_17->kvar_ctors, &v_18, v_17->kvar_ifaces, v_17->kvar_scope, &v_17->kvar_loc, + &v_7); + _fx_R21K_form__kdefvariant_t* v_19 = &kvar_0->data; + _fx_free_R21K_form__kdefvariant_t(v_19); + _fx_copy_R21K_form__kdefvariant_t(&v_7, v_19); _fx_catch_6: ; - _fx_free_R21K_form__kdefvariant_t(&v_5); + _fx_free_R21K_form__kdefvariant_t(&v_7); if (kvar_cases_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&kvar_cases_0); } FX_FREE_LIST_SIMPLE(&kvar_ctors_0); - if (v_4) { - _fx_free_N14K_form__ktyp_t(&v_4); + if (v_6) { + _fx_free_N14K_form__ktyp_t(&v_6); } } else if (tag_0 == 36) { - _fx_R17K_form__kdeftyp_t v_17 = {0}; - _fx_N14K_form__ktyp_t v_18 = 0; - _fx_copy_R17K_form__kdeftyp_t(&e_0->u.KDefTyp->data, &v_17); - FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&v_17.kt_name, &v_18), _fx_catch_7); - _fx_R17K_form__ktprops_t res_1; + _fx_R17K_form__kdeftyp_t v_20 = {0}; + _fx_N14K_form__ktyp_t v_21 = 0; + _fx_copy_R17K_form__kdeftyp_t(&e_0->u.KDefTyp->data, &v_20); + FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&v_20.kt_name, &v_21), _fx_catch_7); + _fx_R17K_form__ktprops_t res_2; FX_CALL( - _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(v_18, &v_17.kt_loc, &res_1, 0), + _fx_M10K_annotateFM11get_ktpropsR17K_form__ktprops_t2N14K_form__ktyp_tR10Ast__loc_t(v_21, &v_20.kt_loc, &res_2, 0), _fx_catch_7); _fx_catch_7: ; - if (v_18) { - _fx_free_N14K_form__ktyp_t(&v_18); + if (v_21) { + _fx_free_N14K_form__ktyp_t(&v_21); } - _fx_free_R17K_form__kdeftyp_t(&v_17); + _fx_free_R17K_form__kdeftyp_t(&v_20); } FX_CHECK_EXN(_fx_catch_8); @@ -5897,11 +5841,11 @@ _fx_cleanup: ; if (v_0) { _fx_free_LLN14K_form__kexp_t(&v_0); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (s_0) { + _fx_free_LN14K_form__kexp_t(&s_0); } - if (__fold_result___1) { - _fx_free_LLN14K_form__kexp_t(&__fold_result___1); + if (res_0) { + _fx_free_LLN14K_form__kexp_t(&res_0); } if (v_1) { _fx_free_LLN14K_form__kexp_t(&v_1); diff --git a/compiler/bootstrap/K_cfold_dealias.c b/compiler/bootstrap/K_cfold_dealias.c index 66c1c709..ab1acdbc 100644 --- a/compiler/bootstrap/K_cfold_dealias.c +++ b/compiler/bootstrap/K_cfold_dealias.c @@ -3924,32 +3924,18 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM6__eq__B2T2R9Ast__id_tN14K_form__ktyp_tT _fx_N14K_form__ktyp_t bj_0 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); - bool __fold_result___0 = true; + bool f_0 = true; _fx_R9Ast__id_t aj_1 = a_0->t0; _fx_R9Ast__id_t bj_1 = b_0->t0; bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&aj_1, &bj_1, &res_0, 0), _fx_cleanup); - bool t_0; - if (res_0) { - t_0 = __fold_result___0; - } - else { - t_0 = false; - } - __fold_result___0 = t_0; + f_0 = (bool)(f_0 & res_0); FX_COPY_PTR(a_0->t1, &aj_0); FX_COPY_PTR(b_0->t1, &bj_0); bool v_0; FX_CALL(_fx_M15K_cfold_dealiasFM15__eq_variants__B2N14K_form__ktyp_tN14K_form__ktyp_t(aj_0, bj_0, &v_0, 0), _fx_cleanup); - bool t_1; - if (v_0) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - *fx_result = __fold_result___0; + f_0 = (bool)(f_0 & v_0); + *fx_result = f_0; _fx_cleanup: ; if (aj_0) { @@ -4377,28 +4363,27 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM3revLN14K_form__atom_t1LN14K_form__atom_ struct _fx_LN14K_form__atom_t_data_t** fx_result, void* fx_fv) { - _fx_LN14K_form__atom_t __fold_result___0 = 0; + _fx_LN14K_form__atom_t res_0 = 0; int fx_status = 0; _fx_LN14K_form__atom_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__atom_t r_0 = 0; + _fx_LN14K_form__atom_t v_0 = 0; _fx_N14K_form__atom_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__atom_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14K_form__atom_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__atom_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN14K_form__atom_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14K_form__atom_t(&r_0); + if (v_0) { + _fx_free_LN14K_form__atom_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN14K_form__atom_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__atom_t(&res_0); } return fx_status; } @@ -4549,12 +4534,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4599,12 +4585,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4657,27 +4644,29 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM4growv2Nt10Hashmap__t2R9Ast__id_tLN14K_f for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M15K_cfold_dealiasFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_tRt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4719,27 +4708,29 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM4growv2Nt10Hashmap__t2R9Ast__id_tN14K_fo for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M15K_cfold_dealiasFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_tRt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4759,14 +4750,14 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_ { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4785,32 +4776,11 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_ bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4846,14 +4816,14 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_ { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4872,32 +4842,11 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_ bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4940,7 +4889,9 @@ FX_EXTERN_C int int_ j_0 = v_1.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, j_0), _fx_cleanup); - FX_COPY_PTR(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t, self_0->u.t.t5, j_0)->data, &v_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t, self_0->u.t.t5, j_0); + FX_COPY_PTR(v_2->data, &v_0); _fx_M15K_cfold_dealiasFM4SomeNt6option1LN14K_form__atom_t1LN14K_form__atom_t(v_0, fx_result); } else { @@ -4966,14 +4917,14 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9A _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -5001,32 +4952,11 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9A bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5042,14 +4972,14 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9A FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -5062,28 +4992,29 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9A FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5094,12 +5025,13 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9A FX_COPY_PTR(self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t(hv_0, k_0, v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5132,14 +5064,14 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9A _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -5167,32 +5099,11 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9A bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5208,14 +5119,14 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9A FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -5228,28 +5139,29 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9A FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5260,12 +5172,13 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9A _fx_copy_N14K_form__atom_t(&self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(hv_0, k_0, &v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5296,10 +5209,11 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM3addv3Nt10Hashmap__t2R9Ast__id_tLN14K_fo _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tLN14K_form__atom_tR9Ast__id_t(self_0, k_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, idx_0), _fx_cleanup); - _fx_LN14K_form__atom_t* v_0 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t, self_0->u.t.t5, idx_0)->data; - _fx_free_LN14K_form__atom_t(v_0); - FX_COPY_PTR(d_0, v_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t* v_0 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLN14K_form__atom_t, self_0->u.t.t5, idx_0); + _fx_LN14K_form__atom_t* v_1 = &v_0->data; + _fx_free_LN14K_form__atom_t(v_1); + FX_COPY_PTR(d_0, v_1); _fx_cleanup: ; return fx_status; @@ -5317,10 +5231,11 @@ FX_EXTERN_C int _fx_M15K_cfold_dealiasFM3addv3Nt10Hashmap__t2R9Ast__id_tN14K_for _fx_M15K_cfold_dealiasFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(self_0, k_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, idx_0), _fx_cleanup); - _fx_N14K_form__atom_t* v_0 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, self_0->u.t.t5, idx_0)->data; - _fx_free_N14K_form__atom_t(v_0); - _fx_copy_N14K_form__atom_t(d_0, v_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_0 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, self_0->u.t.t5, idx_0); + _fx_N14K_form__atom_t* v_1 = &v_0->data; + _fx_free_N14K_form__atom_t(v_1); + _fx_copy_N14K_form__atom_t(d_0, v_1); _fx_cleanup: ; return fx_status; @@ -8129,7 +8044,7 @@ FX_EXTERN_C int if (v_3->u.KLitBool == false) { _fx_N14K_form__kexp_t new_c_0 = 0; _fx_LN14K_form__kexp_t v_4 = 0; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; _fx_LN14K_form__kexp_t v_5 = 0; _fx_T3BLN14K_form__kexp_tLN14K_form__kexp_t result_3 = {0}; _fx_R10Ast__loc_t loc_0; @@ -8141,20 +8056,19 @@ FX_EXTERN_C int FX_CALL(_fx_cons_LN14K_form__kexp_t(new_c_0, result_checks_2, true, &v_4), _fx_catch_5); _fx_LN14K_form__kexp_t lst_1 = v_4; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_6 = 0; _fx_N14K_form__kexp_t a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_4); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_6), _fx_catch_4); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_6, &res_0); _fx_catch_4: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_6) { + _fx_free_LN14K_form__kexp_t(&v_6); } FX_CHECK_EXN(_fx_catch_5); } - FX_COPY_PTR(__fold_result___0, &v_5); + FX_COPY_PTR(res_0, &v_5); _fx_make_T3BLN14K_form__kexp_tLN14K_form__kexp_t(false, 0, v_5, &result_3); _fx_free_T3BLN14K_form__kexp_tLN14K_form__kexp_t(&result_0); _fx_copy_T3BLN14K_form__kexp_tLN14K_form__kexp_t(&result_3, &result_0); @@ -8165,8 +8079,8 @@ FX_EXTERN_C int if (v_5) { _fx_free_LN14K_form__kexp_t(&v_5); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } if (v_4) { _fx_free_LN14K_form__kexp_t(&v_4); @@ -8180,55 +8094,53 @@ FX_EXTERN_C int } } if (tag_0 == 5) { - _fx_N14K_form__atom_t* v_6 = &actual_check_0->u.KExpAtom.t0; - if (v_6->tag == 2) { - _fx_N14K_form__klit_t* v_7 = &v_6->u.AtomLit; - if (v_7->tag == 7) { - if (v_7->u.KLitBool == true) { - _fx_LN14K_form__kexp_t __fold_result___1 = 0; - _fx_LN14K_form__kexp_t v_8 = 0; + _fx_N14K_form__atom_t* v_7 = &actual_check_0->u.KExpAtom.t0; + if (v_7->tag == 2) { + _fx_N14K_form__klit_t* v_8 = &v_7->u.AtomLit; + if (v_8->tag == 7) { + if (v_8->u.KLitBool == true) { + _fx_LN14K_form__kexp_t res_1 = 0; _fx_LN14K_form__kexp_t v_9 = 0; - _fx_LN14K_form__kexp_t __fold_result___2 = 0; + _fx_LN14K_form__kexp_t v_10 = 0; + _fx_LN14K_form__kexp_t res_2 = 0; _fx_LN14K_form__kexp_t code_wo_check_0 = 0; _fx_LN14K_form__kexp_t lst_2 = code_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN14K_form__kexp_t r_1 = 0; + _fx_LN14K_form__kexp_t v_11 = 0; _fx_N14K_form__kexp_t a_1 = lst_2->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, r_1, false, &r_1), _fx_catch_6); - _fx_free_LN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, res_1, true, &v_11), _fx_catch_6); + _fx_free_LN14K_form__kexp_t(&res_1); + FX_COPY_PTR(v_11, &res_1); _fx_catch_6: ; - if (r_1) { - _fx_free_LN14K_form__kexp_t(&r_1); + if (v_11) { + _fx_free_LN14K_form__kexp_t(&v_11); } FX_CHECK_EXN(_fx_catch_8); } - FX_COPY_PTR(__fold_result___1, &v_8); - if (v_8 != 0) { - FX_COPY_PTR(v_8->tl, &v_9); + FX_COPY_PTR(res_1, &v_9); + if (v_9 != 0) { + FX_COPY_PTR(v_9->tl, &v_10); } else { FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_8); } FX_CHECK_EXN(_fx_catch_8); - _fx_LN14K_form__kexp_t lst_3 = v_9; + _fx_LN14K_form__kexp_t lst_3 = v_10; for (; lst_3; lst_3 = lst_3->tl) { - _fx_LN14K_form__kexp_t r_2 = 0; + _fx_LN14K_form__kexp_t v_12 = 0; _fx_N14K_form__kexp_t a_2 = lst_3->hd; - FX_COPY_PTR(__fold_result___2, &r_2); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_2, r_2, false, &r_2), _fx_catch_7); - _fx_free_LN14K_form__kexp_t(&__fold_result___2); - FX_COPY_PTR(r_2, &__fold_result___2); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_2, res_2, true, &v_12), _fx_catch_7); + _fx_free_LN14K_form__kexp_t(&res_2); + FX_COPY_PTR(v_12, &res_2); _fx_catch_7: ; - if (r_2) { - _fx_free_LN14K_form__kexp_t(&r_2); + if (v_12) { + _fx_free_LN14K_form__kexp_t(&v_12); } FX_CHECK_EXN(_fx_catch_8); } - FX_COPY_PTR(__fold_result___2, &code_wo_check_0); + FX_COPY_PTR(res_2, &code_wo_check_0); _fx_free_LN14K_form__kexp_t(&checks_1); FX_COPY_PTR(other_checks_0, &checks_1); _fx_free_LN14K_form__kexp_t(&next_check_code_1); @@ -8240,17 +8152,17 @@ FX_EXTERN_C int if (code_wo_check_0) { _fx_free_LN14K_form__kexp_t(&code_wo_check_0); } - if (__fold_result___2) { - _fx_free_LN14K_form__kexp_t(&__fold_result___2); + if (res_2) { + _fx_free_LN14K_form__kexp_t(&res_2); + } + if (v_10) { + _fx_free_LN14K_form__kexp_t(&v_10); } if (v_9) { _fx_free_LN14K_form__kexp_t(&v_9); } - if (v_8) { - _fx_free_LN14K_form__kexp_t(&v_8); - } - if (__fold_result___1) { - _fx_free_LN14K_form__kexp_t(&__fold_result___1); + if (res_1) { + _fx_free_LN14K_form__kexp_t(&res_1); } goto _fx_endmatch_1; } @@ -8258,22 +8170,22 @@ FX_EXTERN_C int } } _fx_N14K_form__kexp_t new_c_1 = 0; - _fx_LN14K_form__kexp_t v_10 = 0; + _fx_LN14K_form__kexp_t v_13 = 0; _fx_R10Ast__loc_t loc_1; FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(actual_check_0, &loc_1, 0), _fx_catch_9); FX_CALL(_fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(code_0, &loc_1, &new_c_1, 0), _fx_catch_9); - FX_CALL(_fx_cons_LN14K_form__kexp_t(new_c_1, result_checks_2, true, &v_10), _fx_catch_9); + FX_CALL(_fx_cons_LN14K_form__kexp_t(new_c_1, result_checks_2, true, &v_13), _fx_catch_9); _fx_free_LN14K_form__kexp_t(&checks_1); FX_COPY_PTR(other_checks_0, &checks_1); _fx_free_LN14K_form__kexp_t(&next_check_code_1); next_check_code_1 = 0; _fx_free_LN14K_form__kexp_t(&result_checks_1); - FX_COPY_PTR(v_10, &result_checks_1); + FX_COPY_PTR(v_13, &result_checks_1); _fx_catch_9: ; - if (v_10) { - _fx_free_LN14K_form__kexp_t(&v_10); + if (v_13) { + _fx_free_LN14K_form__kexp_t(&v_13); } if (new_c_1) { _fx_free_N14K_form__kexp_t(&new_c_1); @@ -8304,37 +8216,36 @@ FX_EXTERN_C int } } else { - _fx_LN14K_form__kexp_t __fold_result___3 = 0; - _fx_LN14K_form__kexp_t v_11 = 0; + _fx_LN14K_form__kexp_t res_3 = 0; + _fx_LN14K_form__kexp_t v_14 = 0; _fx_T3BLN14K_form__kexp_tLN14K_form__kexp_t result_4 = {0}; _fx_LN14K_form__kexp_t lst_4 = result_checks_2; for (; lst_4; lst_4 = lst_4->tl) { - _fx_LN14K_form__kexp_t r_3 = 0; + _fx_LN14K_form__kexp_t v_15 = 0; _fx_N14K_form__kexp_t a_3 = lst_4->hd; - FX_COPY_PTR(__fold_result___3, &r_3); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_3, r_3, false, &r_3), _fx_catch_12); - _fx_free_LN14K_form__kexp_t(&__fold_result___3); - FX_COPY_PTR(r_3, &__fold_result___3); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_3, res_3, true, &v_15), _fx_catch_12); + _fx_free_LN14K_form__kexp_t(&res_3); + FX_COPY_PTR(v_15, &res_3); _fx_catch_12: ; - if (r_3) { - _fx_free_LN14K_form__kexp_t(&r_3); + if (v_15) { + _fx_free_LN14K_form__kexp_t(&v_15); } FX_CHECK_EXN(_fx_catch_13); } - FX_COPY_PTR(__fold_result___3, &v_11); - _fx_make_T3BLN14K_form__kexp_tLN14K_form__kexp_t(true, next_check_code_2, v_11, &result_4); + FX_COPY_PTR(res_3, &v_14); + _fx_make_T3BLN14K_form__kexp_tLN14K_form__kexp_t(true, next_check_code_2, v_14, &result_4); _fx_free_T3BLN14K_form__kexp_tLN14K_form__kexp_t(&result_0); _fx_copy_T3BLN14K_form__kexp_tLN14K_form__kexp_t(&result_4, &result_0); FX_BREAK(_fx_catch_13); _fx_catch_13: ; _fx_free_T3BLN14K_form__kexp_tLN14K_form__kexp_t(&result_4); - if (v_11) { - _fx_free_LN14K_form__kexp_t(&v_11); + if (v_14) { + _fx_free_LN14K_form__kexp_t(&v_14); } - if (__fold_result___3) { - _fx_free_LN14K_form__kexp_t(&__fold_result___3); + if (res_3) { + _fx_free_LN14K_form__kexp_t(&res_3); } } FX_CHECK_EXN(_fx_catch_14); @@ -8536,8 +8447,9 @@ static int _fx_M15K_cfold_dealiasFM9cfd_atom_N14K_form__atom_t3N14K_form__atom_t int_ j_0 = v_2.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*ida_map_0)->u.t.t5, 0, j_0), _fx_catch_0); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*ida_map_0)->u.t.t5, j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*ida_map_0)->u.t.t5, j_0); + _fx_copy_N14K_form__atom_t(&v_3->data, &v_1); _fx_M15K_cfold_dealiasFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_1, &v_0); } else { @@ -8829,9 +8741,9 @@ static int _fx_M15K_cfold_dealiasFM9cfd_kexp_N14K_form__kexp_t2N14K_form__kexp_t if (tag_0 == 8) { _fx_T3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_4 = &e_1->u.KExpIntrin; if (vcase_4->t0.tag == 8) { - _fx_LN14K_form__atom_t __fold_result___2 = 0; - _fx_LN14K_form__atom_t al_4 = 0; _fx_LN14K_form__atom_t res_al_0 = 0; + _fx_LN14K_form__atom_t al_4 = 0; + _fx_LN14K_form__atom_t res_al_1 = 0; _fx_N14K_form__ktyp_t v_11 = 0; _fx_T2N14K_form__ktyp_tR10Ast__loc_t* v_12 = &vcase_4->t2; _fx_R10Ast__loc_t* loc_1 = &v_12->t1; @@ -8839,10 +8751,8 @@ static int _fx_M15K_cfold_dealiasFM9cfd_kexp_N14K_form__kexp_t2N14K_form__kexp_t FX_COPY_PTR(vcase_4->t1, &al_4); _fx_LN14K_form__atom_t lst_2 = al_4; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN14K_form__atom_t res_al_1 = 0; _fx_LN14K_form__atom_t v_13 = 0; _fx_N14K_form__atom_t* a_3 = &lst_2->hd; - FX_COPY_PTR(__fold_result___2, &res_al_1); if (a_3->tag == 1) { _fx_Nt6option1LN14K_form__atom_t v_14 = {0}; FX_CALL( @@ -8857,7 +8767,7 @@ static int _fx_M15K_cfold_dealiasFM9cfd_kexp_N14K_form__kexp_t2N14K_form__kexp_t _fx_catch_11); FX_CALL( _fx_M15K_cfold_dealiasFM20try_cfold_str_concatLN14K_form__atom_t2N14K_form__atom_tLN14K_form__atom_t( - &v_15->hd, res_al_1, &v_17, 0), _fx_catch_11); + &v_15->hd, res_al_0, &v_17, 0), _fx_catch_11); FX_CALL( _fx_M15K_cfold_dealiasFM7__add__LN14K_form__atom_t2LN14K_form__atom_tLN14K_form__atom_t(v_16, v_17, &v_13, 0), _fx_catch_11); @@ -8872,7 +8782,7 @@ static int _fx_M15K_cfold_dealiasFM9cfd_kexp_N14K_form__kexp_t2N14K_form__kexp_t goto _fx_endmatch_4; } } - FX_CALL(_fx_cons_LN14K_form__atom_t(a_3, res_al_1, true, &v_13), _fx_catch_12); + FX_CALL(_fx_cons_LN14K_form__atom_t(a_3, res_al_0, true, &v_13), _fx_catch_12); _fx_catch_12: ; @@ -8885,27 +8795,24 @@ static int _fx_M15K_cfold_dealiasFM9cfd_kexp_N14K_form__kexp_t2N14K_form__kexp_t else { FX_CALL( _fx_M15K_cfold_dealiasFM20try_cfold_str_concatLN14K_form__atom_t2N14K_form__atom_tLN14K_form__atom_t(a_3, - res_al_1, &v_13, 0), _fx_catch_14); + res_al_0, &v_13, 0), _fx_catch_14); _fx_catch_14: ; } FX_CHECK_EXN(_fx_catch_15); - _fx_free_LN14K_form__atom_t(&__fold_result___2); - FX_COPY_PTR(v_13, &__fold_result___2); + _fx_free_LN14K_form__atom_t(&res_al_0); + FX_COPY_PTR(v_13, &res_al_0); _fx_catch_15: ; if (v_13) { _fx_free_LN14K_form__atom_t(&v_13); } - if (res_al_1) { - _fx_free_LN14K_form__atom_t(&res_al_1); - } FX_CHECK_EXN(_fx_catch_18); } - FX_COPY_PTR(__fold_result___2, &res_al_0); - if (res_al_0 != 0) { - if (res_al_0->tl == 0) { - _fx_N14K_form__atom_t* a_4 = &res_al_0->hd; + FX_COPY_PTR(res_al_0, &res_al_1); + if (res_al_1 != 0) { + if (res_al_1->tl == 0) { + _fx_N14K_form__atom_t* a_4 = &res_al_1->hd; FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(a_4, loc_1, &v_11, 0), _fx_catch_18); bool res_0; @@ -8950,14 +8857,14 @@ static int _fx_M15K_cfold_dealiasFM9cfd_kexp_N14K_form__kexp_t2N14K_form__kexp_t if (v_11) { _fx_free_N14K_form__ktyp_t(&v_11); } - if (res_al_0) { - _fx_free_LN14K_form__atom_t(&res_al_0); + if (res_al_1) { + _fx_free_LN14K_form__atom_t(&res_al_1); } if (al_4) { _fx_free_LN14K_form__atom_t(&al_4); } - if (__fold_result___2) { - _fx_free_LN14K_form__atom_t(&__fold_result___2); + if (res_al_0) { + _fx_free_LN14K_form__atom_t(&res_al_0); } goto _fx_endmatch_10; } @@ -9393,26 +9300,25 @@ static int if (keep_action_0 == true) { _fx_T2LN14K_form__kexp_tN14K_form__kexp_t v_12 = {0}; _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t v_13 = 0; - _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t __fold_result___0 = 0; + _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t res_0 = 0; _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t result_4 = 0; _fx_make_T2LN14K_form__kexp_tN14K_form__kexp_t(0, new_action_0, &v_12); FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_12, result_3, true, &v_13), _fx_catch_5); _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t lst_1 = v_13; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t r_0 = 0; + _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t v_14 = 0; _fx_T2LN14K_form__kexp_tN14K_form__kexp_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_4); - _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(a_0, res_0, true, &v_14), _fx_catch_4); + _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_14, &res_0); _fx_catch_4: ; - if (r_0) { - _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&r_0); + if (v_14) { + _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_14); } FX_CHECK_EXN(_fx_catch_5); } - FX_COPY_PTR(__fold_result___0, &result_4); + FX_COPY_PTR(res_0, &result_4); _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&result_1); FX_COPY_PTR(result_4, &result_1); FX_BREAK(_fx_catch_5); @@ -9421,8 +9327,8 @@ static int if (result_4) { _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&result_4); } - if (__fold_result___0) { - _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&res_0); } if (v_13) { _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_13); @@ -9431,20 +9337,20 @@ static int goto _fx_endmatch_0; } } - _fx_T2LN14K_form__kexp_tN14K_form__kexp_t v_14 = {0}; - _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t v_15 = 0; - _fx_make_T2LN14K_form__kexp_tN14K_form__kexp_t(checks_0, new_action_0, &v_14); - FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_14, result_3, true, &v_15), _fx_catch_6); + _fx_T2LN14K_form__kexp_tN14K_form__kexp_t v_15 = {0}; + _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t v_16 = 0; + _fx_make_T2LN14K_form__kexp_tN14K_form__kexp_t(checks_0, new_action_0, &v_15); + FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_15, result_3, true, &v_16), _fx_catch_6); _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&cases_1); FX_COPY_PTR(other_cases_0, &cases_1); _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&result_2); - FX_COPY_PTR(v_15, &result_2); + FX_COPY_PTR(v_16, &result_2); _fx_catch_6: ; - if (v_15) { - _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_15); + if (v_16) { + _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_16); } - _fx_free_T2LN14K_form__kexp_tN14K_form__kexp_t(&v_14); + _fx_free_T2LN14K_form__kexp_tN14K_form__kexp_t(&v_15); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_7); @@ -9469,24 +9375,23 @@ static int fx_free_exn(&v_0); } else { - _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t __fold_result___1 = 0; + _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t res_1 = 0; _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t result_5 = 0; _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t lst_2 = result_3; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t r_1 = 0; + _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t v_17 = 0; _fx_T2LN14K_form__kexp_tN14K_form__kexp_t* a_1 = &lst_2->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(a_1, r_1, false, &r_1), _fx_catch_8); - _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(a_1, res_1, true, &v_17), _fx_catch_8); + _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&res_1); + FX_COPY_PTR(v_17, &res_1); _fx_catch_8: ; - if (r_1) { - _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&r_1); + if (v_17) { + _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_17); } FX_CHECK_EXN(_fx_catch_9); } - FX_COPY_PTR(__fold_result___1, &result_5); + FX_COPY_PTR(res_1, &result_5); _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&result_1); FX_COPY_PTR(result_5, &result_1); FX_BREAK(_fx_catch_9); @@ -9495,8 +9400,8 @@ static int if (result_5) { _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&result_5); } - if (__fold_result___1) { - _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&__fold_result___1); + if (res_1) { + _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&res_1); } } FX_CHECK_EXN(_fx_catch_10); diff --git a/compiler/bootstrap/K_copy_n_skip.c b/compiler/bootstrap/K_copy_n_skip.c index 5e91bb0d..3656954e 100644 --- a/compiler/bootstrap/K_copy_n_skip.c +++ b/compiler/bootstrap/K_copy_n_skip.c @@ -6642,72 +6642,65 @@ static int _fx_M13K_copy_n_skipFM6qsort_v5iiA1T2iN14K_form__kexp_tFPB2T2iN14K_fo } } } - int_ __fold_result___0 = lo_2; + int_ i0_0 = lo_2; int_ n_0 = FX_LOOP_COUNT(lo_2, hi_2, 1); for (int_ j_0 = 0; j_0 < n_0; j_0++) { _fx_T2iN14K_form__kexp_t v_9 = {0}; int_ j_1 = lo_2 + j_0 * 1; - int_ i0_0 = __fold_result___0; FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, j_1), _fx_catch_0); _fx_copy_T2iN14K_form__kexp_t(FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, j_1), &v_9); bool v_10; FX_CALL(lt_0->fp(&v_9, &p_1, &v_10, lt_0->fcv), _fx_catch_0); - int_ v_11; if (v_10) { - _fx_M13K_copy_n_skipFM6_swap_v3A1T2iN14K_form__kexp_tii(arr_0, i0_0, j_1, 0); v_11 = i0_0 + 1; + _fx_M13K_copy_n_skipFM6_swap_v3A1T2iN14K_form__kexp_tii(arr_0, i0_0, j_1, 0); i0_0 = i0_0 + 1; } - else { - v_11 = i0_0; - } - __fold_result___0 = v_11; _fx_catch_0: ; _fx_free_T2iN14K_form__kexp_t(&v_9); FX_CHECK_EXN(_fx_catch_2); } - int_ i0_1 = __fold_result___0; - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_1), _fx_catch_2); - _fx_copy_T2iN14K_form__kexp_t(FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, i0_1), &a_1); + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_0), _fx_catch_2); + _fx_copy_T2iN14K_form__kexp_t(FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, i0_0), &a_1); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); - _fx_T2iN14K_form__kexp_t* v_12 = FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, hi_2); + _fx_T2iN14K_form__kexp_t* v_11 = FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, hi_2); + _fx_free_T2iN14K_form__kexp_t(v_11); + _fx_copy_T2iN14K_form__kexp_t(&a_1, v_11); + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_0), _fx_catch_2); + _fx_T2iN14K_form__kexp_t* v_12 = FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, i0_0); _fx_free_T2iN14K_form__kexp_t(v_12); - _fx_copy_T2iN14K_form__kexp_t(&a_1, v_12); - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_1), _fx_catch_2); - _fx_T2iN14K_form__kexp_t* v_13 = FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, i0_1); - _fx_free_T2iN14K_form__kexp_t(v_13); - _fx_copy_T2iN14K_form__kexp_t(&p_1, v_13); + _fx_copy_T2iN14K_form__kexp_t(&p_1, v_12); int_ i1_0 = hi_2; - int_ n_1 = FX_LOOP_COUNT(i0_1, hi_2, 1); + int_ n_1 = FX_LOOP_COUNT(i0_0, hi_2, 1); for (int_ j_2 = 0; j_2 < n_1; j_2++) { - _fx_T2iN14K_form__kexp_t v_14 = {0}; - int_ j_3 = i0_1 + j_2 * 1; - int_ v_15 = j_3 + 1; - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, v_15), _fx_catch_1); - _fx_copy_T2iN14K_form__kexp_t(FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, v_15), &v_14); - bool v_16; - FX_CALL(lt_0->fp(&p_1, &v_14, &v_16, lt_0->fcv), _fx_catch_1); - if (v_16) { + _fx_T2iN14K_form__kexp_t v_13 = {0}; + int_ j_3 = i0_0 + j_2 * 1; + int_ v_14 = j_3 + 1; + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, v_14), _fx_catch_1); + _fx_copy_T2iN14K_form__kexp_t(FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, v_14), &v_13); + bool v_15; + FX_CALL(lt_0->fp(&p_1, &v_13, &v_15, lt_0->fcv), _fx_catch_1); + if (v_15) { i1_0 = j_3; FX_BREAK(_fx_catch_1); } _fx_catch_1: ; - _fx_free_T2iN14K_form__kexp_t(&v_14); + _fx_free_T2iN14K_form__kexp_t(&v_13); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_2); } - if (i0_1 - lo_2 < hi_2 - i1_0) { + if (i0_0 - lo_2 < hi_2 - i1_0) { if (i1_0 < prefix_0) { FX_CALL( _fx_M13K_copy_n_skipFM6qsort_v5iiA1T2iN14K_form__kexp_tFPB2T2iN14K_form__kexp_tT2iN14K_form__kexp_ti(i1_0 + 1, hi_2, arr_0, lt_0, prefix_0, 0), _fx_catch_2); } lo_1 = lo_2; - hi_1 = i0_1 - 1; + hi_1 = i0_0 - 1; } else { FX_CALL( _fx_M13K_copy_n_skipFM6qsort_v5iiA1T2iN14K_form__kexp_tFPB2T2iN14K_form__kexp_tT2iN14K_form__kexp_ti(lo_2, - i0_1 - 1, arr_0, lt_0, prefix_0, 0), _fx_catch_2); + i0_0 - 1, arr_0, lt_0, prefix_0, 0), _fx_catch_2); if (i1_0 < prefix_0) { lo_1 = i1_0 + 1; hi_1 = hi_2; } @@ -6721,17 +6714,17 @@ static int _fx_M13K_copy_n_skipFM6qsort_v5iiA1T2iN14K_form__kexp_tFPB2T2iN14K_fo _fx_copy_T2iN14K_form__kexp_t(FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, lo_2), &a_2); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); _fx_copy_T2iN14K_form__kexp_t(FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, hi_2), &b_1); - bool v_17; - FX_CALL(lt_0->fp(&b_1, &a_2, &v_17, lt_0->fcv), _fx_catch_2); - if (v_17) { + bool v_16; + FX_CALL(lt_0->fp(&b_1, &a_2, &v_16, lt_0->fcv), _fx_catch_2); + if (v_16) { FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); - _fx_T2iN14K_form__kexp_t* v_18 = FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, hi_2); - _fx_free_T2iN14K_form__kexp_t(v_18); - _fx_copy_T2iN14K_form__kexp_t(&a_2, v_18); + _fx_T2iN14K_form__kexp_t* v_17 = FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, hi_2); + _fx_free_T2iN14K_form__kexp_t(v_17); + _fx_copy_T2iN14K_form__kexp_t(&a_2, v_17); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, lo_2), _fx_catch_2); - _fx_T2iN14K_form__kexp_t* v_19 = FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, lo_2); - _fx_free_T2iN14K_form__kexp_t(v_19); - _fx_copy_T2iN14K_form__kexp_t(&b_1, v_19); + _fx_T2iN14K_form__kexp_t* v_18 = FX_PTR_1D(_fx_T2iN14K_form__kexp_t, *arr_0, lo_2); + _fx_free_T2iN14K_form__kexp_t(v_18); + _fx_copy_T2iN14K_form__kexp_t(&b_1, v_18); FX_BREAK(_fx_catch_2); } else { @@ -6962,12 +6955,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -7012,12 +7006,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -7070,28 +7065,29 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM4growv2Nt10Hashmap__t2R9Ast__id_tT2iN14K_f for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) - { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M13K_copy_n_skipFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_tRt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -7134,28 +7130,29 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM4growv2Nt10Hashmap__t2R9Ast__id_tNt10Hashs for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0)->hv < - 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M13K_copy_n_skipFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tRt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -7175,14 +7172,14 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tT { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -7201,32 +7198,11 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tT bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -7262,14 +7238,14 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -7288,32 +7264,11 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -7353,14 +7308,14 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -7388,32 +7343,11 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -7429,14 +7363,14 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -7449,28 +7383,29 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -7481,12 +7416,13 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast _fx_copy_T2iN14K_form__kexp_t(&self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t(hv_0, k_0, &v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -7517,14 +7453,14 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -7552,32 +7488,11 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -7593,14 +7508,14 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -7613,28 +7528,29 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -7645,12 +7561,13 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast FX_COPY_PTR(self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(hv_0, k_0, v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -7684,10 +7601,11 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tR9Ast__id_t(self_0, k_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, idx_0), _fx_cleanup); - _fx_Nt10Hashset__t1R9Ast__id_t* v_0 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, idx_0)->data; - _fx_free_Nt10Hashset__t1R9Ast__id_t(v_0); - FX_COPY_PTR(d_0, v_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_0 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, idx_0); + _fx_Nt10Hashset__t1R9Ast__id_t* v_1 = &v_0->data; + _fx_free_Nt10Hashset__t1R9Ast__id_t(v_1); + FX_COPY_PTR(d_0, v_1); _fx_cleanup: ; return fx_status; @@ -7723,10 +7641,11 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tT2iN14K_form__kexp_tR9Ast__id_t(self_0, &k_0, &idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, idx_0), _fx_catch_0); - _fx_T2iN14K_form__kexp_t* v_2 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t, self_0->u.t.t5, idx_0)->data; - _fx_free_T2iN14K_form__kexp_t(v_2); - _fx_copy_T2iN14K_form__kexp_t(&d_0, v_2); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t, self_0->u.t.t5, idx_0); + _fx_T2iN14K_form__kexp_t* v_3 = &v_2->data; + _fx_free_T2iN14K_form__kexp_t(v_3); + _fx_copy_T2iN14K_form__kexp_t(&d_0, v_3); _fx_catch_0: ; _fx_free_T2iN14K_form__kexp_t(&d_0); @@ -7780,9 +7699,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -7831,26 +7753,28 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M13K_copy_n_skipFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -7887,32 +7811,11 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -7974,32 +7877,11 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -8015,14 +7897,14 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -8034,27 +7916,29 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -8062,11 +7946,14 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -8088,16 +7975,15 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_ void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - FX_CALL( - _fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_cleanup); + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + FX_CALL(_fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, 0), + _fx_cleanup); _fx_cleanup: ; return fx_status; @@ -8114,10 +8000,13 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM3appv2Nt10Hashset__t1R9Ast__id_tFPv1R9Ast_ int_ v_0 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_0; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_1 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_1->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_1 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; - FX_CALL(f_0->fp(&v_1, f_0->fcv), _fx_catch_0); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_3 = v_2->key; + FX_CALL(f_0->fp(&v_3, f_0->fcv), _fx_catch_0); } _fx_catch_0: ; @@ -8181,27 +8070,33 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9intersectv2Nt10Hashset__t1R9Ast__id_tNt10 self_0->u.t.t3 = 0; for (int_ j_0 = 0; j_0 < tabsz_0; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - bool v_9; - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_9 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + bool v_10; + if (v_9->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_10 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_11 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_12 = v_11->key; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_Ta2i v_11; - FX_CALL( - _fx_M13K_copy_n_skipFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(b_0, &v_10, - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv, &v_11, 0), _fx_catch_0); - v_9 = v_11.t1 >= 0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_13 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_Ta2i v_14; + FX_CALL(_fx_M13K_copy_n_skipFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(b_0, &v_12, v_13->hv, &v_14, 0), + _fx_catch_0); + v_10 = v_14.t1 >= 0; } else { - v_9 = false; + v_10 = false; } - if (v_9) { + if (v_10) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_12 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_15 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_16 = v_15->key; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - FX_CALL( - _fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, &v_12, - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv, 0), _fx_catch_0); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_17 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + FX_CALL(_fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, &v_16, v_17->hv, 0), _fx_catch_0); } _fx_catch_0: ; @@ -8260,7 +8155,8 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form _fx_R17K_form__kmodule_t* __pat___0 = &lst_0->hd; int_ km_idx_0 = __pat___0->km_idx; FX_CHKIDX(FX_CHKIDX1(toposort_idx_0, 0, km_idx_0), _fx_catch_0); - *FX_PTR_1D(int_, toposort_idx_0, km_idx_0) = __pat___0->km_toposort_idx; + int_* v_8 = FX_PTR_1D(int_, toposort_idx_0, km_idx_0); + *v_8 = __pat___0->km_toposort_idx; _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); @@ -8273,12 +8169,12 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form FX_COPY_PTR(km_0->km_top, &km_top_0); _fx_LN14K_form__kexp_t lst_2 = km_top_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_R17K_form__kdeffun_t v_8 = {0}; + _fx_R17K_form__kdeffun_t v_9 = {0}; _fx_N14K_form__kexp_t e_0 = lst_2->hd; int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 32) { - _fx_copy_R17K_form__kdeffun_t(&e_0->u.KDefFun->data, &v_8); - _fx_R16Ast__fun_flags_t* kf_flags_0 = &v_8.kf_flags; + _fx_copy_R17K_form__kdeffun_t(&e_0->u.KDefFun->data, &v_9); + _fx_R16Ast__fun_flags_t* kf_flags_0 = &v_9.kf_flags; bool t_0; if (kf_flags_0->fun_flag_instance) { t_0 = true; @@ -8287,74 +8183,74 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form t_0 = kf_flags_0->fun_flag_inline; } if (t_0) { - _fx_T2iN14K_form__kexp_t v_9 = {0}; - _fx_T2R9Ast__id_tT2iN14K_form__kexp_t v_10 = {0}; - _fx_LT2R9Ast__id_tT2iN14K_form__kexp_t v_11 = 0; - _fx_make_T2iN14K_form__kexp_t(idx_0, e_0, &v_9); - _fx_make_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_8.kf_name, &v_9, &v_10); - FX_CALL(_fx_cons_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_10, all_copied_0, true, &v_11), _fx_catch_1); + _fx_T2iN14K_form__kexp_t v_10 = {0}; + _fx_T2R9Ast__id_tT2iN14K_form__kexp_t v_11 = {0}; + _fx_LT2R9Ast__id_tT2iN14K_form__kexp_t v_12 = 0; + _fx_make_T2iN14K_form__kexp_t(idx_0, e_0, &v_10); + _fx_make_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_9.kf_name, &v_10, &v_11); + FX_CALL(_fx_cons_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_11, all_copied_0, true, &v_12), _fx_catch_1); _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&all_copied_0); - FX_COPY_PTR(v_11, &all_copied_0); + FX_COPY_PTR(v_12, &all_copied_0); idx_0 = idx_0 + 1; _fx_catch_1: ; - if (v_11) { - _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_11); + if (v_12) { + _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_12); } - _fx_free_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_10); - _fx_free_T2iN14K_form__kexp_t(&v_9); + _fx_free_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_11); + _fx_free_T2iN14K_form__kexp_t(&v_10); goto _fx_endmatch_0; } } if (tag_0 == 36) { - _fx_R17K_form__kdeftyp_t v_12 = {0}; - _fx_T2iN14K_form__kexp_t v_13 = {0}; - _fx_T2R9Ast__id_tT2iN14K_form__kexp_t v_14 = {0}; - _fx_LT2R9Ast__id_tT2iN14K_form__kexp_t v_15 = 0; - _fx_copy_R17K_form__kdeftyp_t(&e_0->u.KDefTyp->data, &v_12); - _fx_make_T2iN14K_form__kexp_t(idx_0, e_0, &v_13); - _fx_make_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_12.kt_name, &v_13, &v_14); - FX_CALL(_fx_cons_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_14, all_copied_0, true, &v_15), _fx_catch_2); + _fx_R17K_form__kdeftyp_t v_13 = {0}; + _fx_T2iN14K_form__kexp_t v_14 = {0}; + _fx_T2R9Ast__id_tT2iN14K_form__kexp_t v_15 = {0}; + _fx_LT2R9Ast__id_tT2iN14K_form__kexp_t v_16 = 0; + _fx_copy_R17K_form__kdeftyp_t(&e_0->u.KDefTyp->data, &v_13); + _fx_make_T2iN14K_form__kexp_t(idx_0, e_0, &v_14); + _fx_make_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_13.kt_name, &v_14, &v_15); + FX_CALL(_fx_cons_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_15, all_copied_0, true, &v_16), _fx_catch_2); _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&all_copied_0); - FX_COPY_PTR(v_15, &all_copied_0); + FX_COPY_PTR(v_16, &all_copied_0); idx_0 = idx_0 + 1; _fx_catch_2: ; - if (v_15) { - _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_15); + if (v_16) { + _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_16); } - _fx_free_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_14); - _fx_free_T2iN14K_form__kexp_t(&v_13); - _fx_free_R17K_form__kdeftyp_t(&v_12); + _fx_free_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_15); + _fx_free_T2iN14K_form__kexp_t(&v_14); + _fx_free_R17K_form__kdeftyp_t(&v_13); goto _fx_endmatch_0; } if (tag_0 == 34) { - _fx_R21K_form__kdefvariant_t v_16 = {0}; - _fx_T2iN14K_form__kexp_t v_17 = {0}; - _fx_T2R9Ast__id_tT2iN14K_form__kexp_t v_18 = {0}; - _fx_LT2R9Ast__id_tT2iN14K_form__kexp_t v_19 = 0; - _fx_copy_R21K_form__kdefvariant_t(&e_0->u.KDefVariant->data, &v_16); - _fx_make_T2iN14K_form__kexp_t(idx_0, e_0, &v_17); - _fx_make_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_16.kvar_name, &v_17, &v_18); - FX_CALL(_fx_cons_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_18, all_copied_0, true, &v_19), _fx_catch_3); + _fx_R21K_form__kdefvariant_t v_17 = {0}; + _fx_T2iN14K_form__kexp_t v_18 = {0}; + _fx_T2R9Ast__id_tT2iN14K_form__kexp_t v_19 = {0}; + _fx_LT2R9Ast__id_tT2iN14K_form__kexp_t v_20 = 0; + _fx_copy_R21K_form__kdefvariant_t(&e_0->u.KDefVariant->data, &v_17); + _fx_make_T2iN14K_form__kexp_t(idx_0, e_0, &v_18); + _fx_make_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_17.kvar_name, &v_18, &v_19); + FX_CALL(_fx_cons_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_19, all_copied_0, true, &v_20), _fx_catch_3); _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&all_copied_0); - FX_COPY_PTR(v_19, &all_copied_0); + FX_COPY_PTR(v_20, &all_copied_0); idx_0 = idx_0 + 1; _fx_catch_3: ; - if (v_19) { - _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_19); + if (v_20) { + _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_20); } - _fx_free_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_18); - _fx_free_T2iN14K_form__kexp_t(&v_17); - _fx_free_R21K_form__kdefvariant_t(&v_16); + _fx_free_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_19); + _fx_free_T2iN14K_form__kexp_t(&v_18); + _fx_free_R21K_form__kdefvariant_t(&v_17); goto _fx_endmatch_0; } if (tag_0 == 31) { _fx_R17K_form__kdefval_t kv_0 = {0}; - _fx_T2iN14K_form__kexp_t v_20 = {0}; - _fx_T2R9Ast__id_tT2iN14K_form__kexp_t v_21 = {0}; - _fx_LT2R9Ast__id_tT2iN14K_form__kexp_t v_22 = 0; + _fx_T2iN14K_form__kexp_t v_21 = {0}; + _fx_T2R9Ast__id_tT2iN14K_form__kexp_t v_22 = {0}; + _fx_LT2R9Ast__id_tT2iN14K_form__kexp_t v_23 = 0; _fx_T3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t* vcase_0 = &e_0->u.KDefVal; _fx_R9Ast__id_t* n_0 = &vcase_0->t0; FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(n_0, &vcase_0->t2, &kv_0, 0), _fx_catch_4); @@ -8366,20 +8262,20 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form t_1 = kv_0.kv_flags.val_flag_ctor > 0; } if (t_1) { - _fx_make_T2iN14K_form__kexp_t(idx_0, e_0, &v_20); - _fx_make_T2R9Ast__id_tT2iN14K_form__kexp_t(n_0, &v_20, &v_21); - FX_CALL(_fx_cons_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_21, all_copied_0, true, &v_22), _fx_catch_4); + _fx_make_T2iN14K_form__kexp_t(idx_0, e_0, &v_21); + _fx_make_T2R9Ast__id_tT2iN14K_form__kexp_t(n_0, &v_21, &v_22); + FX_CALL(_fx_cons_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_22, all_copied_0, true, &v_23), _fx_catch_4); _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&all_copied_0); - FX_COPY_PTR(v_22, &all_copied_0); + FX_COPY_PTR(v_23, &all_copied_0); idx_0 = idx_0 + 1; } _fx_catch_4: ; - if (v_22) { - _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_22); + if (v_23) { + _fx_free_LT2R9Ast__id_tT2iN14K_form__kexp_t(&v_23); } - _fx_free_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_21); - _fx_free_T2iN14K_form__kexp_t(&v_20); + _fx_free_T2R9Ast__id_tT2iN14K_form__kexp_t(&v_22); + _fx_free_T2iN14K_form__kexp_t(&v_21); _fx_free_R17K_form__kdefval_t(&kv_0); goto _fx_endmatch_0; } @@ -8388,7 +8284,7 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form FX_CHECK_EXN(_fx_catch_5); _fx_catch_5: ; - _fx_free_R17K_form__kdeffun_t(&v_8); + _fx_free_R17K_form__kdeffun_t(&v_9); FX_CHECK_EXN(_fx_catch_6); } @@ -8400,9 +8296,9 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form } FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&_fx_g10Ast__noloc, &v_0), _fx_cleanup); _fx_make_T2iN14K_form__kexp_t(0, v_0, &v_1); - int_ v_23 = _fx_M13K_copy_n_skipFM6lengthi1LT2R9Ast__id_tT2iN14K_form__kexp_t(all_copied_0, 0); + int_ v_24 = _fx_M13K_copy_n_skipFM6lengthi1LT2R9Ast__id_tT2iN14K_form__kexp_t(all_copied_0, 0); int_ size_0 = 8; - while (size_0 < v_23) { + while (size_0 < v_24) { size_0 = size_0 * 2; } int_ idxsize_0 = size_0 * 2; @@ -8466,13 +8362,13 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form _fx_LT2R9Ast__id_tT2iN14K_form__kexp_t lst_4 = all_copied_0; for (; lst_4; lst_4 = lst_4->tl) { _fx_N14K_form__kexp_t e_1 = 0; - _fx_LN14K_form__kexp_t v_24 = 0; + _fx_LN14K_form__kexp_t v_25 = 0; _fx_Nt10Hashset__t1R9Ast__id_t deps_0 = 0; _fx_T2R9Ast__id_tT2iN14K_form__kexp_t* __pat___2 = &lst_4->hd; _fx_R9Ast__id_t n_4 = __pat___2->t0; FX_COPY_PTR(__pat___2->t1.t1, &e_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_1, 0, true, &v_24), _fx_catch_8); - FX_CALL(_fx_M6K_formFM7used_byNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_24, 16, &deps_0, 0), _fx_catch_8); + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_1, 0, true, &v_25), _fx_catch_8); + FX_CALL(_fx_M6K_formFM7used_byNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_25, 16, &deps_0, 0), _fx_catch_8); FX_CALL( _fx_M13K_copy_n_skipFM9intersectv2Nt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_t(deps_0, all_copied_set_0, 0), _fx_catch_8); @@ -8484,8 +8380,8 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form if (deps_0) { _fx_free_Nt10Hashset__t1R9Ast__id_t(&deps_0); } - if (v_24) { - _fx_free_LN14K_form__kexp_t(&v_24); + if (v_25) { + _fx_free_LN14K_form__kexp_t(&v_25); } if (e_1) { _fx_free_N14K_form__kexp_t(&e_1); @@ -8517,13 +8413,13 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form _fx_rLT2iN14K_form__kexp_t copied_code_ref_0 = 0; _fx_FPv1R9Ast__id_t __lambda___1 = {0}; _fx_FPB2T2iN14K_form__kexp_tT2iN14K_form__kexp_t __lambda___2 = {0}; - _fx_LT2iN14K_form__kexp_t v_25 = 0; + _fx_LT2iN14K_form__kexp_t v_26 = 0; _fx_LN14K_form__kexp_t copied_code_0 = 0; _fx_LT2iN14K_form__kexp_t copied_code_1 = 0; - _fx_N14K_form__atom_t v_26 = {0}; + _fx_N14K_form__atom_t v_27 = {0}; _fx_Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_t empty_subst0_0 = 0; - _fx_N14K_form__kexp_t v_27 = 0; - _fx_T2N14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t v_28 = {0}; + _fx_N14K_form__kexp_t v_28 = 0; + _fx_T2N14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t v_29 = {0}; _fx_N14K_form__kexp_t copied_code_2 = 0; _fx_Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_t subst_map_0 = 0; _fx_LN14K_form__kexp_t copied_code_3 = 0; @@ -8551,9 +8447,9 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form FX_COPY_FP(&__lambda___fp_0, &__lambda___2); FX_CALL( _fx_M13K_copy_n_skipFM4sortLT2iN14K_form__kexp_t2LT2iN14K_form__kexp_tFPB2T2iN14K_form__kexp_tT2iN14K_form__kexp_t( - *copied_code_4, &__lambda___2, &v_25, 0), _fx_catch_13); + *copied_code_4, &__lambda___2, &v_26, 0), _fx_catch_13); _fx_free_LT2iN14K_form__kexp_t(copied_code_4); - FX_COPY_PTR(v_25, copied_code_4); + FX_COPY_PTR(v_26, copied_code_4); _fx_LN14K_form__kexp_t lstend_2 = 0; FX_COPY_PTR(*copied_code_4, &copied_code_1); _fx_LT2iN14K_form__kexp_t lst_7 = copied_code_1; @@ -8566,18 +8462,18 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form _fx_catch_10: ; FX_CHECK_EXN(_fx_catch_13); } - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&_fx_g9Ast__noid, &v_26); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&_fx_g9Ast__noid, &v_27); FX_CALL( _fx_M13K_copy_n_skipFM5emptyNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t3iR9Ast__id_tN14K_form__atom_t(1, - &_fx_g9Ast__noid, &v_26, &empty_subst0_0, 0), _fx_catch_13); + &_fx_g9Ast__noid, &v_27, &empty_subst0_0, 0), _fx_catch_13); FX_CALL( - _fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(copied_code_0, &_fx_g10Ast__noloc, &v_27, 0), + _fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(copied_code_0, &_fx_g10Ast__noloc, &v_28, 0), _fx_catch_13); FX_CALL( _fx_M8K_inlineFM11subst_namesT2N14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t4iN14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_tB( - km_idx_1, v_27, empty_subst0_0, true, &v_28, 0), _fx_catch_13); - FX_COPY_PTR(v_28.t0, &copied_code_2); - FX_COPY_PTR(v_28.t1, &subst_map_0); + km_idx_1, v_28, empty_subst0_0, true, &v_29, 0), _fx_catch_13); + FX_COPY_PTR(v_29.t0, &copied_code_2); + FX_COPY_PTR(v_29.t1, &subst_map_0); FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(copied_code_2, &copied_code_3, 0), _fx_catch_13); _fx_LN14K_form__kexp_t lst_8 = copied_code_3; for (; lst_8; lst_8 = lst_8->tl) { @@ -8586,8 +8482,8 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form _fx_R17K_form__kdefval_t kv_1 = {0}; _fx_R16Ast__val_flags_t kv_flags_0 = {0}; _fx_R16Ast__val_flags_t new_kv_flags_0 = {0}; - _fx_R17K_form__kdefval_t v_29 = {0}; - _fx_N15K_form__kinfo_t v_30 = {0}; + _fx_R17K_form__kdefval_t v_30 = {0}; + _fx_N15K_form__kinfo_t v_31 = {0}; _fx_T3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t* vcase_1 = &e_2->u.KDefVal; _fx_R9Ast__id_t* n_5 = &vcase_1->t0; FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(n_5, &vcase_1->t2, &kv_1, 0), _fx_catch_11); @@ -8595,13 +8491,13 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form _fx_make_R16Ast__val_flags_t(kv_flags_0.val_flag_arg, kv_flags_0.val_flag_mutable, kv_flags_0.val_flag_temp, kv_flags_0.val_flag_tempref, true, kv_flags_0.val_flag_subarray, kv_flags_0.val_flag_instance, &kv_flags_0.val_flag_method, kv_flags_0.val_flag_ctor, 0, &new_kv_flags_0); - _fx_make_R17K_form__kdefval_t(&kv_1.kv_name, &kv_1.kv_cname, kv_1.kv_typ, &new_kv_flags_0, &kv_1.kv_loc, &v_29); - _fx_M6K_formFM4KValN15K_form__kinfo_t1RM9kdefval_t(&v_29, &v_30); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(n_5, &v_30, 0), _fx_catch_11); + _fx_make_R17K_form__kdefval_t(&kv_1.kv_name, &kv_1.kv_cname, kv_1.kv_typ, &new_kv_flags_0, &kv_1.kv_loc, &v_30); + _fx_M6K_formFM4KValN15K_form__kinfo_t1RM9kdefval_t(&v_30, &v_31); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(n_5, &v_31, 0), _fx_catch_11); _fx_catch_11: ; - _fx_free_N15K_form__kinfo_t(&v_30); - _fx_free_R17K_form__kdefval_t(&v_29); + _fx_free_N15K_form__kinfo_t(&v_31); + _fx_free_R17K_form__kdefval_t(&v_30); _fx_free_R16Ast__val_flags_t(&new_kv_flags_0); _fx_free_R16Ast__val_flags_t(&kv_flags_0); _fx_free_R17K_form__kdefval_t(&kv_1); @@ -8628,22 +8524,22 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form if (copied_code_2) { _fx_free_N14K_form__kexp_t(&copied_code_2); } - _fx_free_T2N14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&v_28); - if (v_27) { - _fx_free_N14K_form__kexp_t(&v_27); + _fx_free_T2N14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&v_29); + if (v_28) { + _fx_free_N14K_form__kexp_t(&v_28); } if (empty_subst0_0) { _fx_free_Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&empty_subst0_0); } - _fx_free_N14K_form__atom_t(&v_26); + _fx_free_N14K_form__atom_t(&v_27); if (copied_code_1) { _fx_free_LT2iN14K_form__kexp_t(&copied_code_1); } if (copied_code_0) { _fx_free_LN14K_form__kexp_t(&copied_code_0); } - if (v_25) { - _fx_free_LT2iN14K_form__kexp_t(&v_25); + if (v_26) { + _fx_free_LT2iN14K_form__kexp_t(&v_26); } FX_FREE_FP(&__lambda___2); FX_FREE_FP(&__lambda___1); @@ -8669,11 +8565,11 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form _fx_LN14K_form__kexp_t copied_code_5 = 0; _fx_Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_t subst_map_1 = 0; _fx_LN14K_form__kexp_t km_top_2 = 0; - _fx_N14K_form__kexp_t v_31 = 0; - _fx_T2N14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t v_32 = {0}; + _fx_N14K_form__kexp_t v_32 = 0; + _fx_T2N14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t v_33 = {0}; _fx_N14K_form__kexp_t new_top_0 = 0; _fx_LN14K_form__kexp_t new_top_1 = 0; - _fx_LN14K_form__kexp_t v_33 = 0; + _fx_LN14K_form__kexp_t v_34 = 0; _fx_R17K_form__kmodule_t rec_0 = {0}; _fx_T2LN14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t* __pat___5 = &lst_10->hd; _fx_R17K_form__kmodule_t* km_2 = &lst_9->hd; @@ -8681,17 +8577,17 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form FX_COPY_PTR(__pat___5->t1, &subst_map_1); int_ km_idx_2 = km_2->km_idx; FX_COPY_PTR(km_2->km_top, &km_top_2); - FX_CALL(_fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(km_top_2, &_fx_g10Ast__noloc, &v_31, 0), + FX_CALL(_fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(km_top_2, &_fx_g10Ast__noloc, &v_32, 0), _fx_catch_14); FX_CALL( _fx_M8K_inlineFM11subst_namesT2N14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t4iN14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_tB( - km_idx_2, v_31, subst_map_1, false, &v_32, 0), _fx_catch_14); - FX_COPY_PTR(v_32.t0, &new_top_0); + km_idx_2, v_32, subst_map_1, false, &v_33, 0), _fx_catch_14); + FX_COPY_PTR(v_33.t0, &new_top_0); FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(new_top_0, &new_top_1, 0), _fx_catch_14); FX_CALL( - _fx_M13K_copy_n_skipFM7__add__LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(copied_code_5, new_top_1, &v_33, + _fx_M13K_copy_n_skipFM7__add__LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(copied_code_5, new_top_1, &v_34, 0), _fx_catch_14); - _fx_make_R17K_form__kmodule_t(&km_2->km_name, km_2->km_idx, km_2->km_toposort_idx, &km_2->km_cname, v_33, km_2->km_deps, + _fx_make_R17K_form__kmodule_t(&km_2->km_name, km_2->km_idx, km_2->km_toposort_idx, &km_2->km_cname, v_34, km_2->km_deps, km_2->km_skip, km_2->km_main, &km_2->km_pragmas, &rec_0); _fx_LR17K_form__kmodule_t node_3 = 0; FX_CALL(_fx_cons_LR17K_form__kmodule_t(&rec_0, 0, false, &node_3), _fx_catch_14); @@ -8699,8 +8595,8 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form _fx_catch_14: ; _fx_free_R17K_form__kmodule_t(&rec_0); - if (v_33) { - _fx_free_LN14K_form__kexp_t(&v_33); + if (v_34) { + _fx_free_LN14K_form__kexp_t(&v_34); } if (new_top_1) { _fx_free_LN14K_form__kexp_t(&new_top_1); @@ -8708,9 +8604,9 @@ FX_EXTERN_C int _fx_M13K_copy_n_skipFM9copy_someLR17K_form__kmodule_t1LR17K_form if (new_top_0) { _fx_free_N14K_form__kexp_t(&new_top_0); } - _fx_free_T2N14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&v_32); - if (v_31) { - _fx_free_N14K_form__kexp_t(&v_31); + _fx_free_T2N14K_form__kexp_tNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&v_33); + if (v_32) { + _fx_free_N14K_form__kexp_t(&v_32); } if (km_top_2) { _fx_free_LN14K_form__kexp_t(&km_top_2); @@ -8776,27 +8672,28 @@ static int _fx_M13K_copy_n_skipFM10__lambda__v1R9Ast__id_t(struct _fx_R9Ast__id_ _fx_Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* all_deps_0 = &cv_0->t0->data; int_ v_2 = n_0->m; FX_CHKIDX(FX_CHKIDX1(*toposort_idx_0, 0, v_2), _fx_cleanup); - if (*FX_PTR_1D(int_, *toposort_idx_0, v_2) < *km_toposort_idx_0) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + int_ v_3 = *FX_PTR_1D(int_, *toposort_idx_0, v_2); + if (v_3 < *km_toposort_idx_0) { + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( - _fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_u_ids_0, n_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_cleanup); - _fx_Ta2i v_3; + _fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_u_ids_0, n_0, h_0 & 9223372036854775807ULL, 0), + _fx_cleanup); + _fx_Ta2i v_4; FX_CALL( _fx_M13K_copy_n_skipFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tR9Ast__id_t(*all_deps_0, n_0, - &v_3, 0), _fx_cleanup); - int_ j_0 = v_3.t1; + &v_4, 0), _fx_cleanup); + int_ j_0 = v_4.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*all_deps_0)->u.t.t5, 0, j_0), _fx_cleanup); - FX_COPY_PTR( - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_deps_0)->u.t.t5, j_0)->data, - &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_5 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_deps_0)->u.t.t5, j_0); + FX_COPY_PTR(v_5->data, &v_1); _fx_M13K_copy_n_skipFM4SomeNt6option1Nt10Hashset__t1R9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(v_1, &v_0); } else { @@ -8806,25 +8703,30 @@ static int _fx_M13K_copy_n_skipFM10__lambda__v1R9Ast__id_t(struct _fx_R9Ast__id_ fx_arr_t table_0 = {0}; _fx_Nt10Hashset__t1R9Ast__id_t deps_0 = v_0.u.Some; fx_copy_arr(&deps_0->u.t.t5, &table_0); - int_ v_4 = deps_0->u.t.t2; - for (int_ j_1 = 0; j_1 < v_4; j_1++) { + int_ v_6 = deps_0->u.t.t2; + for (int_ j_1 = 0; j_1 < v_6; j_1++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_1), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_7 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1); + if (v_7->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_1), _fx_catch_0); - _fx_R9Ast__id_t v_5 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1)->key; - int_ v_6 = v_5.m; - FX_CHKIDX(FX_CHKIDX1(*toposort_idx_0, 0, v_6), _fx_catch_0); - if (*FX_PTR_1D(int_, *toposort_idx_0, v_6) < *km_toposort_idx_0) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)v_5.m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)v_5.i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)v_5.j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1); + _fx_R9Ast__id_t v_9 = v_8->key; + int_ v_10 = v_9.m; + FX_CHKIDX(FX_CHKIDX1(*toposort_idx_0, 0, v_10), _fx_catch_0); + int_ v_11 = *FX_PTR_1D(int_, *toposort_idx_0, v_10); + if (v_11 < *km_toposort_idx_0) { + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)v_9.m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)v_9.i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)v_9.j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( - _fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_u_ids_0, &v_5, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_0); + _fx_M13K_copy_n_skipFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_u_ids_0, &v_9, + h_1 & 9223372036854775807ULL, 0), _fx_catch_0); } } @@ -8878,27 +8780,28 @@ static int _fx_M13K_copy_n_skipFM12__lambda__1_v1R9Ast__id_t(struct _fx_R9Ast__i int_ j_0 = v_2.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(ht_0->u.t.t5, 0, j_0), _fx_cleanup); - _fx_copy_T2iN14K_form__kexp_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t, ht_0->u.t.t5, j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2iN14K_form__kexp_t, ht_0->u.t.t5, j_0); + _fx_copy_T2iN14K_form__kexp_t(&v_3->data, &v_1); _fx_M13K_copy_n_skipFM4SomeNt6option1T2iN14K_form__kexp_t1T2iN14K_form__kexp_t(&v_1, &v_0); } else { _fx_copy_Nt6option1T2iN14K_form__kexp_t(&_fx_g19K_copy_n_skip__None, &v_0); } if (v_0.tag == 2) { - _fx_T2iN14K_form__kexp_t v_3 = {0}; - _fx_LT2iN14K_form__kexp_t v_4 = 0; - _fx_T2iN14K_form__kexp_t* v_5 = &v_0.u.Some; - _fx_make_T2iN14K_form__kexp_t(v_5->t0, v_5->t1, &v_3); - FX_CALL(_fx_cons_LT2iN14K_form__kexp_t(&v_3, *copied_code_0, true, &v_4), _fx_catch_0); + _fx_T2iN14K_form__kexp_t v_4 = {0}; + _fx_LT2iN14K_form__kexp_t v_5 = 0; + _fx_T2iN14K_form__kexp_t* v_6 = &v_0.u.Some; + _fx_make_T2iN14K_form__kexp_t(v_6->t0, v_6->t1, &v_4); + FX_CALL(_fx_cons_LT2iN14K_form__kexp_t(&v_4, *copied_code_0, true, &v_5), _fx_catch_0); _fx_free_LT2iN14K_form__kexp_t(copied_code_0); - FX_COPY_PTR(v_4, copied_code_0); + FX_COPY_PTR(v_5, copied_code_0); _fx_catch_0: ; - if (v_4) { - _fx_free_LT2iN14K_form__kexp_t(&v_4); + if (v_5) { + _fx_free_LT2iN14K_form__kexp_t(&v_5); } - _fx_free_T2iN14K_form__kexp_t(&v_3); + _fx_free_T2iN14K_form__kexp_t(&v_4); } _fx_cleanup: ; diff --git a/compiler/bootstrap/K_declosure.c b/compiler/bootstrap/K_declosure.c index b4ce31f1..7abfae64 100644 --- a/compiler/bootstrap/K_declosure.c +++ b/compiler/bootstrap/K_declosure.c @@ -1020,12 +1020,22 @@ typedef struct _fx_LLR9Ast__id_t_data_t { struct _fx_LR9Ast__id_t_data_t* hd; } _fx_LLR9Ast__id_t_data_t, *_fx_LLR9Ast__id_t; +typedef struct _fx_Ta2LR9Ast__id_t { + struct _fx_LR9Ast__id_t_data_t* t0; + struct _fx_LR9Ast__id_t_data_t* t1; +} _fx_Ta2LR9Ast__id_t; + typedef struct _fx_LLN14K_form__atom_t_data_t { int_ rc; struct _fx_LLN14K_form__atom_t_data_t* tl; struct _fx_LN14K_form__atom_t_data_t* hd; } _fx_LLN14K_form__atom_t_data_t, *_fx_LLN14K_form__atom_t; +typedef struct _fx_Ta2LN14K_form__atom_t { + struct _fx_LN14K_form__atom_t_data_t* t0; + struct _fx_LN14K_form__atom_t_data_t* t1; +} _fx_Ta2LN14K_form__atom_t; + typedef struct { int_ rc; int_ data; @@ -3429,6 +3439,27 @@ static int _fx_cons_LLR9Ast__id_t( FX_MAKE_LIST_IMPL(_fx_LLR9Ast__id_t, FX_COPY_PTR); } +static void _fx_free_Ta2LR9Ast__id_t(struct _fx_Ta2LR9Ast__id_t* dst) +{ + fx_free_list_simple(&dst->t0); + fx_free_list_simple(&dst->t1); +} + +static void _fx_copy_Ta2LR9Ast__id_t(struct _fx_Ta2LR9Ast__id_t* src, struct _fx_Ta2LR9Ast__id_t* dst) +{ + FX_COPY_PTR(src->t0, &dst->t0); + FX_COPY_PTR(src->t1, &dst->t1); +} + +static void _fx_make_Ta2LR9Ast__id_t( + struct _fx_LR9Ast__id_t_data_t* t0, + struct _fx_LR9Ast__id_t_data_t* t1, + struct _fx_Ta2LR9Ast__id_t* fx_result) +{ + FX_COPY_PTR(t0, &fx_result->t0); + FX_COPY_PTR(t1, &fx_result->t1); +} + static void _fx_free_LLN14K_form__atom_t(struct _fx_LLN14K_form__atom_t_data_t** dst) { FX_FREE_LIST_IMPL(_fx_LLN14K_form__atom_t, _fx_free_LN14K_form__atom_t); @@ -3443,6 +3474,27 @@ static int _fx_cons_LLN14K_form__atom_t( FX_MAKE_LIST_IMPL(_fx_LLN14K_form__atom_t, FX_COPY_PTR); } +static void _fx_free_Ta2LN14K_form__atom_t(struct _fx_Ta2LN14K_form__atom_t* dst) +{ + _fx_free_LN14K_form__atom_t(&dst->t0); + _fx_free_LN14K_form__atom_t(&dst->t1); +} + +static void _fx_copy_Ta2LN14K_form__atom_t(struct _fx_Ta2LN14K_form__atom_t* src, struct _fx_Ta2LN14K_form__atom_t* dst) +{ + FX_COPY_PTR(src->t0, &dst->t0); + FX_COPY_PTR(src->t1, &dst->t1); +} + +static void _fx_make_Ta2LN14K_form__atom_t( + struct _fx_LN14K_form__atom_t_data_t* t0, + struct _fx_LN14K_form__atom_t_data_t* t1, + struct _fx_Ta2LN14K_form__atom_t* fx_result) +{ + FX_COPY_PTR(t0, &fx_result->t0); + FX_COPY_PTR(t1, &fx_result->t1); +} + _fx_Nt6option1LR9Ast__id_t _fx_g17K_declosure__None = { 1 }; _fx_Nt6option1R9Ast__id_t _fx_g19K_declosure__None1_ = { 1 }; FX_EXTERN_C int _fx_F9make_FailE1S(fx_str_t*, fx_exn_t*); @@ -3704,10 +3756,10 @@ FX_EXTERN_C void _fx_M11K_declosureFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t( fx_result->u.Some = *arg0; } -FX_EXTERN_C void _fx_M11K_declosureFM5link2LR9Ast__id_t2LR9Ast__id_tLR9Ast__id_t( - struct _fx_LR9Ast__id_t_data_t* l1, - struct _fx_LR9Ast__id_t_data_t* l2, - struct _fx_LR9Ast__id_t_data_t** fx_result, +FX_EXTERN_C void _fx_M11K_declosureFM5link2LN14K_form__atom_t2LN14K_form__atom_tLN14K_form__atom_t( + struct _fx_LN14K_form__atom_t_data_t* l1, + struct _fx_LN14K_form__atom_t_data_t* l2, + struct _fx_LN14K_form__atom_t_data_t** fx_result, void* fx_fv) { @@ -3715,10 +3767,10 @@ fx_link_lists(l1, l2, fx_result); } -FX_EXTERN_C void _fx_M11K_declosureFM5link2LN14K_form__atom_t2LN14K_form__atom_tLN14K_form__atom_t( - struct _fx_LN14K_form__atom_t_data_t* l1, - struct _fx_LN14K_form__atom_t_data_t* l2, - struct _fx_LN14K_form__atom_t_data_t** fx_result, +FX_EXTERN_C void _fx_M11K_declosureFM5link2LR9Ast__id_t2LR9Ast__id_tLR9Ast__id_t( + struct _fx_LR9Ast__id_t_data_t* l1, + struct _fx_LR9Ast__id_t_data_t* l2, + struct _fx_LR9Ast__id_t_data_t** fx_result, void* fx_fv) { @@ -3788,12 +3840,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -3838,9 +3891,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -3893,27 +3949,29 @@ FX_EXTERN_C int _fx_M11K_declosureFM4growv2Nt10Hashmap__t2R9Ast__id_tLR9Ast__id_ for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M11K_declosureFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_tRt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -3951,26 +4009,28 @@ FX_EXTERN_C int _fx_M11K_declosureFM4growv2Nt10Hashmap__t2R9Ast__id_tR9Ast__id_t int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M11K_declosureFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_tRt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -3989,14 +4049,14 @@ FX_EXTERN_C int _fx_M11K_declosureFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tLR9 { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4015,32 +4075,11 @@ FX_EXTERN_C int _fx_M11K_declosureFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tLR9 bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4076,14 +4115,14 @@ FX_EXTERN_C int _fx_M11K_declosureFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR26 { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4102,32 +4141,11 @@ FX_EXTERN_C int _fx_M11K_declosureFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR26 bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4163,14 +4181,14 @@ FX_EXTERN_C int _fx_M11K_declosureFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR9A { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4188,32 +4206,11 @@ FX_EXTERN_C int _fx_M11K_declosureFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR9A bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4252,14 +4249,14 @@ FX_EXTERN_C int _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__ _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -4287,32 +4284,11 @@ FX_EXTERN_C int _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__ bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4328,14 +4304,14 @@ FX_EXTERN_C int _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__ FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -4348,28 +4324,29 @@ FX_EXTERN_C int _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__ FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -4380,12 +4357,13 @@ FX_EXTERN_C int _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__ FX_COPY_PTR(self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t(hv_0, k_0, v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -4414,14 +4392,14 @@ FX_EXTERN_C int _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__ fx_arr_t v_1 = {0}; fx_exn_t v_2 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -4448,32 +4426,11 @@ FX_EXTERN_C int _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__ bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4489,14 +4446,14 @@ FX_EXTERN_C int _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__ FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -4508,28 +4465,29 @@ FX_EXTERN_C int _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__ FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -4537,12 +4495,15 @@ FX_EXTERN_C int _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__ fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_R9Ast__id_t v_6 = self_0->u.t.t0.data; - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_7 = { hv_0, *k_0, v_6 }; + _fx_R9Ast__id_t v_9 = self_0->u.t.t0.data; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_10 = { hv_0, *k_0, v_9 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0) = v_7; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_11 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0); + *v_11 = v_10; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -4578,7 +4539,8 @@ FX_EXTERN_C int _fx_M11K_declosureFM16fold_filcl_kexp_v2N14K_form__kexp_tR22K_fo int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 32) { _fx_N14K_form__kexp_t kf_body_0 = 0; - FX_COPY_PTR(e_0->u.KDefFun->data.kf_body, &kf_body_0); + _fx_R17K_form__kdeffun_t* v_0 = &e_0->u.KDefFun->data; + FX_COPY_PTR(v_0->kf_body, &kf_body_0); FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(kf_body_0, callb_0, 0), _fx_catch_0); _fx_catch_0: ; @@ -4632,10 +4594,11 @@ FX_EXTERN_C int _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tLR9Ast__id_tR9Ast__id_t(sorted_env_0, kf_name_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(sorted_env_0->u.t.t5, 0, idx_0), _fx_cleanup); - _fx_LR9Ast__id_t* v_0 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, sorted_env_0->u.t.t5, idx_0)->data; - FX_FREE_LIST_SIMPLE(v_0); - FX_COPY_PTR(sorted_fvs_0, v_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t* v_0 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, sorted_env_0->u.t.t5, idx_0); + _fx_LR9Ast__id_t* v_1 = &v_0->data; + FX_FREE_LIST_SIMPLE(v_1); + FX_COPY_PTR(sorted_fvs_0, v_1); } FX_COPY_PTR(sorted_env_0, fx_result); @@ -4742,7 +4705,8 @@ FX_EXTERN_C int _fx_M11K_declosureFM13declosure_allLR17K_form__kmodule_t1LR17K_f int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 32) { _fx_N14K_form__kexp_t kf_body_0 = 0; - FX_COPY_PTR(e_0->u.KDefFun->data.kf_body, &kf_body_0); + _fx_R17K_form__kdeffun_t* v_11 = &e_0->u.KDefFun->data; + FX_COPY_PTR(v_11->kf_body, &kf_body_0); FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(kf_body_0, &filcl_callb_0, 0), _fx_catch_1); _fx_catch_1: ; @@ -4812,31 +4776,32 @@ FX_EXTERN_C int _fx_M11K_declosureFM13declosure_allLR17K_form__kmodule_t1LR17K_f &entry0_0, 0, 0, 0, &v_3, &v_4, &v_5), _fx_cleanup); fx_copy_arr(&(*fv_env_1)->u.t.t5, &table_0); FX_COPY_PTR(v_5, &res_0); - int_ v_11 = (*fv_env_1)->u.t.t2; - for (int_ j_0 = 0; j_0 < v_11; j_0++) { + int_ v_12 = (*fv_env_1)->u.t.t2; + for (int_ j_0 = 0; j_0 < v_12; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t entry_0 = {0}; - _fx_R26K_freevars__fv_func_info_t v_12 = {0}; - _fx_Nt10Hashmap__t2R9Ast__id_tLR9Ast__id_t v_13 = 0; + _fx_R26K_freevars__fv_func_info_t v_13 = {0}; + _fx_Nt10Hashmap__t2R9Ast__id_tLR9Ast__id_t v_14 = 0; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_7); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, table_0, j_0)->hv < - 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_15 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, table_0, j_0); + if (v_15->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_7); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, table_0, j_0), &entry_0); - _fx_R9Ast__id_t v_14 = entry_0.key; - _fx_copy_R26K_freevars__fv_func_info_t(&entry_0.data, &v_12); + _fx_R9Ast__id_t v_16 = entry_0.key; + _fx_copy_R26K_freevars__fv_func_info_t(&entry_0.data, &v_13); FX_CALL( _fx_M11K_declosureFM10__lambda__Nt10Hashmap__t2R9Ast__id_tLR9Ast__id_t3R9Ast__id_tR26K_freevars__fv_func_info_tNt10Hashmap__t2R9Ast__id_tLR9Ast__id_t( - &v_14, &v_12, res_0, &v_13, 0), _fx_catch_7); + &v_16, &v_13, res_0, &v_14, 0), _fx_catch_7); _fx_free_Nt10Hashmap__t2R9Ast__id_tLR9Ast__id_t(&res_0); - FX_COPY_PTR(v_13, &res_0); + FX_COPY_PTR(v_14, &res_0); } _fx_catch_7: ; - if (v_13) { - _fx_free_Nt10Hashmap__t2R9Ast__id_tLR9Ast__id_t(&v_13); + if (v_14) { + _fx_free_Nt10Hashmap__t2R9Ast__id_tLR9Ast__id_t(&v_14); } - _fx_free_R26K_freevars__fv_func_info_t(&v_12); + _fx_free_R26K_freevars__fv_func_info_t(&v_13); _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t(&entry_0); FX_CHECK_EXN(_fx_cleanup); } @@ -5004,10 +4969,12 @@ static int _fx_M11K_declosureFM16fold_filcl_atom_v3N14K_form__atom_tR10Ast__loc_ int_ tidx_0 = v_2.t1; if (tidx_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*fv_env_0)->u.t.t4, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, (*fv_env_0)->u.t.t4, j_0) = 1; + int_* v_3 = FX_PTR_1D(int_, (*fv_env_0)->u.t.t4, j_0); + *v_3 = 1; FX_CHKIDX(FX_CHKIDX1((*fv_env_0)->u.t.t5, 0, tidx_0), _fx_catch_0); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, (*fv_env_0)->u.t.t5, tidx_0)->hv = - (uint64_t)(*fv_env_0)->u.t.t3 | 9223372036854775808ULL; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_4 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, (*fv_env_0)->u.t.t5, tidx_0); + v_4->hv = (uint64_t)(*fv_env_0)->u.t.t3 | 9223372036854775808ULL; (*fv_env_0)->u.t.t3 = tidx_0 + 1; (*fv_env_0)->u.t.t1 = (*fv_env_0)->u.t.t1 - 1; } @@ -5064,9 +5031,10 @@ static int _fx_M11K_declosureFM21walk_atom_n_declojureN14K_form__atom_t3N14K_for _fx_Nt6option1R9Ast__id_t v_1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_2 = - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*subst_map_0)->u.t.t5, j_0)->data; - _fx_M11K_declosureFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_2, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*subst_map_0)->u.t.t5, j_0); + _fx_R9Ast__id_t v_3 = v_2->data; + _fx_M11K_declosureFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_3, &v_1); } else { v_1 = _fx_g19K_declosure__None1_; @@ -5132,221 +5100,224 @@ static int _fx_M11K_declosureFM21walk_kexp_n_declojureN14K_form__kexp_t2N14K_for int_ j_0 = v_3.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(fv_env_0->u.t.t5, 0, j_0), _fx_catch_7); - FX_COPY_PTR(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, fv_env_0->u.t.t5, j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t* v_4 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, fv_env_0->u.t.t5, j_0); + FX_COPY_PTR(v_4->data, &v_1); _fx_M11K_declosureFM4SomeNt6option1LR9Ast__id_t1LR9Ast__id_t(v_1, &v_0); } else { _fx_copy_Nt6option1LR9Ast__id_t(&_fx_g17K_declosure__None, &v_0); } if (v_0.tag == 2) { - fx_arr_t v_4 = {0}; fx_arr_t v_5 = {0}; fx_arr_t v_6 = {0}; fx_arr_t v_7 = {0}; + fx_arr_t v_8 = {0}; _fx_Nt10Hashmap__t2R9Ast__id_tR9Ast__id_t subst_map_backup_0 = 0; _fx_LR9Ast__id_t params_addition_0 = 0; _fx_LR9Ast__id_t fvars_0 = 0; - _fx_LLR9Ast__id_t v_8 = 0; - _fx_LR9Ast__id_t __fold_result___0 = 0; - _fx_LLR9Ast__id_t __fold_result___1 = 0; _fx_LLR9Ast__id_t v_9 = 0; + _fx_LR9Ast__id_t s_0 = 0; + _fx_LLR9Ast__id_t res_0 = 0; + _fx_LLR9Ast__id_t v_10 = 0; _fx_LR9Ast__id_t params_0 = 0; _fx_N14K_form__kexp_t body_0 = 0; - _fx_R17K_form__kdeffun_t v_10 = {0}; + _fx_R17K_form__kdeffun_t v_11 = {0}; int_ m_idx_0 = kf_name_0.m; - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_11 = (*subst_map_0)->u.t.t0; - fx_copy_arr(&(*subst_map_0)->u.t.t4, &v_4); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_12 = (*subst_map_0)->u.t.t0; + fx_copy_arr(&(*subst_map_0)->u.t.t4, &v_5); int_* dstptr_0 = 0; - int_ ni_0 = FX_ARR_SIZE(v_4, 0); - int_* ptr_v_0 = FX_PTR_1D(int_, v_4, 0); + int_ ni_0 = FX_ARR_SIZE(v_5, 0); + int_* ptr_v_0 = FX_PTR_1D(int_, v_5, 0); { const int_ shape_0[] = { ni_0 }; - FX_CALL(fx_make_arr(1, shape_0, sizeof(int_), 0, 0, 0, &v_5), _fx_catch_5); + FX_CALL(fx_make_arr(1, shape_0, sizeof(int_), 0, 0, 0, &v_6), _fx_catch_5); } - dstptr_0 = (int_*)v_5.data; + dstptr_0 = (int_*)v_6.data; for (int_ i_0 = 0; i_0 < ni_0; i_0++, dstptr_0++) { int_ x_0 = ptr_v_0[i_0]; *dstptr_0 = x_0; } - fx_copy_arr(&(*subst_map_0)->u.t.t5, &v_6); + fx_copy_arr(&(*subst_map_0)->u.t.t5, &v_7); _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* dstptr_1 = 0; - int_ ni_1 = FX_ARR_SIZE(v_6, 0); + int_ ni_1 = FX_ARR_SIZE(v_7, 0); _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* ptr_v_1 = - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, v_6, 0); + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, v_7, 0); { const int_ shape_1[] = { ni_1 }; - FX_CALL(fx_make_arr(1, shape_1, sizeof(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t), 0, 0, 0, &v_7), + FX_CALL(fx_make_arr(1, shape_1, sizeof(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t), 0, 0, 0, &v_8), _fx_catch_5); } - dstptr_1 = (_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t*)v_7.data; + dstptr_1 = (_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t*)v_8.data; for (int_ i_1 = 0; i_1 < ni_1; i_1++, dstptr_1++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t x_1 = ptr_v_1[i_1]; *dstptr_1 = x_1; } FX_CALL( _fx_M11K_declosureFM1tNt10Hashmap__t2R9Ast__id_tR9Ast__id_t6Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_tiiiA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t( - &v_11, (*subst_map_0)->u.t.t1, (*subst_map_0)->u.t.t2, (*subst_map_0)->u.t.t3, &v_5, &v_7, &subst_map_backup_0), + &v_12, (*subst_map_0)->u.t.t1, (*subst_map_0)->u.t.t2, (*subst_map_0)->u.t.t3, &v_6, &v_8, &subst_map_backup_0), _fx_catch_5); _fx_LR9Ast__id_t lstend_0 = 0; FX_COPY_PTR(v_0.u.Some, &fvars_0); _fx_LR9Ast__id_t lst_0 = fvars_0; for (; lst_0; lst_0 = lst_0->tl) { - fx_str_t v_12 = {0}; fx_str_t v_13 = {0}; - fx_exn_t v_14 = {0}; - _fx_R17K_form__kdefval_t v_15 = {0}; + fx_str_t v_14 = {0}; + fx_exn_t v_15 = {0}; + _fx_R17K_form__kdefval_t v_16 = {0}; _fx_R16Ast__val_flags_t kv_flags_0 = {0}; _fx_N14K_form__ktyp_t kv_typ_0 = 0; _fx_R17K_form__kdefval_t dv_0 = {0}; - _fx_N15K_form__kinfo_t v_16 = {0}; + _fx_N15K_form__kinfo_t v_17 = {0}; _fx_R9Ast__id_t* fv_0 = &lst_0->hd; - _fx_R10Ast__loc_t v_17; - FX_CALL(_fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(fv_0, &_fx_g10Ast__noloc, &v_17, 0), + _fx_R10Ast__loc_t v_18; + FX_CALL(_fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(fv_0, &_fx_g10Ast__noloc, &v_18, 0), _fx_catch_0); - bool v_18; - FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(fv_0, &v_17, &v_18, 0), _fx_catch_0); - if (v_18) { - _fx_R10Ast__loc_t v_19; - FX_CALL(_fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(fv_0, &_fx_g10Ast__noloc, &v_19, 0), + bool v_19; + FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(fv_0, &v_18, &v_19, 0), _fx_catch_0); + if (v_19) { + _fx_R10Ast__loc_t v_20; + FX_CALL(_fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(fv_0, &_fx_g10Ast__noloc, &v_20, 0), _fx_catch_0); - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(fv_0, &v_19, &v_12, 0), _fx_catch_0); + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(fv_0, &v_20, &v_13, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("free variable \'"); fx_str_t slit_1 = FX_MAKE_STR("\' must not be mutable on this stage. Run K.freevars.mutable_freevars_referencing before."); { - const fx_str_t strs_0[] = { slit_0, v_12, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_13), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_13, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_14), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_13, &v_14, 0), _fx_catch_0); - FX_THROW(&v_14, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_14, &v_15, 0), _fx_catch_0); + FX_THROW(&v_15, false, _fx_catch_0); } - FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_15, 0), _fx_catch_0); - _fx_R10Ast__loc_t kv_loc_0 = v_15.kv_loc; - _fx_copy_R16Ast__val_flags_t(&v_15.kv_flags, &kv_flags_0); - FX_COPY_PTR(v_15.kv_typ, &kv_typ_0); + FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_16, 0), _fx_catch_0); + _fx_R10Ast__loc_t kv_loc_0 = v_16.kv_loc; + _fx_copy_R16Ast__val_flags_t(&v_16.kv_flags, &kv_flags_0); + FX_COPY_PTR(v_16.kv_typ, &kv_typ_0); _fx_R9Ast__id_t new_fv_0; FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(m_idx_0, fv_0, &new_fv_0, 0), _fx_catch_0); fx_str_t slit_2 = FX_MAKE_STR(""); _fx_make_R17K_form__kdefval_t(&new_fv_0, &slit_2, kv_typ_0, &kv_flags_0, &kv_loc_0, &dv_0); - _fx_M6K_formFM4KValN15K_form__kinfo_t1RM9kdefval_t(&dv_0, &v_16); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_fv_0, &v_16, 0), _fx_catch_0); + _fx_M6K_formFM4KValN15K_form__kinfo_t1RM9kdefval_t(&dv_0, &v_17); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_fv_0, &v_17, 0), _fx_catch_0); int_ idx_0; FX_CALL( _fx_M11K_declosureFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tR9Ast__id_tR9Ast__id_t(*subst_map_0, fv_0, &idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, idx_0), _fx_catch_0); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*subst_map_0)->u.t.t5, idx_0)->data = new_fv_0; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_21 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*subst_map_0)->u.t.t5, idx_0); + v_21->data = new_fv_0; _fx_LR9Ast__id_t node_0 = 0; FX_CALL(_fx_cons_LR9Ast__id_t(&new_fv_0, 0, false, &node_0), _fx_catch_0); FX_LIST_APPEND(params_addition_0, lstend_0, node_0); _fx_catch_0: ; - _fx_free_N15K_form__kinfo_t(&v_16); + _fx_free_N15K_form__kinfo_t(&v_17); _fx_free_R17K_form__kdefval_t(&dv_0); if (kv_typ_0) { _fx_free_N14K_form__ktyp_t(&kv_typ_0); } _fx_free_R16Ast__val_flags_t(&kv_flags_0); - _fx_free_R17K_form__kdefval_t(&v_15); - fx_free_exn(&v_14); + _fx_free_R17K_form__kdefval_t(&v_16); + fx_free_exn(&v_15); + FX_FREE_STR(&v_14); FX_FREE_STR(&v_13); - FX_FREE_STR(&v_12); FX_CHECK_EXN(_fx_catch_5); } - FX_CALL(_fx_cons_LLR9Ast__id_t(params_addition_0, 0, true, &v_8), _fx_catch_5); - FX_CALL(_fx_cons_LLR9Ast__id_t(kf_params_0, v_8, false, &v_8), _fx_catch_5); - _fx_LLR9Ast__id_t lst_1 = v_8; + FX_CALL(_fx_cons_LLR9Ast__id_t(params_addition_0, 0, true, &v_9), _fx_catch_5); + FX_CALL(_fx_cons_LLR9Ast__id_t(kf_params_0, v_9, false, &v_9), _fx_catch_5); + _fx_LLR9Ast__id_t lst_1 = v_9; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LLR9Ast__id_t r_0 = 0; + _fx_LLR9Ast__id_t v_22 = 0; _fx_LR9Ast__id_t a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LLR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LLR9Ast__id_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LLR9Ast__id_t(a_0, res_0, true, &v_22), _fx_catch_1); + _fx_free_LLR9Ast__id_t(&res_0); + FX_COPY_PTR(v_22, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LLR9Ast__id_t(&r_0); + if (v_22) { + _fx_free_LLR9Ast__id_t(&v_22); } FX_CHECK_EXN(_fx_catch_5); } - FX_COPY_PTR(__fold_result___1, &v_9); - _fx_LLR9Ast__id_t lst_2 = v_9; + FX_COPY_PTR(res_0, &v_10); + _fx_LLR9Ast__id_t lst_2 = v_10; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LR9Ast__id_t s_0 = 0; - _fx_LR9Ast__id_t v_20 = 0; + _fx_Ta2LR9Ast__id_t v_23 = {0}; + _fx_LR9Ast__id_t v_24 = 0; _fx_LR9Ast__id_t l_0 = lst_2->hd; - FX_COPY_PTR(__fold_result___0, &s_0); - if (l_0 == 0) { - FX_COPY_PTR(s_0, &v_20); + _fx_make_Ta2LR9Ast__id_t(l_0, s_0, &v_23); + if (v_23.t0 == 0) { + FX_COPY_PTR(s_0, &v_24); } - else if (s_0 == 0) { - FX_COPY_PTR(l_0, &v_20); + else if (v_23.t1 == 0) { + FX_COPY_PTR(l_0, &v_24); } else { - _fx_LR9Ast__id_t v_21 = 0; + _fx_LR9Ast__id_t v_25 = 0; _fx_LR9Ast__id_t lstend_1 = 0; _fx_LR9Ast__id_t lst_3 = l_0; for (; lst_3; lst_3 = lst_3->tl) { _fx_R9Ast__id_t* x_2 = &lst_3->hd; _fx_LR9Ast__id_t node_1 = 0; FX_CALL(_fx_cons_LR9Ast__id_t(x_2, 0, false, &node_1), _fx_catch_2); - FX_LIST_APPEND(v_21, lstend_1, node_1); + FX_LIST_APPEND(v_25, lstend_1, node_1); _fx_catch_2: ; FX_CHECK_EXN(_fx_catch_3); } - _fx_M11K_declosureFM5link2LR9Ast__id_t2LR9Ast__id_tLR9Ast__id_t(v_21, s_0, &v_20, 0); + _fx_M11K_declosureFM5link2LR9Ast__id_t2LR9Ast__id_tLR9Ast__id_t(v_25, s_0, &v_24, 0); _fx_catch_3: ; - FX_FREE_LIST_SIMPLE(&v_21); + FX_FREE_LIST_SIMPLE(&v_25); } FX_CHECK_EXN(_fx_catch_4); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(v_20, &__fold_result___0); + FX_FREE_LIST_SIMPLE(&s_0); + FX_COPY_PTR(v_24, &s_0); _fx_catch_4: ; - FX_FREE_LIST_SIMPLE(&v_20); - FX_FREE_LIST_SIMPLE(&s_0); + FX_FREE_LIST_SIMPLE(&v_24); + _fx_free_Ta2LR9Ast__id_t(&v_23); FX_CHECK_EXN(_fx_catch_5); } - FX_COPY_PTR(__fold_result___0, ¶ms_0); + FX_COPY_PTR(s_0, ¶ms_0); FX_CALL( _fx_M11K_declosureFM21walk_kexp_n_declojureN14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t(kf_body_0, callb_0, &body_0, fx_fv), _fx_catch_5); _fx_free_Nt10Hashmap__t2R9Ast__id_tR9Ast__id_t(subst_map_0); FX_COPY_PTR(subst_map_backup_0, subst_map_0); - _fx_R17K_form__kdeffun_t* v_22 = &kf_0->data; - _fx_make_R17K_form__kdeffun_t(&v_22->kf_name, &v_22->kf_cname, params_0, v_22->kf_rt, body_0, &v_22->kf_flags, - &v_22->kf_closure, v_22->kf_scope, &v_22->kf_loc, &v_10); - _fx_R17K_form__kdeffun_t* v_23 = &kf_0->data; - _fx_free_R17K_form__kdeffun_t(v_23); - _fx_copy_R17K_form__kdeffun_t(&v_10, v_23); + _fx_R17K_form__kdeffun_t* v_26 = &kf_0->data; + _fx_make_R17K_form__kdeffun_t(&v_26->kf_name, &v_26->kf_cname, params_0, v_26->kf_rt, body_0, &v_26->kf_flags, + &v_26->kf_closure, v_26->kf_scope, &v_26->kf_loc, &v_11); + _fx_R17K_form__kdeffun_t* v_27 = &kf_0->data; + _fx_free_R17K_form__kdeffun_t(v_27); + _fx_copy_R17K_form__kdeffun_t(&v_11, v_27); FX_CALL(_fx_M6K_formFM7KDefFunN14K_form__kexp_t1rRM9kdeffun_t(kf_0, fx_result), _fx_catch_5); _fx_catch_5: ; - _fx_free_R17K_form__kdeffun_t(&v_10); + _fx_free_R17K_form__kdeffun_t(&v_11); if (body_0) { _fx_free_N14K_form__kexp_t(&body_0); } FX_FREE_LIST_SIMPLE(¶ms_0); - if (v_9) { - _fx_free_LLR9Ast__id_t(&v_9); + if (v_10) { + _fx_free_LLR9Ast__id_t(&v_10); } - if (__fold_result___1) { - _fx_free_LLR9Ast__id_t(&__fold_result___1); + if (res_0) { + _fx_free_LLR9Ast__id_t(&res_0); } - FX_FREE_LIST_SIMPLE(&__fold_result___0); - if (v_8) { - _fx_free_LLR9Ast__id_t(&v_8); + FX_FREE_LIST_SIMPLE(&s_0); + if (v_9) { + _fx_free_LLR9Ast__id_t(&v_9); } FX_FREE_LIST_SIMPLE(&fvars_0); FX_FREE_LIST_SIMPLE(¶ms_addition_0); if (subst_map_backup_0) { _fx_free_Nt10Hashmap__t2R9Ast__id_tR9Ast__id_t(&subst_map_backup_0); } + FX_FREE_ARR(&v_8); FX_FREE_ARR(&v_7); FX_FREE_ARR(&v_6); FX_FREE_ARR(&v_5); - FX_FREE_ARR(&v_4); } else { FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_0, callb_0, fx_result, 0), @@ -5365,158 +5336,158 @@ static int _fx_M11K_declosureFM21walk_kexp_n_declojureN14K_form__kexp_t2N14K_for } } else if (tag_0 == 12) { - _fx_Nt6option1LR9Ast__id_t v_24 = {0}; - _fx_LR9Ast__id_t v_25 = 0; + _fx_Nt6option1LR9Ast__id_t v_28 = {0}; + _fx_LR9Ast__id_t v_29 = 0; _fx_T3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_0 = &e_0->u.KExpCall; _fx_R9Ast__id_t* f_0 = &vcase_0->t0; - _fx_Ta2i v_26; - FX_CALL(_fx_M11K_declosureFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tLR9Ast__id_tR9Ast__id_t(fv_env_0, f_0, &v_26, 0), + _fx_Ta2i v_30; + FX_CALL(_fx_M11K_declosureFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tLR9Ast__id_tR9Ast__id_t(fv_env_0, f_0, &v_30, 0), _fx_catch_17); - int_ j_1 = v_26.t1; + int_ j_1 = v_30.t1; if (j_1 >= 0) { FX_CHKIDX(FX_CHKIDX1(fv_env_0->u.t.t5, 0, j_1), _fx_catch_17); - FX_COPY_PTR(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, fv_env_0->u.t.t5, j_1)->data, &v_25); - _fx_M11K_declosureFM4SomeNt6option1LR9Ast__id_t1LR9Ast__id_t(v_25, &v_24); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t* v_31 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tLR9Ast__id_t, fv_env_0->u.t.t5, j_1); + FX_COPY_PTR(v_31->data, &v_29); + _fx_M11K_declosureFM4SomeNt6option1LR9Ast__id_t1LR9Ast__id_t(v_29, &v_28); } else { - _fx_copy_Nt6option1LR9Ast__id_t(&_fx_g17K_declosure__None, &v_24); + _fx_copy_Nt6option1LR9Ast__id_t(&_fx_g17K_declosure__None, &v_28); } - if (v_24.tag == 2) { - _fx_LN14K_form__atom_t v_27 = 0; + if (v_28.tag == 2) { + _fx_LN14K_form__atom_t v_32 = 0; _fx_LR9Ast__id_t fvars_1 = 0; - _fx_LLN14K_form__atom_t v_28 = 0; - _fx_LN14K_form__atom_t __fold_result___2 = 0; - _fx_LLN14K_form__atom_t __fold_result___3 = 0; - _fx_LLN14K_form__atom_t v_29 = 0; + _fx_LLN14K_form__atom_t v_33 = 0; + _fx_LN14K_form__atom_t s_1 = 0; + _fx_LLN14K_form__atom_t res_1 = 0; + _fx_LLN14K_form__atom_t v_34 = 0; _fx_LN14K_form__atom_t args_0 = 0; _fx_LN14K_form__atom_t args_1 = 0; _fx_LN14K_form__atom_t lstend_2 = 0; - FX_COPY_PTR(v_24.u.Some, &fvars_1); + FX_COPY_PTR(v_28.u.Some, &fvars_1); _fx_LR9Ast__id_t lst_4 = fvars_1; for (; lst_4; lst_4 = lst_4->tl) { - _fx_N14K_form__atom_t res_0 = {0}; + _fx_N14K_form__atom_t res_2 = {0}; _fx_R9Ast__id_t* fv_1 = &lst_4->hd; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(fv_1, &res_0); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(fv_1, &res_2); _fx_LN14K_form__atom_t node_2 = 0; - FX_CALL(_fx_cons_LN14K_form__atom_t(&res_0, 0, false, &node_2), _fx_catch_8); - FX_LIST_APPEND(v_27, lstend_2, node_2); + FX_CALL(_fx_cons_LN14K_form__atom_t(&res_2, 0, false, &node_2), _fx_catch_8); + FX_LIST_APPEND(v_32, lstend_2, node_2); _fx_catch_8: ; - _fx_free_N14K_form__atom_t(&res_0); + _fx_free_N14K_form__atom_t(&res_2); FX_CHECK_EXN(_fx_catch_15); } - FX_CALL(_fx_cons_LLN14K_form__atom_t(v_27, 0, true, &v_28), _fx_catch_15); - FX_CALL(_fx_cons_LLN14K_form__atom_t(vcase_0->t1, v_28, false, &v_28), _fx_catch_15); - _fx_LLN14K_form__atom_t lst_5 = v_28; + FX_CALL(_fx_cons_LLN14K_form__atom_t(v_32, 0, true, &v_33), _fx_catch_15); + FX_CALL(_fx_cons_LLN14K_form__atom_t(vcase_0->t1, v_33, false, &v_33), _fx_catch_15); + _fx_LLN14K_form__atom_t lst_5 = v_33; for (; lst_5; lst_5 = lst_5->tl) { - _fx_LLN14K_form__atom_t r_1 = 0; + _fx_LLN14K_form__atom_t v_35 = 0; _fx_LN14K_form__atom_t a_1 = lst_5->hd; - FX_COPY_PTR(__fold_result___3, &r_1); - FX_CALL(_fx_cons_LLN14K_form__atom_t(a_1, r_1, false, &r_1), _fx_catch_9); - _fx_free_LLN14K_form__atom_t(&__fold_result___3); - FX_COPY_PTR(r_1, &__fold_result___3); + FX_CALL(_fx_cons_LLN14K_form__atom_t(a_1, res_1, true, &v_35), _fx_catch_9); + _fx_free_LLN14K_form__atom_t(&res_1); + FX_COPY_PTR(v_35, &res_1); _fx_catch_9: ; - if (r_1) { - _fx_free_LLN14K_form__atom_t(&r_1); + if (v_35) { + _fx_free_LLN14K_form__atom_t(&v_35); } FX_CHECK_EXN(_fx_catch_15); } - FX_COPY_PTR(__fold_result___3, &v_29); - _fx_LLN14K_form__atom_t lst_6 = v_29; + FX_COPY_PTR(res_1, &v_34); + _fx_LLN14K_form__atom_t lst_6 = v_34; for (; lst_6; lst_6 = lst_6->tl) { - _fx_LN14K_form__atom_t s_1 = 0; - _fx_LN14K_form__atom_t v_30 = 0; + _fx_Ta2LN14K_form__atom_t v_36 = {0}; + _fx_LN14K_form__atom_t v_37 = 0; _fx_LN14K_form__atom_t l_1 = lst_6->hd; - FX_COPY_PTR(__fold_result___2, &s_1); - if (l_1 == 0) { - FX_COPY_PTR(s_1, &v_30); + _fx_make_Ta2LN14K_form__atom_t(l_1, s_1, &v_36); + if (v_36.t0 == 0) { + FX_COPY_PTR(s_1, &v_37); } - else if (s_1 == 0) { - FX_COPY_PTR(l_1, &v_30); + else if (v_36.t1 == 0) { + FX_COPY_PTR(l_1, &v_37); } else { - _fx_LN14K_form__atom_t v_31 = 0; + _fx_LN14K_form__atom_t v_38 = 0; _fx_LN14K_form__atom_t lstend_3 = 0; _fx_LN14K_form__atom_t lst_7 = l_1; for (; lst_7; lst_7 = lst_7->tl) { _fx_N14K_form__atom_t* x_3 = &lst_7->hd; _fx_LN14K_form__atom_t node_3 = 0; FX_CALL(_fx_cons_LN14K_form__atom_t(x_3, 0, false, &node_3), _fx_catch_10); - FX_LIST_APPEND(v_31, lstend_3, node_3); + FX_LIST_APPEND(v_38, lstend_3, node_3); _fx_catch_10: ; FX_CHECK_EXN(_fx_catch_11); } - _fx_M11K_declosureFM5link2LN14K_form__atom_t2LN14K_form__atom_tLN14K_form__atom_t(v_31, s_1, &v_30, 0); + _fx_M11K_declosureFM5link2LN14K_form__atom_t2LN14K_form__atom_tLN14K_form__atom_t(v_38, s_1, &v_37, 0); _fx_catch_11: ; - if (v_31) { - _fx_free_LN14K_form__atom_t(&v_31); + if (v_38) { + _fx_free_LN14K_form__atom_t(&v_38); } } FX_CHECK_EXN(_fx_catch_12); - _fx_free_LN14K_form__atom_t(&__fold_result___2); - FX_COPY_PTR(v_30, &__fold_result___2); + _fx_free_LN14K_form__atom_t(&s_1); + FX_COPY_PTR(v_37, &s_1); _fx_catch_12: ; - if (v_30) { - _fx_free_LN14K_form__atom_t(&v_30); - } - if (s_1) { - _fx_free_LN14K_form__atom_t(&s_1); + if (v_37) { + _fx_free_LN14K_form__atom_t(&v_37); } + _fx_free_Ta2LN14K_form__atom_t(&v_36); FX_CHECK_EXN(_fx_catch_15); } - FX_COPY_PTR(__fold_result___2, &args_0); + FX_COPY_PTR(s_1, &args_0); _fx_LN14K_form__atom_t lstend_4 = 0; _fx_LN14K_form__atom_t lst_8 = args_0; for (; lst_8; lst_8 = lst_8->tl) { - _fx_N14K_form__atom_t res_1 = {0}; + _fx_N14K_form__atom_t res_3 = {0}; _fx_N14K_form__atom_t* a_2 = &lst_8->hd; int tag_1 = a_2->tag; if (tag_1 == 1) { if (a_2->u.AtomId.m == 0) { - _fx_copy_N14K_form__atom_t(a_2, &res_1); goto _fx_endmatch_0; + _fx_copy_N14K_form__atom_t(a_2, &res_3); goto _fx_endmatch_0; } } if (tag_1 == 1) { - _fx_Ta2i v_32; + _fx_Ta2i v_39; FX_CALL( _fx_M11K_declosureFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR9Ast__id_tR9Ast__id_t(*subst_map_0, - &a_2->u.AtomId, &v_32, 0), _fx_catch_13); - int_ j_2 = v_32.t1; - _fx_Nt6option1R9Ast__id_t v_33; + &a_2->u.AtomId, &v_39, 0), _fx_catch_13); + int_ j_2 = v_39.t1; + _fx_Nt6option1R9Ast__id_t v_40; if (j_2 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_2), _fx_catch_13); - _fx_R9Ast__id_t v_34 = - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*subst_map_0)->u.t.t5, j_2)->data; - _fx_M11K_declosureFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_34, &v_33); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_41 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*subst_map_0)->u.t.t5, j_2); + _fx_R9Ast__id_t v_42 = v_41->data; + _fx_M11K_declosureFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_42, &v_40); } else { - v_33 = _fx_g19K_declosure__None1_; + v_40 = _fx_g19K_declosure__None1_; } - if (v_33.tag == 2) { - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&v_33.u.Some, &res_1); + if (v_40.tag == 2) { + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&v_40.u.Some, &res_3); } else { - _fx_copy_N14K_form__atom_t(a_2, &res_1); + _fx_copy_N14K_form__atom_t(a_2, &res_3); } FX_CHECK_EXN(_fx_catch_13); _fx_catch_13: ; goto _fx_endmatch_0; } - _fx_copy_N14K_form__atom_t(a_2, &res_1); + _fx_copy_N14K_form__atom_t(a_2, &res_3); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_14); _fx_LN14K_form__atom_t node_4 = 0; - FX_CALL(_fx_cons_LN14K_form__atom_t(&res_1, 0, false, &node_4), _fx_catch_14); + FX_CALL(_fx_cons_LN14K_form__atom_t(&res_3, 0, false, &node_4), _fx_catch_14); FX_LIST_APPEND(args_1, lstend_4, node_4); _fx_catch_14: ; - _fx_free_N14K_form__atom_t(&res_1); + _fx_free_N14K_form__atom_t(&res_3); FX_CHECK_EXN(_fx_catch_15); } FX_CALL( @@ -5530,21 +5501,21 @@ static int _fx_M11K_declosureFM21walk_kexp_n_declojureN14K_form__kexp_t2N14K_for if (args_0) { _fx_free_LN14K_form__atom_t(&args_0); } - if (v_29) { - _fx_free_LLN14K_form__atom_t(&v_29); + if (v_34) { + _fx_free_LLN14K_form__atom_t(&v_34); } - if (__fold_result___3) { - _fx_free_LLN14K_form__atom_t(&__fold_result___3); + if (res_1) { + _fx_free_LLN14K_form__atom_t(&res_1); } - if (__fold_result___2) { - _fx_free_LN14K_form__atom_t(&__fold_result___2); + if (s_1) { + _fx_free_LN14K_form__atom_t(&s_1); } - if (v_28) { - _fx_free_LLN14K_form__atom_t(&v_28); + if (v_33) { + _fx_free_LLN14K_form__atom_t(&v_33); } FX_FREE_LIST_SIMPLE(&fvars_1); - if (v_27) { - _fx_free_LN14K_form__atom_t(&v_27); + if (v_32) { + _fx_free_LN14K_form__atom_t(&v_32); } } else { @@ -5556,8 +5527,8 @@ static int _fx_M11K_declosureFM21walk_kexp_n_declojureN14K_form__kexp_t2N14K_for FX_CHECK_EXN(_fx_catch_17); _fx_catch_17: ; - FX_FREE_LIST_SIMPLE(&v_25); - _fx_free_Nt6option1LR9Ast__id_t(&v_24); + FX_FREE_LIST_SIMPLE(&v_29); + _fx_free_Nt6option1LR9Ast__id_t(&v_28); } else { FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_0, callb_0, fx_result, 0), diff --git a/compiler/bootstrap/K_fast_idx.c b/compiler/bootstrap/K_fast_idx.c index 0dc4dc36..e8d0fb8e 100644 --- a/compiler/bootstrap/K_fast_idx.c +++ b/compiler/bootstrap/K_fast_idx.c @@ -1017,6 +1017,18 @@ typedef struct _fx_Nt6option1R9Ast__id_t { } u; } _fx_Nt6option1R9Ast__id_t; +typedef struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t { + int_ rc; + struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t* tl; + struct _fx_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t hd; +} _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t, *_fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t; + +typedef struct _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t { + int_ rc; + struct _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t* tl; + struct _fx_T2T2R9Ast__id_tiR9Ast__id_t hd; +} _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t, *_fx_LT2T2R9Ast__id_tiR9Ast__id_t; + typedef struct _fx_R24K_fast_idx__arr_access_t { struct _fx_R9Ast__id_t aa_arr; int_ aa_dim; @@ -1130,12 +1142,6 @@ typedef struct _fx_rLR24K_fast_idx__arr_access_t_data_t { struct _fx_LR24K_fast_idx__arr_access_t_data_t* data; } _fx_rLR24K_fast_idx__arr_access_t_data_t, *_fx_rLR24K_fast_idx__arr_access_t; -typedef struct _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t { - int_ rc; - struct _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t* tl; - struct _fx_T2T2R9Ast__id_tiR9Ast__id_t hd; -} _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t, *_fx_LT2T2R9Ast__id_tiR9Ast__id_t; - typedef struct _fx_rLT2T2R9Ast__id_tiR9Ast__id_t_data_t { int_ rc; struct _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t* data; @@ -1146,11 +1152,6 @@ typedef struct _fx_rRt6Map__t2R9Ast__id_tT3N14K_form__kexp_tBN23K_fast_idx__idx_ struct _fx_Rt6Map__t2R9Ast__id_tT3N14K_form__kexp_tBN23K_fast_idx__idx_class_t data; } _fx_rRt6Map__t2R9Ast__id_tT3N14K_form__kexp_tBN23K_fast_idx__idx_class_t_data_t, *_fx_rRt6Map__t2R9Ast__id_tT3N14K_form__kexp_tBN23K_fast_idx__idx_class_t; -typedef struct _fx_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t { - struct _fx_R9Ast__id_t t0; - struct _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t t1; -} _fx_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t; - typedef struct _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t { struct _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t_data_t* t0; struct _fx_N14K_form__kexp_t_data_t* t1; @@ -1179,29 +1180,11 @@ typedef struct _fx_T2N14K_form__kexp_tLN14K_form__kexp_t { struct _fx_LN14K_form__kexp_t_data_t* t1; } _fx_T2N14K_form__kexp_tLN14K_form__kexp_t; -typedef struct _fx_Ta2B { - bool t0; - bool t1; -} _fx_Ta2B; - -typedef struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t { - int_ rc; - struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t* tl; - struct _fx_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t hd; -} _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t, *_fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t; - typedef struct _fx_rLT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t { int_ rc; struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t* data; } _fx_rLT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t, *_fx_rLT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t; -typedef struct _fx_T4BBBLN14K_form__atom_t { - bool t0; - bool t1; - bool t2; - struct _fx_LN14K_form__atom_t_data_t* t3; -} _fx_T4BBBLN14K_form__atom_t; - typedef struct _fx_Ta2LN14K_form__kexp_t { struct _fx_LN14K_form__kexp_t_data_t* t0; struct _fx_LN14K_form__kexp_t_data_t* t1; @@ -3605,6 +3588,32 @@ static void _fx_copy_Nt6option1N22K_fast_idx__loop_idx_t( } } +static void _fx_free_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t( + struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t** dst) +{ + FX_FREE_LIST_IMPL(_fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t, + _fx_free_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t); +} + +static int _fx_cons_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t( + struct _fx_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t* hd, + struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t* tl, + bool addref_tl, + struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t** fx_result) +{ + FX_MAKE_LIST_IMPL(_fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t, + _fx_copy_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t); +} + +static int _fx_cons_LT2T2R9Ast__id_tiR9Ast__id_t( + struct _fx_T2T2R9Ast__id_tiR9Ast__id_t* hd, + struct _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t* tl, + bool addref_tl, + struct _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t** fx_result) +{ + FX_MAKE_LIST_IMPL(_fx_LT2T2R9Ast__id_tiR9Ast__id_t, FX_COPY_SIMPLE_BY_PTR); +} + static void _fx_free_R24K_fast_idx__arr_access_t(struct _fx_R24K_fast_idx__arr_access_t* dst) { _fx_free_N23K_fast_idx__idx_class_t(&dst->aa_class); @@ -3927,15 +3936,6 @@ static int _fx_make_rLR24K_fast_idx__arr_access_t( FX_MAKE_REF_IMPL(_fx_rLR24K_fast_idx__arr_access_t, FX_COPY_PTR); } -static int _fx_cons_LT2T2R9Ast__id_tiR9Ast__id_t( - struct _fx_T2T2R9Ast__id_tiR9Ast__id_t* hd, - struct _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t* tl, - bool addref_tl, - struct _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t** fx_result) -{ - FX_MAKE_LIST_IMPL(_fx_LT2T2R9Ast__id_tiR9Ast__id_t, FX_COPY_SIMPLE_BY_PTR); -} - static void _fx_free_rLT2T2R9Ast__id_tiR9Ast__id_t(struct _fx_rLT2T2R9Ast__id_tiR9Ast__id_t_data_t** dst) { FX_FREE_REF_IMPL(_fx_rLT2T2R9Ast__id_tiR9Ast__id_t, fx_free_list_simple); @@ -3963,29 +3963,6 @@ static int _fx_make_rRt6Map__t2R9Ast__id_tT3N14K_form__kexp_tBN23K_fast_idx__idx _fx_copy_Rt6Map__t2R9Ast__id_tT3N14K_form__kexp_tBN23K_fast_idx__idx_class_t); } -static void _fx_free_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t( - struct _fx_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t* dst) -{ - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&dst->t1); -} - -static void _fx_copy_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t( - struct _fx_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t* src, - struct _fx_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t* dst) -{ - dst->t0 = src->t0; - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&src->t1, &dst->t1); -} - -static void _fx_make_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t( - struct _fx_R9Ast__id_t* t0, - struct _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t* t1, - struct _fx_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t* fx_result) -{ - fx_result->t0 = *t0; - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(t1, &fx_result->t1); -} - static void _fx_free_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t( struct _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t* dst) { @@ -4114,23 +4091,6 @@ static void _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t( - struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t** dst) -{ - FX_FREE_LIST_IMPL(_fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t, - _fx_free_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t); -} - -static int _fx_cons_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t( - struct _fx_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t* hd, - struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t* tl, - bool addref_tl, - struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t** fx_result) -{ - FX_MAKE_LIST_IMPL(_fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t, - _fx_copy_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t); -} - static void _fx_free_rLT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t( struct _fx_rLT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t** dst) { @@ -4145,32 +4105,6 @@ static int _fx_make_rLT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t( FX_MAKE_REF_IMPL(_fx_rLT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t, FX_COPY_PTR); } -static void _fx_free_T4BBBLN14K_form__atom_t(struct _fx_T4BBBLN14K_form__atom_t* dst) -{ - _fx_free_LN14K_form__atom_t(&dst->t3); -} - -static void _fx_copy_T4BBBLN14K_form__atom_t(struct _fx_T4BBBLN14K_form__atom_t* src, struct _fx_T4BBBLN14K_form__atom_t* dst) -{ - dst->t0 = src->t0; - dst->t1 = src->t1; - dst->t2 = src->t2; - FX_COPY_PTR(src->t3, &dst->t3); -} - -static void _fx_make_T4BBBLN14K_form__atom_t( - bool t0, - bool t1, - bool t2, - struct _fx_LN14K_form__atom_t_data_t* t3, - struct _fx_T4BBBLN14K_form__atom_t* fx_result) -{ - fx_result->t0 = t0; - fx_result->t1 = t1; - fx_result->t2 = t2; - FX_COPY_PTR(t3, &fx_result->t3); -} - static void _fx_free_Ta2LN14K_form__kexp_t(struct _fx_Ta2LN14K_form__kexp_t* dst) { _fx_free_LN14K_form__kexp_t(&dst->t0); @@ -5089,32 +5023,18 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM6__eq__B2T2R9Ast__id_tN14K_form__ktyp_tT2R9As _fx_N14K_form__ktyp_t bj_0 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); - bool __fold_result___0 = true; + bool f_0 = true; _fx_R9Ast__id_t aj_1 = a_0->t0; _fx_R9Ast__id_t bj_1 = b_0->t0; bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&aj_1, &bj_1, &res_0, 0), _fx_cleanup); - bool t_0; - if (res_0) { - t_0 = __fold_result___0; - } - else { - t_0 = false; - } - __fold_result___0 = t_0; + f_0 = (bool)(f_0 & res_0); FX_COPY_PTR(a_0->t1, &aj_0); FX_COPY_PTR(b_0->t1, &bj_0); bool v_0; FX_CALL(_fx_M10K_fast_idxFM15__eq_variants__B2N14K_form__ktyp_tN14K_form__ktyp_t(aj_0, bj_0, &v_0, 0), _fx_cleanup); - bool t_1; - if (v_0) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - *fx_result = __fold_result___0; + f_0 = (bool)(f_0 & v_0); + *fx_result = f_0; _fx_cleanup: ; if (aj_0) { @@ -5135,50 +5055,15 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM6__eq__B2RM12arr_access_tRM12arr_access_t( _fx_N23K_fast_idx__idx_class_t aj_0 = {0}; _fx_N23K_fast_idx__idx_class_t bj_0 = {0}; int fx_status = 0; - bool __fold_result___0 = true; + bool f_0 = true; _fx_R9Ast__id_t aj_1 = a_0->aa_arr; _fx_R9Ast__id_t bj_1 = b_0->aa_arr; - bool __fold_result___1 = true; - bool t_0; - if (aj_1.m == bj_1.m) { - t_0 = __fold_result___1; - } - else { - t_0 = false; - } - __fold_result___1 = t_0; - bool t_1; - if (aj_1.i == bj_1.i) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (aj_1.j == bj_1.j) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (__fold_result___1) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - bool t_4; - if (a_0->aa_dim == b_0->aa_dim) { - t_4 = __fold_result___0; - } - else { - t_4 = false; - } - __fold_result___0 = t_4; + bool f_1 = true; + f_1 = (bool)(f_1 & (aj_1.m == bj_1.m)); + f_1 = (bool)(f_1 & (aj_1.i == bj_1.i)); + f_1 = (bool)(f_1 & (aj_1.j == bj_1.j)); + f_0 = (bool)(f_0 & f_1); + f_0 = (bool)(f_0 & (a_0->aa_dim == b_0->aa_dim)); _fx_copy_N23K_fast_idx__idx_class_t(&a_0->aa_class, &aj_0); _fx_copy_N23K_fast_idx__idx_class_t(&b_0->aa_class, &bj_0); bool v_0; @@ -5192,31 +5077,10 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM6__eq__B2RM12arr_access_tRM12arr_access_t( _fx_N14K_form__atom_t* b2_0 = &vcase_0->t2; _fx_N14K_form__atom_t* b1_0 = &vcase_0->t1; _fx_R9Ast__id_t* b0_0 = &vcase_0->t0; - bool __fold_result___2 = true; - bool t_5; - if (a0_0->m == b0_0->m) { - t_5 = __fold_result___2; - } - else { - t_5 = false; - } - __fold_result___2 = t_5; - bool t_6; - if (a0_0->i == b0_0->i) { - t_6 = __fold_result___2; - } - else { - t_6 = false; - } - __fold_result___2 = t_6; - bool t_7; - if (a0_0->j == b0_0->j) { - t_7 = __fold_result___2; - } - else { - t_7 = false; - } - __fold_result___2 = t_7; + bool f_2 = true; + f_2 = (bool)(f_2 & (a0_0->m == b0_0->m)); + f_2 = (bool)(f_2 & (a0_0->i == b0_0->i)); + f_2 = (bool)(f_2 & (a0_0->j == b0_0->j)); bool v_1; if (b1_0->tag == 1) { if (a1_0->tag == 1) { @@ -5263,7 +5127,7 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM6__eq__B2RM12arr_access_tRM12arr_access_t( _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_4); - v_0 = (bool)((bool)(__fold_result___2 & v_1) & v_2); + v_0 = (bool)((bool)(f_2 & v_1) & v_2); _fx_catch_4: ; goto _fx_endmatch_2; @@ -5273,15 +5137,8 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM6__eq__B2RM12arr_access_tRM12arr_access_t( _fx_endmatch_2: ; FX_CHECK_EXN(_fx_cleanup); - bool t_8; - if (v_0) { - t_8 = __fold_result___0; - } - else { - t_8 = false; - } - __fold_result___0 = t_8; - *fx_result = __fold_result___0; + f_0 = (bool)(f_0 & v_0); + *fx_result = f_0; _fx_cleanup: ; _fx_free_N23K_fast_idx__idx_class_t(&aj_0); @@ -5664,10 +5521,113 @@ return a == b; } -FX_EXTERN_C int _fx_M10K_fast_idxFM3inti1l(int64_t x_0, int_* fx_result, void* fx_fv) +FX_EXTERN_C int + _fx_M10K_fast_idxFM9assoc_optNt6option1N14K_form__atom_t2LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_tT2R9Ast__id_tLN14K_form__atom_t( + struct _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t_data_t* l_0, + struct _fx_T2R9Ast__id_tLN14K_form__atom_t* x_0, + struct _fx_Nt6option1N14K_form__atom_t* fx_result, + void* fx_fv) { + _fx_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t __fold_result___0 = {0}; + _fx_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t __fold_result___1 = {0}; int fx_status = 0; - *fx_result = (int_)x_0; + _fx_copy_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&_fx_g16K_fast_idx__None, &__fold_result___0); + _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t lst_0 = l_0; + for (; lst_0; lst_0 = lst_0->tl) { + _fx_T2R9Ast__id_tLN14K_form__atom_t a_0 = {0}; + _fx_LN14K_form__atom_t aj_0 = 0; + _fx_LN14K_form__atom_t bj_0 = 0; + _fx_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t v_0 = {0}; + _fx_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t* __pat___0 = &lst_0->hd; + _fx_copy_T2R9Ast__id_tLN14K_form__atom_t(&__pat___0->t0, &a_0); + bool f_0 = true; + _fx_R9Ast__id_t aj_1 = a_0.t0; + _fx_R9Ast__id_t bj_1 = x_0->t0; + bool f_1 = true; + f_1 = (bool)(f_1 & (aj_1.m == bj_1.m)); + f_1 = (bool)(f_1 & (aj_1.i == bj_1.i)); + f_1 = (bool)(f_1 & (aj_1.j == bj_1.j)); + f_0 = (bool)(f_0 & f_1); + FX_COPY_PTR(a_0.t1, &aj_0); + FX_COPY_PTR(x_0->t1, &bj_0); + bool v_1; + FX_CALL(_fx_M10K_fast_idxFM6__eq__B2LN14K_form__atom_tLN14K_form__atom_t(aj_0, bj_0, &v_1, 0), _fx_catch_0); + f_0 = (bool)(f_0 & v_1); + if (f_0) { + _fx_M10K_fast_idxFM4SomeNt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t( + __pat___0, &v_0); + _fx_free_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&__fold_result___0); + _fx_copy_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_0, &__fold_result___0); + FX_BREAK(_fx_catch_0); + } + + _fx_catch_0: ; + _fx_free_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_0); + if (bj_0) { + _fx_free_LN14K_form__atom_t(&bj_0); + } + if (aj_0) { + _fx_free_LN14K_form__atom_t(&aj_0); + } + _fx_free_T2R9Ast__id_tLN14K_form__atom_t(&a_0); + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_cleanup); + } + _fx_copy_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&__fold_result___0, &__fold_result___1); + if (__fold_result___1.tag == 2) { + _fx_M10K_fast_idxFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&__fold_result___1.u.Some.t1, fx_result); + } + else { + _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g18K_fast_idx__None7_, fx_result); + } + +_fx_cleanup: ; + _fx_free_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&__fold_result___0); + _fx_free_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&__fold_result___1); + return fx_status; +} + +FX_EXTERN_C int _fx_M10K_fast_idxFM9assoc_optNt6option1R9Ast__id_t2LT2T2R9Ast__id_tiR9Ast__id_tT2R9Ast__id_ti( + struct _fx_LT2T2R9Ast__id_tiR9Ast__id_t_data_t* l_0, + struct _fx_T2R9Ast__id_ti* x_0, + struct _fx_Nt6option1R9Ast__id_t* fx_result, + void* fx_fv) +{ + int fx_status = 0; + _fx_Nt6option1T2T2R9Ast__id_tiR9Ast__id_t __fold_result___0 = _fx_g18K_fast_idx__None3_; + _fx_LT2T2R9Ast__id_tiR9Ast__id_t lst_0 = l_0; + for (; lst_0; lst_0 = lst_0->tl) { + _fx_T2T2R9Ast__id_tiR9Ast__id_t* __pat___0 = &lst_0->hd; + _fx_T2R9Ast__id_ti a_0 = __pat___0->t0; + bool f_0 = true; + _fx_R9Ast__id_t aj_0 = a_0.t0; + _fx_R9Ast__id_t bj_0 = x_0->t0; + bool f_1 = true; + f_1 = (bool)(f_1 & (aj_0.m == bj_0.m)); + f_1 = (bool)(f_1 & (aj_0.i == bj_0.i)); + f_1 = (bool)(f_1 & (aj_0.j == bj_0.j)); + f_0 = (bool)(f_0 & f_1); + f_0 = (bool)(f_0 & (a_0.t1 == x_0->t1)); + if (f_0) { + _fx_Nt6option1T2T2R9Ast__id_tiR9Ast__id_t v_0; + _fx_M10K_fast_idxFM4SomeNt6option1T2T2R9Ast__id_tiR9Ast__id_t1T2T2R9Ast__id_tiR9Ast__id_t(__pat___0, &v_0); + __fold_result___0 = v_0; + FX_BREAK(_fx_catch_0); + } + + _fx_catch_0: ; + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_cleanup); + } + _fx_Nt6option1T2T2R9Ast__id_tiR9Ast__id_t __fold_result___1 = __fold_result___0; + if (__fold_result___1.tag == 2) { + _fx_M10K_fast_idxFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&__fold_result___1.u.Some.t1, fx_result); + } + else { + *fx_result = _fx_g18K_fast_idx__None8_; + } + +_fx_cleanup: ; return fx_status; } @@ -5776,9 +5736,12 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9 int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -5827,25 +5790,26 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM4growv2Nt10Hashmap__t2R9Ast__id_tii( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_2 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti v_2 = *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, ht_table_0, j_0); - int_ v_3; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti v_3 = *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, ht_table_0, j_0); + int_ v_4; FX_CALL( _fx_M10K_fast_idxFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tiRt20Hashmap__hashentry_t2R9Ast__id_ti( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -5866,14 +5830,14 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i fx_arr_t v_1 = {0}; fx_exn_t v_2 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -5899,32 +5863,11 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5940,14 +5883,14 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -5959,26 +5902,29 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_)(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_8 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5986,11 +5932,14 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti v_6 = { hv_0, *k_0, self_0->u.t.t0.data }; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti v_9 = { hv_0, *k_0, self_0->u.t.t0.data }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, self_0->u.t.t5, found_0) = v_6; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -6033,32 +5982,11 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9As bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -6966,17 +6894,17 @@ FX_EXTERN_C int _fx_M10K_fast_idxFM17is_loop_invariantB3N14K_form__atom_tNt10Has int fx_status = 0; if (a_0->tag == 1) { _fx_R9Ast__id_t* i_0 = &a_0->u.AtomId; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( _fx_M10K_fast_idxFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(inloop_vals_0, i_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_catch_0); + h_0 & 9223372036854775807ULL, &v_0, 0), _fx_catch_0); bool v_1; if (v_0.t1 >= 0) { v_1 = true; @@ -7332,7 +7260,9 @@ static int _fx_M10K_fast_idxFM10have_jumpsB2N14K_form__kexp_tNt10Hashmap__t2R9As _fx_R22K_form__k_fold_callb_t have_jumps_callb_0 = {0}; int fx_status = 0; FX_CALL(_fx_make_rB(false, &have_throw_ref_0), _fx_cleanup); + bool* have_throw_0 = &have_throw_ref_0->data; FX_CALL(_fx_make_rB(false, &have_jumps_ref_0), _fx_cleanup); + bool* have_jumps_0 = &have_jumps_ref_0->data; _fx_M10K_fast_idxFM7make_fpFPv2N14K_form__kexp_tR22K_form__k_fold_callb_t3rBrBNt10Hashmap__t2R9Ast__id_ti(have_jumps_ref_0, have_throw_ref_0, throw_funcs_0, &have_jumps_kexp__0); _fx_FPv3N14K_form__ktyp_tR10Ast__loc_tR22K_form__k_fold_callb_t have_jumps_ktyp__fp_0 = @@ -7346,11 +7276,11 @@ static int _fx_M10K_fast_idxFM10have_jumpsB2N14K_form__kexp_tNt10Hashmap__t2R9As &have_jumps_kexp__0, &v_1), _fx_cleanup); _fx_make_R22K_form__k_fold_callb_t(v_0, v_1, _fx_g18K_fast_idx__None5_, &have_jumps_callb_0); FX_CALL(have_jumps_kexp__0.fp(e_0, &have_jumps_callb_0, have_jumps_kexp__0.fcv), _fx_cleanup); - if (have_jumps_ref_0->data) { + if (*have_jumps_0) { *fx_result = true; } else { - *fx_result = have_throw_ref_0->data; + *fx_result = *have_throw_0; } _fx_cleanup: ; @@ -7448,19 +7378,25 @@ static int _fx_M10K_fast_idxFM16have_jumps_kexp_v2N14K_form__kexp_tR22K_form__k_ _fx_M10K_fast_idxFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tiR9Ast__id_t(throw_funcs_0, fname_0, &idx_0, 0), _fx_catch_4); FX_CHKIDX(FX_CHKIDX1(throw_funcs_0->u.t.t5, 0, idx_0), _fx_catch_4); - int_ throw_status_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, throw_funcs_0->u.t.t5, idx_0)->data; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, throw_funcs_0->u.t.t5, idx_0); + int_ throw_status_0 = v_3->data; if (throw_status_0 > 0) { *have_throw_0 = true; } else if (throw_status_0 < 0) { FX_CHKIDX(FX_CHKIDX1(throw_funcs_0->u.t.t5, 0, idx_0), _fx_catch_4); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, throw_funcs_0->u.t.t5, idx_0)->data = 1; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_4 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, throw_funcs_0->u.t.t5, idx_0); + v_4->data = 1; bool have_jumps_saved_4 = *have_jumps_0; FX_CALL( _fx_M10K_fast_idxFM16have_jumps_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t(v_2.kf_body, callb_0, fx_fv), _fx_catch_4); FX_CHKIDX(FX_CHKIDX1(throw_funcs_0->u.t.t5, 0, idx_0), _fx_catch_4); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, throw_funcs_0->u.t.t5, idx_0)->data = (int_)(*have_throw_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti* v_5 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_ti, throw_funcs_0->u.t.t5, idx_0); + v_5->data = (int_)(*have_throw_0); *have_jumps_0 = have_jumps_saved_4; } @@ -7545,8 +7481,8 @@ static int _fx_R22K_form__k_fold_callb_t collect_callb_0 = {0}; _fx_FPi2R9Ast__id_tR9Ast__id_t cmp_id_1 = {0}; _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t v_3 = {0}; - _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t __fold_result___0 = {0}; _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t loop_idx_0 = {0}; + _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t loop_idx_1 = {0}; _fx_FPN14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t optimize_idx_kexp_0 = {0}; _fx_FPN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tR17K_form__k_callb_t optimize_idx_ktyp_0 = {0}; _fx_Nt6option1FPN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tR17K_form__k_callb_t v_4 = 0; @@ -7565,7 +7501,7 @@ static int _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t for_clauses_3 = 0; _fx_N14K_form__kexp_t body_3 = 0; _fx_LN14K_form__kexp_t pre_for_code_0 = 0; - _fx_LN14K_form__kexp_t __fold_result___1 = 0; + _fx_LN14K_form__kexp_t pre_for_code_1 = 0; _fx_LR24K_fast_idx__arr_access_t all_accesses_0 = 0; int fx_status = 0; _fx_R10Ast__loc_t for_loc_0; @@ -7573,9 +7509,10 @@ static int FX_CALL(_fx_make_rLR24K_fast_idx__arr_access_t(0, &all_accesses_ref_0), _fx_cleanup); _fx_LR24K_fast_idx__arr_access_t* all_accesses_1 = &all_accesses_ref_0->data; FX_CALL(_fx_make_rLN14K_form__kexp_t(0, &pre_for_code_ref_0), _fx_cleanup); - _fx_LN14K_form__kexp_t* pre_for_code_1 = &pre_for_code_ref_0->data; + _fx_LN14K_form__kexp_t* pre_for_code_2 = &pre_for_code_ref_0->data; FX_CALL(_fx_make_rLT2T2R9Ast__id_tiR9Ast__id_t(0, &arrsz_env_ref_0), _fx_cleanup); FX_CALL(_fx_make_rB(false, &update_affine_defs_ref_0), _fx_cleanup); + bool* update_affine_defs_0 = &update_affine_defs_ref_0->data; FX_CALL(_fx_cons_LN14K_form__kexp_t(whole_e_0, 0, true, &v_0), _fx_cleanup); FX_CALL(_fx_M6K_formFM8declaredNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_0, 256, &inloop_vals_0, 0), _fx_cleanup); _fx_FPi2R9Ast__id_tR9Ast__id_t cmp_id_fp_0 = { _fx_M3AstFM6cmp_idi2RM4id_tRM4id_t, 0 }; @@ -7604,36 +7541,23 @@ static int FX_CALL( _fx_M10K_fast_idxFM5emptyRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t1FPi2R9Ast__id_tR9Ast__id_t(&cmp_id_1, &v_3, 0), _fx_cleanup); - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_3, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_3, &loop_idx_0); _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t lst_0 = for_clauses_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_LT2R9Ast__id_tN13K_form__dom_t idl_0 = 0; _fx_LR9Ast__id_t idxl_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t loop_idx_1 = {0}; - _fx_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t __fold_result___2 = {0}; - _fx_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t v_9 = {0}; - _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t loop_idx_2 = {0}; - _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t loop_idx_3 = {0}; - _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t __fold_result___3 = {0}; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* __pat___0 = &lst_0->hd; FX_COPY_PTR(__pat___0->t1, &idl_0); FX_COPY_PTR(__pat___0->t2, &idxl_0); - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___0, &loop_idx_1); - _fx_make_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&_fx_g9Ast__noid, &loop_idx_1, &__fold_result___2); + _fx_R9Ast__id_t arr_id_0 = _fx_g9Ast__noid; _fx_LT2R9Ast__id_tN13K_form__dom_t lst_1 = idl_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N13K_form__dom_t dom_0 = {0}; - _fx_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t v_10 = {0}; - _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t loop_idx_4 = {0}; - _fx_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t v_11 = {0}; - _fx_N14K_form__ktyp_t v_12 = 0; - _fx_N14K_form__atom_t v_13 = {0}; + _fx_N14K_form__ktyp_t v_9 = 0; + _fx_N14K_form__atom_t v_10 = {0}; _fx_T2R9Ast__id_tN13K_form__dom_t* __pat___1 = &lst_1->hd; _fx_R9Ast__id_t i_0 = __pat___1->t0; _fx_copy_N13K_form__dom_t(&__pat___1->t1, &dom_0); - _fx_copy_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___2, &v_10); - _fx_R9Ast__id_t arr_id_0 = v_10.t0; - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_10.t1, &loop_idx_4); int tag_0 = dom_0.tag; if (tag_0 == 3) { _fx_Ta3N14K_form__atom_t* vcase_0 = &dom_0.u.DomainRange; @@ -7671,29 +7595,30 @@ static int t_2 = false; } if (t_2) { - _fx_N22K_fast_idx__loop_idx_t v_14 = {0}; - _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t v_15 = {0}; + _fx_N22K_fast_idx__loop_idx_t v_11 = {0}; + _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t v_12 = {0}; _fx_M10K_fast_idxFM13LoopOverRangeN22K_fast_idx__loop_idx_t3N14K_form__atom_tN14K_form__atom_tN14K_form__atom_t( - a_0, b_0, delta_0, &v_14); + a_0, b_0, delta_0, &v_11); FX_CALL( _fx_M10K_fast_idxFM3addRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t3Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_tR9Ast__id_tN22K_fast_idx__loop_idx_t( - &loop_idx_4, &i_0, &v_14, &v_15, 0), _fx_catch_0); - _fx_make_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&arr_id_0, &v_15, &v_11); + &loop_idx_0, &i_0, &v_11, &v_12, 0), _fx_catch_0); + _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_0); + _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_12, &loop_idx_0); _fx_catch_0: ; - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_15); - _fx_free_N22K_fast_idx__loop_idx_t(&v_14); + _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_12); + _fx_free_N22K_fast_idx__loop_idx_t(&v_11); goto _fx_endmatch_0; } } if (tag_0 == 1) { - _fx_N14K_form__atom_t* v_16 = &dom_0.u.DomainElem; - if (v_16->tag == 1) { - _fx_R9Ast__id_t* i_1 = &v_16->u.AtomId; - FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(i_1, &for_loc_0, &v_12, 0), + _fx_N14K_form__atom_t* v_13 = &dom_0.u.DomainElem; + if (v_13->tag == 1) { + _fx_R9Ast__id_t* i_1 = &v_13->u.AtomId; + FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(i_1, &for_loc_0, &v_9, 0), _fx_catch_1); bool res_1; - if (FX_REC_VARIANT_TAG(v_12) == 17) { + if (FX_REC_VARIANT_TAG(v_9) == 17) { res_1 = true; } else { @@ -7702,43 +7627,33 @@ static int FX_CHECK_EXN(_fx_catch_1); bool t_3; if (res_1) { - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(i_1, &v_13); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(i_1, &v_10); FX_CALL( - _fx_M10K_fast_idxFM17is_loop_invariantB3N14K_form__atom_tNt10Hashset__t1R9Ast__id_tR10Ast__loc_t(&v_13, + _fx_M10K_fast_idxFM17is_loop_invariantB3N14K_form__atom_tNt10Hashset__t1R9Ast__id_tR10Ast__loc_t(&v_10, inloop_vals_0, &for_loc_0, &t_3, 0), _fx_catch_1); } else { t_3 = false; } if (t_3) { - _fx_make_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(i_1, &loop_idx_4, &v_11); - goto _fx_endmatch_0; + arr_id_0 = *i_1; goto _fx_endmatch_0; } } } - _fx_make_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&arr_id_0, &loop_idx_4, &v_11); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_1); - _fx_free_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___2); - _fx_copy_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_11, &__fold_result___2); _fx_catch_1: ; - _fx_free_N14K_form__atom_t(&v_13); - if (v_12) { - _fx_free_N14K_form__ktyp_t(&v_12); + _fx_free_N14K_form__atom_t(&v_10); + if (v_9) { + _fx_free_N14K_form__ktyp_t(&v_9); } - _fx_free_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_11); - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_4); - _fx_free_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_10); _fx_free_N13K_form__dom_t(&dom_0); FX_CHECK_EXN(_fx_catch_3); } - _fx_copy_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___2, &v_9); - _fx_R9Ast__id_t arr_id_1 = v_9.t0; - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_9.t1, &loop_idx_2); bool res_2; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&arr_id_1, &_fx_g9Ast__noid, &res_2, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&arr_id_0, &_fx_g9Ast__noid, &res_2, 0), _fx_catch_3); bool t_4; if (res_2) { t_4 = true; @@ -7746,53 +7661,37 @@ static int else { t_4 = idxl_0 == 0; } - if (t_4) { - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_2, &loop_idx_3); - } - else { - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_2, &__fold_result___3); + if (!t_4) { int_ i_2 = 0; _fx_LR9Ast__id_t lst_2 = idxl_0; for (; lst_2; lst_2 = lst_2->tl, i_2 += 1) { - _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t loop_idx_5 = {0}; - _fx_N22K_fast_idx__loop_idx_t v_17 = {0}; - _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t v_18 = {0}; + _fx_N22K_fast_idx__loop_idx_t v_14 = {0}; + _fx_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t v_15 = {0}; _fx_R9Ast__id_t* idx_0 = &lst_2->hd; - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___3, &loop_idx_5); - _fx_M10K_fast_idxFM11LoopOverArrN22K_fast_idx__loop_idx_t2R9Ast__id_ti(&arr_id_1, i_2, &v_17); + _fx_M10K_fast_idxFM11LoopOverArrN22K_fast_idx__loop_idx_t2R9Ast__id_ti(&arr_id_0, i_2, &v_14); FX_CALL( _fx_M10K_fast_idxFM3addRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t3Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_tR9Ast__id_tN22K_fast_idx__loop_idx_t( - &loop_idx_5, idx_0, &v_17, &v_18, 0), _fx_catch_2); - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___3); - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_18, &__fold_result___3); + &loop_idx_0, idx_0, &v_14, &v_15, 0), _fx_catch_2); + _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_0); + _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_15, &loop_idx_0); _fx_catch_2: ; - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_18); - _fx_free_N22K_fast_idx__loop_idx_t(&v_17); - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_5); + _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_15); + _fx_free_N22K_fast_idx__loop_idx_t(&v_14); FX_CHECK_EXN(_fx_catch_3); } - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___3, &loop_idx_3); } - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___0); - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_3, &__fold_result___0); _fx_catch_3: ; - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___3); - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_3); - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_2); - _fx_free_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_9); - _fx_free_T2R9Ast__id_tRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___2); - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_1); FX_FREE_LIST_SIMPLE(&idxl_0); if (idl_0) { _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&idl_0); } FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___0, &loop_idx_0); + _fx_copy_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_0, &loop_idx_1); _fx_M10K_fast_idxFM7make_fpFPN14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t9rRt6Map__t2R9Ast__id_tT3N14K_form__kexp_tBN23K_fast_idx__idx_class_trLRM12arr_access_trLT2T2R9Ast__id_tiR9Ast__id_tR10Ast__loc_tNt10Hashset__t1R9Ast__id_tiRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_trLN14K_form__kexp_trB( - affine_defs_ref_0, all_accesses_ref_0, arrsz_env_ref_0, &for_loc_0, inloop_vals_0, km_idx_0, &loop_idx_0, + affine_defs_ref_0, all_accesses_ref_0, arrsz_env_ref_0, &for_loc_0, inloop_vals_0, km_idx_0, &loop_idx_1, pre_for_code_ref_0, update_affine_defs_ref_0, &optimize_idx_kexp_0); _fx_FPN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tR17K_form__k_callb_t optimize_idx_ktyp_fp_0 = { _fx_M10K_fast_idxFM17optimize_idx_ktypN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tR17K_form__k_callb_t, 0 }; @@ -7849,7 +7748,7 @@ static int FX_CHECK_EXN(_fx_cleanup); } FX_CALL(optimize_idx_kexp_0.fp(body_0, &optimize_idx_callb_0, &body_1, optimize_idx_kexp_0.fcv), _fx_cleanup); - if (!update_affine_defs_ref_0->data) { + if (!*update_affine_defs_0) { _fx_make_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(for_clauses_1, body_1, &v_8); } else { @@ -7892,126 +7791,126 @@ static int FX_COPY_PTR(v_8.t0, &for_clauses_3); FX_COPY_PTR(v_8.t1, &body_3); if (*all_accesses_1 == 0) { - FX_COPY_PTR(*pre_for_code_1, &pre_for_code_0); + FX_COPY_PTR(*pre_for_code_2, &pre_for_code_0); } else { - FX_COPY_PTR(*pre_for_code_1, &__fold_result___1); + FX_COPY_PTR(*pre_for_code_2, &pre_for_code_1); FX_COPY_PTR(*all_accesses_1, &all_accesses_0); _fx_LR24K_fast_idx__arr_access_t lst_5 = all_accesses_0; for (; lst_5; lst_5 = lst_5->tl) { _fx_N23K_fast_idx__idx_class_t aa_class_0 = {0}; - _fx_LN14K_form__kexp_t pre_for_code_2 = 0; - _fx_LN14K_form__kexp_t v_19 = 0; _fx_R24K_fast_idx__arr_access_t* __pat___4 = &lst_5->hd; _fx_copy_N23K_fast_idx__idx_class_t(&__pat___4->aa_class, &aa_class_0); _fx_R9Ast__id_t aa_arr_0 = __pat___4->aa_arr; - FX_COPY_PTR(__fold_result___1, &pre_for_code_2); if (aa_class_0.tag == 2) { - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_20 = {0}; - _fx_LN14K_form__kexp_t pre_for_code_3 = 0; - _fx_N14K_form__atom_t v_21 = {0}; - _fx_LN14K_form__atom_t v_22 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_23 = {0}; - _fx_N14K_form__kexp_t v_24 = 0; - _fx_T4N14K_form__atom_tN14K_form__atom_tN14K_form__atom_tLN14K_form__kexp_t v_25 = {0}; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_16 = {0}; + _fx_LN14K_form__kexp_t pre_for_code1_0 = 0; + _fx_N14K_form__atom_t v_17 = {0}; + _fx_LN14K_form__atom_t v_18 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_19 = {0}; + _fx_N14K_form__kexp_t v_20 = 0; + _fx_LN14K_form__kexp_t v_21 = 0; + _fx_T4N14K_form__atom_tN14K_form__atom_tN14K_form__atom_tLN14K_form__kexp_t v_22 = {0}; _fx_N14K_form__atom_t a_1 = {0}; _fx_N14K_form__atom_t b_1 = {0}; _fx_N14K_form__atom_t delta_1 = {0}; - _fx_LN14K_form__kexp_t pre_for_code_4 = 0; - _fx_N14K_form__atom_t v_26 = {0}; - _fx_LN14K_form__atom_t v_27 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_28 = {0}; - _fx_N14K_form__kexp_t v_29 = 0; + _fx_LN14K_form__kexp_t pre_for_code1_1 = 0; + _fx_N14K_form__atom_t v_23 = {0}; + _fx_LN14K_form__atom_t v_24 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_25 = {0}; + _fx_N14K_form__kexp_t v_26 = 0; + _fx_LN14K_form__kexp_t v_27 = 0; _fx_T3R9Ast__id_tN14K_form__atom_tN14K_form__atom_t* vcase_1 = &aa_class_0.u.IdxSimple; _fx_N14K_form__atom_t* shift_0 = &vcase_1->t2; _fx_R9Ast__id_t* i_3 = &vcase_1->t0; FX_CALL( _fx_M10K_fast_idxFM9get_arrszT2R9Ast__id_tLN14K_form__kexp_t6R9Ast__id_tiLN14K_form__kexp_trLT2T2R9Ast__id_tiR9Ast__id_tR10Ast__loc_ti( - &aa_arr_0, __pat___4->aa_dim, pre_for_code_2, arrsz_env_ref_0, &for_loc_0, km_idx_0, &v_20, 0), _fx_catch_6); - _fx_R9Ast__id_t arrsz_0 = v_20.t0; - FX_COPY_PTR(v_20.t1, &pre_for_code_3); + &aa_arr_0, __pat___4->aa_dim, pre_for_code_1, arrsz_env_ref_0, &for_loc_0, km_idx_0, &v_16, 0), _fx_catch_6); + _fx_R9Ast__id_t arrsz_0 = v_16.t0; + FX_COPY_PTR(v_16.t1, &pre_for_code1_0); + _fx_free_LN14K_form__kexp_t(&pre_for_code_1); + FX_COPY_PTR(pre_for_code1_0, &pre_for_code_1); bool res_3; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(i_3, &_fx_g9Ast__noid, &res_3, 0), _fx_catch_6); if (res_3) { - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&arrsz_0, &v_21); - FX_CALL(_fx_cons_LN14K_form__atom_t(shift_0, 0, true, &v_22), _fx_catch_6); - FX_CALL(_fx_cons_LN14K_form__atom_t(&v_21, v_22, false, &v_22), _fx_catch_6); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g20K_fast_idx__KTypVoid, &for_loc_0, &v_23); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&arrsz_0, &v_17); + FX_CALL(_fx_cons_LN14K_form__atom_t(shift_0, 0, true, &v_18), _fx_catch_6); + FX_CALL(_fx_cons_LN14K_form__atom_t(&v_17, v_18, false, &v_18), _fx_catch_6); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g20K_fast_idx__KTypVoid, &for_loc_0, &v_19); FX_CALL( _fx_M6K_formFM10KExpIntrinN14K_form__kexp_t3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g26K_fast_idx__IntrinCheckIdx, v_22, &v_23, &v_24), _fx_catch_6); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_24, pre_for_code_3, true, &v_19), _fx_catch_6); + &_fx_g26K_fast_idx__IntrinCheckIdx, v_18, &v_19, &v_20), _fx_catch_6); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_20, pre_for_code_1, true, &v_21), _fx_catch_6); + _fx_free_LN14K_form__kexp_t(&pre_for_code_1); + FX_COPY_PTR(v_21, &pre_for_code_1); } else { FX_CALL( _fx_M10K_fast_idxFM18get_loop_idx_rangeT4N14K_form__atom_tN14K_form__atom_tN14K_form__atom_tLN14K_form__kexp_t7R9Ast__id_tLN14K_form__kexp_tR10Ast__loc_trLT2T2R9Ast__id_tiR9Ast__id_tR10Ast__loc_tiRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t( - i_3, pre_for_code_3, &for_loc_0, arrsz_env_ref_0, &for_loc_0, km_idx_0, &loop_idx_0, &v_25, 0), + i_3, pre_for_code_1, &for_loc_0, arrsz_env_ref_0, &for_loc_0, km_idx_0, &loop_idx_1, &v_22, 0), _fx_catch_6); - _fx_copy_N14K_form__atom_t(&v_25.t0, &a_1); - _fx_copy_N14K_form__atom_t(&v_25.t1, &b_1); - _fx_copy_N14K_form__atom_t(&v_25.t2, &delta_1); - FX_COPY_PTR(v_25.t3, &pre_for_code_4); - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&arrsz_0, &v_26); - FX_CALL(_fx_cons_LN14K_form__atom_t(shift_0, 0, true, &v_27), _fx_catch_6); - FX_CALL(_fx_cons_LN14K_form__atom_t(&vcase_1->t1, v_27, false, &v_27), _fx_catch_6); - FX_CALL(_fx_cons_LN14K_form__atom_t(&delta_1, v_27, false, &v_27), _fx_catch_6); - FX_CALL(_fx_cons_LN14K_form__atom_t(&b_1, v_27, false, &v_27), _fx_catch_6); - FX_CALL(_fx_cons_LN14K_form__atom_t(&a_1, v_27, false, &v_27), _fx_catch_6); - FX_CALL(_fx_cons_LN14K_form__atom_t(&v_26, v_27, false, &v_27), _fx_catch_6); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g20K_fast_idx__KTypVoid, &for_loc_0, &v_28); + _fx_copy_N14K_form__atom_t(&v_22.t0, &a_1); + _fx_copy_N14K_form__atom_t(&v_22.t1, &b_1); + _fx_copy_N14K_form__atom_t(&v_22.t2, &delta_1); + FX_COPY_PTR(v_22.t3, &pre_for_code1_1); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&arrsz_0, &v_23); + FX_CALL(_fx_cons_LN14K_form__atom_t(shift_0, 0, true, &v_24), _fx_catch_6); + FX_CALL(_fx_cons_LN14K_form__atom_t(&vcase_1->t1, v_24, false, &v_24), _fx_catch_6); + FX_CALL(_fx_cons_LN14K_form__atom_t(&delta_1, v_24, false, &v_24), _fx_catch_6); + FX_CALL(_fx_cons_LN14K_form__atom_t(&b_1, v_24, false, &v_24), _fx_catch_6); + FX_CALL(_fx_cons_LN14K_form__atom_t(&a_1, v_24, false, &v_24), _fx_catch_6); + FX_CALL(_fx_cons_LN14K_form__atom_t(&v_23, v_24, false, &v_24), _fx_catch_6); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g20K_fast_idx__KTypVoid, &for_loc_0, &v_25); FX_CALL( _fx_M6K_formFM10KExpIntrinN14K_form__kexp_t3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g31K_fast_idx__IntrinCheckIdxRange, v_27, &v_28, &v_29), _fx_catch_6); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_29, pre_for_code_4, true, &v_19), _fx_catch_6); + &_fx_g31K_fast_idx__IntrinCheckIdxRange, v_24, &v_25, &v_26), _fx_catch_6); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_26, pre_for_code1_1, true, &v_27), _fx_catch_6); + _fx_free_LN14K_form__kexp_t(&pre_for_code_1); + FX_COPY_PTR(v_27, &pre_for_code_1); } _fx_catch_6: ; - if (v_29) { - _fx_free_N14K_form__kexp_t(&v_29); - } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_28); if (v_27) { - _fx_free_LN14K_form__atom_t(&v_27); + _fx_free_LN14K_form__kexp_t(&v_27); } - _fx_free_N14K_form__atom_t(&v_26); - if (pre_for_code_4) { - _fx_free_LN14K_form__kexp_t(&pre_for_code_4); + if (v_26) { + _fx_free_N14K_form__kexp_t(&v_26); + } + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_25); + if (v_24) { + _fx_free_LN14K_form__atom_t(&v_24); + } + _fx_free_N14K_form__atom_t(&v_23); + if (pre_for_code1_1) { + _fx_free_LN14K_form__kexp_t(&pre_for_code1_1); } _fx_free_N14K_form__atom_t(&delta_1); _fx_free_N14K_form__atom_t(&b_1); _fx_free_N14K_form__atom_t(&a_1); - _fx_free_T4N14K_form__atom_tN14K_form__atom_tN14K_form__atom_tLN14K_form__kexp_t(&v_25); - if (v_24) { - _fx_free_N14K_form__kexp_t(&v_24); + _fx_free_T4N14K_form__atom_tN14K_form__atom_tN14K_form__atom_tLN14K_form__kexp_t(&v_22); + if (v_21) { + _fx_free_LN14K_form__kexp_t(&v_21); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_23); - if (v_22) { - _fx_free_LN14K_form__atom_t(&v_22); + if (v_20) { + _fx_free_N14K_form__kexp_t(&v_20); } - _fx_free_N14K_form__atom_t(&v_21); - if (pre_for_code_3) { - _fx_free_LN14K_form__kexp_t(&pre_for_code_3); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_19); + if (v_18) { + _fx_free_LN14K_form__atom_t(&v_18); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_20); - } - else { - FX_COPY_PTR(pre_for_code_2, &v_19); + _fx_free_N14K_form__atom_t(&v_17); + if (pre_for_code1_0) { + _fx_free_LN14K_form__kexp_t(&pre_for_code1_0); + } + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_16); } FX_CHECK_EXN(_fx_catch_7); - _fx_free_LN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(v_19, &__fold_result___1); _fx_catch_7: ; - if (v_19) { - _fx_free_LN14K_form__kexp_t(&v_19); - } - if (pre_for_code_2) { - _fx_free_LN14K_form__kexp_t(&pre_for_code_2); - } _fx_free_N23K_fast_idx__idx_class_t(&aa_class_0); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &pre_for_code_0); + FX_COPY_PTR(pre_for_code_1, &pre_for_code_0); } _fx_make_T3LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tLN14K_form__kexp_t(for_clauses_3, body_3, pre_for_code_0, fx_result); @@ -8049,8 +7948,8 @@ _fx_cleanup: ; _fx_free_R22K_form__k_fold_callb_t(&collect_callb_0); FX_FREE_FP(&cmp_id_1); _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&v_3); - _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&__fold_result___0); _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_0); + _fx_free_Rt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t(&loop_idx_1); FX_FREE_FP(&optimize_idx_kexp_0); FX_FREE_FP(&optimize_idx_ktyp_0); if (v_4) { @@ -8091,8 +7990,8 @@ _fx_cleanup: ; if (pre_for_code_0) { _fx_free_LN14K_form__kexp_t(&pre_for_code_0); } - if (__fold_result___1) { - _fx_free_LN14K_form__kexp_t(&__fold_result___1); + if (pre_for_code_1) { + _fx_free_LN14K_form__kexp_t(&pre_for_code_1); } if (all_accesses_0) { _fx_free_LR24K_fast_idx__arr_access_t(&all_accesses_0); @@ -8111,78 +8010,13 @@ static int struct _fx_T2R9Ast__id_tLN14K_form__kexp_t* fx_result, void* fx_fv) { - _fx_LT2T2R9Ast__id_tiR9Ast__id_t arrsz_env_0 = 0; int fx_status = 0; - _fx_LT2T2R9Ast__id_tiR9Ast__id_t* arrsz_env_1 = &arrsz_env_ref_0->data; - _fx_Nt6option1T2T2R9Ast__id_tiR9Ast__id_t __fold_result___0 = _fx_g18K_fast_idx__None3_; - FX_COPY_PTR(*arrsz_env_1, &arrsz_env_0); - _fx_LT2T2R9Ast__id_tiR9Ast__id_t lst_0 = arrsz_env_0; - for (; lst_0; lst_0 = lst_0->tl) { - _fx_T2T2R9Ast__id_tiR9Ast__id_t* __pat___0 = &lst_0->hd; - _fx_T2R9Ast__id_ti a_0 = __pat___0->t0; - bool __fold_result___1 = true; - _fx_R9Ast__id_t aj_0 = a_0.t0; - bool __fold_result___2 = true; - bool t_0; - if (aj_0.m == arr_0->m) { - t_0 = __fold_result___2; - } - else { - t_0 = false; - } - __fold_result___2 = t_0; - bool t_1; - if (aj_0.i == arr_0->i) { - t_1 = __fold_result___2; - } - else { - t_1 = false; - } - __fold_result___2 = t_1; - bool t_2; - if (aj_0.j == arr_0->j) { - t_2 = __fold_result___2; - } - else { - t_2 = false; - } - __fold_result___2 = t_2; - bool t_3; - if (__fold_result___2) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - bool t_4; - if (a_0.t1 == i_0) { - t_4 = __fold_result___1; - } - else { - t_4 = false; - } - __fold_result___1 = t_4; - if (__fold_result___1) { - _fx_Nt6option1T2T2R9Ast__id_tiR9Ast__id_t v_0; - _fx_M10K_fast_idxFM4SomeNt6option1T2T2R9Ast__id_tiR9Ast__id_t1T2T2R9Ast__id_tiR9Ast__id_t(__pat___0, &v_0); - __fold_result___0 = v_0; - FX_BREAK(_fx_catch_0); - } - - _fx_catch_0: ; - FX_CHECK_BREAK(); - FX_CHECK_EXN(_fx_cleanup); - } - _fx_Nt6option1T2T2R9Ast__id_tiR9Ast__id_t __fold_result___3 = __fold_result___0; + _fx_LT2T2R9Ast__id_tiR9Ast__id_t* arrsz_env_0 = &arrsz_env_ref_0->data; + _fx_T2R9Ast__id_ti v_0 = { *arr_0, i_0 }; _fx_Nt6option1R9Ast__id_t v_1; - if (__fold_result___3.tag == 2) { - _fx_M10K_fast_idxFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&__fold_result___3.u.Some.t1, &v_1); - } - else { - v_1 = _fx_g18K_fast_idx__None8_; - } - FX_CHECK_EXN(_fx_cleanup); + FX_CALL( + _fx_M10K_fast_idxFM9assoc_optNt6option1R9Ast__id_t2LT2T2R9Ast__id_tiR9Ast__id_tT2R9Ast__id_ti(*arrsz_env_0, &v_0, &v_1, + 0), _fx_cleanup); if (v_1.tag == 2) { _fx_make_T2R9Ast__id_tLN14K_form__kexp_t(&v_1.u.Some, pre_for_code_0, fx_result); } @@ -8198,29 +8032,29 @@ static int _fx_LN14K_form__kexp_t pre_for_code_1 = 0; _fx_LT2T2R9Ast__id_tiR9Ast__id_t v_9 = 0; _fx_R9Ast__id_t arrsz_0; - FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(km_idx_0, &_fx_g16Ast__std__size__, &arrsz_0, 0), _fx_catch_1); + FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(km_idx_0, &_fx_g16Ast__std__size__, &arrsz_0, 0), _fx_catch_0); _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(arr_0, &v_2); _fx_M6K_formFM7KLitIntN14K_form__klit_t1l((int64_t)i_0, &v_3); _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_3, &v_4); - FX_CALL(_fx_cons_LN14K_form__atom_t(&v_4, 0, true, &v_5), _fx_catch_1); - FX_CALL(_fx_cons_LN14K_form__atom_t(&v_2, v_5, false, &v_5), _fx_catch_1); + FX_CALL(_fx_cons_LN14K_form__atom_t(&v_4, 0, true, &v_5), _fx_catch_0); + FX_CALL(_fx_cons_LN14K_form__atom_t(&v_2, v_5, false, &v_5), _fx_catch_0); _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g19K_fast_idx__KTypInt, for_loc_0, &v_6); FX_CALL( _fx_M6K_formFM10KExpIntrinN14K_form__kexp_t3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g25K_fast_idx__IntrinGetSize, v_5, &v_6, &arrsz_exp_0), _fx_catch_1); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_7, 0), _fx_catch_1); + &_fx_g25K_fast_idx__IntrinGetSize, v_5, &v_6, &arrsz_exp_0), _fx_catch_0); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_7, 0), _fx_catch_0); _fx_M10K_fast_idxFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(arrsz_exp_0, &v_8); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &arrsz_0, _fx_g19K_fast_idx__KTypInt, &v_7, &v_8, pre_for_code_0, for_loc_0, &pre_for_code_1, 0), _fx_catch_1); + &arrsz_0, _fx_g19K_fast_idx__KTypInt, &v_7, &v_8, pre_for_code_0, for_loc_0, &pre_for_code_1, 0), _fx_catch_0); _fx_T2R9Ast__id_ti v_10 = { *arr_0, i_0 }; _fx_T2T2R9Ast__id_tiR9Ast__id_t v_11 = { v_10, arrsz_0 }; - FX_CALL(_fx_cons_LT2T2R9Ast__id_tiR9Ast__id_t(&v_11, *arrsz_env_1, true, &v_9), _fx_catch_1); - FX_FREE_LIST_SIMPLE(arrsz_env_1); - FX_COPY_PTR(v_9, arrsz_env_1); + FX_CALL(_fx_cons_LT2T2R9Ast__id_tiR9Ast__id_t(&v_11, *arrsz_env_0, true, &v_9), _fx_catch_0); + FX_FREE_LIST_SIMPLE(arrsz_env_0); + FX_COPY_PTR(v_9, arrsz_env_0); _fx_make_T2R9Ast__id_tLN14K_form__kexp_t(&arrsz_0, pre_for_code_1, fx_result); - _fx_catch_1: ; + _fx_catch_0: ; FX_FREE_LIST_SIMPLE(&v_9); if (pre_for_code_1) { _fx_free_LN14K_form__kexp_t(&pre_for_code_1); @@ -8240,7 +8074,6 @@ static int } _fx_cleanup: ; - FX_FREE_LIST_SIMPLE(&arrsz_env_0); return fx_status; } @@ -8550,6 +8383,7 @@ static int FX_CALL(fx_check_stack(), _fx_cleanup); _fx_Rt6Map__t2R9Ast__id_tT3N14K_form__kexp_tBN23K_fast_idx__idx_class_t* affine_defs_0 = &affine_defs_ref_0->data; _fx_LN14K_form__kexp_t* pre_for_code_0 = &pre_for_code_ref_0->data; + bool* update_affine_defs_0 = &update_affine_defs_ref_0->data; if (a_0->tag == 1) { _fx_Nt11Map__tree_t2R9Ast__id_tN22K_fast_idx__loop_idx_t v_0 = 0; _fx_FPi2R9Ast__id_tR9Ast__id_t v_1 = {0}; @@ -8627,17 +8461,17 @@ static int bool v_9; if (a_0->tag == 1) { _fx_R9Ast__id_t* i_1 = &a_0->u.AtomId; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)i_1->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)i_1->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)i_1->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)i_1->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_1->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_1->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_10; FX_CALL( _fx_M10K_fast_idxFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(inloop_vals_0, i_1, - __fold_result___0 & 9223372036854775807ULL, &v_10, 0), _fx_catch_3); + h_0 & 9223372036854775807ULL, &v_10, 0), _fx_catch_3); bool v_11; if (v_10.t1 >= 0) { v_11 = true; @@ -9018,7 +8852,7 @@ static int } _fx_LN14K_form__kexp_t v_38 = 0; _fx_N14K_form__kexp_t v_39 = 0; - update_affine_defs_ref_0->data = true; + *update_affine_defs_0 = true; FX_CALL(_fx_cons_LN14K_form__kexp_t(idx_scaled_exp_1, idx_code_0, true, &v_38), _fx_catch_7); FX_CALL( _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_38, loc_1, &v_39, @@ -9203,40 +9037,30 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke _fx_LN13K_form__dom_t idxs_2 = 0; _fx_N14K_form__atom_t v_5 = {0}; _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_6 = {0}; - _fx_Ta2B __fold_result___0 = { false, false }; + bool have_ranges_0 = false; + bool have_slow_0 = false; FX_COPY_PTR(idxs_0, &idxs_1); _fx_LN13K_form__dom_t lst_0 = idxs_1; for (; lst_0; lst_0 = lst_0->tl) { _fx_N13K_form__dom_t* idx_0 = &lst_0->hd; - _fx_Ta2B v_7 = __fold_result___0; - bool have_ranges_0 = v_7.t0; - bool have_slow_0 = v_7.t1; int tag_1 = idx_0->tag; - _fx_Ta2B v_8; if (tag_1 == 3) { - _fx_Ta2B tup_0 = { true, have_slow_0 }; v_8 = tup_0; + have_ranges_0 = true; } else if (tag_1 == 1) { - _fx_Ta2B tup_1 = { have_ranges_0, true }; v_8 = tup_1; - } - else { - _fx_Ta2B tup_2 = { have_ranges_0, have_slow_0 }; v_8 = tup_2; + have_slow_0 = true; } FX_CHECK_EXN(_fx_catch_1); - __fold_result___0 = v_8; _fx_catch_1: ; FX_CHECK_EXN(_fx_catch_5); } - _fx_Ta2B v_9 = __fold_result___0; - bool have_ranges_1 = v_9.t0; - bool have_slow_1 = v_9.t1; bool t_0; - if (have_ranges_1) { + if (have_ranges_0) { t_0 = true; } else { - t_0 = !have_slow_1; + t_0 = !have_slow_0; } if (t_0) { FX_COPY_PTR(e_0, fx_result); @@ -9258,23 +9082,23 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke update_affine_defs_ref_0, &aa_class_0, 0), _fx_catch_3); if (aa_class_0.tag == 2) { _fx_R24K_fast_idx__arr_access_t aa_entry_0 = {0}; - _fx_LR24K_fast_idx__arr_access_t v_10 = 0; + _fx_LR24K_fast_idx__arr_access_t v_7 = 0; _fx_make_R24K_fast_idx__arr_access_t(arr_0, i_0, &aa_class_0, &aa_entry_0); - bool v_11; + bool v_8; FX_CALL( - _fx_M10K_fast_idxFM3memB2LRM12arr_access_tRM12arr_access_t(*all_accesses_0, &aa_entry_0, &v_11, + _fx_M10K_fast_idxFM3memB2LRM12arr_access_tRM12arr_access_t(*all_accesses_0, &aa_entry_0, &v_8, 0), _fx_catch_2); - if (!v_11) { - FX_CALL(_fx_cons_LR24K_fast_idx__arr_access_t(&aa_entry_0, *all_accesses_0, true, &v_10), + if (!v_8) { + FX_CALL(_fx_cons_LR24K_fast_idx__arr_access_t(&aa_entry_0, *all_accesses_0, true, &v_7), _fx_catch_2); _fx_free_LR24K_fast_idx__arr_access_t(all_accesses_0); - FX_COPY_PTR(v_10, all_accesses_0); + FX_COPY_PTR(v_7, all_accesses_0); } _fx_M6K_formFM10DomainFastN13K_form__dom_t1N14K_form__atom_t(a_0, &res_1); _fx_catch_2: ; - if (v_10) { - _fx_free_LR24K_fast_idx__arr_access_t(&v_10); + if (v_7) { + _fx_free_LR24K_fast_idx__arr_access_t(&v_7); } _fx_free_R24K_fast_idx__arr_access_t(&aa_entry_0); } @@ -9326,22 +9150,22 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke } if (tag_0 == 31) { _fx_T3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t* vcase_2 = &e_0->u.KDefVal; - _fx_N14K_form__kexp_t v_12 = vcase_2->t1; - if (FX_REC_VARIANT_TAG(v_12) == 8) { - _fx_T3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_3 = &v_12->u.KExpIntrin; + _fx_N14K_form__kexp_t v_9 = vcase_2->t1; + if (FX_REC_VARIANT_TAG(v_9) == 8) { + _fx_T3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_3 = &v_9->u.KExpIntrin; if (vcase_3->t0.tag == 9) { - _fx_LN14K_form__atom_t v_13 = vcase_3->t1; - if (v_13 != 0) { - _fx_LN14K_form__atom_t v_14 = v_13->tl; - if (v_14 != 0) { - if (v_14->tl == 0) { - _fx_N14K_form__atom_t* v_15 = &v_14->hd; - if (v_15->tag == 2) { - _fx_N14K_form__klit_t* v_16 = &v_15->u.AtomLit; - if (v_16->tag == 1) { - _fx_N14K_form__atom_t* v_17 = &v_13->hd; - if (v_17->tag == 1) { - _fx_R9Ast__id_t* arr_1 = &v_17->u.AtomId; + _fx_LN14K_form__atom_t v_10 = vcase_3->t1; + if (v_10 != 0) { + _fx_LN14K_form__atom_t v_11 = v_10->tl; + if (v_11 != 0) { + if (v_11->tl == 0) { + _fx_N14K_form__atom_t* v_12 = &v_11->hd; + if (v_12->tag == 2) { + _fx_N14K_form__klit_t* v_13 = &v_12->u.AtomLit; + if (v_13->tag == 1) { + _fx_N14K_form__atom_t* v_14 = &v_10->hd; + if (v_14->tag == 1) { + _fx_R9Ast__id_t* arr_1 = &v_14->u.AtomId; _fx_R10Ast__loc_t* loc_1 = &vcase_2->t2; _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(arr_1, &v_1); bool res_2; @@ -9349,24 +9173,22 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke _fx_M10K_fast_idxFM17is_loop_invariantB3N14K_form__atom_tNt10Hashset__t1R9Ast__id_tR10Ast__loc_t( &v_1, inloop_vals_0, loc_1, &res_2, 0), _fx_cleanup); if (res_2) { - _fx_LN14K_form__kexp_t v_18 = 0; - _fx_LT2T2R9Ast__id_tiR9Ast__id_t v_19 = 0; - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_0, *pre_for_code_0, true, &v_18), _fx_catch_6); + _fx_LN14K_form__kexp_t v_15 = 0; + _fx_LT2T2R9Ast__id_tiR9Ast__id_t v_16 = 0; + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_0, *pre_for_code_0, true, &v_15), _fx_catch_6); _fx_free_LN14K_form__kexp_t(pre_for_code_0); - FX_COPY_PTR(v_18, pre_for_code_0); - int_ res_3; - FX_CALL(_fx_M10K_fast_idxFM3inti1l(v_16->u.KLitInt, &res_3, 0), _fx_catch_6); - _fx_T2R9Ast__id_ti v_20 = { *arr_1, res_3 }; - _fx_T2T2R9Ast__id_tiR9Ast__id_t v_21 = { v_20, vcase_2->t0 }; - FX_CALL(_fx_cons_LT2T2R9Ast__id_tiR9Ast__id_t(&v_21, *arrsz_env_1, true, &v_19), _fx_catch_6); + FX_COPY_PTR(v_15, pre_for_code_0); + _fx_T2R9Ast__id_ti v_17 = { *arr_1, (int_)v_13->u.KLitInt }; + _fx_T2T2R9Ast__id_tiR9Ast__id_t v_18 = { v_17, vcase_2->t0 }; + FX_CALL(_fx_cons_LT2T2R9Ast__id_tiR9Ast__id_t(&v_18, *arrsz_env_1, true, &v_16), _fx_catch_6); FX_FREE_LIST_SIMPLE(arrsz_env_1); - FX_COPY_PTR(v_19, arrsz_env_1); + FX_COPY_PTR(v_16, arrsz_env_1); FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(loc_1, fx_result), _fx_catch_6); _fx_catch_6: ; - FX_FREE_LIST_SIMPLE(&v_19); - if (v_18) { - _fx_free_LN14K_form__kexp_t(&v_18); + FX_FREE_LIST_SIMPLE(&v_16); + if (v_15) { + _fx_free_LN14K_form__kexp_t(&v_15); } goto _fx_endmatch_2; } @@ -9382,36 +9204,36 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke if (tag_0 == 8) { _fx_T3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_4 = &e_0->u.KExpIntrin; if (vcase_4->t0.tag == 11) { - _fx_LN14K_form__atom_t v_22 = vcase_4->t1; - if (v_22 != 0) { - _fx_LN14K_form__atom_t v_23 = v_22->tl; - if (v_23 != 0) { - _fx_LN14K_form__atom_t v_24 = v_23->tl; - if (v_24 != 0) { - _fx_LN14K_form__atom_t v_25 = v_24->tl; - if (v_25 != 0) { - _fx_N14K_form__atom_t* v_26 = &v_25->hd; - if (v_26->tag == 2) { - _fx_N14K_form__klit_t* v_27 = &v_26->u.AtomLit; - if (v_27->tag == 1) { - if (v_27->u.KLitInt == 1LL) { - _fx_LN14K_form__atom_t v_28 = v_25->tl; - if (v_28 != 0) { - _fx_LN14K_form__atom_t v_29 = v_28->tl; - if (v_29 != 0) { - if (v_29->tl == 0) { - _fx_N14K_form__atom_t* v_30 = &v_22->hd; - if (v_30->tag == 1) { - _fx_R9Ast__id_t* arrsz_0 = &v_30->u.AtomId; - _fx_N14K_form__atom_t* shift_0 = &v_29->hd; - _fx_N14K_form__atom_t* scale_0 = &v_28->hd; + _fx_LN14K_form__atom_t v_19 = vcase_4->t1; + if (v_19 != 0) { + _fx_LN14K_form__atom_t v_20 = v_19->tl; + if (v_20 != 0) { + _fx_LN14K_form__atom_t v_21 = v_20->tl; + if (v_21 != 0) { + _fx_LN14K_form__atom_t v_22 = v_21->tl; + if (v_22 != 0) { + _fx_N14K_form__atom_t* v_23 = &v_22->hd; + if (v_23->tag == 2) { + _fx_N14K_form__klit_t* v_24 = &v_23->u.AtomLit; + if (v_24->tag == 1) { + if (v_24->u.KLitInt == 1LL) { + _fx_LN14K_form__atom_t v_25 = v_22->tl; + if (v_25 != 0) { + _fx_LN14K_form__atom_t v_26 = v_25->tl; + if (v_26 != 0) { + if (v_26->tl == 0) { + _fx_N14K_form__atom_t* v_27 = &v_19->hd; + if (v_27->tag == 1) { + _fx_R9Ast__id_t* arrsz_0 = &v_27->u.AtomId; + _fx_N14K_form__atom_t* shift_0 = &v_26->hd; + _fx_N14K_form__atom_t* scale_0 = &v_25->hd; _fx_R10Ast__loc_t* loc_2 = &vcase_4->t2.t1; - bool res_4; + bool res_3; FX_CALL( _fx_M10K_fast_idxFM17is_loop_invariantB3N14K_form__atom_tNt10Hashset__t1R9Ast__id_tR10Ast__loc_t( - scale_0, inloop_vals_0, loc_2, &res_4, 0), _fx_cleanup); + scale_0, inloop_vals_0, loc_2, &res_3, 0), _fx_cleanup); bool t_1; - if (res_4) { + if (res_3) { FX_CALL( _fx_M10K_fast_idxFM17is_loop_invariantB3N14K_form__atom_tNt10Hashset__t1R9Ast__id_tR10Ast__loc_t( shift_0, inloop_vals_0, loc_2, &t_1, 0), _fx_cleanup); @@ -9421,24 +9243,24 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke } bool t_2; if (t_1) { - bool __fold_result___1 = false; + bool __fold_result___0 = false; FX_COPY_PTR(*arrsz_env_1, &arrsz_env_0); _fx_LT2T2R9Ast__id_tiR9Ast__id_t lst_2 = arrsz_env_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_T2T2R9Ast__id_tiR9Ast__id_t* __pat___0 = &lst_2->hd; _fx_R9Ast__id_t arrsz_j_0 = __pat___0->t1; - bool res_5; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&arrsz_j_0, arrsz_0, &res_5, 0), + bool res_4; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&arrsz_j_0, arrsz_0, &res_4, 0), _fx_catch_7); - if (res_5) { - __fold_result___1 = true; FX_BREAK(_fx_catch_7); + if (res_4) { + __fold_result___0 = true; FX_BREAK(_fx_catch_7); } _fx_catch_7: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_cleanup); } - t_2 = __fold_result___1; + t_2 = __fold_result___0; } else { t_2 = false; @@ -9448,11 +9270,11 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke _fx_N23K_fast_idx__idx_class_t b_class_0 = {0}; FX_CALL( _fx_M10K_fast_idxFM12classify_idxN23K_fast_idx__idx_class_t8N14K_form__atom_tR10Ast__loc_trRt6Map__t2R9Ast__id_tT3N14K_form__kexp_tBN23K_fast_idx__idx_class_tNt10Hashset__t1R9Ast__id_tiRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_trLN14K_form__kexp_trB( - &v_23->hd, loc_2, affine_defs_ref_0, inloop_vals_0, *km_idx_0, loop_idx_0, + &v_20->hd, loc_2, affine_defs_ref_0, inloop_vals_0, *km_idx_0, loop_idx_0, pre_for_code_ref_0, update_affine_defs_ref_0, &a_class_0, 0), _fx_catch_10); FX_CALL( _fx_M10K_fast_idxFM12classify_idxN23K_fast_idx__idx_class_t8N14K_form__atom_tR10Ast__loc_trRt6Map__t2R9Ast__id_tT3N14K_form__kexp_tBN23K_fast_idx__idx_class_tNt10Hashset__t1R9Ast__id_tiRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_trLN14K_form__kexp_trB( - &v_24->hd, loc_2, affine_defs_ref_0, inloop_vals_0, *km_idx_0, loop_idx_0, + &v_21->hd, loc_2, affine_defs_ref_0, inloop_vals_0, *km_idx_0, loop_idx_0, pre_for_code_ref_0, update_affine_defs_ref_0, &b_class_0, 0), _fx_catch_10); if (b_class_0.tag == 2) { _fx_T3R9Ast__id_tN14K_form__atom_tN14K_form__atom_t* vcase_5 = @@ -9462,15 +9284,15 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke &a_class_0.u.IdxSimple; _fx_N14K_form__atom_t* a_scale_atom_0 = &vcase_6->t1; if (a_scale_atom_0->tag == 2) { - _fx_N14K_form__klit_t* v_31 = &a_scale_atom_0->u.AtomLit; - if (v_31->tag == 1) { - int64_t a_scale_0 = v_31->u.KLitInt; + _fx_N14K_form__klit_t* v_28 = &a_scale_atom_0->u.AtomLit; + if (v_28->tag == 1) { + int64_t a_scale_0 = v_28->u.KLitInt; _fx_R9Ast__id_t* a_i_0 = &vcase_6->t0; _fx_N14K_form__atom_t* b_scale_atom_0 = &vcase_5->t1; if (b_scale_atom_0->tag == 2) { - _fx_N14K_form__klit_t* v_32 = &b_scale_atom_0->u.AtomLit; - if (v_32->tag == 1) { - int64_t b_scale_0 = v_32->u.KLitInt; + _fx_N14K_form__klit_t* v_29 = &b_scale_atom_0->u.AtomLit; + if (v_29->tag == 1) { + int64_t b_scale_0 = v_29->u.KLitInt; _fx_R9Ast__id_t* b_i_0 = &vcase_5->t0; bool t_3; if (a_scale_0 >= 0LL) { @@ -9481,12 +9303,12 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke } bool t_4; if (t_3) { - bool res_6; + bool res_5; FX_CALL( - _fx_M3AstFM6__eq__B2RM4id_tRM4id_t(a_i_0, b_i_0, &res_6, + _fx_M3AstFM6__eq__B2RM4id_tRM4id_t(a_i_0, b_i_0, &res_5, 0), _fx_catch_10); bool t_5; - if (res_6) { + if (res_5) { t_5 = true; } else { @@ -9503,11 +9325,11 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke t_4 = false; } if (t_4) { - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_33 = {0}; - _fx_N14K_form__kexp_t v_34 = 0; - _fx_LN14K_form__kexp_t v_35 = 0; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_30 = {0}; + _fx_N14K_form__kexp_t v_31 = 0; + _fx_LN14K_form__kexp_t v_32 = 0; _fx_T4N14K_form__atom_tN14K_form__atom_tN14K_form__atom_tLN14K_form__kexp_t - v_36 = {0}; + v_33 = {0}; _fx_N14K_form__atom_t c0_0 = {0}; _fx_N14K_form__atom_t c1_0 = {0}; _fx_N14K_form__atom_t delta_0 = {0}; @@ -9524,230 +9346,230 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke else { idx_2 = _fx_g9Ast__noid; } - bool res_7; + bool res_6; FX_CALL( _fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&idx_2, - &_fx_g9Ast__noid, &res_7, 0), _fx_catch_9); - if (res_7) { + &_fx_g9Ast__noid, &res_6, 0), _fx_catch_9); + if (res_6) { FX_CALL( _fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t( - loc_2, &v_34), _fx_catch_9); + loc_2, &v_31), _fx_catch_9); FX_CALL( _fx_cons_LN14K_form__kexp_t(e_0, *pre_for_code_0, true, - &v_35), _fx_catch_9); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_34, v_35, - &v_33); + &v_32), _fx_catch_9); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_31, v_32, + &v_30); } else { FX_CALL( _fx_M10K_fast_idxFM18get_loop_idx_rangeT4N14K_form__atom_tN14K_form__atom_tN14K_form__atom_tLN14K_form__kexp_t7R9Ast__id_tLN14K_form__kexp_tR10Ast__loc_trLT2T2R9Ast__id_tiR9Ast__id_tR10Ast__loc_tiRt6Map__t2R9Ast__id_tN22K_fast_idx__loop_idx_t( &idx_2, *pre_for_code_0, loc_2, arrsz_env_ref_0, - &cv_0->t3, *km_idx_0, loop_idx_0, &v_36, 0), + &cv_0->t3, *km_idx_0, loop_idx_0, &v_33, 0), _fx_catch_9); - _fx_copy_N14K_form__atom_t(&v_36.t0, &c0_0); - _fx_copy_N14K_form__atom_t(&v_36.t1, &c1_0); - _fx_copy_N14K_form__atom_t(&v_36.t2, &delta_0); - FX_COPY_PTR(v_36.t3, &pre_for_code_1); + _fx_copy_N14K_form__atom_t(&v_33.t0, &c0_0); + _fx_copy_N14K_form__atom_t(&v_33.t1, &c1_0); + _fx_copy_N14K_form__atom_t(&v_33.t2, &delta_0); + FX_COPY_PTR(v_33.t3, &pre_for_code_1); if (delta_0.tag == 2) { - _fx_N14K_form__klit_t* v_37 = &delta_0.u.AtomLit; - if (v_37->tag == 1) { - if (v_37->u.KLitInt == 1LL) { + _fx_N14K_form__klit_t* v_34 = &delta_0.u.AtomLit; + if (v_34->tag == 1) { + if (v_34->u.KLitInt == 1LL) { _fx_T2N14K_form__ktyp_tR10Ast__loc_t int_ctx_0 = {0}; - _fx_N14K_form__kexp_t v_38 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_39 = + _fx_N14K_form__kexp_t v_35 = 0; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_36 = {0}; _fx_N14K_form__atom_t t_6 = {0}; _fx_LN14K_form__kexp_t pre_for_code_2 = 0; - _fx_N14K_form__kexp_t v_40 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_41 = + _fx_N14K_form__kexp_t v_37 = 0; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_38 = {0}; _fx_N14K_form__atom_t new_a_0 = {0}; _fx_LN14K_form__kexp_t pre_for_code_3 = 0; - _fx_N14K_form__kexp_t v_42 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_43 = + _fx_N14K_form__kexp_t v_39 = 0; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_40 = {0}; _fx_N14K_form__atom_t t_7 = {0}; _fx_LN14K_form__kexp_t pre_for_code_4 = 0; - _fx_N14K_form__kexp_t v_44 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_45 = + _fx_N14K_form__kexp_t v_41 = 0; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_42 = {0}; _fx_N14K_form__atom_t t2_0 = {0}; _fx_LN14K_form__kexp_t pre_for_code_5 = 0; - _fx_N14K_form__kexp_t v_46 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_47 = + _fx_N14K_form__kexp_t v_43 = 0; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_44 = {0}; _fx_N14K_form__atom_t new_b_0 = {0}; _fx_LN14K_form__kexp_t pre_for_code_6 = 0; - _fx_N14K_form__atom_t v_48 = {0}; - _fx_N14K_form__klit_t v_49 = {0}; - _fx_N14K_form__atom_t v_50 = {0}; - _fx_LN14K_form__atom_t v_51 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_52 = {0}; + _fx_N14K_form__atom_t v_45 = {0}; + _fx_N14K_form__klit_t v_46 = {0}; + _fx_N14K_form__atom_t v_47 = {0}; + _fx_LN14K_form__atom_t v_48 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_49 = {0}; _fx_N14K_form__kexp_t new_check_0 = 0; - _fx_N14K_form__kexp_t v_53 = 0; - _fx_LN14K_form__kexp_t v_54 = 0; + _fx_N14K_form__kexp_t v_50 = 0; + _fx_LN14K_form__kexp_t v_51 = 0; _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t( _fx_g19K_fast_idx__KTypInt, loc_2, &int_ctx_0); FX_CALL( _fx_M6K_formFM10KExpBinaryN14K_form__kexp_t4N13Ast__binary_tN14K_form__atom_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( _fx_g17K_fast_idx__OpMul, &c0_0, - a_scale_atom_0, &int_ctx_0, &v_38), + a_scale_atom_0, &int_ctx_0, &v_35), _fx_catch_8); fx_str_t slit_0 = FX_MAKE_STR("t"); FX_CALL( _fx_M6K_formFM9kexp2atomT2N14K_form__atom_tLN14K_form__kexp_t5iSN14K_form__kexp_tBLN14K_form__kexp_t( - *km_idx_0, &slit_0, v_38, false, - pre_for_code_1, &v_39, 0), _fx_catch_8); - _fx_copy_N14K_form__atom_t(&v_39.t0, &t_6); - FX_COPY_PTR(v_39.t1, &pre_for_code_2); + *km_idx_0, &slit_0, v_35, false, + pre_for_code_1, &v_36, 0), _fx_catch_8); + _fx_copy_N14K_form__atom_t(&v_36.t0, &t_6); + FX_COPY_PTR(v_36.t1, &pre_for_code_2); FX_CALL( _fx_M6K_formFM10KExpBinaryN14K_form__kexp_t4N13Ast__binary_tN14K_form__atom_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( _fx_g17K_fast_idx__OpAdd, &t_6, - &vcase_6->t2, &int_ctx_0, &v_40), + &vcase_6->t2, &int_ctx_0, &v_37), _fx_catch_8); fx_str_t slit_1 = FX_MAKE_STR("a"); FX_CALL( _fx_M6K_formFM9kexp2atomT2N14K_form__atom_tLN14K_form__kexp_t5iSN14K_form__kexp_tBLN14K_form__kexp_t( - *km_idx_0, &slit_1, v_40, false, - pre_for_code_2, &v_41, 0), _fx_catch_8); - _fx_copy_N14K_form__atom_t(&v_41.t0, &new_a_0); - FX_COPY_PTR(v_41.t1, &pre_for_code_3); + *km_idx_0, &slit_1, v_37, false, + pre_for_code_2, &v_38, 0), _fx_catch_8); + _fx_copy_N14K_form__atom_t(&v_38.t0, &new_a_0); + FX_COPY_PTR(v_38.t1, &pre_for_code_3); FX_CALL( _fx_M6K_formFM10KExpBinaryN14K_form__kexp_t4N13Ast__binary_tN14K_form__atom_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( _fx_g17K_fast_idx__OpMul, &c1_0, - b_scale_atom_0, &int_ctx_0, &v_42), + b_scale_atom_0, &int_ctx_0, &v_39), _fx_catch_8); fx_str_t slit_2 = FX_MAKE_STR("t"); FX_CALL( _fx_M6K_formFM9kexp2atomT2N14K_form__atom_tLN14K_form__kexp_t5iSN14K_form__kexp_tBLN14K_form__kexp_t( - *km_idx_0, &slit_2, v_42, false, - pre_for_code_3, &v_43, 0), _fx_catch_8); - _fx_copy_N14K_form__atom_t(&v_43.t0, &t_7); - FX_COPY_PTR(v_43.t1, &pre_for_code_4); + *km_idx_0, &slit_2, v_39, false, + pre_for_code_3, &v_40, 0), _fx_catch_8); + _fx_copy_N14K_form__atom_t(&v_40.t0, &t_7); + FX_COPY_PTR(v_40.t1, &pre_for_code_4); FX_CALL( _fx_M6K_formFM10KExpBinaryN14K_form__kexp_t4N13Ast__binary_tN14K_form__atom_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( _fx_g17K_fast_idx__OpSub, &vcase_5->t2, - b_scale_atom_0, &int_ctx_0, &v_44), + b_scale_atom_0, &int_ctx_0, &v_41), _fx_catch_8); fx_str_t slit_3 = FX_MAKE_STR("t"); FX_CALL( _fx_M6K_formFM9kexp2atomT2N14K_form__atom_tLN14K_form__kexp_t5iSN14K_form__kexp_tBLN14K_form__kexp_t( - *km_idx_0, &slit_3, v_44, false, - pre_for_code_4, &v_45, 0), _fx_catch_8); - _fx_copy_N14K_form__atom_t(&v_45.t0, &t2_0); - FX_COPY_PTR(v_45.t1, &pre_for_code_5); + *km_idx_0, &slit_3, v_41, false, + pre_for_code_4, &v_42, 0), _fx_catch_8); + _fx_copy_N14K_form__atom_t(&v_42.t0, &t2_0); + FX_COPY_PTR(v_42.t1, &pre_for_code_5); FX_CALL( _fx_M6K_formFM10KExpBinaryN14K_form__kexp_t4N13Ast__binary_tN14K_form__atom_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( _fx_g17K_fast_idx__OpAdd, &t_7, &t2_0, - &int_ctx_0, &v_46), _fx_catch_8); + &int_ctx_0, &v_43), _fx_catch_8); fx_str_t slit_4 = FX_MAKE_STR("b"); FX_CALL( _fx_M6K_formFM9kexp2atomT2N14K_form__atom_tLN14K_form__kexp_t5iSN14K_form__kexp_tBLN14K_form__kexp_t( - *km_idx_0, &slit_4, v_46, false, - pre_for_code_5, &v_47, 0), _fx_catch_8); - _fx_copy_N14K_form__atom_t(&v_47.t0, &new_b_0); - FX_COPY_PTR(v_47.t1, &pre_for_code_6); + *km_idx_0, &slit_4, v_43, false, + pre_for_code_5, &v_44, 0), _fx_catch_8); + _fx_copy_N14K_form__atom_t(&v_44.t0, &new_b_0); + FX_COPY_PTR(v_44.t1, &pre_for_code_6); _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t( - arrsz_0, &v_48); + arrsz_0, &v_45); _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(1LL, - &v_49); + &v_46); _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t( - &v_49, &v_50); + &v_46, &v_47); FX_CALL( _fx_cons_LN14K_form__atom_t(shift_0, 0, true, - &v_51), _fx_catch_8); + &v_48), _fx_catch_8); FX_CALL( - _fx_cons_LN14K_form__atom_t(scale_0, v_51, - false, &v_51), _fx_catch_8); + _fx_cons_LN14K_form__atom_t(scale_0, v_48, + false, &v_48), _fx_catch_8); FX_CALL( - _fx_cons_LN14K_form__atom_t(&v_50, v_51, false, - &v_51), _fx_catch_8); + _fx_cons_LN14K_form__atom_t(&v_47, v_48, false, + &v_48), _fx_catch_8); FX_CALL( - _fx_cons_LN14K_form__atom_t(&new_b_0, v_51, - false, &v_51), _fx_catch_8); + _fx_cons_LN14K_form__atom_t(&new_b_0, v_48, + false, &v_48), _fx_catch_8); FX_CALL( - _fx_cons_LN14K_form__atom_t(&new_a_0, v_51, - false, &v_51), _fx_catch_8); + _fx_cons_LN14K_form__atom_t(&new_a_0, v_48, + false, &v_48), _fx_catch_8); FX_CALL( - _fx_cons_LN14K_form__atom_t(&v_48, v_51, false, - &v_51), _fx_catch_8); + _fx_cons_LN14K_form__atom_t(&v_45, v_48, false, + &v_48), _fx_catch_8); _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t( - _fx_g20K_fast_idx__KTypVoid, loc_2, &v_52); + _fx_g20K_fast_idx__KTypVoid, loc_2, &v_49); FX_CALL( _fx_M6K_formFM10KExpIntrinN14K_form__kexp_t3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( &_fx_g31K_fast_idx__IntrinCheckIdxRange, - v_51, &v_52, &new_check_0), _fx_catch_8); + v_48, &v_49, &new_check_0), _fx_catch_8); FX_CALL( _fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t( - loc_2, &v_53), _fx_catch_8); + loc_2, &v_50), _fx_catch_8); FX_CALL( _fx_cons_LN14K_form__kexp_t(new_check_0, - pre_for_code_6, true, &v_54), _fx_catch_8); + pre_for_code_6, true, &v_51), _fx_catch_8); _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t( - v_53, v_54, &v_33); + v_50, v_51, &v_30); _fx_catch_8: ; - if (v_54) { - _fx_free_LN14K_form__kexp_t(&v_54); + if (v_51) { + _fx_free_LN14K_form__kexp_t(&v_51); } - if (v_53) { - _fx_free_N14K_form__kexp_t(&v_53); + if (v_50) { + _fx_free_N14K_form__kexp_t(&v_50); } if (new_check_0) { _fx_free_N14K_form__kexp_t(&new_check_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_52); - if (v_51) { - _fx_free_LN14K_form__atom_t(&v_51); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_49); + if (v_48) { + _fx_free_LN14K_form__atom_t(&v_48); } - _fx_free_N14K_form__atom_t(&v_50); - _fx_free_N14K_form__klit_t(&v_49); - _fx_free_N14K_form__atom_t(&v_48); + _fx_free_N14K_form__atom_t(&v_47); + _fx_free_N14K_form__klit_t(&v_46); + _fx_free_N14K_form__atom_t(&v_45); if (pre_for_code_6) { _fx_free_LN14K_form__kexp_t(&pre_for_code_6); } _fx_free_N14K_form__atom_t(&new_b_0); _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t( - &v_47); - if (v_46) { - _fx_free_N14K_form__kexp_t(&v_46); + &v_44); + if (v_43) { + _fx_free_N14K_form__kexp_t(&v_43); } if (pre_for_code_5) { _fx_free_LN14K_form__kexp_t(&pre_for_code_5); } _fx_free_N14K_form__atom_t(&t2_0); _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t( - &v_45); - if (v_44) { - _fx_free_N14K_form__kexp_t(&v_44); + &v_42); + if (v_41) { + _fx_free_N14K_form__kexp_t(&v_41); } if (pre_for_code_4) { _fx_free_LN14K_form__kexp_t(&pre_for_code_4); } _fx_free_N14K_form__atom_t(&t_7); _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t( - &v_43); - if (v_42) { - _fx_free_N14K_form__kexp_t(&v_42); + &v_40); + if (v_39) { + _fx_free_N14K_form__kexp_t(&v_39); } if (pre_for_code_3) { _fx_free_LN14K_form__kexp_t(&pre_for_code_3); } _fx_free_N14K_form__atom_t(&new_a_0); _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t( - &v_41); - if (v_40) { - _fx_free_N14K_form__kexp_t(&v_40); + &v_38); + if (v_37) { + _fx_free_N14K_form__kexp_t(&v_37); } if (pre_for_code_2) { _fx_free_LN14K_form__kexp_t(&pre_for_code_2); } _fx_free_N14K_form__atom_t(&t_6); _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t( - &v_39); - if (v_38) { - _fx_free_N14K_form__kexp_t(&v_38); + &v_36); + if (v_35) { + _fx_free_N14K_form__kexp_t(&v_35); } _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t( &int_ctx_0); @@ -9756,13 +9578,13 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke } } _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(e_0, - pre_for_code_1, &v_33); + pre_for_code_1, &v_30); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_9); } - FX_COPY_PTR(v_33.t0, &new_e_0); - FX_COPY_PTR(v_33.t1, &new_pre_for_code_0); + FX_COPY_PTR(v_30.t0, &new_e_0); + FX_COPY_PTR(v_30.t1, &new_pre_for_code_0); _fx_free_LN14K_form__kexp_t(pre_for_code_0); FX_COPY_PTR(new_pre_for_code_0, pre_for_code_0); FX_COPY_PTR(new_e_0, fx_result); @@ -9781,14 +9603,14 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke _fx_free_N14K_form__atom_t(&c1_0); _fx_free_N14K_form__atom_t(&c0_0); _fx_free_T4N14K_form__atom_tN14K_form__atom_tN14K_form__atom_tLN14K_form__kexp_t( - &v_36); - if (v_35) { - _fx_free_LN14K_form__kexp_t(&v_35); + &v_33); + if (v_32) { + _fx_free_LN14K_form__kexp_t(&v_32); } - if (v_34) { - _fx_free_N14K_form__kexp_t(&v_34); + if (v_31) { + _fx_free_N14K_form__kexp_t(&v_31); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_33); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_30); goto _fx_endmatch_1; } } @@ -9820,39 +9642,39 @@ static int _fx_M10K_fast_idxFM17optimize_idx_kexpN14K_form__kexp_t2N14K_form__ke } } } - bool res_8; + bool res_7; if (tag_0 == 22) { - res_8 = true; + res_7 = true; } else if (tag_0 == 23) { - res_8 = true; + res_7 = true; } else if (tag_0 == 28) { - res_8 = true; + res_7 = true; } else if (tag_0 == 29) { - res_8 = true; + res_7 = true; } else if (tag_0 == 32) { - res_8 = true; + res_7 = true; } else if (tag_0 == 33) { - res_8 = true; + res_7 = true; } else if (tag_0 == 34) { - res_8 = true; + res_7 = true; } else if (tag_0 == 36) { - res_8 = true; + res_7 = true; } else if (tag_0 == 37) { - res_8 = true; + res_7 = true; } else { - res_8 = false; + res_7 = false; } FX_CHECK_EXN(_fx_cleanup); - if (res_8) { + if (res_7) { FX_COPY_PTR(e_0, fx_result); goto _fx_endmatch_2; } FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_0, callb_0, fx_result, 0), _fx_catch_11); @@ -10400,6 +10222,7 @@ static int FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(whole_e_0, &for_loc_0, 0), _fx_cleanup); FX_CALL(_fx_make_rLT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(0, &all_slices_ref_0), _fx_cleanup); FX_CALL(_fx_make_rLN14K_form__kexp_t(pre_for_code0_0, &pre_for_code_ref_0), _fx_cleanup); + _fx_LN14K_form__kexp_t* pre_for_code_0 = &pre_for_code_ref_0->data; FX_CALL(_fx_cons_LN14K_form__kexp_t(whole_e_0, 0, true, &v_0), _fx_cleanup); FX_CALL(_fx_M6K_formFM8declaredNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_0, 256, &inloop_vals_0, 0), _fx_cleanup); _fx_M10K_fast_idxFM7make_fpFPN14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t5rLT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_tR10Ast__loc_tNt10Hashset__t1R9Ast__id_tirLN14K_form__kexp_t( @@ -10415,7 +10238,7 @@ static int &linearize_idx_kexp_0, &v_2), _fx_cleanup); _fx_make_R17K_form__k_callb_t(v_1, v_2, _fx_g18K_fast_idx__None6_, &linearize_idx_callb_0); FX_CALL(linearize_idx_kexp_0.fp(body_0, &linearize_idx_callb_0, &body_1, linearize_idx_kexp_0.fcv), _fx_cleanup); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(body_1, pre_for_code_ref_0->data, fx_result); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(body_1, *pre_for_code_0, fx_result); _fx_cleanup: ; if (all_slices_ref_0) { @@ -10477,17 +10300,17 @@ static int _fx_M10K_fast_idxFM18linearize_idx_kexpN14K_form__kexp_t2N14K_form__k bool res_0; if (v_0.tag == 1) { _fx_R9Ast__id_t* i_0 = &v_0.u.AtomId; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_4; FX_CALL( _fx_M10K_fast_idxFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(inloop_vals_0, i_0, - __fold_result___0 & 9223372036854775807ULL, &v_4, 0), _fx_catch_0); + h_0 & 9223372036854775807ULL, &v_4, 0), _fx_catch_0); bool v_5; if (v_4.t1 >= 0) { v_5 = true; @@ -10519,408 +10342,303 @@ static int _fx_M10K_fast_idxFM18linearize_idx_kexpN14K_form__kexp_t2N14K_form__k t_1 = false; } if (t_1) { - _fx_T4BBBLN14K_form__atom_t __fold_result___1 = {0}; - _fx_LN13K_form__dom_t idxs_1 = 0; - _fx_T4BBBLN14K_form__atom_t v_6 = {0}; _fx_LN14K_form__atom_t idx_atoms_0 = 0; - _fx_LN14K_form__atom_t v_7 = 0; - _fx_LN14K_form__atom_t __fold_result___2 = 0; + _fx_LN13K_form__dom_t idxs_1 = 0; + _fx_LN14K_form__atom_t v_6 = 0; + _fx_LN14K_form__atom_t res_1 = 0; _fx_LN14K_form__atom_t idxs_2 = 0; _fx_N14K_form__atom_t last_idx_0 = {0}; - _fx_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t __fold_result___3 = {0}; - _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t all_slices_1 = 0; - _fx_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t __fold_result___4 = {0}; + _fx_T2R9Ast__id_tLN14K_form__atom_t v_7 = {0}; _fx_Nt6option1N14K_form__atom_t v_8 = {0}; _fx_N14K_form__atom_t slice_0 = {0}; _fx_LN14K_form__atom_t v_9 = 0; _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_10 = {0}; int_ ndims_0 = _fx_M10K_fast_idxFM6lengthi1LN13K_form__dom_t(idxs_0, 0); - _fx_make_T4BBBLN14K_form__atom_t(false, false, false, 0, &__fold_result___1); + bool have_ranges_0 = false; + bool have_slow_0 = false; + bool have_non_invariants_0 = false; int_ i_1 = 0; FX_COPY_PTR(idxs_0, &idxs_1); _fx_LN13K_form__dom_t lst_0 = idxs_1; for (; lst_0; lst_0 = lst_0->tl, i_1 += 1) { - _fx_T4BBBLN14K_form__atom_t v_11 = {0}; - _fx_LN14K_form__atom_t idx_atoms_1 = 0; - _fx_T4BBBLN14K_form__atom_t v_12 = {0}; _fx_N13K_form__dom_t* idx_0 = &lst_0->hd; - _fx_copy_T4BBBLN14K_form__atom_t(&__fold_result___1, &v_11); - bool have_ranges_0 = v_11.t0; - bool have_slow_0 = v_11.t1; - bool have_non_invariants_0 = v_11.t2; - FX_COPY_PTR(v_11.t3, &idx_atoms_1); int tag_1 = idx_0->tag; if (tag_1 == 3) { - _fx_make_T4BBBLN14K_form__atom_t(true, have_slow_0, have_non_invariants_0, idx_atoms_1, &v_12); + have_ranges_0 = true; } else if (tag_1 == 1) { - _fx_LN14K_form__atom_t v_13 = 0; - FX_CALL(_fx_cons_LN14K_form__atom_t(&idx_0->u.DomainElem, idx_atoms_1, true, &v_13), _fx_catch_1); - _fx_make_T4BBBLN14K_form__atom_t(have_ranges_0, true, have_non_invariants_0, v_13, &v_12); + _fx_LN14K_form__atom_t v_11 = 0; + have_slow_0 = true; + FX_CALL(_fx_cons_LN14K_form__atom_t(&idx_0->u.DomainElem, idx_atoms_0, true, &v_11), _fx_catch_1); + _fx_free_LN14K_form__atom_t(&idx_atoms_0); + FX_COPY_PTR(v_11, &idx_atoms_0); _fx_catch_1: ; - if (v_13) { - _fx_free_LN14K_form__atom_t(&v_13); + if (v_11) { + _fx_free_LN14K_form__atom_t(&v_11); } } else if (tag_1 == 2) { - _fx_LN14K_form__atom_t v_14 = 0; + _fx_LN14K_form__atom_t v_12 = 0; _fx_N14K_form__atom_t* x_0 = &idx_0->u.DomainFast; - bool v_15; + bool v_13; if (have_non_invariants_0) { - v_15 = true; + v_13 = true; } else if (i_1 < ndims_0 - 1) { - bool v_16; + bool v_14; if (x_0->tag == 1) { _fx_R9Ast__id_t* i_2 = &x_0->u.AtomId; - uint64_t __fold_result___5 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___5 ^ ((uint64_t)i_2->m ^ 14695981039346656037ULL); - __fold_result___5 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___5 ^ ((uint64_t)i_2->i ^ 14695981039346656037ULL); - __fold_result___5 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___5 ^ ((uint64_t)i_2->j ^ 14695981039346656037ULL); - __fold_result___5 = h_5 * 1099511628211ULL; - _fx_Ta2i v_17; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)i_2->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_2->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_2->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + _fx_Ta2i v_15; FX_CALL( _fx_M10K_fast_idxFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(inloop_vals_0, i_2, - __fold_result___5 & 9223372036854775807ULL, &v_17, 0), _fx_catch_2); - bool v_18; - if (v_17.t1 >= 0) { - v_18 = true; + h_1 & 9223372036854775807ULL, &v_15, 0), _fx_catch_2); + bool v_16; + if (v_15.t1 >= 0) { + v_16 = true; } else { - FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(i_2, loc_0, &v_18, 0), + FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(i_2, loc_0, &v_16, 0), _fx_catch_2); } - v_16 = !v_18; + v_14 = !v_16; _fx_catch_2: ; } else { - v_16 = true; + v_14 = true; } FX_CHECK_EXN(_fx_catch_3); - v_15 = !v_16; + v_13 = !v_14; } else { - v_15 = false; + v_13 = false; } - FX_CALL(_fx_cons_LN14K_form__atom_t(x_0, idx_atoms_1, true, &v_14), _fx_catch_3); - _fx_make_T4BBBLN14K_form__atom_t(have_ranges_0, have_slow_0, v_15, v_14, &v_12); + have_non_invariants_0 = v_13; + FX_CALL(_fx_cons_LN14K_form__atom_t(x_0, idx_atoms_0, true, &v_12), _fx_catch_3); + _fx_free_LN14K_form__atom_t(&idx_atoms_0); + FX_COPY_PTR(v_12, &idx_atoms_0); _fx_catch_3: ; - if (v_14) { - _fx_free_LN14K_form__atom_t(&v_14); + if (v_12) { + _fx_free_LN14K_form__atom_t(&v_12); } } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_4); } FX_CHECK_EXN(_fx_catch_4); - _fx_free_T4BBBLN14K_form__atom_t(&__fold_result___1); - _fx_copy_T4BBBLN14K_form__atom_t(&v_12, &__fold_result___1); _fx_catch_4: ; - _fx_free_T4BBBLN14K_form__atom_t(&v_12); - if (idx_atoms_1) { - _fx_free_LN14K_form__atom_t(&idx_atoms_1); - } - _fx_free_T4BBBLN14K_form__atom_t(&v_11); - FX_CHECK_EXN(_fx_catch_8); + FX_CHECK_EXN(_fx_catch_7); } - _fx_copy_T4BBBLN14K_form__atom_t(&__fold_result___1, &v_6); - bool have_ranges_1 = v_6.t0; - bool have_slow_1 = v_6.t1; - bool have_non_invariants_1 = v_6.t2; - FX_COPY_PTR(v_6.t3, &idx_atoms_0); bool t_2; - if (have_ranges_1) { + if (have_ranges_0) { t_2 = true; } else { - t_2 = have_slow_1; + t_2 = have_slow_0; } bool t_3; if (t_2) { t_3 = true; } else { - t_3 = have_non_invariants_1; + t_3 = have_non_invariants_0; } if (t_3) { FX_COPY_PTR(e_0, fx_result); } else { if (idx_atoms_0 != 0) { - FX_COPY_PTR(idx_atoms_0->tl, &v_7); + FX_COPY_PTR(idx_atoms_0->tl, &v_6); } else { - FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_8); + FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_7); } - FX_CHECK_EXN(_fx_catch_8); - _fx_LN14K_form__atom_t lst_1 = v_7; + FX_CHECK_EXN(_fx_catch_7); + _fx_LN14K_form__atom_t lst_1 = v_6; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN14K_form__atom_t r_0 = 0; + _fx_LN14K_form__atom_t v_17 = 0; _fx_N14K_form__atom_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___2, &r_0); - FX_CALL(_fx_cons_LN14K_form__atom_t(a_0, r_0, false, &r_0), _fx_catch_5); - _fx_free_LN14K_form__atom_t(&__fold_result___2); - FX_COPY_PTR(r_0, &__fold_result___2); + FX_CALL(_fx_cons_LN14K_form__atom_t(a_0, res_1, true, &v_17), _fx_catch_5); + _fx_free_LN14K_form__atom_t(&res_1); + FX_COPY_PTR(v_17, &res_1); _fx_catch_5: ; - if (r_0) { - _fx_free_LN14K_form__atom_t(&r_0); + if (v_17) { + _fx_free_LN14K_form__atom_t(&v_17); } - FX_CHECK_EXN(_fx_catch_8); + FX_CHECK_EXN(_fx_catch_7); } - FX_COPY_PTR(__fold_result___2, &idxs_2); + FX_COPY_PTR(res_1, &idxs_2); if (idx_atoms_0 != 0) { _fx_copy_N14K_form__atom_t(&idx_atoms_0->hd, &last_idx_0); } else { - FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_8); + FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_7); } - FX_CHECK_EXN(_fx_catch_8); - _fx_copy_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&_fx_g16K_fast_idx__None, - &__fold_result___3); - FX_COPY_PTR(*all_slices_0, &all_slices_1); - _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t lst_2 = all_slices_1; - for (; lst_2; lst_2 = lst_2->tl) { - _fx_T2R9Ast__id_tLN14K_form__atom_t a_1 = {0}; - _fx_LN14K_form__atom_t aj_0 = 0; - _fx_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t v_19 = {0}; - _fx_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t* __pat___0 = &lst_2->hd; - _fx_copy_T2R9Ast__id_tLN14K_form__atom_t(&__pat___0->t0, &a_1); - bool __fold_result___6 = true; - _fx_R9Ast__id_t aj_1 = a_1.t0; - bool __fold_result___7 = true; - bool t_4; - if (aj_1.m == arr_0->m) { - t_4 = __fold_result___7; - } - else { - t_4 = false; - } - __fold_result___7 = t_4; - bool t_5; - if (aj_1.i == arr_0->i) { - t_5 = __fold_result___7; - } - else { - t_5 = false; - } - __fold_result___7 = t_5; - bool t_6; - if (aj_1.j == arr_0->j) { - t_6 = __fold_result___7; - } - else { - t_6 = false; - } - __fold_result___7 = t_6; - bool t_7; - if (__fold_result___7) { - t_7 = __fold_result___6; - } - else { - t_7 = false; - } - __fold_result___6 = t_7; - FX_COPY_PTR(a_1.t1, &aj_0); - bool v_20; - FX_CALL(_fx_M10K_fast_idxFM6__eq__B2LN14K_form__atom_tLN14K_form__atom_t(aj_0, idxs_2, &v_20, 0), - _fx_catch_6); - bool t_8; - if (v_20) { - t_8 = __fold_result___6; - } - else { - t_8 = false; - } - __fold_result___6 = t_8; - if (__fold_result___6) { - _fx_M10K_fast_idxFM4SomeNt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t( - __pat___0, &v_19); - _fx_free_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&__fold_result___3); - _fx_copy_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_19, &__fold_result___3); - FX_BREAK(_fx_catch_6); - } - - _fx_catch_6: ; - _fx_free_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_19); - if (aj_0) { - _fx_free_LN14K_form__atom_t(&aj_0); - } - _fx_free_T2R9Ast__id_tLN14K_form__atom_t(&a_1); - FX_CHECK_BREAK(); - FX_CHECK_EXN(_fx_catch_8); - } - _fx_copy_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&__fold_result___3, - &__fold_result___4); - if (__fold_result___4.tag == 2) { - _fx_M10K_fast_idxFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&__fold_result___4.u.Some.t1, - &v_8); - } - else { - _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g18K_fast_idx__None7_, &v_8); - } - FX_CHECK_EXN(_fx_catch_8); + FX_CHECK_EXN(_fx_catch_7); + _fx_make_T2R9Ast__id_tLN14K_form__atom_t(arr_0, idxs_2, &v_7); + FX_CALL( + _fx_M10K_fast_idxFM9assoc_optNt6option1N14K_form__atom_t2LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_tT2R9Ast__id_tLN14K_form__atom_t( + *all_slices_0, &v_7, &v_8, 0), _fx_catch_7); if (v_8.tag == 2) { _fx_copy_N14K_form__atom_t(&v_8.u.Some, &slice_0); } else { - _fx_N14K_form__atom_t v_21 = {0}; - _fx_LN14K_form__atom_t v_22 = 0; - _fx_N14K_form__ktyp_t v_23 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_24 = {0}; + _fx_N14K_form__atom_t v_18 = {0}; + _fx_LN14K_form__atom_t v_19 = 0; + _fx_N14K_form__ktyp_t v_20 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_21 = {0}; _fx_N14K_form__kexp_t get_slice_exp_0 = 0; - _fx_N14K_form__ktyp_t v_25 = 0; - _fx_R16Ast__val_flags_t v_26 = {0}; - _fx_Nt6option1N14K_form__kexp_t v_27 = {0}; + _fx_N14K_form__ktyp_t v_22 = 0; + _fx_R16Ast__val_flags_t v_23 = {0}; + _fx_Nt6option1N14K_form__kexp_t v_24 = {0}; _fx_LN14K_form__kexp_t new_pre_for_code_0 = 0; _fx_N14K_form__atom_t slice_1 = {0}; - _fx_T2R9Ast__id_tLN14K_form__atom_t v_28 = {0}; - _fx_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t v_29 = {0}; - _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t v_30 = 0; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(arr_0, &v_21); - FX_CALL(_fx_cons_LN14K_form__atom_t(&v_21, idxs_2, true, &v_22), _fx_catch_7); - FX_CALL(_fx_M6K_formFM14KTypRawPointerN14K_form__ktyp_t1N14K_form__ktyp_t(t_0, &v_23), _fx_catch_7); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(v_23, for_loc_0, &v_24); + _fx_T2R9Ast__id_tLN14K_form__atom_t v_25 = {0}; + _fx_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t v_26 = {0}; + _fx_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t v_27 = 0; + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(arr_0, &v_18); + FX_CALL(_fx_cons_LN14K_form__atom_t(&v_18, idxs_2, true, &v_19), _fx_catch_6); + FX_CALL(_fx_M6K_formFM14KTypRawPointerN14K_form__ktyp_t1N14K_form__ktyp_t(t_0, &v_20), _fx_catch_6); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(v_20, for_loc_0, &v_21); FX_CALL( _fx_M6K_formFM10KExpIntrinN14K_form__kexp_t3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g26K_fast_idx__IntrinGetSlice, v_22, &v_24, &get_slice_exp_0), _fx_catch_7); + &_fx_g26K_fast_idx__IntrinGetSlice, v_19, &v_21, &get_slice_exp_0), _fx_catch_6); _fx_R9Ast__id_t slice_id_0; fx_str_t slit_0 = FX_MAKE_STR("ptr"); - FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(cv_0->t3, &slit_0, &slice_id_0, 0), _fx_catch_7); - FX_CALL(_fx_M6K_formFM14KTypRawPointerN14K_form__ktyp_t1N14K_form__ktyp_t(t_0, &v_25), _fx_catch_7); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_26, 0), _fx_catch_7); - _fx_M10K_fast_idxFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(get_slice_exp_0, &v_27); + FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(cv_0->t3, &slit_0, &slice_id_0, 0), _fx_catch_6); + FX_CALL(_fx_M6K_formFM14KTypRawPointerN14K_form__ktyp_t1N14K_form__ktyp_t(t_0, &v_22), _fx_catch_6); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_23, 0), _fx_catch_6); + _fx_M10K_fast_idxFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(get_slice_exp_0, &v_24); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &slice_id_0, v_25, &v_26, &v_27, *pre_for_code_0, for_loc_0, &new_pre_for_code_0, 0), - _fx_catch_7); + &slice_id_0, v_22, &v_23, &v_24, *pre_for_code_0, for_loc_0, &new_pre_for_code_0, 0), + _fx_catch_6); _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&slice_id_0, &slice_1); - _fx_make_T2R9Ast__id_tLN14K_form__atom_t(arr_0, idxs_2, &v_28); - _fx_make_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_28, &slice_1, &v_29); - FX_CALL(_fx_cons_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_29, *all_slices_0, true, &v_30), - _fx_catch_7); + _fx_make_T2R9Ast__id_tLN14K_form__atom_t(arr_0, idxs_2, &v_25); + _fx_make_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_25, &slice_1, &v_26); + FX_CALL(_fx_cons_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_26, *all_slices_0, true, &v_27), + _fx_catch_6); _fx_free_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(all_slices_0); - FX_COPY_PTR(v_30, all_slices_0); + FX_COPY_PTR(v_27, all_slices_0); _fx_free_LN14K_form__kexp_t(pre_for_code_0); FX_COPY_PTR(new_pre_for_code_0, pre_for_code_0); _fx_copy_N14K_form__atom_t(&slice_1, &slice_0); - _fx_catch_7: ; - if (v_30) { - _fx_free_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_30); + _fx_catch_6: ; + if (v_27) { + _fx_free_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_27); } - _fx_free_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_29); - _fx_free_T2R9Ast__id_tLN14K_form__atom_t(&v_28); + _fx_free_T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&v_26); + _fx_free_T2R9Ast__id_tLN14K_form__atom_t(&v_25); _fx_free_N14K_form__atom_t(&slice_1); if (new_pre_for_code_0) { _fx_free_LN14K_form__kexp_t(&new_pre_for_code_0); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_27); - _fx_free_R16Ast__val_flags_t(&v_26); - if (v_25) { - _fx_free_N14K_form__ktyp_t(&v_25); + _fx_free_Nt6option1N14K_form__kexp_t(&v_24); + _fx_free_R16Ast__val_flags_t(&v_23); + if (v_22) { + _fx_free_N14K_form__ktyp_t(&v_22); } if (get_slice_exp_0) { _fx_free_N14K_form__kexp_t(&get_slice_exp_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_24); - if (v_23) { - _fx_free_N14K_form__ktyp_t(&v_23); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_21); + if (v_20) { + _fx_free_N14K_form__ktyp_t(&v_20); } - if (v_22) { - _fx_free_LN14K_form__atom_t(&v_22); + if (v_19) { + _fx_free_LN14K_form__atom_t(&v_19); } - _fx_free_N14K_form__atom_t(&v_21); + _fx_free_N14K_form__atom_t(&v_18); } - FX_CHECK_EXN(_fx_catch_8); - FX_CALL(_fx_cons_LN14K_form__atom_t(&last_idx_0, 0, true, &v_9), _fx_catch_8); - FX_CALL(_fx_cons_LN14K_form__atom_t(&slice_0, v_9, false, &v_9), _fx_catch_8); + FX_CHECK_EXN(_fx_catch_7); + FX_CALL(_fx_cons_LN14K_form__atom_t(&last_idx_0, 0, true, &v_9), _fx_catch_7); + FX_CALL(_fx_cons_LN14K_form__atom_t(&slice_0, v_9, false, &v_9), _fx_catch_7); _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_0, loc_0, &v_10); FX_CALL( _fx_M6K_formFM10KExpIntrinN14K_form__kexp_t3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g29K_fast_idx__IntrinAccessSlice, v_9, &v_10, fx_result), _fx_catch_8); + &_fx_g29K_fast_idx__IntrinAccessSlice, v_9, &v_10, fx_result), _fx_catch_7); } - _fx_catch_8: ; + _fx_catch_7: ; _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_10); if (v_9) { _fx_free_LN14K_form__atom_t(&v_9); } _fx_free_N14K_form__atom_t(&slice_0); _fx_free_Nt6option1N14K_form__atom_t(&v_8); - _fx_free_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&__fold_result___4); - if (all_slices_1) { - _fx_free_LT2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&all_slices_1); - } - _fx_free_Nt6option1T2T2R9Ast__id_tLN14K_form__atom_tN14K_form__atom_t(&__fold_result___3); + _fx_free_T2R9Ast__id_tLN14K_form__atom_t(&v_7); _fx_free_N14K_form__atom_t(&last_idx_0); if (idxs_2) { _fx_free_LN14K_form__atom_t(&idxs_2); } - if (__fold_result___2) { - _fx_free_LN14K_form__atom_t(&__fold_result___2); - } - if (v_7) { - _fx_free_LN14K_form__atom_t(&v_7); + if (res_1) { + _fx_free_LN14K_form__atom_t(&res_1); } - if (idx_atoms_0) { - _fx_free_LN14K_form__atom_t(&idx_atoms_0); + if (v_6) { + _fx_free_LN14K_form__atom_t(&v_6); } - _fx_free_T4BBBLN14K_form__atom_t(&v_6); if (idxs_1) { _fx_free_LN13K_form__dom_t(&idxs_1); } - _fx_free_T4BBBLN14K_form__atom_t(&__fold_result___1); + if (idx_atoms_0) { + _fx_free_LN14K_form__atom_t(&idx_atoms_0); + } goto _fx_endmatch_0; } } } } } - bool res_1; + bool res_2; if (tag_0 == 22) { - res_1 = true; + res_2 = true; } else if (tag_0 == 23) { - res_1 = true; + res_2 = true; } else if (tag_0 == 28) { - res_1 = true; + res_2 = true; } else if (tag_0 == 29) { - res_1 = true; + res_2 = true; } else if (tag_0 == 32) { - res_1 = true; + res_2 = true; } else if (tag_0 == 33) { - res_1 = true; + res_2 = true; } else if (tag_0 == 34) { - res_1 = true; + res_2 = true; } else if (tag_0 == 36) { - res_1 = true; + res_2 = true; } else if (tag_0 == 37) { - res_1 = true; + res_2 = true; } else { - res_1 = false; + res_2 = false; } FX_CHECK_EXN(_fx_cleanup); - if (res_1) { + if (res_2) { FX_COPY_PTR(e_0, fx_result); goto _fx_endmatch_0; } - FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_0, callb_0, fx_result, 0), _fx_catch_9); + FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_0, callb_0, fx_result, 0), _fx_catch_8); -_fx_catch_9: ; +_fx_catch_8: ; _fx_endmatch_0: ; @@ -11009,7 +10727,7 @@ static int _fx_M10K_fast_idxFM14process_kexp1_N14K_form__kexp_t2N14K_form__kexp_ _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_0); } else if (tag_0 == 26) { - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t __fold_result___0 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t res_0 = 0; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t for_clauses_0 = 0; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t rev_clauses_0 = 0; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_2 = {0}; @@ -11018,7 +10736,7 @@ static int _fx_M10K_fast_idxFM14process_kexp1_N14K_form__kexp_t2N14K_form__kexp_ _fx_LR9Ast__id_t idxl_0 = 0; _fx_N14K_form__kexp_t v_3 = 0; _fx_LN14K_form__kexp_t v_4 = 0; - _fx_LN14K_form__kexp_t __fold_result___1 = 0; + _fx_LN14K_form__kexp_t res_1 = 0; _fx_LN14K_form__kexp_t v_5 = 0; _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_6 = {0}; _fx_N14K_form__kexp_t body_2 = 0; @@ -11030,7 +10748,7 @@ static int _fx_M10K_fast_idxFM14process_kexp1_N14K_form__kexp_t2N14K_form__kexp_ _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_9 = {0}; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_10 = 0; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_11 = 0; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t __fold_result___2 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t res_2 = 0; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t new_clauses_0 = 0; _fx_N14K_form__kexp_t body_3 = 0; _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_12 = {0}; @@ -11046,20 +10764,19 @@ static int _fx_M10K_fast_idxFM14process_kexp1_N14K_form__kexp_t2N14K_form__kexp_ FX_COPY_PTR(for_clauses_1, &for_clauses_0); _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t lst_0 = for_clauses_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t r_0 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_16 = 0; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(a_0, res_0, true, &v_16), _fx_catch_1); + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&res_0); + FX_COPY_PTR(v_16, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&r_0); + if (v_16) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_16); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___0, &rev_clauses_0); + FX_COPY_PTR(res_0, &rev_clauses_0); if (rev_clauses_0 != 0) { _fx_copy_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&rev_clauses_0->hd, &v_2); } @@ -11076,20 +10793,19 @@ static int _fx_M10K_fast_idxFM14process_kexp1_N14K_form__kexp_t2N14K_form__kexp_ FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(pre_for_code0_0, &v_4, 0), _fx_catch_4); _fx_LN14K_form__kexp_t lst_1 = v_4; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN14K_form__kexp_t r_1 = 0; + _fx_LN14K_form__kexp_t v_17 = 0; _fx_N14K_form__kexp_t a_1 = lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, r_1, false, &r_1), _fx_catch_2); - _fx_free_LN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, res_1, true, &v_17), _fx_catch_2); + _fx_free_LN14K_form__kexp_t(&res_1); + FX_COPY_PTR(v_17, &res_1); _fx_catch_2: ; - if (r_1) { - _fx_free_LN14K_form__kexp_t(&r_1); + if (v_17) { + _fx_free_LN14K_form__kexp_t(&v_17); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___1, &v_5); + FX_COPY_PTR(res_1, &v_5); FX_CALL( _fx_M10K_fast_idxFM22optimize_for_linearizeT2N14K_form__kexp_tLN14K_form__kexp_t4N14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_ti( v_3, body_4, v_5, *km_idx_0, &v_6, 0), _fx_catch_4); @@ -11118,20 +10834,19 @@ static int _fx_M10K_fast_idxFM14process_kexp1_N14K_form__kexp_t2N14K_form__kexp_ FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_9, v_10, true, &v_11), _fx_catch_4); _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t lst_2 = v_11; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t r_2 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_18 = 0; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* a_2 = &lst_2->hd; - FX_COPY_PTR(__fold_result___2, &r_2); - FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(a_2, r_2, false, &r_2), _fx_catch_3); - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&__fold_result___2); - FX_COPY_PTR(r_2, &__fold_result___2); + FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(a_2, res_2, true, &v_18), _fx_catch_3); + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&res_2); + FX_COPY_PTR(v_18, &res_2); _fx_catch_3: ; - if (r_2) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&r_2); + if (v_18) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_18); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___2, &new_clauses_0); + FX_COPY_PTR(res_2, &new_clauses_0); FX_CALL( _fx_M10K_fast_idxFM14process_kexp1_N14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t(body_2, callb_0, &body_3, fx_fv), _fx_catch_4); @@ -11157,8 +10872,8 @@ static int _fx_M10K_fast_idxFM14process_kexp1_N14K_form__kexp_t2N14K_form__kexp_ if (new_clauses_0) { _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&new_clauses_0); } - if (__fold_result___2) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&__fold_result___2); + if (res_2) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&res_2); } if (v_11) { _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_11); @@ -11187,8 +10902,8 @@ static int _fx_M10K_fast_idxFM14process_kexp1_N14K_form__kexp_t2N14K_form__kexp_ if (v_5) { _fx_free_LN14K_form__kexp_t(&v_5); } - if (__fold_result___1) { - _fx_free_LN14K_form__kexp_t(&__fold_result___1); + if (res_1) { + _fx_free_LN14K_form__kexp_t(&res_1); } if (v_4) { _fx_free_LN14K_form__kexp_t(&v_4); @@ -11210,8 +10925,8 @@ static int _fx_M10K_fast_idxFM14process_kexp1_N14K_form__kexp_t2N14K_form__kexp_ if (for_clauses_0) { _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&for_clauses_0); } - if (__fold_result___0) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&__fold_result___0); + if (res_0) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&res_0); } } else { diff --git a/compiler/bootstrap/K_flatten.c b/compiler/bootstrap/K_flatten.c index 313cd3d1..80acfe55 100644 --- a/compiler/bootstrap/K_flatten.c +++ b/compiler/bootstrap/K_flatten.c @@ -788,6 +788,11 @@ typedef struct _fx_T2N14K_form__kexp_tLN14K_form__kexp_t { struct _fx_LN14K_form__kexp_t_data_t* t1; } _fx_T2N14K_form__kexp_tLN14K_form__kexp_t; +typedef struct _fx_Ta2LN14K_form__kexp_t { + struct _fx_LN14K_form__kexp_t_data_t* t0; + struct _fx_LN14K_form__kexp_t_data_t* t1; +} _fx_Ta2LN14K_form__kexp_t; + typedef struct { int_ rc; int_ data; @@ -2703,6 +2708,27 @@ static void _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t( FX_COPY_PTR(t1, &fx_result->t1); } +static void _fx_free_Ta2LN14K_form__kexp_t(struct _fx_Ta2LN14K_form__kexp_t* dst) +{ + _fx_free_LN14K_form__kexp_t(&dst->t0); + _fx_free_LN14K_form__kexp_t(&dst->t1); +} + +static void _fx_copy_Ta2LN14K_form__kexp_t(struct _fx_Ta2LN14K_form__kexp_t* src, struct _fx_Ta2LN14K_form__kexp_t* dst) +{ + FX_COPY_PTR(src->t0, &dst->t0); + FX_COPY_PTR(src->t1, &dst->t1); +} + +static void _fx_make_Ta2LN14K_form__kexp_t( + struct _fx_LN14K_form__kexp_t_data_t* t0, + struct _fx_LN14K_form__kexp_t_data_t* t1, + struct _fx_Ta2LN14K_form__kexp_t* fx_result) +{ + FX_COPY_PTR(t0, &fx_result->t0); + FX_COPY_PTR(t1, &fx_result->t1); +} + _fx_Nt6option1FPN14K_form__atom_t3N14K_form__atom_tR10Ast__loc_tR17K_form__k_callb_t _fx_g15K_flatten__None = 0; FX_EXTERN_C int _fx_M9K_flattenFM7flattenLN14K_form__kexp_t2LN14K_form__kexp_tR17K_form__k_callb_t( struct _fx_LN14K_form__kexp_t_data_t*, @@ -2973,7 +2999,7 @@ FX_EXTERN_C int _fx_M9K_flattenFM13flatten_kexp_N14K_form__kexp_t2N14K_form__kex _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_10 = vcase_3->t0; if (v_10 != 0) { _fx_LN14K_form__kexp_t v_11 = 0; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; _fx_LN14K_form__kexp_t code_2 = 0; _fx_N14K_form__kexp_t v_12 = 0; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_13 = {0}; @@ -2986,23 +3012,22 @@ FX_EXTERN_C int _fx_M9K_flattenFM13flatten_kexp_N14K_form__kexp_t2N14K_form__kex FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(e0_0, &v_11, 0), _fx_catch_5); _fx_LN14K_form__kexp_t lst_0 = v_11; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_17 = 0; _fx_N14K_form__kexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_4); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_17), _fx_catch_4); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_17, &res_0); _fx_catch_4: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_17) { + _fx_free_LN14K_form__kexp_t(&v_17); } FX_CHECK_EXN(_fx_catch_5); } - FX_COPY_PTR(__fold_result___0, &code_2); - _fx_R10Ast__loc_t v_17; - FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(e0_0, &v_17, 0), _fx_catch_5); - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&v_17, &v_12), _fx_catch_5); + FX_COPY_PTR(res_0, &code_2); + _fx_R10Ast__loc_t v_18; + FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(e0_0, &v_18, 0), _fx_catch_5); + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&v_18, &v_12), _fx_catch_5); _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(v_12, v_16->t1, v_16->t2, &v_13); FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_13, v_10->tl, true, &v_14), _fx_catch_5); @@ -3031,8 +3056,8 @@ FX_EXTERN_C int _fx_M9K_flattenFM13flatten_kexp_N14K_form__kexp_t2N14K_form__kex if (code_2) { _fx_free_LN14K_form__kexp_t(&code_2); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } if (v_11) { _fx_free_LN14K_form__kexp_t(&v_11); @@ -3052,10 +3077,10 @@ FX_EXTERN_C int _fx_M9K_flattenFM13flatten_kexp_N14K_form__kexp_t2N14K_form__kex } else if (tag_0 == 29) { _fx_N14K_form__kexp_t body_0 = 0; - _fx_LN14K_form__kexp_t v_18 = 0; - _fx_LN14K_form__kexp_t __fold_result___1 = 0; + _fx_LN14K_form__kexp_t v_19 = 0; + _fx_LN14K_form__kexp_t res_1 = 0; _fx_LN14K_form__kexp_t body_code_0 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_19 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_20 = {0}; _fx_N14K_form__kexp_t c_1 = 0; _fx_LN14K_form__kexp_t body_code_1 = 0; _fx_N14K_form__kexp_t body_1 = 0; @@ -3064,28 +3089,27 @@ FX_EXTERN_C int _fx_M9K_flattenFM13flatten_kexp_N14K_form__kexp_t2N14K_form__kex FX_CALL( _fx_M9K_flattenFM13flatten_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t(vcase_4->t0, callb_0, &body_0, 0), _fx_catch_8); - FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(body_0, &v_18, 0), _fx_catch_8); - _fx_LN14K_form__kexp_t lst_1 = v_18; + FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(body_0, &v_19, 0), _fx_catch_8); + _fx_LN14K_form__kexp_t lst_1 = v_19; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN14K_form__kexp_t r_1 = 0; + _fx_LN14K_form__kexp_t v_21 = 0; _fx_N14K_form__kexp_t a_1 = lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, r_1, false, &r_1), _fx_catch_7); - _fx_free_LN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, res_1, true, &v_21), _fx_catch_7); + _fx_free_LN14K_form__kexp_t(&res_1); + FX_COPY_PTR(v_21, &res_1); _fx_catch_7: ; - if (r_1) { - _fx_free_LN14K_form__kexp_t(&r_1); + if (v_21) { + _fx_free_LN14K_form__kexp_t(&v_21); } FX_CHECK_EXN(_fx_catch_8); } - FX_COPY_PTR(__fold_result___1, &body_code_0); + FX_COPY_PTR(res_1, &body_code_0); FX_CALL( _fx_M9K_flattenFM11try_flattenT2N14K_form__kexp_tLN14K_form__kexp_t3N14K_form__kexp_tLN14K_form__kexp_tR17K_form__k_callb_t( - vcase_4->t1, body_code_0, callb_0, &v_19, 0), _fx_catch_8); - FX_COPY_PTR(v_19.t0, &c_1); - FX_COPY_PTR(v_19.t1, &body_code_1); + vcase_4->t1, body_code_0, callb_0, &v_20, 0), _fx_catch_8); + FX_COPY_PTR(v_20.t0, &c_1); + FX_COPY_PTR(v_20.t1, &body_code_1); FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(body_code_1, loc_0, &body_1, 0), _fx_catch_8); FX_CALL( @@ -3102,43 +3126,43 @@ FX_EXTERN_C int _fx_M9K_flattenFM13flatten_kexp_N14K_form__kexp_t2N14K_form__kex if (c_1) { _fx_free_N14K_form__kexp_t(&c_1); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_19); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_20); if (body_code_0) { _fx_free_LN14K_form__kexp_t(&body_code_0); } - if (__fold_result___1) { - _fx_free_LN14K_form__kexp_t(&__fold_result___1); + if (res_1) { + _fx_free_LN14K_form__kexp_t(&res_1); } - if (v_18) { - _fx_free_LN14K_form__kexp_t(&v_18); + if (v_19) { + _fx_free_LN14K_form__kexp_t(&v_19); } if (body_0) { _fx_free_N14K_form__kexp_t(&body_0); } } else if (tag_0 == 31) { - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_20 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_22 = {0}; _fx_N14K_form__kexp_t e_3 = 0; _fx_LN14K_form__kexp_t code_3 = 0; _fx_N14K_form__kexp_t new_defval_0 = 0; - _fx_LN14K_form__kexp_t v_21 = 0; + _fx_LN14K_form__kexp_t v_23 = 0; _fx_T3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t* vcase_5 = &e_0->u.KDefVal; _fx_R10Ast__loc_t* loc_1 = &vcase_5->t2; FX_CALL( _fx_M9K_flattenFM11try_flattenT2N14K_form__kexp_tLN14K_form__kexp_t3N14K_form__kexp_tLN14K_form__kexp_tR17K_form__k_callb_t( - vcase_5->t1, 0, callb_0, &v_20, 0), _fx_catch_9); - FX_COPY_PTR(v_20.t0, &e_3); - FX_COPY_PTR(v_20.t1, &code_3); + vcase_5->t1, 0, callb_0, &v_22, 0), _fx_catch_9); + FX_COPY_PTR(v_22.t0, &e_3); + FX_COPY_PTR(v_22.t1, &code_3); FX_CALL( _fx_M6K_formFM7KDefValN14K_form__kexp_t3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t(&vcase_5->t0, e_3, loc_1, &new_defval_0), _fx_catch_9); - FX_CALL(_fx_cons_LN14K_form__kexp_t(new_defval_0, code_3, true, &v_21), _fx_catch_9); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_21, loc_1, fx_result, 0), + FX_CALL(_fx_cons_LN14K_form__kexp_t(new_defval_0, code_3, true, &v_23), _fx_catch_9); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_23, loc_1, fx_result, 0), _fx_catch_9); _fx_catch_9: ; - if (v_21) { - _fx_free_LN14K_form__kexp_t(&v_21); + if (v_23) { + _fx_free_LN14K_form__kexp_t(&v_23); } if (new_defval_0) { _fx_free_N14K_form__kexp_t(&new_defval_0); @@ -3149,7 +3173,7 @@ FX_EXTERN_C int _fx_M9K_flattenFM13flatten_kexp_N14K_form__kexp_t2N14K_form__kex if (e_3) { _fx_free_N14K_form__kexp_t(&e_3); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_20); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_22); } else { FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_0, callb_0, fx_result, 0), @@ -3201,7 +3225,7 @@ FX_EXTERN_C int if (tag_0 == 10) { _fx_LN14K_form__kexp_t nested_list_0 = new_e_0->u.KExpSeq.t0; if (nested_list_0 != 0) { - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; _fx_LN14K_form__kexp_t nested_list_1 = 0; _fx_LN14K_form__kexp_t rnested_0 = 0; _fx_N14K_form__kexp_t v_2 = 0; @@ -3210,20 +3234,19 @@ FX_EXTERN_C int FX_COPY_PTR(nested_list_0, &nested_list_1); _fx_LN14K_form__kexp_t lst_0 = nested_list_1; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_5 = 0; _fx_N14K_form__kexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_5), _fx_catch_1); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_5, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_5) { + _fx_free_LN14K_form__kexp_t(&v_5); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___0, &rnested_0); + FX_COPY_PTR(res_0, &rnested_0); if (rnested_0 != 0) { FX_COPY_PTR(rnested_0->hd, &v_2); } @@ -3245,23 +3268,23 @@ FX_EXTERN_C int FX_COPY_PTR(v_3, &v_4); } else { - _fx_LN14K_form__kexp_t v_5 = 0; + _fx_LN14K_form__kexp_t v_6 = 0; _fx_LN14K_form__kexp_t lstend_0 = 0; _fx_LN14K_form__kexp_t lst_1 = v_3; for (; lst_1; lst_1 = lst_1->tl) { _fx_N14K_form__kexp_t x_0 = lst_1->hd; _fx_LN14K_form__kexp_t node_0 = 0; FX_CALL(_fx_cons_LN14K_form__kexp_t(x_0, 0, false, &node_0), _fx_catch_2); - FX_LIST_APPEND(v_5, lstend_0, node_0); + FX_LIST_APPEND(v_6, lstend_0, node_0); _fx_catch_2: ; FX_CHECK_EXN(_fx_catch_3); } - _fx_M9K_flattenFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_5, code_0, &v_4, 0); + _fx_M9K_flattenFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_6, code_0, &v_4, 0); _fx_catch_3: ; - if (v_5) { - _fx_free_LN14K_form__kexp_t(&v_5); + if (v_6) { + _fx_free_LN14K_form__kexp_t(&v_6); } } FX_CHECK_EXN(_fx_catch_4); @@ -3283,8 +3306,8 @@ FX_EXTERN_C int if (nested_list_1) { _fx_free_LN14K_form__kexp_t(&nested_list_1); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } goto _fx_endmatch_0; } @@ -3306,85 +3329,85 @@ FX_EXTERN_C int _fx_M9K_flattenFM7flattenLN14K_form__kexp_t2LN14K_form__kexp_tR1 struct _fx_LN14K_form__kexp_t_data_t** fx_result, void* fx_fv) { - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); _fx_LN14K_form__kexp_t lst_0 = code_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t code_1 = 0; _fx_N14K_form__kexp_t new_e_0 = 0; _fx_LN14K_form__kexp_t v_0 = 0; _fx_N14K_form__kexp_t e_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &code_1); FX_CALL( _fx_M9K_flattenFM13flatten_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t(e_0, callb_0, &new_e_0, 0), _fx_catch_5); if (FX_REC_VARIANT_TAG(new_e_0) == 10) { - _fx_LN14K_form__kexp_t __fold_result___1 = 0; + _fx_LN14K_form__kexp_t res_1 = 0; _fx_LN14K_form__kexp_t nested_elist_0 = 0; _fx_LN14K_form__kexp_t v_1 = 0; + _fx_Ta2LN14K_form__kexp_t v_2 = {0}; FX_COPY_PTR(new_e_0->u.KExpSeq.t0, &nested_elist_0); _fx_LN14K_form__kexp_t lst_1 = nested_elist_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_3 = 0; _fx_N14K_form__kexp_t a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_1, true, &v_3), _fx_catch_0); + _fx_free_LN14K_form__kexp_t(&res_1); + FX_COPY_PTR(v_3, &res_1); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_3) { + _fx_free_LN14K_form__kexp_t(&v_3); } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___1, &v_1); - if (v_1 == 0) { - FX_COPY_PTR(code_1, &v_0); + FX_COPY_PTR(res_1, &v_1); + _fx_make_Ta2LN14K_form__kexp_t(v_1, res_0, &v_2); + if (v_2.t0 == 0) { + FX_COPY_PTR(res_0, &v_0); } - else if (code_1 == 0) { + else if (v_2.t1 == 0) { FX_COPY_PTR(v_1, &v_0); } else { - _fx_LN14K_form__kexp_t v_2 = 0; + _fx_LN14K_form__kexp_t v_4 = 0; _fx_LN14K_form__kexp_t lstend_0 = 0; _fx_LN14K_form__kexp_t lst_2 = v_1; for (; lst_2; lst_2 = lst_2->tl) { _fx_N14K_form__kexp_t x_0 = lst_2->hd; _fx_LN14K_form__kexp_t node_0 = 0; FX_CALL(_fx_cons_LN14K_form__kexp_t(x_0, 0, false, &node_0), _fx_catch_1); - FX_LIST_APPEND(v_2, lstend_0, node_0); + FX_LIST_APPEND(v_4, lstend_0, node_0); _fx_catch_1: ; FX_CHECK_EXN(_fx_catch_2); } - _fx_M9K_flattenFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_2, code_1, &v_0, 0); + _fx_M9K_flattenFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_4, res_0, &v_0, 0); _fx_catch_2: ; - if (v_2) { - _fx_free_LN14K_form__kexp_t(&v_2); + if (v_4) { + _fx_free_LN14K_form__kexp_t(&v_4); } } FX_CHECK_EXN(_fx_catch_3); _fx_catch_3: ; + _fx_free_Ta2LN14K_form__kexp_t(&v_2); if (v_1) { _fx_free_LN14K_form__kexp_t(&v_1); } if (nested_elist_0) { _fx_free_LN14K_form__kexp_t(&nested_elist_0); } - if (__fold_result___1) { - _fx_free_LN14K_form__kexp_t(&__fold_result___1); + if (res_1) { + _fx_free_LN14K_form__kexp_t(&res_1); } } else { - FX_CALL(_fx_cons_LN14K_form__kexp_t(new_e_0, code_1, true, &v_0), _fx_catch_4); _fx_catch_4: ; + FX_CALL(_fx_cons_LN14K_form__kexp_t(new_e_0, res_0, true, &v_0), _fx_catch_4); _fx_catch_4: ; } FX_CHECK_EXN(_fx_catch_5); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(v_0, &__fold_result___0); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_5: ; if (v_0) { @@ -3393,16 +3416,13 @@ FX_EXTERN_C int _fx_M9K_flattenFM7flattenLN14K_form__kexp_t2LN14K_form__kexp_tR1 if (new_e_0) { _fx_free_N14K_form__kexp_t(&new_e_0); } - if (code_1) { - _fx_free_LN14K_form__kexp_t(&code_1); - } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } return fx_status; } @@ -3436,7 +3456,7 @@ FX_EXTERN_C int _fx_M9K_flattenFM11flatten_allLR17K_form__kmodule_t1LR17K_form__ for (; lst_0; lst_0 = lst_0->tl) { _fx_LN14K_form__kexp_t km_top_0 = 0; _fx_LN14K_form__kexp_t v_2 = 0; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; _fx_LN14K_form__kexp_t new_top_0 = 0; _fx_R17K_form__kmodule_t rec_0 = {0}; _fx_R17K_form__kmodule_t* km_0 = &lst_0->hd; @@ -3445,20 +3465,19 @@ FX_EXTERN_C int _fx_M9K_flattenFM11flatten_allLR17K_form__kmodule_t1LR17K_form__ _fx_catch_1); _fx_LN14K_form__kexp_t lst_1 = v_2; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_3 = 0; _fx_N14K_form__kexp_t a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_3), _fx_catch_0); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_3, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_3) { + _fx_free_LN14K_form__kexp_t(&v_3); } FX_CHECK_EXN(_fx_catch_1); } - FX_COPY_PTR(__fold_result___0, &new_top_0); + FX_COPY_PTR(res_0, &new_top_0); _fx_make_R17K_form__kmodule_t(&km_0->km_name, km_0->km_idx, km_0->km_toposort_idx, &km_0->km_cname, new_top_0, km_0->km_deps, km_0->km_skip, km_0->km_main, &km_0->km_pragmas, &rec_0); _fx_LR17K_form__kmodule_t node_0 = 0; @@ -3470,8 +3489,8 @@ FX_EXTERN_C int _fx_M9K_flattenFM11flatten_allLR17K_form__kmodule_t1LR17K_form__ if (new_top_0) { _fx_free_LN14K_form__kexp_t(&new_top_0); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } if (v_2) { _fx_free_LN14K_form__kexp_t(&v_2); diff --git a/compiler/bootstrap/K_form.c b/compiler/bootstrap/K_form.c index a7980206..37aebf2f 100644 --- a/compiler/bootstrap/K_form.c +++ b/compiler/bootstrap/K_form.c @@ -6441,28 +6441,27 @@ FX_EXTERN_C int _fx_M6K_formFM3revLT2BN14K_form__atom_t1LT2BN14K_form__atom_t( struct _fx_LT2BN14K_form__atom_t_data_t** fx_result, void* fx_fv) { - _fx_LT2BN14K_form__atom_t __fold_result___0 = 0; + _fx_LT2BN14K_form__atom_t res_0 = 0; int fx_status = 0; _fx_LT2BN14K_form__atom_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2BN14K_form__atom_t r_0 = 0; + _fx_LT2BN14K_form__atom_t v_0 = 0; _fx_T2BN14K_form__atom_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2BN14K_form__atom_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2BN14K_form__atom_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2BN14K_form__atom_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2BN14K_form__atom_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2BN14K_form__atom_t(&r_0); + if (v_0) { + _fx_free_LT2BN14K_form__atom_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2BN14K_form__atom_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2BN14K_form__atom_t(&res_0); } return fx_status; } @@ -6528,9 +6527,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -6579,26 +6581,28 @@ FX_EXTERN_C int _fx_M6K_formFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M6K_formFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -6635,32 +6639,11 @@ FX_EXTERN_C int _fx_M6K_formFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -6694,17 +6677,17 @@ FX_EXTERN_C int _fx_M6K_formFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t( void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( - _fx_M6K_formFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_cleanup); + _fx_M6K_formFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, &v_0, 0), + _fx_cleanup); *fx_result = v_0.t1 >= 0; _fx_cleanup: ; @@ -6746,32 +6729,11 @@ FX_EXTERN_C int _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -6787,14 +6749,14 @@ FX_EXTERN_C int _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -6806,27 +6768,29 @@ FX_EXTERN_C int _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -6834,11 +6798,14 @@ FX_EXTERN_C int _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -6860,15 +6827,14 @@ FX_EXTERN_C int _fx_M6K_formFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t( void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, __fold_result___0 & 9223372036854775807ULL, 0), + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + FX_CALL(_fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, 0), _fx_cleanup); _fx_cleanup: ; @@ -6881,25 +6847,27 @@ FX_EXTERN_C int _fx_M6K_formFM6removev2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t( void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( - _fx_M6K_formFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_cleanup); + _fx_M6K_formFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, &v_0, 0), + _fx_cleanup); int_ j_0 = v_0.t0; int_ tidx_0 = v_0.t1; if (tidx_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_1 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_1 = 1; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, tidx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, tidx_0)->hv = - (uint64_t)self_0->u.t.t3 | 9223372036854775808ULL; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, tidx_0); + v_2->hv = (uint64_t)self_0->u.t.t3 | 9223372036854775808ULL; self_0->u.t.t3 = tidx_0 + 1; self_0->u.t.t1 = self_0->u.t.t1 - 1; } @@ -7705,7 +7673,8 @@ FX_EXTERN_C int _fx_M6K_formFM11new_idk_idxi1i(int_ m_idx_0, int_* fx_result, vo FX_THROW(&v_0, true, _fx_cleanup); } FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - FX_COPY_PTR((*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t9, &v_1); + _fx_N16Ast__defmodule_t v_6 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + FX_COPY_PTR(v_6->u.defmodule_t.t9, &v_1); fx_copy_arr(&v_1->u.t.t1, &v_2); int_ sz_0 = FX_ARR_SIZE(v_2, 0); int_ n0_0 = v_1->u.t.t0; @@ -7736,9 +7705,9 @@ FX_EXTERN_C int _fx_M6K_formFM11new_idk_idxi1i(int_ m_idx_0, int_* fx_result, vo _fx_free_N14Ast__id_info_t(&t_0); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_6 = &v_1->u.t.t1; - FX_FREE_ARR(v_6); - fx_copy_arr(&new_data_0, v_6); + fx_arr_t* v_7 = &v_1->u.t.t1; + FX_FREE_ARR(v_7); + fx_copy_arr(&new_data_0, v_7); } v_1->u.t.t0 = n0_0 + 1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_idx_0), _fx_cleanup); @@ -7773,9 +7742,9 @@ FX_EXTERN_C int _fx_M6K_formFM11new_idk_idxi1i(int_ m_idx_0, int_* fx_result, vo _fx_free_N15K_form__kinfo_t(&t_1); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_7 = &v_3->u.t.t1; - FX_FREE_ARR(v_7); - fx_copy_arr(&new_data_1, v_7); + fx_arr_t* v_8 = &v_3->u.t.t1; + FX_FREE_ARR(v_8); + fx_copy_arr(&new_data_1, v_8); } v_3->u.t.t0 = n0_1 + 1; if (n0_0 != n0_1) { @@ -7821,11 +7790,9 @@ FX_EXTERN_C int _fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t int_ m_0 = v_0.t0; int_ j_0 = v_0.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), fx_result); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_1 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_1->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_1->u.t.t1, j_0), fx_result); } _fx_cleanup: ; @@ -7884,13 +7851,11 @@ FX_EXTERN_C int _fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t( int_ m_0 = v_0.t0; int_ j_0 = v_0.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_N15K_form__kinfo_t* v_1 = - FX_PTR_1D(_fx_N15K_form__kinfo_t, (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, - j_0); - _fx_free_N15K_form__kinfo_t(v_1); - _fx_copy_N15K_form__kinfo_t(info_0, v_1); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_1 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_1->u.t.t1, 0, j_0), _fx_cleanup); + _fx_N15K_form__kinfo_t* v_2 = FX_PTR_1D(_fx_N15K_form__kinfo_t, v_1->u.t.t1, j_0); + _fx_free_N15K_form__kinfo_t(v_2); + _fx_copy_N15K_form__kinfo_t(info_0, v_2); _fx_cleanup: ; return fx_status; @@ -8505,67 +8470,65 @@ FX_EXTERN_C int _fx_M6K_formFM13get_idk_scopeLN12Ast__scope_t2R9Ast__id_tR10Ast_ int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_2 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_2->u.t.t1, j_0), &v_0); } int tag_0 = v_0.tag; if (tag_0 != 1) { if (tag_0 == 2) { - _fx_LN12Ast__scope_t v_2 = 0; - FX_COPY_PTR(v_0.u.KVal.kv_flags.val_flag_global, &v_2); - if (v_2 == 0) { - _fx_N12Ast__scope_t v_3; - _fx_M3AstFM7ScBlockN12Ast__scope_t1i(0, &v_3); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_3, 0, true, fx_result), _fx_catch_0); + _fx_LN12Ast__scope_t v_3 = 0; + FX_COPY_PTR(v_0.u.KVal.kv_flags.val_flag_global, &v_3); + if (v_3 == 0) { + _fx_N12Ast__scope_t v_4; + _fx_M3AstFM7ScBlockN12Ast__scope_t1i(0, &v_4); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_4, 0, true, fx_result), _fx_catch_0); _fx_catch_0: ; } else { - FX_COPY_PTR(v_2, fx_result); + FX_COPY_PTR(v_3, fx_result); } FX_CHECK_EXN(_fx_catch_1); _fx_catch_1: ; - FX_FREE_LIST_SIMPLE(&v_2); + FX_FREE_LIST_SIMPLE(&v_3); } else if (tag_0 == 3) { - _fx_R17K_form__kdeffun_t v_4 = {0}; - _fx_copy_R17K_form__kdeffun_t(&v_0.u.KFun->data, &v_4); - FX_COPY_PTR(v_4.kf_scope, fx_result); - _fx_free_R17K_form__kdeffun_t(&v_4); + _fx_R17K_form__kdeffun_t v_5 = {0}; + _fx_copy_R17K_form__kdeffun_t(&v_0.u.KFun->data, &v_5); + FX_COPY_PTR(v_5.kf_scope, fx_result); + _fx_free_R17K_form__kdeffun_t(&v_5); } else if (tag_0 == 4) { - _fx_R17K_form__kdefexn_t v_5 = {0}; - _fx_copy_R17K_form__kdefexn_t(&v_0.u.KExn->data, &v_5); - FX_COPY_PTR(v_5.ke_scope, fx_result); - _fx_free_R17K_form__kdefexn_t(&v_5); + _fx_R17K_form__kdefexn_t v_6 = {0}; + _fx_copy_R17K_form__kdefexn_t(&v_0.u.KExn->data, &v_6); + FX_COPY_PTR(v_6.ke_scope, fx_result); + _fx_free_R17K_form__kdefexn_t(&v_6); } else if (tag_0 == 5) { - _fx_R21K_form__kdefvariant_t v_6 = {0}; - _fx_copy_R21K_form__kdefvariant_t(&v_0.u.KVariant->data, &v_6); - FX_COPY_PTR(v_6.kvar_scope, fx_result); - _fx_free_R21K_form__kdefvariant_t(&v_6); + _fx_R21K_form__kdefvariant_t v_7 = {0}; + _fx_copy_R21K_form__kdefvariant_t(&v_0.u.KVariant->data, &v_7); + FX_COPY_PTR(v_7.kvar_scope, fx_result); + _fx_free_R21K_form__kdefvariant_t(&v_7); } else if (tag_0 == 7) { - _fx_R23K_form__kdefinterface_t v_7 = {0}; - _fx_copy_R23K_form__kdefinterface_t(&v_0.u.KInterface->data, &v_7); - FX_COPY_PTR(v_7.ki_scope, fx_result); - _fx_free_R23K_form__kdefinterface_t(&v_7); + _fx_R23K_form__kdefinterface_t v_8 = {0}; + _fx_copy_R23K_form__kdefinterface_t(&v_0.u.KInterface->data, &v_8); + FX_COPY_PTR(v_8.ki_scope, fx_result); + _fx_free_R23K_form__kdefinterface_t(&v_8); } else if (tag_0 == 6) { - _fx_R25K_form__kdefclosurevars_t v_8 = {0}; - _fx_copy_R25K_form__kdefclosurevars_t(&v_0.u.KClosureVars->data, &v_8); - FX_COPY_PTR(v_8.kcv_scope, fx_result); - _fx_free_R25K_form__kdefclosurevars_t(&v_8); + _fx_R25K_form__kdefclosurevars_t v_9 = {0}; + _fx_copy_R25K_form__kdefclosurevars_t(&v_0.u.KClosureVars->data, &v_9); + FX_COPY_PTR(v_9.kcv_scope, fx_result); + _fx_free_R25K_form__kdefclosurevars_t(&v_9); } else if (tag_0 == 8) { - _fx_R17K_form__kdeftyp_t v_9 = {0}; - _fx_copy_R17K_form__kdeftyp_t(&v_0.u.KTyp->data, &v_9); - FX_COPY_PTR(v_9.kt_scope, fx_result); - _fx_free_R17K_form__kdeftyp_t(&v_9); + _fx_R17K_form__kdeftyp_t v_10 = {0}; + _fx_copy_R17K_form__kdeftyp_t(&v_0.u.KTyp->data, &v_10); + FX_COPY_PTR(v_10.kt_scope, fx_result); + _fx_free_R17K_form__kdeftyp_t(&v_10); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_cleanup); @@ -8594,11 +8557,9 @@ FX_EXTERN_C int _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_ int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_2 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_2->u.t.t1, j_0), &v_0); } int tag_0 = v_0.tag; if (tag_0 == 1) { @@ -8608,40 +8569,40 @@ FX_EXTERN_C int _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_ *fx_result = v_0.u.KVal.kv_loc; } else if (tag_0 == 3) { - _fx_R17K_form__kdeffun_t v_2 = {0}; - _fx_copy_R17K_form__kdeffun_t(&v_0.u.KFun->data, &v_2); - *fx_result = v_2.kf_loc; - _fx_free_R17K_form__kdeffun_t(&v_2); + _fx_R17K_form__kdeffun_t v_3 = {0}; + _fx_copy_R17K_form__kdeffun_t(&v_0.u.KFun->data, &v_3); + *fx_result = v_3.kf_loc; + _fx_free_R17K_form__kdeffun_t(&v_3); } else if (tag_0 == 4) { - _fx_R17K_form__kdefexn_t v_3 = {0}; - _fx_copy_R17K_form__kdefexn_t(&v_0.u.KExn->data, &v_3); - *fx_result = v_3.ke_loc; - _fx_free_R17K_form__kdefexn_t(&v_3); + _fx_R17K_form__kdefexn_t v_4 = {0}; + _fx_copy_R17K_form__kdefexn_t(&v_0.u.KExn->data, &v_4); + *fx_result = v_4.ke_loc; + _fx_free_R17K_form__kdefexn_t(&v_4); } else if (tag_0 == 5) { - _fx_R21K_form__kdefvariant_t v_4 = {0}; - _fx_copy_R21K_form__kdefvariant_t(&v_0.u.KVariant->data, &v_4); - *fx_result = v_4.kvar_loc; - _fx_free_R21K_form__kdefvariant_t(&v_4); + _fx_R21K_form__kdefvariant_t v_5 = {0}; + _fx_copy_R21K_form__kdefvariant_t(&v_0.u.KVariant->data, &v_5); + *fx_result = v_5.kvar_loc; + _fx_free_R21K_form__kdefvariant_t(&v_5); } else if (tag_0 == 8) { - _fx_R17K_form__kdeftyp_t v_5 = {0}; - _fx_copy_R17K_form__kdeftyp_t(&v_0.u.KTyp->data, &v_5); - *fx_result = v_5.kt_loc; - _fx_free_R17K_form__kdeftyp_t(&v_5); + _fx_R17K_form__kdeftyp_t v_6 = {0}; + _fx_copy_R17K_form__kdeftyp_t(&v_0.u.KTyp->data, &v_6); + *fx_result = v_6.kt_loc; + _fx_free_R17K_form__kdeftyp_t(&v_6); } else if (tag_0 == 7) { - _fx_R23K_form__kdefinterface_t v_6 = {0}; - _fx_copy_R23K_form__kdefinterface_t(&v_0.u.KInterface->data, &v_6); - *fx_result = v_6.ki_loc; - _fx_free_R23K_form__kdefinterface_t(&v_6); + _fx_R23K_form__kdefinterface_t v_7 = {0}; + _fx_copy_R23K_form__kdefinterface_t(&v_0.u.KInterface->data, &v_7); + *fx_result = v_7.ki_loc; + _fx_free_R23K_form__kdefinterface_t(&v_7); } else if (tag_0 == 6) { - _fx_R25K_form__kdefclosurevars_t v_7 = {0}; - _fx_copy_R25K_form__kdefclosurevars_t(&v_0.u.KClosureVars->data, &v_7); - *fx_result = v_7.kcv_loc; - _fx_free_R25K_form__kdefclosurevars_t(&v_7); + _fx_R25K_form__kdefclosurevars_t v_8 = {0}; + _fx_copy_R25K_form__kdefclosurevars_t(&v_0.u.KClosureVars->data, &v_8); + *fx_result = v_8.kcv_loc; + _fx_free_R25K_form__kdefclosurevars_t(&v_8); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_cleanup); @@ -8733,30 +8694,28 @@ FX_EXTERN_C int _fx_M6K_formFM13get_idk_cnameS2R9Ast__id_tR10Ast__loc_t( int_ m_0 = v_0.t0; int_ j_0 = v_0.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &info_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_1 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_1->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_1->u.t.t1, j_0), &info_0); } if (info_0.tag == 1) { - fx_str_t v_1 = {0}; fx_str_t v_2 = {0}; - fx_exn_t v_3 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_1, 0), _fx_catch_0); + fx_str_t v_3 = {0}; + fx_exn_t v_4 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_2, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("attempt to request information about uninitialized symbol \'"); fx_str_t slit_1 = FX_MAKE_STR("\'"); { - const fx_str_t strs_0[] = { slit_0, v_1, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_2), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_2, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_3), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_2, &v_3, 0), _fx_catch_0); - FX_THROW(&v_3, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_3, &v_4, 0), _fx_catch_0); + FX_THROW(&v_4, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_3); + fx_free_exn(&v_4); + FX_FREE_STR(&v_3); FX_FREE_STR(&v_2); - FX_FREE_STR(&v_1); } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M6K_formFM15get_kinfo_cnameS2N15K_form__kinfo_tR10Ast__loc_t(&info_0, loc_0, fx_result, 0), _fx_cleanup); @@ -8791,30 +8750,29 @@ FX_EXTERN_C int _fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t( int_ m_0 = v_2.t0; int_ j_0 = v_2.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &info_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_3 = + *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_3->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_3->u.t.t1, j_0), &info_0); } if (info_0.tag == 1) { - fx_str_t v_3 = {0}; fx_str_t v_4 = {0}; - fx_exn_t v_5 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_3, 0), _fx_catch_0); + fx_str_t v_5 = {0}; + fx_exn_t v_6 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_4, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("attempt to request information about uninitialized symbol \'"); fx_str_t slit_1 = FX_MAKE_STR("\'"); { - const fx_str_t strs_0[] = { slit_0, v_3, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_4), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_4, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_5), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_4, &v_5, 0), _fx_catch_0); - FX_THROW(&v_5, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_5, &v_6, 0), _fx_catch_0); + FX_THROW(&v_6, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_5); + fx_free_exn(&v_6); + FX_FREE_STR(&v_5); FX_FREE_STR(&v_4); - FX_FREE_STR(&v_3); } FX_CHECK_EXN(_fx_cleanup); FX_CALL(_fx_M6K_formFM15get_kinfo_cnameS2N15K_form__kinfo_tR10Ast__loc_t(&info_0, loc_0, &cname_0, 0), _fx_cleanup); @@ -8823,73 +8781,71 @@ FX_EXTERN_C int _fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t( _fx_copy_N15K_form__kinfo_t(&_fx_g13K_form__KNone, &v_0); } else { - _fx_Ta2i v_6; - FX_CALL(_fx_M3AstFM7id2idx_Ta2i2RM4id_tRM5loc_t(n_0, loc_0, &v_6, 0), _fx_cleanup); - int_ m_1 = v_6.t0; - int_ j_1 = v_6.t1; + _fx_Ta2i v_7; + FX_CALL(_fx_M3AstFM7id2idx_Ta2i2RM4id_tRM5loc_t(n_0, loc_0, &v_7, 0), _fx_cleanup); + int_ m_1 = v_7.t0; + int_ j_1 = v_7.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_1), _fx_cleanup); - FX_CHKIDX( - FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_1))->u.t.t1, 0, j_1), - _fx_cleanup); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_1))->u.t.t1, j_1), &v_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_8 = + *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_1); + FX_CHKIDX(FX_CHKIDX1(v_8->u.t.t1, 0, j_1), _fx_cleanup); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_8->u.t.t1, j_1), &v_0); } int tag_0 = v_0.tag; if (tag_0 != 1) { if (tag_0 == 2) { - _fx_LN12Ast__scope_t v_7 = 0; - FX_COPY_PTR(v_0.u.KVal.kv_flags.val_flag_global, &v_7); - if (v_7 == 0) { - _fx_N12Ast__scope_t v_8; - _fx_M3AstFM7ScBlockN12Ast__scope_t1i(0, &v_8); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_8, 0, true, &sc_0), _fx_catch_1); + _fx_LN12Ast__scope_t v_9 = 0; + FX_COPY_PTR(v_0.u.KVal.kv_flags.val_flag_global, &v_9); + if (v_9 == 0) { + _fx_N12Ast__scope_t v_10; + _fx_M3AstFM7ScBlockN12Ast__scope_t1i(0, &v_10); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_10, 0, true, &sc_0), _fx_catch_1); _fx_catch_1: ; } else { - FX_COPY_PTR(v_7, &sc_0); + FX_COPY_PTR(v_9, &sc_0); } FX_CHECK_EXN(_fx_catch_2); _fx_catch_2: ; - FX_FREE_LIST_SIMPLE(&v_7); + FX_FREE_LIST_SIMPLE(&v_9); } else if (tag_0 == 3) { - _fx_R17K_form__kdeffun_t v_9 = {0}; - _fx_copy_R17K_form__kdeffun_t(&v_0.u.KFun->data, &v_9); - FX_COPY_PTR(v_9.kf_scope, &sc_0); - _fx_free_R17K_form__kdeffun_t(&v_9); + _fx_R17K_form__kdeffun_t v_11 = {0}; + _fx_copy_R17K_form__kdeffun_t(&v_0.u.KFun->data, &v_11); + FX_COPY_PTR(v_11.kf_scope, &sc_0); + _fx_free_R17K_form__kdeffun_t(&v_11); } else if (tag_0 == 4) { - _fx_R17K_form__kdefexn_t v_10 = {0}; - _fx_copy_R17K_form__kdefexn_t(&v_0.u.KExn->data, &v_10); - FX_COPY_PTR(v_10.ke_scope, &sc_0); - _fx_free_R17K_form__kdefexn_t(&v_10); + _fx_R17K_form__kdefexn_t v_12 = {0}; + _fx_copy_R17K_form__kdefexn_t(&v_0.u.KExn->data, &v_12); + FX_COPY_PTR(v_12.ke_scope, &sc_0); + _fx_free_R17K_form__kdefexn_t(&v_12); } else if (tag_0 == 5) { - _fx_R21K_form__kdefvariant_t v_11 = {0}; - _fx_copy_R21K_form__kdefvariant_t(&v_0.u.KVariant->data, &v_11); - FX_COPY_PTR(v_11.kvar_scope, &sc_0); - _fx_free_R21K_form__kdefvariant_t(&v_11); + _fx_R21K_form__kdefvariant_t v_13 = {0}; + _fx_copy_R21K_form__kdefvariant_t(&v_0.u.KVariant->data, &v_13); + FX_COPY_PTR(v_13.kvar_scope, &sc_0); + _fx_free_R21K_form__kdefvariant_t(&v_13); } else if (tag_0 == 7) { - _fx_R23K_form__kdefinterface_t v_12 = {0}; - _fx_copy_R23K_form__kdefinterface_t(&v_0.u.KInterface->data, &v_12); - FX_COPY_PTR(v_12.ki_scope, &sc_0); - _fx_free_R23K_form__kdefinterface_t(&v_12); + _fx_R23K_form__kdefinterface_t v_14 = {0}; + _fx_copy_R23K_form__kdefinterface_t(&v_0.u.KInterface->data, &v_14); + FX_COPY_PTR(v_14.ki_scope, &sc_0); + _fx_free_R23K_form__kdefinterface_t(&v_14); } else if (tag_0 == 6) { - _fx_R25K_form__kdefclosurevars_t v_13 = {0}; - _fx_copy_R25K_form__kdefclosurevars_t(&v_0.u.KClosureVars->data, &v_13); - FX_COPY_PTR(v_13.kcv_scope, &sc_0); - _fx_free_R25K_form__kdefclosurevars_t(&v_13); + _fx_R25K_form__kdefclosurevars_t v_15 = {0}; + _fx_copy_R25K_form__kdefclosurevars_t(&v_0.u.KClosureVars->data, &v_15); + FX_COPY_PTR(v_15.kcv_scope, &sc_0); + _fx_free_R25K_form__kdefclosurevars_t(&v_15); } else if (tag_0 == 8) { - _fx_R17K_form__kdeftyp_t v_14 = {0}; - _fx_copy_R17K_form__kdeftyp_t(&v_0.u.KTyp->data, &v_14); - FX_COPY_PTR(v_14.kt_scope, &sc_0); - _fx_free_R17K_form__kdeftyp_t(&v_14); + _fx_R17K_form__kdeftyp_t v_16 = {0}; + _fx_copy_R17K_form__kdeftyp_t(&v_0.u.KTyp->data, &v_16); + FX_COPY_PTR(v_16.kt_scope, &sc_0); + _fx_free_R17K_form__kdeftyp_t(&v_16); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_cleanup); @@ -8937,82 +8893,46 @@ FX_EXTERN_C int _fx_M6K_formFM10get_kf_typN14K_form__ktyp_t3LR9Ast__id_tN14K_for int_ m_0 = v_2.t0; int_ j_0 = v_2.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_catch_2); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_catch_2); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &info_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_3 = + *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_3->u.t.t1, 0, j_0), _fx_catch_2); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_3->u.t.t1, j_0), &info_0); } if (info_0.tag == 1) { - fx_str_t v_3 = {0}; fx_str_t v_4 = {0}; - fx_exn_t v_5 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(a_0, &v_3, 0), _fx_catch_0); + fx_str_t v_5 = {0}; + fx_exn_t v_6 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(a_0, &v_4, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("attempt to request information about uninitialized symbol \'"); fx_str_t slit_1 = FX_MAKE_STR("\'"); { - const fx_str_t strs_0[] = { slit_0, v_3, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_4), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_4, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_5), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_4, &v_5, 0), _fx_catch_0); - FX_THROW(&v_5, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_5, &v_6, 0), _fx_catch_0); + FX_THROW(&v_6, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_5); + fx_free_exn(&v_6); + FX_FREE_STR(&v_5); FX_FREE_STR(&v_4); - FX_FREE_STR(&v_3); } FX_CHECK_EXN(_fx_catch_2); if (info_0.tag == 2) { _fx_copy_R17K_form__kdefval_t(&info_0.u.KVal, &v_1); } else { - fx_str_t v_6 = {0}; fx_str_t v_7 = {0}; - fx_exn_t v_8 = {0}; - bool __fold_result___0 = true; - bool t_0; - if (loc_0->m_idx == _fx_g10Ast__noloc.m_idx) { - t_0 = __fold_result___0; - } - else { - t_0 = false; - } - __fold_result___0 = t_0; - bool t_1; - if (loc_0->line0 == _fx_g10Ast__noloc.line0) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (loc_0->col0 == _fx_g10Ast__noloc.col0) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (loc_0->line1 == _fx_g10Ast__noloc.line1) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - bool t_4; - if (loc_0->col1 == _fx_g10Ast__noloc.col1) { - t_4 = __fold_result___0; - } - else { - t_4 = false; - } - __fold_result___0 = t_4; + fx_str_t v_8 = {0}; + fx_exn_t v_9 = {0}; + bool f_0 = true; + f_0 = (bool)(f_0 & (loc_0->m_idx == _fx_g10Ast__noloc.m_idx)); + f_0 = (bool)(f_0 & (loc_0->line0 == _fx_g10Ast__noloc.line0)); + f_0 = (bool)(f_0 & (loc_0->col0 == _fx_g10Ast__noloc.col0)); + f_0 = (bool)(f_0 & (loc_0->line1 == _fx_g10Ast__noloc.line1)); + f_0 = (bool)(f_0 & (loc_0->col1 == _fx_g10Ast__noloc.col1)); _fx_R10Ast__loc_t loc_1; - if (!__fold_result___0) { + if (!f_0) { loc_1 = *loc_0; } else { @@ -9024,60 +8944,60 @@ FX_EXTERN_C int _fx_M6K_formFM10get_kf_typN14K_form__ktyp_t3LR9Ast__id_tN14K_for loc_1 = info_0.u.KVal.kv_loc; } else if (tag_0 == 3) { - _fx_R17K_form__kdeffun_t v_9 = {0}; - _fx_copy_R17K_form__kdeffun_t(&info_0.u.KFun->data, &v_9); - loc_1 = v_9.kf_loc; - _fx_free_R17K_form__kdeffun_t(&v_9); + _fx_R17K_form__kdeffun_t v_10 = {0}; + _fx_copy_R17K_form__kdeffun_t(&info_0.u.KFun->data, &v_10); + loc_1 = v_10.kf_loc; + _fx_free_R17K_form__kdeffun_t(&v_10); } else if (tag_0 == 4) { - _fx_R17K_form__kdefexn_t v_10 = {0}; - _fx_copy_R17K_form__kdefexn_t(&info_0.u.KExn->data, &v_10); - loc_1 = v_10.ke_loc; - _fx_free_R17K_form__kdefexn_t(&v_10); + _fx_R17K_form__kdefexn_t v_11 = {0}; + _fx_copy_R17K_form__kdefexn_t(&info_0.u.KExn->data, &v_11); + loc_1 = v_11.ke_loc; + _fx_free_R17K_form__kdefexn_t(&v_11); } else if (tag_0 == 5) { - _fx_R21K_form__kdefvariant_t v_11 = {0}; - _fx_copy_R21K_form__kdefvariant_t(&info_0.u.KVariant->data, &v_11); - loc_1 = v_11.kvar_loc; - _fx_free_R21K_form__kdefvariant_t(&v_11); + _fx_R21K_form__kdefvariant_t v_12 = {0}; + _fx_copy_R21K_form__kdefvariant_t(&info_0.u.KVariant->data, &v_12); + loc_1 = v_12.kvar_loc; + _fx_free_R21K_form__kdefvariant_t(&v_12); } else if (tag_0 == 8) { - _fx_R17K_form__kdeftyp_t v_12 = {0}; - _fx_copy_R17K_form__kdeftyp_t(&info_0.u.KTyp->data, &v_12); - loc_1 = v_12.kt_loc; - _fx_free_R17K_form__kdeftyp_t(&v_12); + _fx_R17K_form__kdeftyp_t v_13 = {0}; + _fx_copy_R17K_form__kdeftyp_t(&info_0.u.KTyp->data, &v_13); + loc_1 = v_13.kt_loc; + _fx_free_R17K_form__kdeftyp_t(&v_13); } else if (tag_0 == 7) { - _fx_R23K_form__kdefinterface_t v_13 = {0}; - _fx_copy_R23K_form__kdefinterface_t(&info_0.u.KInterface->data, &v_13); - loc_1 = v_13.ki_loc; - _fx_free_R23K_form__kdefinterface_t(&v_13); + _fx_R23K_form__kdefinterface_t v_14 = {0}; + _fx_copy_R23K_form__kdefinterface_t(&info_0.u.KInterface->data, &v_14); + loc_1 = v_14.ki_loc; + _fx_free_R23K_form__kdefinterface_t(&v_14); } else if (tag_0 == 6) { - _fx_R25K_form__kdefclosurevars_t v_14 = {0}; - _fx_copy_R25K_form__kdefclosurevars_t(&info_0.u.KClosureVars->data, &v_14); - loc_1 = v_14.kcv_loc; - _fx_free_R25K_form__kdefclosurevars_t(&v_14); + _fx_R25K_form__kdefclosurevars_t v_15 = {0}; + _fx_copy_R25K_form__kdefclosurevars_t(&info_0.u.KClosureVars->data, &v_15); + loc_1 = v_15.kcv_loc; + _fx_free_R25K_form__kdefclosurevars_t(&v_15); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_1); } FX_CHECK_EXN(_fx_catch_1); } - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(a_0, &v_6, 0), _fx_catch_1); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(a_0, &v_7, 0), _fx_catch_1); fx_str_t slit_2 = FX_MAKE_STR("symbol \'"); fx_str_t slit_3 = FX_MAKE_STR("\' is expected to be KVal ..."); { - const fx_str_t strs_1[] = { slit_2, v_6, slit_3 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_7), _fx_catch_1); + const fx_str_t strs_1[] = { slit_2, v_7, slit_3 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_8), _fx_catch_1); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_1, &v_7, &v_8, 0), _fx_catch_1); - FX_THROW(&v_8, false, _fx_catch_1); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_1, &v_8, &v_9, 0), _fx_catch_1); + FX_THROW(&v_9, false, _fx_catch_1); _fx_catch_1: ; - fx_free_exn(&v_8); + fx_free_exn(&v_9); + FX_FREE_STR(&v_8); FX_FREE_STR(&v_7); - FX_FREE_STR(&v_6); } FX_CHECK_EXN(_fx_catch_2); _fx_LN14K_form__ktyp_t node_0 = 0; @@ -9219,11 +9139,9 @@ FX_EXTERN_C int _fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast_ int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_2 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_2->u.t.t1, j_0), &v_0); } FX_CALL( _fx_M6K_formFM13get_kinfo_typN14K_form__ktyp_t3N15K_form__kinfo_tR9Ast__id_tR10Ast__loc_t(&v_0, n_0, loc_0, fx_result, 0), @@ -9254,11 +9172,10 @@ FX_EXTERN_C int _fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_t int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_catch_0); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_catch_0); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_2 = + *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.t.t1, 0, j_0), _fx_catch_0); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_2->u.t.t1, j_0), &v_0); } FX_CALL( _fx_M6K_formFM13get_kinfo_typN14K_form__ktyp_t3N15K_form__kinfo_tR9Ast__id_tR10Ast__loc_t(&v_0, n_0, loc_0, fx_result, @@ -9490,7 +9407,7 @@ FX_EXTERN_C int _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR1 _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_1 = {0}; _fx_N14K_form__ktyp_t t_0 = 0; _fx_LR10Ast__loc_t v_2 = 0; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_1 = 0; _fx_LN14K_form__kexp_t v_3 = 0; _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_4 = {0}; FX_CALL(_fx_M6K_formFM12get_kexp_ctxT2N14K_form__ktyp_tR10Ast__loc_t1N14K_form__kexp_t(v_0->hd, &v_1, 0), _fx_catch_4); @@ -9513,20 +9430,19 @@ FX_EXTERN_C int _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR1 FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(v_2, loc_0, &final_loc_0, 0), _fx_catch_4); _fx_LN14K_form__kexp_t lst_2 = code_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_6 = 0; _fx_N14K_form__kexp_t a_0 = lst_2->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_3); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_1, true, &v_6), _fx_catch_3); + _fx_free_LN14K_form__kexp_t(&res_1); + FX_COPY_PTR(v_6, &res_1); _fx_catch_3: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_6) { + _fx_free_LN14K_form__kexp_t(&v_6); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___0, &v_3); + FX_COPY_PTR(res_1, &v_3); _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_0, &final_loc_0, &v_4); FX_CALL(_fx_M6K_formFM7KExpSeqN14K_form__kexp_t2LN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t(v_3, &v_4, fx_result), _fx_catch_4); @@ -9536,8 +9452,8 @@ FX_EXTERN_C int _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR1 if (v_3) { _fx_free_LN14K_form__kexp_t(&v_3); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_1) { + _fx_free_LN14K_form__kexp_t(&res_1); } FX_FREE_LIST_SIMPLE(&v_2); if (t_0) { @@ -9592,82 +9508,45 @@ FX_EXTERN_C int _fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t( int_ m_0 = v_0.t0; int_ j_0 = v_0.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &info_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_1 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_1->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_1->u.t.t1, j_0), &info_0); } if (info_0.tag == 1) { - fx_str_t v_1 = {0}; fx_str_t v_2 = {0}; - fx_exn_t v_3 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_1, 0), _fx_catch_0); + fx_str_t v_3 = {0}; + fx_exn_t v_4 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_2, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("attempt to request information about uninitialized symbol \'"); fx_str_t slit_1 = FX_MAKE_STR("\'"); { - const fx_str_t strs_0[] = { slit_0, v_1, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_2), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_2, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_3), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_2, &v_3, 0), _fx_catch_0); - FX_THROW(&v_3, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_3, &v_4, 0), _fx_catch_0); + FX_THROW(&v_4, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_3); + fx_free_exn(&v_4); + FX_FREE_STR(&v_3); FX_FREE_STR(&v_2); - FX_FREE_STR(&v_1); } FX_CHECK_EXN(_fx_cleanup); if (info_0.tag == 2) { _fx_copy_R17K_form__kdefval_t(&info_0.u.KVal, fx_result); } else { - fx_str_t v_4 = {0}; fx_str_t v_5 = {0}; - fx_exn_t v_6 = {0}; - bool __fold_result___0 = true; - bool t_0; - if (loc_0->m_idx == _fx_g10Ast__noloc.m_idx) { - t_0 = __fold_result___0; - } - else { - t_0 = false; - } - __fold_result___0 = t_0; - bool t_1; - if (loc_0->line0 == _fx_g10Ast__noloc.line0) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (loc_0->col0 == _fx_g10Ast__noloc.col0) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (loc_0->line1 == _fx_g10Ast__noloc.line1) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - bool t_4; - if (loc_0->col1 == _fx_g10Ast__noloc.col1) { - t_4 = __fold_result___0; - } - else { - t_4 = false; - } - __fold_result___0 = t_4; + fx_str_t v_6 = {0}; + fx_exn_t v_7 = {0}; + bool f_0 = true; + f_0 = (bool)(f_0 & (loc_0->m_idx == _fx_g10Ast__noloc.m_idx)); + f_0 = (bool)(f_0 & (loc_0->line0 == _fx_g10Ast__noloc.line0)); + f_0 = (bool)(f_0 & (loc_0->col0 == _fx_g10Ast__noloc.col0)); + f_0 = (bool)(f_0 & (loc_0->line1 == _fx_g10Ast__noloc.line1)); + f_0 = (bool)(f_0 & (loc_0->col1 == _fx_g10Ast__noloc.col1)); _fx_R10Ast__loc_t loc_1; - if (!__fold_result___0) { + if (!f_0) { loc_1 = *loc_0; } else { @@ -9679,60 +9558,60 @@ FX_EXTERN_C int _fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t( loc_1 = info_0.u.KVal.kv_loc; } else if (tag_0 == 3) { - _fx_R17K_form__kdeffun_t v_7 = {0}; - _fx_copy_R17K_form__kdeffun_t(&info_0.u.KFun->data, &v_7); - loc_1 = v_7.kf_loc; - _fx_free_R17K_form__kdeffun_t(&v_7); + _fx_R17K_form__kdeffun_t v_8 = {0}; + _fx_copy_R17K_form__kdeffun_t(&info_0.u.KFun->data, &v_8); + loc_1 = v_8.kf_loc; + _fx_free_R17K_form__kdeffun_t(&v_8); } else if (tag_0 == 4) { - _fx_R17K_form__kdefexn_t v_8 = {0}; - _fx_copy_R17K_form__kdefexn_t(&info_0.u.KExn->data, &v_8); - loc_1 = v_8.ke_loc; - _fx_free_R17K_form__kdefexn_t(&v_8); + _fx_R17K_form__kdefexn_t v_9 = {0}; + _fx_copy_R17K_form__kdefexn_t(&info_0.u.KExn->data, &v_9); + loc_1 = v_9.ke_loc; + _fx_free_R17K_form__kdefexn_t(&v_9); } else if (tag_0 == 5) { - _fx_R21K_form__kdefvariant_t v_9 = {0}; - _fx_copy_R21K_form__kdefvariant_t(&info_0.u.KVariant->data, &v_9); - loc_1 = v_9.kvar_loc; - _fx_free_R21K_form__kdefvariant_t(&v_9); + _fx_R21K_form__kdefvariant_t v_10 = {0}; + _fx_copy_R21K_form__kdefvariant_t(&info_0.u.KVariant->data, &v_10); + loc_1 = v_10.kvar_loc; + _fx_free_R21K_form__kdefvariant_t(&v_10); } else if (tag_0 == 8) { - _fx_R17K_form__kdeftyp_t v_10 = {0}; - _fx_copy_R17K_form__kdeftyp_t(&info_0.u.KTyp->data, &v_10); - loc_1 = v_10.kt_loc; - _fx_free_R17K_form__kdeftyp_t(&v_10); + _fx_R17K_form__kdeftyp_t v_11 = {0}; + _fx_copy_R17K_form__kdeftyp_t(&info_0.u.KTyp->data, &v_11); + loc_1 = v_11.kt_loc; + _fx_free_R17K_form__kdeftyp_t(&v_11); } else if (tag_0 == 7) { - _fx_R23K_form__kdefinterface_t v_11 = {0}; - _fx_copy_R23K_form__kdefinterface_t(&info_0.u.KInterface->data, &v_11); - loc_1 = v_11.ki_loc; - _fx_free_R23K_form__kdefinterface_t(&v_11); + _fx_R23K_form__kdefinterface_t v_12 = {0}; + _fx_copy_R23K_form__kdefinterface_t(&info_0.u.KInterface->data, &v_12); + loc_1 = v_12.ki_loc; + _fx_free_R23K_form__kdefinterface_t(&v_12); } else if (tag_0 == 6) { - _fx_R25K_form__kdefclosurevars_t v_12 = {0}; - _fx_copy_R25K_form__kdefclosurevars_t(&info_0.u.KClosureVars->data, &v_12); - loc_1 = v_12.kcv_loc; - _fx_free_R25K_form__kdefclosurevars_t(&v_12); + _fx_R25K_form__kdefclosurevars_t v_13 = {0}; + _fx_copy_R25K_form__kdefclosurevars_t(&info_0.u.KClosureVars->data, &v_13); + loc_1 = v_13.kcv_loc; + _fx_free_R25K_form__kdefclosurevars_t(&v_13); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_1); } FX_CHECK_EXN(_fx_catch_1); } - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_4, 0), _fx_catch_1); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_5, 0), _fx_catch_1); fx_str_t slit_2 = FX_MAKE_STR("symbol \'"); fx_str_t slit_3 = FX_MAKE_STR("\' is expected to be KVal ..."); { - const fx_str_t strs_1[] = { slit_2, v_4, slit_3 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_5), _fx_catch_1); + const fx_str_t strs_1[] = { slit_2, v_5, slit_3 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_6), _fx_catch_1); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_1, &v_5, &v_6, 0), _fx_catch_1); - FX_THROW(&v_6, false, _fx_catch_1); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_1, &v_6, &v_7, 0), _fx_catch_1); + FX_THROW(&v_7, false, _fx_catch_1); _fx_catch_1: ; - fx_free_exn(&v_6); + fx_free_exn(&v_7); + FX_FREE_STR(&v_6); FX_FREE_STR(&v_5); - FX_FREE_STR(&v_4); } _fx_cleanup: ; @@ -9761,33 +9640,32 @@ FX_EXTERN_C int _fx_M6K_formFM12get_kvariantrRM13kdefvariant_t2N14K_form__ktyp_t int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_catch_1); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_catch_1); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_2 = + *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.t.t1, 0, j_0), _fx_catch_1); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_2->u.t.t1, j_0), &v_0); } if (v_0.tag == 5) { FX_COPY_PTR(v_0.u.KVariant, fx_result); } else { - fx_str_t v_2 = {0}; fx_str_t v_3 = {0}; - fx_exn_t v_4 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(tn_0, &v_2, 0), _fx_catch_0); + fx_str_t v_4 = {0}; + fx_exn_t v_5 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(tn_0, &v_3, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("type \'"); fx_str_t slit_1 = FX_MAKE_STR("\' is expected to be a variant"); { - const fx_str_t strs_0[] = { slit_0, v_2, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_3), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_3, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_4), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_3, &v_4, 0), _fx_catch_0); - FX_THROW(&v_4, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_4, &v_5, 0), _fx_catch_0); + FX_THROW(&v_5, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_4); + fx_free_exn(&v_5); + FX_FREE_STR(&v_4); FX_FREE_STR(&v_3); - FX_FREE_STR(&v_2); } FX_CHECK_EXN(_fx_catch_1); @@ -9795,13 +9673,13 @@ FX_EXTERN_C int _fx_M6K_formFM12get_kvariantrRM13kdefvariant_t2N14K_form__ktyp_t _fx_free_N15K_form__kinfo_t(&v_0); } else { - fx_exn_t v_5 = {0}; + fx_exn_t v_6 = {0}; fx_str_t slit_2 = FX_MAKE_STR("variant (or sometimes an exception) is expected here"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_2, &v_5, 0), _fx_catch_2); - FX_THROW(&v_5, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_2, &v_6, 0), _fx_catch_2); + FX_THROW(&v_6, false, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_5); + fx_free_exn(&v_6); } _fx_cleanup: ; @@ -9832,11 +9710,10 @@ FX_EXTERN_C int _fx_M6K_formFM18get_kinterface_optNt6option1rRM15kdefinterface_t int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_catch_0); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_catch_0); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_2 = + *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.t.t1, 0, j_0), _fx_catch_0); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_2->u.t.t1, j_0), &v_0); } if (v_0.tag == 7) { _fx_M6K_formFM4SomeNt6option1rRM15kdefinterface_t1rRM15kdefinterface_t(v_0.u.KInterface, fx_result); @@ -10898,37 +10775,34 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ FX_COPY_PTR(elems_1, &elems_0); _fx_LLT2BN14K_form__atom_t lst_0 = elems_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2BN14K_form__atom_t __fold_result___0 = 0; _fx_LT2BN14K_form__atom_t new_row_0 = 0; _fx_LT2BN14K_form__atom_t res_0 = 0; _fx_LT2BN14K_form__atom_t row_0 = lst_0->hd; _fx_LT2BN14K_form__atom_t lst_1 = row_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N14K_form__atom_t a_0 = {0}; - _fx_LT2BN14K_form__atom_t new_row_1 = 0; _fx_N14K_form__atom_t v_29 = {0}; _fx_T2BN14K_form__atom_t v_30 = {0}; + _fx_LT2BN14K_form__atom_t v_31 = 0; _fx_T2BN14K_form__atom_t* __pat___0 = &lst_1->hd; _fx_copy_N14K_form__atom_t(&__pat___0->t1, &a_0); - FX_COPY_PTR(__fold_result___0, &new_row_1); FX_CALL( _fx_M6K_formFM10walk_atom_N14K_form__atom_t3N14K_form__atom_tR10Ast__loc_tRM9k_callb_t(&a_0, &ctx_7->t1, callb_0, &v_29, 0), _fx_catch_14); _fx_make_T2BN14K_form__atom_t(__pat___0->t0, &v_29, &v_30); - FX_CALL(_fx_cons_LT2BN14K_form__atom_t(&v_30, new_row_1, false, &new_row_1), _fx_catch_14); - _fx_free_LT2BN14K_form__atom_t(&__fold_result___0); - FX_COPY_PTR(new_row_1, &__fold_result___0); + FX_CALL(_fx_cons_LT2BN14K_form__atom_t(&v_30, new_row_0, true, &v_31), _fx_catch_14); + _fx_free_LT2BN14K_form__atom_t(&new_row_0); + FX_COPY_PTR(v_31, &new_row_0); _fx_catch_14: ; + if (v_31) { + _fx_free_LT2BN14K_form__atom_t(&v_31); + } _fx_free_T2BN14K_form__atom_t(&v_30); _fx_free_N14K_form__atom_t(&v_29); - if (new_row_1) { - _fx_free_LT2BN14K_form__atom_t(&new_row_1); - } _fx_free_N14K_form__atom_t(&a_0); FX_CHECK_EXN(_fx_catch_15); } - FX_COPY_PTR(__fold_result___0, &new_row_0); FX_CALL(_fx_M6K_formFM3revLT2BN14K_form__atom_t1LT2BN14K_form__atom_t(new_row_0, &res_0, 0), _fx_catch_15); _fx_LLT2BN14K_form__atom_t node_0 = 0; FX_CALL(_fx_cons_LLT2BN14K_form__atom_t(res_0, 0, false, &node_0), _fx_catch_15); @@ -10941,9 +10815,6 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ if (new_row_0) { _fx_free_LT2BN14K_form__atom_t(&new_row_0); } - if (__fold_result___0) { - _fx_free_LT2BN14K_form__atom_t(&__fold_result___0); - } FX_CHECK_EXN(_fx_catch_16); } FX_CALL( @@ -10965,9 +10836,9 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_26); } else if (tag_0 == 18) { - _fx_LT2BN14K_form__atom_t v_31 = 0; + _fx_LT2BN14K_form__atom_t v_32 = 0; _fx_LT2BN14K_form__atom_t elems_2 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_32 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_33 = {0}; _fx_T2LT2BN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_12 = &e_0->u.KExpMkVector; _fx_T2N14K_form__ktyp_tR10Ast__loc_t* ctx_8 = &vcase_12->t1; _fx_LT2BN14K_form__atom_t lstend_1 = 0; @@ -10975,102 +10846,102 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ _fx_LT2BN14K_form__atom_t lst_2 = elems_2; for (; lst_2; lst_2 = lst_2->tl) { _fx_N14K_form__atom_t a_1 = {0}; - _fx_N14K_form__atom_t v_33 = {0}; + _fx_N14K_form__atom_t v_34 = {0}; _fx_T2BN14K_form__atom_t tup_0 = {0}; _fx_T2BN14K_form__atom_t* __pat___1 = &lst_2->hd; _fx_copy_N14K_form__atom_t(&__pat___1->t1, &a_1); FX_CALL( _fx_M6K_formFM10walk_atom_N14K_form__atom_t3N14K_form__atom_tR10Ast__loc_tRM9k_callb_t(&a_1, &ctx_8->t1, callb_0, - &v_33, 0), _fx_catch_17); - _fx_make_T2BN14K_form__atom_t(__pat___1->t0, &v_33, &tup_0); + &v_34, 0), _fx_catch_17); + _fx_make_T2BN14K_form__atom_t(__pat___1->t0, &v_34, &tup_0); _fx_LT2BN14K_form__atom_t node_1 = 0; FX_CALL(_fx_cons_LT2BN14K_form__atom_t(&tup_0, 0, false, &node_1), _fx_catch_17); - FX_LIST_APPEND(v_31, lstend_1, node_1); + FX_LIST_APPEND(v_32, lstend_1, node_1); _fx_catch_17: ; _fx_free_T2BN14K_form__atom_t(&tup_0); - _fx_free_N14K_form__atom_t(&v_33); + _fx_free_N14K_form__atom_t(&v_34); _fx_free_N14K_form__atom_t(&a_1); FX_CHECK_EXN(_fx_catch_18); } FX_CALL( _fx_M6K_formFM10walk_kctx_T2N14K_form__ktyp_tR10Ast__loc_t2T2N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(ctx_8, callb_0, - &v_32, 0), _fx_catch_18); + &v_33, 0), _fx_catch_18); FX_CALL( - _fx_M6K_formFM12KExpMkVectorN14K_form__kexp_t2LT2BN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_31, &v_32, + _fx_M6K_formFM12KExpMkVectorN14K_form__kexp_t2LT2BN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_32, &v_33, fx_result), _fx_catch_18); _fx_catch_18: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_32); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_33); if (elems_2) { _fx_free_LT2BN14K_form__atom_t(&elems_2); } - if (v_31) { - _fx_free_LT2BN14K_form__atom_t(&v_31); + if (v_32) { + _fx_free_LT2BN14K_form__atom_t(&v_32); } } else if (tag_0 == 12) { - _fx_LN14K_form__atom_t v_34 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_35 = {0}; + _fx_LN14K_form__atom_t v_35 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_36 = {0}; _fx_T3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_13 = &e_0->u.KExpCall; _fx_T2N14K_form__ktyp_tR10Ast__loc_t* ctx_9 = &vcase_13->t2; _fx_R10Ast__loc_t* loc_4 = &ctx_9->t1; - _fx_R9Ast__id_t v_36; - FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&vcase_13->t0, loc_4, callb_0, &v_36, 0), + _fx_R9Ast__id_t v_37; + FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&vcase_13->t0, loc_4, callb_0, &v_37, 0), _fx_catch_19); FX_CALL( _fx_M6K_formFM8walk_al_LN14K_form__atom_t3LN14K_form__atom_tR10Ast__loc_tRM9k_callb_t(vcase_13->t1, loc_4, callb_0, - &v_34, 0), _fx_catch_19); + &v_35, 0), _fx_catch_19); FX_CALL( _fx_M6K_formFM10walk_kctx_T2N14K_form__ktyp_tR10Ast__loc_t2T2N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(ctx_9, callb_0, - &v_35, 0), _fx_catch_19); + &v_36, 0), _fx_catch_19); FX_CALL( - _fx_M6K_formFM8KExpCallN14K_form__kexp_t3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_36, v_34, - &v_35, fx_result), _fx_catch_19); + _fx_M6K_formFM8KExpCallN14K_form__kexp_t3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_37, v_35, + &v_36, fx_result), _fx_catch_19); _fx_catch_19: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_35); - if (v_34) { - _fx_free_LN14K_form__atom_t(&v_34); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_36); + if (v_35) { + _fx_free_LN14K_form__atom_t(&v_35); } } else if (tag_0 == 13) { - _fx_LN14K_form__atom_t v_37 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_38 = {0}; + _fx_LN14K_form__atom_t v_38 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_39 = {0}; _fx_T4R9Ast__id_tiLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_14 = &e_0->u.KExpICall; _fx_T2N14K_form__ktyp_tR10Ast__loc_t* ctx_10 = &vcase_14->t3; _fx_R10Ast__loc_t* loc_5 = &ctx_10->t1; - _fx_R9Ast__id_t v_39; - FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&vcase_14->t0, loc_5, callb_0, &v_39, 0), + _fx_R9Ast__id_t v_40; + FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&vcase_14->t0, loc_5, callb_0, &v_40, 0), _fx_catch_20); FX_CALL( _fx_M6K_formFM8walk_al_LN14K_form__atom_t3LN14K_form__atom_tR10Ast__loc_tRM9k_callb_t(vcase_14->t2, loc_5, callb_0, - &v_37, 0), _fx_catch_20); + &v_38, 0), _fx_catch_20); FX_CALL( _fx_M6K_formFM10walk_kctx_T2N14K_form__ktyp_tR10Ast__loc_t2T2N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(ctx_10, - callb_0, &v_38, 0), _fx_catch_20); + callb_0, &v_39, 0), _fx_catch_20); FX_CALL( - _fx_M6K_formFM9KExpICallN14K_form__kexp_t4R9Ast__id_tiLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_39, - vcase_14->t1, v_37, &v_38, fx_result), _fx_catch_20); + _fx_M6K_formFM9KExpICallN14K_form__kexp_t4R9Ast__id_tiLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_40, + vcase_14->t1, v_38, &v_39, fx_result), _fx_catch_20); _fx_catch_20: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_38); - if (v_37) { - _fx_free_LN14K_form__atom_t(&v_37); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_39); + if (v_38) { + _fx_free_LN14K_form__atom_t(&v_38); } } else if (tag_0 == 19) { - _fx_N14K_form__atom_t v_40 = {0}; - _fx_LN13K_form__dom_t v_41 = 0; + _fx_N14K_form__atom_t v_41 = {0}; + _fx_LN13K_form__dom_t v_42 = 0; _fx_LN13K_form__dom_t idxs_0 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_42 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_43 = {0}; _fx_T5N14K_form__atom_tN13Ast__border_tN18Ast__interpolate_tLN13K_form__dom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_15 = &e_0->u.KExpAt; _fx_T2N14K_form__ktyp_tR10Ast__loc_t* ctx_11 = &vcase_15->t4; _fx_R10Ast__loc_t* loc_6 = &ctx_11->t1; FX_CALL( _fx_M6K_formFM10walk_atom_N14K_form__atom_t3N14K_form__atom_tR10Ast__loc_tRM9k_callb_t(&vcase_15->t0, loc_6, callb_0, - &v_40, 0), _fx_catch_22); + &v_41, 0), _fx_catch_22); _fx_LN13K_form__dom_t lstend_2 = 0; FX_COPY_PTR(vcase_15->t3, &idxs_0); _fx_LN13K_form__dom_t lst_3 = idxs_0; @@ -11082,7 +10953,7 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ 0), _fx_catch_21); _fx_LN13K_form__dom_t node_2 = 0; FX_CALL(_fx_cons_LN13K_form__dom_t(&res_1, 0, false, &node_2), _fx_catch_21); - FX_LIST_APPEND(v_41, lstend_2, node_2); + FX_LIST_APPEND(v_42, lstend_2, node_2); _fx_catch_21: ; _fx_free_N13K_form__dom_t(&res_1); @@ -11090,140 +10961,140 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ } FX_CALL( _fx_M6K_formFM10walk_kctx_T2N14K_form__ktyp_tR10Ast__loc_t2T2N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(ctx_11, - callb_0, &v_42, 0), _fx_catch_22); + callb_0, &v_43, 0), _fx_catch_22); FX_CALL( _fx_M6K_formFM6KExpAtN14K_form__kexp_t5N14K_form__atom_tN13Ast__border_tN18Ast__interpolate_tLN13K_form__dom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &v_40, &vcase_15->t1, &vcase_15->t2, v_41, &v_42, fx_result), _fx_catch_22); + &v_41, &vcase_15->t1, &vcase_15->t2, v_42, &v_43, fx_result), _fx_catch_22); _fx_catch_22: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_42); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_43); if (idxs_0) { _fx_free_LN13K_form__dom_t(&idxs_0); } - if (v_41) { - _fx_free_LN13K_form__dom_t(&v_41); + if (v_42) { + _fx_free_LN13K_form__dom_t(&v_42); } - _fx_free_N14K_form__atom_t(&v_40); + _fx_free_N14K_form__atom_t(&v_41); } else if (tag_0 == 21) { - _fx_N14K_form__atom_t v_43 = {0}; + _fx_N14K_form__atom_t v_44 = {0}; _fx_T3R9Ast__id_tN14K_form__atom_tR10Ast__loc_t* vcase_16 = &e_0->u.KExpAssign; _fx_R10Ast__loc_t* loc_7 = &vcase_16->t2; - _fx_R9Ast__id_t v_44; - FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&vcase_16->t0, loc_7, callb_0, &v_44, 0), + _fx_R9Ast__id_t v_45; + FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&vcase_16->t0, loc_7, callb_0, &v_45, 0), _fx_catch_23); FX_CALL( _fx_M6K_formFM10walk_atom_N14K_form__atom_t3N14K_form__atom_tR10Ast__loc_tRM9k_callb_t(&vcase_16->t1, loc_7, callb_0, - &v_43, 0), _fx_catch_23); + &v_44, 0), _fx_catch_23); FX_CALL( - _fx_M6K_formFM10KExpAssignN14K_form__kexp_t3R9Ast__id_tN14K_form__atom_tR10Ast__loc_t(&v_44, &v_43, loc_7, fx_result), + _fx_M6K_formFM10KExpAssignN14K_form__kexp_t3R9Ast__id_tN14K_form__atom_tR10Ast__loc_t(&v_45, &v_44, loc_7, fx_result), _fx_catch_23); _fx_catch_23: ; - _fx_free_N14K_form__atom_t(&v_43); + _fx_free_N14K_form__atom_t(&v_44); } else if (tag_0 == 20) { - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_45 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_46 = {0}; _fx_T3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t* vcase_17 = &e_0->u.KExpMem; _fx_T2N14K_form__ktyp_tR10Ast__loc_t* ctx_12 = &vcase_17->t2; - _fx_R9Ast__id_t v_46; + _fx_R9Ast__id_t v_47; FX_CALL( - _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&vcase_17->t0, &ctx_12->t1, callb_0, &v_46, 0), + _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&vcase_17->t0, &ctx_12->t1, callb_0, &v_47, 0), _fx_catch_24); FX_CALL( _fx_M6K_formFM10walk_kctx_T2N14K_form__ktyp_tR10Ast__loc_t2T2N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(ctx_12, - callb_0, &v_45, 0), _fx_catch_24); + callb_0, &v_46, 0), _fx_catch_24); FX_CALL( - _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(&v_46, vcase_17->t1, &v_45, + _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(&v_47, vcase_17->t1, &v_46, fx_result), _fx_catch_24); _fx_catch_24: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_45); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_46); } else if (tag_0 == 24) { _fx_T3R9Ast__id_tBR10Ast__loc_t* vcase_18 = &e_0->u.KExpThrow; _fx_R10Ast__loc_t* loc_8 = &vcase_18->t2; - _fx_R9Ast__id_t v_47; - FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&vcase_18->t0, loc_8, callb_0, &v_47, 0), + _fx_R9Ast__id_t v_48; + FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&vcase_18->t0, loc_8, callb_0, &v_48, 0), _fx_catch_25); - FX_CALL(_fx_M6K_formFM9KExpThrowN14K_form__kexp_t3R9Ast__id_tBR10Ast__loc_t(&v_47, vcase_18->t1, loc_8, fx_result), + FX_CALL(_fx_M6K_formFM9KExpThrowN14K_form__kexp_t3R9Ast__id_tBR10Ast__loc_t(&v_48, vcase_18->t1, loc_8, fx_result), _fx_catch_25); _fx_catch_25: ; } else if (tag_0 == 28) { - _fx_N14K_form__kexp_t v_48 = 0; _fx_N14K_form__kexp_t v_49 = 0; + _fx_N14K_form__kexp_t v_50 = 0; _fx_T3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t* vcase_19 = &e_0->u.KExpWhile; - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_19->t0, callb_0, &v_48, 0), + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_19->t0, callb_0, &v_49, 0), _fx_catch_26); - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_19->t1, callb_0, &v_49, 0), + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_19->t1, callb_0, &v_50, 0), _fx_catch_26); FX_CALL( - _fx_M6K_formFM9KExpWhileN14K_form__kexp_t3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t(v_48, v_49, &vcase_19->t2, + _fx_M6K_formFM9KExpWhileN14K_form__kexp_t3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t(v_49, v_50, &vcase_19->t2, fx_result), _fx_catch_26); _fx_catch_26: ; + if (v_50) { + _fx_free_N14K_form__kexp_t(&v_50); + } if (v_49) { _fx_free_N14K_form__kexp_t(&v_49); } - if (v_48) { - _fx_free_N14K_form__kexp_t(&v_48); - } } else if (tag_0 == 29) { - _fx_N14K_form__kexp_t v_50 = 0; _fx_N14K_form__kexp_t v_51 = 0; + _fx_N14K_form__kexp_t v_52 = 0; _fx_T3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t* vcase_20 = &e_0->u.KExpDoWhile; - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_20->t0, callb_0, &v_50, 0), + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_20->t0, callb_0, &v_51, 0), _fx_catch_27); - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_20->t1, callb_0, &v_51, 0), + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_20->t1, callb_0, &v_52, 0), _fx_catch_27); FX_CALL( - _fx_M6K_formFM11KExpDoWhileN14K_form__kexp_t3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t(v_50, v_51, &vcase_20->t2, + _fx_M6K_formFM11KExpDoWhileN14K_form__kexp_t3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t(v_51, v_52, &vcase_20->t2, fx_result), _fx_catch_27); _fx_catch_27: ; + if (v_52) { + _fx_free_N14K_form__kexp_t(&v_52); + } if (v_51) { _fx_free_N14K_form__kexp_t(&v_51); } - if (v_50) { - _fx_free_N14K_form__kexp_t(&v_50); - } } else if (tag_0 == 27) { - _fx_LT2R9Ast__id_tN13K_form__dom_t v_52 = 0; - _fx_LR9Ast__id_t v_53 = 0; - _fx_N14K_form__kexp_t v_54 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_53 = 0; + _fx_LR9Ast__id_t v_54 = 0; + _fx_N14K_form__kexp_t v_55 = 0; _fx_T5LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tR10Ast__loc_t* vcase_21 = &e_0->u.KExpFor; _fx_R10Ast__loc_t* loc_9 = &vcase_21->t4; FX_CALL( _fx_M6K_formFM14walk_idomlist_LT2R9Ast__id_tN13K_form__dom_t3LT2R9Ast__id_tN13K_form__dom_tR10Ast__loc_tRM9k_callb_t( - vcase_21->t0, loc_9, callb_0, &v_52, 0), _fx_catch_28); + vcase_21->t0, loc_9, callb_0, &v_53, 0), _fx_catch_28); FX_CALL( _fx_M6K_formFM12walk_idlist_LR9Ast__id_t4LR9Ast__id_tR10Ast__loc_tBRM9k_callb_t(vcase_21->t1, loc_9, true, callb_0, - &v_53, 0), _fx_catch_28); - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_21->t2, callb_0, &v_54, 0), + &v_54, 0), _fx_catch_28); + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_21->t2, callb_0, &v_55, 0), _fx_catch_28); FX_CALL( _fx_M6K_formFM7KExpForN14K_form__kexp_t5LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tR10Ast__loc_t( - v_52, v_53, v_54, &vcase_21->t3, loc_9, fx_result), _fx_catch_28); + v_53, v_54, v_55, &vcase_21->t3, loc_9, fx_result), _fx_catch_28); _fx_catch_28: ; - if (v_54) { - _fx_free_N14K_form__kexp_t(&v_54); + if (v_55) { + _fx_free_N14K_form__kexp_t(&v_55); } - FX_FREE_LIST_SIMPLE(&v_53); - if (v_52) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_52); + FX_FREE_LIST_SIMPLE(&v_54); + if (v_53) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_53); } } else if (tag_0 == 26) { - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_55 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_56 = 0; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t e_idoml_l_0 = 0; - _fx_N14K_form__kexp_t v_56 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_57 = {0}; + _fx_N14K_form__kexp_t v_57 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_58 = {0}; _fx_T4LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_22 = &e_0->u.KExpMap; _fx_T2N14K_form__ktyp_tR10Ast__loc_t* ctx_13 = &vcase_22->t3; @@ -11235,36 +11106,36 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ _fx_N14K_form__kexp_t e_1 = 0; _fx_LT2R9Ast__id_tN13K_form__dom_t idoml_0 = 0; _fx_LR9Ast__id_t at_ids_0 = 0; - _fx_N14K_form__kexp_t v_58 = 0; - _fx_LT2R9Ast__id_tN13K_form__dom_t v_59 = 0; - _fx_LR9Ast__id_t v_60 = 0; + _fx_N14K_form__kexp_t v_59 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_60 = 0; + _fx_LR9Ast__id_t v_61 = 0; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t tup_1 = {0}; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* __pat___2 = &lst_4->hd; FX_COPY_PTR(__pat___2->t0, &e_1); FX_COPY_PTR(__pat___2->t1, &idoml_0); FX_COPY_PTR(__pat___2->t2, &at_ids_0); - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_1, callb_0, &v_58, 0), + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_1, callb_0, &v_59, 0), _fx_catch_29); FX_CALL( _fx_M6K_formFM14walk_idomlist_LT2R9Ast__id_tN13K_form__dom_t3LT2R9Ast__id_tN13K_form__dom_tR10Ast__loc_tRM9k_callb_t( - idoml_0, loc_10, callb_0, &v_59, 0), _fx_catch_29); + idoml_0, loc_10, callb_0, &v_60, 0), _fx_catch_29); FX_CALL( _fx_M6K_formFM12walk_idlist_LR9Ast__id_t4LR9Ast__id_tR10Ast__loc_tBRM9k_callb_t(at_ids_0, loc_10, true, callb_0, - &v_60, 0), _fx_catch_29); - _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(v_58, v_59, v_60, &tup_1); + &v_61, 0), _fx_catch_29); + _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(v_59, v_60, v_61, &tup_1); _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t node_3 = 0; FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&tup_1, 0, false, &node_3), _fx_catch_29); - FX_LIST_APPEND(v_55, lstend_3, node_3); + FX_LIST_APPEND(v_56, lstend_3, node_3); _fx_catch_29: ; _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&tup_1); - FX_FREE_LIST_SIMPLE(&v_60); - if (v_59) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_59); + FX_FREE_LIST_SIMPLE(&v_61); + if (v_60) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_60); } - if (v_58) { - _fx_free_N14K_form__kexp_t(&v_58); + if (v_59) { + _fx_free_N14K_form__kexp_t(&v_59); } FX_FREE_LIST_SIMPLE(&at_ids_0); if (idoml_0) { @@ -11275,31 +11146,31 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ } FX_CHECK_EXN(_fx_catch_30); } - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_22->t1, callb_0, &v_56, 0), + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_22->t1, callb_0, &v_57, 0), _fx_catch_30); FX_CALL( _fx_M6K_formFM10walk_kctx_T2N14K_form__ktyp_tR10Ast__loc_t2T2N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(ctx_13, - callb_0, &v_57, 0), _fx_catch_30); + callb_0, &v_58, 0), _fx_catch_30); FX_CALL( _fx_M6K_formFM7KExpMapN14K_form__kexp_t4LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tT2N14K_form__ktyp_tR10Ast__loc_t( - v_55, v_56, &vcase_22->t2, &v_57, fx_result), _fx_catch_30); + v_56, v_57, &vcase_22->t2, &v_58, fx_result), _fx_catch_30); _fx_catch_30: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_57); - if (v_56) { - _fx_free_N14K_form__kexp_t(&v_56); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_58); + if (v_57) { + _fx_free_N14K_form__kexp_t(&v_57); } if (e_idoml_l_0) { _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&e_idoml_l_0); } - if (v_55) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_55); + if (v_56) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_56); } } else if (tag_0 == 22) { - _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t v_61 = 0; + _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t v_62 = 0; _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t cases_0 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_62 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_63 = {0}; _fx_T2LT2LN14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_23 = &e_0->u.KExpMatch; _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t lstend_4 = 0; FX_COPY_PTR(vcase_23->t0, &cases_0); @@ -11307,8 +11178,8 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ for (; lst_5; lst_5 = lst_5->tl) { _fx_LN14K_form__kexp_t checks_i_0 = 0; _fx_N14K_form__kexp_t ei_0 = 0; - _fx_LN14K_form__kexp_t v_63 = 0; - _fx_N14K_form__kexp_t v_64 = 0; + _fx_LN14K_form__kexp_t v_64 = 0; + _fx_N14K_form__kexp_t v_65 = 0; _fx_T2LN14K_form__kexp_tN14K_form__kexp_t tup_2 = {0}; _fx_T2LN14K_form__kexp_tN14K_form__kexp_t* __pat___3 = &lst_5->hd; FX_COPY_PTR(__pat___3->t0, &checks_i_0); @@ -11322,7 +11193,7 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ _fx_catch_31); _fx_LN14K_form__kexp_t node_4 = 0; FX_CALL(_fx_cons_LN14K_form__kexp_t(res_2, 0, false, &node_4), _fx_catch_31); - FX_LIST_APPEND(v_63, lstend_5, node_4); + FX_LIST_APPEND(v_64, lstend_5, node_4); _fx_catch_31: ; if (res_2) { @@ -11330,20 +11201,20 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ } FX_CHECK_EXN(_fx_catch_32); } - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(ei_0, callb_0, &v_64, 0), + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(ei_0, callb_0, &v_65, 0), _fx_catch_32); - _fx_make_T2LN14K_form__kexp_tN14K_form__kexp_t(v_63, v_64, &tup_2); + _fx_make_T2LN14K_form__kexp_tN14K_form__kexp_t(v_64, v_65, &tup_2); _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t node_5 = 0; FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(&tup_2, 0, false, &node_5), _fx_catch_32); - FX_LIST_APPEND(v_61, lstend_4, node_5); + FX_LIST_APPEND(v_62, lstend_4, node_5); _fx_catch_32: ; _fx_free_T2LN14K_form__kexp_tN14K_form__kexp_t(&tup_2); - if (v_64) { - _fx_free_N14K_form__kexp_t(&v_64); + if (v_65) { + _fx_free_N14K_form__kexp_t(&v_65); } - if (v_63) { - _fx_free_LN14K_form__kexp_t(&v_63); + if (v_64) { + _fx_free_LN14K_form__kexp_t(&v_64); } if (ei_0) { _fx_free_N14K_form__kexp_t(&ei_0); @@ -11355,115 +11226,115 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ } FX_CALL( _fx_M6K_formFM10walk_kctx_T2N14K_form__ktyp_tR10Ast__loc_t2T2N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(&vcase_23->t1, - callb_0, &v_62, 0), _fx_catch_33); + callb_0, &v_63, 0), _fx_catch_33); FX_CALL( - _fx_M6K_formFM9KExpMatchN14K_form__kexp_t2LT2LN14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t(v_61, - &v_62, fx_result), _fx_catch_33); + _fx_M6K_formFM9KExpMatchN14K_form__kexp_t2LT2LN14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t(v_62, + &v_63, fx_result), _fx_catch_33); _fx_catch_33: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_62); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_63); if (cases_0) { _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&cases_0); } - if (v_61) { - _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_61); + if (v_62) { + _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_62); } } else if (tag_0 == 23) { - _fx_N14K_form__kexp_t v_65 = 0; _fx_N14K_form__kexp_t v_66 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_67 = {0}; + _fx_N14K_form__kexp_t v_67 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_68 = {0}; _fx_T3N14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_24 = &e_0->u.KExpTryCatch; - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_24->t0, callb_0, &v_65, 0), + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_24->t0, callb_0, &v_66, 0), _fx_catch_34); - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_24->t1, callb_0, &v_66, 0), + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_24->t1, callb_0, &v_67, 0), _fx_catch_34); FX_CALL( _fx_M6K_formFM10walk_kctx_T2N14K_form__ktyp_tR10Ast__loc_t2T2N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(&vcase_24->t2, - callb_0, &v_67, 0), _fx_catch_34); + callb_0, &v_68, 0), _fx_catch_34); FX_CALL( - _fx_M6K_formFM12KExpTryCatchN14K_form__kexp_t3N14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t(v_65, - v_66, &v_67, fx_result), _fx_catch_34); + _fx_M6K_formFM12KExpTryCatchN14K_form__kexp_t3N14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t(v_66, + v_67, &v_68, fx_result), _fx_catch_34); _fx_catch_34: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_67); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_68); + if (v_67) { + _fx_free_N14K_form__kexp_t(&v_67); + } if (v_66) { _fx_free_N14K_form__kexp_t(&v_66); } - if (v_65) { - _fx_free_N14K_form__kexp_t(&v_65); - } } else if (tag_0 == 25) { - _fx_N14K_form__atom_t v_68 = {0}; - _fx_N14K_form__ktyp_t v_69 = 0; + _fx_N14K_form__atom_t v_69 = {0}; + _fx_N14K_form__ktyp_t v_70 = 0; _fx_T3N14K_form__atom_tN14K_form__ktyp_tR10Ast__loc_t* vcase_25 = &e_0->u.KExpCast; _fx_R10Ast__loc_t* loc_11 = &vcase_25->t2; FX_CALL( _fx_M6K_formFM10walk_atom_N14K_form__atom_t3N14K_form__atom_tR10Ast__loc_tRM9k_callb_t(&vcase_25->t0, loc_11, callb_0, - &v_68, 0), _fx_catch_35); + &v_69, 0), _fx_catch_35); FX_CALL( _fx_M6K_formFM10walk_ktyp_N14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(vcase_25->t1, loc_11, callb_0, - &v_69, 0), _fx_catch_35); + &v_70, 0), _fx_catch_35); FX_CALL( - _fx_M6K_formFM8KExpCastN14K_form__kexp_t3N14K_form__atom_tN14K_form__ktyp_tR10Ast__loc_t(&v_68, v_69, loc_11, + _fx_M6K_formFM8KExpCastN14K_form__kexp_t3N14K_form__atom_tN14K_form__ktyp_tR10Ast__loc_t(&v_69, v_70, loc_11, fx_result), _fx_catch_35); _fx_catch_35: ; - if (v_69) { - _fx_free_N14K_form__ktyp_t(&v_69); + if (v_70) { + _fx_free_N14K_form__ktyp_t(&v_70); } - _fx_free_N14K_form__atom_t(&v_68); + _fx_free_N14K_form__atom_t(&v_69); } else if (tag_0 == 30) { - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_70 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_71 = {0}; _fx_T2ST2N14K_form__ktyp_tR10Ast__loc_t* vcase_26 = &e_0->u.KExpCCode; FX_CALL( _fx_M6K_formFM10walk_kctx_T2N14K_form__ktyp_tR10Ast__loc_t2T2N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(&vcase_26->t1, - callb_0, &v_70, 0), _fx_catch_36); - FX_CALL(_fx_M6K_formFM9KExpCCodeN14K_form__kexp_t2ST2N14K_form__ktyp_tR10Ast__loc_t(&vcase_26->t0, &v_70, fx_result), + callb_0, &v_71, 0), _fx_catch_36); + FX_CALL(_fx_M6K_formFM9KExpCCodeN14K_form__kexp_t2ST2N14K_form__ktyp_tR10Ast__loc_t(&vcase_26->t0, &v_71, fx_result), _fx_catch_36); _fx_catch_36: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_70); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_71); } else if (tag_0 == 31) { - _fx_N14K_form__kexp_t v_71 = 0; + _fx_N14K_form__kexp_t v_72 = 0; _fx_T3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t* vcase_27 = &e_0->u.KDefVal; _fx_R10Ast__loc_t* loc_12 = &vcase_27->t2; _fx_R9Ast__id_t new_kv_name_0; FX_CALL( _fx_M6K_formFM12update_kval_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&vcase_27->t0, loc_12, callb_0, &new_kv_name_0, 0), _fx_catch_37); - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_27->t1, callb_0, &v_71, 0), + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_27->t1, callb_0, &v_72, 0), _fx_catch_37); FX_CALL( - _fx_M6K_formFM7KDefValN14K_form__kexp_t3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t(&new_kv_name_0, v_71, loc_12, + _fx_M6K_formFM7KDefValN14K_form__kexp_t3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t(&new_kv_name_0, v_72, loc_12, fx_result), _fx_catch_37); _fx_catch_37: ; - if (v_71) { - _fx_free_N14K_form__kexp_t(&v_71); + if (v_72) { + _fx_free_N14K_form__kexp_t(&v_72); } } else if (tag_0 == 32) { _fx_N14K_form__kexp_t kf_body_0 = 0; _fx_N14K_form__ktyp_t kf_rt_0 = 0; _fx_LR9Ast__id_t kf_params_0 = 0; - _fx_LR9Ast__id_t v_72 = 0; - _fx_N14K_form__ktyp_t v_73 = 0; - _fx_N14K_form__kexp_t v_74 = 0; + _fx_LR9Ast__id_t v_73 = 0; + _fx_N14K_form__ktyp_t v_74 = 0; + _fx_N14K_form__kexp_t v_75 = 0; _fx_R17K_form__kdeffun_t new_kf_0 = {0}; _fx_rR17K_form__kdeffun_t new_kf_1 = 0; - _fx_N15K_form__kinfo_t v_75 = {0}; + _fx_N15K_form__kinfo_t v_76 = {0}; _fx_rR17K_form__kdeffun_t kf_0 = e_0->u.KDefFun; - _fx_R17K_form__kdeffun_t* v_76 = &kf_0->data; - _fx_R10Ast__loc_t kf_loc_0 = v_76->kf_loc; - _fx_R25K_form__kdefclosureinfo_t kf_closure_0 = v_76->kf_closure; - FX_COPY_PTR(v_76->kf_body, &kf_body_0); - FX_COPY_PTR(v_76->kf_rt, &kf_rt_0); - FX_COPY_PTR(v_76->kf_params, &kf_params_0); - _fx_R9Ast__id_t kf_name_0 = v_76->kf_name; + _fx_R17K_form__kdeffun_t* v_77 = &kf_0->data; + _fx_R10Ast__loc_t kf_loc_0 = v_77->kf_loc; + _fx_R25K_form__kdefclosureinfo_t kf_closure_0 = v_77->kf_closure; + FX_COPY_PTR(v_77->kf_body, &kf_body_0); + FX_COPY_PTR(v_77->kf_rt, &kf_rt_0); + FX_COPY_PTR(v_77->kf_params, &kf_params_0); + _fx_R9Ast__id_t kf_name_0 = v_77->kf_name; _fx_R9Ast__id_t kci_wrap_f_0 = kf_closure_0.kci_wrap_f; _fx_R9Ast__id_t kci_make_fp_0 = kf_closure_0.kci_make_fp; _fx_R9Ast__id_t kci_fp_typ_0 = kf_closure_0.kci_fp_typ; @@ -11477,62 +11348,62 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ FX_CALL( _fx_M6K_formFM12update_kval_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kci_arg_0, &kf_loc_0, callb_0, &new_kci_arg_0, 0), _fx_catch_38); - _fx_R17K_form__kdeffun_t* v_77 = &kf_0->data; + _fx_R17K_form__kdeffun_t* v_78 = &kf_0->data; FX_CALL( _fx_M6K_formFM12walk_idlist_LR9Ast__id_t4LR9Ast__id_tR10Ast__loc_tBRM9k_callb_t(kf_params_0, &kf_loc_0, true, callb_0, - &v_72, 0), _fx_catch_38); - FX_CALL( - _fx_M6K_formFM10walk_ktyp_N14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(kf_rt_0, &kf_loc_0, callb_0, &v_73, 0), _fx_catch_38); - FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(kf_body_0, callb_0, &v_74, 0), - _fx_catch_38); - _fx_R9Ast__id_t v_78; FX_CALL( - _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kci_fcv_t_0, &kf_loc_0, callb_0, &v_78, 0), + _fx_M6K_formFM10walk_ktyp_N14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(kf_rt_0, &kf_loc_0, callb_0, + &v_74, 0), _fx_catch_38); + FX_CALL(_fx_M6K_formFM10walk_kexp_N14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(kf_body_0, callb_0, &v_75, 0), _fx_catch_38); _fx_R9Ast__id_t v_79; FX_CALL( - _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kci_fp_typ_0, &kf_loc_0, callb_0, &v_79, 0), + _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kci_fcv_t_0, &kf_loc_0, callb_0, &v_79, 0), _fx_catch_38); _fx_R9Ast__id_t v_80; FX_CALL( - _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kci_make_fp_0, &kf_loc_0, callb_0, &v_80, 0), + _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kci_fp_typ_0, &kf_loc_0, callb_0, &v_80, 0), _fx_catch_38); _fx_R9Ast__id_t v_81; FX_CALL( - _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kci_wrap_f_0, &kf_loc_0, callb_0, &v_81, 0), + _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kci_make_fp_0, &kf_loc_0, callb_0, &v_81, 0), _fx_catch_38); - _fx_R25K_form__kdefclosureinfo_t v_82 = { new_kci_arg_0, v_78, v_79, v_80, v_81 }; - _fx_make_R17K_form__kdeffun_t(&new_kf_name_0, &v_77->kf_cname, v_72, v_73, v_74, &v_77->kf_flags, &v_82, v_77->kf_scope, - &v_77->kf_loc, &new_kf_0); + _fx_R9Ast__id_t v_82; + FX_CALL( + _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kci_wrap_f_0, &kf_loc_0, callb_0, &v_82, 0), + _fx_catch_38); + _fx_R25K_form__kdefclosureinfo_t v_83 = { new_kci_arg_0, v_79, v_80, v_81, v_82 }; + _fx_make_R17K_form__kdeffun_t(&new_kf_name_0, &v_78->kf_cname, v_73, v_74, v_75, &v_78->kf_flags, &v_83, v_78->kf_scope, + &v_78->kf_loc, &new_kf_0); bool res_3; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&new_kf_name_0, &kf_name_0, &res_3, 0), _fx_catch_38); if (res_3) { - _fx_R17K_form__kdeffun_t* v_83 = &kf_0->data; - _fx_free_R17K_form__kdeffun_t(v_83); - _fx_copy_R17K_form__kdeffun_t(&new_kf_0, v_83); + _fx_R17K_form__kdeffun_t* v_84 = &kf_0->data; + _fx_free_R17K_form__kdeffun_t(v_84); + _fx_copy_R17K_form__kdeffun_t(&new_kf_0, v_84); FX_COPY_PTR(e_0, fx_result); } else { FX_CALL(_fx_make_rR17K_form__kdeffun_t(&new_kf_0, &new_kf_1), _fx_catch_38); - _fx_M6K_formFM4KFunN15K_form__kinfo_t1rRM9kdeffun_t(new_kf_1, &v_75); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_kf_name_0, &v_75, 0), _fx_catch_38); + _fx_M6K_formFM4KFunN15K_form__kinfo_t1rRM9kdeffun_t(new_kf_1, &v_76); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_kf_name_0, &v_76, 0), _fx_catch_38); FX_CALL(_fx_M6K_formFM7KDefFunN14K_form__kexp_t1rRM9kdeffun_t(new_kf_1, fx_result), _fx_catch_38); } _fx_catch_38: ; - _fx_free_N15K_form__kinfo_t(&v_75); + _fx_free_N15K_form__kinfo_t(&v_76); if (new_kf_1) { _fx_free_rR17K_form__kdeffun_t(&new_kf_1); } _fx_free_R17K_form__kdeffun_t(&new_kf_0); - if (v_74) { - _fx_free_N14K_form__kexp_t(&v_74); + if (v_75) { + _fx_free_N14K_form__kexp_t(&v_75); } - if (v_73) { - _fx_free_N14K_form__ktyp_t(&v_73); + if (v_74) { + _fx_free_N14K_form__ktyp_t(&v_74); } - FX_FREE_LIST_SIMPLE(&v_72); + FX_FREE_LIST_SIMPLE(&v_73); FX_FREE_LIST_SIMPLE(&kf_params_0); if (kf_rt_0) { _fx_free_N14K_form__ktyp_t(&kf_rt_0); @@ -11543,56 +11414,56 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ } else if (tag_0 == 33) { _fx_N14K_form__ktyp_t ke_typ_0 = 0; - _fx_N14K_form__ktyp_t v_84 = 0; + _fx_N14K_form__ktyp_t v_85 = 0; _fx_R17K_form__kdefexn_t new_ke_0 = {0}; _fx_rR17K_form__kdefexn_t new_ke_1 = 0; - _fx_N15K_form__kinfo_t v_85 = {0}; + _fx_N15K_form__kinfo_t v_86 = {0}; _fx_rR17K_form__kdefexn_t ke_0 = e_0->u.KDefExn; - _fx_R17K_form__kdefexn_t* v_86 = &ke_0->data; - _fx_R10Ast__loc_t ke_loc_0 = v_86->ke_loc; - FX_COPY_PTR(v_86->ke_typ, &ke_typ_0); - _fx_R9Ast__id_t ke_make_0 = v_86->ke_make; - _fx_R9Ast__id_t ke_tag_0 = v_86->ke_tag; - _fx_R9Ast__id_t ke_name_0 = v_86->ke_name; + _fx_R17K_form__kdefexn_t* v_87 = &ke_0->data; + _fx_R10Ast__loc_t ke_loc_0 = v_87->ke_loc; + FX_COPY_PTR(v_87->ke_typ, &ke_typ_0); + _fx_R9Ast__id_t ke_make_0 = v_87->ke_make; + _fx_R9Ast__id_t ke_tag_0 = v_87->ke_tag; + _fx_R9Ast__id_t ke_name_0 = v_87->ke_name; _fx_R9Ast__id_t new_ke_name_0; FX_CALL( _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&ke_name_0, &ke_loc_0, callb_0, &new_ke_name_0, 0), _fx_catch_39); - _fx_R17K_form__kdefexn_t* v_87 = &ke_0->data; + _fx_R17K_form__kdefexn_t* v_88 = &ke_0->data; FX_CALL( _fx_M6K_formFM10walk_ktyp_N14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(ke_typ_0, &ke_loc_0, callb_0, - &v_84, 0), _fx_catch_39); - _fx_R9Ast__id_t v_88; - FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&ke_tag_0, &ke_loc_0, callb_0, &v_88, 0), - _fx_catch_39); + &v_85, 0), _fx_catch_39); _fx_R9Ast__id_t v_89; - FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&ke_make_0, &ke_loc_0, callb_0, &v_89, 0), + FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&ke_tag_0, &ke_loc_0, callb_0, &v_89, 0), _fx_catch_39); - _fx_make_R17K_form__kdefexn_t(&new_ke_name_0, &v_87->ke_cname, &v_87->ke_base_cname, v_84, v_87->ke_std, &v_88, &v_89, - v_87->ke_scope, &v_87->ke_loc, &new_ke_0); + _fx_R9Ast__id_t v_90; + FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&ke_make_0, &ke_loc_0, callb_0, &v_90, 0), + _fx_catch_39); + _fx_make_R17K_form__kdefexn_t(&new_ke_name_0, &v_88->ke_cname, &v_88->ke_base_cname, v_85, v_88->ke_std, &v_89, &v_90, + v_88->ke_scope, &v_88->ke_loc, &new_ke_0); bool res_4; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&new_ke_name_0, &ke_name_0, &res_4, 0), _fx_catch_39); if (res_4) { - _fx_R17K_form__kdefexn_t* v_90 = &ke_0->data; - _fx_free_R17K_form__kdefexn_t(v_90); - _fx_copy_R17K_form__kdefexn_t(&new_ke_0, v_90); + _fx_R17K_form__kdefexn_t* v_91 = &ke_0->data; + _fx_free_R17K_form__kdefexn_t(v_91); + _fx_copy_R17K_form__kdefexn_t(&new_ke_0, v_91); FX_COPY_PTR(e_0, fx_result); } else { FX_CALL(_fx_make_rR17K_form__kdefexn_t(&new_ke_0, &new_ke_1), _fx_catch_39); - _fx_M6K_formFM4KExnN15K_form__kinfo_t1rRM9kdefexn_t(new_ke_1, &v_85); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_ke_name_0, &v_85, 0), _fx_catch_39); + _fx_M6K_formFM4KExnN15K_form__kinfo_t1rRM9kdefexn_t(new_ke_1, &v_86); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_ke_name_0, &v_86, 0), _fx_catch_39); FX_CALL(_fx_M6K_formFM7KDefExnN14K_form__kexp_t1rRM9kdefexn_t(new_ke_1, fx_result), _fx_catch_39); } _fx_catch_39: ; - _fx_free_N15K_form__kinfo_t(&v_85); + _fx_free_N15K_form__kinfo_t(&v_86); if (new_ke_1) { _fx_free_rR17K_form__kdefexn_t(&new_ke_1); } _fx_free_R17K_form__kdefexn_t(&new_ke_0); - if (v_84) { - _fx_free_N14K_form__ktyp_t(&v_84); + if (v_85) { + _fx_free_N14K_form__ktyp_t(&v_85); } if (ke_typ_0) { _fx_free_N14K_form__ktyp_t(&ke_typ_0); @@ -11602,48 +11473,48 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ _fx_LR9Ast__id_t kvar_ctors_0 = 0; _fx_LT2R9Ast__id_tLR9Ast__id_t kvar_ifaces_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t kvar_cases_0 = 0; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_91 = 0; - _fx_LR9Ast__id_t v_92 = 0; - _fx_LT2R9Ast__id_tLR9Ast__id_t v_93 = 0; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_92 = 0; + _fx_LR9Ast__id_t v_93 = 0; + _fx_LT2R9Ast__id_tLR9Ast__id_t v_94 = 0; _fx_R21K_form__kdefvariant_t new_kvar_0 = {0}; _fx_rR21K_form__kdefvariant_t new_kvar_1 = 0; - _fx_N15K_form__kinfo_t v_94 = {0}; + _fx_N15K_form__kinfo_t v_95 = {0}; _fx_rR21K_form__kdefvariant_t kvar_0 = e_0->u.KDefVariant; - _fx_R21K_form__kdefvariant_t* v_95 = &kvar_0->data; - _fx_R10Ast__loc_t kvar_loc_0 = v_95->kvar_loc; - FX_COPY_PTR(v_95->kvar_ctors, &kvar_ctors_0); - FX_COPY_PTR(v_95->kvar_ifaces, &kvar_ifaces_0); - FX_COPY_PTR(v_95->kvar_cases, &kvar_cases_0); - _fx_R9Ast__id_t kvar_name_0 = v_95->kvar_name; + _fx_R21K_form__kdefvariant_t* v_96 = &kvar_0->data; + _fx_R10Ast__loc_t kvar_loc_0 = v_96->kvar_loc; + FX_COPY_PTR(v_96->kvar_ctors, &kvar_ctors_0); + FX_COPY_PTR(v_96->kvar_ifaces, &kvar_ifaces_0); + FX_COPY_PTR(v_96->kvar_cases, &kvar_cases_0); + _fx_R9Ast__id_t kvar_name_0 = v_96->kvar_name; _fx_R9Ast__id_t new_kvar_name_0; FX_CALL( _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kvar_name_0, &kvar_loc_0, callb_0, &new_kvar_name_0, 0), _fx_catch_45); - _fx_R21K_form__kdefvariant_t* v_96 = &kvar_0->data; + _fx_R21K_form__kdefvariant_t* v_97 = &kvar_0->data; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lstend_6 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_7 = kvar_cases_0; for (; lst_7; lst_7 = lst_7->tl) { _fx_N14K_form__ktyp_t t_0 = 0; - _fx_N14K_form__ktyp_t v_97 = 0; + _fx_N14K_form__ktyp_t v_98 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t tup_3 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___4 = &lst_7->hd; _fx_R9Ast__id_t n_0 = __pat___4->t0; FX_COPY_PTR(__pat___4->t1, &t_0); - _fx_R9Ast__id_t v_98; - FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&n_0, &kvar_loc_0, callb_0, &v_98, 0), + _fx_R9Ast__id_t v_99; + FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&n_0, &kvar_loc_0, callb_0, &v_99, 0), _fx_catch_40); FX_CALL( _fx_M6K_formFM10walk_ktyp_N14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(t_0, &kvar_loc_0, callb_0, - &v_97, 0), _fx_catch_40); - _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&v_98, v_97, &tup_3); + &v_98, 0), _fx_catch_40); + _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&v_99, v_98, &tup_3); _fx_LT2R9Ast__id_tN14K_form__ktyp_t node_6 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&tup_3, 0, false, &node_6), _fx_catch_40); - FX_LIST_APPEND(v_91, lstend_6, node_6); + FX_LIST_APPEND(v_92, lstend_6, node_6); _fx_catch_40: ; _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&tup_3); - if (v_97) { - _fx_free_N14K_form__ktyp_t(&v_97); + if (v_98) { + _fx_free_N14K_form__ktyp_t(&v_98); } if (t_0) { _fx_free_N14K_form__ktyp_t(&t_0); @@ -11653,11 +11524,11 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ _fx_LR9Ast__id_t lstend_7 = 0; _fx_LR9Ast__id_t lst_8 = kvar_ctors_0; for (; lst_8; lst_8 = lst_8->tl) { - _fx_N15K_form__kinfo_t v_99 = {0}; + _fx_N15K_form__kinfo_t v_100 = {0}; _fx_R9Ast__id_t* c_0 = &lst_8->hd; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(c_0, &kvar_loc_0, &v_99, 0), _fx_catch_43); + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(c_0, &kvar_loc_0, &v_100, 0), _fx_catch_43); _fx_R9Ast__id_t res_5; - if (v_99.tag == 2) { + if (v_100.tag == 2) { FX_CALL( _fx_M6K_formFM12update_kval_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(c_0, &kvar_loc_0, callb_0, &res_5, 0), _fx_catch_41); @@ -11674,68 +11545,68 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ FX_CHECK_EXN(_fx_catch_43); _fx_LR9Ast__id_t node_7 = 0; FX_CALL(_fx_cons_LR9Ast__id_t(&res_5, 0, false, &node_7), _fx_catch_43); - FX_LIST_APPEND(v_92, lstend_7, node_7); + FX_LIST_APPEND(v_93, lstend_7, node_7); _fx_catch_43: ; - _fx_free_N15K_form__kinfo_t(&v_99); + _fx_free_N15K_form__kinfo_t(&v_100); FX_CHECK_EXN(_fx_catch_45); } _fx_LT2R9Ast__id_tLR9Ast__id_t lstend_8 = 0; _fx_LT2R9Ast__id_tLR9Ast__id_t lst_9 = kvar_ifaces_0; for (; lst_9; lst_9 = lst_9->tl) { _fx_LR9Ast__id_t meths_0 = 0; - _fx_LR9Ast__id_t v_100 = 0; + _fx_LR9Ast__id_t v_101 = 0; _fx_T2R9Ast__id_tLR9Ast__id_t tup_4 = {0}; _fx_T2R9Ast__id_tLR9Ast__id_t* __pat___5 = &lst_9->hd; _fx_R9Ast__id_t iname_0 = __pat___5->t0; FX_COPY_PTR(__pat___5->t1, &meths_0); - _fx_R9Ast__id_t v_101; + _fx_R9Ast__id_t v_102; FX_CALL( - _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&iname_0, &kvar_loc_0, callb_0, &v_101, 0), + _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&iname_0, &kvar_loc_0, callb_0, &v_102, 0), _fx_catch_44); FX_CALL( _fx_M6K_formFM12walk_idlist_LR9Ast__id_t4LR9Ast__id_tR10Ast__loc_tBRM9k_callb_t(meths_0, &kvar_loc_0, false, - callb_0, &v_100, 0), _fx_catch_44); - _fx_make_T2R9Ast__id_tLR9Ast__id_t(&v_101, v_100, &tup_4); + callb_0, &v_101, 0), _fx_catch_44); + _fx_make_T2R9Ast__id_tLR9Ast__id_t(&v_102, v_101, &tup_4); _fx_LT2R9Ast__id_tLR9Ast__id_t node_8 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tLR9Ast__id_t(&tup_4, 0, false, &node_8), _fx_catch_44); - FX_LIST_APPEND(v_93, lstend_8, node_8); + FX_LIST_APPEND(v_94, lstend_8, node_8); _fx_catch_44: ; _fx_free_T2R9Ast__id_tLR9Ast__id_t(&tup_4); - FX_FREE_LIST_SIMPLE(&v_100); + FX_FREE_LIST_SIMPLE(&v_101); FX_FREE_LIST_SIMPLE(&meths_0); FX_CHECK_EXN(_fx_catch_45); } - _fx_make_R21K_form__kdefvariant_t(&new_kvar_name_0, &v_96->kvar_cname, &v_96->kvar_proto, &v_96->kvar_props, - v_96->kvar_targs, v_91, v_92, &v_96->kvar_flags, v_93, v_96->kvar_scope, &v_96->kvar_loc, &new_kvar_0); + _fx_make_R21K_form__kdefvariant_t(&new_kvar_name_0, &v_97->kvar_cname, &v_97->kvar_proto, &v_97->kvar_props, + v_97->kvar_targs, v_92, v_93, &v_97->kvar_flags, v_94, v_97->kvar_scope, &v_97->kvar_loc, &new_kvar_0); bool res_6; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&new_kvar_name_0, &kvar_name_0, &res_6, 0), _fx_catch_45); if (res_6) { - _fx_R21K_form__kdefvariant_t* v_102 = &kvar_0->data; - _fx_free_R21K_form__kdefvariant_t(v_102); - _fx_copy_R21K_form__kdefvariant_t(&new_kvar_0, v_102); + _fx_R21K_form__kdefvariant_t* v_103 = &kvar_0->data; + _fx_free_R21K_form__kdefvariant_t(v_103); + _fx_copy_R21K_form__kdefvariant_t(&new_kvar_0, v_103); FX_COPY_PTR(e_0, fx_result); } else { FX_CALL(_fx_make_rR21K_form__kdefvariant_t(&new_kvar_0, &new_kvar_1), _fx_catch_45); - _fx_M6K_formFM8KVariantN15K_form__kinfo_t1rRM13kdefvariant_t(new_kvar_1, &v_94); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_kvar_name_0, &v_94, 0), _fx_catch_45); + _fx_M6K_formFM8KVariantN15K_form__kinfo_t1rRM13kdefvariant_t(new_kvar_1, &v_95); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_kvar_name_0, &v_95, 0), _fx_catch_45); FX_CALL(_fx_M6K_formFM11KDefVariantN14K_form__kexp_t1rRM13kdefvariant_t(new_kvar_1, fx_result), _fx_catch_45); } _fx_catch_45: ; - _fx_free_N15K_form__kinfo_t(&v_94); + _fx_free_N15K_form__kinfo_t(&v_95); if (new_kvar_1) { _fx_free_rR21K_form__kdefvariant_t(&new_kvar_1); } _fx_free_R21K_form__kdefvariant_t(&new_kvar_0); - if (v_93) { - _fx_free_LT2R9Ast__id_tLR9Ast__id_t(&v_93); + if (v_94) { + _fx_free_LT2R9Ast__id_tLR9Ast__id_t(&v_94); } - FX_FREE_LIST_SIMPLE(&v_92); - if (v_91) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_91); + FX_FREE_LIST_SIMPLE(&v_93); + if (v_92) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_92); } if (kvar_cases_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&kvar_cases_0); @@ -11747,48 +11618,48 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ } else if (tag_0 == 36) { _fx_N14K_form__ktyp_t kt_typ_0 = 0; - _fx_N14K_form__ktyp_t v_103 = 0; + _fx_N14K_form__ktyp_t v_104 = 0; _fx_R17K_form__kdeftyp_t new_kt_0 = {0}; _fx_rR17K_form__kdeftyp_t new_kt_1 = 0; - _fx_N15K_form__kinfo_t v_104 = {0}; + _fx_N15K_form__kinfo_t v_105 = {0}; _fx_rR17K_form__kdeftyp_t kt_0 = e_0->u.KDefTyp; - _fx_R17K_form__kdeftyp_t* v_105 = &kt_0->data; - _fx_R10Ast__loc_t kt_loc_0 = v_105->kt_loc; - FX_COPY_PTR(v_105->kt_typ, &kt_typ_0); - _fx_R9Ast__id_t kt_name_0 = v_105->kt_name; + _fx_R17K_form__kdeftyp_t* v_106 = &kt_0->data; + _fx_R10Ast__loc_t kt_loc_0 = v_106->kt_loc; + FX_COPY_PTR(v_106->kt_typ, &kt_typ_0); + _fx_R9Ast__id_t kt_name_0 = v_106->kt_name; _fx_R9Ast__id_t new_kt_name_0; FX_CALL( _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kt_name_0, &kt_loc_0, callb_0, &new_kt_name_0, 0), _fx_catch_46); - _fx_R17K_form__kdeftyp_t* v_106 = &kt_0->data; + _fx_R17K_form__kdeftyp_t* v_107 = &kt_0->data; FX_CALL( _fx_M6K_formFM10walk_ktyp_N14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(kt_typ_0, &kt_loc_0, callb_0, - &v_103, 0), _fx_catch_46); - _fx_make_R17K_form__kdeftyp_t(&new_kt_name_0, &v_106->kt_cname, &v_106->kt_proto, &v_106->kt_props, v_106->kt_targs, - v_103, v_106->kt_scope, &v_106->kt_loc, &new_kt_0); + &v_104, 0), _fx_catch_46); + _fx_make_R17K_form__kdeftyp_t(&new_kt_name_0, &v_107->kt_cname, &v_107->kt_proto, &v_107->kt_props, v_107->kt_targs, + v_104, v_107->kt_scope, &v_107->kt_loc, &new_kt_0); bool res_7; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&new_kt_name_0, &kt_name_0, &res_7, 0), _fx_catch_46); if (res_7) { - _fx_R17K_form__kdeftyp_t* v_107 = &kt_0->data; - _fx_free_R17K_form__kdeftyp_t(v_107); - _fx_copy_R17K_form__kdeftyp_t(&new_kt_0, v_107); + _fx_R17K_form__kdeftyp_t* v_108 = &kt_0->data; + _fx_free_R17K_form__kdeftyp_t(v_108); + _fx_copy_R17K_form__kdeftyp_t(&new_kt_0, v_108); FX_COPY_PTR(e_0, fx_result); } else { FX_CALL(_fx_make_rR17K_form__kdeftyp_t(&new_kt_0, &new_kt_1), _fx_catch_46); - _fx_M6K_formFM4KTypN15K_form__kinfo_t1rRM9kdeftyp_t(new_kt_1, &v_104); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_kt_name_0, &v_104, 0), _fx_catch_46); + _fx_M6K_formFM4KTypN15K_form__kinfo_t1rRM9kdeftyp_t(new_kt_1, &v_105); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_kt_name_0, &v_105, 0), _fx_catch_46); FX_CALL(_fx_M6K_formFM7KDefTypN14K_form__kexp_t1rRM9kdeftyp_t(new_kt_1, fx_result), _fx_catch_46); } _fx_catch_46: ; - _fx_free_N15K_form__kinfo_t(&v_104); + _fx_free_N15K_form__kinfo_t(&v_105); if (new_kt_1) { _fx_free_rR17K_form__kdeftyp_t(&new_kt_1); } _fx_free_R17K_form__kdeftyp_t(&new_kt_0); - if (v_103) { - _fx_free_N14K_form__ktyp_t(&v_103); + if (v_104) { + _fx_free_N14K_form__ktyp_t(&v_104); } if (kt_typ_0) { _fx_free_N14K_form__ktyp_t(&kt_typ_0); @@ -11796,84 +11667,84 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ } else if (tag_0 == 35) { _fx_LT2R9Ast__id_tN14K_form__ktyp_t ki_all_methods_0 = 0; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_108 = 0; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_109 = 0; _fx_R23K_form__kdefinterface_t new_ki_0 = {0}; _fx_rR23K_form__kdefinterface_t new_ki_1 = 0; - _fx_N15K_form__kinfo_t v_109 = {0}; + _fx_N15K_form__kinfo_t v_110 = {0}; _fx_rR23K_form__kdefinterface_t ki_0 = e_0->u.KDefInterface; - _fx_R23K_form__kdefinterface_t* v_110 = &ki_0->data; - _fx_R10Ast__loc_t ki_loc_0 = v_110->ki_loc; - FX_COPY_PTR(v_110->ki_all_methods, &ki_all_methods_0); - _fx_R9Ast__id_t ki_id_0 = v_110->ki_id; - _fx_R9Ast__id_t ki_base_0 = v_110->ki_base; - _fx_R9Ast__id_t ki_name_0 = v_110->ki_name; + _fx_R23K_form__kdefinterface_t* v_111 = &ki_0->data; + _fx_R10Ast__loc_t ki_loc_0 = v_111->ki_loc; + FX_COPY_PTR(v_111->ki_all_methods, &ki_all_methods_0); + _fx_R9Ast__id_t ki_id_0 = v_111->ki_id; + _fx_R9Ast__id_t ki_base_0 = v_111->ki_base; + _fx_R9Ast__id_t ki_name_0 = v_111->ki_name; _fx_R9Ast__id_t new_ki_name_0; FX_CALL( _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&ki_name_0, &ki_loc_0, callb_0, &new_ki_name_0, 0), _fx_catch_48); - _fx_R23K_form__kdefinterface_t* v_111 = &ki_0->data; - _fx_R9Ast__id_t v_112; + _fx_R23K_form__kdefinterface_t* v_112 = &ki_0->data; + _fx_R9Ast__id_t v_113; FX_CALL( - _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&ki_base_0, &ki_loc_0, callb_0, &v_112, 0), + _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&ki_base_0, &ki_loc_0, callb_0, &v_113, 0), _fx_catch_48); - _fx_R9Ast__id_t v_113; - FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&ki_id_0, &ki_loc_0, callb_0, &v_113, 0), + _fx_R9Ast__id_t v_114; + FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&ki_id_0, &ki_loc_0, callb_0, &v_114, 0), _fx_catch_48); _fx_LT2R9Ast__id_tN14K_form__ktyp_t lstend_9 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_10 = ki_all_methods_0; for (; lst_10; lst_10 = lst_10->tl) { _fx_N14K_form__ktyp_t t_1 = 0; - _fx_N14K_form__ktyp_t v_114 = 0; + _fx_N14K_form__ktyp_t v_115 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t tup_5 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___6 = &lst_10->hd; _fx_R9Ast__id_t f_0 = __pat___6->t0; FX_COPY_PTR(__pat___6->t1, &t_1); - _fx_R9Ast__id_t v_115; - FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&f_0, &ki_loc_0, callb_0, &v_115, 0), + _fx_R9Ast__id_t v_116; + FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&f_0, &ki_loc_0, callb_0, &v_116, 0), _fx_catch_47); FX_CALL( _fx_M6K_formFM10walk_ktyp_N14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(t_1, &ki_loc_0, callb_0, - &v_114, 0), _fx_catch_47); - _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&v_115, v_114, &tup_5); + &v_115, 0), _fx_catch_47); + _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&v_116, v_115, &tup_5); _fx_LT2R9Ast__id_tN14K_form__ktyp_t node_9 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&tup_5, 0, false, &node_9), _fx_catch_47); - FX_LIST_APPEND(v_108, lstend_9, node_9); + FX_LIST_APPEND(v_109, lstend_9, node_9); _fx_catch_47: ; _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&tup_5); - if (v_114) { - _fx_free_N14K_form__ktyp_t(&v_114); + if (v_115) { + _fx_free_N14K_form__ktyp_t(&v_115); } if (t_1) { _fx_free_N14K_form__ktyp_t(&t_1); } FX_CHECK_EXN(_fx_catch_48); } - _fx_make_R23K_form__kdefinterface_t(&new_ki_name_0, &v_112, &v_111->ki_cname, &v_113, v_108, v_111->ki_scope, - &v_111->ki_loc, &new_ki_0); + _fx_make_R23K_form__kdefinterface_t(&new_ki_name_0, &v_113, &v_112->ki_cname, &v_114, v_109, v_112->ki_scope, + &v_112->ki_loc, &new_ki_0); bool res_8; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&new_ki_name_0, &ki_name_0, &res_8, 0), _fx_catch_48); if (res_8) { - _fx_R23K_form__kdefinterface_t* v_116 = &ki_0->data; - _fx_free_R23K_form__kdefinterface_t(v_116); - _fx_copy_R23K_form__kdefinterface_t(&new_ki_0, v_116); + _fx_R23K_form__kdefinterface_t* v_117 = &ki_0->data; + _fx_free_R23K_form__kdefinterface_t(v_117); + _fx_copy_R23K_form__kdefinterface_t(&new_ki_0, v_117); FX_COPY_PTR(e_0, fx_result); } else { FX_CALL(_fx_make_rR23K_form__kdefinterface_t(&new_ki_0, &new_ki_1), _fx_catch_48); - _fx_M6K_formFM10KInterfaceN15K_form__kinfo_t1rRM15kdefinterface_t(new_ki_1, &v_109); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_ki_name_0, &v_109, 0), _fx_catch_48); + _fx_M6K_formFM10KInterfaceN15K_form__kinfo_t1rRM15kdefinterface_t(new_ki_1, &v_110); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_ki_name_0, &v_110, 0), _fx_catch_48); FX_CALL(_fx_M6K_formFM13KDefInterfaceN14K_form__kexp_t1rRM15kdefinterface_t(new_ki_1, fx_result), _fx_catch_48); } _fx_catch_48: ; - _fx_free_N15K_form__kinfo_t(&v_109); + _fx_free_N15K_form__kinfo_t(&v_110); if (new_ki_1) { _fx_free_rR23K_form__kdefinterface_t(&new_ki_1); } _fx_free_R23K_form__kdefinterface_t(&new_ki_0); - if (v_108) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_108); + if (v_109) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_109); } if (ki_all_methods_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&ki_all_methods_0); @@ -11882,46 +11753,46 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ else if (tag_0 == 37) { _fx_LR9Ast__id_t kcv_orig_freevars_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t kcv_freevars_0 = 0; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_117 = 0; - _fx_LR9Ast__id_t v_118 = 0; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_118 = 0; + _fx_LR9Ast__id_t v_119 = 0; _fx_R25K_form__kdefclosurevars_t new_kcv_0 = {0}; _fx_rR25K_form__kdefclosurevars_t new_kcv_1 = 0; - _fx_N15K_form__kinfo_t v_119 = {0}; + _fx_N15K_form__kinfo_t v_120 = {0}; _fx_rR25K_form__kdefclosurevars_t kcv_0 = e_0->u.KDefClosureVars; - _fx_R25K_form__kdefclosurevars_t* v_120 = &kcv_0->data; - _fx_R10Ast__loc_t kcv_loc_0 = v_120->kcv_loc; - FX_COPY_PTR(v_120->kcv_orig_freevars, &kcv_orig_freevars_0); - FX_COPY_PTR(v_120->kcv_freevars, &kcv_freevars_0); - _fx_R9Ast__id_t kcv_name_0 = v_120->kcv_name; + _fx_R25K_form__kdefclosurevars_t* v_121 = &kcv_0->data; + _fx_R10Ast__loc_t kcv_loc_0 = v_121->kcv_loc; + FX_COPY_PTR(v_121->kcv_orig_freevars, &kcv_orig_freevars_0); + FX_COPY_PTR(v_121->kcv_freevars, &kcv_freevars_0); + _fx_R9Ast__id_t kcv_name_0 = v_121->kcv_name; _fx_R9Ast__id_t new_kcv_name_0; FX_CALL( _fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&kcv_name_0, &kcv_loc_0, callb_0, &new_kcv_name_0, 0), _fx_catch_50); - _fx_R25K_form__kdefclosurevars_t* v_121 = &kcv_0->data; + _fx_R25K_form__kdefclosurevars_t* v_122 = &kcv_0->data; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lstend_10 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_11 = kcv_freevars_0; for (; lst_11; lst_11 = lst_11->tl) { _fx_N14K_form__ktyp_t t_2 = 0; - _fx_N14K_form__ktyp_t v_122 = 0; + _fx_N14K_form__ktyp_t v_123 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t tup_6 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___7 = &lst_11->hd; _fx_R9Ast__id_t n_1 = __pat___7->t0; FX_COPY_PTR(__pat___7->t1, &t_2); - _fx_R9Ast__id_t v_123; - FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&n_1, &kcv_loc_0, callb_0, &v_123, 0), + _fx_R9Ast__id_t v_124; + FX_CALL(_fx_M6K_formFM8walk_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(&n_1, &kcv_loc_0, callb_0, &v_124, 0), _fx_catch_49); FX_CALL( _fx_M6K_formFM10walk_ktyp_N14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(t_2, &kcv_loc_0, callb_0, - &v_122, 0), _fx_catch_49); - _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&v_123, v_122, &tup_6); + &v_123, 0), _fx_catch_49); + _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&v_124, v_123, &tup_6); _fx_LT2R9Ast__id_tN14K_form__ktyp_t node_10 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&tup_6, 0, false, &node_10), _fx_catch_49); - FX_LIST_APPEND(v_117, lstend_10, node_10); + FX_LIST_APPEND(v_118, lstend_10, node_10); _fx_catch_49: ; _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&tup_6); - if (v_122) { - _fx_free_N14K_form__ktyp_t(&v_122); + if (v_123) { + _fx_free_N14K_form__ktyp_t(&v_123); } if (t_2) { _fx_free_N14K_form__ktyp_t(&t_2); @@ -11930,33 +11801,33 @@ FX_EXTERN_C int _fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_ } FX_CALL( _fx_M6K_formFM12walk_idlist_LR9Ast__id_t4LR9Ast__id_tR10Ast__loc_tBRM9k_callb_t(kcv_orig_freevars_0, &kcv_loc_0, false, - callb_0, &v_118, 0), _fx_catch_50); - _fx_make_R25K_form__kdefclosurevars_t(&new_kcv_name_0, &v_121->kcv_cname, v_117, v_118, v_121->kcv_scope, &v_121->kcv_loc, + callb_0, &v_119, 0), _fx_catch_50); + _fx_make_R25K_form__kdefclosurevars_t(&new_kcv_name_0, &v_122->kcv_cname, v_118, v_119, v_122->kcv_scope, &v_122->kcv_loc, &new_kcv_0); bool res_9; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&new_kcv_name_0, &kcv_name_0, &res_9, 0), _fx_catch_50); if (res_9) { - _fx_R25K_form__kdefclosurevars_t* v_124 = &kcv_0->data; - _fx_free_R25K_form__kdefclosurevars_t(v_124); - _fx_copy_R25K_form__kdefclosurevars_t(&new_kcv_0, v_124); + _fx_R25K_form__kdefclosurevars_t* v_125 = &kcv_0->data; + _fx_free_R25K_form__kdefclosurevars_t(v_125); + _fx_copy_R25K_form__kdefclosurevars_t(&new_kcv_0, v_125); FX_COPY_PTR(e_0, fx_result); } else { FX_CALL(_fx_make_rR25K_form__kdefclosurevars_t(&new_kcv_0, &new_kcv_1), _fx_catch_50); - _fx_M6K_formFM12KClosureVarsN15K_form__kinfo_t1rRM17kdefclosurevars_t(new_kcv_1, &v_119); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_kcv_name_0, &v_119, 0), _fx_catch_50); + _fx_M6K_formFM12KClosureVarsN15K_form__kinfo_t1rRM17kdefclosurevars_t(new_kcv_1, &v_120); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&new_kcv_name_0, &v_120, 0), _fx_catch_50); FX_CALL(_fx_M6K_formFM15KDefClosureVarsN14K_form__kexp_t1rRM17kdefclosurevars_t(new_kcv_1, fx_result), _fx_catch_50); } _fx_catch_50: ; - _fx_free_N15K_form__kinfo_t(&v_119); + _fx_free_N15K_form__kinfo_t(&v_120); if (new_kcv_1) { _fx_free_rR25K_form__kdefclosurevars_t(&new_kcv_1); } _fx_free_R25K_form__kdefclosurevars_t(&new_kcv_0); - FX_FREE_LIST_SIMPLE(&v_118); - if (v_117) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_117); + FX_FREE_LIST_SIMPLE(&v_119); + if (v_118) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_118); } if (kcv_freevars_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&kcv_freevars_0); @@ -12221,43 +12092,41 @@ static int _fx_M6K_formFM12walk_idlist_LR9Ast__id_t4LR9Ast__id_tR10Ast__loc_tBRM int_ m_0 = v_8.t0; int_ j_0 = v_8.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_catch_6); - FX_CHKIDX( - FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_catch_6); - _fx_N15K_form__kinfo_t* v_9 = - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0); - _fx_free_N15K_form__kinfo_t(v_9); - _fx_copy_N15K_form__kinfo_t(&v_2, v_9); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_9 = + *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_9->u.t.t1, 0, j_0), _fx_catch_6); + _fx_N15K_form__kinfo_t* v_10 = FX_PTR_1D(_fx_N15K_form__kinfo_t, v_9->u.t.t1, j_0); + _fx_free_N15K_form__kinfo_t(v_10); + _fx_copy_N15K_form__kinfo_t(&v_2, v_10); t_0 = new_kv_name_0; } else { FX_COPY_PTR(callb_0->kcb_atom, &v_3); if ((v_3 != 0) + 1 == 2) { - _fx_N14K_form__atom_t v_10 = {0}; _fx_N14K_form__atom_t v_11 = {0}; + _fx_N14K_form__atom_t v_12 = {0}; _fx_FPN14K_form__atom_t3N14K_form__atom_tR10Ast__loc_tR17K_form__k_callb_t* f_1 = &v_3->u.Some; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(n_0, &v_10); - FX_CALL(f_1->fp(&v_10, loc_0, callb_0, &v_11, f_1->fcv), _fx_catch_3); - if (v_11.tag == 1) { - t_0 = v_11.u.AtomId; + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(n_0, &v_11); + FX_CALL(f_1->fp(&v_11, loc_0, callb_0, &v_12, f_1->fcv), _fx_catch_3); + if (v_12.tag == 1) { + t_0 = v_12.u.AtomId; } else { - fx_exn_t v_12 = {0}; + fx_exn_t v_13 = {0}; fx_str_t slit_1 = FX_MAKE_STR( "internal error: inside walk_id the callback returned a literal, not id, which is unexpected."); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_1, &v_12, 0), _fx_catch_2); - FX_THROW(&v_12, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_1, &v_13, 0), _fx_catch_2); + FX_THROW(&v_13, false, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_12); + fx_free_exn(&v_13); } FX_CHECK_EXN(_fx_catch_3); _fx_catch_3: ; + _fx_free_N14K_form__atom_t(&v_12); _fx_free_N14K_form__atom_t(&v_11); - _fx_free_N14K_form__atom_t(&v_10); } else { t_0 = *n_0; @@ -12268,29 +12137,29 @@ static int _fx_M6K_formFM12walk_idlist_LR9Ast__id_t4LR9Ast__id_tR10Ast__loc_tBRM else { FX_COPY_PTR(callb_0->kcb_atom, &v_4); if ((v_4 != 0) + 1 == 2) { - _fx_N14K_form__atom_t v_13 = {0}; _fx_N14K_form__atom_t v_14 = {0}; + _fx_N14K_form__atom_t v_15 = {0}; _fx_FPN14K_form__atom_t3N14K_form__atom_tR10Ast__loc_tR17K_form__k_callb_t* f_2 = &v_4->u.Some; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(n_0, &v_13); - FX_CALL(f_2->fp(&v_13, loc_0, callb_0, &v_14, f_2->fcv), _fx_catch_5); - if (v_14.tag == 1) { - t_0 = v_14.u.AtomId; + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(n_0, &v_14); + FX_CALL(f_2->fp(&v_14, loc_0, callb_0, &v_15, f_2->fcv), _fx_catch_5); + if (v_15.tag == 1) { + t_0 = v_15.u.AtomId; } else { - fx_exn_t v_15 = {0}; + fx_exn_t v_16 = {0}; fx_str_t slit_2 = FX_MAKE_STR("internal error: inside walk_id the callback returned a literal, not id, which is unexpected."); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_2, &v_15, 0), _fx_catch_4); - FX_THROW(&v_15, false, _fx_catch_4); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_2, &v_16, 0), _fx_catch_4); + FX_THROW(&v_16, false, _fx_catch_4); _fx_catch_4: ; - fx_free_exn(&v_15); + fx_free_exn(&v_16); } FX_CHECK_EXN(_fx_catch_5); _fx_catch_5: ; + _fx_free_N14K_form__atom_t(&v_15); _fx_free_N14K_form__atom_t(&v_14); - _fx_free_N14K_form__atom_t(&v_13); } else { t_0 = *n_0; @@ -12461,41 +12330,40 @@ static int _fx_M6K_formFM14walk_idomlist_LT2R9Ast__id_tN13K_form__dom_t3LT2R9Ast int_ m_0 = v_8.t0; int_ j_0 = v_8.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_catch_4); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_catch_4); - _fx_N15K_form__kinfo_t* v_9 = - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0); - _fx_free_N15K_form__kinfo_t(v_9); - _fx_copy_N15K_form__kinfo_t(&v_2, v_9); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_9 = + *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_9->u.t.t1, 0, j_0), _fx_catch_4); + _fx_N15K_form__kinfo_t* v_10 = FX_PTR_1D(_fx_N15K_form__kinfo_t, v_9->u.t.t1, j_0); + _fx_free_N15K_form__kinfo_t(v_10); + _fx_copy_N15K_form__kinfo_t(&v_2, v_10); n_1 = new_kv_name_0; } else { FX_COPY_PTR(callb_0->kcb_atom, &v_3); if ((v_3 != 0) + 1 == 2) { - _fx_N14K_form__atom_t v_10 = {0}; _fx_N14K_form__atom_t v_11 = {0}; + _fx_N14K_form__atom_t v_12 = {0}; _fx_FPN14K_form__atom_t3N14K_form__atom_tR10Ast__loc_tR17K_form__k_callb_t* f_1 = &v_3->u.Some; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&n_0, &v_10); - FX_CALL(f_1->fp(&v_10, loc_0, callb_0, &v_11, f_1->fcv), _fx_catch_3); - if (v_11.tag == 1) { - n_1 = v_11.u.AtomId; + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&n_0, &v_11); + FX_CALL(f_1->fp(&v_11, loc_0, callb_0, &v_12, f_1->fcv), _fx_catch_3); + if (v_12.tag == 1) { + n_1 = v_12.u.AtomId; } else { - fx_exn_t v_12 = {0}; + fx_exn_t v_13 = {0}; fx_str_t slit_1 = FX_MAKE_STR("internal error: inside walk_id the callback returned a literal, not id, which is unexpected."); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_1, &v_12, 0), _fx_catch_2); - FX_THROW(&v_12, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_1, &v_13, 0), _fx_catch_2); + FX_THROW(&v_13, false, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_12); + fx_free_exn(&v_13); } FX_CHECK_EXN(_fx_catch_3); _fx_catch_3: ; + _fx_free_N14K_form__atom_t(&v_12); _fx_free_N14K_form__atom_t(&v_11); - _fx_free_N14K_form__atom_t(&v_10); } else { n_1 = n_0; @@ -12603,41 +12471,39 @@ static int _fx_M6K_formFM12update_kval_R9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_ int_ m_0 = v_7.t0; int_ j_0 = v_7.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_N15K_form__kinfo_t* v_8 = - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0); - _fx_free_N15K_form__kinfo_t(v_8); - _fx_copy_N15K_form__kinfo_t(&v_2, v_8); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_8 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_8->u.t.t1, 0, j_0), _fx_cleanup); + _fx_N15K_form__kinfo_t* v_9 = FX_PTR_1D(_fx_N15K_form__kinfo_t, v_8->u.t.t1, j_0); + _fx_free_N15K_form__kinfo_t(v_9); + _fx_copy_N15K_form__kinfo_t(&v_2, v_9); *fx_result = new_kv_name_0; } else { FX_COPY_PTR(callb_0->kcb_atom, &v_3); if ((v_3 != 0) + 1 == 2) { - _fx_N14K_form__atom_t v_9 = {0}; _fx_N14K_form__atom_t v_10 = {0}; + _fx_N14K_form__atom_t v_11 = {0}; _fx_FPN14K_form__atom_t3N14K_form__atom_tR10Ast__loc_tR17K_form__k_callb_t* f_1 = &v_3->u.Some; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(n_0, &v_9); - FX_CALL(f_1->fp(&v_9, loc_0, callb_0, &v_10, f_1->fcv), _fx_catch_3); - if (v_10.tag == 1) { - *fx_result = v_10.u.AtomId; + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(n_0, &v_10); + FX_CALL(f_1->fp(&v_10, loc_0, callb_0, &v_11, f_1->fcv), _fx_catch_3); + if (v_11.tag == 1) { + *fx_result = v_11.u.AtomId; } else { - fx_exn_t v_11 = {0}; + fx_exn_t v_12 = {0}; fx_str_t slit_1 = FX_MAKE_STR("internal error: inside walk_id the callback returned a literal, not id, which is unexpected."); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_1, &v_11, 0), _fx_catch_2); - FX_THROW(&v_11, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_1, &v_12, 0), _fx_catch_2); + FX_THROW(&v_12, false, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_11); + fx_free_exn(&v_12); } FX_CHECK_EXN(_fx_catch_3); _fx_catch_3: ; + _fx_free_N14K_form__atom_t(&v_11); _fx_free_N14K_form__atom_t(&v_10); - _fx_free_N14K_form__atom_t(&v_9); } else { *fx_result = *n_0; @@ -12701,26 +12567,25 @@ static int _fx_M6K_formFM13process_elistLN14K_form__kexp_t3LN14K_form__kexp_tLN1 _fx_catch_0: ; } else if (tag_0 == 10) { - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; _fx_LN14K_form__kexp_t el_0 = 0; _fx_LN14K_form__kexp_t v_0 = 0; FX_COPY_PTR(new_e_0->u.KExpSeq.t0, &el_0); _fx_LN14K_form__kexp_t lst_0 = el_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_1 = 0; _fx_N14K_form__kexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_1), _fx_catch_1); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_1, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_1) { + _fx_free_LN14K_form__kexp_t(&v_1); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___0, &v_0); + FX_COPY_PTR(res_0, &v_0); if (v_0 == 0) { FX_COPY_PTR(result_3, &new_result_0); } @@ -12728,23 +12593,23 @@ static int _fx_M6K_formFM13process_elistLN14K_form__kexp_t3LN14K_form__kexp_tLN1 FX_COPY_PTR(v_0, &new_result_0); } else { - _fx_LN14K_form__kexp_t v_1 = 0; + _fx_LN14K_form__kexp_t v_2 = 0; _fx_LN14K_form__kexp_t lstend_0 = 0; _fx_LN14K_form__kexp_t lst_1 = v_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N14K_form__kexp_t x_0 = lst_1->hd; _fx_LN14K_form__kexp_t node_0 = 0; FX_CALL(_fx_cons_LN14K_form__kexp_t(x_0, 0, false, &node_0), _fx_catch_2); - FX_LIST_APPEND(v_1, lstend_0, node_0); + FX_LIST_APPEND(v_2, lstend_0, node_0); _fx_catch_2: ; FX_CHECK_EXN(_fx_catch_3); } - _fx_M6K_formFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_1, result_3, &new_result_0, 0); + _fx_M6K_formFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_2, result_3, &new_result_0, 0); _fx_catch_3: ; - if (v_1) { - _fx_free_LN14K_form__kexp_t(&v_1); + if (v_2) { + _fx_free_LN14K_form__kexp_t(&v_2); } } FX_CHECK_EXN(_fx_catch_4); @@ -12756,8 +12621,8 @@ static int _fx_M6K_formFM13process_elistLN14K_form__kexp_t3LN14K_form__kexp_tLN1 if (el_0) { _fx_free_LN14K_form__kexp_t(&el_0); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } } else { @@ -12778,24 +12643,23 @@ static int _fx_M6K_formFM13process_elistLN14K_form__kexp_t3LN14K_form__kexp_tLN1 } } else { - _fx_LN14K_form__kexp_t __fold_result___1 = 0; + _fx_LN14K_form__kexp_t res_1 = 0; _fx_LN14K_form__kexp_t result_4 = 0; _fx_LN14K_form__kexp_t lst_2 = result_3; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN14K_form__kexp_t r_1 = 0; + _fx_LN14K_form__kexp_t v_3 = 0; _fx_N14K_form__kexp_t a_1 = lst_2->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, r_1, false, &r_1), _fx_catch_7); - _fx_free_LN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, res_1, true, &v_3), _fx_catch_7); + _fx_free_LN14K_form__kexp_t(&res_1); + FX_COPY_PTR(v_3, &res_1); _fx_catch_7: ; - if (r_1) { - _fx_free_LN14K_form__kexp_t(&r_1); + if (v_3) { + _fx_free_LN14K_form__kexp_t(&v_3); } FX_CHECK_EXN(_fx_catch_8); } - FX_COPY_PTR(__fold_result___1, &result_4); + FX_COPY_PTR(res_1, &result_4); _fx_free_LN14K_form__kexp_t(&result_1); FX_COPY_PTR(result_4, &result_1); FX_BREAK(_fx_catch_8); @@ -12804,8 +12668,8 @@ static int _fx_M6K_formFM13process_elistLN14K_form__kexp_t3LN14K_form__kexp_tLN1 if (result_4) { _fx_free_LN14K_form__kexp_t(&result_4); } - if (__fold_result___1) { - _fx_free_LN14K_form__kexp_t(&__fold_result___1); + if (res_1) { + _fx_free_LN14K_form__kexp_t(&res_1); } } FX_CHECK_EXN(_fx_catch_9); @@ -14639,16 +14503,15 @@ static int _fx_M6K_formFM13used_by_atom_v3N14K_form__atom_tR10Ast__loc_tRM14k_fo if (tag_0 == 1) { _fx_R9Ast__id_t* n_0 = &a_0->u.AtomId; if (n_0->m > 0) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t0, n_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_catch_0); + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + FX_CALL(_fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t0, n_0, h_0 & 9223372036854775807ULL, 0), + _fx_catch_0); } _fx_catch_0: ; @@ -14753,17 +14616,17 @@ static int _fx_M6K_formFM13used_by_kexp_v2N14K_form__kexp_tRM14k_fold_callb_t( &kf_typ_0, 0), _fx_catch_1); FX_CALL(_fx_M6K_formFM9fold_ktypv3N14K_form__ktyp_tR10Ast__loc_tRM14k_fold_callb_t(kf_typ_0, kf_loc_0, &callb_2, 0), _fx_catch_1); - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)kf_name_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)kf_name_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)kf_name_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)kf_name_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)kf_name_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)kf_name_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_4; FX_CALL( _fx_M6K_formFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_used_0, kf_name_0, - __fold_result___0 & 9223372036854775807ULL, &v_4, 0), _fx_catch_1); + h_0 & 9223372036854775807ULL, &v_4, 0), _fx_catch_1); bool have_kf_name_0 = v_4.t1 >= 0; if (!is_ctor_1) { FX_CALL(_fx_M6K_formFM13used_by_kexp_v2N14K_form__kexp_tRM14k_fold_callb_t(v_1.kf_body, &callb_2, fx_fv), @@ -14773,28 +14636,28 @@ static int _fx_M6K_formFM13used_by_kexp_v2N14K_form__kexp_tRM14k_fold_callb_t( FX_CALL(_fx_M6K_formFM6removev2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_used_0, kf_name_0, 0), _fx_catch_1); } if (kci_arg_0.m > 0) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)kci_arg_0.m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)kci_arg_0.i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)kci_arg_0.j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)kci_arg_0.m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)kci_arg_0.i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)kci_arg_0.j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_used_0, &kci_arg_0, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_1); + _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_used_0, &kci_arg_0, h_1 & 9223372036854775807ULL, + 0), _fx_catch_1); } if (kci_fcv_t_0.m > 0) { - uint64_t __fold_result___2 = 14695981039346656037ULL; - uint64_t h_6 = __fold_result___2 ^ ((uint64_t)kci_fcv_t_0.m ^ 14695981039346656037ULL); - __fold_result___2 = h_6 * 1099511628211ULL; - uint64_t h_7 = __fold_result___2 ^ ((uint64_t)kci_fcv_t_0.i ^ 14695981039346656037ULL); - __fold_result___2 = h_7 * 1099511628211ULL; - uint64_t h_8 = __fold_result___2 ^ ((uint64_t)kci_fcv_t_0.j ^ 14695981039346656037ULL); - __fold_result___2 = h_8 * 1099511628211ULL; + uint64_t h_2 = 14695981039346656037ULL; + h_2 = h_2 ^ ((uint64_t)kci_fcv_t_0.m ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)kci_fcv_t_0.i ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)kci_fcv_t_0.j ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; FX_CALL( _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_used_0, &kci_fcv_t_0, - __fold_result___2 & 9223372036854775807ULL, 0), _fx_catch_1); + h_2 & 9223372036854775807ULL, 0), _fx_catch_1); } FX_BREAK(_fx_catch_1); @@ -14816,28 +14679,28 @@ static int _fx_M6K_formFM13used_by_kexp_v2N14K_form__kexp_tRM14k_fold_callb_t( _fx_M6K_formFM9fold_ktypv3N14K_form__ktyp_tR10Ast__loc_tRM14k_fold_callb_t(v_5.ke_typ, &v_5.ke_loc, &callb_2, 0), _fx_catch_2); if (ke_tag_0->m > 0) { - uint64_t __fold_result___3 = 14695981039346656037ULL; - uint64_t h_9 = __fold_result___3 ^ ((uint64_t)ke_tag_0->m ^ 14695981039346656037ULL); - __fold_result___3 = h_9 * 1099511628211ULL; - uint64_t h_10 = __fold_result___3 ^ ((uint64_t)ke_tag_0->i ^ 14695981039346656037ULL); - __fold_result___3 = h_10 * 1099511628211ULL; - uint64_t h_11 = __fold_result___3 ^ ((uint64_t)ke_tag_0->j ^ 14695981039346656037ULL); - __fold_result___3 = h_11 * 1099511628211ULL; + uint64_t h_3 = 14695981039346656037ULL; + h_3 = h_3 ^ ((uint64_t)ke_tag_0->m ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; + h_3 = h_3 ^ ((uint64_t)ke_tag_0->i ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; + h_3 = h_3 ^ ((uint64_t)ke_tag_0->j ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_used_0, ke_tag_0, - __fold_result___3 & 9223372036854775807ULL, 0), _fx_catch_2); + _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_used_0, ke_tag_0, h_3 & 9223372036854775807ULL, + 0), _fx_catch_2); } if (ke_make_0->m > 0) { - uint64_t __fold_result___4 = 14695981039346656037ULL; - uint64_t h_12 = __fold_result___4 ^ ((uint64_t)ke_make_0->m ^ 14695981039346656037ULL); - __fold_result___4 = h_12 * 1099511628211ULL; - uint64_t h_13 = __fold_result___4 ^ ((uint64_t)ke_make_0->i ^ 14695981039346656037ULL); - __fold_result___4 = h_13 * 1099511628211ULL; - uint64_t h_14 = __fold_result___4 ^ ((uint64_t)ke_make_0->j ^ 14695981039346656037ULL); - __fold_result___4 = h_14 * 1099511628211ULL; + uint64_t h_4 = 14695981039346656037ULL; + h_4 = h_4 ^ ((uint64_t)ke_make_0->m ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; + h_4 = h_4 ^ ((uint64_t)ke_make_0->i ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; + h_4 = h_4 ^ ((uint64_t)ke_make_0->j ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_used_0, ke_make_0, - __fold_result___4 & 9223372036854775807ULL, 0), _fx_catch_2); + _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_used_0, ke_make_0, h_4 & 9223372036854775807ULL, + 0), _fx_catch_2); } FX_BREAK(_fx_catch_2); @@ -14850,17 +14713,17 @@ static int _fx_M6K_formFM13used_by_kexp_v2N14K_form__kexp_tRM14k_fold_callb_t( _fx_LT2R9Ast__id_tLR9Ast__id_t kvar_ifaces_0 = 0; _fx_copy_R21K_form__kdefvariant_t(&e_2->u.KDefVariant->data, &v_6); _fx_R9Ast__id_t* kvar_name_0 = &v_6.kvar_name; - uint64_t __fold_result___5 = 14695981039346656037ULL; - uint64_t h_15 = __fold_result___5 ^ ((uint64_t)kvar_name_0->m ^ 14695981039346656037ULL); - __fold_result___5 = h_15 * 1099511628211ULL; - uint64_t h_16 = __fold_result___5 ^ ((uint64_t)kvar_name_0->i ^ 14695981039346656037ULL); - __fold_result___5 = h_16 * 1099511628211ULL; - uint64_t h_17 = __fold_result___5 ^ ((uint64_t)kvar_name_0->j ^ 14695981039346656037ULL); - __fold_result___5 = h_17 * 1099511628211ULL; + uint64_t h_5 = 14695981039346656037ULL; + h_5 = h_5 ^ ((uint64_t)kvar_name_0->m ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; + h_5 = h_5 ^ ((uint64_t)kvar_name_0->i ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; + h_5 = h_5 ^ ((uint64_t)kvar_name_0->j ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; _fx_Ta2i v_7; FX_CALL( _fx_M6K_formFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_used_0, kvar_name_0, - __fold_result___5 & 9223372036854775807ULL, &v_7, 0), _fx_catch_6); + h_5 & 9223372036854775807ULL, &v_7, 0), _fx_catch_6); bool have_kvar_name_0 = v_7.t1 >= 0; FX_COPY_PTR(v_6.kvar_cases, &kvar_cases_0); _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_0 = kvar_cases_0; @@ -15125,16 +14988,16 @@ static int _fx_M6K_formFM13decl_by_kexp_v2N14K_form__kexp_tRM14k_fold_callb_t( _fx_T3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t* vcase_0 = &e_2->u.KDefVal; _fx_R9Ast__id_t* n_0 = &vcase_0->t0; if (n_0->m > 0) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, n_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_catch_0); + _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, n_0, h_0 & 9223372036854775807ULL, 0), + _fx_catch_0); } _fx_N14K_form__kexp_t* e_3 = &vcase_0->t1; _fx_free_N14K_form__kexp_t(&e_1); @@ -15152,44 +15015,44 @@ static int _fx_M6K_formFM13decl_by_kexp_v2N14K_form__kexp_tRM14k_fold_callb_t( _fx_R9Ast__id_t kci_arg_0 = v_0.kf_closure.kci_arg; FX_CALL(_fx_M6K_formFM13decl_by_kexp_v2N14K_form__kexp_tRM14k_fold_callb_t(v_0.kf_body, &callb_2, fx_fv), _fx_catch_2); if (kci_arg_0.m > 0) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)kci_arg_0.m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)kci_arg_0.i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)kci_arg_0.j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)kci_arg_0.m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)kci_arg_0.i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)kci_arg_0.j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, &kci_arg_0, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_2); + _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, &kci_arg_0, h_1 & 9223372036854775807ULL, + 0), _fx_catch_2); } if (kf_name_0->m > 0) { - uint64_t __fold_result___2 = 14695981039346656037ULL; - uint64_t h_6 = __fold_result___2 ^ ((uint64_t)kf_name_0->m ^ 14695981039346656037ULL); - __fold_result___2 = h_6 * 1099511628211ULL; - uint64_t h_7 = __fold_result___2 ^ ((uint64_t)kf_name_0->i ^ 14695981039346656037ULL); - __fold_result___2 = h_7 * 1099511628211ULL; - uint64_t h_8 = __fold_result___2 ^ ((uint64_t)kf_name_0->j ^ 14695981039346656037ULL); - __fold_result___2 = h_8 * 1099511628211ULL; + uint64_t h_2 = 14695981039346656037ULL; + h_2 = h_2 ^ ((uint64_t)kf_name_0->m ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)kf_name_0->i ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)kf_name_0->j ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, kf_name_0, - __fold_result___2 & 9223372036854775807ULL, 0), _fx_catch_2); + _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, kf_name_0, h_2 & 9223372036854775807ULL, + 0), _fx_catch_2); } FX_COPY_PTR(v_0.kf_params, &kf_params_0); _fx_LR9Ast__id_t lst_0 = kf_params_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_R9Ast__id_t* a_0 = &lst_0->hd; if (a_0->m > 0) { - uint64_t __fold_result___3 = 14695981039346656037ULL; - uint64_t h_9 = __fold_result___3 ^ ((uint64_t)a_0->m ^ 14695981039346656037ULL); - __fold_result___3 = h_9 * 1099511628211ULL; - uint64_t h_10 = __fold_result___3 ^ ((uint64_t)a_0->i ^ 14695981039346656037ULL); - __fold_result___3 = h_10 * 1099511628211ULL; - uint64_t h_11 = __fold_result___3 ^ ((uint64_t)a_0->j ^ 14695981039346656037ULL); - __fold_result___3 = h_11 * 1099511628211ULL; + uint64_t h_3 = 14695981039346656037ULL; + h_3 = h_3 ^ ((uint64_t)a_0->m ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; + h_3 = h_3 ^ ((uint64_t)a_0->i ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; + h_3 = h_3 ^ ((uint64_t)a_0->j ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, a_0, - __fold_result___3 & 9223372036854775807ULL, 0), _fx_catch_1); + _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, a_0, h_3 & 9223372036854775807ULL, 0), + _fx_catch_1); } _fx_catch_1: ; @@ -15206,16 +15069,16 @@ static int _fx_M6K_formFM13decl_by_kexp_v2N14K_form__kexp_tRM14k_fold_callb_t( _fx_copy_R25K_form__kdefclosurevars_t(&e_2->u.KDefClosureVars->data, &v_1); _fx_R9Ast__id_t* kcv_name_0 = &v_1.kcv_name; if (kcv_name_0->m > 0) { - uint64_t __fold_result___4 = 14695981039346656037ULL; - uint64_t h_12 = __fold_result___4 ^ ((uint64_t)kcv_name_0->m ^ 14695981039346656037ULL); - __fold_result___4 = h_12 * 1099511628211ULL; - uint64_t h_13 = __fold_result___4 ^ ((uint64_t)kcv_name_0->i ^ 14695981039346656037ULL); - __fold_result___4 = h_13 * 1099511628211ULL; - uint64_t h_14 = __fold_result___4 ^ ((uint64_t)kcv_name_0->j ^ 14695981039346656037ULL); - __fold_result___4 = h_14 * 1099511628211ULL; + uint64_t h_4 = 14695981039346656037ULL; + h_4 = h_4 ^ ((uint64_t)kcv_name_0->m ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; + h_4 = h_4 ^ ((uint64_t)kcv_name_0->i ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; + h_4 = h_4 ^ ((uint64_t)kcv_name_0->j ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, kcv_name_0, - __fold_result___4 & 9223372036854775807ULL, 0), _fx_catch_3); + _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, kcv_name_0, h_4 & 9223372036854775807ULL, + 0), _fx_catch_3); } FX_BREAK(_fx_catch_3); @@ -15227,16 +15090,16 @@ static int _fx_M6K_formFM13decl_by_kexp_v2N14K_form__kexp_tRM14k_fold_callb_t( _fx_copy_R23K_form__kdefinterface_t(&e_2->u.KDefInterface->data, &v_2); _fx_R9Ast__id_t* ki_name_0 = &v_2.ki_name; if (ki_name_0->m > 0) { - uint64_t __fold_result___5 = 14695981039346656037ULL; - uint64_t h_15 = __fold_result___5 ^ ((uint64_t)ki_name_0->m ^ 14695981039346656037ULL); - __fold_result___5 = h_15 * 1099511628211ULL; - uint64_t h_16 = __fold_result___5 ^ ((uint64_t)ki_name_0->i ^ 14695981039346656037ULL); - __fold_result___5 = h_16 * 1099511628211ULL; - uint64_t h_17 = __fold_result___5 ^ ((uint64_t)ki_name_0->j ^ 14695981039346656037ULL); - __fold_result___5 = h_17 * 1099511628211ULL; + uint64_t h_5 = 14695981039346656037ULL; + h_5 = h_5 ^ ((uint64_t)ki_name_0->m ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; + h_5 = h_5 ^ ((uint64_t)ki_name_0->i ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; + h_5 = h_5 ^ ((uint64_t)ki_name_0->j ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, ki_name_0, - __fold_result___5 & 9223372036854775807ULL, 0), _fx_catch_4); + _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, ki_name_0, h_5 & 9223372036854775807ULL, + 0), _fx_catch_4); } FX_BREAK(_fx_catch_4); @@ -15248,16 +15111,16 @@ static int _fx_M6K_formFM13decl_by_kexp_v2N14K_form__kexp_tRM14k_fold_callb_t( _fx_copy_R17K_form__kdefexn_t(&e_2->u.KDefExn->data, &v_3); _fx_R9Ast__id_t* ke_name_0 = &v_3.ke_name; if (ke_name_0->m > 0) { - uint64_t __fold_result___6 = 14695981039346656037ULL; - uint64_t h_18 = __fold_result___6 ^ ((uint64_t)ke_name_0->m ^ 14695981039346656037ULL); - __fold_result___6 = h_18 * 1099511628211ULL; - uint64_t h_19 = __fold_result___6 ^ ((uint64_t)ke_name_0->i ^ 14695981039346656037ULL); - __fold_result___6 = h_19 * 1099511628211ULL; - uint64_t h_20 = __fold_result___6 ^ ((uint64_t)ke_name_0->j ^ 14695981039346656037ULL); - __fold_result___6 = h_20 * 1099511628211ULL; + uint64_t h_6 = 14695981039346656037ULL; + h_6 = h_6 ^ ((uint64_t)ke_name_0->m ^ 14695981039346656037ULL); + h_6 = h_6 * 1099511628211ULL; + h_6 = h_6 ^ ((uint64_t)ke_name_0->i ^ 14695981039346656037ULL); + h_6 = h_6 * 1099511628211ULL; + h_6 = h_6 ^ ((uint64_t)ke_name_0->j ^ 14695981039346656037ULL); + h_6 = h_6 * 1099511628211ULL; FX_CALL( - _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, ke_name_0, - __fold_result___6 & 9223372036854775807ULL, 0), _fx_catch_5); + _fx_M6K_formFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_decl_0, ke_name_0, h_6 & 9223372036854775807ULL, + 0), _fx_catch_5); } FX_BREAK(_fx_catch_5); @@ -15425,30 +15288,28 @@ FX_EXTERN_C int _fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t( int_ m_0 = v_0.t0; int_ j_0 = v_0.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &info_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_1 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_1->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_1->u.t.t1, j_0), &info_0); } if (info_0.tag == 1) { - fx_str_t v_1 = {0}; fx_str_t v_2 = {0}; - fx_exn_t v_3 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_1, 0), _fx_catch_0); + fx_str_t v_3 = {0}; + fx_exn_t v_4 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_2, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("attempt to request information about uninitialized symbol \'"); fx_str_t slit_1 = FX_MAKE_STR("\'"); { - const fx_str_t strs_0[] = { slit_0, v_1, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_2), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_2, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_3), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_2, &v_3, 0), _fx_catch_0); - FX_THROW(&v_3, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_3, &v_4, 0), _fx_catch_0); + FX_THROW(&v_4, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_3); + fx_free_exn(&v_4); + FX_FREE_STR(&v_3); FX_FREE_STR(&v_2); - FX_FREE_STR(&v_1); } FX_CHECK_EXN(_fx_cleanup); int tag_0 = info_0.tag; @@ -15528,30 +15389,28 @@ FX_EXTERN_C int _fx_M6K_formFM11is_subarrayB2R9Ast__id_tR10Ast__loc_t( int_ m_0 = v_0.t0; int_ j_0 = v_0.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &info_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_1 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_1->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_1->u.t.t1, j_0), &info_0); } if (info_0.tag == 1) { - fx_str_t v_1 = {0}; fx_str_t v_2 = {0}; - fx_exn_t v_3 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_1, 0), _fx_catch_0); + fx_str_t v_3 = {0}; + fx_exn_t v_4 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_2, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("attempt to request information about uninitialized symbol \'"); fx_str_t slit_1 = FX_MAKE_STR("\'"); { - const fx_str_t strs_0[] = { slit_0, v_1, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_2), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_2, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_3), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_2, &v_3, 0), _fx_catch_0); - FX_THROW(&v_3, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_3, &v_4, 0), _fx_catch_0); + FX_THROW(&v_4, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_3); + fx_free_exn(&v_4); + FX_FREE_STR(&v_3); FX_FREE_STR(&v_2); - FX_FREE_STR(&v_1); } FX_CHECK_EXN(_fx_cleanup); if (info_0.tag == 2) { @@ -15583,17 +15442,15 @@ FX_EXTERN_C int _fx_M6K_formFM20get_closure_freevarsT2LT2R9Ast__id_tN14K_form__k int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_2 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.t.t1, 0, j_0), _fx_cleanup); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_2->u.t.t1, j_0), &v_0); } if (v_0.tag == 3) { - _fx_R17K_form__kdeffun_t v_2 = {0}; - _fx_N15K_form__kinfo_t v_3 = {0}; - _fx_copy_R17K_form__kdeffun_t(&v_0.u.KFun->data, &v_2); - _fx_R9Ast__id_t* kci_fcv_t_0 = &v_2.kf_closure.kci_fcv_t; + _fx_R17K_form__kdeffun_t v_3 = {0}; + _fx_N15K_form__kinfo_t v_4 = {0}; + _fx_copy_R17K_form__kdeffun_t(&v_0.u.KFun->data, &v_3); + _fx_R9Ast__id_t* kci_fcv_t_0 = &v_3.kf_closure.kci_fcv_t; bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(kci_fcv_t_0, &_fx_g9Ast__noid, &res_0, 0), _fx_catch_1); if (res_0) { @@ -15601,71 +15458,69 @@ FX_EXTERN_C int _fx_M6K_formFM20get_closure_freevarsT2LT2R9Ast__id_tN14K_form__k } else { if (kci_fcv_t_0->m == 0) { - _fx_copy_N15K_form__kinfo_t(&_fx_g13K_form__KNone, &v_3); + _fx_copy_N15K_form__kinfo_t(&_fx_g13K_form__KNone, &v_4); } else { - _fx_Ta2i v_4; - FX_CALL(_fx_M3AstFM7id2idx_Ta2i2RM4id_tRM5loc_t(kci_fcv_t_0, loc_0, &v_4, 0), _fx_catch_1); - int_ m_1 = v_4.t0; - int_ j_1 = v_4.t1; + _fx_Ta2i v_5; + FX_CALL(_fx_M3AstFM7id2idx_Ta2i2RM4id_tRM5loc_t(kci_fcv_t_0, loc_0, &v_5, 0), _fx_catch_1); + int_ m_1 = v_5.t0; + int_ j_1 = v_5.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_1), _fx_catch_1); - FX_CHKIDX( - FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_1))->u.t.t1, 0, j_1), - _fx_catch_1); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_1))->u.t.t1, j_1), &v_3); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_6 = + *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_1); + FX_CHKIDX(FX_CHKIDX1(v_6->u.t.t1, 0, j_1), _fx_catch_1); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_6->u.t.t1, j_1), &v_4); } - if (v_3.tag == 6) { - _fx_R25K_form__kdefclosurevars_t v_5 = {0}; - _fx_copy_R25K_form__kdefclosurevars_t(&v_3.u.KClosureVars->data, &v_5); - _fx_make_T2LT2R9Ast__id_tN14K_form__ktyp_tLR9Ast__id_t(v_5.kcv_freevars, v_5.kcv_orig_freevars, fx_result); - _fx_free_R25K_form__kdefclosurevars_t(&v_5); + if (v_4.tag == 6) { + _fx_R25K_form__kdefclosurevars_t v_7 = {0}; + _fx_copy_R25K_form__kdefclosurevars_t(&v_4.u.KClosureVars->data, &v_7); + _fx_make_T2LT2R9Ast__id_tN14K_form__ktyp_tLR9Ast__id_t(v_7.kcv_freevars, v_7.kcv_orig_freevars, fx_result); + _fx_free_R25K_form__kdefclosurevars_t(&v_7); } else { - fx_str_t v_6 = {0}; - fx_str_t v_7 = {0}; - fx_exn_t v_8 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(kci_fcv_t_0, &v_6, 0), _fx_catch_0); + fx_str_t v_8 = {0}; + fx_str_t v_9 = {0}; + fx_exn_t v_10 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(kci_fcv_t_0, &v_8, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("invalid description of a closure data \'"); fx_str_t slit_1 = FX_MAKE_STR("\' (should KClosureVars ...)"); { - const fx_str_t strs_0[] = { slit_0, v_6, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_7), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_8, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_9), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_7, &v_8, 0), _fx_catch_0); - FX_THROW(&v_8, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_9, &v_10, 0), _fx_catch_0); + FX_THROW(&v_10, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_8); - FX_FREE_STR(&v_7); - FX_FREE_STR(&v_6); + fx_free_exn(&v_10); + FX_FREE_STR(&v_9); + FX_FREE_STR(&v_8); } FX_CHECK_EXN(_fx_catch_1); } _fx_catch_1: ; - _fx_free_N15K_form__kinfo_t(&v_3); - _fx_free_R17K_form__kdeffun_t(&v_2); + _fx_free_N15K_form__kinfo_t(&v_4); + _fx_free_R17K_form__kdeffun_t(&v_3); } else { - fx_str_t v_9 = {0}; - fx_str_t v_10 = {0}; - fx_exn_t v_11 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(f_0, &v_9, 0), _fx_catch_2); + fx_str_t v_11 = {0}; + fx_str_t v_12 = {0}; + fx_exn_t v_13 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(f_0, &v_11, 0), _fx_catch_2); fx_str_t slit_2 = FX_MAKE_STR("get_closure_freevars argument \'"); fx_str_t slit_3 = FX_MAKE_STR("\' is not a function"); { - const fx_str_t strs_1[] = { slit_2, v_9, slit_3 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_10), _fx_catch_2); + const fx_str_t strs_1[] = { slit_2, v_11, slit_3 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_12), _fx_catch_2); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_10, &v_11, 0), _fx_catch_2); - FX_THROW(&v_11, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_12, &v_13, 0), _fx_catch_2); + FX_THROW(&v_13, false, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_11); - FX_FREE_STR(&v_10); - FX_FREE_STR(&v_9); + fx_free_exn(&v_13); + FX_FREE_STR(&v_12); + FX_FREE_STR(&v_11); } _fx_cleanup: ; @@ -15700,22 +15555,20 @@ FX_EXTERN_C int _fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10 int_ m_0 = v_1.t0; int_ j_0 = v_1.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_catch_3); - FX_CHKIDX( - FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_catch_3); - _fx_copy_N15K_form__kinfo_t( - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_0), &v_0); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_2 = + *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_2->u.t.t1, 0, j_0), _fx_catch_3); + _fx_copy_N15K_form__kinfo_t(FX_PTR_1D(_fx_N15K_form__kinfo_t, v_2->u.t.t1, j_0), &v_0); } int tag_0 = v_0.tag; if (tag_0 == 8) { - _fx_R17K_form__kdeftyp_t v_2 = {0}; - _fx_copy_R17K_form__kdeftyp_t(&v_0.u.KTyp->data, &v_2); - _fx_N14K_form__ktyp_t* kt_typ_0 = &v_2.kt_typ; + _fx_R17K_form__kdeftyp_t v_3 = {0}; + _fx_copy_R17K_form__kdeftyp_t(&v_0.u.KTyp->data, &v_3); + _fx_N14K_form__ktyp_t* kt_typ_0 = &v_3.kt_typ; _fx_free_N14K_form__ktyp_t(&kt_1); FX_COPY_PTR(*kt_typ_0, &kt_1); - loc_1 = v_2.kt_loc; - _fx_free_R17K_form__kdeftyp_t(&v_2); + loc_1 = v_3.kt_loc; + _fx_free_R17K_form__kdeftyp_t(&v_3); } else if (tag_0 == 5) { _fx_free_N14K_form__ktyp_t(&result_0); FX_COPY_PTR(kt_2, &result_0); FX_BREAK(_fx_catch_0); _fx_catch_0: ; @@ -15724,23 +15577,23 @@ FX_EXTERN_C int _fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10 _fx_free_N14K_form__ktyp_t(&result_0); FX_COPY_PTR(kt_2, &result_0); FX_BREAK(_fx_catch_1); _fx_catch_1: ; } else { - fx_str_t v_3 = {0}; fx_str_t v_4 = {0}; - fx_exn_t v_5 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_3, 0), _fx_catch_2); + fx_str_t v_5 = {0}; + fx_exn_t v_6 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(n_0, &v_4, 0), _fx_catch_2); fx_str_t slit_0 = FX_MAKE_STR("named \'type\' \'"); fx_str_t slit_1 = FX_MAKE_STR("\' does not represent a type"); { - const fx_str_t strs_0[] = { slit_0, v_3, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_4), _fx_catch_2); + const fx_str_t strs_0[] = { slit_0, v_4, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_5), _fx_catch_2); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_2, &v_4, &v_5, 0), _fx_catch_2); - FX_THROW(&v_5, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_2, &v_5, &v_6, 0), _fx_catch_2); + FX_THROW(&v_6, false, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_5); + fx_free_exn(&v_6); + FX_FREE_STR(&v_5); FX_FREE_STR(&v_4); - FX_FREE_STR(&v_3); } FX_CHECK_EXN(_fx_catch_3); @@ -15886,23 +15739,21 @@ FX_EXTERN_C int int_ m_0 = v_2.t0; int_ j_0 = v_2.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_N15K_form__kinfo_t* v_3 = - FX_PTR_1D(_fx_N15K_form__kinfo_t, (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, - j_0); - _fx_free_N15K_form__kinfo_t(v_3); - _fx_copy_N15K_form__kinfo_t(&v_0, v_3); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_3 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_3->u.t.t1, 0, j_0), _fx_cleanup); + _fx_N15K_form__kinfo_t* v_4 = FX_PTR_1D(_fx_N15K_form__kinfo_t, v_3->u.t.t1, j_0); + _fx_free_N15K_form__kinfo_t(v_4); + _fx_copy_N15K_form__kinfo_t(&v_0, v_4); if (e_opt_0->tag == 2) { - _fx_N14K_form__kexp_t v_4 = 0; + _fx_N14K_form__kexp_t v_5 = 0; FX_CALL( - _fx_M6K_formFM7KDefValN14K_form__kexp_t3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t(n_0, e_opt_0->u.Some, loc_0, &v_4), + _fx_M6K_formFM7KDefValN14K_form__kexp_t3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t(n_0, e_opt_0->u.Some, loc_0, &v_5), _fx_catch_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_4, code_0, true, fx_result), _fx_catch_1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_5, code_0, true, fx_result), _fx_catch_1); _fx_catch_1: ; - if (v_4) { - _fx_free_N14K_form__kexp_t(&v_4); + if (v_5) { + _fx_free_N14K_form__kexp_t(&v_5); } } else { @@ -16014,23 +15865,21 @@ FX_EXTERN_C int _fx_M6K_formFM9kexp2atomT2N14K_form__atom_tLN14K_form__kexp_t5iS int_ m_0 = v_8.t0; int_ j_1 = v_8.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_catch_3); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_1), - _fx_catch_3); - _fx_N15K_form__kinfo_t* v_9 = - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_1); - _fx_free_N15K_form__kinfo_t(v_9); - _fx_copy_N15K_form__kinfo_t(&v_4, v_9); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_9 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_9->u.t.t1, 0, j_1), _fx_catch_3); + _fx_N15K_form__kinfo_t* v_10 = FX_PTR_1D(_fx_N15K_form__kinfo_t, v_9->u.t.t1, j_1); + _fx_free_N15K_form__kinfo_t(v_10); + _fx_copy_N15K_form__kinfo_t(&v_4, v_10); if (v_3.tag == 2) { - _fx_N14K_form__kexp_t v_10 = 0; + _fx_N14K_form__kexp_t v_11 = 0; FX_CALL( _fx_M6K_formFM7KDefValN14K_form__kexp_t3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t(&tmp_id_0, v_3.u.Some, &kloc_0, - &v_10), _fx_catch_2); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_10, code_0, true, &code_1), _fx_catch_2); + &v_11), _fx_catch_2); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_11, code_0, true, &code_1), _fx_catch_2); _fx_catch_2: ; - if (v_10) { - _fx_free_N14K_form__kexp_t(&v_10); + if (v_11) { + _fx_free_N14K_form__kexp_t(&v_11); } } else { @@ -16174,13 +16023,11 @@ FX_EXTERN_C int int_ m_0 = v_4.t0; int_ j_0 = v_4.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_0), - _fx_cleanup); - _fx_N15K_form__kinfo_t* v_5 = - FX_PTR_1D(_fx_N15K_form__kinfo_t, (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, - j_0); - _fx_free_N15K_form__kinfo_t(v_5); - _fx_copy_N15K_form__kinfo_t(&v_1, v_5); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_5 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_5->u.t.t1, 0, j_0), _fx_cleanup); + _fx_N15K_form__kinfo_t* v_6 = FX_PTR_1D(_fx_N15K_form__kinfo_t, v_5->u.t.t1, j_0); + _fx_free_N15K_form__kinfo_t(v_6); + _fx_copy_N15K_form__kinfo_t(&v_1, v_6); FX_CALL(_fx_M6K_formFM7KDefFunN14K_form__kexp_t1rRM9kdeffun_t(kf_0, &v_2), _fx_cleanup); FX_CALL(_fx_cons_LN14K_form__kexp_t(v_2, code_0, true, fx_result), _fx_cleanup); @@ -16264,13 +16111,11 @@ FX_EXTERN_C int int_ m_0 = v_9.t0; int_ j_1 = v_9.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_0), _fx_catch_1); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, 0, j_1), - _fx_catch_1); - _fx_N15K_form__kinfo_t* v_10 = - FX_PTR_1D(_fx_N15K_form__kinfo_t, - (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0))->u.t.t1, j_1); - _fx_free_N15K_form__kinfo_t(v_10); - _fx_copy_N15K_form__kinfo_t(&v_7, v_10); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_10 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_0); + FX_CHKIDX(FX_CHKIDX1(v_10->u.t.t1, 0, j_1), _fx_catch_1); + _fx_N15K_form__kinfo_t* v_11 = FX_PTR_1D(_fx_N15K_form__kinfo_t, v_10->u.t.t1, j_1); + _fx_free_N15K_form__kinfo_t(v_11); + _fx_copy_N15K_form__kinfo_t(&v_7, v_11); _fx_LR9Ast__id_t node_0 = 0; FX_CALL(_fx_cons_LR9Ast__id_t(&p_0, 0, false, &node_0), _fx_catch_1); FX_LIST_APPEND(params_0, lstend_0, node_0); @@ -16284,31 +16129,29 @@ FX_EXTERN_C int FX_FREE_STR(&v_3); FX_CHECK_EXN(_fx_cleanup); } - _fx_R16Ast__fun_flags_t v_11; - FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_11, 0), _fx_cleanup); - _fx_R16Ast__fun_flags_t v_12 = - { v_11.fun_flag_pure, v_11.fun_flag_ccode, v_11.fun_flag_have_keywords, v_11.fun_flag_inline, v_11.fun_flag_nothrow, - v_11.fun_flag_really_nothrow, v_11.fun_flag_private, *ctor_0, v_11.fun_flag_method_of, v_11.fun_flag_uses_fv, - v_11.fun_flag_recursive, isinstance_0 }; + _fx_R16Ast__fun_flags_t v_12; + FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_12, 0), _fx_cleanup); + _fx_R16Ast__fun_flags_t v_13 = + { v_12.fun_flag_pure, v_12.fun_flag_ccode, v_12.fun_flag_have_keywords, v_12.fun_flag_inline, v_12.fun_flag_nothrow, + v_12.fun_flag_really_nothrow, v_12.fun_flag_private, *ctor_0, v_12.fun_flag_method_of, v_12.fun_flag_uses_fv, + v_12.fun_flag_recursive, isinstance_0 }; FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(loc_0, &body_0), _fx_cleanup); - _fx_R25K_form__kdefclosureinfo_t v_13 = { _fx_g9Ast__noid, _fx_g9Ast__noid, _fx_g9Ast__noid, _fx_g9Ast__noid, _fx_g9Ast__noid + _fx_R25K_form__kdefclosureinfo_t v_14 = { _fx_g9Ast__noid, _fx_g9Ast__noid, _fx_g9Ast__noid, _fx_g9Ast__noid, _fx_g9Ast__noid }; fx_str_t slit_3 = FX_MAKE_STR(""); - _fx_make_R17K_form__kdeffun_t(n_0, &slit_3, params_0, rt_0, body_0, &v_12, &v_13, sc_0, loc_0, &v_0); + _fx_make_R17K_form__kdeffun_t(n_0, &slit_3, params_0, rt_0, body_0, &v_13, &v_14, sc_0, loc_0, &v_0); FX_CALL(_fx_make_rR17K_form__kdeffun_t(&v_0, &kf_0), _fx_cleanup); _fx_M6K_formFM4KFunN15K_form__kinfo_t1rRM9kdeffun_t(kf_0, &v_1); - _fx_Ta2i v_14; - FX_CALL(_fx_M3AstFM7id2idx_Ta2i2RM4id_tRM5loc_t(n_0, &_fx_g10Ast__noloc, &v_14, 0), _fx_cleanup); - int_ m_1 = v_14.t0; - int_ j_2 = v_14.t1; + _fx_Ta2i v_15; + FX_CALL(_fx_M3AstFM7id2idx_Ta2i2RM4id_tRM5loc_t(n_0, &_fx_g10Ast__noloc, &v_15, 0), _fx_cleanup); + int_ m_1 = v_15.t0; + int_ j_2 = v_15.t1; FX_CHKIDX(FX_CHKIDX1(_fx_g16K_form__all_idks, 0, m_1), _fx_cleanup); - FX_CHKIDX(FX_CHKIDX1((*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_1))->u.t.t1, 0, j_2), - _fx_cleanup); - _fx_N15K_form__kinfo_t* v_15 = - FX_PTR_1D(_fx_N15K_form__kinfo_t, (*FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_1))->u.t.t1, - j_2); - _fx_free_N15K_form__kinfo_t(v_15); - _fx_copy_N15K_form__kinfo_t(&v_1, v_15); + _fx_Nt9Dynvec__t1N15K_form__kinfo_t v_16 = *FX_PTR_1D(_fx_Nt9Dynvec__t1N15K_form__kinfo_t, _fx_g16K_form__all_idks, m_1); + FX_CHKIDX(FX_CHKIDX1(v_16->u.t.t1, 0, j_2), _fx_cleanup); + _fx_N15K_form__kinfo_t* v_17 = FX_PTR_1D(_fx_N15K_form__kinfo_t, v_16->u.t.t1, j_2); + _fx_free_N15K_form__kinfo_t(v_17); + _fx_copy_N15K_form__kinfo_t(&v_1, v_17); FX_CALL(_fx_M6K_formFM7KDefFunN14K_form__kexp_t1rRM9kdeffun_t(kf_0, &v_2), _fx_cleanup); FX_CALL(_fx_cons_LN14K_form__kexp_t(v_2, code_0, true, fx_result), _fx_cleanup); @@ -16761,8 +16604,9 @@ FX_EXTERN_C int _fx_M6K_formFM8klit2strS3N14K_form__klit_tBR10Ast__loc_t( else { FX_CALL(_fx_F6stringS1d(v_17, &vstr_0, 0), _fx_catch_5); FX_STR_CHKIDX(vstr_0, 0, _fx_catch_5); - bool v_18 = _fx_M4CharFM7isdigitB1C(FX_STR_ELEM(vstr_0, 0), 0); - if (v_18) { + char_ v_18 = FX_STR_ELEM(vstr_0, 0); + bool v_19 = _fx_M4CharFM7isdigitB1C(v_18, 0); + if (v_19) { fx_str_t slit_10 = FX_MAKE_STR("f"); { const fx_str_t strs_8[] = { vstr_0, slit_10 }; @@ -16770,22 +16614,23 @@ FX_EXTERN_C int _fx_M6K_formFM8klit2strS3N14K_form__klit_tBR10Ast__loc_t( } } else { - int_ v_19; + int_ v_20; fx_str_t slit_11 = FX_MAKE_STR("inf"); - v_19 = _fx_M6StringFM4findi3SSi(&vstr_0, &slit_11, 0, 0); - bool v_20; - if (v_19 >= 0) { - v_20 = true; + v_20 = _fx_M6StringFM4findi3SSi(&vstr_0, &slit_11, 0, 0); + bool v_21; + if (v_20 >= 0) { + v_21 = true; } else { - int_ v_21; + int_ v_22; fx_str_t slit_12 = FX_MAKE_STR("INF"); - v_21 = _fx_M6StringFM4findi3SSi(&vstr_0, &slit_12, 0, 0); - v_20 = v_21 >= 0; + v_22 = _fx_M6StringFM4findi3SSi(&vstr_0, &slit_12, 0, 0); + v_21 = v_22 >= 0; } - if (v_20) { + if (v_21) { FX_STR_CHKIDX(vstr_0, 0, _fx_catch_5); - if (FX_STR_ELEM(vstr_0, 0) == (char_)45) { + char_ v_23 = FX_STR_ELEM(vstr_0, 0); + if (v_23 == (char_)45) { fx_str_t slit_13 = FX_MAKE_STR("-INFINITY"); fx_copy_str(&slit_13, fx_result); } else { @@ -16793,20 +16638,20 @@ FX_EXTERN_C int _fx_M6K_formFM8klit2strS3N14K_form__klit_tBR10Ast__loc_t( } } else { - int_ v_22; + int_ v_24; fx_str_t slit_15 = FX_MAKE_STR("nan"); - v_22 = _fx_M6StringFM4findi3SSi(&vstr_0, &slit_15, 0, 0); - bool v_23; - if (v_22 >= 0) { - v_23 = true; + v_24 = _fx_M6StringFM4findi3SSi(&vstr_0, &slit_15, 0, 0); + bool v_25; + if (v_24 >= 0) { + v_25 = true; } else { - int_ v_24; + int_ v_26; fx_str_t slit_16 = FX_MAKE_STR("NAN"); - v_24 = _fx_M6StringFM4findi3SSi(&vstr_0, &slit_16, 0, 0); - v_23 = v_24 >= 0; + v_26 = _fx_M6StringFM4findi3SSi(&vstr_0, &slit_16, 0, 0); + v_25 = v_26 >= 0; } - if (v_23) { + if (v_25) { fx_str_t slit_17 = FX_MAKE_STR("NAN"); fx_copy_str(&slit_17, fx_result); } else { @@ -16829,22 +16674,23 @@ FX_EXTERN_C int _fx_M6K_formFM8klit2strS3N14K_form__klit_tBR10Ast__loc_t( if (tag_0 == 4) { _fx_T2id* vcase_5 = &lit_0->u.KLitFloat; if (vcase_5->t0 == 32) { - fx_str_t v_25 = {0}; + fx_str_t v_27 = {0}; fx_str_t vstr_1 = {0}; - double v_26 = vcase_5->t1; + double v_28 = vcase_5->t1; if (!cmode_0) { - FX_CALL(_fx_F6stringS1d(v_26, &v_25, 0), _fx_catch_6); + FX_CALL(_fx_F6stringS1d(v_28, &v_27, 0), _fx_catch_6); fx_str_t slit_19 = FX_MAKE_STR("f"); { - const fx_str_t strs_10[] = { v_25, slit_19 }; + const fx_str_t strs_10[] = { v_27, slit_19 }; FX_CALL(fx_strjoin(0, 0, 0, strs_10, 2, fx_result), _fx_catch_6); } } else { - FX_CALL(_fx_F6stringS1d(v_26, &vstr_1, 0), _fx_catch_6); + FX_CALL(_fx_F6stringS1d(v_28, &vstr_1, 0), _fx_catch_6); FX_STR_CHKIDX(vstr_1, 0, _fx_catch_6); - bool v_27 = _fx_M4CharFM7isdigitB1C(FX_STR_ELEM(vstr_1, 0), 0); - if (v_27) { + char_ v_29 = FX_STR_ELEM(vstr_1, 0); + bool v_30 = _fx_M4CharFM7isdigitB1C(v_29, 0); + if (v_30) { fx_str_t slit_20 = FX_MAKE_STR("f"); { const fx_str_t strs_11[] = { vstr_1, slit_20 }; @@ -16852,22 +16698,23 @@ FX_EXTERN_C int _fx_M6K_formFM8klit2strS3N14K_form__klit_tBR10Ast__loc_t( } } else { - int_ v_28; + int_ v_31; fx_str_t slit_21 = FX_MAKE_STR("inf"); - v_28 = _fx_M6StringFM4findi3SSi(&vstr_1, &slit_21, 0, 0); - bool v_29; - if (v_28 >= 0) { - v_29 = true; + v_31 = _fx_M6StringFM4findi3SSi(&vstr_1, &slit_21, 0, 0); + bool v_32; + if (v_31 >= 0) { + v_32 = true; } else { - int_ v_30; + int_ v_33; fx_str_t slit_22 = FX_MAKE_STR("INF"); - v_30 = _fx_M6StringFM4findi3SSi(&vstr_1, &slit_22, 0, 0); - v_29 = v_30 >= 0; + v_33 = _fx_M6StringFM4findi3SSi(&vstr_1, &slit_22, 0, 0); + v_32 = v_33 >= 0; } - if (v_29) { + if (v_32) { FX_STR_CHKIDX(vstr_1, 0, _fx_catch_6); - if (FX_STR_ELEM(vstr_1, 0) == (char_)45) { + char_ v_34 = FX_STR_ELEM(vstr_1, 0); + if (v_34 == (char_)45) { fx_str_t slit_23 = FX_MAKE_STR("-INFINITY"); fx_copy_str(&slit_23, fx_result); } else { @@ -16875,20 +16722,20 @@ FX_EXTERN_C int _fx_M6K_formFM8klit2strS3N14K_form__klit_tBR10Ast__loc_t( } } else { - int_ v_31; + int_ v_35; fx_str_t slit_25 = FX_MAKE_STR("nan"); - v_31 = _fx_M6StringFM4findi3SSi(&vstr_1, &slit_25, 0, 0); - bool v_32; - if (v_31 >= 0) { - v_32 = true; + v_35 = _fx_M6StringFM4findi3SSi(&vstr_1, &slit_25, 0, 0); + bool v_36; + if (v_35 >= 0) { + v_36 = true; } else { - int_ v_33; + int_ v_37; fx_str_t slit_26 = FX_MAKE_STR("NAN"); - v_33 = _fx_M6StringFM4findi3SSi(&vstr_1, &slit_26, 0, 0); - v_32 = v_33 >= 0; + v_37 = _fx_M6StringFM4findi3SSi(&vstr_1, &slit_26, 0, 0); + v_36 = v_37 >= 0; } - if (v_32) { + if (v_36) { fx_str_t slit_27 = FX_MAKE_STR("NAN"); fx_copy_str(&slit_27, fx_result); } else { @@ -16904,7 +16751,7 @@ FX_EXTERN_C int _fx_M6K_formFM8klit2strS3N14K_form__klit_tBR10Ast__loc_t( _fx_catch_6: ; FX_FREE_STR(&vstr_1); - FX_FREE_STR(&v_25); + FX_FREE_STR(&v_27); goto _fx_endmatch_0; } } @@ -16912,34 +16759,36 @@ FX_EXTERN_C int _fx_M6K_formFM8klit2strS3N14K_form__klit_tBR10Ast__loc_t( _fx_T2id* vcase_6 = &lit_0->u.KLitFloat; if (vcase_6->t0 == 64) { fx_str_t vstr_2 = {0}; - double v_34 = vcase_6->t1; + double v_38 = vcase_6->t1; if (!cmode_0) { - FX_CALL(_fx_F6stringS1d(v_34, fx_result, 0), _fx_catch_7); + FX_CALL(_fx_F6stringS1d(v_38, fx_result, 0), _fx_catch_7); } else { - FX_CALL(_fx_F6stringS1d(v_34, &vstr_2, 0), _fx_catch_7); + FX_CALL(_fx_F6stringS1d(v_38, &vstr_2, 0), _fx_catch_7); FX_STR_CHKIDX(vstr_2, 0, _fx_catch_7); - bool v_35 = _fx_M4CharFM7isdigitB1C(FX_STR_ELEM(vstr_2, 0), 0); - if (v_35) { + char_ v_39 = FX_STR_ELEM(vstr_2, 0); + bool v_40 = _fx_M4CharFM7isdigitB1C(v_39, 0); + if (v_40) { fx_copy_str(&vstr_2, fx_result); } else { - int_ v_36; + int_ v_41; fx_str_t slit_29 = FX_MAKE_STR("inf"); - v_36 = _fx_M6StringFM4findi3SSi(&vstr_2, &slit_29, 0, 0); - bool v_37; - if (v_36 >= 0) { - v_37 = true; + v_41 = _fx_M6StringFM4findi3SSi(&vstr_2, &slit_29, 0, 0); + bool v_42; + if (v_41 >= 0) { + v_42 = true; } else { - int_ v_38; + int_ v_43; fx_str_t slit_30 = FX_MAKE_STR("INF"); - v_38 = _fx_M6StringFM4findi3SSi(&vstr_2, &slit_30, 0, 0); - v_37 = v_38 >= 0; + v_43 = _fx_M6StringFM4findi3SSi(&vstr_2, &slit_30, 0, 0); + v_42 = v_43 >= 0; } - if (v_37) { + if (v_42) { FX_STR_CHKIDX(vstr_2, 0, _fx_catch_7); - if (FX_STR_ELEM(vstr_2, 0) == (char_)45) { + char_ v_44 = FX_STR_ELEM(vstr_2, 0); + if (v_44 == (char_)45) { fx_str_t slit_31 = FX_MAKE_STR("-INFINITY"); fx_copy_str(&slit_31, fx_result); } else { @@ -16947,20 +16796,20 @@ FX_EXTERN_C int _fx_M6K_formFM8klit2strS3N14K_form__klit_tBR10Ast__loc_t( } } else { - int_ v_39; + int_ v_45; fx_str_t slit_33 = FX_MAKE_STR("nan"); - v_39 = _fx_M6StringFM4findi3SSi(&vstr_2, &slit_33, 0, 0); - bool v_40; - if (v_39 >= 0) { - v_40 = true; + v_45 = _fx_M6StringFM4findi3SSi(&vstr_2, &slit_33, 0, 0); + bool v_46; + if (v_45 >= 0) { + v_46 = true; } else { - int_ v_41; + int_ v_47; fx_str_t slit_34 = FX_MAKE_STR("NAN"); - v_41 = _fx_M6StringFM4findi3SSi(&vstr_2, &slit_34, 0, 0); - v_40 = v_41 >= 0; + v_47 = _fx_M6StringFM4findi3SSi(&vstr_2, &slit_34, 0, 0); + v_46 = v_47 >= 0; } - if (v_40) { + if (v_46) { fx_str_t slit_35 = FX_MAKE_STR("NAN"); fx_copy_str(&slit_35, fx_result); } else { @@ -16976,28 +16825,28 @@ FX_EXTERN_C int _fx_M6K_formFM8klit2strS3N14K_form__klit_tBR10Ast__loc_t( } } if (tag_0 == 4) { - fx_str_t v_42 = {0}; - fx_str_t v_43 = {0}; - fx_str_t v_44 = {0}; - fx_exn_t v_45 = {0}; + fx_str_t v_48 = {0}; + fx_str_t v_49 = {0}; + fx_str_t v_50 = {0}; + fx_exn_t v_51 = {0}; _fx_T2id* vcase_7 = &lit_0->u.KLitFloat; - FX_CALL(_fx_F6stringS1i(vcase_7->t0, &v_42, 0), _fx_catch_8); - FX_CALL(_fx_F6stringS1d(vcase_7->t1, &v_43, 0), _fx_catch_8); + FX_CALL(_fx_F6stringS1i(vcase_7->t0, &v_48, 0), _fx_catch_8); + FX_CALL(_fx_F6stringS1d(vcase_7->t1, &v_49, 0), _fx_catch_8); fx_str_t slit_36 = FX_MAKE_STR("invalid literal LitFloat("); fx_str_t slit_37 = FX_MAKE_STR(", "); fx_str_t slit_38 = FX_MAKE_STR(")"); { - const fx_str_t strs_13[] = { slit_36, v_42, slit_37, v_43, slit_38 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_13, 5, &v_44), _fx_catch_8); + const fx_str_t strs_13[] = { slit_36, v_48, slit_37, v_49, slit_38 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_13, 5, &v_50), _fx_catch_8); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_44, &v_45, 0), _fx_catch_8); - FX_THROW(&v_45, false, _fx_catch_8); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_50, &v_51, 0), _fx_catch_8); + FX_THROW(&v_51, false, _fx_catch_8); _fx_catch_8: ; - fx_free_exn(&v_45); - FX_FREE_STR(&v_44); - FX_FREE_STR(&v_43); - FX_FREE_STR(&v_42); + fx_free_exn(&v_51); + FX_FREE_STR(&v_50); + FX_FREE_STR(&v_49); + FX_FREE_STR(&v_48); goto _fx_endmatch_0; } if (tag_0 == 5) { diff --git a/compiler/bootstrap/K_freevars.c b/compiler/bootstrap/K_freevars.c index 6305c604..652f523d 100644 --- a/compiler/bootstrap/K_freevars.c +++ b/compiler/bootstrap/K_freevars.c @@ -4048,71 +4048,64 @@ static int _fx_M10K_freevarsFM6qsort_v5iiA1T2SR9Ast__id_tFPB2T2SR9Ast__id_tT2SR9 } } } - int_ __fold_result___0 = lo_2; + int_ i0_0 = lo_2; int_ n_0 = FX_LOOP_COUNT(lo_2, hi_2, 1); for (int_ j_0 = 0; j_0 < n_0; j_0++) { _fx_T2SR9Ast__id_t v_9 = {0}; int_ j_1 = lo_2 + j_0 * 1; - int_ i0_0 = __fold_result___0; FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, j_1), _fx_catch_0); _fx_copy_T2SR9Ast__id_t(FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, j_1), &v_9); bool v_10; FX_CALL(lt_0->fp(&v_9, &p_1, &v_10, lt_0->fcv), _fx_catch_0); - int_ v_11; if (v_10) { - _fx_M10K_freevarsFM6_swap_v3A1T2SR9Ast__id_tii(arr_0, i0_0, j_1, 0); v_11 = i0_0 + 1; + _fx_M10K_freevarsFM6_swap_v3A1T2SR9Ast__id_tii(arr_0, i0_0, j_1, 0); i0_0 = i0_0 + 1; } - else { - v_11 = i0_0; - } - __fold_result___0 = v_11; _fx_catch_0: ; _fx_free_T2SR9Ast__id_t(&v_9); FX_CHECK_EXN(_fx_catch_2); } - int_ i0_1 = __fold_result___0; - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_1), _fx_catch_2); - _fx_copy_T2SR9Ast__id_t(FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, i0_1), &a_1); + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_0), _fx_catch_2); + _fx_copy_T2SR9Ast__id_t(FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, i0_0), &a_1); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); - _fx_T2SR9Ast__id_t* v_12 = FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, hi_2); + _fx_T2SR9Ast__id_t* v_11 = FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, hi_2); + _fx_free_T2SR9Ast__id_t(v_11); + _fx_copy_T2SR9Ast__id_t(&a_1, v_11); + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_0), _fx_catch_2); + _fx_T2SR9Ast__id_t* v_12 = FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, i0_0); _fx_free_T2SR9Ast__id_t(v_12); - _fx_copy_T2SR9Ast__id_t(&a_1, v_12); - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, i0_1), _fx_catch_2); - _fx_T2SR9Ast__id_t* v_13 = FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, i0_1); - _fx_free_T2SR9Ast__id_t(v_13); - _fx_copy_T2SR9Ast__id_t(&p_1, v_13); + _fx_copy_T2SR9Ast__id_t(&p_1, v_12); int_ i1_0 = hi_2; - int_ n_1 = FX_LOOP_COUNT(i0_1, hi_2, 1); + int_ n_1 = FX_LOOP_COUNT(i0_0, hi_2, 1); for (int_ j_2 = 0; j_2 < n_1; j_2++) { - _fx_T2SR9Ast__id_t v_14 = {0}; - int_ j_3 = i0_1 + j_2 * 1; - int_ v_15 = j_3 + 1; - FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, v_15), _fx_catch_1); - _fx_copy_T2SR9Ast__id_t(FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, v_15), &v_14); - bool v_16; - FX_CALL(lt_0->fp(&p_1, &v_14, &v_16, lt_0->fcv), _fx_catch_1); - if (v_16) { + _fx_T2SR9Ast__id_t v_13 = {0}; + int_ j_3 = i0_0 + j_2 * 1; + int_ v_14 = j_3 + 1; + FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, v_14), _fx_catch_1); + _fx_copy_T2SR9Ast__id_t(FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, v_14), &v_13); + bool v_15; + FX_CALL(lt_0->fp(&p_1, &v_13, &v_15, lt_0->fcv), _fx_catch_1); + if (v_15) { i1_0 = j_3; FX_BREAK(_fx_catch_1); } _fx_catch_1: ; - _fx_free_T2SR9Ast__id_t(&v_14); + _fx_free_T2SR9Ast__id_t(&v_13); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_2); } - if (i0_1 - lo_2 < hi_2 - i1_0) { + if (i0_0 - lo_2 < hi_2 - i1_0) { if (i1_0 < prefix_0) { FX_CALL( _fx_M10K_freevarsFM6qsort_v5iiA1T2SR9Ast__id_tFPB2T2SR9Ast__id_tT2SR9Ast__id_ti(i1_0 + 1, hi_2, arr_0, lt_0, prefix_0, 0), _fx_catch_2); } lo_1 = lo_2; - hi_1 = i0_1 - 1; + hi_1 = i0_0 - 1; } else { FX_CALL( - _fx_M10K_freevarsFM6qsort_v5iiA1T2SR9Ast__id_tFPB2T2SR9Ast__id_tT2SR9Ast__id_ti(lo_2, i0_1 - 1, arr_0, lt_0, + _fx_M10K_freevarsFM6qsort_v5iiA1T2SR9Ast__id_tFPB2T2SR9Ast__id_tT2SR9Ast__id_ti(lo_2, i0_0 - 1, arr_0, lt_0, prefix_0, 0), _fx_catch_2); if (i1_0 < prefix_0) { lo_1 = i1_0 + 1; hi_1 = hi_2; @@ -4127,17 +4120,17 @@ static int _fx_M10K_freevarsFM6qsort_v5iiA1T2SR9Ast__id_tFPB2T2SR9Ast__id_tT2SR9 _fx_copy_T2SR9Ast__id_t(FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, lo_2), &a_2); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); _fx_copy_T2SR9Ast__id_t(FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, hi_2), &b_1); - bool v_17; - FX_CALL(lt_0->fp(&b_1, &a_2, &v_17, lt_0->fcv), _fx_catch_2); - if (v_17) { + bool v_16; + FX_CALL(lt_0->fp(&b_1, &a_2, &v_16, lt_0->fcv), _fx_catch_2); + if (v_16) { FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, hi_2), _fx_catch_2); - _fx_T2SR9Ast__id_t* v_18 = FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, hi_2); - _fx_free_T2SR9Ast__id_t(v_18); - _fx_copy_T2SR9Ast__id_t(&a_2, v_18); + _fx_T2SR9Ast__id_t* v_17 = FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, hi_2); + _fx_free_T2SR9Ast__id_t(v_17); + _fx_copy_T2SR9Ast__id_t(&a_2, v_17); FX_CHKIDX(FX_CHKIDX1(*arr_0, 0, lo_2), _fx_catch_2); - _fx_T2SR9Ast__id_t* v_19 = FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, lo_2); - _fx_free_T2SR9Ast__id_t(v_19); - _fx_copy_T2SR9Ast__id_t(&b_1, v_19); + _fx_T2SR9Ast__id_t* v_18 = FX_PTR_1D(_fx_T2SR9Ast__id_t, *arr_0, lo_2); + _fx_free_T2SR9Ast__id_t(v_18); + _fx_copy_T2SR9Ast__id_t(&b_1, v_18); FX_BREAK(_fx_catch_2); } else { @@ -4164,6 +4157,36 @@ _fx_cleanup: ; return fx_status; } +FX_EXTERN_C int _fx_M10K_freevarsFM3revLN14K_form__kexp_t1LN14K_form__kexp_t( + struct _fx_LN14K_form__kexp_t_data_t* l_0, + struct _fx_LN14K_form__kexp_t_data_t** fx_result, + void* fx_fv) +{ + _fx_LN14K_form__kexp_t res_0 = 0; + int fx_status = 0; + _fx_LN14K_form__kexp_t lst_0 = l_0; + for (; lst_0; lst_0 = lst_0->tl) { + _fx_LN14K_form__kexp_t v_0 = 0; + _fx_N14K_form__kexp_t a_0 = lst_0->hd; + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); + + _fx_catch_0: ; + if (v_0) { + _fx_free_LN14K_form__kexp_t(&v_0); + } + FX_CHECK_EXN(_fx_cleanup); + } + FX_COPY_PTR(res_0, fx_result); + +_fx_cleanup: ; + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); + } + return fx_status; +} + FX_EXTERN_C int _fx_M10K_freevarsFM1tNt10Hashmap__t2R9Ast__id_tRM14fv_func_info_t6Rt20Hashmap__hashentry_t2R9Ast__id_tRM14fv_func_info_tiiiA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tRM14fv_func_info_t( struct _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* arg0, @@ -4251,54 +4274,6 @@ FX_EXTERN_C int _fx_M10K_freevarsFM4sizei1Nt10Hashmap__t2R9Ast__id_tRM14fv_func_ return fx_status; } -FX_EXTERN_C int _fx_M10K_freevarsFM4copyNt10Hashmap__t2R9Ast__id_tR9Ast__id_t1Nt10Hashmap__t2R9Ast__id_tR9Ast__id_t( - struct _fx_Nt10Hashmap__t2R9Ast__id_tR9Ast__id_t_data_t* self_0, - struct _fx_Nt10Hashmap__t2R9Ast__id_tR9Ast__id_t_data_t** fx_result, - void* fx_fv) -{ - fx_arr_t v_0 = {0}; - fx_arr_t v_1 = {0}; - fx_arr_t v_2 = {0}; - fx_arr_t v_3 = {0}; - int fx_status = 0; - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_4 = self_0->u.t.t0; - fx_copy_arr(&self_0->u.t.t4, &v_0); - int_* dstptr_0 = 0; - int_ ni_0 = FX_ARR_SIZE(v_0, 0); - int_* ptr_v_0 = FX_PTR_1D(int_, v_0, 0); - { - const int_ shape_0[] = { ni_0 }; - FX_CALL(fx_make_arr(1, shape_0, sizeof(int_), 0, 0, 0, &v_1), _fx_cleanup); - } - dstptr_0 = (int_*)v_1.data; - for (int_ i_0 = 0; i_0 < ni_0; i_0++, dstptr_0++) { - int_ x_0 = ptr_v_0[i_0]; *dstptr_0 = x_0; - } - fx_copy_arr(&self_0->u.t.t5, &v_2); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* dstptr_1 = 0; - int_ ni_1 = FX_ARR_SIZE(v_2, 0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* ptr_v_1 = - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, v_2, 0); - { - const int_ shape_1[] = { ni_1 }; - FX_CALL(fx_make_arr(1, shape_1, sizeof(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t), 0, 0, 0, &v_3), _fx_cleanup); - } - dstptr_1 = (_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t*)v_3.data; - for (int_ i_1 = 0; i_1 < ni_1; i_1++, dstptr_1++) { - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t x_1 = ptr_v_1[i_1]; *dstptr_1 = x_1; - } - FX_CALL( - _fx_M10K_freevarsFM1tNt10Hashmap__t2R9Ast__id_tR9Ast__id_t6Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_tiiiA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t( - &v_4, self_0->u.t.t1, self_0->u.t.t2, self_0->u.t.t3, &v_1, &v_3, fx_result), _fx_cleanup); - -_fx_cleanup: ; - FX_FREE_ARR(&v_0); - FX_FREE_ARR(&v_1); - FX_FREE_ARR(&v_2); - FX_FREE_ARR(&v_3); - return fx_status; -} - FX_EXTERN_C int _fx_M10K_freevarsFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tRM14fv_func_info_tRt20Hashmap__hashentry_t2R9Ast__id_tRM14fv_func_info_t( int_ tabsz_0, @@ -4321,12 +4296,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4371,9 +4347,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4427,28 +4406,29 @@ FX_EXTERN_C int _fx_M10K_freevarsFM4growv2Nt10Hashmap__t2R9Ast__id_tRM14fv_func_ for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, ht_table_0, j_0)->hv < - 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M10K_freevarsFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tRM14fv_func_info_tRt20Hashmap__hashentry_t2R9Ast__id_tRM14fv_func_info_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4486,26 +4466,28 @@ FX_EXTERN_C int _fx_M10K_freevarsFM4growv2Nt10Hashmap__t2R9Ast__id_tR9Ast__id_ti int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M10K_freevarsFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_tRt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4524,14 +4506,14 @@ FX_EXTERN_C int _fx_M10K_freevarsFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tRM14 { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4550,32 +4532,11 @@ FX_EXTERN_C int _fx_M10K_freevarsFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tRM14 bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4611,14 +4572,14 @@ FX_EXTERN_C int _fx_M10K_freevarsFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR9As { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4636,32 +4597,11 @@ FX_EXTERN_C int _fx_M10K_freevarsFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR9As bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4701,8 +4641,10 @@ FX_EXTERN_C int _fx_M10K_freevarsFM8find_optNt6option1R9Ast__id_t2Nt10Hashmap__t int_ j_0 = v_0.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, j_0), _fx_cleanup); - _fx_R9Ast__id_t v_1 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, j_0)->data; - _fx_M10K_freevarsFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_1, fx_result); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_1 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, j_0); + _fx_R9Ast__id_t v_2 = v_1->data; + _fx_M10K_freevarsFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_2, fx_result); } else { *fx_result = _fx_g18K_freevars__None2_; @@ -4724,14 +4666,14 @@ FX_EXTERN_C int _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -4759,32 +4701,11 @@ FX_EXTERN_C int _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4800,14 +4721,14 @@ FX_EXTERN_C int _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -4820,28 +4741,29 @@ FX_EXTERN_C int _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -4852,12 +4774,13 @@ FX_EXTERN_C int _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i _fx_copy_R26K_freevars__fv_func_info_t(&self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t(hv_0, k_0, &v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -4886,14 +4809,14 @@ FX_EXTERN_C int _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i fx_arr_t v_1 = {0}; fx_exn_t v_2 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -4920,32 +4843,11 @@ FX_EXTERN_C int _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4961,14 +4863,14 @@ FX_EXTERN_C int _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -4980,28 +4882,29 @@ FX_EXTERN_C int _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5009,12 +4912,15 @@ FX_EXTERN_C int _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__i fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_R9Ast__id_t v_6 = self_0->u.t.t0.data; - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_7 = { hv_0, *k_0, v_6 }; + _fx_R9Ast__id_t v_9 = self_0->u.t.t0.data; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_10 = { hv_0, *k_0, v_9 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0) = v_7; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_11 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0); + *v_11 = v_10; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5044,14 +4950,15 @@ FX_EXTERN_C int _fx_M10K_freevarsFM3appv2Nt10Hashmap__t2R9Ast__id_tRM14fv_func_i _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t entry_0 = {0}; _fx_R26K_freevars__fv_func_info_t v_1 = {0}; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, table_0, j_0)->hv < - 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, table_0, j_0), &entry_0); - _fx_R9Ast__id_t v_2 = entry_0.key; + _fx_R9Ast__id_t v_3 = entry_0.key; _fx_copy_R26K_freevars__fv_func_info_t(&entry_0.data, &v_1); - FX_CALL(f_0->fp(&v_2, &v_1, f_0->fcv), _fx_catch_0); + FX_CALL(f_0->fp(&v_3, &v_1, f_0->fcv), _fx_catch_0); } _fx_catch_0: ; @@ -5087,9 +4994,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -5138,26 +5048,28 @@ FX_EXTERN_C int _fx_M10K_freevarsFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M10K_freevarsFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -5194,32 +5106,11 @@ FX_EXTERN_C int _fx_M10K_freevarsFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9As bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5281,32 +5172,11 @@ FX_EXTERN_C int _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5322,14 +5192,14 @@ FX_EXTERN_C int _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -5341,27 +5211,29 @@ FX_EXTERN_C int _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5369,11 +5241,14 @@ FX_EXTERN_C int _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5426,7 +5301,7 @@ FX_EXTERN_C int fx_arr_t table_0 = {0}; _fx_LR9Ast__id_t res_0 = 0; _fx_LR9Ast__id_t v_7 = 0; - _fx_LR9Ast__id_t __fold_result___0 = 0; + _fx_LR9Ast__id_t res_1 = 0; _fx_LR9Ast__id_t ll_all_0 = 0; int fx_status = 0; FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(1, &v_0, 0), _fx_cleanup); @@ -5517,22 +5392,21 @@ FX_EXTERN_C int FX_COPY_PTR(res_0, &v_7); _fx_LR9Ast__id_t lst_2 = v_7; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LR9Ast__id_t r_0 = 0; + _fx_LR9Ast__id_t v_11 = 0; _fx_R9Ast__id_t* a_0 = &lst_2->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_3); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LR9Ast__id_t(a_0, res_1, true, &v_11), _fx_catch_3); + FX_FREE_LIST_SIMPLE(&res_1); + FX_COPY_PTR(v_11, &res_1); _fx_catch_3: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_11); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &ll_all_0); - int_ res_1; + FX_COPY_PTR(res_1, &ll_all_0); + int_ res_2; FX_CALL( _fx_M10K_freevarsFM13finalize_setsi3iLR9Ast__id_trNt10Hashmap__t2R9Ast__id_tRM14fv_func_info_t(10, ll_all_0, - fv_env_ref_0, &res_1, 0), _fx_cleanup); + fv_env_ref_0, &res_2, 0), _fx_cleanup); } FX_COPY_PTR(*fv_env_0, fx_result); @@ -5568,7 +5442,7 @@ _fx_cleanup: ; FX_FREE_ARR(&table_0); FX_FREE_LIST_SIMPLE(&res_0); FX_FREE_LIST_SIMPLE(&v_7); - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_1); FX_FREE_LIST_SIMPLE(&ll_all_0); return fx_status; } @@ -5598,17 +5472,17 @@ static int _fx_M10K_freevarsFM14fold_fv0_kexp_v2N14K_form__kexp_tR22K_form__k_fo _fx_copy_R17K_form__kdeffun_t(&e_0->u.KDefFun->data, &v_0); _fx_R10Ast__loc_t* kf_loc_0 = &v_0.kf_loc; _fx_R9Ast__id_t* kf_name_0 = &v_0.kf_name; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)kf_name_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)kf_name_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)kf_name_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)kf_name_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)kf_name_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)kf_name_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_4; FX_CALL( _fx_M10K_freevarsFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, kf_name_0, - __fold_result___0 & 9223372036854775807ULL, &v_4, 0), _fx_catch_2); + h_0 & 9223372036854775807ULL, &v_4, 0), _fx_catch_2); if (!(v_4.t1 >= 0)) { FX_CALL(_fx_cons_LN14K_form__kexp_t(e_0, 0, true, &v_1), _fx_catch_2); FX_CALL(_fx_M6K_formFM7used_byNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_1, 256, &uv_0, 0), _fx_catch_2); @@ -5620,12 +5494,16 @@ static int _fx_M10K_freevarsFM14fold_fv0_kexp_v2N14K_form__kexp_tR22K_form__k_fo int_ v_5 = uv_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_5; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_6 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_6->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_6 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_7 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_8 = v_7->key; FX_CALL( _fx_M10K_freevarsFM10__lambda__v4R9Ast__id_tNt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_tR10Ast__loc_t( - &v_6, called_funcs_0, globals_0, kf_loc_0, 0), _fx_catch_0); + &v_8, called_funcs_0, globals_0, kf_loc_0, 0), _fx_catch_0); } _fx_catch_0: ; @@ -5634,15 +5512,19 @@ static int _fx_M10K_freevarsFM14fold_fv0_kexp_v2N14K_form__kexp_tR22K_form__k_fo } FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(uv_0->u.t.t1, &fv0_0, 0), _fx_catch_2); fx_copy_arr(&uv_0->u.t.t5, &table_1); - int_ v_7 = uv_0->u.t.t2; - for (int_ j_1 = 0; j_1 < v_7; j_1++) { + int_ v_9 = uv_0->u.t.t2; + for (int_ j_1 = 0; j_1 < v_9; j_1++) { FX_CHKIDX(FX_CHKIDX1(table_1, 0, j_1), _fx_catch_1); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_1, j_1)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_1, j_1); + if (v_10->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_1, 0, j_1), _fx_catch_1); - _fx_R9Ast__id_t v_8 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_1, j_1)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_11 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_1, j_1); + _fx_R9Ast__id_t v_12 = v_11->key; FX_CALL( _fx_M10K_freevarsFM10__lambda__v6R9Ast__id_tNt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_tR10Ast__loc_tB( - &v_8, dv_0, fv0_0, globals_0, kf_loc_0, cv_0->t3, 0), _fx_catch_1); + &v_12, dv_0, fv0_0, globals_0, kf_loc_0, cv_0->t3, 0), _fx_catch_1); } _fx_catch_1: ; @@ -5654,10 +5536,11 @@ static int _fx_M10K_freevarsFM14fold_fv0_kexp_v2N14K_form__kexp_tR22K_form__k_fo _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tRM14fv_func_info_tR9Ast__id_t(*fv_env_0, kf_name_0, &idx_0, 0), _fx_catch_2); FX_CHKIDX(FX_CHKIDX1((*fv_env_0)->u.t.t5, 0, idx_0), _fx_catch_2); - _fx_R26K_freevars__fv_func_info_t* v_9 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, (*fv_env_0)->u.t.t5, idx_0)->data; - _fx_free_R26K_freevars__fv_func_info_t(v_9); - _fx_copy_R26K_freevars__fv_func_info_t(&v_3, v_9); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_13 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, (*fv_env_0)->u.t.t5, idx_0); + _fx_R26K_freevars__fv_func_info_t* v_14 = &v_13->data; + _fx_free_R26K_freevars__fv_func_info_t(v_14); + _fx_copy_R26K_freevars__fv_func_info_t(&v_3, v_14); } _fx_catch_2: ; @@ -5718,28 +5601,28 @@ static int _fx_M10K_freevarsFM10__lambda__v4R9Ast__id_tNt10Hashset__t1R9Ast__id_ int fx_status = 0; FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(n_0, kf_loc_0, &v_0, 0), _fx_cleanup); if (v_0.tag == 3) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_1; FX_CALL( - _fx_M10K_freevarsFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, n_0, - __fold_result___0 & 9223372036854775807ULL, &v_1, 0), _fx_catch_0); + _fx_M10K_freevarsFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, n_0, h_0 & 9223372036854775807ULL, + &v_1, 0), _fx_catch_0); if (!(v_1.t1 >= 0)) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( - _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(called_funcs_0, n_0, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_0); + _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(called_funcs_0, n_0, h_1 & 9223372036854775807ULL, + 0), _fx_catch_0); } _fx_catch_0: ; @@ -5764,30 +5647,30 @@ static int int fx_status = 0; FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(fv_0, kf_loc_0, &v_0, 0), _fx_cleanup); if (v_0.tag == 2) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_1; FX_CALL( - _fx_M10K_freevarsFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(dv_0, fv_0, - __fold_result___0 & 9223372036854775807ULL, &v_1, 0), _fx_catch_0); + _fx_M10K_freevarsFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(dv_0, fv_0, h_0 & 9223372036854775807ULL, + &v_1, 0), _fx_catch_0); bool v_2; if (!(v_1.t1 >= 0)) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; _fx_Ta2i v_3; FX_CALL( _fx_M10K_freevarsFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, fv_0, - __fold_result___1 & 9223372036854775807ULL, &v_3, 0), _fx_catch_0); + h_1 & 9223372036854775807ULL, &v_3, 0), _fx_catch_0); v_2 = !(v_3.t1 >= 0); } else { @@ -5805,16 +5688,16 @@ static int FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(fv_0, &v_5, &v_4, 0), _fx_catch_0); } if (v_4) { - uint64_t __fold_result___2 = 14695981039346656037ULL; - uint64_t h_6 = __fold_result___2 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); - __fold_result___2 = h_6 * 1099511628211ULL; - uint64_t h_7 = __fold_result___2 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); - __fold_result___2 = h_7 * 1099511628211ULL; - uint64_t h_8 = __fold_result___2 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); - __fold_result___2 = h_8 * 1099511628211ULL; + uint64_t h_2 = 14695981039346656037ULL; + h_2 = h_2 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; FX_CALL( - _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(fv0_0, fv_0, - __fold_result___2 & 9223372036854775807ULL, 0), _fx_catch_0); + _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(fv0_0, fv_0, h_2 & 9223372036854775807ULL, 0), + _fx_catch_0); } } @@ -5845,7 +5728,7 @@ static int _fx_M10K_freevarsFM13finalize_setsi3iLR9Ast__id_trNt10Hashmap__t2R9As _fx_Nt10Hashset__t1R9Ast__id_t idset0_0 = 0; _fx_rB changed_ref_0 = 0; fx_exn_t v_0 = {0}; - _fx_LR9Ast__id_t __fold_result___0 = 0; + _fx_LR9Ast__id_t res_0 = 0; _fx_LR9Ast__id_t v_1 = 0; int_ iters_2 = iters_1; FX_COPY_PTR(ll_all_1, &ll_all_2); @@ -5853,6 +5736,7 @@ static int _fx_M10K_freevarsFM13finalize_setsi3iLR9Ast__id_trNt10Hashmap__t2R9As FX_CALL(_fx_make_rNt10Hashset__t1R9Ast__id_t(visited_funcs_arg_0, &visited_funcs_ref_0), _fx_catch_2); FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(1, &idset0_0, 0), _fx_catch_2); FX_CALL(_fx_make_rB(false, &changed_ref_0), _fx_catch_2); + bool* changed_0 = &changed_ref_0->data; if (iters_2 <= 0) { fx_str_t slit_0 = FX_MAKE_STR("finalization of the free var sets takes too much iterations"); FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&_fx_g10Ast__noloc, &slit_0, &v_0, 0), _fx_catch_2); @@ -5860,36 +5744,35 @@ static int _fx_M10K_freevarsFM13finalize_setsi3iLR9Ast__id_trNt10Hashmap__t2R9As } _fx_LR9Ast__id_t lst_0 = ll_all_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_Nt10Hashset__t1R9Ast__id_t res_0 = 0; + _fx_Nt10Hashset__t1R9Ast__id_t res_1 = 0; _fx_R9Ast__id_t* f_0 = &lst_0->hd; FX_CALL( _fx_M10K_freevarsFM12update_fvarsNt10Hashset__t1R9Ast__id_t5R9Ast__id_trBrNt10Hashmap__t2R9Ast__id_tRM14fv_func_info_tNt10Hashset__t1R9Ast__id_trNt10Hashset__t1R9Ast__id_t( - f_0, changed_ref_0, fv_env_ref_0, idset0_0, visited_funcs_ref_0, &res_0, 0), _fx_catch_0); + f_0, changed_ref_0, fv_env_ref_0, idset0_0, visited_funcs_ref_0, &res_1, 0), _fx_catch_0); _fx_catch_0: ; - if (res_0) { - _fx_free_Nt10Hashset__t1R9Ast__id_t(&res_0); + if (res_1) { + _fx_free_Nt10Hashset__t1R9Ast__id_t(&res_1); } FX_CHECK_EXN(_fx_catch_2); } - if (!changed_ref_0->data) { + if (!*changed_0) { result_0 = iters_2 - 1; FX_BREAK(_fx_catch_2); } else { _fx_LR9Ast__id_t lst_1 = ll_all_2; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LR9Ast__id_t r_0 = 0; + _fx_LR9Ast__id_t v_2 = 0; _fx_R9Ast__id_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_1); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LR9Ast__id_t(a_0, res_0, true, &v_2), _fx_catch_1); + FX_FREE_LIST_SIMPLE(&res_0); + FX_COPY_PTR(v_2, &res_0); _fx_catch_1: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_2); FX_CHECK_EXN(_fx_catch_2); } - FX_COPY_PTR(__fold_result___0, &v_1); + FX_COPY_PTR(res_0, &v_1); iters_1 = iters_2 - 1; FX_FREE_LIST_SIMPLE(&ll_all_1); FX_COPY_PTR(v_1, &ll_all_1); @@ -5897,7 +5780,7 @@ static int _fx_M10K_freevarsFM13finalize_setsi3iLR9Ast__id_trNt10Hashmap__t2R9As _fx_catch_2: ; FX_FREE_LIST_SIMPLE(&v_1); - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_0); fx_free_exn(&v_0); FX_FREE_REF_SIMPLE(&changed_ref_0); if (idset0_0) { @@ -5934,6 +5817,7 @@ static int _fx_R26K_freevars__fv_func_info_t v_1 = {0}; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); + bool* changed_0 = &changed_ref_0->data; _fx_Nt10Hashmap__t2R9Ast__id_tR26K_freevars__fv_func_info_t* fv_env_0 = &fv_env_ref_0->data; _fx_Nt10Hashset__t1R9Ast__id_t* visited_funcs_0 = &visited_funcs_ref_0->data; _fx_Ta2i v_2; @@ -5942,9 +5826,9 @@ static int int_ j_0 = v_2.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*fv_env_0)->u.t.t5, 0, j_0), _fx_cleanup); - _fx_copy_R26K_freevars__fv_func_info_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, (*fv_env_0)->u.t.t5, j_0)->data, - &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, (*fv_env_0)->u.t.t5, j_0); + _fx_copy_R26K_freevars__fv_func_info_t(&v_3->data, &v_1); _fx_M10K_freevarsFM4SomeNt6option1RM14fv_func_info_t1RM14fv_func_info_t(&v_1, &v_0); } else { @@ -5959,42 +5843,46 @@ static int FX_COPY_PTR(ll_info_0->fv_called_funcs, &fv_called_funcs_0); FX_COPY_PTR(ll_info_0->fv_declared_inside, &fv_declared_inside_0); FX_COPY_PTR(ll_info_0->fv_fvars, &fv_fvars_0); - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - _fx_Ta2i v_3; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + _fx_Ta2i v_4; FX_CALL( _fx_M10K_freevarsFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*visited_funcs_0, f_0, - __fold_result___0 & 9223372036854775807ULL, &v_3, 0), _fx_catch_1); - if (v_3.t1 >= 0) { + h_0 & 9223372036854775807ULL, &v_4, 0), _fx_catch_1); + if (v_4.t1 >= 0) { FX_COPY_PTR(fv_fvars_0, fx_result); } else { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*visited_funcs_0, f_0, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_1); + h_1 & 9223372036854775807ULL, 0), _fx_catch_1); int_ size0_0 = fv_fvars_0->u.t.t1; fx_copy_arr(&fv_called_funcs_0->u.t.t5, &table_0); - int_ v_4 = fv_called_funcs_0->u.t.t2; - for (int_ j_1 = 0; j_1 < v_4; j_1++) { + int_ v_5 = fv_called_funcs_0->u.t.t2; + for (int_ j_1 = 0; j_1 < v_5; j_1++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_1), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_6 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1); + if (v_6->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_1), _fx_catch_0); - _fx_R9Ast__id_t v_5 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_7 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_1); + _fx_R9Ast__id_t v_8 = v_7->key; FX_CALL( _fx_M10K_freevarsFM10__lambda__v7R9Ast__id_trBNt10Hashset__t1R9Ast__id_trNt10Hashmap__t2R9Ast__id_tRM14fv_func_info_tNt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_trNt10Hashset__t1R9Ast__id_t( - &v_5, changed_ref_0, fv_declared_inside_0, fv_env_ref_0, fv_fvars_0, idset0_0, visited_funcs_ref_0, 0), + &v_8, changed_ref_0, fv_declared_inside_0, fv_env_ref_0, fv_fvars_0, idset0_0, visited_funcs_ref_0, 0), _fx_catch_0); } @@ -6003,7 +5891,7 @@ static int } int_ size1_0 = fv_fvars_0->u.t.t1; if (size1_0 != size0_0) { - changed_ref_0->data = true; + *changed_0 = true; } FX_COPY_PTR(fv_fvars_0, fx_result); } @@ -6052,11 +5940,14 @@ static int int_ v_0 = called_fvars_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_0; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_1 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_1->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_1 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_3 = v_2->key; FX_CALL( - _fx_M10K_freevarsFM10__lambda__v3R9Ast__id_tNt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_1, + _fx_M10K_freevarsFM10__lambda__v3R9Ast__id_tNt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_3, fv_declared_inside_0, fv_fvars_0, 0), _fx_catch_0); } @@ -6079,28 +5970,28 @@ static int _fx_M10K_freevarsFM10__lambda__v3R9Ast__id_tNt10Hashset__t1R9Ast__id_ void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( _fx_M10K_freevarsFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(fv_declared_inside_0, fv_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_cleanup); + h_0 & 9223372036854775807ULL, &v_0, 0), _fx_cleanup); if (!(v_0.t1 >= 0)) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( - _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(fv_fvars_0, fv_0, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_cleanup); + _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(fv_fvars_0, fv_0, h_1 & 9223372036854775807ULL, 0), + _fx_cleanup); } _fx_cleanup: ; @@ -6155,9 +6046,11 @@ FX_EXTERN_C int _fx_M10K_freevarsFM13sort_freevarsLR9Ast__id_t1Nt10Hashset__t1R9 _fx_LT2SR9Ast__id_t v_3 = 0; if (ptr_0[j_0].hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_4 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; - FX_CALL(_fx_M3AstFM7id2str_S2RM4id_tB(&v_4, true, &v_1, 0), _fx_catch_0); - _fx_make_T2SR9Ast__id_t(&v_1, &v_4, &v_2); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_4 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_5 = v_4->key; + FX_CALL(_fx_M3AstFM7id2str_S2RM4id_tB(&v_5, true, &v_1, 0), _fx_catch_0); + _fx_make_T2SR9Ast__id_t(&v_1, &v_5, &v_2); FX_CALL(_fx_cons_LT2SR9Ast__id_t(&v_2, res_0, true, &v_3), _fx_catch_0); _fx_free_LT2SR9Ast__id_t(&res_0); FX_COPY_PTR(v_3, &res_0); @@ -6181,40 +6074,40 @@ FX_EXTERN_C int _fx_M10K_freevarsFM13sort_freevarsLR9Ast__id_t1Nt10Hashset__t1R9 } } if (fvar_pairs_to_sort_0 != 0) { - _fx_LT2SR9Ast__id_t v_5 = fvar_pairs_to_sort_0->tl; - if (v_5 != 0) { - if (v_5->tl == 0) { + _fx_LT2SR9Ast__id_t v_6 = fvar_pairs_to_sort_0->tl; + if (v_6 != 0) { + if (v_6->tl == 0) { fx_str_t a_0 = {0}; fx_str_t b_0 = {0}; - _fx_LT2SR9Ast__id_t v_6 = 0; - _fx_T2SR9Ast__id_t* b_1 = &v_5->hd; + _fx_LT2SR9Ast__id_t v_7 = 0; + _fx_T2SR9Ast__id_t* b_1 = &v_6->hd; _fx_T2SR9Ast__id_t* a_1 = &fvar_pairs_to_sort_0->hd; fx_copy_str(&b_1->t0, &a_0); _fx_R9Ast__id_t fv_a_0 = b_1->t1; fx_copy_str(&a_1->t0, &b_0); _fx_R9Ast__id_t fv_b_0 = a_1->t1; - int_ v_7 = _fx_F7__cmp__i2SS(&a_0, &b_0, 0); - bool v_8; - if (v_7 < 0) { - v_8 = true; + int_ v_8 = _fx_F7__cmp__i2SS(&a_0, &b_0, 0); + bool v_9; + if (v_8 < 0) { + v_9 = true; } else if (_fx_F6__eq__B2SS(&a_0, &b_0, 0)) { - v_8 = fv_a_0.j < fv_b_0.j; + v_9 = fv_a_0.j < fv_b_0.j; } else { - v_8 = false; + v_9 = false; } - if (v_8) { - FX_CALL(_fx_cons_LT2SR9Ast__id_t(a_1, 0, true, &v_6), _fx_catch_1); - FX_CALL(_fx_cons_LT2SR9Ast__id_t(b_1, v_6, true, &fvar_pairs_sorted_0), _fx_catch_1); + if (v_9) { + FX_CALL(_fx_cons_LT2SR9Ast__id_t(a_1, 0, true, &v_7), _fx_catch_1); + FX_CALL(_fx_cons_LT2SR9Ast__id_t(b_1, v_7, true, &fvar_pairs_sorted_0), _fx_catch_1); } else { FX_COPY_PTR(fvar_pairs_to_sort_0, &fvar_pairs_sorted_0); } _fx_catch_1: ; - if (v_6) { - _fx_free_LT2SR9Ast__id_t(&v_6); + if (v_7) { + _fx_free_LT2SR9Ast__id_t(&v_7); } FX_FREE_STR(&b_0); FX_FREE_STR(&a_0); @@ -6473,13 +6366,16 @@ static int _fx_M10K_freevarsFM10__lambda__v2R9Ast__id_tRM14fv_func_info_t( int_ v_1 = v_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_2 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_4 = v_3->key; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - FX_CALL( - _fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t0, &v_2, - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv, 0), _fx_catch_0); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_5 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + FX_CALL(_fx_M10K_freevarsFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t0, &v_4, v_5->hv, 0), _fx_catch_0); } _fx_catch_0: ; @@ -6533,9 +6429,10 @@ static int _fx_M10K_freevarsFM21walk_atom_n_eliminateN14K_form__atom_t3N14K_form _fx_Nt6option1R9Ast__id_t v_1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_2 = - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*subst_map_0)->u.t.t5, j_0)->data; - _fx_M10K_freevarsFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_2, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*subst_map_0)->u.t.t5, j_0); + _fx_R9Ast__id_t v_3 = v_2->data; + _fx_M10K_freevarsFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_3, &v_1); } else { v_1 = _fx_g18K_freevars__None2_; @@ -6612,7 +6509,7 @@ static int _fx_M10K_freevarsFM21walk_kexp_n_eliminateN14K_form__kexp_t2N14K_form _fx_N14K_form__kexp_t v_13 = 0; _fx_N14K_form__kexp_t v_14 = 0; _fx_LN14K_form__kexp_t code_2 = 0; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; _fx_LN14K_form__kexp_t v_15 = 0; _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_16 = {0}; _fx_T3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t* vcase_0 = &e_0->u.KDefVal; @@ -6620,17 +6517,17 @@ static int _fx_M10K_freevarsFM21walk_kexp_n_eliminateN14K_form__kexp_t2N14K_form _fx_R9Ast__id_t* kv_name_0 = &vcase_0->t0; FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(vcase_0->t1, callb_0, &rhs_0, 0), _fx_catch_1); - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___1 ^ ((uint64_t)kv_name_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___1 ^ ((uint64_t)kv_name_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___1 ^ ((uint64_t)kv_name_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)kv_name_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)kv_name_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)kv_name_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_17; FX_CALL( _fx_M10K_freevarsFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t0, kv_name_0, - __fold_result___1 & 9223372036854775807ULL, &v_17, 0), _fx_catch_1); + h_0 & 9223372036854775807ULL, &v_17, 0), _fx_catch_1); if (v_17.t1 >= 0) { FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(kv_name_0, loc_0, &kv_0, 0), _fx_catch_1); _fx_R10Ast__loc_t kv_loc_0 = kv_0.kv_loc; @@ -6664,7 +6561,9 @@ static int _fx_M10K_freevarsFM21walk_kexp_n_eliminateN14K_form__kexp_t2N14K_form _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tR9Ast__id_tR9Ast__id_t(*ref_map_0, kv_name_0, &idx_0, 0), _fx_catch_1); FX_CHKIDX(FX_CHKIDX1((*ref_map_0)->u.t.t5, 0, idx_0), _fx_catch_1); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*ref_map_0)->u.t.t5, idx_0)->data = new_kv_name_0; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_18 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*ref_map_0)->u.t.t5, idx_0); + v_18->data = new_kv_name_0; FX_CALL(_fx_M3AstFM2ppS1RM4id_t(kv_name_0, &v_5, 0), _fx_catch_1); fx_str_t slit_2 = FX_MAKE_STR("_arg"); { @@ -6695,20 +6594,19 @@ static int _fx_M10K_freevarsFM21walk_kexp_n_eliminateN14K_form__kexp_t2N14K_form FX_CALL(_fx_cons_LN14K_form__kexp_t(v_14, code_1, true, &code_2), _fx_catch_1); _fx_LN14K_form__kexp_t lst_0 = code_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_19 = 0; _fx_N14K_form__kexp_t a_1 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, res_0, true, &v_19), _fx_catch_0); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_19, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_19) { + _fx_free_LN14K_form__kexp_t(&v_19); } FX_CHECK_EXN(_fx_catch_1); } - FX_COPY_PTR(__fold_result___0, &v_15); + FX_COPY_PTR(res_0, &v_15); _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g20K_freevars__KTypVoid, loc_0, &v_16); FX_CALL( _fx_M6K_formFM7KExpSeqN14K_form__kexp_t2LN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t(v_15, &v_16, fx_result), @@ -6725,8 +6623,8 @@ static int _fx_M10K_freevarsFM21walk_kexp_n_eliminateN14K_form__kexp_t2N14K_form if (v_15) { _fx_free_LN14K_form__kexp_t(&v_15); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } if (code_2) { _fx_free_LN14K_form__kexp_t(&code_2); @@ -6778,271 +6676,259 @@ static int _fx_M10K_freevarsFM21walk_kexp_n_eliminateN14K_form__kexp_t2N14K_form } else if (tag_0 == 32) { _fx_N14K_form__kexp_t kf_body_0 = 0; - _fx_Nt6option1R26K_freevars__fv_func_info_t v_18 = {0}; - _fx_R26K_freevars__fv_func_info_t v_19 = {0}; + _fx_Nt6option1R26K_freevars__fv_func_info_t v_20 = {0}; + _fx_R26K_freevars__fv_func_info_t v_21 = {0}; _fx_Nt10Hashset__t1R9Ast__id_t fvars_0 = 0; _fx_LR9Ast__id_t fvars_1 = 0; _fx_Nt10Hashmap__t2R9Ast__id_tR9Ast__id_t subst_map_backup_0 = 0; - fx_arr_t v_20 = {0}; - fx_arr_t v_21 = {0}; - _fx_LN14K_form__kexp_t __fold_result___2 = 0; + fx_arr_t v_22 = {0}; + fx_arr_t v_23 = {0}; + fx_arr_t v_24 = {0}; + fx_arr_t v_25 = {0}; _fx_LN14K_form__kexp_t prologue_0 = 0; _fx_N14K_form__kexp_t body_0 = 0; - _fx_LN14K_form__kexp_t __fold_result___3 = 0; - _fx_LN14K_form__kexp_t v_22 = 0; - _fx_LN14K_form__kexp_t v_23 = 0; - _fx_LN14K_form__kexp_t v_24 = 0; + _fx_LN14K_form__kexp_t v_26 = 0; + _fx_LN14K_form__kexp_t v_27 = 0; + _fx_LN14K_form__kexp_t v_28 = 0; _fx_N14K_form__kexp_t body_1 = 0; - _fx_R17K_form__kdeffun_t v_25 = {0}; + _fx_R17K_form__kdeffun_t v_29 = {0}; _fx_rR17K_form__kdeffun_t kf_0 = e_0->u.KDefFun; - _fx_R17K_form__kdeffun_t* v_26 = &kf_0->data; - FX_COPY_PTR(v_26->kf_body, &kf_body_0); - _fx_R10Ast__loc_t kf_loc_0 = v_26->kf_loc; - _fx_R9Ast__id_t kf_name_0 = v_26->kf_name; - _fx_Ta2i v_27; + _fx_R17K_form__kdeffun_t* v_30 = &kf_0->data; + FX_COPY_PTR(v_30->kf_body, &kf_body_0); + _fx_R10Ast__loc_t kf_loc_0 = v_30->kf_loc; + _fx_R9Ast__id_t kf_name_0 = v_30->kf_name; + _fx_Ta2i v_31; FX_CALL( - _fx_M10K_freevarsFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tRM14fv_func_info_tR9Ast__id_t(*fv_env_0, &kf_name_0, &v_27, - 0), _fx_catch_7); - int_ j_0 = v_27.t1; + _fx_M10K_freevarsFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tRM14fv_func_info_tR9Ast__id_t(*fv_env_0, &kf_name_0, &v_31, + 0), _fx_catch_6); + int_ j_0 = v_31.t1; if (j_0 >= 0) { - FX_CHKIDX(FX_CHKIDX1((*fv_env_0)->u.t.t5, 0, j_0), _fx_catch_7); - _fx_copy_R26K_freevars__fv_func_info_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, (*fv_env_0)->u.t.t5, j_0)->data, - &v_19); - _fx_M10K_freevarsFM4SomeNt6option1RM14fv_func_info_t1RM14fv_func_info_t(&v_19, &v_18); + FX_CHKIDX(FX_CHKIDX1((*fv_env_0)->u.t.t5, 0, j_0), _fx_catch_6); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_32 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, (*fv_env_0)->u.t.t5, j_0); + _fx_copy_R26K_freevars__fv_func_info_t(&v_32->data, &v_21); + _fx_M10K_freevarsFM4SomeNt6option1RM14fv_func_info_t1RM14fv_func_info_t(&v_21, &v_20); } else { - _fx_copy_Nt6option1R26K_freevars__fv_func_info_t(&_fx_g16K_freevars__None, &v_18); + _fx_copy_Nt6option1R26K_freevars__fv_func_info_t(&_fx_g16K_freevars__None, &v_20); } - if (v_18.tag == 2) { - FX_COPY_PTR(v_18.u.Some.fv_fvars, &fvars_0); + if (v_20.tag == 2) { + FX_COPY_PTR(v_20.u.Some.fv_fvars, &fvars_0); } else { FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(1, &fvars_0, 0), _fx_catch_2); _fx_catch_2: ; } - FX_CHECK_EXN(_fx_catch_7); - FX_CALL(_fx_M10K_freevarsFM13sort_freevarsLR9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(fvars_0, &fvars_1, 0), _fx_catch_7); - bool res_0; + FX_CHECK_EXN(_fx_catch_6); + FX_CALL(_fx_M10K_freevarsFM13sort_freevarsLR9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(fvars_0, &fvars_1, 0), _fx_catch_6); + bool res_1; if (fvars_1 == 0) { - res_0 = true; + res_1 = true; } else { - res_0 = false; - } - FX_CHECK_EXN(_fx_catch_7); - if (!res_0) { - FX_CALL( - _fx_M10K_freevarsFM4copyNt10Hashmap__t2R9Ast__id_tR9Ast__id_t1Nt10Hashmap__t2R9Ast__id_tR9Ast__id_t(*subst_map_0, - &subst_map_backup_0, 0), _fx_catch_7); + res_1 = false; } - else { - int_ size_0 = 8; - while (size_0 < 1) { - size_0 = size_0 * 2; + FX_CHECK_EXN(_fx_catch_6); + if (!res_1) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_33 = (*subst_map_0)->u.t.t0; + fx_copy_arr(&(*subst_map_0)->u.t.t4, &v_22); + int_* dstptr_0 = 0; + int_ ni_0 = FX_ARR_SIZE(v_22, 0); + int_* ptr_v_0 = FX_PTR_1D(int_, v_22, 0); + { + const int_ shape_0[] = { ni_0 }; + FX_CALL(fx_make_arr(1, shape_0, sizeof(int_), 0, 0, 0, &v_23), _fx_catch_6); + } + dstptr_0 = (int_*)v_23.data; + for (int_ i_0 = 0; i_0 < ni_0; i_0++, dstptr_0++) { + int_ x_0 = ptr_v_0[i_0]; *dstptr_0 = x_0; } - int_ idxsize_0 = size_0 * 2; - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t entry0_0 = { 0ULL, _fx_g9Ast__noid, _fx_g9Ast__noid }; - FX_CALL(_fx_M7HashmapFM9makeindexA1i1i(idxsize_0, &v_20, 0), _fx_catch_7); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* dstptr_0 = 0; - int_ n_0 = size_0; + fx_copy_arr(&(*subst_map_0)->u.t.t5, &v_24); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* dstptr_1 = 0; + int_ ni_1 = FX_ARR_SIZE(v_24, 0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* ptr_v_1 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, v_24, 0); { - const int_ shape_0[] = { n_0 }; - FX_CALL(fx_make_arr(1, shape_0, sizeof(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t), 0, 0, 0, &v_21), - _fx_catch_7); + const int_ shape_1[] = { ni_1 }; + FX_CALL(fx_make_arr(1, shape_1, sizeof(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t), 0, 0, 0, &v_25), + _fx_catch_6); } - dstptr_0 = (_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t*)v_21.data; - for (int_ i_0 = 0; i_0 < n_0; i_0++, dstptr_0++) { - *dstptr_0 = entry0_0; + dstptr_1 = (_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t*)v_25.data; + for (int_ i_1 = 0; i_1 < ni_1; i_1++, dstptr_1++) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t x_1 = ptr_v_1[i_1]; *dstptr_1 = x_1; } FX_CALL( _fx_M10K_freevarsFM1tNt10Hashmap__t2R9Ast__id_tR9Ast__id_t6Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_tiiiA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t( - &entry0_0, 0, 0, 0, &v_20, &v_21, &subst_map_backup_0), _fx_catch_7); + &v_33, (*subst_map_0)->u.t.t1, (*subst_map_0)->u.t.t2, (*subst_map_0)->u.t.t3, &v_23, &v_25, + &subst_map_backup_0), _fx_catch_6); + } + else { + FX_CALL( + _fx_M10K_freevarsFM5emptyNt10Hashmap__t2R9Ast__id_tR9Ast__id_t3iR9Ast__id_tR9Ast__id_t(1, &_fx_g9Ast__noid, + &_fx_g9Ast__noid, &subst_map_backup_0, 0), _fx_catch_6); } _fx_LR9Ast__id_t lst_1 = fvars_1; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN14K_form__kexp_t prologue_1 = 0; - _fx_N15K_form__kinfo_t v_28 = {0}; - _fx_T2N14K_form__ktyp_tR16Ast__val_flags_t v_29 = {0}; + _fx_N15K_form__kinfo_t v_34 = {0}; + _fx_T2N14K_form__ktyp_tR16Ast__val_flags_t v_35 = {0}; _fx_N14K_form__ktyp_t t_0 = 0; _fx_R16Ast__val_flags_t kv_flags_1 = {0}; - _fx_N14K_form__atom_t v_30 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_31 = {0}; + _fx_N14K_form__atom_t v_36 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_37 = {0}; _fx_N14K_form__kexp_t deref_exp_0 = 0; - _fx_Nt6option1N14K_form__kexp_t v_32 = {0}; - _fx_LN14K_form__kexp_t v_33 = 0; + _fx_Nt6option1N14K_form__kexp_t v_38 = {0}; + _fx_LN14K_form__kexp_t v_39 = 0; _fx_R9Ast__id_t* fv_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___2, &prologue_1); - _fx_Nt6option1R9Ast__id_t v_34; + _fx_Nt6option1R9Ast__id_t v_40; FX_CALL( _fx_M10K_freevarsFM8find_optNt6option1R9Ast__id_t2Nt10Hashmap__t2R9Ast__id_tR9Ast__id_tR9Ast__id_t(*ref_map_0, fv_0, - &v_34, 0), _fx_catch_5); - int tag_1 = v_34.tag; + &v_40, 0), _fx_catch_5); + int tag_1 = v_40.tag; _fx_R9Ast__id_t ref_fv_0; if (tag_1 == 2) { - ref_fv_0 = v_34.u.Some; + ref_fv_0 = v_40.u.Some; } else if (tag_1 == 1) { - fx_str_t v_35 = {0}; - fx_str_t v_36 = {0}; - fx_str_t v_37 = {0}; - fx_exn_t v_38 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_35, 0), _fx_catch_3); - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_36, 0), _fx_catch_3); + fx_str_t v_41 = {0}; + fx_str_t v_42 = {0}; + fx_str_t v_43 = {0}; + fx_exn_t v_44 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_41, 0), _fx_catch_3); + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_42, 0), _fx_catch_3); fx_str_t slit_3 = FX_MAKE_STR("free variable \'"); fx_str_t slit_4 = FX_MAKE_STR("\' of function \'"); fx_str_t slit_5 = FX_MAKE_STR("\' is not defined before the function body"); { - const fx_str_t strs_2[] = { slit_3, v_35, slit_4, v_36, slit_5 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_37), _fx_catch_3); + const fx_str_t strs_2[] = { slit_3, v_41, slit_4, v_42, slit_5 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_43), _fx_catch_3); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_37, &v_38, 0), _fx_catch_3); - FX_THROW(&v_38, false, _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_43, &v_44, 0), _fx_catch_3); + FX_THROW(&v_44, false, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_38); - FX_FREE_STR(&v_37); - FX_FREE_STR(&v_36); - FX_FREE_STR(&v_35); + fx_free_exn(&v_44); + FX_FREE_STR(&v_43); + FX_FREE_STR(&v_42); + FX_FREE_STR(&v_41); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_5); } FX_CHECK_EXN(_fx_catch_5); - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_28, 0), _fx_catch_5); - if (v_28.tag == 2) { - _fx_R17K_form__kdefval_t* v_39 = &v_28.u.KVal; - _fx_make_T2N14K_form__ktyp_tR16Ast__val_flags_t(v_39->kv_typ, &v_39->kv_flags, &v_29); + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_34, 0), _fx_catch_5); + if (v_34.tag == 2) { + _fx_R17K_form__kdefval_t* v_45 = &v_34.u.KVal; + _fx_make_T2N14K_form__ktyp_tR16Ast__val_flags_t(v_45->kv_typ, &v_45->kv_flags, &v_35); } else { - fx_str_t v_40 = {0}; - fx_str_t v_41 = {0}; - fx_str_t v_42 = {0}; - fx_exn_t v_43 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_40, 0), _fx_catch_4); - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_41, 0), _fx_catch_4); + fx_str_t v_46 = {0}; + fx_str_t v_47 = {0}; + fx_str_t v_48 = {0}; + fx_exn_t v_49 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_46, 0), _fx_catch_4); + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_47, 0), _fx_catch_4); fx_str_t slit_6 = FX_MAKE_STR("id \'"); fx_str_t slit_7 = FX_MAKE_STR("\' was assumed to be a val, but it\'s not. Function \'"); fx_str_t slit_8 = FX_MAKE_STR("\'."); { - const fx_str_t strs_3[] = { slit_6, v_40, slit_7, v_41, slit_8 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_42), _fx_catch_4); + const fx_str_t strs_3[] = { slit_6, v_46, slit_7, v_47, slit_8 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_48), _fx_catch_4); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_42, &v_43, 0), _fx_catch_4); - FX_THROW(&v_43, false, _fx_catch_4); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_48, &v_49, 0), _fx_catch_4); + FX_THROW(&v_49, false, _fx_catch_4); _fx_catch_4: ; - fx_free_exn(&v_43); - FX_FREE_STR(&v_42); - FX_FREE_STR(&v_41); - FX_FREE_STR(&v_40); + fx_free_exn(&v_49); + FX_FREE_STR(&v_48); + FX_FREE_STR(&v_47); + FX_FREE_STR(&v_46); } FX_CHECK_EXN(_fx_catch_5); - FX_COPY_PTR(v_29.t0, &t_0); - _fx_copy_R16Ast__val_flags_t(&v_29.t1, &kv_flags_1); + FX_COPY_PTR(v_35.t0, &t_0); + _fx_copy_R16Ast__val_flags_t(&v_35.t1, &kv_flags_1); int_ m_idx_1 = fv_0->m; _fx_R9Ast__id_t fv_proxy_0; FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(m_idx_1, fv_0, &fv_proxy_0, 0), _fx_catch_5); - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&ref_fv_0, &v_30); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_0, &kf_loc_0, &v_31); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&ref_fv_0, &v_36); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_0, &kf_loc_0, &v_37); FX_CALL( _fx_M6K_formFM9KExpUnaryN14K_form__kexp_t3N12Ast__unary_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g19K_freevars__OpDeref, &v_30, &v_31, &deref_exp_0), _fx_catch_5); + &_fx_g19K_freevars__OpDeref, &v_36, &v_37, &deref_exp_0), _fx_catch_5); int_ idx_1; FX_CALL( _fx_M10K_freevarsFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tR9Ast__id_tR9Ast__id_t(*subst_map_0, fv_0, &idx_1, 0), _fx_catch_5); FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, idx_1), _fx_catch_5); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*subst_map_0)->u.t.t5, idx_1)->data = fv_proxy_0; - _fx_M10K_freevarsFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(deref_exp_0, &v_32); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_50 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*subst_map_0)->u.t.t5, idx_1); + v_50->data = fv_proxy_0; + _fx_M10K_freevarsFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(deref_exp_0, &v_38); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &fv_proxy_0, t_0, &kv_flags_1, &v_32, prologue_1, &kf_loc_0, &v_33, 0), _fx_catch_5); - _fx_free_LN14K_form__kexp_t(&__fold_result___2); - FX_COPY_PTR(v_33, &__fold_result___2); + &fv_proxy_0, t_0, &kv_flags_1, &v_38, prologue_0, &kf_loc_0, &v_39, 0), _fx_catch_5); + _fx_free_LN14K_form__kexp_t(&prologue_0); + FX_COPY_PTR(v_39, &prologue_0); _fx_catch_5: ; - if (v_33) { - _fx_free_LN14K_form__kexp_t(&v_33); + if (v_39) { + _fx_free_LN14K_form__kexp_t(&v_39); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_32); + _fx_free_Nt6option1N14K_form__kexp_t(&v_38); if (deref_exp_0) { _fx_free_N14K_form__kexp_t(&deref_exp_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_31); - _fx_free_N14K_form__atom_t(&v_30); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_37); + _fx_free_N14K_form__atom_t(&v_36); _fx_free_R16Ast__val_flags_t(&kv_flags_1); if (t_0) { _fx_free_N14K_form__ktyp_t(&t_0); } - _fx_free_T2N14K_form__ktyp_tR16Ast__val_flags_t(&v_29); - _fx_free_N15K_form__kinfo_t(&v_28); - if (prologue_1) { - _fx_free_LN14K_form__kexp_t(&prologue_1); - } - FX_CHECK_EXN(_fx_catch_7); + _fx_free_T2N14K_form__ktyp_tR16Ast__val_flags_t(&v_35); + _fx_free_N15K_form__kinfo_t(&v_34); + FX_CHECK_EXN(_fx_catch_6); } - FX_COPY_PTR(__fold_result___2, &prologue_0); _fx_R10Ast__loc_t body_loc_0; - FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(kf_body_0, &body_loc_0, 0), _fx_catch_7); + FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(kf_body_0, &body_loc_0, 0), _fx_catch_6); FX_CALL( _fx_M10K_freevarsFM21walk_kexp_n_eliminateN14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t(kf_body_0, callb_0, - &body_0, fx_fv), _fx_catch_7); - _fx_LN14K_form__kexp_t lst_2 = prologue_0; - for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN14K_form__kexp_t r_1 = 0; - _fx_N14K_form__kexp_t a_2 = lst_2->hd; - FX_COPY_PTR(__fold_result___3, &r_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_2, r_1, false, &r_1), _fx_catch_6); - _fx_free_LN14K_form__kexp_t(&__fold_result___3); - FX_COPY_PTR(r_1, &__fold_result___3); - - _fx_catch_6: ; - if (r_1) { - _fx_free_LN14K_form__kexp_t(&r_1); - } - FX_CHECK_EXN(_fx_catch_7); - } - FX_COPY_PTR(__fold_result___3, &v_22); - FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(body_0, &v_23, 0), _fx_catch_7); - FX_CALL(_fx_M10K_freevarsFM7__add__LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_22, v_23, &v_24, 0), - _fx_catch_7); - FX_CALL(_fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_24, &body_loc_0, &body_1, 0), - _fx_catch_7); - bool res_1; + &body_0, fx_fv), _fx_catch_6); + FX_CALL(_fx_M10K_freevarsFM3revLN14K_form__kexp_t1LN14K_form__kexp_t(prologue_0, &v_26, 0), _fx_catch_6); + FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(body_0, &v_27, 0), _fx_catch_6); + FX_CALL(_fx_M10K_freevarsFM7__add__LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_26, v_27, &v_28, 0), + _fx_catch_6); + FX_CALL(_fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_28, &body_loc_0, &body_1, 0), + _fx_catch_6); + bool res_2; if (fvars_1 == 0) { - res_1 = true; + res_2 = true; } else { - res_1 = false; + res_2 = false; } - FX_CHECK_EXN(_fx_catch_7); - if (!res_1) { + FX_CHECK_EXN(_fx_catch_6); + if (!res_2) { _fx_free_Nt10Hashmap__t2R9Ast__id_tR9Ast__id_t(subst_map_0); FX_COPY_PTR(subst_map_backup_0, subst_map_0); } - _fx_R17K_form__kdeffun_t* v_44 = &kf_0->data; - _fx_make_R17K_form__kdeffun_t(&v_44->kf_name, &v_44->kf_cname, v_44->kf_params, v_44->kf_rt, body_1, &v_44->kf_flags, - &v_44->kf_closure, v_44->kf_scope, &v_44->kf_loc, &v_25); - _fx_R17K_form__kdeffun_t* v_45 = &kf_0->data; - _fx_free_R17K_form__kdeffun_t(v_45); - _fx_copy_R17K_form__kdeffun_t(&v_25, v_45); - FX_CALL(_fx_M6K_formFM7KDefFunN14K_form__kexp_t1rRM9kdeffun_t(kf_0, fx_result), _fx_catch_7); + _fx_R17K_form__kdeffun_t* v_51 = &kf_0->data; + _fx_make_R17K_form__kdeffun_t(&v_51->kf_name, &v_51->kf_cname, v_51->kf_params, v_51->kf_rt, body_1, &v_51->kf_flags, + &v_51->kf_closure, v_51->kf_scope, &v_51->kf_loc, &v_29); + _fx_R17K_form__kdeffun_t* v_52 = &kf_0->data; + _fx_free_R17K_form__kdeffun_t(v_52); + _fx_copy_R17K_form__kdeffun_t(&v_29, v_52); + FX_CALL(_fx_M6K_formFM7KDefFunN14K_form__kexp_t1rRM9kdeffun_t(kf_0, fx_result), _fx_catch_6); - _fx_catch_7: ; - _fx_free_R17K_form__kdeffun_t(&v_25); + _fx_catch_6: ; + _fx_free_R17K_form__kdeffun_t(&v_29); if (body_1) { _fx_free_N14K_form__kexp_t(&body_1); } - if (v_24) { - _fx_free_LN14K_form__kexp_t(&v_24); - } - if (v_23) { - _fx_free_LN14K_form__kexp_t(&v_23); + if (v_28) { + _fx_free_LN14K_form__kexp_t(&v_28); } - if (v_22) { - _fx_free_LN14K_form__kexp_t(&v_22); + if (v_27) { + _fx_free_LN14K_form__kexp_t(&v_27); } - if (__fold_result___3) { - _fx_free_LN14K_form__kexp_t(&__fold_result___3); + if (v_26) { + _fx_free_LN14K_form__kexp_t(&v_26); } if (body_0) { _fx_free_N14K_form__kexp_t(&body_0); @@ -7050,11 +6936,10 @@ static int _fx_M10K_freevarsFM21walk_kexp_n_eliminateN14K_form__kexp_t2N14K_form if (prologue_0) { _fx_free_LN14K_form__kexp_t(&prologue_0); } - if (__fold_result___2) { - _fx_free_LN14K_form__kexp_t(&__fold_result___2); - } - FX_FREE_ARR(&v_21); - FX_FREE_ARR(&v_20); + FX_FREE_ARR(&v_25); + FX_FREE_ARR(&v_24); + FX_FREE_ARR(&v_23); + FX_FREE_ARR(&v_22); if (subst_map_backup_0) { _fx_free_Nt10Hashmap__t2R9Ast__id_tR9Ast__id_t(&subst_map_backup_0); } @@ -7062,16 +6947,16 @@ static int _fx_M10K_freevarsFM21walk_kexp_n_eliminateN14K_form__kexp_t2N14K_form if (fvars_0) { _fx_free_Nt10Hashset__t1R9Ast__id_t(&fvars_0); } - _fx_free_R26K_freevars__fv_func_info_t(&v_19); - _fx_free_Nt6option1R26K_freevars__fv_func_info_t(&v_18); + _fx_free_R26K_freevars__fv_func_info_t(&v_21); + _fx_free_Nt6option1R26K_freevars__fv_func_info_t(&v_20); if (kf_body_0) { _fx_free_N14K_form__kexp_t(&kf_body_0); } } else { - FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_0, callb_0, fx_result, 0), _fx_catch_8); + FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_0, callb_0, fx_result, 0), _fx_catch_7); - _fx_catch_8: ; + _fx_catch_7: ; } _fx_cleanup: ; diff --git a/compiler/bootstrap/K_fuse_loops.c b/compiler/bootstrap/K_fuse_loops.c index fb46ba49..29545d30 100644 --- a/compiler/bootstrap/K_fuse_loops.c +++ b/compiler/bootstrap/K_fuse_loops.c @@ -990,22 +990,11 @@ typedef struct _fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t_data_t { struct _fx_T2R9Ast__id_trR24K_fuse_loops__arr_info_t hd; } _fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t_data_t, *_fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t; -typedef struct _fx_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t { - struct _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t t0; - struct _fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t_data_t* t1; -} _fx_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t; - typedef struct _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB { struct _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t_data_t* t0; bool t1; } _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB; -typedef struct _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t { - struct _fx_LT2R9Ast__id_tN13K_form__dom_t_data_t* t0; - struct _fx_LN14K_form__kexp_t_data_t* t1; - struct _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t t2; -} _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t; - typedef struct { int_ rc; int_ data; @@ -3361,30 +3350,6 @@ static int _fx_cons_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t( FX_MAKE_LIST_IMPL(_fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t, _fx_copy_T2R9Ast__id_trR24K_fuse_loops__arr_info_t); } -static void _fx_free_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t( - struct _fx_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t* dst) -{ - _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&dst->t0); - _fx_free_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&dst->t1); -} - -static void _fx_copy_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t( - struct _fx_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t* src, - struct _fx_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t* dst) -{ - _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t( - struct _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t* t0, - struct _fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t_data_t* t1, - struct _fx_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t* fx_result) -{ - _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(struct _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB* dst) { _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&dst->t0); @@ -3407,34 +3372,6 @@ static void _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB( fx_result->t1 = t1; } -static void _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t( - struct _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t* dst) -{ - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&dst->t0); - _fx_free_LN14K_form__kexp_t(&dst->t1); - _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&dst->t2); -} - -static void _fx_copy_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t( - struct _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t* src, - struct _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&src->t2, &dst->t2); -} - -static void _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t( - struct _fx_LT2R9Ast__id_tN13K_form__dom_t_data_t* t0, - struct _fx_LN14K_form__kexp_t_data_t* t1, - struct _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t* t2, - struct _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(t2, &fx_result->t2); -} - _fx_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t _fx_g18K_fuse_loops__None = { 1 }; _fx_Nt6option1rR24K_fuse_loops__arr_info_t _fx_g20K_fuse_loops__None1_ = { 1 }; _fx_Nt6option1FPv2N14K_form__kexp_tR22K_form__k_fold_callb_t _fx_g20K_fuse_loops__None2_ = 0; @@ -4504,42 +4441,33 @@ FX_EXTERN_C int _fx_M12K_fuse_loopsFM10fuse_loopsLN14K_form__kexp_t1LN14K_form__ void* fx_fv) { int fx_status = 0; - _fx_Ta2i __fold_result___0 = { 0, 0 }; + int_ nmaps_0 = 0; + int_ nfors_0 = 0; _fx_LN14K_form__kexp_t lst_0 = code_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_N14K_form__kexp_t e_0 = lst_0->hd; - _fx_Ta2i v_0 = __fold_result___0; - int_ nmaps_0 = v_0.t0; - int_ nfors_0 = v_0.t1; int tag_0 = FX_REC_VARIANT_TAG(e_0); - _fx_Ta2i v_1; if (tag_0 == 31) { if (FX_REC_VARIANT_TAG(e_0->u.KDefVal.t1) == 26) { - _fx_Ta2i tup_0 = { nmaps_0 + 1, nfors_0 }; v_1 = tup_0; goto _fx_endmatch_0; + nmaps_0 = nmaps_0 + 1; goto _fx_endmatch_0; } } if (tag_0 == 26) { - _fx_Ta2i tup_1 = { nmaps_0 + 1, nfors_0 }; v_1 = tup_1; goto _fx_endmatch_0; + nmaps_0 = nmaps_0 + 1; goto _fx_endmatch_0; } if (tag_0 == 27) { - _fx_Ta2i tup_2 = { nmaps_0, nfors_0 + 1 }; v_1 = tup_2; goto _fx_endmatch_0; + nfors_0 = nfors_0 + 1; goto _fx_endmatch_0; } - _fx_Ta2i tup_3 = { nmaps_0, nfors_0 }; - v_1 = tup_3; _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_0); - __fold_result___0 = v_1; _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - _fx_Ta2i v_2 = __fold_result___0; - int_ nmaps_1 = v_2.t0; - int_ nfors_1 = v_2.t1; bool t_0; - if (nmaps_1 >= 1) { - t_0 = nmaps_1 + nfors_1 >= 2; + if (nmaps_0 >= 1) { + t_0 = nmaps_0 + nfors_0 >= 2; } else { t_0 = false; @@ -4874,7 +4802,10 @@ static int _fx_M12K_fuse_loopsFM12process_atomv3N14K_form__atom_tR10Ast__loc_tR2 } _fx_copy_Nt6option1rR24K_fuse_loops__arr_info_t(&result_0, &v_2); if (v_2.tag == 2) { - _fx_rR24K_fuse_loops__arr_info_t ainfo_0 = v_2.u.Some; ainfo_0->data.arr_nused = ainfo_0->data.arr_nused + 1; + _fx_rR24K_fuse_loops__arr_info_t ainfo_0 = v_2.u.Some; + _fx_R24K_fuse_loops__arr_info_t* v_3 = &ainfo_0->data; + _fx_R24K_fuse_loops__arr_info_t* v_4 = &ainfo_0->data; + v_4->arr_nused = v_3->arr_nused + 1; } FX_CHECK_EXN(_fx_catch_3); @@ -4990,7 +4921,8 @@ static int _fx_M12K_fuse_loopsFM11process_idlv3BLT2R9Ast__id_tN13K_form__dom_trR _fx_copy_Nt6option1rR24K_fuse_loops__arr_info_t(&result_0, &v_3); if (v_3.tag == 2) { _fx_rR24K_fuse_loops__arr_info_t ainfo_0 = v_3.u.Some; - bool is_parallel_0 = ainfo_0->data.arr_map_flags.for_flag_parallel; + _fx_R24K_fuse_loops__arr_info_t* v_4 = &ainfo_0->data; + bool is_parallel_0 = v_4->arr_map_flags.for_flag_parallel; bool t_2; if (inside_for_0) { t_2 = is_parallel_0; @@ -4999,7 +4931,9 @@ static int _fx_M12K_fuse_loopsFM11process_idlv3BLT2R9Ast__id_tN13K_form__dom_trR t_2 = false; } if (!t_2) { - ainfo_0->data.arr_nused_for = ainfo_0->data.arr_nused_for + 1; + _fx_R24K_fuse_loops__arr_info_t* v_5 = &ainfo_0->data; + _fx_R24K_fuse_loops__arr_info_t* v_6 = &ainfo_0->data; + v_6->arr_nused_for = v_5->arr_nused_for + 1; } } FX_CHECK_EXN(_fx_catch_3); @@ -5042,85 +4976,79 @@ static int { _fx_FPi2R9Ast__id_tR9Ast__id_t cmp_id_0 = {0}; _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t v_0 = {0}; - _fx_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t __fold_result___0 = {0}; - _fx_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t v_1 = {0}; _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t arr_fuse_map_0 = {0}; _fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t a2f_0 = 0; - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t __fold_result___1 = {0}; - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t v_2 = {0}; + _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t arr_fuse_map_1 = {0}; + _fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t a2f_1 = 0; _fx_LT2R9Ast__id_tN13K_form__dom_t new_idl_0 = 0; _fx_LN14K_form__kexp_t pbody_0 = 0; - _fx_LN14K_form__kexp_t v_3 = 0; + _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t arr_fuse_map_2 = {0}; + _fx_LN14K_form__kexp_t v_1 = 0; _fx_N14K_form__kexp_t new_body_0 = 0; int fx_status = 0; _fx_FPi2R9Ast__id_tR9Ast__id_t cmp_id_fp_0 = { _fx_M3AstFM6cmp_idi2RM4id_tRM4id_t, 0 }; FX_COPY_FP(&cmp_id_fp_0, &cmp_id_0); _fx_make_Rt6Map__t2R9Ast__id_tR9Ast__id_t(_fx_g21K_fuse_loops__Empty1_, &cmp_id_0, &v_0); - _fx_make_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_0, 0, &__fold_result___0); + _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_0, &arr_fuse_map_0); _fx_LT2R9Ast__id_tN13K_form__dom_t lst_0 = idl_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_N13K_form__dom_t dom_0 = {0}; - _fx_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t v_4 = {0}; - _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t arr_fuse_map_1 = {0}; - _fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t a2f_1 = 0; - _fx_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t v_5 = {0}; _fx_T2R9Ast__id_tN13K_form__dom_t* __pat___0 = &lst_0->hd; _fx_R9Ast__id_t i_0 = __pat___0->t0; _fx_copy_N13K_form__dom_t(&__pat___0->t1, &dom_0); - _fx_copy_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___0, &v_4); - _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_4.t0, &arr_fuse_map_1); - FX_COPY_PTR(v_4.t1, &a2f_1); if (dom_0.tag == 1) { - _fx_N14K_form__atom_t* v_6 = &dom_0.u.DomainElem; - if (v_6->tag == 1) { - _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_7 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_8 = {0}; - _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_9 = 0; - _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB v_10 = {0}; + _fx_N14K_form__atom_t* v_2 = &dom_0.u.DomainElem; + if (v_2->tag == 1) { + _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_3 = 0; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_4 = {0}; + _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_5 = 0; + _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB v_6 = {0}; _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t new_root_0 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_11 = {0}; - _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t arr_fuse_map_2 = {0}; - _fx_Nt11Map__tree_t2R9Ast__id_trR24K_fuse_loops__arr_info_t v_12 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_13 = {0}; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_7 = {0}; + _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t v_8 = {0}; + _fx_Nt11Map__tree_t2R9Ast__id_trR24K_fuse_loops__arr_info_t v_9 = 0; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_10 = {0}; _fx_Nt6option1rR24K_fuse_loops__arr_info_t result_0 = {0}; _fx_Nt11Map__tree_t2R9Ast__id_trR24K_fuse_loops__arr_info_t t_0 = 0; _fx_FPi2R9Ast__id_tR9Ast__id_t cmp_0 = {0}; - _fx_Nt6option1rR24K_fuse_loops__arr_info_t v_14 = {0}; - _fx_R9Ast__id_t* arr_0 = &v_6->u.AtomId; - FX_COPY_PTR(arr_fuse_map_1.root, &v_7); - FX_COPY_FP(&arr_fuse_map_1.cmp, &v_8); + _fx_Nt6option1rR24K_fuse_loops__arr_info_t v_11 = {0}; + _fx_R9Ast__id_t* arr_0 = &v_2->u.AtomId; + FX_COPY_PTR(arr_fuse_map_0.root, &v_3); + FX_COPY_FP(&arr_fuse_map_0.cmp, &v_4); FX_CALL( _fx_M12K_fuse_loopsFM12add_to_tree_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t4Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tR9Ast__id_tR9Ast__id_tFPi2R9Ast__id_tR9Ast__id_t( - v_7, arr_0, &i_0, &v_8, &v_9, 0), _fx_catch_5); - if ((v_9 != 0) + 1 == 2) { + v_3, arr_0, &i_0, &v_4, &v_5, 0), _fx_catch_5); + if ((v_5 != 0) + 1 == 2) { _fx_T5N12Map__color_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_tR9Ast__id_tR9Ast__id_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_t* - vcase_0 = &v_9->u.Node; + vcase_0 = &v_5->u.Node; if (vcase_0->t0.tag == 1) { - _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_15 = 0; + _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_12 = 0; FX_CALL( _fx_M12K_fuse_loopsFM4NodeNt11Map__tree_t2R9Ast__id_tR9Ast__id_t5N12Map__color_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_tR9Ast__id_tR9Ast__id_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_t( - &_fx_g19K_fuse_loops__Black, vcase_0->t1, &vcase_0->t2, &vcase_0->t3, vcase_0->t4, &v_15), _fx_catch_0); - _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_15, false, &v_10); + &_fx_g19K_fuse_loops__Black, vcase_0->t1, &vcase_0->t2, &vcase_0->t3, vcase_0->t4, &v_12), _fx_catch_0); + _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_12, false, &v_6); _fx_catch_0: ; - if (v_15) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_15); + if (v_12) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_12); } goto _fx_endmatch_0; } } - _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_9, true, &v_10); + _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_5, true, &v_6); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_5); - FX_COPY_PTR(v_10.t0, &new_root_0); - FX_COPY_FP(&arr_fuse_map_1.cmp, &v_11); - _fx_make_Rt6Map__t2R9Ast__id_tR9Ast__id_t(new_root_0, &v_11, &arr_fuse_map_2); - FX_COPY_PTR(arrs_to_fuse_0->root, &v_12); - FX_COPY_FP(&arrs_to_fuse_0->cmp, &v_13); - FX_COPY_PTR(v_12, &t_0); + FX_COPY_PTR(v_6.t0, &new_root_0); + FX_COPY_FP(&arr_fuse_map_0.cmp, &v_7); + _fx_make_Rt6Map__t2R9Ast__id_tR9Ast__id_t(new_root_0, &v_7, &v_8); + _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_0); + _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_8, &arr_fuse_map_0); + FX_COPY_PTR(arrs_to_fuse_0->root, &v_9); + FX_COPY_FP(&arrs_to_fuse_0->cmp, &v_10); + FX_COPY_PTR(v_9, &t_0); _fx_R9Ast__id_t xk_0 = *arr_0; - FX_COPY_FP(&v_13, &cmp_0); + FX_COPY_FP(&v_10, &cmp_0); for (;;) { _fx_Nt11Map__tree_t2R9Ast__id_trR24K_fuse_loops__arr_info_t t_1 = 0; _fx_FPi2R9Ast__id_tR9Ast__id_t cmp_1 = {0}; @@ -5176,166 +5104,125 @@ static int FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_5); } - _fx_copy_Nt6option1rR24K_fuse_loops__arr_info_t(&result_0, &v_14); - if (v_14.tag == 2) { - _fx_T2R9Ast__id_trR24K_fuse_loops__arr_info_t v_16 = {0}; - _fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t v_17 = 0; - _fx_make_T2R9Ast__id_trR24K_fuse_loops__arr_info_t(arr_0, v_14.u.Some, &v_16); - FX_CALL(_fx_cons_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_16, a2f_1, true, &v_17), _fx_catch_4); - _fx_make_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&arr_fuse_map_2, v_17, - &v_5); + _fx_copy_Nt6option1rR24K_fuse_loops__arr_info_t(&result_0, &v_11); + if (v_11.tag == 2) { + _fx_T2R9Ast__id_trR24K_fuse_loops__arr_info_t v_13 = {0}; + _fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t v_14 = 0; + _fx_make_T2R9Ast__id_trR24K_fuse_loops__arr_info_t(arr_0, v_11.u.Some, &v_13); + FX_CALL(_fx_cons_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_13, a2f_0, true, &v_14), _fx_catch_4); + _fx_free_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&a2f_0); + FX_COPY_PTR(v_14, &a2f_0); _fx_catch_4: ; - if (v_17) { - _fx_free_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_17); + if (v_14) { + _fx_free_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_14); } - _fx_free_T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_16); - } - else { - _fx_make_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&arr_fuse_map_2, a2f_1, - &v_5); + _fx_free_T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_13); } FX_CHECK_EXN(_fx_catch_5); _fx_catch_5: ; - _fx_free_Nt6option1rR24K_fuse_loops__arr_info_t(&v_14); + _fx_free_Nt6option1rR24K_fuse_loops__arr_info_t(&v_11); FX_FREE_FP(&cmp_0); if (t_0) { _fx_free_Nt11Map__tree_t2R9Ast__id_trR24K_fuse_loops__arr_info_t(&t_0); } _fx_free_Nt6option1rR24K_fuse_loops__arr_info_t(&result_0); - FX_FREE_FP(&v_13); - if (v_12) { - _fx_free_Nt11Map__tree_t2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_12); + FX_FREE_FP(&v_10); + if (v_9) { + _fx_free_Nt11Map__tree_t2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_9); } - _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_2); - FX_FREE_FP(&v_11); + _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_8); + FX_FREE_FP(&v_7); if (new_root_0) { _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&new_root_0); } - _fx_free_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(&v_10); - if (v_9) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_9); + _fx_free_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(&v_6); + if (v_5) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_5); } - FX_FREE_FP(&v_8); - if (v_7) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_7); + FX_FREE_FP(&v_4); + if (v_3) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_3); } goto _fx_endmatch_1; } } - _fx_make_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&arr_fuse_map_1, a2f_1, &v_5); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_6); - _fx_free_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___0); - _fx_copy_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_5, &__fold_result___0); _fx_catch_6: ; - _fx_free_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_5); - if (a2f_1) { - _fx_free_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&a2f_1); - } - _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_1); - _fx_free_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_4); _fx_free_N13K_form__dom_t(&dom_0); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___0, &v_1); - _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_1.t0, &arr_fuse_map_0); - FX_COPY_PTR(v_1.t1, &a2f_0); - _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(0, 0, &arr_fuse_map_0, - &__fold_result___1); + _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_0, &arr_fuse_map_1); + FX_COPY_PTR(a2f_0, &a2f_1); + _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_1, &arr_fuse_map_2); _fx_LT2R9Ast__id_tN13K_form__dom_t lst_1 = idl_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N13K_form__dom_t dom_1 = {0}; - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t v_18 = {0}; - _fx_LT2R9Ast__id_tN13K_form__dom_t new_idl_1 = 0; - _fx_LN14K_form__kexp_t pbody_1 = 0; - _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t arr_fuse_map_3 = {0}; - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t v_19 = {0}; _fx_T2R9Ast__id_tN13K_form__dom_t* __pat___1 = &lst_1->hd; _fx_R9Ast__id_t i_1 = __pat___1->t0; _fx_copy_N13K_form__dom_t(&__pat___1->t1, &dom_1); - _fx_copy_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&__fold_result___1, &v_18); - FX_COPY_PTR(v_18.t0, &new_idl_1); - FX_COPY_PTR(v_18.t1, &pbody_1); - _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_18.t2, &arr_fuse_map_3); if (dom_1.tag == 1) { - _fx_N14K_form__atom_t* v_20 = &dom_1.u.DomainElem; - if (v_20->tag == 1) { - _fx_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t __fold_result___2 = {0}; - _fx_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t __fold_result___3 = {0}; - _fx_R9Ast__id_t* arr_1 = &v_20->u.AtomId; - _fx_copy_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&_fx_g18K_fuse_loops__None, &__fold_result___2); - _fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t lst_2 = a2f_0; + _fx_N14K_form__atom_t* v_15 = &dom_1.u.DomainElem; + if (v_15->tag == 1) { + _fx_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t __fold_result___0 = {0}; + _fx_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t __fold_result___1 = {0}; + _fx_R9Ast__id_t* arr_1 = &v_15->u.AtomId; + _fx_copy_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&_fx_g18K_fuse_loops__None, &__fold_result___0); + _fx_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t lst_2 = a2f_1; for (; lst_2; lst_2 = lst_2->tl) { - _fx_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t v_21 = {0}; + _fx_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t v_16 = {0}; _fx_T2R9Ast__id_trR24K_fuse_loops__arr_info_t* __pat___2 = &lst_2->hd; _fx_R9Ast__id_t arr2_0 = __pat___2->t0; bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(arr_1, &arr2_0, &res_0, 0), _fx_catch_7); if (res_0) { _fx_M12K_fuse_loopsFM4SomeNt6option1T2R9Ast__id_trRM10arr_info_t1T2R9Ast__id_trRM10arr_info_t(__pat___2, - &v_21); - _fx_free_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___2); - _fx_copy_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_21, &__fold_result___2); + &v_16); + _fx_free_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___0); + _fx_copy_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_16, &__fold_result___0); FX_BREAK(_fx_catch_7); } _fx_catch_7: ; - _fx_free_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_21); + _fx_free_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_16); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_20); } - _fx_copy_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___2, &__fold_result___3); - if (__fold_result___3.tag == 2) { - _fx_R24K_fuse_loops__arr_info_t v_22 = {0}; - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t __fold_result___4 = {0}; + _fx_copy_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___0, &__fold_result___1); + if (__fold_result___1.tag == 2) { + _fx_R24K_fuse_loops__arr_info_t v_17 = {0}; _fx_LT2R9Ast__id_tN13K_form__dom_t arr_idl_0 = 0; - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t v_23 = {0}; - _fx_LT2R9Ast__id_tN13K_form__dom_t new_idl2_0 = 0; - _fx_LN14K_form__kexp_t pbody2_0 = 0; - _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t new_fuse_map_0 = {0}; _fx_N14K_form__ktyp_t t_2 = 0; - _fx_R16Ast__val_flags_t v_24 = {0}; - _fx_Nt6option1N14K_form__kexp_t v_25 = {0}; - _fx_LN14K_form__kexp_t pbody2_1 = 0; - _fx_copy_R24K_fuse_loops__arr_info_t(&__fold_result___3.u.Some.t1->data, &v_22); - _fx_N14K_form__kexp_t arr_body_0 = v_22.arr_body; - _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(new_idl_1, pbody_1, - &arr_fuse_map_3, &__fold_result___4); - FX_COPY_PTR(v_22.arr_idl, &arr_idl_0); + _fx_R16Ast__val_flags_t v_18 = {0}; + _fx_Nt6option1N14K_form__kexp_t v_19 = {0}; + _fx_LN14K_form__kexp_t v_20 = 0; + _fx_copy_R24K_fuse_loops__arr_info_t(&__fold_result___1.u.Some.t1->data, &v_17); + _fx_N14K_form__kexp_t arr_body_0 = v_17.arr_body; + FX_COPY_PTR(v_17.arr_idl, &arr_idl_0); _fx_LT2R9Ast__id_tN13K_form__dom_t lst_3 = arr_idl_0; for (; lst_3; lst_3 = lst_3->tl) { _fx_N13K_form__dom_t nested_dom_0 = {0}; - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t v_26 = {0}; - _fx_LT2R9Ast__id_tN13K_form__dom_t new_idl2_1 = 0; - _fx_LN14K_form__kexp_t pbody2_2 = 0; - _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t new_fuse_map_1 = {0}; - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t v_27 = {0}; _fx_T2R9Ast__id_tN13K_form__dom_t* __pat___3 = &lst_3->hd; _fx_R9Ast__id_t nested_i_0 = __pat___3->t0; _fx_copy_N13K_form__dom_t(&__pat___3->t1, &nested_dom_0); - _fx_copy_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t( - &__fold_result___4, &v_26); - FX_COPY_PTR(v_26.t0, &new_idl2_1); - FX_COPY_PTR(v_26.t1, &pbody2_2); - _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_26.t2, &new_fuse_map_1); if (nested_dom_0.tag == 1) { - _fx_N14K_form__atom_t* v_28 = &nested_dom_0.u.DomainElem; - if (v_28->tag == 1) { - _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_29 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_30 = {0}; + _fx_N14K_form__atom_t* v_21 = &nested_dom_0.u.DomainElem; + if (v_21->tag == 1) { + _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_22 = 0; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_23 = {0}; _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t t_3 = 0; _fx_FPi2R9Ast__id_tR9Ast__id_t cmp_2 = {0}; - _fx_R9Ast__id_t* nested_arr_0 = &v_28->u.AtomId; - FX_COPY_PTR(arr_fuse_map_3.root, &v_29); - FX_COPY_FP(&arr_fuse_map_3.cmp, &v_30); + _fx_R9Ast__id_t* nested_arr_0 = &v_21->u.AtomId; + FX_COPY_PTR(arr_fuse_map_2.root, &v_22); + FX_COPY_FP(&arr_fuse_map_2.cmp, &v_23); _fx_Nt6option1R9Ast__id_t result_2 = {0}; - FX_COPY_PTR(v_29, &t_3); + FX_COPY_PTR(v_22, &t_3); _fx_R9Ast__id_t xk_2 = *nested_arr_0; - FX_COPY_FP(&v_30, &cmp_2); + FX_COPY_FP(&v_23, &cmp_2); for (;;) { _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t t_4 = 0; _fx_FPi2R9Ast__id_tR9Ast__id_t cmp_3 = {0}; @@ -5385,109 +5272,111 @@ static int FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_14); } - _fx_Nt6option1R9Ast__id_t v_31 = result_2; - if (v_31.tag == 2) { + _fx_Nt6option1R9Ast__id_t v_24 = result_2; + if (v_24.tag == 2) { _fx_N14K_form__ktyp_t t_5 = 0; - _fx_R16Ast__val_flags_t v_32 = {0}; - _fx_N14K_form__atom_t v_33 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_34 = {0}; - _fx_N14K_form__kexp_t v_35 = 0; - _fx_Nt6option1N14K_form__kexp_t v_36 = {0}; - _fx_LN14K_form__kexp_t pbody2_3 = 0; - _fx_R9Ast__id_t* outer_i_0 = &v_31.u.Some; + _fx_R16Ast__val_flags_t v_25 = {0}; + _fx_N14K_form__atom_t v_26 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_27 = {0}; + _fx_N14K_form__kexp_t v_28 = 0; + _fx_Nt6option1N14K_form__kexp_t v_29 = {0}; + _fx_LN14K_form__kexp_t v_30 = 0; + _fx_R9Ast__id_t* outer_i_0 = &v_24.u.Some; FX_CALL( _fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(outer_i_0, loc_0, &t_5, 0), _fx_catch_11); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_32, 0), _fx_catch_11); - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(outer_i_0, &v_33); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_5, loc_0, &v_34); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_25, 0), _fx_catch_11); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(outer_i_0, &v_26); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_5, loc_0, &v_27); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_33, - &v_34, &v_35), _fx_catch_11); - _fx_M12K_fuse_loopsFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(v_35, &v_36); + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_26, + &v_27, &v_28), _fx_catch_11); + _fx_M12K_fuse_loopsFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(v_28, &v_29); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &nested_i_0, t_5, &v_32, &v_36, pbody2_2, loc_0, &pbody2_3, 0), _fx_catch_11); - _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t( - new_idl2_1, pbody2_3, &new_fuse_map_1, &v_27); + &nested_i_0, t_5, &v_25, &v_29, pbody_0, loc_0, &v_30, 0), _fx_catch_11); + _fx_free_LN14K_form__kexp_t(&pbody_0); + FX_COPY_PTR(v_30, &pbody_0); _fx_catch_11: ; - if (pbody2_3) { - _fx_free_LN14K_form__kexp_t(&pbody2_3); + if (v_30) { + _fx_free_LN14K_form__kexp_t(&v_30); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_36); - if (v_35) { - _fx_free_N14K_form__kexp_t(&v_35); + _fx_free_Nt6option1N14K_form__kexp_t(&v_29); + if (v_28) { + _fx_free_N14K_form__kexp_t(&v_28); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_34); - _fx_free_N14K_form__atom_t(&v_33); - _fx_free_R16Ast__val_flags_t(&v_32); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_27); + _fx_free_N14K_form__atom_t(&v_26); + _fx_free_R16Ast__val_flags_t(&v_25); if (t_5) { _fx_free_N14K_form__ktyp_t(&t_5); } } else { - _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_37 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_38 = {0}; - _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_39 = 0; - _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB v_40 = {0}; + _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_31 = 0; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_32 = {0}; + _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_33 = 0; + _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB v_34 = {0}; _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t new_root_1 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_41 = {0}; - _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t new_fuse_map_2 = {0}; - _fx_T2R9Ast__id_tN13K_form__dom_t v_42 = {0}; - _fx_LT2R9Ast__id_tN13K_form__dom_t v_43 = 0; - FX_COPY_PTR(new_fuse_map_1.root, &v_37); - FX_COPY_FP(&new_fuse_map_1.cmp, &v_38); + _fx_FPi2R9Ast__id_tR9Ast__id_t v_35 = {0}; + _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t v_36 = {0}; + _fx_T2R9Ast__id_tN13K_form__dom_t v_37 = {0}; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_38 = 0; + FX_COPY_PTR(arr_fuse_map_2.root, &v_31); + FX_COPY_FP(&arr_fuse_map_2.cmp, &v_32); FX_CALL( _fx_M12K_fuse_loopsFM12add_to_tree_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t4Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tR9Ast__id_tR9Ast__id_tFPi2R9Ast__id_tR9Ast__id_t( - v_37, nested_arr_0, &nested_i_0, &v_38, &v_39, 0), _fx_catch_13); - if ((v_39 != 0) + 1 == 2) { + v_31, nested_arr_0, &nested_i_0, &v_32, &v_33, 0), _fx_catch_13); + if ((v_33 != 0) + 1 == 2) { _fx_T5N12Map__color_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_tR9Ast__id_tR9Ast__id_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_t* - vcase_3 = &v_39->u.Node; + vcase_3 = &v_33->u.Node; if (vcase_3->t0.tag == 1) { - _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_44 = 0; + _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_39 = 0; FX_CALL( _fx_M12K_fuse_loopsFM4NodeNt11Map__tree_t2R9Ast__id_tR9Ast__id_t5N12Map__color_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_tR9Ast__id_tR9Ast__id_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_t( &_fx_g19K_fuse_loops__Black, vcase_3->t1, &vcase_3->t2, &vcase_3->t3, vcase_3->t4, - &v_44), _fx_catch_12); - _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_44, false, &v_40); + &v_39), _fx_catch_12); + _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_39, false, &v_34); _fx_catch_12: ; - if (v_44) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_44); + if (v_39) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_39); } goto _fx_endmatch_2; } } - _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_39, true, &v_40); + _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_33, true, &v_34); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_13); - FX_COPY_PTR(v_40.t0, &new_root_1); - FX_COPY_FP(&new_fuse_map_1.cmp, &v_41); - _fx_make_Rt6Map__t2R9Ast__id_tR9Ast__id_t(new_root_1, &v_41, &new_fuse_map_2); - _fx_make_T2R9Ast__id_tN13K_form__dom_t(&nested_i_0, &nested_dom_0, &v_42); - FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_42, new_idl2_1, true, &v_43), _fx_catch_13); - _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(v_43, - pbody2_2, &new_fuse_map_2, &v_27); + FX_COPY_PTR(v_34.t0, &new_root_1); + FX_COPY_FP(&arr_fuse_map_2.cmp, &v_35); + _fx_make_Rt6Map__t2R9Ast__id_tR9Ast__id_t(new_root_1, &v_35, &v_36); + _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_2); + _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_36, &arr_fuse_map_2); + _fx_make_T2R9Ast__id_tN13K_form__dom_t(&nested_i_0, &nested_dom_0, &v_37); + FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_37, new_idl_0, true, &v_38), _fx_catch_13); + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idl_0); + FX_COPY_PTR(v_38, &new_idl_0); _fx_catch_13: ; - if (v_43) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_43); + if (v_38) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_38); } - _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_42); - _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&new_fuse_map_2); - FX_FREE_FP(&v_41); + _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_37); + _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_36); + FX_FREE_FP(&v_35); if (new_root_1) { _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&new_root_1); } - _fx_free_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(&v_40); - if (v_39) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_39); + _fx_free_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(&v_34); + if (v_33) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_33); } - FX_FREE_FP(&v_38); - if (v_37) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_37); + FX_FREE_FP(&v_32); + if (v_31) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_31); } } FX_CHECK_EXN(_fx_catch_14); @@ -5497,213 +5386,175 @@ static int if (t_3) { _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&t_3); } - FX_FREE_FP(&v_30); - if (v_29) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_29); + FX_FREE_FP(&v_23); + if (v_22) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_22); } goto _fx_endmatch_3; } } - _fx_T2R9Ast__id_tN13K_form__dom_t v_45 = {0}; - _fx_LT2R9Ast__id_tN13K_form__dom_t v_46 = 0; - _fx_make_T2R9Ast__id_tN13K_form__dom_t(&nested_i_0, &nested_dom_0, &v_45); - FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_45, new_idl2_1, true, &v_46), _fx_catch_15); - _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(v_46, pbody2_2, - &new_fuse_map_1, &v_27); + _fx_T2R9Ast__id_tN13K_form__dom_t v_40 = {0}; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_41 = 0; + _fx_make_T2R9Ast__id_tN13K_form__dom_t(&nested_i_0, &nested_dom_0, &v_40); + FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_40, new_idl_0, true, &v_41), _fx_catch_15); + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idl_0); + FX_COPY_PTR(v_41, &new_idl_0); _fx_catch_15: ; - if (v_46) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_46); + if (v_41) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_41); } - _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_45); + _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_40); _fx_endmatch_3: ; FX_CHECK_EXN(_fx_catch_16); - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t( - &__fold_result___4); - _fx_copy_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&v_27, - &__fold_result___4); _fx_catch_16: ; - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&v_27); - _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&new_fuse_map_1); - if (pbody2_2) { - _fx_free_LN14K_form__kexp_t(&pbody2_2); - } - if (new_idl2_1) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idl2_1); - } - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&v_26); _fx_free_N13K_form__dom_t(&nested_dom_0); FX_CHECK_EXN(_fx_catch_17); } - _fx_copy_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&__fold_result___4, - &v_23); - FX_COPY_PTR(v_23.t0, &new_idl2_0); - FX_COPY_PTR(v_23.t1, &pbody2_0); - _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_23.t2, &new_fuse_map_0); FX_CALL(_fx_M6K_formFM12get_kexp_typN14K_form__ktyp_t1N14K_form__kexp_t(arr_body_0, &t_2, 0), _fx_catch_17); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_24, 0), _fx_catch_17); - _fx_M12K_fuse_loopsFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(arr_body_0, &v_25); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_18, 0), _fx_catch_17); + _fx_M12K_fuse_loopsFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(arr_body_0, &v_19); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &i_1, t_2, &v_24, &v_25, pbody2_0, loc_0, &pbody2_1, 0), _fx_catch_17); - _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(new_idl2_0, pbody2_1, - &new_fuse_map_0, &v_19); + &i_1, t_2, &v_18, &v_19, pbody_0, loc_0, &v_20, 0), _fx_catch_17); + _fx_free_LN14K_form__kexp_t(&pbody_0); + FX_COPY_PTR(v_20, &pbody_0); _fx_catch_17: ; - if (pbody2_1) { - _fx_free_LN14K_form__kexp_t(&pbody2_1); + if (v_20) { + _fx_free_LN14K_form__kexp_t(&v_20); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_25); - _fx_free_R16Ast__val_flags_t(&v_24); + _fx_free_Nt6option1N14K_form__kexp_t(&v_19); + _fx_free_R16Ast__val_flags_t(&v_18); if (t_2) { _fx_free_N14K_form__ktyp_t(&t_2); } - _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&new_fuse_map_0); - if (pbody2_0) { - _fx_free_LN14K_form__kexp_t(&pbody2_0); - } - if (new_idl2_0) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idl2_0); - } - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&v_23); if (arr_idl_0) { _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&arr_idl_0); } - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&__fold_result___4); - _fx_free_R24K_fuse_loops__arr_info_t(&v_22); + _fx_free_R24K_fuse_loops__arr_info_t(&v_17); } else { - _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_47 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_48 = {0}; - _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_49 = 0; - _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB v_50 = {0}; + _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_42 = 0; + _fx_FPi2R9Ast__id_tR9Ast__id_t v_43 = {0}; + _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_44 = 0; + _fx_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB v_45 = {0}; _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t new_root_2 = 0; - _fx_FPi2R9Ast__id_tR9Ast__id_t v_51 = {0}; - _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t arr_fuse_map_4 = {0}; - _fx_T2R9Ast__id_tN13K_form__dom_t v_52 = {0}; - _fx_LT2R9Ast__id_tN13K_form__dom_t v_53 = 0; - FX_COPY_PTR(arr_fuse_map_3.root, &v_47); - FX_COPY_FP(&arr_fuse_map_3.cmp, &v_48); + _fx_FPi2R9Ast__id_tR9Ast__id_t v_46 = {0}; + _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t v_47 = {0}; + _fx_T2R9Ast__id_tN13K_form__dom_t v_48 = {0}; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_49 = 0; + FX_COPY_PTR(arr_fuse_map_2.root, &v_42); + FX_COPY_FP(&arr_fuse_map_2.cmp, &v_43); FX_CALL( _fx_M12K_fuse_loopsFM12add_to_tree_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t4Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tR9Ast__id_tR9Ast__id_tFPi2R9Ast__id_tR9Ast__id_t( - v_47, arr_1, &i_1, &v_48, &v_49, 0), _fx_catch_19); - if ((v_49 != 0) + 1 == 2) { + v_42, arr_1, &i_1, &v_43, &v_44, 0), _fx_catch_19); + if ((v_44 != 0) + 1 == 2) { _fx_T5N12Map__color_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_tR9Ast__id_tR9Ast__id_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_t* - vcase_4 = &v_49->u.Node; + vcase_4 = &v_44->u.Node; if (vcase_4->t0.tag == 1) { - _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_54 = 0; + _fx_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t v_50 = 0; FX_CALL( _fx_M12K_fuse_loopsFM4NodeNt11Map__tree_t2R9Ast__id_tR9Ast__id_t5N12Map__color_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_tR9Ast__id_tR9Ast__id_tNt11Map__tree_t2R9Ast__id_tR9Ast__id_t( - &_fx_g19K_fuse_loops__Black, vcase_4->t1, &vcase_4->t2, &vcase_4->t3, vcase_4->t4, &v_54), + &_fx_g19K_fuse_loops__Black, vcase_4->t1, &vcase_4->t2, &vcase_4->t3, vcase_4->t4, &v_50), _fx_catch_18); - _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_54, false, &v_50); + _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_50, false, &v_45); _fx_catch_18: ; - if (v_54) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_54); + if (v_50) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_50); } goto _fx_endmatch_4; } } - _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_49, true, &v_50); + _fx_make_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(v_44, true, &v_45); _fx_endmatch_4: ; FX_CHECK_EXN(_fx_catch_19); - FX_COPY_PTR(v_50.t0, &new_root_2); - FX_COPY_FP(&arr_fuse_map_3.cmp, &v_51); - _fx_make_Rt6Map__t2R9Ast__id_tR9Ast__id_t(new_root_2, &v_51, &arr_fuse_map_4); - _fx_make_T2R9Ast__id_tN13K_form__dom_t(&i_1, &dom_1, &v_52); - FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_52, new_idl_1, true, &v_53), _fx_catch_19); - _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(v_53, pbody_1, - &arr_fuse_map_4, &v_19); + FX_COPY_PTR(v_45.t0, &new_root_2); + FX_COPY_FP(&arr_fuse_map_2.cmp, &v_46); + _fx_make_Rt6Map__t2R9Ast__id_tR9Ast__id_t(new_root_2, &v_46, &v_47); + _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_2); + _fx_copy_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_47, &arr_fuse_map_2); + _fx_make_T2R9Ast__id_tN13K_form__dom_t(&i_1, &dom_1, &v_48); + FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_48, new_idl_0, true, &v_49), _fx_catch_19); + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idl_0); + FX_COPY_PTR(v_49, &new_idl_0); _fx_catch_19: ; - if (v_53) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_53); + if (v_49) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_49); } - _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_52); - _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_4); - FX_FREE_FP(&v_51); + _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_48); + _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_47); + FX_FREE_FP(&v_46); if (new_root_2) { _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&new_root_2); } - _fx_free_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(&v_50); - if (v_49) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_49); + _fx_free_T2Nt11Map__tree_t2R9Ast__id_tR9Ast__id_tB(&v_45); + if (v_44) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_44); } - FX_FREE_FP(&v_48); - if (v_47) { - _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_47); + FX_FREE_FP(&v_43); + if (v_42) { + _fx_free_Nt11Map__tree_t2R9Ast__id_tR9Ast__id_t(&v_42); } } FX_CHECK_EXN(_fx_catch_20); _fx_catch_20: ; - _fx_free_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___3); - _fx_free_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___2); + _fx_free_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___1); + _fx_free_Nt6option1T2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___0); goto _fx_endmatch_5; } } - _fx_T2R9Ast__id_tN13K_form__dom_t v_55 = {0}; - _fx_LT2R9Ast__id_tN13K_form__dom_t v_56 = 0; - _fx_make_T2R9Ast__id_tN13K_form__dom_t(&i_1, &dom_1, &v_55); - FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_55, new_idl_1, true, &v_56), _fx_catch_21); - _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(v_56, pbody_1, - &arr_fuse_map_3, &v_19); + _fx_T2R9Ast__id_tN13K_form__dom_t v_51 = {0}; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_52 = 0; + _fx_make_T2R9Ast__id_tN13K_form__dom_t(&i_1, &dom_1, &v_51); + FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_51, new_idl_0, true, &v_52), _fx_catch_21); + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idl_0); + FX_COPY_PTR(v_52, &new_idl_0); _fx_catch_21: ; - if (v_56) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_56); + if (v_52) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_52); } - _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_55); + _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_51); _fx_endmatch_5: ; FX_CHECK_EXN(_fx_catch_22); - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&__fold_result___1); - _fx_copy_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&v_19, &__fold_result___1); _fx_catch_22: ; - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&v_19); - _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_3); - if (pbody_1) { - _fx_free_LN14K_form__kexp_t(&pbody_1); - } - if (new_idl_1) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idl_1); - } - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&v_18); _fx_free_N13K_form__dom_t(&dom_1); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&__fold_result___1, &v_2); - FX_COPY_PTR(v_2.t0, &new_idl_0); - FX_COPY_PTR(v_2.t1, &pbody_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(body_0, pbody_0, true, &v_3), _fx_cleanup); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_3, loc_0, &new_body_0, 0), + FX_CALL(_fx_cons_LN14K_form__kexp_t(body_0, pbody_0, true, &v_1), _fx_cleanup); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_1, loc_0, &new_body_0, 0), _fx_cleanup); _fx_make_T2LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_t(new_idl_0, new_body_0, fx_result); _fx_cleanup: ; FX_FREE_FP(&cmp_id_0); _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&v_0); - _fx_free_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&__fold_result___0); - _fx_free_T2Rt6Map__t2R9Ast__id_tR9Ast__id_tLT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&v_1); _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_0); if (a2f_0) { _fx_free_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&a2f_0); } - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&__fold_result___1); - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tRt6Map__t2R9Ast__id_tR9Ast__id_t(&v_2); + _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_1); + if (a2f_1) { + _fx_free_LT2R9Ast__id_trR24K_fuse_loops__arr_info_t(&a2f_1); + } if (new_idl_0) { _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idl_0); } if (pbody_0) { _fx_free_LN14K_form__kexp_t(&pbody_0); } - if (v_3) { - _fx_free_LN14K_form__kexp_t(&v_3); + _fx_free_Rt6Map__t2R9Ast__id_tR9Ast__id_t(&arr_fuse_map_2); + if (v_1) { + _fx_free_LN14K_form__kexp_t(&v_1); } if (new_body_0) { _fx_free_N14K_form__kexp_t(&new_body_0); @@ -5815,14 +5666,16 @@ static int _fx_M12K_fuse_loopsFM10fuse_kexp_N14K_form__kexp_t2N14K_form__kexp_tR _fx_copy_Nt6option1rR24K_fuse_loops__arr_info_t(&result_0, &v_5); if (v_5.tag == 2) { _fx_rR24K_fuse_loops__arr_info_t ainfo_0 = v_5.u.Some; - _fx_LT2R9Ast__id_tN13K_form__dom_t* v_6 = &ainfo_0->data.arr_idl; + _fx_R24K_fuse_loops__arr_info_t* v_6 = &ainfo_0->data; + _fx_LT2R9Ast__id_tN13K_form__dom_t* v_7 = &v_6->arr_idl; _fx_LT2R9Ast__id_tN13K_form__dom_t* idl_0 = &v_2->hd.t1; - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(v_6); - FX_COPY_PTR(*idl_0, v_6); - _fx_N14K_form__kexp_t* v_7 = &ainfo_0->data.arr_body; + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(v_7); + FX_COPY_PTR(*idl_0, v_7); + _fx_R24K_fuse_loops__arr_info_t* v_8 = &ainfo_0->data; + _fx_N14K_form__kexp_t* v_9 = &v_8->arr_body; _fx_N14K_form__kexp_t* body_0 = &vcase_2->t1; - _fx_free_N14K_form__kexp_t(v_7); - FX_COPY_PTR(*body_0, v_7); + _fx_free_N14K_form__kexp_t(v_9); + FX_COPY_PTR(*body_0, v_9); FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&vcase_1->t2, fx_result), _fx_catch_4); _fx_catch_4: ; @@ -5852,43 +5705,42 @@ static int _fx_M12K_fuse_loopsFM10fuse_kexp_N14K_form__kexp_t2N14K_form__kexp_tR _fx_T5LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tR10Ast__loc_t* vcase_4 = &e_1->u.KExpFor; if (vcase_4->t1 == 0) { - _fx_T2LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_t v_8 = {0}; + _fx_T2LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_t v_10 = {0}; _fx_LT2R9Ast__id_tN13K_form__dom_t new_idl_0 = 0; _fx_N14K_form__kexp_t new_body_0 = 0; - _fx_LT2R9Ast__id_tN13K_form__dom_t __fold_result___0 = 0; - _fx_LT2R9Ast__id_tN13K_form__dom_t v_9 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t res_0 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_11 = 0; _fx_R10Ast__loc_t* loc_0 = &vcase_4->t4; FX_CALL( _fx_M12K_fuse_loopsFM8fuse_forT2LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_t4LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_tR10Ast__loc_tRt6Map__t2R9Ast__id_trRM10arr_info_t( - vcase_4->t0, vcase_4->t2, loc_0, arrs_to_fuse_0, &v_8, 0), _fx_catch_7); - FX_COPY_PTR(v_8.t0, &new_idl_0); - FX_COPY_PTR(v_8.t1, &new_body_0); + vcase_4->t0, vcase_4->t2, loc_0, arrs_to_fuse_0, &v_10, 0), _fx_catch_7); + FX_COPY_PTR(v_10.t0, &new_idl_0); + FX_COPY_PTR(v_10.t1, &new_body_0); _fx_LT2R9Ast__id_tN13K_form__dom_t lst_0 = new_idl_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2R9Ast__id_tN13K_form__dom_t r_1 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_12 = 0; _fx_T2R9Ast__id_tN13K_form__dom_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_1); - FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(a_0, r_1, false, &r_1), _fx_catch_6); - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&__fold_result___0); - FX_COPY_PTR(r_1, &__fold_result___0); + FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(a_0, res_0, true, &v_12), _fx_catch_6); + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&res_0); + FX_COPY_PTR(v_12, &res_0); _fx_catch_6: ; - if (r_1) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&r_1); + if (v_12) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_12); } FX_CHECK_EXN(_fx_catch_7); } - FX_COPY_PTR(__fold_result___0, &v_9); + FX_COPY_PTR(res_0, &v_11); FX_CALL( _fx_M6K_formFM7KExpForN14K_form__kexp_t5LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tR10Ast__loc_t( - v_9, 0, new_body_0, &vcase_4->t3, loc_0, fx_result), _fx_catch_7); + v_11, 0, new_body_0, &vcase_4->t3, loc_0, fx_result), _fx_catch_7); _fx_catch_7: ; - if (v_9) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_9); + if (v_11) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_11); } - if (__fold_result___0) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&res_0); } if (new_body_0) { _fx_free_N14K_form__kexp_t(&new_body_0); @@ -5896,68 +5748,67 @@ static int _fx_M12K_fuse_loopsFM10fuse_kexp_N14K_form__kexp_t2N14K_form__kexp_tR if (new_idl_0) { _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idl_0); } - _fx_free_T2LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_t(&v_8); + _fx_free_T2LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_t(&v_10); goto _fx_endmatch_0; } } if (tag_0 == 26) { _fx_T4LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_5 = &e_1->u.KExpMap; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_10 = vcase_5->t0; - if (v_10 != 0) { - if (v_10->tl == 0) { - _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* v_11 = &v_10->hd; - if (v_11->t2 == 0) { - _fx_T2LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_t v_12 = {0}; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_13 = vcase_5->t0; + if (v_13 != 0) { + if (v_13->tl == 0) { + _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* v_14 = &v_13->hd; + if (v_14->t2 == 0) { + _fx_T2LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_t v_15 = {0}; _fx_LT2R9Ast__id_tN13K_form__dom_t new_idl_1 = 0; _fx_N14K_form__kexp_t new_body_1 = 0; - _fx_LT2R9Ast__id_tN13K_form__dom_t __fold_result___1 = 0; - _fx_LT2R9Ast__id_tN13K_form__dom_t v_13 = 0; - _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_14 = {0}; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_15 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_16 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t* v_17 = &vcase_5->t3; - _fx_R10Ast__loc_t* loc_1 = &v_17->t1; + _fx_LT2R9Ast__id_tN13K_form__dom_t res_1 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_16 = 0; + _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_17 = {0}; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_18 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_19 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t* v_20 = &vcase_5->t3; + _fx_R10Ast__loc_t* loc_1 = &v_20->t1; FX_CALL( _fx_M12K_fuse_loopsFM8fuse_forT2LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_t4LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_tR10Ast__loc_tRt6Map__t2R9Ast__id_trRM10arr_info_t( - v_11->t1, vcase_5->t1, loc_1, arrs_to_fuse_0, &v_12, 0), _fx_catch_9); - FX_COPY_PTR(v_12.t0, &new_idl_1); - FX_COPY_PTR(v_12.t1, &new_body_1); + v_14->t1, vcase_5->t1, loc_1, arrs_to_fuse_0, &v_15, 0), _fx_catch_9); + FX_COPY_PTR(v_15.t0, &new_idl_1); + FX_COPY_PTR(v_15.t1, &new_body_1); _fx_LT2R9Ast__id_tN13K_form__dom_t lst_1 = new_idl_1; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LT2R9Ast__id_tN13K_form__dom_t r_2 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_21 = 0; _fx_T2R9Ast__id_tN13K_form__dom_t* a_1 = &lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_2); - FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(a_1, r_2, false, &r_2), _fx_catch_8); - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&__fold_result___1); - FX_COPY_PTR(r_2, &__fold_result___1); + FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(a_1, res_1, true, &v_21), _fx_catch_8); + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&res_1); + FX_COPY_PTR(v_21, &res_1); _fx_catch_8: ; - if (r_2) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&r_2); + if (v_21) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_21); } FX_CHECK_EXN(_fx_catch_9); } - FX_COPY_PTR(__fold_result___1, &v_13); - _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(v_11->t0, v_13, 0, &v_14); - FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_14, 0, true, &v_15), + FX_COPY_PTR(res_1, &v_16); + _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(v_14->t0, v_16, 0, &v_17); + FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_17, 0, true, &v_18), _fx_catch_9); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(v_17->t0, loc_1, &v_16); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(v_20->t0, loc_1, &v_19); FX_CALL( _fx_M6K_formFM7KExpMapN14K_form__kexp_t4LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tT2N14K_form__ktyp_tR10Ast__loc_t( - v_15, new_body_1, &vcase_5->t2, &v_16, fx_result), _fx_catch_9); + v_18, new_body_1, &vcase_5->t2, &v_19, fx_result), _fx_catch_9); _fx_catch_9: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_16); - if (v_15) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_15); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_19); + if (v_18) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_18); } - _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_14); - if (v_13) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_13); + _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_17); + if (v_16) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_16); } - if (__fold_result___1) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&__fold_result___1); + if (res_1) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&res_1); } if (new_body_1) { _fx_free_N14K_form__kexp_t(&new_body_1); @@ -5965,7 +5816,7 @@ static int _fx_M12K_fuse_loopsFM10fuse_kexp_N14K_form__kexp_t2N14K_form__kexp_tR if (new_idl_1) { _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idl_1); } - _fx_free_T2LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_t(&v_12); + _fx_free_T2LT2R9Ast__id_tN13K_form__dom_tN14K_form__kexp_t(&v_15); goto _fx_endmatch_0; } } diff --git a/compiler/bootstrap/K_inline.c b/compiler/bootstrap/K_inline.c index c721091b..a4ae5b7b 100644 --- a/compiler/bootstrap/K_inline.c +++ b/compiler/bootstrap/K_inline.c @@ -4505,12 +4505,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4555,12 +4556,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4605,12 +4607,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4664,28 +4667,29 @@ FX_EXTERN_C int _fx_M8K_inlineFM4growv2Nt10Hashmap__t2R9Ast__id_trRM11func_info_ for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, ht_table_0, j_0)->hv < - 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M8K_inlineFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_trRM11func_info_tRt20Hashmap__hashentry_t2R9Ast__id_trRM11func_info_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4727,27 +4731,29 @@ FX_EXTERN_C int _fx_M8K_inlineFM4growv2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M8K_inlineFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_tRt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4790,28 +4796,29 @@ FX_EXTERN_C int _fx_M8K_inlineFM4growv2Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1 for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0)->hv < - 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M8K_inlineFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tRt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4831,14 +4838,14 @@ FX_EXTERN_C int _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_trRM11fu { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4857,32 +4864,11 @@ FX_EXTERN_C int _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_trRM11fu bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4918,14 +4904,14 @@ FX_EXTERN_C int _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_fo { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4944,32 +4930,11 @@ FX_EXTERN_C int _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_fo bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5005,14 +4970,14 @@ FX_EXTERN_C int _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tNt10Has { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -5031,32 +4996,11 @@ FX_EXTERN_C int _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tNt10Has bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5096,14 +5040,14 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -5131,32 +5075,11 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5172,14 +5095,14 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -5192,28 +5115,29 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5224,12 +5148,13 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t FX_COPY_PTR(self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t(hv_0, k_0, v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5260,14 +5185,14 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -5295,32 +5220,11 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5336,14 +5240,14 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -5356,28 +5260,29 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5388,12 +5293,13 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t _fx_copy_N14K_form__atom_t(&self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(hv_0, k_0, &v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5424,14 +5330,14 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -5459,32 +5365,11 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5500,14 +5385,14 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -5520,28 +5405,29 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5552,12 +5438,13 @@ FX_EXTERN_C int _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_t FX_COPY_PTR(self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(hv_0, k_0, v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5600,9 +5487,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -5651,26 +5541,28 @@ FX_EXTERN_C int _fx_M8K_inlineFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M8K_inlineFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -5707,32 +5599,11 @@ FX_EXTERN_C int _fx_M8K_inlineFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__ bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5794,32 +5665,11 @@ FX_EXTERN_C int _fx_M8K_inlineFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5835,14 +5685,14 @@ FX_EXTERN_C int _fx_M8K_inlineFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -5854,27 +5704,29 @@ FX_EXTERN_C int _fx_M8K_inlineFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5882,11 +5734,14 @@ FX_EXTERN_C int _fx_M8K_inlineFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5913,10 +5768,13 @@ FX_EXTERN_C int _fx_M8K_inlineFM3appv2Nt10Hashset__t1R9Ast__id_tFPv1R9Ast__id_t( int_ v_0 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_0; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_1 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_1->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_1 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; - FX_CALL(f_0->fp(&v_1, f_0->fcv), _fx_catch_0); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_3 = v_2->key; + FX_CALL(f_0->fp(&v_3, f_0->fcv), _fx_catch_0); } _fx_catch_0: ; @@ -5960,7 +5818,7 @@ FX_EXTERN_C int _fx_M8K_inlineFM20find_recursive_funcsLN14K_form__kexp_t2iLN14K_ fx_arr_t table_0 = {0}; _fx_LR9Ast__id_t res_0 = 0; _fx_LR9Ast__id_t v_4 = 0; - _fx_LR9Ast__id_t __fold_result___0 = 0; + _fx_LR9Ast__id_t res_1 = 0; _fx_LR9Ast__id_t all_funcs_0 = 0; int fx_status = 0; FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(1, &idset0_0, 0), _fx_cleanup); @@ -6037,74 +5895,74 @@ FX_EXTERN_C int _fx_M8K_inlineFM20find_recursive_funcsLN14K_form__kexp_t2iLN14K_ FX_COPY_PTR(res_0, &v_4); _fx_LR9Ast__id_t lst_1 = v_4; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LR9Ast__id_t r_0 = 0; + _fx_LR9Ast__id_t v_8 = 0; _fx_R9Ast__id_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_2); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LR9Ast__id_t(a_0, res_1, true, &v_8), _fx_catch_2); + FX_FREE_LIST_SIMPLE(&res_1); + FX_COPY_PTR(v_8, &res_1); _fx_catch_2: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_8); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &all_funcs_0); - int_ res_1; + FX_COPY_PTR(res_1, &all_funcs_0); + int_ res_2; FX_CALL( _fx_M3AstFM17calc_sets_closurei3iLRM4id_tNt10Hashmap__t2RM4id_tNt10Hashset__t1RM4id_t(10, all_funcs_0, *all_called_0, - &res_1, 0), _fx_cleanup); + &res_2, 0), _fx_cleanup); _fx_LR9Ast__id_t lst_2 = all_funcs_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_N15K_form__kinfo_t v_8 = {0}; - _fx_Nt6option1Nt10Hashset__t1R9Ast__id_t v_9 = {0}; - _fx_Nt10Hashset__t1R9Ast__id_t v_10 = 0; + _fx_N15K_form__kinfo_t v_9 = {0}; + _fx_Nt6option1Nt10Hashset__t1R9Ast__id_t v_10 = {0}; + _fx_Nt10Hashset__t1R9Ast__id_t v_11 = 0; _fx_R9Ast__id_t* f_0 = &lst_2->hd; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(f_0, &_fx_g10Ast__noloc, &v_8, 0), _fx_catch_4); - _fx_Ta2i v_11; + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(f_0, &_fx_g10Ast__noloc, &v_9, 0), _fx_catch_4); + _fx_Ta2i v_12; FX_CALL( _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tR9Ast__id_t(*all_called_0, f_0, - &v_11, 0), _fx_catch_4); - int_ j_1 = v_11.t1; + &v_12, 0), _fx_catch_4); + int_ j_1 = v_12.t1; if (j_1 >= 0) { FX_CHKIDX(FX_CHKIDX1((*all_called_0)->u.t.t5, 0, j_1), _fx_catch_4); - FX_COPY_PTR( - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_called_0)->u.t.t5, j_1)->data, - &v_10); - _fx_M8K_inlineFM4SomeNt6option1Nt10Hashset__t1R9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(v_10, &v_9); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_13 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_called_0)->u.t.t5, j_1); + FX_COPY_PTR(v_13->data, &v_11); + _fx_M8K_inlineFM4SomeNt6option1Nt10Hashset__t1R9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(v_11, &v_10); } else { - _fx_copy_Nt6option1Nt10Hashset__t1R9Ast__id_t(&_fx_g16K_inline__None5_, &v_9); - } - if (v_9.tag == 2) { - if (v_8.tag == 3) { - _fx_R17K_form__kdeffun_t v_12 = {0}; - _fx_rR17K_form__kdeffun_t kf_0 = v_8.u.KFun; - _fx_R16Ast__fun_flags_t kf_flags_0 = kf_0->data.kf_flags; - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___1 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___1 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___1 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_2 * 1099511628211ULL; - _fx_Ta2i v_13; + _fx_copy_Nt6option1Nt10Hashset__t1R9Ast__id_t(&_fx_g16K_inline__None5_, &v_10); + } + if (v_10.tag == 2) { + if (v_9.tag == 3) { + _fx_R17K_form__kdeffun_t v_14 = {0}; + _fx_rR17K_form__kdeffun_t kf_0 = v_9.u.KFun; + _fx_R17K_form__kdeffun_t* v_15 = &kf_0->data; + _fx_R16Ast__fun_flags_t kf_flags_0 = v_15->kf_flags; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + _fx_Ta2i v_16; FX_CALL( - _fx_M8K_inlineFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(v_9.u.Some, f_0, - __fold_result___1 & 9223372036854775807ULL, &v_13, 0), _fx_catch_3); + _fx_M8K_inlineFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(v_10.u.Some, f_0, + h_0 & 9223372036854775807ULL, &v_16, 0), _fx_catch_3); _fx_R16Ast__fun_flags_t flags_0 = { kf_flags_0.fun_flag_pure, kf_flags_0.fun_flag_ccode, kf_flags_0.fun_flag_have_keywords, kf_flags_0.fun_flag_inline, kf_flags_0.fun_flag_nothrow, kf_flags_0.fun_flag_really_nothrow, kf_flags_0.fun_flag_private, kf_flags_0.fun_flag_ctor, kf_flags_0.fun_flag_method_of, - kf_flags_0.fun_flag_uses_fv, v_13.t1 >= 0, kf_flags_0.fun_flag_instance }; - _fx_R17K_form__kdeffun_t* v_14 = &kf_0->data; - _fx_make_R17K_form__kdeffun_t(&v_14->kf_name, &v_14->kf_cname, v_14->kf_params, v_14->kf_rt, v_14->kf_body, - &flags_0, &v_14->kf_closure, v_14->kf_scope, &v_14->kf_loc, &v_12); - _fx_R17K_form__kdeffun_t* v_15 = &kf_0->data; - _fx_free_R17K_form__kdeffun_t(v_15); - _fx_copy_R17K_form__kdeffun_t(&v_12, v_15); + kf_flags_0.fun_flag_uses_fv, v_16.t1 >= 0, kf_flags_0.fun_flag_instance }; + _fx_R17K_form__kdeffun_t* v_17 = &kf_0->data; + _fx_make_R17K_form__kdeffun_t(&v_17->kf_name, &v_17->kf_cname, v_17->kf_params, v_17->kf_rt, v_17->kf_body, + &flags_0, &v_17->kf_closure, v_17->kf_scope, &v_17->kf_loc, &v_14); + _fx_R17K_form__kdeffun_t* v_18 = &kf_0->data; + _fx_free_R17K_form__kdeffun_t(v_18); + _fx_copy_R17K_form__kdeffun_t(&v_14, v_18); _fx_catch_3: ; - _fx_free_R17K_form__kdeffun_t(&v_12); + _fx_free_R17K_form__kdeffun_t(&v_14); goto _fx_endmatch_0; } } @@ -6113,11 +5971,11 @@ FX_EXTERN_C int _fx_M8K_inlineFM20find_recursive_funcsLN14K_form__kexp_t2iLN14K_ FX_CHECK_EXN(_fx_catch_4); _fx_catch_4: ; - if (v_10) { - _fx_free_Nt10Hashset__t1R9Ast__id_t(&v_10); + if (v_11) { + _fx_free_Nt10Hashset__t1R9Ast__id_t(&v_11); } - _fx_free_Nt6option1Nt10Hashset__t1R9Ast__id_t(&v_9); - _fx_free_N15K_form__kinfo_t(&v_8); + _fx_free_Nt6option1Nt10Hashset__t1R9Ast__id_t(&v_10); + _fx_free_N15K_form__kinfo_t(&v_9); FX_CHECK_EXN(_fx_cleanup); } FX_COPY_PTR(top_code_0, fx_result); @@ -6153,7 +6011,7 @@ _fx_cleanup: ; FX_FREE_ARR(&table_0); FX_FREE_LIST_SIMPLE(&res_0); FX_FREE_LIST_SIMPLE(&v_4); - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_1); FX_FREE_LIST_SIMPLE(&all_funcs_0); return fx_status; } @@ -6209,10 +6067,11 @@ static int _fx_M8K_inlineFM17fold_recfun_kexp_v2N14K_form__kexp_tR22K_form__k_fo _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tR9Ast__id_t(*all_called_0, &v_0.kf_name, &idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1((*all_called_0)->u.t.t5, 0, idx_0), _fx_catch_0); - _fx_Nt10Hashset__t1R9Ast__id_t* v_8 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_called_0)->u.t.t5, idx_0)->data; - _fx_free_Nt10Hashset__t1R9Ast__id_t(v_8); - FX_COPY_PTR(*curr_called_0, v_8); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, (*all_called_0)->u.t.t5, idx_0); + _fx_Nt10Hashset__t1R9Ast__id_t* v_9 = &v_8->data; + _fx_free_Nt10Hashset__t1R9Ast__id_t(v_9); + FX_COPY_PTR(*curr_called_0, v_9); _fx_free_Nt10Hashset__t1R9Ast__id_t(curr_called_0); FX_COPY_PTR(saved_called_0, curr_called_0); @@ -6230,35 +6089,35 @@ static int _fx_M8K_inlineFM17fold_recfun_kexp_v2N14K_form__kexp_tR22K_form__k_fo _fx_free_R17K_form__kdeffun_t(&v_0); } else if (tag_0 == 12) { - _fx_N15K_form__kinfo_t v_9 = {0}; + _fx_N15K_form__kinfo_t v_10 = {0}; _fx_T3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_0 = &e_0->u.KExpCall; _fx_R9Ast__id_t* f_0 = &vcase_0->t0; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(f_0, &vcase_0->t2.t1, &v_9, 0), _fx_catch_2); - if (v_9.tag == 3) { - _fx_R17K_form__kdeffun_t v_10 = {0}; - _fx_copy_R17K_form__kdeffun_t(&v_9.u.KFun->data, &v_10); - int_ v_11; - FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(v_10.kf_scope, &v_11, 0), _fx_catch_1); - if (v_11 == *km_idx_0) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(f_0, &vcase_0->t2.t1, &v_10, 0), _fx_catch_2); + if (v_10.tag == 3) { + _fx_R17K_form__kdeffun_t v_11 = {0}; + _fx_copy_R17K_form__kdeffun_t(&v_10.u.KFun->data, &v_11); + int_ v_12; + FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(v_11.kf_scope, &v_12, 0), _fx_catch_1); + if (v_12 == *km_idx_0) { + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)f_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)f_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)f_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( - _fx_M8K_inlineFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*curr_called_0, f_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_catch_1); + _fx_M8K_inlineFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*curr_called_0, f_0, h_0 & 9223372036854775807ULL, + 0), _fx_catch_1); } _fx_catch_1: ; - _fx_free_R17K_form__kdeffun_t(&v_10); + _fx_free_R17K_form__kdeffun_t(&v_11); } FX_CHECK_EXN(_fx_catch_2); _fx_catch_2: ; - _fx_free_N15K_form__kinfo_t(&v_9); + _fx_free_N15K_form__kinfo_t(&v_10); } else { FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(e_0, callb_0, 0), _fx_catch_3); _fx_catch_3: ; @@ -6345,6 +6204,7 @@ FX_EXTERN_C int _fx_M8K_inlineFM13calc_exp_sizei1N14K_form__kexp_t( _fx_R22K_form__k_fold_callb_t size_callb_0 = {0}; int fx_status = 0; FX_CALL(_fx_make_ri(0, &sz_ref_0), _fx_cleanup); + int_* sz_0 = &sz_ref_0->data; _fx_M8K_inlineFM7make_fpFPv2N14K_form__kexp_tR22K_form__k_fold_callb_t1ri(sz_ref_0, &fold_size_kexp__0); _fx_FPv3N14K_form__ktyp_tR10Ast__loc_tR22K_form__k_fold_callb_t fold_size_ktyp__fp_0 = { _fx_M8K_inlineFM15fold_size_ktyp_v3N14K_form__ktyp_tR10Ast__loc_tR22K_form__k_fold_callb_t, 0 }; @@ -6357,7 +6217,7 @@ FX_EXTERN_C int _fx_M8K_inlineFM13calc_exp_sizei1N14K_form__kexp_t( &fold_size_kexp__0, &v_1), _fx_cleanup); _fx_make_R22K_form__k_fold_callb_t(v_0, v_1, _fx_g16K_inline__None1_, &size_callb_0); FX_CALL(fold_size_kexp__0.fp(e_0, &size_callb_0, fold_size_kexp__0.fcv), _fx_cleanup); - *fx_result = sz_ref_0->data; + *fx_result = *sz_0; _fx_cleanup: ; FX_FREE_REF_SIMPLE(&sz_ref_0); @@ -6480,12 +6340,11 @@ static int _fx_M8K_inlineFM15fold_size_kexp_v2N14K_form__kexp_tR22K_form__k_fold dsz_0 = 1; } else { - int_ __fold_result___0 = 0; + int_ s_0 = 0; FX_COPY_PTR(vcase_1->t1, &args_0); _fx_LLT2BN14K_form__atom_t lst_0 = args_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_LT2BN14K_form__atom_t al_0 = lst_0->hd; - int_ __fold_result___1 = __fold_result___0; _fx_LT2BN14K_form__atom_t lst_1 = al_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_T2BN14K_form__atom_t* __pat___0 = &lst_1->hd; @@ -6496,14 +6355,13 @@ static int _fx_M8K_inlineFM15fold_size_kexp_v2N14K_form__kexp_tR22K_form__k_fold else { t_0 = 1; } - __fold_result___1 = __fold_result___1 + t_0; + s_0 = s_0 + t_0; } - __fold_result___0 = __fold_result___1; _fx_catch_0: ; FX_CHECK_EXN(_fx_catch_1); } - dsz_0 = __fold_result___0; + dsz_0 = s_0; } _fx_catch_1: ; @@ -6514,7 +6372,7 @@ static int _fx_M8K_inlineFM15fold_size_kexp_v2N14K_form__kexp_tR22K_form__k_fold } if (tag_0 == 18) { _fx_LT2BN14K_form__atom_t args_1 = 0; - int_ __fold_result___2 = 0; + int_ s_1 = 0; FX_COPY_PTR(e_0->u.KExpMkVector.t0, &args_1); _fx_LT2BN14K_form__atom_t lst_2 = args_1; for (; lst_2; lst_2 = lst_2->tl) { @@ -6526,9 +6384,9 @@ static int _fx_M8K_inlineFM15fold_size_kexp_v2N14K_form__kexp_tR22K_form__k_fold else { t_1 = 1; } - __fold_result___2 = __fold_result___2 + t_1; + s_1 = s_1 + t_1; } - dsz_0 = __fold_result___2; + dsz_0 = s_1; _fx_catch_2: ; if (args_1) { @@ -6573,7 +6431,7 @@ static int _fx_M8K_inlineFM15fold_size_kexp_v2N14K_form__kexp_tR22K_form__k_fold } if (tag_0 == 22) { _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t cases_0 = 0; - int_ __fold_result___3 = 0; + int_ total_0 = 0; FX_COPY_PTR(e_0->u.KExpMatch.t0, &cases_0); _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t lst_3 = cases_0; for (; lst_3; lst_3 = lst_3->tl) { @@ -6581,12 +6439,12 @@ static int _fx_M8K_inlineFM15fold_size_kexp_v2N14K_form__kexp_tR22K_form__k_fold _fx_T2LN14K_form__kexp_tN14K_form__kexp_t* __pat___2 = &lst_3->hd; FX_COPY_PTR(__pat___2->t0, &checks_0); int_ v_2 = _fx_M8K_inlineFM6lengthi1LN14K_form__kexp_t(checks_0, 0); - __fold_result___3 = __fold_result___3 + v_2; + total_0 = total_0 + v_2; if (checks_0) { _fx_free_LN14K_form__kexp_t(&checks_0); } } - dsz_0 = __fold_result___3; + dsz_0 = total_0; _fx_catch_3: ; if (cases_0) { @@ -6599,7 +6457,7 @@ static int _fx_M8K_inlineFM15fold_size_kexp_v2N14K_form__kexp_tR22K_form__k_fold } if (tag_0 == 26) { _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t e_idl_l_0 = 0; - int_ __fold_result___4 = 0; + int_ total_1 = 0; FX_COPY_PTR(e_0->u.KExpMap.t0, &e_idl_l_0); _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t lst_4 = e_idl_l_0; for (; lst_4; lst_4 = lst_4->tl) { @@ -6607,12 +6465,12 @@ static int _fx_M8K_inlineFM15fold_size_kexp_v2N14K_form__kexp_tR22K_form__k_fold _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* __pat___3 = &lst_4->hd; FX_COPY_PTR(__pat___3->t1, &idl_0); int_ v_3 = _fx_M8K_inlineFM6lengthi1LT2R9Ast__id_tN13K_form__dom_t(idl_0, 0); - __fold_result___4 = 10 + __fold_result___4 + v_3; + total_1 = total_1 + (10 + v_3); if (idl_0) { _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&idl_0); } } - dsz_0 = __fold_result___4; + dsz_0 = total_1; _fx_catch_4: ; if (e_idl_l_0) { @@ -6759,8 +6617,9 @@ static int _fx_M8K_inlineFM11subst_atom_N14K_form__atom_t3N14K_form__atom_tR10As int_ j_0 = v_2.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_0), _fx_catch_0); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0); + _fx_copy_N14K_form__atom_t(&v_3->data, &v_1); _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_1, &v_0); } else { @@ -6815,8 +6674,9 @@ static int _fx_M8K_inlineFM9subst_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_trNt10Ha int_ j_0 = v_2.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_0), _fx_cleanup); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0); + _fx_copy_N14K_form__atom_t(&v_3->data, &v_1); _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_1, &v_0); } else { @@ -6824,29 +6684,29 @@ static int _fx_M8K_inlineFM9subst_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_trNt10Ha } int tag_0 = v_0.tag; if (tag_0 == 2) { - _fx_N14K_form__atom_t* v_3 = &v_0.u.Some; - if (v_3->tag == 1) { - *fx_result = v_3->u.AtomId; goto _fx_endmatch_0; + _fx_N14K_form__atom_t* v_4 = &v_0.u.Some; + if (v_4->tag == 1) { + *fx_result = v_4->u.AtomId; goto _fx_endmatch_0; } } if (tag_0 == 2) { - fx_str_t v_4 = {0}; fx_str_t v_5 = {0}; - fx_exn_t v_6 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_4, 0), _fx_catch_0); + fx_str_t v_6 = {0}; + fx_exn_t v_7 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_5, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_1 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_0[] = { slit_0, v_4, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_5), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_5, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_6), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_5, &v_6, 0), _fx_catch_0); - FX_THROW(&v_6, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_6, &v_7, 0), _fx_catch_0); + FX_THROW(&v_7, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_6); + fx_free_exn(&v_7); + FX_FREE_STR(&v_6); FX_FREE_STR(&v_5); - FX_FREE_STR(&v_4); goto _fx_endmatch_0; } *fx_result = *i_0; @@ -6885,8 +6745,9 @@ static int int_ j_0 = v_4.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_0), _fx_catch_1); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0)->data, &v_2); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_5 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0); + _fx_copy_N14K_form__atom_t(&v_5->data, &v_2); _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_2, &v_1); } else { @@ -6895,41 +6756,41 @@ static int int tag_0 = v_1.tag; _fx_R9Ast__id_t f_1; if (tag_0 == 2) { - _fx_N14K_form__atom_t* v_5 = &v_1.u.Some; - if (v_5->tag == 1) { - f_1 = v_5->u.AtomId; goto _fx_endmatch_0; + _fx_N14K_form__atom_t* v_6 = &v_1.u.Some; + if (v_6->tag == 1) { + f_1 = v_6->u.AtomId; goto _fx_endmatch_0; } } if (tag_0 == 2) { - fx_str_t v_6 = {0}; fx_str_t v_7 = {0}; - fx_exn_t v_8 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(f_0, loc_0, &v_6, 0), _fx_catch_0); + fx_str_t v_8 = {0}; + fx_exn_t v_9 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(f_0, loc_0, &v_7, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_1 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_0[] = { slit_0, v_6, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_7), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_7, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_8), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_7, &v_8, 0), _fx_catch_0); - FX_THROW(&v_8, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_8, &v_9, 0), _fx_catch_0); + FX_THROW(&v_9, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_8); + fx_free_exn(&v_9); + FX_FREE_STR(&v_8); FX_FREE_STR(&v_7); - FX_FREE_STR(&v_6); goto _fx_endmatch_0; } f_1 = *f_0; _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_1); - _fx_N12Ast__scope_t v_9; - _fx_M3AstFM5ScFunN12Ast__scope_t1RM4id_t(&f_1, &v_9); + _fx_N12Ast__scope_t v_10; + _fx_M3AstFM5ScFunN12Ast__scope_t1RM4id_t(&f_1, &v_10); FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_3, 0), _fx_catch_1); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_9, v_3, true, fx_result), _fx_catch_1); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_10, v_3, true, fx_result), _fx_catch_1); _fx_catch_1: ; FX_FREE_LIST_SIMPLE(&v_3); @@ -6940,120 +6801,120 @@ static int } if (sc_0 != 0) { if (sc_0->hd.tag == 10) { - _fx_LN12Ast__scope_t v_10 = 0; - _fx_N12Ast__scope_t v_11; - _fx_M3AstFM8ScModuleN12Ast__scope_t1i(km_idx_0, &v_11); + _fx_LN12Ast__scope_t v_11 = 0; + _fx_N12Ast__scope_t v_12; + _fx_M3AstFM8ScModuleN12Ast__scope_t1i(km_idx_0, &v_12); FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_10, 0), _fx_catch_2); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_11, v_10, true, fx_result), _fx_catch_2); + sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_11, 0), _fx_catch_2); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_12, v_11, true, fx_result), _fx_catch_2); _fx_catch_2: ; - FX_FREE_LIST_SIMPLE(&v_10); + FX_FREE_LIST_SIMPLE(&v_11); goto _fx_endmatch_1; } } if (sc_0 != 0) { if (sc_0->hd.tag == 1) { - _fx_LN12Ast__scope_t v_12 = 0; - _fx_N12Ast__scope_t v_13; - FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_13, 0), _fx_catch_3); + _fx_LN12Ast__scope_t v_13 = 0; + _fx_N12Ast__scope_t v_14; + FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_14, 0), _fx_catch_3); FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_12, 0), _fx_catch_3); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_13, v_12, true, fx_result), _fx_catch_3); + sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_13, 0), _fx_catch_3); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_14, v_13, true, fx_result), _fx_catch_3); _fx_catch_3: ; - FX_FREE_LIST_SIMPLE(&v_12); + FX_FREE_LIST_SIMPLE(&v_13); goto _fx_endmatch_1; } } if (sc_0 != 0) { - _fx_N12Ast__scope_t* v_14 = &sc_0->hd; - if (v_14->tag == 2) { - _fx_LN12Ast__scope_t v_15 = 0; - _fx_T3BBi* vcase_0 = &v_14->u.ScLoop; - _fx_N12Ast__scope_t v_16; - FX_CALL(_fx_M3AstFM14new_loop_scopeN12Ast__scope_t3iBB(km_idx_0, vcase_0->t0, vcase_0->t1, &v_16, 0), _fx_catch_4); + _fx_N12Ast__scope_t* v_15 = &sc_0->hd; + if (v_15->tag == 2) { + _fx_LN12Ast__scope_t v_16 = 0; + _fx_T3BBi* vcase_0 = &v_15->u.ScLoop; + _fx_N12Ast__scope_t v_17; + FX_CALL(_fx_M3AstFM14new_loop_scopeN12Ast__scope_t3iBB(km_idx_0, vcase_0->t0, vcase_0->t1, &v_17, 0), _fx_catch_4); FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_15, 0), _fx_catch_4); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_16, v_15, true, fx_result), _fx_catch_4); + sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_16, 0), _fx_catch_4); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_17, v_16, true, fx_result), _fx_catch_4); _fx_catch_4: ; - FX_FREE_LIST_SIMPLE(&v_15); + FX_FREE_LIST_SIMPLE(&v_16); goto _fx_endmatch_1; } } if (sc_0 != 0) { if (sc_0->hd.tag == 5) { - _fx_LN12Ast__scope_t v_17 = 0; - _fx_N12Ast__scope_t v_18; - FX_CALL(_fx_M3AstFM13new_map_scopeN12Ast__scope_t1i(km_idx_0, &v_18, 0), _fx_catch_5); + _fx_LN12Ast__scope_t v_18 = 0; + _fx_N12Ast__scope_t v_19; + FX_CALL(_fx_M3AstFM13new_map_scopeN12Ast__scope_t1i(km_idx_0, &v_19, 0), _fx_catch_5); FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_17, 0), _fx_catch_5); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_18, v_17, true, fx_result), _fx_catch_5); + sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_18, 0), _fx_catch_5); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_19, v_18, true, fx_result), _fx_catch_5); _fx_catch_5: ; - FX_FREE_LIST_SIMPLE(&v_17); + FX_FREE_LIST_SIMPLE(&v_18); goto _fx_endmatch_1; } } if (sc_0 != 0) { if (sc_0->hd.tag == 4) { - _fx_LN12Ast__scope_t v_19 = 0; - _fx_N12Ast__scope_t v_20; - FX_CALL(_fx_M3AstFM17new_arr_map_scopeN12Ast__scope_t1i(km_idx_0, &v_20, 0), _fx_catch_6); + _fx_LN12Ast__scope_t v_20 = 0; + _fx_N12Ast__scope_t v_21; + FX_CALL(_fx_M3AstFM17new_arr_map_scopeN12Ast__scope_t1i(km_idx_0, &v_21, 0), _fx_catch_6); FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_19, 0), _fx_catch_6); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_20, v_19, true, fx_result), _fx_catch_6); + sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_20, 0), _fx_catch_6); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_21, v_20, true, fx_result), _fx_catch_6); _fx_catch_6: ; - FX_FREE_LIST_SIMPLE(&v_19); + FX_FREE_LIST_SIMPLE(&v_20); goto _fx_endmatch_1; } } if (sc_0 != 0) { if (sc_0->hd.tag == 3) { - _fx_LN12Ast__scope_t v_21 = 0; - _fx_N12Ast__scope_t v_22; - FX_CALL(_fx_M3AstFM14new_fold_scopeN12Ast__scope_t1i(km_idx_0, &v_22, 0), _fx_catch_7); + _fx_LN12Ast__scope_t v_22 = 0; + _fx_N12Ast__scope_t v_23; + FX_CALL(_fx_M3AstFM14new_fold_scopeN12Ast__scope_t1i(km_idx_0, &v_23, 0), _fx_catch_7); FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_21, 0), _fx_catch_7); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_22, v_21, true, fx_result), _fx_catch_7); + sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_22, 0), _fx_catch_7); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_23, v_22, true, fx_result), _fx_catch_7); _fx_catch_7: ; - FX_FREE_LIST_SIMPLE(&v_21); + FX_FREE_LIST_SIMPLE(&v_22); goto _fx_endmatch_1; } } if (sc_0 != 0) { if (sc_0->hd.tag == 6) { - _fx_LN12Ast__scope_t v_23 = 0; - _fx_N12Ast__scope_t v_24; - FX_CALL(_fx_M3AstFM13new_try_scopeN12Ast__scope_t1i(km_idx_0, &v_24, 0), _fx_catch_8); + _fx_LN12Ast__scope_t v_24 = 0; + _fx_N12Ast__scope_t v_25; + FX_CALL(_fx_M3AstFM13new_try_scopeN12Ast__scope_t1i(km_idx_0, &v_25, 0), _fx_catch_8); FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_23, 0), _fx_catch_8); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_24, v_23, true, fx_result), _fx_catch_8); + sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_24, 0), _fx_catch_8); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_25, v_24, true, fx_result), _fx_catch_8); _fx_catch_8: ; - FX_FREE_LIST_SIMPLE(&v_23); + FX_FREE_LIST_SIMPLE(&v_24); goto _fx_endmatch_1; } } if (sc_0 != 0) { - _fx_LN12Ast__scope_t v_25 = 0; + _fx_LN12Ast__scope_t v_26 = 0; FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_25, 0), _fx_catch_9); - FX_CALL(_fx_cons_LN12Ast__scope_t(&sc_0->hd, v_25, true, fx_result), _fx_catch_9); + sc_0->tl, loc_0, km_idx_0, subst_map_ref_0, &v_26, 0), _fx_catch_9); + FX_CALL(_fx_cons_LN12Ast__scope_t(&sc_0->hd, v_26, true, fx_result), _fx_catch_9); _fx_catch_9: ; - FX_FREE_LIST_SIMPLE(&v_25); + FX_FREE_LIST_SIMPLE(&v_26); goto _fx_endmatch_1; } @@ -7095,8 +6956,9 @@ static int int_ j_0 = v_5.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_0), _fx_cleanup); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_6 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0); + _fx_copy_N14K_form__atom_t(&v_6->data, &v_1); _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_1, &v_0); } else { @@ -7105,29 +6967,29 @@ static int int tag_0 = v_0.tag; _fx_R9Ast__id_t new_i_0; if (tag_0 == 2) { - _fx_N14K_form__atom_t* v_6 = &v_0.u.Some; - if (v_6->tag == 1) { - new_i_0 = v_6->u.AtomId; goto _fx_endmatch_0; + _fx_N14K_form__atom_t* v_7 = &v_0.u.Some; + if (v_7->tag == 1) { + new_i_0 = v_7->u.AtomId; goto _fx_endmatch_0; } } if (tag_0 == 2) { - fx_str_t v_7 = {0}; fx_str_t v_8 = {0}; - fx_exn_t v_9 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_7, 0), _fx_catch_0); + fx_str_t v_9 = {0}; + fx_exn_t v_10 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_8, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_1 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_0[] = { slit_0, v_7, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_8), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_8, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_9), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_8, &v_9, 0), _fx_catch_0); - FX_THROW(&v_9, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_9, &v_10, 0), _fx_catch_0); + FX_THROW(&v_10, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_9); + fx_free_exn(&v_10); + FX_FREE_STR(&v_9); FX_FREE_STR(&v_8); - FX_FREE_STR(&v_7); goto _fx_endmatch_0; } new_i_0 = *i_0; @@ -7221,42 +7083,43 @@ static int int_ j_0 = v_19.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_0), _fx_cleanup); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_20 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0); + _fx_copy_N14K_form__atom_t(&v_20->data, &v_1); _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_1, &v_0); } else { _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_0); } int tag_0 = v_0.tag; - _fx_R9Ast__id_t v_20; + _fx_R9Ast__id_t v_21; if (tag_0 == 2) { - _fx_N14K_form__atom_t* v_21 = &v_0.u.Some; - if (v_21->tag == 1) { - v_20 = v_21->u.AtomId; goto _fx_endmatch_0; + _fx_N14K_form__atom_t* v_22 = &v_0.u.Some; + if (v_22->tag == 1) { + v_21 = v_22->u.AtomId; goto _fx_endmatch_0; } } if (tag_0 == 2) { - fx_str_t v_22 = {0}; fx_str_t v_23 = {0}; - fx_exn_t v_24 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_22, 0), _fx_catch_0); + fx_str_t v_24 = {0}; + fx_exn_t v_25 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_23, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_1 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_0[] = { slit_0, v_22, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_23), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_23, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_24), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_23, &v_24, 0), _fx_catch_0); - FX_THROW(&v_24, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_24, &v_25, 0), _fx_catch_0); + FX_THROW(&v_25, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_24); + fx_free_exn(&v_25); + FX_FREE_STR(&v_24); FX_FREE_STR(&v_23); - FX_FREE_STR(&v_22); goto _fx_endmatch_0; } - v_20 = kf_name_0; + v_21 = kf_name_0; _fx_endmatch_0: ; FX_CHECK_EXN(_fx_cleanup); @@ -7279,241 +7142,246 @@ _fx_endmatch_0: ; _fx_M6K_formFM9walk_ktypN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(kf_rt_0, &kf_loc_0, callb_0, &v_3, 0), _fx_cleanup); FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(kf_body_0, callb_0, &v_4, 0), _fx_cleanup); - _fx_Ta2i v_25; + _fx_Ta2i v_26; FX_CALL( - _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &kci_arg_0, &v_25, 0), + _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &kci_arg_0, &v_26, 0), _fx_cleanup); - int_ j_1 = v_25.t1; + int_ j_1 = v_26.t1; if (j_1 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_1), _fx_cleanup); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_1)->data, &v_6); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_27 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_1); + _fx_copy_N14K_form__atom_t(&v_27->data, &v_6); _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_6, &v_5); } else { _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_5); } int tag_1 = v_5.tag; - _fx_R9Ast__id_t v_26; + _fx_R9Ast__id_t v_28; if (tag_1 == 2) { - _fx_N14K_form__atom_t* v_27 = &v_5.u.Some; - if (v_27->tag == 1) { - v_26 = v_27->u.AtomId; goto _fx_endmatch_1; + _fx_N14K_form__atom_t* v_29 = &v_5.u.Some; + if (v_29->tag == 1) { + v_28 = v_29->u.AtomId; goto _fx_endmatch_1; } } if (tag_1 == 2) { - fx_str_t v_28 = {0}; - fx_str_t v_29 = {0}; - fx_exn_t v_30 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kci_arg_0, &kf_loc_0, &v_28, 0), _fx_catch_2); + fx_str_t v_30 = {0}; + fx_str_t v_31 = {0}; + fx_exn_t v_32 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kci_arg_0, &kf_loc_0, &v_30, 0), _fx_catch_2); fx_str_t slit_2 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_3 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_1[] = { slit_2, v_28, slit_3 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_29), _fx_catch_2); + const fx_str_t strs_1[] = { slit_2, v_30, slit_3 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_31), _fx_catch_2); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_29, &v_30, 0), _fx_catch_2); - FX_THROW(&v_30, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_31, &v_32, 0), _fx_catch_2); + FX_THROW(&v_32, false, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_30); - FX_FREE_STR(&v_29); - FX_FREE_STR(&v_28); + fx_free_exn(&v_32); + FX_FREE_STR(&v_31); + FX_FREE_STR(&v_30); goto _fx_endmatch_1; } - v_26 = kci_arg_0; + v_28 = kci_arg_0; _fx_endmatch_1: ; FX_CHECK_EXN(_fx_cleanup); - _fx_Ta2i v_31; + _fx_Ta2i v_33; FX_CALL( - _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &kci_fcv_t_0, &v_31, + _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &kci_fcv_t_0, &v_33, 0), _fx_cleanup); - int_ j_2 = v_31.t1; + int_ j_2 = v_33.t1; if (j_2 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_2), _fx_cleanup); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_2)->data, &v_8); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_34 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_2); + _fx_copy_N14K_form__atom_t(&v_34->data, &v_8); _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_8, &v_7); } else { _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_7); } int tag_2 = v_7.tag; - _fx_R9Ast__id_t v_32; + _fx_R9Ast__id_t v_35; if (tag_2 == 2) { - _fx_N14K_form__atom_t* v_33 = &v_7.u.Some; - if (v_33->tag == 1) { - v_32 = v_33->u.AtomId; goto _fx_endmatch_2; + _fx_N14K_form__atom_t* v_36 = &v_7.u.Some; + if (v_36->tag == 1) { + v_35 = v_36->u.AtomId; goto _fx_endmatch_2; } } if (tag_2 == 2) { - fx_str_t v_34 = {0}; - fx_str_t v_35 = {0}; - fx_exn_t v_36 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kci_fcv_t_0, &kf_loc_0, &v_34, 0), _fx_catch_3); + fx_str_t v_37 = {0}; + fx_str_t v_38 = {0}; + fx_exn_t v_39 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kci_fcv_t_0, &kf_loc_0, &v_37, 0), _fx_catch_3); fx_str_t slit_4 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_5 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_2[] = { slit_4, v_34, slit_5 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_35), _fx_catch_3); + const fx_str_t strs_2[] = { slit_4, v_37, slit_5 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_38), _fx_catch_3); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_35, &v_36, 0), _fx_catch_3); - FX_THROW(&v_36, false, _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_38, &v_39, 0), _fx_catch_3); + FX_THROW(&v_39, false, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_36); - FX_FREE_STR(&v_35); - FX_FREE_STR(&v_34); + fx_free_exn(&v_39); + FX_FREE_STR(&v_38); + FX_FREE_STR(&v_37); goto _fx_endmatch_2; } - v_32 = kci_fcv_t_0; + v_35 = kci_fcv_t_0; _fx_endmatch_2: ; FX_CHECK_EXN(_fx_cleanup); - _fx_Ta2i v_37; + _fx_Ta2i v_40; FX_CALL( - _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &kci_fp_typ_0, &v_37, + _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &kci_fp_typ_0, &v_40, 0), _fx_cleanup); - int_ j_3 = v_37.t1; + int_ j_3 = v_40.t1; if (j_3 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_3), _fx_cleanup); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_3)->data, &v_10); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_41 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_3); + _fx_copy_N14K_form__atom_t(&v_41->data, &v_10); _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_10, &v_9); } else { _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_9); } int tag_3 = v_9.tag; - _fx_R9Ast__id_t v_38; + _fx_R9Ast__id_t v_42; if (tag_3 == 2) { - _fx_N14K_form__atom_t* v_39 = &v_9.u.Some; - if (v_39->tag == 1) { - v_38 = v_39->u.AtomId; goto _fx_endmatch_3; + _fx_N14K_form__atom_t* v_43 = &v_9.u.Some; + if (v_43->tag == 1) { + v_42 = v_43->u.AtomId; goto _fx_endmatch_3; } } if (tag_3 == 2) { - fx_str_t v_40 = {0}; - fx_str_t v_41 = {0}; - fx_exn_t v_42 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kci_fp_typ_0, &kf_loc_0, &v_40, 0), _fx_catch_4); + fx_str_t v_44 = {0}; + fx_str_t v_45 = {0}; + fx_exn_t v_46 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kci_fp_typ_0, &kf_loc_0, &v_44, 0), _fx_catch_4); fx_str_t slit_6 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_7 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_3[] = { slit_6, v_40, slit_7 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_41), _fx_catch_4); + const fx_str_t strs_3[] = { slit_6, v_44, slit_7 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_45), _fx_catch_4); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_41, &v_42, 0), _fx_catch_4); - FX_THROW(&v_42, false, _fx_catch_4); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_45, &v_46, 0), _fx_catch_4); + FX_THROW(&v_46, false, _fx_catch_4); _fx_catch_4: ; - fx_free_exn(&v_42); - FX_FREE_STR(&v_41); - FX_FREE_STR(&v_40); + fx_free_exn(&v_46); + FX_FREE_STR(&v_45); + FX_FREE_STR(&v_44); goto _fx_endmatch_3; } - v_38 = kci_fp_typ_0; + v_42 = kci_fp_typ_0; _fx_endmatch_3: ; FX_CHECK_EXN(_fx_cleanup); - _fx_Ta2i v_43; + _fx_Ta2i v_47; FX_CALL( - _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &kci_make_fp_0, &v_43, + _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &kci_make_fp_0, &v_47, 0), _fx_cleanup); - int_ j_4 = v_43.t1; + int_ j_4 = v_47.t1; if (j_4 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_4), _fx_cleanup); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_4)->data, &v_12); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_48 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_4); + _fx_copy_N14K_form__atom_t(&v_48->data, &v_12); _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_12, &v_11); } else { _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_11); } int tag_4 = v_11.tag; - _fx_R9Ast__id_t v_44; + _fx_R9Ast__id_t v_49; if (tag_4 == 2) { - _fx_N14K_form__atom_t* v_45 = &v_11.u.Some; - if (v_45->tag == 1) { - v_44 = v_45->u.AtomId; goto _fx_endmatch_4; + _fx_N14K_form__atom_t* v_50 = &v_11.u.Some; + if (v_50->tag == 1) { + v_49 = v_50->u.AtomId; goto _fx_endmatch_4; } } if (tag_4 == 2) { - fx_str_t v_46 = {0}; - fx_str_t v_47 = {0}; - fx_exn_t v_48 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kci_make_fp_0, &kf_loc_0, &v_46, 0), _fx_catch_5); + fx_str_t v_51 = {0}; + fx_str_t v_52 = {0}; + fx_exn_t v_53 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kci_make_fp_0, &kf_loc_0, &v_51, 0), _fx_catch_5); fx_str_t slit_8 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_9 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_4[] = { slit_8, v_46, slit_9 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_47), _fx_catch_5); + const fx_str_t strs_4[] = { slit_8, v_51, slit_9 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_52), _fx_catch_5); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_47, &v_48, 0), _fx_catch_5); - FX_THROW(&v_48, false, _fx_catch_5); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_52, &v_53, 0), _fx_catch_5); + FX_THROW(&v_53, false, _fx_catch_5); _fx_catch_5: ; - fx_free_exn(&v_48); - FX_FREE_STR(&v_47); - FX_FREE_STR(&v_46); + fx_free_exn(&v_53); + FX_FREE_STR(&v_52); + FX_FREE_STR(&v_51); goto _fx_endmatch_4; } - v_44 = kci_make_fp_0; + v_49 = kci_make_fp_0; _fx_endmatch_4: ; FX_CHECK_EXN(_fx_cleanup); - _fx_Ta2i v_49; + _fx_Ta2i v_54; FX_CALL( - _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &kci_wrap_f_0, &v_49, + _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &kci_wrap_f_0, &v_54, 0), _fx_cleanup); - int_ j_5 = v_49.t1; + int_ j_5 = v_54.t1; if (j_5 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_5), _fx_cleanup); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_5)->data, &v_14); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_55 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_5); + _fx_copy_N14K_form__atom_t(&v_55->data, &v_14); _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_14, &v_13); } else { _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_13); } int tag_5 = v_13.tag; - _fx_R9Ast__id_t v_50; + _fx_R9Ast__id_t v_56; if (tag_5 == 2) { - _fx_N14K_form__atom_t* v_51 = &v_13.u.Some; - if (v_51->tag == 1) { - v_50 = v_51->u.AtomId; goto _fx_endmatch_5; + _fx_N14K_form__atom_t* v_57 = &v_13.u.Some; + if (v_57->tag == 1) { + v_56 = v_57->u.AtomId; goto _fx_endmatch_5; } } if (tag_5 == 2) { - fx_str_t v_52 = {0}; - fx_str_t v_53 = {0}; - fx_exn_t v_54 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kci_wrap_f_0, &kf_loc_0, &v_52, 0), _fx_catch_6); + fx_str_t v_58 = {0}; + fx_str_t v_59 = {0}; + fx_exn_t v_60 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kci_wrap_f_0, &kf_loc_0, &v_58, 0), _fx_catch_6); fx_str_t slit_10 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_11 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_5[] = { slit_10, v_52, slit_11 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_5, 3, &v_53), _fx_catch_6); + const fx_str_t strs_5[] = { slit_10, v_58, slit_11 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_5, 3, &v_59), _fx_catch_6); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_53, &v_54, 0), _fx_catch_6); - FX_THROW(&v_54, false, _fx_catch_6); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_59, &v_60, 0), _fx_catch_6); + FX_THROW(&v_60, false, _fx_catch_6); _fx_catch_6: ; - fx_free_exn(&v_54); - FX_FREE_STR(&v_53); - FX_FREE_STR(&v_52); + fx_free_exn(&v_60); + FX_FREE_STR(&v_59); + FX_FREE_STR(&v_58); goto _fx_endmatch_5; } - v_50 = kci_wrap_f_0; + v_56 = kci_wrap_f_0; _fx_endmatch_5: ; FX_CHECK_EXN(_fx_cleanup); - _fx_R25K_form__kdefclosureinfo_t v_55 = { v_26, v_32, v_38, v_44, v_50 }; + _fx_R25K_form__kdefclosureinfo_t v_61 = { v_28, v_35, v_42, v_49, v_56 }; FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( kf_scope_0, &kf_loc_0, km_idx_0, subst_map_ref_0, &v_15, 0), _fx_cleanup); - _fx_make_R17K_form__kdeffun_t(&v_20, &v_18->kf_cname, v_2, v_3, v_4, &v_18->kf_flags, &v_55, v_15, &v_18->kf_loc, &v_16); + _fx_make_R17K_form__kdeffun_t(&v_21, &v_18->kf_cname, v_2, v_3, v_4, &v_18->kf_flags, &v_61, v_15, &v_18->kf_loc, &v_16); FX_CALL(_fx_make_rR17K_form__kdeffun_t(&v_16, fx_result), _fx_cleanup); _fx_cleanup: ; @@ -7568,9 +7436,10 @@ static int _fx_M8K_inlineFM11subst_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_ FX_CALL( _fx_M8K_inlineFM9subst_kf_rR17K_form__kdeffun_t4rR17K_form__kdeffun_tR17K_form__k_callb_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( e_0->u.KDefFun, callb_0, *km_idx_0, subst_map_ref_0, &new_kf_0, 0), _fx_catch_0); - _fx_R9Ast__id_t v_1 = new_kf_0->data.kf_name; + _fx_R17K_form__kdeffun_t* v_1 = &new_kf_0->data; + _fx_R9Ast__id_t v_2 = v_1->kf_name; _fx_M6K_formFM4KFunN15K_form__kinfo_t1rRM9kdeffun_t(new_kf_0, &v_0); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_1, &v_0, 0), _fx_catch_0); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_2, &v_0, 0), _fx_catch_0); FX_CALL(_fx_M6K_formFM7KDefFunN14K_form__kexp_t1rRM9kdeffun_t(new_kf_0, fx_result), _fx_catch_0); _fx_catch_0: ; @@ -7584,67 +7453,68 @@ static int _fx_M8K_inlineFM11subst_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_ _fx_LR9Ast__id_t kvar_ctors_0 = 0; _fx_LT2R9Ast__id_tLR9Ast__id_t kvar_ifaces_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t kvar_cases_0 = 0; - _fx_Nt6option1N14K_form__atom_t v_2 = {0}; - _fx_N14K_form__atom_t v_3 = {0}; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_4 = 0; - _fx_LR9Ast__id_t v_5 = 0; - _fx_LT2R9Ast__id_tLR9Ast__id_t v_6 = 0; - _fx_LN12Ast__scope_t v_7 = 0; - _fx_R21K_form__kdefvariant_t v_8 = {0}; + _fx_Nt6option1N14K_form__atom_t v_3 = {0}; + _fx_N14K_form__atom_t v_4 = {0}; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_5 = 0; + _fx_LR9Ast__id_t v_6 = 0; + _fx_LT2R9Ast__id_tLR9Ast__id_t v_7 = 0; + _fx_LN12Ast__scope_t v_8 = 0; + _fx_R21K_form__kdefvariant_t v_9 = {0}; _fx_rR21K_form__kdefvariant_t new_kvar_0 = 0; - _fx_N15K_form__kinfo_t v_9 = {0}; + _fx_N15K_form__kinfo_t v_10 = {0}; _fx_rR21K_form__kdefvariant_t kvar_0 = e_0->u.KDefVariant; - _fx_R21K_form__kdefvariant_t* v_10 = &kvar_0->data; - _fx_R10Ast__loc_t kvar_loc_0 = v_10->kvar_loc; - FX_COPY_PTR(v_10->kvar_scope, &kvar_scope_0); - FX_COPY_PTR(v_10->kvar_ctors, &kvar_ctors_0); - FX_COPY_PTR(v_10->kvar_ifaces, &kvar_ifaces_0); - FX_COPY_PTR(v_10->kvar_cases, &kvar_cases_0); - _fx_R9Ast__id_t kvar_name_0 = v_10->kvar_name; _fx_R21K_form__kdefvariant_t* v_11 = &kvar_0->data; - _fx_Ta2i v_12; + _fx_R10Ast__loc_t kvar_loc_0 = v_11->kvar_loc; + FX_COPY_PTR(v_11->kvar_scope, &kvar_scope_0); + FX_COPY_PTR(v_11->kvar_ctors, &kvar_ctors_0); + FX_COPY_PTR(v_11->kvar_ifaces, &kvar_ifaces_0); + FX_COPY_PTR(v_11->kvar_cases, &kvar_cases_0); + _fx_R9Ast__id_t kvar_name_0 = v_11->kvar_name; + _fx_R21K_form__kdefvariant_t* v_12 = &kvar_0->data; + _fx_Ta2i v_13; FX_CALL( _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &kvar_name_0, - &v_12, 0), _fx_catch_8); - int_ j_0 = v_12.t1; + &v_13, 0), _fx_catch_8); + int_ j_0 = v_13.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_0), _fx_catch_8); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0)->data, &v_3); - _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_3, &v_2); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_14 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0); + _fx_copy_N14K_form__atom_t(&v_14->data, &v_4); + _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_4, &v_3); } else { - _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_2); + _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_3); } - int tag_1 = v_2.tag; - _fx_R9Ast__id_t v_13; + int tag_1 = v_3.tag; + _fx_R9Ast__id_t v_15; if (tag_1 == 2) { - _fx_N14K_form__atom_t* v_14 = &v_2.u.Some; - if (v_14->tag == 1) { - v_13 = v_14->u.AtomId; goto _fx_endmatch_0; + _fx_N14K_form__atom_t* v_16 = &v_3.u.Some; + if (v_16->tag == 1) { + v_15 = v_16->u.AtomId; goto _fx_endmatch_0; } } if (tag_1 == 2) { - fx_str_t v_15 = {0}; - fx_str_t v_16 = {0}; - fx_exn_t v_17 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kvar_name_0, &kvar_loc_0, &v_15, 0), _fx_catch_1); + fx_str_t v_17 = {0}; + fx_str_t v_18 = {0}; + fx_exn_t v_19 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kvar_name_0, &kvar_loc_0, &v_17, 0), _fx_catch_1); fx_str_t slit_0 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_1 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_0[] = { slit_0, v_15, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_16), _fx_catch_1); + const fx_str_t strs_0[] = { slit_0, v_17, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_18), _fx_catch_1); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kvar_loc_0, &v_16, &v_17, 0), _fx_catch_1); - FX_THROW(&v_17, false, _fx_catch_1); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kvar_loc_0, &v_18, &v_19, 0), _fx_catch_1); + FX_THROW(&v_19, false, _fx_catch_1); _fx_catch_1: ; - fx_free_exn(&v_17); - FX_FREE_STR(&v_16); - FX_FREE_STR(&v_15); + fx_free_exn(&v_19); + FX_FREE_STR(&v_18); + FX_FREE_STR(&v_17); goto _fx_endmatch_0; } - v_13 = kvar_name_0; + v_15 = kvar_name_0; _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_8); @@ -7652,23 +7522,23 @@ static int _fx_M8K_inlineFM11subst_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_ _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_0 = kvar_cases_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_N14K_form__ktyp_t t_0 = 0; - _fx_N14K_form__ktyp_t v_18 = 0; + _fx_N14K_form__ktyp_t v_20 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t tup_0 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___0 = &lst_0->hd; _fx_R9Ast__id_t n_0 = __pat___0->t0; FX_COPY_PTR(__pat___0->t1, &t_0); FX_CALL( _fx_M6K_formFM9walk_ktypN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(t_0, &kvar_loc_0, callb_0, - &v_18, 0), _fx_catch_2); - _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&n_0, v_18, &tup_0); + &v_20, 0), _fx_catch_2); + _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&n_0, v_20, &tup_0); _fx_LT2R9Ast__id_tN14K_form__ktyp_t node_0 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&tup_0, 0, false, &node_0), _fx_catch_2); - FX_LIST_APPEND(v_4, lstend_0, node_0); + FX_LIST_APPEND(v_5, lstend_0, node_0); _fx_catch_2: ; _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&tup_0); - if (v_18) { - _fx_free_N14K_form__ktyp_t(&v_18); + if (v_20) { + _fx_free_N14K_form__ktyp_t(&v_20); } if (t_0) { _fx_free_N14K_form__ktyp_t(&t_0); @@ -7678,49 +7548,50 @@ static int _fx_M8K_inlineFM11subst_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_ _fx_LR9Ast__id_t lstend_1 = 0; _fx_LR9Ast__id_t lst_1 = kvar_ctors_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_Nt6option1N14K_form__atom_t v_19 = {0}; - _fx_N14K_form__atom_t v_20 = {0}; + _fx_Nt6option1N14K_form__atom_t v_21 = {0}; + _fx_N14K_form__atom_t v_22 = {0}; _fx_R9Ast__id_t* n_1 = &lst_1->hd; - _fx_Ta2i v_21; + _fx_Ta2i v_23; FX_CALL( - _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, n_1, &v_21, 0), + _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, n_1, &v_23, 0), _fx_catch_4); - int_ j_1 = v_21.t1; + int_ j_1 = v_23.t1; if (j_1 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_1), _fx_catch_4); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_1)->data, &v_20); - _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_20, &v_19); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_24 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_1); + _fx_copy_N14K_form__atom_t(&v_24->data, &v_22); + _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_22, &v_21); } else { - _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_19); + _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_21); } - int tag_2 = v_19.tag; + int tag_2 = v_21.tag; _fx_R9Ast__id_t res_0; if (tag_2 == 2) { - _fx_N14K_form__atom_t* v_22 = &v_19.u.Some; - if (v_22->tag == 1) { - res_0 = v_22->u.AtomId; goto _fx_endmatch_1; + _fx_N14K_form__atom_t* v_25 = &v_21.u.Some; + if (v_25->tag == 1) { + res_0 = v_25->u.AtomId; goto _fx_endmatch_1; } } if (tag_2 == 2) { - fx_str_t v_23 = {0}; - fx_str_t v_24 = {0}; - fx_exn_t v_25 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(n_1, &kvar_loc_0, &v_23, 0), _fx_catch_3); + fx_str_t v_26 = {0}; + fx_str_t v_27 = {0}; + fx_exn_t v_28 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(n_1, &kvar_loc_0, &v_26, 0), _fx_catch_3); fx_str_t slit_2 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_3 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_1[] = { slit_2, v_23, slit_3 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_24), _fx_catch_3); + const fx_str_t strs_1[] = { slit_2, v_26, slit_3 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_27), _fx_catch_3); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kvar_loc_0, &v_24, &v_25, 0), _fx_catch_3); - FX_THROW(&v_25, false, _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kvar_loc_0, &v_27, &v_28, 0), _fx_catch_3); + FX_THROW(&v_28, false, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_25); - FX_FREE_STR(&v_24); - FX_FREE_STR(&v_23); + fx_free_exn(&v_28); + FX_FREE_STR(&v_27); + FX_FREE_STR(&v_26); goto _fx_endmatch_1; } res_0 = *n_1; @@ -7729,67 +7600,68 @@ static int _fx_M8K_inlineFM11subst_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_ FX_CHECK_EXN(_fx_catch_4); _fx_LR9Ast__id_t node_1 = 0; FX_CALL(_fx_cons_LR9Ast__id_t(&res_0, 0, false, &node_1), _fx_catch_4); - FX_LIST_APPEND(v_5, lstend_1, node_1); + FX_LIST_APPEND(v_6, lstend_1, node_1); _fx_catch_4: ; - _fx_free_N14K_form__atom_t(&v_20); - _fx_free_Nt6option1N14K_form__atom_t(&v_19); + _fx_free_N14K_form__atom_t(&v_22); + _fx_free_Nt6option1N14K_form__atom_t(&v_21); FX_CHECK_EXN(_fx_catch_8); } _fx_LT2R9Ast__id_tLR9Ast__id_t lstend_2 = 0; _fx_LT2R9Ast__id_tLR9Ast__id_t lst_2 = kvar_ifaces_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_LR9Ast__id_t meths_0 = 0; - _fx_Nt6option1N14K_form__atom_t v_26 = {0}; - _fx_N14K_form__atom_t v_27 = {0}; - _fx_LR9Ast__id_t v_28 = 0; + _fx_Nt6option1N14K_form__atom_t v_29 = {0}; + _fx_N14K_form__atom_t v_30 = {0}; + _fx_LR9Ast__id_t v_31 = 0; _fx_T2R9Ast__id_tLR9Ast__id_t tup_1 = {0}; _fx_T2R9Ast__id_tLR9Ast__id_t* __pat___1 = &lst_2->hd; _fx_R9Ast__id_t iname_0 = __pat___1->t0; FX_COPY_PTR(__pat___1->t1, &meths_0); - _fx_Ta2i v_29; + _fx_Ta2i v_32; FX_CALL( - _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &iname_0, &v_29, + _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, &iname_0, &v_32, 0), _fx_catch_7); - int_ j_2 = v_29.t1; + int_ j_2 = v_32.t1; if (j_2 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_2), _fx_catch_7); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_2)->data, &v_27); - _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_27, &v_26); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_33 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_2); + _fx_copy_N14K_form__atom_t(&v_33->data, &v_30); + _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_30, &v_29); } else { - _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_26); + _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_29); } - int tag_3 = v_26.tag; - _fx_R9Ast__id_t v_30; + int tag_3 = v_29.tag; + _fx_R9Ast__id_t v_34; if (tag_3 == 2) { - _fx_N14K_form__atom_t* v_31 = &v_26.u.Some; - if (v_31->tag == 1) { - v_30 = v_31->u.AtomId; goto _fx_endmatch_2; + _fx_N14K_form__atom_t* v_35 = &v_29.u.Some; + if (v_35->tag == 1) { + v_34 = v_35->u.AtomId; goto _fx_endmatch_2; } } if (tag_3 == 2) { - fx_str_t v_32 = {0}; - fx_str_t v_33 = {0}; - fx_exn_t v_34 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&iname_0, &kvar_loc_0, &v_32, 0), _fx_catch_5); + fx_str_t v_36 = {0}; + fx_str_t v_37 = {0}; + fx_exn_t v_38 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&iname_0, &kvar_loc_0, &v_36, 0), _fx_catch_5); fx_str_t slit_4 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_5 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_2[] = { slit_4, v_32, slit_5 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_33), _fx_catch_5); + const fx_str_t strs_2[] = { slit_4, v_36, slit_5 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_37), _fx_catch_5); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kvar_loc_0, &v_33, &v_34, 0), _fx_catch_5); - FX_THROW(&v_34, false, _fx_catch_5); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kvar_loc_0, &v_37, &v_38, 0), _fx_catch_5); + FX_THROW(&v_38, false, _fx_catch_5); _fx_catch_5: ; - fx_free_exn(&v_34); - FX_FREE_STR(&v_33); - FX_FREE_STR(&v_32); + fx_free_exn(&v_38); + FX_FREE_STR(&v_37); + FX_FREE_STR(&v_36); goto _fx_endmatch_2; } - v_30 = iname_0; + v_34 = iname_0; _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_7); @@ -7803,62 +7675,64 @@ static int _fx_M8K_inlineFM11subst_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_ &kvar_loc_0, subst_map_ref_0, &res_1, 0), _fx_catch_6); _fx_LR9Ast__id_t node_2 = 0; FX_CALL(_fx_cons_LR9Ast__id_t(&res_1, 0, false, &node_2), _fx_catch_6); - FX_LIST_APPEND(v_28, lstend_3, node_2); + FX_LIST_APPEND(v_31, lstend_3, node_2); _fx_catch_6: ; FX_CHECK_EXN(_fx_catch_7); } - _fx_make_T2R9Ast__id_tLR9Ast__id_t(&v_30, v_28, &tup_1); + _fx_make_T2R9Ast__id_tLR9Ast__id_t(&v_34, v_31, &tup_1); _fx_LT2R9Ast__id_tLR9Ast__id_t node_3 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tLR9Ast__id_t(&tup_1, 0, false, &node_3), _fx_catch_7); - FX_LIST_APPEND(v_6, lstend_2, node_3); + FX_LIST_APPEND(v_7, lstend_2, node_3); _fx_catch_7: ; _fx_free_T2R9Ast__id_tLR9Ast__id_t(&tup_1); - FX_FREE_LIST_SIMPLE(&v_28); - _fx_free_N14K_form__atom_t(&v_27); - _fx_free_Nt6option1N14K_form__atom_t(&v_26); + FX_FREE_LIST_SIMPLE(&v_31); + _fx_free_N14K_form__atom_t(&v_30); + _fx_free_Nt6option1N14K_form__atom_t(&v_29); FX_FREE_LIST_SIMPLE(&meths_0); FX_CHECK_EXN(_fx_catch_8); } FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - kvar_scope_0, &kvar_loc_0, *km_idx_0, subst_map_ref_0, &v_7, 0), _fx_catch_8); - _fx_make_R21K_form__kdefvariant_t(&v_13, &v_11->kvar_cname, &v_11->kvar_proto, &v_11->kvar_props, v_11->kvar_targs, v_4, - v_5, &v_11->kvar_flags, v_6, v_7, &v_11->kvar_loc, &v_8); - FX_CALL(_fx_make_rR21K_form__kdefvariant_t(&v_8, &new_kvar_0), _fx_catch_8); - bool t_1; + kvar_scope_0, &kvar_loc_0, *km_idx_0, subst_map_ref_0, &v_8, 0), _fx_catch_8); + _fx_make_R21K_form__kdefvariant_t(&v_15, &v_12->kvar_cname, &v_12->kvar_proto, &v_12->kvar_props, v_12->kvar_targs, v_5, + v_6, &v_12->kvar_flags, v_7, v_8, &v_12->kvar_loc, &v_9); + FX_CALL(_fx_make_rR21K_form__kdefvariant_t(&v_9, &new_kvar_0), _fx_catch_8); + bool v_39; if (kvar_name_0.m != *km_idx_0) { - _fx_R9Ast__id_t v_35 = new_kvar_0->data.kvar_proto; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_35, &_fx_g9Ast__noid, &t_1, 0), _fx_catch_8); + _fx_R21K_form__kdefvariant_t* v_40 = &new_kvar_0->data; + _fx_R9Ast__id_t v_41 = v_40->kvar_proto; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_41, &_fx_g9Ast__noid, &v_39, 0), _fx_catch_8); } else { - t_1 = false; + v_39 = false; } - if (t_1) { - new_kvar_0->data.kvar_proto = kvar_name_0; + if (v_39) { + _fx_R21K_form__kdefvariant_t* v_42 = &new_kvar_0->data; v_42->kvar_proto = kvar_name_0; } - _fx_R9Ast__id_t v_36 = new_kvar_0->data.kvar_name; - _fx_M6K_formFM8KVariantN15K_form__kinfo_t1rRM13kdefvariant_t(new_kvar_0, &v_9); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_36, &v_9, 0), _fx_catch_8); + _fx_R21K_form__kdefvariant_t* v_43 = &new_kvar_0->data; + _fx_R9Ast__id_t v_44 = v_43->kvar_name; + _fx_M6K_formFM8KVariantN15K_form__kinfo_t1rRM13kdefvariant_t(new_kvar_0, &v_10); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_44, &v_10, 0), _fx_catch_8); FX_CALL(_fx_M6K_formFM11KDefVariantN14K_form__kexp_t1rRM13kdefvariant_t(new_kvar_0, fx_result), _fx_catch_8); _fx_catch_8: ; - _fx_free_N15K_form__kinfo_t(&v_9); + _fx_free_N15K_form__kinfo_t(&v_10); if (new_kvar_0) { _fx_free_rR21K_form__kdefvariant_t(&new_kvar_0); } - _fx_free_R21K_form__kdefvariant_t(&v_8); - FX_FREE_LIST_SIMPLE(&v_7); - if (v_6) { - _fx_free_LT2R9Ast__id_tLR9Ast__id_t(&v_6); + _fx_free_R21K_form__kdefvariant_t(&v_9); + FX_FREE_LIST_SIMPLE(&v_8); + if (v_7) { + _fx_free_LT2R9Ast__id_tLR9Ast__id_t(&v_7); } - FX_FREE_LIST_SIMPLE(&v_5); - if (v_4) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_4); + FX_FREE_LIST_SIMPLE(&v_6); + if (v_5) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_5); } - _fx_free_N14K_form__atom_t(&v_3); - _fx_free_Nt6option1N14K_form__atom_t(&v_2); + _fx_free_N14K_form__atom_t(&v_4); + _fx_free_Nt6option1N14K_form__atom_t(&v_3); if (kvar_cases_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&kvar_cases_0); } @@ -7871,56 +7745,58 @@ static int _fx_M8K_inlineFM11subst_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_ else if (tag_0 == 36) { _fx_LN12Ast__scope_t kt_scope_0 = 0; _fx_N14K_form__ktyp_t kt_typ_0 = 0; - _fx_N14K_form__ktyp_t v_37 = 0; - _fx_LN12Ast__scope_t v_38 = 0; - _fx_R17K_form__kdeftyp_t v_39 = {0}; + _fx_N14K_form__ktyp_t v_45 = 0; + _fx_LN12Ast__scope_t v_46 = 0; + _fx_R17K_form__kdeftyp_t v_47 = {0}; _fx_rR17K_form__kdeftyp_t new_kt_0 = 0; - _fx_N15K_form__kinfo_t v_40 = {0}; + _fx_N15K_form__kinfo_t v_48 = {0}; _fx_rR17K_form__kdeftyp_t kt_0 = e_0->u.KDefTyp; - _fx_R17K_form__kdeftyp_t* v_41 = &kt_0->data; - _fx_R10Ast__loc_t kt_loc_0 = v_41->kt_loc; - FX_COPY_PTR(v_41->kt_scope, &kt_scope_0); - FX_COPY_PTR(v_41->kt_typ, &kt_typ_0); - _fx_R9Ast__id_t kt_name_0 = v_41->kt_name; - _fx_R17K_form__kdeftyp_t* v_42 = &kt_0->data; - _fx_R9Ast__id_t v_43; + _fx_R17K_form__kdeftyp_t* v_49 = &kt_0->data; + _fx_R10Ast__loc_t kt_loc_0 = v_49->kt_loc; + FX_COPY_PTR(v_49->kt_scope, &kt_scope_0); + FX_COPY_PTR(v_49->kt_typ, &kt_typ_0); + _fx_R9Ast__id_t kt_name_0 = v_49->kt_name; + _fx_R17K_form__kdeftyp_t* v_50 = &kt_0->data; + _fx_R9Ast__id_t v_51; FX_CALL( _fx_M8K_inlineFM9subst_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_trNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&kt_name_0, - &kt_loc_0, subst_map_ref_0, &v_43, 0), _fx_catch_9); + &kt_loc_0, subst_map_ref_0, &v_51, 0), _fx_catch_9); FX_CALL( _fx_M6K_formFM9walk_ktypN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(kt_typ_0, &kt_loc_0, callb_0, - &v_37, 0), _fx_catch_9); + &v_45, 0), _fx_catch_9); FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - kt_scope_0, &kt_loc_0, *km_idx_0, subst_map_ref_0, &v_38, 0), _fx_catch_9); - _fx_make_R17K_form__kdeftyp_t(&v_43, &v_42->kt_cname, &v_42->kt_proto, &v_42->kt_props, v_42->kt_targs, v_37, v_38, - &v_42->kt_loc, &v_39); - FX_CALL(_fx_make_rR17K_form__kdeftyp_t(&v_39, &new_kt_0), _fx_catch_9); - bool t_2; + kt_scope_0, &kt_loc_0, *km_idx_0, subst_map_ref_0, &v_46, 0), _fx_catch_9); + _fx_make_R17K_form__kdeftyp_t(&v_51, &v_50->kt_cname, &v_50->kt_proto, &v_50->kt_props, v_50->kt_targs, v_45, v_46, + &v_50->kt_loc, &v_47); + FX_CALL(_fx_make_rR17K_form__kdeftyp_t(&v_47, &new_kt_0), _fx_catch_9); + bool v_52; if (kt_name_0.m != *km_idx_0) { - _fx_R9Ast__id_t v_44 = new_kt_0->data.kt_proto; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_44, &_fx_g9Ast__noid, &t_2, 0), _fx_catch_9); + _fx_R17K_form__kdeftyp_t* v_53 = &new_kt_0->data; + _fx_R9Ast__id_t v_54 = v_53->kt_proto; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_54, &_fx_g9Ast__noid, &v_52, 0), _fx_catch_9); } else { - t_2 = false; + v_52 = false; } - if (t_2) { - new_kt_0->data.kt_proto = kt_name_0; + if (v_52) { + _fx_R17K_form__kdeftyp_t* v_55 = &new_kt_0->data; v_55->kt_proto = kt_name_0; } - _fx_R9Ast__id_t v_45 = new_kt_0->data.kt_name; - _fx_M6K_formFM4KTypN15K_form__kinfo_t1rRM9kdeftyp_t(new_kt_0, &v_40); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_45, &v_40, 0), _fx_catch_9); + _fx_R17K_form__kdeftyp_t* v_56 = &new_kt_0->data; + _fx_R9Ast__id_t v_57 = v_56->kt_name; + _fx_M6K_formFM4KTypN15K_form__kinfo_t1rRM9kdeftyp_t(new_kt_0, &v_48); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_57, &v_48, 0), _fx_catch_9); FX_CALL(_fx_M6K_formFM7KDefTypN14K_form__kexp_t1rRM9kdeftyp_t(new_kt_0, fx_result), _fx_catch_9); _fx_catch_9: ; - _fx_free_N15K_form__kinfo_t(&v_40); + _fx_free_N15K_form__kinfo_t(&v_48); if (new_kt_0) { _fx_free_rR17K_form__kdeftyp_t(&new_kt_0); } - _fx_free_R17K_form__kdeftyp_t(&v_39); - FX_FREE_LIST_SIMPLE(&v_38); - if (v_37) { - _fx_free_N14K_form__ktyp_t(&v_37); + _fx_free_R17K_form__kdeftyp_t(&v_47); + FX_FREE_LIST_SIMPLE(&v_46); + if (v_45) { + _fx_free_N14K_form__ktyp_t(&v_45); } if (kt_typ_0) { _fx_free_N14K_form__ktyp_t(&kt_typ_0); @@ -7930,82 +7806,83 @@ static int _fx_M8K_inlineFM11subst_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_ else if (tag_0 == 35) { _fx_LN12Ast__scope_t ki_scope_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t ki_all_methods_0 = 0; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_46 = 0; - _fx_LN12Ast__scope_t v_47 = 0; - _fx_R23K_form__kdefinterface_t v_48 = {0}; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_58 = 0; + _fx_LN12Ast__scope_t v_59 = 0; + _fx_R23K_form__kdefinterface_t v_60 = {0}; _fx_rR23K_form__kdefinterface_t new_ki_0 = 0; - _fx_N15K_form__kinfo_t v_49 = {0}; + _fx_N15K_form__kinfo_t v_61 = {0}; _fx_rR23K_form__kdefinterface_t ki_0 = e_0->u.KDefInterface; - _fx_R23K_form__kdefinterface_t* v_50 = &ki_0->data; - _fx_R10Ast__loc_t ki_loc_0 = v_50->ki_loc; - FX_COPY_PTR(v_50->ki_scope, &ki_scope_0); - FX_COPY_PTR(v_50->ki_all_methods, &ki_all_methods_0); - _fx_R9Ast__id_t ki_id_0 = v_50->ki_id; - _fx_R9Ast__id_t ki_base_0 = v_50->ki_base; - _fx_R9Ast__id_t ki_name_0 = v_50->ki_name; - _fx_R23K_form__kdefinterface_t* v_51 = &ki_0->data; - _fx_R9Ast__id_t v_52; + _fx_R23K_form__kdefinterface_t* v_62 = &ki_0->data; + _fx_R10Ast__loc_t ki_loc_0 = v_62->ki_loc; + FX_COPY_PTR(v_62->ki_scope, &ki_scope_0); + FX_COPY_PTR(v_62->ki_all_methods, &ki_all_methods_0); + _fx_R9Ast__id_t ki_id_0 = v_62->ki_id; + _fx_R9Ast__id_t ki_base_0 = v_62->ki_base; + _fx_R9Ast__id_t ki_name_0 = v_62->ki_name; + _fx_R23K_form__kdefinterface_t* v_63 = &ki_0->data; + _fx_R9Ast__id_t v_64; FX_CALL( _fx_M8K_inlineFM9subst_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_trNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&ki_name_0, - &ki_loc_0, subst_map_ref_0, &v_52, 0), _fx_catch_11); - _fx_R9Ast__id_t v_53; + &ki_loc_0, subst_map_ref_0, &v_64, 0), _fx_catch_11); + _fx_R9Ast__id_t v_65; FX_CALL( _fx_M8K_inlineFM9subst_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_trNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&ki_base_0, - &ki_loc_0, subst_map_ref_0, &v_53, 0), _fx_catch_11); - _fx_R9Ast__id_t v_54; + &ki_loc_0, subst_map_ref_0, &v_65, 0), _fx_catch_11); + _fx_R9Ast__id_t v_66; FX_CALL( _fx_M8K_inlineFM9subst_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_trNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&ki_id_0, - &ki_loc_0, subst_map_ref_0, &v_54, 0), _fx_catch_11); + &ki_loc_0, subst_map_ref_0, &v_66, 0), _fx_catch_11); _fx_LT2R9Ast__id_tN14K_form__ktyp_t lstend_4 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_4 = ki_all_methods_0; for (; lst_4; lst_4 = lst_4->tl) { - _fx_N14K_form__ktyp_t t_3 = 0; - _fx_N14K_form__ktyp_t v_55 = 0; + _fx_N14K_form__ktyp_t t_1 = 0; + _fx_N14K_form__ktyp_t v_67 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t tup_2 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___2 = &lst_4->hd; _fx_R9Ast__id_t f_0 = __pat___2->t0; - FX_COPY_PTR(__pat___2->t1, &t_3); - _fx_R9Ast__id_t v_56; + FX_COPY_PTR(__pat___2->t1, &t_1); + _fx_R9Ast__id_t v_68; FX_CALL( _fx_M8K_inlineFM9subst_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_trNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&f_0, - &ki_loc_0, subst_map_ref_0, &v_56, 0), _fx_catch_10); + &ki_loc_0, subst_map_ref_0, &v_68, 0), _fx_catch_10); FX_CALL( - _fx_M6K_formFM9walk_ktypN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(t_3, &ki_loc_0, callb_0, &v_55, + _fx_M6K_formFM9walk_ktypN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(t_1, &ki_loc_0, callb_0, &v_67, 0), _fx_catch_10); - _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&v_56, v_55, &tup_2); + _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&v_68, v_67, &tup_2); _fx_LT2R9Ast__id_tN14K_form__ktyp_t node_4 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&tup_2, 0, false, &node_4), _fx_catch_10); - FX_LIST_APPEND(v_46, lstend_4, node_4); + FX_LIST_APPEND(v_58, lstend_4, node_4); _fx_catch_10: ; _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&tup_2); - if (v_55) { - _fx_free_N14K_form__ktyp_t(&v_55); + if (v_67) { + _fx_free_N14K_form__ktyp_t(&v_67); } - if (t_3) { - _fx_free_N14K_form__ktyp_t(&t_3); + if (t_1) { + _fx_free_N14K_form__ktyp_t(&t_1); } FX_CHECK_EXN(_fx_catch_11); } FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - ki_scope_0, &ki_loc_0, *km_idx_0, subst_map_ref_0, &v_47, 0), _fx_catch_11); - _fx_make_R23K_form__kdefinterface_t(&v_52, &v_53, &v_51->ki_cname, &v_54, v_46, v_47, &v_51->ki_loc, &v_48); - FX_CALL(_fx_make_rR23K_form__kdefinterface_t(&v_48, &new_ki_0), _fx_catch_11); - _fx_R9Ast__id_t v_57 = new_ki_0->data.ki_name; - _fx_M6K_formFM10KInterfaceN15K_form__kinfo_t1rRM15kdefinterface_t(new_ki_0, &v_49); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_57, &v_49, 0), _fx_catch_11); + ki_scope_0, &ki_loc_0, *km_idx_0, subst_map_ref_0, &v_59, 0), _fx_catch_11); + _fx_make_R23K_form__kdefinterface_t(&v_64, &v_65, &v_63->ki_cname, &v_66, v_58, v_59, &v_63->ki_loc, &v_60); + FX_CALL(_fx_make_rR23K_form__kdefinterface_t(&v_60, &new_ki_0), _fx_catch_11); + _fx_R23K_form__kdefinterface_t* v_69 = &new_ki_0->data; + _fx_R9Ast__id_t v_70 = v_69->ki_name; + _fx_M6K_formFM10KInterfaceN15K_form__kinfo_t1rRM15kdefinterface_t(new_ki_0, &v_61); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_70, &v_61, 0), _fx_catch_11); FX_CALL(_fx_M6K_formFM13KDefInterfaceN14K_form__kexp_t1rRM15kdefinterface_t(new_ki_0, fx_result), _fx_catch_11); _fx_catch_11: ; - _fx_free_N15K_form__kinfo_t(&v_49); + _fx_free_N15K_form__kinfo_t(&v_61); if (new_ki_0) { _fx_free_rR23K_form__kdefinterface_t(&new_ki_0); } - _fx_free_R23K_form__kdefinterface_t(&v_48); - FX_FREE_LIST_SIMPLE(&v_47); - if (v_46) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_46); + _fx_free_R23K_form__kdefinterface_t(&v_60); + FX_FREE_LIST_SIMPLE(&v_59); + if (v_58) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_58); } if (ki_all_methods_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&ki_all_methods_0); @@ -8016,52 +7893,52 @@ static int _fx_M8K_inlineFM11subst_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_ _fx_LN12Ast__scope_t kcv_scope_0 = 0; _fx_LR9Ast__id_t kcv_orig_freevars_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t kcv_freevars_0 = 0; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_58 = 0; - _fx_LR9Ast__id_t v_59 = 0; - _fx_LN12Ast__scope_t v_60 = 0; - _fx_R25K_form__kdefclosurevars_t v_61 = {0}; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_71 = 0; + _fx_LR9Ast__id_t v_72 = 0; + _fx_LN12Ast__scope_t v_73 = 0; + _fx_R25K_form__kdefclosurevars_t v_74 = {0}; _fx_rR25K_form__kdefclosurevars_t new_kcv_0 = 0; - _fx_N15K_form__kinfo_t v_62 = {0}; + _fx_N15K_form__kinfo_t v_75 = {0}; _fx_rR25K_form__kdefclosurevars_t kcv_0 = e_0->u.KDefClosureVars; - _fx_R25K_form__kdefclosurevars_t* v_63 = &kcv_0->data; - _fx_R10Ast__loc_t kcv_loc_0 = v_63->kcv_loc; - FX_COPY_PTR(v_63->kcv_scope, &kcv_scope_0); - FX_COPY_PTR(v_63->kcv_orig_freevars, &kcv_orig_freevars_0); - FX_COPY_PTR(v_63->kcv_freevars, &kcv_freevars_0); - _fx_R9Ast__id_t kcv_name_0 = v_63->kcv_name; - _fx_R25K_form__kdefclosurevars_t* v_64 = &kcv_0->data; - _fx_R9Ast__id_t v_65; + _fx_R25K_form__kdefclosurevars_t* v_76 = &kcv_0->data; + _fx_R10Ast__loc_t kcv_loc_0 = v_76->kcv_loc; + FX_COPY_PTR(v_76->kcv_scope, &kcv_scope_0); + FX_COPY_PTR(v_76->kcv_orig_freevars, &kcv_orig_freevars_0); + FX_COPY_PTR(v_76->kcv_freevars, &kcv_freevars_0); + _fx_R9Ast__id_t kcv_name_0 = v_76->kcv_name; + _fx_R25K_form__kdefclosurevars_t* v_77 = &kcv_0->data; + _fx_R9Ast__id_t v_78; FX_CALL( _fx_M8K_inlineFM9subst_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_trNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&kcv_name_0, - &kcv_loc_0, subst_map_ref_0, &v_65, 0), _fx_catch_14); + &kcv_loc_0, subst_map_ref_0, &v_78, 0), _fx_catch_14); _fx_LT2R9Ast__id_tN14K_form__ktyp_t lstend_5 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_5 = kcv_freevars_0; for (; lst_5; lst_5 = lst_5->tl) { - _fx_N14K_form__ktyp_t t_4 = 0; - _fx_N14K_form__ktyp_t v_66 = 0; + _fx_N14K_form__ktyp_t t_2 = 0; + _fx_N14K_form__ktyp_t v_79 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t tup_3 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___3 = &lst_5->hd; _fx_R9Ast__id_t n_3 = __pat___3->t0; - FX_COPY_PTR(__pat___3->t1, &t_4); - _fx_R9Ast__id_t v_67; + FX_COPY_PTR(__pat___3->t1, &t_2); + _fx_R9Ast__id_t v_80; FX_CALL( _fx_M8K_inlineFM9subst_id_R9Ast__id_t3R9Ast__id_tR10Ast__loc_trNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t(&n_3, - &kcv_loc_0, subst_map_ref_0, &v_67, 0), _fx_catch_12); + &kcv_loc_0, subst_map_ref_0, &v_80, 0), _fx_catch_12); FX_CALL( - _fx_M6K_formFM9walk_ktypN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(t_4, &kcv_loc_0, callb_0, - &v_66, 0), _fx_catch_12); - _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&v_67, v_66, &tup_3); + _fx_M6K_formFM9walk_ktypN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tRM9k_callb_t(t_2, &kcv_loc_0, callb_0, + &v_79, 0), _fx_catch_12); + _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&v_80, v_79, &tup_3); _fx_LT2R9Ast__id_tN14K_form__ktyp_t node_5 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&tup_3, 0, false, &node_5), _fx_catch_12); - FX_LIST_APPEND(v_58, lstend_5, node_5); + FX_LIST_APPEND(v_71, lstend_5, node_5); _fx_catch_12: ; _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&tup_3); - if (v_66) { - _fx_free_N14K_form__ktyp_t(&v_66); + if (v_79) { + _fx_free_N14K_form__ktyp_t(&v_79); } - if (t_4) { - _fx_free_N14K_form__ktyp_t(&t_4); + if (t_2) { + _fx_free_N14K_form__ktyp_t(&t_2); } FX_CHECK_EXN(_fx_catch_14); } @@ -8075,31 +7952,32 @@ static int _fx_M8K_inlineFM11subst_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_ &kcv_loc_0, subst_map_ref_0, &res_2, 0), _fx_catch_13); _fx_LR9Ast__id_t node_6 = 0; FX_CALL(_fx_cons_LR9Ast__id_t(&res_2, 0, false, &node_6), _fx_catch_13); - FX_LIST_APPEND(v_59, lstend_6, node_6); + FX_LIST_APPEND(v_72, lstend_6, node_6); _fx_catch_13: ; FX_CHECK_EXN(_fx_catch_14); } FX_CALL( _fx_M8K_inlineFM11subst_scopeLN12Ast__scope_t4LN12Ast__scope_tR10Ast__loc_tirNt10Hashmap__t2R9Ast__id_tN14K_form__atom_t( - kcv_scope_0, &kcv_loc_0, *km_idx_0, subst_map_ref_0, &v_60, 0), _fx_catch_14); - _fx_make_R25K_form__kdefclosurevars_t(&v_65, &v_64->kcv_cname, v_58, v_59, v_60, &v_64->kcv_loc, &v_61); - FX_CALL(_fx_make_rR25K_form__kdefclosurevars_t(&v_61, &new_kcv_0), _fx_catch_14); - _fx_R9Ast__id_t v_68 = new_kcv_0->data.kcv_name; - _fx_M6K_formFM12KClosureVarsN15K_form__kinfo_t1rRM17kdefclosurevars_t(new_kcv_0, &v_62); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_68, &v_62, 0), _fx_catch_14); + kcv_scope_0, &kcv_loc_0, *km_idx_0, subst_map_ref_0, &v_73, 0), _fx_catch_14); + _fx_make_R25K_form__kdefclosurevars_t(&v_78, &v_77->kcv_cname, v_71, v_72, v_73, &v_77->kcv_loc, &v_74); + FX_CALL(_fx_make_rR25K_form__kdefclosurevars_t(&v_74, &new_kcv_0), _fx_catch_14); + _fx_R25K_form__kdefclosurevars_t* v_81 = &new_kcv_0->data; + _fx_R9Ast__id_t v_82 = v_81->kcv_name; + _fx_M6K_formFM12KClosureVarsN15K_form__kinfo_t1rRM17kdefclosurevars_t(new_kcv_0, &v_75); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_82, &v_75, 0), _fx_catch_14); FX_CALL(_fx_M6K_formFM15KDefClosureVarsN14K_form__kexp_t1rRM17kdefclosurevars_t(new_kcv_0, fx_result), _fx_catch_14); _fx_catch_14: ; - _fx_free_N15K_form__kinfo_t(&v_62); + _fx_free_N15K_form__kinfo_t(&v_75); if (new_kcv_0) { _fx_free_rR25K_form__kdefclosurevars_t(&new_kcv_0); } - _fx_free_R25K_form__kdefclosurevars_t(&v_61); - FX_FREE_LIST_SIMPLE(&v_60); - FX_FREE_LIST_SIMPLE(&v_59); - if (v_58) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_58); + _fx_free_R25K_form__kdefclosurevars_t(&v_74); + FX_FREE_LIST_SIMPLE(&v_73); + FX_FREE_LIST_SIMPLE(&v_72); + if (v_71) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_71); } if (kcv_freevars_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&kcv_freevars_0); @@ -8145,10 +8023,11 @@ static int _fx_M8K_inlineFM10__lambda__v1R9Ast__id_t(struct _fx_R9Ast__id_t* i_0 _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(*subst_map_0, i_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, idx_0), _fx_cleanup); - _fx_N14K_form__atom_t* v_1 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, idx_0)->data; - _fx_free_N14K_form__atom_t(v_1); - _fx_copy_N14K_form__atom_t(&v_0, v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_1 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, idx_0); + _fx_N14K_form__atom_t* v_2 = &v_1->data; + _fx_free_N14K_form__atom_t(v_2); + _fx_copy_N14K_form__atom_t(&v_0, v_2); } _fx_cleanup: ; @@ -8199,42 +8078,43 @@ static int _fx_M8K_inlineFM12__lambda__1_v1R9Ast__id_t(struct _fx_R9Ast__id_t* i int_ j_0 = v_8.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*subst_map_0)->u.t.t5, 0, j_0), _fx_catch_1); - _fx_copy_N14K_form__atom_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0)->data, &v_2); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, (*subst_map_0)->u.t.t5, j_0); + _fx_copy_N14K_form__atom_t(&v_9->data, &v_2); _fx_M8K_inlineFM4SomeNt6option1N14K_form__atom_t1N14K_form__atom_t(&v_2, &v_1); } else { _fx_copy_Nt6option1N14K_form__atom_t(&_fx_g16K_inline__None4_, &v_1); } int tag_0 = v_1.tag; - _fx_R9Ast__id_t v_9; + _fx_R9Ast__id_t v_10; if (tag_0 == 2) { - _fx_N14K_form__atom_t* v_10 = &v_1.u.Some; - if (v_10->tag == 1) { - v_9 = v_10->u.AtomId; goto _fx_endmatch_0; + _fx_N14K_form__atom_t* v_11 = &v_1.u.Some; + if (v_11->tag == 1) { + v_10 = v_11->u.AtomId; goto _fx_endmatch_0; } } if (tag_0 == 2) { - fx_str_t v_11 = {0}; fx_str_t v_12 = {0}; - fx_exn_t v_13 = {0}; - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kv_name_0, &kv_loc_0, &v_11, 0), _fx_catch_0); + fx_str_t v_13 = {0}; + fx_exn_t v_14 = {0}; + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kv_name_0, &kv_loc_0, &v_12, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("id is expected to be produced after renaming \'"); fx_str_t slit_1 = FX_MAKE_STR("\', not literal"); { - const fx_str_t strs_0[] = { slit_0, v_11, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_12), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_12, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_13), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kv_loc_0, &v_12, &v_13, 0), _fx_catch_0); - FX_THROW(&v_13, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kv_loc_0, &v_13, &v_14, 0), _fx_catch_0); + FX_THROW(&v_14, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_13); + fx_free_exn(&v_14); + FX_FREE_STR(&v_13); FX_FREE_STR(&v_12); - FX_FREE_STR(&v_11); goto _fx_endmatch_0; } - v_9 = kv_name_0; + v_10 = kv_name_0; _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_1); @@ -8249,10 +8129,10 @@ static int _fx_M8K_inlineFM12__lambda__1_v1R9Ast__id_t(struct _fx_R9Ast__id_t* i kv_flags_0.val_flag_tempref, kv_flags_0.val_flag_private, kv_flags_0.val_flag_subarray, kv_flags_0.val_flag_instance, &kv_flags_0.val_flag_method, kv_flags_0.val_flag_ctor, v_5, &v_6); fx_str_t slit_2 = FX_MAKE_STR(""); - _fx_make_R17K_form__kdefval_t(&v_9, &slit_2, v_3, &v_6, &kv_loc_0, &new_kv_0); - _fx_R9Ast__id_t v_14 = new_kv_0.kv_name; + _fx_make_R17K_form__kdefval_t(&v_10, &slit_2, v_3, &v_6, &kv_loc_0, &new_kv_0); + _fx_R9Ast__id_t v_15 = new_kv_0.kv_name; _fx_M6K_formFM4KValN15K_form__kinfo_t1RM9kdefval_t(&new_kv_0, &v_7); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_14, &v_7, 0), _fx_catch_1); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&v_15, &v_7, 0), _fx_catch_1); _fx_catch_1: ; _fx_free_N15K_form__kinfo_t(&v_7); @@ -8357,10 +8237,11 @@ FX_EXTERN_C int _fx_M8K_inlineFM11expand_callT2N14K_form__kexp_tB2iN14K_form__ke _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tN14K_form__atom_tR9Ast__id_t(subst_map_0, formal_arg_0, &idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1(subst_map_0->u.t.t5, 0, idx_0), _fx_catch_0); - _fx_N14K_form__atom_t* v_7 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, subst_map_0->u.t.t5, idx_0)->data; - _fx_free_N14K_form__atom_t(v_7); - _fx_copy_N14K_form__atom_t(real_arg_0, v_7); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t* v_7 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tN14K_form__atom_t, subst_map_0->u.t.t5, idx_0); + _fx_N14K_form__atom_t* v_8 = &v_7->data; + _fx_free_N14K_form__atom_t(v_8); + _fx_copy_N14K_form__atom_t(real_arg_0, v_8); _fx_catch_0: ; FX_CHECK_EXN(_fx_catch_2); @@ -8371,32 +8252,36 @@ FX_EXTERN_C int _fx_M8K_inlineFM11expand_callT2N14K_form__kexp_tB2iN14K_form__ke FX_CALL(_fx_M6K_formFM8declaredNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_4, 256, &decl_set_0, 0), _fx_catch_2); fx_copy_arr(&decl_set_0->u.t.t5, &table_0); bool ok_0 = false; - int_ v_8 = decl_set_0->u.t.t2; - for (int_ j_0 = 0; j_0 < v_8; j_0++) { - _fx_N15K_form__kinfo_t v_9 = {0}; + int_ v_9 = decl_set_0->u.t.t2; + for (int_ j_0 = 0; j_0 < v_9; j_0++) { + _fx_N15K_form__kinfo_t v_10 = {0}; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_1); - bool v_10; - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_11 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + bool v_12; + if (v_11->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_1); - _fx_R9Ast__id_t v_11 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(&v_11, loc_0, &v_9, 0), _fx_catch_1); - if (v_9.tag == 2) { - v_10 = false; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_13 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_14 = v_13->key; + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(&v_14, loc_0, &v_10, 0), _fx_catch_1); + if (v_10.tag == 2) { + v_12 = false; } else { - v_10 = true; + v_12 = true; } FX_CHECK_EXN(_fx_catch_1); } else { - v_10 = false; + v_12 = false; } - if (v_10) { + if (v_12) { ok_0 = true; FX_BREAK(_fx_catch_1); } _fx_catch_1: ; - _fx_free_N15K_form__kinfo_t(&v_9); + _fx_free_N15K_form__kinfo_t(&v_10); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_2); } @@ -8540,7 +8425,9 @@ FX_EXTERN_C int _fx_M8K_inlineFM11inline_someLR17K_form__kmodule_t1LR17K_form__k _fx_R21K_inline__func_info_t v_11 = { _fx_g9Ast__noid, false, 0, 0, v_10, *curr_km_idx_0 }; FX_CALL(_fx_make_rR21K_inline__func_info_t(&v_11, &curr_fi_arg_0), _fx_cleanup); FX_CALL(_fx_make_rrR21K_inline__func_info_t(curr_fi_arg_0, &curr_fi_ref_0), _fx_cleanup); + _fx_rR21K_inline__func_info_t* curr_fi_0 = &curr_fi_ref_0->data; FX_CALL(_fx_make_rB(false, &curr_km_main_ref_0), _fx_cleanup); + bool* curr_km_main_0 = &curr_km_main_ref_0->data; _fx_M8K_inlineFM7make_fpFPv3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t2rNt10Hashmap__t2R9Ast__id_trRM11func_info_tri( all_funcs_info_ref_0, curr_km_idx_ref_0, &fold_finfo_atom__0); _fx_M8K_inlineFM7make_fpFPv2N14K_form__kexp_tR22K_form__k_fold_callb_t3rNt10Hashmap__t2R9Ast__id_trRM11func_info_trrRM11func_info_tri( @@ -8630,10 +8517,9 @@ FX_EXTERN_C int _fx_M8K_inlineFM11inline_someLR17K_form__kmodule_t1LR17K_form__k int_ km_idx_1 = km_1->km_idx; FX_COPY_PTR(km_1->km_top, &km_top_2); FX_CALL(_fx_M8K_inlineFM21gen_default_func_inforRM11func_info_t2iri(0, curr_km_idx_ref_0, &v_12, 0), _fx_catch_4); - _fx_rR21K_inline__func_info_t* curr_fi_0 = &curr_fi_ref_0->data; FX_FREE_REF_SIMPLE(curr_fi_0); FX_COPY_PTR(v_12, curr_fi_0); - curr_km_main_ref_0->data = km_main_0; + *curr_km_main_0 = km_main_0; *curr_km_idx_0 = km_idx_1; _fx_LN14K_form__kexp_t lstend_2 = 0; _fx_LN14K_form__kexp_t lst_5 = km_top_2; @@ -8721,9 +8607,10 @@ static int _fx_M8K_inlineFM21gen_default_func_inforRM11func_info_t2iri( void* fx_fv) { int fx_status = 0; + int_* curr_km_idx_0 = &curr_km_idx_ref_0->data; _fx_R16Ast__fun_flags_t v_0; FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_0, 0), _fx_cleanup); - _fx_R21K_inline__func_info_t v_1 = { _fx_g9Ast__noid, false, 0, nrefs_0, v_0, curr_km_idx_ref_0->data }; + _fx_R21K_inline__func_info_t v_1 = { _fx_g9Ast__noid, false, 0, nrefs_0, v_0, *curr_km_idx_0 }; FX_CALL(_fx_make_rR21K_inline__func_info_t(&v_1, fx_result), _fx_cleanup); _fx_cleanup: ; @@ -8740,6 +8627,7 @@ static int _fx_M8K_inlineFM16fold_finfo_atom_v3N14K_form__atom_tR10Ast__loc_tR22 _fx_M8K_inlineFM16fold_finfo_atom_v3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t_cldata_t* cv_0 = (_fx_M8K_inlineFM16fold_finfo_atom_v3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t_cldata_t*)fx_fv; _fx_Nt10Hashmap__t2R9Ast__id_trR21K_inline__func_info_t* all_funcs_info_0 = &cv_0->t0->data; + int_* curr_km_idx_0 = &cv_0->t1->data; if (a_0->tag == 1) { _fx_N15K_form__kinfo_t v_0 = {0}; _fx_R9Ast__id_t* f_0 = &a_0->u.AtomId; @@ -8755,24 +8643,28 @@ static int _fx_M8K_inlineFM16fold_finfo_atom_v3N14K_form__atom_tR10Ast__loc_tR22 _fx_M8K_inlineFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_trRM11func_info_tR9Ast__id_t(*all_funcs_info_0, f_0, &idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1((*all_funcs_info_0)->u.t.t5, 0, idx_0), _fx_catch_0); - FX_COPY_PTR( - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, - idx_0)->data, &r_fi_0); - if (r_fi_0->data.fi_nrefs == -1) { - _fx_R16Ast__fun_flags_t v_2; - FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_2, 0), _fx_catch_0); - _fx_R21K_inline__func_info_t v_3 = { _fx_g9Ast__noid, false, 0, 0, v_2, cv_0->t1->data }; - FX_CALL(_fx_make_rR21K_inline__func_info_t(&v_3, &v_1), _fx_catch_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, idx_0); + FX_COPY_PTR(v_2->data, &r_fi_0); + _fx_R21K_inline__func_info_t* v_3 = &r_fi_0->data; + if (v_3->fi_nrefs == -1) { + _fx_R16Ast__fun_flags_t v_4; + FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_4, 0), _fx_catch_0); + _fx_R21K_inline__func_info_t v_5 = { _fx_g9Ast__noid, false, 0, 0, v_4, *curr_km_idx_0 }; + FX_CALL(_fx_make_rR21K_inline__func_info_t(&v_5, &v_1), _fx_catch_0); FX_FREE_REF_SIMPLE(&r_fi_0); FX_COPY_PTR(v_1, &r_fi_0); FX_CHKIDX(FX_CHKIDX1((*all_funcs_info_0)->u.t.t5, 0, idx_0), _fx_catch_0); - _fx_rR21K_inline__func_info_t* v_4 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, - idx_0)->data; - FX_FREE_REF_SIMPLE(v_4); - FX_COPY_PTR(r_fi_0, v_4); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_6 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, + idx_0); + _fx_rR21K_inline__func_info_t* v_7 = &v_6->data; + FX_FREE_REF_SIMPLE(v_7); + FX_COPY_PTR(r_fi_0, v_7); } - r_fi_0->data.fi_nrefs = r_fi_0->data.fi_nrefs + 1; + _fx_R21K_inline__func_info_t* v_8 = &r_fi_0->data; + _fx_R21K_inline__func_info_t* v_9 = &r_fi_0->data; + v_9->fi_nrefs = v_8->fi_nrefs + 1; _fx_catch_0: ; FX_FREE_REF_SIMPLE(&v_1); @@ -8811,6 +8703,7 @@ static int _fx_M8K_inlineFM16fold_finfo_kexp_v2N14K_form__kexp_tR22K_form__k_fol (_fx_M8K_inlineFM16fold_finfo_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t*)fx_fv; _fx_Nt10Hashmap__t2R9Ast__id_trR21K_inline__func_info_t* all_funcs_info_0 = &cv_0->t0->data; _fx_rR21K_inline__func_info_t* curr_fi_0 = &cv_0->t1->data; + int_* curr_km_idx_0 = &cv_0->t2->data; int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 32) { _fx_R17K_form__kdeffun_t v_0 = {0}; @@ -8842,32 +8735,35 @@ static int _fx_M8K_inlineFM16fold_finfo_kexp_v2N14K_form__kexp_tR22K_form__k_fol int_ fsize_0; FX_CALL(_fx_M8K_inlineFM13calc_exp_sizei1N14K_form__kexp_t(v_0.kf_body, &fsize_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1((*all_funcs_info_0)->u.t.t5, 0, idx_0), _fx_catch_0); - FX_COPY_PTR( - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, idx_0)->data, - &r_fi_0); - if (r_fi_0->data.fi_nrefs == -1) { - _fx_R16Ast__fun_flags_t v_3; - FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_3, 0), _fx_catch_0); - _fx_R21K_inline__func_info_t v_4 = { _fx_g9Ast__noid, false, 0, 0, v_3, cv_0->t2->data }; - FX_CALL(_fx_make_rR21K_inline__func_info_t(&v_4, &v_1), _fx_catch_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, idx_0); + FX_COPY_PTR(v_3->data, &r_fi_0); + _fx_R21K_inline__func_info_t* v_4 = &r_fi_0->data; + if (v_4->fi_nrefs == -1) { + _fx_R16Ast__fun_flags_t v_5; + FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_5, 0), _fx_catch_0); + _fx_R21K_inline__func_info_t v_6 = { _fx_g9Ast__noid, false, 0, 0, v_5, *curr_km_idx_0 }; + FX_CALL(_fx_make_rR21K_inline__func_info_t(&v_6, &v_1), _fx_catch_0); FX_FREE_REF_SIMPLE(&r_fi_0); FX_COPY_PTR(v_1, &r_fi_0); FX_CHKIDX(FX_CHKIDX1((*all_funcs_info_0)->u.t.t5, 0, idx_0), _fx_catch_0); - _fx_rR21K_inline__func_info_t* v_5 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, - idx_0)->data; - FX_FREE_REF_SIMPLE(v_5); - FX_COPY_PTR(r_fi_0, v_5); - } - _fx_R21K_inline__func_info_t* v_6 = &r_fi_0->data; - _fx_R21K_inline__func_info_t v_7 = { *kf_name_0, can_inline_0, fsize_0, v_6->fi_nrefs, *kf_flags_0, v_6->fi_km_idx }; - r_fi_0->data = v_7; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_7 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, idx_0); + _fx_rR21K_inline__func_info_t* v_8 = &v_7->data; + FX_FREE_REF_SIMPLE(v_8); + FX_COPY_PTR(r_fi_0, v_8); + } + _fx_R21K_inline__func_info_t* v_9 = &r_fi_0->data; + _fx_R21K_inline__func_info_t v_10 = { *kf_name_0, can_inline_0, fsize_0, v_9->fi_nrefs, *kf_flags_0, v_9->fi_km_idx }; + _fx_R21K_inline__func_info_t* v_11 = &r_fi_0->data; + *v_11 = v_10; FX_FREE_REF_SIMPLE(curr_fi_0); FX_COPY_PTR(r_fi_0, curr_fi_0); FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(e_0, callb_0, 0), _fx_catch_0); FX_FREE_REF_SIMPLE(curr_fi_0); FX_COPY_PTR(saved_fi_0, curr_fi_0); - (*curr_fi_0)->data.fi_can_inline = false; + _fx_R21K_inline__func_info_t* v_12 = &(*curr_fi_0)->data; + v_12->fi_can_inline = false; _fx_catch_0: ; FX_FREE_REF_SIMPLE(&v_1); @@ -8876,7 +8772,7 @@ static int _fx_M8K_inlineFM16fold_finfo_kexp_v2N14K_form__kexp_tR22K_form__k_fol _fx_free_R17K_form__kdeffun_t(&v_0); } else if (tag_0 == 4) { - (*curr_fi_0)->data.fi_can_inline = false; + _fx_R21K_inline__func_info_t* v_13 = &(*curr_fi_0)->data; v_13->fi_can_inline = false; } else { FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(e_0, callb_0, 0), _fx_catch_1); _fx_catch_1: ; @@ -8913,6 +8809,7 @@ static int _fx_M8K_inlineFM12inline_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K _fx_Nt10Hashmap__t2R9Ast__id_trR21K_inline__func_info_t* all_funcs_info_0 = &cv_0->t0->data; _fx_rR21K_inline__func_info_t* curr_fi_0 = &cv_0->t1->data; int_* curr_km_idx_0 = &cv_0->t2->data; + bool* curr_km_main_0 = &cv_0->t3->data; int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 32) { _fx_N14K_form__kexp_t kf_body_0 = 0; @@ -8935,9 +8832,9 @@ static int _fx_M8K_inlineFM12inline_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K int_ j_0 = v_4.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*all_funcs_info_0)->u.t.t5, 0, j_0), _fx_catch_1); - FX_COPY_PTR( - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, - j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_5 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, j_0); + FX_COPY_PTR(v_5->data, &v_1); _fx_M8K_inlineFM4SomeNt6option1rRM11func_info_t1rRM11func_info_t(v_1, &v_0); } else { @@ -8947,13 +8844,13 @@ static int _fx_M8K_inlineFM12inline_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K FX_COPY_PTR(v_0.u.Some, &r_fi_0); } else { - fx_exn_t v_5 = {0}; + fx_exn_t v_6 = {0}; fx_str_t slit_0 = FX_MAKE_STR("inline: function is not found the collected function database"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &slit_0, &v_5, 0), _fx_catch_0); - FX_THROW(&v_5, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &slit_0, &v_6, 0), _fx_catch_0); + FX_THROW(&v_6, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_5); + fx_free_exn(&v_6); } FX_CHECK_EXN(_fx_catch_1); FX_FREE_REF_SIMPLE(curr_fi_0); @@ -8961,12 +8858,12 @@ static int _fx_M8K_inlineFM12inline_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K FX_CALL( _fx_M8K_inlineFM12inline_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t(kf_body_0, callb_0, &new_body_0, fx_fv), _fx_catch_1); - _fx_R17K_form__kdeffun_t* v_6 = &kf_0->data; - _fx_make_R17K_form__kdeffun_t(&v_6->kf_name, &v_6->kf_cname, v_6->kf_params, v_6->kf_rt, new_body_0, &v_6->kf_flags, - &v_6->kf_closure, v_6->kf_scope, &v_6->kf_loc, &v_2); _fx_R17K_form__kdeffun_t* v_7 = &kf_0->data; - _fx_free_R17K_form__kdeffun_t(v_7); - _fx_copy_R17K_form__kdeffun_t(&v_2, v_7); + _fx_make_R17K_form__kdeffun_t(&v_7->kf_name, &v_7->kf_cname, v_7->kf_params, v_7->kf_rt, new_body_0, &v_7->kf_flags, + &v_7->kf_closure, v_7->kf_scope, &v_7->kf_loc, &v_2); + _fx_R17K_form__kdeffun_t* v_8 = &kf_0->data; + _fx_free_R17K_form__kdeffun_t(v_8); + _fx_copy_R17K_form__kdeffun_t(&v_2, v_8); FX_FREE_REF_SIMPLE(curr_fi_0); FX_COPY_PTR(saved_fi_0, curr_fi_0); FX_COPY_PTR(e_0, fx_result); @@ -8988,42 +8885,44 @@ static int _fx_M8K_inlineFM12inline_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K if (tag_0 == 12) { _fx_T3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_0 = &e_0->u.KExpCall; bool t_0; - if (cv_0->t3->data) { + if (*curr_km_main_0) { t_0 = true; } else { - _fx_R9Ast__id_t v_8 = (*curr_fi_0)->data.fi_name; + _fx_R21K_inline__func_info_t* v_9 = &(*curr_fi_0)->data; + _fx_R9Ast__id_t v_10 = v_9->fi_name; bool res_0; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_8, &_fx_g9Ast__noid, &res_0, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_10, &_fx_g9Ast__noid, &res_0, 0), _fx_cleanup); t_0 = !res_0; } if (t_0) { - _fx_Nt6option1rR21K_inline__func_info_t v_9 = {0}; - _fx_rR21K_inline__func_info_t v_10 = 0; - _fx_Ta2i v_11; + _fx_Nt6option1rR21K_inline__func_info_t v_11 = {0}; + _fx_rR21K_inline__func_info_t v_12 = 0; + _fx_Ta2i v_13; FX_CALL( _fx_M8K_inlineFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_trRM11func_info_tR9Ast__id_t(*all_funcs_info_0, - &vcase_0->t0, &v_11, 0), _fx_catch_3); - int_ j_1 = v_11.t1; + &vcase_0->t0, &v_13, 0), _fx_catch_3); + int_ j_1 = v_13.t1; if (j_1 >= 0) { FX_CHKIDX(FX_CHKIDX1((*all_funcs_info_0)->u.t.t5, 0, j_1), _fx_catch_3); - FX_COPY_PTR( - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, - j_1)->data, &v_10); - _fx_M8K_inlineFM4SomeNt6option1rRM11func_info_t1rRM11func_info_t(v_10, &v_9); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t* v_14 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_trR21K_inline__func_info_t, (*all_funcs_info_0)->u.t.t5, j_1); + FX_COPY_PTR(v_14->data, &v_12); + _fx_M8K_inlineFM4SomeNt6option1rRM11func_info_t1rRM11func_info_t(v_12, &v_11); } else { - _fx_copy_Nt6option1rR21K_inline__func_info_t(&_fx_g14K_inline__None, &v_9); + _fx_copy_Nt6option1rR21K_inline__func_info_t(&_fx_g14K_inline__None, &v_11); } - if (v_9.tag == 2) { - _fx_rR21K_inline__func_info_t r_fi_1 = v_9.u.Some; - if (r_fi_1->data.fi_km_idx == *curr_km_idx_0) { - _fx_T2N14K_form__kexp_tB v_12 = {0}; + if (v_11.tag == 2) { + _fx_rR21K_inline__func_info_t r_fi_1 = v_11.u.Some; + _fx_R21K_inline__func_info_t* v_15 = &r_fi_1->data; + if (v_15->fi_km_idx == *curr_km_idx_0) { + _fx_T2N14K_form__kexp_tB v_16 = {0}; _fx_N14K_form__kexp_t new_e_0 = 0; - _fx_R21K_inline__func_info_t* v_13 = &(*curr_fi_0)->data; - _fx_R16Ast__fun_flags_t caller_flags_0 = v_13->fi_flags; - int_ caller_size_0 = v_13->fi_size; - bool caller_can_inline_0 = v_13->fi_can_inline; + _fx_R21K_inline__func_info_t* v_17 = &(*curr_fi_0)->data; + _fx_R16Ast__fun_flags_t caller_flags_0 = v_17->fi_flags; + int_ caller_size_0 = v_17->fi_size; + bool caller_can_inline_0 = v_17->fi_can_inline; bool caller_is_inline_0; if (caller_can_inline_0) { caller_is_inline_0 = caller_flags_0.fun_flag_inline; @@ -9039,10 +8938,10 @@ static int _fx_M8K_inlineFM12inline_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K else { max_caller_size_0 = inline_thresh_0 * 10; } - _fx_R21K_inline__func_info_t* v_14 = &r_fi_1->data; - _fx_R16Ast__fun_flags_t fi_flags_0 = v_14->fi_flags; - int_ fi_size_0 = v_14->fi_size; - bool fi_can_inline_0 = v_14->fi_can_inline; + _fx_R21K_inline__func_info_t* v_18 = &r_fi_1->data; + _fx_R16Ast__fun_flags_t fi_flags_0 = v_18->fi_flags; + int_ fi_size_0 = v_18->fi_size; + bool fi_can_inline_0 = v_18->fi_can_inline; bool f_is_inline_0; if (fi_can_inline_0) { f_is_inline_0 = fi_flags_0.fun_flag_inline; @@ -9057,8 +8956,8 @@ static int _fx_M8K_inlineFM12inline_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K else { f_max_size_0 = inline_thresh_0; } - int_ v_15 = _fx_M8K_inlineFM6lengthi1LN14K_form__atom_t(vcase_0->t1, 0); - int_ new_size_0 = caller_size_0 + fi_size_0 - v_15 - 1; + int_ v_19 = _fx_M8K_inlineFM6lengthi1LN14K_form__atom_t(vcase_0->t1, 0); + int_ new_size_0 = caller_size_0 + fi_size_0 - v_19 - 1; int_ new_size_1 = fx_maxi(new_size_0, 0); bool t_1; if (fi_can_inline_0) { @@ -9073,15 +8972,16 @@ static int _fx_M8K_inlineFM12inline_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K t_1 = false; } if (t_1) { - FX_CALL(_fx_M8K_inlineFM11expand_callT2N14K_form__kexp_tB2iN14K_form__kexp_t(*curr_km_idx_0, e_0, &v_12, 0), + FX_CALL(_fx_M8K_inlineFM11expand_callT2N14K_form__kexp_tB2iN14K_form__kexp_t(*curr_km_idx_0, e_0, &v_16, 0), _fx_catch_2); - FX_COPY_PTR(v_12.t0, &new_e_0); - bool inlined_0 = v_12.t1; + FX_COPY_PTR(v_16.t0, &new_e_0); + bool inlined_0 = v_16.t1; if (inlined_0) { - _fx_R21K_inline__func_info_t* v_16 = &(*curr_fi_0)->data; - _fx_R21K_inline__func_info_t v_17 = - { v_16->fi_name, v_16->fi_can_inline, new_size_1, v_16->fi_nrefs, v_16->fi_flags, v_16->fi_km_idx }; - (*curr_fi_0)->data = v_17; + _fx_R21K_inline__func_info_t* v_20 = &(*curr_fi_0)->data; + _fx_R21K_inline__func_info_t v_21 = + { v_20->fi_name, v_20->fi_can_inline, new_size_1, v_20->fi_nrefs, v_20->fi_flags, v_20->fi_km_idx }; + _fx_R21K_inline__func_info_t* v_22 = &(*curr_fi_0)->data; + *v_22 = v_21; } FX_COPY_PTR(new_e_0, fx_result); } @@ -9093,7 +8993,7 @@ static int _fx_M8K_inlineFM12inline_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K if (new_e_0) { _fx_free_N14K_form__kexp_t(&new_e_0); } - _fx_free_T2N14K_form__kexp_tB(&v_12); + _fx_free_T2N14K_form__kexp_tB(&v_16); goto _fx_endmatch_0; } } @@ -9103,8 +9003,8 @@ static int _fx_M8K_inlineFM12inline_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K FX_CHECK_EXN(_fx_catch_3); _fx_catch_3: ; - FX_FREE_REF_SIMPLE(&v_10); - _fx_free_Nt6option1rR21K_inline__func_info_t(&v_9); + FX_FREE_REF_SIMPLE(&v_12); + _fx_free_Nt6option1rR21K_inline__func_info_t(&v_11); goto _fx_endmatch_1; } } diff --git a/compiler/bootstrap/K_lift.c b/compiler/bootstrap/K_lift.c index 10139ec3..31321fa3 100644 --- a/compiler/bootstrap/K_lift.c +++ b/compiler/bootstrap/K_lift.c @@ -4240,28 +4240,27 @@ FX_EXTERN_C int _fx_M6K_liftFM3revLT2R9Ast__id_tN13K_form__dom_t1LT2R9Ast__id_tN struct _fx_LT2R9Ast__id_tN13K_form__dom_t_data_t** fx_result, void* fx_fv) { - _fx_LT2R9Ast__id_tN13K_form__dom_t __fold_result___0 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t res_0 = 0; int fx_status = 0; _fx_LT2R9Ast__id_tN13K_form__dom_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2R9Ast__id_tN13K_form__dom_t r_0 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_0 = 0; _fx_T2R9Ast__id_tN13K_form__dom_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&r_0); + if (v_0) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&res_0); } return fx_status; } @@ -4271,28 +4270,27 @@ FX_EXTERN_C int _fx_M6K_liftFM3revLN14K_form__kexp_t1LN14K_form__kexp_t( struct _fx_LN14K_form__kexp_t_data_t** fx_result, void* fx_fv) { - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; int fx_status = 0; _fx_LN14K_form__kexp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_0 = 0; _fx_N14K_form__kexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_0) { + _fx_free_LN14K_form__kexp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } return fx_status; } @@ -4397,12 +4395,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4456,28 +4455,29 @@ FX_EXTERN_C int _fx_M6K_liftFM4growv2Nt10Hashmap__t2R9Ast__id_tT2R9Ast__id_tNt6o for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, ht_table_0, j_0)->hv < - 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M6K_liftFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_tRt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4497,14 +4497,14 @@ FX_EXTERN_C int _fx_M6K_liftFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tT2R9Ast__ { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4524,32 +4524,11 @@ FX_EXTERN_C int _fx_M6K_liftFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tT2R9Ast__ bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4585,14 +4564,14 @@ FX_EXTERN_C int _fx_M6K_liftFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR26K_free { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4611,32 +4590,11 @@ FX_EXTERN_C int _fx_M6K_liftFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR26K_free bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4680,8 +4638,9 @@ FX_EXTERN_C int int_ j_0 = v_1.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, j_0), _fx_cleanup); - _fx_copy_R26K_freevars__fv_func_info_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, self_0->u.t.t5, j_0)->data, &v_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, self_0->u.t.t5, j_0); + _fx_copy_R26K_freevars__fv_func_info_t(&v_2->data, &v_0); _fx_M6K_liftFM4SomeNt6option1R26K_freevars__fv_func_info_t1R26K_freevars__fv_func_info_t(&v_0, fx_result); } else { @@ -4706,14 +4665,14 @@ FX_EXTERN_C int _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -4742,32 +4701,11 @@ FX_EXTERN_C int bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4783,14 +4721,14 @@ FX_EXTERN_C int FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -4803,29 +4741,30 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - ( - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, self_0->u.t.t5, - found_0)->hv & 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, self_0->u.t.t5, + found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -4836,12 +4775,13 @@ FX_EXTERN_C int _fx_copy_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(&self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t(hv_0, k_0, &v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -4873,10 +4813,11 @@ FX_EXTERN_C int _fx_M6K_liftFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_tR9Ast__id_t(self_0, k_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, idx_0), _fx_cleanup); - _fx_T2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_0 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, self_0->u.t.t5, idx_0)->data; - _fx_free_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(v_0); - _fx_copy_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(d_0, v_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_0 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, self_0->u.t.t5, idx_0); + _fx_T2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_1 = &v_0->data; + _fx_free_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(v_1); + _fx_copy_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(d_0, v_1); _fx_cleanup: ; return fx_status; @@ -5000,9 +4941,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -5051,26 +4995,28 @@ FX_EXTERN_C int _fx_M6K_liftFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M6K_liftFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -5107,32 +5053,11 @@ FX_EXTERN_C int _fx_M6K_liftFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5166,17 +5091,17 @@ FX_EXTERN_C int _fx_M6K_liftFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t( void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( - _fx_M6K_liftFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_cleanup); + _fx_M6K_liftFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, &v_0, 0), + _fx_cleanup); *fx_result = v_0.t1 >= 0; _fx_cleanup: ; @@ -5218,32 +5143,11 @@ FX_EXTERN_C int _fx_M6K_liftFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -5259,14 +5163,14 @@ FX_EXTERN_C int _fx_M6K_liftFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -5278,27 +5182,29 @@ FX_EXTERN_C int _fx_M6K_liftFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -5306,11 +5212,14 @@ FX_EXTERN_C int _fx_M6K_liftFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5332,15 +5241,14 @@ FX_EXTERN_C int _fx_M6K_liftFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t( void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - FX_CALL( - _fx_M6K_liftFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, __fold_result___0 & 9223372036854775807ULL, 0), + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + FX_CALL(_fx_M6K_liftFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, 0), _fx_cleanup); _fx_cleanup: ; @@ -5364,10 +5272,13 @@ FX_EXTERN_C int for (int_ j_0 = 0; j_0 < v_0; j_0++) { _fx_LN14K_form__kexp_t v_1 = 0; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_2 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; - FX_CALL(f_0->fp(&v_2, res_0, &v_1, f_0->fcv), _fx_catch_0); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_4 = v_3->key; + FX_CALL(f_0->fp(&v_4, res_0, &v_1, f_0->fcv), _fx_catch_0); _fx_free_LN14K_form__kexp_t(&res_0); FX_COPY_PTR(v_1, &res_0); } @@ -5529,6 +5440,7 @@ FX_EXTERN_C int _fx_M6K_liftFM8lift_allLR17K_form__kmodule_t1LR17K_form__kmodule FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(256, &defined_so_far_arg_0, 0), _fx_cleanup); FX_CALL(_fx_make_rNt10Hashset__t1R9Ast__id_t(defined_so_far_arg_0, &defined_so_far_ref_0), _fx_cleanup); FX_CALL(_fx_make_ri(-1, &curr_m_idx_ref_0), _fx_cleanup); + int_* curr_m_idx_0 = &curr_m_idx_ref_0->data; FX_CALL(_fx_make_rR9Ast__id_t(&_fx_g9Ast__noid, &curr_clo_ref_0), _fx_cleanup); FX_CALL(_fx_make_rLN14K_form__kexp_t(0, &curr_top_code_ref_0), _fx_cleanup); _fx_LN14K_form__kexp_t* curr_top_code_0 = &curr_top_code_ref_0->data; @@ -5566,7 +5478,7 @@ FX_EXTERN_C int _fx_M6K_liftFM8lift_allLR17K_form__kmodule_t1LR17K_form__kmodule _fx_R17K_form__kmodule_t* km_0 = &lst_1->hd; FX_COPY_PTR(km_0->km_top, &km_top_1); int_ km_idx_0 = km_0->km_idx; - curr_m_idx_ref_0->data = km_idx_0; + *curr_m_idx_0 = km_idx_0; _fx_free_LN14K_form__kexp_t(curr_top_code_0); *curr_top_code_0 = 0; FX_CALL(_fx_M6K_liftFM5clearv1Nt10Hashset__t1R9Ast__id_t(self_referencing_functions_0, 0), _fx_catch_3); @@ -5687,21 +5599,21 @@ static int _fx_M6K_liftFM16fold_defcl_atom_v3N14K_form__atom_tR10Ast__loc_tR22K_ int fx_status = 0; _fx_M6K_liftFM16fold_defcl_atom_v3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t_cldata_t* cv_0 = (_fx_M6K_liftFM16fold_defcl_atom_v3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t_cldata_t*)fx_fv; + _fx_R9Ast__id_t* curr_folded_func_0 = &cv_0->t0->data; if (a_0->tag == 1) { _fx_R9Ast__id_t* n_0 = &a_0->u.AtomId; bool res_0; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(n_0, &cv_0->t0->data, &res_0, 0), _fx_catch_0); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(n_0, curr_folded_func_0, &res_0, 0), _fx_catch_0); if (res_0) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - FX_CALL( - _fx_M6K_liftFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t1, n_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_catch_0); + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + FX_CALL(_fx_M6K_liftFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t1, n_0, h_0 & 9223372036854775807ULL, 0), + _fx_catch_0); } _fx_catch_0: ; @@ -5779,9 +5691,9 @@ static int _fx_M6K_liftFM16fold_defcl_kexp_v2N14K_form__kexp_tR22K_form__k_fold_ int_ j_0 = v_5.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*fv_env_0)->u.t.t5, 0, j_0), _fx_catch_5); - _fx_copy_R26K_freevars__fv_func_info_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, (*fv_env_0)->u.t.t5, j_0)->data, - &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t* v_6 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR26K_freevars__fv_func_info_t, (*fv_env_0)->u.t.t5, j_0); + _fx_copy_R26K_freevars__fv_func_info_t(&v_6->data, &v_1); _fx_M6K_liftFM4SomeNt6option1R26K_freevars__fv_func_info_t1R26K_freevars__fv_func_info_t(&v_1, &v_0); } else { @@ -5790,123 +5702,119 @@ static int _fx_M6K_liftFM16fold_defcl_kexp_v2N14K_form__kexp_tR22K_form__k_fold_ if (v_0.tag == 2) { _fx_Nt10Hashset__t1R9Ast__id_t fvars_0 = 0; _fx_LR9Ast__id_t fvars_final_0 = 0; - fx_str_t v_6 = {0}; fx_str_t v_7 = {0}; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t __fold_result___0 = 0; + fx_str_t v_8 = {0}; _fx_LT2R9Ast__id_tN14K_form__ktyp_t fvars_wt_0 = 0; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t __fold_result___1 = 0; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_8 = 0; - _fx_R25K_form__kdefclosurevars_t v_9 = {0}; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t res_0 = 0; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_9 = 0; + _fx_R25K_form__kdefclosurevars_t v_10 = {0}; _fx_rR25K_form__kdefclosurevars_t fcv_t_0 = 0; _fx_LN14K_form__ktyp_t make_args_ktyps_0 = 0; _fx_N14K_form__ktyp_t kf_typ_0 = 0; - _fx_LN14K_form__ktyp_t __fold_result___2 = 0; - _fx_LN14K_form__ktyp_t v_10 = 0; - _fx_LN14K_form__kexp_t res_0 = 0; - _fx_N14K_form__ktyp_t v_11 = 0; - _fx_R16Ast__val_flags_t v_12 = {0}; - _fx_LN14K_form__kexp_t res_1 = 0; - _fx_N15K_form__kinfo_t v_13 = {0}; - _fx_R17K_form__kdeffun_t v_14 = {0}; + _fx_LN14K_form__ktyp_t res_1 = 0; + _fx_LN14K_form__ktyp_t v_11 = 0; + _fx_LN14K_form__kexp_t res_2 = 0; + _fx_N14K_form__ktyp_t v_12 = 0; + _fx_R16Ast__val_flags_t v_13 = {0}; + _fx_LN14K_form__kexp_t res_3 = 0; + _fx_N15K_form__kinfo_t v_14 = {0}; + _fx_R17K_form__kdeffun_t v_15 = {0}; FX_COPY_PTR(v_0.u.Some.fv_fvars, &fvars_0); if (!(fvars_0->u.t.t1 == 0)) { FX_CALL(_fx_M10K_freevarsFM13sort_freevarsLR9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(fvars_0, &fvars_final_0, 0), _fx_catch_4); int_ m_idx_0 = kf_name_0.m; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&kf_name_0, &v_6, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&kf_name_0, &v_7, 0), _fx_catch_4); fx_str_t slit_0 = FX_MAKE_STR("_closure"); { - const fx_str_t strs_0[] = { v_6, slit_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_7), _fx_catch_4); + const fx_str_t strs_0[] = { v_7, slit_0 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_8), _fx_catch_4); } _fx_R9Ast__id_t fcv_tn_0; - FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(m_idx_0, &v_7, &fcv_tn_0, 0), _fx_catch_4); + FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(m_idx_0, &v_8, &fcv_tn_0, 0), _fx_catch_4); int_ idx_0 = 0; _fx_LR9Ast__id_t lst_0 = fvars_final_0; for (; lst_0; lst_0 = lst_0->tl, idx_0 += 1) { - _fx_LT2R9Ast__id_tN14K_form__ktyp_t fvars_wt_1 = 0; - _fx_R17K_form__kdefval_t v_15 = {0}; + _fx_R17K_form__kdefval_t v_16 = {0}; _fx_R16Ast__val_flags_t kv_flags_0 = {0}; _fx_N14K_form__ktyp_t kv_typ_0 = 0; - fx_str_t v_16 = {0}; fx_str_t v_17 = {0}; - fx_exn_t v_18 = {0}; - _fx_LN14K_form__kexp_t res_2 = 0; - _fx_T2R9Ast__id_tN14K_form__ktyp_t v_19 = {0}; + fx_str_t v_18 = {0}; + fx_exn_t v_19 = {0}; + _fx_LN14K_form__kexp_t res_4 = 0; + _fx_T2R9Ast__id_tN14K_form__ktyp_t v_20 = {0}; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_21 = 0; _fx_R9Ast__id_t* fv_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &fvars_wt_1); - FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_15, 0), _fx_catch_0); - _fx_R10Ast__loc_t kv_loc_0 = v_15.kv_loc; - _fx_copy_R16Ast__val_flags_t(&v_15.kv_flags, &kv_flags_0); - FX_COPY_PTR(v_15.kv_typ, &kv_typ_0); - _fx_R10Ast__loc_t v_20; - FX_CALL(_fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(fv_0, &_fx_g10Ast__noloc, &v_20, 0), + FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_16, 0), _fx_catch_0); + _fx_R10Ast__loc_t kv_loc_0 = v_16.kv_loc; + _fx_copy_R16Ast__val_flags_t(&v_16.kv_flags, &kv_flags_0); + FX_COPY_PTR(v_16.kv_typ, &kv_typ_0); + _fx_R10Ast__loc_t v_22; + FX_CALL(_fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(fv_0, &_fx_g10Ast__noloc, &v_22, 0), _fx_catch_0); - bool v_21; - FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(fv_0, &v_20, &v_21, 0), _fx_catch_0); - if (v_21) { - _fx_R10Ast__loc_t v_22; - FX_CALL(_fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(fv_0, &_fx_g10Ast__noloc, &v_22, 0), + bool v_23; + FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(fv_0, &v_22, &v_23, 0), _fx_catch_0); + if (v_23) { + _fx_R10Ast__loc_t v_24; + FX_CALL(_fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(fv_0, &_fx_g10Ast__noloc, &v_24, 0), _fx_catch_0); - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(fv_0, &v_22, &v_16, 0), _fx_catch_0); + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(fv_0, &v_24, &v_17, 0), _fx_catch_0); fx_str_t slit_1 = FX_MAKE_STR("free variable \'"); fx_str_t slit_2 = FX_MAKE_STR("\' must not be mutable on this stage. Run K.freevars.mutable_freevars_referencing before."); { - const fx_str_t strs_1[] = { slit_1, v_16, slit_2 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_17), _fx_catch_0); + const fx_str_t strs_1[] = { slit_1, v_17, slit_2 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_18), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_17, &v_18, 0), _fx_catch_0); - FX_THROW(&v_18, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_18, &v_19, 0), _fx_catch_0); + FX_THROW(&v_19, false, _fx_catch_0); } _fx_R9Ast__id_t new_fv_0; FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(m_idx_0, fv_0, &new_fv_0, 0), _fx_catch_0); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &new_fv_0, kv_typ_0, &kv_flags_0, &_fx_g14K_lift__None3_, 0, &kv_loc_0, &res_2, 0), _fx_catch_0); - _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&new_fv_0, kv_typ_0, &v_19); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&v_19, fvars_wt_1, false, &fvars_wt_1), _fx_catch_0); - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&__fold_result___0); - FX_COPY_PTR(fvars_wt_1, &__fold_result___0); + &new_fv_0, kv_typ_0, &kv_flags_0, &_fx_g14K_lift__None3_, 0, &kv_loc_0, &res_4, 0), _fx_catch_0); + _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&new_fv_0, kv_typ_0, &v_20); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&v_20, fvars_wt_0, true, &v_21), _fx_catch_0); + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&fvars_wt_0); + FX_COPY_PTR(v_21, &fvars_wt_0); _fx_catch_0: ; - _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&v_19); - if (res_2) { - _fx_free_LN14K_form__kexp_t(&res_2); + if (v_21) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_21); + } + _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&v_20); + if (res_4) { + _fx_free_LN14K_form__kexp_t(&res_4); } - fx_free_exn(&v_18); + fx_free_exn(&v_19); + FX_FREE_STR(&v_18); FX_FREE_STR(&v_17); - FX_FREE_STR(&v_16); if (kv_typ_0) { _fx_free_N14K_form__ktyp_t(&kv_typ_0); } _fx_free_R16Ast__val_flags_t(&kv_flags_0); - _fx_free_R17K_form__kdefval_t(&v_15); - if (fvars_wt_1) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&fvars_wt_1); - } + _fx_free_R17K_form__kdefval_t(&v_16); FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___0, &fvars_wt_0); _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_1 = fvars_wt_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LT2R9Ast__id_tN14K_form__ktyp_t r_0 = 0; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_25 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(a_0, res_0, true, &v_25), _fx_catch_1); + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&res_0); + FX_COPY_PTR(v_25, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&r_0); + if (v_25) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_25); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___1, &v_8); + FX_COPY_PTR(res_0, &v_9); fx_str_t slit_3 = FX_MAKE_STR(""); - _fx_make_R25K_form__kdefclosurevars_t(&fcv_tn_0, &slit_3, v_8, fvars_final_0, kf_scope_0, &kf_loc_0, &v_9); - FX_CALL(_fx_make_rR25K_form__kdefclosurevars_t(&v_9, &fcv_t_0), _fx_catch_4); + _fx_make_R25K_form__kdefclosurevars_t(&fcv_tn_0, &slit_3, v_9, fvars_final_0, kf_scope_0, &kf_loc_0, &v_10); + FX_CALL(_fx_make_rR25K_form__kdefclosurevars_t(&v_10, &fcv_t_0), _fx_catch_4); _fx_LN14K_form__ktyp_t lstend_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_2 = fvars_wt_0; for (; lst_2; lst_2 = lst_2->tl) { @@ -5929,65 +5837,64 @@ static int _fx_M6K_liftFM16fold_defcl_kexp_v2N14K_form__kexp_tR22K_form__k_fold_ FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(m_idx_0, &slit_5, &make_fp_0, 0), _fx_catch_4); _fx_LN14K_form__ktyp_t lst_3 = make_args_ktyps_0; for (; lst_3; lst_3 = lst_3->tl) { - _fx_LN14K_form__ktyp_t r_1 = 0; + _fx_LN14K_form__ktyp_t v_26 = 0; _fx_N14K_form__ktyp_t a_1 = lst_3->hd; - FX_COPY_PTR(__fold_result___2, &r_1); - FX_CALL(_fx_cons_LN14K_form__ktyp_t(a_1, r_1, false, &r_1), _fx_catch_3); - _fx_free_LN14K_form__ktyp_t(&__fold_result___2); - FX_COPY_PTR(r_1, &__fold_result___2); + FX_CALL(_fx_cons_LN14K_form__ktyp_t(a_1, res_1, true, &v_26), _fx_catch_3); + _fx_free_LN14K_form__ktyp_t(&res_1); + FX_COPY_PTR(v_26, &res_1); _fx_catch_3: ; - if (r_1) { - _fx_free_LN14K_form__ktyp_t(&r_1); + if (v_26) { + _fx_free_LN14K_form__ktyp_t(&v_26); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___2, &v_10); - _fx_N17Ast__fun_constr_t v_23; - _fx_M3AstFM6CtorFPN17Ast__fun_constr_t1RM4id_t(&kf_name_0, &v_23); + FX_COPY_PTR(res_1, &v_11); + _fx_N17Ast__fun_constr_t v_27; + _fx_M3AstFM6CtorFPN17Ast__fun_constr_t1RM4id_t(&kf_name_0, &v_27); FX_CALL( _fx_M6K_formFM17create_kdefconstrLN14K_form__kexp_t8R9Ast__id_tLN14K_form__ktyp_tN14K_form__ktyp_tN17Ast__fun_constr_tBLN14K_form__kexp_tLN12Ast__scope_tR10Ast__loc_t( - &make_fp_0, v_10, kf_typ_0, &v_23, false, 0, kf_scope_0, &kf_loc_0, &res_0, 0), _fx_catch_4); - FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&fcv_tn_0, &v_11), _fx_catch_4); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_12, 0), _fx_catch_4); + &make_fp_0, v_11, kf_typ_0, &v_27, false, 0, kf_scope_0, &kf_loc_0, &res_2, 0), _fx_catch_4); + FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&fcv_tn_0, &v_12), _fx_catch_4); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_13, 0), _fx_catch_4); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &cl_arg_0, v_11, &v_12, &_fx_g14K_lift__None3_, 0, &kf_loc_0, &res_1, 0), _fx_catch_4); + &cl_arg_0, v_12, &v_13, &_fx_g14K_lift__None3_, 0, &kf_loc_0, &res_3, 0), _fx_catch_4); _fx_R25K_form__kdefclosureinfo_t new_kf_closure_0 = { cl_arg_0, fcv_tn_0, kf_closure_0.kci_fp_typ, make_fp_0, kf_closure_0.kci_wrap_f }; - _fx_M6K_formFM12KClosureVarsN15K_form__kinfo_t1rRM17kdefclosurevars_t(fcv_t_0, &v_13); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&fcv_tn_0, &v_13, 0), _fx_catch_4); - _fx_R17K_form__kdeffun_t* v_24 = &kf_0->data; - _fx_R16Ast__fun_flags_t v_25 = + _fx_M6K_formFM12KClosureVarsN15K_form__kinfo_t1rRM17kdefclosurevars_t(fcv_t_0, &v_14); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&fcv_tn_0, &v_14, 0), _fx_catch_4); + _fx_R17K_form__kdeffun_t* v_28 = &kf_0->data; + _fx_R16Ast__fun_flags_t v_29 = { kf_flags_0.fun_flag_pure, kf_flags_0.fun_flag_ccode, kf_flags_0.fun_flag_have_keywords, kf_flags_0.fun_flag_inline, kf_flags_0.fun_flag_nothrow, kf_flags_0.fun_flag_really_nothrow, kf_flags_0.fun_flag_private, kf_flags_0.fun_flag_ctor, kf_flags_0.fun_flag_method_of, true, kf_flags_0.fun_flag_recursive, kf_flags_0.fun_flag_instance }; - _fx_make_R17K_form__kdeffun_t(&v_24->kf_name, &v_24->kf_cname, v_24->kf_params, v_24->kf_rt, v_24->kf_body, &v_25, - &new_kf_closure_0, v_24->kf_scope, &v_24->kf_loc, &v_14); - _fx_R17K_form__kdeffun_t* v_26 = &kf_0->data; - _fx_free_R17K_form__kdeffun_t(v_26); - _fx_copy_R17K_form__kdeffun_t(&v_14, v_26); + _fx_make_R17K_form__kdeffun_t(&v_28->kf_name, &v_28->kf_cname, v_28->kf_params, v_28->kf_rt, v_28->kf_body, &v_29, + &new_kf_closure_0, v_28->kf_scope, &v_28->kf_loc, &v_15); + _fx_R17K_form__kdeffun_t* v_30 = &kf_0->data; + _fx_free_R17K_form__kdeffun_t(v_30); + _fx_copy_R17K_form__kdeffun_t(&v_15, v_30); } _fx_catch_4: ; - _fx_free_R17K_form__kdeffun_t(&v_14); - _fx_free_N15K_form__kinfo_t(&v_13); - if (res_1) { - _fx_free_LN14K_form__kexp_t(&res_1); + _fx_free_R17K_form__kdeffun_t(&v_15); + _fx_free_N15K_form__kinfo_t(&v_14); + if (res_3) { + _fx_free_LN14K_form__kexp_t(&res_3); } - _fx_free_R16Ast__val_flags_t(&v_12); - if (v_11) { - _fx_free_N14K_form__ktyp_t(&v_11); + _fx_free_R16Ast__val_flags_t(&v_13); + if (v_12) { + _fx_free_N14K_form__ktyp_t(&v_12); } - if (res_0) { - _fx_free_LN14K_form__kexp_t(&res_0); + if (res_2) { + _fx_free_LN14K_form__kexp_t(&res_2); } - if (v_10) { - _fx_free_LN14K_form__ktyp_t(&v_10); + if (v_11) { + _fx_free_LN14K_form__ktyp_t(&v_11); } - if (__fold_result___2) { - _fx_free_LN14K_form__ktyp_t(&__fold_result___2); + if (res_1) { + _fx_free_LN14K_form__ktyp_t(&res_1); } if (kf_typ_0) { _fx_free_N14K_form__ktyp_t(&kf_typ_0); @@ -5998,21 +5905,18 @@ static int _fx_M6K_liftFM16fold_defcl_kexp_v2N14K_form__kexp_tR22K_form__k_fold_ if (fcv_t_0) { _fx_free_rR25K_form__kdefclosurevars_t(&fcv_t_0); } - _fx_free_R25K_form__kdefclosurevars_t(&v_9); - if (v_8) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_8); + _fx_free_R25K_form__kdefclosurevars_t(&v_10); + if (v_9) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_9); } - if (__fold_result___1) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&__fold_result___1); + if (res_0) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&res_0); } if (fvars_wt_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&fvars_wt_0); } - if (__fold_result___0) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&__fold_result___0); - } + FX_FREE_STR(&v_8); FX_FREE_STR(&v_7); - FX_FREE_STR(&v_6); FX_FREE_LIST_SIMPLE(&fvars_final_0); if (fvars_0) { _fx_free_Nt10Hashset__t1R9Ast__id_t(&fvars_0); @@ -6040,19 +5944,19 @@ static int _fx_M6K_liftFM16fold_defcl_kexp_v2N14K_form__kexp_tR22K_form__k_fold_ _fx_N14K_form__atom_t* a_2 = &lst_4->hd; if (a_2->tag == 1) { _fx_R9Ast__id_t* n_0 = &a_2->u.AtomId; - bool res_3; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(n_0, curr_folded_func_0, &res_3, 0), _fx_catch_6); - if (res_3) { - uint64_t __fold_result___3 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___3 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___3 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___3 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___3 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___3 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___3 = h_2 * 1099511628211ULL; + bool res_5; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(n_0, curr_folded_func_0, &res_5, 0), _fx_catch_6); + if (res_5) { + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( - _fx_M6K_liftFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t2, n_0, - __fold_result___3 & 9223372036854775807ULL, 0), _fx_catch_6); + _fx_M6K_liftFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t2, n_0, h_0 & 9223372036854775807ULL, 0), + _fx_catch_6); } _fx_catch_6: ; @@ -6120,9 +6024,10 @@ static int _fx_M6K_liftFM20walk_atom_n_lift_allN14K_form__atom_t3N14K_form__atom int_ j_0 = v_2.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*curr_subst_env_0)->u.t.t5, 0, j_0), _fx_catch_3); - _fx_copy_T2R9Ast__id_tNt6option1N14K_form__ktyp_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, - (*curr_subst_env_0)->u.t.t5, j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, + (*curr_subst_env_0)->u.t.t5, j_0); + _fx_copy_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(&v_3->data, &v_1); _fx_M6K_liftFM4SomeNt6option1T2R9Ast__id_tNt6option1N14K_form__ktyp_t1T2R9Ast__id_tNt6option1N14K_form__ktyp_t(&v_1, &v_0); } @@ -6131,116 +6036,116 @@ static int _fx_M6K_liftFM20walk_atom_n_lift_allN14K_form__atom_t3N14K_form__atom } int tag_1 = v_0.tag; if (tag_1 == 2) { - _fx_Nt6option1N14K_form__ktyp_t* v_3 = &v_0.u.Some.t1; - if (v_3->tag == 2) { - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_4 = {0}; + _fx_Nt6option1N14K_form__ktyp_t* v_4 = &v_0.u.Some.t1; + if (v_4->tag == 2) { + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_5 = {0}; _fx_N14K_form__kexp_t make_cl_0 = 0; - _fx_R16Ast__val_flags_t v_5 = {0}; - _fx_Nt6option1N14K_form__kexp_t v_6 = {0}; - _fx_LN14K_form__kexp_t v_7 = 0; - _fx_N14K_form__ktyp_t f_typ_0 = v_3->u.Some; + _fx_R16Ast__val_flags_t v_6 = {0}; + _fx_Nt6option1N14K_form__kexp_t v_7 = {0}; + _fx_LN14K_form__kexp_t v_8 = 0; + _fx_N14K_form__ktyp_t f_typ_0 = v_4->u.Some; _fx_R9Ast__id_t temp_cl_0; FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(*curr_m_idx_0, n_0, &temp_cl_0, 0), _fx_catch_0); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(f_typ_0, loc_0, &v_4); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(f_typ_0, loc_0, &v_5); FX_CALL( _fx_M6K_formFM13KExpMkClosureN14K_form__kexp_t4R9Ast__id_tR9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g9Ast__noid, n_0, 0, &v_4, &make_cl_0), _fx_catch_0); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_5, 0), _fx_catch_0); - _fx_M6K_liftFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(make_cl_0, &v_6); + &_fx_g9Ast__noid, n_0, 0, &v_5, &make_cl_0), _fx_catch_0); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_6, 0), _fx_catch_0); + _fx_M6K_liftFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(make_cl_0, &v_7); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &temp_cl_0, f_typ_0, &v_5, &v_6, *curr_lift_extra_decls_0, loc_0, &v_7, 0), _fx_catch_0); + &temp_cl_0, f_typ_0, &v_6, &v_7, *curr_lift_extra_decls_0, loc_0, &v_8, 0), _fx_catch_0); _fx_free_LN14K_form__kexp_t(curr_lift_extra_decls_0); - FX_COPY_PTR(v_7, curr_lift_extra_decls_0); + FX_COPY_PTR(v_8, curr_lift_extra_decls_0); _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&temp_cl_0, fx_result); _fx_catch_0: ; - if (v_7) { - _fx_free_LN14K_form__kexp_t(&v_7); + if (v_8) { + _fx_free_LN14K_form__kexp_t(&v_8); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_6); - _fx_free_R16Ast__val_flags_t(&v_5); + _fx_free_Nt6option1N14K_form__kexp_t(&v_7); + _fx_free_R16Ast__val_flags_t(&v_6); if (make_cl_0) { _fx_free_N14K_form__kexp_t(&make_cl_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_4); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_5); goto _fx_endmatch_0; } } if (tag_1 == 2) { _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&v_0.u.Some.t0, fx_result); goto _fx_endmatch_0; } - _fx_N15K_form__kinfo_t v_8 = {0}; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(n_0, loc_0, &v_8, 0), _fx_catch_2); - if (v_8.tag == 3) { - _fx_R17K_form__kdeffun_t v_9 = {0}; + _fx_N15K_form__kinfo_t v_9 = {0}; + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(n_0, loc_0, &v_9, 0), _fx_catch_2); + if (v_9.tag == 3) { + _fx_R17K_form__kdeffun_t v_10 = {0}; _fx_N14K_form__ktyp_t f_typ_1 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_10 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_11 = {0}; _fx_N14K_form__kexp_t make_cl_1 = 0; - _fx_R16Ast__val_flags_t v_11 = {0}; - _fx_Nt6option1N14K_form__kexp_t v_12 = {0}; - _fx_LN14K_form__kexp_t v_13 = 0; - fx_str_t v_14 = {0}; + _fx_R16Ast__val_flags_t v_12 = {0}; + _fx_Nt6option1N14K_form__kexp_t v_13 = {0}; + _fx_LN14K_form__kexp_t v_14 = 0; fx_str_t v_15 = {0}; - fx_exn_t v_16 = {0}; - _fx_copy_R17K_form__kdeffun_t(&v_8.u.KFun->data, &v_9); + fx_str_t v_16 = {0}; + fx_exn_t v_17 = {0}; + _fx_copy_R17K_form__kdeffun_t(&v_9.u.KFun->data, &v_10); bool res_0; - FX_CALL(_fx_M3AstFM14is_constructorB1RM11fun_flags_t(&v_9.kf_flags, &res_0, 0), _fx_catch_1); + FX_CALL(_fx_M3AstFM14is_constructorB1RM11fun_flags_t(&v_10.kf_flags, &res_0, 0), _fx_catch_1); if (res_0) { _fx_copy_N14K_form__atom_t(a_0, fx_result); } else { bool res_1; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_9.kf_closure.kci_arg, &_fx_g9Ast__noid, &res_1, 0), _fx_catch_1); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_10.kf_closure.kci_arg, &_fx_g9Ast__noid, &res_1, 0), _fx_catch_1); if (res_1) { _fx_R9Ast__id_t temp_cl_1; FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(*curr_m_idx_0, n_0, &temp_cl_1, 0), _fx_catch_1); FX_CALL( - _fx_M6K_formFM10get_kf_typN14K_form__ktyp_t3LR9Ast__id_tN14K_form__ktyp_tR10Ast__loc_t(v_9.kf_params, - v_9.kf_rt, &v_9.kf_loc, &f_typ_1, 0), _fx_catch_1); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(f_typ_1, loc_0, &v_10); + _fx_M6K_formFM10get_kf_typN14K_form__ktyp_t3LR9Ast__id_tN14K_form__ktyp_tR10Ast__loc_t(v_10.kf_params, + v_10.kf_rt, &v_10.kf_loc, &f_typ_1, 0), _fx_catch_1); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(f_typ_1, loc_0, &v_11); FX_CALL( _fx_M6K_formFM13KExpMkClosureN14K_form__kexp_t4R9Ast__id_tR9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g9Ast__noid, n_0, 0, &v_10, &make_cl_1), _fx_catch_1); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_11, 0), _fx_catch_1); - _fx_M6K_liftFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(make_cl_1, &v_12); + &_fx_g9Ast__noid, n_0, 0, &v_11, &make_cl_1), _fx_catch_1); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_12, 0), _fx_catch_1); + _fx_M6K_liftFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(make_cl_1, &v_13); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &temp_cl_1, f_typ_1, &v_11, &v_12, *curr_lift_extra_decls_0, loc_0, &v_13, 0), _fx_catch_1); + &temp_cl_1, f_typ_1, &v_12, &v_13, *curr_lift_extra_decls_0, loc_0, &v_14, 0), _fx_catch_1); _fx_free_LN14K_form__kexp_t(curr_lift_extra_decls_0); - FX_COPY_PTR(v_13, curr_lift_extra_decls_0); + FX_COPY_PTR(v_14, curr_lift_extra_decls_0); _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&temp_cl_1, fx_result); } else { - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(n_0, loc_0, &v_14, 0), _fx_catch_1); + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(n_0, loc_0, &v_15, 0), _fx_catch_1); fx_str_t slit_0 = FX_MAKE_STR("for the function \'"); fx_str_t slit_1 = FX_MAKE_STR("\' there is no corresponding closure"); { - const fx_str_t strs_0[] = { slit_0, v_14, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_15), _fx_catch_1); + const fx_str_t strs_0[] = { slit_0, v_15, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_16), _fx_catch_1); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_15, &v_16, 0), _fx_catch_1); - FX_THROW(&v_16, false, _fx_catch_1); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_16, &v_17, 0), _fx_catch_1); + FX_THROW(&v_17, false, _fx_catch_1); } } _fx_catch_1: ; - fx_free_exn(&v_16); + fx_free_exn(&v_17); + FX_FREE_STR(&v_16); FX_FREE_STR(&v_15); - FX_FREE_STR(&v_14); - if (v_13) { - _fx_free_LN14K_form__kexp_t(&v_13); + if (v_14) { + _fx_free_LN14K_form__kexp_t(&v_14); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_12); - _fx_free_R16Ast__val_flags_t(&v_11); + _fx_free_Nt6option1N14K_form__kexp_t(&v_13); + _fx_free_R16Ast__val_flags_t(&v_12); if (make_cl_1) { _fx_free_N14K_form__kexp_t(&make_cl_1); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_10); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_11); if (f_typ_1) { _fx_free_N14K_form__ktyp_t(&f_typ_1); } - _fx_free_R17K_form__kdeffun_t(&v_9); + _fx_free_R17K_form__kdeffun_t(&v_10); } else { _fx_copy_N14K_form__atom_t(a_0, fx_result); @@ -6248,7 +6153,7 @@ static int _fx_M6K_liftFM20walk_atom_n_lift_allN14K_form__atom_t3N14K_form__atom FX_CHECK_EXN(_fx_catch_2); _fx_catch_2: ; - _fx_free_N15K_form__kinfo_t(&v_8); + _fx_free_N15K_form__kinfo_t(&v_9); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_3); @@ -6308,6 +6213,7 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp _fx_Nt10Hashmap__t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* curr_subst_env_0 = &curr_subst_env_ref_0->data; _fx_LN14K_form__kexp_t* curr_top_code_0 = &cv_0->t4->data; _fx_Nt10Hashset__t1R9Ast__id_t* defined_so_far_0 = &defined_so_far_ref_0->data; + _fx_Nt10Hashmap__t2R9Ast__id_tR26K_freevars__fv_func_info_t* fv_env_0 = &cv_0->t6->data; FX_COPY_PTR(*curr_lift_extra_decls_0, &saved_extra_decls_0); _fx_free_LN14K_form__kexp_t(curr_lift_extra_decls_0); *curr_lift_extra_decls_0 = 0; @@ -6341,7 +6247,6 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp _fx_rR25K_form__kdefclosurevars_t kcv_1 = 0; _fx_LR9Ast__id_t kcv_orig_freevars_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t kcv_freevars_0 = 0; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; _fx_LN14K_form__kexp_t prologue_1 = 0; _fx_LN14K_form__kexp_t prologue_2 = 0; _fx_T2R9Ast__id_tNt6option1N14K_form__ktyp_t v_13 = {0}; @@ -6535,7 +6440,6 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp _fx_LR9Ast__id_t lst_2 = kcv_orig_freevars_0; for (; lst_1 && lst_2; lst_2 = lst_2->tl, lst_1 = lst_1->tl, idx_0 += 1) { _fx_N14K_form__ktyp_t t_0 = 0; - _fx_LN14K_form__kexp_t prologue_3 = 0; fx_str_t v_44 = {0}; fx_str_t v_45 = {0}; fx_str_t v_46 = {0}; @@ -6557,7 +6461,6 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___0 = &lst_1->hd; _fx_R9Ast__id_t fv_0 = __pat___0->t0; FX_COPY_PTR(__pat___0->t1, &t_0); - FX_COPY_PTR(__fold_result___0, &prologue_3); bool v_56; FX_CALL(_fx_M6K_liftFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(*defined_so_far_0, fv_orig_0, &v_56, 0), _fx_catch_5); @@ -6613,9 +6516,9 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp _fx_M6K_liftFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(e_3, &v_54); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &fv_proxy_0, t_1, &new_kv_flags_0, &v_54, prologue_3, &kf_loc_0, &v_55, 0), _fx_catch_5); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(v_55, &__fold_result___0); + &fv_proxy_0, t_1, &new_kv_flags_0, &v_54, prologue_1, &kf_loc_0, &v_55, 0), _fx_catch_5); + _fx_free_LN14K_form__kexp_t(&prologue_1); + FX_COPY_PTR(v_55, &prologue_1); _fx_catch_5: ; if (v_55) { @@ -6641,9 +6544,6 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp FX_FREE_STR(&v_46); FX_FREE_STR(&v_45); FX_FREE_STR(&v_44); - if (prologue_3) { - _fx_free_LN14K_form__kexp_t(&prologue_3); - } if (t_0) { _fx_free_N14K_form__ktyp_t(&t_0); } @@ -6651,7 +6551,6 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp } int s_0 = !lst_1 + !lst_2; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_8); - FX_COPY_PTR(__fold_result___0, &prologue_1); bool v_59; FX_CALL(_fx_M6K_liftFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(cv_0->t7, &kf_name_0, &v_59, 0), _fx_catch_8); if (v_59) { @@ -6681,7 +6580,7 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp } FX_CALL( _fx_M6K_liftFM8find_optNt6option1R26K_freevars__fv_func_info_t2Nt10Hashmap__t2R9Ast__id_tR26K_freevars__fv_func_info_tR9Ast__id_t( - cv_0->t6->data, &kf_name_0, &v_19, 0), _fx_catch_8); + *fv_env_0, &kf_name_0, &v_19, 0), _fx_catch_8); if (v_19.tag == 2) { _fx_FPLN14K_form__kexp_t2R9Ast__id_tLN14K_form__kexp_t __lambda___0 = {0}; _fx_R26K_freevars__fv_func_info_t* v_60 = &v_19.u.Some; @@ -6781,9 +6680,6 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp if (prologue_1) { _fx_free_LN14K_form__kexp_t(&prologue_1); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - } if (kcv_freevars_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&kcv_freevars_0); } @@ -6884,15 +6780,16 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp _fx_N14K_form__kexp_t e_4 = 0; _fx_R21K_form__kdefvariant_t v_68 = {0}; _fx_rR21K_form__kdefvariant_t kvar_0 = e_0->u.KDefVariant; - FX_COPY_PTR(kvar_0->data.kvar_ifaces, &kvar_ifaces0_0); - FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_0, callb_0, &e_4, 0), _fx_catch_11); _fx_R21K_form__kdefvariant_t* v_69 = &kvar_0->data; - _fx_make_R21K_form__kdefvariant_t(&v_69->kvar_name, &v_69->kvar_cname, &v_69->kvar_proto, &v_69->kvar_props, - v_69->kvar_targs, v_69->kvar_cases, v_69->kvar_ctors, &v_69->kvar_flags, kvar_ifaces0_0, v_69->kvar_scope, - &v_69->kvar_loc, &v_68); + FX_COPY_PTR(v_69->kvar_ifaces, &kvar_ifaces0_0); + FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_0, callb_0, &e_4, 0), _fx_catch_11); _fx_R21K_form__kdefvariant_t* v_70 = &kvar_0->data; - _fx_free_R21K_form__kdefvariant_t(v_70); - _fx_copy_R21K_form__kdefvariant_t(&v_68, v_70); + _fx_make_R21K_form__kdefvariant_t(&v_70->kvar_name, &v_70->kvar_cname, &v_70->kvar_proto, &v_70->kvar_props, + v_70->kvar_targs, v_70->kvar_cases, v_70->kvar_ctors, &v_70->kvar_flags, kvar_ifaces0_0, v_70->kvar_scope, + &v_70->kvar_loc, &v_68); + _fx_R21K_form__kdefvariant_t* v_71 = &kvar_0->data; + _fx_free_R21K_form__kdefvariant_t(v_71); + _fx_copy_R21K_form__kdefvariant_t(&v_68, v_71); FX_COPY_PTR(e_4, &e_1); _fx_catch_11: ; @@ -6981,9 +6878,8 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp _fx_LT2R9Ast__id_tN13K_form__dom_t idom_l_2 = 0; _fx_LR9Ast__id_t at_ids_2 = 0; _fx_N14K_form__kexp_t e_6 = 0; - _fx_LT2R9Ast__id_tN13K_form__dom_t __fold_result___1 = 0; - _fx_LT2R9Ast__id_tN13K_form__dom_t idom_l_3 = 0; - _fx_LT2R9Ast__id_tN13K_form__dom_t v_71 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t new_idom_l_0 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_72 = 0; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t tup_1 = {0}; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* __pat___2 = &lst_5->hd; FX_COPY_PTR(__pat___2->t0, &e_5); @@ -6995,32 +6891,30 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp _fx_LT2R9Ast__id_tN13K_form__dom_t lst_6 = idom_l_2; for (; lst_6; lst_6 = lst_6->tl) { _fx_N13K_form__dom_t dom_i_2 = {0}; - _fx_LT2R9Ast__id_tN13K_form__dom_t idom_l_4 = 0; _fx_N13K_form__dom_t dom_i_3 = {0}; - _fx_T2R9Ast__id_tN13K_form__dom_t v_72 = {0}; + _fx_T2R9Ast__id_tN13K_form__dom_t v_73 = {0}; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_74 = 0; _fx_T2R9Ast__id_tN13K_form__dom_t* __pat___3 = &lst_6->hd; _fx_R9Ast__id_t i_2 = __pat___3->t0; _fx_copy_N13K_form__dom_t(&__pat___3->t1, &dom_i_2); - FX_COPY_PTR(__fold_result___1, &idom_l_4); FX_CALL( _fx_M6K_formFM16check_n_walk_domN13K_form__dom_t3N13K_form__dom_tR10Ast__loc_tRM9k_callb_t(&dom_i_2, &kctx_0->t1, callb_0, &dom_i_3, 0), _fx_catch_15); FX_CALL(_fx_M6K_liftFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(*defined_so_far_0, &i_2, 0), _fx_catch_15); - _fx_make_T2R9Ast__id_tN13K_form__dom_t(&i_2, &dom_i_3, &v_72); - FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_72, idom_l_4, false, &idom_l_4), _fx_catch_15); - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&__fold_result___1); - FX_COPY_PTR(idom_l_4, &__fold_result___1); + _fx_make_T2R9Ast__id_tN13K_form__dom_t(&i_2, &dom_i_3, &v_73); + FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_73, new_idom_l_0, true, &v_74), _fx_catch_15); + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idom_l_0); + FX_COPY_PTR(v_74, &new_idom_l_0); _fx_catch_15: ; - _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_72); - _fx_free_N13K_form__dom_t(&dom_i_3); - if (idom_l_4) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&idom_l_4); + if (v_74) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_74); } + _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_73); + _fx_free_N13K_form__dom_t(&dom_i_3); _fx_free_N13K_form__dom_t(&dom_i_2); FX_CHECK_EXN(_fx_catch_17); } - FX_COPY_PTR(__fold_result___1, &idom_l_3); _fx_LR9Ast__id_t lst_7 = at_ids_2; for (; lst_7; lst_7 = lst_7->tl) { _fx_R9Ast__id_t* i_3 = &lst_7->hd; @@ -7029,9 +6923,9 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp _fx_catch_16: ; FX_CHECK_EXN(_fx_catch_17); } - FX_CALL(_fx_M6K_liftFM3revLT2R9Ast__id_tN13K_form__dom_t1LT2R9Ast__id_tN13K_form__dom_t(idom_l_3, &v_71, 0), + FX_CALL(_fx_M6K_liftFM3revLT2R9Ast__id_tN13K_form__dom_t1LT2R9Ast__id_tN13K_form__dom_t(new_idom_l_0, &v_72, 0), _fx_catch_17); - _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(e_6, v_71, at_ids_2, &tup_1); + _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(e_6, v_72, at_ids_2, &tup_1); _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t node_1 = 0; FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&tup_1, 0, false, &node_1), _fx_catch_17); @@ -7039,14 +6933,11 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp _fx_catch_17: ; _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&tup_1); - if (v_71) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_71); + if (v_72) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_72); } - if (idom_l_3) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&idom_l_3); - } - if (__fold_result___1) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&__fold_result___1); + if (new_idom_l_0) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&new_idom_l_0); } if (e_6) { _fx_free_N14K_form__kexp_t(&e_6); @@ -7081,10 +6972,10 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp else if (tag_0 == 16) { _fx_LN14K_form__atom_t args_0 = 0; _fx_LN14K_form__atom_t args_1 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_73 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_75 = {0}; _fx_T4R9Ast__id_tR9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_3 = &e_0->u.KExpMkClosure; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t* v_74 = &vcase_3->t3; - _fx_R10Ast__loc_t* loc_1 = &v_74->t1; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t* v_76 = &vcase_3->t3; + _fx_R10Ast__loc_t* loc_1 = &v_76->t1; _fx_LN14K_form__atom_t lstend_2 = 0; FX_COPY_PTR(vcase_3->t2, &args_1); _fx_LN14K_form__atom_t lst_8 = args_1; @@ -7100,13 +6991,13 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp _fx_free_N14K_form__atom_t(&res_3); FX_CHECK_EXN(_fx_catch_20); } - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(v_74->t0, loc_1, &v_73); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(v_76->t0, loc_1, &v_75); FX_CALL( _fx_M6K_formFM13KExpMkClosureN14K_form__kexp_t4R9Ast__id_tR9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &vcase_3->t0, &vcase_3->t1, args_0, &v_73, &e_1), _fx_catch_20); + &vcase_3->t0, &vcase_3->t1, args_0, &v_75, &e_1), _fx_catch_20); _fx_catch_20: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_73); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_75); if (args_1) { _fx_free_LN14K_form__atom_t(&args_1); } @@ -7117,7 +7008,7 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp else if (tag_0 == 12) { _fx_LN14K_form__atom_t args_2 = 0; _fx_LN14K_form__atom_t args_3 = 0; - _fx_N15K_form__kinfo_t v_75 = {0}; + _fx_N15K_form__kinfo_t v_77 = {0}; _fx_T3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_4 = &e_0->u.KExpCall; _fx_T2N14K_form__ktyp_tR10Ast__loc_t* kctx_1 = &vcase_4->t2; _fx_R10Ast__loc_t* loc_2 = &kctx_1->t1; @@ -7146,37 +7037,37 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp kctx_1, &e_1), _fx_catch_24); } else { - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(f_0, loc_2, &v_75, 0), _fx_catch_24); - if (v_75.tag == 3) { - _fx_R17K_form__kdeffun_t v_76 = {0}; - _fx_copy_R17K_form__kdeffun_t(&v_75.u.KFun->data, &v_76); + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(f_0, loc_2, &v_77, 0), _fx_catch_24); + if (v_77.tag == 3) { + _fx_R17K_form__kdeffun_t v_78 = {0}; + _fx_copy_R17K_form__kdeffun_t(&v_77.u.KFun->data, &v_78); bool res_6; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_76.kf_closure.kci_fcv_t, &_fx_g9Ast__noid, &res_6, 0), _fx_catch_22); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_78.kf_closure.kci_fcv_t, &_fx_g9Ast__noid, &res_6, 0), _fx_catch_22); if (res_6) { FX_CALL( _fx_M6K_formFM8KExpCallN14K_form__kexp_t3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(f_0, args_2, kctx_1, &e_1), _fx_catch_22); } else { - _fx_R9Ast__id_t v_77; + _fx_R9Ast__id_t v_79; FX_CALL( - _fx_M6K_formFM15check_n_walk_idR9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(f_0, loc_2, callb_0, &v_77, + _fx_M6K_formFM15check_n_walk_idR9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(f_0, loc_2, callb_0, &v_79, 0), _fx_catch_22); FX_CALL( - _fx_M6K_formFM8KExpCallN14K_form__kexp_t3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_77, + _fx_M6K_formFM8KExpCallN14K_form__kexp_t3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_79, args_2, kctx_1, &e_1), _fx_catch_22); } _fx_catch_22: ; - _fx_free_R17K_form__kdeffun_t(&v_76); + _fx_free_R17K_form__kdeffun_t(&v_78); } else { - _fx_R9Ast__id_t v_78; + _fx_R9Ast__id_t v_80; FX_CALL( - _fx_M6K_formFM15check_n_walk_idR9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(f_0, loc_2, callb_0, &v_78, 0), + _fx_M6K_formFM15check_n_walk_idR9Ast__id_t3R9Ast__id_tR10Ast__loc_tRM9k_callb_t(f_0, loc_2, callb_0, &v_80, 0), _fx_catch_23); FX_CALL( - _fx_M6K_formFM8KExpCallN14K_form__kexp_t3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_78, + _fx_M6K_formFM8KExpCallN14K_form__kexp_t3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_80, args_2, kctx_1, &e_1), _fx_catch_23); _fx_catch_23: ; @@ -7185,7 +7076,7 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp } _fx_catch_24: ; - _fx_free_N15K_form__kinfo_t(&v_75); + _fx_free_N15K_form__kinfo_t(&v_77); if (args_3) { _fx_free_LN14K_form__atom_t(&args_3); } @@ -7223,9 +7114,9 @@ static int _fx_M6K_liftFM20walk_kexp_n_lift_allN14K_form__kexp_t2N14K_form__kexp } else { FX_CALL(_fx_cons_LN14K_form__kexp_t(e_1, *curr_lift_extra_decls_0, true, &v_0), _fx_cleanup); - _fx_R10Ast__loc_t v_79; - FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(e_1, &v_79, 0), _fx_cleanup); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_0, &v_79, &e_2, 0), _fx_cleanup); + _fx_R10Ast__loc_t v_81; + FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(e_1, &v_81, 0), _fx_cleanup); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_0, &v_81, &e_2, 0), _fx_cleanup); } _fx_free_LN14K_form__kexp_t(curr_lift_extra_decls_0); FX_COPY_PTR(saved_extra_decls_0, curr_lift_extra_decls_0); @@ -7309,6 +7200,7 @@ static int fx_fv; _fx_M6K_liftFM7make_fpFPN14K_form__atom_t3N14K_form__atom_tR10Ast__loc_tR17K_form__k_callb_t3rLN14K_form__kexp_trirNt10Hashmap__t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t( cv_0->t0, cv_0->t1, cv_0->t2, &walk_atom_n_lift_all_0); + int_* curr_m_idx_0 = &curr_m_idx_ref_0->data; _fx_Nt10Hashmap__t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* curr_subst_env_0 = &curr_subst_env_ref_0->data; _fx_Nt10Hashset__t1R9Ast__id_t* defined_so_far_0 = &defined_so_far_ref_0->data; _fx_R17K_form__kdeffun_t* v_8 = &kf_0->data; @@ -7336,86 +7228,88 @@ static int _fx_M6K_liftFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_tR9Ast__id_t( *curr_subst_env_0, &kf_name_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1((*curr_subst_env_0)->u.t.t5, 0, idx_0), _fx_cleanup); - _fx_T2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_9 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, - (*curr_subst_env_0)->u.t.t5, idx_0)->data; - _fx_free_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(v_9); - _fx_copy_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(&v_2, v_9); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_9 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, + (*curr_subst_env_0)->u.t.t5, idx_0); + _fx_T2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_10 = &v_9->data; + _fx_free_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(v_10); + _fx_copy_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(&v_2, v_10); } FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(loc_0, &v_3), _fx_cleanup); FX_CALL(_fx_cons_LN14K_form__kexp_t(v_3, code_0, true, fx_result), _fx_cleanup); } else { _fx_R9Ast__id_t cl_name_0; - FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(curr_m_idx_ref_0->data, &kf_name_0, &cl_name_0, 0), _fx_cleanup); + FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(*curr_m_idx_0, &kf_name_0, &cl_name_0, 0), _fx_cleanup); _fx_make_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(&cl_name_0, &_fx_g14K_lift__None1_, &v_4); int_ idx_1; FX_CALL( _fx_M6K_liftFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_tR9Ast__id_t( *curr_subst_env_0, &kf_name_0, &idx_1, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1((*curr_subst_env_0)->u.t.t5, 0, idx_1), _fx_cleanup); - _fx_T2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_10 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, - (*curr_subst_env_0)->u.t.t5, idx_1)->data; - _fx_free_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(v_10); - _fx_copy_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(&v_4, v_10); - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)cl_name_0.m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)cl_name_0.i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)cl_name_0.j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_11 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t, + (*curr_subst_env_0)->u.t.t5, idx_1); + _fx_T2R9Ast__id_tNt6option1N14K_form__ktyp_t* v_12 = &v_11->data; + _fx_free_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(v_12); + _fx_copy_T2R9Ast__id_tNt6option1N14K_form__ktyp_t(&v_4, v_12); + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)cl_name_0.m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)cl_name_0.i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)cl_name_0.j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( _fx_M6K_liftFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*defined_so_far_0, &cl_name_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_cleanup); + h_0 & 9223372036854775807ULL, 0), _fx_cleanup); _fx_LN14K_form__atom_t lstend_0 = 0; _fx_LR9Ast__id_t lst_0 = orig_freevars_0; for (; lst_0; lst_0 = lst_0->tl) { - fx_str_t v_11 = {0}; - fx_str_t v_12 = {0}; fx_str_t v_13 = {0}; - fx_exn_t v_14 = {0}; - _fx_N14K_form__atom_t v_15 = {0}; + fx_str_t v_14 = {0}; + fx_str_t v_15 = {0}; + fx_exn_t v_16 = {0}; + _fx_N14K_form__atom_t v_17 = {0}; _fx_N14K_form__atom_t res_1 = {0}; _fx_R9Ast__id_t* fv_0 = &lst_0->hd; - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; - _fx_Ta2i v_16; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)fv_0->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)fv_0->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)fv_0->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + _fx_Ta2i v_18; FX_CALL( _fx_M6K_liftFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*defined_so_far_0, fv_0, - __fold_result___1 & 9223372036854775807ULL, &v_16, 0), _fx_catch_0); - if (!(v_16.t1 >= 0)) { - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_11, 0), _fx_catch_0); - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_12, 0), _fx_catch_0); + h_1 & 9223372036854775807ULL, &v_18, 0), _fx_catch_0); + if (!(v_18.t1 >= 0)) { + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(fv_0, &kf_loc_0, &v_13, 0), _fx_catch_0); + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(&kf_name_0, &kf_loc_0, &v_14, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("free variable \'"); fx_str_t slit_1 = FX_MAKE_STR("\' of \'"); fx_str_t slit_2 = FX_MAKE_STR("\' is not defined yet"); { - const fx_str_t strs_0[] = { slit_0, v_11, slit_1, v_12, slit_2 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_13), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_13, slit_1, v_14, slit_2 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_15), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_13, &v_14, 0), _fx_catch_0); - FX_THROW(&v_14, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&kf_loc_0, &v_15, &v_16, 0), _fx_catch_0); + FX_THROW(&v_16, false, _fx_catch_0); } - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(fv_0, &v_15); - FX_CALL(walk_atom_n_lift_all_0.fp(&v_15, &kf_loc_0, callb_0, &res_1, walk_atom_n_lift_all_0.fcv), _fx_catch_0); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(fv_0, &v_17); + FX_CALL(walk_atom_n_lift_all_0.fp(&v_17, &kf_loc_0, callb_0, &res_1, walk_atom_n_lift_all_0.fcv), _fx_catch_0); _fx_LN14K_form__atom_t node_0 = 0; FX_CALL(_fx_cons_LN14K_form__atom_t(&res_1, 0, false, &node_0), _fx_catch_0); FX_LIST_APPEND(cl_args_0, lstend_0, node_0); _fx_catch_0: ; _fx_free_N14K_form__atom_t(&res_1); - _fx_free_N14K_form__atom_t(&v_15); - fx_free_exn(&v_14); + _fx_free_N14K_form__atom_t(&v_17); + fx_free_exn(&v_16); + FX_FREE_STR(&v_15); + FX_FREE_STR(&v_14); FX_FREE_STR(&v_13); - FX_FREE_STR(&v_12); - FX_FREE_STR(&v_11); FX_CHECK_EXN(_fx_cleanup); } _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(kf_typ_0, &kf_loc_0, &v_5); @@ -7494,17 +7388,17 @@ static int _fx_M6K_liftFM10__lambda__LN14K_form__kexp_t2R9Ast__id_tLN14K_form__k _fx_R10Ast__loc_t* kf_loc_0 = &cv_0->t6; _fx_M6K_liftFM7make_fpFPLN14K_form__kexp_t8rR17K_form__kdeffun_tLN14K_form__kexp_tR10Ast__loc_tR17K_form__k_callb_trLN14K_form__kexp_trirNt10Hashmap__t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_trNt10Hashset__t1R9Ast__id_t3rLN14K_form__kexp_trirNt10Hashmap__t2R9Ast__id_tT2R9Ast__id_tNt6option1N14K_form__ktyp_t( curr_lift_extra_decls_ref_0, curr_m_idx_ref_0, curr_subst_env_ref_0, &create_defclosure_0); - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)called_f_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)called_f_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)called_f_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)called_f_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)called_f_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)called_f_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_1; FX_CALL( - _fx_M6K_liftFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t5, called_f_0, - __fold_result___0 & 9223372036854775807ULL, &v_1, 0), _fx_cleanup); + _fx_M6K_liftFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t5, called_f_0, h_0 & 9223372036854775807ULL, + &v_1, 0), _fx_cleanup); if (v_1.t1 >= 0) { FX_COPY_PTR(prologue_0, fx_result); } @@ -7512,7 +7406,8 @@ static int _fx_M6K_liftFM10__lambda__LN14K_form__kexp_t2R9Ast__id_tLN14K_form__k FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(called_f_0, kf_loc_0, &v_0, 0), _fx_cleanup); if (v_0.tag == 3) { _fx_rR17K_form__kdeffun_t called_kf_0 = v_0.u.KFun; - _fx_R9Ast__id_t called_fcv_t_0 = called_kf_0->data.kf_closure.kci_fcv_t; + _fx_R17K_form__kdeffun_t* v_2 = &called_kf_0->data; + _fx_R9Ast__id_t called_fcv_t_0 = v_2->kf_closure.kci_fcv_t; bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&called_fcv_t_0, &_fx_g9Ast__noid, &res_0, 0), _fx_catch_0); if (res_0) { diff --git a/compiler/bootstrap/K_lift_simple.c b/compiler/bootstrap/K_lift_simple.c index 7d80ea9e..f7a21622 100644 --- a/compiler/bootstrap/K_lift_simple.c +++ b/compiler/bootstrap/K_lift_simple.c @@ -3070,9 +3070,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -3121,26 +3124,28 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M13K_lift_simpleFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -3177,32 +3182,11 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -3236,17 +3220,17 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_ void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( - _fx_M13K_lift_simpleFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_cleanup); + _fx_M13K_lift_simpleFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, + &v_0, 0), _fx_cleanup); *fx_result = v_0.t1 >= 0; _fx_cleanup: ; @@ -3288,32 +3272,11 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -3329,14 +3292,14 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -3348,27 +3311,29 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -3376,11 +3341,14 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -3402,16 +3370,15 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_ void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - FX_CALL( - _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_cleanup); + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + FX_CALL(_fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, 0), + _fx_cleanup); _fx_cleanup: ; return fx_status; @@ -3498,16 +3465,16 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM14update_globalsv2LN14K_form__kexp_tNt10Ha _fx_LR9Ast__id_t lst_1 = n_list_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_R9Ast__id_t* k_0 = &lst_1->hd; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( - _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, k_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_catch_7); + _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, k_0, h_0 & 9223372036854775807ULL, + 0), _fx_catch_7); _fx_catch_7: ; FX_CHECK_EXN(_fx_catch_8); @@ -3581,10 +3548,10 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM4liftLR17K_form__kmodule_t1LR17K_form__kmo _fx_LR17K_form__kmodule_t lst_1 = kmods_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_LN14K_form__kexp_t top_code_0 = 0; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; _fx_LN14K_form__kexp_t new_top_code_1 = 0; _fx_LN14K_form__kexp_t top_code_1 = 0; - _fx_LN14K_form__kexp_t __fold_result___1 = 0; + _fx_LN14K_form__kexp_t res_1 = 0; _fx_LN14K_form__kexp_t new_top_code_2 = 0; _fx_LN14K_form__kexp_t top_code_2 = 0; _fx_R17K_form__kmodule_t rec_0 = {0}; @@ -3619,20 +3586,19 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM4liftLR17K_form__kmodule_t1LR17K_form__kmo FX_COPY_PTR(*new_top_code_0, &new_top_code_1); _fx_LN14K_form__kexp_t lst_3 = new_top_code_1; for (; lst_3; lst_3 = lst_3->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_3 = 0; _fx_N14K_form__kexp_t a_0 = lst_3->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_3); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_3), _fx_catch_3); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_3, &res_0); _fx_catch_3: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_3) { + _fx_free_LN14K_form__kexp_t(&v_3); } FX_CHECK_EXN(_fx_catch_7); } - FX_COPY_PTR(__fold_result___0, &top_code_1); + FX_COPY_PTR(res_0, &top_code_1); _fx_free_LN14K_form__kexp_t(new_top_code_0); *new_top_code_0 = 0; _fx_LN14K_form__kexp_t lst_4 = top_code_1; @@ -3641,14 +3607,14 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM4liftLR17K_form__kmodule_t1LR17K_form__kmo _fx_N14K_form__kexp_t e_1 = lst_4->hd; FX_CALL(walk_kexp_n_lift_0.fp(e_1, &walk_n_lift_callb_0, &new_e_1, walk_kexp_n_lift_0.fcv), _fx_catch_5); if (FX_REC_VARIANT_TAG(new_e_1) != 1) { - _fx_LN14K_form__kexp_t v_3 = 0; - FX_CALL(_fx_cons_LN14K_form__kexp_t(new_e_1, *new_top_code_0, true, &v_3), _fx_catch_4); + _fx_LN14K_form__kexp_t v_4 = 0; + FX_CALL(_fx_cons_LN14K_form__kexp_t(new_e_1, *new_top_code_0, true, &v_4), _fx_catch_4); _fx_free_LN14K_form__kexp_t(new_top_code_0); - FX_COPY_PTR(v_3, new_top_code_0); + FX_COPY_PTR(v_4, new_top_code_0); _fx_catch_4: ; - if (v_3) { - _fx_free_LN14K_form__kexp_t(&v_3); + if (v_4) { + _fx_free_LN14K_form__kexp_t(&v_4); } } FX_CHECK_EXN(_fx_catch_5); @@ -3662,20 +3628,19 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM4liftLR17K_form__kmodule_t1LR17K_form__kmo FX_COPY_PTR(*new_top_code_0, &new_top_code_2); _fx_LN14K_form__kexp_t lst_5 = new_top_code_2; for (; lst_5; lst_5 = lst_5->tl) { - _fx_LN14K_form__kexp_t r_1 = 0; + _fx_LN14K_form__kexp_t v_5 = 0; _fx_N14K_form__kexp_t a_1 = lst_5->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, r_1, false, &r_1), _fx_catch_6); - _fx_free_LN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, res_1, true, &v_5), _fx_catch_6); + _fx_free_LN14K_form__kexp_t(&res_1); + FX_COPY_PTR(v_5, &res_1); _fx_catch_6: ; - if (r_1) { - _fx_free_LN14K_form__kexp_t(&r_1); + if (v_5) { + _fx_free_LN14K_form__kexp_t(&v_5); } FX_CHECK_EXN(_fx_catch_7); } - FX_COPY_PTR(__fold_result___1, &top_code_2); + FX_COPY_PTR(res_1, &top_code_2); _fx_make_R17K_form__kmodule_t(&km_0->km_name, km_0->km_idx, km_0->km_toposort_idx, &km_0->km_cname, top_code_2, km_0->km_deps, km_0->km_skip, km_0->km_main, &km_0->km_pragmas, &rec_0); _fx_LR17K_form__kmodule_t node_0 = 0; @@ -3690,8 +3655,8 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM4liftLR17K_form__kmodule_t1LR17K_form__kmo if (new_top_code_2) { _fx_free_LN14K_form__kexp_t(&new_top_code_2); } - if (__fold_result___1) { - _fx_free_LN14K_form__kexp_t(&__fold_result___1); + if (res_1) { + _fx_free_LN14K_form__kexp_t(&res_1); } if (top_code_1) { _fx_free_LN14K_form__kexp_t(&top_code_1); @@ -3699,8 +3664,8 @@ FX_EXTERN_C int _fx_M13K_lift_simpleFM4liftLR17K_form__kmodule_t1LR17K_form__kmo if (new_top_code_1) { _fx_free_LN14K_form__kexp_t(&new_top_code_1); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } if (top_code_0) { _fx_free_LN14K_form__kexp_t(&top_code_0); @@ -3751,20 +3716,23 @@ static int _fx_M13K_lift_simpleFM12can_lift_funB2rR17K_form__kdeffun_tNt10Hashse int_ v_2 = uv_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_2; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - bool v_3; - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + bool v_4; + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_4 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; - bool v_5; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_5 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_6 = v_5->key; + bool v_7; FX_CALL( _fx_M13K_lift_simpleFM10__lambda__B5R9Ast__id_tNt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_tR10Ast__loc_tR9Ast__id_t( - &v_4, dv_0, globals_0, &kf_loc_0, &kf_name_0, &v_5, 0), _fx_catch_0); - v_3 = !v_5; + &v_6, dv_0, globals_0, &kf_loc_0, &kf_name_0, &v_7, 0), _fx_catch_0); + v_4 = !v_7; } else { - v_3 = false; + v_4 = false; } - if (v_3) { + if (v_4) { ok_0 = false; FX_BREAK(_fx_catch_0); } @@ -3803,33 +3771,33 @@ static int { _fx_N15K_form__kinfo_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_1; FX_CALL( - _fx_M13K_lift_simpleFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(dv_0, n_0, - __fold_result___0 & 9223372036854775807ULL, &v_1, 0), _fx_cleanup); + _fx_M13K_lift_simpleFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(dv_0, n_0, h_0 & 9223372036854775807ULL, &v_1, + 0), _fx_cleanup); bool t_0; if (v_1.t1 >= 0) { t_0 = true; } else { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; _fx_Ta2i v_2; FX_CALL( _fx_M13K_lift_simpleFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, n_0, - __fold_result___1 & 9223372036854775807ULL, &v_2, 0), _fx_cleanup); + h_1 & 9223372036854775807ULL, &v_2, 0), _fx_cleanup); t_0 = v_2.t1 >= 0; } if (t_0) { @@ -3942,31 +3910,31 @@ static int _fx_M13K_lift_simpleFM16walk_kexp_n_liftN14K_form__kexp_t2N14K_form__ _fx_LN14K_form__kexp_t v_1 = 0; _fx_copy_R21K_form__kdefvariant_t(&e_0->u.KDefVariant->data, &v_0); _fx_R9Ast__id_t* kvar_name_0 = &v_0.kvar_name; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)kvar_name_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)kvar_name_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)kvar_name_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)kvar_name_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)kvar_name_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)kvar_name_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_2; FX_CALL( _fx_M13K_lift_simpleFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, kvar_name_0, - __fold_result___0 & 9223372036854775807ULL, &v_2, 0), _fx_catch_0); + h_0 & 9223372036854775807ULL, &v_2, 0), _fx_catch_0); if (v_2.t1 >= 0) { FX_COPY_PTR(e_0, fx_result); } else { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)kvar_name_0->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)kvar_name_0->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)kvar_name_0->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)kvar_name_0->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)kvar_name_0->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)kvar_name_0->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, kvar_name_0, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_0); + h_1 & 9223372036854775807ULL, 0), _fx_catch_0); FX_CALL(_fx_cons_LN14K_form__kexp_t(e_0, *new_top_code_0, true, &v_1), _fx_catch_0); _fx_free_LN14K_form__kexp_t(new_top_code_0); FX_COPY_PTR(v_1, new_top_code_0); @@ -3984,31 +3952,31 @@ static int _fx_M13K_lift_simpleFM16walk_kexp_n_liftN14K_form__kexp_t2N14K_form__ _fx_LN14K_form__kexp_t v_4 = 0; _fx_copy_R17K_form__kdeftyp_t(&e_0->u.KDefTyp->data, &v_3); _fx_R9Ast__id_t* kt_name_0 = &v_3.kt_name; - uint64_t __fold_result___2 = 14695981039346656037ULL; - uint64_t h_6 = __fold_result___2 ^ ((uint64_t)kt_name_0->m ^ 14695981039346656037ULL); - __fold_result___2 = h_6 * 1099511628211ULL; - uint64_t h_7 = __fold_result___2 ^ ((uint64_t)kt_name_0->i ^ 14695981039346656037ULL); - __fold_result___2 = h_7 * 1099511628211ULL; - uint64_t h_8 = __fold_result___2 ^ ((uint64_t)kt_name_0->j ^ 14695981039346656037ULL); - __fold_result___2 = h_8 * 1099511628211ULL; + uint64_t h_2 = 14695981039346656037ULL; + h_2 = h_2 ^ ((uint64_t)kt_name_0->m ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)kt_name_0->i ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)kt_name_0->j ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; _fx_Ta2i v_5; FX_CALL( _fx_M13K_lift_simpleFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, kt_name_0, - __fold_result___2 & 9223372036854775807ULL, &v_5, 0), _fx_catch_1); + h_2 & 9223372036854775807ULL, &v_5, 0), _fx_catch_1); if (v_5.t1 >= 0) { FX_COPY_PTR(e_0, fx_result); } else { - uint64_t __fold_result___3 = 14695981039346656037ULL; - uint64_t h_9 = __fold_result___3 ^ ((uint64_t)kt_name_0->m ^ 14695981039346656037ULL); - __fold_result___3 = h_9 * 1099511628211ULL; - uint64_t h_10 = __fold_result___3 ^ ((uint64_t)kt_name_0->i ^ 14695981039346656037ULL); - __fold_result___3 = h_10 * 1099511628211ULL; - uint64_t h_11 = __fold_result___3 ^ ((uint64_t)kt_name_0->j ^ 14695981039346656037ULL); - __fold_result___3 = h_11 * 1099511628211ULL; + uint64_t h_3 = 14695981039346656037ULL; + h_3 = h_3 ^ ((uint64_t)kt_name_0->m ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; + h_3 = h_3 ^ ((uint64_t)kt_name_0->i ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; + h_3 = h_3 ^ ((uint64_t)kt_name_0->j ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; FX_CALL( _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, kt_name_0, - __fold_result___3 & 9223372036854775807ULL, 0), _fx_catch_1); + h_3 & 9223372036854775807ULL, 0), _fx_catch_1); FX_CALL(_fx_cons_LN14K_form__kexp_t(e_0, *new_top_code_0, true, &v_4), _fx_catch_1); _fx_free_LN14K_form__kexp_t(new_top_code_0); FX_COPY_PTR(v_4, new_top_code_0); @@ -4026,31 +3994,31 @@ static int _fx_M13K_lift_simpleFM16walk_kexp_n_liftN14K_form__kexp_t2N14K_form__ _fx_LN14K_form__kexp_t v_7 = 0; _fx_copy_R17K_form__kdefexn_t(&e_0->u.KDefExn->data, &v_6); _fx_R9Ast__id_t* ke_name_0 = &v_6.ke_name; - uint64_t __fold_result___4 = 14695981039346656037ULL; - uint64_t h_12 = __fold_result___4 ^ ((uint64_t)ke_name_0->m ^ 14695981039346656037ULL); - __fold_result___4 = h_12 * 1099511628211ULL; - uint64_t h_13 = __fold_result___4 ^ ((uint64_t)ke_name_0->i ^ 14695981039346656037ULL); - __fold_result___4 = h_13 * 1099511628211ULL; - uint64_t h_14 = __fold_result___4 ^ ((uint64_t)ke_name_0->j ^ 14695981039346656037ULL); - __fold_result___4 = h_14 * 1099511628211ULL; + uint64_t h_4 = 14695981039346656037ULL; + h_4 = h_4 ^ ((uint64_t)ke_name_0->m ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; + h_4 = h_4 ^ ((uint64_t)ke_name_0->i ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; + h_4 = h_4 ^ ((uint64_t)ke_name_0->j ^ 14695981039346656037ULL); + h_4 = h_4 * 1099511628211ULL; _fx_Ta2i v_8; FX_CALL( _fx_M13K_lift_simpleFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, ke_name_0, - __fold_result___4 & 9223372036854775807ULL, &v_8, 0), _fx_catch_2); + h_4 & 9223372036854775807ULL, &v_8, 0), _fx_catch_2); if (v_8.t1 >= 0) { FX_COPY_PTR(e_0, fx_result); } else { - uint64_t __fold_result___5 = 14695981039346656037ULL; - uint64_t h_15 = __fold_result___5 ^ ((uint64_t)ke_name_0->m ^ 14695981039346656037ULL); - __fold_result___5 = h_15 * 1099511628211ULL; - uint64_t h_16 = __fold_result___5 ^ ((uint64_t)ke_name_0->i ^ 14695981039346656037ULL); - __fold_result___5 = h_16 * 1099511628211ULL; - uint64_t h_17 = __fold_result___5 ^ ((uint64_t)ke_name_0->j ^ 14695981039346656037ULL); - __fold_result___5 = h_17 * 1099511628211ULL; + uint64_t h_5 = 14695981039346656037ULL; + h_5 = h_5 ^ ((uint64_t)ke_name_0->m ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; + h_5 = h_5 ^ ((uint64_t)ke_name_0->i ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; + h_5 = h_5 ^ ((uint64_t)ke_name_0->j ^ 14695981039346656037ULL); + h_5 = h_5 * 1099511628211ULL; FX_CALL( _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, ke_name_0, - __fold_result___5 & 9223372036854775807ULL, 0), _fx_catch_2); + h_5 & 9223372036854775807ULL, 0), _fx_catch_2); FX_CALL(_fx_cons_LN14K_form__kexp_t(e_0, *new_top_code_0, true, &v_7), _fx_catch_2); _fx_free_LN14K_form__kexp_t(new_top_code_0); FX_COPY_PTR(v_7, new_top_code_0); @@ -4072,31 +4040,31 @@ static int _fx_M13K_lift_simpleFM16walk_kexp_n_liftN14K_form__kexp_t2N14K_form__ _fx_R9Ast__id_t* i_0 = &vcase_0->t0; FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_9, 0), _fx_catch_3); _fx_copy_R16Ast__val_flags_t(&v_9.kv_flags, &kv_flags_0); - uint64_t __fold_result___6 = 14695981039346656037ULL; - uint64_t h_18 = __fold_result___6 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___6 = h_18 * 1099511628211ULL; - uint64_t h_19 = __fold_result___6 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___6 = h_19 * 1099511628211ULL; - uint64_t h_20 = __fold_result___6 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___6 = h_20 * 1099511628211ULL; + uint64_t h_6 = 14695981039346656037ULL; + h_6 = h_6 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_6 = h_6 * 1099511628211ULL; + h_6 = h_6 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_6 = h_6 * 1099511628211ULL; + h_6 = h_6 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_6 = h_6 * 1099511628211ULL; _fx_Ta2i v_11; FX_CALL( _fx_M13K_lift_simpleFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, i_0, - __fold_result___6 & 9223372036854775807ULL, &v_11, 0), _fx_catch_3); + h_6 & 9223372036854775807ULL, &v_11, 0), _fx_catch_3); if (v_11.t1 >= 0) { FX_COPY_PTR(e_0, fx_result); } else if (kv_flags_0.val_flag_ctor > 0) { - uint64_t __fold_result___7 = 14695981039346656037ULL; - uint64_t h_21 = __fold_result___7 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___7 = h_21 * 1099511628211ULL; - uint64_t h_22 = __fold_result___7 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___7 = h_22 * 1099511628211ULL; - uint64_t h_23 = __fold_result___7 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___7 = h_23 * 1099511628211ULL; + uint64_t h_7 = 14695981039346656037ULL; + h_7 = h_7 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_7 = h_7 * 1099511628211ULL; + h_7 = h_7 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_7 = h_7 * 1099511628211ULL; + h_7 = h_7 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_7 = h_7 * 1099511628211ULL; FX_CALL( - _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, i_0, - __fold_result___7 & 9223372036854775807ULL, 0), _fx_catch_3); + _fx_M13K_lift_simpleFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(globals_0, i_0, h_7 & 9223372036854775807ULL, + 0), _fx_catch_3); FX_CALL(_fx_cons_LN14K_form__kexp_t(e_0, *new_top_code_0, true, &v_10), _fx_catch_3); _fx_free_LN14K_form__kexp_t(new_top_code_0); FX_COPY_PTR(v_10, new_top_code_0); diff --git a/compiler/bootstrap/K_loop_inv.c b/compiler/bootstrap/K_loop_inv.c index 6ba798db..1ba62fea 100644 --- a/compiler/bootstrap/K_loop_inv.c +++ b/compiler/bootstrap/K_loop_inv.c @@ -3274,9 +3274,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -3325,26 +3328,28 @@ FX_EXTERN_C int _fx_M10K_loop_invFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M10K_loop_invFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -3381,32 +3386,11 @@ FX_EXTERN_C int _fx_M10K_loop_invFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9As bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -3468,32 +3452,11 @@ FX_EXTERN_C int _fx_M10K_loop_invFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -3509,14 +3472,14 @@ FX_EXTERN_C int _fx_M10K_loop_invFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -3528,27 +3491,29 @@ FX_EXTERN_C int _fx_M10K_loop_invFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -3556,11 +3521,14 @@ FX_EXTERN_C int _fx_M10K_loop_invFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -3763,6 +3731,8 @@ static int _fx_M10K_loop_invFM11isinv_atom_v3N14K_form__atom_tR10Ast__loc_tR22K_ int fx_status = 0; _fx_M10K_loop_invFM11isinv_atom_v3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t_cldata_t* cv_0 = (_fx_M10K_loop_invFM11isinv_atom_v3N14K_form__atom_tR10Ast__loc_tR22K_form__k_fold_callb_t_cldata_t*)fx_fv; + _fx_Nt10Hashset__t1R9Ast__id_t* curr_inloop_0 = &cv_0->t0->data; + bool* isinv_0 = &cv_0->t1->data; int tag_0 = a_0->tag; if (tag_0 == 1) { if (a_0->u.AtomId.m == 0) { @@ -3789,21 +3759,21 @@ static int _fx_M10K_loop_invFM11isinv_atom_v3N14K_form__atom_tR10Ast__loc_tR22K_ v_1 = true; } else { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_2; FX_CALL( - _fx_M10K_loop_invFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(cv_0->t0->data, i_0, - __fold_result___0 & 9223372036854775807ULL, &v_2, 0), _fx_catch_0); + _fx_M10K_loop_invFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*curr_inloop_0, i_0, + h_0 & 9223372036854775807ULL, &v_2, 0), _fx_catch_0); v_1 = v_2.t1 >= 0; } if (v_1) { - cv_0->t1->data = false; + *isinv_0 = false; } _fx_catch_0: ; @@ -3839,7 +3809,8 @@ static int _fx_M10K_loop_invFM11isinv_kexp_v2N14K_form__kexp_tR22K_form__k_fold_ int fx_status = 0; _fx_M10K_loop_invFM11isinv_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t* cv_0 = (_fx_M10K_loop_invFM11isinv_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t*)fx_fv; - if (cv_0->t0->data) { + bool* isinv_0 = &cv_0->t0->data; + if (*isinv_0) { FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(e_0, callb_0, 0), _fx_cleanup); } @@ -3878,13 +3849,11 @@ static int _fx_LN14K_form__kexp_t saved_moved_0 = 0; _fx_LN14K_form__kexp_t v_4 = 0; _fx_Nt10Hashset__t1R9Ast__id_t v_5 = 0; - _fx_LN14K_form__kexp_t v_6 = 0; - _fx_N14K_form__kexp_t v_7 = 0; - _fx_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t __fold_result___0 = - {0}; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t __fold_result___1 = 0; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_8 = 0; - _fx_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t v_9 = {0}; + _fx_LN14K_form__kexp_t nested_elist_0 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t acc_idl_0 = 0; + _fx_N14K_form__kexp_t body_acc_0 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t res_0 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_6 = 0; _fx_LN14K_form__kexp_t outer_moved_0 = 0; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t new_e_idl_l_0 = 0; _fx_N14K_form__kexp_t new_body_0 = 0; @@ -3897,7 +3866,7 @@ static int cv_0->t0, cv_0->t1, &mli_kexp_0); _fx_Nt10Hashset__t1R9Ast__id_t* curr_inloop_0 = &curr_inloop_ref_0->data; _fx_LN14K_form__kexp_t* curr_moved_0 = &curr_moved_ref_0->data; - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_10 = (*curr_inloop_0)->u.t.t0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_7 = (*curr_inloop_0)->u.t.t0; fx_copy_arr(&(*curr_inloop_0)->u.t.t4, &v_0); int_* dstptr_0 = 0; int_ ni_0 = FX_ARR_SIZE(v_0, 0); @@ -3924,84 +3893,72 @@ static int } FX_CALL( _fx_M10K_loop_invFM1tNt10Hashset__t1R9Ast__id_t6Rt24Hashset__hashset_entry_t1R9Ast__id_tiiiA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_t( - &v_10, (*curr_inloop_0)->u.t.t1, (*curr_inloop_0)->u.t.t2, (*curr_inloop_0)->u.t.t3, &v_1, &v_3, &saved_inloop_0), + &v_7, (*curr_inloop_0)->u.t.t1, (*curr_inloop_0)->u.t.t2, (*curr_inloop_0)->u.t.t3, &v_1, &v_3, &saved_inloop_0), _fx_cleanup); FX_COPY_PTR(*curr_moved_0, &saved_moved_0); FX_CALL(_fx_cons_LN14K_form__kexp_t(body_0, 0, true, &v_4), _fx_cleanup); FX_CALL(_fx_M6K_formFM8declaredNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_4, 256, &v_5, 0), _fx_cleanup); _fx_free_Nt10Hashset__t1R9Ast__id_t(curr_inloop_0); FX_COPY_PTR(v_5, curr_inloop_0); - FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(body_0, &v_6, 0), _fx_cleanup); - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(loc_0, &v_7), _fx_cleanup); - _fx_make_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(v_6, 0, v_7, - &__fold_result___0); + FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(body_0, &nested_elist_0, 0), _fx_cleanup); + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(loc_0, &body_acc_0), _fx_cleanup); _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t lst_0 = e_idl_l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t r_0 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_8 = 0; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(a_0, res_0, true, &v_8), _fx_catch_0); + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&res_0); + FX_COPY_PTR(v_8, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&r_0); + if (v_8) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_8); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_8); - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t lst_1 = v_8; + FX_COPY_PTR(res_0, &v_6); + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t lst_1 = v_6; for (; lst_1; lst_1 = lst_1->tl) { _fx_N14K_form__kexp_t pre_e_0 = 0; _fx_LT2R9Ast__id_tN13K_form__dom_t idl_0 = 0; _fx_LR9Ast__id_t idxl_0 = 0; - _fx_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t v_11 = {0}; - _fx_LN14K_form__kexp_t nested_elist_0 = 0; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t e_idl_l_1 = 0; - _fx_N14K_form__kexp_t body_1 = 0; - _fx_LN14K_form__kexp_t v_12 = 0; + _fx_LN14K_form__kexp_t v_9 = 0; _fx_Nt10Hashset__t1R9Ast__id_t in_pre_0 = 0; - _fx_N14K_form__kexp_t v_13 = 0; + _fx_N14K_form__kexp_t v_10 = 0; _fx_N14K_form__kexp_t nested_e_0 = 0; - _fx_LN14K_form__kexp_t v_14 = 0; - _fx_LN14K_form__kexp_t __fold_result___2 = 0; + _fx_LN14K_form__kexp_t v_11 = 0; + _fx_LN14K_form__kexp_t res_1 = 0; _fx_LN14K_form__kexp_t curr_moved_1 = 0; - _fx_LN14K_form__kexp_t v_15 = 0; + _fx_LN14K_form__kexp_t v_12 = 0; _fx_LN14K_form__kexp_t new_elist_0 = 0; fx_arr_t table_0 = {0}; - _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t v_16 = {0}; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t e_idl_l_2 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t acc_idl_1 = 0; + _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t v_13 = {0}; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t e_idl_l_1 = 0; _fx_N14K_form__kexp_t new_body_1 = 0; - _fx_N14K_form__kexp_t v_17 = 0; - _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_18 = {0}; + _fx_N14K_form__kexp_t v_14 = 0; + _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_15 = {0}; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t new_e_idl_l_1 = 0; - _fx_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t v_19 = {0}; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* __pat___0 = &lst_1->hd; FX_COPY_PTR(__pat___0->t0, &pre_e_0); FX_COPY_PTR(__pat___0->t1, &idl_0); FX_COPY_PTR(__pat___0->t2, &idxl_0); - _fx_copy_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t( - &__fold_result___0, &v_11); - FX_COPY_PTR(v_11.t0, &nested_elist_0); - FX_COPY_PTR(v_11.t1, &e_idl_l_1); - FX_COPY_PTR(v_11.t2, &body_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(pre_e_0, 0, true, &v_12), _fx_catch_8); - FX_CALL(_fx_M6K_formFM8declaredNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_12, 256, &in_pre_0, 0), _fx_catch_8); + FX_CALL(_fx_cons_LN14K_form__kexp_t(pre_e_0, 0, true, &v_9), _fx_catch_8); + FX_CALL(_fx_M6K_formFM8declaredNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_9, 256, &in_pre_0, 0), _fx_catch_8); _fx_LT2R9Ast__id_tN13K_form__dom_t lst_2 = idl_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_T2R9Ast__id_tN13K_form__dom_t* __pat___1 = &lst_2->hd; _fx_R9Ast__id_t i_2 = __pat___1->t0; - uint64_t __fold_result___3 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___3 ^ ((uint64_t)i_2.m ^ 14695981039346656037ULL); - __fold_result___3 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___3 ^ ((uint64_t)i_2.i ^ 14695981039346656037ULL); - __fold_result___3 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___3 ^ ((uint64_t)i_2.j ^ 14695981039346656037ULL); - __fold_result___3 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)i_2.m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_2.i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_2.j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( - _fx_M10K_loop_invFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*curr_inloop_0, &i_2, - __fold_result___3 & 9223372036854775807ULL, 0), _fx_catch_1); + _fx_M10K_loop_invFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*curr_inloop_0, &i_2, h_0 & 9223372036854775807ULL, + 0), _fx_catch_1); _fx_catch_1: ; FX_CHECK_EXN(_fx_catch_8); @@ -4009,94 +3966,99 @@ static int _fx_LR9Ast__id_t lst_3 = idxl_0; for (; lst_3; lst_3 = lst_3->tl) { _fx_R9Ast__id_t* i_3 = &lst_3->hd; - uint64_t __fold_result___4 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___4 ^ ((uint64_t)i_3->m ^ 14695981039346656037ULL); - __fold_result___4 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___4 ^ ((uint64_t)i_3->i ^ 14695981039346656037ULL); - __fold_result___4 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___4 ^ ((uint64_t)i_3->j ^ 14695981039346656037ULL); - __fold_result___4 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)i_3->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_3->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_3->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( - _fx_M10K_loop_invFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*curr_inloop_0, i_3, - __fold_result___4 & 9223372036854775807ULL, 0), _fx_catch_2); + _fx_M10K_loop_invFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*curr_inloop_0, i_3, h_1 & 9223372036854775807ULL, + 0), _fx_catch_2); _fx_catch_2: ; FX_CHECK_EXN(_fx_catch_8); } _fx_free_LN14K_form__kexp_t(curr_moved_0); *curr_moved_0 = 0; - FX_CALL(_fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(nested_elist_0, loc_0, &v_13, 0), + FX_CALL(_fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(nested_elist_0, loc_0, &v_10, 0), _fx_catch_8); - FX_CALL(mli_kexp_0.fp(v_13, callb_0, &nested_e_0, mli_kexp_0.fcv), _fx_catch_8); - FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(pre_e_0, &v_14, 0), _fx_catch_8); + FX_CALL(mli_kexp_0.fp(v_10, callb_0, &nested_e_0, mli_kexp_0.fcv), _fx_catch_8); + FX_CALL(_fx_M6K_formFM9kexp2codeLN14K_form__kexp_t1N14K_form__kexp_t(pre_e_0, &v_11, 0), _fx_catch_8); FX_COPY_PTR(*curr_moved_0, &curr_moved_1); _fx_LN14K_form__kexp_t lst_4 = curr_moved_1; for (; lst_4; lst_4 = lst_4->tl) { - _fx_LN14K_form__kexp_t r_1 = 0; + _fx_LN14K_form__kexp_t v_16 = 0; _fx_N14K_form__kexp_t a_1 = lst_4->hd; - FX_COPY_PTR(__fold_result___2, &r_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, r_1, false, &r_1), _fx_catch_3); - _fx_free_LN14K_form__kexp_t(&__fold_result___2); - FX_COPY_PTR(r_1, &__fold_result___2); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_1, res_1, true, &v_16), _fx_catch_3); + _fx_free_LN14K_form__kexp_t(&res_1); + FX_COPY_PTR(v_16, &res_1); _fx_catch_3: ; - if (r_1) { - _fx_free_LN14K_form__kexp_t(&r_1); + if (v_16) { + _fx_free_LN14K_form__kexp_t(&v_16); } FX_CHECK_EXN(_fx_catch_8); } - FX_COPY_PTR(__fold_result___2, &v_15); - if (v_14 == 0) { - FX_COPY_PTR(v_15, &new_elist_0); + FX_COPY_PTR(res_1, &v_12); + if (v_11 == 0) { + FX_COPY_PTR(v_12, &new_elist_0); } - else if (v_15 == 0) { - FX_COPY_PTR(v_14, &new_elist_0); + else if (v_12 == 0) { + FX_COPY_PTR(v_11, &new_elist_0); } else { - _fx_LN14K_form__kexp_t v_20 = 0; + _fx_LN14K_form__kexp_t v_17 = 0; _fx_LN14K_form__kexp_t lstend_0 = 0; - _fx_LN14K_form__kexp_t lst_5 = v_14; + _fx_LN14K_form__kexp_t lst_5 = v_11; for (; lst_5; lst_5 = lst_5->tl) { _fx_N14K_form__kexp_t x_2 = lst_5->hd; _fx_LN14K_form__kexp_t node_0 = 0; FX_CALL(_fx_cons_LN14K_form__kexp_t(x_2, 0, false, &node_0), _fx_catch_4); - FX_LIST_APPEND(v_20, lstend_0, node_0); + FX_LIST_APPEND(v_17, lstend_0, node_0); _fx_catch_4: ; FX_CHECK_EXN(_fx_catch_5); } - _fx_M10K_loop_invFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_20, v_15, &new_elist_0, 0); + _fx_M10K_loop_invFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_17, v_12, &new_elist_0, 0); _fx_catch_5: ; - if (v_20) { - _fx_free_LN14K_form__kexp_t(&v_20); + if (v_17) { + _fx_free_LN14K_form__kexp_t(&v_17); } } FX_CHECK_EXN(_fx_catch_8); fx_copy_arr(&in_pre_0->u.t.t5, &table_0); - int_ v_21 = in_pre_0->u.t.t2; - for (int_ j_0 = 0; j_0 < v_21; j_0++) { + int_ v_18 = in_pre_0->u.t.t2; + for (int_ j_0 = 0; j_0 < v_18; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_6); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_19 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_19->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_6); - _fx_R9Ast__id_t v_22 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_20 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_21 = v_20->key; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_6); - FX_CALL( - _fx_M10K_loop_invFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*curr_inloop_0, &v_22, - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv, 0), _fx_catch_6); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_22 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + FX_CALL(_fx_M10K_loop_invFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*curr_inloop_0, &v_21, v_22->hv, 0), + _fx_catch_6); } _fx_catch_6: ; FX_CHECK_EXN(_fx_catch_8); } - if (e_idl_l_1 != 0) { + FX_COPY_PTR(acc_idl_0, &acc_idl_1); + if (acc_idl_1 != 0) { _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_23 = {0}; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_24 = 0; - _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* v_25 = &e_idl_l_1->hd; + _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* v_25 = &acc_idl_1->hd; _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(nested_e_0, v_25->t1, v_25->t2, &v_23); - FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_23, e_idl_l_1->tl, true, &v_24), + FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_23, acc_idl_1->tl, true, &v_24), _fx_catch_7); - _fx_make_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(v_24, body_1, &v_16); + _fx_make_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(v_24, body_acc_0, &v_13); _fx_catch_7: ; if (v_24) { @@ -4105,76 +4067,68 @@ static int _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_23); } else { - _fx_make_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(0, nested_e_0, &v_16); + _fx_make_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(0, nested_e_0, &v_13); } FX_CHECK_EXN(_fx_catch_8); - FX_COPY_PTR(v_16.t0, &e_idl_l_2); - FX_COPY_PTR(v_16.t1, &new_body_1); - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(loc_0, &v_17), _fx_catch_8); - _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(v_17, idl_0, idxl_0, &v_18); - FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_18, e_idl_l_2, true, &new_e_idl_l_1), + FX_COPY_PTR(v_13.t0, &e_idl_l_1); + FX_COPY_PTR(v_13.t1, &new_body_1); + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(loc_0, &v_14), _fx_catch_8); + _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(v_14, idl_0, idxl_0, &v_15); + FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_15, e_idl_l_1, true, &new_e_idl_l_1), _fx_catch_8); - _fx_make_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(new_elist_0, - new_e_idl_l_1, new_body_1, &v_19); - _fx_free_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t( - &__fold_result___0); - _fx_copy_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(&v_19, - &__fold_result___0); + _fx_free_LN14K_form__kexp_t(&nested_elist_0); + FX_COPY_PTR(new_elist_0, &nested_elist_0); + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&acc_idl_0); + FX_COPY_PTR(new_e_idl_l_1, &acc_idl_0); + _fx_free_N14K_form__kexp_t(&body_acc_0); + FX_COPY_PTR(new_body_1, &body_acc_0); _fx_catch_8: ; - _fx_free_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(&v_19); if (new_e_idl_l_1) { _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&new_e_idl_l_1); } - _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_18); - if (v_17) { - _fx_free_N14K_form__kexp_t(&v_17); + _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_15); + if (v_14) { + _fx_free_N14K_form__kexp_t(&v_14); } if (new_body_1) { _fx_free_N14K_form__kexp_t(&new_body_1); } - if (e_idl_l_2) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&e_idl_l_2); + if (e_idl_l_1) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&e_idl_l_1); + } + _fx_free_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(&v_13); + if (acc_idl_1) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&acc_idl_1); } - _fx_free_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(&v_16); FX_FREE_ARR(&table_0); if (new_elist_0) { _fx_free_LN14K_form__kexp_t(&new_elist_0); } - if (v_15) { - _fx_free_LN14K_form__kexp_t(&v_15); + if (v_12) { + _fx_free_LN14K_form__kexp_t(&v_12); } if (curr_moved_1) { _fx_free_LN14K_form__kexp_t(&curr_moved_1); } - if (__fold_result___2) { - _fx_free_LN14K_form__kexp_t(&__fold_result___2); + if (res_1) { + _fx_free_LN14K_form__kexp_t(&res_1); } - if (v_14) { - _fx_free_LN14K_form__kexp_t(&v_14); + if (v_11) { + _fx_free_LN14K_form__kexp_t(&v_11); } if (nested_e_0) { _fx_free_N14K_form__kexp_t(&nested_e_0); } - if (v_13) { - _fx_free_N14K_form__kexp_t(&v_13); + if (v_10) { + _fx_free_N14K_form__kexp_t(&v_10); } if (in_pre_0) { _fx_free_Nt10Hashset__t1R9Ast__id_t(&in_pre_0); } - if (v_12) { - _fx_free_LN14K_form__kexp_t(&v_12); + if (v_9) { + _fx_free_LN14K_form__kexp_t(&v_9); } - if (body_1) { - _fx_free_N14K_form__kexp_t(&body_1); - } - if (e_idl_l_1) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&e_idl_l_1); - } - if (nested_elist_0) { - _fx_free_LN14K_form__kexp_t(&nested_elist_0); - } - _fx_free_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(&v_11); FX_FREE_LIST_SIMPLE(&idxl_0); if (idl_0) { _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&idl_0); @@ -4184,11 +4138,9 @@ static int } FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t( - &__fold_result___0, &v_9); - FX_COPY_PTR(v_9.t0, &outer_moved_0); - FX_COPY_PTR(v_9.t1, &new_e_idl_l_0); - FX_COPY_PTR(v_9.t2, &new_body_0); + FX_COPY_PTR(nested_elist_0, &outer_moved_0); + FX_COPY_PTR(acc_idl_0, &new_e_idl_l_0); + FX_COPY_PTR(body_acc_0, &new_body_0); _fx_free_Nt10Hashset__t1R9Ast__id_t(curr_inloop_0); FX_COPY_PTR(saved_inloop_0, curr_inloop_0); _fx_free_LN14K_form__kexp_t(curr_moved_0); @@ -4214,21 +4166,21 @@ _fx_cleanup: ; if (v_5) { _fx_free_Nt10Hashset__t1R9Ast__id_t(&v_5); } - if (v_6) { - _fx_free_LN14K_form__kexp_t(&v_6); + if (nested_elist_0) { + _fx_free_LN14K_form__kexp_t(&nested_elist_0); } - if (v_7) { - _fx_free_N14K_form__kexp_t(&v_7); + if (acc_idl_0) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&acc_idl_0); } - _fx_free_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t( - &__fold_result___0); - if (__fold_result___1) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&__fold_result___1); + if (body_acc_0) { + _fx_free_N14K_form__kexp_t(&body_acc_0); } - if (v_8) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_8); + if (res_0) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&res_0); + } + if (v_6) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_6); } - _fx_free_T3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t(&v_9); if (outer_moved_0) { _fx_free_LN14K_form__kexp_t(&outer_moved_0); } @@ -4273,6 +4225,7 @@ static int _fx_M10K_loop_invFM8mli_kexpN14K_form__kexp_t2N14K_form__kexp_tR17K_f _fx_rLN14K_form__kexp_t curr_moved_ref_0 = cv_0->t1; _fx_M10K_loop_invFM7make_fpFPT3LN14K_form__kexp_tLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_t6LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR10Ast__loc_tR17K_form__k_callb_trNt10Hashset__t1R9Ast__id_trLN14K_form__kexp_t2rNt10Hashset__t1R9Ast__id_trLN14K_form__kexp_t( curr_inloop_ref_0, curr_moved_ref_0, &mli_process_loop_0); + _fx_Nt10Hashset__t1R9Ast__id_t* curr_inloop_0 = &curr_inloop_ref_0->data; _fx_LN14K_form__kexp_t* curr_moved_0 = &curr_moved_ref_0->data; FX_CALL(_fx_M6K_formFM9walk_kexpN14K_form__kexp_t2N14K_form__kexp_tRM9k_callb_t(e_0, callb_0, &e_1, 0), _fx_cleanup); int tag_0 = FX_REC_VARIANT_TAG(e_1); @@ -4714,17 +4667,17 @@ static int _fx_M10K_loop_invFM8mli_kexpN14K_form__kexp_t2N14K_form__kexp_tR17K_f _fx_T3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t* vcase_4 = &e_1->u.KDefVal; _fx_R10Ast__loc_t* loc_4 = &vcase_4->t2; _fx_R9Ast__id_t* n_0 = &vcase_4->t0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)n_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)n_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_44; FX_CALL( - _fx_M10K_loop_invFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(curr_inloop_ref_0->data, n_0, - __fold_result___0 & 9223372036854775807ULL, &v_44, 0), _fx_catch_16); + _fx_M10K_loop_invFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*curr_inloop_0, n_0, + h_0 & 9223372036854775807ULL, &v_44, 0), _fx_catch_16); bool v_45; bool t_0; if (!(v_44.t1 >= 0)) { diff --git a/compiler/bootstrap/K_mangle.c b/compiler/bootstrap/K_mangle.c index 861e5ef9..58b40bde 100644 --- a/compiler/bootstrap/K_mangle.c +++ b/compiler/bootstrap/K_mangle.c @@ -3955,32 +3955,18 @@ FX_EXTERN_C int _fx_M8K_mangleFM6__eq__B2T2R9Ast__id_tN14K_form__ktyp_tT2R9Ast__ _fx_N14K_form__ktyp_t bj_0 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); - bool __fold_result___0 = true; + bool f_0 = true; _fx_R9Ast__id_t aj_1 = a_0->t0; _fx_R9Ast__id_t bj_1 = b_0->t0; bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&aj_1, &bj_1, &res_0, 0), _fx_cleanup); - bool t_0; - if (res_0) { - t_0 = __fold_result___0; - } - else { - t_0 = false; - } - __fold_result___0 = t_0; + f_0 = (bool)(f_0 & res_0); FX_COPY_PTR(a_0->t1, &aj_0); FX_COPY_PTR(b_0->t1, &bj_0); bool v_0; FX_CALL(_fx_M8K_mangleFM15__eq_variants__B2N14K_form__ktyp_tN14K_form__ktyp_t(aj_0, bj_0, &v_0, 0), _fx_cleanup); - bool t_1; - if (v_0) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - *fx_result = __fold_result___0; + f_0 = (bool)(f_0 & v_0); + *fx_result = f_0; _fx_cleanup: ; if (aj_0) { @@ -4196,56 +4182,54 @@ FX_EXTERN_C int _fx_M8K_mangleFM3revLN14K_form__kexp_t1LN14K_form__kexp_t( struct _fx_LN14K_form__kexp_t_data_t** fx_result, void* fx_fv) { - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; int fx_status = 0; _fx_LN14K_form__kexp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_0 = 0; _fx_N14K_form__kexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_0) { + _fx_free_LN14K_form__kexp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } return fx_status; } FX_EXTERN_C int _fx_M8K_mangleFM3revLS1LS(struct _fx_LS_data_t* l_0, struct _fx_LS_data_t** fx_result, void* fx_fv) { - _fx_LS __fold_result___0 = 0; + _fx_LS res_0 = 0; int fx_status = 0; _fx_LS lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LS r_0 = 0; + _fx_LS v_0 = 0; fx_str_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LS(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LS(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LS(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LS(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LS(&r_0); + if (v_0) { + _fx_free_LS(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LS(&__fold_result___0); + if (res_0) { + _fx_free_LS(&res_0); } return fx_status; } @@ -4394,9 +4378,11 @@ FX_EXTERN_C int _fx_M8K_mangleFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2iiRt2 int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt20Hashmap__hashentry_t2ii* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4440,12 +4426,13 @@ FX_EXTERN_C int _fx_M8K_mangleFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2SR9As int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2SR9Ast__id_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2SR9Ast__id_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2SR9Ast__id_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2SR9Ast__id_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4493,25 +4480,26 @@ FX_EXTERN_C int _fx_M8K_mangleFM4growv2Nt10Hashmap__t2iii( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2ii* v_2 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2ii v_2 = *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, ht_table_0, j_0); - int_ v_3; + _fx_Rt20Hashmap__hashentry_t2ii v_3 = *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, ht_table_0, j_0); + int_ v_4; FX_CALL( _fx_M8K_mangleFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2iiRt20Hashmap__hashentry_t2ii(tabsz_0, &new_ht_index_0, - &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4552,27 +4540,28 @@ FX_EXTERN_C int _fx_M8K_mangleFM4growv2Nt10Hashmap__t2SR9Ast__id_ti( for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2SR9Ast__id_t(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M8K_mangleFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2SR9Ast__id_tRt20Hashmap__hashentry_t2SR9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2SR9Ast__id_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4718,17 +4707,19 @@ FX_EXTERN_C int _fx_M8K_mangleFM18find_idx_or_inserti2Nt10Hashmap__t2iii( } if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_5 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_5 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_6 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_)(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2ii* v_7 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_7->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -4736,11 +4727,13 @@ FX_EXTERN_C int _fx_M8K_mangleFM18find_idx_or_inserti2Nt10Hashmap__t2iii( fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt20Hashmap__hashentry_t2ii v_5 = { hv_0, k_0, self_0->u.t.t0.data }; + _fx_Rt20Hashmap__hashentry_t2ii v_8 = { hv_0, k_0, self_0->u.t.t0.data }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, self_0->u.t.t5, found_0) = v_5; + _fx_Rt20Hashmap__hashentry_t2ii* v_9 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, self_0->u.t.t5, found_0); + *v_9 = v_8; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_10 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_10 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -4842,17 +4835,20 @@ FX_EXTERN_C int _fx_M8K_mangleFM18find_idx_or_inserti2Nt10Hashmap__t2SR9Ast__id_ } if (t_1) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_9 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_10 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_10 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_)(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t* v_11 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_11->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -4860,15 +4856,16 @@ FX_EXTERN_C int _fx_M8K_mangleFM18find_idx_or_inserti2Nt10Hashmap__t2SR9Ast__id_ fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_R9Ast__id_t v_9 = self_0->u.t.t0.data; - _fx_make_Rt20Hashmap__hashentry_t2SR9Ast__id_t(hv_0, k_0, &v_9, &v_2); + _fx_R9Ast__id_t v_12 = self_0->u.t.t0.data; + _fx_make_Rt20Hashmap__hashentry_t2SR9Ast__id_t(hv_0, k_0, &v_12, &v_2); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t* v_10 = + _fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t* v_13 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2SR9Ast__id_t(v_10); - _fx_copy_Rt20Hashmap__hashentry_t2SR9Ast__id_t(&v_2, v_10); + _fx_free_Rt20Hashmap__hashentry_t2SR9Ast__id_t(v_13); + _fx_copy_Rt20Hashmap__hashentry_t2SR9Ast__id_t(&v_2, v_13); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_14 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_14 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5092,37 +5089,40 @@ FX_EXTERN_C int _fx_M8K_mangleFM13compress_nameS3SLN12Ast__scope_tR10Ast__loc_t( t_1 = c_0 == (char_)82; } if (t_1) { - bool t_2; + bool v_9; if (i_0 < len_0) { - FX_STR_CHKIDX(*nstr_0, i_0, _fx_catch_1); t_2 = FX_STR_ELEM(*nstr_0, i_0) == (char_)116; + FX_STR_CHKIDX(*nstr_0, i_0, _fx_catch_1); char_ v_10 = FX_STR_ELEM(*nstr_0, i_0); v_9 = v_10 == (char_)116; } else { - t_2 = false; + v_9 = false; } - if (t_2) { + if (v_9) { i_0 = i_0 + 1; } int_ j_0 = i_0; - bool v_9; + bool v_11; if (i_0 < len_0) { - FX_STR_CHKIDX(*nstr_0, i_0, _fx_catch_1); v_9 = _fx_M4CharFM7isdigitB1C(FX_STR_ELEM(*nstr_0, i_0), 0); + FX_STR_CHKIDX(*nstr_0, i_0, _fx_catch_1); + char_ v_12 = FX_STR_ELEM(*nstr_0, i_0); + v_11 = _fx_M4CharFM7isdigitB1C(v_12, 0); } else { - v_9 = false; + v_11 = false; } - if (v_9) { + if (v_11) { for (;;) { i_0 = i_0 + 1; - bool v_10; + bool v_13; if (i_0 >= len_0) { - v_10 = true; + v_13 = true; } else { FX_STR_CHKIDX(*nstr_0, i_0, _fx_catch_0); - bool v_11 = _fx_M4CharFM7isdigitB1C(FX_STR_ELEM(*nstr_0, i_0), 0); - v_10 = !v_11; + char_ v_14 = FX_STR_ELEM(*nstr_0, i_0); + bool v_15 = _fx_M4CharFM7isdigitB1C(v_14, 0); + v_13 = !v_15; } - if (v_10) { + if (v_13) { FX_BREAK(_fx_catch_0); } @@ -5130,15 +5130,15 @@ FX_EXTERN_C int _fx_M8K_mangleFM13compress_nameS3SLN12Ast__scope_tR10Ast__loc_t( FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_1); } - bool v_12; + bool v_16; if (i_0 + prefix_len_0 <= len_0) { FX_CALL(fx_substr(nstr_0, i_0, i_0 + prefix_len_0, 1, 0, &v_3), _fx_catch_1); - v_12 = _fx_F6__eq__B2SS(&v_3, &prefix__0, 0); + v_16 = _fx_F6__eq__B2SS(&v_3, &prefix__0, 0); } else { - v_12 = false; + v_16 = false; } - if (v_12) { + if (v_16) { FX_CALL(fx_substr(nstr_0, j_0, i_0, 1, 0, &v_4), _fx_catch_1); int_ idlen0_0 = _fx_M6StringFM10to_int_or_i3Sii(&v_4, 0, 0, 0); int_ idlen1_0 = idlen0_0 - prefix_len_0; @@ -5267,7 +5267,9 @@ static int _fx_M8K_mangleFM12make_unique_Ta2S6iNt10Hashmap__t2SR9Ast__id_tR9Ast_ FX_CALL(_fx_M8K_mangleFM18find_idx_or_inserti2Nt10Hashmap__t2SR9Ast__id_tS(mangle_map_0, &candidate_0, &idx_3, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1(mangle_map_0->u.t.t5, 0, idx_3), _fx_catch_0); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, mangle_map_0->u.t.t5, idx_3)->data = *n_id_0; + _fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, mangle_map_0->u.t.t5, idx_3); + v_3->data = *n_id_0; _fx_make_Ta2S(&candidate_base_name_0, &candidate_0, &result_1); _fx_free_Ta2S(&result_0); _fx_copy_Ta2S(&result_1, &result_0); @@ -5369,12 +5371,11 @@ static int struct _fx_Ta2S* fx_result, void* fx_fv) { - _fx_LS __fold_result___0 = 0; _fx_LS result_0 = 0; _fx_Ta2S v_0 = {0}; fx_str_t v_1 = {0}; fx_str_t v_2 = {0}; - _fx_LS __fold_result___1 = 0; + _fx_LS res_0 = 0; _fx_LS v_3 = 0; fx_str_t v_4 = {0}; fx_str_t v_5 = {0}; @@ -5393,26 +5394,20 @@ static int int_ nargs_0 = _fx_M8K_mangleFM6lengthi1LN14K_form__ktyp_t(targs_0, 0); _fx_LN14K_form__ktyp_t lst_0 = targs_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LS result_1 = 0; _fx_LS v_8 = 0; _fx_N14K_form__ktyp_t targ_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &result_1); FX_CALL( - _fx_M8K_mangleFM12mangle_ktyp_LS4N14K_form__ktyp_tLSR10Ast__loc_tNt10Hashmap__t2SR9Ast__id_t(targ_0, result_1, loc_0, + _fx_M8K_mangleFM12mangle_ktyp_LS4N14K_form__ktyp_tLSR10Ast__loc_tNt10Hashmap__t2SR9Ast__id_t(targ_0, result_0, loc_0, mangle_map_0, &v_8, 0), _fx_catch_0); - _fx_free_LS(&__fold_result___0); - FX_COPY_PTR(v_8, &__fold_result___0); + _fx_free_LS(&result_0); + FX_COPY_PTR(v_8, &result_0); _fx_catch_0: ; if (v_8) { _fx_free_LS(&v_8); } - if (result_1) { - _fx_free_LS(&result_1); - } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &result_0); if (nargs_0 == 0) { fx_str_t slit_0 = FX_MAKE_STR(""); _fx_make_Ta2S(prefix_0, &slit_0, &v_0); } @@ -5425,20 +5420,19 @@ static int FX_CALL(_fx_F6stringS1i(nargs_0, &v_2, 0), _fx_cleanup); _fx_LS lst_1 = result_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LS r_0 = 0; + _fx_LS v_9 = 0; fx_str_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LS(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LS(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LS(a_0, res_0, true, &v_9), _fx_catch_1); + _fx_free_LS(&res_0); + FX_COPY_PTR(v_9, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LS(&r_0); + if (v_9) { + _fx_free_LS(&v_9); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_3); + FX_COPY_PTR(res_0, &v_3); fx_str_t slit_2 = FX_MAKE_STR(""); FX_CALL(_fx_F4joinS2SLS(&slit_2, v_3, &v_4, 0), _fx_cleanup); { @@ -5454,12 +5448,12 @@ static int FX_COPY_PTR(v_6.u.Some, &sc_1); } else { - _fx_N15K_form__kinfo_t v_9 = {0}; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(name_0, loc_0, &v_9, 0), _fx_catch_2); - FX_CALL(_fx_M6K_formFM10get_kscopeLN12Ast__scope_t1N15K_form__kinfo_t(&v_9, &sc_1, 0), _fx_catch_2); + _fx_N15K_form__kinfo_t v_10 = {0}; + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(name_0, loc_0, &v_10, 0), _fx_catch_2); + FX_CALL(_fx_M6K_formFM10get_kscopeLN12Ast__scope_t1N15K_form__kinfo_t(&v_10, &sc_1, 0), _fx_catch_2); _fx_catch_2: ; - _fx_free_N15K_form__kinfo_t(&v_9); + _fx_free_N15K_form__kinfo_t(&v_10); } FX_CHECK_EXN(_fx_cleanup); fx_str_t slit_3 = FX_MAKE_STR(""); @@ -5483,17 +5477,14 @@ static int _fx_make_Ta2S(&mangled_basename_0, &mangled_name_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LS(&__fold_result___0); - } if (result_0) { _fx_free_LS(&result_0); } _fx_free_Ta2S(&v_0); FX_FREE_STR(&v_1); FX_FREE_STR(&v_2); - if (__fold_result___1) { - _fx_free_LS(&__fold_result___1); + if (res_0) { + _fx_free_LS(&res_0); } if (v_3) { _fx_free_LS(&v_3); @@ -6290,7 +6281,7 @@ static int _fx_M8K_mangleFM12mangle_ktyp_LS4N14K_form__ktyp_tLSR10Ast__loc_tNt10 _fx_LS result_23 = 0; fx_str_t v_11 = {0}; _fx_LS result_24 = 0; - _fx_LS __fold_result___0 = 0; + _fx_LS result_25 = 0; _fx_LN14K_form__ktyp_t args_0 = 0; _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t* vcase_0 = &t_2->u.KTypFun; _fx_LN14K_form__ktyp_t args_1 = vcase_0->t0; @@ -6302,39 +6293,34 @@ static int _fx_M8K_mangleFM12mangle_ktyp_LS4N14K_form__ktyp_tLSR10Ast__loc_tNt10 int_ v_12 = _fx_M8K_mangleFM6lengthi1LN14K_form__ktyp_t(args_1, 0); FX_CALL(_fx_F6stringS1i(v_12, &v_11, 0), _fx_catch_24); FX_CALL(_fx_cons_LS(&v_11, result_23, true, &result_24), _fx_catch_24); - FX_COPY_PTR(result_24, &__fold_result___0); + FX_COPY_PTR(result_24, &result_25); FX_COPY_PTR(args_1, &args_0); _fx_LN14K_form__ktyp_t lst_0 = args_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LS result_25 = 0; _fx_LS v_13 = 0; _fx_N14K_form__ktyp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &result_25); FX_CALL( _fx_M8K_mangleFM12mangle_ktyp_LS4N14K_form__ktyp_tLSR10Ast__loc_tNt10Hashmap__t2SR9Ast__id_t(a_0, result_25, loc_0, mangle_map_0, &v_13, 0), _fx_catch_23); - _fx_free_LS(&__fold_result___0); - FX_COPY_PTR(v_13, &__fold_result___0); + _fx_free_LS(&result_25); + FX_COPY_PTR(v_13, &result_25); _fx_catch_23: ; if (v_13) { _fx_free_LS(&v_13); } - if (result_25) { - _fx_free_LS(&result_25); - } FX_CHECK_EXN(_fx_catch_24); } _fx_free_LS(&result_1); - FX_COPY_PTR(__fold_result___0, &result_1); + FX_COPY_PTR(result_25, &result_1); FX_BREAK(_fx_catch_24); _fx_catch_24: ; if (args_0) { _fx_free_LN14K_form__ktyp_t(&args_0); } - if (__fold_result___0) { - _fx_free_LS(&__fold_result___0); + if (result_25) { + _fx_free_LS(&result_25); } if (result_24) { _fx_free_LS(&result_24); @@ -6357,10 +6343,10 @@ static int _fx_M8K_mangleFM12mangle_ktyp_LS4N14K_form__ktyp_tLSR10Ast__loc_tNt10 _fx_LN14K_form__ktyp_t rest_0 = 0; _fx_LS v_14 = 0; _fx_LS v_15 = 0; - _fx_LS __fold_result___1 = 0; + _fx_LS result_26 = 0; _fx_LN14K_form__ktyp_t elems_1 = 0; _fx_N14K_form__ktyp_t t0_0 = elems_0->hd; - bool __fold_result___2 = true; + bool __fold_result___0 = true; FX_COPY_PTR(elems_0->tl, &rest_0); _fx_LN14K_form__ktyp_t lst_1 = rest_0; for (; lst_1; lst_1 = lst_1->tl) { @@ -6369,14 +6355,14 @@ static int _fx_M8K_mangleFM12mangle_ktyp_LS4N14K_form__ktyp_tLSR10Ast__loc_tNt10 FX_CALL(_fx_M8K_mangleFM15__eq_variants__B2N14K_form__ktyp_tN14K_form__ktyp_t(a_1, t0_0, &v_16, 0), _fx_catch_25); if (!v_16) { - __fold_result___2 = false; FX_BREAK(_fx_catch_25); + __fold_result___0 = false; FX_BREAK(_fx_catch_25); } _fx_catch_25: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_27); } - if (__fold_result___2) { + if (__fold_result___0) { fx_str_t slit_27 = FX_MAKE_STR("Ta"); FX_CALL(_fx_cons_LS(&slit_27, result_3, true, &v_14), _fx_catch_27); FX_CALL(_fx_cons_LS(&nstr_0, v_14, false, &v_14), _fx_catch_27); @@ -6388,31 +6374,26 @@ static int _fx_M8K_mangleFM12mangle_ktyp_LS4N14K_form__ktyp_tLSR10Ast__loc_tNt10 else { fx_str_t slit_28 = FX_MAKE_STR("T"); FX_CALL(_fx_cons_LS(&slit_28, result_3, true, &v_15), _fx_catch_27); - FX_CALL(_fx_cons_LS(&nstr_0, v_15, true, &__fold_result___1), _fx_catch_27); + FX_CALL(_fx_cons_LS(&nstr_0, v_15, true, &result_26), _fx_catch_27); FX_COPY_PTR(elems_0, &elems_1); _fx_LN14K_form__ktyp_t lst_2 = elems_1; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LS result_26 = 0; _fx_LS v_17 = 0; _fx_N14K_form__ktyp_t t_4 = lst_2->hd; - FX_COPY_PTR(__fold_result___1, &result_26); FX_CALL( _fx_M8K_mangleFM12mangle_ktyp_LS4N14K_form__ktyp_tLSR10Ast__loc_tNt10Hashmap__t2SR9Ast__id_t(t_4, result_26, loc_0, mangle_map_0, &v_17, 0), _fx_catch_26); - _fx_free_LS(&__fold_result___1); - FX_COPY_PTR(v_17, &__fold_result___1); + _fx_free_LS(&result_26); + FX_COPY_PTR(v_17, &result_26); _fx_catch_26: ; if (v_17) { _fx_free_LS(&v_17); } - if (result_26) { - _fx_free_LS(&result_26); - } FX_CHECK_EXN(_fx_catch_27); } _fx_free_LS(&result_1); - FX_COPY_PTR(__fold_result___1, &result_1); + FX_COPY_PTR(result_26, &result_1); FX_BREAK(_fx_catch_27); } @@ -6420,8 +6401,8 @@ static int _fx_M8K_mangleFM12mangle_ktyp_LS4N14K_form__ktyp_tLSR10Ast__loc_tNt10 if (elems_1) { _fx_free_LN14K_form__ktyp_t(&elems_1); } - if (__fold_result___1) { - _fx_free_LS(&__fold_result___1); + if (result_26) { + _fx_free_LS(&result_26); } if (v_15) { _fx_free_LS(&v_15); @@ -6638,6 +6619,7 @@ FX_EXTERN_C int _fx_M8K_mangleFM10mangle_allLR17K_form__kmodule_t2LR17K_form__km FX_CALL(_fx_make_rLN14K_form__kexp_t(0, &curr_top_code_ref_0), _fx_cleanup); _fx_LN14K_form__kexp_t* curr_top_code_0 = &curr_top_code_ref_0->data; FX_CALL(_fx_make_ri(-1, &curr_km_idx_ref_0), _fx_cleanup); + int_* curr_km_idx_0 = &curr_km_idx_ref_0->data; _fx_M8K_mangleFM7make_fpFPN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tR17K_form__k_callb_t4rirLN14K_form__kexp_tBNt10Hashmap__t2SR9Ast__id_t( curr_km_idx_ref_0, curr_top_code_ref_0, final_mode_0, mangle_map_0, &walk_ktyp_n_mangle_0); _fx_M8K_mangleFM7make_fpFPN14K_form__ktyp_t7R9Ast__id_tR10Ast__loc_tR17K_form__k_callb_trirLN14K_form__kexp_tBNt10Hashmap__t2SR9Ast__id_t4rirLN14K_form__kexp_tBNt10Hashmap__t2SR9Ast__id_t( @@ -6663,7 +6645,7 @@ FX_EXTERN_C int _fx_M8K_mangleFM10mangle_allLR17K_form__kmodule_t2LR17K_form__km FX_CALL(_fx_M8K_mangleFM5clearv1Nt10Hashmap__t2SR9Ast__id_t(mangle_map_0, 0), _fx_catch_2); _fx_free_LN14K_form__kexp_t(curr_top_code_0); *curr_top_code_0 = 0; - curr_km_idx_ref_0->data = km_idx_0; + *curr_km_idx_0 = km_idx_0; _fx_LN14K_form__kexp_t lst_1 = km_top_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N14K_form__kexp_t e_0 = 0; @@ -6791,6 +6773,7 @@ static int { fx_str_t cname_0 = {0}; int fx_status = 0; + int_* curr_km_idx_0 = &curr_km_idx_ref_0->data; _fx_LN14K_form__kexp_t* curr_top_code_0 = &curr_top_code_ref_0->data; FX_CALL( _fx_M8K_mangleFM11mangle_ktypS3N14K_form__ktyp_tNt10Hashmap__t2SR9Ast__id_tR10Ast__loc_t(t_0, mangle_map_0, loc_0, @@ -6801,8 +6784,10 @@ static int _fx_Nt6option1R9Ast__id_t v_1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(mangle_map_0->u.t.t5, 0, j_0), _fx_cleanup); - _fx_R9Ast__id_t v_2 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, mangle_map_0->u.t.t5, j_0)->data; - _fx_M8K_mangleFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_2, &v_1); + _fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, mangle_map_0->u.t.t5, j_0); + _fx_R9Ast__id_t v_3 = v_2->data; + _fx_M8K_mangleFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_3, &v_1); } else { v_1 = _fx_g16K_mangle__None3_; @@ -6811,55 +6796,57 @@ static int FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&v_1.u.Some, fx_result), _fx_catch_0); _fx_catch_0: ; } else { - fx_str_t v_3 = {0}; - _fx_R17K_form__kdeftyp_t v_4 = {0}; + fx_str_t v_4 = {0}; + _fx_R17K_form__kdeftyp_t v_5 = {0}; _fx_rR17K_form__kdeftyp_t kt_0 = 0; - _fx_N15K_form__kinfo_t v_5 = {0}; - _fx_N14K_form__kexp_t v_6 = 0; - _fx_LN14K_form__kexp_t v_7 = 0; + _fx_N15K_form__kinfo_t v_6 = {0}; + _fx_N14K_form__kexp_t v_7 = 0; + _fx_LN14K_form__kexp_t v_8 = 0; _fx_R9Ast__id_t i_0; - FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(curr_km_idx_ref_0->data, name_prefix_0, &i_0, 0), _fx_catch_1); - bool v_8; + FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(*curr_km_idx_0, name_prefix_0, &i_0, 0), _fx_catch_1); + bool v_9; fx_str_t slit_0 = FX_MAKE_STR("_fx_"); - v_8 = _fx_M6StringFM10startswithB2SS(&cname_0, &slit_0, 0); - if (v_8) { - fx_copy_str(&cname_0, &v_3); + v_9 = _fx_M6StringFM10startswithB2SS(&cname_0, &slit_0, 0); + if (v_9) { + fx_copy_str(&cname_0, &v_4); } else { fx_str_t slit_1 = FX_MAKE_STR("_fx_"); { const fx_str_t strs_0[] = { slit_1, cname_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_3), _fx_catch_1); + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_4), _fx_catch_1); } } - _fx_make_R17K_form__kdeftyp_t(&i_0, &v_3, &_fx_g9Ast__noid, &_fx_g16K_mangle__None2_, 0, t_0, 0, loc_0, &v_4); - FX_CALL(_fx_make_rR17K_form__kdeftyp_t(&v_4, &kt_0), _fx_catch_1); + _fx_make_R17K_form__kdeftyp_t(&i_0, &v_4, &_fx_g9Ast__noid, &_fx_g16K_mangle__None2_, 0, t_0, 0, loc_0, &v_5); + FX_CALL(_fx_make_rR17K_form__kdeftyp_t(&v_5, &kt_0), _fx_catch_1); int_ idx_0; FX_CALL(_fx_M8K_mangleFM18find_idx_or_inserti2Nt10Hashmap__t2SR9Ast__id_tS(mangle_map_0, &cname_0, &idx_0, 0), _fx_catch_1); FX_CHKIDX(FX_CHKIDX1(mangle_map_0->u.t.t5, 0, idx_0), _fx_catch_1); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, mangle_map_0->u.t.t5, idx_0)->data = i_0; - _fx_M6K_formFM4KTypN15K_form__kinfo_t1rRM9kdeftyp_t(kt_0, &v_5); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&i_0, &v_5, 0), _fx_catch_1); - FX_CALL(_fx_M6K_formFM7KDefTypN14K_form__kexp_t1rRM9kdeftyp_t(kt_0, &v_6), _fx_catch_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_6, *curr_top_code_0, true, &v_7), _fx_catch_1); + _fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SR9Ast__id_t, mangle_map_0->u.t.t5, idx_0); + v_10->data = i_0; + _fx_M6K_formFM4KTypN15K_form__kinfo_t1rRM9kdeftyp_t(kt_0, &v_6); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&i_0, &v_6, 0), _fx_catch_1); + FX_CALL(_fx_M6K_formFM7KDefTypN14K_form__kexp_t1rRM9kdeftyp_t(kt_0, &v_7), _fx_catch_1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_7, *curr_top_code_0, true, &v_8), _fx_catch_1); _fx_free_LN14K_form__kexp_t(curr_top_code_0); - FX_COPY_PTR(v_7, curr_top_code_0); + FX_COPY_PTR(v_8, curr_top_code_0); FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(&i_0, fx_result), _fx_catch_1); _fx_catch_1: ; - if (v_7) { - _fx_free_LN14K_form__kexp_t(&v_7); + if (v_8) { + _fx_free_LN14K_form__kexp_t(&v_8); } - if (v_6) { - _fx_free_N14K_form__kexp_t(&v_6); + if (v_7) { + _fx_free_N14K_form__kexp_t(&v_7); } - _fx_free_N15K_form__kinfo_t(&v_5); + _fx_free_N15K_form__kinfo_t(&v_6); if (kt_0) { _fx_free_rR17K_form__kdeftyp_t(&kt_0); } - _fx_free_R17K_form__kdeftyp_t(&v_4); - FX_FREE_STR(&v_3); + _fx_free_R17K_form__kdeftyp_t(&v_5); + FX_FREE_STR(&v_4); } _fx_cleanup: ; @@ -8891,9 +8878,11 @@ static int _fx_M8K_mangleFM14gen_kval_cnamev4R9Ast__id_tR10Ast__loc_tBrNt10Hashm int_ idx_0; FX_CALL(_fx_M8K_mangleFM18find_idx_or_inserti2Nt10Hashmap__t2iii(*prefix_hash_0, prefix_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1((*prefix_hash_0)->u.t.t5, 0, idx_0), _fx_cleanup); - int_ j1_0 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0)->data + 1; + _fx_Rt20Hashmap__hashentry_t2ii* v_8 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0); + int_ j1_0 = v_8->data + 1; FX_CHKIDX(FX_CHKIDX1((*prefix_hash_0)->u.t.t5, 0, idx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0)->data = j1_0; + _fx_Rt20Hashmap__hashentry_t2ii* v_9 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ii, (*prefix_hash_0)->u.t.t5, idx_0); + v_9->data = j1_0; FX_CHKIDX(FX_CHKIDX1(_fx_g14Ast__all_names->u.t.t1, 0, prefix_0), _fx_cleanup); fx_copy_str(FX_PTR_1D(fx_str_t, _fx_g14Ast__all_names->u.t.t1, prefix_0), &v_2); FX_CALL(_fx_F6stringS1i(j1_0, &v_3, 0), _fx_cleanup); diff --git a/compiler/bootstrap/K_normalize.c b/compiler/bootstrap/K_normalize.c index 4e31e3bd..252a7c4c 100644 --- a/compiler/bootstrap/K_normalize.c +++ b/compiler/bootstrap/K_normalize.c @@ -1647,39 +1647,17 @@ typedef struct _fx_T2Nt6option1N14K_form__atom_tLN14K_form__kexp_t { struct _fx_LN14K_form__kexp_t_data_t* t1; } _fx_T2Nt6option1N14K_form__atom_tLN14K_form__kexp_t; -typedef struct _fx_T2LN14K_form__atom_tLN14K_form__kexp_t { - struct _fx_LN14K_form__atom_t_data_t* t0; - struct _fx_LN14K_form__kexp_t_data_t* t1; -} _fx_T2LN14K_form__atom_tLN14K_form__kexp_t; - typedef struct _fx_T2LN14K_form__kexp_tLT2SR10Ast__loc_t { struct _fx_LN14K_form__kexp_t_data_t* t0; struct _fx_LT2SR10Ast__loc_t_data_t* t1; } _fx_T2LN14K_form__kexp_tLT2SR10Ast__loc_t; -typedef struct _fx_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB { - struct _fx_LLT2BN14K_form__atom_t_data_t* t0; - struct _fx_LN14K_form__kexp_t_data_t* t1; - bool t2; -} _fx_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB; - -typedef struct _fx_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB { - struct _fx_LT2BN14K_form__atom_t_data_t* t0; - struct _fx_LN14K_form__kexp_t_data_t* t1; - bool t2; -} _fx_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB; - typedef struct _fx_T3BN10Ast__exp_tB { bool t0; struct _fx_N10Ast__exp_t_data_t* t1; bool t2; } _fx_T3BN10Ast__exp_tB; -typedef struct _fx_T2LT2BN14K_form__atom_tLN14K_form__kexp_t { - struct _fx_LT2BN14K_form__atom_t_data_t* t0; - struct _fx_LN14K_form__kexp_t_data_t* t1; -} _fx_T2LT2BN14K_form__atom_tLN14K_form__kexp_t; - typedef struct _fx_T2BN10Ast__exp_t { bool t0; struct _fx_N10Ast__exp_t_data_t* t1; @@ -1696,6 +1674,11 @@ typedef struct _fx_T2LN10Ast__exp_tNt6option1N10Ast__exp_t { struct _fx_Nt6option1N10Ast__exp_t_data_t* t1; } _fx_T2LN10Ast__exp_tNt6option1N10Ast__exp_t; +typedef struct _fx_T2LN14K_form__atom_tLN14K_form__kexp_t { + struct _fx_LN14K_form__atom_t_data_t* t0; + struct _fx_LN14K_form__kexp_t_data_t* t1; +} _fx_T2LN14K_form__atom_tLN14K_form__kexp_t; + typedef struct _fx_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t { struct _fx_LT2R9Ast__id_tN13K_form__dom_t_data_t* t0; struct _fx_LR9Ast__id_t_data_t* t1; @@ -1703,11 +1686,6 @@ typedef struct _fx_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_ struct _fx_LN14K_form__kexp_t_data_t* t3; } _fx_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t; -typedef struct _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t { - struct _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t_data_t* t0; - struct _fx_LN14K_form__kexp_t_data_t* t1; -} _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t; - typedef struct _fx_T2LN13K_form__dom_tLN14K_form__kexp_t { struct _fx_LN13K_form__dom_t_data_t* t0; struct _fx_LN14K_form__kexp_t_data_t* t1; @@ -1735,22 +1713,11 @@ typedef struct _fx_T2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t { struct _fx_LN14K_form__kexp_t_data_t* t1; } _fx_T2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t; -typedef struct _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t { - struct _fx_LT2R9Ast__id_tN13K_form__dom_t_data_t* t0; - struct _fx_LN14K_form__kexp_t_data_t* t1; - struct _fx_LN14K_form__kexp_t_data_t* t2; -} _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t; - typedef struct _fx_T2LR9Ast__id_tLN14K_form__kexp_t { struct _fx_LR9Ast__id_t_data_t* t0; struct _fx_LN14K_form__kexp_t_data_t* t1; } _fx_T2LR9Ast__id_tLN14K_form__kexp_t; -typedef struct _fx_T2LR9Ast__id_tLN14K_form__ktyp_t { - struct _fx_LR9Ast__id_t_data_t* t0; - struct _fx_LN14K_form__ktyp_t_data_t* t1; -} _fx_T2LR9Ast__id_tLN14K_form__ktyp_t; - typedef struct _fx_rLT2SR10Ast__loc_t_data_t { int_ rc; struct _fx_LT2SR10Ast__loc_t_data_t* data; @@ -1887,11 +1854,6 @@ typedef struct _fx_T3LN10Ast__pat_tLN14K_form__ktyp_tN10Ast__exp_t { struct _fx_N10Ast__exp_t_data_t* t2; } _fx_T3LN10Ast__pat_tLN14K_form__ktyp_tN10Ast__exp_t; -typedef struct _fx_T2LN10Ast__pat_tLN14K_form__ktyp_t { - struct _fx_LN10Ast__pat_t_data_t* t0; - struct _fx_LN14K_form__ktyp_t_data_t* t1; -} _fx_T2LN10Ast__pat_tLN14K_form__ktyp_t; - typedef struct _fx_T2N16Ast__defmodule_tLN14K_form__kexp_t { struct _fx_N16Ast__defmodule_t_data_t* t0; struct _fx_LN14K_form__kexp_t_data_t* t1; @@ -6546,29 +6508,6 @@ static void _fx_make_T2Nt6option1N14K_form__atom_tLN14K_form__kexp_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(struct _fx_T2LN14K_form__atom_tLN14K_form__kexp_t* dst) -{ - _fx_free_LN14K_form__atom_t(&dst->t0); - _fx_free_LN14K_form__kexp_t(&dst->t1); -} - -static void _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t( - struct _fx_T2LN14K_form__atom_tLN14K_form__kexp_t* src, - struct _fx_T2LN14K_form__atom_tLN14K_form__kexp_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t( - struct _fx_LN14K_form__atom_t_data_t* t0, - struct _fx_LN14K_form__kexp_t_data_t* t1, - struct _fx_T2LN14K_form__atom_tLN14K_form__kexp_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_T2LN14K_form__kexp_tLT2SR10Ast__loc_t(struct _fx_T2LN14K_form__kexp_tLT2SR10Ast__loc_t* dst) { _fx_free_LN14K_form__kexp_t(&dst->t0); @@ -6592,58 +6531,6 @@ static void _fx_make_T2LN14K_form__kexp_tLT2SR10Ast__loc_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB(struct _fx_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB* dst) -{ - _fx_free_LLT2BN14K_form__atom_t(&dst->t0); - _fx_free_LN14K_form__kexp_t(&dst->t1); -} - -static void _fx_copy_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB( - struct _fx_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB* src, - struct _fx_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - dst->t2 = src->t2; -} - -static void _fx_make_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB( - struct _fx_LLT2BN14K_form__atom_t_data_t* t0, - struct _fx_LN14K_form__kexp_t_data_t* t1, - bool t2, - struct _fx_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - fx_result->t2 = t2; -} - -static void _fx_free_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB(struct _fx_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB* dst) -{ - _fx_free_LT2BN14K_form__atom_t(&dst->t0); - _fx_free_LN14K_form__kexp_t(&dst->t1); -} - -static void _fx_copy_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB( - struct _fx_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB* src, - struct _fx_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - dst->t2 = src->t2; -} - -static void _fx_make_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB( - struct _fx_LT2BN14K_form__atom_t_data_t* t0, - struct _fx_LN14K_form__kexp_t_data_t* t1, - bool t2, - struct _fx_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - fx_result->t2 = t2; -} - static void _fx_free_T3BN10Ast__exp_tB(struct _fx_T3BN10Ast__exp_tB* dst) { _fx_free_N10Ast__exp_t(&dst->t1); @@ -6667,29 +6554,6 @@ static void _fx_make_T3BN10Ast__exp_tB( fx_result->t2 = t2; } -static void _fx_free_T2LT2BN14K_form__atom_tLN14K_form__kexp_t(struct _fx_T2LT2BN14K_form__atom_tLN14K_form__kexp_t* dst) -{ - _fx_free_LT2BN14K_form__atom_t(&dst->t0); - _fx_free_LN14K_form__kexp_t(&dst->t1); -} - -static void _fx_copy_T2LT2BN14K_form__atom_tLN14K_form__kexp_t( - struct _fx_T2LT2BN14K_form__atom_tLN14K_form__kexp_t* src, - struct _fx_T2LT2BN14K_form__atom_tLN14K_form__kexp_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2LT2BN14K_form__atom_tLN14K_form__kexp_t( - struct _fx_LT2BN14K_form__atom_t_data_t* t0, - struct _fx_LN14K_form__kexp_t_data_t* t1, - struct _fx_T2LT2BN14K_form__atom_tLN14K_form__kexp_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_T2BN10Ast__exp_t(struct _fx_T2BN10Ast__exp_t* dst) { _fx_free_N10Ast__exp_t(&dst->t1); @@ -6756,6 +6620,29 @@ static void _fx_make_T2LN10Ast__exp_tNt6option1N10Ast__exp_t( FX_COPY_PTR(t1, &fx_result->t1); } +static void _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(struct _fx_T2LN14K_form__atom_tLN14K_form__kexp_t* dst) +{ + _fx_free_LN14K_form__atom_t(&dst->t0); + _fx_free_LN14K_form__kexp_t(&dst->t1); +} + +static void _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t( + struct _fx_T2LN14K_form__atom_tLN14K_form__kexp_t* src, + struct _fx_T2LN14K_form__atom_tLN14K_form__kexp_t* dst) +{ + FX_COPY_PTR(src->t0, &dst->t0); + FX_COPY_PTR(src->t1, &dst->t1); +} + +static void _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t( + struct _fx_LN14K_form__atom_t_data_t* t0, + struct _fx_LN14K_form__kexp_t_data_t* t1, + struct _fx_T2LN14K_form__atom_tLN14K_form__kexp_t* fx_result) +{ + FX_COPY_PTR(t0, &fx_result->t0); + FX_COPY_PTR(t1, &fx_result->t1); +} + static void _fx_free_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t( struct _fx_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t* dst) { @@ -6788,30 +6675,6 @@ static void _fx_make_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kex FX_COPY_PTR(t3, &fx_result->t3); } -static void _fx_free_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t( - struct _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t* dst) -{ - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&dst->t0); - _fx_free_LN14K_form__kexp_t(&dst->t1); -} - -static void _fx_copy_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t( - struct _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t* src, - struct _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t( - struct _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t_data_t* t0, - struct _fx_LN14K_form__kexp_t_data_t* t1, - struct _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_T2LN13K_form__dom_tLN14K_form__kexp_t(struct _fx_T2LN13K_form__dom_tLN14K_form__kexp_t* dst) { _fx_free_LN13K_form__dom_t(&dst->t0); @@ -6934,34 +6797,6 @@ static void _fx_make_T2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t( - struct _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t* dst) -{ - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&dst->t0); - _fx_free_LN14K_form__kexp_t(&dst->t1); - _fx_free_LN14K_form__kexp_t(&dst->t2); -} - -static void _fx_copy_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t( - struct _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t* src, - struct _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); -} - -static void _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t( - struct _fx_LT2R9Ast__id_tN13K_form__dom_t_data_t* t0, - struct _fx_LN14K_form__kexp_t_data_t* t1, - struct _fx_LN14K_form__kexp_t_data_t* t2, - struct _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); -} - static void _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(struct _fx_T2LR9Ast__id_tLN14K_form__kexp_t* dst) { fx_free_list_simple(&dst->t0); @@ -6985,29 +6820,6 @@ static void _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T2LR9Ast__id_tLN14K_form__ktyp_t(struct _fx_T2LR9Ast__id_tLN14K_form__ktyp_t* dst) -{ - fx_free_list_simple(&dst->t0); - _fx_free_LN14K_form__ktyp_t(&dst->t1); -} - -static void _fx_copy_T2LR9Ast__id_tLN14K_form__ktyp_t( - struct _fx_T2LR9Ast__id_tLN14K_form__ktyp_t* src, - struct _fx_T2LR9Ast__id_tLN14K_form__ktyp_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2LR9Ast__id_tLN14K_form__ktyp_t( - struct _fx_LR9Ast__id_t_data_t* t0, - struct _fx_LN14K_form__ktyp_t_data_t* t1, - struct _fx_T2LR9Ast__id_tLN14K_form__ktyp_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_rLT2SR10Ast__loc_t(struct _fx_rLT2SR10Ast__loc_t_data_t** dst) { FX_FREE_REF_IMPL(_fx_rLT2SR10Ast__loc_t, _fx_free_LT2SR10Ast__loc_t); @@ -7558,29 +7370,6 @@ static void _fx_make_T3LN10Ast__pat_tLN14K_form__ktyp_tN10Ast__exp_t( FX_COPY_PTR(t2, &fx_result->t2); } -static void _fx_free_T2LN10Ast__pat_tLN14K_form__ktyp_t(struct _fx_T2LN10Ast__pat_tLN14K_form__ktyp_t* dst) -{ - _fx_free_LN10Ast__pat_t(&dst->t0); - _fx_free_LN14K_form__ktyp_t(&dst->t1); -} - -static void _fx_copy_T2LN10Ast__pat_tLN14K_form__ktyp_t( - struct _fx_T2LN10Ast__pat_tLN14K_form__ktyp_t* src, - struct _fx_T2LN10Ast__pat_tLN14K_form__ktyp_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); -} - -static void _fx_make_T2LN10Ast__pat_tLN14K_form__ktyp_t( - struct _fx_LN10Ast__pat_t_data_t* t0, - struct _fx_LN14K_form__ktyp_t_data_t* t1, - struct _fx_T2LN10Ast__pat_tLN14K_form__ktyp_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); -} - static void _fx_free_T2N16Ast__defmodule_tLN14K_form__kexp_t(struct _fx_T2N16Ast__defmodule_tLN14K_form__kexp_t* dst) { _fx_free_N16Ast__defmodule_t(&dst->t0); @@ -8522,7 +8311,7 @@ return fx_list_length(l); } -FX_EXTERN_C int_ _fx_M11K_normalizeFM6lengthi1LN10Ast__pat_t(struct _fx_LN10Ast__pat_t_data_t* l, void* fx_fv) +FX_EXTERN_C int_ _fx_M11K_normalizeFM6lengthi1LN10Ast__typ_t(struct _fx_LN10Ast__typ_t_data_t* l, void* fx_fv) { return fx_list_length(l); @@ -8536,7 +8325,7 @@ return fx_list_length(l); } -FX_EXTERN_C int_ _fx_M11K_normalizeFM6lengthi1LN10Ast__typ_t(struct _fx_LN10Ast__typ_t_data_t* l, void* fx_fv) +FX_EXTERN_C int_ _fx_M11K_normalizeFM6lengthi1LN10Ast__pat_t(struct _fx_LN10Ast__pat_t_data_t* l, void* fx_fv) { return fx_list_length(l); @@ -8719,16 +8508,6 @@ FX_EXTERN_C int _fx_M11K_normalizeFM5int64l1i(int_ x_0, int64_t* fx_result, void return fx_status; } -FX_EXTERN_C int _fx_M11K_normalizeFM8length1_i1LT2R9Ast__id_tN10Ast__pat_t( - struct _fx_LT2R9Ast__id_tN10Ast__pat_t_data_t* l_0, - int_* fx_result, - void* fx_fv) -{ - int fx_status = 0; - *fx_result = _fx_M11K_normalizeFM6lengthi1LT2R9Ast__id_tN10Ast__pat_t(l_0, 0); - return fx_status; -} - FX_EXTERN_C int _fx_M11K_normalizeFM8length1_i1LN14K_form__ktyp_t( struct _fx_LN14K_form__ktyp_t_data_t* l_0, int_* fx_result, @@ -8749,23 +8528,23 @@ FX_EXTERN_C int _fx_M11K_normalizeFM8length1_i1LT2R9Ast__id_tN14K_form__ktyp_t( return fx_status; } -FX_EXTERN_C int _fx_M11K_normalizeFM8length1_i1LN10Ast__pat_t( - struct _fx_LN10Ast__pat_t_data_t* l_0, +FX_EXTERN_C int _fx_M11K_normalizeFM8length1_i1LN10Ast__exp_t( + struct _fx_LN10Ast__exp_t_data_t* l_0, int_* fx_result, void* fx_fv) { int fx_status = 0; - *fx_result = _fx_M11K_normalizeFM6lengthi1LN10Ast__pat_t(l_0, 0); + *fx_result = _fx_M11K_normalizeFM6lengthi1LN10Ast__exp_t(l_0, 0); return fx_status; } -FX_EXTERN_C int _fx_M11K_normalizeFM8length1_i1LN10Ast__exp_t( - struct _fx_LN10Ast__exp_t_data_t* l_0, +FX_EXTERN_C int _fx_M11K_normalizeFM8length1_i1LN10Ast__pat_t( + struct _fx_LN10Ast__pat_t_data_t* l_0, int_* fx_result, void* fx_fv) { int fx_status = 0; - *fx_result = _fx_M11K_normalizeFM6lengthi1LN10Ast__exp_t(l_0, 0); + *fx_result = _fx_M11K_normalizeFM6lengthi1LN10Ast__pat_t(l_0, 0); return fx_status; } @@ -8844,28 +8623,27 @@ FX_EXTERN_C int _fx_M11K_normalizeFM3revLN14K_form__ktyp_t1LN14K_form__ktyp_t( struct _fx_LN14K_form__ktyp_t_data_t** fx_result, void* fx_fv) { - _fx_LN14K_form__ktyp_t __fold_result___0 = 0; + _fx_LN14K_form__ktyp_t res_0 = 0; int fx_status = 0; _fx_LN14K_form__ktyp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__ktyp_t r_0 = 0; + _fx_LN14K_form__ktyp_t v_0 = 0; _fx_N14K_form__ktyp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__ktyp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14K_form__ktyp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__ktyp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN14K_form__ktyp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14K_form__ktyp_t(&r_0); + if (v_0) { + _fx_free_LN14K_form__ktyp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN14K_form__ktyp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__ktyp_t(&res_0); } return fx_status; } @@ -8875,28 +8653,27 @@ FX_EXTERN_C int _fx_M11K_normalizeFM3revLN13K_form__dom_t1LN13K_form__dom_t( struct _fx_LN13K_form__dom_t_data_t** fx_result, void* fx_fv) { - _fx_LN13K_form__dom_t __fold_result___0 = 0; + _fx_LN13K_form__dom_t res_0 = 0; int fx_status = 0; _fx_LN13K_form__dom_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN13K_form__dom_t r_0 = 0; + _fx_LN13K_form__dom_t v_0 = 0; _fx_N13K_form__dom_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN13K_form__dom_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN13K_form__dom_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN13K_form__dom_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN13K_form__dom_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN13K_form__dom_t(&r_0); + if (v_0) { + _fx_free_LN13K_form__dom_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN13K_form__dom_t(&__fold_result___0); + if (res_0) { + _fx_free_LN13K_form__dom_t(&res_0); } return fx_status; } @@ -8907,28 +8684,27 @@ FX_EXTERN_C int struct _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t_data_t** fx_result, void* fx_fv) { - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t __fold_result___0 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t res_0 = 0; int fx_status = 0; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t r_0 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_0 = 0; _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&r_0); + if (v_0) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&__fold_result___0); + if (res_0) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&res_0); } return fx_status; } @@ -8938,28 +8714,27 @@ FX_EXTERN_C int _fx_M11K_normalizeFM3revLLT2BN14K_form__atom_t1LLT2BN14K_form__a struct _fx_LLT2BN14K_form__atom_t_data_t** fx_result, void* fx_fv) { - _fx_LLT2BN14K_form__atom_t __fold_result___0 = 0; + _fx_LLT2BN14K_form__atom_t res_0 = 0; int fx_status = 0; _fx_LLT2BN14K_form__atom_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LLT2BN14K_form__atom_t r_0 = 0; + _fx_LLT2BN14K_form__atom_t v_0 = 0; _fx_LT2BN14K_form__atom_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LLT2BN14K_form__atom_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LLT2BN14K_form__atom_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LLT2BN14K_form__atom_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LLT2BN14K_form__atom_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LLT2BN14K_form__atom_t(&r_0); + if (v_0) { + _fx_free_LLT2BN14K_form__atom_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LLT2BN14K_form__atom_t(&__fold_result___0); + if (res_0) { + _fx_free_LLT2BN14K_form__atom_t(&res_0); } return fx_status; } @@ -8969,28 +8744,27 @@ FX_EXTERN_C int _fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t( struct _fx_LN14K_form__atom_t_data_t** fx_result, void* fx_fv) { - _fx_LN14K_form__atom_t __fold_result___0 = 0; + _fx_LN14K_form__atom_t res_0 = 0; int fx_status = 0; _fx_LN14K_form__atom_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__atom_t r_0 = 0; + _fx_LN14K_form__atom_t v_0 = 0; _fx_N14K_form__atom_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__atom_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14K_form__atom_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__atom_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN14K_form__atom_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14K_form__atom_t(&r_0); + if (v_0) { + _fx_free_LN14K_form__atom_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN14K_form__atom_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__atom_t(&res_0); } return fx_status; } @@ -9000,28 +8774,27 @@ FX_EXTERN_C int _fx_M11K_normalizeFM3revLT2BN14K_form__atom_t1LT2BN14K_form__ato struct _fx_LT2BN14K_form__atom_t_data_t** fx_result, void* fx_fv) { - _fx_LT2BN14K_form__atom_t __fold_result___0 = 0; + _fx_LT2BN14K_form__atom_t res_0 = 0; int fx_status = 0; _fx_LT2BN14K_form__atom_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2BN14K_form__atom_t r_0 = 0; + _fx_LT2BN14K_form__atom_t v_0 = 0; _fx_T2BN14K_form__atom_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2BN14K_form__atom_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2BN14K_form__atom_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2BN14K_form__atom_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2BN14K_form__atom_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2BN14K_form__atom_t(&r_0); + if (v_0) { + _fx_free_LT2BN14K_form__atom_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2BN14K_form__atom_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2BN14K_form__atom_t(&res_0); } return fx_status; } @@ -9031,28 +8804,27 @@ FX_EXTERN_C int _fx_M11K_normalizeFM3revLN14K_form__kexp_t1LN14K_form__kexp_t( struct _fx_LN14K_form__kexp_t_data_t** fx_result, void* fx_fv) { - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; int fx_status = 0; _fx_LN14K_form__kexp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_0 = 0; _fx_N14K_form__kexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_0) { + _fx_free_LN14K_form__kexp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } return fx_status; } @@ -9062,28 +8834,27 @@ FX_EXTERN_C int _fx_M11K_normalizeFM3revLN10Ast__exp_t1LN10Ast__exp_t( struct _fx_LN10Ast__exp_t_data_t** fx_result, void* fx_fv) { - _fx_LN10Ast__exp_t __fold_result___0 = 0; + _fx_LN10Ast__exp_t res_0 = 0; int fx_status = 0; _fx_LN10Ast__exp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN10Ast__exp_t r_0 = 0; + _fx_LN10Ast__exp_t v_0 = 0; _fx_N10Ast__exp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN10Ast__exp_t(&r_0); + if (v_0) { + _fx_free_LN10Ast__exp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN10Ast__exp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN10Ast__exp_t(&res_0); } return fx_status; } @@ -9093,28 +8864,27 @@ FX_EXTERN_C int _fx_M11K_normalizeFM3revLN10Ast__pat_t1LN10Ast__pat_t( struct _fx_LN10Ast__pat_t_data_t** fx_result, void* fx_fv) { - _fx_LN10Ast__pat_t __fold_result___0 = 0; + _fx_LN10Ast__pat_t res_0 = 0; int fx_status = 0; _fx_LN10Ast__pat_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN10Ast__pat_t r_0 = 0; + _fx_LN10Ast__pat_t v_0 = 0; _fx_N10Ast__pat_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN10Ast__pat_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN10Ast__pat_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN10Ast__pat_t(&r_0); + if (v_0) { + _fx_free_LN10Ast__pat_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN10Ast__pat_t(&__fold_result___0); + if (res_0) { + _fx_free_LN10Ast__pat_t(&res_0); } return fx_status; } @@ -9124,25 +8894,24 @@ FX_EXTERN_C int _fx_M11K_normalizeFM3revLR9Ast__id_t1LR9Ast__id_t( struct _fx_LR9Ast__id_t_data_t** fx_result, void* fx_fv) { - _fx_LR9Ast__id_t __fold_result___0 = 0; + _fx_LR9Ast__id_t res_0 = 0; int fx_status = 0; _fx_LR9Ast__id_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LR9Ast__id_t r_0 = 0; + _fx_LR9Ast__id_t v_0 = 0; _fx_R9Ast__id_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_0); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LR9Ast__id_t(a_0, res_0, true, &v_0), _fx_catch_0); + FX_FREE_LIST_SIMPLE(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_0); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_0); return fx_status; } @@ -10859,33 +10628,12 @@ static int _fx_M11K_normalizeFM9typ2ktyp_N14K_form__ktyp_t3N10Ast__typ_trLR9Ast_ _fx_LR9Ast__id_t lst_3 = id_stack_1; for (; lst_3; lst_3 = lst_3->tl) { _fx_R9Ast__id_t* b_0 = &lst_3->hd; - bool __fold_result___1 = true; - bool t_7; - if (n_0->m == b_0->m) { - t_7 = __fold_result___1; - } - else { - t_7 = false; - } - __fold_result___1 = t_7; - bool t_8; - if (n_0->i == b_0->i) { - t_8 = __fold_result___1; - } - else { - t_8 = false; - } - __fold_result___1 = t_8; - bool t_9; - if (n_0->j == b_0->j) { - t_9 = __fold_result___1; - } - else { - t_9 = false; - } - __fold_result___1 = t_9; - if (__fold_result___1) { - __fold_result___0 = true; FX_BREAK(_fx_catch_30); + bool f_0 = true; + f_0 = (bool)(f_0 & (n_0->m == b_0->m)); + f_0 = (bool)(f_0 & (n_0->i == b_0->i)); + f_0 = (bool)(f_0 & (n_0->j == b_0->j)); + if (f_0) { + __fold_result___0 = true; FX_BREAK(_fx_catch_30); } _fx_catch_30: ; @@ -11155,52 +10903,38 @@ FX_EXTERN_C int _fx_M11K_normalizeFM10find_relemi4R9Ast__id_tLT2R9Ast__id_tN14K_ fx_str_t v_2 = {0}; fx_exn_t v_3 = {0}; int fx_status = 0; - _fx_Ta2i __fold_result___0 = { -1, 0 }; + int_ j_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_0 = relems_0; - for (; lst_0; lst_0 = lst_0->tl) { + for (; lst_0; lst_0 = lst_0->tl, j_0 += 1) { _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___0 = &lst_0->hd; _fx_R9Ast__id_t ni_0 = __pat___0->t0; - _fx_Ta2i v_4 = __fold_result___0; - int_ j_0 = v_4.t1; bool res_0; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(elem_id_0, &ni_0, &res_0, 0), _fx_catch_0); - _fx_Ta2i v_5; if (res_0) { - _fx_Ta2i tup_0 = { j_0, j_0 + 1 }; v_5 = tup_0; + *fx_result = j_0; FX_RETURN(_fx_catch_0); } - else { - _fx_Ta2i tup_1 = { v_4.t0, j_0 + 1 }; v_5 = tup_1; - } - __fold_result___0 = v_5; _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - _fx_Ta2i v_6 = __fold_result___0; - int_ i_0 = v_6.t0; - if (i_0 >= 0) { - *fx_result = i_0; - } - else { - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(elem_id_0, &v_0, 0), _fx_cleanup); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(rn_0, &v_1, 0), _fx_cleanup); - fx_str_t slit_0 = FX_MAKE_STR("there is no record field \'"); - fx_str_t slit_1 = FX_MAKE_STR("\' in the record \'"); - fx_str_t slit_2 = FX_MAKE_STR("\'"); - { - const fx_str_t strs_0[] = { slit_0, v_0, slit_1, v_1, slit_2 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_2), _fx_cleanup); - } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_2, &v_3, 0), _fx_cleanup); - FX_THROW(&v_3, false, _fx_cleanup); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(elem_id_0, &v_0, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(rn_0, &v_1, 0), _fx_cleanup); + fx_str_t slit_0 = FX_MAKE_STR("there is no record field \'"); + fx_str_t slit_1 = FX_MAKE_STR("\' in the record \'"); + fx_str_t slit_2 = FX_MAKE_STR("\'"); + { + const fx_str_t strs_0[] = { slit_0, v_0, slit_1, v_1, slit_2 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_2), _fx_cleanup); } + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_2, &v_3, 0), _fx_cleanup); + FX_THROW(&v_3, false, _fx_cleanup); _fx_cleanup: ; FX_FREE_STR(&v_0); FX_FREE_STR(&v_1); FX_FREE_STR(&v_2); fx_free_exn(&v_3); - return fx_status; + return FX_CHECK_RETURN(); } FX_EXTERN_C int @@ -12029,677 +11763,577 @@ FX_EXTERN_C int goto _fx_endmatch_14; } if (tag_0 == 10) { - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t __fold_result___2 = {0}; - _fx_LN10Ast__exp_t args_1 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_74 = {0}; - _fx_LN14K_form__atom_t args_2 = 0; + _fx_LN14K_form__atom_t res_5 = 0; _fx_LN14K_form__kexp_t code_17 = 0; - _fx_LN14K_form__atom_t v_75 = 0; - _fx_N14K_form__kexp_t v_76 = 0; + _fx_LN10Ast__exp_t args_1 = 0; + _fx_LN14K_form__atom_t v_74 = 0; + _fx_N14K_form__kexp_t v_75 = 0; _fx_T3N13Ast__intrin_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_9 = &e_0->u.ExpIntrin; - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(0, code_0, &__fold_result___2); + FX_COPY_PTR(code_0, &code_17); FX_COPY_PTR(vcase_9->t1, &args_1); _fx_LN10Ast__exp_t lst_1 = args_1; for (; lst_1; lst_1 = lst_1->tl) { - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_77 = {0}; - _fx_LN14K_form__atom_t args_3 = 0; - _fx_LN14K_form__kexp_t code_18 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_78 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_76 = {0}; _fx_N14K_form__atom_t ai_0 = {0}; - _fx_LN14K_form__kexp_t code_19 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_79 = {0}; + _fx_LN14K_form__kexp_t code1_0 = 0; + _fx_LN14K_form__atom_t v_77 = 0; _fx_N10Ast__exp_t ei_0 = lst_1->hd; - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___2, &v_77); - FX_COPY_PTR(v_77.t0, &args_3); - FX_COPY_PTR(v_77.t1, &code_18); FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - ei_0, code_18, false, sc_0, &v_78, 0), _fx_catch_25); - _fx_copy_N14K_form__atom_t(&v_78.t0, &ai_0); - FX_COPY_PTR(v_78.t1, &code_19); - FX_CALL(_fx_cons_LN14K_form__atom_t(&ai_0, args_3, false, &args_3), _fx_catch_25); - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(args_3, code_19, &v_79); - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___2); - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_79, &__fold_result___2); + ei_0, code_17, false, sc_0, &v_76, 0), _fx_catch_25); + _fx_copy_N14K_form__atom_t(&v_76.t0, &ai_0); + FX_COPY_PTR(v_76.t1, &code1_0); + _fx_free_LN14K_form__kexp_t(&code_17); + FX_COPY_PTR(code1_0, &code_17); + FX_CALL(_fx_cons_LN14K_form__atom_t(&ai_0, res_5, true, &v_77), _fx_catch_25); + _fx_free_LN14K_form__atom_t(&res_5); + FX_COPY_PTR(v_77, &res_5); _fx_catch_25: ; - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_79); - if (code_19) { - _fx_free_LN14K_form__kexp_t(&code_19); - } - _fx_free_N14K_form__atom_t(&ai_0); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_78); - if (code_18) { - _fx_free_LN14K_form__kexp_t(&code_18); + if (v_77) { + _fx_free_LN14K_form__atom_t(&v_77); } - if (args_3) { - _fx_free_LN14K_form__atom_t(&args_3); + if (code1_0) { + _fx_free_LN14K_form__kexp_t(&code1_0); } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_77); + _fx_free_N14K_form__atom_t(&ai_0); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_76); FX_CHECK_EXN(_fx_catch_26); } - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___2, &v_74); - FX_COPY_PTR(v_74.t0, &args_2); - FX_COPY_PTR(v_74.t1, &code_17); - FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(args_2, &v_75, 0), _fx_catch_26); + FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(res_5, &v_74, 0), _fx_catch_26); FX_CALL( _fx_M6K_formFM10KExpIntrinN14K_form__kexp_t3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &vcase_9->t0, v_75, &kctx_0, &v_76), _fx_catch_26); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_76, code_17, fx_result); + &vcase_9->t0, v_74, &kctx_0, &v_75), _fx_catch_26); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_75, code_17, fx_result); _fx_catch_26: ; - if (v_76) { - _fx_free_N14K_form__kexp_t(&v_76); - } if (v_75) { - _fx_free_LN14K_form__atom_t(&v_75); - } - if (code_17) { - _fx_free_LN14K_form__kexp_t(&code_17); + _fx_free_N14K_form__kexp_t(&v_75); } - if (args_2) { - _fx_free_LN14K_form__atom_t(&args_2); + if (v_74) { + _fx_free_LN14K_form__atom_t(&v_74); } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_74); if (args_1) { _fx_free_LN10Ast__exp_t(&args_1); } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___2); + if (code_17) { + _fx_free_LN14K_form__kexp_t(&code_17); + } + if (res_5) { + _fx_free_LN14K_form__atom_t(&res_5); + } goto _fx_endmatch_14; } if (tag_0 == 12) { _fx_LN12Ast__scope_t sc_1 = 0; - _fx_LN14K_form__kexp_t code_20 = 0; - _fx_T2LN14K_form__kexp_tLT2SR10Ast__loc_t v_80 = {0}; - _fx_LN14K_form__kexp_t code_21 = 0; + _fx_LN14K_form__kexp_t code_18 = 0; + _fx_T2LN14K_form__kexp_tLT2SR10Ast__loc_t v_78 = {0}; + _fx_LN14K_form__kexp_t code_19 = 0; _fx_LN10Ast__exp_t eseq_0 = e_0->u.ExpSeq.t0; - _fx_N12Ast__scope_t v_81; - FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_81, 0), _fx_catch_28); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_81, sc_0, true, &sc_1), _fx_catch_28); + _fx_N12Ast__scope_t v_79; + FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_79, 0), _fx_catch_28); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_79, sc_0, true, &sc_1), _fx_catch_28); FX_CALL( _fx_M11K_normalizeFM28transform_all_types_and_consLN14K_form__kexp_t3LN10Ast__exp_tLN14K_form__kexp_tLN12Ast__scope_t( - eseq_0, code_0, sc_1, &code_20, 0), _fx_catch_28); + eseq_0, code_0, sc_1, &code_18, 0), _fx_catch_28); FX_CALL( _fx_M11K_normalizeFM9eseq2codeT2LN14K_form__kexp_tLT2SR10Ast__loc_t3LN10Ast__exp_tLN14K_form__kexp_tLN12Ast__scope_t( - eseq_0, code_20, sc_1, &v_80, 0), _fx_catch_28); - FX_COPY_PTR(v_80.t0, &code_21); - if (code_21 != 0) { - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(code_21->hd, code_21->tl, fx_result); + eseq_0, code_18, sc_1, &v_78, 0), _fx_catch_28); + FX_COPY_PTR(v_78.t0, &code_19); + if (code_19 != 0) { + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(code_19->hd, code_19->tl, fx_result); } else { - _fx_N14K_form__kexp_t v_82 = 0; - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_82), _fx_catch_27); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_82, code_21, fx_result); + _fx_N14K_form__kexp_t v_80 = 0; + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_80), _fx_catch_27); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_80, code_19, fx_result); _fx_catch_27: ; - if (v_82) { - _fx_free_N14K_form__kexp_t(&v_82); + if (v_80) { + _fx_free_N14K_form__kexp_t(&v_80); } } FX_CHECK_EXN(_fx_catch_28); _fx_catch_28: ; - if (code_21) { - _fx_free_LN14K_form__kexp_t(&code_21); + if (code_19) { + _fx_free_LN14K_form__kexp_t(&code_19); } - _fx_free_T2LN14K_form__kexp_tLT2SR10Ast__loc_t(&v_80); - if (code_20) { - _fx_free_LN14K_form__kexp_t(&code_20); + _fx_free_T2LN14K_form__kexp_tLT2SR10Ast__loc_t(&v_78); + if (code_18) { + _fx_free_LN14K_form__kexp_t(&code_18); } FX_FREE_LIST_SIMPLE(&sc_1); goto _fx_endmatch_14; } if (tag_0 == 11) { - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_83 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_81 = {0}; _fx_N14K_form__kexp_t e_1 = 0; - _fx_LN14K_form__kexp_t code1_0 = 0; - _fx_LN14K_form__kexp_t v_84 = 0; - _fx_N14K_form__kexp_t v_85 = 0; - _fx_N14K_form__kexp_t v_86 = 0; + _fx_LN14K_form__kexp_t code1_1 = 0; + _fx_LN14K_form__kexp_t v_82 = 0; + _fx_N14K_form__kexp_t v_83 = 0; + _fx_N14K_form__kexp_t v_84 = 0; _fx_T2R9Ast__id_tN10Ast__exp_t* vcase_10 = &e_0->u.ExpSync; _fx_N10Ast__exp_t e0_0 = vcase_10->t1; FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e0_0, 0, false, sc_0, &v_83, 0), _fx_catch_29); - FX_COPY_PTR(v_83.t0, &e_1); - FX_COPY_PTR(v_83.t1, &code1_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_1, code1_0, true, &v_84), _fx_catch_29); - _fx_R10Ast__loc_t v_87; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e0_0, &v_87, 0), _fx_catch_29); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_84, &v_87, &v_85, 0), _fx_catch_29); - FX_CALL(_fx_M6K_formFM8KExpSyncN14K_form__kexp_t2R9Ast__id_tN14K_form__kexp_t(&vcase_10->t0, v_85, &v_86), _fx_catch_29); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_86, code_0, fx_result); + e0_0, 0, false, sc_0, &v_81, 0), _fx_catch_29); + FX_COPY_PTR(v_81.t0, &e_1); + FX_COPY_PTR(v_81.t1, &code1_1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_1, code1_1, true, &v_82), _fx_catch_29); + _fx_R10Ast__loc_t v_85; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e0_0, &v_85, 0), _fx_catch_29); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_82, &v_85, &v_83, 0), _fx_catch_29); + FX_CALL(_fx_M6K_formFM8KExpSyncN14K_form__kexp_t2R9Ast__id_tN14K_form__kexp_t(&vcase_10->t0, v_83, &v_84), _fx_catch_29); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_84, code_0, fx_result); _fx_catch_29: ; - if (v_86) { - _fx_free_N14K_form__kexp_t(&v_86); + if (v_84) { + _fx_free_N14K_form__kexp_t(&v_84); } - if (v_85) { - _fx_free_N14K_form__kexp_t(&v_85); + if (v_83) { + _fx_free_N14K_form__kexp_t(&v_83); } - if (v_84) { - _fx_free_LN14K_form__kexp_t(&v_84); + if (v_82) { + _fx_free_LN14K_form__kexp_t(&v_82); } - if (code1_0) { - _fx_free_LN14K_form__kexp_t(&code1_0); + if (code1_1) { + _fx_free_LN14K_form__kexp_t(&code1_1); } if (e_1) { _fx_free_N14K_form__kexp_t(&e_1); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_83); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_81); goto _fx_endmatch_14; } if (tag_0 == 13) { - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t __fold_result___3 = {0}; - _fx_LN10Ast__exp_t args_4 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_88 = {0}; - _fx_LN14K_form__atom_t args_5 = 0; - _fx_LN14K_form__kexp_t code_22 = 0; - _fx_LN14K_form__atom_t v_89 = 0; - _fx_N14K_form__kexp_t v_90 = 0; - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(0, code_0, &__fold_result___3); - FX_COPY_PTR(e_0->u.ExpMkTuple.t0, &args_4); - _fx_LN10Ast__exp_t lst_2 = args_4; + _fx_LN14K_form__atom_t res_6 = 0; + _fx_LN14K_form__kexp_t code_20 = 0; + _fx_LN10Ast__exp_t args_2 = 0; + _fx_LN14K_form__atom_t v_86 = 0; + _fx_N14K_form__kexp_t v_87 = 0; + FX_COPY_PTR(code_0, &code_20); + FX_COPY_PTR(e_0->u.ExpMkTuple.t0, &args_2); + _fx_LN10Ast__exp_t lst_2 = args_2; for (; lst_2; lst_2 = lst_2->tl) { - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_91 = {0}; - _fx_LN14K_form__atom_t args_6 = 0; - _fx_LN14K_form__kexp_t code_23 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_92 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_88 = {0}; _fx_N14K_form__atom_t ai_1 = {0}; - _fx_LN14K_form__kexp_t code_24 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_93 = {0}; + _fx_LN14K_form__kexp_t code1_2 = 0; + _fx_LN14K_form__atom_t v_89 = 0; _fx_N10Ast__exp_t ei_1 = lst_2->hd; - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___3, &v_91); - FX_COPY_PTR(v_91.t0, &args_6); - FX_COPY_PTR(v_91.t1, &code_23); FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - ei_1, code_23, false, sc_0, &v_92, 0), _fx_catch_30); - _fx_copy_N14K_form__atom_t(&v_92.t0, &ai_1); - FX_COPY_PTR(v_92.t1, &code_24); - FX_CALL(_fx_cons_LN14K_form__atom_t(&ai_1, args_6, false, &args_6), _fx_catch_30); - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(args_6, code_24, &v_93); - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___3); - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_93, &__fold_result___3); + ei_1, code_20, false, sc_0, &v_88, 0), _fx_catch_30); + _fx_copy_N14K_form__atom_t(&v_88.t0, &ai_1); + FX_COPY_PTR(v_88.t1, &code1_2); + _fx_free_LN14K_form__kexp_t(&code_20); + FX_COPY_PTR(code1_2, &code_20); + FX_CALL(_fx_cons_LN14K_form__atom_t(&ai_1, res_6, true, &v_89), _fx_catch_30); + _fx_free_LN14K_form__atom_t(&res_6); + FX_COPY_PTR(v_89, &res_6); _fx_catch_30: ; - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_93); - if (code_24) { - _fx_free_LN14K_form__kexp_t(&code_24); + if (v_89) { + _fx_free_LN14K_form__atom_t(&v_89); } - _fx_free_N14K_form__atom_t(&ai_1); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_92); - if (code_23) { - _fx_free_LN14K_form__kexp_t(&code_23); - } - if (args_6) { - _fx_free_LN14K_form__atom_t(&args_6); + if (code1_2) { + _fx_free_LN14K_form__kexp_t(&code1_2); } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_91); + _fx_free_N14K_form__atom_t(&ai_1); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_88); FX_CHECK_EXN(_fx_catch_31); } - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___3, &v_88); - FX_COPY_PTR(v_88.t0, &args_5); - FX_COPY_PTR(v_88.t1, &code_22); - FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(args_5, &v_89, 0), _fx_catch_31); + FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(res_6, &v_86, 0), _fx_catch_31); FX_CALL( - _fx_M6K_formFM11KExpMkTupleN14K_form__kexp_t2LN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_89, &kctx_0, &v_90), + _fx_M6K_formFM11KExpMkTupleN14K_form__kexp_t2LN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_86, &kctx_0, &v_87), _fx_catch_31); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_90, code_22, fx_result); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_87, code_20, fx_result); _fx_catch_31: ; - if (v_90) { - _fx_free_N14K_form__kexp_t(&v_90); + if (v_87) { + _fx_free_N14K_form__kexp_t(&v_87); } - if (v_89) { - _fx_free_LN14K_form__atom_t(&v_89); + if (v_86) { + _fx_free_LN14K_form__atom_t(&v_86); } - if (code_22) { - _fx_free_LN14K_form__kexp_t(&code_22); + if (args_2) { + _fx_free_LN10Ast__exp_t(&args_2); } - if (args_5) { - _fx_free_LN14K_form__atom_t(&args_5); + if (code_20) { + _fx_free_LN14K_form__kexp_t(&code_20); } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_88); - if (args_4) { - _fx_free_LN10Ast__exp_t(&args_4); + if (res_6) { + _fx_free_LN14K_form__atom_t(&res_6); } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___3); goto _fx_endmatch_14; } if (tag_0 == 14) { - fx_exn_t v_94 = {0}; - _fx_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB __fold_result___4 = {0}; - _fx_LLN10Ast__exp_t arows_0 = 0; - _fx_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB v_95 = {0}; + fx_exn_t v_90 = {0}; _fx_LLT2BN14K_form__atom_t krows_0 = 0; - _fx_LN14K_form__kexp_t code_25 = 0; - _fx_LLT2BN14K_form__atom_t v_96 = 0; - _fx_N14K_form__kexp_t v_97 = 0; + _fx_LN14K_form__kexp_t code_21 = 0; + _fx_LLN10Ast__exp_t arows_0 = 0; + _fx_LLT2BN14K_form__atom_t v_91 = 0; + _fx_N14K_form__kexp_t v_92 = 0; _fx_LLN10Ast__exp_t arows_1 = e_0->u.ExpMkArray.t0; if (arows_1 == 0) { fx_str_t slit_4 = FX_MAKE_STR("empty arrays are not supported"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_4, &v_94, 0), _fx_catch_34); - FX_THROW(&v_94, false, _fx_catch_34); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_4, &v_90, 0), _fx_catch_34); + FX_THROW(&v_90, false, _fx_catch_34); } - _fx_make_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB(0, code_0, true, &__fold_result___4); + FX_COPY_PTR(code_0, &code_21); + bool all_literals_0 = true; FX_COPY_PTR(arows_1, &arows_0); _fx_LLN10Ast__exp_t lst_3 = arows_0; for (; lst_3; lst_3 = lst_3->tl) { - _fx_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB v_98 = {0}; - _fx_LLT2BN14K_form__atom_t krows_1 = 0; - _fx_LN14K_form__kexp_t code_26 = 0; - _fx_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB __fold_result___5 = {0}; - _fx_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB v_99 = {0}; _fx_LT2BN14K_form__atom_t krow_0 = 0; - _fx_LN14K_form__kexp_t code_27 = 0; - _fx_LT2BN14K_form__atom_t v_100 = 0; - _fx_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB v_101 = {0}; + _fx_LT2BN14K_form__atom_t v_93 = 0; + _fx_LLT2BN14K_form__atom_t v_94 = 0; _fx_LN10Ast__exp_t arow_0 = lst_3->hd; - _fx_copy_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB(&__fold_result___4, &v_98); - FX_COPY_PTR(v_98.t0, &krows_1); - FX_COPY_PTR(v_98.t1, &code_26); - _fx_make_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB(0, code_26, v_98.t2, &__fold_result___5); _fx_LN10Ast__exp_t lst_4 = arow_0; for (; lst_4; lst_4 = lst_4->tl) { - _fx_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB v_102 = {0}; - _fx_LT2BN14K_form__atom_t krow_1 = 0; - _fx_LN14K_form__kexp_t code_28 = 0; - _fx_T3BN10Ast__exp_tB v_103 = {0}; + _fx_T3BN10Ast__exp_tB v_95 = {0}; _fx_N10Ast__exp_t e_2 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_104 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_96 = {0}; _fx_N14K_form__atom_t a_2 = {0}; - _fx_LN14K_form__kexp_t code_29 = 0; - _fx_T2BN14K_form__atom_t v_105 = {0}; - _fx_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB v_106 = {0}; + _fx_LN14K_form__kexp_t code1_3 = 0; + _fx_T2BN14K_form__atom_t v_97 = {0}; + _fx_LT2BN14K_form__atom_t v_98 = 0; _fx_N10Ast__exp_t e_3 = lst_4->hd; - _fx_copy_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB(&__fold_result___5, &v_102); - FX_COPY_PTR(v_102.t0, &krow_1); - FX_COPY_PTR(v_102.t1, &code_28); int tag_3 = FX_REC_VARIANT_TAG(e_3); if (tag_3 == 9) { _fx_T3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_11 = &e_3->u.ExpUnary; if (vcase_11->t0.tag == 8) { - _fx_make_T3BN10Ast__exp_tB(true, vcase_11->t1, false, &v_103); goto _fx_endmatch_4; + _fx_make_T3BN10Ast__exp_tB(true, vcase_11->t1, false, &v_95); goto _fx_endmatch_4; } } if (tag_3 == 6) { - _fx_N10Ast__lit_t* v_107 = &e_3->u.ExpLit.t0; - bool res_5; - if (v_107->tag == 5) { - res_5 = true; + _fx_N10Ast__lit_t* v_99 = &e_3->u.ExpLit.t0; + bool res_7; + if (v_99->tag == 5) { + res_7 = true; } - else if (v_107->tag == 9) { - res_5 = true; + else if (v_99->tag == 9) { + res_7 = true; } - else if (v_107->tag == 8) { - res_5 = true; + else if (v_99->tag == 8) { + res_7 = true; } else { - res_5 = false; + res_7 = false; } FX_CHECK_EXN(_fx_catch_32); - if (res_5) { - _fx_make_T3BN10Ast__exp_tB(false, e_3, false, &v_103); goto _fx_endmatch_4; + if (res_7) { + _fx_make_T3BN10Ast__exp_tB(false, e_3, false, &v_95); goto _fx_endmatch_4; } } if (tag_3 == 6) { - _fx_make_T3BN10Ast__exp_tB(false, e_3, true, &v_103); goto _fx_endmatch_4; + _fx_make_T3BN10Ast__exp_tB(false, e_3, true, &v_95); goto _fx_endmatch_4; } - _fx_make_T3BN10Ast__exp_tB(false, e_3, false, &v_103); + _fx_make_T3BN10Ast__exp_tB(false, e_3, false, &v_95); _fx_endmatch_4: ; FX_CHECK_EXN(_fx_catch_32); - bool f_0 = v_103.t0; - FX_COPY_PTR(v_103.t1, &e_2); - bool islit_0 = v_103.t2; + bool f_0 = v_95.t0; + FX_COPY_PTR(v_95.t1, &e_2); + bool islit_0 = v_95.t2; FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e_2, code_28, false, sc_0, &v_104, 0), _fx_catch_32); - _fx_copy_N14K_form__atom_t(&v_104.t0, &a_2); - FX_COPY_PTR(v_104.t1, &code_29); - _fx_make_T2BN14K_form__atom_t(f_0, &a_2, &v_105); - FX_CALL(_fx_cons_LT2BN14K_form__atom_t(&v_105, krow_1, false, &krow_1), _fx_catch_32); - _fx_make_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB(krow_1, code_29, (bool)(v_102.t2 & islit_0), &v_106); - _fx_free_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB(&__fold_result___5); - _fx_copy_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB(&v_106, &__fold_result___5); + e_2, code_21, false, sc_0, &v_96, 0), _fx_catch_32); + _fx_copy_N14K_form__atom_t(&v_96.t0, &a_2); + FX_COPY_PTR(v_96.t1, &code1_3); + _fx_free_LN14K_form__kexp_t(&code_21); + FX_COPY_PTR(code1_3, &code_21); + _fx_make_T2BN14K_form__atom_t(f_0, &a_2, &v_97); + FX_CALL(_fx_cons_LT2BN14K_form__atom_t(&v_97, krow_0, true, &v_98), _fx_catch_32); + _fx_free_LT2BN14K_form__atom_t(&krow_0); + FX_COPY_PTR(v_98, &krow_0); + all_literals_0 = (bool)(all_literals_0 & islit_0); _fx_catch_32: ; - _fx_free_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB(&v_106); - _fx_free_T2BN14K_form__atom_t(&v_105); - if (code_29) { - _fx_free_LN14K_form__kexp_t(&code_29); + if (v_98) { + _fx_free_LT2BN14K_form__atom_t(&v_98); + } + _fx_free_T2BN14K_form__atom_t(&v_97); + if (code1_3) { + _fx_free_LN14K_form__kexp_t(&code1_3); } _fx_free_N14K_form__atom_t(&a_2); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_104); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_96); if (e_2) { _fx_free_N10Ast__exp_t(&e_2); } - _fx_free_T3BN10Ast__exp_tB(&v_103); - if (code_28) { - _fx_free_LN14K_form__kexp_t(&code_28); - } - if (krow_1) { - _fx_free_LT2BN14K_form__atom_t(&krow_1); - } - _fx_free_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB(&v_102); + _fx_free_T3BN10Ast__exp_tB(&v_95); FX_CHECK_EXN(_fx_catch_33); } - _fx_copy_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB(&__fold_result___5, &v_99); - FX_COPY_PTR(v_99.t0, &krow_0); - FX_COPY_PTR(v_99.t1, &code_27); - bool all_literals_0 = v_99.t2; - FX_CALL(_fx_M11K_normalizeFM3revLT2BN14K_form__atom_t1LT2BN14K_form__atom_t(krow_0, &v_100, 0), _fx_catch_33); - FX_CALL(_fx_cons_LLT2BN14K_form__atom_t(v_100, krows_1, false, &krows_1), _fx_catch_33); - _fx_make_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB(krows_1, code_27, all_literals_0, &v_101); - _fx_free_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB(&__fold_result___4); - _fx_copy_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB(&v_101, &__fold_result___4); + FX_CALL(_fx_M11K_normalizeFM3revLT2BN14K_form__atom_t1LT2BN14K_form__atom_t(krow_0, &v_93, 0), _fx_catch_33); + FX_CALL(_fx_cons_LLT2BN14K_form__atom_t(v_93, krows_0, true, &v_94), _fx_catch_33); + _fx_free_LLT2BN14K_form__atom_t(&krows_0); + FX_COPY_PTR(v_94, &krows_0); _fx_catch_33: ; - _fx_free_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB(&v_101); - if (v_100) { - _fx_free_LT2BN14K_form__atom_t(&v_100); + if (v_94) { + _fx_free_LLT2BN14K_form__atom_t(&v_94); } - if (code_27) { - _fx_free_LN14K_form__kexp_t(&code_27); + if (v_93) { + _fx_free_LT2BN14K_form__atom_t(&v_93); } if (krow_0) { _fx_free_LT2BN14K_form__atom_t(&krow_0); } - _fx_free_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB(&v_99); - _fx_free_T3LT2BN14K_form__atom_tLN14K_form__kexp_tB(&__fold_result___5); - if (code_26) { - _fx_free_LN14K_form__kexp_t(&code_26); - } - if (krows_1) { - _fx_free_LLT2BN14K_form__atom_t(&krows_1); - } - _fx_free_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB(&v_98); FX_CHECK_EXN(_fx_catch_34); } - _fx_copy_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB(&__fold_result___4, &v_95); - FX_COPY_PTR(v_95.t0, &krows_0); - FX_COPY_PTR(v_95.t1, &code_25); - bool all_literals_1 = v_95.t2; - FX_CALL(_fx_M11K_normalizeFM3revLLT2BN14K_form__atom_t1LLT2BN14K_form__atom_t(krows_0, &v_96, 0), _fx_catch_34); + FX_CALL(_fx_M11K_normalizeFM3revLLT2BN14K_form__atom_t1LLT2BN14K_form__atom_t(krows_0, &v_91, 0), _fx_catch_34); FX_CALL( - _fx_M6K_formFM11KExpMkArrayN14K_form__kexp_t3BLLT2BN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(all_literals_1, - v_96, &kctx_0, &v_97), _fx_catch_34); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_97, code_25, fx_result); + _fx_M6K_formFM11KExpMkArrayN14K_form__kexp_t3BLLT2BN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(all_literals_0, + v_91, &kctx_0, &v_92), _fx_catch_34); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_92, code_21, fx_result); _fx_catch_34: ; - if (v_97) { - _fx_free_N14K_form__kexp_t(&v_97); + if (v_92) { + _fx_free_N14K_form__kexp_t(&v_92); } - if (v_96) { - _fx_free_LLT2BN14K_form__atom_t(&v_96); + if (v_91) { + _fx_free_LLT2BN14K_form__atom_t(&v_91); } - if (code_25) { - _fx_free_LN14K_form__kexp_t(&code_25); + if (arows_0) { + _fx_free_LLN10Ast__exp_t(&arows_0); + } + if (code_21) { + _fx_free_LN14K_form__kexp_t(&code_21); } if (krows_0) { _fx_free_LLT2BN14K_form__atom_t(&krows_0); } - _fx_free_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB(&v_95); - if (arows_0) { - _fx_free_LLN10Ast__exp_t(&arows_0); - } - _fx_free_T3LLT2BN14K_form__atom_tLN14K_form__kexp_tB(&__fold_result___4); - fx_free_exn(&v_94); + fx_free_exn(&v_90); goto _fx_endmatch_14; } if (tag_0 == 15) { - fx_exn_t v_108 = {0}; - _fx_T2LT2BN14K_form__atom_tLN14K_form__kexp_t __fold_result___6 = {0}; + fx_exn_t v_100 = {0}; + _fx_LT2BN14K_form__atom_t res_8 = 0; + _fx_LN14K_form__kexp_t code_22 = 0; _fx_LN10Ast__exp_t elems_0 = 0; - _fx_T2LT2BN14K_form__atom_tLN14K_form__kexp_t v_109 = {0}; - _fx_LT2BN14K_form__atom_t elems_1 = 0; - _fx_LN14K_form__kexp_t code_30 = 0; - _fx_LT2BN14K_form__atom_t v_110 = 0; - _fx_N14K_form__kexp_t v_111 = 0; - _fx_LN10Ast__exp_t elems_2 = e_0->u.ExpMkVector.t0; - if (elems_2 == 0) { + _fx_LT2BN14K_form__atom_t v_101 = 0; + _fx_N14K_form__kexp_t v_102 = 0; + _fx_LN10Ast__exp_t elems_1 = e_0->u.ExpMkVector.t0; + if (elems_1 == 0) { fx_str_t slit_5 = FX_MAKE_STR("empty vector literals are not supported"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_5, &v_108, 0), _fx_catch_36); - FX_THROW(&v_108, false, _fx_catch_36); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_5, &v_100, 0), _fx_catch_36); + FX_THROW(&v_100, false, _fx_catch_36); } - _fx_make_T2LT2BN14K_form__atom_tLN14K_form__kexp_t(0, code_0, &__fold_result___6); - FX_COPY_PTR(elems_2, &elems_0); + FX_COPY_PTR(code_0, &code_22); + FX_COPY_PTR(elems_1, &elems_0); _fx_LN10Ast__exp_t lst_5 = elems_0; for (; lst_5; lst_5 = lst_5->tl) { - _fx_T2LT2BN14K_form__atom_tLN14K_form__kexp_t v_112 = {0}; - _fx_LT2BN14K_form__atom_t elems_3 = 0; - _fx_LN14K_form__kexp_t code_31 = 0; - _fx_T2BN10Ast__exp_t v_113 = {0}; + _fx_T2BN10Ast__exp_t v_103 = {0}; _fx_N10Ast__exp_t e_4 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_114 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_104 = {0}; _fx_N14K_form__atom_t a_3 = {0}; - _fx_LN14K_form__kexp_t code_32 = 0; - _fx_T2BN14K_form__atom_t v_115 = {0}; - _fx_T2LT2BN14K_form__atom_tLN14K_form__kexp_t v_116 = {0}; + _fx_LN14K_form__kexp_t code1_4 = 0; + _fx_T2BN14K_form__atom_t v_105 = {0}; + _fx_LT2BN14K_form__atom_t v_106 = 0; _fx_N10Ast__exp_t e_5 = lst_5->hd; - _fx_copy_T2LT2BN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___6, &v_112); - FX_COPY_PTR(v_112.t0, &elems_3); - FX_COPY_PTR(v_112.t1, &code_31); if (FX_REC_VARIANT_TAG(e_5) == 9) { _fx_T3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_12 = &e_5->u.ExpUnary; if (vcase_12->t0.tag == 8) { - _fx_make_T2BN10Ast__exp_t(true, vcase_12->t1, &v_113); goto _fx_endmatch_5; + _fx_make_T2BN10Ast__exp_t(true, vcase_12->t1, &v_103); goto _fx_endmatch_5; } } - _fx_make_T2BN10Ast__exp_t(false, e_5, &v_113); + _fx_make_T2BN10Ast__exp_t(false, e_5, &v_103); _fx_endmatch_5: ; FX_CHECK_EXN(_fx_catch_35); - bool f_1 = v_113.t0; - FX_COPY_PTR(v_113.t1, &e_4); + bool f_1 = v_103.t0; + FX_COPY_PTR(v_103.t1, &e_4); FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e_4, code_31, false, sc_0, &v_114, 0), _fx_catch_35); - _fx_copy_N14K_form__atom_t(&v_114.t0, &a_3); - FX_COPY_PTR(v_114.t1, &code_32); - _fx_make_T2BN14K_form__atom_t(f_1, &a_3, &v_115); - FX_CALL(_fx_cons_LT2BN14K_form__atom_t(&v_115, elems_3, false, &elems_3), _fx_catch_35); - _fx_make_T2LT2BN14K_form__atom_tLN14K_form__kexp_t(elems_3, code_32, &v_116); - _fx_free_T2LT2BN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___6); - _fx_copy_T2LT2BN14K_form__atom_tLN14K_form__kexp_t(&v_116, &__fold_result___6); + e_4, code_22, false, sc_0, &v_104, 0), _fx_catch_35); + _fx_copy_N14K_form__atom_t(&v_104.t0, &a_3); + FX_COPY_PTR(v_104.t1, &code1_4); + _fx_free_LN14K_form__kexp_t(&code_22); + FX_COPY_PTR(code1_4, &code_22); + _fx_make_T2BN14K_form__atom_t(f_1, &a_3, &v_105); + FX_CALL(_fx_cons_LT2BN14K_form__atom_t(&v_105, res_8, true, &v_106), _fx_catch_35); + _fx_free_LT2BN14K_form__atom_t(&res_8); + FX_COPY_PTR(v_106, &res_8); _fx_catch_35: ; - _fx_free_T2LT2BN14K_form__atom_tLN14K_form__kexp_t(&v_116); - _fx_free_T2BN14K_form__atom_t(&v_115); - if (code_32) { - _fx_free_LN14K_form__kexp_t(&code_32); + if (v_106) { + _fx_free_LT2BN14K_form__atom_t(&v_106); + } + _fx_free_T2BN14K_form__atom_t(&v_105); + if (code1_4) { + _fx_free_LN14K_form__kexp_t(&code1_4); } _fx_free_N14K_form__atom_t(&a_3); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_114); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_104); if (e_4) { _fx_free_N10Ast__exp_t(&e_4); } - _fx_free_T2BN10Ast__exp_t(&v_113); - if (code_31) { - _fx_free_LN14K_form__kexp_t(&code_31); - } - if (elems_3) { - _fx_free_LT2BN14K_form__atom_t(&elems_3); - } - _fx_free_T2LT2BN14K_form__atom_tLN14K_form__kexp_t(&v_112); + _fx_free_T2BN10Ast__exp_t(&v_103); FX_CHECK_EXN(_fx_catch_36); } - _fx_copy_T2LT2BN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___6, &v_109); - FX_COPY_PTR(v_109.t0, &elems_1); - FX_COPY_PTR(v_109.t1, &code_30); - FX_CALL(_fx_M11K_normalizeFM3revLT2BN14K_form__atom_t1LT2BN14K_form__atom_t(elems_1, &v_110, 0), _fx_catch_36); + FX_CALL(_fx_M11K_normalizeFM3revLT2BN14K_form__atom_t1LT2BN14K_form__atom_t(res_8, &v_101, 0), _fx_catch_36); FX_CALL( - _fx_M6K_formFM12KExpMkVectorN14K_form__kexp_t2LT2BN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_110, &kctx_0, - &v_111), _fx_catch_36); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_111, code_30, fx_result); + _fx_M6K_formFM12KExpMkVectorN14K_form__kexp_t2LT2BN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_101, &kctx_0, + &v_102), _fx_catch_36); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_102, code_22, fx_result); _fx_catch_36: ; - if (v_111) { - _fx_free_N14K_form__kexp_t(&v_111); - } - if (v_110) { - _fx_free_LT2BN14K_form__atom_t(&v_110); - } - if (code_30) { - _fx_free_LN14K_form__kexp_t(&code_30); + if (v_102) { + _fx_free_N14K_form__kexp_t(&v_102); } - if (elems_1) { - _fx_free_LT2BN14K_form__atom_t(&elems_1); + if (v_101) { + _fx_free_LT2BN14K_form__atom_t(&v_101); } - _fx_free_T2LT2BN14K_form__atom_tLN14K_form__kexp_t(&v_109); if (elems_0) { _fx_free_LN10Ast__exp_t(&elems_0); } - _fx_free_T2LT2BN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___6); - fx_free_exn(&v_108); + if (code_22) { + _fx_free_LN14K_form__kexp_t(&code_22); + } + if (res_8) { + _fx_free_LT2BN14K_form__atom_t(&res_8); + } + fx_free_exn(&v_100); goto _fx_endmatch_14; } if (tag_0 == 16) { - _fx_N10Ast__typ_t v_117 = 0; - _fx_T3R9Ast__id_tR9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_118 = {0}; - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_119 = {0}; + _fx_N10Ast__typ_t v_107 = 0; + _fx_T3R9Ast__id_tR9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_108 = {0}; + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_109 = {0}; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_0 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t __fold_result___7 = {0}; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_120 = {0}; _fx_LN14K_form__atom_t ratoms_0 = 0; - _fx_LN14K_form__kexp_t code_33 = 0; - _fx_LN14K_form__atom_t v_121 = 0; - _fx_N14K_form__kexp_t v_122 = 0; - _fx_LN14K_form__atom_t v_123 = 0; - _fx_N14K_form__kexp_t v_124 = 0; + _fx_LN14K_form__kexp_t code_23 = 0; + _fx_LN14K_form__atom_t v_110 = 0; + _fx_N14K_form__kexp_t v_111 = 0; + _fx_LN14K_form__atom_t v_112 = 0; + _fx_N14K_form__kexp_t v_113 = 0; _fx_T3N10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_13 = &e_0->u.ExpMkRecord; _fx_N10Ast__exp_t rn_0 = vcase_13->t0; - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp_0, &v_117, 0), _fx_catch_45); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(etyp_0, &v_107, 0), _fx_catch_45); if (FX_REC_VARIANT_TAG(rn_0) == 7) { - _fx_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_125 = {0}; + _fx_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_114 = {0}; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_1 = 0; _fx_R9Ast__id_t* rn_id_0 = &rn_0->u.ExpIdent.t0; - _fx_Nt6option1R9Ast__id_t v_126; - _fx_M11K_normalizeFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(rn_id_0, &v_126); + _fx_Nt6option1R9Ast__id_t v_115; + _fx_M11K_normalizeFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(rn_id_0, &v_115); FX_CALL( _fx_M13Ast_typecheckFM16get_record_elemsT2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t4Nt6option1R9Ast__id_tN10Ast__typ_tBR10Ast__loc_t( - &v_126, etyp_0, false, &eloc_0, &v_125, 0), _fx_catch_37); - _fx_R9Ast__id_t ctor_0 = v_125.t0; - FX_COPY_PTR(v_125.t1, &relems_1); + &v_115, etyp_0, false, &eloc_0, &v_114, 0), _fx_catch_37); + _fx_R9Ast__id_t ctor_0 = v_114.t0; + FX_COPY_PTR(v_114.t1, &relems_1); _fx_make_T3R9Ast__id_tR9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(rn_id_0, &ctor_0, - relems_1, &v_118); + relems_1, &v_108); _fx_catch_37: ; if (relems_1) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_1); } - _fx_free_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_125); + _fx_free_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_114); goto _fx_endmatch_6; } if (FX_REC_VARIANT_TAG(rn_0) == 1) { - if (FX_REC_VARIANT_TAG(v_117) == 21) { - _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_117->u.TypRecord->data, &v_119); - if (v_119.t1 == true) { + if (FX_REC_VARIANT_TAG(v_107) == 21) { + _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_107->u.TypRecord->data, &v_109); + if (v_109.t1 == true) { _fx_make_T3R9Ast__id_tR9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&_fx_g9Ast__noid, - &_fx_g9Ast__noid, v_119.t0, &v_118); + &_fx_g9Ast__noid, v_109.t0, &v_108); goto _fx_endmatch_6; } } } - fx_exn_t v_127 = {0}; - _fx_R10Ast__loc_t v_128; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(rn_0, &v_128, 0), _fx_catch_38); + fx_exn_t v_116 = {0}; + _fx_R10Ast__loc_t v_117; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(rn_0, &v_117, 0), _fx_catch_38); fx_str_t slit_6 = FX_MAKE_STR("k-normalization: in the record construction identifier is expected after type check"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_128, &slit_6, &v_127, 0), _fx_catch_38); - FX_THROW(&v_127, false, _fx_catch_38); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_117, &slit_6, &v_116, 0), _fx_catch_38); + FX_THROW(&v_116, false, _fx_catch_38); _fx_catch_38: ; - fx_free_exn(&v_127); + fx_free_exn(&v_116); _fx_endmatch_6: ; FX_CHECK_EXN(_fx_catch_45); - _fx_R9Ast__id_t rn_id_1 = v_118.t0; - _fx_R9Ast__id_t ctor_1 = v_118.t1; - FX_COPY_PTR(v_118.t2, &relems_0); - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(0, code_0, &__fold_result___7); + _fx_R9Ast__id_t rn_id_1 = v_108.t0; + _fx_R9Ast__id_t ctor_1 = v_108.t1; + FX_COPY_PTR(v_108.t2, &relems_0); + FX_COPY_PTR(code_0, &code_23); _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_6 = relems_0; for (; lst_6; lst_6 = lst_6->tl) { _fx_N10Ast__exp_t vi_0 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_129 = {0}; - _fx_LN14K_form__atom_t ratoms_1 = 0; - _fx_LN14K_form__kexp_t code_34 = 0; - _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t __fold_result___8 = {0}; + _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t __fold_result___2 = {0}; _fx_LT2R9Ast__id_tN10Ast__exp_t rinitelems_0 = 0; - _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t __fold_result___9 = {0}; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_130 = {0}; + _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t __fold_result___3 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_118 = {0}; _fx_N14K_form__atom_t a_4 = {0}; - _fx_LN14K_form__kexp_t code_35 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_131 = {0}; + _fx_LN14K_form__kexp_t code1_5 = 0; + _fx_LN14K_form__atom_t v_119 = 0; _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t* __pat___0 = &lst_6->hd; _fx_R9Ast__id_t ni_0 = __pat___0->t1; FX_COPY_PTR(__pat___0->t3, &vi_0); - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___7, &v_129); - FX_COPY_PTR(v_129.t0, &ratoms_1); - FX_COPY_PTR(v_129.t1, &code_34); - _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&_fx_g19K_normalize__None2_, &__fold_result___8); + _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&_fx_g19K_normalize__None2_, &__fold_result___2); FX_COPY_PTR(vcase_13->t1, &rinitelems_0); _fx_LT2R9Ast__id_tN10Ast__exp_t lst_7 = rinitelems_0; for (; lst_7; lst_7 = lst_7->tl) { - _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t v_132 = {0}; + _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t v_120 = {0}; _fx_T2R9Ast__id_tN10Ast__exp_t* __pat___1 = &lst_7->hd; _fx_R9Ast__id_t nj_1 = __pat___1->t0; - bool res_6; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&ni_0, &nj_1, &res_6, 0), _fx_catch_39); - if (res_6) { - _fx_M11K_normalizeFM4SomeNt6option1T2R9Ast__id_tN10Ast__exp_t1T2R9Ast__id_tN10Ast__exp_t(__pat___1, &v_132); - _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___8); - _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&v_132, &__fold_result___8); + bool res_9; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&ni_0, &nj_1, &res_9, 0), _fx_catch_39); + if (res_9) { + _fx_M11K_normalizeFM4SomeNt6option1T2R9Ast__id_tN10Ast__exp_t1T2R9Ast__id_tN10Ast__exp_t(__pat___1, &v_120); + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___2); + _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&v_120, &__fold_result___2); FX_BREAK(_fx_catch_39); } _fx_catch_39: ; - _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&v_132); + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&v_120); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_44); } - _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___8, &__fold_result___9); - if (__fold_result___9.tag == 2) { + _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___2, &__fold_result___3); + if (__fold_result___3.tag == 2) { FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - __fold_result___9.u.Some.t1, code_34, false, sc_0, &v_130, 0), _fx_catch_40); + __fold_result___3.u.Some.t1, code_23, false, sc_0, &v_118, 0), _fx_catch_40); _fx_catch_40: ; } else { if (FX_REC_VARIANT_TAG(vi_0) == 1) { - fx_str_t v_133 = {0}; - fx_str_t v_134 = {0}; - fx_str_t v_135 = {0}; - fx_str_t v_136 = {0}; - fx_str_t v_137 = {0}; - fx_exn_t v_138 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&rn_id_1, &v_133, 0), _fx_catch_41); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_133, &v_134, 0), _fx_catch_41); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ni_0, &v_135, 0), _fx_catch_41); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_135, &v_136, 0), _fx_catch_41); + fx_str_t v_121 = {0}; + fx_str_t v_122 = {0}; + fx_str_t v_123 = {0}; + fx_str_t v_124 = {0}; + fx_str_t v_125 = {0}; + fx_exn_t v_126 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&rn_id_1, &v_121, 0), _fx_catch_41); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_121, &v_122, 0), _fx_catch_41); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ni_0, &v_123, 0), _fx_catch_41); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_123, &v_124, 0), _fx_catch_41); fx_str_t slit_7 = FX_MAKE_STR("there is no explicit initializer for the field \'"); fx_str_t slit_8 = FX_MAKE_STR("."); fx_str_t slit_9 = FX_MAKE_STR("\' nor there is default initializer for it"); { - const fx_str_t strs_0[] = { slit_7, v_134, slit_8, v_136, slit_9 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_137), _fx_catch_41); + const fx_str_t strs_0[] = { slit_7, v_122, slit_8, v_124, slit_9 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_125), _fx_catch_41); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_137, &v_138, 0), _fx_catch_41); - FX_THROW(&v_138, false, _fx_catch_41); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_125, &v_126, 0), _fx_catch_41); + FX_THROW(&v_126, false, _fx_catch_41); _fx_catch_41: ; - fx_free_exn(&v_138); - FX_FREE_STR(&v_137); - FX_FREE_STR(&v_136); - FX_FREE_STR(&v_135); - FX_FREE_STR(&v_134); - FX_FREE_STR(&v_133); + fx_free_exn(&v_126); + FX_FREE_STR(&v_125); + FX_FREE_STR(&v_124); + FX_FREE_STR(&v_123); + FX_FREE_STR(&v_122); + FX_FREE_STR(&v_121); } else { FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - vi_0, code_34, false, sc_0, &v_130, 0), _fx_catch_42); + vi_0, code_23, false, sc_0, &v_118, 0), _fx_catch_42); _fx_catch_42: ; } @@ -12708,217 +12342,200 @@ FX_EXTERN_C int _fx_catch_43: ; } FX_CHECK_EXN(_fx_catch_44); - _fx_copy_N14K_form__atom_t(&v_130.t0, &a_4); - FX_COPY_PTR(v_130.t1, &code_35); - FX_CALL(_fx_cons_LN14K_form__atom_t(&a_4, ratoms_1, false, &ratoms_1), _fx_catch_44); - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(ratoms_1, code_35, &v_131); - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___7); - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_131, &__fold_result___7); + _fx_copy_N14K_form__atom_t(&v_118.t0, &a_4); + FX_COPY_PTR(v_118.t1, &code1_5); + _fx_free_LN14K_form__kexp_t(&code_23); + FX_COPY_PTR(code1_5, &code_23); + FX_CALL(_fx_cons_LN14K_form__atom_t(&a_4, ratoms_0, true, &v_119), _fx_catch_44); + _fx_free_LN14K_form__atom_t(&ratoms_0); + FX_COPY_PTR(v_119, &ratoms_0); _fx_catch_44: ; - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_131); - if (code_35) { - _fx_free_LN14K_form__kexp_t(&code_35); + if (v_119) { + _fx_free_LN14K_form__atom_t(&v_119); + } + if (code1_5) { + _fx_free_LN14K_form__kexp_t(&code1_5); } _fx_free_N14K_form__atom_t(&a_4); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_130); - _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___9); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_118); + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___3); if (rinitelems_0) { _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&rinitelems_0); } - _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___8); - if (code_34) { - _fx_free_LN14K_form__kexp_t(&code_34); - } - if (ratoms_1) { - _fx_free_LN14K_form__atom_t(&ratoms_1); - } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_129); + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___2); if (vi_0) { _fx_free_N10Ast__exp_t(&vi_0); } FX_CHECK_EXN(_fx_catch_45); } - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___7, &v_120); - FX_COPY_PTR(v_120.t0, &ratoms_0); - FX_COPY_PTR(v_120.t1, &code_33); - bool res_7; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&ctor_1, &_fx_g9Ast__noid, &res_7, 0), _fx_catch_45); - if (res_7) { - FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(ratoms_0, &v_121, 0), _fx_catch_45); + bool res_10; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&ctor_1, &_fx_g9Ast__noid, &res_10, 0), _fx_catch_45); + if (res_10) { + FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(ratoms_0, &v_110, 0), _fx_catch_45); FX_CALL( - _fx_M6K_formFM12KExpMkRecordN14K_form__kexp_t2LN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_121, &kctx_0, - &v_122), _fx_catch_45); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_122, code_33, fx_result); + _fx_M6K_formFM12KExpMkRecordN14K_form__kexp_t2LN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_110, &kctx_0, + &v_111), _fx_catch_45); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_111, code_23, fx_result); } else { - FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(ratoms_0, &v_123, 0), _fx_catch_45); + FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(ratoms_0, &v_112, 0), _fx_catch_45); FX_CALL( _fx_M6K_formFM8KExpCallN14K_form__kexp_t3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&ctor_1, - v_123, &kctx_0, &v_124), _fx_catch_45); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_124, code_33, fx_result); + v_112, &kctx_0, &v_113), _fx_catch_45); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_113, code_23, fx_result); } _fx_catch_45: ; - if (v_124) { - _fx_free_N14K_form__kexp_t(&v_124); + if (v_113) { + _fx_free_N14K_form__kexp_t(&v_113); } - if (v_123) { - _fx_free_LN14K_form__atom_t(&v_123); + if (v_112) { + _fx_free_LN14K_form__atom_t(&v_112); } - if (v_122) { - _fx_free_N14K_form__kexp_t(&v_122); + if (v_111) { + _fx_free_N14K_form__kexp_t(&v_111); } - if (v_121) { - _fx_free_LN14K_form__atom_t(&v_121); + if (v_110) { + _fx_free_LN14K_form__atom_t(&v_110); } - if (code_33) { - _fx_free_LN14K_form__kexp_t(&code_33); + if (code_23) { + _fx_free_LN14K_form__kexp_t(&code_23); } if (ratoms_0) { _fx_free_LN14K_form__atom_t(&ratoms_0); } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_120); - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___7); if (relems_0) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_0); } - _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_119); - _fx_free_T3R9Ast__id_tR9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_118); - if (v_117) { - _fx_free_N10Ast__typ_t(&v_117); + _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_109); + _fx_free_T3R9Ast__id_tR9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_108); + if (v_107) { + _fx_free_N10Ast__typ_t(&v_107); } goto _fx_endmatch_14; } if (tag_0 == 17) { - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_139 = {0}; - _fx_LN14K_form__kexp_t code_36 = 0; - _fx_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_140 = {0}; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_127 = {0}; + _fx_LN14K_form__kexp_t code_24 = 0; + _fx_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_128 = {0}; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_2 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t __fold_result___10 = {0}; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_141 = {0}; - _fx_LN14K_form__atom_t ratoms_2 = 0; - _fx_LN14K_form__kexp_t code_37 = 0; - _fx_LN14K_form__atom_t v_142 = 0; - _fx_N14K_form__kexp_t v_143 = 0; + _fx_LN14K_form__atom_t ratoms_1 = 0; + _fx_LN14K_form__kexp_t code_25 = 0; + _fx_LN14K_form__atom_t v_129 = 0; + _fx_N14K_form__kexp_t v_130 = 0; _fx_T3N10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_14 = &e_0->u.ExpUpdateRecord; fx_str_t slit_10 = FX_MAKE_STR("the updated record cannot be a literal"); FX_CALL( _fx_M11K_normalizeFM6exp2idT2R9Ast__id_tLN14K_form__kexp_t5N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_tS( - vcase_14->t0, code_0, true, sc_0, &slit_10, &v_139, 0), _fx_catch_50); - _fx_R9Ast__id_t rec_n_0 = v_139.t0; - FX_COPY_PTR(v_139.t1, &code_36); + vcase_14->t0, code_0, true, sc_0, &slit_10, &v_127, 0), _fx_catch_50); + _fx_R9Ast__id_t rec_n_0 = v_127.t0; + FX_COPY_PTR(v_127.t1, &code_24); FX_CALL( _fx_M13Ast_typecheckFM16get_record_elemsT2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t4Nt6option1R9Ast__id_tN10Ast__typ_tBR10Ast__loc_t( - &_fx_g19K_normalize__None6_, etyp_0, false, &eloc_0, &v_140, 0), _fx_catch_50); - FX_COPY_PTR(v_140.t1, &relems_2); - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(0, code_36, &__fold_result___10); + &_fx_g19K_normalize__None6_, etyp_0, false, &eloc_0, &v_128, 0), _fx_catch_50); + FX_COPY_PTR(v_128.t1, &relems_2); + FX_COPY_PTR(code_24, &code_25); int_ idx_0 = 0; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_8 = relems_2; for (; lst_8; lst_8 = lst_8->tl, idx_0 += 1) { _fx_N10Ast__typ_t ti_0 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_144 = {0}; - _fx_LN14K_form__atom_t ratoms_3 = 0; - _fx_LN14K_form__kexp_t code_38 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_145 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_131 = {0}; fx_exn_t exn_1 = {0}; _fx_N14K_form__atom_t a_5 = {0}; - _fx_LN14K_form__kexp_t code_39 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_146 = {0}; + _fx_LN14K_form__kexp_t code1_6 = 0; + _fx_LN14K_form__atom_t v_132 = 0; _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t* __pat___2 = &lst_8->hd; _fx_R9Ast__id_t ni_1 = __pat___2->t1; FX_COPY_PTR(__pat___2->t2, &ti_0); - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___10, &v_144); - FX_COPY_PTR(v_144.t0, &ratoms_3); - FX_COPY_PTR(v_144.t1, &code_38); - _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t __fold_result___11 = {0}; + _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t __fold_result___4 = {0}; _fx_LT2R9Ast__id_tN10Ast__exp_t new_elems_0 = 0; - _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t __fold_result___12 = {0}; - _fx_T2R9Ast__id_tN10Ast__exp_t v_147 = {0}; + _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t __fold_result___5 = {0}; + _fx_T2R9Ast__id_tN10Ast__exp_t v_133 = {0}; _fx_N10Ast__exp_t ej_0 = 0; - _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&_fx_g19K_normalize__None2_, &__fold_result___11); + _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&_fx_g19K_normalize__None2_, &__fold_result___4); FX_COPY_PTR(vcase_14->t1, &new_elems_0); _fx_LT2R9Ast__id_tN10Ast__exp_t lst_9 = new_elems_0; for (; lst_9; lst_9 = lst_9->tl) { - _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t v_148 = {0}; + _fx_Nt6option1T2R9Ast__id_tN10Ast__exp_t v_134 = {0}; _fx_T2R9Ast__id_tN10Ast__exp_t* __pat___3 = &lst_9->hd; _fx_R9Ast__id_t nj_2 = __pat___3->t0; - bool res_8; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&ni_1, &nj_2, &res_8, 0), _fx_catch_46); - if (res_8) { - _fx_M11K_normalizeFM4SomeNt6option1T2R9Ast__id_tN10Ast__exp_t1T2R9Ast__id_tN10Ast__exp_t(__pat___3, &v_148); - _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___11); - _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&v_148, &__fold_result___11); + bool res_11; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&ni_1, &nj_2, &res_11, 0), _fx_catch_46); + if (res_11) { + _fx_M11K_normalizeFM4SomeNt6option1T2R9Ast__id_tN10Ast__exp_t1T2R9Ast__id_tN10Ast__exp_t(__pat___3, &v_134); + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___4); + _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&v_134, &__fold_result___4); FX_BREAK(_fx_catch_46); } _fx_catch_46: ; - _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&v_148); + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&v_134); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_47); } - _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___11, &__fold_result___12); - if (__fold_result___12.tag == 2) { - _fx_copy_T2R9Ast__id_tN10Ast__exp_t(&__fold_result___12.u.Some, &v_147); + _fx_copy_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___4, &__fold_result___5); + if (__fold_result___5.tag == 2) { + _fx_copy_T2R9Ast__id_tN10Ast__exp_t(&__fold_result___5.u.Some, &v_133); } else { FX_FAST_THROW(FX_EXN_NotFoundError, _fx_catch_47); } FX_CHECK_EXN(_fx_catch_47); - FX_COPY_PTR(v_147.t1, &ej_0); + FX_COPY_PTR(v_133.t1, &ej_0); FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - ej_0, code_38, false, sc_0, &v_145, 0), _fx_catch_47); + ej_0, code_25, false, sc_0, &v_131, 0), _fx_catch_47); _fx_catch_47: ; - _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___11); + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___4); if (new_elems_0) { _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&new_elems_0); } - _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___12); - _fx_free_T2R9Ast__id_tN10Ast__exp_t(&v_147); + _fx_free_Nt6option1T2R9Ast__id_tN10Ast__exp_t(&__fold_result___5); + _fx_free_T2R9Ast__id_tN10Ast__exp_t(&v_133); if (ej_0) { _fx_free_N10Ast__exp_t(&ej_0); } if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_1); fx_status = 0; - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_145); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_131); if (exn_1.tag == FX_EXN_NotFoundError) { _fx_N14K_form__ktyp_t ti__0 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_149 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_135 = {0}; _fx_N14K_form__kexp_t get_ni_0 = 0; - _fx_R16Ast__val_flags_t v_150 = {0}; - _fx_Nt6option1N14K_form__kexp_t v_151 = {0}; - _fx_LN14K_form__kexp_t code_40 = 0; - _fx_N14K_form__atom_t v_152 = {0}; + _fx_R16Ast__val_flags_t v_136 = {0}; + _fx_Nt6option1N14K_form__kexp_t v_137 = {0}; + _fx_LN14K_form__kexp_t code_26 = 0; + _fx_N14K_form__atom_t v_138 = {0}; _fx_R9Ast__id_t ni__0; FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(km_idx_0, &ni_1, &ni__0, 0), _fx_catch_48); FX_CALL(_fx_M11K_normalizeFM8typ2ktypN14K_form__ktyp_t2N10Ast__typ_tR10Ast__loc_t(ti_0, &eloc_0, &ti__0, 0), _fx_catch_48); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ti__0, &eloc_0, &v_149); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ti__0, &eloc_0, &v_135); FX_CALL( - _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(&rec_n_0, idx_0, &v_149, + _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(&rec_n_0, idx_0, &v_135, &get_ni_0), _fx_catch_48); - FX_CALL(_fx_M3AstFM21default_tempref_flagsRM11val_flags_t0(&v_150, 0), _fx_catch_48); - _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(get_ni_0, &v_151); + FX_CALL(_fx_M3AstFM21default_tempref_flagsRM11val_flags_t0(&v_136, 0), _fx_catch_48); + _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(get_ni_0, &v_137); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &ni__0, ti__0, &v_150, &v_151, code_38, &eloc_0, &code_40, 0), _fx_catch_48); - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&ni__0, &v_152); - _fx_make_T2N14K_form__atom_tLN14K_form__kexp_t(&v_152, code_40, &v_145); + &ni__0, ti__0, &v_136, &v_137, code_25, &eloc_0, &code_26, 0), _fx_catch_48); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&ni__0, &v_138); + _fx_make_T2N14K_form__atom_tLN14K_form__kexp_t(&v_138, code_26, &v_131); _fx_catch_48: ; - _fx_free_N14K_form__atom_t(&v_152); - if (code_40) { - _fx_free_LN14K_form__kexp_t(&code_40); + _fx_free_N14K_form__atom_t(&v_138); + if (code_26) { + _fx_free_LN14K_form__kexp_t(&code_26); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_151); - _fx_free_R16Ast__val_flags_t(&v_150); + _fx_free_Nt6option1N14K_form__kexp_t(&v_137); + _fx_free_R16Ast__val_flags_t(&v_136); if (get_ni_0) { _fx_free_N14K_form__kexp_t(&get_ni_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_149); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_135); if (ti__0) { _fx_free_N14K_form__ktyp_t(&ti__0); } @@ -12928,389 +12545,363 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_49); } - _fx_copy_N14K_form__atom_t(&v_145.t0, &a_5); - FX_COPY_PTR(v_145.t1, &code_39); - FX_CALL(_fx_cons_LN14K_form__atom_t(&a_5, ratoms_3, false, &ratoms_3), _fx_catch_49); - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(ratoms_3, code_39, &v_146); - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___10); - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_146, &__fold_result___10); + _fx_copy_N14K_form__atom_t(&v_131.t0, &a_5); + FX_COPY_PTR(v_131.t1, &code1_6); + _fx_free_LN14K_form__kexp_t(&code_25); + FX_COPY_PTR(code1_6, &code_25); + FX_CALL(_fx_cons_LN14K_form__atom_t(&a_5, ratoms_1, true, &v_132), _fx_catch_49); + _fx_free_LN14K_form__atom_t(&ratoms_1); + FX_COPY_PTR(v_132, &ratoms_1); _fx_catch_49: ; - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_146); - if (code_39) { - _fx_free_LN14K_form__kexp_t(&code_39); + if (v_132) { + _fx_free_LN14K_form__atom_t(&v_132); + } + if (code1_6) { + _fx_free_LN14K_form__kexp_t(&code1_6); } _fx_free_N14K_form__atom_t(&a_5); fx_free_exn(&exn_1); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_145); - if (code_38) { - _fx_free_LN14K_form__kexp_t(&code_38); - } - if (ratoms_3) { - _fx_free_LN14K_form__atom_t(&ratoms_3); - } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_144); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_131); if (ti_0) { _fx_free_N10Ast__typ_t(&ti_0); } FX_CHECK_EXN(_fx_catch_50); } - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___10, &v_141); - FX_COPY_PTR(v_141.t0, &ratoms_2); - FX_COPY_PTR(v_141.t1, &code_37); - FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(ratoms_2, &v_142, 0), _fx_catch_50); + FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(ratoms_1, &v_129, 0), _fx_catch_50); FX_CALL( - _fx_M6K_formFM12KExpMkRecordN14K_form__kexp_t2LN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_142, &kctx_0, - &v_143), _fx_catch_50); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_143, code_37, fx_result); + _fx_M6K_formFM12KExpMkRecordN14K_form__kexp_t2LN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_129, &kctx_0, + &v_130), _fx_catch_50); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_130, code_25, fx_result); _fx_catch_50: ; - if (v_143) { - _fx_free_N14K_form__kexp_t(&v_143); + if (v_130) { + _fx_free_N14K_form__kexp_t(&v_130); } - if (v_142) { - _fx_free_LN14K_form__atom_t(&v_142); + if (v_129) { + _fx_free_LN14K_form__atom_t(&v_129); } - if (code_37) { - _fx_free_LN14K_form__kexp_t(&code_37); + if (code_25) { + _fx_free_LN14K_form__kexp_t(&code_25); } - if (ratoms_2) { - _fx_free_LN14K_form__atom_t(&ratoms_2); + if (ratoms_1) { + _fx_free_LN14K_form__atom_t(&ratoms_1); } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_141); - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___10); if (relems_2) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_2); } - _fx_free_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_140); - if (code_36) { - _fx_free_LN14K_form__kexp_t(&code_36); + _fx_free_T2R9Ast__id_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_128); + if (code_24) { + _fx_free_LN14K_form__kexp_t(&code_24); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_139); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_127); goto _fx_endmatch_14; } if (tag_0 == 18) { - _fx_LN10Ast__exp_t v_153 = 0; - _fx_T2LN10Ast__exp_tNt6option1N10Ast__exp_t v_154 = {0}; - _fx_LN10Ast__exp_t args_7 = 0; + _fx_LN10Ast__exp_t v_139 = 0; + _fx_T2LN10Ast__exp_tNt6option1N10Ast__exp_t v_140 = {0}; + _fx_LN10Ast__exp_t args_3 = 0; _fx_Nt6option1N10Ast__exp_t kwarg_opt_0 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t __fold_result___13 = {0}; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_155 = {0}; - _fx_LN14K_form__atom_t args_8 = 0; - _fx_LN14K_form__kexp_t code_41 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_156 = {0}; - _fx_LN14K_form__atom_t args_9 = 0; - _fx_LN14K_form__kexp_t code_42 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_157 = {0}; + _fx_LN14K_form__atom_t res_12 = 0; + _fx_LN14K_form__kexp_t code_27 = 0; + _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_141 = {0}; + _fx_LN14K_form__atom_t args_4 = 0; + _fx_LN14K_form__kexp_t code_28 = 0; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_142 = {0}; _fx_N14K_form__kexp_t f_exp_0 = 0; - _fx_LN14K_form__kexp_t code_43 = 0; + _fx_LN14K_form__kexp_t code_29 = 0; _fx_T3N10Ast__exp_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_15 = &e_0->u.ExpCall; - _fx_LN10Ast__exp_t args_10 = vcase_15->t1; - FX_CALL(_fx_M11K_normalizeFM3revLN10Ast__exp_t1LN10Ast__exp_t(args_10, &v_153, 0), _fx_catch_61); - if (v_153 != 0) { - _fx_N10Ast__exp_t mkrec_0 = v_153->hd; + _fx_LN10Ast__exp_t args_5 = vcase_15->t1; + FX_CALL(_fx_M11K_normalizeFM3revLN10Ast__exp_t1LN10Ast__exp_t(args_5, &v_139, 0), _fx_catch_61); + if (v_139 != 0) { + _fx_N10Ast__exp_t mkrec_0 = v_139->hd; if (FX_REC_VARIANT_TAG(mkrec_0) == 16) { if (FX_REC_VARIANT_TAG(mkrec_0->u.ExpMkRecord.t0) == 1) { - _fx_LN10Ast__exp_t v_158 = 0; - _fx_Nt6option1N10Ast__exp_t v_159 = 0; - FX_CALL(_fx_M11K_normalizeFM3revLN10Ast__exp_t1LN10Ast__exp_t(v_153->tl, &v_158, 0), _fx_catch_51); - FX_CALL(_fx_M11K_normalizeFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(mkrec_0, &v_159), _fx_catch_51); - _fx_make_T2LN10Ast__exp_tNt6option1N10Ast__exp_t(v_158, v_159, &v_154); + _fx_LN10Ast__exp_t v_143 = 0; + _fx_Nt6option1N10Ast__exp_t v_144 = 0; + FX_CALL(_fx_M11K_normalizeFM3revLN10Ast__exp_t1LN10Ast__exp_t(v_139->tl, &v_143, 0), _fx_catch_51); + FX_CALL(_fx_M11K_normalizeFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(mkrec_0, &v_144), _fx_catch_51); + _fx_make_T2LN10Ast__exp_tNt6option1N10Ast__exp_t(v_143, v_144, &v_140); _fx_catch_51: ; - if (v_159) { - _fx_free_Nt6option1N10Ast__exp_t(&v_159); + if (v_144) { + _fx_free_Nt6option1N10Ast__exp_t(&v_144); } - if (v_158) { - _fx_free_LN10Ast__exp_t(&v_158); + if (v_143) { + _fx_free_LN10Ast__exp_t(&v_143); } goto _fx_endmatch_7; } } } - _fx_make_T2LN10Ast__exp_tNt6option1N10Ast__exp_t(args_10, _fx_g19K_normalize__None7_, &v_154); + _fx_make_T2LN10Ast__exp_tNt6option1N10Ast__exp_t(args_5, _fx_g19K_normalize__None7_, &v_140); _fx_endmatch_7: ; FX_CHECK_EXN(_fx_catch_61); - FX_COPY_PTR(v_154.t0, &args_7); - FX_COPY_PTR(v_154.t1, &kwarg_opt_0); - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(0, code_0, &__fold_result___13); - _fx_LN10Ast__exp_t lst_10 = args_7; + FX_COPY_PTR(v_140.t0, &args_3); + FX_COPY_PTR(v_140.t1, &kwarg_opt_0); + FX_COPY_PTR(code_0, &code_27); + _fx_LN10Ast__exp_t lst_10 = args_3; for (; lst_10; lst_10 = lst_10->tl) { - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_160 = {0}; - _fx_LN14K_form__atom_t args_11 = 0; - _fx_LN14K_form__kexp_t code_44 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_161 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_145 = {0}; _fx_N14K_form__atom_t ai_2 = {0}; - _fx_LN14K_form__kexp_t code_45 = 0; - _fx_T2LN14K_form__atom_tLN14K_form__kexp_t v_162 = {0}; + _fx_LN14K_form__kexp_t code1_7 = 0; + _fx_LN14K_form__atom_t v_146 = 0; _fx_N10Ast__exp_t ei_2 = lst_10->hd; - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___13, &v_160); - FX_COPY_PTR(v_160.t0, &args_11); - FX_COPY_PTR(v_160.t1, &code_44); FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - ei_2, code_44, false, sc_0, &v_161, 0), _fx_catch_52); - _fx_copy_N14K_form__atom_t(&v_161.t0, &ai_2); - FX_COPY_PTR(v_161.t1, &code_45); - FX_CALL(_fx_cons_LN14K_form__atom_t(&ai_2, args_11, false, &args_11), _fx_catch_52); - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(args_11, code_45, &v_162); - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___13); - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_162, &__fold_result___13); + ei_2, code_27, false, sc_0, &v_145, 0), _fx_catch_52); + _fx_copy_N14K_form__atom_t(&v_145.t0, &ai_2); + FX_COPY_PTR(v_145.t1, &code1_7); + _fx_free_LN14K_form__kexp_t(&code_27); + FX_COPY_PTR(code1_7, &code_27); + FX_CALL(_fx_cons_LN14K_form__atom_t(&ai_2, res_12, true, &v_146), _fx_catch_52); + _fx_free_LN14K_form__atom_t(&res_12); + FX_COPY_PTR(v_146, &res_12); _fx_catch_52: ; - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_162); - if (code_45) { - _fx_free_LN14K_form__kexp_t(&code_45); + if (v_146) { + _fx_free_LN14K_form__atom_t(&v_146); } - _fx_free_N14K_form__atom_t(&ai_2); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_161); - if (code_44) { - _fx_free_LN14K_form__kexp_t(&code_44); + if (code1_7) { + _fx_free_LN14K_form__kexp_t(&code1_7); } - if (args_11) { - _fx_free_LN14K_form__atom_t(&args_11); - } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_160); + _fx_free_N14K_form__atom_t(&ai_2); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_145); FX_CHECK_EXN(_fx_catch_61); } - _fx_copy_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___13, &v_155); - FX_COPY_PTR(v_155.t0, &args_8); - FX_COPY_PTR(v_155.t1, &code_41); if ((kwarg_opt_0 != 0) + 1 == 2) { - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_163 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_147 = {0}; _fx_N14K_form__kexp_t ke_0 = 0; - _fx_LN14K_form__kexp_t code_46 = 0; + _fx_LN14K_form__kexp_t code_30 = 0; _fx_N10Ast__exp_t e_6 = kwarg_opt_0->u.Some; FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e_6, code_41, false, sc_0, &v_163, 0), _fx_catch_55); - FX_COPY_PTR(v_163.t0, &ke_0); - FX_COPY_PTR(v_163.t1, &code_46); + e_6, code_27, false, sc_0, &v_147, 0), _fx_catch_55); + FX_COPY_PTR(v_147.t0, &ke_0); + FX_COPY_PTR(v_147.t1, &code_30); if (FX_REC_VARIANT_TAG(ke_0) == 15) { - _fx_LN14K_form__atom_t v_164 = 0; - _fx_LN14K_form__atom_t v_165 = 0; - FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(args_8, &v_164, 0), _fx_catch_53); + _fx_LN14K_form__atom_t v_148 = 0; + _fx_LN14K_form__atom_t v_149 = 0; + FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(res_12, &v_148, 0), _fx_catch_53); FX_CALL( - _fx_M11K_normalizeFM7__add__LN14K_form__atom_t2LN14K_form__atom_tLN14K_form__atom_t(v_164, - ke_0->u.KExpMkRecord.t0, &v_165, 0), _fx_catch_53); - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(v_165, code_46, &v_156); + _fx_M11K_normalizeFM7__add__LN14K_form__atom_t2LN14K_form__atom_tLN14K_form__atom_t(v_148, + ke_0->u.KExpMkRecord.t0, &v_149, 0), _fx_catch_53); + _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(v_149, code_30, &v_141); _fx_catch_53: ; - if (v_165) { - _fx_free_LN14K_form__atom_t(&v_165); + if (v_149) { + _fx_free_LN14K_form__atom_t(&v_149); } - if (v_164) { - _fx_free_LN14K_form__atom_t(&v_164); + if (v_148) { + _fx_free_LN14K_form__atom_t(&v_148); } } else { - fx_exn_t v_166 = {0}; - _fx_R10Ast__loc_t v_167; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e_6, &v_167, 0), _fx_catch_54); + fx_exn_t v_150 = {0}; + _fx_R10Ast__loc_t v_151; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e_6, &v_151, 0), _fx_catch_54); fx_str_t slit_11 = FX_MAKE_STR("the expression should convert to KExpMkRecord()"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_167, &slit_11, &v_166, 0), _fx_catch_54); - FX_THROW(&v_166, false, _fx_catch_54); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_151, &slit_11, &v_150, 0), _fx_catch_54); + FX_THROW(&v_150, false, _fx_catch_54); _fx_catch_54: ; - fx_free_exn(&v_166); + fx_free_exn(&v_150); } FX_CHECK_EXN(_fx_catch_55); _fx_catch_55: ; - if (code_46) { - _fx_free_LN14K_form__kexp_t(&code_46); + if (code_30) { + _fx_free_LN14K_form__kexp_t(&code_30); } if (ke_0) { _fx_free_N14K_form__kexp_t(&ke_0); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_163); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_147); } else { - _fx_LN14K_form__atom_t v_168 = 0; - FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(args_8, &v_168, 0), _fx_catch_56); - _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(v_168, code_41, &v_156); + _fx_LN14K_form__atom_t v_152 = 0; + FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__atom_t1LN14K_form__atom_t(res_12, &v_152, 0), _fx_catch_56); + _fx_make_T2LN14K_form__atom_tLN14K_form__kexp_t(v_152, code_27, &v_141); _fx_catch_56: ; - if (v_168) { - _fx_free_LN14K_form__atom_t(&v_168); + if (v_152) { + _fx_free_LN14K_form__atom_t(&v_152); } } FX_CHECK_EXN(_fx_catch_61); - FX_COPY_PTR(v_156.t0, &args_9); - FX_COPY_PTR(v_156.t1, &code_42); + FX_COPY_PTR(v_141.t0, &args_4); + FX_COPY_PTR(v_141.t1, &code_28); FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - vcase_15->t0, code_42, false, sc_0, &v_157, 0), _fx_catch_61); - FX_COPY_PTR(v_157.t0, &f_exp_0); - FX_COPY_PTR(v_157.t1, &code_43); + vcase_15->t0, code_28, false, sc_0, &v_142, 0), _fx_catch_61); + FX_COPY_PTR(v_142.t0, &f_exp_0); + FX_COPY_PTR(v_142.t1, &code_29); if (FX_REC_VARIANT_TAG(f_exp_0) == 20) { _fx_N14K_form__ktyp_t t_0 = 0; - _fx_Nt6option1rR23K_form__kdefinterface_t v_169 = {0}; + _fx_Nt6option1rR23K_form__kdefinterface_t v_153 = {0}; _fx_T3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t* vcase_16 = &f_exp_0->u.KExpMem; _fx_R10Ast__loc_t* f_loc_0 = &vcase_16->t2.t1; _fx_R9Ast__id_t* obj_0 = &vcase_16->t0; FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(obj_0, f_loc_0, &t_0, 0), _fx_catch_59); FX_CALL( _fx_M6K_formFM18get_kinterface_optNt6option1rRM15kdefinterface_t2N14K_form__ktyp_tR10Ast__loc_t(t_0, f_loc_0, - &v_169, 0), _fx_catch_59); - if (v_169.tag == 2) { - _fx_N14K_form__kexp_t v_170 = 0; + &v_153, 0), _fx_catch_59); + if (v_153.tag == 2) { + _fx_N14K_form__kexp_t v_154 = 0; FX_CALL( _fx_M6K_formFM9KExpICallN14K_form__kexp_t4R9Ast__id_tiLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(obj_0, - vcase_16->t1, args_9, &kctx_0, &v_170), _fx_catch_57); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_170, code_43, fx_result); + vcase_16->t1, args_4, &kctx_0, &v_154), _fx_catch_57); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_154, code_29, fx_result); _fx_catch_57: ; - if (v_170) { - _fx_free_N14K_form__kexp_t(&v_170); + if (v_154) { + _fx_free_N14K_form__kexp_t(&v_154); } } else { - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_171 = {0}; - _fx_LN14K_form__kexp_t code_47 = 0; - _fx_N14K_form__kexp_t v_172 = 0; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_155 = {0}; + _fx_LN14K_form__kexp_t code_31 = 0; + _fx_N14K_form__kexp_t v_156 = 0; fx_str_t slit_12 = FX_MAKE_STR("f"); fx_str_t slit_13 = FX_MAKE_STR("cannot reduce obj.idx to an id (?!)"); FX_CALL( _fx_M6K_formFM7kexp2idT2R9Ast__id_tLN14K_form__kexp_t6iSN14K_form__kexp_tBLN14K_form__kexp_tS(km_idx_0, &slit_12, - f_exp_0, true, code_43, &slit_13, &v_171, 0), _fx_catch_58); - _fx_R9Ast__id_t f_id_0 = v_171.t0; - FX_COPY_PTR(v_171.t1, &code_47); + f_exp_0, true, code_29, &slit_13, &v_155, 0), _fx_catch_58); + _fx_R9Ast__id_t f_id_0 = v_155.t0; + FX_COPY_PTR(v_155.t1, &code_31); FX_CALL( _fx_M6K_formFM8KExpCallN14K_form__kexp_t3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&f_id_0, - args_9, &kctx_0, &v_172), _fx_catch_58); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_172, code_47, fx_result); + args_4, &kctx_0, &v_156), _fx_catch_58); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_156, code_31, fx_result); _fx_catch_58: ; - if (v_172) { - _fx_free_N14K_form__kexp_t(&v_172); + if (v_156) { + _fx_free_N14K_form__kexp_t(&v_156); } - if (code_47) { - _fx_free_LN14K_form__kexp_t(&code_47); + if (code_31) { + _fx_free_LN14K_form__kexp_t(&code_31); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_171); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_155); } FX_CHECK_EXN(_fx_catch_59); _fx_catch_59: ; - _fx_free_Nt6option1rR23K_form__kdefinterface_t(&v_169); + _fx_free_Nt6option1rR23K_form__kdefinterface_t(&v_153); if (t_0) { _fx_free_N14K_form__ktyp_t(&t_0); } } else { - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_173 = {0}; - _fx_LN14K_form__kexp_t code_48 = 0; - _fx_N14K_form__kexp_t v_174 = 0; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_157 = {0}; + _fx_LN14K_form__kexp_t code_32 = 0; + _fx_N14K_form__kexp_t v_158 = 0; fx_str_t slit_14 = FX_MAKE_STR("f"); fx_str_t slit_15 = FX_MAKE_STR("cannot reduce function expression to an id"); FX_CALL( _fx_M6K_formFM7kexp2idT2R9Ast__id_tLN14K_form__kexp_t6iSN14K_form__kexp_tBLN14K_form__kexp_tS(km_idx_0, &slit_14, - f_exp_0, true, code_43, &slit_15, &v_173, 0), _fx_catch_60); - _fx_R9Ast__id_t f_id_1 = v_173.t0; - FX_COPY_PTR(v_173.t1, &code_48); + f_exp_0, true, code_29, &slit_15, &v_157, 0), _fx_catch_60); + _fx_R9Ast__id_t f_id_1 = v_157.t0; + FX_COPY_PTR(v_157.t1, &code_32); FX_CALL( _fx_M6K_formFM8KExpCallN14K_form__kexp_t3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&f_id_1, - args_9, &kctx_0, &v_174), _fx_catch_60); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_174, code_48, fx_result); + args_4, &kctx_0, &v_158), _fx_catch_60); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_158, code_32, fx_result); _fx_catch_60: ; - if (v_174) { - _fx_free_N14K_form__kexp_t(&v_174); + if (v_158) { + _fx_free_N14K_form__kexp_t(&v_158); } - if (code_48) { - _fx_free_LN14K_form__kexp_t(&code_48); + if (code_32) { + _fx_free_LN14K_form__kexp_t(&code_32); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_173); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_157); } FX_CHECK_EXN(_fx_catch_61); _fx_catch_61: ; - if (code_43) { - _fx_free_LN14K_form__kexp_t(&code_43); + if (code_29) { + _fx_free_LN14K_form__kexp_t(&code_29); } if (f_exp_0) { _fx_free_N14K_form__kexp_t(&f_exp_0); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_157); - if (code_42) { - _fx_free_LN14K_form__kexp_t(&code_42); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_142); + if (code_28) { + _fx_free_LN14K_form__kexp_t(&code_28); } - if (args_9) { - _fx_free_LN14K_form__atom_t(&args_9); + if (args_4) { + _fx_free_LN14K_form__atom_t(&args_4); } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_156); - if (code_41) { - _fx_free_LN14K_form__kexp_t(&code_41); + _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_141); + if (code_27) { + _fx_free_LN14K_form__kexp_t(&code_27); } - if (args_8) { - _fx_free_LN14K_form__atom_t(&args_8); + if (res_12) { + _fx_free_LN14K_form__atom_t(&res_12); } - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&v_155); - _fx_free_T2LN14K_form__atom_tLN14K_form__kexp_t(&__fold_result___13); if (kwarg_opt_0) { _fx_free_Nt6option1N10Ast__exp_t(&kwarg_opt_0); } - if (args_7) { - _fx_free_LN10Ast__exp_t(&args_7); + if (args_3) { + _fx_free_LN10Ast__exp_t(&args_3); } - _fx_free_T2LN10Ast__exp_tNt6option1N10Ast__exp_t(&v_154); - if (v_153) { - _fx_free_LN10Ast__exp_t(&v_153); + _fx_free_T2LN10Ast__exp_tNt6option1N10Ast__exp_t(&v_140); + if (v_139) { + _fx_free_LN10Ast__exp_t(&v_139); } goto _fx_endmatch_14; } if (tag_0 == 22) { - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_175 = {0}; - _fx_LN14K_form__kexp_t code_49 = 0; - _fx_N14K_form__kexp_t v_176 = 0; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_159 = {0}; + _fx_LN14K_form__kexp_t code_33 = 0; + _fx_N14K_form__kexp_t v_160 = 0; fx_str_t slit_16 = FX_MAKE_STR("a literal cannot be thrown as exception"); FX_CALL( _fx_M11K_normalizeFM6exp2idT2R9Ast__id_tLN14K_form__kexp_t5N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_tS( - e_0->u.ExpThrow.t0, code_0, false, sc_0, &slit_16, &v_175, 0), _fx_catch_62); - _fx_R9Ast__id_t a_id_1 = v_175.t0; - FX_COPY_PTR(v_175.t1, &code_49); - FX_CALL(_fx_M6K_formFM9KExpThrowN14K_form__kexp_t3R9Ast__id_tBR10Ast__loc_t(&a_id_1, false, &eloc_0, &v_176), + e_0->u.ExpThrow.t0, code_0, false, sc_0, &slit_16, &v_159, 0), _fx_catch_62); + _fx_R9Ast__id_t a_id_1 = v_159.t0; + FX_COPY_PTR(v_159.t1, &code_33); + FX_CALL(_fx_M6K_formFM9KExpThrowN14K_form__kexp_t3R9Ast__id_tBR10Ast__loc_t(&a_id_1, false, &eloc_0, &v_160), _fx_catch_62); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_176, code_49, fx_result); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_160, code_33, fx_result); _fx_catch_62: ; - if (v_176) { - _fx_free_N14K_form__kexp_t(&v_176); + if (v_160) { + _fx_free_N14K_form__kexp_t(&v_160); } - if (code_49) { - _fx_free_LN14K_form__kexp_t(&code_49); + if (code_33) { + _fx_free_LN14K_form__kexp_t(&code_33); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_175); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_159); goto _fx_endmatch_14; } if (tag_0 == 23) { - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_177 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_161 = {0}; _fx_N14K_form__atom_t c_0 = {0}; - _fx_LN14K_form__kexp_t code_50 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_178 = {0}; + _fx_LN14K_form__kexp_t code_34 = 0; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_162 = {0}; _fx_N14K_form__kexp_t e2_6 = 0; _fx_LN14K_form__kexp_t code2_2 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_179 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_163 = {0}; _fx_N14K_form__kexp_t e3_0 = 0; _fx_LN14K_form__kexp_t code3_0 = 0; - _fx_LN14K_form__kexp_t v_180 = 0; + _fx_LN14K_form__kexp_t v_164 = 0; _fx_N14K_form__kexp_t if_then_0 = 0; - _fx_LN14K_form__kexp_t v_181 = 0; + _fx_LN14K_form__kexp_t v_165 = 0; _fx_N14K_form__kexp_t if_else_0 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_182 = {0}; - _fx_N14K_form__kexp_t v_183 = 0; - _fx_N14K_form__kexp_t v_184 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_166 = {0}; + _fx_N14K_form__kexp_t v_167 = 0; + _fx_N14K_form__kexp_t v_168 = 0; _fx_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_17 = &e_0->u.ExpIf; _fx_N10Ast__exp_t e3_1 = vcase_17->t2; _fx_N10Ast__exp_t e2_7 = vcase_17->t1; _fx_N10Ast__exp_t e1_3 = vcase_17->t0; FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e1_3, code_0, false, sc_0, &v_177, 0), _fx_catch_63); - _fx_copy_N14K_form__atom_t(&v_177.t0, &c_0); - FX_COPY_PTR(v_177.t1, &code_50); + e1_3, code_0, false, sc_0, &v_161, 0), _fx_catch_63); + _fx_copy_N14K_form__atom_t(&v_161.t0, &c_0); + FX_COPY_PTR(v_161.t1, &code_34); _fx_R10Ast__loc_t loc1_0; FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e1_3, &loc1_0, 0), _fx_catch_63); _fx_R10Ast__loc_t loc2_0; @@ -13319,47 +12910,47 @@ FX_EXTERN_C int FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e3_1, &loc3_0, 0), _fx_catch_63); FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e2_7, 0, false, sc_0, &v_178, 0), _fx_catch_63); - FX_COPY_PTR(v_178.t0, &e2_6); - FX_COPY_PTR(v_178.t1, &code2_2); + e2_7, 0, false, sc_0, &v_162, 0), _fx_catch_63); + FX_COPY_PTR(v_162.t0, &e2_6); + FX_COPY_PTR(v_162.t1, &code2_2); FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e3_1, 0, false, sc_0, &v_179, 0), _fx_catch_63); - FX_COPY_PTR(v_179.t0, &e3_0); - FX_COPY_PTR(v_179.t1, &code3_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(e2_6, code2_2, true, &v_180), _fx_catch_63); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_180, &loc2_0, &if_then_0, 0), + e3_1, 0, false, sc_0, &v_163, 0), _fx_catch_63); + FX_COPY_PTR(v_163.t0, &e3_0); + FX_COPY_PTR(v_163.t1, &code3_0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(e2_6, code2_2, true, &v_164), _fx_catch_63); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_164, &loc2_0, &if_then_0, 0), _fx_catch_63); - FX_CALL(_fx_cons_LN14K_form__kexp_t(e3_0, code3_0, true, &v_181), _fx_catch_63); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_181, &loc3_0, &if_else_0, 0), + FX_CALL(_fx_cons_LN14K_form__kexp_t(e3_0, code3_0, true, &v_165), _fx_catch_63); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_165, &loc3_0, &if_else_0, 0), _fx_catch_63); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypBool, &loc1_0, &v_182); - FX_CALL(_fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&c_0, &v_182, &v_183), + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypBool, &loc1_0, &v_166); + FX_CALL(_fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&c_0, &v_166, &v_167), _fx_catch_63); FX_CALL( _fx_M6K_formFM6KExpIfN14K_form__kexp_t4N14K_form__kexp_tN14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t( - v_183, if_then_0, if_else_0, &kctx_0, &v_184), _fx_catch_63); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_184, code_50, fx_result); + v_167, if_then_0, if_else_0, &kctx_0, &v_168), _fx_catch_63); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_168, code_34, fx_result); _fx_catch_63: ; - if (v_184) { - _fx_free_N14K_form__kexp_t(&v_184); + if (v_168) { + _fx_free_N14K_form__kexp_t(&v_168); } - if (v_183) { - _fx_free_N14K_form__kexp_t(&v_183); + if (v_167) { + _fx_free_N14K_form__kexp_t(&v_167); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_182); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_166); if (if_else_0) { _fx_free_N14K_form__kexp_t(&if_else_0); } - if (v_181) { - _fx_free_LN14K_form__kexp_t(&v_181); + if (v_165) { + _fx_free_LN14K_form__kexp_t(&v_165); } if (if_then_0) { _fx_free_N14K_form__kexp_t(&if_then_0); } - if (v_180) { - _fx_free_LN14K_form__kexp_t(&v_180); + if (v_164) { + _fx_free_LN14K_form__kexp_t(&v_164); } if (code3_0) { _fx_free_LN14K_form__kexp_t(&code3_0); @@ -13367,33 +12958,33 @@ FX_EXTERN_C int if (e3_0) { _fx_free_N14K_form__kexp_t(&e3_0); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_179); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_163); if (code2_2) { _fx_free_LN14K_form__kexp_t(&code2_2); } if (e2_6) { _fx_free_N14K_form__kexp_t(&e2_6); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_178); - if (code_50) { - _fx_free_LN14K_form__kexp_t(&code_50); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_162); + if (code_34) { + _fx_free_LN14K_form__kexp_t(&code_34); } _fx_free_N14K_form__atom_t(&c_0); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_177); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_161); goto _fx_endmatch_14; } if (tag_0 == 24) { - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_185 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_169 = {0}; _fx_N14K_form__kexp_t e1_4 = 0; - _fx_LN14K_form__kexp_t code1_1 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_186 = {0}; + _fx_LN14K_form__kexp_t code1_8 = 0; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_170 = {0}; _fx_N14K_form__kexp_t e2_8 = 0; _fx_LN14K_form__kexp_t code2_3 = 0; - _fx_LN14K_form__kexp_t v_187 = 0; + _fx_LN14K_form__kexp_t v_171 = 0; _fx_N14K_form__kexp_t c_1 = 0; - _fx_LN14K_form__kexp_t v_188 = 0; + _fx_LN14K_form__kexp_t v_172 = 0; _fx_N14K_form__kexp_t body_0 = 0; - _fx_N14K_form__kexp_t v_189 = 0; + _fx_N14K_form__kexp_t v_173 = 0; _fx_T3N10Ast__exp_tN10Ast__exp_tR10Ast__loc_t* vcase_18 = &e_0->u.ExpWhile; _fx_N10Ast__exp_t e2_9 = vcase_18->t1; _fx_N10Ast__exp_t e1_5 = vcase_18->t0; @@ -13403,40 +12994,40 @@ FX_EXTERN_C int FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e2_9, &loc2_1, 0), _fx_catch_64); FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e1_5, 0, false, sc_0, &v_185, 0), _fx_catch_64); - FX_COPY_PTR(v_185.t0, &e1_4); - FX_COPY_PTR(v_185.t1, &code1_1); + e1_5, 0, false, sc_0, &v_169, 0), _fx_catch_64); + FX_COPY_PTR(v_169.t0, &e1_4); + FX_COPY_PTR(v_169.t1, &code1_8); FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e2_9, 0, false, sc_0, &v_186, 0), _fx_catch_64); - FX_COPY_PTR(v_186.t0, &e2_8); - FX_COPY_PTR(v_186.t1, &code2_3); - FX_CALL(_fx_cons_LN14K_form__kexp_t(e1_4, code1_1, true, &v_187), _fx_catch_64); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_187, &loc1_1, &c_1, 0), + e2_9, 0, false, sc_0, &v_170, 0), _fx_catch_64); + FX_COPY_PTR(v_170.t0, &e2_8); + FX_COPY_PTR(v_170.t1, &code2_3); + FX_CALL(_fx_cons_LN14K_form__kexp_t(e1_4, code1_8, true, &v_171), _fx_catch_64); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_171, &loc1_1, &c_1, 0), _fx_catch_64); - FX_CALL(_fx_cons_LN14K_form__kexp_t(e2_8, code2_3, true, &v_188), _fx_catch_64); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_188, &loc2_1, &body_0, 0), + FX_CALL(_fx_cons_LN14K_form__kexp_t(e2_8, code2_3, true, &v_172), _fx_catch_64); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_172, &loc2_1, &body_0, 0), _fx_catch_64); FX_CALL( _fx_M6K_formFM9KExpWhileN14K_form__kexp_t3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t(c_1, body_0, &eloc_0, - &v_189), _fx_catch_64); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_189, code_0, fx_result); + &v_173), _fx_catch_64); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_173, code_0, fx_result); _fx_catch_64: ; - if (v_189) { - _fx_free_N14K_form__kexp_t(&v_189); + if (v_173) { + _fx_free_N14K_form__kexp_t(&v_173); } if (body_0) { _fx_free_N14K_form__kexp_t(&body_0); } - if (v_188) { - _fx_free_LN14K_form__kexp_t(&v_188); + if (v_172) { + _fx_free_LN14K_form__kexp_t(&v_172); } if (c_1) { _fx_free_N14K_form__kexp_t(&c_1); } - if (v_187) { - _fx_free_LN14K_form__kexp_t(&v_187); + if (v_171) { + _fx_free_LN14K_form__kexp_t(&v_171); } if (code2_3) { _fx_free_LN14K_form__kexp_t(&code2_3); @@ -13444,48 +13035,48 @@ FX_EXTERN_C int if (e2_8) { _fx_free_N14K_form__kexp_t(&e2_8); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_186); - if (code1_1) { - _fx_free_LN14K_form__kexp_t(&code1_1); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_170); + if (code1_8) { + _fx_free_LN14K_form__kexp_t(&code1_8); } if (e1_4) { _fx_free_N14K_form__kexp_t(&e1_4); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_185); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_169); goto _fx_endmatch_14; } if (tag_0 == 25) { - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_190 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_174 = {0}; _fx_N14K_form__kexp_t e1_6 = 0; - _fx_LN14K_form__kexp_t code1_2 = 0; - _fx_LN14K_form__kexp_t v_191 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_192 = {0}; + _fx_LN14K_form__kexp_t code1_9 = 0; + _fx_LN14K_form__kexp_t v_175 = 0; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_176 = {0}; _fx_N14K_form__kexp_t e2_10 = 0; _fx_LN14K_form__kexp_t code2_4 = 0; _fx_N14K_form__kexp_t body_1 = 0; - _fx_N14K_form__kexp_t v_193 = 0; + _fx_N14K_form__kexp_t v_177 = 0; _fx_T3N10Ast__exp_tN10Ast__exp_tR10Ast__loc_t* vcase_19 = &e_0->u.ExpDoWhile; FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - vcase_19->t0, 0, false, sc_0, &v_190, 0), _fx_catch_65); - FX_COPY_PTR(v_190.t0, &e1_6); - FX_COPY_PTR(v_190.t1, &code1_2); - FX_CALL(_fx_cons_LN14K_form__kexp_t(e1_6, code1_2, true, &v_191), _fx_catch_65); + vcase_19->t0, 0, false, sc_0, &v_174, 0), _fx_catch_65); + FX_COPY_PTR(v_174.t0, &e1_6); + FX_COPY_PTR(v_174.t1, &code1_9); + FX_CALL(_fx_cons_LN14K_form__kexp_t(e1_6, code1_9, true, &v_175), _fx_catch_65); FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - vcase_19->t1, v_191, false, sc_0, &v_192, 0), _fx_catch_65); - FX_COPY_PTR(v_192.t0, &e2_10); - FX_COPY_PTR(v_192.t1, &code2_4); + vcase_19->t1, v_175, false, sc_0, &v_176, 0), _fx_catch_65); + FX_COPY_PTR(v_176.t0, &e2_10); + FX_COPY_PTR(v_176.t1, &code2_4); FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(code2_4, &eloc_0, &body_1, 0), _fx_catch_65); FX_CALL( _fx_M6K_formFM11KExpDoWhileN14K_form__kexp_t3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t(body_1, e2_10, &eloc_0, - &v_193), _fx_catch_65); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_193, code_0, fx_result); + &v_177), _fx_catch_65); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_177, code_0, fx_result); _fx_catch_65: ; - if (v_193) { - _fx_free_N14K_form__kexp_t(&v_193); + if (v_177) { + _fx_free_N14K_form__kexp_t(&v_177); } if (body_1) { _fx_free_N14K_form__kexp_t(&body_1); @@ -13496,68 +13087,68 @@ FX_EXTERN_C int if (e2_10) { _fx_free_N14K_form__kexp_t(&e2_10); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_192); - if (v_191) { - _fx_free_LN14K_form__kexp_t(&v_191); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_176); + if (v_175) { + _fx_free_LN14K_form__kexp_t(&v_175); } - if (code1_2) { - _fx_free_LN14K_form__kexp_t(&code1_2); + if (code1_9) { + _fx_free_LN14K_form__kexp_t(&code1_9); } if (e1_6) { _fx_free_N14K_form__kexp_t(&e1_6); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_190); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_174); goto _fx_endmatch_14; } if (tag_0 == 26) { _fx_LN12Ast__scope_t body_sc_0 = 0; - _fx_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t v_194 = {0}; + _fx_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t v_178 = {0}; _fx_LT2R9Ast__id_tN13K_form__dom_t idom_list_0 = 0; _fx_LR9Ast__id_t at_ids_0 = 0; - _fx_LN14K_form__kexp_t code_51 = 0; + _fx_LN14K_form__kexp_t code_35 = 0; _fx_LN14K_form__kexp_t body_code_0 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_195 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_179 = {0}; _fx_N14K_form__kexp_t last_e_0 = 0; _fx_LN14K_form__kexp_t body_code_1 = 0; - _fx_LN14K_form__kexp_t v_196 = 0; + _fx_LN14K_form__kexp_t v_180 = 0; _fx_N14K_form__kexp_t body_kexp_0 = 0; - _fx_N14K_form__kexp_t v_197 = 0; + _fx_N14K_form__kexp_t v_181 = 0; _fx_T5LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR16Ast__for_flags_tR10Ast__loc_t* vcase_20 = &e_0->u.ExpFor; _fx_N10Ast__exp_t body_2 = vcase_20->t2; - _fx_N12Ast__scope_t v_198; - FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_198, 0), _fx_catch_66); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_198, sc_0, true, &body_sc_0), _fx_catch_66); + _fx_N12Ast__scope_t v_182; + FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_182, 0), _fx_catch_66); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_182, sc_0, true, &body_sc_0), _fx_catch_66); FX_CALL( _fx_M11K_normalizeFM13transform_forT4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t7LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tLN14K_form__kexp_tLN12Ast__scope_tLN12Ast__scope_tR10Ast__loc_ti( - vcase_20->t0, vcase_20->t1, code_0, sc_0, body_sc_0, &eloc_0, km_idx_0, &v_194, 0), _fx_catch_66); - FX_COPY_PTR(v_194.t0, &idom_list_0); - FX_COPY_PTR(v_194.t1, &at_ids_0); - FX_COPY_PTR(v_194.t2, &code_51); - FX_COPY_PTR(v_194.t3, &body_code_0); + vcase_20->t0, vcase_20->t1, code_0, sc_0, body_sc_0, &eloc_0, km_idx_0, &v_178, 0), _fx_catch_66); + FX_COPY_PTR(v_178.t0, &idom_list_0); + FX_COPY_PTR(v_178.t1, &at_ids_0); + FX_COPY_PTR(v_178.t2, &code_35); + FX_COPY_PTR(v_178.t3, &body_code_0); FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - body_2, body_code_0, false, body_sc_0, &v_195, 0), _fx_catch_66); - FX_COPY_PTR(v_195.t0, &last_e_0); - FX_COPY_PTR(v_195.t1, &body_code_1); + body_2, body_code_0, false, body_sc_0, &v_179, 0), _fx_catch_66); + FX_COPY_PTR(v_179.t0, &last_e_0); + FX_COPY_PTR(v_179.t1, &body_code_1); _fx_R10Ast__loc_t bloc_0; FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(body_2, &bloc_0, 0), _fx_catch_66); - FX_CALL(_fx_cons_LN14K_form__kexp_t(last_e_0, body_code_1, true, &v_196), _fx_catch_66); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_196, &bloc_0, &body_kexp_0, 0), + FX_CALL(_fx_cons_LN14K_form__kexp_t(last_e_0, body_code_1, true, &v_180), _fx_catch_66); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_180, &bloc_0, &body_kexp_0, 0), _fx_catch_66); FX_CALL( _fx_M6K_formFM7KExpForN14K_form__kexp_t5LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tR10Ast__loc_t( - idom_list_0, at_ids_0, body_kexp_0, &vcase_20->t3, &eloc_0, &v_197), _fx_catch_66); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_197, code_51, fx_result); + idom_list_0, at_ids_0, body_kexp_0, &vcase_20->t3, &eloc_0, &v_181), _fx_catch_66); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_181, code_35, fx_result); _fx_catch_66: ; - if (v_197) { - _fx_free_N14K_form__kexp_t(&v_197); + if (v_181) { + _fx_free_N14K_form__kexp_t(&v_181); } if (body_kexp_0) { _fx_free_N14K_form__kexp_t(&body_kexp_0); } - if (v_196) { - _fx_free_LN14K_form__kexp_t(&v_196); + if (v_180) { + _fx_free_LN14K_form__kexp_t(&v_180); } if (body_code_1) { _fx_free_LN14K_form__kexp_t(&body_code_1); @@ -13565,88 +13156,80 @@ FX_EXTERN_C int if (last_e_0) { _fx_free_N14K_form__kexp_t(&last_e_0); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_195); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_179); if (body_code_0) { _fx_free_LN14K_form__kexp_t(&body_code_0); } - if (code_51) { - _fx_free_LN14K_form__kexp_t(&code_51); + if (code_35) { + _fx_free_LN14K_form__kexp_t(&code_35); } FX_FREE_LIST_SIMPLE(&at_ids_0); if (idom_list_0) { _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&idom_list_0); } - _fx_free_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_194); + _fx_free_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_178); FX_FREE_LIST_SIMPLE(&body_sc_0); goto _fx_endmatch_14; } if (tag_0 == 27) { _fx_LN12Ast__scope_t body_sc_1 = 0; - _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t __fold_result___14 = {0}; - _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t pew_ll_0 = 0; - _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t v_199 = {0}; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t pre_idom_ll_0 = 0; + _fx_LN14K_form__kexp_t prev_body_code_0 = 0; + _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t pew_ll_0 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t pre_idom_ll_1 = 0; _fx_LN14K_form__kexp_t body_code_2 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_200 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_183 = {0}; _fx_N14K_form__kexp_t last_e_1 = 0; _fx_LN14K_form__kexp_t body_code_3 = 0; - _fx_LN14K_form__kexp_t v_201 = 0; + _fx_LN14K_form__kexp_t v_184 = 0; _fx_N14K_form__kexp_t body_kexp_1 = 0; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_202 = 0; - _fx_N14K_form__kexp_t v_203 = 0; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_185 = 0; + _fx_N14K_form__kexp_t v_186 = 0; _fx_T4LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR16Ast__for_flags_tT2N10Ast__typ_tR10Ast__loc_t* vcase_21 = &e_0->u.ExpMap; _fx_N10Ast__exp_t body_3 = vcase_21->t1; - _fx_N12Ast__scope_t v_204; - FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_204, 0), _fx_catch_68); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_204, sc_0, true, &body_sc_1), _fx_catch_68); - _fx_make_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t(0, 0, &__fold_result___14); + _fx_N12Ast__scope_t v_187; + FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_187, 0), _fx_catch_68); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_187, sc_0, true, &body_sc_1), _fx_catch_68); FX_COPY_PTR(vcase_21->t0, &pew_ll_0); _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t lst_11 = pew_ll_0; for (; lst_11; lst_11 = lst_11->tl) { _fx_LT2N10Ast__pat_tN10Ast__exp_t pe_l_0 = 0; _fx_N10Ast__pat_t idx_pat_0 = 0; - _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t v_205 = {0}; - _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t pre_idom_ll_1 = 0; - _fx_LN14K_form__kexp_t prev_body_code_0 = 0; - _fx_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t v_206 = {0}; + _fx_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t v_188 = {0}; _fx_LT2R9Ast__id_tN13K_form__dom_t idom_list_1 = 0; _fx_LR9Ast__id_t at_ids_1 = 0; _fx_LN14K_form__kexp_t pre_code_0 = 0; _fx_LN14K_form__kexp_t body_code_4 = 0; _fx_N14K_form__kexp_t pre_exp_0 = 0; - _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_207 = {0}; - _fx_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t v_208 = {0}; + _fx_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_189 = {0}; + _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t v_190 = 0; _fx_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t* __pat___4 = &lst_11->hd; FX_COPY_PTR(__pat___4->t0, &pe_l_0); FX_COPY_PTR(__pat___4->t1, &idx_pat_0); - _fx_copy_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t(&__fold_result___14, - &v_205); - FX_COPY_PTR(v_205.t0, &pre_idom_ll_1); - FX_COPY_PTR(v_205.t1, &prev_body_code_0); FX_CALL( _fx_M11K_normalizeFM13transform_forT4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t7LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tLN14K_form__kexp_tLN12Ast__scope_tLN12Ast__scope_tR10Ast__loc_ti( - pe_l_0, idx_pat_0, prev_body_code_0, sc_0, body_sc_1, &eloc_0, km_idx_0, &v_206, 0), _fx_catch_67); - FX_COPY_PTR(v_206.t0, &idom_list_1); - FX_COPY_PTR(v_206.t1, &at_ids_1); - FX_COPY_PTR(v_206.t2, &pre_code_0); - FX_COPY_PTR(v_206.t3, &body_code_4); + pe_l_0, idx_pat_0, prev_body_code_0, sc_0, body_sc_1, &eloc_0, km_idx_0, &v_188, 0), _fx_catch_67); + FX_COPY_PTR(v_188.t0, &idom_list_1); + FX_COPY_PTR(v_188.t1, &at_ids_1); + FX_COPY_PTR(v_188.t2, &pre_code_0); + FX_COPY_PTR(v_188.t3, &body_code_4); FX_CALL( _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(pre_code_0, &eloc_0, &pre_exp_0, 0), _fx_catch_67); - _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(pre_exp_0, idom_list_1, at_ids_1, &v_207); - FX_CALL( - _fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_207, pre_idom_ll_1, false, - &pre_idom_ll_1), _fx_catch_67); - _fx_make_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t(pre_idom_ll_1, body_code_4, - &v_208); - _fx_free_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t(&__fold_result___14); - _fx_copy_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t(&v_208, - &__fold_result___14); + _fx_free_LN14K_form__kexp_t(&prev_body_code_0); + FX_COPY_PTR(body_code_4, &prev_body_code_0); + _fx_make_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(pre_exp_0, idom_list_1, at_ids_1, &v_189); + FX_CALL(_fx_cons_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_189, pre_idom_ll_0, true, &v_190), + _fx_catch_67); + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&pre_idom_ll_0); + FX_COPY_PTR(v_190, &pre_idom_ll_0); _fx_catch_67: ; - _fx_free_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t(&v_208); - _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_207); + if (v_190) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_190); + } + _fx_free_T3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_189); if (pre_exp_0) { _fx_free_N14K_form__kexp_t(&pre_exp_0); } @@ -13660,14 +13243,7 @@ FX_EXTERN_C int if (idom_list_1) { _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&idom_list_1); } - _fx_free_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_206); - if (prev_body_code_0) { - _fx_free_LN14K_form__kexp_t(&prev_body_code_0); - } - if (pre_idom_ll_1) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&pre_idom_ll_1); - } - _fx_free_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t(&v_205); + _fx_free_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_188); if (idx_pat_0) { _fx_free_N10Ast__pat_t(&idx_pat_0); } @@ -13676,39 +13252,38 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_68); } - _fx_copy_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t(&__fold_result___14, &v_199); - FX_COPY_PTR(v_199.t0, &pre_idom_ll_0); - FX_COPY_PTR(v_199.t1, &body_code_2); + FX_COPY_PTR(pre_idom_ll_0, &pre_idom_ll_1); + FX_COPY_PTR(prev_body_code_0, &body_code_2); FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - body_3, body_code_2, false, body_sc_1, &v_200, 0), _fx_catch_68); - FX_COPY_PTR(v_200.t0, &last_e_1); - FX_COPY_PTR(v_200.t1, &body_code_3); + body_3, body_code_2, false, body_sc_1, &v_183, 0), _fx_catch_68); + FX_COPY_PTR(v_183.t0, &last_e_1); + FX_COPY_PTR(v_183.t1, &body_code_3); _fx_R10Ast__loc_t bloc_1; FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(body_3, &bloc_1, 0), _fx_catch_68); - FX_CALL(_fx_cons_LN14K_form__kexp_t(last_e_1, body_code_3, true, &v_201), _fx_catch_68); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_201, &bloc_1, &body_kexp_1, 0), + FX_CALL(_fx_cons_LN14K_form__kexp_t(last_e_1, body_code_3, true, &v_184), _fx_catch_68); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_184, &bloc_1, &body_kexp_1, 0), _fx_catch_68); FX_CALL( _fx_M11K_normalizeFM3revLT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t1LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t( - pre_idom_ll_0, &v_202, 0), _fx_catch_68); + pre_idom_ll_1, &v_185, 0), _fx_catch_68); FX_CALL( _fx_M6K_formFM7KExpMapN14K_form__kexp_t4LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tT2N14K_form__ktyp_tR10Ast__loc_t( - v_202, body_kexp_1, &vcase_21->t2, &kctx_0, &v_203), _fx_catch_68); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_203, code_0, fx_result); + v_185, body_kexp_1, &vcase_21->t2, &kctx_0, &v_186), _fx_catch_68); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_186, code_0, fx_result); _fx_catch_68: ; - if (v_203) { - _fx_free_N14K_form__kexp_t(&v_203); + if (v_186) { + _fx_free_N14K_form__kexp_t(&v_186); } - if (v_202) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_202); + if (v_185) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&v_185); } if (body_kexp_1) { _fx_free_N14K_form__kexp_t(&body_kexp_1); } - if (v_201) { - _fx_free_LN14K_form__kexp_t(&v_201); + if (v_184) { + _fx_free_LN14K_form__kexp_t(&v_184); } if (body_code_3) { _fx_free_LN14K_form__kexp_t(&body_code_3); @@ -13716,48 +13291,52 @@ FX_EXTERN_C int if (last_e_1) { _fx_free_N14K_form__kexp_t(&last_e_1); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_200); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_183); if (body_code_2) { _fx_free_LN14K_form__kexp_t(&body_code_2); } - if (pre_idom_ll_0) { - _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&pre_idom_ll_0); + if (pre_idom_ll_1) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&pre_idom_ll_1); } - _fx_free_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t(&v_199); if (pew_ll_0) { _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&pew_ll_0); } - _fx_free_T2LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_t(&__fold_result___14); + if (prev_body_code_0) { + _fx_free_LN14K_form__kexp_t(&prev_body_code_0); + } + if (pre_idom_ll_0) { + _fx_free_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t(&pre_idom_ll_0); + } FX_FREE_LIST_SIMPLE(&body_sc_1); goto _fx_endmatch_14; } if (tag_0 == 19) { - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_209 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_191 = {0}; _fx_N14K_form__atom_t arr_1 = {0}; - _fx_LN14K_form__kexp_t code_52 = 0; + _fx_LN14K_form__kexp_t code_36 = 0; _fx_N10Ast__typ_t probably_tuple_type_0 = 0; - _fx_T2LN13K_form__dom_tLN14K_form__kexp_t v_210 = {0}; + _fx_T2LN13K_form__dom_tLN14K_form__kexp_t v_192 = {0}; _fx_LN13K_form__dom_t dlist_0 = 0; - _fx_LN14K_form__kexp_t code_53 = 0; - _fx_LN13K_form__dom_t v_211 = 0; - _fx_N14K_form__kexp_t v_212 = 0; + _fx_LN14K_form__kexp_t code_37 = 0; + _fx_LN13K_form__dom_t v_193 = 0; + _fx_N14K_form__kexp_t v_194 = 0; _fx_T5N10Ast__exp_tN13Ast__border_tN18Ast__interpolate_tLN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_22 = &e_0->u.ExpAt; _fx_LN10Ast__exp_t idxlist_0 = vcase_22->t3; FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - vcase_22->t0, code_0, true, sc_0, &v_209, 0), _fx_catch_76); - _fx_copy_N14K_form__atom_t(&v_209.t0, &arr_1); - FX_COPY_PTR(v_209.t1, &code_52); + vcase_22->t0, code_0, true, sc_0, &v_191, 0), _fx_catch_76); + _fx_copy_N14K_form__atom_t(&v_191.t0, &arr_1); + FX_COPY_PTR(v_191.t1, &code_36); if (idxlist_0 != 0) { if (idxlist_0->tl == 0) { - _fx_N10Ast__typ_t v_213 = 0; - FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(idxlist_0->hd, &v_213, 0), _fx_catch_69); - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_213, &probably_tuple_type_0, 0), _fx_catch_69); + _fx_N10Ast__typ_t v_195 = 0; + FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(idxlist_0->hd, &v_195, 0), _fx_catch_69); + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_195, &probably_tuple_type_0, 0), _fx_catch_69); _fx_catch_69: ; - if (v_213) { - _fx_free_N10Ast__typ_t(&v_213); + if (v_195) { + _fx_free_N10Ast__typ_t(&v_195); } goto _fx_endmatch_8; } @@ -13769,296 +13348,288 @@ FX_EXTERN_C int if (FX_REC_VARIANT_TAG(probably_tuple_type_0) == 18) { if (idxlist_0 != 0) { _fx_N10Ast__exp_t tupidx_0 = idxlist_0->hd; - bool res_9; - FX_CALL(_fx_M11K_normalizeFM8is_rangeB1N10Ast__exp_t(tupidx_0, &res_9, 0), _fx_catch_76); - if (!res_9) { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_214 = {0}; - fx_exn_t v_215 = {0}; - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_216 = {0}; - _fx_LN14K_form__kexp_t code_54 = 0; - _fx_T2LN13K_form__dom_tLN14K_form__kexp_t __fold_result___15 = {0}; + bool res_13; + FX_CALL(_fx_M11K_normalizeFM8is_rangeB1N10Ast__exp_t(tupidx_0, &res_13, 0), _fx_catch_76); + if (!res_13) { + _fx_T2N10Ast__typ_tR10Ast__loc_t v_196 = {0}; + fx_exn_t v_197 = {0}; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_198 = {0}; + _fx_LN14K_form__kexp_t code_38 = 0; + _fx_LN13K_form__dom_t dlist_1 = 0; + _fx_LN14K_form__kexp_t code_39 = 0; _fx_LN10Ast__typ_t idxtype_0 = 0; - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(tupidx_0, &v_214, 0), _fx_catch_71); - _fx_R10Ast__loc_t iloc_0 = v_214.t1; - int_ v_217; - FX_CALL(_fx_M11K_normalizeFM8length1_i1LN10Ast__exp_t(idxlist_0->tl, &v_217, 0), _fx_catch_71); - if (v_217 != 0) { + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(tupidx_0, &v_196, 0), _fx_catch_71); + _fx_R10Ast__loc_t iloc_0 = v_196.t1; + int_ v_199; + FX_CALL(_fx_M11K_normalizeFM8length1_i1LN10Ast__exp_t(idxlist_0->tl, &v_199, 0), _fx_catch_71); + if (v_199 != 0) { fx_str_t slit_17 = FX_MAKE_STR("internal error: tuple index is not only"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_17, &v_215, 0), _fx_catch_71); - FX_THROW(&v_215, false, _fx_catch_71); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &slit_17, &v_197, 0), _fx_catch_71); + FX_THROW(&v_197, false, _fx_catch_71); } fx_str_t slit_18 = FX_MAKE_STR("internal error: a literal instead of tuple"); FX_CALL( _fx_M11K_normalizeFM6exp2idT2R9Ast__id_tLN14K_form__kexp_t5N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_tS( - tupidx_0, code_52, false, sc_0, &slit_18, &v_216, 0), _fx_catch_71); - _fx_R9Ast__id_t tup_id_0 = v_216.t0; - FX_COPY_PTR(v_216.t1, &code_54); - _fx_make_T2LN13K_form__dom_tLN14K_form__kexp_t(0, code_54, &__fold_result___15); + tupidx_0, code_36, false, sc_0, &slit_18, &v_198, 0), _fx_catch_71); + _fx_R9Ast__id_t tup_id_0 = v_198.t0; + FX_COPY_PTR(v_198.t1, &code_38); + FX_COPY_PTR(code_38, &code_39); int_ elnum_0 = 0; FX_COPY_PTR(probably_tuple_type_0->u.TypTuple, &idxtype_0); _fx_LN10Ast__typ_t lst_12 = idxtype_0; for (; lst_12; lst_12 = lst_12->tl, elnum_0 += 1) { - _fx_T2LN13K_form__dom_tLN14K_form__kexp_t v_218 = {0}; - _fx_LN13K_form__dom_t dlist_1 = 0; - _fx_LN14K_form__kexp_t code_55 = 0; - _fx_N14K_form__ktyp_t v_219 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_220 = {0}; - _fx_N14K_form__kexp_t v_221 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_222 = {0}; + _fx_N14K_form__ktyp_t v_200 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_201 = {0}; + _fx_N14K_form__kexp_t v_202 = 0; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_203 = {0}; _fx_N14K_form__atom_t d_0 = {0}; - _fx_LN14K_form__kexp_t code_56 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_223 = {0}; + _fx_LN14K_form__kexp_t code1_10 = 0; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_204 = {0}; _fx_N14K_form__atom_t d_1 = {0}; - _fx_LN14K_form__kexp_t code_57 = 0; - _fx_N13K_form__dom_t v_224 = {0}; - _fx_T2LN13K_form__dom_tLN14K_form__kexp_t v_225 = {0}; + _fx_LN14K_form__kexp_t code2_5 = 0; + _fx_N13K_form__dom_t v_205 = {0}; + _fx_LN13K_form__dom_t v_206 = 0; _fx_N10Ast__typ_t eltyp_0 = lst_12->hd; - _fx_copy_T2LN13K_form__dom_tLN14K_form__kexp_t(&__fold_result___15, &v_218); - FX_COPY_PTR(v_218.t0, &dlist_1); - FX_COPY_PTR(v_218.t1, &code_55); - int_ v_226; - FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(sc_0, &v_226, 0), _fx_catch_70); + int_ v_207; + FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(sc_0, &v_207, 0), _fx_catch_70); FX_CALL( - _fx_M11K_normalizeFM8typ2ktypN14K_form__ktyp_t2N10Ast__typ_tR10Ast__loc_t(eltyp_0, &iloc_0, &v_219, 0), + _fx_M11K_normalizeFM8typ2ktypN14K_form__ktyp_t2N10Ast__typ_tR10Ast__loc_t(eltyp_0, &iloc_0, &v_200, 0), _fx_catch_70); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(v_219, &iloc_0, &v_220); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(v_200, &iloc_0, &v_201); FX_CALL( _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(&tup_id_0, elnum_0, - &v_220, &v_221), _fx_catch_70); + &v_201, &v_202), _fx_catch_70); fx_str_t slit_19 = FX_MAKE_STR("idx"); FX_CALL( - _fx_M6K_formFM9kexp2atomT2N14K_form__atom_tLN14K_form__kexp_t5iSN14K_form__kexp_tBLN14K_form__kexp_t(v_226, - &slit_19, v_221, false, code_55, &v_222, 0), _fx_catch_70); - _fx_copy_N14K_form__atom_t(&v_222.t0, &d_0); - FX_COPY_PTR(v_222.t1, &code_56); + _fx_M6K_formFM9kexp2atomT2N14K_form__atom_tLN14K_form__kexp_t5iSN14K_form__kexp_tBLN14K_form__kexp_t(v_207, + &slit_19, v_202, false, code_39, &v_203, 0), _fx_catch_70); + _fx_copy_N14K_form__atom_t(&v_203.t0, &d_0); + FX_COPY_PTR(v_203.t1, &code1_10); FX_CALL( _fx_M11K_normalizeFM14cast_if_neededT2N14K_form__atom_tLN14K_form__kexp_t4N14K_form__atom_tLN14K_form__kexp_tR10Ast__loc_tLN12Ast__scope_t( - &d_0, code_56, &iloc_0, sc_0, &v_223, 0), _fx_catch_70); - _fx_copy_N14K_form__atom_t(&v_223.t0, &d_1); - FX_COPY_PTR(v_223.t1, &code_57); - _fx_M6K_formFM10DomainElemN13K_form__dom_t1N14K_form__atom_t(&d_1, &v_224); - FX_CALL(_fx_cons_LN13K_form__dom_t(&v_224, dlist_1, false, &dlist_1), _fx_catch_70); - _fx_make_T2LN13K_form__dom_tLN14K_form__kexp_t(dlist_1, code_57, &v_225); - _fx_free_T2LN13K_form__dom_tLN14K_form__kexp_t(&__fold_result___15); - _fx_copy_T2LN13K_form__dom_tLN14K_form__kexp_t(&v_225, &__fold_result___15); + &d_0, code1_10, &iloc_0, sc_0, &v_204, 0), _fx_catch_70); + _fx_copy_N14K_form__atom_t(&v_204.t0, &d_1); + FX_COPY_PTR(v_204.t1, &code2_5); + _fx_free_LN14K_form__kexp_t(&code_39); + FX_COPY_PTR(code2_5, &code_39); + _fx_M6K_formFM10DomainElemN13K_form__dom_t1N14K_form__atom_t(&d_1, &v_205); + FX_CALL(_fx_cons_LN13K_form__dom_t(&v_205, dlist_1, true, &v_206), _fx_catch_70); + _fx_free_LN13K_form__dom_t(&dlist_1); + FX_COPY_PTR(v_206, &dlist_1); _fx_catch_70: ; - _fx_free_T2LN13K_form__dom_tLN14K_form__kexp_t(&v_225); - _fx_free_N13K_form__dom_t(&v_224); - if (code_57) { - _fx_free_LN14K_form__kexp_t(&code_57); + if (v_206) { + _fx_free_LN13K_form__dom_t(&v_206); + } + _fx_free_N13K_form__dom_t(&v_205); + if (code2_5) { + _fx_free_LN14K_form__kexp_t(&code2_5); } _fx_free_N14K_form__atom_t(&d_1); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_223); - if (code_56) { - _fx_free_LN14K_form__kexp_t(&code_56); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_204); + if (code1_10) { + _fx_free_LN14K_form__kexp_t(&code1_10); } _fx_free_N14K_form__atom_t(&d_0); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_222); - if (v_221) { - _fx_free_N14K_form__kexp_t(&v_221); - } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_220); - if (v_219) { - _fx_free_N14K_form__ktyp_t(&v_219); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_203); + if (v_202) { + _fx_free_N14K_form__kexp_t(&v_202); } - if (code_55) { - _fx_free_LN14K_form__kexp_t(&code_55); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_201); + if (v_200) { + _fx_free_N14K_form__ktyp_t(&v_200); } - if (dlist_1) { - _fx_free_LN13K_form__dom_t(&dlist_1); - } - _fx_free_T2LN13K_form__dom_tLN14K_form__kexp_t(&v_218); FX_CHECK_EXN(_fx_catch_71); } - _fx_copy_T2LN13K_form__dom_tLN14K_form__kexp_t(&__fold_result___15, &v_210); + _fx_make_T2LN13K_form__dom_tLN14K_form__kexp_t(dlist_1, code_39, &v_192); _fx_catch_71: ; if (idxtype_0) { _fx_free_LN10Ast__typ_t(&idxtype_0); } - _fx_free_T2LN13K_form__dom_tLN14K_form__kexp_t(&__fold_result___15); - if (code_54) { - _fx_free_LN14K_form__kexp_t(&code_54); + if (code_39) { + _fx_free_LN14K_form__kexp_t(&code_39); + } + if (dlist_1) { + _fx_free_LN13K_form__dom_t(&dlist_1); + } + if (code_38) { + _fx_free_LN14K_form__kexp_t(&code_38); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_216); - fx_free_exn(&v_215); - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_214); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_198); + fx_free_exn(&v_197); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_196); goto _fx_endmatch_9; } } } - _fx_T2LN13K_form__dom_tLN14K_form__kexp_t __fold_result___16 = {0}; + _fx_LN13K_form__dom_t dlist_2 = 0; + _fx_LN14K_form__kexp_t code_40 = 0; _fx_LN10Ast__exp_t idxlist_1 = 0; - _fx_make_T2LN13K_form__dom_tLN14K_form__kexp_t(0, code_52, &__fold_result___16); + FX_COPY_PTR(code_36, &code_40); int_ idx_1 = 0; FX_COPY_PTR(idxlist_0, &idxlist_1); _fx_LN10Ast__exp_t lst_13 = idxlist_1; for (; lst_13; lst_13 = lst_13->tl, idx_1 += 1) { - _fx_T2LN13K_form__dom_tLN14K_form__kexp_t v_227 = {0}; - _fx_LN13K_form__dom_t dlist_2 = 0; - _fx_LN14K_form__kexp_t code_58 = 0; - _fx_T2N14K_form__atom_ti v_228 = {0}; - _fx_LT2N14K_form__atom_ti v_229 = 0; - _fx_T2N13K_form__dom_tLN14K_form__kexp_t v_230 = {0}; + _fx_T2N14K_form__atom_ti v_208 = {0}; + _fx_LT2N14K_form__atom_ti v_209 = 0; + _fx_T2N13K_form__dom_tLN14K_form__kexp_t v_210 = {0}; fx_exn_t exn_2 = {0}; - _fx_LT2N14K_form__atom_ti v_231 = 0; + _fx_LT2N14K_form__atom_ti v_211 = 0; _fx_N13K_form__dom_t d_2 = {0}; - _fx_LN14K_form__kexp_t code_59 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_232 = {0}; - _fx_T2N13K_form__dom_tLN14K_form__kexp_t v_233 = {0}; + _fx_LN14K_form__kexp_t code1_11 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_212 = {0}; + _fx_T2N13K_form__dom_tLN14K_form__kexp_t v_213 = {0}; _fx_N13K_form__dom_t d_3 = {0}; - _fx_LN14K_form__kexp_t code_60 = 0; - _fx_T2LN13K_form__dom_tLN14K_form__kexp_t v_234 = {0}; + _fx_LN14K_form__kexp_t code2_6 = 0; + _fx_LN13K_form__dom_t v_214 = 0; _fx_N10Ast__exp_t i_0 = lst_13->hd; - _fx_copy_T2LN13K_form__dom_tLN14K_form__kexp_t(&__fold_result___16, &v_227); - FX_COPY_PTR(v_227.t0, &dlist_2); - FX_COPY_PTR(v_227.t1, &code_58); - _fx_make_T2N14K_form__atom_ti(&arr_1, idx_1, &v_228); - FX_CALL(_fx_cons_LT2N14K_form__atom_ti(&v_228, _fx_g29K_normalize__idx_access_stack, true, &v_229), _fx_catch_74); + _fx_make_T2N14K_form__atom_ti(&arr_1, idx_1, &v_208); + FX_CALL(_fx_cons_LT2N14K_form__atom_ti(&v_208, _fx_g29K_normalize__idx_access_stack, true, &v_209), _fx_catch_74); _fx_free_LT2N14K_form__atom_ti(&_fx_g29K_normalize__idx_access_stack); - FX_COPY_PTR(v_229, &_fx_g29K_normalize__idx_access_stack); - _fx_T2N13K_form__dom_tLN14K_form__kexp_t v_235 = {0}; - _fx_LT2N14K_form__atom_ti v_236 = 0; + FX_COPY_PTR(v_209, &_fx_g29K_normalize__idx_access_stack); + _fx_T2N13K_form__dom_tLN14K_form__kexp_t v_215 = {0}; + _fx_LT2N14K_form__atom_ti v_216 = 0; FX_CALL( _fx_M11K_normalizeFM7exp2domT2N13K_form__dom_tLN14K_form__kexp_t3N10Ast__exp_tLN14K_form__kexp_tLN12Ast__scope_t( - i_0, code_58, sc_0, &v_235, 0), _fx_catch_72); + i_0, code_40, sc_0, &v_215, 0), _fx_catch_72); FX_CALL( - _fx_M11K_normalizeFM2tlLT2N14K_form__atom_ti1LT2N14K_form__atom_ti(_fx_g29K_normalize__idx_access_stack, &v_236, 0), + _fx_M11K_normalizeFM2tlLT2N14K_form__atom_ti1LT2N14K_form__atom_ti(_fx_g29K_normalize__idx_access_stack, &v_216, 0), _fx_catch_72); _fx_free_LT2N14K_form__atom_ti(&_fx_g29K_normalize__idx_access_stack); - FX_COPY_PTR(v_236, &_fx_g29K_normalize__idx_access_stack); - _fx_copy_T2N13K_form__dom_tLN14K_form__kexp_t(&v_235, &v_230); + FX_COPY_PTR(v_216, &_fx_g29K_normalize__idx_access_stack); + _fx_copy_T2N13K_form__dom_tLN14K_form__kexp_t(&v_215, &v_210); _fx_catch_72: ; - _fx_free_T2N13K_form__dom_tLN14K_form__kexp_t(&v_235); - if (v_236) { - _fx_free_LT2N14K_form__atom_ti(&v_236); + _fx_free_T2N13K_form__dom_tLN14K_form__kexp_t(&v_215); + if (v_216) { + _fx_free_LT2N14K_form__atom_ti(&v_216); } if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_2); fx_status = 0; - _fx_free_T2N13K_form__dom_tLN14K_form__kexp_t(&v_230); + _fx_free_T2N13K_form__dom_tLN14K_form__kexp_t(&v_210); FX_CALL( - _fx_M11K_normalizeFM2tlLT2N14K_form__atom_ti1LT2N14K_form__atom_ti(_fx_g29K_normalize__idx_access_stack, &v_231, + _fx_M11K_normalizeFM2tlLT2N14K_form__atom_ti1LT2N14K_form__atom_ti(_fx_g29K_normalize__idx_access_stack, &v_211, 0), _fx_catch_74); _fx_free_LT2N14K_form__atom_ti(&_fx_g29K_normalize__idx_access_stack); - FX_COPY_PTR(v_231, &_fx_g29K_normalize__idx_access_stack); + FX_COPY_PTR(v_211, &_fx_g29K_normalize__idx_access_stack); FX_THROW(&exn_2, false, _fx_catch_74); } - _fx_copy_N13K_form__dom_t(&v_230.t0, &d_2); - FX_COPY_PTR(v_230.t1, &code_59); - FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(i_0, &v_232, 0), _fx_catch_74); - _fx_R10Ast__loc_t iloc_1 = v_232.t1; + _fx_copy_N13K_form__dom_t(&v_210.t0, &d_2); + FX_COPY_PTR(v_210.t1, &code1_11); + FX_CALL(_fx_M3AstFM11get_exp_ctxT2N10Ast__typ_tRM5loc_t1N10Ast__exp_t(i_0, &v_212, 0), _fx_catch_74); + _fx_R10Ast__loc_t iloc_1 = v_212.t1; if (d_2.tag == 1) { - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_237 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_217 = {0}; _fx_N14K_form__atom_t scalar_idx_0 = {0}; - _fx_LN14K_form__kexp_t code_61 = 0; - _fx_N13K_form__dom_t v_238 = {0}; + _fx_LN14K_form__kexp_t code_41 = 0; + _fx_N13K_form__dom_t v_218 = {0}; FX_CALL( _fx_M11K_normalizeFM14cast_if_neededT2N14K_form__atom_tLN14K_form__kexp_t4N14K_form__atom_tLN14K_form__kexp_tR10Ast__loc_tLN12Ast__scope_t( - &d_2.u.DomainElem, code_59, &iloc_1, sc_0, &v_237, 0), _fx_catch_73); - _fx_copy_N14K_form__atom_t(&v_237.t0, &scalar_idx_0); - FX_COPY_PTR(v_237.t1, &code_61); - _fx_M6K_formFM10DomainElemN13K_form__dom_t1N14K_form__atom_t(&scalar_idx_0, &v_238); - _fx_make_T2N13K_form__dom_tLN14K_form__kexp_t(&v_238, code_61, &v_233); + &d_2.u.DomainElem, code1_11, &iloc_1, sc_0, &v_217, 0), _fx_catch_73); + _fx_copy_N14K_form__atom_t(&v_217.t0, &scalar_idx_0); + FX_COPY_PTR(v_217.t1, &code_41); + _fx_M6K_formFM10DomainElemN13K_form__dom_t1N14K_form__atom_t(&scalar_idx_0, &v_218); + _fx_make_T2N13K_form__dom_tLN14K_form__kexp_t(&v_218, code_41, &v_213); _fx_catch_73: ; - _fx_free_N13K_form__dom_t(&v_238); - if (code_61) { - _fx_free_LN14K_form__kexp_t(&code_61); + _fx_free_N13K_form__dom_t(&v_218); + if (code_41) { + _fx_free_LN14K_form__kexp_t(&code_41); } _fx_free_N14K_form__atom_t(&scalar_idx_0); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_237); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_217); } else { - _fx_make_T2N13K_form__dom_tLN14K_form__kexp_t(&d_2, code_59, &v_233); + _fx_make_T2N13K_form__dom_tLN14K_form__kexp_t(&d_2, code1_11, &v_213); } FX_CHECK_EXN(_fx_catch_74); - _fx_copy_N13K_form__dom_t(&v_233.t0, &d_3); - FX_COPY_PTR(v_233.t1, &code_60); - FX_CALL(_fx_cons_LN13K_form__dom_t(&d_3, dlist_2, false, &dlist_2), _fx_catch_74); - _fx_make_T2LN13K_form__dom_tLN14K_form__kexp_t(dlist_2, code_60, &v_234); - _fx_free_T2LN13K_form__dom_tLN14K_form__kexp_t(&__fold_result___16); - _fx_copy_T2LN13K_form__dom_tLN14K_form__kexp_t(&v_234, &__fold_result___16); + _fx_copy_N13K_form__dom_t(&v_213.t0, &d_3); + FX_COPY_PTR(v_213.t1, &code2_6); + _fx_free_LN14K_form__kexp_t(&code_40); + FX_COPY_PTR(code2_6, &code_40); + FX_CALL(_fx_cons_LN13K_form__dom_t(&d_3, dlist_2, true, &v_214), _fx_catch_74); + _fx_free_LN13K_form__dom_t(&dlist_2); + FX_COPY_PTR(v_214, &dlist_2); _fx_catch_74: ; - _fx_free_T2LN13K_form__dom_tLN14K_form__kexp_t(&v_234); - if (code_60) { - _fx_free_LN14K_form__kexp_t(&code_60); + if (v_214) { + _fx_free_LN13K_form__dom_t(&v_214); + } + if (code2_6) { + _fx_free_LN14K_form__kexp_t(&code2_6); } _fx_free_N13K_form__dom_t(&d_3); - _fx_free_T2N13K_form__dom_tLN14K_form__kexp_t(&v_233); - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_232); - if (code_59) { - _fx_free_LN14K_form__kexp_t(&code_59); + _fx_free_T2N13K_form__dom_tLN14K_form__kexp_t(&v_213); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_212); + if (code1_11) { + _fx_free_LN14K_form__kexp_t(&code1_11); } _fx_free_N13K_form__dom_t(&d_2); - if (v_231) { - _fx_free_LT2N14K_form__atom_ti(&v_231); + if (v_211) { + _fx_free_LT2N14K_form__atom_ti(&v_211); } fx_free_exn(&exn_2); - _fx_free_T2N13K_form__dom_tLN14K_form__kexp_t(&v_230); - if (v_229) { - _fx_free_LT2N14K_form__atom_ti(&v_229); - } - _fx_free_T2N14K_form__atom_ti(&v_228); - if (code_58) { - _fx_free_LN14K_form__kexp_t(&code_58); + _fx_free_T2N13K_form__dom_tLN14K_form__kexp_t(&v_210); + if (v_209) { + _fx_free_LT2N14K_form__atom_ti(&v_209); } - if (dlist_2) { - _fx_free_LN13K_form__dom_t(&dlist_2); - } - _fx_free_T2LN13K_form__dom_tLN14K_form__kexp_t(&v_227); + _fx_free_T2N14K_form__atom_ti(&v_208); FX_CHECK_EXN(_fx_catch_75); } - _fx_copy_T2LN13K_form__dom_tLN14K_form__kexp_t(&__fold_result___16, &v_210); + _fx_make_T2LN13K_form__dom_tLN14K_form__kexp_t(dlist_2, code_40, &v_192); _fx_catch_75: ; if (idxlist_1) { _fx_free_LN10Ast__exp_t(&idxlist_1); } - _fx_free_T2LN13K_form__dom_tLN14K_form__kexp_t(&__fold_result___16); + if (code_40) { + _fx_free_LN14K_form__kexp_t(&code_40); + } + if (dlist_2) { + _fx_free_LN13K_form__dom_t(&dlist_2); + } _fx_endmatch_9: ; FX_CHECK_EXN(_fx_catch_76); - FX_COPY_PTR(v_210.t0, &dlist_0); - FX_COPY_PTR(v_210.t1, &code_53); - FX_CALL(_fx_M11K_normalizeFM3revLN13K_form__dom_t1LN13K_form__dom_t(dlist_0, &v_211, 0), _fx_catch_76); + FX_COPY_PTR(v_192.t0, &dlist_0); + FX_COPY_PTR(v_192.t1, &code_37); + FX_CALL(_fx_M11K_normalizeFM3revLN13K_form__dom_t1LN13K_form__dom_t(dlist_0, &v_193, 0), _fx_catch_76); FX_CALL( _fx_M6K_formFM6KExpAtN14K_form__kexp_t5N14K_form__atom_tN13Ast__border_tN18Ast__interpolate_tLN13K_form__dom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &arr_1, &vcase_22->t1, &vcase_22->t2, v_211, &kctx_0, &v_212), _fx_catch_76); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_212, code_53, fx_result); + &arr_1, &vcase_22->t1, &vcase_22->t2, v_193, &kctx_0, &v_194), _fx_catch_76); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_194, code_37, fx_result); _fx_catch_76: ; - if (v_212) { - _fx_free_N14K_form__kexp_t(&v_212); + if (v_194) { + _fx_free_N14K_form__kexp_t(&v_194); } - if (v_211) { - _fx_free_LN13K_form__dom_t(&v_211); + if (v_193) { + _fx_free_LN13K_form__dom_t(&v_193); } - if (code_53) { - _fx_free_LN14K_form__kexp_t(&code_53); + if (code_37) { + _fx_free_LN14K_form__kexp_t(&code_37); } if (dlist_0) { _fx_free_LN13K_form__dom_t(&dlist_0); } - _fx_free_T2LN13K_form__dom_tLN14K_form__kexp_t(&v_210); + _fx_free_T2LN13K_form__dom_tLN14K_form__kexp_t(&v_192); if (probably_tuple_type_0) { _fx_free_N10Ast__typ_t(&probably_tuple_type_0); } - if (code_52) { - _fx_free_LN14K_form__kexp_t(&code_52); + if (code_36) { + _fx_free_LN14K_form__kexp_t(&code_36); } _fx_free_N14K_form__atom_t(&arr_1); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_209); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_191); goto _fx_endmatch_14; } if (tag_0 == 21) { - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_239 = {0}; - _fx_LN14K_form__kexp_t code_62 = 0; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_219 = {0}; + _fx_LN14K_form__kexp_t code_42 = 0; _fx_N14K_form__ktyp_t ktyp_1 = 0; - _fx_N15K_form__kinfo_t v_240 = {0}; + _fx_N15K_form__kinfo_t v_220 = {0}; _fx_T3N10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_23 = &e_0->u.ExpMem; _fx_N10Ast__exp_t elem_0 = vcase_23->t1; _fx_N10Ast__exp_t e1_7 = vcase_23->t0; @@ -14067,54 +13638,54 @@ FX_EXTERN_C int fx_str_t slit_20 = FX_MAKE_STR("the literal does not have members to access"); FX_CALL( _fx_M11K_normalizeFM6exp2idT2R9Ast__id_tLN14K_form__kexp_t5N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_tS(e1_7, - code_0, true, sc_0, &slit_20, &v_239, 0), _fx_catch_85); - _fx_R9Ast__id_t a_id_2 = v_239.t0; - FX_COPY_PTR(v_239.t1, &code_62); + code_0, true, sc_0, &slit_20, &v_219, 0), _fx_catch_85); + _fx_R9Ast__id_t a_id_2 = v_219.t0; + FX_COPY_PTR(v_219.t1, &code_42); FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(&a_id_2, &e1loc_0, &ktyp_1, 0), _fx_catch_85); if (FX_REC_VARIANT_TAG(elem_0) == 6) { _fx_T2N10Ast__lit_tT2N10Ast__typ_tR10Ast__loc_t* vcase_24 = &elem_0->u.ExpLit; - _fx_N10Ast__lit_t* v_241 = &vcase_24->t0; - if (v_241->tag == 1) { + _fx_N10Ast__lit_t* v_221 = &vcase_24->t0; + if (v_221->tag == 1) { if (FX_REC_VARIANT_TAG(ktyp_1) == 14) { - fx_str_t v_242 = {0}; - fx_str_t v_243 = {0}; - fx_exn_t v_244 = {0}; - _fx_N14K_form__kexp_t v_245 = 0; + fx_str_t v_222 = {0}; + fx_str_t v_223 = {0}; + fx_exn_t v_224 = {0}; + _fx_N14K_form__kexp_t v_225 = 0; int_ idx_2; - FX_CALL(_fx_M11K_normalizeFM3inti1l(v_241->u.LitInt, &idx_2, 0), _fx_catch_77); + FX_CALL(_fx_M11K_normalizeFM3inti1l(v_221->u.LitInt, &idx_2, 0), _fx_catch_77); int_ n_1; FX_CALL(_fx_M11K_normalizeFM8length1_i1LN14K_form__ktyp_t(ktyp_1->u.KTypTuple, &n_1, 0), _fx_catch_77); if (!(bool)((0 <= idx_2) & (idx_2 < n_1))) { - FX_CALL(_fx_F6stringS1i(n_1, &v_242, 0), _fx_catch_77); + FX_CALL(_fx_F6stringS1i(n_1, &v_222, 0), _fx_catch_77); fx_str_t slit_21 = FX_MAKE_STR("the tuple index is outside of the range [0, "); fx_str_t slit_22 = FX_MAKE_STR(")"); { - const fx_str_t strs_1[] = { slit_21, v_242, slit_22 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_243), _fx_catch_77); + const fx_str_t strs_1[] = { slit_21, v_222, slit_22 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_223), _fx_catch_77); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&vcase_24->t1.t1, &v_243, &v_244, 0), _fx_catch_77); - FX_THROW(&v_244, false, _fx_catch_77); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&vcase_24->t1.t1, &v_223, &v_224, 0), _fx_catch_77); + FX_THROW(&v_224, false, _fx_catch_77); } FX_CALL( _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(&a_id_2, idx_2, &kctx_0, - &v_245), _fx_catch_77); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_245, code_62, fx_result); + &v_225), _fx_catch_77); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_225, code_42, fx_result); _fx_catch_77: ; - if (v_245) { - _fx_free_N14K_form__kexp_t(&v_245); + if (v_225) { + _fx_free_N14K_form__kexp_t(&v_225); } - fx_free_exn(&v_244); - FX_FREE_STR(&v_243); - FX_FREE_STR(&v_242); + fx_free_exn(&v_224); + FX_FREE_STR(&v_223); + FX_FREE_STR(&v_222); goto _fx_endmatch_10; } } } if (FX_REC_VARIANT_TAG(elem_0) == 7) { if (FX_REC_VARIANT_TAG(ktyp_1) == 15) { - _fx_N14K_form__kexp_t v_246 = 0; + _fx_N14K_form__kexp_t v_226 = 0; _fx_T2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t* vcase_25 = &ktyp_1->u.KTypRecord; int_ i_1; FX_CALL( @@ -14122,12 +13693,12 @@ FX_EXTERN_C int &vcase_25->t0, vcase_25->t1, &elem_0->u.ExpIdent.t0, &eloc_0, &i_1, 0), _fx_catch_78); FX_CALL( _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(&a_id_2, i_1, &kctx_0, - &v_246), _fx_catch_78); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_246, code_62, fx_result); + &v_226), _fx_catch_78); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_226, code_42, fx_result); _fx_catch_78: ; - if (v_246) { - _fx_free_N14K_form__kexp_t(&v_246); + if (v_226) { + _fx_free_N14K_form__kexp_t(&v_226); } goto _fx_endmatch_10; } @@ -14136,36 +13707,37 @@ FX_EXTERN_C int if (FX_REC_VARIANT_TAG(ktyp_1) == 16) { _fx_R9Ast__id_t* tn_0 = &ktyp_1->u.KTypName; _fx_R9Ast__id_t* n_2 = &elem_0->u.ExpIdent.t0; - FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(tn_0, &eloc_0, &v_240, 0), _fx_catch_85); - bool res_10; - if (v_240.tag == 7) { - res_10 = true; + FX_CALL(_fx_M6K_formFM6kinfo_N15K_form__kinfo_t2R9Ast__id_tR10Ast__loc_t(tn_0, &eloc_0, &v_220, 0), _fx_catch_85); + bool res_14; + if (v_220.tag == 7) { + res_14 = true; } else { - res_10 = false; + res_14 = false; } FX_CHECK_EXN(_fx_catch_85); - if (res_10) { + if (res_14) { _fx_rR19Ast__definterface_t iface_0 = 0; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_247 = 0; - fx_str_t v_248 = {0}; - fx_str_t v_249 = {0}; - fx_str_t v_250 = {0}; - fx_str_t v_251 = {0}; - fx_str_t v_252 = {0}; - fx_exn_t v_253 = {0}; - _fx_N14K_form__kexp_t v_254 = 0; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_227 = 0; + fx_str_t v_228 = {0}; + fx_str_t v_229 = {0}; + fx_str_t v_230 = {0}; + fx_str_t v_231 = {0}; + fx_str_t v_232 = {0}; + fx_exn_t v_233 = {0}; + _fx_N14K_form__kexp_t v_234 = 0; FX_CALL(_fx_M3AstFM9get_ifacerRM14definterface_t2RM4id_tRM5loc_t(tn_0, &eloc_0, &iface_0, 0), _fx_catch_80); int_ idx_3 = -1; - FX_COPY_PTR(iface_0->data.di_all_methods, &v_247); + _fx_R19Ast__definterface_t* v_235 = &iface_0->data; + FX_COPY_PTR(v_235->di_all_methods, &v_227); int_ i_2 = 0; - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_14 = v_247; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_14 = v_227; for (; lst_14; lst_14 = lst_14->tl, i_2 += 1) { _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* __pat___5 = &lst_14->hd; _fx_R9Ast__id_t f_2 = __pat___5->t0; - bool res_11; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&f_2, n_2, &res_11, 0), _fx_catch_79); - if (res_11) { + bool res_15; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&f_2, n_2, &res_15, 0), _fx_catch_79); + if (res_15) { idx_3 = i_2; FX_BREAK(_fx_catch_79); } @@ -14174,37 +13746,37 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_80); } if (idx_3 < 0) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n_2, &v_248, 0), _fx_catch_80); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_248, &v_249, 0), _fx_catch_80); - FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(tn_0, &eloc_0, &v_250, 0), _fx_catch_80); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_250, &v_251, 0), _fx_catch_80); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(n_2, &v_228, 0), _fx_catch_80); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_228, &v_229, 0), _fx_catch_80); + FX_CALL(_fx_M6K_formFM7idk2strS2R9Ast__id_tR10Ast__loc_t(tn_0, &eloc_0, &v_230, 0), _fx_catch_80); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_230, &v_231, 0), _fx_catch_80); fx_str_t slit_23 = FX_MAKE_STR("k-norm: method \'"); fx_str_t slit_24 = FX_MAKE_STR("\' is not found in interface \'"); fx_str_t slit_25 = FX_MAKE_STR("\'"); { - const fx_str_t strs_2[] = { slit_23, v_249, slit_24, v_251, slit_25 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_252), _fx_catch_80); + const fx_str_t strs_2[] = { slit_23, v_229, slit_24, v_231, slit_25 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_232), _fx_catch_80); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_252, &v_253, 0), _fx_catch_80); - FX_THROW(&v_253, false, _fx_catch_80); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&eloc_0, &v_232, &v_233, 0), _fx_catch_80); + FX_THROW(&v_233, false, _fx_catch_80); } FX_CALL( _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(&a_id_2, idx_3, &kctx_0, - &v_254), _fx_catch_80); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_254, code_62, fx_result); + &v_234), _fx_catch_80); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_234, code_42, fx_result); _fx_catch_80: ; - if (v_254) { - _fx_free_N14K_form__kexp_t(&v_254); + if (v_234) { + _fx_free_N14K_form__kexp_t(&v_234); } - fx_free_exn(&v_253); - FX_FREE_STR(&v_252); - FX_FREE_STR(&v_251); - FX_FREE_STR(&v_250); - FX_FREE_STR(&v_249); - FX_FREE_STR(&v_248); - if (v_247) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_247); + fx_free_exn(&v_233); + FX_FREE_STR(&v_232); + FX_FREE_STR(&v_231); + FX_FREE_STR(&v_230); + FX_FREE_STR(&v_229); + FX_FREE_STR(&v_228); + if (v_227) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_227); } if (iface_0) { _fx_free_rR19Ast__definterface_t(&iface_0); @@ -14215,264 +13787,264 @@ FX_EXTERN_C int } if (FX_REC_VARIANT_TAG(elem_0) == 7) { if (FX_REC_VARIANT_TAG(ktyp_1) == 16) { - _fx_N14K_form__atom_t v_255 = {0}; - _fx_LN14K_form__atom_t v_256 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_257 = {0}; - _fx_N14K_form__kexp_t v_258 = 0; - _fx_T2T4R9Ast__id_tiN14K_form__ktyp_tBLT2R9Ast__id_tN14K_form__ktyp_t v_259 = {0}; + _fx_N14K_form__atom_t v_236 = {0}; + _fx_LN14K_form__atom_t v_237 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_238 = {0}; + _fx_N14K_form__kexp_t v_239 = 0; + _fx_T2T4R9Ast__id_tiN14K_form__ktyp_tBLT2R9Ast__id_tN14K_form__ktyp_t v_240 = {0}; _fx_N14K_form__ktyp_t vt_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t relems_3 = 0; - _fx_N14K_form__atom_t v_260 = {0}; - _fx_N14K_form__klit_t v_261 = {0}; - _fx_N14K_form__atom_t v_262 = {0}; - _fx_LN14K_form__atom_t v_263 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_264 = {0}; + _fx_N14K_form__atom_t v_241 = {0}; + _fx_N14K_form__klit_t v_242 = {0}; + _fx_N14K_form__atom_t v_243 = {0}; + _fx_LN14K_form__atom_t v_244 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_245 = {0}; _fx_N14K_form__kexp_t get_vcase_0 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_265 = {0}; - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_266 = {0}; - _fx_LN14K_form__kexp_t code_63 = 0; - _fx_N14K_form__kexp_t v_267 = 0; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_246 = {0}; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_247 = {0}; + _fx_LN14K_form__kexp_t code_43 = 0; + _fx_N14K_form__kexp_t v_248 = 0; _fx_N14K_form__kexp_t get_elem_0 = 0; - _fx_LN14K_form__kexp_t code_64 = 0; + _fx_LN14K_form__kexp_t code_44 = 0; _fx_R9Ast__id_t* n_3 = &elem_0->u.ExpIdent.t0; - bool res_12; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(n_3, &_fx_g15Ast__std__tag__, &res_12, 0), _fx_catch_81); - if (res_12) { - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&a_id_2, &v_255); - FX_CALL(_fx_cons_LN14K_form__atom_t(&v_255, 0, true, &v_256), _fx_catch_81); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypCInt, &eloc_0, &v_257); + bool res_16; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(n_3, &_fx_g15Ast__std__tag__, &res_16, 0), _fx_catch_81); + if (res_16) { + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&a_id_2, &v_236); + FX_CALL(_fx_cons_LN14K_form__atom_t(&v_236, 0, true, &v_237), _fx_catch_81); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypCInt, &eloc_0, &v_238); FX_CALL( _fx_M6K_formFM10KExpIntrinN14K_form__kexp_t3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g29K_normalize__IntrinVariantTag, v_256, &v_257, &v_258), _fx_catch_81); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_258, code_62, fx_result); + &_fx_g29K_normalize__IntrinVariantTag, v_237, &v_238, &v_239), _fx_catch_81); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_239, code_42, fx_result); } else { FX_CALL( _fx_M11K_normalizeFM18get_record_elems_kT2T4R9Ast__id_tiN14K_form__ktyp_tBLT2R9Ast__id_tN14K_form__ktyp_t3Nt6option1R9Ast__id_tN14K_form__ktyp_tR10Ast__loc_t( - &_fx_g19K_normalize__None6_, ktyp_1, &eloc_0, &v_259, 0), _fx_catch_81); - _fx_T4R9Ast__id_tiN14K_form__ktyp_tB* v_268 = &v_259.t0; - _fx_R9Ast__id_t ctor_2 = v_268->t0; - int_ case_i_0 = v_268->t1; - FX_COPY_PTR(v_268->t2, &vt_0); - FX_COPY_PTR(v_259.t1, &relems_3); - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&a_id_2, &v_260); - int64_t res_13; - FX_CALL(_fx_M11K_normalizeFM5int64l1i(case_i_0, &res_13, 0), _fx_catch_81); - _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(res_13, &v_261); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_261, &v_262); - FX_CALL(_fx_cons_LN14K_form__atom_t(&v_262, 0, true, &v_263), _fx_catch_81); - FX_CALL(_fx_cons_LN14K_form__atom_t(&v_260, v_263, false, &v_263), _fx_catch_81); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(vt_0, &eloc_0, &v_264); + &_fx_g19K_normalize__None6_, ktyp_1, &eloc_0, &v_240, 0), _fx_catch_81); + _fx_T4R9Ast__id_tiN14K_form__ktyp_tB* v_249 = &v_240.t0; + _fx_R9Ast__id_t ctor_2 = v_249->t0; + int_ case_i_0 = v_249->t1; + FX_COPY_PTR(v_249->t2, &vt_0); + FX_COPY_PTR(v_240.t1, &relems_3); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&a_id_2, &v_241); + int64_t res_17; + FX_CALL(_fx_M11K_normalizeFM5int64l1i(case_i_0, &res_17, 0), _fx_catch_81); + _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(res_17, &v_242); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_242, &v_243); + FX_CALL(_fx_cons_LN14K_form__atom_t(&v_243, 0, true, &v_244), _fx_catch_81); + FX_CALL(_fx_cons_LN14K_form__atom_t(&v_241, v_244, false, &v_244), _fx_catch_81); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(vt_0, &eloc_0, &v_245); FX_CALL( _fx_M6K_formFM10KExpIntrinN14K_form__kexp_t3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g30K_normalize__IntrinVariantCase, v_263, &v_264, &get_vcase_0), _fx_catch_81); + &_fx_g30K_normalize__IntrinVariantCase, v_244, &v_245, &get_vcase_0), _fx_catch_81); int_ i_3; FX_CALL( _fx_M11K_normalizeFM10find_relemi4R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tR9Ast__id_tR10Ast__loc_t(&ctor_2, relems_3, n_3, &eloc_0, &i_3, 0), _fx_catch_81); - int_ v_269; - FX_CALL(_fx_M11K_normalizeFM8length1_i1LT2R9Ast__id_tN14K_form__ktyp_t(relems_3, &v_269, 0), _fx_catch_81); - if (v_269 == 1) { - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(get_vcase_0, code_62, &v_265); + int_ v_250; + FX_CALL(_fx_M11K_normalizeFM8length1_i1LT2R9Ast__id_tN14K_form__ktyp_t(relems_3, &v_250, 0), _fx_catch_81); + if (v_250 == 1) { + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(get_vcase_0, code_42, &v_246); } else { fx_str_t slit_26 = FX_MAKE_STR("vcase"); fx_str_t slit_27 = FX_MAKE_STR("variant case extraction should produce id, not literal"); FX_CALL( _fx_M6K_formFM7kexp2idT2R9Ast__id_tLN14K_form__kexp_t6iSN14K_form__kexp_tBLN14K_form__kexp_tS(km_idx_0, - &slit_26, get_vcase_0, true, code_62, &slit_27, &v_266, 0), _fx_catch_81); - _fx_R9Ast__id_t v_id_0 = v_266.t0; - FX_COPY_PTR(v_266.t1, &code_63); + &slit_26, get_vcase_0, true, code_42, &slit_27, &v_247, 0), _fx_catch_81); + _fx_R9Ast__id_t v_id_0 = v_247.t0; + FX_COPY_PTR(v_247.t1, &code_43); FX_CALL( _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(&v_id_0, i_3, &kctx_0, - &v_267), _fx_catch_81); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_267, code_63, &v_265); + &v_248), _fx_catch_81); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_248, code_43, &v_246); } - FX_COPY_PTR(v_265.t0, &get_elem_0); - FX_COPY_PTR(v_265.t1, &code_64); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(get_elem_0, code_64, fx_result); + FX_COPY_PTR(v_246.t0, &get_elem_0); + FX_COPY_PTR(v_246.t1, &code_44); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(get_elem_0, code_44, fx_result); } _fx_catch_81: ; - if (code_64) { - _fx_free_LN14K_form__kexp_t(&code_64); + if (code_44) { + _fx_free_LN14K_form__kexp_t(&code_44); } if (get_elem_0) { _fx_free_N14K_form__kexp_t(&get_elem_0); } - if (v_267) { - _fx_free_N14K_form__kexp_t(&v_267); + if (v_248) { + _fx_free_N14K_form__kexp_t(&v_248); } - if (code_63) { - _fx_free_LN14K_form__kexp_t(&code_63); + if (code_43) { + _fx_free_LN14K_form__kexp_t(&code_43); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_266); - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_265); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_247); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_246); if (get_vcase_0) { _fx_free_N14K_form__kexp_t(&get_vcase_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_264); - if (v_263) { - _fx_free_LN14K_form__atom_t(&v_263); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_245); + if (v_244) { + _fx_free_LN14K_form__atom_t(&v_244); } - _fx_free_N14K_form__atom_t(&v_262); - _fx_free_N14K_form__klit_t(&v_261); - _fx_free_N14K_form__atom_t(&v_260); + _fx_free_N14K_form__atom_t(&v_243); + _fx_free_N14K_form__klit_t(&v_242); + _fx_free_N14K_form__atom_t(&v_241); if (relems_3) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&relems_3); } if (vt_0) { _fx_free_N14K_form__ktyp_t(&vt_0); } - _fx_free_T2T4R9Ast__id_tiN14K_form__ktyp_tBLT2R9Ast__id_tN14K_form__ktyp_t(&v_259); - if (v_258) { - _fx_free_N14K_form__kexp_t(&v_258); + _fx_free_T2T4R9Ast__id_tiN14K_form__ktyp_tBLT2R9Ast__id_tN14K_form__ktyp_t(&v_240); + if (v_239) { + _fx_free_N14K_form__kexp_t(&v_239); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_257); - if (v_256) { - _fx_free_LN14K_form__atom_t(&v_256); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_238); + if (v_237) { + _fx_free_LN14K_form__atom_t(&v_237); } - _fx_free_N14K_form__atom_t(&v_255); + _fx_free_N14K_form__atom_t(&v_236); goto _fx_endmatch_10; } } if (FX_REC_VARIANT_TAG(ktyp_1) == 21) { if (FX_REC_VARIANT_TAG(elem_0) == 7) { - bool res_14; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&elem_0->u.ExpIdent.t0, &_fx_g15Ast__std__tag__, &res_14, 0), + bool res_18; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&elem_0->u.ExpIdent.t0, &_fx_g15Ast__std__tag__, &res_18, 0), _fx_catch_85); - if (res_14) { - _fx_N14K_form__atom_t v_270 = {0}; - _fx_LN14K_form__atom_t v_271 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_272 = {0}; - _fx_N14K_form__kexp_t v_273 = 0; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&a_id_2, &v_270); - FX_CALL(_fx_cons_LN14K_form__atom_t(&v_270, 0, true, &v_271), _fx_catch_82); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypCInt, &eloc_0, &v_272); + if (res_18) { + _fx_N14K_form__atom_t v_251 = {0}; + _fx_LN14K_form__atom_t v_252 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_253 = {0}; + _fx_N14K_form__kexp_t v_254 = 0; + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&a_id_2, &v_251); + FX_CALL(_fx_cons_LN14K_form__atom_t(&v_251, 0, true, &v_252), _fx_catch_82); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypCInt, &eloc_0, &v_253); FX_CALL( _fx_M6K_formFM10KExpIntrinN14K_form__kexp_t3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g29K_normalize__IntrinVariantTag, v_271, &v_272, &v_273), _fx_catch_82); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_273, code_62, fx_result); + &_fx_g29K_normalize__IntrinVariantTag, v_252, &v_253, &v_254), _fx_catch_82); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_254, code_42, fx_result); _fx_catch_82: ; - if (v_273) { - _fx_free_N14K_form__kexp_t(&v_273); + if (v_254) { + _fx_free_N14K_form__kexp_t(&v_254); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_272); - if (v_271) { - _fx_free_LN14K_form__atom_t(&v_271); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_253); + if (v_252) { + _fx_free_LN14K_form__atom_t(&v_252); } - _fx_free_N14K_form__atom_t(&v_270); + _fx_free_N14K_form__atom_t(&v_251); goto _fx_endmatch_10; } } } if (FX_REC_VARIANT_TAG(elem_0) == 7) { - _fx_N10Ast__typ_t v_274 = 0; - fx_str_t v_275 = {0}; - fx_str_t v_276 = {0}; - fx_str_t v_277 = {0}; - fx_str_t v_278 = {0}; - fx_str_t v_279 = {0}; - fx_exn_t v_280 = {0}; - FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(e1_7, &v_274, 0), _fx_catch_83); - FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(v_274, &v_275, 0), _fx_catch_83); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_275, &v_276, 0), _fx_catch_83); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&elem_0->u.ExpIdent.t0, &v_277, 0), _fx_catch_83); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_277, &v_278, 0), _fx_catch_83); + _fx_N10Ast__typ_t v_255 = 0; + fx_str_t v_256 = {0}; + fx_str_t v_257 = {0}; + fx_str_t v_258 = {0}; + fx_str_t v_259 = {0}; + fx_str_t v_260 = {0}; + fx_exn_t v_261 = {0}; + FX_CALL(_fx_M3AstFM11get_exp_typN10Ast__typ_t1N10Ast__exp_t(e1_7, &v_255, 0), _fx_catch_83); + FX_CALL(_fx_M3AstFM7typ2strS1N10Ast__typ_t(v_255, &v_256, 0), _fx_catch_83); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_256, &v_257, 0), _fx_catch_83); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&elem_0->u.ExpIdent.t0, &v_258, 0), _fx_catch_83); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_258, &v_259, 0), _fx_catch_83); fx_str_t slit_28 = FX_MAKE_STR("unsupported \'(some_struct : "); fx_str_t slit_29 = FX_MAKE_STR(")."); fx_str_t slit_30 = FX_MAKE_STR("\' access operation"); { - const fx_str_t strs_3[] = { slit_28, v_276, slit_29, v_278, slit_30 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_279), _fx_catch_83); + const fx_str_t strs_3[] = { slit_28, v_257, slit_29, v_259, slit_30 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_260), _fx_catch_83); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&e1loc_0, &v_279, &v_280, 0), _fx_catch_83); - FX_THROW(&v_280, false, _fx_catch_83); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&e1loc_0, &v_260, &v_261, 0), _fx_catch_83); + FX_THROW(&v_261, false, _fx_catch_83); _fx_catch_83: ; - fx_free_exn(&v_280); - FX_FREE_STR(&v_279); - FX_FREE_STR(&v_278); - FX_FREE_STR(&v_277); - FX_FREE_STR(&v_276); - FX_FREE_STR(&v_275); - if (v_274) { - _fx_free_N10Ast__typ_t(&v_274); + fx_free_exn(&v_261); + FX_FREE_STR(&v_260); + FX_FREE_STR(&v_259); + FX_FREE_STR(&v_258); + FX_FREE_STR(&v_257); + FX_FREE_STR(&v_256); + if (v_255) { + _fx_free_N10Ast__typ_t(&v_255); } goto _fx_endmatch_10; } - fx_exn_t v_281 = {0}; + fx_exn_t v_262 = {0}; fx_str_t slit_31 = FX_MAKE_STR("unsupported access operation"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&e1loc_0, &slit_31, &v_281, 0), _fx_catch_84); - FX_THROW(&v_281, false, _fx_catch_84); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&e1loc_0, &slit_31, &v_262, 0), _fx_catch_84); + FX_THROW(&v_262, false, _fx_catch_84); _fx_catch_84: ; - fx_free_exn(&v_281); + fx_free_exn(&v_262); _fx_endmatch_10: ; FX_CHECK_EXN(_fx_catch_85); _fx_catch_85: ; - _fx_free_N15K_form__kinfo_t(&v_240); + _fx_free_N15K_form__kinfo_t(&v_220); if (ktyp_1) { _fx_free_N14K_form__ktyp_t(&ktyp_1); } - if (code_62) { - _fx_free_LN14K_form__kexp_t(&code_62); + if (code_42) { + _fx_free_LN14K_form__kexp_t(&code_42); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_239); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_219); goto _fx_endmatch_14; } if (tag_0 == 20) { - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_282 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_263 = {0}; _fx_N14K_form__atom_t a2_3 = {0}; - _fx_LN14K_form__kexp_t code_65 = 0; - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_283 = {0}; - _fx_LN14K_form__kexp_t code_66 = 0; + _fx_LN14K_form__kexp_t code_45 = 0; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_264 = {0}; + _fx_LN14K_form__kexp_t code_46 = 0; _fx_R17K_form__kdefval_t kv_0 = {0}; _fx_N14K_form__ktyp_t kv_typ_0 = 0; _fx_R16Ast__val_flags_t kv_flags_0 = {0}; _fx_R16Ast__val_flags_t kv_flags_1 = {0}; _fx_LN10Ast__exp_t idxs_0 = 0; - _fx_R16Ast__val_flags_t v_284 = {0}; + _fx_R16Ast__val_flags_t v_265 = {0}; _fx_R17K_form__kdefval_t kv_1 = {0}; - _fx_N15K_form__kinfo_t v_285 = {0}; - _fx_N14K_form__kexp_t v_286 = 0; + _fx_N15K_form__kinfo_t v_266 = {0}; + _fx_N14K_form__kexp_t v_267 = 0; _fx_T3N10Ast__exp_tN10Ast__exp_tR10Ast__loc_t* vcase_26 = &e_0->u.ExpAssign; _fx_N10Ast__exp_t e1_8 = vcase_26->t0; FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - vcase_26->t1, code_0, false, sc_0, &v_282, 0), _fx_catch_87); - _fx_copy_N14K_form__atom_t(&v_282.t0, &a2_3); - FX_COPY_PTR(v_282.t1, &code_65); + vcase_26->t1, code_0, false, sc_0, &v_263, 0), _fx_catch_87); + _fx_copy_N14K_form__atom_t(&v_263.t0, &a2_3); + FX_COPY_PTR(v_263.t1, &code_45); fx_str_t slit_32 = FX_MAKE_STR("a literal cannot be assigned"); FX_CALL( _fx_M11K_normalizeFM6exp2idT2R9Ast__id_tLN14K_form__kexp_t5N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_tS(e1_8, - code_65, true, sc_0, &slit_32, &v_283, 0), _fx_catch_87); - _fx_R9Ast__id_t a_id_3 = v_283.t0; - FX_COPY_PTR(v_283.t1, &code_66); + code_45, true, sc_0, &slit_32, &v_264, 0), _fx_catch_87); + _fx_R9Ast__id_t a_id_3 = v_264.t0; + FX_COPY_PTR(v_264.t1, &code_46); FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(&a_id_3, &eloc_0, &kv_0, 0), _fx_catch_87); FX_COPY_PTR(kv_0.kv_typ, &kv_typ_0); _fx_copy_R16Ast__val_flags_t(&kv_0.kv_flags, &kv_flags_0); if (FX_REC_VARIANT_TAG(kv_typ_0) == 17) { if (FX_REC_VARIANT_TAG(e1_8) == 19) { - bool __fold_result___17 = false; + bool __fold_result___6 = false; FX_COPY_PTR(e1_8->u.ExpAt.t3, &idxs_0); _fx_LN10Ast__exp_t lst_15 = idxs_0; for (; lst_15; lst_15 = lst_15->tl) { _fx_N10Ast__exp_t idx_4 = lst_15->hd; - bool res_15; - FX_CALL(_fx_M11K_normalizeFM8is_rangeB1N10Ast__exp_t(idx_4, &res_15, 0), _fx_catch_86); - if (res_15) { - __fold_result___17 = true; FX_BREAK(_fx_catch_86); + bool res_19; + FX_CALL(_fx_M11K_normalizeFM8is_rangeB1N10Ast__exp_t(idx_4, &res_19, 0), _fx_catch_86); + if (res_19) { + __fold_result___6 = true; FX_BREAK(_fx_catch_86); } _fx_catch_86: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_87); } - if (__fold_result___17) { + if (__fold_result___6) { _fx_make_R16Ast__val_flags_t(kv_flags_0.val_flag_arg, kv_flags_0.val_flag_mutable, kv_flags_0.val_flag_temp, kv_flags_0.val_flag_tempref, kv_flags_0.val_flag_private, true, kv_flags_0.val_flag_instance, &kv_flags_0.val_flag_method, kv_flags_0.val_flag_ctor, kv_flags_0.val_flag_global, &kv_flags_1); @@ -14486,22 +14058,22 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_87); _fx_make_R16Ast__val_flags_t(kv_flags_1.val_flag_arg, true, kv_flags_1.val_flag_temp, kv_flags_1.val_flag_tempref, kv_flags_1.val_flag_private, kv_flags_1.val_flag_subarray, kv_flags_1.val_flag_instance, &kv_flags_1.val_flag_method, - kv_flags_1.val_flag_ctor, kv_flags_1.val_flag_global, &v_284); - _fx_make_R17K_form__kdefval_t(&kv_0.kv_name, &kv_0.kv_cname, kv_0.kv_typ, &v_284, &kv_0.kv_loc, &kv_1); - _fx_M6K_formFM4KValN15K_form__kinfo_t1RM9kdefval_t(&kv_1, &v_285); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&a_id_3, &v_285, 0), _fx_catch_87); + kv_flags_1.val_flag_ctor, kv_flags_1.val_flag_global, &v_265); + _fx_make_R17K_form__kdefval_t(&kv_0.kv_name, &kv_0.kv_cname, kv_0.kv_typ, &v_265, &kv_0.kv_loc, &kv_1); + _fx_M6K_formFM4KValN15K_form__kinfo_t1RM9kdefval_t(&kv_1, &v_266); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&a_id_3, &v_266, 0), _fx_catch_87); FX_CALL( - _fx_M6K_formFM10KExpAssignN14K_form__kexp_t3R9Ast__id_tN14K_form__atom_tR10Ast__loc_t(&a_id_3, &a2_3, &eloc_0, &v_286), + _fx_M6K_formFM10KExpAssignN14K_form__kexp_t3R9Ast__id_tN14K_form__atom_tR10Ast__loc_t(&a_id_3, &a2_3, &eloc_0, &v_267), _fx_catch_87); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_286, code_66, fx_result); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_267, code_46, fx_result); _fx_catch_87: ; - if (v_286) { - _fx_free_N14K_form__kexp_t(&v_286); + if (v_267) { + _fx_free_N14K_form__kexp_t(&v_267); } - _fx_free_N15K_form__kinfo_t(&v_285); + _fx_free_N15K_form__kinfo_t(&v_266); _fx_free_R17K_form__kdefval_t(&kv_1); - _fx_free_R16Ast__val_flags_t(&v_284); + _fx_free_R16Ast__val_flags_t(&v_265); if (idxs_0) { _fx_free_LN10Ast__exp_t(&idxs_0); } @@ -14511,135 +14083,135 @@ FX_EXTERN_C int _fx_free_N14K_form__ktyp_t(&kv_typ_0); } _fx_free_R17K_form__kdefval_t(&kv_0); - if (code_66) { - _fx_free_LN14K_form__kexp_t(&code_66); + if (code_46) { + _fx_free_LN14K_form__kexp_t(&code_46); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_283); - if (code_65) { - _fx_free_LN14K_form__kexp_t(&code_65); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_264); + if (code_45) { + _fx_free_LN14K_form__kexp_t(&code_45); } _fx_free_N14K_form__atom_t(&a2_3); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_282); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_263); goto _fx_endmatch_14; } if (tag_0 == 30) { - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_287 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_268 = {0}; _fx_N14K_form__atom_t a_6 = {0}; - _fx_LN14K_form__kexp_t code_67 = 0; - _fx_N14K_form__kexp_t v_288 = 0; + _fx_LN14K_form__kexp_t code_47 = 0; + _fx_N14K_form__kexp_t v_269 = 0; FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e_0->u.ExpCast.t0, code_0, false, sc_0, &v_287, 0), _fx_catch_88); - _fx_copy_N14K_form__atom_t(&v_287.t0, &a_6); - FX_COPY_PTR(v_287.t1, &code_67); + e_0->u.ExpCast.t0, code_0, false, sc_0, &v_268, 0), _fx_catch_88); + _fx_copy_N14K_form__atom_t(&v_268.t0, &a_6); + FX_COPY_PTR(v_268.t1, &code_47); FX_CALL( _fx_M6K_formFM8KExpCastN14K_form__kexp_t3N14K_form__atom_tN14K_form__ktyp_tR10Ast__loc_t(&a_6, ktyp_0, &eloc_0, - &v_288), _fx_catch_88); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_288, code_67, fx_result); + &v_269), _fx_catch_88); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_269, code_47, fx_result); _fx_catch_88: ; - if (v_288) { - _fx_free_N14K_form__kexp_t(&v_288); + if (v_269) { + _fx_free_N14K_form__kexp_t(&v_269); } - if (code_67) { - _fx_free_LN14K_form__kexp_t(&code_67); + if (code_47) { + _fx_free_LN14K_form__kexp_t(&code_47); } _fx_free_N14K_form__atom_t(&a_6); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_287); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_268); goto _fx_endmatch_14; } if (tag_0 == 31) { - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_289 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_270 = {0}; _fx_N14K_form__atom_t a_7 = {0}; - _fx_LN14K_form__kexp_t code_68 = 0; + _fx_LN14K_form__kexp_t code_48 = 0; _fx_N14K_form__ktyp_t t_1 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_290 = {0}; - _fx_N14K_form__kexp_t v_291 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_271 = {0}; + _fx_N14K_form__kexp_t v_272 = 0; _fx_T3N10Ast__exp_tN10Ast__typ_tT2N10Ast__typ_tR10Ast__loc_t* vcase_27 = &e_0->u.ExpTyped; FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - vcase_27->t0, code_0, false, sc_0, &v_289, 0), _fx_catch_89); - _fx_copy_N14K_form__atom_t(&v_289.t0, &a_7); - FX_COPY_PTR(v_289.t1, &code_68); + vcase_27->t0, code_0, false, sc_0, &v_270, 0), _fx_catch_89); + _fx_copy_N14K_form__atom_t(&v_270.t0, &a_7); + FX_COPY_PTR(v_270.t1, &code_48); FX_CALL(_fx_M11K_normalizeFM8typ2ktypN14K_form__ktyp_t2N10Ast__typ_tR10Ast__loc_t(vcase_27->t1, &eloc_0, &t_1, 0), _fx_catch_89); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_1, &eloc_0, &v_290); - FX_CALL(_fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&a_7, &v_290, &v_291), + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_1, &eloc_0, &v_271); + FX_CALL(_fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&a_7, &v_271, &v_272), _fx_catch_89); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_291, code_68, fx_result); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_272, code_48, fx_result); _fx_catch_89: ; - if (v_291) { - _fx_free_N14K_form__kexp_t(&v_291); + if (v_272) { + _fx_free_N14K_form__kexp_t(&v_272); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_290); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_271); if (t_1) { _fx_free_N14K_form__ktyp_t(&t_1); } - if (code_68) { - _fx_free_LN14K_form__kexp_t(&code_68); + if (code_48) { + _fx_free_LN14K_form__kexp_t(&code_48); } _fx_free_N14K_form__atom_t(&a_7); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_289); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_270); goto _fx_endmatch_14; } if (tag_0 == 32) { - _fx_N14K_form__kexp_t v_292 = 0; - FX_CALL(_fx_M6K_formFM9KExpCCodeN14K_form__kexp_t2ST2N14K_form__ktyp_tR10Ast__loc_t(&e_0->u.ExpCCode.t0, &kctx_0, &v_292), + _fx_N14K_form__kexp_t v_273 = 0; + FX_CALL(_fx_M6K_formFM9KExpCCodeN14K_form__kexp_t2ST2N14K_form__ktyp_tR10Ast__loc_t(&e_0->u.ExpCCode.t0, &kctx_0, &v_273), _fx_catch_90); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_292, code_0, fx_result); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_273, code_0, fx_result); _fx_catch_90: ; - if (v_292) { - _fx_free_N14K_form__kexp_t(&v_292); + if (v_273) { + _fx_free_N14K_form__kexp_t(&v_273); } goto _fx_endmatch_14; } if (tag_0 == 33) { - _fx_N14K_form__kexp_t v_293 = 0; + _fx_N14K_form__kexp_t v_274 = 0; _fx_T3SST2N10Ast__typ_tR10Ast__loc_t* vcase_28 = &e_0->u.ExpData; FX_CALL( _fx_M11K_normalizeFM10embed_dataN14K_form__kexp_t3SST2N14K_form__ktyp_tR10Ast__loc_t(&vcase_28->t0, &vcase_28->t1, - &kctx_0, &v_293, 0), _fx_catch_91); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_293, code_0, fx_result); + &kctx_0, &v_274, 0), _fx_catch_91); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_274, code_0, fx_result); _fx_catch_91: ; - if (v_293) { - _fx_free_N14K_form__kexp_t(&v_293); + if (v_274) { + _fx_free_N14K_form__kexp_t(&v_274); } goto _fx_endmatch_14; } if (tag_0 == 29) { - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_294 = {0}; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_275 = {0}; _fx_N14K_form__atom_t a_8 = {0}; - _fx_LN14K_form__kexp_t code_69 = 0; - _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_295 = {0}; + _fx_LN14K_form__kexp_t code_49 = 0; + _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_276 = {0}; _fx_N14K_form__ktyp_t t_2 = 0; - _fx_R16Ast__val_flags_t v_296 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_297 = {0}; - _fx_N14K_form__kexp_t v_298 = 0; - _fx_Nt6option1N14K_form__kexp_t v_299 = {0}; - _fx_LN14K_form__kexp_t code_70 = 0; - _fx_N14K_form__atom_t v_300 = {0}; + _fx_R16Ast__val_flags_t v_277 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_278 = {0}; + _fx_N14K_form__kexp_t v_279 = 0; + _fx_Nt6option1N14K_form__kexp_t v_280 = {0}; + _fx_LN14K_form__kexp_t code_50 = 0; + _fx_N14K_form__atom_t v_281 = {0}; _fx_N14K_form__atom_t b_0 = {0}; - _fx_LN14K_form__kexp_t code_71 = 0; - _fx_T2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t v_301 = {0}; + _fx_LN14K_form__kexp_t code_51 = 0; + _fx_T2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t v_282 = {0}; _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t k_cases_0 = 0; - _fx_LN14K_form__kexp_t code_72 = 0; - _fx_N14K_form__kexp_t v_302 = 0; + _fx_LN14K_form__kexp_t code_52 = 0; + _fx_N14K_form__kexp_t v_283 = 0; _fx_T3N10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_29 = &e_0->u.ExpMatch; _fx_N10Ast__exp_t e1_9 = vcase_29->t0; _fx_R10Ast__loc_t loc1_2; FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e1_9, &loc1_2, 0), _fx_catch_93); FX_CALL( _fx_M11K_normalizeFM8exp2atomT2N14K_form__atom_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e1_9, code_0, false, sc_0, &v_294, 0), _fx_catch_93); - _fx_copy_N14K_form__atom_t(&v_294.t0, &a_8); - FX_COPY_PTR(v_294.t1, &code_69); - bool v_303; - FX_CALL(_fx_M6K_formFM15is_mutable_atomB2N14K_form__atom_tR10Ast__loc_t(&a_8, &loc1_2, &v_303, 0), _fx_catch_93); - if (!v_303) { - _fx_make_T2N14K_form__atom_tLN14K_form__kexp_t(&a_8, code_69, &v_295); + e1_9, code_0, false, sc_0, &v_275, 0), _fx_catch_93); + _fx_copy_N14K_form__atom_t(&v_275.t0, &a_8); + FX_COPY_PTR(v_275.t1, &code_49); + bool v_284; + FX_CALL(_fx_M6K_formFM15is_mutable_atomB2N14K_form__atom_tR10Ast__loc_t(&a_8, &loc1_2, &v_284, 0), _fx_catch_93); + if (!v_284) { + _fx_make_T2N14K_form__atom_tLN14K_form__kexp_t(&a_8, code_49, &v_276); } else { _fx_R9Ast__id_t a_id_4; @@ -14647,115 +14219,115 @@ FX_EXTERN_C int a_id_4 = a_8.u.AtomId; } else { - fx_exn_t v_304 = {0}; + fx_exn_t v_285 = {0}; fx_str_t slit_33 = FX_MAKE_STR("k-norm: invalid mutable atom (id is expected)"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc1_2, &slit_33, &v_304, 0), _fx_catch_92); - FX_THROW(&v_304, false, _fx_catch_92); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc1_2, &slit_33, &v_285, 0), _fx_catch_92); + FX_THROW(&v_285, false, _fx_catch_92); _fx_catch_92: ; - fx_free_exn(&v_304); + fx_free_exn(&v_285); } FX_CHECK_EXN(_fx_catch_93); FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(&a_8, &loc1_2, &t_2, 0), _fx_catch_93); _fx_R9Ast__id_t b_1; FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(km_idx_0, &a_id_4, &b_1, 0), _fx_catch_93); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_296, 0), _fx_catch_93); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_2, &loc1_2, &v_297); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_277, 0), _fx_catch_93); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_2, &loc1_2, &v_278); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&a_8, &v_297, &v_298), + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&a_8, &v_278, &v_279), _fx_catch_93); - _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(v_298, &v_299); + _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(v_279, &v_280); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &b_1, t_2, &v_296, &v_299, code_69, &loc1_2, &code_70, 0), _fx_catch_93); - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&b_1, &v_300); - _fx_make_T2N14K_form__atom_tLN14K_form__kexp_t(&v_300, code_70, &v_295); + &b_1, t_2, &v_277, &v_280, code_49, &loc1_2, &code_50, 0), _fx_catch_93); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&b_1, &v_281); + _fx_make_T2N14K_form__atom_tLN14K_form__kexp_t(&v_281, code_50, &v_276); } - _fx_copy_N14K_form__atom_t(&v_295.t0, &b_0); - FX_COPY_PTR(v_295.t1, &code_71); + _fx_copy_N14K_form__atom_t(&v_276.t0, &b_0); + FX_COPY_PTR(v_276.t1, &code_51); FX_CALL( _fx_M11K_normalizeFM22transform_pat_matchingT2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t6N14K_form__atom_tLT2N10Ast__pat_tN10Ast__exp_tLN14K_form__kexp_tLN12Ast__scope_tR10Ast__loc_tB( - &b_0, vcase_29->t1, code_71, sc_0, &eloc_0, false, &v_301, 0), _fx_catch_93); - FX_COPY_PTR(v_301.t0, &k_cases_0); - FX_COPY_PTR(v_301.t1, &code_72); + &b_0, vcase_29->t1, code_51, sc_0, &eloc_0, false, &v_282, 0), _fx_catch_93); + FX_COPY_PTR(v_282.t0, &k_cases_0); + FX_COPY_PTR(v_282.t1, &code_52); FX_CALL( _fx_M6K_formFM9KExpMatchN14K_form__kexp_t2LT2LN14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t( - k_cases_0, &kctx_0, &v_302), _fx_catch_93); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_302, code_72, fx_result); + k_cases_0, &kctx_0, &v_283), _fx_catch_93); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_283, code_52, fx_result); _fx_catch_93: ; - if (v_302) { - _fx_free_N14K_form__kexp_t(&v_302); + if (v_283) { + _fx_free_N14K_form__kexp_t(&v_283); } - if (code_72) { - _fx_free_LN14K_form__kexp_t(&code_72); + if (code_52) { + _fx_free_LN14K_form__kexp_t(&code_52); } if (k_cases_0) { _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&k_cases_0); } - _fx_free_T2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t(&v_301); - if (code_71) { - _fx_free_LN14K_form__kexp_t(&code_71); + _fx_free_T2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t(&v_282); + if (code_51) { + _fx_free_LN14K_form__kexp_t(&code_51); } _fx_free_N14K_form__atom_t(&b_0); - _fx_free_N14K_form__atom_t(&v_300); - if (code_70) { - _fx_free_LN14K_form__kexp_t(&code_70); + _fx_free_N14K_form__atom_t(&v_281); + if (code_50) { + _fx_free_LN14K_form__kexp_t(&code_50); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_299); - if (v_298) { - _fx_free_N14K_form__kexp_t(&v_298); + _fx_free_Nt6option1N14K_form__kexp_t(&v_280); + if (v_279) { + _fx_free_N14K_form__kexp_t(&v_279); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_297); - _fx_free_R16Ast__val_flags_t(&v_296); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_278); + _fx_free_R16Ast__val_flags_t(&v_277); if (t_2) { _fx_free_N14K_form__ktyp_t(&t_2); } - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_295); - if (code_69) { - _fx_free_LN14K_form__kexp_t(&code_69); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_276); + if (code_49) { + _fx_free_LN14K_form__kexp_t(&code_49); } _fx_free_N14K_form__atom_t(&a_8); - _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_294); + _fx_free_T2N14K_form__atom_tLN14K_form__kexp_t(&v_275); goto _fx_endmatch_14; } if (tag_0 == 28) { _fx_LN12Ast__scope_t try_sc_0 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_305 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_286 = {0}; _fx_N14K_form__kexp_t e1_10 = 0; _fx_LN14K_form__kexp_t body_code_5 = 0; - _fx_LN14K_form__kexp_t v_306 = 0; + _fx_LN14K_form__kexp_t v_287 = 0; _fx_N14K_form__kexp_t try_body_0 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_307 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_288 = {0}; _fx_N14K_form__kexp_t pop_e_0 = 0; _fx_LN12Ast__scope_t catch_sc_0 = 0; - _fx_R16Ast__val_flags_t v_308 = {0}; - _fx_Nt6option1N14K_form__kexp_t v_309 = {0}; + _fx_R16Ast__val_flags_t v_289 = {0}; + _fx_Nt6option1N14K_form__kexp_t v_290 = {0}; _fx_LN14K_form__kexp_t catch_code_0 = 0; - _fx_N14K_form__atom_t v_310 = {0}; - _fx_T2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t v_311 = {0}; + _fx_N14K_form__atom_t v_291 = {0}; + _fx_T2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t v_292 = {0}; _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t k_cases_1 = 0; _fx_LN14K_form__kexp_t catch_code_1 = 0; _fx_N14K_form__kexp_t handle_exn_0 = 0; - _fx_LN14K_form__kexp_t v_312 = 0; + _fx_LN14K_form__kexp_t v_293 = 0; _fx_N14K_form__kexp_t handle_exn_1 = 0; - _fx_N14K_form__kexp_t v_313 = 0; + _fx_N14K_form__kexp_t v_294 = 0; _fx_T3N10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_30 = &e_0->u.ExpTryCatch; _fx_LT2N10Ast__pat_tN10Ast__exp_t cases_0 = vcase_30->t1; _fx_N10Ast__exp_t e1_11 = vcase_30->t0; _fx_R10Ast__loc_t e1loc_1; FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e1_11, &e1loc_1, 0), _fx_catch_96); - _fx_N12Ast__scope_t v_314; - FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_314, 0), _fx_catch_96); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_314, sc_0, true, &try_sc_0), _fx_catch_96); + _fx_N12Ast__scope_t v_295; + FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_295, 0), _fx_catch_96); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_295, sc_0, true, &try_sc_0), _fx_catch_96); FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - e1_11, 0, false, try_sc_0, &v_305, 0), _fx_catch_96); - FX_COPY_PTR(v_305.t0, &e1_10); - FX_COPY_PTR(v_305.t1, &body_code_5); - FX_CALL(_fx_cons_LN14K_form__kexp_t(e1_10, body_code_5, true, &v_306), _fx_catch_96); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_306, &e1loc_1, &try_body_0, 0), + e1_11, 0, false, try_sc_0, &v_286, 0), _fx_catch_96); + FX_COPY_PTR(v_286.t0, &e1_10); + FX_COPY_PTR(v_286.t1, &body_code_5); + FX_CALL(_fx_cons_LN14K_form__kexp_t(e1_10, body_code_5, true, &v_287), _fx_catch_96); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_287, &e1loc_1, &try_body_0, 0), _fx_catch_96); _fx_R10Ast__loc_t exn_loc_0; if (cases_0 != 0) { @@ -14768,60 +14340,60 @@ FX_EXTERN_C int _fx_R9Ast__id_t exn_n_0; fx_str_t slit_34 = FX_MAKE_STR("exn"); FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(km_idx_0, &slit_34, &exn_n_0, 0), _fx_catch_96); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g20K_normalize__KTypExn, &exn_loc_0, &v_307); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g20K_normalize__KTypExn, &exn_loc_0, &v_288); FX_CALL( _fx_M6K_formFM10KExpIntrinN14K_form__kexp_t3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g25K_normalize__IntrinPopExn, 0, &v_307, &pop_e_0), _fx_catch_96); - _fx_N12Ast__scope_t v_315; - FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_315, 0), _fx_catch_96); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_315, sc_0, true, &catch_sc_0), _fx_catch_96); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_308, 0), _fx_catch_96); - _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(pop_e_0, &v_309); + &_fx_g25K_normalize__IntrinPopExn, 0, &v_288, &pop_e_0), _fx_catch_96); + _fx_N12Ast__scope_t v_296; + FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_296, 0), _fx_catch_96); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_296, sc_0, true, &catch_sc_0), _fx_catch_96); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_289, 0), _fx_catch_96); + _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(pop_e_0, &v_290); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &exn_n_0, _fx_g20K_normalize__KTypExn, &v_308, &v_309, 0, &exn_loc_0, &catch_code_0, 0), _fx_catch_96); - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&exn_n_0, &v_310); + &exn_n_0, _fx_g20K_normalize__KTypExn, &v_289, &v_290, 0, &exn_loc_0, &catch_code_0, 0), _fx_catch_96); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&exn_n_0, &v_291); FX_CALL( _fx_M11K_normalizeFM22transform_pat_matchingT2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t6N14K_form__atom_tLT2N10Ast__pat_tN10Ast__exp_tLN14K_form__kexp_tLN12Ast__scope_tR10Ast__loc_tB( - &v_310, cases_0, catch_code_0, catch_sc_0, &exn_loc_0, true, &v_311, 0), _fx_catch_96); - FX_COPY_PTR(v_311.t0, &k_cases_1); - FX_COPY_PTR(v_311.t1, &catch_code_1); + &v_291, cases_0, catch_code_0, catch_sc_0, &exn_loc_0, true, &v_292, 0), _fx_catch_96); + FX_COPY_PTR(v_292.t0, &k_cases_1); + FX_COPY_PTR(v_292.t1, &catch_code_1); if (k_cases_1 != 0) { if (k_cases_1->tl == 0) { - _fx_T2LN14K_form__kexp_tN14K_form__kexp_t* v_316 = &k_cases_1->hd; - if (v_316->t0 == 0) { - FX_COPY_PTR(v_316->t1, &handle_exn_0); goto _fx_endmatch_12; + _fx_T2LN14K_form__kexp_tN14K_form__kexp_t* v_297 = &k_cases_1->hd; + if (v_297->t0 == 0) { + FX_COPY_PTR(v_297->t1, &handle_exn_0); goto _fx_endmatch_12; } } } - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_317 = {0}; - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ktyp_0, &exn_loc_0, &v_317); + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_298 = {0}; + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ktyp_0, &exn_loc_0, &v_298); FX_CALL( _fx_M6K_formFM9KExpMatchN14K_form__kexp_t2LT2LN14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t( - k_cases_1, &v_317, &handle_exn_0), _fx_catch_95); + k_cases_1, &v_298, &handle_exn_0), _fx_catch_95); _fx_catch_95: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_317); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_298); _fx_endmatch_12: ; FX_CHECK_EXN(_fx_catch_96); - FX_CALL(_fx_cons_LN14K_form__kexp_t(handle_exn_0, catch_code_1, true, &v_312), _fx_catch_96); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_312, &exn_loc_0, &handle_exn_1, 0), + FX_CALL(_fx_cons_LN14K_form__kexp_t(handle_exn_0, catch_code_1, true, &v_293), _fx_catch_96); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_293, &exn_loc_0, &handle_exn_1, 0), _fx_catch_96); FX_CALL( _fx_M6K_formFM12KExpTryCatchN14K_form__kexp_t3N14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t( - try_body_0, handle_exn_1, &kctx_0, &v_313), _fx_catch_96); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_313, code_0, fx_result); + try_body_0, handle_exn_1, &kctx_0, &v_294), _fx_catch_96); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_294, code_0, fx_result); _fx_catch_96: ; - if (v_313) { - _fx_free_N14K_form__kexp_t(&v_313); + if (v_294) { + _fx_free_N14K_form__kexp_t(&v_294); } if (handle_exn_1) { _fx_free_N14K_form__kexp_t(&handle_exn_1); } - if (v_312) { - _fx_free_LN14K_form__kexp_t(&v_312); + if (v_293) { + _fx_free_LN14K_form__kexp_t(&v_293); } if (handle_exn_0) { _fx_free_N14K_form__kexp_t(&handle_exn_0); @@ -14832,23 +14404,23 @@ FX_EXTERN_C int if (k_cases_1) { _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&k_cases_1); } - _fx_free_T2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t(&v_311); - _fx_free_N14K_form__atom_t(&v_310); + _fx_free_T2LT2LN14K_form__kexp_tN14K_form__kexp_tLN14K_form__kexp_t(&v_292); + _fx_free_N14K_form__atom_t(&v_291); if (catch_code_0) { _fx_free_LN14K_form__kexp_t(&catch_code_0); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_309); - _fx_free_R16Ast__val_flags_t(&v_308); + _fx_free_Nt6option1N14K_form__kexp_t(&v_290); + _fx_free_R16Ast__val_flags_t(&v_289); FX_FREE_LIST_SIMPLE(&catch_sc_0); if (pop_e_0) { _fx_free_N14K_form__kexp_t(&pop_e_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_307); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_288); if (try_body_0) { _fx_free_N14K_form__kexp_t(&try_body_0); } - if (v_306) { - _fx_free_LN14K_form__kexp_t(&v_306); + if (v_287) { + _fx_free_LN14K_form__kexp_t(&v_287); } if (body_code_5) { _fx_free_LN14K_form__kexp_t(&body_code_5); @@ -14856,71 +14428,71 @@ FX_EXTERN_C int if (e1_10) { _fx_free_N14K_form__kexp_t(&e1_10); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_305); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_286); FX_FREE_LIST_SIMPLE(&try_sc_0); goto _fx_endmatch_14; } if (tag_0 == 34) { - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_318 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_299 = {0}; _fx_N14K_form__kexp_t e2_11 = 0; - _fx_LN14K_form__kexp_t code_73 = 0; + _fx_LN14K_form__kexp_t code_53 = 0; _fx_N14K_form__ktyp_t ktyp_2 = 0; _fx_T4N10Ast__pat_tN10Ast__exp_tR16Ast__val_flags_tR10Ast__loc_t* vcase_31 = &e_0->u.DefVal; _fx_R16Ast__val_flags_t* flags_0 = &vcase_31->t2; _fx_N10Ast__pat_t p_0 = vcase_31->t0; FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - vcase_31->t1, code_0, true, sc_0, &v_318, 0), _fx_catch_99); - FX_COPY_PTR(v_318.t0, &e2_11); - FX_COPY_PTR(v_318.t1, &code_73); + vcase_31->t1, code_0, true, sc_0, &v_299, 0), _fx_catch_99); + FX_COPY_PTR(v_299.t0, &e2_11); + FX_COPY_PTR(v_299.t1, &code_53); FX_CALL(_fx_M6K_formFM12get_kexp_typN14K_form__ktyp_t1N14K_form__kexp_t(e2_11, &ktyp_2, 0), _fx_catch_99); if (FX_REC_VARIANT_TAG(ktyp_2) == 7) { if (FX_REC_VARIANT_TAG(p_0) == 3) { _fx_R17K_form__kdefval_t dv_0 = {0}; - _fx_N15K_form__kinfo_t v_319 = {0}; + _fx_N15K_form__kinfo_t v_300 = {0}; _fx_R9Ast__id_t* n_4 = &p_0->u.PatIdent.t0; fx_str_t slit_35 = FX_MAKE_STR(""); _fx_make_R17K_form__kdefval_t(n_4, &slit_35, ktyp_2, flags_0, &eloc_0, &dv_0); - _fx_M6K_formFM4KValN15K_form__kinfo_t1RM9kdefval_t(&dv_0, &v_319); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(n_4, &v_319, 0), _fx_catch_97); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(e2_11, code_73, fx_result); + _fx_M6K_formFM4KValN15K_form__kinfo_t1RM9kdefval_t(&dv_0, &v_300); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(n_4, &v_300, 0), _fx_catch_97); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(e2_11, code_53, fx_result); _fx_catch_97: ; - _fx_free_N15K_form__kinfo_t(&v_319); + _fx_free_N15K_form__kinfo_t(&v_300); _fx_free_R17K_form__kdefval_t(&dv_0); goto _fx_endmatch_13; } } - _fx_Nt6option1N14K_form__kexp_t v_320 = {0}; - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_321 = {0}; - _fx_LN14K_form__kexp_t code_74 = 0; - _fx_N14K_form__kexp_t v_322 = 0; - _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(e2_11, &v_320); + _fx_Nt6option1N14K_form__kexp_t v_301 = {0}; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_302 = {0}; + _fx_LN14K_form__kexp_t code_54 = 0; + _fx_N14K_form__kexp_t v_303 = 0; + _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(e2_11, &v_301); fx_str_t slit_36 = FX_MAKE_STR("v"); FX_CALL( _fx_M11K_normalizeFM17pat_simple_unpackT2R9Ast__id_tLN14K_form__kexp_t7N10Ast__pat_tN14K_form__ktyp_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tSR16Ast__val_flags_tLN12Ast__scope_t( - p_0, ktyp_2, &v_320, code_73, &slit_36, flags_0, sc_0, &v_321, 0), _fx_catch_98); - _fx_R9Ast__id_t v_323 = v_321.t0; - FX_COPY_PTR(v_321.t1, &code_74); - bool res_16; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_323, &_fx_g9Ast__noid, &res_16, 0), _fx_catch_98); - if (res_16) { - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(e2_11, code_74, fx_result); + p_0, ktyp_2, &v_301, code_53, &slit_36, flags_0, sc_0, &v_302, 0), _fx_catch_98); + _fx_R9Ast__id_t v_304 = v_302.t0; + FX_COPY_PTR(v_302.t1, &code_54); + bool res_20; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_304, &_fx_g9Ast__noid, &res_20, 0), _fx_catch_98); + if (res_20) { + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(e2_11, code_54, fx_result); } else { - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_322), _fx_catch_98); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_322, code_74, fx_result); + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_303), _fx_catch_98); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_303, code_54, fx_result); } _fx_catch_98: ; - if (v_322) { - _fx_free_N14K_form__kexp_t(&v_322); + if (v_303) { + _fx_free_N14K_form__kexp_t(&v_303); } - if (code_74) { - _fx_free_LN14K_form__kexp_t(&code_74); + if (code_54) { + _fx_free_LN14K_form__kexp_t(&code_54); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_321); - _fx_free_Nt6option1N14K_form__kexp_t(&v_320); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_302); + _fx_free_Nt6option1N14K_form__kexp_t(&v_301); _fx_endmatch_13: ; FX_CHECK_EXN(_fx_catch_99); @@ -14929,107 +14501,107 @@ FX_EXTERN_C int if (ktyp_2) { _fx_free_N14K_form__ktyp_t(&ktyp_2); } - if (code_73) { - _fx_free_LN14K_form__kexp_t(&code_73); + if (code_53) { + _fx_free_LN14K_form__kexp_t(&code_53); } if (e2_11) { _fx_free_N14K_form__kexp_t(&e2_11); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_318); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_299); goto _fx_endmatch_14; } if (tag_0 == 35) { - _fx_LN14K_form__kexp_t code_75 = 0; - _fx_N14K_form__kexp_t v_324 = 0; + _fx_LN14K_form__kexp_t code_55 = 0; + _fx_N14K_form__kexp_t v_305 = 0; FX_CALL( _fx_M11K_normalizeFM13transform_funLN14K_form__kexp_t3rR13Ast__deffun_tLN14K_form__kexp_tLN12Ast__scope_t( - e_0->u.DefFun, code_0, sc_0, &code_75, 0), _fx_catch_100); - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_324), _fx_catch_100); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_324, code_75, fx_result); + e_0->u.DefFun, code_0, sc_0, &code_55, 0), _fx_catch_100); + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_305), _fx_catch_100); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_305, code_55, fx_result); _fx_catch_100: ; - if (v_324) { - _fx_free_N14K_form__kexp_t(&v_324); + if (v_305) { + _fx_free_N14K_form__kexp_t(&v_305); } - if (code_75) { - _fx_free_LN14K_form__kexp_t(&code_75); + if (code_55) { + _fx_free_LN14K_form__kexp_t(&code_55); } goto _fx_endmatch_14; } if (tag_0 == 37) { - _fx_N14K_form__kexp_t v_325 = 0; - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_325), _fx_catch_101); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_325, code_0, fx_result); + _fx_N14K_form__kexp_t v_306 = 0; + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_306), _fx_catch_101); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_306, code_0, fx_result); _fx_catch_101: ; - if (v_325) { - _fx_free_N14K_form__kexp_t(&v_325); + if (v_306) { + _fx_free_N14K_form__kexp_t(&v_306); } goto _fx_endmatch_14; } if (tag_0 == 38) { - _fx_N14K_form__kexp_t v_326 = 0; - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_326), _fx_catch_102); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_326, code_0, fx_result); + _fx_N14K_form__kexp_t v_307 = 0; + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_307), _fx_catch_102); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_307, code_0, fx_result); _fx_catch_102: ; - if (v_326) { - _fx_free_N14K_form__kexp_t(&v_326); + if (v_307) { + _fx_free_N14K_form__kexp_t(&v_307); } goto _fx_endmatch_14; } if (tag_0 == 36) { - _fx_N14K_form__kexp_t v_327 = 0; - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_327), _fx_catch_103); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_327, code_0, fx_result); + _fx_N14K_form__kexp_t v_308 = 0; + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_308), _fx_catch_103); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_308, code_0, fx_result); _fx_catch_103: ; - if (v_327) { - _fx_free_N14K_form__kexp_t(&v_327); + if (v_308) { + _fx_free_N14K_form__kexp_t(&v_308); } goto _fx_endmatch_14; } if (tag_0 == 39) { - _fx_N14K_form__kexp_t v_328 = 0; - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_328), _fx_catch_104); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_328, code_0, fx_result); + _fx_N14K_form__kexp_t v_309 = 0; + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_309), _fx_catch_104); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_309, code_0, fx_result); _fx_catch_104: ; - if (v_328) { - _fx_free_N14K_form__kexp_t(&v_328); + if (v_309) { + _fx_free_N14K_form__kexp_t(&v_309); } goto _fx_endmatch_14; } if (tag_0 == 40) { - _fx_N14K_form__kexp_t v_329 = 0; - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_329), _fx_catch_105); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_329, code_0, fx_result); + _fx_N14K_form__kexp_t v_310 = 0; + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_310), _fx_catch_105); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_310, code_0, fx_result); _fx_catch_105: ; - if (v_329) { - _fx_free_N14K_form__kexp_t(&v_329); + if (v_310) { + _fx_free_N14K_form__kexp_t(&v_310); } goto _fx_endmatch_14; } if (tag_0 == 41) { - _fx_N14K_form__kexp_t v_330 = 0; - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_330), _fx_catch_106); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_330, code_0, fx_result); + _fx_N14K_form__kexp_t v_311 = 0; + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_311), _fx_catch_106); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_311, code_0, fx_result); _fx_catch_106: ; - if (v_330) { - _fx_free_N14K_form__kexp_t(&v_330); + if (v_311) { + _fx_free_N14K_form__kexp_t(&v_311); } goto _fx_endmatch_14; } if (tag_0 == 42) { - _fx_N14K_form__kexp_t v_331 = 0; - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_331), _fx_catch_107); - _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_331, code_0, fx_result); + _fx_N14K_form__kexp_t v_312 = 0; + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&eloc_0, &v_312), _fx_catch_107); + _fx_make_T2N14K_form__kexp_tLN14K_form__kexp_t(v_312, code_0, fx_result); _fx_catch_107: ; - if (v_331) { - _fx_free_N14K_form__kexp_t(&v_331); + if (v_312) { + _fx_free_N14K_form__kexp_t(&v_312); } goto _fx_endmatch_14; } @@ -15061,66 +14633,58 @@ static int struct _fx_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t* fx_result, void* fx_fv) { - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t __fold_result___0 = {0}; - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t v_0 = {0}; _fx_LT2R9Ast__id_tN13K_form__dom_t idom_list_0 = 0; _fx_LN14K_form__kexp_t code_1 = 0; _fx_LN14K_form__kexp_t body_code_0 = 0; - _fx_T2LR9Ast__id_tLN14K_form__kexp_t v_1 = {0}; + _fx_T2LR9Ast__id_tLN14K_form__kexp_t v_0 = {0}; _fx_LR9Ast__id_t at_ids_0 = 0; _fx_LN14K_form__kexp_t body_code_1 = 0; - _fx_LT2R9Ast__id_tN13K_form__dom_t __fold_result___1 = 0; - _fx_LT2R9Ast__id_tN13K_form__dom_t v_2 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t res_0 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_1 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); - _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t(0, code_0, 0, &__fold_result___0); + FX_COPY_PTR(code_0, &code_1); _fx_LT2N10Ast__pat_tN10Ast__exp_t lst_0 = pe_l_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_N10Ast__pat_t pi_0 = 0; _fx_N10Ast__exp_t ei_0 = 0; - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t v_3 = {0}; - _fx_LT2R9Ast__id_tN13K_form__dom_t idom_list_1 = 0; - _fx_LN14K_form__kexp_t code_2 = 0; - _fx_LN14K_form__kexp_t body_code_2 = 0; - _fx_T2N13K_form__dom_tLN14K_form__kexp_t v_4 = {0}; + _fx_T2N13K_form__dom_tLN14K_form__kexp_t v_2 = {0}; _fx_N13K_form__dom_t di_0 = {0}; - _fx_LN14K_form__kexp_t code_3 = 0; + _fx_LN14K_form__kexp_t code1_0 = 0; _fx_N14K_form__ktyp_t ptyp_0 = 0; - _fx_R16Ast__val_flags_t v_5 = {0}; - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_6 = {0}; - _fx_LN14K_form__kexp_t body_code_3 = 0; - _fx_T2R9Ast__id_tN13K_form__dom_t v_7 = {0}; - _fx_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t v_8 = {0}; + _fx_R16Ast__val_flags_t v_3 = {0}; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_4 = {0}; + _fx_LN14K_form__kexp_t body_code1_0 = 0; + _fx_T2R9Ast__id_tN13K_form__dom_t v_5 = {0}; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_6 = 0; _fx_T2N10Ast__pat_tN10Ast__exp_t* __pat___0 = &lst_0->hd; FX_COPY_PTR(__pat___0->t0, &pi_0); FX_COPY_PTR(__pat___0->t1, &ei_0); - _fx_copy_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t(&__fold_result___0, &v_3); - FX_COPY_PTR(v_3.t0, &idom_list_1); - FX_COPY_PTR(v_3.t1, &code_2); - FX_COPY_PTR(v_3.t2, &body_code_2); FX_CALL( _fx_M11K_normalizeFM7exp2domT2N13K_form__dom_tLN14K_form__kexp_t3N10Ast__exp_tLN14K_form__kexp_tLN12Ast__scope_t(ei_0, - code_2, sc_0, &v_4, 0), _fx_catch_2); - _fx_copy_N13K_form__dom_t(&v_4.t0, &di_0); - FX_COPY_PTR(v_4.t1, &code_3); + code_1, sc_0, &v_2, 0), _fx_catch_2); + _fx_copy_N13K_form__dom_t(&v_2.t0, &di_0); + FX_COPY_PTR(v_2.t1, &code1_0); + _fx_free_LN14K_form__kexp_t(&code_1); + FX_COPY_PTR(code1_0, &code_1); int tag_0 = di_0.tag; if (tag_0 == 3) { FX_COPY_PTR(_fx_g20K_normalize__KTypInt, &ptyp_0); goto _fx_endmatch_0; } - bool res_0; + bool res_1; if (tag_0 == 2) { - res_0 = true; + res_1 = true; } else if (tag_0 == 1) { - res_0 = true; + res_1 = true; } else { - res_0 = false; + res_1 = false; } FX_CHECK_EXN(_fx_catch_2); - if (res_0) { + if (res_1) { _fx_N14K_form__atom_t i_0 = {0}; - _fx_N14K_form__ktyp_t v_9 = 0; + _fx_N14K_form__ktyp_t v_7 = 0; int tag_1 = di_0.tag; if (tag_1 == 2) { _fx_copy_N14K_form__atom_t(&di_0.u.DomainFast, &i_0); @@ -15129,41 +14693,41 @@ static int _fx_copy_N14K_form__atom_t(&di_0.u.DomainElem, &i_0); } else { - _fx_N14K_form__klit_t v_10 = {0}; - _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g21K_normalize__KTypVoid, &v_10); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_10, &i_0); - _fx_free_N14K_form__klit_t(&v_10); + _fx_N14K_form__klit_t v_8 = {0}; + _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g21K_normalize__KTypVoid, &v_8); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_8, &i_0); + _fx_free_N14K_form__klit_t(&v_8); } FX_CHECK_EXN(_fx_catch_1); - FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(&i_0, eloc_0, &v_9, 0), + FX_CALL(_fx_M6K_formFM13get_atom_ktypN14K_form__ktyp_t2N14K_form__atom_tR10Ast__loc_t(&i_0, eloc_0, &v_7, 0), _fx_catch_1); - int tag_2 = FX_REC_VARIANT_TAG(v_9); + int tag_2 = FX_REC_VARIANT_TAG(v_7); if (tag_2 == 17) { - FX_COPY_PTR(v_9->u.KTypArray.t1, &ptyp_0); + FX_COPY_PTR(v_7->u.KTypArray.t1, &ptyp_0); } else if (tag_2 == 19) { - FX_COPY_PTR(v_9->u.KTypList, &ptyp_0); + FX_COPY_PTR(v_7->u.KTypList, &ptyp_0); } else if (tag_2 == 18) { - FX_COPY_PTR(v_9->u.KTypVector, &ptyp_0); + FX_COPY_PTR(v_7->u.KTypVector, &ptyp_0); } else if (tag_2 == 10) { FX_COPY_PTR(_fx_g21K_normalize__KTypChar, &ptyp_0); } else { - fx_exn_t v_11 = {0}; + fx_exn_t v_9 = {0}; fx_str_t slit_0 = FX_MAKE_STR("unsupported type of the domain expression in for loop"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(eloc_0, &slit_0, &v_11, 0), _fx_catch_0); - FX_THROW(&v_11, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(eloc_0, &slit_0, &v_9, 0), _fx_catch_0); + FX_THROW(&v_9, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_11); + fx_free_exn(&v_9); } FX_CHECK_EXN(_fx_catch_1); _fx_catch_1: ; - if (v_9) { - _fx_free_N14K_form__ktyp_t(&v_9); + if (v_7) { + _fx_free_N14K_form__ktyp_t(&v_7); } _fx_free_N14K_form__atom_t(&i_0); goto _fx_endmatch_0; @@ -15172,45 +14736,38 @@ static int _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_2); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_5, 0), _fx_catch_2); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_3, 0), _fx_catch_2); fx_str_t slit_1 = FX_MAKE_STR("i"); FX_CALL( _fx_M11K_normalizeFM17pat_simple_unpackT2R9Ast__id_tLN14K_form__kexp_t7N10Ast__pat_tN14K_form__ktyp_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tSR16Ast__val_flags_tLN12Ast__scope_t( - pi_0, ptyp_0, &_fx_g19K_normalize__None3_, body_code_2, &slit_1, &v_5, body_sc_0, &v_6, 0), _fx_catch_2); - _fx_R9Ast__id_t i_1 = v_6.t0; - FX_COPY_PTR(v_6.t1, &body_code_3); - _fx_make_T2R9Ast__id_tN13K_form__dom_t(&i_1, &di_0, &v_7); - FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_7, idom_list_1, false, &idom_list_1), _fx_catch_2); - _fx_make_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t(idom_list_1, code_3, body_code_3, &v_8); - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t(&__fold_result___0); - _fx_copy_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_8, &__fold_result___0); + pi_0, ptyp_0, &_fx_g19K_normalize__None3_, body_code_0, &slit_1, &v_3, body_sc_0, &v_4, 0), _fx_catch_2); + _fx_R9Ast__id_t i_1 = v_4.t0; + FX_COPY_PTR(v_4.t1, &body_code1_0); + _fx_free_LN14K_form__kexp_t(&body_code_0); + FX_COPY_PTR(body_code1_0, &body_code_0); + _fx_make_T2R9Ast__id_tN13K_form__dom_t(&i_1, &di_0, &v_5); + FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(&v_5, idom_list_0, true, &v_6), _fx_catch_2); + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&idom_list_0); + FX_COPY_PTR(v_6, &idom_list_0); _fx_catch_2: ; - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_8); - _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_7); - if (body_code_3) { - _fx_free_LN14K_form__kexp_t(&body_code_3); + if (v_6) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_6); + } + _fx_free_T2R9Ast__id_tN13K_form__dom_t(&v_5); + if (body_code1_0) { + _fx_free_LN14K_form__kexp_t(&body_code1_0); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_6); - _fx_free_R16Ast__val_flags_t(&v_5); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_4); + _fx_free_R16Ast__val_flags_t(&v_3); if (ptyp_0) { _fx_free_N14K_form__ktyp_t(&ptyp_0); } - if (code_3) { - _fx_free_LN14K_form__kexp_t(&code_3); + if (code1_0) { + _fx_free_LN14K_form__kexp_t(&code1_0); } _fx_free_N13K_form__dom_t(&di_0); - _fx_free_T2N13K_form__dom_tLN14K_form__kexp_t(&v_4); - if (body_code_2) { - _fx_free_LN14K_form__kexp_t(&body_code_2); - } - if (code_2) { - _fx_free_LN14K_form__kexp_t(&code_2); - } - if (idom_list_1) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&idom_list_1); - } - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_3); + _fx_free_T2N13K_form__dom_tLN14K_form__kexp_t(&v_2); if (ei_0) { _fx_free_N10Ast__exp_t(&ei_0); } @@ -15219,334 +14776,297 @@ static int } FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t(&__fold_result___0, &v_0); - FX_COPY_PTR(v_0.t0, &idom_list_0); - FX_COPY_PTR(v_0.t1, &code_1); - FX_COPY_PTR(v_0.t2, &body_code_0); _fx_R10Ast__loc_t loc_0; FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(idx_pat_0, &loc_0, 0), _fx_cleanup); int tag_3 = FX_REC_VARIANT_TAG(idx_pat_0); if (tag_3 == 1) { - _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(0, body_code_0, &v_1); goto _fx_endmatch_2; + _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(0, body_code_0, &v_0); goto _fx_endmatch_2; } if (tag_3 == 9) { _fx_T3N10Ast__pat_tN10Ast__typ_tR10Ast__loc_t* vcase_0 = &idx_pat_0->u.PatTyped; if (FX_REC_VARIANT_TAG(vcase_0->t1) == 6) { - _fx_R16Ast__val_flags_t v_12 = {0}; - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_13 = {0}; - _fx_LN14K_form__kexp_t body_code_4 = 0; - _fx_LR9Ast__id_t v_14 = 0; - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_12, 0), _fx_catch_3); + _fx_R16Ast__val_flags_t v_10 = {0}; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_11 = {0}; + _fx_LN14K_form__kexp_t body_code_2 = 0; + _fx_LR9Ast__id_t v_12 = 0; + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_10, 0), _fx_catch_3); fx_str_t slit_2 = FX_MAKE_STR("i"); FX_CALL( _fx_M11K_normalizeFM17pat_simple_unpackT2R9Ast__id_tLN14K_form__kexp_t7N10Ast__pat_tN14K_form__ktyp_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tSR16Ast__val_flags_tLN12Ast__scope_t( - vcase_0->t0, _fx_g20K_normalize__KTypInt, &_fx_g19K_normalize__None3_, body_code_0, &slit_2, &v_12, body_sc_0, - &v_13, 0), _fx_catch_3); - _fx_R9Ast__id_t idx_0 = v_13.t0; - FX_COPY_PTR(v_13.t1, &body_code_4); - FX_CALL(_fx_cons_LR9Ast__id_t(&idx_0, 0, true, &v_14), _fx_catch_3); - _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(v_14, body_code_4, &v_1); + vcase_0->t0, _fx_g20K_normalize__KTypInt, &_fx_g19K_normalize__None3_, body_code_0, &slit_2, &v_10, body_sc_0, + &v_11, 0), _fx_catch_3); + _fx_R9Ast__id_t idx_0 = v_11.t0; + FX_COPY_PTR(v_11.t1, &body_code_2); + FX_CALL(_fx_cons_LR9Ast__id_t(&idx_0, 0, true, &v_12), _fx_catch_3); + _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(v_12, body_code_2, &v_0); _fx_catch_3: ; - FX_FREE_LIST_SIMPLE(&v_14); - if (body_code_4) { - _fx_free_LN14K_form__kexp_t(&body_code_4); + FX_FREE_LIST_SIMPLE(&v_12); + if (body_code_2) { + _fx_free_LN14K_form__kexp_t(&body_code_2); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_13); - _fx_free_R16Ast__val_flags_t(&v_12); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_11); + _fx_free_R16Ast__val_flags_t(&v_10); goto _fx_endmatch_2; } } if (tag_3 == 9) { _fx_T3N10Ast__pat_tN10Ast__typ_tR10Ast__loc_t* vcase_1 = &idx_pat_0->u.PatTyped; - _fx_N10Ast__typ_t v_15 = vcase_1->t1; - if (FX_REC_VARIANT_TAG(v_15) == 18) { + _fx_N10Ast__typ_t v_13 = vcase_1->t1; + if (FX_REC_VARIANT_TAG(v_13) == 18) { _fx_N10Ast__pat_t p_0 = 0; - _fx_LN10Ast__typ_t tl_0 = v_15->u.TypTuple; + _fx_LN10Ast__typ_t tl_0 = v_13->u.TypTuple; FX_CALL(_fx_M3AstFM14pat_skip_typedN10Ast__pat_t1N10Ast__pat_t(vcase_1->t0, &p_0, 0), _fx_catch_16); int tag_4 = FX_REC_VARIANT_TAG(p_0); if (tag_4 == 8) { - _fx_N10Ast__pat_t v_16 = p_0->u.PatAs.t0; - if (FX_REC_VARIANT_TAG(v_16) == 4) { - fx_exn_t v_17 = {0}; - _fx_T2LR9Ast__id_tLN14K_form__kexp_t __fold_result___2 = {0}; + _fx_N10Ast__pat_t v_14 = p_0->u.PatAs.t0; + if (FX_REC_VARIANT_TAG(v_14) == 4) { + fx_exn_t v_15 = {0}; + _fx_LR9Ast__id_t at_ids_1 = 0; + _fx_LN14K_form__kexp_t body_code_3 = 0; _fx_LN10Ast__pat_t pl_0 = 0; _fx_LN10Ast__typ_t tl_1 = 0; - _fx_T2LR9Ast__id_tLN14K_form__kexp_t v_18 = {0}; - _fx_LR9Ast__id_t at_ids_1 = 0; - _fx_LN14K_form__kexp_t body_code_5 = 0; - _fx_LR9Ast__id_t __fold_result___3 = 0; - _fx_LR9Ast__id_t v_19 = 0; - _fx_LN10Ast__pat_t pl_1 = v_16->u.PatTuple.t0; - int_ v_20 = _fx_M11K_normalizeFM6lengthi1LN10Ast__pat_t(pl_1, 0); - int_ v_21 = _fx_M11K_normalizeFM6lengthi1LN10Ast__typ_t(tl_0, 0); - if (v_20 != v_21) { + _fx_LR9Ast__id_t res_2 = 0; + _fx_LR9Ast__id_t v_16 = 0; + _fx_LN10Ast__pat_t pl_1 = v_14->u.PatTuple.t0; + int_ v_17 = _fx_M11K_normalizeFM6lengthi1LN10Ast__pat_t(pl_1, 0); + int_ v_18 = _fx_M11K_normalizeFM6lengthi1LN10Ast__typ_t(tl_0, 0); + if (v_17 != v_18) { fx_str_t slit_3 = FX_MAKE_STR("the \'@\' tuple pattern and its type do not match"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_3, &v_17, 0), _fx_catch_8); - FX_THROW(&v_17, false, _fx_catch_8); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_3, &v_15, 0), _fx_catch_8); + FX_THROW(&v_15, false, _fx_catch_8); } - _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(0, body_code_0, &__fold_result___2); + FX_COPY_PTR(body_code_0, &body_code_3); FX_COPY_PTR(pl_1, &pl_0); _fx_LN10Ast__pat_t lst_1 = pl_0; FX_COPY_PTR(tl_0, &tl_1); _fx_LN10Ast__typ_t lst_2 = tl_1; for (; lst_1 && lst_2; lst_2 = lst_2->tl, lst_1 = lst_1->tl) { - _fx_T2LR9Ast__id_tLN14K_form__kexp_t v_22 = {0}; - _fx_LR9Ast__id_t at_ids_2 = 0; - _fx_LN14K_form__kexp_t body_code_6 = 0; - _fx_T2LR9Ast__id_tLN14K_form__kexp_t v_23 = {0}; _fx_N10Ast__typ_t ti_0 = lst_2->hd; _fx_N10Ast__pat_t pi_1 = lst_1->hd; - _fx_copy_T2LR9Ast__id_tLN14K_form__kexp_t(&__fold_result___2, &v_22); - FX_COPY_PTR(v_22.t0, &at_ids_2); - FX_COPY_PTR(v_22.t1, &body_code_6); if (FX_REC_VARIANT_TAG(ti_0) == 6) { - _fx_R16Ast__val_flags_t v_24 = {0}; - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_25 = {0}; - _fx_LN14K_form__kexp_t body_code_7 = 0; - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_24, 0), _fx_catch_4); + _fx_R16Ast__val_flags_t v_19 = {0}; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_20 = {0}; + _fx_LN14K_form__kexp_t body_code1_1 = 0; + _fx_LR9Ast__id_t v_21 = 0; + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_19, 0), _fx_catch_4); fx_str_t slit_4 = FX_MAKE_STR("i"); FX_CALL( _fx_M11K_normalizeFM17pat_simple_unpackT2R9Ast__id_tLN14K_form__kexp_t7N10Ast__pat_tN14K_form__ktyp_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tSR16Ast__val_flags_tLN12Ast__scope_t( - pi_1, _fx_g20K_normalize__KTypInt, &_fx_g19K_normalize__None3_, body_code_6, &slit_4, &v_24, - body_sc_0, &v_25, 0), _fx_catch_4); - _fx_R9Ast__id_t i_2 = v_25.t0; - FX_COPY_PTR(v_25.t1, &body_code_7); - FX_CALL(_fx_cons_LR9Ast__id_t(&i_2, at_ids_2, false, &at_ids_2), _fx_catch_4); - _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(at_ids_2, body_code_7, &v_23); + pi_1, _fx_g20K_normalize__KTypInt, &_fx_g19K_normalize__None3_, body_code_3, &slit_4, &v_19, + body_sc_0, &v_20, 0), _fx_catch_4); + _fx_R9Ast__id_t i_2 = v_20.t0; + FX_COPY_PTR(v_20.t1, &body_code1_1); + _fx_free_LN14K_form__kexp_t(&body_code_3); + FX_COPY_PTR(body_code1_1, &body_code_3); + FX_CALL(_fx_cons_LR9Ast__id_t(&i_2, at_ids_1, true, &v_21), _fx_catch_4); + FX_FREE_LIST_SIMPLE(&at_ids_1); + FX_COPY_PTR(v_21, &at_ids_1); _fx_catch_4: ; - if (body_code_7) { - _fx_free_LN14K_form__kexp_t(&body_code_7); + FX_FREE_LIST_SIMPLE(&v_21); + if (body_code1_1) { + _fx_free_LN14K_form__kexp_t(&body_code1_1); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_25); - _fx_free_R16Ast__val_flags_t(&v_24); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_20); + _fx_free_R16Ast__val_flags_t(&v_19); } else { - fx_exn_t v_26 = {0}; + fx_exn_t v_22 = {0}; fx_str_t slit_5 = FX_MAKE_STR("some of \'@\' indices is not an integer"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_5, &v_26, 0), _fx_catch_5); - FX_THROW(&v_26, false, _fx_catch_5); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_5, &v_22, 0), _fx_catch_5); + FX_THROW(&v_22, false, _fx_catch_5); _fx_catch_5: ; - fx_free_exn(&v_26); + fx_free_exn(&v_22); } FX_CHECK_EXN(_fx_catch_6); - _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&__fold_result___2); - _fx_copy_T2LR9Ast__id_tLN14K_form__kexp_t(&v_23, &__fold_result___2); _fx_catch_6: ; - _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&v_23); - if (body_code_6) { - _fx_free_LN14K_form__kexp_t(&body_code_6); - } - FX_FREE_LIST_SIMPLE(&at_ids_2); - _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&v_22); FX_CHECK_EXN(_fx_catch_8); } int s_0 = !lst_1 + !lst_2; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_8); - _fx_copy_T2LR9Ast__id_tLN14K_form__kexp_t(&__fold_result___2, &v_18); - FX_COPY_PTR(v_18.t0, &at_ids_1); - FX_COPY_PTR(v_18.t1, &body_code_5); _fx_LR9Ast__id_t lst_3 = at_ids_1; for (; lst_3; lst_3 = lst_3->tl) { - _fx_LR9Ast__id_t r_0 = 0; + _fx_LR9Ast__id_t v_23 = 0; _fx_R9Ast__id_t* a_0 = &lst_3->hd; - FX_COPY_PTR(__fold_result___3, &r_0); - FX_CALL(_fx_cons_LR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_7); - FX_FREE_LIST_SIMPLE(&__fold_result___3); - FX_COPY_PTR(r_0, &__fold_result___3); + FX_CALL(_fx_cons_LR9Ast__id_t(a_0, res_2, true, &v_23), _fx_catch_7); + FX_FREE_LIST_SIMPLE(&res_2); + FX_COPY_PTR(v_23, &res_2); _fx_catch_7: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_23); FX_CHECK_EXN(_fx_catch_8); } - FX_COPY_PTR(__fold_result___3, &v_19); - _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(v_19, body_code_5, &v_1); + FX_COPY_PTR(res_2, &v_16); + _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(v_16, body_code_3, &v_0); _fx_catch_8: ; - FX_FREE_LIST_SIMPLE(&v_19); - FX_FREE_LIST_SIMPLE(&__fold_result___3); - if (body_code_5) { - _fx_free_LN14K_form__kexp_t(&body_code_5); - } - FX_FREE_LIST_SIMPLE(&at_ids_1); - _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&v_18); + FX_FREE_LIST_SIMPLE(&v_16); + FX_FREE_LIST_SIMPLE(&res_2); if (tl_1) { _fx_free_LN10Ast__typ_t(&tl_1); } if (pl_0) { _fx_free_LN10Ast__pat_t(&pl_0); } - _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&__fold_result___2); - fx_free_exn(&v_17); + if (body_code_3) { + _fx_free_LN14K_form__kexp_t(&body_code_3); + } + FX_FREE_LIST_SIMPLE(&at_ids_1); + fx_free_exn(&v_15); goto _fx_endmatch_1; } } if (tag_4 == 3) { fx_str_t prefix_0 = {0}; - _fx_T2LR9Ast__id_tLN14K_form__ktyp_t __fold_result___4 = {0}; - _fx_LN10Ast__typ_t tl_2 = 0; - _fx_T2LR9Ast__id_tLN14K_form__ktyp_t v_27 = {0}; - _fx_LR9Ast__id_t at_ids_3 = 0; + _fx_LR9Ast__id_t at_ids_2 = 0; _fx_LN14K_form__ktyp_t ktl_0 = 0; + _fx_LN10Ast__typ_t tl_2 = 0; _fx_N14K_form__ktyp_t ktyp_0 = 0; - _fx_LR9Ast__id_t __fold_result___5 = 0; - _fx_LR9Ast__id_t at_ids_4 = 0; - _fx_R16Ast__val_flags_t v_28 = {0}; - _fx_LN14K_form__atom_t v_29 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_30 = {0}; - _fx_N14K_form__kexp_t v_31 = 0; - _fx_Nt6option1N14K_form__kexp_t v_32 = {0}; - _fx_LN14K_form__kexp_t body_code_8 = 0; + _fx_LR9Ast__id_t res_3 = 0; + _fx_LR9Ast__id_t at_ids_3 = 0; + _fx_R16Ast__val_flags_t v_24 = {0}; + _fx_LN14K_form__atom_t v_25 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_26 = {0}; + _fx_N14K_form__kexp_t v_27 = 0; + _fx_Nt6option1N14K_form__kexp_t v_28 = {0}; + _fx_LN14K_form__kexp_t body_code_4 = 0; _fx_R9Ast__id_t* idx_1 = &p_0->u.PatIdent.t0; FX_CALL(_fx_M3AstFM2ppS1RM4id_t(idx_1, &prefix_0, 0), _fx_catch_14); - _fx_make_T2LR9Ast__id_tLN14K_form__ktyp_t(0, 0, &__fold_result___4); int_ idx_2 = 0; FX_COPY_PTR(tl_0, &tl_2); _fx_LN10Ast__typ_t lst_4 = tl_2; for (; lst_4; lst_4 = lst_4->tl, idx_2 += 1) { - _fx_T2LR9Ast__id_tLN14K_form__ktyp_t v_33 = {0}; - _fx_LR9Ast__id_t at_ids_5 = 0; - _fx_LN14K_form__ktyp_t ktl_1 = 0; - _fx_T2LR9Ast__id_tLN14K_form__ktyp_t v_34 = {0}; _fx_N10Ast__typ_t ti_1 = lst_4->hd; - _fx_copy_T2LR9Ast__id_tLN14K_form__ktyp_t(&__fold_result___4, &v_33); - FX_COPY_PTR(v_33.t0, &at_ids_5); - FX_COPY_PTR(v_33.t1, &ktl_1); if (FX_REC_VARIANT_TAG(ti_1) == 6) { - fx_str_t v_35 = {0}; - fx_str_t v_36 = {0}; - _fx_R16Ast__val_flags_t v_37 = {0}; - _fx_LN14K_form__kexp_t res_1 = 0; - FX_CALL(_fx_F6stringS1i(idx_2, &v_35, 0), _fx_catch_9); + fx_str_t v_29 = {0}; + fx_str_t v_30 = {0}; + _fx_R16Ast__val_flags_t v_31 = {0}; + _fx_LN14K_form__kexp_t res_4 = 0; + _fx_LR9Ast__id_t v_32 = 0; + _fx_LN14K_form__ktyp_t v_33 = 0; + FX_CALL(_fx_F6stringS1i(idx_2, &v_29, 0), _fx_catch_9); { - const fx_str_t strs_0[] = { prefix_0, v_35 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_36), _fx_catch_9); + const fx_str_t strs_0[] = { prefix_0, v_29 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_30), _fx_catch_9); } _fx_R9Ast__id_t i_3; - FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(km_idx_0, &v_36, &i_3, 0), _fx_catch_9); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_37, 0), _fx_catch_9); + FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(km_idx_0, &v_30, &i_3, 0), _fx_catch_9); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_31, 0), _fx_catch_9); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &i_3, _fx_g20K_normalize__KTypInt, &v_37, &_fx_g19K_normalize__None3_, 0, &loc_0, &res_1, 0), + &i_3, _fx_g20K_normalize__KTypInt, &v_31, &_fx_g19K_normalize__None3_, 0, &loc_0, &res_4, 0), _fx_catch_9); - FX_CALL(_fx_cons_LR9Ast__id_t(&i_3, at_ids_5, false, &at_ids_5), _fx_catch_9); - FX_CALL(_fx_cons_LN14K_form__ktyp_t(_fx_g20K_normalize__KTypInt, ktl_1, false, &ktl_1), _fx_catch_9); - _fx_make_T2LR9Ast__id_tLN14K_form__ktyp_t(at_ids_5, ktl_1, &v_34); + FX_CALL(_fx_cons_LR9Ast__id_t(&i_3, at_ids_2, true, &v_32), _fx_catch_9); + FX_FREE_LIST_SIMPLE(&at_ids_2); + FX_COPY_PTR(v_32, &at_ids_2); + FX_CALL(_fx_cons_LN14K_form__ktyp_t(_fx_g20K_normalize__KTypInt, ktl_0, true, &v_33), _fx_catch_9); + _fx_free_LN14K_form__ktyp_t(&ktl_0); + FX_COPY_PTR(v_33, &ktl_0); _fx_catch_9: ; - if (res_1) { - _fx_free_LN14K_form__kexp_t(&res_1); + if (v_33) { + _fx_free_LN14K_form__ktyp_t(&v_33); + } + FX_FREE_LIST_SIMPLE(&v_32); + if (res_4) { + _fx_free_LN14K_form__kexp_t(&res_4); } - _fx_free_R16Ast__val_flags_t(&v_37); - FX_FREE_STR(&v_36); - FX_FREE_STR(&v_35); + _fx_free_R16Ast__val_flags_t(&v_31); + FX_FREE_STR(&v_30); + FX_FREE_STR(&v_29); } else { - fx_exn_t v_38 = {0}; + fx_exn_t v_34 = {0}; fx_str_t slit_6 = FX_MAKE_STR("some of \'@\' indices is not an integer"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_6, &v_38, 0), _fx_catch_10); - FX_THROW(&v_38, false, _fx_catch_10); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_6, &v_34, 0), _fx_catch_10); + FX_THROW(&v_34, false, _fx_catch_10); _fx_catch_10: ; - fx_free_exn(&v_38); + fx_free_exn(&v_34); } FX_CHECK_EXN(_fx_catch_11); - _fx_free_T2LR9Ast__id_tLN14K_form__ktyp_t(&__fold_result___4); - _fx_copy_T2LR9Ast__id_tLN14K_form__ktyp_t(&v_34, &__fold_result___4); _fx_catch_11: ; - _fx_free_T2LR9Ast__id_tLN14K_form__ktyp_t(&v_34); - if (ktl_1) { - _fx_free_LN14K_form__ktyp_t(&ktl_1); - } - FX_FREE_LIST_SIMPLE(&at_ids_5); - _fx_free_T2LR9Ast__id_tLN14K_form__ktyp_t(&v_33); FX_CHECK_EXN(_fx_catch_14); } - _fx_copy_T2LR9Ast__id_tLN14K_form__ktyp_t(&__fold_result___4, &v_27); - FX_COPY_PTR(v_27.t0, &at_ids_3); - FX_COPY_PTR(v_27.t1, &ktl_0); FX_CALL(_fx_M6K_formFM9KTypTupleN14K_form__ktyp_t1LN14K_form__ktyp_t(ktl_0, &ktyp_0), _fx_catch_14); - _fx_LR9Ast__id_t lst_5 = at_ids_3; + _fx_LR9Ast__id_t lst_5 = at_ids_2; for (; lst_5; lst_5 = lst_5->tl) { - _fx_LR9Ast__id_t r_1 = 0; + _fx_LR9Ast__id_t v_35 = 0; _fx_R9Ast__id_t* a_1 = &lst_5->hd; - FX_COPY_PTR(__fold_result___5, &r_1); - FX_CALL(_fx_cons_LR9Ast__id_t(a_1, r_1, false, &r_1), _fx_catch_12); - FX_FREE_LIST_SIMPLE(&__fold_result___5); - FX_COPY_PTR(r_1, &__fold_result___5); + FX_CALL(_fx_cons_LR9Ast__id_t(a_1, res_3, true, &v_35), _fx_catch_12); + FX_FREE_LIST_SIMPLE(&res_3); + FX_COPY_PTR(v_35, &res_3); _fx_catch_12: ; - FX_FREE_LIST_SIMPLE(&r_1); + FX_FREE_LIST_SIMPLE(&v_35); FX_CHECK_EXN(_fx_catch_14); } - FX_COPY_PTR(__fold_result___5, &at_ids_4); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_28, 0), _fx_catch_14); + FX_COPY_PTR(res_3, &at_ids_3); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_24, 0), _fx_catch_14); _fx_LN14K_form__atom_t lstend_0 = 0; - _fx_LR9Ast__id_t lst_6 = at_ids_4; + _fx_LR9Ast__id_t lst_6 = at_ids_3; for (; lst_6; lst_6 = lst_6->tl) { - _fx_N14K_form__atom_t res_2 = {0}; + _fx_N14K_form__atom_t res_5 = {0}; _fx_R9Ast__id_t* i_4 = &lst_6->hd; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(i_4, &res_2); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(i_4, &res_5); _fx_LN14K_form__atom_t node_0 = 0; - FX_CALL(_fx_cons_LN14K_form__atom_t(&res_2, 0, false, &node_0), _fx_catch_13); - FX_LIST_APPEND(v_29, lstend_0, node_0); + FX_CALL(_fx_cons_LN14K_form__atom_t(&res_5, 0, false, &node_0), _fx_catch_13); + FX_LIST_APPEND(v_25, lstend_0, node_0); _fx_catch_13: ; - _fx_free_N14K_form__atom_t(&res_2); + _fx_free_N14K_form__atom_t(&res_5); FX_CHECK_EXN(_fx_catch_14); } - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ktyp_0, &loc_0, &v_30); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ktyp_0, &loc_0, &v_26); FX_CALL( - _fx_M6K_formFM11KExpMkTupleN14K_form__kexp_t2LN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_29, &v_30, - &v_31), _fx_catch_14); - _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(v_31, &v_32); + _fx_M6K_formFM11KExpMkTupleN14K_form__kexp_t2LN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(v_25, &v_26, + &v_27), _fx_catch_14); + _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(v_27, &v_28); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - idx_1, ktyp_0, &v_28, &v_32, body_code_0, &loc_0, &body_code_8, 0), _fx_catch_14); - _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(at_ids_4, body_code_8, &v_1); + idx_1, ktyp_0, &v_24, &v_28, body_code_0, &loc_0, &body_code_4, 0), _fx_catch_14); + _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(at_ids_3, body_code_4, &v_0); _fx_catch_14: ; - if (body_code_8) { - _fx_free_LN14K_form__kexp_t(&body_code_8); + if (body_code_4) { + _fx_free_LN14K_form__kexp_t(&body_code_4); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_32); - if (v_31) { - _fx_free_N14K_form__kexp_t(&v_31); + _fx_free_Nt6option1N14K_form__kexp_t(&v_28); + if (v_27) { + _fx_free_N14K_form__kexp_t(&v_27); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_30); - if (v_29) { - _fx_free_LN14K_form__atom_t(&v_29); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_26); + if (v_25) { + _fx_free_LN14K_form__atom_t(&v_25); } - _fx_free_R16Ast__val_flags_t(&v_28); - FX_FREE_LIST_SIMPLE(&at_ids_4); - FX_FREE_LIST_SIMPLE(&__fold_result___5); + _fx_free_R16Ast__val_flags_t(&v_24); + FX_FREE_LIST_SIMPLE(&at_ids_3); + FX_FREE_LIST_SIMPLE(&res_3); if (ktyp_0) { _fx_free_N14K_form__ktyp_t(&ktyp_0); } - if (ktl_0) { - _fx_free_LN14K_form__ktyp_t(&ktl_0); - } - FX_FREE_LIST_SIMPLE(&at_ids_3); - _fx_free_T2LR9Ast__id_tLN14K_form__ktyp_t(&v_27); if (tl_2) { _fx_free_LN10Ast__typ_t(&tl_2); } - _fx_free_T2LR9Ast__id_tLN14K_form__ktyp_t(&__fold_result___4); + if (ktl_0) { + _fx_free_LN14K_form__ktyp_t(&ktl_0); + } + FX_FREE_LIST_SIMPLE(&at_ids_2); FX_FREE_STR(&prefix_0); goto _fx_endmatch_1; } - fx_exn_t v_39 = {0}; + fx_exn_t v_36 = {0}; fx_str_t slit_7 = FX_MAKE_STR("\'@\' pattern is expected to be either an integer scalar or a tuple of integer scalars"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_7, &v_39, 0), _fx_catch_15); - FX_THROW(&v_39, false, _fx_catch_15); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_7, &v_36, 0), _fx_catch_15); + FX_THROW(&v_36, false, _fx_catch_15); _fx_catch_15: ; - fx_free_exn(&v_39); + fx_free_exn(&v_36); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_16); @@ -15558,40 +15078,37 @@ static int goto _fx_endmatch_2; } } - fx_exn_t v_40 = {0}; + fx_exn_t v_37 = {0}; fx_str_t slit_8 = FX_MAKE_STR("\'@\' pattern is expected to be either an integer scalar or a tuple of integer scalars"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_8, &v_40, 0), _fx_catch_17); - FX_THROW(&v_40, false, _fx_catch_17); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_8, &v_37, 0), _fx_catch_17); + FX_THROW(&v_37, false, _fx_catch_17); _fx_catch_17: ; - fx_free_exn(&v_40); + fx_free_exn(&v_37); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_cleanup); - FX_COPY_PTR(v_1.t0, &at_ids_0); - FX_COPY_PTR(v_1.t1, &body_code_1); + FX_COPY_PTR(v_0.t0, &at_ids_0); + FX_COPY_PTR(v_0.t1, &body_code_1); _fx_LT2R9Ast__id_tN13K_form__dom_t lst_7 = idom_list_0; for (; lst_7; lst_7 = lst_7->tl) { - _fx_LT2R9Ast__id_tN13K_form__dom_t r_2 = 0; + _fx_LT2R9Ast__id_tN13K_form__dom_t v_38 = 0; _fx_T2R9Ast__id_tN13K_form__dom_t* a_2 = &lst_7->hd; - FX_COPY_PTR(__fold_result___1, &r_2); - FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(a_2, r_2, false, &r_2), _fx_catch_18); - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&__fold_result___1); - FX_COPY_PTR(r_2, &__fold_result___1); + FX_CALL(_fx_cons_LT2R9Ast__id_tN13K_form__dom_t(a_2, res_0, true, &v_38), _fx_catch_18); + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&res_0); + FX_COPY_PTR(v_38, &res_0); _fx_catch_18: ; - if (r_2) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&r_2); + if (v_38) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_38); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_2); - _fx_make_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t(v_2, at_ids_0, code_1, body_code_1, + FX_COPY_PTR(res_0, &v_1); + _fx_make_T4LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tLN14K_form__kexp_tLN14K_form__kexp_t(v_1, at_ids_0, code_1, body_code_1, fx_result); _fx_cleanup: ; - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t(&__fold_result___0); - _fx_free_T3LT2R9Ast__id_tN13K_form__dom_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_0); if (idom_list_0) { _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&idom_list_0); } @@ -15601,16 +15118,16 @@ _fx_cleanup: ; if (body_code_0) { _fx_free_LN14K_form__kexp_t(&body_code_0); } - _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&v_1); + _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&v_0); FX_FREE_LIST_SIMPLE(&at_ids_0); if (body_code_1) { _fx_free_LN14K_form__kexp_t(&body_code_1); } - if (__fold_result___1) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&__fold_result___1); + if (res_0) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&res_0); } - if (v_2) { - _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_2); + if (v_1) { + _fx_free_LT2R9Ast__id_tN13K_form__dom_t(&v_1); } return fx_status; } @@ -15932,10 +15449,11 @@ FX_EXTERN_C int int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); FX_CALL(_fx_make_rLT2SR10Ast__loc_t(0, &pragmas_ref_0), _fx_cleanup); + _fx_LT2SR10Ast__loc_t* pragmas_0 = &pragmas_ref_0->data; FX_CALL( _fx_M11K_normalizeFM10knorm_eseqLN14K_form__kexp_t4LN10Ast__exp_tLN14K_form__kexp_trLT2SR10Ast__loc_tLN12Ast__scope_t( eseq_0, code_0, pragmas_ref_0, sc_0, &code_1, 0), _fx_cleanup); - _fx_make_T2LN14K_form__kexp_tLT2SR10Ast__loc_t(code_1, pragmas_ref_0->data, fx_result); + _fx_make_T2LN14K_form__kexp_tLT2SR10Ast__loc_t(code_1, *pragmas_0, fx_result); _fx_cleanup: ; if (pragmas_ref_0) { @@ -16579,9 +16097,8 @@ FX_EXTERN_C int _fx_T2T4R9Ast__id_tiN14K_form__ktyp_tBLT2R9Ast__id_tN14K_form__ktyp_t v_0 = {0}; _fx_N14K_form__ktyp_t t_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t relems_found_0 = 0; - _fx_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti __fold_result___0 = 0; - _fx_LT2R9Ast__id_tN10Ast__pat_t relems_0 = 0; _fx_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti typed_rec_pl_0 = 0; + _fx_LT2R9Ast__id_tN10Ast__pat_t relems_0 = 0; _fx_T5R9Ast__id_tiN14K_form__ktyp_tBB v_1 = {0}; _fx_T3Nt6option1R9Ast__id_tLT2R9Ast__id_tN10Ast__pat_tR10Ast__loc_t* vcase_0 = &pat_0->u.PatRecord; _fx_R10Ast__loc_t* loc_0 = &vcase_0->t2; @@ -16599,123 +16116,102 @@ FX_EXTERN_C int _fx_LT2R9Ast__id_tN10Ast__pat_t lst_0 = relems_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_N10Ast__pat_t pi_0 = 0; - _fx_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti typed_rec_pl_1 = 0; - _fx_T2iN14K_form__ktyp_t __fold_result___1 = {0}; - _fx_T2iN14K_form__ktyp_t v_3 = {0}; _fx_N14K_form__ktyp_t found_t_0 = 0; + _fx_N14K_form__ktyp_t found_t_1 = 0; + fx_str_t v_3 = {0}; fx_str_t v_4 = {0}; fx_str_t v_5 = {0}; - fx_str_t v_6 = {0}; - fx_exn_t v_7 = {0}; - _fx_T4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti v_8 = {0}; + fx_exn_t v_6 = {0}; + _fx_T4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti v_7 = {0}; + _fx_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti v_8 = 0; _fx_T2R9Ast__id_tN10Ast__pat_t* __pat___0 = &lst_0->hd; _fx_R9Ast__id_t ni_0 = __pat___0->t0; FX_COPY_PTR(__pat___0->t1, &pi_0); - FX_COPY_PTR(__fold_result___0, &typed_rec_pl_1); _fx_R9Ast__id_t ni_orig_0; FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&ni_0, &ni_orig_0, 0), _fx_catch_1); - _fx_make_T2iN14K_form__ktyp_t(-1, _fx_g21K_normalize__KTypVoid, &__fold_result___1); + int_ found_idx_0 = -1; + FX_COPY_PTR(_fx_g21K_normalize__KTypVoid, &found_t_0); int_ idx_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_1 = relems_found_0; for (; lst_1; lst_1 = lst_1->tl, idx_0 += 1) { _fx_N14K_form__ktyp_t tj_0 = 0; - _fx_T2iN14K_form__ktyp_t v_9 = {0}; - _fx_N14K_form__ktyp_t found_t_1 = 0; - _fx_T2iN14K_form__ktyp_t v_10 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___1 = &lst_1->hd; _fx_R9Ast__id_t nj_0 = __pat___1->t0; FX_COPY_PTR(__pat___1->t1, &tj_0); - _fx_copy_T2iN14K_form__ktyp_t(&__fold_result___1, &v_9); - FX_COPY_PTR(v_9.t1, &found_t_1); - _fx_R9Ast__id_t v_11; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&nj_0, &v_11, 0), _fx_catch_0); + _fx_R9Ast__id_t v_9; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&nj_0, &v_9, 0), _fx_catch_0); bool res_0; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_11, &ni_orig_0, &res_0, 0), _fx_catch_0); + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_9, &ni_orig_0, &res_0, 0), _fx_catch_0); if (res_0) { - _fx_make_T2iN14K_form__ktyp_t(idx_0, tj_0, &v_10); - } - else { - _fx_make_T2iN14K_form__ktyp_t(v_9.t0, found_t_1, &v_10); + found_idx_0 = idx_0; _fx_free_N14K_form__ktyp_t(&found_t_0); FX_COPY_PTR(tj_0, &found_t_0); } - _fx_free_T2iN14K_form__ktyp_t(&__fold_result___1); - _fx_copy_T2iN14K_form__ktyp_t(&v_10, &__fold_result___1); _fx_catch_0: ; - _fx_free_T2iN14K_form__ktyp_t(&v_10); - if (found_t_1) { - _fx_free_N14K_form__ktyp_t(&found_t_1); - } - _fx_free_T2iN14K_form__ktyp_t(&v_9); if (tj_0) { _fx_free_N14K_form__ktyp_t(&tj_0); } FX_CHECK_EXN(_fx_catch_1); } - _fx_copy_T2iN14K_form__ktyp_t(&__fold_result___1, &v_3); - int_ found_idx_0 = v_3.t0; - FX_COPY_PTR(v_3.t1, &found_t_0); - if (found_idx_0 < 0) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ni_0, &v_4, 0), _fx_catch_1); - _fx_R9Ast__id_t v_12; + int_ found_idx_1 = found_idx_0; + FX_COPY_PTR(found_t_0, &found_t_1); + if (found_idx_1 < 0) { + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&ni_0, &v_3, 0), _fx_catch_1); + _fx_R9Ast__id_t v_10; if (rn_opt_0->tag == 2) { - v_12 = rn_opt_0->u.Some; + v_10 = rn_opt_0->u.Some; } else { - v_12 = _fx_g9Ast__noid; + v_10 = _fx_g9Ast__noid; } FX_CHECK_EXN(_fx_catch_1); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_12, &v_5, 0), _fx_catch_1); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_10, &v_4, 0), _fx_catch_1); fx_str_t slit_0 = FX_MAKE_STR("element \'"); fx_str_t slit_1 = FX_MAKE_STR("\' is not found in the record \'"); fx_str_t slit_2 = FX_MAKE_STR("\'"); { - const fx_str_t strs_0[] = { slit_0, v_4, slit_1, v_5, slit_2 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_6), _fx_catch_1); + const fx_str_t strs_0[] = { slit_0, v_3, slit_1, v_4, slit_2 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_5), _fx_catch_1); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_6, &v_7, 0), _fx_catch_1); - FX_THROW(&v_7, false, _fx_catch_1); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_5, &v_6, 0), _fx_catch_1); + FX_THROW(&v_6, false, _fx_catch_1); } - _fx_make_T4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&ni_0, pi_0, found_t_0, found_idx_0, &v_8); - FX_CALL(_fx_cons_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&v_8, typed_rec_pl_1, false, &typed_rec_pl_1), - _fx_catch_1); - _fx_free_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&__fold_result___0); - FX_COPY_PTR(typed_rec_pl_1, &__fold_result___0); + _fx_make_T4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&ni_0, pi_0, found_t_1, found_idx_1, &v_7); + FX_CALL(_fx_cons_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&v_7, typed_rec_pl_0, true, &v_8), _fx_catch_1); + _fx_free_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&typed_rec_pl_0); + FX_COPY_PTR(v_8, &typed_rec_pl_0); _fx_catch_1: ; - _fx_free_T4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&v_8); - fx_free_exn(&v_7); - FX_FREE_STR(&v_6); + if (v_8) { + _fx_free_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&v_8); + } + _fx_free_T4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&v_7); + fx_free_exn(&v_6); FX_FREE_STR(&v_5); FX_FREE_STR(&v_4); + FX_FREE_STR(&v_3); + if (found_t_1) { + _fx_free_N14K_form__ktyp_t(&found_t_1); + } if (found_t_0) { _fx_free_N14K_form__ktyp_t(&found_t_0); } - _fx_free_T2iN14K_form__ktyp_t(&v_3); - _fx_free_T2iN14K_form__ktyp_t(&__fold_result___1); - if (typed_rec_pl_1) { - _fx_free_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&typed_rec_pl_1); - } if (pi_0) { _fx_free_N10Ast__pat_t(&pi_0); } FX_CHECK_EXN(_fx_catch_2); } - FX_COPY_PTR(__fold_result___0, &typed_rec_pl_0); - int_ v_13 = _fx_M11K_normalizeFM6lengthi1LT2R9Ast__id_tN14K_form__ktyp_t(relems_found_0, 0); - _fx_make_T5R9Ast__id_tiN14K_form__ktyp_tBB(&ctor_0, case_i_0, t_0, multiple_cases_0, v_13 > 1, &v_1); + int_ v_11 = _fx_M11K_normalizeFM6lengthi1LT2R9Ast__id_tN14K_form__ktyp_t(relems_found_0, 0); + _fx_make_T5R9Ast__id_tiN14K_form__ktyp_tBB(&ctor_0, case_i_0, t_0, multiple_cases_0, v_11 > 1, &v_1); _fx_make_T2T5R9Ast__id_tiN14K_form__ktyp_tBBLT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&v_1, typed_rec_pl_0, fx_result); _fx_catch_2: ; _fx_free_T5R9Ast__id_tiN14K_form__ktyp_tBB(&v_1); - if (typed_rec_pl_0) { - _fx_free_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&typed_rec_pl_0); - } if (relems_0) { _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&relems_0); } - if (__fold_result___0) { - _fx_free_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&__fold_result___0); + if (typed_rec_pl_0) { + _fx_free_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&typed_rec_pl_0); } if (relems_found_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&relems_found_0); @@ -16726,15 +16222,15 @@ FX_EXTERN_C int _fx_free_T2T4R9Ast__id_tiN14K_form__ktyp_tBLT2R9Ast__id_tN14K_form__ktyp_t(&v_0); } else { - fx_exn_t v_14 = {0}; - _fx_R10Ast__loc_t v_15; - FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(pat_0, &v_15, 0), _fx_catch_3); + fx_exn_t v_12 = {0}; + _fx_R10Ast__loc_t v_13; + FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(pat_0, &v_13, 0), _fx_catch_3); fx_str_t slit_3 = FX_MAKE_STR("record (or sometimes an exception) is expected"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_15, &slit_3, &v_14, 0), _fx_catch_3); - FX_THROW(&v_14, false, _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_13, &slit_3, &v_12, 0), _fx_catch_3); + FX_THROW(&v_12, false, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_14); + fx_free_exn(&v_12); } return fx_status; } @@ -17024,9 +16520,10 @@ FX_EXTERN_C int _fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__k _fx_LT2N10Ast__pat_tN14K_form__ktyp_t typed_var_pl_0 = 0; FX_CALL(_fx_M6K_formFM12get_kvariantrRM13kdefvariant_t2N14K_form__ktyp_tR10Ast__loc_t(ptyp_2, loc_0, &v_2, 0), _fx_catch_7); - FX_COPY_PTR(v_2->data.kvar_cases, &kvar_cases_0); - int_ v_4 = _fx_M11K_normalizeFM6lengthi1LT2R9Ast__id_tN14K_form__ktyp_t(kvar_cases_0, 0); - if (v_4 > 1) { + _fx_R21K_form__kdefvariant_t* v_4 = &v_2->data; + FX_COPY_PTR(v_4->kvar_cases, &kvar_cases_0); + int_ v_5 = _fx_M11K_normalizeFM6lengthi1LT2R9Ast__id_tN14K_form__ktyp_t(kvar_cases_0, 0); + if (v_5 > 1) { result_1 = true; } else { @@ -17042,9 +16539,9 @@ FX_EXTERN_C int _fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__k _fx_T2N10Ast__pat_tN14K_form__ktyp_t* __pat___0 = &lst_2->hd; FX_COPY_PTR(__pat___0->t0, &p_4); FX_COPY_PTR(__pat___0->t1, &t_0); - bool v_5; - FX_CALL(_fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__ktyp_t(p_4, t_0, &v_5, 0), _fx_catch_6); - if (v_5) { + bool v_6; + FX_CALL(_fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__ktyp_t(p_4, t_0, &v_6, 0), _fx_catch_6); + if (v_6) { __fold_result___1 = true; FX_BREAK(_fx_catch_6); } @@ -17076,10 +16573,10 @@ FX_EXTERN_C int _fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__k fx_exn_get_and_reset(fx_status, &exn_0); fx_status = 0; if (exn_0.tag == _FX_EXN_E17Ast__CompileError) { - _fx_N14K_form__ktyp_t v_6 = 0; - FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(ptyp_2, loc_0, &v_6, 0), + _fx_N14K_form__ktyp_t v_7 = 0; + FX_CALL(_fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(ptyp_2, loc_0, &v_7, 0), _fx_catch_8); - if (FX_REC_VARIANT_TAG(v_6) == 21) { + if (FX_REC_VARIANT_TAG(v_7) == 21) { result_1 = true; } else { @@ -17088,8 +16585,8 @@ FX_EXTERN_C int _fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__k FX_CHECK_EXN(_fx_catch_8); _fx_catch_8: ; - if (v_6) { - _fx_free_N14K_form__ktyp_t(&v_6); + if (v_7) { + _fx_free_N14K_form__ktyp_t(&v_7); } } else { @@ -17107,13 +16604,13 @@ FX_EXTERN_C int _fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__k if (tag_0 == 6) { fx_exn_t exn_1 = {0}; bool result_2; - _fx_T2T5R9Ast__id_tiN14K_form__ktyp_tBBLT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti v_7 = {0}; + _fx_T2T5R9Ast__id_tiN14K_form__ktyp_tBBLT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti v_8 = {0}; _fx_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti typed_rec_pl_0 = 0; FX_CALL( _fx_M11K_normalizeFM16match_record_patT2T5R9Ast__id_tiN14K_form__ktyp_tBBLT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti2N10Ast__pat_tN14K_form__ktyp_t( - p_2, ptyp_2, &v_7, 0), _fx_catch_11); - bool multiple_cases_0 = v_7.t0.t3; - FX_COPY_PTR(v_7.t1, &typed_rec_pl_0); + p_2, ptyp_2, &v_8, 0), _fx_catch_11); + bool multiple_cases_0 = v_8.t0.t3; + FX_COPY_PTR(v_8.t1, &typed_rec_pl_0); if (multiple_cases_0) { result_2 = true; } @@ -17126,10 +16623,10 @@ FX_EXTERN_C int _fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__k _fx_T4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti* __pat___1 = &lst_3->hd; FX_COPY_PTR(__pat___1->t1, &pi_1); FX_COPY_PTR(__pat___1->t2, &ti_1); - bool v_8; - FX_CALL(_fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__ktyp_t(pi_1, ti_1, &v_8, 0), + bool v_9; + FX_CALL(_fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__ktyp_t(pi_1, ti_1, &v_9, 0), _fx_catch_10); - if (v_8) { + if (v_9) { __fold_result___2 = true; FX_BREAK(_fx_catch_10); } @@ -17147,7 +16644,7 @@ FX_EXTERN_C int _fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__k } _fx_catch_11: ; - _fx_free_T2T5R9Ast__id_tiN14K_form__ktyp_tBBLT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&v_7); + _fx_free_T2T5R9Ast__id_tiN14K_form__ktyp_tBBLT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&v_8); if (typed_rec_pl_0) { _fx_free_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&typed_rec_pl_0); } @@ -17155,11 +16652,11 @@ FX_EXTERN_C int _fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__k fx_exn_get_and_reset(fx_status, &exn_1); fx_status = 0; if (exn_1.tag == _FX_EXN_E17Ast__CompileError) { - _fx_N14K_form__ktyp_t v_9 = 0; + _fx_N14K_form__ktyp_t v_10 = 0; FX_CALL( - _fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(ptyp_2, &p_2->u.PatRecord.t2, &v_9, - 0), _fx_catch_12); - if (FX_REC_VARIANT_TAG(v_9) == 21) { + _fx_M6K_formFM10deref_ktypN14K_form__ktyp_t2N14K_form__ktyp_tR10Ast__loc_t(ptyp_2, &p_2->u.PatRecord.t2, + &v_10, 0), _fx_catch_12); + if (FX_REC_VARIANT_TAG(v_10) == 21) { result_2 = true; } else { @@ -17168,8 +16665,8 @@ FX_EXTERN_C int _fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__k FX_CHECK_EXN(_fx_catch_12); _fx_catch_12: ; - if (v_9) { - _fx_free_N14K_form__ktyp_t(&v_9); + if (v_10) { + _fx_free_N14K_form__ktyp_t(&v_10); } } else { @@ -17191,13 +16688,13 @@ FX_EXTERN_C int _fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__k FX_COPY_PTR(ptyp_2->u.KTypRef, &t_1); } else { - fx_exn_t v_10 = {0}; + fx_exn_t v_11 = {0}; fx_str_t slit_1 = FX_MAKE_STR("this pattern needs a reference as argument"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&vcase_1->t1, &slit_1, &v_10, 0), _fx_catch_14); - FX_THROW(&v_10, false, _fx_catch_14); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&vcase_1->t1, &slit_1, &v_11, 0), _fx_catch_14); + FX_THROW(&v_11, false, _fx_catch_14); _fx_catch_14: ; - fx_free_exn(&v_10); + fx_free_exn(&v_11); } FX_CHECK_EXN(_fx_catch_15); _fx_N10Ast__pat_t* p_5 = &vcase_1->t0; @@ -17222,10 +16719,10 @@ FX_EXTERN_C int _fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__k _fx_LN10Ast__pat_t lst_4 = pl_1; for (; lst_4; lst_4 = lst_4->tl) { _fx_N10Ast__pat_t pi_2 = lst_4->hd; - bool v_11; - FX_CALL(_fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__ktyp_t(pi_2, ptyp_2, &v_11, 0), + bool v_12; + FX_CALL(_fx_M11K_normalizeFM15pat_need_checksB2N10Ast__pat_tN14K_form__ktyp_t(pi_2, ptyp_2, &v_12, 0), _fx_catch_17); - if (v_11) { + if (v_12) { __fold_result___3 = true; FX_BREAK(_fx_catch_17); } @@ -17505,7 +17002,7 @@ FX_EXTERN_C int int tag_2 = FX_REC_VARIANT_TAG(p_1); if (tag_2 == 4) { _fx_LN14K_form__ktyp_t tl_0 = 0; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t code_3 = 0; _fx_LN10Ast__pat_t pl_0 = 0; _fx_T2LN10Ast__pat_tR10Ast__loc_t* vcase_0 = &p_1->u.PatTuple; _fx_R10Ast__loc_t* loc_1 = &vcase_0->t1; @@ -17539,13 +17036,12 @@ FX_EXTERN_C int fx_free_exn(&v_5); } FX_CHECK_EXN(_fx_catch_4); - FX_COPY_PTR(code_1, &__fold_result___0); + FX_COPY_PTR(code_1, &code_3); int_ idx_0 = 0; FX_COPY_PTR(pl_1, &pl_0); _fx_LN10Ast__pat_t lst_0 = pl_0; _fx_LN14K_form__ktyp_t lst_1 = tl_0; for (; lst_0 && lst_1; lst_1 = lst_1->tl, lst_0 = lst_0->tl, idx_0 += 1) { - _fx_LN14K_form__kexp_t code_3 = 0; _fx_N14K_form__kexp_t ei_0 = 0; _fx_N14K_form__atom_t v_6 = {0}; _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_7 = {0}; @@ -17555,7 +17051,6 @@ FX_EXTERN_C int _fx_LN14K_form__kexp_t v_11 = 0; _fx_N14K_form__ktyp_t ti_0 = lst_1->hd; _fx_N10Ast__pat_t pi_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &code_3); _fx_R10Ast__loc_t loci_0; FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(pi_0, &loci_0, 0), _fx_catch_3); if (tup_elems_0 != 0) { @@ -17576,8 +17071,8 @@ FX_EXTERN_C int _fx_M11K_normalizeFM17pat_simple_unpackT2R9Ast__id_tLN14K_form__kexp_t7N10Ast__pat_tN14K_form__ktyp_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tSR16Ast__val_flags_tLN12Ast__scope_t( pi_0, ti_0, &v_9, code_3, temp_prefix_0, flags_0, sc_0, &v_10, 0), _fx_catch_3); FX_COPY_PTR(v_10.t1, &v_11); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(v_11, &__fold_result___0); + _fx_free_LN14K_form__kexp_t(&code_3); + FX_COPY_PTR(v_11, &code_3); _fx_catch_3: ; if (v_11) { @@ -17591,21 +17086,18 @@ FX_EXTERN_C int if (ei_0) { _fx_free_N14K_form__kexp_t(&ei_0); } - if (code_3) { - _fx_free_LN14K_form__kexp_t(&code_3); - } FX_CHECK_EXN(_fx_catch_4); } int s_0 = !lst_0 + !lst_1; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_4); - FX_COPY_PTR(__fold_result___0, &code_2); + FX_COPY_PTR(code_3, &code_2); _fx_catch_4: ; if (pl_0) { _fx_free_LN10Ast__pat_t(&pl_0); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (code_3) { + _fx_free_LN14K_form__kexp_t(&code_3); } if (tl_0) { _fx_free_LN14K_form__ktyp_t(&tl_0); @@ -17663,7 +17155,7 @@ FX_EXTERN_C int _fx_T2N14K_form__atom_tLN14K_form__kexp_t v_22 = {0}; _fx_N14K_form__atom_t ve_0 = {0}; _fx_LN14K_form__kexp_t code_4 = 0; - _fx_LN14K_form__kexp_t __fold_result___1 = 0; + _fx_LN14K_form__kexp_t code_5 = 0; fx_str_t slit_2 = FX_MAKE_STR("vcase"); FX_CALL( _fx_M6K_formFM9kexp2atomT2N14K_form__atom_tLN14K_form__kexp_t5iSN14K_form__kexp_tBLN14K_form__kexp_t(km_idx_0, @@ -17674,13 +17166,12 @@ FX_EXTERN_C int fx_str_t slit_3 = FX_MAKE_STR("variant case extraction should produce id, not literal"); FX_CALL(_fx_M6K_formFM7atom2idR9Ast__id_t3N14K_form__atom_tR10Ast__loc_tS(&ve_0, loc_2, &slit_3, &ve_id_0, 0), _fx_catch_7); - FX_COPY_PTR(code_4, &__fold_result___1); + FX_COPY_PTR(code_4, &code_5); int_ idx_1 = 0; _fx_LT2N10Ast__pat_tN14K_form__ktyp_t lst_2 = typed_var_pl_0; for (; lst_2; lst_2 = lst_2->tl, idx_1 += 1) { _fx_N10Ast__pat_t pi_1 = 0; _fx_N14K_form__ktyp_t ti_1 = 0; - _fx_LN14K_form__kexp_t code_5 = 0; _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_23 = {0}; _fx_N14K_form__kexp_t ei_1 = 0; _fx_Nt6option1N14K_form__kexp_t v_24 = {0}; @@ -17689,7 +17180,6 @@ FX_EXTERN_C int _fx_T2N10Ast__pat_tN14K_form__ktyp_t* __pat___0 = &lst_2->hd; FX_COPY_PTR(__pat___0->t0, &pi_1); FX_COPY_PTR(__pat___0->t1, &ti_1); - FX_COPY_PTR(__fold_result___1, &code_5); _fx_R10Ast__loc_t loci_1; FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(pi_1, &loci_1, 0), _fx_catch_6); _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ti_1, &loci_1, &v_23); @@ -17701,8 +17191,8 @@ FX_EXTERN_C int _fx_M11K_normalizeFM17pat_simple_unpackT2R9Ast__id_tLN14K_form__kexp_t7N10Ast__pat_tN14K_form__ktyp_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tSR16Ast__val_flags_tLN12Ast__scope_t( pi_1, ti_1, &v_24, code_5, temp_prefix_0, flags_0, sc_0, &v_25, 0), _fx_catch_6); FX_COPY_PTR(v_25.t1, &v_26); - _fx_free_LN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(v_26, &__fold_result___1); + _fx_free_LN14K_form__kexp_t(&code_5); + FX_COPY_PTR(v_26, &code_5); _fx_catch_6: ; if (v_26) { @@ -17714,9 +17204,6 @@ FX_EXTERN_C int _fx_free_N14K_form__kexp_t(&ei_1); } _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_23); - if (code_5) { - _fx_free_LN14K_form__kexp_t(&code_5); - } if (ti_1) { _fx_free_N14K_form__ktyp_t(&ti_1); } @@ -17725,11 +17212,11 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_7); } - FX_COPY_PTR(__fold_result___1, &code_2); + FX_COPY_PTR(code_5, &code_2); _fx_catch_7: ; - if (__fold_result___1) { - _fx_free_LN14K_form__kexp_t(&__fold_result___1); + if (code_5) { + _fx_free_LN14K_form__kexp_t(&code_5); } if (code_4) { _fx_free_LN14K_form__kexp_t(&code_4); @@ -17841,13 +17328,12 @@ FX_EXTERN_C int } } } - _fx_LN14K_form__kexp_t __fold_result___2 = 0; - FX_COPY_PTR(code2_1, &__fold_result___2); + _fx_LN14K_form__kexp_t code_6 = 0; + FX_COPY_PTR(code2_1, &code_6); _fx_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti lst_3 = typed_rec_pl_0; for (; lst_3; lst_3 = lst_3->tl) { _fx_N10Ast__pat_t pi_2 = 0; _fx_N14K_form__ktyp_t ti_2 = 0; - _fx_LN14K_form__kexp_t code_6 = 0; _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_41 = {0}; _fx_N14K_form__kexp_t ei_2 = 0; _fx_Nt6option1N14K_form__kexp_t v_42 = {0}; @@ -17856,7 +17342,6 @@ FX_EXTERN_C int _fx_T4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti* __pat___1 = &lst_3->hd; FX_COPY_PTR(__pat___1->t1, &pi_2); FX_COPY_PTR(__pat___1->t2, &ti_2); - FX_COPY_PTR(__fold_result___2, &code_6); _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ti_2, &loc_0, &v_41); FX_CALL( _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(&r_id_0, __pat___1->t3, @@ -17866,8 +17351,8 @@ FX_EXTERN_C int _fx_M11K_normalizeFM17pat_simple_unpackT2R9Ast__id_tLN14K_form__kexp_t7N10Ast__pat_tN14K_form__ktyp_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tSR16Ast__val_flags_tLN12Ast__scope_t( pi_2, ti_2, &v_42, code_6, temp_prefix_0, flags_0, sc_0, &v_43, 0), _fx_catch_10); FX_COPY_PTR(v_43.t1, &v_44); - _fx_free_LN14K_form__kexp_t(&__fold_result___2); - FX_COPY_PTR(v_44, &__fold_result___2); + _fx_free_LN14K_form__kexp_t(&code_6); + FX_COPY_PTR(v_44, &code_6); _fx_catch_10: ; if (v_44) { @@ -17879,9 +17364,6 @@ FX_EXTERN_C int _fx_free_N14K_form__kexp_t(&ei_2); } _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_41); - if (code_6) { - _fx_free_LN14K_form__kexp_t(&code_6); - } if (ti_2) { _fx_free_N14K_form__ktyp_t(&ti_2); } @@ -17890,11 +17372,11 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_11); } - FX_COPY_PTR(__fold_result___2, &code_2); + FX_COPY_PTR(code_6, &code_2); _fx_catch_11: ; - if (__fold_result___2) { - _fx_free_LN14K_form__kexp_t(&__fold_result___2); + if (code_6) { + _fx_free_LN14K_form__kexp_t(&code_6); } _fx_endmatch_4: ; @@ -18323,60 +17805,58 @@ FX_EXTERN_C int } } } - _fx_LR23K_normalize__pat_info_t __fold_result___0 = 0; _fx_LR23K_normalize__pat_info_t plists_delta_0 = 0; - _fx_Ta3LR23K_normalize__pat_info_t __fold_result___1 = {0}; + _fx_Ta3LR23K_normalize__pat_info_t plists_1 = {0}; int_ idx_0 = 0; _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti lst_0 = pti_l_0; for (; lst_0; lst_0 = lst_0->tl, idx_0 += 1) { _fx_N10Ast__pat_t pi_0 = 0; _fx_N14K_form__ktyp_t ti_0 = 0; - _fx_LR23K_normalize__pat_info_t plists_delta_1 = 0; _fx_N14K_form__kexp_t ei_0 = 0; _fx_R23K_normalize__pat_info_t pinfo_i_0 = {0}; + _fx_LR23K_normalize__pat_info_t v_0 = 0; _fx_T3N10Ast__pat_tN14K_form__ktyp_ti* __pat___0 = &lst_0->hd; FX_COPY_PTR(__pat___0->t0, &pi_0); FX_COPY_PTR(__pat___0->t1, &ti_0); - FX_COPY_PTR(__fold_result___0, &plists_delta_1); _fx_R10Ast__loc_t loci_0; FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(pi_0, &loci_0, 0), _fx_catch_2); if (alt_ei_opt_0->tag == 2) { - fx_exn_t v_0 = {0}; + fx_exn_t v_1 = {0}; if (idx_0 != 0) { fx_str_t slit_0 = FX_MAKE_STR("a code for singe-argument variant case handling is used with a case with multiple patterns"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loci_0, &slit_0, &v_0, 0), _fx_catch_0); - FX_THROW(&v_0, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loci_0, &slit_0, &v_1, 0), _fx_catch_0); + FX_THROW(&v_1, false, _fx_catch_0); } FX_COPY_PTR(alt_ei_opt_0->u.Some, &ei_0); _fx_catch_0: ; - fx_free_exn(&v_0); + fx_free_exn(&v_1); } else { - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_1 = {0}; - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ti_0, &loci_0, &v_1); + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_2 = {0}; + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ti_0, &loci_0, &v_2); FX_CALL( - _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(tup_id_0, __pat___0->t2, &v_1, + _fx_M6K_formFM7KExpMemN14K_form__kexp_t3R9Ast__id_tiT2N14K_form__ktyp_tR10Ast__loc_t(tup_id_0, __pat___0->t2, &v_2, &ei_0), _fx_catch_1); _fx_catch_1: ; - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_1); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_2); } FX_CHECK_EXN(_fx_catch_2); _fx_make_R23K_normalize__pat_info_t(pi_0, ti_0, ei_0, &_fx_g9Ast__noid, &pinfo_i_0); - FX_CALL(_fx_cons_LR23K_normalize__pat_info_t(&pinfo_i_0, plists_delta_1, false, &plists_delta_1), _fx_catch_2); - _fx_free_LR23K_normalize__pat_info_t(&__fold_result___0); - FX_COPY_PTR(plists_delta_1, &__fold_result___0); + FX_CALL(_fx_cons_LR23K_normalize__pat_info_t(&pinfo_i_0, plists_delta_0, true, &v_0), _fx_catch_2); + _fx_free_LR23K_normalize__pat_info_t(&plists_delta_0); + FX_COPY_PTR(v_0, &plists_delta_0); _fx_catch_2: ; + if (v_0) { + _fx_free_LR23K_normalize__pat_info_t(&v_0); + } _fx_free_R23K_normalize__pat_info_t(&pinfo_i_0); if (ei_0) { _fx_free_N14K_form__kexp_t(&ei_0); } - if (plists_delta_1) { - _fx_free_LR23K_normalize__pat_info_t(&plists_delta_1); - } if (ti_0) { _fx_free_N14K_form__ktyp_t(&ti_0); } @@ -18385,35 +17865,28 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___0, &plists_delta_0); - _fx_copy_Ta3LR23K_normalize__pat_info_t(plists_0, &__fold_result___1); + _fx_copy_Ta3LR23K_normalize__pat_info_t(plists_0, &plists_1); _fx_LR23K_normalize__pat_info_t lst_1 = plists_delta_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_Ta3LR23K_normalize__pat_info_t plists_1 = {0}; - _fx_Ta3LR23K_normalize__pat_info_t v_2 = {0}; + _fx_Ta3LR23K_normalize__pat_info_t v_3 = {0}; _fx_R23K_normalize__pat_info_t* pinfo_0 = &lst_1->hd; - _fx_copy_Ta3LR23K_normalize__pat_info_t(&__fold_result___1, &plists_1); FX_CALL( - _fx_M11K_normalizeFM12dispatch_patTa3LRM10pat_info_t2RM10pat_info_tTa3LRM10pat_info_t(pinfo_0, &plists_1, &v_2, 0), + _fx_M11K_normalizeFM12dispatch_patTa3LRM10pat_info_t2RM10pat_info_tTa3LRM10pat_info_t(pinfo_0, &plists_1, &v_3, 0), _fx_catch_3); - _fx_free_Ta3LR23K_normalize__pat_info_t(&__fold_result___1); - _fx_copy_Ta3LR23K_normalize__pat_info_t(&v_2, &__fold_result___1); + _fx_free_Ta3LR23K_normalize__pat_info_t(&plists_1); + _fx_copy_Ta3LR23K_normalize__pat_info_t(&v_3, &plists_1); _fx_catch_3: ; - _fx_free_Ta3LR23K_normalize__pat_info_t(&v_2); - _fx_free_Ta3LR23K_normalize__pat_info_t(&plists_1); + _fx_free_Ta3LR23K_normalize__pat_info_t(&v_3); FX_CHECK_EXN(_fx_catch_4); } - _fx_copy_Ta3LR23K_normalize__pat_info_t(&__fold_result___1, fx_result); + _fx_copy_Ta3LR23K_normalize__pat_info_t(&plists_1, fx_result); _fx_catch_4: ; - _fx_free_Ta3LR23K_normalize__pat_info_t(&__fold_result___1); + _fx_free_Ta3LR23K_normalize__pat_info_t(&plists_1); if (plists_delta_0) { _fx_free_LR23K_normalize__pat_info_t(&plists_delta_0); } - if (__fold_result___0) { - _fx_free_LR23K_normalize__pat_info_t(&__fold_result___0); - } _fx_endmatch_0: ; return fx_status; @@ -18491,40 +17964,37 @@ FX_EXTERN_C int _fx_catch_2); if (v_14.tag == 5) { _fx_R21K_form__kdefvariant_t v_15 = {0}; - _fx_Rt6Set__t1R9Ast__id_t __fold_result___0 = {0}; + _fx_Rt6Set__t1R9Ast__id_t match_var_cases_1 = {0}; _fx_LT2R9Ast__id_tN14K_form__ktyp_t kvar_cases_0 = 0; _fx_copy_R21K_form__kdefvariant_t(&v_14.u.KVariant->data, &v_15); - _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &__fold_result___0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&_fx_g16Ast__empty_idset, &match_var_cases_1); FX_COPY_PTR(v_15.kvar_cases, &kvar_cases_0); _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_0 = kvar_cases_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_Rt6Set__t1R9Ast__id_t match_var_cases_1 = {0}; _fx_Rt6Set__t1R9Ast__id_t v_16 = {0}; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___0 = &lst_0->hd; _fx_R9Ast__id_t n_0 = __pat___0->t0; - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___0, &match_var_cases_1); _fx_R9Ast__id_t v_17; FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(&n_0, &v_17, 0), _fx_catch_0); FX_CALL( _fx_M11K_normalizeFM3addRt6Set__t1R9Ast__id_t2Rt6Set__t1R9Ast__id_tR9Ast__id_t(&match_var_cases_1, &v_17, &v_16, 0), _fx_catch_0); - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_16, &__fold_result___0); + _fx_free_Rt6Set__t1R9Ast__id_t(&match_var_cases_1); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_16, &match_var_cases_1); _fx_catch_0: ; _fx_free_Rt6Set__t1R9Ast__id_t(&v_16); - _fx_free_Rt6Set__t1R9Ast__id_t(&match_var_cases_1); FX_CHECK_EXN(_fx_catch_1); } _fx_free_Rt6Set__t1R9Ast__id_t(match_var_cases_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&__fold_result___0, match_var_cases_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&match_var_cases_1, match_var_cases_0); is_variant_0 = true; _fx_catch_1: ; if (kvar_cases_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&kvar_cases_0); } - _fx_free_Rt6Set__t1R9Ast__id_t(&__fold_result___0); + _fx_free_Rt6Set__t1R9Ast__id_t(&match_var_cases_1); _fx_free_R21K_form__kdefvariant_t(&v_15); } else { @@ -19155,9 +18625,8 @@ static int } else if (tag_0 == 4) { _fx_LN14K_form__ktyp_t tl_0 = 0; - _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti __fold_result___0 = 0; - _fx_LN10Ast__pat_t pl_0 = 0; _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti pti_l_0 = 0; + _fx_LN10Ast__pat_t pl_0 = 0; _fx_Ta3LR23K_normalize__pat_info_t plists_7 = {0}; _fx_T2LN10Ast__pat_tR10Ast__loc_t* vcase_1 = &p_1->u.PatTuple; if (FX_REC_VARIANT_TAG(ptyp_0) == 14) { @@ -19178,26 +18647,24 @@ static int _fx_LN10Ast__pat_t lst_0 = pl_0; _fx_LN14K_form__ktyp_t lst_1 = tl_0; for (; lst_0 && lst_1; lst_1 = lst_1->tl, lst_0 = lst_0->tl, idx_0 += 1) { - _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti pti_l_1 = 0; _fx_T3N10Ast__pat_tN14K_form__ktyp_ti v_40 = {0}; + _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti v_41 = 0; _fx_N14K_form__ktyp_t ti_0 = lst_1->hd; _fx_N10Ast__pat_t pi_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &pti_l_1); _fx_make_T3N10Ast__pat_tN14K_form__ktyp_ti(pi_0, ti_0, idx_0, &v_40); - FX_CALL(_fx_cons_LT3N10Ast__pat_tN14K_form__ktyp_ti(&v_40, pti_l_1, false, &pti_l_1), _fx_catch_5); - _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&__fold_result___0); - FX_COPY_PTR(pti_l_1, &__fold_result___0); + FX_CALL(_fx_cons_LT3N10Ast__pat_tN14K_form__ktyp_ti(&v_40, pti_l_0, true, &v_41), _fx_catch_5); + _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&pti_l_0); + FX_COPY_PTR(v_41, &pti_l_0); _fx_catch_5: ; - _fx_free_T3N10Ast__pat_tN14K_form__ktyp_ti(&v_40); - if (pti_l_1) { - _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&pti_l_1); + if (v_41) { + _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&v_41); } + _fx_free_T3N10Ast__pat_tN14K_form__ktyp_ti(&v_40); FX_CHECK_EXN(_fx_catch_6); } int s_0 = !lst_0 + !lst_1; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_6); - FX_COPY_PTR(__fold_result___0, &pti_l_0); FX_CALL( _fx_M11K_normalizeFM16process_pat_listTa3LRM10pat_info_t4R9Ast__id_tLT3N10Ast__pat_tN14K_form__ktyp_tiTa3LRM10pat_info_tNt6option1N14K_form__kexp_t( &n_1, pti_l_0, &plists_3, &_fx_g19K_normalize__None3_, &plists_7, 0), _fx_catch_6); @@ -19206,43 +18673,39 @@ static int _fx_catch_6: ; _fx_free_Ta3LR23K_normalize__pat_info_t(&plists_7); - if (pti_l_0) { - _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&pti_l_0); - } if (pl_0) { _fx_free_LN10Ast__pat_t(&pl_0); } - if (__fold_result___0) { - _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&__fold_result___0); + if (pti_l_0) { + _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&pti_l_0); } if (tl_0) { _fx_free_LN14K_form__ktyp_t(&tl_0); } } else if (tag_0 == 5) { - _fx_Ta2LN14K_form__kexp_t v_41 = {0}; - _fx_T5R9Ast__id_tLN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_tNt6option1N14K_form__kexp_t v_42 = {0}; + _fx_Ta2LN14K_form__kexp_t v_42 = {0}; + _fx_T5R9Ast__id_tLN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_tNt6option1N14K_form__kexp_t v_43 = {0}; _fx_LN14K_form__ktyp_t tl_1 = 0; _fx_LN14K_form__kexp_t checks_2 = 0; _fx_LN14K_form__kexp_t code_6 = 0; _fx_Nt6option1N14K_form__kexp_t alt_e_opt_0 = {0}; _fx_Ta3LR23K_normalize__pat_info_t plists_8 = {0}; - _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti __fold_result___1 = 0; + _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti pti_l_1 = 0; _fx_LN10Ast__pat_t pl_1 = 0; - _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti pti_l_2 = 0; - _fx_Rt6Set__t1R9Ast__id_t v_43 = {0}; + _fx_Rt6Set__t1R9Ast__id_t v_44 = {0}; _fx_T3R9Ast__id_tLN10Ast__pat_tR10Ast__loc_t* vcase_2 = &p_1->u.PatVariant; _fx_LN10Ast__pat_t pl_2 = vcase_2->t1; _fx_R9Ast__id_t* vn_0 = &vcase_2->t0; - _fx_make_Ta2LN14K_form__kexp_t(checks_0, code_1, &v_41); + _fx_make_Ta2LN14K_form__kexp_t(checks_0, code_1, &v_42); FX_CALL( _fx_M11K_normalizeFM27get_var_tag_cmp_and_extractT5R9Ast__id_tLN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_tNt6option1N14K_form__kexp_t7R9Ast__id_tRM10pat_info_tTa2LN14K_form__kexp_tR9Ast__id_tLN12Ast__scope_tR10Ast__loc_ti( - &n_1, pinfo_0, &v_41, vn_0, case_sc_2, &vcase_2->t2, km_idx_0, &v_42, 0), _fx_catch_8); - _fx_R9Ast__id_t case_n_0 = v_42.t0; - FX_COPY_PTR(v_42.t1, &tl_1); - FX_COPY_PTR(v_42.t2, &checks_2); - FX_COPY_PTR(v_42.t3, &code_6); - _fx_copy_Nt6option1N14K_form__kexp_t(&v_42.t4, &alt_e_opt_0); + &n_1, pinfo_0, &v_42, vn_0, case_sc_2, &vcase_2->t2, km_idx_0, &v_43, 0), _fx_catch_8); + _fx_R9Ast__id_t case_n_0 = v_43.t0; + FX_COPY_PTR(v_43.t1, &tl_1); + FX_COPY_PTR(v_43.t2, &checks_2); + FX_COPY_PTR(v_43.t3, &code_6); + _fx_copy_Nt6option1N14K_form__kexp_t(&v_43.t4, &alt_e_opt_0); bool res_2; if (pl_2 != 0) { if (pl_2->tl == 0) { @@ -19278,50 +18741,45 @@ static int _fx_LN10Ast__pat_t lst_2 = pl_1; _fx_LN14K_form__ktyp_t lst_3 = tl_1; for (; lst_2 && lst_3; lst_3 = lst_3->tl, lst_2 = lst_2->tl, idx_1 += 1) { - _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti pti_l_3 = 0; - _fx_T3N10Ast__pat_tN14K_form__ktyp_ti v_44 = {0}; + _fx_T3N10Ast__pat_tN14K_form__ktyp_ti v_45 = {0}; + _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti v_46 = 0; _fx_N14K_form__ktyp_t ti_1 = lst_3->hd; _fx_N10Ast__pat_t pi_1 = lst_2->hd; - FX_COPY_PTR(__fold_result___1, &pti_l_3); - _fx_make_T3N10Ast__pat_tN14K_form__ktyp_ti(pi_1, ti_1, idx_1, &v_44); - FX_CALL(_fx_cons_LT3N10Ast__pat_tN14K_form__ktyp_ti(&v_44, pti_l_3, false, &pti_l_3), _fx_catch_7); - _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&__fold_result___1); - FX_COPY_PTR(pti_l_3, &__fold_result___1); + _fx_make_T3N10Ast__pat_tN14K_form__ktyp_ti(pi_1, ti_1, idx_1, &v_45); + FX_CALL(_fx_cons_LT3N10Ast__pat_tN14K_form__ktyp_ti(&v_45, pti_l_1, true, &v_46), _fx_catch_7); + _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&pti_l_1); + FX_COPY_PTR(v_46, &pti_l_1); _fx_catch_7: ; - _fx_free_T3N10Ast__pat_tN14K_form__ktyp_ti(&v_44); - if (pti_l_3) { - _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&pti_l_3); + if (v_46) { + _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&v_46); } + _fx_free_T3N10Ast__pat_tN14K_form__ktyp_ti(&v_45); FX_CHECK_EXN(_fx_catch_8); } int s_1 = !lst_2 + !lst_3; FX_CHECK_EQ_SIZE(s_1 == 0 || s_1 == 2, _fx_catch_8); - FX_COPY_PTR(__fold_result___1, &pti_l_2); FX_CALL( _fx_M11K_normalizeFM16process_pat_listTa3LRM10pat_info_t4R9Ast__id_tLT3N10Ast__pat_tN14K_form__ktyp_tiTa3LRM10pat_info_tNt6option1N14K_form__kexp_t( - &case_n_0, pti_l_2, &plists_3, &alt_e_opt_0, &plists_8, 0), _fx_catch_8); + &case_n_0, pti_l_1, &plists_3, &alt_e_opt_0, &plists_8, 0), _fx_catch_8); } - _fx_R9Ast__id_t v_45; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(vn_0, &v_45, 0), _fx_catch_8); + _fx_R9Ast__id_t v_47; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(vn_0, &v_47, 0), _fx_catch_8); FX_CALL( - _fx_M11K_normalizeFM6removeRt6Set__t1R9Ast__id_t2Rt6Set__t1R9Ast__id_tR9Ast__id_t(match_var_cases_0, &v_45, - &v_43, 0), _fx_catch_8); + _fx_M11K_normalizeFM6removeRt6Set__t1R9Ast__id_t2Rt6Set__t1R9Ast__id_tR9Ast__id_t(match_var_cases_0, &v_47, + &v_44, 0), _fx_catch_8); _fx_free_Rt6Set__t1R9Ast__id_t(match_var_cases_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_43, match_var_cases_0); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_44, match_var_cases_0); _fx_make_T3Ta3LR23K_normalize__pat_info_tLN14K_form__kexp_tLN14K_form__kexp_t(&plists_8, checks_2, code_6, &v_14); _fx_catch_8: ; - _fx_free_Rt6Set__t1R9Ast__id_t(&v_43); - if (pti_l_2) { - _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&pti_l_2); - } + _fx_free_Rt6Set__t1R9Ast__id_t(&v_44); if (pl_1) { _fx_free_LN10Ast__pat_t(&pl_1); } - if (__fold_result___1) { - _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&__fold_result___1); + if (pti_l_1) { + _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&pti_l_1); } _fx_free_Ta3LR23K_normalize__pat_info_t(&plists_8); _fx_free_Nt6option1N14K_form__kexp_t(&alt_e_opt_0); @@ -19334,49 +18792,49 @@ static int if (tl_1) { _fx_free_LN14K_form__ktyp_t(&tl_1); } - _fx_free_T5R9Ast__id_tLN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_tNt6option1N14K_form__kexp_t(&v_42); - _fx_free_Ta2LN14K_form__kexp_t(&v_41); + _fx_free_T5R9Ast__id_tLN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_tNt6option1N14K_form__kexp_t(&v_43); + _fx_free_Ta2LN14K_form__kexp_t(&v_42); } else if (tag_0 == 6) { - _fx_T5R9Ast__id_tLN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_tNt6option1N14K_form__kexp_t v_46 = {0}; + _fx_T5R9Ast__id_tLN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_tNt6option1N14K_form__kexp_t v_48 = {0}; _fx_LN14K_form__kexp_t checks_3 = 0; _fx_LN14K_form__kexp_t code_7 = 0; _fx_Nt6option1N14K_form__kexp_t alt_e_opt_1 = {0}; _fx_Ta3LR23K_normalize__pat_info_t plists_9 = {0}; - _fx_T2T5R9Ast__id_tiN14K_form__ktyp_tBBLT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti v_47 = {0}; + _fx_T2T5R9Ast__id_tiN14K_form__ktyp_tBBLT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti v_49 = {0}; _fx_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti ktyp_rec_pl_0 = 0; - _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti pti_l_4 = 0; + _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti pti_l_2 = 0; _fx_T3Nt6option1R9Ast__id_tLT2R9Ast__id_tN10Ast__pat_tR10Ast__loc_t* vcase_3 = &p_1->u.PatRecord; _fx_Nt6option1R9Ast__id_t* rn_opt_0 = &vcase_3->t0; if (rn_opt_0->tag == 2) { - _fx_Rt6Set__t1R9Ast__id_t v_48 = {0}; - _fx_Ta2LN14K_form__kexp_t v_49 = {0}; + _fx_Rt6Set__t1R9Ast__id_t v_50 = {0}; + _fx_Ta2LN14K_form__kexp_t v_51 = {0}; _fx_R9Ast__id_t* rn_0 = &rn_opt_0->u.Some; - _fx_R9Ast__id_t v_50; - FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(rn_0, &v_50, 0), _fx_catch_9); + _fx_R9Ast__id_t v_52; + FX_CALL(_fx_M3AstFM11get_orig_idRM4id_t1RM4id_t(rn_0, &v_52, 0), _fx_catch_9); FX_CALL( - _fx_M11K_normalizeFM6removeRt6Set__t1R9Ast__id_t2Rt6Set__t1R9Ast__id_tR9Ast__id_t(match_var_cases_0, &v_50, - &v_48, 0), _fx_catch_9); + _fx_M11K_normalizeFM6removeRt6Set__t1R9Ast__id_t2Rt6Set__t1R9Ast__id_tR9Ast__id_t(match_var_cases_0, &v_52, + &v_50, 0), _fx_catch_9); _fx_free_Rt6Set__t1R9Ast__id_t(match_var_cases_0); - _fx_copy_Rt6Set__t1R9Ast__id_t(&v_48, match_var_cases_0); - _fx_make_Ta2LN14K_form__kexp_t(checks_0, code_1, &v_49); + _fx_copy_Rt6Set__t1R9Ast__id_t(&v_50, match_var_cases_0); + _fx_make_Ta2LN14K_form__kexp_t(checks_0, code_1, &v_51); FX_CALL( _fx_M11K_normalizeFM27get_var_tag_cmp_and_extractT5R9Ast__id_tLN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_tNt6option1N14K_form__kexp_t7R9Ast__id_tRM10pat_info_tTa2LN14K_form__kexp_tR9Ast__id_tLN12Ast__scope_tR10Ast__loc_ti( - &n_1, pinfo_0, &v_49, rn_0, case_sc_2, &vcase_3->t2, km_idx_0, &v_46, 0), _fx_catch_9); + &n_1, pinfo_0, &v_51, rn_0, case_sc_2, &vcase_3->t2, km_idx_0, &v_48, 0), _fx_catch_9); _fx_catch_9: ; - _fx_free_Ta2LN14K_form__kexp_t(&v_49); - _fx_free_Rt6Set__t1R9Ast__id_t(&v_48); + _fx_free_Ta2LN14K_form__kexp_t(&v_51); + _fx_free_Rt6Set__t1R9Ast__id_t(&v_50); } else { _fx_make_T5R9Ast__id_tLN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_tNt6option1N14K_form__kexp_t(&n_1, - 0, checks_0, code_1, &_fx_g19K_normalize__None3_, &v_46); + 0, checks_0, code_1, &_fx_g19K_normalize__None3_, &v_48); } FX_CHECK_EXN(_fx_catch_11); - _fx_R9Ast__id_t case_n_1 = v_46.t0; - FX_COPY_PTR(v_46.t2, &checks_3); - FX_COPY_PTR(v_46.t3, &code_7); - _fx_copy_Nt6option1N14K_form__kexp_t(&v_46.t4, &alt_e_opt_1); + _fx_R9Ast__id_t case_n_1 = v_48.t0; + FX_COPY_PTR(v_48.t2, &checks_3); + FX_COPY_PTR(v_48.t3, &code_7); + _fx_copy_Nt6option1N14K_form__kexp_t(&v_48.t4, &alt_e_opt_1); bool res_4; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&case_n_1, &_fx_g9Ast__noid, &res_4, 0), _fx_catch_11); bool t_2; @@ -19392,8 +18850,8 @@ static int else { FX_CALL( _fx_M11K_normalizeFM16match_record_patT2T5R9Ast__id_tiN14K_form__ktyp_tBBLT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti2N10Ast__pat_tN14K_form__ktyp_t( - p_1, ptyp_0, &v_47, 0), _fx_catch_11); - FX_COPY_PTR(v_47.t1, &ktyp_rec_pl_0); + p_1, ptyp_0, &v_49, 0), _fx_catch_11); + FX_COPY_PTR(v_49.t1, &ktyp_rec_pl_0); _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti lstend_0 = 0; _fx_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti lst_4 = ktyp_rec_pl_0; for (; lst_4; lst_4 = lst_4->tl) { @@ -19406,7 +18864,7 @@ static int _fx_make_T3N10Ast__pat_tN14K_form__ktyp_ti(pi_2, ti_2, __pat___0->t3, &tup_0); _fx_LT3N10Ast__pat_tN14K_form__ktyp_ti node_0 = 0; FX_CALL(_fx_cons_LT3N10Ast__pat_tN14K_form__ktyp_ti(&tup_0, 0, false, &node_0), _fx_catch_10); - FX_LIST_APPEND(pti_l_4, lstend_0, node_0); + FX_LIST_APPEND(pti_l_2, lstend_0, node_0); _fx_catch_10: ; _fx_free_T3N10Ast__pat_tN14K_form__ktyp_ti(&tup_0); @@ -19420,19 +18878,19 @@ static int } FX_CALL( _fx_M11K_normalizeFM16process_pat_listTa3LRM10pat_info_t4R9Ast__id_tLT3N10Ast__pat_tN14K_form__ktyp_tiTa3LRM10pat_info_tNt6option1N14K_form__kexp_t( - &case_n_1, pti_l_4, &plists_3, &alt_e_opt_1, &plists_9, 0), _fx_catch_11); + &case_n_1, pti_l_2, &plists_3, &alt_e_opt_1, &plists_9, 0), _fx_catch_11); } _fx_make_T3Ta3LR23K_normalize__pat_info_tLN14K_form__kexp_tLN14K_form__kexp_t(&plists_9, checks_3, code_7, &v_14); _fx_catch_11: ; - if (pti_l_4) { - _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&pti_l_4); + if (pti_l_2) { + _fx_free_LT3N10Ast__pat_tN14K_form__ktyp_ti(&pti_l_2); } if (ktyp_rec_pl_0) { _fx_free_LT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&ktyp_rec_pl_0); } - _fx_free_T2T5R9Ast__id_tiN14K_form__ktyp_tBBLT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&v_47); + _fx_free_T2T5R9Ast__id_tiN14K_form__ktyp_tBBLT4R9Ast__id_tN10Ast__pat_tN14K_form__ktyp_ti(&v_49); _fx_free_Ta3LR23K_normalize__pat_info_t(&plists_9); _fx_free_Nt6option1N14K_form__kexp_t(&alt_e_opt_1); if (code_7) { @@ -19441,20 +18899,20 @@ static int if (checks_3) { _fx_free_LN14K_form__kexp_t(&checks_3); } - _fx_free_T5R9Ast__id_tLN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_tNt6option1N14K_form__kexp_t(&v_46); + _fx_free_T5R9Ast__id_tLN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_tNt6option1N14K_form__kexp_t(&v_48); } else if (tag_0 == 8) { - _fx_N14K_form__atom_t v_51 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_52 = {0}; - _fx_N14K_form__kexp_t v_53 = 0; + _fx_N14K_form__atom_t v_53 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_54 = {0}; + _fx_N14K_form__kexp_t v_55 = 0; _fx_R23K_normalize__pat_info_t pinfo_1 = {0}; _fx_Ta3LR23K_normalize__pat_info_t plists_10 = {0}; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&n_1, &v_51); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ptyp_0, &loc_0, &v_52); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&n_1, &v_53); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ptyp_0, &loc_0, &v_54); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_51, &v_52, - &v_53), _fx_catch_12); - _fx_make_R23K_normalize__pat_info_t(p_1->u.PatAs.t0, ptyp_0, v_53, &var_tag0_0, &pinfo_1); + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_53, &v_54, + &v_55), _fx_catch_12); + _fx_make_R23K_normalize__pat_info_t(p_1->u.PatAs.t0, ptyp_0, v_55, &var_tag0_0, &pinfo_1); FX_CALL( _fx_M11K_normalizeFM12dispatch_patTa3LRM10pat_info_t2RM10pat_info_tTa3LRM10pat_info_t(&pinfo_1, &plists_3, &plists_10, 0), _fx_catch_12); @@ -19464,16 +18922,16 @@ static int _fx_catch_12: ; _fx_free_Ta3LR23K_normalize__pat_info_t(&plists_10); _fx_free_R23K_normalize__pat_info_t(&pinfo_1); - if (v_53) { - _fx_free_N14K_form__kexp_t(&v_53); + if (v_55) { + _fx_free_N14K_form__kexp_t(&v_55); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_52); - _fx_free_N14K_form__atom_t(&v_51); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_54); + _fx_free_N14K_form__atom_t(&v_53); } else if (tag_0 == 12) { _fx_N14K_form__ktyp_t t_3 = 0; - _fx_N14K_form__atom_t v_54 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_55 = {0}; + _fx_N14K_form__atom_t v_56 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_57 = {0}; _fx_N14K_form__kexp_t get_val_0 = 0; _fx_R23K_normalize__pat_info_t pinfo_p_0 = {0}; _fx_Ta3LR23K_normalize__pat_info_t plists_11 = {0}; @@ -19481,20 +18939,20 @@ static int FX_COPY_PTR(ptyp_0->u.KTypRef, &t_3); } else { - fx_exn_t v_56 = {0}; + fx_exn_t v_58 = {0}; fx_str_t slit_3 = FX_MAKE_STR("the ref() pattern needs reference type"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_3, &v_56, 0), _fx_catch_13); - FX_THROW(&v_56, false, _fx_catch_13); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_3, &v_58, 0), _fx_catch_13); + FX_THROW(&v_58, false, _fx_catch_13); _fx_catch_13: ; - fx_free_exn(&v_56); + fx_free_exn(&v_58); } FX_CHECK_EXN(_fx_catch_14); - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&n_1, &v_54); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_3, &loc_0, &v_55); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&n_1, &v_56); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(t_3, &loc_0, &v_57); FX_CALL( _fx_M6K_formFM9KExpUnaryN14K_form__kexp_t3N12Ast__unary_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( - &_fx_g20K_normalize__OpDeref, &v_54, &v_55, &get_val_0), _fx_catch_14); + &_fx_g20K_normalize__OpDeref, &v_56, &v_57, &get_val_0), _fx_catch_14); _fx_make_R23K_normalize__pat_info_t(p_1->u.PatRef.t0, t_3, get_val_0, &_fx_g9Ast__noid, &pinfo_p_0); FX_CALL( _fx_M11K_normalizeFM12dispatch_patTa3LRM10pat_info_t2RM10pat_info_tTa3LRM10pat_info_t(&pinfo_p_0, &plists_3, @@ -19508,67 +18966,67 @@ static int if (get_val_0) { _fx_free_N14K_form__kexp_t(&get_val_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_55); - _fx_free_N14K_form__atom_t(&v_54); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_57); + _fx_free_N14K_form__atom_t(&v_56); if (t_3) { _fx_free_N14K_form__ktyp_t(&t_3); } } else if (tag_0 == 10) { - _fx_N14K_form__atom_t v_57 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_58 = {0}; - _fx_N14K_form__kexp_t v_59 = 0; + _fx_N14K_form__atom_t v_59 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_60 = {0}; + _fx_N14K_form__kexp_t v_61 = 0; _fx_R23K_normalize__pat_info_t pinfo_2 = {0}; _fx_Ta3LR23K_normalize__pat_info_t plists_12 = {0}; - _fx_Ta2LN14K_form__kexp_t v_60 = {0}; - _fx_Ta2LN14K_form__kexp_t v_61 = {0}; + _fx_Ta2LN14K_form__kexp_t v_62 = {0}; + _fx_Ta2LN14K_form__kexp_t v_63 = {0}; _fx_LN14K_form__kexp_t checks_4 = 0; _fx_LN14K_form__kexp_t code_8 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_62 = {0}; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_64 = {0}; _fx_N14K_form__kexp_t ke_1 = 0; _fx_LN14K_form__kexp_t code_9 = 0; - _fx_LN14K_form__kexp_t v_63 = 0; - _fx_N14K_form__kexp_t c_exp_2 = 0; - _fx_Ta3LR23K_normalize__pat_info_t v_64 = {0}; _fx_LN14K_form__kexp_t v_65 = 0; + _fx_N14K_form__kexp_t c_exp_2 = 0; + _fx_Ta3LR23K_normalize__pat_info_t v_66 = {0}; + _fx_LN14K_form__kexp_t v_67 = 0; _fx_T3N10Ast__pat_tN10Ast__exp_tR10Ast__loc_t* vcase_4 = &p_1->u.PatWhen; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&n_1, &v_57); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ptyp_0, &loc_0, &v_58); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&n_1, &v_59); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ptyp_0, &loc_0, &v_60); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_57, &v_58, - &v_59), _fx_catch_15); - _fx_make_R23K_normalize__pat_info_t(vcase_4->t0, ptyp_0, v_59, &var_tag0_0, &pinfo_2); + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_59, &v_60, + &v_61), _fx_catch_15); + _fx_make_R23K_normalize__pat_info_t(vcase_4->t0, ptyp_0, v_61, &var_tag0_0, &pinfo_2); FX_CALL( _fx_M11K_normalizeFM12dispatch_patTa3LRM10pat_info_t2RM10pat_info_tTa3LRM10pat_info_t(&pinfo_2, &plists_3, &plists_12, 0), _fx_catch_15); - _fx_make_Ta2LN14K_form__kexp_t(checks_0, code_1, &v_60); + _fx_make_Ta2LN14K_form__kexp_t(checks_0, code_1, &v_62); FX_CALL( _fx_M11K_normalizeFM19process_next_subpatTa2LN14K_form__kexp_t6Ta3LRM10pat_info_tTa2LN14K_form__kexp_tLN12Ast__scope_tirRt6Set__t1R9Ast__id_tLN12Ast__scope_t( - &plists_12, &v_60, case_sc_2, km_idx_0, match_var_cases_ref_0, sc_0, &v_61, 0), _fx_catch_15); - FX_COPY_PTR(v_61.t0, &checks_4); - FX_COPY_PTR(v_61.t1, &code_8); + &plists_12, &v_62, case_sc_2, km_idx_0, match_var_cases_ref_0, sc_0, &v_63, 0), _fx_catch_15); + FX_COPY_PTR(v_63.t0, &checks_4); + FX_COPY_PTR(v_63.t1, &code_8); FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - vcase_4->t1, code_8, true, sc_0, &v_62, 0), _fx_catch_15); - FX_COPY_PTR(v_62.t0, &ke_1); - FX_COPY_PTR(v_62.t1, &code_9); - FX_CALL(_fx_cons_LN14K_form__kexp_t(ke_1, code_9, true, &v_63), _fx_catch_15); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_63, &loc_0, &c_exp_2, 0), + vcase_4->t1, code_8, true, sc_0, &v_64, 0), _fx_catch_15); + FX_COPY_PTR(v_64.t0, &ke_1); + FX_COPY_PTR(v_64.t1, &code_9); + FX_CALL(_fx_cons_LN14K_form__kexp_t(ke_1, code_9, true, &v_65), _fx_catch_15); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_65, &loc_0, &c_exp_2, 0), _fx_catch_15); - _fx_make_Ta3LR23K_normalize__pat_info_t(0, 0, 0, &v_64); - FX_CALL(_fx_cons_LN14K_form__kexp_t(c_exp_2, checks_4, true, &v_65), _fx_catch_15); - _fx_make_T3Ta3LR23K_normalize__pat_info_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_64, v_65, 0, &v_14); + _fx_make_Ta3LR23K_normalize__pat_info_t(0, 0, 0, &v_66); + FX_CALL(_fx_cons_LN14K_form__kexp_t(c_exp_2, checks_4, true, &v_67), _fx_catch_15); + _fx_make_T3Ta3LR23K_normalize__pat_info_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_66, v_67, 0, &v_14); _fx_catch_15: ; - if (v_65) { - _fx_free_LN14K_form__kexp_t(&v_65); + if (v_67) { + _fx_free_LN14K_form__kexp_t(&v_67); } - _fx_free_Ta3LR23K_normalize__pat_info_t(&v_64); + _fx_free_Ta3LR23K_normalize__pat_info_t(&v_66); if (c_exp_2) { _fx_free_N14K_form__kexp_t(&c_exp_2); } - if (v_63) { - _fx_free_LN14K_form__kexp_t(&v_63); + if (v_65) { + _fx_free_LN14K_form__kexp_t(&v_65); } if (code_9) { _fx_free_LN14K_form__kexp_t(&code_9); @@ -19576,199 +19034,192 @@ static int if (ke_1) { _fx_free_N14K_form__kexp_t(&ke_1); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_62); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_64); if (code_8) { _fx_free_LN14K_form__kexp_t(&code_8); } if (checks_4) { _fx_free_LN14K_form__kexp_t(&checks_4); } - _fx_free_Ta2LN14K_form__kexp_t(&v_61); - _fx_free_Ta2LN14K_form__kexp_t(&v_60); + _fx_free_Ta2LN14K_form__kexp_t(&v_63); + _fx_free_Ta2LN14K_form__kexp_t(&v_62); _fx_free_Ta3LR23K_normalize__pat_info_t(&plists_12); _fx_free_R23K_normalize__pat_info_t(&pinfo_2); - if (v_59) { - _fx_free_N14K_form__kexp_t(&v_59); + if (v_61) { + _fx_free_N14K_form__kexp_t(&v_61); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_58); - _fx_free_N14K_form__atom_t(&v_57); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_60); + _fx_free_N14K_form__atom_t(&v_59); } else if (tag_0 == 11) { - fx_exn_t v_66 = {0}; - _fx_N14K_form__klit_t v_67 = {0}; - _fx_N14K_form__atom_t v_68 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_69 = {0}; - _fx_N14K_form__kexp_t v_70 = 0; - _fx_T2LN14K_form__kexp_tN14K_form__kexp_t v_71 = {0}; - _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t __fold_result___2 = 0; - _fx_LN10Ast__pat_t v_72 = 0; + fx_exn_t v_68 = {0}; + _fx_N14K_form__klit_t v_69 = {0}; + _fx_N14K_form__atom_t v_70 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_71 = {0}; + _fx_N14K_form__kexp_t v_72 = 0; + _fx_T2LN14K_form__kexp_tN14K_form__kexp_t v_73 = {0}; _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t alt_cases_0 = 0; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_73 = {0}; - _fx_N14K_form__kexp_t v_74 = 0; - _fx_LN14K_form__kexp_t v_75 = 0; + _fx_LN10Ast__pat_t v_74 = 0; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_75 = {0}; + _fx_N14K_form__kexp_t v_76 = 0; + _fx_LN14K_form__kexp_t v_77 = 0; _fx_N14K_form__kexp_t alt_check_0 = 0; - _fx_LN14K_form__kexp_t v_76 = 0; - bool v_77; - FX_CALL(_fx_M11K_normalizeFM13pat_have_varsB1N10Ast__pat_t(p_1, &v_77, 0), _fx_catch_17); - if (v_77) { + _fx_LN14K_form__kexp_t v_78 = 0; + bool v_79; + FX_CALL(_fx_M11K_normalizeFM13pat_have_varsB1N10Ast__pat_t(p_1, &v_79, 0), _fx_catch_17); + if (v_79) { fx_str_t slit_4 = FX_MAKE_STR("alt-pattern cannot contain captured values"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_4, &v_66, 0), _fx_catch_17); - FX_THROW(&v_66, false, _fx_catch_17); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_4, &v_68, 0), _fx_catch_17); + FX_THROW(&v_68, false, _fx_catch_17); } - _fx_M6K_formFM8KLitBoolN14K_form__klit_t1B(false, &v_67); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_67, &v_68); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypBool, &loc_0, &v_69); + _fx_M6K_formFM8KLitBoolN14K_form__klit_t1B(false, &v_69); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_69, &v_70); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypBool, &loc_0, &v_71); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_68, &v_69, - &v_70), _fx_catch_17); - _fx_make_T2LN14K_form__kexp_tN14K_form__kexp_t(0, v_70, &v_71); - FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_71, 0, true, &__fold_result___2), _fx_catch_17); - FX_CALL(_fx_M11K_normalizeFM3revLN10Ast__pat_t1LN10Ast__pat_t(p_1->u.PatAlt.t0, &v_72, 0), _fx_catch_17); - _fx_LN10Ast__pat_t lst_5 = v_72; + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_70, &v_71, + &v_72), _fx_catch_17); + _fx_make_T2LN14K_form__kexp_tN14K_form__kexp_t(0, v_72, &v_73); + FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_73, 0, true, &alt_cases_0), _fx_catch_17); + FX_CALL(_fx_M11K_normalizeFM3revLN10Ast__pat_t1LN10Ast__pat_t(p_1->u.PatAlt.t0, &v_74, 0), _fx_catch_17); + _fx_LN10Ast__pat_t lst_5 = v_74; for (; lst_5; lst_5 = lst_5->tl) { - _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t alt_cases_1 = 0; - _fx_N14K_form__atom_t v_78 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_79 = {0}; - _fx_N14K_form__kexp_t v_80 = 0; + _fx_N14K_form__atom_t v_80 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_81 = {0}; + _fx_N14K_form__kexp_t v_82 = 0; _fx_R23K_normalize__pat_info_t pinfo_3 = {0}; - _fx_Ta3LR23K_normalize__pat_info_t v_81 = {0}; + _fx_Ta3LR23K_normalize__pat_info_t v_83 = {0}; _fx_Ta3LR23K_normalize__pat_info_t plists__0 = {0}; - _fx_Ta2LN14K_form__kexp_t v_82 = {0}; - _fx_Ta2LN14K_form__kexp_t v_83 = {0}; + _fx_Ta2LN14K_form__kexp_t v_84 = {0}; + _fx_Ta2LN14K_form__kexp_t v_85 = {0}; _fx_LN14K_form__kexp_t checks__0 = 0; _fx_LN14K_form__kexp_t code__0 = 0; - _fx_N14K_form__klit_t v_84 = {0}; - _fx_N14K_form__atom_t v_85 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_86 = {0}; - _fx_N14K_form__kexp_t v_87 = 0; - _fx_LN14K_form__kexp_t v_88 = 0; + _fx_N14K_form__klit_t v_86 = {0}; + _fx_N14K_form__atom_t v_87 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_88 = {0}; + _fx_N14K_form__kexp_t v_89 = 0; + _fx_LN14K_form__kexp_t v_90 = 0; _fx_N14K_form__kexp_t e_0 = 0; - _fx_LN14K_form__kexp_t v_89 = 0; - _fx_T2LN14K_form__kexp_tN14K_form__kexp_t v_90 = {0}; + _fx_LN14K_form__kexp_t v_91 = 0; + _fx_T2LN14K_form__kexp_tN14K_form__kexp_t v_92 = {0}; + _fx_LT2LN14K_form__kexp_tN14K_form__kexp_t v_93 = 0; _fx_N10Ast__pat_t p_2 = lst_5->hd; - FX_COPY_PTR(__fold_result___2, &alt_cases_1); - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&n_1, &v_78); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ptyp_0, &loc_0, &v_79); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&n_1, &v_80); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ptyp_0, &loc_0, &v_81); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_78, &v_79, - &v_80), _fx_catch_16); - _fx_make_R23K_normalize__pat_info_t(p_2, ptyp_0, v_80, &var_tag0_0, &pinfo_3); - _fx_make_Ta3LR23K_normalize__pat_info_t(0, 0, 0, &v_81); + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_80, &v_81, + &v_82), _fx_catch_16); + _fx_make_R23K_normalize__pat_info_t(p_2, ptyp_0, v_82, &var_tag0_0, &pinfo_3); + _fx_make_Ta3LR23K_normalize__pat_info_t(0, 0, 0, &v_83); FX_CALL( - _fx_M11K_normalizeFM12dispatch_patTa3LRM10pat_info_t2RM10pat_info_tTa3LRM10pat_info_t(&pinfo_3, &v_81, + _fx_M11K_normalizeFM12dispatch_patTa3LRM10pat_info_t2RM10pat_info_tTa3LRM10pat_info_t(&pinfo_3, &v_83, &plists__0, 0), _fx_catch_16); - _fx_make_Ta2LN14K_form__kexp_t(0, 0, &v_82); + _fx_make_Ta2LN14K_form__kexp_t(0, 0, &v_84); FX_CALL( _fx_M11K_normalizeFM19process_next_subpatTa2LN14K_form__kexp_t6Ta3LRM10pat_info_tTa2LN14K_form__kexp_tLN12Ast__scope_tirRt6Set__t1R9Ast__id_tLN12Ast__scope_t( - &plists__0, &v_82, case_sc_2, km_idx_0, match_var_cases_ref_0, sc_0, &v_83, 0), _fx_catch_16); - FX_COPY_PTR(v_83.t0, &checks__0); - FX_COPY_PTR(v_83.t1, &code__0); - _fx_M6K_formFM8KLitBoolN14K_form__klit_t1B(true, &v_84); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_84, &v_85); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypBool, &loc_0, &v_86); + &plists__0, &v_84, case_sc_2, km_idx_0, match_var_cases_ref_0, sc_0, &v_85, 0), _fx_catch_16); + FX_COPY_PTR(v_85.t0, &checks__0); + FX_COPY_PTR(v_85.t1, &code__0); + _fx_M6K_formFM8KLitBoolN14K_form__klit_t1B(true, &v_86); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_86, &v_87); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypBool, &loc_0, &v_88); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_85, &v_86, - &v_87), _fx_catch_16); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_87, code__0, true, &v_88), _fx_catch_16); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_88, &loc_0, &e_0, 0), - _fx_catch_16); - FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__kexp_t1LN14K_form__kexp_t(checks__0, &v_89, 0), _fx_catch_16); - _fx_make_T2LN14K_form__kexp_tN14K_form__kexp_t(v_89, e_0, &v_90); - FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_90, alt_cases_1, false, &alt_cases_1), + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_87, &v_88, + &v_89), _fx_catch_16); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_89, code__0, true, &v_90), _fx_catch_16); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_90, &loc_0, &e_0, 0), _fx_catch_16); - _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&__fold_result___2); - FX_COPY_PTR(alt_cases_1, &__fold_result___2); + FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__kexp_t1LN14K_form__kexp_t(checks__0, &v_91, 0), _fx_catch_16); + _fx_make_T2LN14K_form__kexp_tN14K_form__kexp_t(v_91, e_0, &v_92); + FX_CALL(_fx_cons_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_92, alt_cases_0, true, &v_93), _fx_catch_16); + _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&alt_cases_0); + FX_COPY_PTR(v_93, &alt_cases_0); _fx_catch_16: ; - _fx_free_T2LN14K_form__kexp_tN14K_form__kexp_t(&v_90); - if (v_89) { - _fx_free_LN14K_form__kexp_t(&v_89); + if (v_93) { + _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&v_93); + } + _fx_free_T2LN14K_form__kexp_tN14K_form__kexp_t(&v_92); + if (v_91) { + _fx_free_LN14K_form__kexp_t(&v_91); } if (e_0) { _fx_free_N14K_form__kexp_t(&e_0); } - if (v_88) { - _fx_free_LN14K_form__kexp_t(&v_88); + if (v_90) { + _fx_free_LN14K_form__kexp_t(&v_90); } - if (v_87) { - _fx_free_N14K_form__kexp_t(&v_87); + if (v_89) { + _fx_free_N14K_form__kexp_t(&v_89); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_86); - _fx_free_N14K_form__atom_t(&v_85); - _fx_free_N14K_form__klit_t(&v_84); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_88); + _fx_free_N14K_form__atom_t(&v_87); + _fx_free_N14K_form__klit_t(&v_86); if (code__0) { _fx_free_LN14K_form__kexp_t(&code__0); } if (checks__0) { _fx_free_LN14K_form__kexp_t(&checks__0); } - _fx_free_Ta2LN14K_form__kexp_t(&v_83); - _fx_free_Ta2LN14K_form__kexp_t(&v_82); + _fx_free_Ta2LN14K_form__kexp_t(&v_85); + _fx_free_Ta2LN14K_form__kexp_t(&v_84); _fx_free_Ta3LR23K_normalize__pat_info_t(&plists__0); - _fx_free_Ta3LR23K_normalize__pat_info_t(&v_81); + _fx_free_Ta3LR23K_normalize__pat_info_t(&v_83); _fx_free_R23K_normalize__pat_info_t(&pinfo_3); - if (v_80) { - _fx_free_N14K_form__kexp_t(&v_80); - } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_79); - _fx_free_N14K_form__atom_t(&v_78); - if (alt_cases_1) { - _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&alt_cases_1); + if (v_82) { + _fx_free_N14K_form__kexp_t(&v_82); } + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_81); + _fx_free_N14K_form__atom_t(&v_80); FX_CHECK_EXN(_fx_catch_17); } - FX_COPY_PTR(__fold_result___2, &alt_cases_0); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypBool, &loc_0, &v_73); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypBool, &loc_0, &v_75); FX_CALL( _fx_M6K_formFM9KExpMatchN14K_form__kexp_t2LT2LN14K_form__kexp_tN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t( - alt_cases_0, &v_73, &v_74), _fx_catch_17); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_74, code_1, true, &v_75), _fx_catch_17); + alt_cases_0, &v_75, &v_76), _fx_catch_17); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_76, code_1, true, &v_77), _fx_catch_17); FX_CALL( - _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_75, &loc_0, &alt_check_0, 0), + _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_77, &loc_0, &alt_check_0, 0), _fx_catch_17); - FX_CALL(_fx_cons_LN14K_form__kexp_t(alt_check_0, checks_0, true, &v_76), _fx_catch_17); - _fx_make_T3Ta3LR23K_normalize__pat_info_tLN14K_form__kexp_tLN14K_form__kexp_t(&plists_3, v_76, 0, &v_14); + FX_CALL(_fx_cons_LN14K_form__kexp_t(alt_check_0, checks_0, true, &v_78), _fx_catch_17); + _fx_make_T3Ta3LR23K_normalize__pat_info_tLN14K_form__kexp_tLN14K_form__kexp_t(&plists_3, v_78, 0, &v_14); _fx_catch_17: ; - if (v_76) { - _fx_free_LN14K_form__kexp_t(&v_76); + if (v_78) { + _fx_free_LN14K_form__kexp_t(&v_78); } if (alt_check_0) { _fx_free_N14K_form__kexp_t(&alt_check_0); } - if (v_75) { - _fx_free_LN14K_form__kexp_t(&v_75); + if (v_77) { + _fx_free_LN14K_form__kexp_t(&v_77); + } + if (v_76) { + _fx_free_N14K_form__kexp_t(&v_76); } + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_75); if (v_74) { - _fx_free_N14K_form__kexp_t(&v_74); + _fx_free_LN10Ast__pat_t(&v_74); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_73); if (alt_cases_0) { _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&alt_cases_0); } + _fx_free_T2LN14K_form__kexp_tN14K_form__kexp_t(&v_73); if (v_72) { - _fx_free_LN10Ast__pat_t(&v_72); + _fx_free_N14K_form__kexp_t(&v_72); } - if (__fold_result___2) { - _fx_free_LT2LN14K_form__kexp_tN14K_form__kexp_t(&__fold_result___2); - } - _fx_free_T2LN14K_form__kexp_tN14K_form__kexp_t(&v_71); - if (v_70) { - _fx_free_N14K_form__kexp_t(&v_70); - } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_69); - _fx_free_N14K_form__atom_t(&v_68); - _fx_free_N14K_form__klit_t(&v_67); - fx_free_exn(&v_66); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_71); + _fx_free_N14K_form__atom_t(&v_70); + _fx_free_N14K_form__klit_t(&v_69); + fx_free_exn(&v_68); } else { - fx_exn_t v_91 = {0}; + fx_exn_t v_94 = {0}; fx_str_t slit_5 = FX_MAKE_STR("this type of pattern is not supported yet"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_5, &v_91, 0), _fx_catch_18); - FX_THROW(&v_91, false, _fx_catch_18); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&loc_0, &slit_5, &v_94, 0), _fx_catch_18); + FX_THROW(&v_94, false, _fx_catch_18); _fx_catch_18: ; - fx_free_exn(&v_91); + fx_free_exn(&v_94); } FX_CHECK_EXN(_fx_catch_19); _fx_copy_Ta3LR23K_normalize__pat_info_t(&v_14.t0, &plists_4); @@ -20179,7 +19630,7 @@ FX_EXTERN_C int _fx_M11K_normalizeFM13transform_funLN14K_form__kexp_t3rR13Ast__d _fx_rLR9Ast__id_t df_templ_inst_0 = 0; _fx_LR9Ast__id_t df_templ_args_0 = 0; _fx_LR9Ast__id_t inst_list_0 = 0; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t code_1 = 0; int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); int_ km_idx_0; @@ -20216,236 +19667,229 @@ _fx_endmatch_1: ; else { FX_COPY_PTR(df_templ_inst_0->data, &inst_list_0); } - FX_COPY_PTR(code_0, &__fold_result___0); + FX_COPY_PTR(code_0, &code_1); _fx_LR9Ast__id_t lst_0 = inst_list_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t code_1 = 0; _fx_N14Ast__id_info_t v_1 = {0}; - _fx_LN14K_form__kexp_t v_2 = 0; _fx_R9Ast__id_t* inst_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &code_1); - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(inst_0, &df_loc_0, &v_1, 0), _fx_catch_10); + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(inst_0, &df_loc_0, &v_1, 0), _fx_catch_12); if (v_1.tag == 3) { _fx_N10Ast__exp_t inst_body_0 = 0; _fx_N10Ast__typ_t inst_typ_0 = 0; _fx_LN10Ast__pat_t inst_args_0 = 0; _fx_N14K_form__ktyp_t ktyp_0 = 0; - _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t v_3 = {0}; + _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t v_2 = {0}; _fx_LN14K_form__ktyp_t argtyps_0 = 0; _fx_N14K_form__ktyp_t rt_0 = 0; - _fx_T3LN10Ast__pat_tLN14K_form__ktyp_tN10Ast__exp_t v_4 = {0}; - _fx_LN10Ast__pat_t __fold_result___1 = 0; - _fx_LN10Ast__pat_t v_5 = 0; - _fx_LN14K_form__ktyp_t v_6 = 0; + _fx_T3LN10Ast__pat_tLN14K_form__ktyp_tN10Ast__exp_t v_3 = {0}; + _fx_LN10Ast__pat_t res_1 = 0; + _fx_LN10Ast__pat_t v_4 = 0; + _fx_LN14K_form__ktyp_t res_2 = 0; + _fx_LN14K_form__ktyp_t v_5 = 0; _fx_LN10Ast__pat_t inst_args_1 = 0; _fx_LN14K_form__ktyp_t argtyps_1 = 0; _fx_N10Ast__exp_t inst_body_1 = 0; + fx_str_t v_6 = {0}; fx_str_t v_7 = {0}; fx_str_t v_8 = {0}; - fx_str_t v_9 = {0}; - fx_exn_t v_10 = {0}; + fx_exn_t v_9 = {0}; _fx_LN12Ast__scope_t body_sc_0 = 0; - _fx_T2LR9Ast__id_tLN14K_form__kexp_t __fold_result___2 = {0}; - _fx_T2LR9Ast__id_tLN14K_form__kexp_t v_11 = {0}; _fx_LR9Ast__id_t params_0 = 0; _fx_LN14K_form__kexp_t body_code_0 = 0; - _fx_LR9Ast__id_t v_12 = 0; - _fx_LN14K_form__kexp_t res_1 = 0; - _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_13 = {0}; + _fx_LR9Ast__id_t v_10 = 0; + _fx_LN14K_form__kexp_t res_3 = 0; + _fx_T2N14K_form__kexp_tLN14K_form__kexp_t v_11 = {0}; _fx_N14K_form__kexp_t e_0 = 0; _fx_LN14K_form__kexp_t body_code_1 = 0; - _fx_LN14K_form__kexp_t v_14 = 0; + _fx_LN14K_form__kexp_t v_12 = 0; _fx_N14K_form__kexp_t body_kexp_0 = 0; - _fx_LR9Ast__id_t v_15 = 0; - _fx_Nt6option1N14K_form__kexp_t v_16 = {0}; - _fx_R13Ast__deffun_t* v_17 = &v_1.u.IdFun->data; - _fx_R10Ast__loc_t inst_loc_0 = v_17->df_loc; - _fx_R16Ast__fun_flags_t inst_flags_0 = v_17->df_flags; - FX_COPY_PTR(v_17->df_body, &inst_body_0); - FX_COPY_PTR(v_17->df_typ, &inst_typ_0); - FX_COPY_PTR(v_17->df_args, &inst_args_0); - _fx_R9Ast__id_t inst_name_0 = v_17->df_name; + _fx_LR9Ast__id_t v_13 = 0; + _fx_Nt6option1N14K_form__kexp_t v_14 = {0}; + _fx_LN14K_form__kexp_t v_15 = 0; + _fx_R13Ast__deffun_t* v_16 = &v_1.u.IdFun->data; + _fx_R10Ast__loc_t inst_loc_0 = v_16->df_loc; + _fx_R16Ast__fun_flags_t inst_flags_0 = v_16->df_flags; + FX_COPY_PTR(v_16->df_body, &inst_body_0); + FX_COPY_PTR(v_16->df_typ, &inst_typ_0); + FX_COPY_PTR(v_16->df_args, &inst_args_0); + _fx_R9Ast__id_t inst_name_0 = v_16->df_name; FX_CALL(_fx_M11K_normalizeFM8typ2ktypN14K_form__ktyp_t2N10Ast__typ_tR10Ast__loc_t(inst_typ_0, &df_loc_0, &ktyp_0, 0), - _fx_catch_8); + _fx_catch_10); if (FX_REC_VARIANT_TAG(ktyp_0) == 13) { _fx_T2LN14K_form__ktyp_tN14K_form__ktyp_t* vcase_0 = &ktyp_0->u.KTypFun; - _fx_make_T2LN14K_form__ktyp_tN14K_form__ktyp_t(vcase_0->t0, vcase_0->t1, &v_3); + _fx_make_T2LN14K_form__ktyp_tN14K_form__ktyp_t(vcase_0->t0, vcase_0->t1, &v_2); } else { + fx_str_t v_17 = {0}; fx_str_t v_18 = {0}; - fx_str_t v_19 = {0}; - fx_exn_t v_20 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&inst_name_0, &v_18, 0), _fx_catch_0); + fx_exn_t v_19 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&inst_name_0, &v_17, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("the type of non-constructor function \'"); fx_str_t slit_1 = FX_MAKE_STR("\' should be TypFun(_,_)"); { - const fx_str_t strs_0[] = { slit_0, v_18, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_19), _fx_catch_0); + const fx_str_t strs_0[] = { slit_0, v_17, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_18), _fx_catch_0); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&inst_loc_0, &v_19, &v_20, 0), _fx_catch_0); - FX_THROW(&v_20, false, _fx_catch_0); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&inst_loc_0, &v_18, &v_19, 0), _fx_catch_0); + FX_THROW(&v_19, false, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_20); - FX_FREE_STR(&v_19); + fx_free_exn(&v_19); FX_FREE_STR(&v_18); + FX_FREE_STR(&v_17); } - FX_CHECK_EXN(_fx_catch_8); - FX_COPY_PTR(v_3.t0, &argtyps_0); - FX_COPY_PTR(v_3.t1, &rt_0); + FX_CHECK_EXN(_fx_catch_10); + FX_COPY_PTR(v_2.t0, &argtyps_0); + FX_COPY_PTR(v_2.t1, &rt_0); if (!inst_flags_0.fun_flag_have_keywords) { - _fx_make_T3LN10Ast__pat_tLN14K_form__ktyp_tN10Ast__exp_t(inst_args_0, argtyps_0, inst_body_0, &v_4); + _fx_make_T3LN10Ast__pat_tLN14K_form__ktyp_tN10Ast__exp_t(inst_args_0, argtyps_0, inst_body_0, &v_3); } else { _fx_LN10Ast__pat_t lst_1 = inst_args_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN10Ast__pat_t r_0 = 0; + _fx_LN10Ast__pat_t v_20 = 0; _fx_N10Ast__pat_t a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LN10Ast__pat_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, res_1, true, &v_20), _fx_catch_1); + _fx_free_LN10Ast__pat_t(&res_1); + FX_COPY_PTR(v_20, &res_1); _fx_catch_1: ; - if (r_0) { - _fx_free_LN10Ast__pat_t(&r_0); + if (v_20) { + _fx_free_LN10Ast__pat_t(&v_20); } - FX_CHECK_EXN(_fx_catch_8); + FX_CHECK_EXN(_fx_catch_10); + } + FX_COPY_PTR(res_1, &v_4); + _fx_LN14K_form__ktyp_t lst_2 = argtyps_0; + for (; lst_2; lst_2 = lst_2->tl) { + _fx_LN14K_form__ktyp_t v_21 = 0; + _fx_N14K_form__ktyp_t a_1 = lst_2->hd; + FX_CALL(_fx_cons_LN14K_form__ktyp_t(a_1, res_2, true, &v_21), _fx_catch_2); + _fx_free_LN14K_form__ktyp_t(&res_2); + FX_COPY_PTR(v_21, &res_2); + + _fx_catch_2: ; + if (v_21) { + _fx_free_LN14K_form__ktyp_t(&v_21); + } + FX_CHECK_EXN(_fx_catch_10); } - FX_COPY_PTR(__fold_result___1, &v_5); - FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__ktyp_t1LN14K_form__ktyp_t(argtyps_0, &v_6, 0), _fx_catch_8); + FX_COPY_PTR(res_2, &v_5); if (FX_REC_VARIANT_TAG(inst_body_0) == 12) { _fx_T2LN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_1 = &inst_body_0->u.ExpSeq; - _fx_LN10Ast__exp_t v_21 = vcase_1->t0; - if (v_21 != 0) { - _fx_N10Ast__exp_t v_22 = v_21->hd; - if (FX_REC_VARIANT_TAG(v_22) == 34) { - _fx_T4N10Ast__pat_tN10Ast__exp_tR16Ast__val_flags_tR10Ast__loc_t* vcase_2 = &v_22->u.DefVal; + _fx_LN10Ast__exp_t v_22 = vcase_1->t0; + if (v_22 != 0) { + _fx_N10Ast__exp_t v_23 = v_22->hd; + if (FX_REC_VARIANT_TAG(v_23) == 34) { + _fx_T4N10Ast__pat_tN10Ast__exp_tR16Ast__val_flags_tR10Ast__loc_t* vcase_2 = &v_23->u.DefVal; if (FX_REC_VARIANT_TAG(vcase_2->t1) == 7) { - _fx_N10Ast__pat_t v_23 = vcase_2->t0; - if (FX_REC_VARIANT_TAG(v_23) == 6) { - if (v_6 != 0) { - _fx_N14K_form__ktyp_t v_24 = v_6->hd; - if (FX_REC_VARIANT_TAG(v_24) == 15) { - if (v_5 != 0) { - fx_exn_t v_25 = {0}; + _fx_N10Ast__pat_t v_24 = vcase_2->t0; + if (FX_REC_VARIANT_TAG(v_24) == 6) { + if (v_5 != 0) { + _fx_N14K_form__ktyp_t v_25 = v_5->hd; + if (FX_REC_VARIANT_TAG(v_25) == 15) { + if (v_4 != 0) { fx_exn_t v_26 = {0}; - _fx_T2LN10Ast__pat_tLN14K_form__ktyp_t __fold_result___3 = {0}; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t relems_0 = 0; - _fx_LT2R9Ast__id_tN10Ast__pat_t relems_pats_0 = 0; - _fx_T2LN10Ast__pat_tLN14K_form__ktyp_t v_27 = {0}; + fx_exn_t v_27 = {0}; _fx_LN10Ast__pat_t inst_args_2 = 0; _fx_LN14K_form__ktyp_t argtyps_2 = 0; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t relems_0 = 0; + _fx_LT2R9Ast__id_tN10Ast__pat_t relems_pats_0 = 0; _fx_N10Ast__exp_t new_inst_body_0 = 0; + _fx_LN10Ast__pat_t res_4 = 0; _fx_LN10Ast__pat_t v_28 = 0; _fx_LN14K_form__ktyp_t v_29 = 0; - _fx_LN10Ast__pat_t rest_inst_args_0 = v_5->tl; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t relems_1 = v_24->u.KTypRecord.t1; - _fx_LN14K_form__ktyp_t rest_argtyps_0 = v_6->tl; - _fx_LT2R9Ast__id_tN10Ast__pat_t relems_pats_1 = v_23->u.PatRecord.t1; + _fx_LN10Ast__pat_t rest_inst_args_0 = v_4->tl; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t relems_1 = v_25->u.KTypRecord.t1; + _fx_LN14K_form__ktyp_t rest_argtyps_0 = v_5->tl; + _fx_LT2R9Ast__id_tN10Ast__pat_t relems_pats_1 = v_24->u.PatRecord.t1; _fx_R10Ast__loc_t* loc_0 = &vcase_2->t3; - _fx_LN10Ast__exp_t rest_inst_body_0 = v_21->tl; + _fx_LN10Ast__exp_t rest_inst_body_0 = v_22->tl; int_ v_30 = _fx_M11K_normalizeFM6lengthi1LT2R9Ast__id_tN14K_form__ktyp_t(relems_1, 0); - int_ v_31; - FX_CALL(_fx_M11K_normalizeFM8length1_i1LT2R9Ast__id_tN10Ast__pat_t(relems_pats_1, &v_31, 0), - _fx_catch_5); + int_ v_31 = _fx_M11K_normalizeFM6lengthi1LT2R9Ast__id_tN10Ast__pat_t(relems_pats_1, 0); if (v_30 != v_31) { fx_str_t slit_2 = FX_MAKE_STR("the number of pattern elems in the unpack operation is incorrect"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_2, &v_25, 0), _fx_catch_5); - FX_THROW(&v_25, false, _fx_catch_5); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_2, &v_26, 0), _fx_catch_7); + FX_THROW(&v_26, false, _fx_catch_7); } - int_ v_32; - FX_CALL(_fx_M11K_normalizeFM8length1_i1LN14K_form__ktyp_t(rest_argtyps_0, &v_32, 0), - _fx_catch_5); - int_ v_33; - FX_CALL(_fx_M11K_normalizeFM8length1_i1LN10Ast__pat_t(rest_inst_args_0, &v_33, 0), - _fx_catch_5); + int_ v_32 = _fx_M11K_normalizeFM6lengthi1LN14K_form__ktyp_t(rest_argtyps_0, 0); + int_ v_33 = _fx_M11K_normalizeFM6lengthi1LN10Ast__pat_t(rest_inst_args_0, 0); if (v_32 != v_33) { fx_str_t slit_3 = FX_MAKE_STR("the number of positional arguments and their types do not match"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_3, &v_26, 0), _fx_catch_5); - FX_THROW(&v_26, false, _fx_catch_5); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &slit_3, &v_27, 0), _fx_catch_7); + FX_THROW(&v_27, false, _fx_catch_7); } - _fx_make_T2LN10Ast__pat_tLN14K_form__ktyp_t(rest_inst_args_0, rest_argtyps_0, - &__fold_result___3); + FX_COPY_PTR(rest_inst_args_0, &inst_args_2); + FX_COPY_PTR(rest_argtyps_0, &argtyps_2); FX_COPY_PTR(relems_1, &relems_0); - _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_2 = relems_0; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_3 = relems_0; FX_COPY_PTR(relems_pats_1, &relems_pats_0); - _fx_LT2R9Ast__id_tN10Ast__pat_t lst_3 = relems_pats_0; - for (; lst_2 && lst_3; lst_3 = lst_3->tl, lst_2 = lst_2->tl) { + _fx_LT2R9Ast__id_tN10Ast__pat_t lst_4 = relems_pats_0; + for (; lst_3 && lst_4; lst_4 = lst_4->tl, lst_3 = lst_3->tl) { _fx_N14K_form__ktyp_t ti_0 = 0; _fx_N10Ast__pat_t pi_0 = 0; - _fx_T2LN10Ast__pat_tLN14K_form__ktyp_t v_34 = {0}; - _fx_LN10Ast__pat_t inst_args_3 = 0; - _fx_LN14K_form__ktyp_t argtyps_3 = 0; + fx_str_t v_34 = {0}; fx_str_t v_35 = {0}; fx_str_t v_36 = {0}; - fx_str_t v_37 = {0}; - fx_exn_t v_38 = {0}; - _fx_T2LN10Ast__pat_tLN14K_form__ktyp_t v_39 = {0}; - _fx_T2R9Ast__id_tN10Ast__pat_t* __pat___0 = &lst_3->hd; - _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___1 = &lst_2->hd; + fx_exn_t v_37 = {0}; + _fx_LN10Ast__pat_t v_38 = 0; + _fx_LN14K_form__ktyp_t v_39 = 0; + _fx_T2R9Ast__id_tN10Ast__pat_t* __pat___0 = &lst_4->hd; + _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___1 = &lst_3->hd; _fx_R9Ast__id_t ni_0 = __pat___1->t0; FX_COPY_PTR(__pat___1->t1, &ti_0); _fx_R9Ast__id_t ni__0 = __pat___0->t0; FX_COPY_PTR(__pat___0->t1, &pi_0); - _fx_copy_T2LN10Ast__pat_tLN14K_form__ktyp_t(&__fold_result___3, &v_34); - FX_COPY_PTR(v_34.t0, &inst_args_3); - FX_COPY_PTR(v_34.t1, &argtyps_3); - bool res_2; - FX_CALL(_fx_M11K_normalizeFM6__ne__B2R9Ast__id_tR9Ast__id_t(&ni_0, &ni__0, &res_2, 0), - _fx_catch_2); - if (res_2) { - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&ni_0, &v_35, 0), _fx_catch_2); - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&ni__0, &v_36, 0), _fx_catch_2); + bool res_5; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&ni_0, &ni__0, &res_5, 0), _fx_catch_3); + if (!res_5) { + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&ni_0, &v_34, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&ni__0, &v_35, 0), _fx_catch_3); fx_str_t slit_4 = FX_MAKE_STR("the record field \'"); fx_str_t slit_5 = FX_MAKE_STR("\' does not match the record pattern field \'"); fx_str_t slit_6 = FX_MAKE_STR("\'"); { - const fx_str_t strs_1[] = { slit_4, v_35, slit_5, v_36, slit_6 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 5, &v_37), _fx_catch_2); + const fx_str_t strs_1[] = { slit_4, v_34, slit_5, v_35, slit_6 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 5, &v_36), _fx_catch_3); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_37, &v_38, 0), _fx_catch_2); - FX_THROW(&v_38, false, _fx_catch_2); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_0, &v_36, &v_37, 0), _fx_catch_3); + FX_THROW(&v_37, false, _fx_catch_3); } - FX_CALL(_fx_cons_LN10Ast__pat_t(pi_0, inst_args_3, false, &inst_args_3), _fx_catch_2); - FX_CALL(_fx_cons_LN14K_form__ktyp_t(ti_0, argtyps_3, false, &argtyps_3), _fx_catch_2); - _fx_make_T2LN10Ast__pat_tLN14K_form__ktyp_t(inst_args_3, argtyps_3, &v_39); - _fx_free_T2LN10Ast__pat_tLN14K_form__ktyp_t(&__fold_result___3); - _fx_copy_T2LN10Ast__pat_tLN14K_form__ktyp_t(&v_39, &__fold_result___3); - - _fx_catch_2: ; - _fx_free_T2LN10Ast__pat_tLN14K_form__ktyp_t(&v_39); - fx_free_exn(&v_38); - FX_FREE_STR(&v_37); - FX_FREE_STR(&v_36); - FX_FREE_STR(&v_35); - if (argtyps_3) { - _fx_free_LN14K_form__ktyp_t(&argtyps_3); + FX_CALL(_fx_cons_LN10Ast__pat_t(pi_0, inst_args_2, true, &v_38), _fx_catch_3); + _fx_free_LN10Ast__pat_t(&inst_args_2); + FX_COPY_PTR(v_38, &inst_args_2); + FX_CALL(_fx_cons_LN14K_form__ktyp_t(ti_0, argtyps_2, true, &v_39), _fx_catch_3); + _fx_free_LN14K_form__ktyp_t(&argtyps_2); + FX_COPY_PTR(v_39, &argtyps_2); + + _fx_catch_3: ; + if (v_39) { + _fx_free_LN14K_form__ktyp_t(&v_39); } - if (inst_args_3) { - _fx_free_LN10Ast__pat_t(&inst_args_3); + if (v_38) { + _fx_free_LN10Ast__pat_t(&v_38); } - _fx_free_T2LN10Ast__pat_tLN14K_form__ktyp_t(&v_34); + fx_free_exn(&v_37); + FX_FREE_STR(&v_36); + FX_FREE_STR(&v_35); + FX_FREE_STR(&v_34); if (pi_0) { _fx_free_N10Ast__pat_t(&pi_0); } if (ti_0) { _fx_free_N14K_form__ktyp_t(&ti_0); } - FX_CHECK_EXN(_fx_catch_5); + FX_CHECK_EXN(_fx_catch_7); } - int s_0 = !lst_2 + !lst_3; - FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_5); - _fx_copy_T2LN10Ast__pat_tLN14K_form__ktyp_t(&__fold_result___3, &v_27); - FX_COPY_PTR(v_27.t0, &inst_args_2); - FX_COPY_PTR(v_27.t1, &argtyps_2); + int s_0 = !lst_3 + !lst_4; + FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_7); if (rest_inst_body_0 == 0) { FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&df_loc_0, &new_inst_body_0), - _fx_catch_3); + _fx_catch_4); - _fx_catch_3: ; + _fx_catch_4: ; goto _fx_endmatch_2; } if (rest_inst_body_0 != 0) { @@ -20455,44 +19899,58 @@ _fx_endmatch_1: ; } FX_CALL( _fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(rest_inst_body_0, - &vcase_1->t1, &new_inst_body_0), _fx_catch_4); + &vcase_1->t1, &new_inst_body_0), _fx_catch_5); - _fx_catch_4: ; + _fx_catch_5: ; _fx_endmatch_2: ; - FX_CHECK_EXN(_fx_catch_5); - FX_CALL(_fx_M11K_normalizeFM3revLN10Ast__pat_t1LN10Ast__pat_t(inst_args_2, &v_28, 0), - _fx_catch_5); + FX_CHECK_EXN(_fx_catch_7); + _fx_LN10Ast__pat_t lst_5 = inst_args_2; + for (; lst_5; lst_5 = lst_5->tl) { + _fx_LN10Ast__pat_t v_40 = 0; + _fx_N10Ast__pat_t a_2 = lst_5->hd; + FX_CALL(_fx_cons_LN10Ast__pat_t(a_2, res_4, true, &v_40), _fx_catch_6); + _fx_free_LN10Ast__pat_t(&res_4); + FX_COPY_PTR(v_40, &res_4); + + _fx_catch_6: ; + if (v_40) { + _fx_free_LN10Ast__pat_t(&v_40); + } + FX_CHECK_EXN(_fx_catch_7); + } + FX_COPY_PTR(res_4, &v_28); FX_CALL(_fx_M11K_normalizeFM3revLN14K_form__ktyp_t1LN14K_form__ktyp_t(argtyps_2, &v_29, 0), - _fx_catch_5); - _fx_make_T3LN10Ast__pat_tLN14K_form__ktyp_tN10Ast__exp_t(v_28, v_29, new_inst_body_0, &v_4); + _fx_catch_7); + _fx_make_T3LN10Ast__pat_tLN14K_form__ktyp_tN10Ast__exp_t(v_28, v_29, new_inst_body_0, &v_3); - _fx_catch_5: ; + _fx_catch_7: ; if (v_29) { _fx_free_LN14K_form__ktyp_t(&v_29); } if (v_28) { _fx_free_LN10Ast__pat_t(&v_28); } + if (res_4) { + _fx_free_LN10Ast__pat_t(&res_4); + } if (new_inst_body_0) { _fx_free_N10Ast__exp_t(&new_inst_body_0); } - if (argtyps_2) { - _fx_free_LN14K_form__ktyp_t(&argtyps_2); - } - if (inst_args_2) { - _fx_free_LN10Ast__pat_t(&inst_args_2); - } - _fx_free_T2LN10Ast__pat_tLN14K_form__ktyp_t(&v_27); if (relems_pats_0) { _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&relems_pats_0); } if (relems_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&relems_0); } - _fx_free_T2LN10Ast__pat_tLN14K_form__ktyp_t(&__fold_result___3); + if (argtyps_2) { + _fx_free_LN14K_form__ktyp_t(&argtyps_2); + } + if (inst_args_2) { + _fx_free_LN10Ast__pat_t(&inst_args_2); + } + fx_free_exn(&v_27); fx_free_exn(&v_26); - fx_free_exn(&v_25); goto _fx_endmatch_3; } } @@ -20502,122 +19960,106 @@ _fx_endmatch_1: ; } } } - fx_exn_t v_40 = {0}; + fx_exn_t v_41 = {0}; fx_str_t slit_7 = FX_MAKE_STR( "the function with keyword parameters must have the anonymous record as the last parameter and should start with the record unpacking"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &slit_7, &v_40, 0), _fx_catch_6); - FX_THROW(&v_40, false, _fx_catch_6); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&df_loc_0, &slit_7, &v_41, 0), _fx_catch_8); + FX_THROW(&v_41, false, _fx_catch_8); - _fx_catch_6: ; - fx_free_exn(&v_40); + _fx_catch_8: ; + fx_free_exn(&v_41); _fx_endmatch_3: ; - FX_CHECK_EXN(_fx_catch_8); + FX_CHECK_EXN(_fx_catch_10); } - FX_COPY_PTR(v_4.t0, &inst_args_1); - FX_COPY_PTR(v_4.t1, &argtyps_1); - FX_COPY_PTR(v_4.t2, &inst_body_1); - int_ nargs_0; - FX_CALL(_fx_M11K_normalizeFM8length1_i1LN10Ast__pat_t(inst_args_1, &nargs_0, 0), _fx_catch_8); - int_ nargtypes_0; - FX_CALL(_fx_M11K_normalizeFM8length1_i1LN14K_form__ktyp_t(argtyps_1, &nargtypes_0, 0), _fx_catch_8); + FX_COPY_PTR(v_3.t0, &inst_args_1); + FX_COPY_PTR(v_3.t1, &argtyps_1); + FX_COPY_PTR(v_3.t2, &inst_body_1); + int_ nargs_0 = _fx_M11K_normalizeFM6lengthi1LN10Ast__pat_t(inst_args_1, 0); + int_ nargtypes_0 = _fx_M11K_normalizeFM6lengthi1LN14K_form__ktyp_t(argtyps_1, 0); if (nargs_0 != nargtypes_0) { - FX_CALL(_fx_F6stringS1i(nargs_0, &v_7, 0), _fx_catch_8); - FX_CALL(_fx_F6stringS1i(nargtypes_0, &v_8, 0), _fx_catch_8); + FX_CALL(_fx_F6stringS1i(nargs_0, &v_6, 0), _fx_catch_10); + FX_CALL(_fx_F6stringS1i(nargtypes_0, &v_7, 0), _fx_catch_10); fx_str_t slit_8 = FX_MAKE_STR("the number of argument patterns ("); fx_str_t slit_9 = FX_MAKE_STR(") and the number of argument types ("); fx_str_t slit_10 = FX_MAKE_STR(") do not match"); { - const fx_str_t strs_2[] = { slit_8, v_7, slit_9, v_8, slit_10 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_9), _fx_catch_8); + const fx_str_t strs_2[] = { slit_8, v_6, slit_9, v_7, slit_10 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_8), _fx_catch_10); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&inst_loc_0, &v_9, &v_10, 0), _fx_catch_8); - FX_THROW(&v_10, false, _fx_catch_8); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&inst_loc_0, &v_8, &v_9, 0), _fx_catch_10); + FX_THROW(&v_9, false, _fx_catch_10); } - _fx_N12Ast__scope_t v_41; - FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_41, 0), _fx_catch_8); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_41, sc_0, true, &body_sc_0), _fx_catch_8); - _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(0, 0, &__fold_result___2); + _fx_N12Ast__scope_t v_42; + FX_CALL(_fx_M3AstFM15new_block_scopeN12Ast__scope_t1i(km_idx_0, &v_42, 0), _fx_catch_10); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_42, sc_0, true, &body_sc_0), _fx_catch_10); int_ idx_0 = 0; - _fx_LN10Ast__pat_t lst_4 = inst_args_1; - _fx_LN14K_form__ktyp_t lst_5 = argtyps_1; - for (; lst_4 && lst_5; lst_5 = lst_5->tl, lst_4 = lst_4->tl, idx_0 += 1) { - _fx_T2LR9Ast__id_tLN14K_form__kexp_t v_42 = {0}; - _fx_LR9Ast__id_t params_1 = 0; - _fx_LN14K_form__kexp_t body_code_2 = 0; + _fx_LN10Ast__pat_t lst_6 = inst_args_1; + _fx_LN14K_form__ktyp_t lst_7 = argtyps_1; + for (; lst_6 && lst_7; lst_7 = lst_7->tl, lst_6 = lst_6->tl, idx_0 += 1) { fx_str_t v_43 = {0}; fx_str_t arg_defname_0 = {0}; _fx_R16Ast__val_flags_t v_44 = {0}; _fx_T2R9Ast__id_tLN14K_form__kexp_t v_45 = {0}; - _fx_LN14K_form__kexp_t body_code_3 = 0; + _fx_LN14K_form__kexp_t body_code1_0 = 0; _fx_R16Ast__val_flags_t v_46 = {0}; - _fx_LN14K_form__kexp_t res_3 = 0; - _fx_T2LR9Ast__id_tLN14K_form__kexp_t v_47 = {0}; - _fx_N14K_form__ktyp_t ti_1 = lst_5->hd; - _fx_N10Ast__pat_t pi_1 = lst_4->hd; - _fx_copy_T2LR9Ast__id_tLN14K_form__kexp_t(&__fold_result___2, &v_42); - FX_COPY_PTR(v_42.t0, ¶ms_1); - FX_COPY_PTR(v_42.t1, &body_code_2); - FX_CALL(_fx_F6stringS1i(idx_0, &v_43, 0), _fx_catch_7); + _fx_LN14K_form__kexp_t res_6 = 0; + _fx_LR9Ast__id_t v_47 = 0; + _fx_N14K_form__ktyp_t ti_1 = lst_7->hd; + _fx_N10Ast__pat_t pi_1 = lst_6->hd; + FX_CALL(_fx_F6stringS1i(idx_0, &v_43, 0), _fx_catch_9); fx_str_t slit_11 = FX_MAKE_STR("arg"); { const fx_str_t strs_3[] = { slit_11, v_43 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 2, &arg_defname_0), _fx_catch_7); + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 2, &arg_defname_0), _fx_catch_9); } - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_44, 0), _fx_catch_7); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_44, 0), _fx_catch_9); FX_CALL( _fx_M11K_normalizeFM17pat_simple_unpackT2R9Ast__id_tLN14K_form__kexp_t7N10Ast__pat_tN14K_form__ktyp_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tSR16Ast__val_flags_tLN12Ast__scope_t( - pi_1, ti_1, &_fx_g19K_normalize__None3_, body_code_2, &arg_defname_0, &v_44, body_sc_0, &v_45, 0), - _fx_catch_7); + pi_1, ti_1, &_fx_g19K_normalize__None3_, body_code_0, &arg_defname_0, &v_44, body_sc_0, &v_45, 0), + _fx_catch_9); _fx_R9Ast__id_t i_0 = v_45.t0; - FX_COPY_PTR(v_45.t1, &body_code_3); + FX_COPY_PTR(v_45.t1, &body_code1_0); + _fx_free_LN14K_form__kexp_t(&body_code_0); + FX_COPY_PTR(body_code1_0, &body_code_0); _fx_R9Ast__id_t i_1; if (i_0.m == 0) { - FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(km_idx_0, &i_0, &i_1, 0), _fx_catch_7); + FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(km_idx_0, &i_0, &i_1, 0), _fx_catch_9); } else { i_1 = i_0; } - FX_CALL(_fx_M3AstFM17default_arg_flagsRM11val_flags_t0(&v_46, 0), _fx_catch_7); + FX_CALL(_fx_M3AstFM17default_arg_flagsRM11val_flags_t0(&v_46, 0), _fx_catch_9); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &i_1, ti_1, &v_46, &_fx_g19K_normalize__None3_, 0, &inst_loc_0, &res_3, 0), _fx_catch_7); - FX_CALL(_fx_cons_LR9Ast__id_t(&i_1, params_1, false, ¶ms_1), _fx_catch_7); - _fx_make_T2LR9Ast__id_tLN14K_form__kexp_t(params_1, body_code_3, &v_47); - _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&__fold_result___2); - _fx_copy_T2LR9Ast__id_tLN14K_form__kexp_t(&v_47, &__fold_result___2); + &i_1, ti_1, &v_46, &_fx_g19K_normalize__None3_, 0, &inst_loc_0, &res_6, 0), _fx_catch_9); + FX_CALL(_fx_cons_LR9Ast__id_t(&i_1, params_0, true, &v_47), _fx_catch_9); + FX_FREE_LIST_SIMPLE(¶ms_0); + FX_COPY_PTR(v_47, ¶ms_0); - _fx_catch_7: ; - _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&v_47); - if (res_3) { - _fx_free_LN14K_form__kexp_t(&res_3); + _fx_catch_9: ; + FX_FREE_LIST_SIMPLE(&v_47); + if (res_6) { + _fx_free_LN14K_form__kexp_t(&res_6); } _fx_free_R16Ast__val_flags_t(&v_46); - if (body_code_3) { - _fx_free_LN14K_form__kexp_t(&body_code_3); + if (body_code1_0) { + _fx_free_LN14K_form__kexp_t(&body_code1_0); } _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_45); _fx_free_R16Ast__val_flags_t(&v_44); FX_FREE_STR(&arg_defname_0); FX_FREE_STR(&v_43); - if (body_code_2) { - _fx_free_LN14K_form__kexp_t(&body_code_2); - } - FX_FREE_LIST_SIMPLE(¶ms_1); - _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&v_42); - FX_CHECK_EXN(_fx_catch_8); + FX_CHECK_EXN(_fx_catch_10); } - int s_1 = !lst_4 + !lst_5; - FX_CHECK_EQ_SIZE(s_1 == 0 || s_1 == 2, _fx_catch_8); - _fx_copy_T2LR9Ast__id_tLN14K_form__kexp_t(&__fold_result___2, &v_11); - FX_COPY_PTR(v_11.t0, ¶ms_0); - FX_COPY_PTR(v_11.t1, &body_code_0); + int s_1 = !lst_6 + !lst_7; + FX_CHECK_EQ_SIZE(s_1 == 0 || s_1 == 2, _fx_catch_10); int tag_0 = FX_REC_VARIANT_TAG(inst_body_1); bool is_cfunc_0; - bool res_4; + bool res_7; if (tag_0 == 32) { - res_4 = true; goto _fx_endmatch_4; + res_7 = true; goto _fx_endmatch_4; } if (tag_0 == 12) { _fx_LN10Ast__exp_t v_48 = inst_body_1->u.ExpSeq.t0; @@ -20626,23 +20068,23 @@ _fx_endmatch_1: ; if (v_49 != 0) { if (v_49->tl == 0) { if (FX_REC_VARIANT_TAG(v_49->hd) == 32) { - res_4 = true; goto _fx_endmatch_4; + res_7 = true; goto _fx_endmatch_4; } } } } } - res_4 = false; + res_7 = false; _fx_endmatch_4: ; - FX_CHECK_EXN(_fx_catch_8); - if (res_4) { + FX_CHECK_EXN(_fx_catch_10); + if (res_7) { is_cfunc_0 = true; goto _fx_endmatch_5; } is_cfunc_0 = false; _fx_endmatch_5: ; - FX_CHECK_EXN(_fx_catch_8); + FX_CHECK_EXN(_fx_catch_10); bool t_0; if (inst_flags_0.fun_flag_nothrow) { t_0 = is_cfunc_0; @@ -20655,36 +20097,41 @@ _fx_endmatch_1: ; inst_flags_0.fun_flag_really_nothrow, is_private_fun_0, inst_flags_0.fun_flag_ctor, inst_flags_0.fun_flag_method_of, inst_flags_0.fun_flag_uses_fv, inst_flags_0.fun_flag_recursive, inst_flags_0.fun_flag_instance }; - FX_CALL(_fx_M11K_normalizeFM3revLR9Ast__id_t1LR9Ast__id_t(params_0, &v_12, 0), _fx_catch_8); + FX_CALL(_fx_M11K_normalizeFM3revLR9Ast__id_t1LR9Ast__id_t(params_0, &v_10, 0), _fx_catch_10); FX_CALL( _fx_M6K_formFM14create_kdeffunLN14K_form__kexp_t8R9Ast__id_tLR9Ast__id_tN14K_form__ktyp_tR16Ast__fun_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tLN12Ast__scope_tR10Ast__loc_t( - &inst_name_0, v_12, rt_0, &inst_flags_1, &_fx_g19K_normalize__None3_, code_1, sc_0, &inst_loc_0, &res_1, 0), - _fx_catch_8); + &inst_name_0, v_10, rt_0, &inst_flags_1, &_fx_g19K_normalize__None3_, code_1, sc_0, &inst_loc_0, &res_3, 0), + _fx_catch_10); _fx_R10Ast__loc_t body_loc_0; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(inst_body_1, &body_loc_0, 0), _fx_catch_8); + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(inst_body_1, &body_loc_0, 0), _fx_catch_10); FX_CALL( _fx_M11K_normalizeFM8exp2kexpT2N14K_form__kexp_tLN14K_form__kexp_t4N10Ast__exp_tLN14K_form__kexp_tBLN12Ast__scope_t( - inst_body_1, body_code_0, false, body_sc_0, &v_13, 0), _fx_catch_8); - FX_COPY_PTR(v_13.t0, &e_0); - FX_COPY_PTR(v_13.t1, &body_code_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_0, body_code_1, true, &v_14), _fx_catch_8); + inst_body_1, body_code_0, false, body_sc_0, &v_11, 0), _fx_catch_10); + FX_COPY_PTR(v_11.t0, &e_0); + FX_COPY_PTR(v_11.t1, &body_code_1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_0, body_code_1, true, &v_12), _fx_catch_10); FX_CALL( - _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_14, &body_loc_0, &body_kexp_0, 0), - _fx_catch_8); - FX_CALL(_fx_M11K_normalizeFM3revLR9Ast__id_t1LR9Ast__id_t(params_0, &v_15, 0), _fx_catch_8); - _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(body_kexp_0, &v_16); + _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_12, &body_loc_0, &body_kexp_0, 0), + _fx_catch_10); + FX_CALL(_fx_M11K_normalizeFM3revLR9Ast__id_t1LR9Ast__id_t(params_0, &v_13, 0), _fx_catch_10); + _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(body_kexp_0, &v_14); FX_CALL( _fx_M6K_formFM14create_kdeffunLN14K_form__kexp_t8R9Ast__id_tLR9Ast__id_tN14K_form__ktyp_tR16Ast__fun_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tLN12Ast__scope_tR10Ast__loc_t( - &inst_name_0, v_15, rt_0, &inst_flags_1, &v_16, code_1, sc_0, &inst_loc_0, &v_2, 0), _fx_catch_8); + &inst_name_0, v_13, rt_0, &inst_flags_1, &v_14, code_1, sc_0, &inst_loc_0, &v_15, 0), _fx_catch_10); + _fx_free_LN14K_form__kexp_t(&code_1); + FX_COPY_PTR(v_15, &code_1); - _fx_catch_8: ; - _fx_free_Nt6option1N14K_form__kexp_t(&v_16); - FX_FREE_LIST_SIMPLE(&v_15); + _fx_catch_10: ; + if (v_15) { + _fx_free_LN14K_form__kexp_t(&v_15); + } + _fx_free_Nt6option1N14K_form__kexp_t(&v_14); + FX_FREE_LIST_SIMPLE(&v_13); if (body_kexp_0) { _fx_free_N14K_form__kexp_t(&body_kexp_0); } - if (v_14) { - _fx_free_LN14K_form__kexp_t(&v_14); + if (v_12) { + _fx_free_LN14K_form__kexp_t(&v_12); } if (body_code_1) { _fx_free_LN14K_form__kexp_t(&body_code_1); @@ -20692,22 +20139,20 @@ _fx_endmatch_1: ; if (e_0) { _fx_free_N14K_form__kexp_t(&e_0); } - _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_13); - if (res_1) { - _fx_free_LN14K_form__kexp_t(&res_1); + _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(&v_11); + if (res_3) { + _fx_free_LN14K_form__kexp_t(&res_3); } - FX_FREE_LIST_SIMPLE(&v_12); + FX_FREE_LIST_SIMPLE(&v_10); if (body_code_0) { _fx_free_LN14K_form__kexp_t(&body_code_0); } FX_FREE_LIST_SIMPLE(¶ms_0); - _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&v_11); - _fx_free_T2LR9Ast__id_tLN14K_form__kexp_t(&__fold_result___2); FX_FREE_LIST_SIMPLE(&body_sc_0); - fx_free_exn(&v_10); - FX_FREE_STR(&v_9); + fx_free_exn(&v_9); FX_FREE_STR(&v_8); FX_FREE_STR(&v_7); + FX_FREE_STR(&v_6); if (inst_body_1) { _fx_free_N10Ast__exp_t(&inst_body_1); } @@ -20717,23 +20162,26 @@ _fx_endmatch_1: ; if (inst_args_1) { _fx_free_LN10Ast__pat_t(&inst_args_1); } - if (v_6) { - _fx_free_LN14K_form__ktyp_t(&v_6); - } if (v_5) { - _fx_free_LN10Ast__pat_t(&v_5); + _fx_free_LN14K_form__ktyp_t(&v_5); + } + if (res_2) { + _fx_free_LN14K_form__ktyp_t(&res_2); + } + if (v_4) { + _fx_free_LN10Ast__pat_t(&v_4); } - if (__fold_result___1) { - _fx_free_LN10Ast__pat_t(&__fold_result___1); + if (res_1) { + _fx_free_LN10Ast__pat_t(&res_1); } - _fx_free_T3LN10Ast__pat_tLN14K_form__ktyp_tN10Ast__exp_t(&v_4); + _fx_free_T3LN10Ast__pat_tLN14K_form__ktyp_tN10Ast__exp_t(&v_3); if (rt_0) { _fx_free_N14K_form__ktyp_t(&rt_0); } if (argtyps_0) { _fx_free_LN14K_form__ktyp_t(&argtyps_0); } - _fx_free_T2LN14K_form__ktyp_tN14K_form__ktyp_t(&v_3); + _fx_free_T2LN14K_form__ktyp_tN14K_form__ktyp_t(&v_2); if (ktyp_0) { _fx_free_N14K_form__ktyp_t(&ktyp_0); } @@ -20753,40 +20201,32 @@ _fx_endmatch_1: ; fx_str_t v_52 = {0}; fx_exn_t v_53 = {0}; _fx_R10Ast__loc_t v_54; - FX_CALL(_fx_M3AstFM14get_idinfo_locRM5loc_t1N14Ast__id_info_t(&v_1, &v_54, 0), _fx_catch_9); - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(inst_0, &v_50, 0), _fx_catch_9); - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&df_name_0, &v_51, 0), _fx_catch_9); + FX_CALL(_fx_M3AstFM14get_idinfo_locRM5loc_t1N14Ast__id_info_t(&v_1, &v_54, 0), _fx_catch_11); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(inst_0, &v_50, 0), _fx_catch_11); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(&df_name_0, &v_51, 0), _fx_catch_11); fx_str_t slit_12 = FX_MAKE_STR("the entry \'"); fx_str_t slit_13 = FX_MAKE_STR("\' (an instance of \'"); fx_str_t slit_14 = FX_MAKE_STR("\'?) is supposed to be a function, but it\'s not"); { const fx_str_t strs_4[] = { slit_12, v_50, slit_13, v_51, slit_14 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 5, &v_52), _fx_catch_9); + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 5, &v_52), _fx_catch_11); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_54, &v_52, &v_53, 0), _fx_catch_9); - FX_THROW(&v_53, false, _fx_catch_9); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&v_54, &v_52, &v_53, 0), _fx_catch_11); + FX_THROW(&v_53, false, _fx_catch_11); - _fx_catch_9: ; + _fx_catch_11: ; fx_free_exn(&v_53); FX_FREE_STR(&v_52); FX_FREE_STR(&v_51); FX_FREE_STR(&v_50); } - FX_CHECK_EXN(_fx_catch_10); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(v_2, &__fold_result___0); + FX_CHECK_EXN(_fx_catch_12); - _fx_catch_10: ; - if (v_2) { - _fx_free_LN14K_form__kexp_t(&v_2); - } + _fx_catch_12: ; _fx_free_N14Ast__id_info_t(&v_1); - if (code_1) { - _fx_free_LN14K_form__kexp_t(&code_1); - } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(code_1, fx_result); _fx_cleanup: ; if (df_templ_inst_0) { @@ -20794,8 +20234,8 @@ _fx_cleanup: ; } FX_FREE_LIST_SIMPLE(&df_templ_args_0); FX_FREE_LIST_SIMPLE(&inst_list_0); - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (code_1) { + _fx_free_LN14K_form__kexp_t(&code_1); } return fx_status; } @@ -20808,45 +20248,42 @@ FX_EXTERN_C int struct _fx_LN14K_form__kexp_t_data_t** fx_result, void* fx_fv) { - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t code_1 = 0; int fx_status = 0; int_ km_idx_0; FX_CALL(_fx_M3AstFM11curr_modulei1LN12Ast__scope_t(sc_0, &km_idx_0, 0), _fx_cleanup); - FX_COPY_PTR(code_0, &__fold_result___0); + FX_COPY_PTR(code_0, &code_1); _fx_LN10Ast__exp_t lst_0 = elist_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t code_1 = 0; - _fx_LN14K_form__kexp_t v_0 = 0; _fx_N10Ast__exp_t e_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &code_1); int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 38) { - _fx_R17Ast__defvariant_t v_1 = {0}; + _fx_R17Ast__defvariant_t v_0 = {0}; _fx_LR9Ast__id_t inst_list_0 = 0; _fx_LR9Ast__id_t tags_0 = 0; _fx_LT2R9Ast__id_tN10Ast__typ_t dvar_cases_0 = 0; - _fx_LN14K_form__kexp_t __fold_result___1 = 0; - _fx_copy_R17Ast__defvariant_t(&e_0->u.DefVariant->data, &v_1); - _fx_R10Ast__loc_t* dvar_loc_0 = &v_1.dvar_loc; - _fx_R9Ast__id_t* dvar_name_0 = &v_1.dvar_name; - if (v_1.dvar_templ_args == 0) { + _fx_LN14K_form__kexp_t code_2 = 0; + _fx_copy_R17Ast__defvariant_t(&e_0->u.DefVariant->data, &v_0); + _fx_R10Ast__loc_t* dvar_loc_0 = &v_0.dvar_loc; + _fx_R9Ast__id_t* dvar_name_0 = &v_0.dvar_name; + if (v_0.dvar_templ_args == 0) { FX_CALL(_fx_cons_LR9Ast__id_t(dvar_name_0, 0, true, &inst_list_0), _fx_catch_21); } else { - FX_COPY_PTR(v_1.dvar_templ_inst->data, &inst_list_0); + FX_COPY_PTR(v_0.dvar_templ_inst->data, &inst_list_0); } _fx_LR9Ast__id_t lstend_0 = 0; int_ i_0 = 0; - FX_COPY_PTR(v_1.dvar_cases, &dvar_cases_0); + FX_COPY_PTR(v_0.dvar_cases, &dvar_cases_0); _fx_LT2R9Ast__id_tN10Ast__typ_t lst_1 = dvar_cases_0; for (; lst_1; lst_1 = lst_1->tl, i_0 += 1) { - _fx_R16Ast__val_flags_t v_2 = {0}; + _fx_R16Ast__val_flags_t v_1 = {0}; _fx_R16Ast__val_flags_t tag_flags_0 = {0}; - _fx_N14K_form__klit_t v_3 = {0}; - _fx_N14K_form__atom_t v_4 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_5 = {0}; - _fx_N14K_form__kexp_t v_6 = 0; - _fx_Nt6option1N14K_form__kexp_t v_7 = {0}; + _fx_N14K_form__klit_t v_2 = {0}; + _fx_N14K_form__atom_t v_3 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_4 = {0}; + _fx_N14K_form__kexp_t v_5 = 0; + _fx_Nt6option1N14K_form__kexp_t v_6 = {0}; _fx_LN14K_form__kexp_t res_0 = 0; _fx_T2R9Ast__id_tN10Ast__typ_t* __pat___0 = &lst_1->hd; _fx_R9Ast__id_t n_0 = __pat___0->t0; @@ -20859,22 +20296,22 @@ FX_EXTERN_C int else { _fx_R9Ast__id_t tag_id_0; FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(km_idx_0, &n_0, &tag_id_0, 0), _fx_catch_0); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_2, 0), _fx_catch_0); - _fx_make_R16Ast__val_flags_t(v_2.val_flag_arg, v_2.val_flag_mutable, v_2.val_flag_temp, v_2.val_flag_tempref, - v_2.val_flag_private, v_2.val_flag_subarray, v_2.val_flag_instance, &v_2.val_flag_method, v_2.val_flag_ctor, - v_1.dvar_scope, &tag_flags_0); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_1, 0), _fx_catch_0); + _fx_make_R16Ast__val_flags_t(v_1.val_flag_arg, v_1.val_flag_mutable, v_1.val_flag_temp, v_1.val_flag_tempref, + v_1.val_flag_private, v_1.val_flag_subarray, v_1.val_flag_instance, &v_1.val_flag_method, v_1.val_flag_ctor, + v_0.dvar_scope, &tag_flags_0); int64_t res_2; FX_CALL(_fx_M11K_normalizeFM5int64l1i(i_0 + 1, &res_2, 0), _fx_catch_0); - _fx_M6K_formFM8KLitSIntN14K_form__klit_t2il(32, res_2, &v_3); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_3, &v_4); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypCInt, dvar_loc_0, &v_5); + _fx_M6K_formFM8KLitSIntN14K_form__klit_t2il(32, res_2, &v_2); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_2, &v_3); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g21K_normalize__KTypCInt, dvar_loc_0, &v_4); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_4, &v_5, &v_6), + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_3, &v_4, &v_5), _fx_catch_0); - _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(v_6, &v_7); + _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(v_5, &v_6); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &tag_id_0, _fx_g21K_normalize__KTypCInt, &tag_flags_0, &v_7, 0, dvar_loc_0, &res_0, 0), _fx_catch_0); + &tag_id_0, _fx_g21K_normalize__KTypCInt, &tag_flags_0, &v_6, 0, dvar_loc_0, &res_0, 0), _fx_catch_0); t_0 = tag_id_0; } _fx_LR9Ast__id_t node_0 = 0; @@ -20885,42 +20322,40 @@ FX_EXTERN_C int if (res_0) { _fx_free_LN14K_form__kexp_t(&res_0); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_7); - if (v_6) { - _fx_free_N14K_form__kexp_t(&v_6); + _fx_free_Nt6option1N14K_form__kexp_t(&v_6); + if (v_5) { + _fx_free_N14K_form__kexp_t(&v_5); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_5); - _fx_free_N14K_form__atom_t(&v_4); - _fx_free_N14K_form__klit_t(&v_3); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_4); + _fx_free_N14K_form__atom_t(&v_3); + _fx_free_N14K_form__klit_t(&v_2); _fx_free_R16Ast__val_flags_t(&tag_flags_0); - _fx_free_R16Ast__val_flags_t(&v_2); + _fx_free_R16Ast__val_flags_t(&v_1); FX_CHECK_EXN(_fx_catch_21); } - FX_COPY_PTR(code_1, &__fold_result___1); + FX_COPY_PTR(code_1, &code_2); _fx_LR9Ast__id_t lst_2 = inst_list_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN14K_form__kexp_t code_2 = 0; - _fx_N14Ast__id_info_t v_8 = {0}; - _fx_LN14K_form__kexp_t v_9 = 0; + _fx_N14Ast__id_info_t v_7 = {0}; + _fx_LN14K_form__kexp_t v_8 = 0; _fx_R9Ast__id_t* inst_0 = &lst_2->hd; - FX_COPY_PTR(__fold_result___1, &code_2); - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(inst_0, dvar_loc_0, &v_8, 0), _fx_catch_20); - if (v_8.tag == 6) { - _fx_R17Ast__defvariant_t v_10 = {0}; - _fx_N10Ast__typ_t v_11 = 0; + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(inst_0, dvar_loc_0, &v_7, 0), _fx_catch_20); + if (v_7.tag == 6) { + _fx_R17Ast__defvariant_t v_9 = {0}; + _fx_N10Ast__typ_t v_10 = 0; _fx_LN14K_form__ktyp_t targs_0 = 0; - _fx_copy_R17Ast__defvariant_t(&v_8.u.IdVariant->data, &v_10); - _fx_R10Ast__loc_t* inst_loc_0 = &v_10.dvar_loc; - _fx_R16Ast__var_flags_t* dvar_flags_0 = &v_10.dvar_flags; - _fx_LT2R9Ast__id_tLTa2R9Ast__id_t dvar_ifaces_0 = v_10.dvar_ifaces; - _fx_LR9Ast__id_t dvar_ctors_0 = v_10.dvar_ctors; - _fx_LT2R9Ast__id_tN10Ast__typ_t dvar_cases_1 = v_10.dvar_cases; - _fx_R9Ast__id_t* inst_name_0 = &v_10.dvar_name; - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_10.dvar_alias, &v_11, 0), _fx_catch_18); - if (FX_REC_VARIANT_TAG(v_11) == 25) { + _fx_copy_R17Ast__defvariant_t(&v_7.u.IdVariant->data, &v_9); + _fx_R10Ast__loc_t* inst_loc_0 = &v_9.dvar_loc; + _fx_R16Ast__var_flags_t* dvar_flags_0 = &v_9.dvar_flags; + _fx_LT2R9Ast__id_tLTa2R9Ast__id_t dvar_ifaces_0 = v_9.dvar_ifaces; + _fx_LR9Ast__id_t dvar_ctors_0 = v_9.dvar_ctors; + _fx_LT2R9Ast__id_tN10Ast__typ_t dvar_cases_1 = v_9.dvar_cases; + _fx_R9Ast__id_t* inst_name_0 = &v_9.dvar_name; + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(v_9.dvar_alias, &v_10, 0), _fx_catch_18); + if (FX_REC_VARIANT_TAG(v_10) == 25) { _fx_LN10Ast__typ_t targs_1 = 0; _fx_LN14K_form__ktyp_t lstend_1 = 0; - FX_COPY_PTR(v_11->u.TypApp.t0, &targs_1); + FX_COPY_PTR(v_10->u.TypApp.t0, &targs_1); _fx_LN10Ast__typ_t lst_3 = targs_1; for (; lst_3; lst_3 = lst_3->tl) { _fx_N14K_form__ktyp_t res_3 = 0; @@ -20945,63 +20380,63 @@ FX_EXTERN_C int } } else { + fx_str_t v_11 = {0}; fx_str_t v_12 = {0}; - fx_str_t v_13 = {0}; - fx_exn_t v_14 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(inst_name_0, &v_12, 0), _fx_catch_3); + fx_exn_t v_13 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(inst_name_0, &v_11, 0), _fx_catch_3); fx_str_t slit_0 = FX_MAKE_STR("invalid variant type alias \'"); fx_str_t slit_1 = FX_MAKE_STR("\'; should be TypApp(_, _)"); { - const fx_str_t strs_0[] = { slit_0, v_12, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_13), _fx_catch_3); + const fx_str_t strs_0[] = { slit_0, v_11, slit_1 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_12), _fx_catch_3); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &v_13, &v_14, 0), _fx_catch_3); - FX_THROW(&v_14, false, _fx_catch_3); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &v_12, &v_13, 0), _fx_catch_3); + FX_THROW(&v_13, false, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_14); - FX_FREE_STR(&v_13); + fx_free_exn(&v_13); FX_FREE_STR(&v_12); + FX_FREE_STR(&v_11); } FX_CHECK_EXN(_fx_catch_18); if (dvar_ifaces_0 == 0) { if (dvar_flags_0->var_flag_record == true) { if (dvar_cases_1 != 0) { if (dvar_cases_1->tl == 0) { - _fx_N10Ast__typ_t v_15 = dvar_cases_1->hd.t1; - if (FX_REC_VARIANT_TAG(v_15) == 21) { - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_16 = {0}; + _fx_N10Ast__typ_t v_14 = dvar_cases_1->hd.t1; + if (FX_REC_VARIANT_TAG(v_14) == 21) { + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_15 = {0}; _fx_LT2R9Ast__id_tN14K_form__ktyp_t rec_elems_0 = 0; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_0 = 0; - _fx_N14K_form__ktyp_t v_17 = 0; - _fx_R17K_form__kdeftyp_t v_18 = {0}; + _fx_N14K_form__ktyp_t v_16 = 0; + _fx_R17K_form__kdeftyp_t v_17 = {0}; _fx_rR17K_form__kdeftyp_t kt_0 = 0; - _fx_N15K_form__kinfo_t v_19 = {0}; - _fx_N14K_form__kexp_t v_20 = 0; - _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_15->u.TypRecord->data, - &v_16); + _fx_N15K_form__kinfo_t v_18 = {0}; + _fx_N14K_form__kexp_t v_19 = 0; + _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_14->u.TypRecord->data, + &v_15); _fx_LT2R9Ast__id_tN14K_form__ktyp_t lstend_2 = 0; - FX_COPY_PTR(v_16.t0, &relems_0); + FX_COPY_PTR(v_15.t0, &relems_0); _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_4 = relems_0; for (; lst_4; lst_4 = lst_4->tl) { _fx_N10Ast__typ_t t_2 = 0; - _fx_N14K_form__ktyp_t v_21 = 0; + _fx_N14K_form__ktyp_t v_20 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t tup_0 = {0}; _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t* __pat___1 = &lst_4->hd; _fx_R9Ast__id_t i_1 = __pat___1->t1; FX_COPY_PTR(__pat___1->t2, &t_2); FX_CALL( _fx_M11K_normalizeFM8typ2ktypN14K_form__ktyp_t2N10Ast__typ_tR10Ast__loc_t(t_2, inst_loc_0, - &v_21, 0), _fx_catch_4); - _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&i_1, v_21, &tup_0); + &v_20, 0), _fx_catch_4); + _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&i_1, v_20, &tup_0); _fx_LT2R9Ast__id_tN14K_form__ktyp_t node_2 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&tup_0, 0, false, &node_2), _fx_catch_4); FX_LIST_APPEND(rec_elems_0, lstend_2, node_2); _fx_catch_4: ; _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&tup_0); - if (v_21) { - _fx_free_N14K_form__ktyp_t(&v_21); + if (v_20) { + _fx_free_N14K_form__ktyp_t(&v_20); } if (t_2) { _fx_free_N10Ast__typ_t(&t_2); @@ -21010,28 +20445,28 @@ FX_EXTERN_C int } FX_CALL( _fx_M6K_formFM10KTypRecordN14K_form__ktyp_t2R9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t( - inst_name_0, rec_elems_0, &v_17), _fx_catch_5); + inst_name_0, rec_elems_0, &v_16), _fx_catch_5); fx_str_t slit_2 = FX_MAKE_STR(""); _fx_make_R17K_form__kdeftyp_t(inst_name_0, &slit_2, &_fx_g9Ast__noid, &_fx_g19K_normalize__None4_, - targs_0, v_17, sc_0, inst_loc_0, &v_18); - FX_CALL(_fx_make_rR17K_form__kdeftyp_t(&v_18, &kt_0), _fx_catch_5); - _fx_M6K_formFM4KTypN15K_form__kinfo_t1rRM9kdeftyp_t(kt_0, &v_19); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(inst_name_0, &v_19, 0), + targs_0, v_16, sc_0, inst_loc_0, &v_17); + FX_CALL(_fx_make_rR17K_form__kdeftyp_t(&v_17, &kt_0), _fx_catch_5); + _fx_M6K_formFM4KTypN15K_form__kinfo_t1rRM9kdeftyp_t(kt_0, &v_18); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(inst_name_0, &v_18, 0), _fx_catch_5); - FX_CALL(_fx_M6K_formFM7KDefTypN14K_form__kexp_t1rRM9kdeftyp_t(kt_0, &v_20), _fx_catch_5); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_20, code_2, true, &v_9), _fx_catch_5); + FX_CALL(_fx_M6K_formFM7KDefTypN14K_form__kexp_t1rRM9kdeftyp_t(kt_0, &v_19), _fx_catch_5); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_19, code_2, true, &v_8), _fx_catch_5); _fx_catch_5: ; - if (v_20) { - _fx_free_N14K_form__kexp_t(&v_20); + if (v_19) { + _fx_free_N14K_form__kexp_t(&v_19); } - _fx_free_N15K_form__kinfo_t(&v_19); + _fx_free_N15K_form__kinfo_t(&v_18); if (kt_0) { _fx_free_rR17K_form__kdeftyp_t(&kt_0); } - _fx_free_R17K_form__kdeftyp_t(&v_18); - if (v_17) { - _fx_free_N14K_form__ktyp_t(&v_17); + _fx_free_R17K_form__kdeftyp_t(&v_17); + if (v_16) { + _fx_free_N14K_form__ktyp_t(&v_16); } if (relems_0) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_0); @@ -21039,7 +20474,7 @@ FX_EXTERN_C int if (rec_elems_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&rec_elems_0); } - _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_16); + _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_15); goto _fx_endmatch_1; } } @@ -21050,13 +20485,13 @@ FX_EXTERN_C int _fx_LT2R9Ast__id_tN10Ast__typ_t dvar_cases_2 = 0; _fx_LT2R9Ast__id_tLR9Ast__id_t kvar_ifaces_0 = 0; _fx_LT2R9Ast__id_tLTa2R9Ast__id_t dvar_ifaces_1 = 0; - _fx_R21K_form__kdefvariant_t v_22 = {0}; + _fx_R21K_form__kdefvariant_t v_21 = {0}; _fx_rR21K_form__kdefvariant_t kvar_0 = 0; - _fx_N15K_form__kinfo_t v_23 = {0}; - _fx_N14K_form__kexp_t v_24 = 0; + _fx_N15K_form__kinfo_t v_22 = {0}; + _fx_N14K_form__kexp_t v_23 = 0; _fx_LN14K_form__kexp_t code_3 = 0; _fx_N14K_form__ktyp_t new_rt_0 = 0; - _fx_LN14K_form__kexp_t __fold_result___2 = 0; + _fx_LN14K_form__kexp_t code_4 = 0; _fx_LR9Ast__id_t dvar_ctors_1 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lstend_3 = 0; FX_COPY_PTR(dvar_cases_1, &dvar_cases_2); @@ -21064,22 +20499,22 @@ FX_EXTERN_C int _fx_LR9Ast__id_t lst_6 = tags_0; for (; lst_5 && lst_6; lst_6 = lst_6->tl, lst_5 = lst_5->tl) { _fx_N10Ast__typ_t t_3 = 0; - _fx_N14K_form__ktyp_t v_25 = 0; + _fx_N14K_form__ktyp_t v_24 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t tup_1 = {0}; _fx_R9Ast__id_t* tag_1 = &lst_6->hd; _fx_T2R9Ast__id_tN10Ast__typ_t* __pat___2 = &lst_5->hd; FX_COPY_PTR(__pat___2->t1, &t_3); - FX_CALL(_fx_M11K_normalizeFM8typ2ktypN14K_form__ktyp_t2N10Ast__typ_tR10Ast__loc_t(t_3, inst_loc_0, &v_25, 0), + FX_CALL(_fx_M11K_normalizeFM8typ2ktypN14K_form__ktyp_t2N10Ast__typ_tR10Ast__loc_t(t_3, inst_loc_0, &v_24, 0), _fx_catch_6); - _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(tag_1, v_25, &tup_1); + _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(tag_1, v_24, &tup_1); _fx_LT2R9Ast__id_tN14K_form__ktyp_t node_3 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&tup_1, 0, false, &node_3), _fx_catch_6); FX_LIST_APPEND(kvar_cases_0, lstend_3, node_3); _fx_catch_6: ; _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&tup_1); - if (v_25) { - _fx_free_N14K_form__ktyp_t(&v_25); + if (v_24) { + _fx_free_N14K_form__ktyp_t(&v_24); } if (t_3) { _fx_free_N10Ast__typ_t(&t_3); @@ -21093,7 +20528,7 @@ FX_EXTERN_C int _fx_LT2R9Ast__id_tLTa2R9Ast__id_t lst_7 = dvar_ifaces_1; for (; lst_7; lst_7 = lst_7->tl) { _fx_LTa2R9Ast__id_t meths_0 = 0; - _fx_LR9Ast__id_t v_26 = 0; + _fx_LR9Ast__id_t v_25 = 0; _fx_T2R9Ast__id_tLR9Ast__id_t tup_2 = {0}; _fx_T2R9Ast__id_tLTa2R9Ast__id_t* __pat___3 = &lst_7->hd; _fx_R9Ast__id_t iname_0 = __pat___3->t0; @@ -21101,6 +20536,7 @@ FX_EXTERN_C int _fx_LR9Ast__id_t lstend_5 = 0; _fx_LTa2R9Ast__id_t lst_8 = meths_0; for (; lst_8; lst_8 = lst_8->tl) { + fx_str_t v_26 = {0}; fx_str_t v_27 = {0}; fx_str_t v_28 = {0}; fx_str_t v_29 = {0}; @@ -21109,41 +20545,39 @@ FX_EXTERN_C int fx_str_t v_32 = {0}; fx_str_t v_33 = {0}; fx_str_t v_34 = {0}; - fx_str_t v_35 = {0}; - fx_exn_t v_36 = {0}; + fx_exn_t v_35 = {0}; _fx_Ta2R9Ast__id_t* __pat___4 = &lst_8->hd; _fx_R9Ast__id_t a_0 = __pat___4->t0; _fx_R9Ast__id_t b_0 = __pat___4->t1; bool res_4; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&b_0, &_fx_g9Ast__noid, &res_4, 0), _fx_catch_7); if (res_4) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(dvar_name_0, &v_27, 0), _fx_catch_7); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_27, &v_28, 0), _fx_catch_7); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iname_0, &v_29, 0), _fx_catch_7); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_29, &v_30, 0), _fx_catch_7); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iname_0, &v_31, 0), _fx_catch_7); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_31, &v_32, 0), _fx_catch_7); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&a_0, &v_33, 0), _fx_catch_7); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_33, &v_34, 0), _fx_catch_7); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(dvar_name_0, &v_26, 0), _fx_catch_7); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_26, &v_27, 0), _fx_catch_7); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iname_0, &v_28, 0), _fx_catch_7); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_28, &v_29, 0), _fx_catch_7); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&iname_0, &v_30, 0), _fx_catch_7); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_30, &v_31, 0), _fx_catch_7); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&a_0, &v_32, 0), _fx_catch_7); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_32, &v_33, 0), _fx_catch_7); fx_str_t slit_3 = FX_MAKE_STR("type \'"); fx_str_t slit_4 = FX_MAKE_STR(" claims to implement interface \'"); fx_str_t slit_5 = FX_MAKE_STR("\', but the method \'"); fx_str_t slit_6 = FX_MAKE_STR("."); fx_str_t slit_7 = FX_MAKE_STR("\' is not implemented"); { - const fx_str_t strs_1[] = { slit_3, v_28, slit_4, v_30, slit_5, v_32, slit_6, v_34, slit_7 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 9, &v_35), _fx_catch_7); + const fx_str_t strs_1[] = { slit_3, v_27, slit_4, v_29, slit_5, v_31, slit_6, v_33, slit_7 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 9, &v_34), _fx_catch_7); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &v_35, &v_36, 0), _fx_catch_7); - FX_THROW(&v_36, false, _fx_catch_7); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(inst_loc_0, &v_34, &v_35, 0), _fx_catch_7); + FX_THROW(&v_35, false, _fx_catch_7); } _fx_LR9Ast__id_t node_4 = 0; FX_CALL(_fx_cons_LR9Ast__id_t(&b_0, 0, false, &node_4), _fx_catch_7); - FX_LIST_APPEND(v_26, lstend_5, node_4); + FX_LIST_APPEND(v_25, lstend_5, node_4); _fx_catch_7: ; - fx_free_exn(&v_36); - FX_FREE_STR(&v_35); + fx_free_exn(&v_35); FX_FREE_STR(&v_34); FX_FREE_STR(&v_33); FX_FREE_STR(&v_32); @@ -21152,62 +20586,61 @@ FX_EXTERN_C int FX_FREE_STR(&v_29); FX_FREE_STR(&v_28); FX_FREE_STR(&v_27); + FX_FREE_STR(&v_26); FX_CHECK_EXN(_fx_catch_8); } - _fx_make_T2R9Ast__id_tLR9Ast__id_t(&iname_0, v_26, &tup_2); + _fx_make_T2R9Ast__id_tLR9Ast__id_t(&iname_0, v_25, &tup_2); _fx_LT2R9Ast__id_tLR9Ast__id_t node_5 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tLR9Ast__id_t(&tup_2, 0, false, &node_5), _fx_catch_8); FX_LIST_APPEND(kvar_ifaces_0, lstend_4, node_5); _fx_catch_8: ; _fx_free_T2R9Ast__id_tLR9Ast__id_t(&tup_2); - FX_FREE_LIST_SIMPLE(&v_26); + FX_FREE_LIST_SIMPLE(&v_25); FX_FREE_LIST_SIMPLE(&meths_0); FX_CHECK_EXN(_fx_catch_17); } fx_str_t slit_8 = FX_MAKE_STR(""); _fx_make_R21K_form__kdefvariant_t(inst_name_0, &slit_8, &_fx_g9Ast__noid, &_fx_g19K_normalize__None4_, targs_0, - kvar_cases_0, dvar_ctors_0, dvar_flags_0, kvar_ifaces_0, sc_0, inst_loc_0, &v_22); - FX_CALL(_fx_make_rR21K_form__kdefvariant_t(&v_22, &kvar_0), _fx_catch_17); - _fx_M6K_formFM8KVariantN15K_form__kinfo_t1rRM13kdefvariant_t(kvar_0, &v_23); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(inst_name_0, &v_23, 0), _fx_catch_17); - FX_CALL(_fx_M6K_formFM11KDefVariantN14K_form__kexp_t1rRM13kdefvariant_t(kvar_0, &v_24), _fx_catch_17); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_24, code_2, true, &code_3), _fx_catch_17); + kvar_cases_0, dvar_ctors_0, dvar_flags_0, kvar_ifaces_0, sc_0, inst_loc_0, &v_21); + FX_CALL(_fx_make_rR21K_form__kdefvariant_t(&v_21, &kvar_0), _fx_catch_17); + _fx_M6K_formFM8KVariantN15K_form__kinfo_t1rRM13kdefvariant_t(kvar_0, &v_22); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(inst_name_0, &v_22, 0), _fx_catch_17); + FX_CALL(_fx_M6K_formFM11KDefVariantN14K_form__kexp_t1rRM13kdefvariant_t(kvar_0, &v_23), _fx_catch_17); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_23, code_2, true, &code_3), _fx_catch_17); FX_CALL(_fx_M6K_formFM8KTypNameN14K_form__ktyp_t1R9Ast__id_t(inst_name_0, &new_rt_0), _fx_catch_17); - FX_COPY_PTR(code_3, &__fold_result___2); + FX_COPY_PTR(code_3, &code_4); int_ i_2 = 0; FX_COPY_PTR(dvar_ctors_0, &dvar_ctors_1); _fx_LR9Ast__id_t lst_9 = dvar_ctors_1; _fx_LR9Ast__id_t lst_10 = tags_0; for (; lst_9 && lst_10; lst_10 = lst_10->tl, lst_9 = lst_9->tl, i_2 += 1) { - _fx_LN14K_form__kexp_t code_4 = 0; - _fx_N14Ast__id_info_t v_37 = {0}; - _fx_LN14K_form__kexp_t v_38 = 0; + _fx_N14Ast__id_info_t v_36 = {0}; + _fx_LN14K_form__kexp_t v_37 = 0; _fx_R9Ast__id_t* tag_2 = &lst_10->hd; _fx_R9Ast__id_t* ctor_0 = &lst_9->hd; - FX_COPY_PTR(__fold_result___2, &code_4); - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(ctor_0, dvar_loc_0, &v_37, 0), _fx_catch_16); - if (v_37.tag == 3) { - _fx_R13Ast__deffun_t v_39 = {0}; + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(ctor_0, dvar_loc_0, &v_36, 0), _fx_catch_16); + if (v_36.tag == 3) { + _fx_R13Ast__deffun_t v_38 = {0}; _fx_LN10Ast__typ_t argtyps_0 = 0; - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_40 = {0}; + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_39 = {0}; _fx_LN14K_form__ktyp_t kargtyps_0 = 0; - _fx_copy_R13Ast__deffun_t(&v_37.u.IdFun->data, &v_39); - _fx_N10Ast__typ_t df_typ_0 = v_39.df_typ; - _fx_R9Ast__id_t* df_name_0 = &v_39.df_name; + _fx_copy_R13Ast__deffun_t(&v_36.u.IdFun->data, &v_38); + _fx_N10Ast__typ_t df_typ_0 = v_38.df_typ; + _fx_R9Ast__id_t* df_name_0 = &v_38.df_name; int tag_3 = FX_REC_VARIANT_TAG(df_typ_0); if (tag_3 == 15) { - _fx_LN10Ast__typ_t v_41 = df_typ_0->u.TypFun.t0; - if (v_41 != 0) { - if (v_41->tl == 0) { - _fx_N10Ast__typ_t v_42 = v_41->hd; - if (FX_REC_VARIANT_TAG(v_42) == 21) { + _fx_LN10Ast__typ_t v_40 = df_typ_0->u.TypFun.t0; + if (v_40 != 0) { + if (v_40->tl == 0) { + _fx_N10Ast__typ_t v_41 = v_40->hd; + if (FX_REC_VARIANT_TAG(v_41) == 21) { _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB( - &v_42->u.TypRecord->data, &v_40); - if (v_40.t1 == true) { + &v_41->u.TypRecord->data, &v_39); + if (v_39.t1 == true) { _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_1 = 0; _fx_LN10Ast__typ_t lstend_6 = 0; - FX_COPY_PTR(v_40.t0, &relems_1); + FX_COPY_PTR(v_39.t0, &relems_1); _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_11 = relems_1; for (; lst_11; lst_11 = lst_11->tl) { _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t* __pat___5 = &lst_11->hd; @@ -21255,43 +20688,43 @@ FX_EXTERN_C int } int_ tagval_0 = i_2 + 1; if (kargtyps_0 == 0) { - _fx_N14K_form__atom_t v_43 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_44 = {0}; + _fx_N14K_form__atom_t v_42 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_43 = {0}; _fx_N14K_form__kexp_t e0_0 = 0; - _fx_R16Ast__val_flags_t v_45 = {0}; + _fx_R16Ast__val_flags_t v_44 = {0}; _fx_R16Ast__val_flags_t cflags_0 = {0}; - _fx_Nt6option1N14K_form__kexp_t v_46 = {0}; - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(tag_2, &v_43); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(new_rt_0, dvar_loc_0, &v_44); + _fx_Nt6option1N14K_form__kexp_t v_45 = {0}; + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(tag_2, &v_42); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(new_rt_0, dvar_loc_0, &v_43); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_43, - &v_44, &e0_0), _fx_catch_12); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_45, 0), _fx_catch_12); - _fx_make_R16Ast__val_flags_t(v_45.val_flag_arg, true, v_45.val_flag_temp, v_45.val_flag_tempref, - v_45.val_flag_private, v_45.val_flag_subarray, dvar_flags_0->var_flag_instance, - &v_45.val_flag_method, tagval_0, sc_0, &cflags_0); - _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(e0_0, &v_46); + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_42, + &v_43, &e0_0), _fx_catch_12); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_44, 0), _fx_catch_12); + _fx_make_R16Ast__val_flags_t(v_44.val_flag_arg, true, v_44.val_flag_temp, v_44.val_flag_tempref, + v_44.val_flag_private, v_44.val_flag_subarray, dvar_flags_0->var_flag_instance, + &v_44.val_flag_method, tagval_0, sc_0, &cflags_0); + _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(e0_0, &v_45); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - df_name_0, new_rt_0, &cflags_0, &v_46, code_4, dvar_loc_0, &v_38, 0), _fx_catch_12); + df_name_0, new_rt_0, &cflags_0, &v_45, code_4, dvar_loc_0, &v_37, 0), _fx_catch_12); _fx_catch_12: ; - _fx_free_Nt6option1N14K_form__kexp_t(&v_46); + _fx_free_Nt6option1N14K_form__kexp_t(&v_45); _fx_free_R16Ast__val_flags_t(&cflags_0); - _fx_free_R16Ast__val_flags_t(&v_45); + _fx_free_R16Ast__val_flags_t(&v_44); if (e0_0) { _fx_free_N14K_form__kexp_t(&e0_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_44); - _fx_free_N14K_form__atom_t(&v_43); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_43); + _fx_free_N14K_form__atom_t(&v_42); } else { - _fx_N17Ast__fun_constr_t v_47; - _fx_M3AstFM11CtorVariantN17Ast__fun_constr_t1i(tagval_0, &v_47); + _fx_N17Ast__fun_constr_t v_46; + _fx_M3AstFM11CtorVariantN17Ast__fun_constr_t1i(tagval_0, &v_46); FX_CALL( _fx_M6K_formFM17create_kdefconstrLN14K_form__kexp_t8R9Ast__id_tLN14K_form__ktyp_tN14K_form__ktyp_tN17Ast__fun_constr_tBLN14K_form__kexp_tLN12Ast__scope_tR10Ast__loc_t( - df_name_0, kargtyps_0, new_rt_0, &v_47, dvar_flags_0->var_flag_instance, code_4, sc_0, dvar_loc_0, - &v_38, 0), _fx_catch_13); + df_name_0, kargtyps_0, new_rt_0, &v_46, dvar_flags_0->var_flag_instance, code_4, sc_0, dvar_loc_0, + &v_37, 0), _fx_catch_13); _fx_catch_13: ; } @@ -21301,57 +20734,54 @@ FX_EXTERN_C int if (kargtyps_0) { _fx_free_LN14K_form__ktyp_t(&kargtyps_0); } - _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_40); + _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_39); if (argtyps_0) { _fx_free_LN10Ast__typ_t(&argtyps_0); } - _fx_free_R13Ast__deffun_t(&v_39); + _fx_free_R13Ast__deffun_t(&v_38); } else { + fx_str_t v_47 = {0}; fx_str_t v_48 = {0}; fx_str_t v_49 = {0}; - fx_str_t v_50 = {0}; - fx_exn_t v_51 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(ctor_0, &v_48, 0), _fx_catch_15); - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(inst_0, &v_49, 0), _fx_catch_15); + fx_exn_t v_50 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(ctor_0, &v_47, 0), _fx_catch_15); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(inst_0, &v_48, 0), _fx_catch_15); fx_str_t slit_9 = FX_MAKE_STR("the constructor \'"); fx_str_t slit_10 = FX_MAKE_STR("\' of variant \'"); fx_str_t slit_11 = FX_MAKE_STR("\' is not a function apparently"); { - const fx_str_t strs_2[] = { slit_9, v_48, slit_10, v_49, slit_11 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_50), _fx_catch_15); + const fx_str_t strs_2[] = { slit_9, v_47, slit_10, v_48, slit_11 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 5, &v_49), _fx_catch_15); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(dvar_loc_0, &v_50, &v_51, 0), _fx_catch_15); - FX_THROW(&v_51, false, _fx_catch_15); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(dvar_loc_0, &v_49, &v_50, 0), _fx_catch_15); + FX_THROW(&v_50, false, _fx_catch_15); _fx_catch_15: ; - fx_free_exn(&v_51); - FX_FREE_STR(&v_50); + fx_free_exn(&v_50); FX_FREE_STR(&v_49); FX_FREE_STR(&v_48); + FX_FREE_STR(&v_47); } FX_CHECK_EXN(_fx_catch_16); - _fx_free_LN14K_form__kexp_t(&__fold_result___2); - FX_COPY_PTR(v_38, &__fold_result___2); + _fx_free_LN14K_form__kexp_t(&code_4); + FX_COPY_PTR(v_37, &code_4); _fx_catch_16: ; - if (v_38) { - _fx_free_LN14K_form__kexp_t(&v_38); - } - _fx_free_N14Ast__id_info_t(&v_37); - if (code_4) { - _fx_free_LN14K_form__kexp_t(&code_4); + if (v_37) { + _fx_free_LN14K_form__kexp_t(&v_37); } + _fx_free_N14Ast__id_info_t(&v_36); FX_CHECK_EXN(_fx_catch_17); } int s_1 = !lst_9 + !lst_10; FX_CHECK_EQ_SIZE(s_1 == 0 || s_1 == 2, _fx_catch_17); - FX_COPY_PTR(__fold_result___2, &v_9); + FX_COPY_PTR(code_4, &v_8); _fx_catch_17: ; FX_FREE_LIST_SIMPLE(&dvar_ctors_1); - if (__fold_result___2) { - _fx_free_LN14K_form__kexp_t(&__fold_result___2); + if (code_4) { + _fx_free_LN14K_form__kexp_t(&code_4); } if (new_rt_0) { _fx_free_N14K_form__ktyp_t(&new_rt_0); @@ -21359,14 +20789,14 @@ FX_EXTERN_C int if (code_3) { _fx_free_LN14K_form__kexp_t(&code_3); } - if (v_24) { - _fx_free_N14K_form__kexp_t(&v_24); + if (v_23) { + _fx_free_N14K_form__kexp_t(&v_23); } - _fx_free_N15K_form__kinfo_t(&v_23); + _fx_free_N15K_form__kinfo_t(&v_22); if (kvar_0) { _fx_free_rR21K_form__kdefvariant_t(&kvar_0); } - _fx_free_R21K_form__kdefvariant_t(&v_22); + _fx_free_R21K_form__kdefvariant_t(&v_21); if (dvar_ifaces_1) { _fx_free_LT2R9Ast__id_tLTa2R9Ast__id_t(&dvar_ifaces_1); } @@ -21387,104 +20817,103 @@ FX_EXTERN_C int if (targs_0) { _fx_free_LN14K_form__ktyp_t(&targs_0); } - if (v_11) { - _fx_free_N10Ast__typ_t(&v_11); + if (v_10) { + _fx_free_N10Ast__typ_t(&v_10); } - _fx_free_R17Ast__defvariant_t(&v_10); + _fx_free_R17Ast__defvariant_t(&v_9); } else { + fx_str_t v_51 = {0}; fx_str_t v_52 = {0}; fx_str_t v_53 = {0}; - fx_str_t v_54 = {0}; - fx_exn_t v_55 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(inst_0, &v_52, 0), _fx_catch_19); - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(dvar_name_0, &v_53, 0), _fx_catch_19); + fx_exn_t v_54 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(inst_0, &v_51, 0), _fx_catch_19); + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(dvar_name_0, &v_52, 0), _fx_catch_19); fx_str_t slit_12 = FX_MAKE_STR("the instance \'"); fx_str_t slit_13 = FX_MAKE_STR("\' of variant \'"); fx_str_t slit_14 = FX_MAKE_STR("\' is not a variant"); { - const fx_str_t strs_3[] = { slit_12, v_52, slit_13, v_53, slit_14 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_54), _fx_catch_19); + const fx_str_t strs_3[] = { slit_12, v_51, slit_13, v_52, slit_14 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 5, &v_53), _fx_catch_19); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(dvar_loc_0, &v_54, &v_55, 0), _fx_catch_19); - FX_THROW(&v_55, false, _fx_catch_19); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(dvar_loc_0, &v_53, &v_54, 0), _fx_catch_19); + FX_THROW(&v_54, false, _fx_catch_19); _fx_catch_19: ; - fx_free_exn(&v_55); - FX_FREE_STR(&v_54); + fx_free_exn(&v_54); FX_FREE_STR(&v_53); FX_FREE_STR(&v_52); + FX_FREE_STR(&v_51); } FX_CHECK_EXN(_fx_catch_20); - _fx_free_LN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(v_9, &__fold_result___1); + _fx_free_LN14K_form__kexp_t(&code_2); + FX_COPY_PTR(v_8, &code_2); _fx_catch_20: ; - if (v_9) { - _fx_free_LN14K_form__kexp_t(&v_9); - } - _fx_free_N14Ast__id_info_t(&v_8); - if (code_2) { - _fx_free_LN14K_form__kexp_t(&code_2); + if (v_8) { + _fx_free_LN14K_form__kexp_t(&v_8); } + _fx_free_N14Ast__id_info_t(&v_7); FX_CHECK_EXN(_fx_catch_21); } - FX_COPY_PTR(__fold_result___1, &v_0); + _fx_free_LN14K_form__kexp_t(&code_1); + FX_COPY_PTR(code_2, &code_1); _fx_catch_21: ; - if (__fold_result___1) { - _fx_free_LN14K_form__kexp_t(&__fold_result___1); + if (code_2) { + _fx_free_LN14K_form__kexp_t(&code_2); } if (dvar_cases_0) { _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&dvar_cases_0); } FX_FREE_LIST_SIMPLE(&tags_0); FX_FREE_LIST_SIMPLE(&inst_list_0); - _fx_free_R17Ast__defvariant_t(&v_1); + _fx_free_R17Ast__defvariant_t(&v_0); } else if (tag_0 == 36) { - _fx_R13Ast__defexn_t v_56 = {0}; - _fx_N10Ast__typ_t v_57 = 0; + _fx_R13Ast__defexn_t v_55 = {0}; + _fx_N10Ast__typ_t v_56 = 0; + fx_str_t v_57 = {0}; fx_str_t v_58 = {0}; fx_str_t v_59 = {0}; - fx_str_t v_60 = {0}; _fx_LN12Ast__scope_t tag_sc_0 = 0; - _fx_R16Ast__val_flags_t v_61 = {0}; + _fx_R16Ast__val_flags_t v_60 = {0}; _fx_R16Ast__val_flags_t tag_flags_1 = {0}; - _fx_N14K_form__klit_t v_62 = {0}; - _fx_N14K_form__atom_t v_63 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_64 = {0}; - _fx_N14K_form__kexp_t v_65 = 0; - _fx_Nt6option1N14K_form__kexp_t v_66 = {0}; + _fx_N14K_form__klit_t v_61 = {0}; + _fx_N14K_form__atom_t v_62 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_63 = {0}; + _fx_N14K_form__kexp_t v_64 = 0; + _fx_Nt6option1N14K_form__kexp_t v_65 = {0}; _fx_LN14K_form__kexp_t decl_tag_0 = 0; - _fx_LN14K_form__kexp_t code_5 = 0; - _fx_N10Ast__typ_t v_67 = 0; + _fx_LN14K_form__kexp_t code1_0 = 0; + _fx_N10Ast__typ_t v_66 = 0; _fx_N10Ast__typ_t dexn_typ_0 = 0; - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_68 = {0}; + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_67 = {0}; _fx_N14K_form__ktyp_t ke_typ_0 = 0; - _fx_T2R9Ast__id_tLN14K_form__kexp_t v_69 = {0}; + _fx_T2R9Ast__id_tLN14K_form__kexp_t v_68 = {0}; _fx_LN14K_form__kexp_t delta_code_0 = 0; - _fx_R17K_form__kdefexn_t v_70 = {0}; + _fx_R17K_form__kdefexn_t v_69 = {0}; _fx_rR17K_form__kdefexn_t ke_0 = 0; - _fx_N15K_form__kinfo_t v_71 = {0}; - _fx_N14K_form__kexp_t v_72 = 0; + _fx_N15K_form__kinfo_t v_70 = {0}; + _fx_N14K_form__kexp_t v_71 = 0; + _fx_LN14K_form__kexp_t v_72 = 0; _fx_LN14K_form__kexp_t v_73 = 0; - _fx_copy_R13Ast__defexn_t(&e_0->u.DefExn->data, &v_56); - _fx_LN12Ast__scope_t dexn_scope_0 = v_56.dexn_scope; - _fx_R10Ast__loc_t* dexn_loc_0 = &v_56.dexn_loc; - _fx_N10Ast__typ_t dexn_typ_1 = v_56.dexn_typ; - _fx_R9Ast__id_t* dexn_name_0 = &v_56.dexn_name; - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(dexn_typ_1, &v_57, 0), _fx_catch_27); + _fx_copy_R13Ast__defexn_t(&e_0->u.DefExn->data, &v_55); + _fx_LN12Ast__scope_t dexn_scope_0 = v_55.dexn_scope; + _fx_R10Ast__loc_t* dexn_loc_0 = &v_55.dexn_loc; + _fx_N10Ast__typ_t dexn_typ_1 = v_55.dexn_typ; + _fx_R9Ast__id_t* dexn_name_0 = &v_55.dexn_name; + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(dexn_typ_1, &v_56, 0), _fx_catch_27); bool is_std_0; - if (FX_REC_VARIANT_TAG(v_57) == 14) { + if (FX_REC_VARIANT_TAG(v_56) == 14) { if (dexn_scope_0 != 0) { _fx_N12Ast__scope_t* v_74 = &dexn_scope_0->hd; if (v_74->tag == 10) { _fx_R9Ast__id_t v_75; FX_CALL(_fx_M3AstFM15get_module_nameRM4id_t1i(v_74->u.ScModule, &v_75, 0), _fx_catch_27); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_75, &v_58, 0), _fx_catch_27); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_75, &v_57, 0), _fx_catch_27); fx_str_t slit_15 = FX_MAKE_STR("Builtins"); - if (_fx_F6__eq__B2SS(&v_58, &slit_15, 0)) { + if (_fx_F6__eq__B2SS(&v_57, &slit_15, 0)) { fx_str_t exn_name_str_0 = {0}; FX_CALL(_fx_M3AstFM2ppS1RM4id_t(dexn_name_0, &exn_name_str_0, 0), _fx_catch_22); bool v_76; @@ -21514,44 +20943,44 @@ FX_EXTERN_C int _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_27); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(dexn_name_0, &v_59, 0), _fx_catch_27); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(dexn_name_0, &v_58, 0), _fx_catch_27); fx_str_t slit_18 = FX_MAKE_STR("_tag"); { - const fx_str_t strs_4[] = { v_59, slit_18 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 2, &v_60), _fx_catch_27); + const fx_str_t strs_4[] = { v_58, slit_18 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 2, &v_59), _fx_catch_27); } _fx_R9Ast__id_t tagname_0; - FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(km_idx_0, &v_60, &tagname_0, 0), _fx_catch_27); + FX_CALL(_fx_M6K_formFM7gen_idkR9Ast__id_t2iS(km_idx_0, &v_59, &tagname_0, 0), _fx_catch_27); FX_CALL(_fx_M3AstFM16get_module_scopeLN12Ast__scope_t1LN12Ast__scope_t(sc_0, &tag_sc_0, 0), _fx_catch_27); - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_61, 0), _fx_catch_27); - _fx_make_R16Ast__val_flags_t(v_61.val_flag_arg, true, v_61.val_flag_temp, v_61.val_flag_tempref, v_61.val_flag_private, - v_61.val_flag_subarray, v_61.val_flag_instance, &v_61.val_flag_method, v_61.val_flag_ctor, tag_sc_0, &tag_flags_1); - _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(0LL, &v_62); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_62, &v_63); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g20K_normalize__KTypInt, dexn_loc_0, &v_64); + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_60, 0), _fx_catch_27); + _fx_make_R16Ast__val_flags_t(v_60.val_flag_arg, true, v_60.val_flag_temp, v_60.val_flag_tempref, v_60.val_flag_private, + v_60.val_flag_subarray, v_60.val_flag_instance, &v_60.val_flag_method, v_60.val_flag_ctor, tag_sc_0, &tag_flags_1); + _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(0LL, &v_61); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_61, &v_62); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g20K_normalize__KTypInt, dexn_loc_0, &v_63); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_63, &v_64, &v_65), + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_62, &v_63, &v_64), _fx_catch_27); - _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(v_65, &v_66); + _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(v_64, &v_65); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &tagname_0, _fx_g21K_normalize__KTypCInt, &tag_flags_1, &v_66, 0, dexn_loc_0, &decl_tag_0, 0), _fx_catch_27); + &tagname_0, _fx_g21K_normalize__KTypCInt, &tag_flags_1, &v_65, 0, dexn_loc_0, &decl_tag_0, 0), _fx_catch_27); if (is_std_0) { - FX_COPY_PTR(code_1, &code_5); + FX_COPY_PTR(code_1, &code1_0); } else { FX_CALL( - _fx_M11K_normalizeFM7__add__LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(decl_tag_0, code_1, &code_5, + _fx_M11K_normalizeFM7__add__LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(decl_tag_0, code_1, &code1_0, 0), _fx_catch_27); } - FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(dexn_typ_1, &v_67, 0), _fx_catch_27); - if (FX_REC_VARIANT_TAG(v_67) == 21) { - _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_67->u.TypRecord->data, &v_68); - if (v_68.t1 == true) { + FX_CALL(_fx_M3AstFM9deref_typN10Ast__typ_t1N10Ast__typ_t(dexn_typ_1, &v_66, 0), _fx_catch_27); + if (FX_REC_VARIANT_TAG(v_66) == 21) { + _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_66->u.TypRecord->data, &v_67); + if (v_67.t1 == true) { _fx_LN10Ast__typ_t v_78 = 0; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_2 = 0; _fx_LN10Ast__typ_t lstend_8 = 0; - FX_COPY_PTR(v_68.t0, &relems_2); + FX_COPY_PTR(v_67.t0, &relems_2); _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_13 = relems_2; for (; lst_13; lst_13 = lst_13->tl) { _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t* __pat___6 = &lst_13->hd; @@ -21582,7 +21011,7 @@ FX_EXTERN_C int _fx_M11K_normalizeFM8typ2ktypN14K_form__ktyp_t2N10Ast__typ_tR10Ast__loc_t(dexn_typ_0, dexn_loc_0, &ke_typ_0, 0), _fx_catch_27); if (FX_REC_VARIANT_TAG(ke_typ_0) == 7) { - _fx_make_T2R9Ast__id_tLN14K_form__kexp_t(&_fx_g9Ast__noid, 0, &v_69); + _fx_make_T2R9Ast__id_tLN14K_form__kexp_t(&_fx_g9Ast__noid, 0, &v_68); } else { fx_str_t v_79 = {0}; @@ -21610,7 +21039,7 @@ FX_EXTERN_C int _fx_M6K_formFM17create_kdefconstrLN14K_form__kexp_t8R9Ast__id_tLN14K_form__ktyp_tN14K_form__ktyp_tN17Ast__fun_constr_tBLN14K_form__kexp_tLN12Ast__scope_tR10Ast__loc_t( &make_id_0, argtyps_1, _fx_g20K_normalize__KTypExn, &v_81, false, 0, dexn_scope_0, dexn_loc_0, &delta_code_1, 0), _fx_catch_26); - _fx_make_T2R9Ast__id_tLN14K_form__kexp_t(&make_id_0, delta_code_1, &v_69); + _fx_make_T2R9Ast__id_tLN14K_form__kexp_t(&make_id_0, delta_code_1, &v_68); _fx_catch_26: ; if (delta_code_1) { @@ -21623,70 +21052,75 @@ FX_EXTERN_C int FX_FREE_STR(&v_79); } FX_CHECK_EXN(_fx_catch_27); - _fx_R9Ast__id_t make_id_1 = v_69.t0; - FX_COPY_PTR(v_69.t1, &delta_code_0); + _fx_R9Ast__id_t make_id_1 = v_68.t0; + FX_COPY_PTR(v_68.t1, &delta_code_0); fx_str_t slit_20 = FX_MAKE_STR(""); fx_str_t slit_21 = FX_MAKE_STR(""); _fx_make_R17K_form__kdefexn_t(dexn_name_0, &slit_20, &slit_21, ke_typ_0, is_std_0, &tagname_0, &make_id_1, sc_0, - dexn_loc_0, &v_70); - FX_CALL(_fx_make_rR17K_form__kdefexn_t(&v_70, &ke_0), _fx_catch_27); - _fx_M6K_formFM4KExnN15K_form__kinfo_t1rRM9kdefexn_t(ke_0, &v_71); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(dexn_name_0, &v_71, 0), _fx_catch_27); - FX_CALL(_fx_M6K_formFM7KDefExnN14K_form__kexp_t1rRM9kdefexn_t(ke_0, &v_72), _fx_catch_27); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_72, code_5, true, &v_73), _fx_catch_27); + dexn_loc_0, &v_69); + FX_CALL(_fx_make_rR17K_form__kdefexn_t(&v_69, &ke_0), _fx_catch_27); + _fx_M6K_formFM4KExnN15K_form__kinfo_t1rRM9kdefexn_t(ke_0, &v_70); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(dexn_name_0, &v_70, 0), _fx_catch_27); + FX_CALL(_fx_M6K_formFM7KDefExnN14K_form__kexp_t1rRM9kdefexn_t(ke_0, &v_71), _fx_catch_27); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_71, code1_0, true, &v_72), _fx_catch_27); FX_CALL( - _fx_M11K_normalizeFM7__add__LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(delta_code_0, v_73, &v_0, 0), + _fx_M11K_normalizeFM7__add__LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(delta_code_0, v_72, &v_73, 0), _fx_catch_27); + _fx_free_LN14K_form__kexp_t(&code_1); + FX_COPY_PTR(v_73, &code_1); _fx_catch_27: ; if (v_73) { _fx_free_LN14K_form__kexp_t(&v_73); } if (v_72) { - _fx_free_N14K_form__kexp_t(&v_72); + _fx_free_LN14K_form__kexp_t(&v_72); + } + if (v_71) { + _fx_free_N14K_form__kexp_t(&v_71); } - _fx_free_N15K_form__kinfo_t(&v_71); + _fx_free_N15K_form__kinfo_t(&v_70); if (ke_0) { _fx_free_rR17K_form__kdefexn_t(&ke_0); } - _fx_free_R17K_form__kdefexn_t(&v_70); + _fx_free_R17K_form__kdefexn_t(&v_69); if (delta_code_0) { _fx_free_LN14K_form__kexp_t(&delta_code_0); } - _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_69); + _fx_free_T2R9Ast__id_tLN14K_form__kexp_t(&v_68); if (ke_typ_0) { _fx_free_N14K_form__ktyp_t(&ke_typ_0); } - _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_68); + _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_67); if (dexn_typ_0) { _fx_free_N10Ast__typ_t(&dexn_typ_0); } - if (v_67) { - _fx_free_N10Ast__typ_t(&v_67); + if (v_66) { + _fx_free_N10Ast__typ_t(&v_66); } - if (code_5) { - _fx_free_LN14K_form__kexp_t(&code_5); + if (code1_0) { + _fx_free_LN14K_form__kexp_t(&code1_0); } if (decl_tag_0) { _fx_free_LN14K_form__kexp_t(&decl_tag_0); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_66); - if (v_65) { - _fx_free_N14K_form__kexp_t(&v_65); + _fx_free_Nt6option1N14K_form__kexp_t(&v_65); + if (v_64) { + _fx_free_N14K_form__kexp_t(&v_64); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_64); - _fx_free_N14K_form__atom_t(&v_63); - _fx_free_N14K_form__klit_t(&v_62); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_63); + _fx_free_N14K_form__atom_t(&v_62); + _fx_free_N14K_form__klit_t(&v_61); _fx_free_R16Ast__val_flags_t(&tag_flags_1); - _fx_free_R16Ast__val_flags_t(&v_61); + _fx_free_R16Ast__val_flags_t(&v_60); FX_FREE_LIST_SIMPLE(&tag_sc_0); - FX_FREE_STR(&v_60); FX_FREE_STR(&v_59); FX_FREE_STR(&v_58); - if (v_57) { - _fx_free_N10Ast__typ_t(&v_57); + FX_FREE_STR(&v_57); + if (v_56) { + _fx_free_N10Ast__typ_t(&v_56); } - _fx_free_R13Ast__defexn_t(&v_56); + _fx_free_R13Ast__defexn_t(&v_55); } else if (tag_0 == 39) { _fx_R19Ast__definterface_t v_82 = {0}; @@ -21701,11 +21135,12 @@ FX_EXTERN_C int _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_89 = {0}; _fx_N14K_form__kexp_t v_90 = 0; _fx_Nt6option1N14K_form__kexp_t v_91 = {0}; - _fx_LN14K_form__kexp_t code_6 = 0; + _fx_LN14K_form__kexp_t code1_1 = 0; _fx_R23K_form__kdefinterface_t v_92 = {0}; _fx_rR23K_form__kdefinterface_t ki_0 = 0; _fx_N15K_form__kinfo_t v_93 = {0}; _fx_N14K_form__kexp_t v_94 = 0; + _fx_LN14K_form__kexp_t v_95 = 0; _fx_copy_R19Ast__definterface_t(&e_0->u.DefInterface->data, &v_82); _fx_R10Ast__loc_t* di_loc_0 = &v_82.di_loc; _fx_LN12Ast__scope_t di_scope_0 = v_82.di_scope; @@ -21716,9 +21151,9 @@ FX_EXTERN_C int for (; lst_14; lst_14 = lst_14->tl) { _fx_N10Ast__typ_t t_5 = 0; _fx_N14K_form__ktyp_t ktyp_0 = 0; - _fx_N14Ast__id_info_t v_95 = {0}; + _fx_N14Ast__id_info_t v_96 = {0}; _fx_R13Ast__defval_t dv_0 = {0}; - _fx_R16Ast__val_flags_t v_96 = {0}; + _fx_R16Ast__val_flags_t v_97 = {0}; _fx_LN14K_form__kexp_t res_6 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t tup_3 = {0}; _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* __pat___7 = &lst_14->hd; @@ -21726,44 +21161,44 @@ FX_EXTERN_C int FX_COPY_PTR(__pat___7->t1, &t_5); FX_CALL(_fx_M11K_normalizeFM8typ2ktypN14K_form__ktyp_t2N10Ast__typ_tR10Ast__loc_t(t_5, di_loc_0, &ktyp_0, 0), _fx_catch_29); - FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(&f_0, di_loc_0, &v_95, 0), _fx_catch_29); - if (v_95.tag == 2) { - _fx_copy_R13Ast__defval_t(&v_95.u.IdDVal, &dv_0); + FX_CALL(_fx_M3AstFM7id_infoN14Ast__id_info_t2RM4id_tRM5loc_t(&f_0, di_loc_0, &v_96, 0), _fx_catch_29); + if (v_96.tag == 2) { + _fx_copy_R13Ast__defval_t(&v_96.u.IdDVal, &dv_0); } else { - fx_str_t v_97 = {0}; fx_str_t v_98 = {0}; fx_str_t v_99 = {0}; fx_str_t v_100 = {0}; fx_str_t v_101 = {0}; - fx_exn_t v_102 = {0}; - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(di_name_0, &v_97, 0), _fx_catch_28); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_97, &v_98, 0), _fx_catch_28); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&f_0, &v_99, 0), _fx_catch_28); - FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_99, &v_100, 0), _fx_catch_28); + fx_str_t v_102 = {0}; + fx_exn_t v_103 = {0}; + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(di_name_0, &v_98, 0), _fx_catch_28); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_98, &v_99, 0), _fx_catch_28); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&f_0, &v_100, 0), _fx_catch_28); + FX_CALL(_fx_M11K_normalizeFM6stringS1S(&v_100, &v_101, 0), _fx_catch_28); fx_str_t slit_22 = FX_MAKE_STR("description of method \'"); fx_str_t slit_23 = FX_MAKE_STR("."); fx_str_t slit_24 = FX_MAKE_STR("\' is not found"); { - const fx_str_t strs_6[] = { slit_22, v_98, slit_23, v_100, slit_24 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_6, 5, &v_101), _fx_catch_28); + const fx_str_t strs_6[] = { slit_22, v_99, slit_23, v_101, slit_24 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_6, 5, &v_102), _fx_catch_28); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(di_loc_0, &v_101, &v_102, 0), _fx_catch_28); - FX_THROW(&v_102, false, _fx_catch_28); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(di_loc_0, &v_102, &v_103, 0), _fx_catch_28); + FX_THROW(&v_103, false, _fx_catch_28); _fx_catch_28: ; - fx_free_exn(&v_102); + fx_free_exn(&v_103); + FX_FREE_STR(&v_102); FX_FREE_STR(&v_101); FX_FREE_STR(&v_100); FX_FREE_STR(&v_99); FX_FREE_STR(&v_98); - FX_FREE_STR(&v_97); } FX_CHECK_EXN(_fx_catch_29); - _fx_copy_R16Ast__val_flags_t(&dv_0.dv_flags, &v_96); + _fx_copy_R16Ast__val_flags_t(&dv_0.dv_flags, &v_97); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &f_0, ktyp_0, &v_96, &_fx_g19K_normalize__None3_, 0, di_loc_0, &res_6, 0), _fx_catch_29); + &f_0, ktyp_0, &v_97, &_fx_g19K_normalize__None3_, 0, di_loc_0, &res_6, 0), _fx_catch_29); _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&f_0, ktyp_0, &tup_3); _fx_LT2R9Ast__id_tN14K_form__ktyp_t node_9 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&tup_3, 0, false, &node_9), _fx_catch_29); @@ -21774,9 +21209,9 @@ FX_EXTERN_C int if (res_6) { _fx_free_LN14K_form__kexp_t(&res_6); } - _fx_free_R16Ast__val_flags_t(&v_96); + _fx_free_R16Ast__val_flags_t(&v_97); _fx_free_R13Ast__defval_t(&dv_0); - _fx_free_N14Ast__id_info_t(&v_95); + _fx_free_N14Ast__id_info_t(&v_96); if (ktyp_0) { _fx_free_N14K_form__ktyp_t(&ktyp_0); } @@ -21806,7 +21241,7 @@ FX_EXTERN_C int _fx_M11K_normalizeFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(v_90, &v_91); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &ki_id_0, _fx_g21K_normalize__KTypCInt, &v_86, &v_91, code_1, di_loc_0, &code_6, 0), _fx_catch_30); + &ki_id_0, _fx_g21K_normalize__KTypCInt, &v_86, &v_91, code_1, di_loc_0, &code1_1, 0), _fx_catch_30); fx_str_t slit_26 = FX_MAKE_STR(""); _fx_make_R23K_form__kdefinterface_t(di_name_0, &v_82.di_base, &slit_26, &ki_id_0, ki_all_methods_0, di_scope_0, di_loc_0, &v_92); @@ -21814,9 +21249,14 @@ FX_EXTERN_C int _fx_M6K_formFM10KInterfaceN15K_form__kinfo_t1rRM15kdefinterface_t(ki_0, &v_93); FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(di_name_0, &v_93, 0), _fx_catch_30); FX_CALL(_fx_M6K_formFM13KDefInterfaceN14K_form__kexp_t1rRM15kdefinterface_t(ki_0, &v_94), _fx_catch_30); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_94, code_6, true, &v_0), _fx_catch_30); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_94, code1_1, true, &v_95), _fx_catch_30); + _fx_free_LN14K_form__kexp_t(&code_1); + FX_COPY_PTR(v_95, &code_1); _fx_catch_30: ; + if (v_95) { + _fx_free_LN14K_form__kexp_t(&v_95); + } if (v_94) { _fx_free_N14K_form__kexp_t(&v_94); } @@ -21825,8 +21265,8 @@ FX_EXTERN_C int _fx_free_rR23K_form__kdefinterface_t(&ki_0); } _fx_free_R23K_form__kdefinterface_t(&v_92); - if (code_6) { - _fx_free_LN14K_form__kexp_t(&code_6); + if (code1_1) { + _fx_free_LN14K_form__kexp_t(&code1_1); } _fx_free_Nt6option1N14K_form__kexp_t(&v_91); if (v_90) { @@ -21847,27 +21287,16 @@ FX_EXTERN_C int } _fx_free_R19Ast__definterface_t(&v_82); } - else { - FX_COPY_PTR(code_1, &v_0); - } FX_CHECK_EXN(_fx_catch_31); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(v_0, &__fold_result___0); _fx_catch_31: ; - if (v_0) { - _fx_free_LN14K_form__kexp_t(&v_0); - } - if (code_1) { - _fx_free_LN14K_form__kexp_t(&code_1); - } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(code_1, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (code_1) { + _fx_free_LN14K_form__kexp_t(&code_1); } return fx_status; } @@ -22013,7 +21442,7 @@ FX_EXTERN_C int _fx_M11K_normalizeFM13normalize_modR17K_form__kmodule_t4N16Ast__ _fx_LN14K_form__kexp_t kcode_0 = 0; _fx_LT2SR10Ast__loc_t pragmas_0 = 0; fx_str_t v_2 = {0}; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; _fx_LN14K_form__kexp_t v_3 = 0; _fx_Li v_4 = 0; _fx_R14Ast__pragmas_t v_5 = {0}; @@ -22034,20 +21463,19 @@ FX_EXTERN_C int _fx_M11K_normalizeFM13normalize_modR17K_form__kmodule_t4N16Ast__ FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_8, &v_2, 0), _fx_cleanup); _fx_LN14K_form__kexp_t lst_0 = kcode_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_9 = 0; _fx_N14K_form__kexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_9), _fx_catch_0); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_9, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_9) { + _fx_free_LN14K_form__kexp_t(&v_9); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &v_3); + FX_COPY_PTR(res_0, &v_3); FX_COPY_PTR(minfo_0->u.defmodule_t.t5, &v_4); FX_CALL(_fx_M3AstFM13parse_pragmasRM9pragmas_t1LT2SRM5loc_t(pragmas_0, &v_5, 0), _fx_cleanup); _fx_make_R17K_form__kmodule_t(&v_7, minfo_0->u.defmodule_t.t2, toposort_idx_0, &v_2, v_3, v_4, false, is_main_0, &v_5, @@ -22066,8 +21494,8 @@ _fx_cleanup: ; _fx_free_LT2SR10Ast__loc_t(&pragmas_0); } FX_FREE_STR(&v_2); - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } if (v_3) { _fx_free_LN14K_form__kexp_t(&v_3); @@ -22082,36 +21510,37 @@ FX_EXTERN_C int _fx_M11K_normalizeFM21normalize_all_modulesLR17K_form__kmodule_t struct _fx_LR17K_form__kmodule_t_data_t** fx_result, void* fx_fv) { - _fx_LT2N16Ast__defmodule_tLN14K_form__kexp_t __fold_result___0 = 0; _fx_LT2N16Ast__defmodule_tLN14K_form__kexp_t modules_plus_0 = 0; - _fx_LT2N16Ast__defmodule_tLN14K_form__kexp_t __fold_result___1 = 0; + _fx_LT2N16Ast__defmodule_tLN14K_form__kexp_t res_0 = 0; _fx_LT2N16Ast__defmodule_tLN14K_form__kexp_t v_0 = 0; int fx_status = 0; int_ n_0 = _fx_M11K_normalizeFM6lengthi1Li(modules_0, 0); _fx_Li lst_0 = modules_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2N16Ast__defmodule_tLN14K_form__kexp_t modules_plus_1 = 0; _fx_N16Ast__defmodule_t minfo_0 = 0; _fx_LN12Ast__scope_t modsc_0 = 0; _fx_LN10Ast__exp_t v_1 = 0; _fx_LN14K_form__kexp_t kcode_typedefs_0 = 0; _fx_T2N16Ast__defmodule_tLN14K_form__kexp_t v_2 = {0}; + _fx_LT2N16Ast__defmodule_tLN14K_form__kexp_t v_3 = 0; int_ m_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &modules_plus_1); FX_CALL(_fx_M3AstFM10get_moduleN16Ast__defmodule_t1i(m_0, &minfo_0, 0), _fx_catch_0); - _fx_N12Ast__scope_t v_3; - _fx_M3AstFM8ScModuleN12Ast__scope_t1i(m_0, &v_3); - FX_CALL(_fx_cons_LN12Ast__scope_t(&v_3, 0, true, &modsc_0), _fx_catch_0); + _fx_N12Ast__scope_t v_4; + _fx_M3AstFM8ScModuleN12Ast__scope_t1i(m_0, &v_4); + FX_CALL(_fx_cons_LN12Ast__scope_t(&v_4, 0, true, &modsc_0), _fx_catch_0); FX_COPY_PTR(minfo_0->u.defmodule_t.t4, &v_1); FX_CALL( _fx_M11K_normalizeFM28transform_all_types_and_consLN14K_form__kexp_t3LN10Ast__exp_tLN14K_form__kexp_tLN12Ast__scope_t( v_1, 0, modsc_0, &kcode_typedefs_0, 0), _fx_catch_0); _fx_make_T2N16Ast__defmodule_tLN14K_form__kexp_t(minfo_0, kcode_typedefs_0, &v_2); - FX_CALL(_fx_cons_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&v_2, modules_plus_1, false, &modules_plus_1), _fx_catch_0); - _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(modules_plus_1, &__fold_result___0); + FX_CALL(_fx_cons_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&v_2, modules_plus_0, true, &v_3), _fx_catch_0); + _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&modules_plus_0); + FX_COPY_PTR(v_3, &modules_plus_0); _fx_catch_0: ; + if (v_3) { + _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&v_3); + } _fx_free_T2N16Ast__defmodule_tLN14K_form__kexp_t(&v_2); if (kcode_typedefs_0) { _fx_free_LN14K_form__kexp_t(&kcode_typedefs_0); @@ -22123,47 +21552,42 @@ FX_EXTERN_C int _fx_M11K_normalizeFM21normalize_all_modulesLR17K_form__kmodule_t if (minfo_0) { _fx_free_N16Ast__defmodule_t(&minfo_0); } - if (modules_plus_1) { - _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&modules_plus_1); - } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &modules_plus_0); _fx_LT2N16Ast__defmodule_tLN14K_form__kexp_t lst_1 = modules_plus_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LT2N16Ast__defmodule_tLN14K_form__kexp_t r_0 = 0; + _fx_LT2N16Ast__defmodule_tLN14K_form__kexp_t v_5 = 0; _fx_T2N16Ast__defmodule_tLN14K_form__kexp_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LT2N16Ast__defmodule_tLN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LT2N16Ast__defmodule_tLN14K_form__kexp_t(a_0, res_0, true, &v_5), _fx_catch_1); + _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_5, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&r_0); + if (v_5) { + _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&v_5); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_0); + FX_COPY_PTR(res_0, &v_0); _fx_LR17K_form__kmodule_t lstend_0 = 0; int_ i_0 = 0; _fx_LT2N16Ast__defmodule_tLN14K_form__kexp_t lst_2 = v_0; for (; lst_2; lst_2 = lst_2->tl, i_0 += 1) { _fx_N16Ast__defmodule_t minfo_1 = 0; _fx_LN14K_form__kexp_t kcode_typedefs_1 = 0; - _fx_R17K_form__kmodule_t res_0 = {0}; + _fx_R17K_form__kmodule_t res_1 = {0}; _fx_T2N16Ast__defmodule_tLN14K_form__kexp_t* __pat___0 = &lst_2->hd; FX_COPY_PTR(__pat___0->t0, &minfo_1); FX_COPY_PTR(__pat___0->t1, &kcode_typedefs_1); FX_CALL( _fx_M11K_normalizeFM13normalize_modR17K_form__kmodule_t4N16Ast__defmodule_tLN14K_form__kexp_tiB(minfo_1, - kcode_typedefs_1, i_0, i_0 + 1 == n_0, &res_0, 0), _fx_catch_2); + kcode_typedefs_1, i_0, i_0 + 1 == n_0, &res_1, 0), _fx_catch_2); _fx_LR17K_form__kmodule_t node_0 = 0; - FX_CALL(_fx_cons_LR17K_form__kmodule_t(&res_0, 0, false, &node_0), _fx_catch_2); + FX_CALL(_fx_cons_LR17K_form__kmodule_t(&res_1, 0, false, &node_0), _fx_catch_2); FX_LIST_APPEND(*fx_result, lstend_0, node_0); _fx_catch_2: ; - _fx_free_R17K_form__kmodule_t(&res_0); + _fx_free_R17K_form__kmodule_t(&res_1); if (kcode_typedefs_1) { _fx_free_LN14K_form__kexp_t(&kcode_typedefs_1); } @@ -22174,14 +21598,11 @@ FX_EXTERN_C int _fx_M11K_normalizeFM21normalize_all_modulesLR17K_form__kmodule_t } _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&__fold_result___0); - } if (modules_plus_0) { _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&modules_plus_0); } - if (__fold_result___1) { - _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&__fold_result___1); + if (res_0) { + _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&res_0); } if (v_0) { _fx_free_LT2N16Ast__defmodule_tLN14K_form__kexp_t(&v_0); diff --git a/compiler/bootstrap/K_nothrow_wrappers.c b/compiler/bootstrap/K_nothrow_wrappers.c index 272192f0..6cdf3574 100644 --- a/compiler/bootstrap/K_nothrow_wrappers.c +++ b/compiler/bootstrap/K_nothrow_wrappers.c @@ -3087,6 +3087,7 @@ FX_EXTERN_C int _fx_M18K_nothrow_wrappersFM25make_wrappers_for_nothrowLR17K_form _fx_R17K_form__k_callb_t callb_0 = {0}; int fx_status = 0; FX_CALL(_fx_make_ri(-1, &curr_m_idx_ref_0), _fx_cleanup); + int_* curr_m_idx_0 = &curr_m_idx_ref_0->data; _fx_M18K_nothrow_wrappersFM7make_fpFPN14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t1ri(curr_m_idx_ref_0, &wrapf_kexp__0); _fx_FPN14K_form__ktyp_t3N14K_form__ktyp_tR10Ast__loc_tR17K_form__k_callb_t wrapf_ktyp__fp_0 = @@ -3117,7 +3118,7 @@ FX_EXTERN_C int _fx_M18K_nothrow_wrappersFM25make_wrappers_for_nothrowLR17K_form _fx_R17K_form__kmodule_t* km_0 = &lst_0->hd; int_ km_idx_0 = km_0->km_idx; FX_COPY_PTR(km_0->km_top, &km_top_0); - curr_m_idx_ref_0->data = km_idx_0; + *curr_m_idx_0 = km_idx_0; FX_CALL( _fx_M6K_formFM9code2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(km_top_0, &_fx_g10Ast__noloc, &top_kexp_0, 0), _fx_catch_0); diff --git a/compiler/bootstrap/K_optim_matop.c b/compiler/bootstrap/K_optim_matop.c index 33d07ec6..b8a69d85 100644 --- a/compiler/bootstrap/K_optim_matop.c +++ b/compiler/bootstrap/K_optim_matop.c @@ -3839,12 +3839,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -3889,9 +3890,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -3945,28 +3949,29 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM4growv2Nt10Hashmap__t2R9Ast__id_tRM17matri for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, ht_table_0, j_0)->hv < - 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M13K_optim_matopFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tRM17matrix_projectionRt20Hashmap__hashentry_t2R9Ast__id_tRM17matrix_projection( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4004,26 +4009,28 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM4growv2Nt10Hashmap__t2R9Ast__id_tR9Ast__id int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M13K_optim_matopFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_tRt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4042,14 +4049,14 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4069,32 +4076,11 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4130,14 +4116,14 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4155,32 +4141,11 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tR bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4223,9 +4188,9 @@ FX_EXTERN_C int int_ j_0 = v_1.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, j_0), _fx_cleanup); - _fx_copy_R32K_optim_matop__matrix_projection( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, self_0->u.t.t5, j_0)->data, - &v_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, self_0->u.t.t5, j_0); + _fx_copy_R32K_optim_matop__matrix_projection(&v_2->data, &v_0); _fx_M13K_optim_matopFM4SomeNt6option1RM17matrix_projection1RM17matrix_projection(&v_0, fx_result); } else { @@ -4249,14 +4214,14 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -4285,32 +4250,11 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4326,14 +4270,14 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -4346,29 +4290,29 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - ( - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, self_0->u.t.t5, - found_0)->hv & 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -4379,12 +4323,13 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast _fx_copy_R32K_optim_matop__matrix_projection(&self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection(hv_0, k_0, &v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -4413,14 +4358,14 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast fx_arr_t v_1 = {0}; fx_exn_t v_2 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -4447,32 +4392,11 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4488,14 +4412,14 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -4507,28 +4431,29 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -4536,12 +4461,15 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_R9Ast__id_t v_6 = self_0->u.t.t0.data; - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_7 = { hv_0, *k_0, v_6 }; + _fx_R9Ast__id_t v_9 = self_0->u.t.t0.data; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t v_10 = { hv_0, *k_0, v_9 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0) = v_7; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_11 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, self_0->u.t.t5, found_0); + *v_11 = v_10; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -4570,10 +4498,11 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM3addv3Nt10Hashmap__t2R9Ast__id_tRM17matrix _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tRM17matrix_projectionR9Ast__id_t(self_0, k_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, idx_0), _fx_cleanup); - _fx_R32K_optim_matop__matrix_projection* v_0 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, self_0->u.t.t5, idx_0)->data; - _fx_free_R32K_optim_matop__matrix_projection(v_0); - _fx_copy_R32K_optim_matop__matrix_projection(d_0, v_0); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection* v_0 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, self_0->u.t.t5, idx_0); + _fx_R32K_optim_matop__matrix_projection* v_1 = &v_0->data; + _fx_free_R32K_optim_matop__matrix_projection(v_1); + _fx_copy_R32K_optim_matop__matrix_projection(d_0, v_1); _fx_cleanup: ; return fx_status; @@ -4601,9 +4530,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4652,26 +4584,28 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M13K_optim_matopFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4708,32 +4642,11 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4767,17 +4680,17 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_ void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( - _fx_M13K_optim_matopFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_cleanup); + _fx_M13K_optim_matopFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, + &v_0, 0), _fx_cleanup); *fx_result = v_0.t1 >= 0; _fx_cleanup: ; @@ -4819,32 +4732,11 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4860,14 +4752,14 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -4879,27 +4771,29 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -4907,11 +4801,14 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -5299,6 +5196,7 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM13optimize_gemmLR17K_form__kmodule_t1LR17K _fx_R17K_form__k_callb_t cfd_callb_0 = {0}; int fx_status = 0; FX_CALL(_fx_make_ri(-1, &curr_m_idx_ref_0), _fx_cleanup); + int_* curr_m_idx_0 = &curr_m_idx_ref_0->data; FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(256, &involved_matrixes_arg_0, 0), _fx_cleanup); FX_CALL(_fx_make_rNt10Hashset__t1R9Ast__id_t(involved_matrixes_arg_0, &involved_matrixes_ref_0), _fx_cleanup); _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_0); @@ -5348,7 +5246,7 @@ FX_EXTERN_C int _fx_M13K_optim_matopFM13optimize_gemmLR17K_form__kmodule_t1LR17K _fx_R17K_form__kmodule_t* km_0 = &lst_0->hd; FX_COPY_PTR(km_0->km_top, &top_code_0); int_ km_idx_0 = km_0->km_idx; - curr_m_idx_ref_0->data = km_idx_0; + *curr_m_idx_0 = km_idx_0; FX_CALL( _fx_M13K_optim_matopFM22form_involved_matrixesv2LN14K_form__kexp_trNt10Hashset__t1R9Ast__id_t(top_code_0, involved_matrixes_ref_0, 0), _fx_catch_1); @@ -5652,6 +5550,7 @@ static int void* fx_fv) { int fx_status = 0; + int_* curr_m_idx_0 = &curr_m_idx_ref_0->data; if (sec_operand_0->tag == 2) { if (sec_operand_0->u.AtomLit.tag == 8) { _fx_make_T2N14K_form__atom_tLN14K_form__kexp_t(constriction_0, code_0, fx_result); goto _fx_endmatch_1; @@ -5698,8 +5597,7 @@ static int _fx_M6K_formFM10KExpBinaryN14K_form__kexp_t4N13Ast__binary_tN14K_form__atom_tN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t( bop_0, constriction_0, sec_operand_0, ctx_0, &unfolded_0), _fx_catch_1); _fx_R9Ast__id_t new_constr_name_0; - FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(curr_m_idx_ref_0->data, &temp_bop_name_0, &new_constr_name_0, 0), - _fx_catch_1); + FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(*curr_m_idx_0, &temp_bop_name_0, &new_constr_name_0, 0), _fx_catch_1); FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_2, 0), _fx_catch_1); _fx_M13K_optim_matopFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(unfolded_0, &v_3); FX_CALL( @@ -5928,16 +5826,16 @@ static int _fx_M13K_optim_matopFM22form_involved_matrixesv2LN14K_form__kexp_trNt int_ v_9 = (*involved_matrixes_0)->u.t.t2; for (int_ j_0 = 0; j_0 < v_9; j_0++) { FX_CHKIDX(FX_CHKIDX1((*involved_matrixes_0)->u.t.t5, 0, j_0), _fx_catch_1); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, (*involved_matrixes_0)->u.t.t5, j_0)->hv >= - 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, (*involved_matrixes_0)->u.t.t5, j_0); + if (v_10->hv >= 9223372036854775808ULL) { FX_CONTINUE(_fx_catch_1); } FX_CHKIDX(FX_CHKIDX1((*involved_matrixes_0)->u.t.t5, 0, j_0), _fx_catch_1); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_11 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, (*involved_matrixes_0)->u.t.t5, j_0); _fx_LR9Ast__id_t node_0 = 0; - FX_CALL( - _fx_cons_LR9Ast__id_t( - &FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, (*involved_matrixes_0)->u.t.t5, j_0)->key, 0, false, - &node_0), _fx_catch_1); + FX_CALL(_fx_cons_LR9Ast__id_t(&v_11->key, 0, false, &node_0), _fx_catch_1); FX_LIST_APPEND(v_6, lstend_0, node_0); _fx_catch_1: ; @@ -6014,8 +5912,9 @@ static int _fx_M13K_optim_matopFM18fold_matrdep_kexp_v2N14K_form__kexp_tR22K_for _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tR9Ast__id_tR9Ast__id_t( *matrix_dependencies_0, n_0, &idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1((*matrix_dependencies_0)->u.t.t5, 0, idx_0), _fx_catch_0); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*matrix_dependencies_0)->u.t.t5, idx_0)->data = - v_5->u.AtomId; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_6 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*matrix_dependencies_0)->u.t.t5, idx_0); + v_6->data = v_5->u.AtomId; _fx_catch_0: ; goto _fx_endmatch_2; @@ -6023,43 +5922,43 @@ static int _fx_M13K_optim_matopFM18fold_matrdep_kexp_v2N14K_form__kexp_tR22K_for } if (tag_1 == 12) { _fx_T3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_1 = &rhs_e_0->u.KExpCall; - _fx_LN14K_form__atom_t v_6 = vcase_1->t1; - if (v_6 != 0) { - if (v_6->tl == 0) { - _fx_N14K_form__atom_t* v_7 = &v_6->hd; - if (v_7->tag == 1) { - _fx_R9Ast__id_t* matr_0 = &v_7->u.AtomId; - _fx_R10Ast__loc_t v_8; + _fx_LN14K_form__atom_t v_7 = vcase_1->t1; + if (v_7 != 0) { + if (v_7->tl == 0) { + _fx_N14K_form__atom_t* v_8 = &v_7->hd; + if (v_8->tag == 1) { + _fx_R9Ast__id_t* matr_0 = &v_8->u.AtomId; + _fx_R10Ast__loc_t v_9; FX_CALL( - _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(matr_0, &_fx_g10Ast__noloc, &v_8, 0), + _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(matr_0, &_fx_g10Ast__noloc, &v_9, 0), _fx_catch_8); - bool v_9; - FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(matr_0, &v_8, &v_9, 0), _fx_catch_8); + bool v_10; + FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(matr_0, &v_9, &v_10, 0), _fx_catch_8); bool t_0; - if (!v_9) { + if (!v_10) { FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&vcase_1->t0, &v_2, 0), _fx_catch_8); - _fx_R9Ast__id_t v_10; - FX_CALL(_fx_M3AstFM13fname_op_aposRM4id_t0(&v_10, 0), _fx_catch_8); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_10, &v_3, 0), _fx_catch_8); + _fx_R9Ast__id_t v_11; + FX_CALL(_fx_M3AstFM13fname_op_aposRM4id_t0(&v_11, 0), _fx_catch_8); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_11, &v_3, 0), _fx_catch_8); t_0 = _fx_F6__eq__B2SS(&v_2, &v_3, 0); } else { t_0 = false; } if (t_0) { - _fx_N14K_form__ktyp_t v_11 = 0; - _fx_R10Ast__loc_t v_12; + _fx_N14K_form__ktyp_t v_12 = 0; + _fx_R10Ast__loc_t v_13; FX_CALL( - _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(matr_0, &_fx_g10Ast__noloc, &v_12, + _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(matr_0, &_fx_g10Ast__noloc, &v_13, 0), _fx_catch_3); - FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(matr_0, &v_12, &v_11, 0), + FX_CALL(_fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(matr_0, &v_13, &v_12, 0), _fx_catch_3); - if (FX_REC_VARIANT_TAG(v_11) == 17) { - _fx_T2iN14K_form__ktyp_t* vcase_2 = &v_11->u.KTypArray; + if (FX_REC_VARIANT_TAG(v_12) == 17) { + _fx_T2iN14K_form__ktyp_t* vcase_2 = &v_12->u.KTypArray; if (vcase_2->t0 == 2) { - _fx_N14K_form__ktyp_t v_13 = vcase_2->t1; - if (FX_REC_VARIANT_TAG(v_13) == 5) { - int_ bits_0 = v_13->u.KTypFloat; + _fx_N14K_form__ktyp_t v_14 = vcase_2->t1; + if (FX_REC_VARIANT_TAG(v_14) == 5) { + int_ bits_0 = v_14->u.KTypFloat; bool t_1; if (bits_0 == 32) { t_1 = true; @@ -6073,8 +5972,10 @@ static int _fx_M13K_optim_matopFM18fold_matrdep_kexp_v2N14K_form__kexp_tR22K_for _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tR9Ast__id_tR9Ast__id_t( *matrix_dependencies_0, n_0, &idx_1, 0), _fx_catch_1); FX_CHKIDX(FX_CHKIDX1((*matrix_dependencies_0)->u.t.t5, 0, idx_1), _fx_catch_1); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, - (*matrix_dependencies_0)->u.t.t5, idx_1)->data = *matr_0; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_15 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, + (*matrix_dependencies_0)->u.t.t5, idx_1); + v_15->data = *matr_0; _fx_catch_1: ; goto _fx_endmatch_0; @@ -6090,8 +5991,8 @@ static int _fx_M13K_optim_matopFM18fold_matrdep_kexp_v2N14K_form__kexp_tR22K_for FX_CHECK_EXN(_fx_catch_3); _fx_catch_3: ; - if (v_11) { - _fx_free_N14K_form__ktyp_t(&v_11); + if (v_12) { + _fx_free_N14K_form__ktyp_t(&v_12); } goto _fx_endmatch_2; } @@ -6102,38 +6003,38 @@ static int _fx_M13K_optim_matopFM18fold_matrdep_kexp_v2N14K_form__kexp_tR22K_for if (tag_1 == 19) { _fx_T5N14K_form__atom_tN13Ast__border_tN18Ast__interpolate_tLN13K_form__dom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_3 = &rhs_e_0->u.KExpAt; - _fx_LN13K_form__dom_t v_14 = vcase_3->t3; - if (v_14 != 0) { - if (v_14->hd.tag == 3) { - _fx_LN13K_form__dom_t v_15 = v_14->tl; - if (v_15 != 0) { - if (v_15->tl == 0) { - if (v_15->hd.tag == 3) { - _fx_N14K_form__atom_t* v_16 = &vcase_3->t0; - if (v_16->tag == 1) { - _fx_R9Ast__id_t* matr_1 = &v_16->u.AtomId; - _fx_R10Ast__loc_t v_17; + _fx_LN13K_form__dom_t v_16 = vcase_3->t3; + if (v_16 != 0) { + if (v_16->hd.tag == 3) { + _fx_LN13K_form__dom_t v_17 = v_16->tl; + if (v_17 != 0) { + if (v_17->tl == 0) { + if (v_17->hd.tag == 3) { + _fx_N14K_form__atom_t* v_18 = &vcase_3->t0; + if (v_18->tag == 1) { + _fx_R9Ast__id_t* matr_1 = &v_18->u.AtomId; + _fx_R10Ast__loc_t v_19; FX_CALL( _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(matr_1, &_fx_g10Ast__noloc, - &v_17, 0), _fx_catch_8); - bool v_18; - FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(matr_1, &v_17, &v_18, 0), + &v_19, 0), _fx_catch_8); + bool v_20; + FX_CALL(_fx_M6K_formFM10is_mutableB2R9Ast__id_tR10Ast__loc_t(matr_1, &v_19, &v_20, 0), _fx_catch_8); - if (!v_18) { - _fx_N14K_form__ktyp_t v_19 = 0; - _fx_R10Ast__loc_t v_20; + if (!v_20) { + _fx_N14K_form__ktyp_t v_21 = 0; + _fx_R10Ast__loc_t v_22; FX_CALL( _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(matr_1, - &_fx_g10Ast__noloc, &v_20, 0), _fx_catch_6); + &_fx_g10Ast__noloc, &v_22, 0), _fx_catch_6); FX_CALL( - _fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(matr_1, &v_20, &v_19, + _fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(matr_1, &v_22, &v_21, 0), _fx_catch_6); - if (FX_REC_VARIANT_TAG(v_19) == 17) { - _fx_T2iN14K_form__ktyp_t* vcase_4 = &v_19->u.KTypArray; + if (FX_REC_VARIANT_TAG(v_21) == 17) { + _fx_T2iN14K_form__ktyp_t* vcase_4 = &v_21->u.KTypArray; if (vcase_4->t0 == 2) { - _fx_N14K_form__ktyp_t v_21 = vcase_4->t1; - if (FX_REC_VARIANT_TAG(v_21) == 5) { - int_ bits_1 = v_21->u.KTypFloat; + _fx_N14K_form__ktyp_t v_23 = vcase_4->t1; + if (FX_REC_VARIANT_TAG(v_23) == 5) { + int_ bits_1 = v_23->u.KTypFloat; bool t_2; if (bits_1 == 32) { t_2 = true; @@ -6147,8 +6048,10 @@ static int _fx_M13K_optim_matopFM18fold_matrdep_kexp_v2N14K_form__kexp_tR22K_for _fx_M13K_optim_matopFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tR9Ast__id_tR9Ast__id_t( *matrix_dependencies_0, n_0, &idx_2, 0), _fx_catch_4); FX_CHKIDX(FX_CHKIDX1((*matrix_dependencies_0)->u.t.t5, 0, idx_2), _fx_catch_4); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, - (*matrix_dependencies_0)->u.t.t5, idx_2)->data = *matr_1; + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_24 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, + (*matrix_dependencies_0)->u.t.t5, idx_2); + v_24->data = *matr_1; _fx_catch_4: ; goto _fx_endmatch_1; @@ -6165,8 +6068,8 @@ static int _fx_M13K_optim_matopFM18fold_matrdep_kexp_v2N14K_form__kexp_tR22K_for FX_CHECK_EXN(_fx_catch_6); _fx_catch_6: ; - if (v_19) { - _fx_free_N14K_form__ktyp_t(&v_19); + if (v_21) { + _fx_free_N14K_form__ktyp_t(&v_21); } goto _fx_endmatch_2; } @@ -6193,91 +6096,91 @@ static int _fx_M13K_optim_matopFM18fold_matrdep_kexp_v2N14K_form__kexp_tR22K_for if (tag_0 == 8) { _fx_T3N13Ast__intrin_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_5 = &e_0->u.KExpIntrin; if (vcase_5->t0.tag == 13) { - _fx_Ta2R32K_optim_matop__matrix_projection v_22 = {0}; + _fx_Ta2R32K_optim_matop__matrix_projection v_25 = {0}; _fx_R32K_optim_matop__matrix_projection m_pr1_0 = {0}; _fx_R32K_optim_matop__matrix_projection m_pr2_0 = {0}; FX_CALL( _fx_M13K_optim_matopFM13arglist2m_prsTa2RM17matrix_projection2LN14K_form__atom_tR10Ast__loc_t(vcase_5->t1, - &vcase_5->t2.t1, &v_22, 0), _fx_catch_9); - _fx_copy_R32K_optim_matop__matrix_projection(&v_22.t0, &m_pr1_0); - _fx_copy_R32K_optim_matop__matrix_projection(&v_22.t1, &m_pr2_0); - _fx_R9Ast__id_t v_23 = m_pr1_0.original_matrix; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)v_23.m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)v_23.i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)v_23.j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + &vcase_5->t2.t1, &v_25, 0), _fx_catch_9); + _fx_copy_R32K_optim_matop__matrix_projection(&v_25.t0, &m_pr1_0); + _fx_copy_R32K_optim_matop__matrix_projection(&v_25.t1, &m_pr2_0); + _fx_R9Ast__id_t v_26 = m_pr1_0.original_matrix; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)v_26.m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)v_26.i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)v_26.j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( - _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*involved_matrixes_0, &v_23, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_catch_9); - _fx_R9Ast__id_t v_24 = m_pr2_0.original_matrix; - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)v_24.m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)v_24.i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)v_24.j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*involved_matrixes_0, &v_26, + h_0 & 9223372036854775807ULL, 0), _fx_catch_9); + _fx_R9Ast__id_t v_27 = m_pr2_0.original_matrix; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)v_27.m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)v_27.i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)v_27.j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( - _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*involved_matrixes_0, &v_24, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_9); + _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*involved_matrixes_0, &v_27, + h_1 & 9223372036854775807ULL, 0), _fx_catch_9); _fx_catch_9: ; _fx_free_R32K_optim_matop__matrix_projection(&m_pr2_0); _fx_free_R32K_optim_matop__matrix_projection(&m_pr1_0); - _fx_free_Ta2R32K_optim_matop__matrix_projection(&v_22); + _fx_free_Ta2R32K_optim_matop__matrix_projection(&v_25); goto _fx_endmatch_4; } } if (tag_0 == 12) { _fx_T3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_6 = &e_0->u.KExpCall; - _fx_LN14K_form__atom_t v_25 = vcase_6->t1; - if (v_25 != 0) { - _fx_LN14K_form__atom_t v_26 = v_25->tl; - if (v_26 != 0) { - if (v_26->tl == 0) { - _fx_N14K_form__atom_t* v_27 = &v_26->hd; - if (v_27->tag == 1) { - _fx_N14K_form__atom_t* v_28 = &v_25->hd; - if (v_28->tag == 1) { - _fx_R9Ast__id_t* matr1_0 = &v_28->u.AtomId; - _fx_R9Ast__id_t* matr2_0 = &v_27->u.AtomId; + _fx_LN14K_form__atom_t v_28 = vcase_6->t1; + if (v_28 != 0) { + _fx_LN14K_form__atom_t v_29 = v_28->tl; + if (v_29 != 0) { + if (v_29->tl == 0) { + _fx_N14K_form__atom_t* v_30 = &v_29->hd; + if (v_30->tag == 1) { + _fx_N14K_form__atom_t* v_31 = &v_28->hd; + if (v_31->tag == 1) { + _fx_R9Ast__id_t* matr1_0 = &v_31->u.AtomId; + _fx_R9Ast__id_t* matr2_0 = &v_30->u.AtomId; FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&vcase_6->t0, &v_0, 0), _fx_cleanup); - _fx_R9Ast__id_t v_29; - FX_CALL(_fx_M3AstFM12fname_op_mulRM4id_t0(&v_29, 0), _fx_cleanup); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_29, &v_1, 0), _fx_cleanup); + _fx_R9Ast__id_t v_32; + FX_CALL(_fx_M3AstFM12fname_op_mulRM4id_t0(&v_32, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&v_32, &v_1, 0), _fx_cleanup); if (_fx_F6__eq__B2SS(&v_0, &v_1, 0)) { - _fx_N14K_form__ktyp_t v_30 = 0; - _fx_N14K_form__ktyp_t v_31 = 0; - _fx_R10Ast__loc_t v_32; + _fx_N14K_form__ktyp_t v_33 = 0; + _fx_N14K_form__ktyp_t v_34 = 0; + _fx_R10Ast__loc_t v_35; FX_CALL( - _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(matr1_0, &_fx_g10Ast__noloc, &v_32, + _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(matr1_0, &_fx_g10Ast__noloc, &v_35, 0), _fx_catch_12); FX_CALL( - _fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(matr1_0, &v_32, &v_30, 0), + _fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(matr1_0, &v_35, &v_33, 0), _fx_catch_12); - _fx_R10Ast__loc_t v_33; + _fx_R10Ast__loc_t v_36; FX_CALL( - _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(matr2_0, &_fx_g10Ast__noloc, &v_33, + _fx_M6K_formFM11get_idk_locR10Ast__loc_t2R9Ast__id_tR10Ast__loc_t(matr2_0, &_fx_g10Ast__noloc, &v_36, 0), _fx_catch_12); FX_CALL( - _fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(matr2_0, &v_33, &v_31, 0), + _fx_M6K_formFM12get_idk_ktypN14K_form__ktyp_t2R9Ast__id_tR10Ast__loc_t(matr2_0, &v_36, &v_34, 0), _fx_catch_12); - if (FX_REC_VARIANT_TAG(v_31) == 17) { - _fx_T2iN14K_form__ktyp_t* vcase_7 = &v_31->u.KTypArray; + if (FX_REC_VARIANT_TAG(v_34) == 17) { + _fx_T2iN14K_form__ktyp_t* vcase_7 = &v_34->u.KTypArray; if (vcase_7->t0 == 2) { - _fx_N14K_form__ktyp_t v_34 = vcase_7->t1; - if (FX_REC_VARIANT_TAG(v_34) == 5) { - if (FX_REC_VARIANT_TAG(v_30) == 17) { - _fx_T2iN14K_form__ktyp_t* vcase_8 = &v_30->u.KTypArray; + _fx_N14K_form__ktyp_t v_37 = vcase_7->t1; + if (FX_REC_VARIANT_TAG(v_37) == 5) { + if (FX_REC_VARIANT_TAG(v_33) == 17) { + _fx_T2iN14K_form__ktyp_t* vcase_8 = &v_33->u.KTypArray; if (vcase_8->t0 == 2) { - _fx_N14K_form__ktyp_t v_35 = vcase_8->t1; - if (FX_REC_VARIANT_TAG(v_35) == 5) { - int_ bits1_0 = v_35->u.KTypFloat; + _fx_N14K_form__ktyp_t v_38 = vcase_8->t1; + if (FX_REC_VARIANT_TAG(v_38) == 5) { + int_ bits1_0 = v_38->u.KTypFloat; bool t_3; - if (bits1_0 == v_34->u.KTypFloat) { + if (bits1_0 == v_37->u.KTypFloat) { if (bits1_0 == 32) { t_3 = true; } @@ -6289,34 +6192,28 @@ static int _fx_M13K_optim_matopFM18fold_matrdep_kexp_v2N14K_form__kexp_tR22K_for t_3 = false; } if (t_3) { - uint64_t __fold_result___2 = 14695981039346656037ULL; - uint64_t h_6 = - __fold_result___2 ^ ((uint64_t)matr1_0->m ^ 14695981039346656037ULL); - __fold_result___2 = h_6 * 1099511628211ULL; - uint64_t h_7 = - __fold_result___2 ^ ((uint64_t)matr1_0->i ^ 14695981039346656037ULL); - __fold_result___2 = h_7 * 1099511628211ULL; - uint64_t h_8 = - __fold_result___2 ^ ((uint64_t)matr1_0->j ^ 14695981039346656037ULL); - __fold_result___2 = h_8 * 1099511628211ULL; + uint64_t h_2 = 14695981039346656037ULL; + h_2 = h_2 ^ ((uint64_t)matr1_0->m ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)matr1_0->i ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)matr1_0->j ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; FX_CALL( _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( - *involved_matrixes_0, matr1_0, __fold_result___2 & 9223372036854775807ULL, - 0), _fx_catch_10); - uint64_t __fold_result___3 = 14695981039346656037ULL; - uint64_t h_9 = - __fold_result___3 ^ ((uint64_t)matr2_0->m ^ 14695981039346656037ULL); - __fold_result___3 = h_9 * 1099511628211ULL; - uint64_t h_10 = - __fold_result___3 ^ ((uint64_t)matr2_0->i ^ 14695981039346656037ULL); - __fold_result___3 = h_10 * 1099511628211ULL; - uint64_t h_11 = - __fold_result___3 ^ ((uint64_t)matr2_0->j ^ 14695981039346656037ULL); - __fold_result___3 = h_11 * 1099511628211ULL; + *involved_matrixes_0, matr1_0, h_2 & 9223372036854775807ULL, 0), + _fx_catch_10); + uint64_t h_3 = 14695981039346656037ULL; + h_3 = h_3 ^ ((uint64_t)matr2_0->m ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; + h_3 = h_3 ^ ((uint64_t)matr2_0->i ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; + h_3 = h_3 ^ ((uint64_t)matr2_0->j ^ 14695981039346656037ULL); + h_3 = h_3 * 1099511628211ULL; FX_CALL( _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq( - *involved_matrixes_0, matr2_0, __fold_result___3 & 9223372036854775807ULL, - 0), _fx_catch_10); + *involved_matrixes_0, matr2_0, h_3 & 9223372036854775807ULL, 0), + _fx_catch_10); _fx_catch_10: ; goto _fx_endmatch_3; @@ -6335,11 +6232,11 @@ static int _fx_M13K_optim_matopFM18fold_matrdep_kexp_v2N14K_form__kexp_tR22K_for FX_CHECK_EXN(_fx_catch_12); _fx_catch_12: ; - if (v_31) { - _fx_free_N14K_form__ktyp_t(&v_31); + if (v_34) { + _fx_free_N14K_form__ktyp_t(&v_34); } - if (v_30) { - _fx_free_N14K_form__ktyp_t(&v_30); + if (v_33) { + _fx_free_N14K_form__ktyp_t(&v_33); } goto _fx_endmatch_4; } @@ -6396,40 +6293,41 @@ static int _fx_Nt6option1R9Ast__id_t v_1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*matrix_dependencies_0)->u.t.t5, 0, j_0), _fx_catch_2); - _fx_R9Ast__id_t v_2 = - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*matrix_dependencies_0)->u.t.t5, j_0)->data; - _fx_M13K_optim_matopFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_2, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR9Ast__id_t, (*matrix_dependencies_0)->u.t.t5, j_0); + _fx_R9Ast__id_t v_3 = v_2->data; + _fx_M13K_optim_matopFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t(&v_3, &v_1); } else { v_1 = _fx_g21K_optim_matop__None1_; } int tag_0 = v_1.tag; if (tag_0 == 2) { - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)m_2.m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)m_2.i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)m_2.j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)m_2.m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)m_2.i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)m_2.j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; FX_CALL( _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*involved_matrixes_0, &m_2, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_catch_0); + h_0 & 9223372036854775807ULL, 0), _fx_catch_0); m_1 = v_1.u.Some; _fx_catch_0: ; } else if (tag_0 == 1) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)m_2.m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)m_2.i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)m_2.j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)m_2.m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)m_2.i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)m_2.j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( _fx_M13K_optim_matopFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*involved_matrixes_0, &m_2, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_1); + h_1 & 9223372036854775807ULL, 0), _fx_catch_1); FX_BREAK(_fx_catch_1); _fx_catch_1: ; @@ -6933,9 +6831,9 @@ static int int_ j_0 = v_3.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*mat_proj_map_0)->u.t.t5, 0, j_0), _fx_cleanup); - _fx_copy_R32K_optim_matop__matrix_projection( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, (*mat_proj_map_0)->u.t.t5, - j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection* v_4 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, (*mat_proj_map_0)->u.t.t5, j_0); + _fx_copy_R32K_optim_matop__matrix_projection(&v_4->data, &v_1); _fx_M13K_optim_matopFM4SomeNt6option1RM17matrix_projection1RM17matrix_projection(&v_1, &v_0); } else { @@ -6946,7 +6844,7 @@ static int _fx_Ta3N14K_form__atom_t col_range_0 = {0}; _fx_Ta3N14K_form__atom_t row_range_0 = {0}; _fx_R32K_optim_matop__matrix_projection target_0 = {0}; - _fx_T2R32K_optim_matop__matrix_projectionLN14K_form__kexp_t v_4 = {0}; + _fx_T2R32K_optim_matop__matrix_projectionLN14K_form__kexp_t v_5 = {0}; _fx_R32K_optim_matop__matrix_projection m_pr_1 = {0}; _fx_LN14K_form__kexp_t new_extra_decls_0 = 0; _fx_R32K_optim_matop__matrix_projection* tar_m_0 = &v_0.u.Some; @@ -6962,9 +6860,9 @@ static int } FX_CALL( _fx_M13K_optim_matopFM11m_pr_slicedT2RM17matrix_projectionLN14K_form__kexp_t6RM17matrix_projectionTa3N14K_form__atom_tTa3N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_tLN14K_form__kexp_tri( - &target_0, &row_range_0, &col_range_0, ctx_0, *extra_decls_0, curr_m_idx_ref_0, &v_4, 0), _fx_catch_0); - _fx_copy_R32K_optim_matop__matrix_projection(&v_4.t0, &m_pr_1); - FX_COPY_PTR(v_4.t1, &new_extra_decls_0); + &target_0, &row_range_0, &col_range_0, ctx_0, *extra_decls_0, curr_m_idx_ref_0, &v_5, 0), _fx_catch_0); + _fx_copy_R32K_optim_matop__matrix_projection(&v_5.t0, &m_pr_1); + FX_COPY_PTR(v_5.t1, &new_extra_decls_0); _fx_free_LN14K_form__kexp_t(extra_decls_0); FX_COPY_PTR(new_extra_decls_0, extra_decls_0); _fx_copy_R32K_optim_matop__matrix_projection(&m_pr_1, fx_result); @@ -6974,7 +6872,7 @@ static int _fx_free_LN14K_form__kexp_t(&new_extra_decls_0); } _fx_free_R32K_optim_matop__matrix_projection(&m_pr_1); - _fx_free_T2R32K_optim_matop__matrix_projectionLN14K_form__kexp_t(&v_4); + _fx_free_T2R32K_optim_matop__matrix_projectionLN14K_form__kexp_t(&v_5); _fx_free_R32K_optim_matop__matrix_projection(&target_0); _fx_free_Ta3N14K_form__atom_t(&row_range_0); _fx_free_Ta3N14K_form__atom_t(&col_range_0); @@ -7010,9 +6908,9 @@ static int int_ j_0 = v_2.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*mat_proj_map_0)->u.t.t5, 0, j_0), _fx_cleanup); - _fx_copy_R32K_optim_matop__matrix_projection( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, (*mat_proj_map_0)->u.t.t5, - j_0)->data, &v_1); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tR32K_optim_matop__matrix_projection, (*mat_proj_map_0)->u.t.t5, j_0); + _fx_copy_R32K_optim_matop__matrix_projection(&v_3->data, &v_1); _fx_M13K_optim_matopFM4SomeNt6option1RM17matrix_projection1RM17matrix_projection(&v_1, &v_0); } else { @@ -7023,49 +6921,49 @@ static int _fx_copy_R32K_optim_matop__matrix_projection(&v_0.u.Some, fx_result); } else if (tag_0 == 1) { - _fx_N14K_form__klit_t v_3 = {0}; - _fx_N14K_form__atom_t v_4 = {0}; - _fx_N14K_form__klit_t v_5 = {0}; - _fx_N14K_form__atom_t v_6 = {0}; - _fx_N14K_form__klit_t v_7 = {0}; - _fx_N14K_form__atom_t v_8 = {0}; - _fx_Ta3N14K_form__atom_t v_9 = {0}; - _fx_N14K_form__klit_t v_10 = {0}; - _fx_N14K_form__atom_t v_11 = {0}; - _fx_N14K_form__klit_t v_12 = {0}; - _fx_N14K_form__atom_t v_13 = {0}; - _fx_N14K_form__klit_t v_14 = {0}; - _fx_N14K_form__atom_t v_15 = {0}; - _fx_Ta3N14K_form__atom_t v_16 = {0}; - _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_3); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_3, &v_4); - _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_5); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_5, &v_6); - _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_7); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_7, &v_8); - _fx_make_Ta3N14K_form__atom_t(&v_4, &v_6, &v_8, &v_9); - _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_10); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_10, &v_11); - _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_12); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_12, &v_13); - _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_14); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_14, &v_15); - _fx_make_Ta3N14K_form__atom_t(&v_11, &v_13, &v_15, &v_16); - _fx_make_R32K_optim_matop__matrix_projection(matr_0, &v_9, &v_16, false, fx_result); - _fx_free_Ta3N14K_form__atom_t(&v_16); - _fx_free_N14K_form__atom_t(&v_15); - _fx_free_N14K_form__klit_t(&v_14); - _fx_free_N14K_form__atom_t(&v_13); - _fx_free_N14K_form__klit_t(&v_12); - _fx_free_N14K_form__atom_t(&v_11); - _fx_free_N14K_form__klit_t(&v_10); - _fx_free_Ta3N14K_form__atom_t(&v_9); - _fx_free_N14K_form__atom_t(&v_8); - _fx_free_N14K_form__klit_t(&v_7); - _fx_free_N14K_form__atom_t(&v_6); - _fx_free_N14K_form__klit_t(&v_5); - _fx_free_N14K_form__atom_t(&v_4); - _fx_free_N14K_form__klit_t(&v_3); + _fx_N14K_form__klit_t v_4 = {0}; + _fx_N14K_form__atom_t v_5 = {0}; + _fx_N14K_form__klit_t v_6 = {0}; + _fx_N14K_form__atom_t v_7 = {0}; + _fx_N14K_form__klit_t v_8 = {0}; + _fx_N14K_form__atom_t v_9 = {0}; + _fx_Ta3N14K_form__atom_t v_10 = {0}; + _fx_N14K_form__klit_t v_11 = {0}; + _fx_N14K_form__atom_t v_12 = {0}; + _fx_N14K_form__klit_t v_13 = {0}; + _fx_N14K_form__atom_t v_14 = {0}; + _fx_N14K_form__klit_t v_15 = {0}; + _fx_N14K_form__atom_t v_16 = {0}; + _fx_Ta3N14K_form__atom_t v_17 = {0}; + _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_4); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_4, &v_5); + _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_6); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_6, &v_7); + _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_8); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_8, &v_9); + _fx_make_Ta3N14K_form__atom_t(&v_5, &v_7, &v_9, &v_10); + _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_11); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_11, &v_12); + _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_13); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_13, &v_14); + _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(_fx_g23K_optim_matop__KTypVoid, &v_15); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_15, &v_16); + _fx_make_Ta3N14K_form__atom_t(&v_12, &v_14, &v_16, &v_17); + _fx_make_R32K_optim_matop__matrix_projection(matr_0, &v_10, &v_17, false, fx_result); + _fx_free_Ta3N14K_form__atom_t(&v_17); + _fx_free_N14K_form__atom_t(&v_16); + _fx_free_N14K_form__klit_t(&v_15); + _fx_free_N14K_form__atom_t(&v_14); + _fx_free_N14K_form__klit_t(&v_13); + _fx_free_N14K_form__atom_t(&v_12); + _fx_free_N14K_form__klit_t(&v_11); + _fx_free_Ta3N14K_form__atom_t(&v_10); + _fx_free_N14K_form__atom_t(&v_9); + _fx_free_N14K_form__klit_t(&v_8); + _fx_free_N14K_form__atom_t(&v_7); + _fx_free_N14K_form__klit_t(&v_6); + _fx_free_N14K_form__atom_t(&v_5); + _fx_free_N14K_form__klit_t(&v_4); } else { FX_FAST_THROW(FX_EXN_NoMatchError, _fx_cleanup); diff --git a/compiler/bootstrap/K_pp.c b/compiler/bootstrap/K_pp.c index 86298615..34c0854a 100644 --- a/compiler/bootstrap/K_pp.c +++ b/compiler/bootstrap/K_pp.c @@ -5141,7 +5141,8 @@ FX_EXTERN_C int _fx_M4K_ppFM7pp_exp_v2R5PP__tN14K_form__kexp_t( if (v_40.tag == 2) { _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_42 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t v_43 = {0}; - FX_COPY_PTR(v_40.u.Some->data.ki_all_methods, &v_42); + _fx_R23K_form__kdefinterface_t* v_44 = &v_40.u.Some->data; + FX_COPY_PTR(v_44->ki_all_methods, &v_42); FX_CALL(_fx_M4K_ppFM3nthT2R9Ast__id_tN14K_form__ktyp_t2LT2R9Ast__id_tN14K_form__ktyp_ti(v_42, vcase_14->t1, &v_43, 0), _fx_catch_50); mname_0 = v_43.t0; @@ -5153,13 +5154,13 @@ FX_EXTERN_C int _fx_M4K_ppFM7pp_exp_v2R5PP__tN14K_form__kexp_t( } } else { - fx_exn_t v_44 = {0}; + fx_exn_t v_45 = {0}; fx_str_t slit_81 = FX_MAKE_STR("object used in method call is not a valid interface"); - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_1, &slit_81, &v_44, 0), _fx_catch_51); - FX_THROW(&v_44, false, _fx_catch_51); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(loc_1, &slit_81, &v_45, 0), _fx_catch_51); + FX_THROW(&v_45, false, _fx_catch_51); _fx_catch_51: ; - fx_free_exn(&v_44); + fx_free_exn(&v_45); } FX_CHECK_EXN(_fx_catch_52); FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&mname_0, &v_41, 0), _fx_catch_52); @@ -5182,17 +5183,17 @@ FX_EXTERN_C int _fx_M4K_ppFM7pp_exp_v2R5PP__tN14K_form__kexp_t( goto _fx_endmatch_1; } if (tag_0 == 19) { - fx_str_t v_45 = {0}; fx_str_t v_46 = {0}; + fx_str_t v_47 = {0}; _fx_LN13K_form__dom_t args_2 = 0; _fx_T5N14K_form__atom_tN13Ast__border_tN18Ast__interpolate_tLN13K_form__dom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_15 = &e_0->u.KExpAt; FX_CALL(_fx_M2PPFM5beginv1RM1t(pp_0, 0), _fx_catch_54); FX_CALL(_fx_M4K_ppFM8pp_atom_v3N14K_form__atom_tR10Ast__loc_tR5PP__t(&vcase_15->t0, &eloc_0, pp_0, 0), _fx_catch_54); - FX_CALL(_fx_M3AstFM10border2strS2N13Ast__border_tB(&vcase_15->t1, true, &v_45, 0), _fx_catch_54); - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_45, 0), _fx_catch_54); - FX_CALL(_fx_M3AstFM10interp2strS2N18Ast__interpolate_tB(&vcase_15->t2, true, &v_46, 0), _fx_catch_54); + FX_CALL(_fx_M3AstFM10border2strS2N13Ast__border_tB(&vcase_15->t1, true, &v_46, 0), _fx_catch_54); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_46, 0), _fx_catch_54); + FX_CALL(_fx_M3AstFM10interp2strS2N18Ast__interpolate_tB(&vcase_15->t2, true, &v_47, 0), _fx_catch_54); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_47, 0), _fx_catch_54); fx_str_t slit_84 = FX_MAKE_STR("["); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &slit_84, 0), _fx_catch_54); int_ i_9 = 0; @@ -5218,8 +5219,8 @@ FX_EXTERN_C int _fx_M4K_ppFM7pp_exp_v2R5PP__tN14K_form__kexp_t( if (args_2) { _fx_free_LN13K_form__dom_t(&args_2); } + FX_FREE_STR(&v_47); FX_FREE_STR(&v_46); - FX_FREE_STR(&v_45); goto _fx_endmatch_1; } if (tag_0 == 11) { @@ -5262,27 +5263,27 @@ FX_EXTERN_C int _fx_M4K_ppFM7pp_exp_v2R5PP__tN14K_form__kexp_t( goto _fx_endmatch_1; } if (tag_0 == 27) { - _fx_N14K_form__kexp_t v_47 = 0; + _fx_N14K_form__kexp_t v_48 = 0; _fx_T5LT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tN14K_form__kexp_tR16Ast__for_flags_tR10Ast__loc_t* vcase_18 = &e_0->u.KExpFor; FX_CALL(_fx_M2PPFM6beginvv2RM1ti(pp_0, 0, 0), _fx_catch_58); FX_CALL(_fx_M2PPFM5beginv1RM1t(pp_0, 0), _fx_catch_58); FX_CALL(_fx_M6Ast_ppFM16pprint_for_flagsv2R5PP__tR16Ast__for_flags_t(pp_0, &vcase_18->t3, 0), _fx_catch_58); - FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&vcase_18->t4, &v_47), _fx_catch_58); + FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&vcase_18->t4, &v_48), _fx_catch_58); FX_CALL( - _fx_M4K_ppFM11pp_for_hdr_v5N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tR10Ast__loc_tR5PP__t(v_47, + _fx_M4K_ppFM11pp_for_hdr_v5N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_tR10Ast__loc_tR5PP__t(v_48, vcase_18->t0, vcase_18->t1, &eloc_0, pp_0, 0), _fx_catch_58); FX_CALL(_fx_M4K_ppFM16pp_exp_as_block_v4N14K_form__kexp_tBBR5PP__t(vcase_18->t2, true, true, pp_0, 0), _fx_catch_58); FX_CALL(_fx_M2PPFM3endv1RM1t(pp_0, 0), _fx_catch_58); _fx_catch_58: ; - if (v_47) { - _fx_free_N14K_form__kexp_t(&v_47); + if (v_48) { + _fx_free_N14K_form__kexp_t(&v_48); } goto _fx_endmatch_1; } if (tag_0 == 26) { - _fx_Ta2S v_48 = {0}; + _fx_Ta2S v_49 = {0}; fx_str_t begin_0 = {0}; fx_str_t end_0 = {0}; _fx_LT3N14K_form__kexp_tLT2R9Ast__id_tN13K_form__dom_tLR9Ast__id_t map_cl_0 = 0; @@ -5291,43 +5292,43 @@ FX_EXTERN_C int _fx_M4K_ppFM7pp_exp_v2R5PP__tN14K_form__kexp_t( _fx_R16Ast__for_flags_t* flags_0 = &vcase_19->t2; FX_CALL(_fx_M2PPFM6beginvv2RM1ti(pp_0, 0, 0), _fx_catch_61); FX_CALL(_fx_M6Ast_ppFM16pprint_for_flagsv2R5PP__tR16Ast__for_flags_t(pp_0, flags_0, 0), _fx_catch_61); - _fx_N15Ast__for_make_t v_49 = flags_0->for_flag_make; - int tag_3 = v_49.tag; + _fx_N15Ast__for_make_t v_50 = flags_0->for_flag_make; + int tag_3 = v_50.tag; if (tag_3 == 3) { - fx_str_t slit_90 = FX_MAKE_STR("["); fx_str_t slit_91 = FX_MAKE_STR("]"); _fx_make_Ta2S(&slit_90, &slit_91, &v_48); + fx_str_t slit_90 = FX_MAKE_STR("["); fx_str_t slit_91 = FX_MAKE_STR("]"); _fx_make_Ta2S(&slit_90, &slit_91, &v_49); } else if (tag_3 == 2) { - fx_str_t slit_92 = FX_MAKE_STR("["); fx_str_t slit_93 = FX_MAKE_STR("]"); _fx_make_Ta2S(&slit_92, &slit_93, &v_48); + fx_str_t slit_92 = FX_MAKE_STR("["); fx_str_t slit_93 = FX_MAKE_STR("]"); _fx_make_Ta2S(&slit_92, &slit_93, &v_49); } else if (tag_3 == 4) { - fx_str_t slit_94 = FX_MAKE_STR("["); fx_str_t slit_95 = FX_MAKE_STR("]"); _fx_make_Ta2S(&slit_94, &slit_95, &v_48); + fx_str_t slit_94 = FX_MAKE_STR("["); fx_str_t slit_95 = FX_MAKE_STR("]"); _fx_make_Ta2S(&slit_94, &slit_95, &v_49); } else if (tag_3 == 5) { - fx_str_t slit_96 = FX_MAKE_STR("("); fx_str_t slit_97 = FX_MAKE_STR(")"); _fx_make_Ta2S(&slit_96, &slit_97, &v_48); + fx_str_t slit_96 = FX_MAKE_STR("("); fx_str_t slit_97 = FX_MAKE_STR(")"); _fx_make_Ta2S(&slit_96, &slit_97, &v_49); } else { - fx_str_t v_50 = {0}; fx_str_t v_51 = {0}; - fx_exn_t v_52 = {0}; - _fx_N15Ast__for_make_t v_53 = flags_0->for_flag_make; - FX_CALL(_fx_M3AstFM6stringS1N15Ast__for_make_t(&v_53, &v_50, 0), _fx_catch_59); + fx_str_t v_52 = {0}; + fx_exn_t v_53 = {0}; + _fx_N15Ast__for_make_t v_54 = flags_0->for_flag_make; + FX_CALL(_fx_M3AstFM6stringS1N15Ast__for_make_t(&v_54, &v_51, 0), _fx_catch_59); fx_str_t slit_98 = FX_MAKE_STR("unsupported type of comprehension \'"); fx_str_t slit_99 = FX_MAKE_STR("\'"); { - const fx_str_t strs_3[] = { slit_98, v_50, slit_99 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_51), _fx_catch_59); + const fx_str_t strs_3[] = { slit_98, v_51, slit_99 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_52), _fx_catch_59); } - FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&vcase_19->t3.t1, &v_51, &v_52, 0), _fx_catch_59); - FX_THROW(&v_52, false, _fx_catch_59); + FX_CALL(_fx_M3AstFM11compile_errE2RM5loc_tS(&vcase_19->t3.t1, &v_52, &v_53, 0), _fx_catch_59); + FX_THROW(&v_53, false, _fx_catch_59); _fx_catch_59: ; - fx_free_exn(&v_52); + fx_free_exn(&v_53); + FX_FREE_STR(&v_52); FX_FREE_STR(&v_51); - FX_FREE_STR(&v_50); } FX_CHECK_EXN(_fx_catch_61); - fx_copy_str(&v_48.t0, &begin_0); - fx_copy_str(&v_48.t1, &end_0); + fx_copy_str(&v_49.t0, &begin_0); + fx_copy_str(&v_49.t1, &end_0); FX_CALL(_fx_M2PPFM5beginv1RM1t(pp_0, 0), _fx_catch_61); FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &begin_0, 0), _fx_catch_61); FX_COPY_PTR(vcase_19->t0, &map_cl_0); @@ -5365,7 +5366,7 @@ FX_EXTERN_C int _fx_M4K_ppFM7pp_exp_v2R5PP__tN14K_form__kexp_t( } FX_FREE_STR(&end_0); FX_FREE_STR(&begin_0); - _fx_free_Ta2S(&v_48); + _fx_free_Ta2S(&v_49); goto _fx_endmatch_1; } if (tag_0 == 22) { @@ -5377,21 +5378,21 @@ FX_EXTERN_C int _fx_M4K_ppFM7pp_exp_v2R5PP__tN14K_form__kexp_t( for (; lst_16; lst_16 = lst_16->tl, i_10 += 1) { _fx_LN14K_form__kexp_t checks_i_0 = 0; _fx_N14K_form__kexp_t e_i_0 = 0; - fx_str_t v_54 = {0}; + fx_str_t v_55 = {0}; _fx_T2LN14K_form__kexp_tN14K_form__kexp_t* __pat___9 = &lst_16->hd; FX_COPY_PTR(__pat___9->t0, &checks_i_0); FX_COPY_PTR(__pat___9->t1, &e_i_0); FX_CALL(_fx_M2PPFM5beginv1RM1t(pp_0, 0), _fx_catch_63); if (i_10 == 0) { - fx_str_t slit_100 = FX_MAKE_STR("if "); fx_copy_str(&slit_100, &v_54); + fx_str_t slit_100 = FX_MAKE_STR("if "); fx_copy_str(&slit_100, &v_55); } else if (checks_i_0 == 0) { - fx_str_t slit_101 = FX_MAKE_STR("else"); fx_copy_str(&slit_101, &v_54); + fx_str_t slit_101 = FX_MAKE_STR("else"); fx_copy_str(&slit_101, &v_55); } else { - fx_str_t slit_102 = FX_MAKE_STR("else if "); fx_copy_str(&slit_102, &v_54); + fx_str_t slit_102 = FX_MAKE_STR("else if "); fx_copy_str(&slit_102, &v_55); } - FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_54, 0), _fx_catch_63); + FX_CALL(_fx_M2PPFM3strv2RM1tS(pp_0, &v_55, 0), _fx_catch_63); int_ j_3 = 0; _fx_LN14K_form__kexp_t lst_17 = checks_i_0; for (; lst_17; lst_17 = lst_17->tl, j_3 += 1) { @@ -5410,7 +5411,7 @@ FX_EXTERN_C int _fx_M4K_ppFM7pp_exp_v2R5PP__tN14K_form__kexp_t( FX_CALL(_fx_M2PPFM5spacev1RM1t(pp_0, 0), _fx_catch_63); _fx_catch_63: ; - FX_FREE_STR(&v_54); + FX_FREE_STR(&v_55); if (e_i_0) { _fx_free_N14K_form__kexp_t(&e_i_0); } diff --git a/compiler/bootstrap/K_remove_unused.c b/compiler/bootstrap/K_remove_unused.c index bc1031ea..5617b30b 100644 --- a/compiler/bootstrap/K_remove_unused.c +++ b/compiler/bootstrap/K_remove_unused.c @@ -1060,6 +1060,11 @@ typedef struct _fx_Nt6option1R9Ast__id_t { } u; } _fx_Nt6option1R9Ast__id_t; +typedef struct _fx_Ta2LN14K_form__kexp_t { + struct _fx_LN14K_form__kexp_t_data_t* t0; + struct _fx_LN14K_form__kexp_t_data_t* t1; +} _fx_Ta2LN14K_form__kexp_t; + typedef struct _fx_rNt10Hashset__t1R9Ast__id_t_data_t { int_ rc; struct _fx_Nt10Hashset__t1R9Ast__id_t_data_t* data; @@ -3598,6 +3603,27 @@ static void _fx_copy_Nt6option1Nt10Hashset__t1R9Ast__id_t( } } +static void _fx_free_Ta2LN14K_form__kexp_t(struct _fx_Ta2LN14K_form__kexp_t* dst) +{ + _fx_free_LN14K_form__kexp_t(&dst->t0); + _fx_free_LN14K_form__kexp_t(&dst->t1); +} + +static void _fx_copy_Ta2LN14K_form__kexp_t(struct _fx_Ta2LN14K_form__kexp_t* src, struct _fx_Ta2LN14K_form__kexp_t* dst) +{ + FX_COPY_PTR(src->t0, &dst->t0); + FX_COPY_PTR(src->t1, &dst->t1); +} + +static void _fx_make_Ta2LN14K_form__kexp_t( + struct _fx_LN14K_form__kexp_t_data_t* t0, + struct _fx_LN14K_form__kexp_t_data_t* t1, + struct _fx_Ta2LN14K_form__kexp_t* fx_result) +{ + FX_COPY_PTR(t0, &fx_result->t0); + FX_COPY_PTR(t1, &fx_result->t1); +} + static void _fx_free_rNt10Hashset__t1R9Ast__id_t(struct _fx_rNt10Hashset__t1R9Ast__id_t_data_t** dst) { FX_FREE_REF_IMPL(_fx_rNt10Hashset__t1R9Ast__id_t, _fx_free_Nt10Hashset__t1R9Ast__id_t); @@ -3955,79 +3981,76 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM6concatLN14K_form__kexp_t1LLN14K_form__k struct _fx_LN14K_form__kexp_t_data_t** fx_result, void* fx_fv) { - _fx_LN14K_form__kexp_t __fold_result___0 = 0; - _fx_LLN14K_form__kexp_t __fold_result___1 = 0; + _fx_LN14K_form__kexp_t s_0 = 0; + _fx_LLN14K_form__kexp_t res_0 = 0; _fx_LLN14K_form__kexp_t v_0 = 0; int fx_status = 0; _fx_LLN14K_form__kexp_t lst_0 = ll_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LLN14K_form__kexp_t r_0 = 0; + _fx_LLN14K_form__kexp_t v_1 = 0; _fx_LN14K_form__kexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LLN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LLN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LLN14K_form__kexp_t(a_0, res_0, true, &v_1), _fx_catch_0); + _fx_free_LLN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_1, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LLN14K_form__kexp_t(&r_0); + if (v_1) { + _fx_free_LLN14K_form__kexp_t(&v_1); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_0); + FX_COPY_PTR(res_0, &v_0); _fx_LLN14K_form__kexp_t lst_1 = v_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN14K_form__kexp_t s_0 = 0; - _fx_LN14K_form__kexp_t v_1 = 0; + _fx_Ta2LN14K_form__kexp_t v_2 = {0}; + _fx_LN14K_form__kexp_t v_3 = 0; _fx_LN14K_form__kexp_t l_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___0, &s_0); - if (l_0 == 0) { - FX_COPY_PTR(s_0, &v_1); + _fx_make_Ta2LN14K_form__kexp_t(l_0, s_0, &v_2); + if (v_2.t0 == 0) { + FX_COPY_PTR(s_0, &v_3); } - else if (s_0 == 0) { - FX_COPY_PTR(l_0, &v_1); + else if (v_2.t1 == 0) { + FX_COPY_PTR(l_0, &v_3); } else { - _fx_LN14K_form__kexp_t v_2 = 0; + _fx_LN14K_form__kexp_t v_4 = 0; _fx_LN14K_form__kexp_t lstend_0 = 0; _fx_LN14K_form__kexp_t lst_2 = l_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_N14K_form__kexp_t x_0 = lst_2->hd; _fx_LN14K_form__kexp_t node_0 = 0; FX_CALL(_fx_cons_LN14K_form__kexp_t(x_0, 0, false, &node_0), _fx_catch_1); - FX_LIST_APPEND(v_2, lstend_0, node_0); + FX_LIST_APPEND(v_4, lstend_0, node_0); _fx_catch_1: ; FX_CHECK_EXN(_fx_catch_2); } - _fx_M15K_remove_unusedFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_2, s_0, &v_1, 0); + _fx_M15K_remove_unusedFM5link2LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(v_4, s_0, &v_3, 0); _fx_catch_2: ; - if (v_2) { - _fx_free_LN14K_form__kexp_t(&v_2); + if (v_4) { + _fx_free_LN14K_form__kexp_t(&v_4); } } FX_CHECK_EXN(_fx_catch_3); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(v_1, &__fold_result___0); + _fx_free_LN14K_form__kexp_t(&s_0); + FX_COPY_PTR(v_3, &s_0); _fx_catch_3: ; - if (v_1) { - _fx_free_LN14K_form__kexp_t(&v_1); - } - if (s_0) { - _fx_free_LN14K_form__kexp_t(&s_0); + if (v_3) { + _fx_free_LN14K_form__kexp_t(&v_3); } + _fx_free_Ta2LN14K_form__kexp_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(s_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (s_0) { + _fx_free_LN14K_form__kexp_t(&s_0); } - if (__fold_result___1) { - _fx_free_LLN14K_form__kexp_t(&__fold_result___1); + if (res_0) { + _fx_free_LLN14K_form__kexp_t(&res_0); } if (v_0) { _fx_free_LLN14K_form__kexp_t(&v_0); @@ -4077,12 +4100,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4136,28 +4160,29 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM4growv2Nt10Hashmap__t2R9Ast__id_tNt10Has for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0)->hv < - 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M15K_remove_unusedFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tRt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4177,14 +4202,14 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_ { fx_arr_t v_0 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); uint64_t perturb_0 = hv_0; @@ -4203,32 +4228,11 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_ bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4268,14 +4272,14 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM18find_idx_or_inserti2Nt10Hashmap__t2R9A _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t v_3 = {0}; fx_exn_t v_4 = {0}; int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - uint64_t hv_0 = __fold_result___0 & 9223372036854775807ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + uint64_t hv_0 = h_0 & 9223372036854775807ULL; fx_copy_arr(&self_0->u.t.t4, &v_0); int_ idxsz_0 = FX_ARR_SIZE(v_0, 0); if (self_0->u.t.t1 + 1 > idxsz_0 >> 1) { @@ -4303,32 +4307,11 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM18find_idx_or_inserti2Nt10Hashmap__t2R9A bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_7 = entry_0.key; - bool __fold_result___1 = true; - bool t_1; - if (v_7.m == k_0->m) { - t_1 = __fold_result___1; - } - else { - t_1 = false; - } - __fold_result___1 = t_1; - bool t_2; - if (v_7.i == k_0->i) { - t_2 = __fold_result___1; - } - else { - t_2 = false; - } - __fold_result___1 = t_2; - bool t_3; - if (v_7.j == k_0->j) { - t_3 = __fold_result___1; - } - else { - t_3 = false; - } - __fold_result___1 = t_3; - t_0 = __fold_result___1; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_7.m == k_0->m)); + f_0 = (bool)(f_0 & (v_7.i == k_0->i)); + f_0 = (bool)(f_0 & (v_7.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4344,14 +4327,14 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM18find_idx_or_inserti2Nt10Hashmap__t2R9A FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -4364,28 +4347,29 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM18find_idx_or_inserti2Nt10Hashmap__t2R9A FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -4396,12 +4380,13 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM18find_idx_or_inserti2Nt10Hashmap__t2R9A FX_COPY_PTR(self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(hv_0, k_0, v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_8 = + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_11 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_8); - _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_3, v_8); + _fx_free_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(v_11); + _fx_copy_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t(&v_3, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -4478,13 +4463,17 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM8compressNt10Hashset__t1R9Ast__id_t1Nt10 int_ v_3 = self_0->u.t.t2; for (int_ i_1 = 0; i_1 < v_3; i_1++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, i_1), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, i_1)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_4 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, i_1); + if (v_4->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, i_1), _fx_catch_0); - _fx_R9Ast__id_t v_4 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, i_1)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_5 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, i_1); + _fx_R9Ast__id_t v_6 = v_5->key; FX_CHKIDX(FX_CHKIDX1(table_0, 0, i_1), _fx_catch_0); - FX_CALL( - _fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(result_0, &v_4, - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, i_1)->hv, 0), _fx_catch_0); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_7 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, i_1); + FX_CALL(_fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(result_0, &v_6, v_7->hv, 0), + _fx_catch_0); } _fx_catch_0: ; @@ -4524,9 +4513,12 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0) = *entry_0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_3 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, *ht_table_0, tabsz_0); + *v_3 = *entry_0; found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -4575,26 +4567,28 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM4growv2Nt10Hashset__t1R9Ast__id_ti( int_ v_1 = self_0->u.t.t2; for (int_ j_0 = 0; j_0 < v_1; j_0++) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_2 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); + if (v_2->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_2 = + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_3 = *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, ht_table_0, j_0); - int_ v_3; + int_ v_4; FX_CALL( _fx_M15K_remove_unusedFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_tRt24Hashset__hashset_entry_t1R9Ast__id_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_3, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -4631,32 +4625,11 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_ bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_3 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_3.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_3.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_3.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_3.m == k_0->m)); + f_0 = (bool)(f_0 & (v_3.i == k_0->i)); + f_0 = (bool)(f_0 & (v_3.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4690,17 +4663,17 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__i void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_0; FX_CALL( - _fx_M15K_remove_unusedFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, &v_0, 0), _fx_cleanup); + _fx_M15K_remove_unusedFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, + &v_0, 0), _fx_cleanup); *fx_result = v_0.t1 >= 0; _fx_cleanup: ; @@ -4742,32 +4715,11 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__ bool t_0; if (entry_0.hv == hv_0) { _fx_R9Ast__id_t v_5 = entry_0.key; - bool __fold_result___0 = true; - bool t_1; - if (v_5.m == k_0->m) { - t_1 = __fold_result___0; - } - else { - t_1 = false; - } - __fold_result___0 = t_1; - bool t_2; - if (v_5.i == k_0->i) { - t_2 = __fold_result___0; - } - else { - t_2 = false; - } - __fold_result___0 = t_2; - bool t_3; - if (v_5.j == k_0->j) { - t_3 = __fold_result___0; - } - else { - t_3 = false; - } - __fold_result___0 = t_3; - t_0 = __fold_result___0; + bool f_0 = true; + f_0 = (bool)(f_0 & (v_5.m == k_0->m)); + f_0 = (bool)(f_0 & (v_5.i == k_0->i)); + f_0 = (bool)(f_0 & (v_5.j == k_0->j)); + t_0 = f_0; } else { t_0 = false; @@ -4783,14 +4735,14 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__ FX_BREAK(_fx_catch_0); } else { - bool t_4; + bool t_1; if (tidx_0 == 1) { - t_4 = insert_idx_0 < 0; + t_1 = insert_idx_0 < 0; } else { - t_4 = false; + t_1 = false; } - if (t_4) { + if (t_1) { insert_idx_0 = j_0; } } @@ -4802,27 +4754,29 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__ FX_CHECK_EXN(_fx_cleanup); } if (found_0 >= 0) { - bool t_5; + bool t_2; if (insert_idx_0 >= 0) { - t_5 = insert_idx_0 != j_0; + t_2 = insert_idx_0 != j_0; } else { - t_5 = false; + t_2 = false; } - if (t_5) { + if (t_2) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_6 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_6 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_7 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_7 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_8 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_8->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -4830,11 +4784,14 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__ fx_copy_arr(&self_0->u.t.t5, &v_1); FX_CALL(_fx_F6assertv1B(found_0 < FX_ARR_SIZE(v_1, 0), 0), _fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_6 = { hv_0, *k_0 }; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_9 = { hv_0, *k_0 }; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - *FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0) = v_6; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_10 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, self_0->u.t.t5, found_0); + *v_10 = v_9; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_11 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -4856,16 +4813,15 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__i void* fx_fv) { int fx_status = 0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; - FX_CALL( - _fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, - __fold_result___0 & 9223372036854775807ULL, 0), _fx_cleanup); + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)k_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)k_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + FX_CALL(_fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, k_0, h_0 & 9223372036854775807ULL, 0), + _fx_cleanup); _fx_cleanup: ; return fx_status; @@ -4923,27 +4879,34 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM9intersectv2Nt10Hashset__t1R9Ast__id_tNt self_0->u.t.t3 = 0; for (int_ j_0 = 0; j_0 < tabsz_0; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - bool v_9; - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_9 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + bool v_10; + if (v_9->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_10 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_11 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_12 = v_11->key; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_Ta2i v_11; - FX_CALL( - _fx_M15K_remove_unusedFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(b_0, &v_10, - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv, &v_11, 0), _fx_catch_0); - v_9 = v_11.t1 >= 0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_13 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_Ta2i v_14; + FX_CALL(_fx_M15K_remove_unusedFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(b_0, &v_12, v_13->hv, &v_14, 0), + _fx_catch_0); + v_10 = v_14.t1 >= 0; } else { - v_9 = false; + v_10 = false; } - if (v_9) { + if (v_10) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - _fx_R9Ast__id_t v_12 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_15 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_16 = v_15->key; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_0); - FX_CALL( - _fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, &v_12, - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv, 0), _fx_catch_0); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_17 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + FX_CALL(_fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(self_0, &v_16, v_17->hv, 0), + _fx_catch_0); } _fx_catch_0: ; @@ -5292,6 +5255,7 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM9pure_kexpB1N14K_form__kexp_t( _fx_R22K_form__k_fold_callb_t pure_callb_0 = {0}; int fx_status = 0; FX_CALL(_fx_make_rB(true, &ispure_ref_0), _fx_cleanup); + bool* ispure_0 = &ispure_ref_0->data; FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(8, &local_vars_arg_0, 0), _fx_cleanup); FX_CALL(_fx_make_rNt10Hashset__t1R9Ast__id_t(local_vars_arg_0, &local_vars_ref_0), _fx_cleanup); _fx_M15K_remove_unusedFM7make_fpFPv2N14K_form__kexp_tR22K_form__k_fold_callb_t2rBrNt10Hashset__t1R9Ast__id_t(ispure_ref_0, @@ -5307,7 +5271,7 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM9pure_kexpB1N14K_form__kexp_t( &pure_kexp__0, &v_1), _fx_cleanup); _fx_make_R22K_form__k_fold_callb_t(v_0, v_1, _fx_g21K_remove_unused__None, &pure_callb_0); FX_CALL(pure_kexp__0.fp(e_0, &pure_callb_0, pure_kexp__0.fcv), _fx_cleanup); - *fx_result = ispure_ref_0->data; + *fx_result = *ispure_0; _fx_cleanup: ; FX_FREE_REF_SIMPLE(&ispure_ref_0); @@ -5403,17 +5367,17 @@ static int _fx_M15K_remove_unusedFM10pure_kexp_v2N14K_form__kexp_tR22K_form__k_f } if (tag_0 == 21) { _fx_R9Ast__id_t* i_0 = &e_0->u.KExpAssign.t0; - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_2; FX_CALL( _fx_M15K_remove_unusedFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*local_vars_0, i_0, - __fold_result___0 & 9223372036854775807ULL, &v_2, 0), _fx_catch_2); + h_0 & 9223372036854775807ULL, &v_2, 0), _fx_catch_2); if (!(v_2.t1 >= 0)) { *ispure_0 = false; } @@ -5460,16 +5424,16 @@ static int _fx_M15K_remove_unusedFM10pure_kexp_v2N14K_form__kexp_tR22K_form__k_f t_0 = false; } if (t_0) { - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)i_1->m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)i_1->i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)i_1->j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)i_1->m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_1->i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)i_1->j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; FX_CALL( _fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(*local_vars_0, i_1, - __fold_result___1 & 9223372036854775807ULL, 0), _fx_catch_3); + h_1 & 9223372036854775807ULL, 0), _fx_catch_3); } _fx_catch_3: ; @@ -5654,18 +5618,19 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM24reset_purity_flags_kexp_v2N14K_form__k if (FX_REC_VARIANT_TAG(e_0) == 32) { _fx_R17K_form__kdeffun_t v_0 = {0}; _fx_rR17K_form__kdeffun_t df_0 = e_0->u.KDefFun; - _fx_R16Ast__fun_flags_t kf_flags_0 = df_0->data.kf_flags; _fx_R17K_form__kdeffun_t* v_1 = &df_0->data; - _fx_R16Ast__fun_flags_t v_2 = + _fx_R16Ast__fun_flags_t kf_flags_0 = v_1->kf_flags; + _fx_R17K_form__kdeffun_t* v_2 = &df_0->data; + _fx_R16Ast__fun_flags_t v_3 = { -1, kf_flags_0.fun_flag_ccode, kf_flags_0.fun_flag_have_keywords, kf_flags_0.fun_flag_inline, kf_flags_0.fun_flag_nothrow, kf_flags_0.fun_flag_really_nothrow, kf_flags_0.fun_flag_private, kf_flags_0.fun_flag_ctor, kf_flags_0.fun_flag_method_of, kf_flags_0.fun_flag_uses_fv, kf_flags_0.fun_flag_recursive, kf_flags_0.fun_flag_instance }; - _fx_make_R17K_form__kdeffun_t(&v_1->kf_name, &v_1->kf_cname, v_1->kf_params, v_1->kf_rt, v_1->kf_body, &v_2, - &v_1->kf_closure, v_1->kf_scope, &v_1->kf_loc, &v_0); - _fx_R17K_form__kdeffun_t* v_3 = &df_0->data; - _fx_free_R17K_form__kdeffun_t(v_3); - _fx_copy_R17K_form__kdeffun_t(&v_0, v_3); + _fx_make_R17K_form__kdeffun_t(&v_2->kf_name, &v_2->kf_cname, v_2->kf_params, v_2->kf_rt, v_2->kf_body, &v_3, + &v_2->kf_closure, v_2->kf_scope, &v_2->kf_loc, &v_0); + _fx_R17K_form__kdeffun_t* v_4 = &df_0->data; + _fx_free_R17K_form__kdeffun_t(v_4); + _fx_copy_R17K_form__kdeffun_t(&v_0, v_4); _fx_free_R17K_form__kdeffun_t(&v_0); } else { @@ -5782,7 +5747,9 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM13remove_unusedLR17K_form__kmodule_t2LR1 _fx_cleanup); FX_CALL(_fx_make_rRt6Map__t2R9Ast__id_tR9Ast__id_t(&_fx_g16Ast__empty_idmap, &fold_pairs_ref_0), _fx_cleanup); FX_CALL(_fx_make_rB(false, &is_main_ref_0), _fx_cleanup); + bool* is_main_0 = &is_main_ref_0->data; FX_CALL(_fx_make_ri(-1, &curr_m_idx_ref_0), _fx_cleanup); + int_* curr_m_idx_0 = &curr_m_idx_ref_0->data; _fx_M15K_remove_unusedFM7make_fpFPN14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t5rirRt6Map__t2R9Ast__id_tR9Ast__id_tBrBNt10Hashset__t1R9Ast__id_t( curr_m_idx_ref_0, fold_pairs_ref_0, initial_0, is_main_ref_0, used_somewhere_0, &remove_unused_kexp__0); _fx_M15K_remove_unusedFM7make_fpFPLN14K_form__kexp_t8LN14K_form__kexp_tLN14K_form__kexp_tR17K_form__k_callb_trirRt6Map__t2R9Ast__id_tR9Ast__id_tBrBNt10Hashset__t1R9Ast__id_t5rirRt6Map__t2R9Ast__id_tR9Ast__id_tBrBNt10Hashset__t1R9Ast__id_t( @@ -5807,8 +5774,8 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM13remove_unusedLR17K_form__kmodule_t2LR1 bool km_main_0 = km_0->km_main; int_ km_idx_0 = km_0->km_idx; FX_COPY_PTR(km_0->km_top, &km_top_1); - is_main_ref_0->data = km_main_0; - curr_m_idx_ref_0->data = km_idx_0; + *is_main_0 = km_main_0; + *curr_m_idx_0 = km_idx_0; FX_CALL( remove_unused__0.fp(km_top_1, 0, &remove_callb_0, curr_m_idx_ref_0, fold_pairs_ref_0, initial_0, is_main_ref_0, used_somewhere_0, &new_top_0, remove_unused__0.fcv), _fx_catch_2); @@ -5938,6 +5905,7 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f _fx_M15K_remove_unusedFM7make_fpFPLN14K_form__kexp_t8LN14K_form__kexp_tLN14K_form__kexp_tR17K_form__k_callb_trirRt6Map__t2R9Ast__id_tR9Ast__id_tBrBNt10Hashset__t1R9Ast__id_t5rirRt6Map__t2R9Ast__id_tR9Ast__id_tBrBNt10Hashset__t1R9Ast__id_t( curr_m_idx_ref_0, fold_pairs_ref_0, *initial_0, is_main_ref_0, used_somewhere_0, &remove_unused__0); _fx_Rt6Map__t2R9Ast__id_tR9Ast__id_t* fold_pairs_0 = &fold_pairs_ref_0->data; + bool* is_main_0 = &is_main_ref_0->data; int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 31) { _fx_N14K_form__kexp_t e_1 = 0; @@ -6030,17 +5998,17 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_2); - uint64_t __fold_result___0 = 14695981039346656037ULL; - uint64_t h_0 = __fold_result___0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); - __fold_result___0 = h_0 * 1099511628211ULL; - uint64_t h_1 = __fold_result___0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); - __fold_result___0 = h_1 * 1099511628211ULL; - uint64_t h_2 = __fold_result___0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); - __fold_result___0 = h_2 * 1099511628211ULL; + uint64_t h_0 = 14695981039346656037ULL; + h_0 = h_0 ^ ((uint64_t)i_0->m ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->i ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; + h_0 = h_0 ^ ((uint64_t)i_0->j ^ 14695981039346656037ULL); + h_0 = h_0 * 1099511628211ULL; _fx_Ta2i v_12; FX_CALL( _fx_M15K_remove_unusedFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(used_somewhere_0, i_0, - __fold_result___0 & 9223372036854775807ULL, &v_12, 0), _fx_catch_2); + h_0 & 9223372036854775807ULL, &v_12, 0), _fx_catch_2); bool is_really_used_0; if (v_12.t1 >= 0) { is_really_used_0 = true; @@ -6055,6 +6023,7 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f else { FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(i_0, loc_0, &v_0, 0), _fx_catch_2); _fx_copy_R16Ast__val_flags_t(&v_0.kv_flags, &kv_flags_0); + bool v_13; bool t_0; if (*initial_0) { t_0 = _fx_g12Options__opt.W_unused; @@ -6078,14 +6047,13 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f else { t_2 = false; } - bool t_3; if (t_2) { - t_3 = !kv_flags_0.val_flag_tempref; + v_13 = !kv_flags_0.val_flag_tempref; } else { - t_3 = false; + v_13 = false; } - if (t_3) { + if (v_13) { FX_CALL(_fx_M3AstFM2ppS1RM4id_t(i_0, &v_1, 0), _fx_catch_2); fx_str_t slit_0 = FX_MAKE_STR("\'"); fx_str_t slit_1 = FX_MAKE_STR("\' is declared but not used"); @@ -6095,9 +6063,9 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f } FX_CALL(_fx_M3AstFM15compile_warningv2RM5loc_tS(loc_0, &v_2, 0), _fx_catch_2); } - bool v_13; - FX_CALL(_fx_M15K_remove_unusedFM9pure_kexpB1N14K_form__kexp_t(e_1, &v_13, 0), _fx_catch_2); - if (!v_13) { + bool v_14; + FX_CALL(_fx_M15K_remove_unusedFM9pure_kexpB1N14K_form__kexp_t(e_1, &v_14, 0), _fx_catch_2); + if (!v_14) { FX_COPY_PTR(e_1, fx_result); } else { @@ -6118,84 +6086,84 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f _fx_LN12Ast__scope_t kf_scope_0 = 0; _fx_N14K_form__kexp_t kf_body_0 = 0; _fx_N14K_form__kexp_t new_body_0 = 0; - _fx_R17K_form__kdeffun_t v_14 = {0}; - fx_str_t v_15 = {0}; + _fx_R17K_form__kdeffun_t v_15 = {0}; fx_str_t v_16 = {0}; + fx_str_t v_17 = {0}; _fx_rR17K_form__kdeffun_t kf_0 = e_0->u.KDefFun; - _fx_R17K_form__kdeffun_t* v_17 = &kf_0->data; - _fx_R10Ast__loc_t kf_loc_0 = v_17->kf_loc; - FX_COPY_PTR(v_17->kf_scope, &kf_scope_0); - _fx_R16Ast__fun_flags_t kf_flags_0 = v_17->kf_flags; - FX_COPY_PTR(v_17->kf_body, &kf_body_0); - _fx_R9Ast__id_t kf_name_0 = v_17->kf_name; + _fx_R17K_form__kdeffun_t* v_18 = &kf_0->data; + _fx_R10Ast__loc_t kf_loc_0 = v_18->kf_loc; + FX_COPY_PTR(v_18->kf_scope, &kf_scope_0); + _fx_R16Ast__fun_flags_t kf_flags_0 = v_18->kf_flags; + FX_COPY_PTR(v_18->kf_body, &kf_body_0); + _fx_R9Ast__id_t kf_name_0 = v_18->kf_name; FX_CALL(_fx_M15K_remove_unusedFM11check_m_idxv3R9Ast__id_tR10Ast__loc_tri(&kf_name_0, &kf_loc_0, curr_m_idx_ref_0, 0), _fx_catch_3); - uint64_t __fold_result___1 = 14695981039346656037ULL; - uint64_t h_3 = __fold_result___1 ^ ((uint64_t)kf_name_0.m ^ 14695981039346656037ULL); - __fold_result___1 = h_3 * 1099511628211ULL; - uint64_t h_4 = __fold_result___1 ^ ((uint64_t)kf_name_0.i ^ 14695981039346656037ULL); - __fold_result___1 = h_4 * 1099511628211ULL; - uint64_t h_5 = __fold_result___1 ^ ((uint64_t)kf_name_0.j ^ 14695981039346656037ULL); - __fold_result___1 = h_5 * 1099511628211ULL; - _fx_Ta2i v_18; + uint64_t h_1 = 14695981039346656037ULL; + h_1 = h_1 ^ ((uint64_t)kf_name_0.m ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)kf_name_0.i ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + h_1 = h_1 ^ ((uint64_t)kf_name_0.j ^ 14695981039346656037ULL); + h_1 = h_1 * 1099511628211ULL; + _fx_Ta2i v_19; FX_CALL( _fx_M15K_remove_unusedFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(used_somewhere_0, &kf_name_0, - __fold_result___1 & 9223372036854775807ULL, &v_18, 0), _fx_catch_3); - if (v_18.t1 >= 0) { + h_1 & 9223372036854775807ULL, &v_19, 0), _fx_catch_3); + if (v_19.t1 >= 0) { FX_CALL( _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_form__kexp_tR17K_form__k_callb_t(kf_body_0, callb_0, &new_body_0, fx_fv), _fx_catch_3); - _fx_R17K_form__kdeffun_t* v_19 = &kf_0->data; - _fx_make_R17K_form__kdeffun_t(&v_19->kf_name, &v_19->kf_cname, v_19->kf_params, v_19->kf_rt, new_body_0, - &v_19->kf_flags, &v_19->kf_closure, v_19->kf_scope, &v_19->kf_loc, &v_14); _fx_R17K_form__kdeffun_t* v_20 = &kf_0->data; - _fx_free_R17K_form__kdeffun_t(v_20); - _fx_copy_R17K_form__kdeffun_t(&v_14, v_20); + _fx_make_R17K_form__kdeffun_t(&v_20->kf_name, &v_20->kf_cname, v_20->kf_params, v_20->kf_rt, new_body_0, + &v_20->kf_flags, &v_20->kf_closure, v_20->kf_scope, &v_20->kf_loc, &v_15); + _fx_R17K_form__kdeffun_t* v_21 = &kf_0->data; + _fx_free_R17K_form__kdeffun_t(v_21); + _fx_copy_R17K_form__kdeffun_t(&v_15, v_21); FX_COPY_PTR(e_0, fx_result); } else { - bool t_4; + bool v_22; + bool t_3; if (*initial_0) { - t_4 = _fx_g12Options__opt.W_unused; + t_3 = _fx_g12Options__opt.W_unused; } else { - t_4 = false; + t_3 = false; } - bool t_5; - if (t_4) { + bool t_4; + if (t_3) { bool res_2; FX_CALL(_fx_M3AstFM15is_global_scopeB1LN12Ast__scope_t(kf_scope_0, &res_2, 0), _fx_catch_3); - t_5 = !res_2; + t_4 = !res_2; } else { - t_5 = false; + t_4 = false; } - bool t_6; - if (t_5) { + if (t_4) { bool res_3; FX_CALL(_fx_M3AstFM14is_constructorB1RM11fun_flags_t(&kf_flags_0, &res_3, 0), _fx_catch_3); - t_6 = !res_3; + v_22 = !res_3; } else { - t_6 = false; + v_22 = false; } - if (t_6) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&kf_name_0, &v_15, 0), _fx_catch_3); + if (v_22) { + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&kf_name_0, &v_16, 0), _fx_catch_3); fx_str_t slit_2 = FX_MAKE_STR("local function \'"); fx_str_t slit_3 = FX_MAKE_STR("\' is declared but not used"); { - const fx_str_t strs_1[] = { slit_2, v_15, slit_3 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_16), _fx_catch_3); + const fx_str_t strs_1[] = { slit_2, v_16, slit_3 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_17), _fx_catch_3); } - FX_CALL(_fx_M3AstFM15compile_warningv2RM5loc_tS(&kf_loc_0, &v_16, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM15compile_warningv2RM5loc_tS(&kf_loc_0, &v_17, 0), _fx_catch_3); } FX_CALL(_fx_M6K_formFM7KExpNopN14K_form__kexp_t1R10Ast__loc_t(&kf_loc_0, fx_result), _fx_catch_3); } _fx_catch_3: ; + FX_FREE_STR(&v_17); FX_FREE_STR(&v_16); - FX_FREE_STR(&v_15); - _fx_free_R17K_form__kdeffun_t(&v_14); + _fx_free_R17K_form__kdeffun_t(&v_15); if (new_body_0) { _fx_free_N14K_form__kexp_t(&new_body_0); } @@ -6205,30 +6173,30 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f FX_FREE_LIST_SIMPLE(&kf_scope_0); } else if (tag_0 == 33) { - _fx_R17K_form__kdefexn_t* v_21 = &e_0->u.KDefExn->data; - _fx_R10Ast__loc_t ke_loc_0 = v_21->ke_loc; - _fx_R9Ast__id_t ke_name_0 = v_21->ke_name; + _fx_R17K_form__kdefexn_t* v_23 = &e_0->u.KDefExn->data; + _fx_R10Ast__loc_t ke_loc_0 = v_23->ke_loc; + _fx_R9Ast__id_t ke_name_0 = v_23->ke_name; FX_CALL(_fx_M15K_remove_unusedFM11check_m_idxv3R9Ast__id_tR10Ast__loc_tri(&ke_name_0, &ke_loc_0, curr_m_idx_ref_0, 0), _fx_catch_4); - uint64_t __fold_result___2 = 14695981039346656037ULL; - uint64_t h_6 = __fold_result___2 ^ ((uint64_t)ke_name_0.m ^ 14695981039346656037ULL); - __fold_result___2 = h_6 * 1099511628211ULL; - uint64_t h_7 = __fold_result___2 ^ ((uint64_t)ke_name_0.i ^ 14695981039346656037ULL); - __fold_result___2 = h_7 * 1099511628211ULL; - uint64_t h_8 = __fold_result___2 ^ ((uint64_t)ke_name_0.j ^ 14695981039346656037ULL); - __fold_result___2 = h_8 * 1099511628211ULL; - _fx_Ta2i v_22; + uint64_t h_2 = 14695981039346656037ULL; + h_2 = h_2 ^ ((uint64_t)ke_name_0.m ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)ke_name_0.i ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + h_2 = h_2 ^ ((uint64_t)ke_name_0.j ^ 14695981039346656037ULL); + h_2 = h_2 * 1099511628211ULL; + _fx_Ta2i v_24; FX_CALL( _fx_M15K_remove_unusedFM9find_idx_Ta2i3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(used_somewhere_0, &ke_name_0, - __fold_result___2 & 9223372036854775807ULL, &v_22, 0), _fx_catch_4); - bool t_7; - if (v_22.t1 >= 0) { - t_7 = true; + h_2 & 9223372036854775807ULL, &v_24, 0), _fx_catch_4); + bool t_5; + if (v_24.t1 >= 0) { + t_5 = true; } else { - t_7 = !is_main_ref_0->data; + t_5 = !*is_main_0; } - if (t_7) { + if (t_5) { FX_COPY_PTR(e_0, fx_result); } else { @@ -6238,15 +6206,15 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f _fx_catch_4: ; } else if (tag_0 == 34) { - _fx_R21K_form__kdefvariant_t* v_23 = &e_0->u.KDefVariant->data; - _fx_R10Ast__loc_t kvar_loc_0 = v_23->kvar_loc; - _fx_R9Ast__id_t kvar_name_0 = v_23->kvar_name; + _fx_R21K_form__kdefvariant_t* v_25 = &e_0->u.KDefVariant->data; + _fx_R10Ast__loc_t kvar_loc_0 = v_25->kvar_loc; + _fx_R9Ast__id_t kvar_name_0 = v_25->kvar_name; FX_CALL(_fx_M15K_remove_unusedFM11check_m_idxv3R9Ast__id_tR10Ast__loc_tri(&kvar_name_0, &kvar_loc_0, curr_m_idx_ref_0, 0), _fx_catch_5); - bool v_24; - FX_CALL(_fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(used_somewhere_0, &kvar_name_0, &v_24, 0), + bool v_26; + FX_CALL(_fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(used_somewhere_0, &kvar_name_0, &v_26, 0), _fx_catch_5); - if (v_24) { + if (v_26) { FX_COPY_PTR(e_0, fx_result); } else { @@ -6256,15 +6224,15 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f _fx_catch_5: ; } else if (tag_0 == 36) { - _fx_R17K_form__kdeftyp_t* v_25 = &e_0->u.KDefTyp->data; - _fx_R10Ast__loc_t kt_loc_0 = v_25->kt_loc; - _fx_R9Ast__id_t kt_name_0 = v_25->kt_name; + _fx_R17K_form__kdeftyp_t* v_27 = &e_0->u.KDefTyp->data; + _fx_R10Ast__loc_t kt_loc_0 = v_27->kt_loc; + _fx_R9Ast__id_t kt_name_0 = v_27->kt_name; FX_CALL(_fx_M15K_remove_unusedFM11check_m_idxv3R9Ast__id_tR10Ast__loc_tri(&kt_name_0, &kt_loc_0, curr_m_idx_ref_0, 0), _fx_catch_6); - bool v_26; - FX_CALL(_fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(used_somewhere_0, &kt_name_0, &v_26, 0), + bool v_28; + FX_CALL(_fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(used_somewhere_0, &kt_name_0, &v_28, 0), _fx_catch_6); - if (v_26) { + if (v_28) { FX_COPY_PTR(e_0, fx_result); } else { @@ -6274,15 +6242,15 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f _fx_catch_6: ; } else if (tag_0 == 35) { - _fx_R23K_form__kdefinterface_t* v_27 = &e_0->u.KDefInterface->data; - _fx_R10Ast__loc_t ki_loc_0 = v_27->ki_loc; - _fx_R9Ast__id_t ki_name_0 = v_27->ki_name; + _fx_R23K_form__kdefinterface_t* v_29 = &e_0->u.KDefInterface->data; + _fx_R10Ast__loc_t ki_loc_0 = v_29->ki_loc; + _fx_R9Ast__id_t ki_name_0 = v_29->ki_name; FX_CALL(_fx_M15K_remove_unusedFM11check_m_idxv3R9Ast__id_tR10Ast__loc_tri(&ki_name_0, &ki_loc_0, curr_m_idx_ref_0, 0), _fx_catch_7); - bool v_28; - FX_CALL(_fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(used_somewhere_0, &ki_name_0, &v_28, 0), + bool v_30; + FX_CALL(_fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(used_somewhere_0, &ki_name_0, &v_30, 0), _fx_catch_7); - if (v_28) { + if (v_30) { FX_COPY_PTR(e_0, fx_result); } else { @@ -6292,15 +6260,15 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f _fx_catch_7: ; } else if (tag_0 == 37) { - _fx_R25K_form__kdefclosurevars_t* v_29 = &e_0->u.KDefClosureVars->data; - _fx_R10Ast__loc_t kcv_loc_0 = v_29->kcv_loc; - _fx_R9Ast__id_t kcv_name_0 = v_29->kcv_name; + _fx_R25K_form__kdefclosurevars_t* v_31 = &e_0->u.KDefClosureVars->data; + _fx_R10Ast__loc_t kcv_loc_0 = v_31->kcv_loc; + _fx_R9Ast__id_t kcv_name_0 = v_31->kcv_name; FX_CALL(_fx_M15K_remove_unusedFM11check_m_idxv3R9Ast__id_tR10Ast__loc_tri(&kcv_name_0, &kcv_loc_0, curr_m_idx_ref_0, 0), _fx_catch_8); - bool v_30; - FX_CALL(_fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(used_somewhere_0, &kcv_name_0, &v_30, 0), + bool v_32; + FX_CALL(_fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(used_somewhere_0, &kcv_name_0, &v_32, 0), _fx_catch_8); - if (v_30) { + if (v_32) { FX_COPY_PTR(e_0, fx_result); } else { @@ -6311,8 +6279,8 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f } else if (tag_0 == 10) { _fx_LN14K_form__kexp_t code_0 = 0; - _fx_LN14K_form__kexp_t __fold_result___3 = 0; - _fx_LN14K_form__kexp_t v_31 = 0; + _fx_LN14K_form__kexp_t res_4 = 0; + _fx_LN14K_form__kexp_t v_33 = 0; _fx_T2LN14K_form__kexp_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_2 = &e_0->u.KExpSeq; _fx_R10Ast__loc_t* loc_1 = &vcase_2->t1.t1; FX_CALL( @@ -6320,42 +6288,41 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f used_somewhere_0, &code_0, remove_unused__0.fcv), _fx_catch_12); _fx_LN14K_form__kexp_t lst_0 = code_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_34 = 0; _fx_N14K_form__kexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___3, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_9); - _fx_free_LN14K_form__kexp_t(&__fold_result___3); - FX_COPY_PTR(r_0, &__fold_result___3); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_4, true, &v_34), _fx_catch_9); + _fx_free_LN14K_form__kexp_t(&res_4); + FX_COPY_PTR(v_34, &res_4); _fx_catch_9: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_34) { + _fx_free_LN14K_form__kexp_t(&v_34); } FX_CHECK_EXN(_fx_catch_12); } - FX_COPY_PTR(__fold_result___3, &v_31); - if (v_31 != 0) { - _fx_LN14K_form__kexp_t v_32 = v_31->tl; - if (v_32 != 0) { - _fx_N14K_form__kexp_t v_33 = v_32->hd; - if (FX_REC_VARIANT_TAG(v_33) == 31) { - _fx_T3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t* vcase_3 = &v_33->u.KDefVal; - _fx_N14K_form__kexp_t v_34 = v_31->hd; - if (FX_REC_VARIANT_TAG(v_34) == 5) { - _fx_N14K_form__atom_t* v_35 = &v_34->u.KExpAtom.t0; - if (v_35->tag == 1) { - bool res_4; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&vcase_3->t0, &v_35->u.AtomId, &res_4, 0), _fx_catch_12); - if (res_4) { - _fx_LN14K_form__kexp_t v_36 = 0; - FX_CALL(_fx_cons_LN14K_form__kexp_t(vcase_3->t1, v_32->tl, true, &v_36), _fx_catch_10); + FX_COPY_PTR(res_4, &v_33); + if (v_33 != 0) { + _fx_LN14K_form__kexp_t v_35 = v_33->tl; + if (v_35 != 0) { + _fx_N14K_form__kexp_t v_36 = v_35->hd; + if (FX_REC_VARIANT_TAG(v_36) == 31) { + _fx_T3R9Ast__id_tN14K_form__kexp_tR10Ast__loc_t* vcase_3 = &v_36->u.KDefVal; + _fx_N14K_form__kexp_t v_37 = v_33->hd; + if (FX_REC_VARIANT_TAG(v_37) == 5) { + _fx_N14K_form__atom_t* v_38 = &v_37->u.KExpAtom.t0; + if (v_38->tag == 1) { + bool res_5; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&vcase_3->t0, &v_38->u.AtomId, &res_5, 0), _fx_catch_12); + if (res_5) { + _fx_LN14K_form__kexp_t v_39 = 0; + FX_CALL(_fx_cons_LN14K_form__kexp_t(vcase_3->t1, v_35->tl, true, &v_39), _fx_catch_10); FX_CALL( - _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_36, loc_1, fx_result, + _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_39, loc_1, fx_result, 0), _fx_catch_10); _fx_catch_10: ; - if (v_36) { - _fx_free_LN14K_form__kexp_t(&v_36); + if (v_39) { + _fx_free_LN14K_form__kexp_t(&v_39); } goto _fx_endmatch_2; } @@ -6373,11 +6340,11 @@ static int _fx_M15K_remove_unusedFM19remove_unused_kexp_N14K_form__kexp_t2N14K_f FX_CHECK_EXN(_fx_catch_12); _fx_catch_12: ; - if (v_31) { - _fx_free_LN14K_form__kexp_t(&v_31); + if (v_33) { + _fx_free_LN14K_form__kexp_t(&v_33); } - if (__fold_result___3) { - _fx_free_LN14K_form__kexp_t(&__fold_result___3); + if (res_4) { + _fx_free_LN14K_form__kexp_t(&res_4); } if (code_0) { _fx_free_LN14K_form__kexp_t(&code_0); @@ -6632,24 +6599,23 @@ static int } } else { - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_2 = 0; _fx_LN14K_form__kexp_t result_7 = 0; _fx_LN14K_form__kexp_t lst_0 = result_3; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t r_1 = 0; + _fx_LN14K_form__kexp_t v_7 = 0; _fx_N14K_form__kexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_1, false, &r_1), _fx_catch_7); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_1, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_2, true, &v_7), _fx_catch_7); + _fx_free_LN14K_form__kexp_t(&res_2); + FX_COPY_PTR(v_7, &res_2); _fx_catch_7: ; - if (r_1) { - _fx_free_LN14K_form__kexp_t(&r_1); + if (v_7) { + _fx_free_LN14K_form__kexp_t(&v_7); } FX_CHECK_EXN(_fx_catch_8); } - FX_COPY_PTR(__fold_result___0, &result_7); + FX_COPY_PTR(res_2, &result_7); _fx_free_LN14K_form__kexp_t(&result_1); FX_COPY_PTR(result_7, &result_1); FX_BREAK(_fx_catch_8); @@ -6658,8 +6624,8 @@ static int if (result_7) { _fx_free_LN14K_form__kexp_t(&result_7); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_2) { + _fx_free_LN14K_form__kexp_t(&res_2); } } FX_CHECK_EXN(_fx_catch_9); @@ -6736,8 +6702,9 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM21remove_unused_by_mainLR17K_form__kmodu _fx_Nt10Hashset__t1R9Ast__id_t used_by_actions_0 = 0; fx_arr_t table_0 = {0}; _fx_LR9Ast__id_t v_6 = 0; - _fx_Nt6option1Nt10Hashset__t1R9Ast__id_t v_7 = {0}; - _fx_Nt10Hashset__t1R9Ast__id_t v_8 = 0; + _fx_LR9Ast__id_t v_7 = 0; + _fx_Nt6option1Nt10Hashset__t1R9Ast__id_t v_8 = {0}; + _fx_Nt10Hashset__t1R9Ast__id_t v_9 = 0; _fx_Nt10Hashset__t1R9Ast__id_t all_main_deps_1 = 0; int fx_status = 0; FX_CALL(_fx_M3AstFM16empty_id_hashsetNt10Hashset__t1RM4id_t1i(1024, &all_main_ids_0, 0), _fx_cleanup); @@ -6753,181 +6720,181 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM21remove_unused_by_mainLR17K_form__kmodu _fx_N14K_form__kexp_t e_0 = lst_1->hd; int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 31) { - _fx_T2R9Ast__id_tN14K_form__kexp_t v_9 = {0}; - _fx_LT2R9Ast__id_tN14K_form__kexp_t v_10 = 0; + _fx_T2R9Ast__id_tN14K_form__kexp_t v_10 = {0}; + _fx_LT2R9Ast__id_tN14K_form__kexp_t v_11 = 0; _fx_R9Ast__id_t* n_0 = &e_0->u.KDefVal.t0; FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_top_ids_0, n_0, 0), _fx_catch_0); - _fx_make_T2R9Ast__id_tN14K_form__kexp_t(n_0, e_0, &v_9); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_9, all_top_0, true, &v_10), _fx_catch_0); + _fx_make_T2R9Ast__id_tN14K_form__kexp_t(n_0, e_0, &v_10); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_10, all_top_0, true, &v_11), _fx_catch_0); _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&all_top_0); - FX_COPY_PTR(v_10, &all_top_0); + FX_COPY_PTR(v_11, &all_top_0); if (km_main_0) { FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_ids_0, n_0, 0), _fx_catch_0); } _fx_catch_0: ; - if (v_10) { - _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_10); + if (v_11) { + _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_11); } - _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_9); + _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_10); } else if (tag_0 == 32) { - _fx_R17K_form__kdeffun_t v_11 = {0}; - _fx_T2R9Ast__id_tN14K_form__kexp_t v_12 = {0}; - _fx_LT2R9Ast__id_tN14K_form__kexp_t v_13 = 0; - _fx_copy_R17K_form__kdeffun_t(&e_0->u.KDefFun->data, &v_11); - _fx_R9Ast__id_t* kf_name_0 = &v_11.kf_name; + _fx_R17K_form__kdeffun_t v_12 = {0}; + _fx_T2R9Ast__id_tN14K_form__kexp_t v_13 = {0}; + _fx_LT2R9Ast__id_tN14K_form__kexp_t v_14 = 0; + _fx_copy_R17K_form__kdeffun_t(&e_0->u.KDefFun->data, &v_12); + _fx_R9Ast__id_t* kf_name_0 = &v_12.kf_name; FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_top_ids_0, kf_name_0, 0), _fx_catch_1); - _fx_make_T2R9Ast__id_tN14K_form__kexp_t(kf_name_0, e_0, &v_12); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_12, all_top_0, true, &v_13), _fx_catch_1); + _fx_make_T2R9Ast__id_tN14K_form__kexp_t(kf_name_0, e_0, &v_13); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_13, all_top_0, true, &v_14), _fx_catch_1); _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&all_top_0); - FX_COPY_PTR(v_13, &all_top_0); + FX_COPY_PTR(v_14, &all_top_0); if (km_main_0) { FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_ids_0, kf_name_0, 0), _fx_catch_1); } _fx_catch_1: ; - if (v_13) { - _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_13); + if (v_14) { + _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_14); } - _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_12); - _fx_free_R17K_form__kdeffun_t(&v_11); + _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_13); + _fx_free_R17K_form__kdeffun_t(&v_12); } else if (tag_0 == 36) { - _fx_R17K_form__kdeftyp_t v_14 = {0}; - _fx_T2R9Ast__id_tN14K_form__kexp_t v_15 = {0}; - _fx_LT2R9Ast__id_tN14K_form__kexp_t v_16 = 0; - _fx_copy_R17K_form__kdeftyp_t(&e_0->u.KDefTyp->data, &v_14); - _fx_R9Ast__id_t* kt_name_0 = &v_14.kt_name; + _fx_R17K_form__kdeftyp_t v_15 = {0}; + _fx_T2R9Ast__id_tN14K_form__kexp_t v_16 = {0}; + _fx_LT2R9Ast__id_tN14K_form__kexp_t v_17 = 0; + _fx_copy_R17K_form__kdeftyp_t(&e_0->u.KDefTyp->data, &v_15); + _fx_R9Ast__id_t* kt_name_0 = &v_15.kt_name; FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_top_ids_0, kt_name_0, 0), _fx_catch_2); - _fx_make_T2R9Ast__id_tN14K_form__kexp_t(kt_name_0, e_0, &v_15); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_15, all_top_0, true, &v_16), _fx_catch_2); + _fx_make_T2R9Ast__id_tN14K_form__kexp_t(kt_name_0, e_0, &v_16); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_16, all_top_0, true, &v_17), _fx_catch_2); _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&all_top_0); - FX_COPY_PTR(v_16, &all_top_0); + FX_COPY_PTR(v_17, &all_top_0); if (km_main_0) { FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_ids_0, kt_name_0, 0), _fx_catch_2); } _fx_catch_2: ; - if (v_16) { - _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_16); + if (v_17) { + _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_17); } - _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_15); - _fx_free_R17K_form__kdeftyp_t(&v_14); + _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_16); + _fx_free_R17K_form__kdeftyp_t(&v_15); } else if (tag_0 == 34) { - _fx_R21K_form__kdefvariant_t v_17 = {0}; - _fx_T2R9Ast__id_tN14K_form__kexp_t v_18 = {0}; - _fx_LT2R9Ast__id_tN14K_form__kexp_t v_19 = 0; - _fx_copy_R21K_form__kdefvariant_t(&e_0->u.KDefVariant->data, &v_17); - _fx_R9Ast__id_t* kvar_name_0 = &v_17.kvar_name; + _fx_R21K_form__kdefvariant_t v_18 = {0}; + _fx_T2R9Ast__id_tN14K_form__kexp_t v_19 = {0}; + _fx_LT2R9Ast__id_tN14K_form__kexp_t v_20 = 0; + _fx_copy_R21K_form__kdefvariant_t(&e_0->u.KDefVariant->data, &v_18); + _fx_R9Ast__id_t* kvar_name_0 = &v_18.kvar_name; FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_top_ids_0, kvar_name_0, 0), _fx_catch_3); - _fx_make_T2R9Ast__id_tN14K_form__kexp_t(kvar_name_0, e_0, &v_18); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_18, all_top_0, true, &v_19), _fx_catch_3); + _fx_make_T2R9Ast__id_tN14K_form__kexp_t(kvar_name_0, e_0, &v_19); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_19, all_top_0, true, &v_20), _fx_catch_3); _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&all_top_0); - FX_COPY_PTR(v_19, &all_top_0); + FX_COPY_PTR(v_20, &all_top_0); if (km_main_0) { FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_ids_0, kvar_name_0, 0), _fx_catch_3); } _fx_catch_3: ; - if (v_19) { - _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_19); + if (v_20) { + _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_20); } - _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_18); - _fx_free_R21K_form__kdefvariant_t(&v_17); + _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_19); + _fx_free_R21K_form__kdefvariant_t(&v_18); } else if (tag_0 == 35) { - _fx_R23K_form__kdefinterface_t v_20 = {0}; - _fx_T2R9Ast__id_tN14K_form__kexp_t v_21 = {0}; - _fx_LT2R9Ast__id_tN14K_form__kexp_t v_22 = 0; - _fx_copy_R23K_form__kdefinterface_t(&e_0->u.KDefInterface->data, &v_20); - _fx_R9Ast__id_t* ki_name_0 = &v_20.ki_name; + _fx_R23K_form__kdefinterface_t v_21 = {0}; + _fx_T2R9Ast__id_tN14K_form__kexp_t v_22 = {0}; + _fx_LT2R9Ast__id_tN14K_form__kexp_t v_23 = 0; + _fx_copy_R23K_form__kdefinterface_t(&e_0->u.KDefInterface->data, &v_21); + _fx_R9Ast__id_t* ki_name_0 = &v_21.ki_name; FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_top_ids_0, ki_name_0, 0), _fx_catch_4); - _fx_make_T2R9Ast__id_tN14K_form__kexp_t(ki_name_0, e_0, &v_21); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_21, all_top_0, true, &v_22), _fx_catch_4); + _fx_make_T2R9Ast__id_tN14K_form__kexp_t(ki_name_0, e_0, &v_22); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_22, all_top_0, true, &v_23), _fx_catch_4); _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&all_top_0); - FX_COPY_PTR(v_22, &all_top_0); + FX_COPY_PTR(v_23, &all_top_0); if (km_main_0) { FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_ids_0, ki_name_0, 0), _fx_catch_4); } _fx_catch_4: ; - if (v_22) { - _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_22); + if (v_23) { + _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_23); } - _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_21); - _fx_free_R23K_form__kdefinterface_t(&v_20); + _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_22); + _fx_free_R23K_form__kdefinterface_t(&v_21); } else if (tag_0 == 37) { - _fx_R25K_form__kdefclosurevars_t v_23 = {0}; - _fx_T2R9Ast__id_tN14K_form__kexp_t v_24 = {0}; - _fx_LT2R9Ast__id_tN14K_form__kexp_t v_25 = 0; - _fx_copy_R25K_form__kdefclosurevars_t(&e_0->u.KDefClosureVars->data, &v_23); - _fx_R9Ast__id_t* kcv_name_0 = &v_23.kcv_name; + _fx_R25K_form__kdefclosurevars_t v_24 = {0}; + _fx_T2R9Ast__id_tN14K_form__kexp_t v_25 = {0}; + _fx_LT2R9Ast__id_tN14K_form__kexp_t v_26 = 0; + _fx_copy_R25K_form__kdefclosurevars_t(&e_0->u.KDefClosureVars->data, &v_24); + _fx_R9Ast__id_t* kcv_name_0 = &v_24.kcv_name; FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_top_ids_0, kcv_name_0, 0), _fx_catch_5); - _fx_make_T2R9Ast__id_tN14K_form__kexp_t(kcv_name_0, e_0, &v_24); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_24, all_top_0, true, &v_25), _fx_catch_5); + _fx_make_T2R9Ast__id_tN14K_form__kexp_t(kcv_name_0, e_0, &v_25); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_25, all_top_0, true, &v_26), _fx_catch_5); _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&all_top_0); - FX_COPY_PTR(v_25, &all_top_0); + FX_COPY_PTR(v_26, &all_top_0); if (km_main_0) { FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_ids_0, kcv_name_0, 0), _fx_catch_5); } _fx_catch_5: ; - if (v_25) { - _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_25); + if (v_26) { + _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_26); } - _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_24); - _fx_free_R25K_form__kdefclosurevars_t(&v_23); + _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_25); + _fx_free_R25K_form__kdefclosurevars_t(&v_24); } else if (tag_0 == 33) { - _fx_R17K_form__kdefexn_t v_26 = {0}; - _fx_T2R9Ast__id_tN14K_form__kexp_t v_27 = {0}; - _fx_LT2R9Ast__id_tN14K_form__kexp_t v_28 = 0; - _fx_copy_R17K_form__kdefexn_t(&e_0->u.KDefExn->data, &v_26); - _fx_R9Ast__id_t* ke_tag_0 = &v_26.ke_tag; - _fx_R9Ast__id_t* ke_name_0 = &v_26.ke_name; + _fx_R17K_form__kdefexn_t v_27 = {0}; + _fx_T2R9Ast__id_tN14K_form__kexp_t v_28 = {0}; + _fx_LT2R9Ast__id_tN14K_form__kexp_t v_29 = 0; + _fx_copy_R17K_form__kdefexn_t(&e_0->u.KDefExn->data, &v_27); + _fx_R9Ast__id_t* ke_tag_0 = &v_27.ke_tag; + _fx_R9Ast__id_t* ke_name_0 = &v_27.ke_name; FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_top_ids_0, ke_name_0, 0), _fx_catch_6); FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_top_ids_0, ke_tag_0, 0), _fx_catch_6); - _fx_make_T2R9Ast__id_tN14K_form__kexp_t(ke_name_0, e_0, &v_27); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_27, all_top_0, true, &v_28), _fx_catch_6); + _fx_make_T2R9Ast__id_tN14K_form__kexp_t(ke_name_0, e_0, &v_28); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__kexp_t(&v_28, all_top_0, true, &v_29), _fx_catch_6); _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&all_top_0); - FX_COPY_PTR(v_28, &all_top_0); + FX_COPY_PTR(v_29, &all_top_0); FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_ids_0, ke_name_0, 0), _fx_catch_6); FX_CALL(_fx_M15K_remove_unusedFM3addv2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_ids_0, ke_tag_0, 0), _fx_catch_6); _fx_catch_6: ; - if (v_28) { - _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_28); + if (v_29) { + _fx_free_LT2R9Ast__id_tN14K_form__kexp_t(&v_29); } - _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_27); - _fx_free_R17K_form__kdefexn_t(&v_26); + _fx_free_T2R9Ast__id_tN14K_form__kexp_t(&v_28); + _fx_free_R17K_form__kdefexn_t(&v_27); } else { - _fx_LN14K_form__kexp_t v_29 = 0; - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_0, all_actions_0, true, &v_29), _fx_catch_7); + _fx_LN14K_form__kexp_t v_30 = 0; + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_0, all_actions_0, true, &v_30), _fx_catch_7); _fx_free_LN14K_form__kexp_t(&all_actions_0); - FX_COPY_PTR(v_29, &all_actions_0); + FX_COPY_PTR(v_30, &all_actions_0); _fx_catch_7: ; - if (v_29) { - _fx_free_LN14K_form__kexp_t(&v_29); + if (v_30) { + _fx_free_LN14K_form__kexp_t(&v_30); } } FX_CHECK_EXN(_fx_catch_8); @@ -6969,45 +6936,46 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM21remove_unused_by_mainLR17K_form__kmodu _fx_LT2R9Ast__id_tN14K_form__kexp_t lst_2 = all_top_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_N14K_form__kexp_t e_1 = 0; - _fx_LN14K_form__kexp_t v_30 = 0; + _fx_LN14K_form__kexp_t v_31 = 0; _fx_Nt10Hashset__t1R9Ast__id_t deps_0 = 0; - _fx_Nt10Hashset__t1R9Ast__id_t v_31 = 0; + _fx_Nt10Hashset__t1R9Ast__id_t v_32 = 0; _fx_T2R9Ast__id_tN14K_form__kexp_t* __pat___0 = &lst_2->hd; _fx_R9Ast__id_t n_2 = __pat___0->t0; FX_COPY_PTR(__pat___0->t1, &e_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_1, 0, true, &v_30), _fx_catch_10); - FX_CALL(_fx_M6K_formFM7used_byNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_30, 16, &deps_0, 0), _fx_catch_10); + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_1, 0, true, &v_31), _fx_catch_10); + FX_CALL(_fx_M6K_formFM7used_byNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(v_31, 16, &deps_0, 0), _fx_catch_10); FX_CALL( _fx_M15K_remove_unusedFM9intersectv2Nt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_t(deps_0, all_top_ids_0, 0), _fx_catch_10); - FX_CALL(_fx_M15K_remove_unusedFM8compressNt10Hashset__t1R9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(deps_0, &v_31, 0), + FX_CALL(_fx_M15K_remove_unusedFM8compressNt10Hashset__t1R9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(deps_0, &v_32, 0), _fx_catch_10); int_ idx_0; FX_CALL( _fx_M15K_remove_unusedFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tR9Ast__id_t( all_deps_0, &n_2, &idx_0, 0), _fx_catch_10); FX_CHKIDX(FX_CHKIDX1(all_deps_0->u.t.t5, 0, idx_0), _fx_catch_10); - _fx_Nt10Hashset__t1R9Ast__id_t* v_32 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, all_deps_0->u.t.t5, idx_0)->data; - _fx_free_Nt10Hashset__t1R9Ast__id_t(v_32); - FX_COPY_PTR(v_31, v_32); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_33 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, all_deps_0->u.t.t5, idx_0); + _fx_Nt10Hashset__t1R9Ast__id_t* v_34 = &v_33->data; + _fx_free_Nt10Hashset__t1R9Ast__id_t(v_34); + FX_COPY_PTR(v_32, v_34); _fx_catch_10: ; - if (v_31) { - _fx_free_Nt10Hashset__t1R9Ast__id_t(&v_31); + if (v_32) { + _fx_free_Nt10Hashset__t1R9Ast__id_t(&v_32); } if (deps_0) { _fx_free_Nt10Hashset__t1R9Ast__id_t(&deps_0); } - if (v_30) { - _fx_free_LN14K_form__kexp_t(&v_30); + if (v_31) { + _fx_free_LN14K_form__kexp_t(&v_31); } if (e_1) { _fx_free_N14K_form__kexp_t(&e_1); } FX_CHECK_EXN(_fx_cleanup); } - _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_33 = all_main_ids_0->u.t.t0; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t v_35 = all_main_ids_0->u.t.t0; fx_copy_arr(&all_main_ids_0->u.t.t4, &v_2); int_* dstptr_1 = 0; int_ ni_0 = FX_ARR_SIZE(v_2, 0); @@ -7034,7 +7002,7 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM21remove_unused_by_mainLR17K_form__kmodu } FX_CALL( _fx_M15K_remove_unusedFM1tNt10Hashset__t1R9Ast__id_t6Rt24Hashset__hashset_entry_t1R9Ast__id_tiiiA1iA1Rt24Hashset__hashset_entry_t1R9Ast__id_t( - &v_33, all_main_ids_0->u.t.t1, all_main_ids_0->u.t.t2, all_main_ids_0->u.t.t3, &v_3, &v_5, &all_main_deps_0), + &v_35, all_main_ids_0->u.t.t1, all_main_ids_0->u.t.t2, all_main_ids_0->u.t.t3, &v_3, &v_5, &all_main_deps_0), _fx_cleanup); FX_CALL(_fx_M6K_formFM7used_byNt10Hashset__t1R9Ast__id_t2LN14K_form__kexp_ti(all_actions_0, 1024, &used_by_actions_0, 0), _fx_cleanup); @@ -7042,16 +7010,21 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM21remove_unused_by_mainLR17K_form__kmodu _fx_M15K_remove_unusedFM9intersectv2Nt10Hashset__t1R9Ast__id_tNt10Hashset__t1R9Ast__id_t(used_by_actions_0, all_top_ids_0, 0), _fx_cleanup); fx_copy_arr(&used_by_actions_0->u.t.t5, &table_0); - int_ v_34 = used_by_actions_0->u.t.t2; - for (int_ j_0 = 0; j_0 < v_34; j_0++) { + int_ v_36 = used_by_actions_0->u.t.t2; + for (int_ j_0 = 0; j_0 < v_36; j_0++) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_11); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_37 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + if (v_37->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_11); - _fx_R9Ast__id_t v_35 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->key; + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_38 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + _fx_R9Ast__id_t v_39 = v_38->key; FX_CHKIDX(FX_CHKIDX1(table_0, 0, j_0), _fx_catch_11); - FX_CALL( - _fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_main_deps_0, &v_35, - FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0)->hv, 0), _fx_catch_11); + _fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t* v_40 = + FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1R9Ast__id_t, table_0, j_0); + FX_CALL(_fx_M15K_remove_unusedFM4add_v3Nt10Hashset__t1R9Ast__id_tR9Ast__id_tq(all_main_deps_0, &v_39, v_40->hv, 0), + _fx_catch_11); } _fx_catch_11: ; @@ -7065,10 +7038,11 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM21remove_unused_by_mainLR17K_form__kmodu _fx_M15K_remove_unusedFM18find_idx_or_inserti2Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_deps_0, &main_id_0, &idx_1, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(all_deps_0->u.t.t5, 0, idx_1), _fx_cleanup); - _fx_Nt10Hashset__t1R9Ast__id_t* v_36 = - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, all_deps_0->u.t.t5, idx_1)->data; - _fx_free_Nt10Hashset__t1R9Ast__id_t(v_36); - FX_COPY_PTR(all_main_deps_0, v_36); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_41 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, all_deps_0->u.t.t5, idx_1); + _fx_Nt10Hashset__t1R9Ast__id_t* v_42 = &v_41->data; + _fx_free_Nt10Hashset__t1R9Ast__id_t(v_42); + FX_COPY_PTR(all_main_deps_0, v_42); _fx_LR9Ast__id_t lstend_0 = 0; _fx_LT2R9Ast__id_tN14K_form__kexp_t lst_3 = all_top_0; for (; lst_3; lst_3 = lst_3->tl) { @@ -7080,27 +7054,28 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM21remove_unused_by_mainLR17K_form__kmodu _fx_catch_12: ; FX_CHECK_EXN(_fx_cleanup); } - FX_CALL(_fx_cons_LR9Ast__id_t(&main_id_0, v_6, false, &v_6), _fx_cleanup); + FX_CALL(_fx_cons_LR9Ast__id_t(&main_id_0, v_6, true, &v_7), _fx_cleanup); int_ res_0; FX_CALL( - _fx_M3AstFM17calc_sets_closurei3iLRM4id_tNt10Hashmap__t2RM4id_tNt10Hashset__t1RM4id_t(10, v_6, all_deps_0, &res_0, 0), + _fx_M3AstFM17calc_sets_closurei3iLRM4id_tNt10Hashmap__t2RM4id_tNt10Hashset__t1RM4id_t(10, v_7, all_deps_0, &res_0, 0), _fx_cleanup); - _fx_Ta2i v_37; + _fx_Ta2i v_43; FX_CALL( _fx_M15K_remove_unusedFM9find_idx_Ta2i2Nt10Hashmap__t2R9Ast__id_tNt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_deps_0, - &main_id_0, &v_37, 0), _fx_cleanup); - int_ j_1 = v_37.t1; + &main_id_0, &v_43, 0), _fx_cleanup); + int_ j_1 = v_43.t1; if (j_1 >= 0) { FX_CHKIDX(FX_CHKIDX1(all_deps_0->u.t.t5, 0, j_1), _fx_cleanup); - FX_COPY_PTR(FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, all_deps_0->u.t.t5, j_1)->data, - &v_8); - _fx_M15K_remove_unusedFM4SomeNt6option1Nt10Hashset__t1R9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(v_8, &v_7); + _fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t* v_44 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2R9Ast__id_tNt10Hashset__t1R9Ast__id_t, all_deps_0->u.t.t5, j_1); + FX_COPY_PTR(v_44->data, &v_9); + _fx_M15K_remove_unusedFM4SomeNt6option1Nt10Hashset__t1R9Ast__id_t1Nt10Hashset__t1R9Ast__id_t(v_9, &v_8); } else { - _fx_copy_Nt6option1Nt10Hashset__t1R9Ast__id_t(&_fx_g23K_remove_unused__None2_, &v_7); + _fx_copy_Nt6option1Nt10Hashset__t1R9Ast__id_t(&_fx_g23K_remove_unused__None2_, &v_8); } - if (v_7.tag == 2) { - FX_COPY_PTR(v_7.u.Some, &all_main_deps_1); + if (v_8.tag == 2) { + FX_COPY_PTR(v_8.u.Some, &all_main_deps_1); } else { FX_COPY_PTR(all_main_deps_0, &all_main_deps_1); @@ -7111,10 +7086,9 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM21remove_unused_by_mainLR17K_form__kmodu for (; lst_4; lst_4 = lst_4->tl) { _fx_LN14K_form__kexp_t km_top_1 = 0; _fx_R17K_form__kmodule_t t_0 = {0}; - _fx_LN14K_form__kexp_t __fold_result___0 = 0; _fx_LN14K_form__kexp_t new_top_0 = 0; - _fx_LN14K_form__kexp_t __fold_result___1 = 0; - _fx_LN14K_form__kexp_t v_38 = 0; + _fx_LN14K_form__kexp_t res_1 = 0; + _fx_LN14K_form__kexp_t v_45 = 0; _fx_R17K_form__kmodule_t* km_1 = &lst_4->hd; bool km_main_1 = km_1->km_main; FX_COPY_PTR(km_1->km_top, &km_top_1); @@ -7124,147 +7098,168 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM21remove_unused_by_mainLR17K_form__kmodu else { _fx_LN14K_form__kexp_t lst_5 = km_top_1; for (; lst_5; lst_5 = lst_5->tl) { - _fx_LN14K_form__kexp_t new_top_1 = 0; - _fx_LN14K_form__kexp_t v_39 = 0; _fx_N14K_form__kexp_t e_2 = lst_5->hd; - FX_COPY_PTR(__fold_result___0, &new_top_1); int tag_1 = FX_REC_VARIANT_TAG(e_2); if (tag_1 == 31) { - bool v_40; + _fx_LN14K_form__kexp_t v_46 = 0; + bool v_47; FX_CALL( _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_deps_1, &e_2->u.KDefVal.t0, - &v_40, 0), _fx_catch_13); - if (v_40) { - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_1, true, &v_39), _fx_catch_13); - } - else { - FX_COPY_PTR(new_top_1, &v_39); + &v_47, 0), _fx_catch_13); + if (v_47) { + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_0, true, &v_46), _fx_catch_13); + _fx_free_LN14K_form__kexp_t(&new_top_0); + FX_COPY_PTR(v_46, &new_top_0); } _fx_catch_13: ; + if (v_46) { + _fx_free_LN14K_form__kexp_t(&v_46); + } } else if (tag_1 == 32) { - _fx_R17K_form__kdeffun_t v_41 = {0}; - _fx_copy_R17K_form__kdeffun_t(&e_2->u.KDefFun->data, &v_41); - bool v_42; + _fx_R17K_form__kdeffun_t v_48 = {0}; + _fx_LN14K_form__kexp_t v_49 = 0; + _fx_copy_R17K_form__kdeffun_t(&e_2->u.KDefFun->data, &v_48); + bool v_50; FX_CALL( - _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_deps_1, &v_41.kf_name, &v_42, 0), + _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_deps_1, &v_48.kf_name, &v_50, 0), _fx_catch_14); - if (v_42) { - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_1, true, &v_39), _fx_catch_14); - } - else { - FX_COPY_PTR(new_top_1, &v_39); + if (v_50) { + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_0, true, &v_49), _fx_catch_14); + _fx_free_LN14K_form__kexp_t(&new_top_0); + FX_COPY_PTR(v_49, &new_top_0); } _fx_catch_14: ; - _fx_free_R17K_form__kdeffun_t(&v_41); + if (v_49) { + _fx_free_LN14K_form__kexp_t(&v_49); + } + _fx_free_R17K_form__kdeffun_t(&v_48); } else if (tag_1 == 36) { - _fx_R17K_form__kdeftyp_t v_43 = {0}; - _fx_copy_R17K_form__kdeftyp_t(&e_2->u.KDefTyp->data, &v_43); - bool v_44; + _fx_R17K_form__kdeftyp_t v_51 = {0}; + _fx_LN14K_form__kexp_t v_52 = 0; + _fx_copy_R17K_form__kdeftyp_t(&e_2->u.KDefTyp->data, &v_51); + bool v_53; FX_CALL( - _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_deps_1, &v_43.kt_name, &v_44, 0), + _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_deps_1, &v_51.kt_name, &v_53, 0), _fx_catch_15); - if (v_44) { - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_1, true, &v_39), _fx_catch_15); - } - else { - FX_COPY_PTR(new_top_1, &v_39); + if (v_53) { + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_0, true, &v_52), _fx_catch_15); + _fx_free_LN14K_form__kexp_t(&new_top_0); + FX_COPY_PTR(v_52, &new_top_0); } _fx_catch_15: ; - _fx_free_R17K_form__kdeftyp_t(&v_43); + if (v_52) { + _fx_free_LN14K_form__kexp_t(&v_52); + } + _fx_free_R17K_form__kdeftyp_t(&v_51); } else if (tag_1 == 34) { - _fx_R21K_form__kdefvariant_t v_45 = {0}; - _fx_copy_R21K_form__kdefvariant_t(&e_2->u.KDefVariant->data, &v_45); - bool v_46; + _fx_R21K_form__kdefvariant_t v_54 = {0}; + _fx_LN14K_form__kexp_t v_55 = 0; + _fx_copy_R21K_form__kdefvariant_t(&e_2->u.KDefVariant->data, &v_54); + bool v_56; FX_CALL( - _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_deps_1, &v_45.kvar_name, &v_46, + _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_deps_1, &v_54.kvar_name, &v_56, 0), _fx_catch_16); - if (v_46) { - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_1, true, &v_39), _fx_catch_16); - } - else { - FX_COPY_PTR(new_top_1, &v_39); + if (v_56) { + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_0, true, &v_55), _fx_catch_16); + _fx_free_LN14K_form__kexp_t(&new_top_0); + FX_COPY_PTR(v_55, &new_top_0); } _fx_catch_16: ; - _fx_free_R21K_form__kdefvariant_t(&v_45); + if (v_55) { + _fx_free_LN14K_form__kexp_t(&v_55); + } + _fx_free_R21K_form__kdefvariant_t(&v_54); } else if (tag_1 == 35) { - _fx_R23K_form__kdefinterface_t v_47 = {0}; - _fx_copy_R23K_form__kdefinterface_t(&e_2->u.KDefInterface->data, &v_47); - bool v_48; + _fx_R23K_form__kdefinterface_t v_57 = {0}; + _fx_LN14K_form__kexp_t v_58 = 0; + _fx_copy_R23K_form__kdefinterface_t(&e_2->u.KDefInterface->data, &v_57); + bool v_59; FX_CALL( - _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_deps_1, &v_47.ki_name, &v_48, 0), + _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_deps_1, &v_57.ki_name, &v_59, 0), _fx_catch_17); - if (v_48) { - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_1, true, &v_39), _fx_catch_17); - } - else { - FX_COPY_PTR(new_top_1, &v_39); + if (v_59) { + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_0, true, &v_58), _fx_catch_17); + _fx_free_LN14K_form__kexp_t(&new_top_0); + FX_COPY_PTR(v_58, &new_top_0); } _fx_catch_17: ; - _fx_free_R23K_form__kdefinterface_t(&v_47); + if (v_58) { + _fx_free_LN14K_form__kexp_t(&v_58); + } + _fx_free_R23K_form__kdefinterface_t(&v_57); } else if (tag_1 == 37) { - _fx_R25K_form__kdefclosurevars_t v_49 = {0}; - _fx_copy_R25K_form__kdefclosurevars_t(&e_2->u.KDefClosureVars->data, &v_49); - bool v_50; + _fx_R25K_form__kdefclosurevars_t v_60 = {0}; + _fx_LN14K_form__kexp_t v_61 = 0; + _fx_copy_R25K_form__kdefclosurevars_t(&e_2->u.KDefClosureVars->data, &v_60); + bool v_62; FX_CALL( - _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_deps_1, &v_49.kcv_name, &v_50, + _fx_M15K_remove_unusedFM3memB2Nt10Hashset__t1R9Ast__id_tR9Ast__id_t(all_main_deps_1, &v_60.kcv_name, &v_62, 0), _fx_catch_18); - if (v_50) { - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_1, true, &v_39), _fx_catch_18); - } - else { - FX_COPY_PTR(new_top_1, &v_39); + if (v_62) { + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_0, true, &v_61), _fx_catch_18); + _fx_free_LN14K_form__kexp_t(&new_top_0); + FX_COPY_PTR(v_61, &new_top_0); } _fx_catch_18: ; - _fx_free_R25K_form__kdefclosurevars_t(&v_49); + if (v_61) { + _fx_free_LN14K_form__kexp_t(&v_61); + } + _fx_free_R25K_form__kdefclosurevars_t(&v_60); } else if (tag_1 == 33) { - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_1, true, &v_39), _fx_catch_19); _fx_catch_19: ; + _fx_LN14K_form__kexp_t v_63 = 0; + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_0, true, &v_63), _fx_catch_19); + _fx_free_LN14K_form__kexp_t(&new_top_0); + FX_COPY_PTR(v_63, &new_top_0); + + _fx_catch_19: ; + if (v_63) { + _fx_free_LN14K_form__kexp_t(&v_63); + } } else { - FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_1, true, &v_39), _fx_catch_20); _fx_catch_20: ; + _fx_LN14K_form__kexp_t v_64 = 0; + FX_CALL(_fx_cons_LN14K_form__kexp_t(e_2, new_top_0, true, &v_64), _fx_catch_20); + _fx_free_LN14K_form__kexp_t(&new_top_0); + FX_COPY_PTR(v_64, &new_top_0); + + _fx_catch_20: ; + if (v_64) { + _fx_free_LN14K_form__kexp_t(&v_64); + } } FX_CHECK_EXN(_fx_catch_21); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(v_39, &__fold_result___0); _fx_catch_21: ; - if (v_39) { - _fx_free_LN14K_form__kexp_t(&v_39); - } - if (new_top_1) { - _fx_free_LN14K_form__kexp_t(&new_top_1); - } FX_CHECK_EXN(_fx_catch_23); } - FX_COPY_PTR(__fold_result___0, &new_top_0); _fx_LN14K_form__kexp_t lst_6 = new_top_0; for (; lst_6; lst_6 = lst_6->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_65 = 0; _fx_N14K_form__kexp_t a_0 = lst_6->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_22); - _fx_free_LN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_1, true, &v_65), _fx_catch_22); + _fx_free_LN14K_form__kexp_t(&res_1); + FX_COPY_PTR(v_65, &res_1); _fx_catch_22: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_65) { + _fx_free_LN14K_form__kexp_t(&v_65); } FX_CHECK_EXN(_fx_catch_23); } - FX_COPY_PTR(__fold_result___1, &v_38); - _fx_make_R17K_form__kmodule_t(&km_1->km_name, km_1->km_idx, km_1->km_toposort_idx, &km_1->km_cname, v_38, + FX_COPY_PTR(res_1, &v_45); + _fx_make_R17K_form__kmodule_t(&km_1->km_name, km_1->km_idx, km_1->km_toposort_idx, &km_1->km_cname, v_45, km_1->km_deps, km_1->km_skip, km_1->km_main, &km_1->km_pragmas, &t_0); } _fx_LR17K_form__kmodule_t node_1 = 0; @@ -7272,18 +7267,15 @@ FX_EXTERN_C int _fx_M15K_remove_unusedFM21remove_unused_by_mainLR17K_form__kmodu FX_LIST_APPEND(*fx_result, lstend_1, node_1); _fx_catch_23: ; - if (v_38) { - _fx_free_LN14K_form__kexp_t(&v_38); + if (v_45) { + _fx_free_LN14K_form__kexp_t(&v_45); } - if (__fold_result___1) { - _fx_free_LN14K_form__kexp_t(&__fold_result___1); + if (res_1) { + _fx_free_LN14K_form__kexp_t(&res_1); } if (new_top_0) { _fx_free_LN14K_form__kexp_t(&new_top_0); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - } _fx_free_R17K_form__kmodule_t(&t_0); if (km_top_1) { _fx_free_LN14K_form__kexp_t(&km_top_1); @@ -7325,9 +7317,10 @@ _fx_cleanup: ; } FX_FREE_ARR(&table_0); FX_FREE_LIST_SIMPLE(&v_6); - _fx_free_Nt6option1Nt10Hashset__t1R9Ast__id_t(&v_7); - if (v_8) { - _fx_free_Nt10Hashset__t1R9Ast__id_t(&v_8); + FX_FREE_LIST_SIMPLE(&v_7); + _fx_free_Nt6option1Nt10Hashset__t1R9Ast__id_t(&v_8); + if (v_9) { + _fx_free_Nt10Hashset__t1R9Ast__id_t(&v_9); } if (all_main_deps_1) { _fx_free_Nt10Hashset__t1R9Ast__id_t(&all_main_deps_1); diff --git a/compiler/bootstrap/K_tailrec.c b/compiler/bootstrap/K_tailrec.c index da7c2b30..6df87768 100644 --- a/compiler/bootstrap/K_tailrec.c +++ b/compiler/bootstrap/K_tailrec.c @@ -839,13 +839,6 @@ typedef struct _fx_T2R9Ast__id_tLN14K_form__kexp_t { struct _fx_LN14K_form__kexp_t_data_t* t1; } _fx_T2R9Ast__id_tLN14K_form__kexp_t; -typedef struct _fx_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t { - struct _fx_LR9Ast__id_t_data_t* t0; - struct _fx_LT2R9Ast__id_tN14K_form__ktyp_t_data_t* t1; - struct _fx_LN14K_form__kexp_t_data_t* t2; - struct _fx_LN14K_form__kexp_t_data_t* t3; -} _fx_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t; - typedef struct _fx_T2N14K_form__kexp_tLN14K_form__kexp_t { struct _fx_N14K_form__kexp_t_data_t* t0; struct _fx_LN14K_form__kexp_t_data_t* t1; @@ -2940,38 +2933,6 @@ static void _fx_make_T2R9Ast__id_tLN14K_form__kexp_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t( - struct _fx_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t* dst) -{ - fx_free_list_simple(&dst->t0); - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&dst->t1); - _fx_free_LN14K_form__kexp_t(&dst->t2); - _fx_free_LN14K_form__kexp_t(&dst->t3); -} - -static void _fx_copy_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t( - struct _fx_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t* src, - struct _fx_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); - FX_COPY_PTR(src->t3, &dst->t3); -} - -static void _fx_make_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t( - struct _fx_LR9Ast__id_t_data_t* t0, - struct _fx_LT2R9Ast__id_tN14K_form__ktyp_t_data_t* t1, - struct _fx_LN14K_form__kexp_t_data_t* t2, - struct _fx_LN14K_form__kexp_t_data_t* t3, - struct _fx_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); - FX_COPY_PTR(t3, &fx_result->t3); -} - static void _fx_free_T2N14K_form__kexp_tLN14K_form__kexp_t(struct _fx_T2N14K_form__kexp_tLN14K_form__kexp_t* dst) { _fx_free_N14K_form__kexp_t(&dst->t0); @@ -3241,28 +3202,27 @@ FX_EXTERN_C int _fx_M9K_tailrecFM3revLT2R9Ast__id_tN14K_form__ktyp_t1LT2R9Ast__i struct _fx_LT2R9Ast__id_tN14K_form__ktyp_t_data_t** fx_result, void* fx_fv) { - _fx_LT2R9Ast__id_tN14K_form__ktyp_t __fold_result___0 = 0; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t res_0 = 0; int fx_status = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2R9Ast__id_tN14K_form__ktyp_t r_0 = 0; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_0 = 0; _fx_T2R9Ast__id_tN14K_form__ktyp_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&r_0); + if (v_0) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&res_0); } return fx_status; } @@ -3272,25 +3232,24 @@ FX_EXTERN_C int _fx_M9K_tailrecFM3revLR9Ast__id_t1LR9Ast__id_t( struct _fx_LR9Ast__id_t_data_t** fx_result, void* fx_fv) { - _fx_LR9Ast__id_t __fold_result___0 = 0; + _fx_LR9Ast__id_t res_0 = 0; int fx_status = 0; _fx_LR9Ast__id_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LR9Ast__id_t r_0 = 0; + _fx_LR9Ast__id_t v_0 = 0; _fx_R9Ast__id_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_0); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LR9Ast__id_t(a_0, res_0, true, &v_0), _fx_catch_0); + FX_FREE_LIST_SIMPLE(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_0); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_0); return fx_status; } @@ -3304,127 +3263,119 @@ FX_EXTERN_C int _fx_M9K_tailrecFM12tailrec2loopv2irR17K_form__kdeffun_t( _fx_LR9Ast__id_t kf_params_0 = 0; _fx_T2R9Ast__id_tLN14K_form__kexp_t v_0 = {0}; _fx_LN14K_form__kexp_t f_init_code_0 = 0; - _fx_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t __fold_result___0 = {0}; - _fx_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t v_1 = {0}; _fx_LR9Ast__id_t new_kf_params_0 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t trec_args_0 = 0; _fx_LN14K_form__kexp_t f_init_code_1 = 0; _fx_LN14K_form__kexp_t loop_init_code_0 = 0; _fx_LR9Ast__id_t new_kf_params_1 = 0; _fx_LT2R9Ast__id_tN14K_form__ktyp_t trec_args_1 = 0; + _fx_LN14K_form__kexp_t f_init_code_2 = 0; + _fx_LN14K_form__kexp_t loop_init_code_1 = 0; + _fx_LR9Ast__id_t new_kf_params_2 = 0; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t trec_args_2 = 0; _fx_N14K_form__kexp_t body__0 = 0; - _fx_LN14K_form__kexp_t v_2 = 0; + _fx_LN14K_form__kexp_t v_1 = 0; _fx_N14K_form__kexp_t loop_body_0 = 0; - _fx_N14K_form__klit_t v_3 = {0}; - _fx_N14K_form__atom_t v_4 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_5 = {0}; - _fx_N14K_form__kexp_t v_6 = 0; + _fx_N14K_form__klit_t v_2 = {0}; + _fx_N14K_form__atom_t v_3 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_4 = {0}; + _fx_N14K_form__kexp_t v_5 = 0; _fx_N14K_form__kexp_t loop_exp_0 = 0; _fx_LN14K_form__kexp_t f_code_0 = 0; - _fx_N14K_form__atom_t v_7 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_8 = {0}; - _fx_N14K_form__kexp_t v_9 = 0; - _fx_LN14K_form__kexp_t v_10 = 0; + _fx_N14K_form__atom_t v_6 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_7 = {0}; + _fx_N14K_form__kexp_t v_8 = 0; + _fx_LN14K_form__kexp_t v_9 = 0; _fx_LN14K_form__kexp_t f_code_1 = 0; _fx_N14K_form__kexp_t new_kf_body_0 = 0; - _fx_R17K_form__kdeffun_t v_11 = {0}; + _fx_R17K_form__kdeffun_t v_10 = {0}; int fx_status = 0; - _fx_R17K_form__kdeffun_t* v_12 = &kf_0->data; - _fx_R10Ast__loc_t kf_loc_0 = v_12->kf_loc; - FX_COPY_PTR(v_12->kf_body, &kf_body_0); - FX_COPY_PTR(v_12->kf_rt, &rt_0); - FX_COPY_PTR(v_12->kf_params, &kf_params_0); - _fx_R9Ast__id_t kf_name_0 = v_12->kf_name; - bool v_13; - FX_CALL(_fx_M9K_tailrecFM19have_tailrec_calls_B2N14K_form__kexp_tR9Ast__id_t(kf_body_0, &kf_name_0, &v_13, 0), _fx_cleanup); - if (v_13) { + _fx_R17K_form__kdeffun_t* v_11 = &kf_0->data; + _fx_R10Ast__loc_t kf_loc_0 = v_11->kf_loc; + FX_COPY_PTR(v_11->kf_body, &kf_body_0); + FX_COPY_PTR(v_11->kf_rt, &rt_0); + FX_COPY_PTR(v_11->kf_params, &kf_params_0); + _fx_R9Ast__id_t kf_name_0 = v_11->kf_name; + bool v_12; + FX_CALL(_fx_M9K_tailrecFM19have_tailrec_calls_B2N14K_form__kexp_tR9Ast__id_t(kf_body_0, &kf_name_0, &v_12, 0), _fx_cleanup); + if (v_12) { if (FX_REC_VARIANT_TAG(rt_0) == 7) { _fx_make_T2R9Ast__id_tLN14K_form__kexp_t(&_fx_g9Ast__noid, 0, &v_0); } else { _fx_N14K_form__atom_t a0_0 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_14 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_13 = {0}; _fx_N14K_form__kexp_t res_val0_0 = 0; - _fx_R16Ast__val_flags_t v_15 = {0}; - _fx_Nt6option1N14K_form__kexp_t v_16 = {0}; - _fx_LN14K_form__kexp_t f_init_code_2 = 0; + _fx_R16Ast__val_flags_t v_14 = {0}; + _fx_Nt6option1N14K_form__kexp_t v_15 = {0}; + _fx_LN14K_form__kexp_t f_init_code_3 = 0; _fx_R9Ast__id_t res_n_0; FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(km_idx_0, &_fx_g18Ast__std__result__, &res_n_0, 0), _fx_catch_0); bool res_0; FX_CALL(_fx_M6K_formFM14is_ktyp_scalarB1N14K_form__ktyp_t(rt_0, &res_0, 0), _fx_catch_0); if (res_0 == true) { + _fx_N14K_form__klit_t v_16 = {0}; + _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(0LL, &v_16); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_16, &a0_0); + _fx_free_N14K_form__klit_t(&v_16); + } + else { _fx_N14K_form__klit_t v_17 = {0}; - _fx_M6K_formFM7KLitIntN14K_form__klit_t1l(0LL, &v_17); + _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(rt_0, &v_17); _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_17, &a0_0); _fx_free_N14K_form__klit_t(&v_17); } - else { - _fx_N14K_form__klit_t v_18 = {0}; - _fx_M6K_formFM7KLitNilN14K_form__klit_t1N14K_form__ktyp_t(rt_0, &v_18); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_18, &a0_0); - _fx_free_N14K_form__klit_t(&v_18); - } FX_CHECK_EXN(_fx_catch_0); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(rt_0, &kf_loc_0, &v_14); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(rt_0, &kf_loc_0, &v_13); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&a0_0, &v_14, + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&a0_0, &v_13, &res_val0_0), _fx_catch_0); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_15, 0), _fx_catch_0); - _fx_M9K_tailrecFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(res_val0_0, &v_16); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_14, 0), _fx_catch_0); + _fx_M9K_tailrecFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(res_val0_0, &v_15); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &res_n_0, rt_0, &v_15, &v_16, 0, &kf_loc_0, &f_init_code_2, 0), _fx_catch_0); - _fx_make_T2R9Ast__id_tLN14K_form__kexp_t(&res_n_0, f_init_code_2, &v_0); + &res_n_0, rt_0, &v_14, &v_15, 0, &kf_loc_0, &f_init_code_3, 0), _fx_catch_0); + _fx_make_T2R9Ast__id_tLN14K_form__kexp_t(&res_n_0, f_init_code_3, &v_0); _fx_catch_0: ; - if (f_init_code_2) { - _fx_free_LN14K_form__kexp_t(&f_init_code_2); + if (f_init_code_3) { + _fx_free_LN14K_form__kexp_t(&f_init_code_3); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_16); - _fx_free_R16Ast__val_flags_t(&v_15); + _fx_free_Nt6option1N14K_form__kexp_t(&v_15); + _fx_free_R16Ast__val_flags_t(&v_14); if (res_val0_0) { _fx_free_N14K_form__kexp_t(&res_val0_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_14); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_13); _fx_free_N14K_form__atom_t(&a0_0); } FX_CHECK_EXN(_fx_cleanup); _fx_R9Ast__id_t res_n_1 = v_0.t0; FX_COPY_PTR(v_0.t1, &f_init_code_0); - _fx_make_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t(0, 0, f_init_code_0, 0, - &__fold_result___0); + FX_COPY_PTR(f_init_code_0, &f_init_code_1); _fx_LR9Ast__id_t lst_0 = kf_params_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t v_19 = {0}; - _fx_LR9Ast__id_t new_kf_params_2 = 0; - _fx_LT2R9Ast__id_tN14K_form__ktyp_t trec_args_2 = 0; - _fx_LN14K_form__kexp_t f_init_code_3 = 0; - _fx_LN14K_form__kexp_t loop_init_code_1 = 0; _fx_R17K_form__kdefval_t dv0_0 = {0}; _fx_N14K_form__ktyp_t ti_0 = 0; _fx_R17K_form__kdefval_t dv1_0 = {0}; - _fx_N15K_form__kinfo_t v_20 = {0}; + _fx_N15K_form__kinfo_t v_18 = {0}; + _fx_N14K_form__atom_t v_19 = {0}; + _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_20 = {0}; + _fx_N14K_form__kexp_t a1i_as_exp_0 = 0; _fx_N14K_form__atom_t v_21 = {0}; _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_22 = {0}; - _fx_N14K_form__kexp_t a1i_as_exp_0 = 0; - _fx_N14K_form__atom_t v_23 = {0}; - _fx_T2N14K_form__ktyp_tR10Ast__loc_t v_24 = {0}; _fx_N14K_form__kexp_t a2i_as_exp_0 = 0; - _fx_R16Ast__val_flags_t v_25 = {0}; - _fx_Nt6option1N14K_form__kexp_t v_26 = {0}; - _fx_LN14K_form__kexp_t f_init_code_4 = 0; - _fx_R16Ast__val_flags_t v_27 = {0}; - _fx_Nt6option1N14K_form__kexp_t v_28 = {0}; - _fx_LN14K_form__kexp_t loop_init_code_2 = 0; - _fx_T2R9Ast__id_tN14K_form__ktyp_t v_29 = {0}; - _fx_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t v_30 = {0}; + _fx_LR9Ast__id_t v_23 = 0; + _fx_T2R9Ast__id_tN14K_form__ktyp_t v_24 = {0}; + _fx_LT2R9Ast__id_tN14K_form__ktyp_t v_25 = 0; + _fx_R16Ast__val_flags_t v_26 = {0}; + _fx_Nt6option1N14K_form__kexp_t v_27 = {0}; + _fx_LN14K_form__kexp_t v_28 = 0; + _fx_R16Ast__val_flags_t v_29 = {0}; + _fx_Nt6option1N14K_form__kexp_t v_30 = {0}; + _fx_LN14K_form__kexp_t v_31 = 0; _fx_R9Ast__id_t* ai_0 = &lst_0->hd; - _fx_copy_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t(&__fold_result___0, &v_19); - FX_COPY_PTR(v_19.t0, &new_kf_params_2); - FX_COPY_PTR(v_19.t1, &trec_args_2); - FX_COPY_PTR(v_19.t2, &f_init_code_3); - FX_COPY_PTR(v_19.t3, &loop_init_code_1); FX_CALL(_fx_M6K_formFM8get_kvalRM9kdefval_t2R9Ast__id_tR10Ast__loc_t(ai_0, &kf_loc_0, &dv0_0, 0), _fx_catch_1); FX_COPY_PTR(dv0_0.kv_typ, &ti_0); _fx_R9Ast__id_t a1i_0; @@ -3432,124 +3383,119 @@ FX_EXTERN_C int _fx_M9K_tailrecFM12tailrec2loopv2irR17K_form__kdeffun_t( _fx_R9Ast__id_t a2i_0; FX_CALL(_fx_M6K_formFM7dup_idkR9Ast__id_t2iR9Ast__id_t(km_idx_0, ai_0, &a2i_0, 0), _fx_catch_1); _fx_make_R17K_form__kdefval_t(&a1i_0, &dv0_0.kv_cname, dv0_0.kv_typ, &dv0_0.kv_flags, &dv0_0.kv_loc, &dv1_0); - _fx_M6K_formFM4KValN15K_form__kinfo_t1RM9kdefval_t(&dv1_0, &v_20); - FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&a1i_0, &v_20, 0), _fx_catch_1); - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&a1i_0, &v_21); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ti_0, &kf_loc_0, &v_22); + _fx_M6K_formFM4KValN15K_form__kinfo_t1RM9kdefval_t(&dv1_0, &v_18); + FX_CALL(_fx_M6K_formFM13set_idk_entryv2R9Ast__id_tN15K_form__kinfo_t(&a1i_0, &v_18, 0), _fx_catch_1); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&a1i_0, &v_19); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ti_0, &kf_loc_0, &v_20); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_21, &v_22, + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_19, &v_20, &a1i_as_exp_0), _fx_catch_1); - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&a2i_0, &v_23); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ti_0, &kf_loc_0, &v_24); + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&a2i_0, &v_21); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(ti_0, &kf_loc_0, &v_22); FX_CALL( - _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_23, &v_24, + _fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_21, &v_22, &a2i_as_exp_0), _fx_catch_1); - FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_25, 0), _fx_catch_1); - _fx_M9K_tailrecFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(a1i_as_exp_0, &v_26); + FX_CALL(_fx_cons_LR9Ast__id_t(&a1i_0, new_kf_params_0, true, &v_23), _fx_catch_1); + FX_FREE_LIST_SIMPLE(&new_kf_params_0); + FX_COPY_PTR(v_23, &new_kf_params_0); + _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&a2i_0, ti_0, &v_24); + FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&v_24, trec_args_0, true, &v_25), _fx_catch_1); + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&trec_args_0); + FX_COPY_PTR(v_25, &trec_args_0); + FX_CALL(_fx_M3AstFM21default_tempvar_flagsRM11val_flags_t0(&v_26, 0), _fx_catch_1); + _fx_M9K_tailrecFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(a1i_as_exp_0, &v_27); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - &a2i_0, ti_0, &v_25, &v_26, f_init_code_3, &kf_loc_0, &f_init_code_4, 0), _fx_catch_1); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_27, 0), _fx_catch_1); - _fx_M9K_tailrecFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(a2i_as_exp_0, &v_28); + &a2i_0, ti_0, &v_26, &v_27, f_init_code_1, &kf_loc_0, &v_28, 0), _fx_catch_1); + _fx_free_LN14K_form__kexp_t(&f_init_code_1); + FX_COPY_PTR(v_28, &f_init_code_1); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_29, 0), _fx_catch_1); + _fx_M9K_tailrecFM4SomeNt6option1N14K_form__kexp_t1N14K_form__kexp_t(a2i_as_exp_0, &v_30); FX_CALL( _fx_M6K_formFM14create_kdefvalLN14K_form__kexp_t6R9Ast__id_tN14K_form__ktyp_tR16Ast__val_flags_tNt6option1N14K_form__kexp_tLN14K_form__kexp_tR10Ast__loc_t( - ai_0, ti_0, &v_27, &v_28, loop_init_code_1, &kf_loc_0, &loop_init_code_2, 0), _fx_catch_1); - FX_CALL(_fx_cons_LR9Ast__id_t(&a1i_0, new_kf_params_2, false, &new_kf_params_2), _fx_catch_1); - _fx_make_T2R9Ast__id_tN14K_form__ktyp_t(&a2i_0, ti_0, &v_29); - FX_CALL(_fx_cons_LT2R9Ast__id_tN14K_form__ktyp_t(&v_29, trec_args_2, false, &trec_args_2), _fx_catch_1); - _fx_make_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t(new_kf_params_2, - trec_args_2, f_init_code_4, loop_init_code_2, &v_30); - _fx_free_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t(&__fold_result___0); - _fx_copy_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_30, &__fold_result___0); + ai_0, ti_0, &v_29, &v_30, loop_init_code_0, &kf_loc_0, &v_31, 0), _fx_catch_1); + _fx_free_LN14K_form__kexp_t(&loop_init_code_0); + FX_COPY_PTR(v_31, &loop_init_code_0); _fx_catch_1: ; - _fx_free_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_30); - _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&v_29); - if (loop_init_code_2) { - _fx_free_LN14K_form__kexp_t(&loop_init_code_2); + if (v_31) { + _fx_free_LN14K_form__kexp_t(&v_31); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_28); - _fx_free_R16Ast__val_flags_t(&v_27); - if (f_init_code_4) { - _fx_free_LN14K_form__kexp_t(&f_init_code_4); + _fx_free_Nt6option1N14K_form__kexp_t(&v_30); + _fx_free_R16Ast__val_flags_t(&v_29); + if (v_28) { + _fx_free_LN14K_form__kexp_t(&v_28); } - _fx_free_Nt6option1N14K_form__kexp_t(&v_26); - _fx_free_R16Ast__val_flags_t(&v_25); + _fx_free_Nt6option1N14K_form__kexp_t(&v_27); + _fx_free_R16Ast__val_flags_t(&v_26); + if (v_25) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&v_25); + } + _fx_free_T2R9Ast__id_tN14K_form__ktyp_t(&v_24); + FX_FREE_LIST_SIMPLE(&v_23); if (a2i_as_exp_0) { _fx_free_N14K_form__kexp_t(&a2i_as_exp_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_24); - _fx_free_N14K_form__atom_t(&v_23); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_22); + _fx_free_N14K_form__atom_t(&v_21); if (a1i_as_exp_0) { _fx_free_N14K_form__kexp_t(&a1i_as_exp_0); } - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_22); - _fx_free_N14K_form__atom_t(&v_21); - _fx_free_N15K_form__kinfo_t(&v_20); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_20); + _fx_free_N14K_form__atom_t(&v_19); + _fx_free_N15K_form__kinfo_t(&v_18); _fx_free_R17K_form__kdefval_t(&dv1_0); if (ti_0) { _fx_free_N14K_form__ktyp_t(&ti_0); } _fx_free_R17K_form__kdefval_t(&dv0_0); - if (loop_init_code_1) { - _fx_free_LN14K_form__kexp_t(&loop_init_code_1); - } - if (f_init_code_3) { - _fx_free_LN14K_form__kexp_t(&f_init_code_3); - } - if (trec_args_2) { - _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&trec_args_2); - } - FX_FREE_LIST_SIMPLE(&new_kf_params_2); - _fx_free_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_19); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t(&__fold_result___0, &v_1); - FX_COPY_PTR(v_1.t0, &new_kf_params_0); - FX_COPY_PTR(v_1.t1, &trec_args_0); - FX_COPY_PTR(v_1.t2, &f_init_code_1); - FX_COPY_PTR(v_1.t3, &loop_init_code_0); - FX_CALL(_fx_M9K_tailrecFM3revLR9Ast__id_t1LR9Ast__id_t(new_kf_params_0, &new_kf_params_1, 0), _fx_cleanup); + FX_COPY_PTR(new_kf_params_0, &new_kf_params_1); + FX_COPY_PTR(trec_args_0, &trec_args_1); + FX_COPY_PTR(f_init_code_1, &f_init_code_2); + FX_COPY_PTR(loop_init_code_0, &loop_init_code_1); + FX_CALL(_fx_M9K_tailrecFM3revLR9Ast__id_t1LR9Ast__id_t(new_kf_params_1, &new_kf_params_2, 0), _fx_cleanup); FX_CALL( - _fx_M9K_tailrecFM3revLT2R9Ast__id_tN14K_form__ktyp_t1LT2R9Ast__id_tN14K_form__ktyp_t(trec_args_0, &trec_args_1, 0), + _fx_M9K_tailrecFM3revLT2R9Ast__id_tN14K_form__ktyp_t1LT2R9Ast__id_tN14K_form__ktyp_t(trec_args_1, &trec_args_2, 0), _fx_cleanup); FX_CALL( _fx_M9K_tailrecFM16transform_tcallsN14K_form__kexp_t5N14K_form__kexp_tR9Ast__id_tiR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t( - kf_body_0, &kf_name_0, km_idx_0, &res_n_1, trec_args_1, &body__0, 0), _fx_cleanup); - FX_CALL(_fx_cons_LN14K_form__kexp_t(body__0, loop_init_code_0, true, &v_2), _fx_cleanup); - FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_2, &kf_loc_0, &loop_body_0, 0), + kf_body_0, &kf_name_0, km_idx_0, &res_n_1, trec_args_2, &body__0, 0), _fx_cleanup); + FX_CALL(_fx_cons_LN14K_form__kexp_t(body__0, loop_init_code_1, true, &v_1), _fx_cleanup); + FX_CALL(_fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(v_1, &kf_loc_0, &loop_body_0, 0), _fx_cleanup); _fx_R10Ast__loc_t lloc_0; FX_CALL(_fx_M6K_formFM12get_kexp_locR10Ast__loc_t1N14K_form__kexp_t(loop_body_0, &lloc_0, 0), _fx_cleanup); - _fx_M6K_formFM8KLitBoolN14K_form__klit_t1B(true, &v_3); - _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_3, &v_4); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g19K_tailrec__KTypBool, &lloc_0, &v_5); - FX_CALL(_fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_4, &v_5, &v_6), + _fx_M6K_formFM8KLitBoolN14K_form__klit_t1B(true, &v_2); + _fx_M6K_formFM7AtomLitN14K_form__atom_t1N14K_form__klit_t(&v_2, &v_3); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g19K_tailrec__KTypBool, &lloc_0, &v_4); + FX_CALL(_fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_3, &v_4, &v_5), _fx_cleanup); FX_CALL( - _fx_M6K_formFM9KExpWhileN14K_form__kexp_t3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t(v_6, loop_body_0, &lloc_0, + _fx_M6K_formFM9KExpWhileN14K_form__kexp_t3N14K_form__kexp_tN14K_form__kexp_tR10Ast__loc_t(v_5, loop_body_0, &lloc_0, &loop_exp_0), _fx_cleanup); bool res_1; FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&res_n_1, &_fx_g9Ast__noid, &res_1, 0), _fx_cleanup); if (!res_1) { - _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&res_n_1, &v_7); - _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(rt_0, &kf_loc_0, &v_8); - FX_CALL(_fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_7, &v_8, &v_9), + _fx_M6K_formFM6AtomIdN14K_form__atom_t1R9Ast__id_t(&res_n_1, &v_6); + _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(rt_0, &kf_loc_0, &v_7); + FX_CALL(_fx_M6K_formFM8KExpAtomN14K_form__kexp_t2N14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t(&v_6, &v_7, &v_8), _fx_cleanup); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_9, 0, true, &f_code_0), _fx_cleanup); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_8, 0, true, &f_code_0), _fx_cleanup); } - FX_CALL(_fx_cons_LN14K_form__kexp_t(loop_exp_0, f_init_code_1, true, &v_10), _fx_cleanup); - FX_CALL(_fx_M9K_tailrecFM7__add__LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(f_code_0, v_10, &f_code_1, 0), + FX_CALL(_fx_cons_LN14K_form__kexp_t(loop_exp_0, f_init_code_2, true, &v_9), _fx_cleanup); + FX_CALL(_fx_M9K_tailrecFM7__add__LN14K_form__kexp_t2LN14K_form__kexp_tLN14K_form__kexp_t(f_code_0, v_9, &f_code_1, 0), _fx_cleanup); FX_CALL( _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(f_code_1, &kf_loc_0, &new_kf_body_0, 0), _fx_cleanup); - _fx_R17K_form__kdeffun_t* v_31 = &kf_0->data; - _fx_make_R17K_form__kdeffun_t(&v_31->kf_name, &v_31->kf_cname, new_kf_params_1, v_31->kf_rt, new_kf_body_0, - &v_31->kf_flags, &v_31->kf_closure, v_31->kf_scope, &v_31->kf_loc, &v_11); _fx_R17K_form__kdeffun_t* v_32 = &kf_0->data; - _fx_free_R17K_form__kdeffun_t(v_32); - _fx_copy_R17K_form__kdeffun_t(&v_11, v_32); + _fx_make_R17K_form__kdeffun_t(&v_32->kf_name, &v_32->kf_cname, new_kf_params_2, v_32->kf_rt, new_kf_body_0, + &v_32->kf_flags, &v_32->kf_closure, v_32->kf_scope, &v_32->kf_loc, &v_10); + _fx_R17K_form__kdeffun_t* v_33 = &kf_0->data; + _fx_free_R17K_form__kdeffun_t(v_33); + _fx_copy_R17K_form__kdeffun_t(&v_10, v_33); } _fx_cleanup: ; @@ -3564,8 +3510,6 @@ _fx_cleanup: ; if (f_init_code_0) { _fx_free_LN14K_form__kexp_t(&f_init_code_0); } - _fx_free_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t(&__fold_result___0); - _fx_free_T4LR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_tLN14K_form__kexp_tLN14K_form__kexp_t(&v_1); FX_FREE_LIST_SIMPLE(&new_kf_params_0); if (trec_args_0) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&trec_args_0); @@ -3580,20 +3524,30 @@ _fx_cleanup: ; if (trec_args_1) { _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&trec_args_1); } + if (f_init_code_2) { + _fx_free_LN14K_form__kexp_t(&f_init_code_2); + } + if (loop_init_code_1) { + _fx_free_LN14K_form__kexp_t(&loop_init_code_1); + } + FX_FREE_LIST_SIMPLE(&new_kf_params_2); + if (trec_args_2) { + _fx_free_LT2R9Ast__id_tN14K_form__ktyp_t(&trec_args_2); + } if (body__0) { _fx_free_N14K_form__kexp_t(&body__0); } - if (v_2) { - _fx_free_LN14K_form__kexp_t(&v_2); + if (v_1) { + _fx_free_LN14K_form__kexp_t(&v_1); } if (loop_body_0) { _fx_free_N14K_form__kexp_t(&loop_body_0); } - _fx_free_N14K_form__klit_t(&v_3); - _fx_free_N14K_form__atom_t(&v_4); - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_5); - if (v_6) { - _fx_free_N14K_form__kexp_t(&v_6); + _fx_free_N14K_form__klit_t(&v_2); + _fx_free_N14K_form__atom_t(&v_3); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_4); + if (v_5) { + _fx_free_N14K_form__kexp_t(&v_5); } if (loop_exp_0) { _fx_free_N14K_form__kexp_t(&loop_exp_0); @@ -3601,13 +3555,13 @@ _fx_cleanup: ; if (f_code_0) { _fx_free_LN14K_form__kexp_t(&f_code_0); } - _fx_free_N14K_form__atom_t(&v_7); - _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_8); - if (v_9) { - _fx_free_N14K_form__kexp_t(&v_9); + _fx_free_N14K_form__atom_t(&v_6); + _fx_free_T2N14K_form__ktyp_tR10Ast__loc_t(&v_7); + if (v_8) { + _fx_free_N14K_form__kexp_t(&v_8); } - if (v_10) { - _fx_free_LN14K_form__kexp_t(&v_10); + if (v_9) { + _fx_free_LN14K_form__kexp_t(&v_9); } if (f_code_1) { _fx_free_LN14K_form__kexp_t(&f_code_1); @@ -3615,7 +3569,7 @@ _fx_cleanup: ; if (new_kf_body_0) { _fx_free_N14K_form__kexp_t(&new_kf_body_0); } - _fx_free_R17K_form__kdeffun_t(&v_11); + _fx_free_R17K_form__kdeffun_t(&v_10); return fx_status; } @@ -3889,7 +3843,7 @@ static int _fx_make_T2N14K_form__ktyp_tR10Ast__loc_t(_fx_g19K_tailrec__KTypVoid, &eloc_0, &new_ctx_0); int tag_0 = FX_REC_VARIANT_TAG(e_0); if (tag_0 == 10) { - _fx_LN14K_form__kexp_t __fold_result___0 = 0; + _fx_LN14K_form__kexp_t res_0 = 0; _fx_LN14K_form__kexp_t elist_0 = 0; _fx_LN14K_form__kexp_t v_0 = 0; _fx_LN14K_form__kexp_t rcode_0 = 0; @@ -3898,40 +3852,39 @@ static int FX_COPY_PTR(vcase_0->t0, &elist_0); _fx_LN14K_form__kexp_t lst_0 = elist_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN14K_form__kexp_t r_0 = 0; + _fx_LN14K_form__kexp_t v_1 = 0; _fx_N14K_form__kexp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN14K_form__kexp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN14K_form__kexp_t(a_0, res_0, true, &v_1), _fx_catch_0); + _fx_free_LN14K_form__kexp_t(&res_0); + FX_COPY_PTR(v_1, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN14K_form__kexp_t(&r_0); + if (v_1) { + _fx_free_LN14K_form__kexp_t(&v_1); } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___0, &v_0); + FX_COPY_PTR(res_0, &v_0); if (v_0 == 0) { - _fx_N14K_form__kexp_t v_1 = 0; - FX_CALL(_fx_M6K_formFM9KExpBreakN14K_form__kexp_t1R10Ast__loc_t(eloc_1, &v_1), _fx_catch_1); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_1, 0, true, &rcode_0), _fx_catch_1); + _fx_N14K_form__kexp_t v_2 = 0; + FX_CALL(_fx_M6K_formFM9KExpBreakN14K_form__kexp_t1R10Ast__loc_t(eloc_1, &v_2), _fx_catch_1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_2, 0, true, &rcode_0), _fx_catch_1); _fx_catch_1: ; - if (v_1) { - _fx_free_N14K_form__kexp_t(&v_1); + if (v_2) { + _fx_free_N14K_form__kexp_t(&v_2); } } else if (v_0 != 0) { - _fx_N14K_form__kexp_t v_2 = 0; + _fx_N14K_form__kexp_t v_3 = 0; FX_CALL( _fx_M9K_tailrecFM16transform_tcallsN14K_form__kexp_t5N14K_form__kexp_tR9Ast__id_tiR9Ast__id_tLT2R9Ast__id_tN14K_form__ktyp_t( - v_0->hd, kf_name_0, km_idx_0, res_n_0, trec_args_0, &v_2, 0), _fx_catch_2); - FX_CALL(_fx_cons_LN14K_form__kexp_t(v_2, v_0->tl, true, &rcode_0), _fx_catch_2); + v_0->hd, kf_name_0, km_idx_0, res_n_0, trec_args_0, &v_3, 0), _fx_catch_2); + FX_CALL(_fx_cons_LN14K_form__kexp_t(v_3, v_0->tl, true, &rcode_0), _fx_catch_2); _fx_catch_2: ; - if (v_2) { - _fx_free_N14K_form__kexp_t(&v_2); + if (v_3) { + _fx_free_N14K_form__kexp_t(&v_3); } } else { @@ -3951,8 +3904,8 @@ static int if (elist_0) { _fx_free_LN14K_form__kexp_t(&elist_0); } - if (__fold_result___0) { - _fx_free_LN14K_form__kexp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN14K_form__kexp_t(&res_0); } } else if (tag_0 == 11) { @@ -3978,45 +3931,44 @@ static int } } else if (tag_0 == 12) { - _fx_LN14K_form__kexp_t __fold_result___1 = 0; - _fx_LN14K_form__atom_t real_args_0 = 0; _fx_LN14K_form__kexp_t tcall_rcode_0 = 0; + _fx_LN14K_form__atom_t real_args_0 = 0; + _fx_LN14K_form__kexp_t tcall_rcode_1 = 0; _fx_T3R9Ast__id_tLN14K_form__atom_tT2N14K_form__ktyp_tR10Ast__loc_t* vcase_2 = &e_0->u.KExpCall; _fx_R10Ast__loc_t* eloc_2 = &vcase_2->t2.t1; - bool res_0; - FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&vcase_2->t0, kf_name_0, &res_0, 0), _fx_catch_6); - if (res_0) { + bool res_1; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&vcase_2->t0, kf_name_0, &res_1, 0), _fx_catch_6); + if (res_1) { _fx_LT2R9Ast__id_tN14K_form__ktyp_t lst_1 = trec_args_0; FX_COPY_PTR(vcase_2->t1, &real_args_0); _fx_LN14K_form__atom_t lst_2 = real_args_0; for (; lst_1 && lst_2; lst_2 = lst_2->tl, lst_1 = lst_1->tl) { - _fx_LN14K_form__kexp_t tcall_rcode_1 = 0; _fx_N14K_form__kexp_t set_new_0 = 0; + _fx_LN14K_form__kexp_t v_4 = 0; _fx_N14K_form__atom_t* real_ai_0 = &lst_2->hd; _fx_T2R9Ast__id_tN14K_form__ktyp_t* __pat___0 = &lst_1->hd; _fx_R9Ast__id_t trec_ai_0 = __pat___0->t0; - FX_COPY_PTR(__fold_result___1, &tcall_rcode_1); FX_CALL( _fx_M6K_formFM10KExpAssignN14K_form__kexp_t3R9Ast__id_tN14K_form__atom_tR10Ast__loc_t(&trec_ai_0, real_ai_0, eloc_2, &set_new_0), _fx_catch_5); - FX_CALL(_fx_cons_LN14K_form__kexp_t(set_new_0, tcall_rcode_1, false, &tcall_rcode_1), _fx_catch_5); - _fx_free_LN14K_form__kexp_t(&__fold_result___1); - FX_COPY_PTR(tcall_rcode_1, &__fold_result___1); + FX_CALL(_fx_cons_LN14K_form__kexp_t(set_new_0, tcall_rcode_0, true, &v_4), _fx_catch_5); + _fx_free_LN14K_form__kexp_t(&tcall_rcode_0); + FX_COPY_PTR(v_4, &tcall_rcode_0); _fx_catch_5: ; + if (v_4) { + _fx_free_LN14K_form__kexp_t(&v_4); + } if (set_new_0) { _fx_free_N14K_form__kexp_t(&set_new_0); } - if (tcall_rcode_1) { - _fx_free_LN14K_form__kexp_t(&tcall_rcode_1); - } FX_CHECK_EXN(_fx_catch_6); } int s_0 = !lst_1 + !lst_2; FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_6); - FX_COPY_PTR(__fold_result___1, &tcall_rcode_0); + FX_COPY_PTR(tcall_rcode_0, &tcall_rcode_1); FX_CALL( - _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(tcall_rcode_0, eloc_2, fx_result, 0), + _fx_M6K_formFM10rcode2kexpN14K_form__kexp_t2LN14K_form__kexp_tR10Ast__loc_t(tcall_rcode_1, eloc_2, fx_result, 0), _fx_catch_6); } else { @@ -4026,14 +3978,14 @@ static int } _fx_catch_6: ; - if (tcall_rcode_0) { - _fx_free_LN14K_form__kexp_t(&tcall_rcode_0); + if (tcall_rcode_1) { + _fx_free_LN14K_form__kexp_t(&tcall_rcode_1); } if (real_args_0) { _fx_free_LN14K_form__atom_t(&real_args_0); } - if (__fold_result___1) { - _fx_free_LN14K_form__kexp_t(&__fold_result___1); + if (tcall_rcode_0) { + _fx_free_LN14K_form__kexp_t(&tcall_rcode_0); } } else if (tag_0 == 22) { @@ -4182,9 +4134,10 @@ static int _fx_M9K_tailrecFM18tailrec2loop_kexp_v2N14K_form__kexp_tR22K_form__k_ int fx_status = 0; _fx_M9K_tailrecFM18tailrec2loop_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t* cv_0 = (_fx_M9K_tailrecFM18tailrec2loop_kexp_v2N14K_form__kexp_tR22K_form__k_fold_callb_t_cldata_t*)fx_fv; + int_* curr_km_idx_0 = &cv_0->t0->data; FX_CALL(_fx_M6K_formFM9fold_kexpv2N14K_form__kexp_tRM14k_fold_callb_t(e_0, callb_0, 0), _fx_cleanup); if (FX_REC_VARIANT_TAG(e_0) == 32) { - FX_CALL(_fx_M9K_tailrecFM12tailrec2loopv2irR17K_form__kdeffun_t(cv_0->t0->data, e_0->u.KDefFun, 0), _fx_catch_0); + FX_CALL(_fx_M9K_tailrecFM12tailrec2loopv2irR17K_form__kdeffun_t(*curr_km_idx_0, e_0->u.KDefFun, 0), _fx_catch_0); _fx_catch_0: ; } diff --git a/compiler/bootstrap/Lexer.c b/compiler/bootstrap/Lexer.c index 67559b06..9da7c367 100644 --- a/compiler/bootstrap/Lexer.c +++ b/compiler/bootstrap/Lexer.c @@ -1241,12 +1241,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti* v_2 = + _fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -1299,27 +1300,29 @@ FX_EXTERN_C int _fx_M5LexerFM4growv2Nt10Hashmap__t2ST2N14Lexer__token_tii( for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M5LexerFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2ST2N14Lexer__token_tiRt20Hashmap__hashentry_t2ST2N14Lexer__token_ti( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -1401,8 +1404,9 @@ FX_EXTERN_C int _fx_M5LexerFM8find_optNt6option1T2N14Lexer__token_ti2Nt10Hashmap int_ j_0 = v_1.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, j_0), _fx_cleanup); - _fx_copy_T2N14Lexer__token_ti(&FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti, self_0->u.t.t5, j_0)->data, - &v_0); + _fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti, self_0->u.t.t5, j_0); + _fx_copy_T2N14Lexer__token_ti(&v_2->data, &v_0); _fx_M5LexerFM4SomeNt6option1T2N14Lexer__token_ti1T2N14Lexer__token_ti(&v_0, fx_result); } else { @@ -1500,19 +1504,20 @@ FX_EXTERN_C int _fx_M5LexerFM18find_idx_or_inserti2Nt10Hashmap__t2ST2N14Lexer__t } if (t_1) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_10 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_10 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_11 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti* v_12 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_12->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -1523,12 +1528,13 @@ FX_EXTERN_C int _fx_M5LexerFM18find_idx_or_inserti2Nt10Hashmap__t2ST2N14Lexer__t _fx_copy_T2N14Lexer__token_ti(&self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti(hv_0, k_0, &v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti* v_10 = + _fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti* v_13 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti(v_10); - _fx_copy_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti(&v_3, v_10); + _fx_free_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti(v_13); + _fx_copy_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti(&v_3, v_13); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_14 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_14 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -1605,9 +1611,11 @@ FX_EXTERN_C int _fx_M5LexerFM9from_listNt10Hashmap__t2ST2N14Lexer__token_ti3ST2N int_ idx_0; FX_CALL(_fx_M5LexerFM18find_idx_or_inserti2Nt10Hashmap__t2ST2N14Lexer__token_tiS(ht_0, &k_0, &idx_0, 0), _fx_catch_0); FX_CHKIDX(FX_CHKIDX1(ht_0->u.t.t5, 0, idx_0), _fx_catch_0); - _fx_T2N14Lexer__token_ti* v_5 = &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti, ht_0->u.t.t5, idx_0)->data; - _fx_free_T2N14Lexer__token_ti(v_5); - _fx_copy_T2N14Lexer__token_ti(&d_0, v_5); + _fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti* v_5 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2ST2N14Lexer__token_ti, ht_0->u.t.t5, idx_0); + _fx_T2N14Lexer__token_ti* v_6 = &v_5->data; + _fx_free_T2N14Lexer__token_ti(v_6); + _fx_copy_T2N14Lexer__token_ti(&d_0, v_6); _fx_catch_0: ; _fx_free_T2N14Lexer__token_ti(&d_0); @@ -3700,7 +3708,8 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } *pos_0 = p_0; int_ v_49 = *pos_0 + 1; - c1_0 = FX_STR_ELEM_ZERO(buf_0, v_49); + char_ v_50 = FX_STR_ELEM_ZERO(buf_0, v_49); + c1_0 = v_50; } _fx_Ta2i loc_0; FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &loc_0, 0), _fx_cleanup); @@ -3709,71 +3718,71 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( _fx_M5LexerFM9getnumberT2iT2N14Lexer__token_tC5SiTa2iBB(&buf_0, *pos_0, &loc_0, *prev_dot_0, !*prev_dot_0, &v_0, 0), _fx_cleanup); int_ p_1 = v_0.t0; - _fx_T2N14Lexer__token_tC* v_50 = &v_0.t1; - _fx_copy_N14Lexer__token_t(&v_50->t0, &t_0); - char_ c_1 = v_50->t1; + _fx_T2N14Lexer__token_tC* v_51 = &v_0.t1; + _fx_copy_N14Lexer__token_t(&v_51->t0, &t_0); + char_ c_1 = v_51->t1; int tag_0 = t_0.tag; if (tag_0 == 1) { - _fx_N10Ast__lit_t* v_51 = &t_0.u.LITERAL; - if (v_51->tag == 1) { - fx_exn_t v_52 = {0}; + _fx_N10Ast__lit_t* v_52 = &t_0.u.LITERAL; + if (v_52->tag == 1) { + fx_exn_t v_53 = {0}; bool t_1; - if (v_51->u.LitInt < 0LL) { + if (v_52->u.LitInt < 0LL) { t_1 = !*expect_neg_number_0; } else { t_1 = false; } if (t_1) { - _fx_Ta2i v_53; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_53, 0), _fx_catch_0); + _fx_Ta2i v_54; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_54, 0), _fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("the numeric literal is out of range for the specified type"); - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_53, &slit_0, &v_52), _fx_catch_0); - FX_THROW(&v_52, true, _fx_catch_0); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_54, &slit_0, &v_53), _fx_catch_0); + FX_THROW(&v_53, true, _fx_catch_0); } _fx_catch_0: ; - fx_free_exn(&v_52); + fx_free_exn(&v_53); goto _fx_endmatch_2; } } if (tag_0 == 1) { - _fx_N10Ast__lit_t* v_54 = &t_0.u.LITERAL; - if (v_54->tag == 2) { - fx_exn_t v_55 = {0}; + _fx_N10Ast__lit_t* v_55 = &t_0.u.LITERAL; + if (v_55->tag == 2) { + fx_exn_t v_56 = {0}; bool t_2; - if (v_54->u.LitSInt.t1 < 0LL) { + if (v_55->u.LitSInt.t1 < 0LL) { t_2 = !*expect_neg_number_0; } else { t_2 = false; } if (t_2) { - _fx_Ta2i v_56; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_56, 0), _fx_catch_1); + _fx_Ta2i v_57; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_57, 0), _fx_catch_1); fx_str_t slit_1 = FX_MAKE_STR("the numeric literal is out of range for the specified type"); - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_56, &slit_1, &v_55), _fx_catch_1); - FX_THROW(&v_55, true, _fx_catch_1); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_57, &slit_1, &v_56), _fx_catch_1); + FX_THROW(&v_56, true, _fx_catch_1); } _fx_catch_1: ; - fx_free_exn(&v_55); + fx_free_exn(&v_56); goto _fx_endmatch_2; } } if (tag_0 == 1) { if (t_0.u.LITERAL.tag == 3) { - fx_exn_t v_57 = {0}; + fx_exn_t v_58 = {0}; if (*expect_neg_number_0) { - _fx_Ta2i v_58; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_58, 0), _fx_catch_2); + _fx_Ta2i v_59; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_59, 0), _fx_catch_2); fx_str_t slit_2 = FX_MAKE_STR("\'-\' in front of unsigned integer literal"); - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_58, &slit_2, &v_57), _fx_catch_2); - FX_THROW(&v_57, true, _fx_catch_2); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_59, &slit_2, &v_58), _fx_catch_2); + FX_THROW(&v_58, true, _fx_catch_2); } _fx_catch_2: ; - fx_free_exn(&v_57); + fx_free_exn(&v_58); goto _fx_endmatch_2; } } @@ -3798,9 +3807,9 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } else if (c_1 == (char_)99) { if (t_0.tag == 1) { - _fx_N10Ast__lit_t* v_59 = &t_0.u.LITERAL; - if (v_59->tag == 4) { - _fx_M3AstFM8LitFloatN10Ast__lit_t2id(v_59->u.LitFloat.t0, 0.0, &zero_0); goto _fx_endmatch_3; + _fx_N10Ast__lit_t* v_60 = &t_0.u.LITERAL; + if (v_60->tag == 4) { + _fx_M3AstFM8LitFloatN10Ast__lit_t2id(v_60->u.LitFloat.t0, 0.0, &zero_0); goto _fx_endmatch_3; } } _fx_M3AstFM6LitIntN10Ast__lit_t1l(0LL, &zero_0); @@ -3844,7 +3853,7 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_19, 0, true, &tokens_0), _fx_cleanup); } else { - bool v_60; + bool v_61; bool t_4; if (c_0 == (char_)39) { t_4 = _fx_M4CharFM7isalphaB1C(c1_0, 0); @@ -3853,19 +3862,19 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( t_4 = false; } if (t_4) { - int_ v_61 = *pos_0 + 2; v_60 = FX_STR_ELEM_ZERO(buf_0, v_61) != (char_)39; + int_ v_62 = *pos_0 + 2; char_ v_63 = FX_STR_ELEM_ZERO(buf_0, v_62); v_61 = v_63 != (char_)39; } else { - v_60 = false; + v_61 = false; } - if (v_60) { + if (v_61) { int_ p_2 = *pos_0 + 1; while (p_2 < len_0) { FX_STR_CHKIDX(buf_0, p_2, _fx_catch_3); char_ cp_0 = FX_STR_ELEM(buf_0, p_2); - bool v_62 = _fx_M4CharFM7isalnumB1C(cp_0, 0); + bool v_64 = _fx_M4CharFM7isalnumB1C(cp_0, 0); bool t_5; - if (!v_62) { + if (!v_64) { t_5 = cp_0 != (char_)95; } else { @@ -3932,10 +3941,10 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( termpos_0 = *pos_0; } char_ term_0 = FX_STR_ELEM_ZERO(buf_0, termpos_0); - _fx_Ta2i v_63; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(termpos_0 + 1, strm_0, &v_63, 0), _fx_cleanup); + _fx_Ta2i v_65; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(termpos_0 + 1, strm_0, &v_65, 0), _fx_cleanup); FX_CALL( - _fx_M10LexerUtilsFM9getstringT4iSiB6SiTa2iCBB(&buf_0, termpos_0 + 1, &v_63, term_0, c_0 == (char_)114, + _fx_M10LexerUtilsFM9getstringT4iSiB6SiTa2iCBB(&buf_0, termpos_0 + 1, &v_65, term_0, c_0 == (char_)114, c_0 == (char_)102, &v_23, 0), _fx_cleanup); int_ p_3 = v_23.t0; fx_copy_str(&v_23.t1, &res_0); @@ -3950,22 +3959,23 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( int_ res_2; FX_CALL(_fx_M5LexerFM6lengthi1S(&res_0, &res_2, 0), _fx_cleanup); if (res_2 != 1) { - _fx_Ta2i v_64; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_64, 0), _fx_cleanup); + _fx_Ta2i v_66; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_66, 0), _fx_cleanup); fx_str_t slit_5 = FX_MAKE_STR("character literal should contain exactly one character"); - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_64, &slit_5, &v_24), _fx_cleanup); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_66, &slit_5, &v_24), _fx_cleanup); FX_THROW(&v_24, true, _fx_cleanup); } FX_STR_CHKIDX(res_0, 0, _fx_cleanup); - _fx_M3AstFM7LitCharN10Ast__lit_t1C(FX_STR_ELEM(res_0, 0), &v_25); + char_ v_67 = FX_STR_ELEM(res_0, 0); + _fx_M3AstFM7LitCharN10Ast__lit_t1C(v_67, &v_25); _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_25, &v_26); _fx_make_T2N14Lexer__token_tTa2i(&v_26, &loc_0, &v_27); FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_27, 0, true, &tokens_0), _fx_cleanup); } else if (inline_exp_0) { - _fx_Ta2i v_65; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(prev_pos_0, strm_0, &v_65, 0), _fx_cleanup); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g24Lexer__STR_INTERP_LPAREN, &v_65, &v_28); + _fx_Ta2i v_68; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(prev_pos_0, strm_0, &v_68, 0), _fx_cleanup); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g24Lexer__STR_INTERP_LPAREN, &v_68, &v_28); FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_28, *paren_stack_1, true, &v_29), _fx_cleanup); _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); FX_COPY_PTR(v_29, paren_stack_1); @@ -4002,7 +4012,7 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } } else { - bool v_66; + bool v_69; bool t_10; if (_fx_M4CharFM7isalphaB1C(c_0, 0)) { t_10 = true; @@ -4011,22 +4021,22 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( t_10 = c_0 == (char_)95; } if (t_10) { - v_66 = true; + v_69 = true; } else if (c_0 == (char_)64) { - v_66 = _fx_M4CharFM7isalphaB1C(c1_0, 0); + v_69 = _fx_M4CharFM7isalphaB1C(c1_0, 0); } else { - v_66 = false; + v_69 = false; } - if (v_66) { + if (v_69) { int_ p_4 = *pos_0 + 1; while (p_4 < len_0) { FX_STR_CHKIDX(buf_0, p_4, _fx_catch_4); char_ cp_1 = FX_STR_ELEM(buf_0, p_4); - bool v_67 = _fx_M4CharFM7isalnumB1C(cp_1, 0); + bool v_70 = _fx_M4CharFM7isalnumB1C(cp_1, 0); bool t_11; - if (!v_67) { + if (!v_70) { t_11 = cp_1 != (char_)95; } else { @@ -4050,27 +4060,27 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( _fx_g21Lexer__ficus_keywords, &ident_0, &v_45, 0), _fx_cleanup); if (v_45.tag == 2) { _fx_N14Lexer__token_t t_12 = {0}; - _fx_T2N14Lexer__token_tTa2i v_68 = {0}; - _fx_T2N14Lexer__token_ti* v_69 = &v_45.u.Some; - int_ n_0 = v_69->t1; - _fx_N14Lexer__token_t* t_13 = &v_69->t0; + _fx_T2N14Lexer__token_tTa2i v_71 = {0}; + _fx_T2N14Lexer__token_ti* v_72 = &v_45.u.Some; + int_ n_0 = v_72->t1; + _fx_N14Lexer__token_t* t_13 = &v_72->t0; if (t_13->tag == 9) { - _fx_T2N14Lexer__token_tTa2i v_70 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_71 = 0; + _fx_T2N14Lexer__token_tTa2i v_73 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_74 = 0; fx_str_t slit_7 = FX_MAKE_STR("ccode"); FX_CALL(_fx_M5LexerFM8check_nev3BTa2iS(*new_exp_0, &loc_0, &slit_7, 0), _fx_catch_5); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__CCODE, &loc_0, &v_70); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_70, *paren_stack_1, true, &v_71), _fx_catch_5); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__CCODE, &loc_0, &v_73); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_73, *paren_stack_1, true, &v_74), _fx_catch_5); _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); - FX_COPY_PTR(v_71, paren_stack_1); + FX_COPY_PTR(v_74, paren_stack_1); *new_exp_0 = true; _fx_copy_N14Lexer__token_t(t_13, &t_12); _fx_catch_5: ; - if (v_71) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_71); + if (v_74) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_74); } - _fx_free_T2N14Lexer__token_tTa2i(&v_70); + _fx_free_T2N14Lexer__token_tTa2i(&v_73); } else if (t_13->tag == 19) { _fx_N14Lexer__token_t t_14 = {0}; @@ -4094,20 +4104,20 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( _fx_free_N14Lexer__token_t(&t_16); } else if (t_13->tag == 26) { - _fx_T2N14Lexer__token_tTa2i v_72 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_73 = 0; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__MATCH, &loc_0, &v_72); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_72, *paren_stack_1, true, &v_73), _fx_catch_6); + _fx_T2N14Lexer__token_tTa2i v_75 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_76 = 0; + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__MATCH, &loc_0, &v_75); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_75, *paren_stack_1, true, &v_76), _fx_catch_6); _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); - FX_COPY_PTR(v_73, paren_stack_1); + FX_COPY_PTR(v_76, paren_stack_1); *new_exp_0 = true; _fx_copy_N14Lexer__token_t(t_13, &t_12); _fx_catch_6: ; - if (v_73) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_73); + if (v_76) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_76); } - _fx_free_T2N14Lexer__token_tTa2i(&v_72); + _fx_free_T2N14Lexer__token_tTa2i(&v_75); } else if (t_13->tag == 33) { _fx_M5LexerFM3REFN14Lexer__token_t1B(*new_exp_0, &t_12); @@ -4117,33 +4127,35 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } else if (t_13->tag == 34) { _fx_LT2N14Lexer__token_tTa2i paren_stack_2 = 0; - c_0 = FX_STR_ELEM_ZERO(buf_0, *pos_0); - int_ v_74 = *pos_0 + 1; - c1_0 = FX_STR_ELEM_ZERO(buf_0, v_74); - bool v_75; + char_ v_77 = FX_STR_ELEM_ZERO(buf_0, *pos_0); + c_0 = v_77; + int_ v_78 = *pos_0 + 1; + char_ v_79 = FX_STR_ELEM_ZERO(buf_0, v_78); + c1_0 = v_79; + bool v_80; if (_fx_M4CharFM7isspaceB1C(c_0, 0)) { - v_75 = true; + v_80 = true; } else if (c_0 == (char_)47) { if (c1_0 == (char_)47) { - v_75 = true; + v_80 = true; } else { - v_75 = c1_0 == (char_)42; + v_80 = c1_0 == (char_)42; } } else { - v_75 = false; + v_80 = false; } bool may_have_arg_0; - if (v_75) { - _fx_T3CiB v_76; + if (v_80) { + _fx_T3CiB v_81; FX_CALL( - _fx_M10LexerUtilsFM11skip_spacesT3CiB3N20LexerUtils__stream_tiB(strm_0, *pos_0, true, &v_76, 0), + _fx_M10LexerUtilsFM11skip_spacesT3CiB3N20LexerUtils__stream_tiB(strm_0, *pos_0, true, &v_81, 0), _fx_catch_7); - char_ c__1 = v_76.t0; - int_ p_5 = v_76.t1; - bool nl_1 = v_76.t2; + char_ c__1 = v_81.t0; + int_ p_5 = v_81.t1; + bool nl_1 = v_81.t2; c_0 = c__1; *pos_0 = p_5; if (nl_1) { @@ -4229,23 +4241,23 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } } else if (n_0 == -1) { - fx_str_t v_77 = {0}; - fx_str_t v_78 = {0}; - fx_exn_t v_79 = {0}; - FX_CALL(_fx_M5LexerFM6stringS1S(&ident_0, &v_77, 0), _fx_catch_8); + fx_str_t v_82 = {0}; + fx_str_t v_83 = {0}; + fx_exn_t v_84 = {0}; + FX_CALL(_fx_M5LexerFM6stringS1S(&ident_0, &v_82, 0), _fx_catch_8); fx_str_t slit_8 = FX_MAKE_STR("Identifier \'"); fx_str_t slit_9 = FX_MAKE_STR("\' is reserved and cannot be used"); { - const fx_str_t strs_0[] = { slit_8, v_77, slit_9 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_78), _fx_catch_8); + const fx_str_t strs_0[] = { slit_8, v_82, slit_9 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_83), _fx_catch_8); } - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &v_78, &v_79), _fx_catch_8); - FX_THROW(&v_79, true, _fx_catch_8); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &v_83, &v_84), _fx_catch_8); + FX_THROW(&v_84, true, _fx_catch_8); _fx_catch_8: ; - fx_free_exn(&v_79); - FX_FREE_STR(&v_78); - FX_FREE_STR(&v_77); + fx_free_exn(&v_84); + FX_FREE_STR(&v_83); + FX_FREE_STR(&v_82); } else if (n_0 == 0) { FX_CALL(_fx_M5LexerFM8check_nev3BTa2iS(*new_exp_0, &loc_0, &ident_0, 0), _fx_catch_9); @@ -4265,68 +4277,68 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( _fx_catch_10: ; } else { - fx_str_t v_80 = {0}; - fx_str_t v_81 = {0}; - fx_exn_t v_82 = {0}; - FX_CALL(_fx_M5LexerFM6stringS1S(&ident_0, &v_80, 0), _fx_catch_11); + fx_str_t v_85 = {0}; + fx_str_t v_86 = {0}; + fx_exn_t v_87 = {0}; + FX_CALL(_fx_M5LexerFM6stringS1S(&ident_0, &v_85, 0), _fx_catch_11); fx_str_t slit_10 = FX_MAKE_STR("Unexpected keyword \'"); fx_str_t slit_11 = FX_MAKE_STR("\'"); { - const fx_str_t strs_1[] = { slit_10, v_80, slit_11 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_81), _fx_catch_11); + const fx_str_t strs_1[] = { slit_10, v_85, slit_11 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_86), _fx_catch_11); } - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &v_81, &v_82), _fx_catch_11); - FX_THROW(&v_82, true, _fx_catch_11); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &v_86, &v_87), _fx_catch_11); + FX_THROW(&v_87, true, _fx_catch_11); _fx_catch_11: ; - fx_free_exn(&v_82); - FX_FREE_STR(&v_81); - FX_FREE_STR(&v_80); + fx_free_exn(&v_87); + FX_FREE_STR(&v_86); + FX_FREE_STR(&v_85); } FX_CHECK_EXN(_fx_catch_12); - _fx_make_T2N14Lexer__token_tTa2i(&t_12, &loc_0, &v_68); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_68, 0, true, &tokens_0), _fx_catch_12); + _fx_make_T2N14Lexer__token_tTa2i(&t_12, &loc_0, &v_71); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_71, 0, true, &tokens_0), _fx_catch_12); _fx_catch_12: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_68); + _fx_free_T2N14Lexer__token_tTa2i(&v_71); _fx_free_N14Lexer__token_t(&t_12); } else { - fx_str_t v_83 = {0}; + fx_str_t v_88 = {0}; _fx_N14Lexer__token_t t_22 = {0}; - _fx_T2N14Lexer__token_tTa2i v_84 = {0}; - _fx_T2N14Lexer__token_tTa2i v_85 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_86 = 0; + _fx_T2N14Lexer__token_tTa2i v_89 = {0}; + _fx_T2N14Lexer__token_tTa2i v_90 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_91 = 0; _fx_N14Lexer__token_t t_23 = {0}; - _fx_T2N14Lexer__token_tTa2i v_87 = {0}; + _fx_T2N14Lexer__token_tTa2i v_92 = {0}; if (c_0 == (char_)64) { - FX_CALL(fx_substr(&ident_0, 1, 0, 1, 2, &v_83), _fx_catch_13); - _fx_M5LexerFM5IDENTN14Lexer__token_t2BS(*new_exp_0, &v_83, &t_22); + FX_CALL(fx_substr(&ident_0, 1, 0, 1, 2, &v_88), _fx_catch_13); + _fx_M5LexerFM5IDENTN14Lexer__token_t2BS(*new_exp_0, &v_88, &t_22); *new_exp_0 = false; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g9Lexer__AT, &loc_0, &v_84); - _fx_Ta2i v_88; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 + 1, strm_0, &v_88, 0), _fx_catch_13); - _fx_make_T2N14Lexer__token_tTa2i(&t_22, &v_88, &v_85); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_85, 0, true, &v_86), _fx_catch_13); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_84, v_86, true, &tokens_0), _fx_catch_13); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g9Lexer__AT, &loc_0, &v_89); + _fx_Ta2i v_93; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 + 1, strm_0, &v_93, 0), _fx_catch_13); + _fx_make_T2N14Lexer__token_tTa2i(&t_22, &v_93, &v_90); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_90, 0, true, &v_91), _fx_catch_13); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_89, v_91, true, &tokens_0), _fx_catch_13); } else { _fx_M5LexerFM5IDENTN14Lexer__token_t2BS(*new_exp_0, &ident_0, &t_23); *new_exp_0 = false; - _fx_make_T2N14Lexer__token_tTa2i(&t_23, &loc_0, &v_87); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_87, 0, true, &tokens_0), _fx_catch_13); + _fx_make_T2N14Lexer__token_tTa2i(&t_23, &loc_0, &v_92); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_92, 0, true, &tokens_0), _fx_catch_13); } _fx_catch_13: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_87); + _fx_free_T2N14Lexer__token_tTa2i(&v_92); _fx_free_N14Lexer__token_t(&t_23); - if (v_86) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_86); + if (v_91) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_91); } - _fx_free_T2N14Lexer__token_tTa2i(&v_85); - _fx_free_T2N14Lexer__token_tTa2i(&v_84); + _fx_free_T2N14Lexer__token_tTa2i(&v_90); + _fx_free_T2N14Lexer__token_tTa2i(&v_89); _fx_free_N14Lexer__token_t(&t_22); - FX_FREE_STR(&v_83); + FX_FREE_STR(&v_88); } FX_CHECK_EXN(_fx_cleanup); } @@ -4337,36 +4349,36 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( int_ res_4; FX_CALL(_fx_M5LexerFM3mini2ii(*pos_0 + 1, len_0, &res_4, 0), _fx_cleanup); *pos_0 = res_4; - int_ v_89 = *pos_0 + 1; - char_ c2_0 = FX_STR_ELEM_ZERO(buf_0, v_89); - int_ v_90 = *pos_0 + 2; - char_ c3_0 = FX_STR_ELEM_ZERO(buf_0, v_90); + int_ v_94 = *pos_0 + 1; + char_ c2_0 = FX_STR_ELEM_ZERO(buf_0, v_94); + int_ v_95 = *pos_0 + 2; + char_ c3_0 = FX_STR_ELEM_ZERO(buf_0, v_95); char_ c_2 = c_0; if (c_2 == (char_)40) { - _fx_N14Lexer__token_t v_91 = {0}; - _fx_T2N14Lexer__token_tTa2i v_92 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_93 = 0; - _fx_N14Lexer__token_t v_94 = {0}; - _fx_T2N14Lexer__token_tTa2i v_95 = {0}; - _fx_M5LexerFM6LPARENN14Lexer__token_t1B(prev_ne_0, &v_91); - _fx_Ta2i v_96; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_96, 0), _fx_catch_14); - _fx_make_T2N14Lexer__token_tTa2i(&v_91, &v_96, &v_92); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_92, *paren_stack_1, true, &v_93), _fx_catch_14); + _fx_N14Lexer__token_t v_96 = {0}; + _fx_T2N14Lexer__token_tTa2i v_97 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_98 = 0; + _fx_N14Lexer__token_t v_99 = {0}; + _fx_T2N14Lexer__token_tTa2i v_100 = {0}; + _fx_M5LexerFM6LPARENN14Lexer__token_t1B(prev_ne_0, &v_96); + _fx_Ta2i v_101; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_101, 0), _fx_catch_14); + _fx_make_T2N14Lexer__token_tTa2i(&v_96, &v_101, &v_97); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_97, *paren_stack_1, true, &v_98), _fx_catch_14); _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); - FX_COPY_PTR(v_93, paren_stack_1); - _fx_M5LexerFM6LPARENN14Lexer__token_t1B(prev_ne_0, &v_94); - _fx_make_T2N14Lexer__token_tTa2i(&v_94, &loc_0, &v_95); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_95, 0, true, &tokens_0), _fx_catch_14); + FX_COPY_PTR(v_98, paren_stack_1); + _fx_M5LexerFM6LPARENN14Lexer__token_t1B(prev_ne_0, &v_99); + _fx_make_T2N14Lexer__token_tTa2i(&v_99, &loc_0, &v_100); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_100, 0, true, &tokens_0), _fx_catch_14); _fx_catch_14: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_95); - _fx_free_N14Lexer__token_t(&v_94); - if (v_93) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_93); + _fx_free_T2N14Lexer__token_tTa2i(&v_100); + _fx_free_N14Lexer__token_t(&v_99); + if (v_98) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_98); } - _fx_free_T2N14Lexer__token_tTa2i(&v_92); - _fx_free_N14Lexer__token_t(&v_91); + _fx_free_T2N14Lexer__token_tTa2i(&v_97); + _fx_free_N14Lexer__token_t(&v_96); } else if (c_2 == (char_)41) { _fx_LT2N14Lexer__token_tTa2i paren_stack_3 = 0; @@ -4374,25 +4386,25 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( FX_COPY_PTR(*paren_stack_1, &paren_stack_3); if (paren_stack_3 != 0) { if (paren_stack_3->hd.t0.tag == 44) { - _fx_T2N14Lexer__token_tTa2i v_97 = {0}; + _fx_T2N14Lexer__token_tTa2i v_102 = {0}; _fx_LT2N14Lexer__token_tTa2i* rest_0 = &paren_stack_3->tl; _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); FX_COPY_PTR(*rest_0, paren_stack_1); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RPAREN, &loc_0, &v_97); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_97, 0, true, &tokens_0), _fx_catch_15); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RPAREN, &loc_0, &v_102); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_102, 0, true, &tokens_0), _fx_catch_15); _fx_catch_15: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_97); + _fx_free_T2N14Lexer__token_tTa2i(&v_102); goto _fx_endmatch_6; } } - fx_exn_t v_98 = {0}; + fx_exn_t v_103 = {0}; fx_str_t slit_12 = FX_MAKE_STR("Unexpected \')\', check parens"); - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &slit_12, &v_98), _fx_catch_16); - FX_THROW(&v_98, true, _fx_catch_16); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &slit_12, &v_103), _fx_catch_16); + FX_THROW(&v_103, true, _fx_catch_16); _fx_catch_16: ; - fx_free_exn(&v_98); + fx_free_exn(&v_103); _fx_endmatch_6: ; FX_CHECK_EXN(_fx_catch_17); @@ -4403,13 +4415,13 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } } else if (c_2 == (char_)91) { - _fx_N14Lexer__token_t v_99 = {0}; - _fx_T2N14Lexer__token_tTa2i v_100 = {0}; - _fx_N14Lexer__token_t v_101 = {0}; - _fx_T2N14Lexer__token_tTa2i v_102 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_103 = 0; _fx_N14Lexer__token_t v_104 = {0}; _fx_T2N14Lexer__token_tTa2i v_105 = {0}; + _fx_N14Lexer__token_t v_106 = {0}; + _fx_T2N14Lexer__token_tTa2i v_107 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_108 = 0; + _fx_N14Lexer__token_t v_109 = {0}; + _fx_T2N14Lexer__token_tTa2i v_110 = {0}; bool t_24; if (prev_ne_0) { t_24 = c1_0 == (char_)93; @@ -4419,33 +4431,33 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } if (t_24) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&_fx_g15Lexer__LitEmpty, &v_99); - _fx_make_T2N14Lexer__token_tTa2i(&v_99, &loc_0, &v_100); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_100, 0, true, &tokens_0), _fx_catch_18); + _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&_fx_g15Lexer__LitEmpty, &v_104); + _fx_make_T2N14Lexer__token_tTa2i(&v_104, &loc_0, &v_105); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_105, 0, true, &tokens_0), _fx_catch_18); } else { - _fx_M5LexerFM7LSQUAREN14Lexer__token_t1B(prev_ne_0, &v_101); - _fx_Ta2i v_106; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_106, 0), _fx_catch_18); - _fx_make_T2N14Lexer__token_tTa2i(&v_101, &v_106, &v_102); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_102, *paren_stack_1, true, &v_103), _fx_catch_18); + _fx_M5LexerFM7LSQUAREN14Lexer__token_t1B(prev_ne_0, &v_106); + _fx_Ta2i v_111; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_111, 0), _fx_catch_18); + _fx_make_T2N14Lexer__token_tTa2i(&v_106, &v_111, &v_107); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_107, *paren_stack_1, true, &v_108), _fx_catch_18); _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); - FX_COPY_PTR(v_103, paren_stack_1); - _fx_M5LexerFM7LSQUAREN14Lexer__token_t1B(prev_ne_0, &v_104); - _fx_make_T2N14Lexer__token_tTa2i(&v_104, &loc_0, &v_105); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_105, 0, true, &tokens_0), _fx_catch_18); + FX_COPY_PTR(v_108, paren_stack_1); + _fx_M5LexerFM7LSQUAREN14Lexer__token_t1B(prev_ne_0, &v_109); + _fx_make_T2N14Lexer__token_tTa2i(&v_109, &loc_0, &v_110); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_110, 0, true, &tokens_0), _fx_catch_18); } _fx_catch_18: ; + _fx_free_T2N14Lexer__token_tTa2i(&v_110); + _fx_free_N14Lexer__token_t(&v_109); + if (v_108) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_108); + } + _fx_free_T2N14Lexer__token_tTa2i(&v_107); + _fx_free_N14Lexer__token_t(&v_106); _fx_free_T2N14Lexer__token_tTa2i(&v_105); _fx_free_N14Lexer__token_t(&v_104); - if (v_103) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_103); - } - _fx_free_T2N14Lexer__token_tTa2i(&v_102); - _fx_free_N14Lexer__token_t(&v_101); - _fx_free_T2N14Lexer__token_tTa2i(&v_100); - _fx_free_N14Lexer__token_t(&v_99); } else if (c_2 == (char_)93) { _fx_LT2N14Lexer__token_tTa2i paren_stack_4 = 0; @@ -4453,25 +4465,25 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( FX_COPY_PTR(*paren_stack_1, &paren_stack_4); if (paren_stack_4 != 0) { if (paren_stack_4->hd.t0.tag == 47) { - _fx_T2N14Lexer__token_tTa2i v_107 = {0}; + _fx_T2N14Lexer__token_tTa2i v_112 = {0}; _fx_LT2N14Lexer__token_tTa2i* rest_1 = &paren_stack_4->tl; _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); FX_COPY_PTR(*rest_1, paren_stack_1); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g14Lexer__RSQUARE, &loc_0, &v_107); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_107, 0, true, &tokens_0), _fx_catch_19); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g14Lexer__RSQUARE, &loc_0, &v_112); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_112, 0, true, &tokens_0), _fx_catch_19); _fx_catch_19: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_107); + _fx_free_T2N14Lexer__token_tTa2i(&v_112); goto _fx_endmatch_7; } } - fx_exn_t v_108 = {0}; + fx_exn_t v_113 = {0}; fx_str_t slit_13 = FX_MAKE_STR("Unexpected \']\', check parens"); - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &slit_13, &v_108), _fx_catch_20); - FX_THROW(&v_108, true, _fx_catch_20); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &slit_13, &v_113), _fx_catch_20); + FX_THROW(&v_113, true, _fx_catch_20); _fx_catch_20: ; - fx_free_exn(&v_108); + fx_free_exn(&v_113); _fx_endmatch_7: ; FX_CHECK_EXN(_fx_catch_21); @@ -4482,131 +4494,131 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } } else if (c_2 == (char_)123) { - _fx_T2N14Lexer__token_tTa2i v_109 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_110 = 0; + _fx_T2N14Lexer__token_tTa2i v_114 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_115 = 0; _fx_LT2N14Lexer__token_tTa2i paren_stack_5 = 0; - _fx_Ta2i v_111; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_111, 0), _fx_catch_26); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__LBRACE, &v_111, &v_109); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_109, *paren_stack_1, true, &v_110), _fx_catch_26); + _fx_Ta2i v_116; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_116, 0), _fx_catch_26); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__LBRACE, &v_116, &v_114); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_114, *paren_stack_1, true, &v_115), _fx_catch_26); _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); - FX_COPY_PTR(v_110, paren_stack_1); + FX_COPY_PTR(v_115, paren_stack_1); FX_COPY_PTR(*paren_stack_1, &paren_stack_5); if (paren_stack_5 != 0) { if (paren_stack_5->hd.t0.tag == 49) { - _fx_LT2N14Lexer__token_tTa2i v_112 = paren_stack_5->tl; - if (v_112 != 0) { - if (v_112->hd.t0.tag == 9) { - _fx_T2iS v_113 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_117 = paren_stack_5->tl; + if (v_117 != 0) { + if (v_117->hd.t0.tag == 9) { + _fx_T2iS v_118 = {0}; fx_str_t s_0 = {0}; - fx_str_t v_114 = {0}; - _fx_N10Ast__lit_t v_115 = {0}; - _fx_N14Lexer__token_t v_116 = {0}; - _fx_T2N14Lexer__token_tTa2i v_117 = {0}; + fx_str_t v_119 = {0}; + _fx_N10Ast__lit_t v_120 = {0}; + _fx_N14Lexer__token_t v_121 = {0}; + _fx_T2N14Lexer__token_tTa2i v_122 = {0}; *new_exp_0 = false; - _fx_LT2N14Lexer__token_tTa2i* rest_2 = &v_112->tl; + _fx_LT2N14Lexer__token_tTa2i* rest_2 = &v_117->tl; _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); FX_COPY_PTR(*rest_2, paren_stack_1); - FX_CALL(_fx_M5LexerFM9get_ccodeT2iS2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_113, 0), + FX_CALL(_fx_M5LexerFM9get_ccodeT2iS2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_118, 0), _fx_catch_22); - int_ p_6 = v_113.t0; - fx_copy_str(&v_113.t1, &s_0); + int_ p_6 = v_118.t0; + fx_copy_str(&v_118.t1, &s_0); *pos_0 = p_6; - FX_CALL(_fx_M6StringFM5stripS1S(&s_0, &v_114, 0), _fx_catch_22); - _fx_M3AstFM9LitStringN10Ast__lit_t1S(&v_114, &v_115); - _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_115, &v_116); - _fx_make_T2N14Lexer__token_tTa2i(&v_116, &loc_0, &v_117); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_117, 0, true, &tokens_0), _fx_catch_22); + FX_CALL(_fx_M6StringFM5stripS1S(&s_0, &v_119, 0), _fx_catch_22); + _fx_M3AstFM9LitStringN10Ast__lit_t1S(&v_119, &v_120); + _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_120, &v_121); + _fx_make_T2N14Lexer__token_tTa2i(&v_121, &loc_0, &v_122); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_122, 0, true, &tokens_0), _fx_catch_22); _fx_catch_22: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_117); - _fx_free_N14Lexer__token_t(&v_116); - _fx_free_N10Ast__lit_t(&v_115); - FX_FREE_STR(&v_114); + _fx_free_T2N14Lexer__token_tTa2i(&v_122); + _fx_free_N14Lexer__token_t(&v_121); + _fx_free_N10Ast__lit_t(&v_120); + FX_FREE_STR(&v_119); FX_FREE_STR(&s_0); - _fx_free_T2iS(&v_113); + _fx_free_T2iS(&v_118); goto _fx_endmatch_9; } } } } if (paren_stack_5 != 0) { - _fx_LT2N14Lexer__token_tTa2i v_118 = paren_stack_5->tl; - if (v_118 != 0) { - if (v_118->hd.t0.tag == 26) { - _fx_T2N14Lexer__token_tTa2i* v_119 = &paren_stack_5->hd; - if (v_119->t0.tag == 49) { - _fx_T2N14Lexer__token_tTa2i v_120 = {0}; - _fx_T2N14Lexer__token_tTa2i v_121 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_122 = 0; - _fx_T2N14Lexer__token_tTa2i v_123 = {0}; - _fx_Ta2i* l1_0 = &v_119->t1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__BAR, l1_0, &v_120); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__LBRACE, l1_0, &v_121); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_121, v_118->tl, true, &v_122), _fx_catch_23); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_120, v_122, false, &v_122), _fx_catch_23); + _fx_LT2N14Lexer__token_tTa2i v_123 = paren_stack_5->tl; + if (v_123 != 0) { + if (v_123->hd.t0.tag == 26) { + _fx_T2N14Lexer__token_tTa2i* v_124 = &paren_stack_5->hd; + if (v_124->t0.tag == 49) { + _fx_T2N14Lexer__token_tTa2i v_125 = {0}; + _fx_T2N14Lexer__token_tTa2i v_126 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_127 = 0; + _fx_T2N14Lexer__token_tTa2i v_128 = {0}; + _fx_Ta2i* l1_0 = &v_124->t1; + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__BAR, l1_0, &v_125); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__LBRACE, l1_0, &v_126); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_126, v_123->tl, true, &v_127), _fx_catch_23); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_125, v_127, false, &v_127), _fx_catch_23); _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); - FX_COPY_PTR(v_122, paren_stack_1); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__LBRACE, l1_0, &v_123); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_123, 0, true, &tokens_0), _fx_catch_23); + FX_COPY_PTR(v_127, paren_stack_1); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__LBRACE, l1_0, &v_128); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_128, 0, true, &tokens_0), _fx_catch_23); _fx_catch_23: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_123); - if (v_122) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_122); + _fx_free_T2N14Lexer__token_tTa2i(&v_128); + if (v_127) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_127); } - _fx_free_T2N14Lexer__token_tTa2i(&v_121); - _fx_free_T2N14Lexer__token_tTa2i(&v_120); + _fx_free_T2N14Lexer__token_tTa2i(&v_126); + _fx_free_T2N14Lexer__token_tTa2i(&v_125); goto _fx_endmatch_9; } } } } - _fx_T2N14Lexer__token_tTa2i v_124 = {0}; - _fx_T3LT2N14Lexer__token_tTa2iTa2iTa2i v_125 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_126 = 0; - _fx_LT2N14Lexer__token_tTa2i v_127 = 0; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__LBRACE, &loc_0, &v_124); - FX_CALL(_fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0(&v_125, fx_fv), _fx_catch_25); - FX_COPY_PTR(v_125.t0, &v_126); - if (v_126 != 0) { - _fx_T2N14Lexer__token_tTa2i* v_128 = &v_126->hd; - if (v_128->t0.tag == 81) { - _fx_T2N14Lexer__token_tTa2i v_129 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_130 = 0; - _fx_T2N14Lexer__token_tTa2i v_131 = {0}; - _fx_Ta2i* p_7 = &v_128->t1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__BAR, p_7, &v_129); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_129, *paren_stack_1, true, &v_130), _fx_catch_24); + _fx_T2N14Lexer__token_tTa2i v_129 = {0}; + _fx_T3LT2N14Lexer__token_tTa2iTa2iTa2i v_130 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_131 = 0; + _fx_LT2N14Lexer__token_tTa2i v_132 = 0; + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__LBRACE, &loc_0, &v_129); + FX_CALL(_fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0(&v_130, fx_fv), _fx_catch_25); + FX_COPY_PTR(v_130.t0, &v_131); + if (v_131 != 0) { + _fx_T2N14Lexer__token_tTa2i* v_133 = &v_131->hd; + if (v_133->t0.tag == 81) { + _fx_T2N14Lexer__token_tTa2i v_134 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_135 = 0; + _fx_T2N14Lexer__token_tTa2i v_136 = {0}; + _fx_Ta2i* p_7 = &v_133->t1; + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__BAR, p_7, &v_134); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_134, *paren_stack_1, true, &v_135), _fx_catch_24); _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); - FX_COPY_PTR(v_130, paren_stack_1); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__BAR, p_7, &v_131); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_131, v_126->tl, true, &v_127), _fx_catch_24); + FX_COPY_PTR(v_135, paren_stack_1); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__BAR, p_7, &v_136); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_136, v_131->tl, true, &v_132), _fx_catch_24); _fx_catch_24: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_131); - if (v_130) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_130); + _fx_free_T2N14Lexer__token_tTa2i(&v_136); + if (v_135) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_135); } - _fx_free_T2N14Lexer__token_tTa2i(&v_129); + _fx_free_T2N14Lexer__token_tTa2i(&v_134); goto _fx_endmatch_8; } } - FX_COPY_PTR(v_126, &v_127); + FX_COPY_PTR(v_131, &v_132); _fx_endmatch_8: ; FX_CHECK_EXN(_fx_catch_25); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_124, v_127, true, &tokens_0), _fx_catch_25); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_129, v_132, true, &tokens_0), _fx_catch_25); _fx_catch_25: ; - if (v_127) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_127); + if (v_132) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_132); } - if (v_126) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_126); + if (v_131) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_131); } - _fx_free_T3LT2N14Lexer__token_tTa2iTa2iTa2i(&v_125); - _fx_free_T2N14Lexer__token_tTa2i(&v_124); + _fx_free_T3LT2N14Lexer__token_tTa2iTa2iTa2i(&v_130); + _fx_free_T2N14Lexer__token_tTa2i(&v_129); _fx_endmatch_9: ; FX_CHECK_EXN(_fx_catch_26); @@ -4615,10 +4627,10 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( if (paren_stack_5) { _fx_free_LT2N14Lexer__token_tTa2i(&paren_stack_5); } - if (v_110) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_110); + if (v_115) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_115); } - _fx_free_T2N14Lexer__token_tTa2i(&v_109); + _fx_free_T2N14Lexer__token_tTa2i(&v_114); } else if (c_2 == (char_)125) { _fx_LT2N14Lexer__token_tTa2i paren_stack_6 = 0; @@ -4626,153 +4638,153 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( FX_COPY_PTR(*paren_stack_1, &paren_stack_6); if (paren_stack_6 != 0) { if (paren_stack_6->hd.t0.tag == 45) { - _fx_T4iSiB v_132 = {0}; + _fx_T4iSiB v_137 = {0}; fx_str_t s_1 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_133 = 0; - _fx_LT2N14Lexer__token_tTa2i v_134 = 0; - _fx_T2N14Lexer__token_tTa2i v_135 = {0}; - _fx_T2N14Lexer__token_tTa2i v_136 = {0}; - _fx_N14Lexer__token_t v_137 = {0}; - _fx_T2N14Lexer__token_tTa2i v_138 = {0}; - _fx_N10Ast__lit_t v_139 = {0}; - _fx_N14Lexer__token_t v_140 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_138 = 0; + _fx_LT2N14Lexer__token_tTa2i v_139 = 0; + _fx_T2N14Lexer__token_tTa2i v_140 = {0}; _fx_T2N14Lexer__token_tTa2i v_141 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_142 = 0; - _fx_LT2N14Lexer__token_tTa2i v_143 = 0; - _fx_T2N14Lexer__token_tTa2i v_144 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_145 = 0; - _fx_N14Lexer__token_t v_146 = {0}; - _fx_T2N14Lexer__token_tTa2i v_147 = {0}; - _fx_N14Lexer__token_t v_148 = {0}; + _fx_N14Lexer__token_t v_142 = {0}; + _fx_T2N14Lexer__token_tTa2i v_143 = {0}; + _fx_N10Ast__lit_t v_144 = {0}; + _fx_N14Lexer__token_t v_145 = {0}; + _fx_T2N14Lexer__token_tTa2i v_146 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_147 = 0; + _fx_LT2N14Lexer__token_tTa2i v_148 = 0; _fx_T2N14Lexer__token_tTa2i v_149 = {0}; - _fx_N14Lexer__token_t v_150 = {0}; - _fx_T2N14Lexer__token_tTa2i v_151 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_152 = 0; - _fx_T2N14Lexer__token_tTa2i v_153 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_154 = 0; + _fx_LT2N14Lexer__token_tTa2i v_150 = 0; + _fx_N14Lexer__token_t v_151 = {0}; + _fx_T2N14Lexer__token_tTa2i v_152 = {0}; + _fx_N14Lexer__token_t v_153 = {0}; + _fx_T2N14Lexer__token_tTa2i v_154 = {0}; + _fx_N14Lexer__token_t v_155 = {0}; + _fx_T2N14Lexer__token_tTa2i v_156 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_157 = 0; + _fx_T2N14Lexer__token_tTa2i v_158 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_159 = 0; _fx_LT2N14Lexer__token_tTa2i* rest_3 = &paren_stack_6->tl; _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); FX_COPY_PTR(*rest_3, paren_stack_1); - _fx_Ta2i v_155; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_155, 0), _fx_catch_27); + _fx_Ta2i v_160; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_160, 0), _fx_catch_27); char_ res_5; FX_CALL(_fx_F3chrC1i(34, &res_5, 0), _fx_catch_27); FX_CALL( - _fx_M10LexerUtilsFM9getstringT4iSiB6SiTa2iCBB(&buf_0, *pos_0, &v_155, res_5, false, true, &v_132, + _fx_M10LexerUtilsFM9getstringT4iSiB6SiTa2iCBB(&buf_0, *pos_0, &v_160, res_5, false, true, &v_137, 0), _fx_catch_27); - int_ p_8 = v_132.t0; - fx_copy_str(&v_132.t1, &s_1); - int_ dl_1 = v_132.t2; - bool inline_exp_1 = v_132.t3; + int_ p_8 = v_137.t0; + fx_copy_str(&v_137.t1, &s_1); + int_ dl_1 = v_137.t2; + bool inline_exp_1 = v_137.t3; strm_0->u.stream_t.t1 = strm_0->u.stream_t.t1 + dl_1; *pos_0 = p_8; _fx_Nt6option1R8format_t fmt_curr_0 = *fmt_0; *fmt_0 = _fx_g13Lexer__None1_; FX_CALL( _fx_M5LexerFM10fmt2tokensLT2N14Lexer__token_tTa2i2Nt6option1R8format_tTa2i(&fmt_curr_0, &loc_0, - &v_133, 0), _fx_catch_27); + &v_138, 0), _fx_catch_27); if (FX_STR_LENGTH(s_1) == 0) { - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RPAREN, &loc_0, &v_135); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_135, 0, true, &v_134), _fx_catch_27); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RPAREN, &loc_0, &v_140); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_140, 0, true, &v_139), _fx_catch_27); } else { - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RPAREN, &loc_0, &v_136); - _fx_M5LexerFM4PLUSN14Lexer__token_t1B(false, &v_137); - _fx_make_T2N14Lexer__token_tTa2i(&v_137, &loc_0, &v_138); - _fx_M3AstFM9LitStringN10Ast__lit_t1S(&s_1, &v_139); - _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_139, &v_140); - _fx_make_T2N14Lexer__token_tTa2i(&v_140, &loc_0, &v_141); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_141, 0, true, &v_142), _fx_catch_27); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_138, v_142, false, &v_142), _fx_catch_27); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_136, v_142, true, &v_134), _fx_catch_27); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RPAREN, &loc_0, &v_141); + _fx_M5LexerFM4PLUSN14Lexer__token_t1B(false, &v_142); + _fx_make_T2N14Lexer__token_tTa2i(&v_142, &loc_0, &v_143); + _fx_M3AstFM9LitStringN10Ast__lit_t1S(&s_1, &v_144); + _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_144, &v_145); + _fx_make_T2N14Lexer__token_tTa2i(&v_145, &loc_0, &v_146); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_146, 0, true, &v_147), _fx_catch_27); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_143, v_147, false, &v_147), _fx_catch_27); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_141, v_147, true, &v_139), _fx_catch_27); } if (inline_exp_1) { *new_exp_0 = true; - _fx_Ta2i v_156; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_156, 0), + _fx_Ta2i v_161; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_161, 0), _fx_catch_27); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g24Lexer__STR_INTERP_LPAREN, &v_156, &v_144); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_144, *paren_stack_1, true, &v_145), _fx_catch_27); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g24Lexer__STR_INTERP_LPAREN, &v_161, &v_149); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_149, *paren_stack_1, true, &v_150), _fx_catch_27); _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); - FX_COPY_PTR(v_145, paren_stack_1); - _fx_M5LexerFM4PLUSN14Lexer__token_t1B(false, &v_146); - _fx_make_T2N14Lexer__token_tTa2i(&v_146, &loc_0, &v_147); + FX_COPY_PTR(v_150, paren_stack_1); + _fx_M5LexerFM4PLUSN14Lexer__token_t1B(false, &v_151); + _fx_make_T2N14Lexer__token_tTa2i(&v_151, &loc_0, &v_152); fx_str_t slit_14 = FX_MAKE_STR("string"); - _fx_M5LexerFM5IDENTN14Lexer__token_t2BS(true, &slit_14, &v_148); - _fx_make_T2N14Lexer__token_tTa2i(&v_148, &loc_0, &v_149); - _fx_M5LexerFM6LPARENN14Lexer__token_t1B(false, &v_150); - _fx_make_T2N14Lexer__token_tTa2i(&v_150, &loc_0, &v_151); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_151, 0, true, &v_152), _fx_catch_27); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_149, v_152, false, &v_152), _fx_catch_27); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_147, v_152, true, &v_143), _fx_catch_27); + _fx_M5LexerFM5IDENTN14Lexer__token_t2BS(true, &slit_14, &v_153); + _fx_make_T2N14Lexer__token_tTa2i(&v_153, &loc_0, &v_154); + _fx_M5LexerFM6LPARENN14Lexer__token_t1B(false, &v_155); + _fx_make_T2N14Lexer__token_tTa2i(&v_155, &loc_0, &v_156); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_156, 0, true, &v_157), _fx_catch_27); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_154, v_157, false, &v_157), _fx_catch_27); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_152, v_157, true, &v_148), _fx_catch_27); } else { - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RPAREN, &loc_0, &v_153); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_153, 0, true, &v_143), _fx_catch_27); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RPAREN, &loc_0, &v_158); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_158, 0, true, &v_148), _fx_catch_27); } FX_CALL( _fx_M5LexerFM7__add__LT2N14Lexer__token_tTa2i2LT2N14Lexer__token_tTa2iLT2N14Lexer__token_tTa2i( - v_134, v_143, &v_154, 0), _fx_catch_27); + v_139, v_148, &v_159, 0), _fx_catch_27); FX_CALL( _fx_M5LexerFM7__add__LT2N14Lexer__token_tTa2i2LT2N14Lexer__token_tTa2iLT2N14Lexer__token_tTa2i( - v_133, v_154, &tokens_0, 0), _fx_catch_27); + v_138, v_159, &tokens_0, 0), _fx_catch_27); _fx_catch_27: ; - if (v_154) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_154); + if (v_159) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_159); } - _fx_free_T2N14Lexer__token_tTa2i(&v_153); - if (v_152) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_152); + _fx_free_T2N14Lexer__token_tTa2i(&v_158); + if (v_157) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_157); } - _fx_free_T2N14Lexer__token_tTa2i(&v_151); - _fx_free_N14Lexer__token_t(&v_150); - _fx_free_T2N14Lexer__token_tTa2i(&v_149); - _fx_free_N14Lexer__token_t(&v_148); - _fx_free_T2N14Lexer__token_tTa2i(&v_147); - _fx_free_N14Lexer__token_t(&v_146); - if (v_145) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_145); + _fx_free_T2N14Lexer__token_tTa2i(&v_156); + _fx_free_N14Lexer__token_t(&v_155); + _fx_free_T2N14Lexer__token_tTa2i(&v_154); + _fx_free_N14Lexer__token_t(&v_153); + _fx_free_T2N14Lexer__token_tTa2i(&v_152); + _fx_free_N14Lexer__token_t(&v_151); + if (v_150) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_150); } - _fx_free_T2N14Lexer__token_tTa2i(&v_144); - if (v_143) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_143); + _fx_free_T2N14Lexer__token_tTa2i(&v_149); + if (v_148) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_148); } - if (v_142) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_142); + if (v_147) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_147); } + _fx_free_T2N14Lexer__token_tTa2i(&v_146); + _fx_free_N14Lexer__token_t(&v_145); + _fx_free_N10Ast__lit_t(&v_144); + _fx_free_T2N14Lexer__token_tTa2i(&v_143); + _fx_free_N14Lexer__token_t(&v_142); _fx_free_T2N14Lexer__token_tTa2i(&v_141); - _fx_free_N14Lexer__token_t(&v_140); - _fx_free_N10Ast__lit_t(&v_139); - _fx_free_T2N14Lexer__token_tTa2i(&v_138); - _fx_free_N14Lexer__token_t(&v_137); - _fx_free_T2N14Lexer__token_tTa2i(&v_136); - _fx_free_T2N14Lexer__token_tTa2i(&v_135); - if (v_134) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_134); + _fx_free_T2N14Lexer__token_tTa2i(&v_140); + if (v_139) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_139); } - if (v_133) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_133); + if (v_138) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_138); } FX_FREE_STR(&s_1); - _fx_free_T4iSiB(&v_132); + _fx_free_T4iSiB(&v_137); goto _fx_endmatch_10; } } if (paren_stack_6 != 0) { if (paren_stack_6->hd.t0.tag == 55) { - _fx_LT2N14Lexer__token_tTa2i v_157 = paren_stack_6->tl; - if (v_157 != 0) { - if (v_157->hd.t0.tag == 49) { - _fx_T2N14Lexer__token_tTa2i v_158 = {0}; - _fx_LT2N14Lexer__token_tTa2i* rest_4 = &v_157->tl; + _fx_LT2N14Lexer__token_tTa2i v_162 = paren_stack_6->tl; + if (v_162 != 0) { + if (v_162->hd.t0.tag == 49) { + _fx_T2N14Lexer__token_tTa2i v_163 = {0}; + _fx_LT2N14Lexer__token_tTa2i* rest_4 = &v_162->tl; _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); FX_COPY_PTR(*rest_4, paren_stack_1); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RBRACE, &loc_0, &v_158); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_158, 0, true, &tokens_0), _fx_catch_28); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RBRACE, &loc_0, &v_163); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_163, 0, true, &tokens_0), _fx_catch_28); _fx_catch_28: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_158); + _fx_free_T2N14Lexer__token_tTa2i(&v_163); goto _fx_endmatch_10; } } @@ -4780,25 +4792,25 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } if (paren_stack_6 != 0) { if (paren_stack_6->hd.t0.tag == 49) { - _fx_T2N14Lexer__token_tTa2i v_159 = {0}; + _fx_T2N14Lexer__token_tTa2i v_164 = {0}; _fx_LT2N14Lexer__token_tTa2i* rest_5 = &paren_stack_6->tl; _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); FX_COPY_PTR(*rest_5, paren_stack_1); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RBRACE, &loc_0, &v_159); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_159, 0, true, &tokens_0), _fx_catch_29); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RBRACE, &loc_0, &v_164); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_164, 0, true, &tokens_0), _fx_catch_29); _fx_catch_29: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_159); + _fx_free_T2N14Lexer__token_tTa2i(&v_164); goto _fx_endmatch_10; } } - fx_exn_t v_160 = {0}; + fx_exn_t v_165 = {0}; fx_str_t slit_15 = FX_MAKE_STR("Unexpected \'}\', check parens"); - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &slit_15, &v_160), _fx_catch_30); - FX_THROW(&v_160, true, _fx_catch_30); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &slit_15, &v_165), _fx_catch_30); + FX_THROW(&v_165, true, _fx_catch_30); _fx_catch_30: ; - fx_free_exn(&v_160); + fx_free_exn(&v_165); _fx_endmatch_10: ; FX_CHECK_EXN(_fx_catch_31); @@ -4809,45 +4821,45 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } } else if (c_2 == (char_)124) { - _fx_N14Lexer__token_t v_161 = {0}; - _fx_T2N14Lexer__token_tTa2i v_162 = {0}; - _fx_T2N14Lexer__token_tTa2i v_163 = {0}; + _fx_N14Lexer__token_t v_166 = {0}; + _fx_T2N14Lexer__token_tTa2i v_167 = {0}; + _fx_T2N14Lexer__token_tTa2i v_168 = {0}; _fx_LT2N14Lexer__token_tTa2i paren_stack_7 = 0; if (c1_0 == (char_)61) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g18Lexer__OpBitwiseOr, &v_161); - _fx_make_T2N14Lexer__token_tTa2i(&v_161, &loc_0, &v_162); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_162, 0, true, &tokens_0), _fx_catch_34); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g18Lexer__OpBitwiseOr, &v_166); + _fx_make_T2N14Lexer__token_tTa2i(&v_166, &loc_0, &v_167); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_167, 0, true, &tokens_0), _fx_catch_34); } else if (c1_0 == (char_)124) { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g17Lexer__LOGICAL_OR, &loc_0, &v_163); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_163, 0, true, &tokens_0), _fx_catch_34); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g17Lexer__LOGICAL_OR, &loc_0, &v_168); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_168, 0, true, &tokens_0), _fx_catch_34); } else { FX_COPY_PTR(*paren_stack_1, &paren_stack_7); if (paren_stack_7 != 0) { - _fx_LT2N14Lexer__token_tTa2i v_164 = paren_stack_7->tl; - if (v_164 != 0) { + _fx_LT2N14Lexer__token_tTa2i v_169 = paren_stack_7->tl; + if (v_169 != 0) { if (paren_stack_7->hd.t0.tag == 55) { - if (v_164->hd.t0.tag == 49) { - _fx_T2N14Lexer__token_tTa2i v_165 = {0}; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__BAR, &loc_0, &v_165); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_165, 0, true, &tokens_0), _fx_catch_32); + if (v_169->hd.t0.tag == 49) { + _fx_T2N14Lexer__token_tTa2i v_170 = {0}; + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__BAR, &loc_0, &v_170); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_170, 0, true, &tokens_0), _fx_catch_32); _fx_catch_32: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_165); + _fx_free_T2N14Lexer__token_tTa2i(&v_170); goto _fx_endmatch_11; } } } } - _fx_T2N14Lexer__token_tTa2i v_166 = {0}; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g17Lexer__BITWISE_OR, &loc_0, &v_166); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_166, 0, true, &tokens_0), _fx_catch_33); + _fx_T2N14Lexer__token_tTa2i v_171 = {0}; + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g17Lexer__BITWISE_OR, &loc_0, &v_171); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_171, 0, true, &tokens_0), _fx_catch_33); _fx_catch_33: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_166); + _fx_free_T2N14Lexer__token_tTa2i(&v_171); _fx_endmatch_11: ; FX_CHECK_EXN(_fx_catch_34); @@ -4857,98 +4869,76 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( if (paren_stack_7) { _fx_free_LT2N14Lexer__token_tTa2i(&paren_stack_7); } - _fx_free_T2N14Lexer__token_tTa2i(&v_163); - _fx_free_T2N14Lexer__token_tTa2i(&v_162); - _fx_free_N14Lexer__token_t(&v_161); + _fx_free_T2N14Lexer__token_tTa2i(&v_168); + _fx_free_T2N14Lexer__token_tTa2i(&v_167); + _fx_free_N14Lexer__token_t(&v_166); } else if (c_2 == (char_)43) { - _fx_N14Lexer__token_t v_167 = {0}; - _fx_T2N14Lexer__token_tTa2i v_168 = {0}; - _fx_N14Lexer__token_t v_169 = {0}; - _fx_T2N14Lexer__token_tTa2i v_170 = {0}; + _fx_N14Lexer__token_t v_172 = {0}; + _fx_T2N14Lexer__token_tTa2i v_173 = {0}; + _fx_N14Lexer__token_t v_174 = {0}; + _fx_T2N14Lexer__token_tTa2i v_175 = {0}; if (c1_0 == (char_)61) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g12Lexer__OpAdd, &v_167); - _fx_make_T2N14Lexer__token_tTa2i(&v_167, &loc_0, &v_168); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_168, 0, true, &tokens_0), _fx_catch_35); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g12Lexer__OpAdd, &v_172); + _fx_make_T2N14Lexer__token_tTa2i(&v_172, &loc_0, &v_173); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_173, 0, true, &tokens_0), _fx_catch_35); } else { - _fx_M5LexerFM4PLUSN14Lexer__token_t1B(prev_ne_0, &v_169); - _fx_make_T2N14Lexer__token_tTa2i(&v_169, &loc_0, &v_170); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_170, 0, true, &tokens_0), _fx_catch_35); + _fx_M5LexerFM4PLUSN14Lexer__token_t1B(prev_ne_0, &v_174); + _fx_make_T2N14Lexer__token_tTa2i(&v_174, &loc_0, &v_175); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_175, 0, true, &tokens_0), _fx_catch_35); } _fx_catch_35: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_170); - _fx_free_N14Lexer__token_t(&v_169); - _fx_free_T2N14Lexer__token_tTa2i(&v_168); - _fx_free_N14Lexer__token_t(&v_167); + _fx_free_T2N14Lexer__token_tTa2i(&v_175); + _fx_free_N14Lexer__token_t(&v_174); + _fx_free_T2N14Lexer__token_tTa2i(&v_173); + _fx_free_N14Lexer__token_t(&v_172); } else if (c_2 == (char_)45) { - _fx_N14Lexer__token_t v_171 = {0}; - _fx_T2N14Lexer__token_tTa2i v_172 = {0}; - _fx_T2N14Lexer__token_tTa2i v_173 = {0}; - _fx_N14Lexer__token_t v_174 = {0}; - _fx_T2N14Lexer__token_tTa2i v_175 = {0}; - _fx_T3LT2N14Lexer__token_tTa2iTa2iTa2i v_176 = {0}; + _fx_N14Lexer__token_t v_176 = {0}; + _fx_T2N14Lexer__token_tTa2i v_177 = {0}; + _fx_T2N14Lexer__token_tTa2i v_178 = {0}; + _fx_N14Lexer__token_t v_179 = {0}; + _fx_T2N14Lexer__token_tTa2i v_180 = {0}; + _fx_T3LT2N14Lexer__token_tTa2iTa2iTa2i v_181 = {0}; _fx_LT2N14Lexer__token_tTa2i ts_0 = 0; if (c1_0 == (char_)61) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g12Lexer__OpSub, &v_171); - _fx_make_T2N14Lexer__token_tTa2i(&v_171, &loc_0, &v_172); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_172, 0, true, &tokens_0), _fx_catch_40); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g12Lexer__OpSub, &v_176); + _fx_make_T2N14Lexer__token_tTa2i(&v_176, &loc_0, &v_177); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_177, 0, true, &tokens_0), _fx_catch_40); } else if (c1_0 == (char_)62) { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__ARROW, &loc_0, &v_173); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_173, 0, true, &tokens_0), _fx_catch_40); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__ARROW, &loc_0, &v_178); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_178, 0, true, &tokens_0), _fx_catch_40); } else if (!prev_ne_0) { - _fx_M5LexerFM5MINUSN14Lexer__token_t1B(false, &v_174); - _fx_make_T2N14Lexer__token_tTa2i(&v_174, &loc_0, &v_175); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_175, 0, true, &tokens_0), _fx_catch_40); + _fx_M5LexerFM5MINUSN14Lexer__token_t1B(false, &v_179); + _fx_make_T2N14Lexer__token_tTa2i(&v_179, &loc_0, &v_180); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_180, 0, true, &tokens_0), _fx_catch_40); } else { *expect_neg_number_0 = !*expect_neg_number_0; - FX_CALL(_fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0(&v_176, fx_fv), _fx_catch_40); - FX_COPY_PTR(v_176.t0, &ts_0); + FX_CALL(_fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0(&v_181, fx_fv), _fx_catch_40); + FX_COPY_PTR(v_181.t0, &ts_0); *expect_neg_number_0 = !*expect_neg_number_0; - if (ts_0 != 0) { - _fx_N14Lexer__token_t* v_177 = &ts_0->hd.t0; - if (v_177->tag == 1) { - _fx_N10Ast__lit_t* v_178 = &v_177->u.LITERAL; - if (v_178->tag == 1) { - _fx_N10Ast__lit_t v_179 = {0}; - _fx_N14Lexer__token_t v_180 = {0}; - _fx_T2N14Lexer__token_tTa2i v_181 = {0}; - _fx_M3AstFM6LitIntN10Ast__lit_t1l(-v_178->u.LitInt, &v_179); - _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_179, &v_180); - _fx_make_T2N14Lexer__token_tTa2i(&v_180, &loc_0, &v_181); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_181, ts_0->tl, true, &tokens_0), _fx_catch_36); - - _fx_catch_36: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_181); - _fx_free_N14Lexer__token_t(&v_180); - _fx_free_N10Ast__lit_t(&v_179); - goto _fx_endmatch_12; - } - } - } if (ts_0 != 0) { _fx_N14Lexer__token_t* v_182 = &ts_0->hd.t0; if (v_182->tag == 1) { _fx_N10Ast__lit_t* v_183 = &v_182->u.LITERAL; - if (v_183->tag == 2) { + if (v_183->tag == 1) { _fx_N10Ast__lit_t v_184 = {0}; _fx_N14Lexer__token_t v_185 = {0}; _fx_T2N14Lexer__token_tTa2i v_186 = {0}; - _fx_T2il* vcase_0 = &v_183->u.LitSInt; - _fx_M3AstFM7LitSIntN10Ast__lit_t2il(vcase_0->t0, -vcase_0->t1, &v_184); + _fx_M3AstFM6LitIntN10Ast__lit_t1l(-v_183->u.LitInt, &v_184); _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_184, &v_185); _fx_make_T2N14Lexer__token_tTa2i(&v_185, &loc_0, &v_186); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_186, ts_0->tl, true, &tokens_0), _fx_catch_37); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_186, ts_0->tl, true, &tokens_0), _fx_catch_36); - _fx_catch_37: ; + _fx_catch_36: ; _fx_free_T2N14Lexer__token_tTa2i(&v_186); _fx_free_N14Lexer__token_t(&v_185); _fx_free_N10Ast__lit_t(&v_184); @@ -4960,17 +4950,17 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( _fx_N14Lexer__token_t* v_187 = &ts_0->hd.t0; if (v_187->tag == 1) { _fx_N10Ast__lit_t* v_188 = &v_187->u.LITERAL; - if (v_188->tag == 4) { + if (v_188->tag == 2) { _fx_N10Ast__lit_t v_189 = {0}; _fx_N14Lexer__token_t v_190 = {0}; _fx_T2N14Lexer__token_tTa2i v_191 = {0}; - _fx_T2id* vcase_1 = &v_188->u.LitFloat; - _fx_M3AstFM8LitFloatN10Ast__lit_t2id(vcase_1->t0, -vcase_1->t1, &v_189); + _fx_T2il* vcase_0 = &v_188->u.LitSInt; + _fx_M3AstFM7LitSIntN10Ast__lit_t2il(vcase_0->t0, -vcase_0->t1, &v_189); _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_189, &v_190); _fx_make_T2N14Lexer__token_tTa2i(&v_190, &loc_0, &v_191); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_191, ts_0->tl, true, &tokens_0), _fx_catch_38); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_191, ts_0->tl, true, &tokens_0), _fx_catch_37); - _fx_catch_38: ; + _fx_catch_37: ; _fx_free_T2N14Lexer__token_tTa2i(&v_191); _fx_free_N14Lexer__token_t(&v_190); _fx_free_N10Ast__lit_t(&v_189); @@ -4978,15 +4968,37 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } } } - _fx_N14Lexer__token_t v_192 = {0}; - _fx_T2N14Lexer__token_tTa2i v_193 = {0}; - _fx_M5LexerFM5MINUSN14Lexer__token_t1B(true, &v_192); - _fx_make_T2N14Lexer__token_tTa2i(&v_192, &loc_0, &v_193); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_193, ts_0, true, &tokens_0), _fx_catch_39); + if (ts_0 != 0) { + _fx_N14Lexer__token_t* v_192 = &ts_0->hd.t0; + if (v_192->tag == 1) { + _fx_N10Ast__lit_t* v_193 = &v_192->u.LITERAL; + if (v_193->tag == 4) { + _fx_N10Ast__lit_t v_194 = {0}; + _fx_N14Lexer__token_t v_195 = {0}; + _fx_T2N14Lexer__token_tTa2i v_196 = {0}; + _fx_T2id* vcase_1 = &v_193->u.LitFloat; + _fx_M3AstFM8LitFloatN10Ast__lit_t2id(vcase_1->t0, -vcase_1->t1, &v_194); + _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_194, &v_195); + _fx_make_T2N14Lexer__token_tTa2i(&v_195, &loc_0, &v_196); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_196, ts_0->tl, true, &tokens_0), _fx_catch_38); + + _fx_catch_38: ; + _fx_free_T2N14Lexer__token_tTa2i(&v_196); + _fx_free_N14Lexer__token_t(&v_195); + _fx_free_N10Ast__lit_t(&v_194); + goto _fx_endmatch_12; + } + } + } + _fx_N14Lexer__token_t v_197 = {0}; + _fx_T2N14Lexer__token_tTa2i v_198 = {0}; + _fx_M5LexerFM5MINUSN14Lexer__token_t1B(true, &v_197); + _fx_make_T2N14Lexer__token_tTa2i(&v_197, &loc_0, &v_198); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_198, ts_0, true, &tokens_0), _fx_catch_39); _fx_catch_39: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_193); - _fx_free_N14Lexer__token_t(&v_192); + _fx_free_T2N14Lexer__token_tTa2i(&v_198); + _fx_free_N14Lexer__token_t(&v_197); _fx_endmatch_12: ; FX_CHECK_EXN(_fx_catch_40); @@ -4996,24 +5008,24 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( if (ts_0) { _fx_free_LT2N14Lexer__token_tTa2i(&ts_0); } - _fx_free_T3LT2N14Lexer__token_tTa2iTa2iTa2i(&v_176); - _fx_free_T2N14Lexer__token_tTa2i(&v_175); - _fx_free_N14Lexer__token_t(&v_174); - _fx_free_T2N14Lexer__token_tTa2i(&v_173); - _fx_free_T2N14Lexer__token_tTa2i(&v_172); - _fx_free_N14Lexer__token_t(&v_171); + _fx_free_T3LT2N14Lexer__token_tTa2iTa2iTa2i(&v_181); + _fx_free_T2N14Lexer__token_tTa2i(&v_180); + _fx_free_N14Lexer__token_t(&v_179); + _fx_free_T2N14Lexer__token_tTa2i(&v_178); + _fx_free_T2N14Lexer__token_tTa2i(&v_177); + _fx_free_N14Lexer__token_t(&v_176); } else if (c_2 == (char_)42) { - _fx_N14Lexer__token_t v_194 = {0}; - _fx_T2N14Lexer__token_tTa2i v_195 = {0}; - _fx_T2N14Lexer__token_tTa2i v_196 = {0}; - _fx_N14Lexer__token_t v_197 = {0}; - _fx_T2N14Lexer__token_tTa2i v_198 = {0}; + _fx_N14Lexer__token_t v_199 = {0}; + _fx_T2N14Lexer__token_tTa2i v_200 = {0}; + _fx_T2N14Lexer__token_tTa2i v_201 = {0}; + _fx_N14Lexer__token_t v_202 = {0}; + _fx_T2N14Lexer__token_tTa2i v_203 = {0}; if (c1_0 == (char_)61) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g12Lexer__OpMul, &v_194); - _fx_make_T2N14Lexer__token_tTa2i(&v_194, &loc_0, &v_195); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_195, 0, true, &tokens_0), _fx_catch_41); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g12Lexer__OpMul, &v_199); + _fx_make_T2N14Lexer__token_tTa2i(&v_199, &loc_0, &v_200); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_200, 0, true, &tokens_0), _fx_catch_41); } else { bool t_25; @@ -5025,219 +5037,219 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } if (t_25) { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__POWER, &loc_0, &v_196); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_196, 0, true, &tokens_0), _fx_catch_41); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__POWER, &loc_0, &v_201); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_201, 0, true, &tokens_0), _fx_catch_41); } else { - _fx_M5LexerFM4STARN14Lexer__token_t1B(prev_ne_0, &v_197); - _fx_make_T2N14Lexer__token_tTa2i(&v_197, &loc_0, &v_198); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_198, 0, true, &tokens_0), _fx_catch_41); + _fx_M5LexerFM4STARN14Lexer__token_t1B(prev_ne_0, &v_202); + _fx_make_T2N14Lexer__token_tTa2i(&v_202, &loc_0, &v_203); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_203, 0, true, &tokens_0), _fx_catch_41); } } _fx_catch_41: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_198); - _fx_free_N14Lexer__token_t(&v_197); - _fx_free_T2N14Lexer__token_tTa2i(&v_196); - _fx_free_T2N14Lexer__token_tTa2i(&v_195); - _fx_free_N14Lexer__token_t(&v_194); + _fx_free_T2N14Lexer__token_tTa2i(&v_203); + _fx_free_N14Lexer__token_t(&v_202); + _fx_free_T2N14Lexer__token_tTa2i(&v_201); + _fx_free_T2N14Lexer__token_tTa2i(&v_200); + _fx_free_N14Lexer__token_t(&v_199); } else if (c_2 == (char_)47) { - _fx_N14Lexer__token_t v_199 = {0}; - _fx_T2N14Lexer__token_tTa2i v_200 = {0}; - _fx_T2N14Lexer__token_tTa2i v_201 = {0}; + _fx_N14Lexer__token_t v_204 = {0}; + _fx_T2N14Lexer__token_tTa2i v_205 = {0}; + _fx_T2N14Lexer__token_tTa2i v_206 = {0}; if (c1_0 == (char_)61) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g12Lexer__OpDiv, &v_199); - _fx_make_T2N14Lexer__token_tTa2i(&v_199, &loc_0, &v_200); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_200, 0, true, &tokens_0), _fx_catch_42); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g12Lexer__OpDiv, &v_204); + _fx_make_T2N14Lexer__token_tTa2i(&v_204, &loc_0, &v_205); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_205, 0, true, &tokens_0), _fx_catch_42); } else { - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__SLASH, &loc_0, &v_201); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_201, 0, true, &tokens_0), _fx_catch_42); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__SLASH, &loc_0, &v_206); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_206, 0, true, &tokens_0), _fx_catch_42); } _fx_catch_42: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_201); - _fx_free_T2N14Lexer__token_tTa2i(&v_200); - _fx_free_N14Lexer__token_t(&v_199); + _fx_free_T2N14Lexer__token_tTa2i(&v_206); + _fx_free_T2N14Lexer__token_tTa2i(&v_205); + _fx_free_N14Lexer__token_t(&v_204); } else if (c_2 == (char_)37) { - _fx_N14Lexer__token_t v_202 = {0}; - _fx_T2N14Lexer__token_tTa2i v_203 = {0}; - _fx_T2N14Lexer__token_tTa2i v_204 = {0}; + _fx_N14Lexer__token_t v_207 = {0}; + _fx_T2N14Lexer__token_tTa2i v_208 = {0}; + _fx_T2N14Lexer__token_tTa2i v_209 = {0}; if (c1_0 == (char_)61) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g12Lexer__OpMod, &v_202); - _fx_make_T2N14Lexer__token_tTa2i(&v_202, &loc_0, &v_203); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_203, 0, true, &tokens_0), _fx_catch_43); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g12Lexer__OpMod, &v_207); + _fx_make_T2N14Lexer__token_tTa2i(&v_207, &loc_0, &v_208); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_208, 0, true, &tokens_0), _fx_catch_43); } else { - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g14Lexer__PERCENT, &loc_0, &v_204); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_204, 0, true, &tokens_0), _fx_catch_43); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g14Lexer__PERCENT, &loc_0, &v_209); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_209, 0, true, &tokens_0), _fx_catch_43); } _fx_catch_43: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_204); - _fx_free_T2N14Lexer__token_tTa2i(&v_203); - _fx_free_N14Lexer__token_t(&v_202); + _fx_free_T2N14Lexer__token_tTa2i(&v_209); + _fx_free_T2N14Lexer__token_tTa2i(&v_208); + _fx_free_N14Lexer__token_t(&v_207); } else if (c_2 == (char_)61) { - _fx_T2N14Lexer__token_tTa2i v_205 = {0}; - _fx_N14Lexer__token_t v_206 = {0}; - _fx_T2N14Lexer__token_tTa2i v_207 = {0}; - _fx_T2N14Lexer__token_tTa2i v_208 = {0}; - _fx_T2N14Lexer__token_tTa2i v_209 = {0}; + _fx_T2N14Lexer__token_tTa2i v_210 = {0}; + _fx_N14Lexer__token_t v_211 = {0}; + _fx_T2N14Lexer__token_tTa2i v_212 = {0}; + _fx_T2N14Lexer__token_tTa2i v_213 = {0}; + _fx_T2N14Lexer__token_tTa2i v_214 = {0}; if (c1_0 == (char_)61) { *pos_0 = *pos_0 + 1; if (c2_0 == (char_)61) { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g11Lexer__SAME, &loc_0, &v_205); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_205, 0, true, &tokens_0), _fx_catch_44); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g11Lexer__SAME, &loc_0, &v_210); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_210, 0, true, &tokens_0), _fx_catch_44); } else { - _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpEQ, &v_206); - _fx_make_T2N14Lexer__token_tTa2i(&v_206, &loc_0, &v_207); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_207, 0, true, &tokens_0), _fx_catch_44); + _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpEQ, &v_211); + _fx_make_T2N14Lexer__token_tTa2i(&v_211, &loc_0, &v_212); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_212, 0, true, &tokens_0), _fx_catch_44); } } else if (c1_0 == (char_)62) { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g19Lexer__DOUBLE_ARROW, &loc_0, &v_208); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_208, 0, true, &tokens_0), _fx_catch_44); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g19Lexer__DOUBLE_ARROW, &loc_0, &v_213); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_213, 0, true, &tokens_0), _fx_catch_44); } else { - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__EQUAL, &loc_0, &v_209); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_209, 0, true, &tokens_0), _fx_catch_44); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__EQUAL, &loc_0, &v_214); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_214, 0, true, &tokens_0), _fx_catch_44); } _fx_catch_44: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_209); - _fx_free_T2N14Lexer__token_tTa2i(&v_208); - _fx_free_T2N14Lexer__token_tTa2i(&v_207); - _fx_free_N14Lexer__token_t(&v_206); - _fx_free_T2N14Lexer__token_tTa2i(&v_205); + _fx_free_T2N14Lexer__token_tTa2i(&v_214); + _fx_free_T2N14Lexer__token_tTa2i(&v_213); + _fx_free_T2N14Lexer__token_tTa2i(&v_212); + _fx_free_N14Lexer__token_t(&v_211); + _fx_free_T2N14Lexer__token_tTa2i(&v_210); } else if (c_2 == (char_)94) { - _fx_N14Lexer__token_t v_210 = {0}; - _fx_T2N14Lexer__token_tTa2i v_211 = {0}; - _fx_T2N14Lexer__token_tTa2i v_212 = {0}; + _fx_N14Lexer__token_t v_215 = {0}; + _fx_T2N14Lexer__token_tTa2i v_216 = {0}; + _fx_T2N14Lexer__token_tTa2i v_217 = {0}; if (c1_0 == (char_)61) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g19Lexer__OpBitwiseXor, &v_210); - _fx_make_T2N14Lexer__token_tTa2i(&v_210, &loc_0, &v_211); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_211, 0, true, &tokens_0), _fx_catch_45); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g19Lexer__OpBitwiseXor, &v_215); + _fx_make_T2N14Lexer__token_tTa2i(&v_215, &loc_0, &v_216); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_216, 0, true, &tokens_0), _fx_catch_45); } else { - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__BITWISE_XOR, &loc_0, &v_212); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_212, 0, true, &tokens_0), _fx_catch_45); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__BITWISE_XOR, &loc_0, &v_217); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_217, 0, true, &tokens_0), _fx_catch_45); } _fx_catch_45: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_212); - _fx_free_T2N14Lexer__token_tTa2i(&v_211); - _fx_free_N14Lexer__token_t(&v_210); + _fx_free_T2N14Lexer__token_tTa2i(&v_217); + _fx_free_T2N14Lexer__token_tTa2i(&v_216); + _fx_free_N14Lexer__token_t(&v_215); } else if (c_2 == (char_)38) { - _fx_N14Lexer__token_t v_213 = {0}; - _fx_T2N14Lexer__token_tTa2i v_214 = {0}; - _fx_T2N14Lexer__token_tTa2i v_215 = {0}; - _fx_T2N14Lexer__token_tTa2i v_216 = {0}; + _fx_N14Lexer__token_t v_218 = {0}; + _fx_T2N14Lexer__token_tTa2i v_219 = {0}; + _fx_T2N14Lexer__token_tTa2i v_220 = {0}; + _fx_T2N14Lexer__token_tTa2i v_221 = {0}; if (c1_0 == (char_)61) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g19Lexer__OpBitwiseAnd, &v_213); - _fx_make_T2N14Lexer__token_tTa2i(&v_213, &loc_0, &v_214); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_214, 0, true, &tokens_0), _fx_catch_46); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g19Lexer__OpBitwiseAnd, &v_218); + _fx_make_T2N14Lexer__token_tTa2i(&v_218, &loc_0, &v_219); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_219, 0, true, &tokens_0), _fx_catch_46); } else if (c1_0 == (char_)38) { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__LOGICAL_AND, &loc_0, &v_215); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_215, 0, true, &tokens_0), _fx_catch_46); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__LOGICAL_AND, &loc_0, &v_220); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_220, 0, true, &tokens_0), _fx_catch_46); } else { - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__BITWISE_AND, &loc_0, &v_216); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_216, 0, true, &tokens_0), _fx_catch_46); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__BITWISE_AND, &loc_0, &v_221); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_221, 0, true, &tokens_0), _fx_catch_46); } _fx_catch_46: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_216); - _fx_free_T2N14Lexer__token_tTa2i(&v_215); - _fx_free_T2N14Lexer__token_tTa2i(&v_214); - _fx_free_N14Lexer__token_t(&v_213); + _fx_free_T2N14Lexer__token_tTa2i(&v_221); + _fx_free_T2N14Lexer__token_tTa2i(&v_220); + _fx_free_T2N14Lexer__token_tTa2i(&v_219); + _fx_free_N14Lexer__token_t(&v_218); } else if (c_2 == (char_)126) { - _fx_T2N14Lexer__token_tTa2i v_217 = {0}; - _fx_Ta2i v_218; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_218, 0), _fx_catch_47); + _fx_T2N14Lexer__token_tTa2i v_222 = {0}; + _fx_Ta2i v_223; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_223, 0), _fx_catch_47); fx_str_t slit_16 = FX_MAKE_STR("~"); - FX_CALL(_fx_M5LexerFM8check_nev3BTa2iS(prev_ne_0, &v_218, &slit_16, 0), _fx_catch_47); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__TILDE, &loc_0, &v_217); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_217, 0, true, &tokens_0), _fx_catch_47); + FX_CALL(_fx_M5LexerFM8check_nev3BTa2iS(prev_ne_0, &v_223, &slit_16, 0), _fx_catch_47); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__TILDE, &loc_0, &v_222); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_222, 0, true, &tokens_0), _fx_catch_47); _fx_catch_47: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_217); + _fx_free_T2N14Lexer__token_tTa2i(&v_222); } else if (c_2 == (char_)64) { - _fx_T2N14Lexer__token_tTa2i v_219 = {0}; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g9Lexer__AT, &loc_0, &v_219); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_219, 0, true, &tokens_0), _fx_catch_48); + _fx_T2N14Lexer__token_tTa2i v_224 = {0}; + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g9Lexer__AT, &loc_0, &v_224); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_224, 0, true, &tokens_0), _fx_catch_48); _fx_catch_48: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_219); + _fx_free_T2N14Lexer__token_tTa2i(&v_224); } else if (c_2 == (char_)92) { - _fx_N14Lexer__token_t v_220 = {0}; - _fx_T2N14Lexer__token_tTa2i v_221 = {0}; - _fx_M5LexerFM9BACKSLASHN14Lexer__token_t1B(prev_ne_0, &v_220); - _fx_make_T2N14Lexer__token_tTa2i(&v_220, &loc_0, &v_221); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_221, 0, true, &tokens_0), _fx_catch_49); + _fx_N14Lexer__token_t v_225 = {0}; + _fx_T2N14Lexer__token_tTa2i v_226 = {0}; + _fx_M5LexerFM9BACKSLASHN14Lexer__token_t1B(prev_ne_0, &v_225); + _fx_make_T2N14Lexer__token_tTa2i(&v_225, &loc_0, &v_226); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_226, 0, true, &tokens_0), _fx_catch_49); _fx_catch_49: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_221); - _fx_free_N14Lexer__token_t(&v_220); + _fx_free_T2N14Lexer__token_tTa2i(&v_226); + _fx_free_N14Lexer__token_t(&v_225); } else if (c_2 == (char_)46) { - _fx_N14Lexer__token_t v_222 = {0}; - _fx_T2N14Lexer__token_tTa2i v_223 = {0}; - _fx_T2N14Lexer__token_tTa2i v_224 = {0}; - _fx_N14Lexer__token_t v_225 = {0}; - _fx_T2N14Lexer__token_tTa2i v_226 = {0}; - _fx_T2N14Lexer__token_tTa2i v_227 = {0}; - _fx_N14Lexer__token_t v_228 = {0}; + _fx_N14Lexer__token_t v_227 = {0}; + _fx_T2N14Lexer__token_tTa2i v_228 = {0}; _fx_T2N14Lexer__token_tTa2i v_229 = {0}; _fx_N14Lexer__token_t v_230 = {0}; _fx_T2N14Lexer__token_tTa2i v_231 = {0}; - _fx_N14Lexer__token_t v_232 = {0}; - _fx_T2N14Lexer__token_tTa2i v_233 = {0}; - _fx_N14Lexer__token_t v_234 = {0}; - _fx_T2N14Lexer__token_tTa2i v_235 = {0}; - _fx_N14Lexer__token_t v_236 = {0}; - _fx_T2N14Lexer__token_tTa2i v_237 = {0}; - _fx_N14Lexer__token_t v_238 = {0}; - _fx_T2N14Lexer__token_tTa2i v_239 = {0}; + _fx_T2N14Lexer__token_tTa2i v_232 = {0}; + _fx_N14Lexer__token_t v_233 = {0}; + _fx_T2N14Lexer__token_tTa2i v_234 = {0}; + _fx_N14Lexer__token_t v_235 = {0}; + _fx_T2N14Lexer__token_tTa2i v_236 = {0}; + _fx_N14Lexer__token_t v_237 = {0}; + _fx_T2N14Lexer__token_tTa2i v_238 = {0}; + _fx_N14Lexer__token_t v_239 = {0}; _fx_T2N14Lexer__token_tTa2i v_240 = {0}; _fx_N14Lexer__token_t v_241 = {0}; _fx_T2N14Lexer__token_tTa2i v_242 = {0}; - _fx_T2N14Lexer__token_tTa2i v_243 = {0}; - _fx_N14Lexer__token_t v_244 = {0}; + _fx_N14Lexer__token_t v_243 = {0}; + _fx_T2N14Lexer__token_tTa2i v_244 = {0}; _fx_T2N14Lexer__token_tTa2i v_245 = {0}; - _fx_T2N14Lexer__token_tTa2i v_246 = {0}; - _fx_N14Lexer__token_t v_247 = {0}; + _fx_N14Lexer__token_t v_246 = {0}; + _fx_T2N14Lexer__token_tTa2i v_247 = {0}; _fx_T2N14Lexer__token_tTa2i v_248 = {0}; - _fx_T2N14Lexer__token_tTa2i v_249 = {0}; + _fx_N14Lexer__token_t v_249 = {0}; _fx_T2N14Lexer__token_tTa2i v_250 = {0}; _fx_T2N14Lexer__token_tTa2i v_251 = {0}; + _fx_N14Lexer__token_t v_252 = {0}; + _fx_T2N14Lexer__token_tTa2i v_253 = {0}; + _fx_T2N14Lexer__token_tTa2i v_254 = {0}; + _fx_T2N14Lexer__token_tTa2i v_255 = {0}; + _fx_T2N14Lexer__token_tTa2i v_256 = {0}; if (c1_0 == (char_)61) { if (c2_0 == (char_)61) { *pos_0 = *pos_0 + 2; - _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpEQ, &v_222); - _fx_make_T2N14Lexer__token_tTa2i(&v_222, &loc_0, &v_223); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_223, 0, true, &tokens_0), _fx_catch_50); + _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpEQ, &v_227); + _fx_make_T2N14Lexer__token_tTa2i(&v_227, &loc_0, &v_228); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_228, 0, true, &tokens_0), _fx_catch_50); } else { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g16Lexer__DOT_EQUAL, &loc_0, &v_224); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_224, 0, true, &tokens_0), _fx_catch_50); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g16Lexer__DOT_EQUAL, &loc_0, &v_229); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_229, 0, true, &tokens_0), _fx_catch_50); } } else { @@ -5250,9 +5262,9 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } if (t_26) { *pos_0 = *pos_0 + 2; - _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpNE, &v_225); - _fx_make_T2N14Lexer__token_tTa2i(&v_225, &loc_0, &v_226); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_226, 0, true, &tokens_0), _fx_catch_50); + _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpNE, &v_230); + _fx_make_T2N14Lexer__token_tTa2i(&v_230, &loc_0, &v_231); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_231, 0, true, &tokens_0), _fx_catch_50); } else if (c1_0 == (char_)60) { bool t_27; @@ -5264,90 +5276,90 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } if (t_27) { *pos_0 = *pos_0 + 3; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g20Lexer__DOT_SPACESHIP, &loc_0, &v_227); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_227, 0, true, &tokens_0), _fx_catch_50); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g20Lexer__DOT_SPACESHIP, &loc_0, &v_232); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_232, 0, true, &tokens_0), _fx_catch_50); } else if (c2_0 == (char_)61) { *pos_0 = *pos_0 + 2; - _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpLE, &v_228); - _fx_make_T2N14Lexer__token_tTa2i(&v_228, &loc_0, &v_229); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_229, 0, true, &tokens_0), _fx_catch_50); + _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpLE, &v_233); + _fx_make_T2N14Lexer__token_tTa2i(&v_233, &loc_0, &v_234); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_234, 0, true, &tokens_0), _fx_catch_50); } else { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpLT, &v_230); - _fx_make_T2N14Lexer__token_tTa2i(&v_230, &loc_0, &v_231); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_231, 0, true, &tokens_0), _fx_catch_50); + _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpLT, &v_235); + _fx_make_T2N14Lexer__token_tTa2i(&v_235, &loc_0, &v_236); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_236, 0, true, &tokens_0), _fx_catch_50); } } else if (c1_0 == (char_)62) { if (c2_0 == (char_)61) { *pos_0 = *pos_0 + 2; - _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpGE, &v_232); - _fx_make_T2N14Lexer__token_tTa2i(&v_232, &loc_0, &v_233); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_233, 0, true, &tokens_0), _fx_catch_50); + _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpGE, &v_237); + _fx_make_T2N14Lexer__token_tTa2i(&v_237, &loc_0, &v_238); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_238, 0, true, &tokens_0), _fx_catch_50); } else { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpGT, &v_234); - _fx_make_T2N14Lexer__token_tTa2i(&v_234, &loc_0, &v_235); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_235, 0, true, &tokens_0), _fx_catch_50); + _fx_M5LexerFM7DOT_CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpGT, &v_239); + _fx_make_T2N14Lexer__token_tTa2i(&v_239, &loc_0, &v_240); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_240, 0, true, &tokens_0), _fx_catch_50); } } else if (c1_0 == (char_)43) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM8DOT_PLUSN14Lexer__token_t1B(prev_ne_0, &v_236); - _fx_make_T2N14Lexer__token_tTa2i(&v_236, &loc_0, &v_237); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_237, 0, true, &tokens_0), _fx_catch_50); + _fx_M5LexerFM8DOT_PLUSN14Lexer__token_t1B(prev_ne_0, &v_241); + _fx_make_T2N14Lexer__token_tTa2i(&v_241, &loc_0, &v_242); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_242, 0, true, &tokens_0), _fx_catch_50); } else if (c1_0 == (char_)45) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM9DOT_MINUSN14Lexer__token_t1B(prev_ne_0, &v_238); - _fx_make_T2N14Lexer__token_tTa2i(&v_238, &loc_0, &v_239); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_239, 0, true, &tokens_0), _fx_catch_50); + _fx_M5LexerFM9DOT_MINUSN14Lexer__token_t1B(prev_ne_0, &v_243); + _fx_make_T2N14Lexer__token_tTa2i(&v_243, &loc_0, &v_244); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_244, 0, true, &tokens_0), _fx_catch_50); } else if (c1_0 == (char_)42) { if (c2_0 == (char_)42) { *pos_0 = *pos_0 + 2; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g16Lexer__DOT_POWER, &loc_0, &v_240); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_240, 0, true, &tokens_0), _fx_catch_50); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g16Lexer__DOT_POWER, &loc_0, &v_245); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_245, 0, true, &tokens_0), _fx_catch_50); } else if (c2_0 == (char_)61) { *pos_0 = *pos_0 + 2; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g15Lexer__OpDotMul, &v_241); - _fx_make_T2N14Lexer__token_tTa2i(&v_241, &loc_0, &v_242); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_242, 0, true, &tokens_0), _fx_catch_50); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g15Lexer__OpDotMul, &v_246); + _fx_make_T2N14Lexer__token_tTa2i(&v_246, &loc_0, &v_247); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_247, 0, true, &tokens_0), _fx_catch_50); } else { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g15Lexer__DOT_STAR, &loc_0, &v_243); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_243, 0, true, &tokens_0), _fx_catch_50); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g15Lexer__DOT_STAR, &loc_0, &v_248); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_248, 0, true, &tokens_0), _fx_catch_50); } } else if (c1_0 == (char_)47) { if (c2_0 == (char_)61) { *pos_0 = *pos_0 + 2; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g15Lexer__OpDotDiv, &v_244); - _fx_make_T2N14Lexer__token_tTa2i(&v_244, &loc_0, &v_245); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_245, 0, true, &tokens_0), _fx_catch_50); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g15Lexer__OpDotDiv, &v_249); + _fx_make_T2N14Lexer__token_tTa2i(&v_249, &loc_0, &v_250); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_250, 0, true, &tokens_0), _fx_catch_50); } else { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g16Lexer__DOT_SLASH, &loc_0, &v_246); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_246, 0, true, &tokens_0), _fx_catch_50); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g16Lexer__DOT_SLASH, &loc_0, &v_251); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_251, 0, true, &tokens_0), _fx_catch_50); } } else if (c1_0 == (char_)37) { if (c2_0 == (char_)61) { *pos_0 = *pos_0 + 2; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g15Lexer__OpDotMod, &v_247); - _fx_make_T2N14Lexer__token_tTa2i(&v_247, &loc_0, &v_248); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_248, 0, true, &tokens_0), _fx_catch_50); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g15Lexer__OpDotMod, &v_252); + _fx_make_T2N14Lexer__token_tTa2i(&v_252, &loc_0, &v_253); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_253, 0, true, &tokens_0), _fx_catch_50); } else { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__DOT_PERCENT, &loc_0, &v_249); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_249, 0, true, &tokens_0), _fx_catch_50); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__DOT_PERCENT, &loc_0, &v_254); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_254, 0, true, &tokens_0), _fx_catch_50); } } else { @@ -5360,64 +5372,64 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } if (t_28) { *pos_0 = *pos_0 + 2; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g15Lexer__ELLIPSIS, &loc_0, &v_250); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_250, 0, true, &tokens_0), _fx_catch_50); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g15Lexer__ELLIPSIS, &loc_0, &v_255); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_255, 0, true, &tokens_0), _fx_catch_50); } else { *prev_dot_0 = true; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__DOT, &loc_0, &v_251); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_251, 0, true, &tokens_0), _fx_catch_50); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__DOT, &loc_0, &v_256); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_256, 0, true, &tokens_0), _fx_catch_50); } } } _fx_catch_50: ; + _fx_free_T2N14Lexer__token_tTa2i(&v_256); + _fx_free_T2N14Lexer__token_tTa2i(&v_255); + _fx_free_T2N14Lexer__token_tTa2i(&v_254); + _fx_free_T2N14Lexer__token_tTa2i(&v_253); + _fx_free_N14Lexer__token_t(&v_252); _fx_free_T2N14Lexer__token_tTa2i(&v_251); _fx_free_T2N14Lexer__token_tTa2i(&v_250); - _fx_free_T2N14Lexer__token_tTa2i(&v_249); + _fx_free_N14Lexer__token_t(&v_249); _fx_free_T2N14Lexer__token_tTa2i(&v_248); - _fx_free_N14Lexer__token_t(&v_247); - _fx_free_T2N14Lexer__token_tTa2i(&v_246); + _fx_free_T2N14Lexer__token_tTa2i(&v_247); + _fx_free_N14Lexer__token_t(&v_246); _fx_free_T2N14Lexer__token_tTa2i(&v_245); - _fx_free_N14Lexer__token_t(&v_244); - _fx_free_T2N14Lexer__token_tTa2i(&v_243); + _fx_free_T2N14Lexer__token_tTa2i(&v_244); + _fx_free_N14Lexer__token_t(&v_243); _fx_free_T2N14Lexer__token_tTa2i(&v_242); _fx_free_N14Lexer__token_t(&v_241); _fx_free_T2N14Lexer__token_tTa2i(&v_240); - _fx_free_T2N14Lexer__token_tTa2i(&v_239); - _fx_free_N14Lexer__token_t(&v_238); - _fx_free_T2N14Lexer__token_tTa2i(&v_237); - _fx_free_N14Lexer__token_t(&v_236); - _fx_free_T2N14Lexer__token_tTa2i(&v_235); - _fx_free_N14Lexer__token_t(&v_234); - _fx_free_T2N14Lexer__token_tTa2i(&v_233); - _fx_free_N14Lexer__token_t(&v_232); + _fx_free_N14Lexer__token_t(&v_239); + _fx_free_T2N14Lexer__token_tTa2i(&v_238); + _fx_free_N14Lexer__token_t(&v_237); + _fx_free_T2N14Lexer__token_tTa2i(&v_236); + _fx_free_N14Lexer__token_t(&v_235); + _fx_free_T2N14Lexer__token_tTa2i(&v_234); + _fx_free_N14Lexer__token_t(&v_233); + _fx_free_T2N14Lexer__token_tTa2i(&v_232); _fx_free_T2N14Lexer__token_tTa2i(&v_231); _fx_free_N14Lexer__token_t(&v_230); _fx_free_T2N14Lexer__token_tTa2i(&v_229); - _fx_free_N14Lexer__token_t(&v_228); - _fx_free_T2N14Lexer__token_tTa2i(&v_227); - _fx_free_T2N14Lexer__token_tTa2i(&v_226); - _fx_free_N14Lexer__token_t(&v_225); - _fx_free_T2N14Lexer__token_tTa2i(&v_224); - _fx_free_T2N14Lexer__token_tTa2i(&v_223); - _fx_free_N14Lexer__token_t(&v_222); + _fx_free_T2N14Lexer__token_tTa2i(&v_228); + _fx_free_N14Lexer__token_t(&v_227); } else if (c_2 == (char_)44) { - _fx_T2N14Lexer__token_tTa2i v_252 = {0}; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__COMMA, &loc_0, &v_252); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_252, 0, true, &tokens_0), _fx_catch_51); + _fx_T2N14Lexer__token_tTa2i v_257 = {0}; + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__COMMA, &loc_0, &v_257); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_257, 0, true, &tokens_0), _fx_catch_51); _fx_catch_51: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_252); + _fx_free_T2N14Lexer__token_tTa2i(&v_257); } else if (c_2 == (char_)59) { - _fx_T2N14Lexer__token_tTa2i v_253 = {0}; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g16Lexer__SEMICOLON, &loc_0, &v_253); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_253, 0, true, &tokens_0), _fx_catch_52); + _fx_T2N14Lexer__token_tTa2i v_258 = {0}; + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g16Lexer__SEMICOLON, &loc_0, &v_258); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_258, 0, true, &tokens_0), _fx_catch_52); _fx_catch_52: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_253); + _fx_free_T2N14Lexer__token_tTa2i(&v_258); } else if (c_2 == (char_)58) { _fx_LT2N14Lexer__token_tTa2i paren_stack_8 = 0; @@ -5425,70 +5437,71 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( if (paren_stack_8 != 0) { if (paren_stack_8->hd.t0.tag == 45) { fx_exn_t curr_exn_0 = {0}; - fx_exn_t v_254 = {0}; - fx_exn_t v_255 = {0}; - _fx_T3LT2N14Lexer__token_tTa2iTa2iTa2i v_256 = {0}; - _fx_T2R8format_ti v_257; - FX_CALL(_fx_F12parse_formatT2R8format_ti2Si(&buf_0, *pos_0, &v_257, 0), _fx_catch_53); + fx_exn_t v_259 = {0}; + fx_exn_t v_260 = {0}; + _fx_T3LT2N14Lexer__token_tTa2iTa2iTa2i v_261 = {0}; + _fx_T2R8format_ti v_262; + FX_CALL(_fx_F12parse_formatT2R8format_ti2Si(&buf_0, *pos_0, &v_262, 0), _fx_catch_53); _fx_catch_53: ; if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &curr_exn_0); fx_status = 0; - _fx_Ta2i v_258; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_258, 0), + _fx_Ta2i v_263; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_263, 0), _fx_catch_54); fx_str_t slit_17 = FX_MAKE_STR("invalid format specification"); - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_258, &slit_17, &v_254), _fx_catch_54); - FX_THROW(&v_254, true, _fx_catch_54); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_263, &slit_17, &v_259), _fx_catch_54); + FX_THROW(&v_259, true, _fx_catch_54); } - _fx_R8format_t fmt__0 = v_257.t0; - int_ end_0 = v_257.t1; - _fx_Nt6option1R8format_t v_259; - _fx_M5LexerFM4SomeNt6option1R8format_t1R8format_t(&fmt__0, &v_259); - *fmt_0 = v_259; + _fx_R8format_t fmt__0 = v_262.t0; + int_ end_0 = v_262.t1; + _fx_Nt6option1R8format_t v_264; + _fx_M5LexerFM4SomeNt6option1R8format_t1R8format_t(&fmt__0, &v_264); + *fmt_0 = v_264; *pos_0 = end_0; - if (FX_STR_ELEM_ZERO(buf_0, *pos_0) != (char_)125) { - _fx_Ta2i v_260; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_260, 0), + char_ v_265 = FX_STR_ELEM_ZERO(buf_0, *pos_0); + if (v_265 != (char_)125) { + _fx_Ta2i v_266; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0, strm_0, &v_266, 0), _fx_catch_54); fx_str_t slit_18 = FX_MAKE_STR("\'}\' is expected after \':...\' inside interpolated expression"); - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_260, &slit_18, &v_255), _fx_catch_54); - FX_THROW(&v_255, true, _fx_catch_54); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&v_266, &slit_18, &v_260), _fx_catch_54); + FX_THROW(&v_260, true, _fx_catch_54); } - FX_CALL(_fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0(&v_256, fx_fv), _fx_catch_54); - FX_COPY_PTR(v_256.t0, &tokens_0); + FX_CALL(_fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0(&v_261, fx_fv), _fx_catch_54); + FX_COPY_PTR(v_261.t0, &tokens_0); _fx_catch_54: ; - _fx_free_T3LT2N14Lexer__token_tTa2iTa2iTa2i(&v_256); - fx_free_exn(&v_255); - fx_free_exn(&v_254); + _fx_free_T3LT2N14Lexer__token_tTa2iTa2iTa2i(&v_261); + fx_free_exn(&v_260); + fx_free_exn(&v_259); fx_free_exn(&curr_exn_0); goto _fx_endmatch_13; } } - _fx_T2N14Lexer__token_tTa2i v_261 = {0}; - _fx_T2N14Lexer__token_tTa2i v_262 = {0}; - _fx_T2N14Lexer__token_tTa2i v_263 = {0}; + _fx_T2N14Lexer__token_tTa2i v_267 = {0}; + _fx_T2N14Lexer__token_tTa2i v_268 = {0}; + _fx_T2N14Lexer__token_tTa2i v_269 = {0}; if (c1_0 == (char_)58) { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g11Lexer__CONS, &loc_0, &v_261); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_261, 0, true, &tokens_0), _fx_catch_55); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g11Lexer__CONS, &loc_0, &v_267); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_267, 0, true, &tokens_0), _fx_catch_55); } else if (c1_0 == (char_)62) { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g11Lexer__CAST, &loc_0, &v_262); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_262, 0, true, &tokens_0), _fx_catch_55); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g11Lexer__CAST, &loc_0, &v_268); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_268, 0, true, &tokens_0), _fx_catch_55); } else { - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__COLON, &loc_0, &v_263); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_263, 0, true, &tokens_0), _fx_catch_55); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__COLON, &loc_0, &v_269); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_269, 0, true, &tokens_0), _fx_catch_55); } _fx_catch_55: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_263); - _fx_free_T2N14Lexer__token_tTa2i(&v_262); - _fx_free_T2N14Lexer__token_tTa2i(&v_261); + _fx_free_T2N14Lexer__token_tTa2i(&v_269); + _fx_free_T2N14Lexer__token_tTa2i(&v_268); + _fx_free_T2N14Lexer__token_tTa2i(&v_267); _fx_endmatch_13: ; FX_CHECK_EXN(_fx_catch_56); @@ -5499,175 +5512,175 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( } } else if (c_2 == (char_)33) { - _fx_N14Lexer__token_t v_264 = {0}; - _fx_T2N14Lexer__token_tTa2i v_265 = {0}; - _fx_T2N14Lexer__token_tTa2i v_266 = {0}; + _fx_N14Lexer__token_t v_270 = {0}; + _fx_T2N14Lexer__token_tTa2i v_271 = {0}; + _fx_T2N14Lexer__token_tTa2i v_272 = {0}; if (c1_0 == (char_)61) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpNE, &v_264); - _fx_make_T2N14Lexer__token_tTa2i(&v_264, &loc_0, &v_265); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_265, 0, true, &tokens_0), _fx_catch_57); + _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpNE, &v_270); + _fx_make_T2N14Lexer__token_tTa2i(&v_270, &loc_0, &v_271); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_271, 0, true, &tokens_0), _fx_catch_57); } else { - _fx_Ta2i v_267; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_267, 0), _fx_catch_57); + _fx_Ta2i v_273; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_273, 0), _fx_catch_57); fx_str_t slit_19 = FX_MAKE_STR("!"); - FX_CALL(_fx_M5LexerFM8check_nev3BTa2iS(prev_ne_0, &v_267, &slit_19, 0), _fx_catch_57); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__LOGICAL_NOT, &loc_0, &v_266); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_266, 0, true, &tokens_0), _fx_catch_57); + FX_CALL(_fx_M5LexerFM8check_nev3BTa2iS(prev_ne_0, &v_273, &slit_19, 0), _fx_catch_57); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__LOGICAL_NOT, &loc_0, &v_272); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_272, 0, true, &tokens_0), _fx_catch_57); } _fx_catch_57: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_266); - _fx_free_T2N14Lexer__token_tTa2i(&v_265); - _fx_free_N14Lexer__token_t(&v_264); + _fx_free_T2N14Lexer__token_tTa2i(&v_272); + _fx_free_T2N14Lexer__token_tTa2i(&v_271); + _fx_free_N14Lexer__token_t(&v_270); } else if (c_2 == (char_)63) { - _fx_T2N14Lexer__token_tTa2i v_268 = {0}; + _fx_T2N14Lexer__token_tTa2i v_274 = {0}; *new_exp_0 = false; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g15Lexer__QUESTION, &loc_0, &v_268); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_268, 0, true, &tokens_0), _fx_catch_58); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g15Lexer__QUESTION, &loc_0, &v_274); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_274, 0, true, &tokens_0), _fx_catch_58); _fx_catch_58: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_268); + _fx_free_T2N14Lexer__token_tTa2i(&v_274); } else if (c_2 == (char_)60) { - _fx_T2N14Lexer__token_tTa2i v_269 = {0}; - _fx_N14Lexer__token_t v_270 = {0}; - _fx_T2N14Lexer__token_tTa2i v_271 = {0}; - _fx_N14Lexer__token_t v_272 = {0}; - _fx_T2N14Lexer__token_tTa2i v_273 = {0}; - _fx_T2N14Lexer__token_tTa2i v_274 = {0}; _fx_T2N14Lexer__token_tTa2i v_275 = {0}; _fx_N14Lexer__token_t v_276 = {0}; _fx_T2N14Lexer__token_tTa2i v_277 = {0}; + _fx_N14Lexer__token_t v_278 = {0}; + _fx_T2N14Lexer__token_tTa2i v_279 = {0}; + _fx_T2N14Lexer__token_tTa2i v_280 = {0}; + _fx_T2N14Lexer__token_tTa2i v_281 = {0}; + _fx_N14Lexer__token_t v_282 = {0}; + _fx_T2N14Lexer__token_tTa2i v_283 = {0}; if (c1_0 == (char_)61) { if (c2_0 == (char_)62) { *pos_0 = *pos_0 + 2; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g16Lexer__SPACESHIP, &loc_0, &v_269); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_269, 0, true, &tokens_0), _fx_catch_59); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g16Lexer__SPACESHIP, &loc_0, &v_275); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_275, 0, true, &tokens_0), _fx_catch_59); } else { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpLE, &v_270); - _fx_make_T2N14Lexer__token_tTa2i(&v_270, &loc_0, &v_271); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_271, 0, true, &tokens_0), _fx_catch_59); + _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpLE, &v_276); + _fx_make_T2N14Lexer__token_tTa2i(&v_276, &loc_0, &v_277); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_277, 0, true, &tokens_0), _fx_catch_59); } } else if (c1_0 == (char_)60) { if (c2_0 == (char_)61) { *pos_0 = *pos_0 + 2; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g18Lexer__OpShiftLeft, &v_272); - _fx_make_T2N14Lexer__token_tTa2i(&v_272, &loc_0, &v_273); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_273, 0, true, &tokens_0), _fx_catch_59); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g18Lexer__OpShiftLeft, &v_278); + _fx_make_T2N14Lexer__token_tTa2i(&v_278, &loc_0, &v_279); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_279, 0, true, &tokens_0), _fx_catch_59); } else { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g17Lexer__SHIFT_LEFT, &loc_0, &v_274); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_274, 0, true, &tokens_0), _fx_catch_59); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g17Lexer__SHIFT_LEFT, &loc_0, &v_280); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_280, 0, true, &tokens_0), _fx_catch_59); } } else if (c1_0 == (char_)45) { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g17Lexer__BACK_ARROW, &loc_0, &v_275); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_275, 0, true, &tokens_0), _fx_catch_59); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g17Lexer__BACK_ARROW, &loc_0, &v_281); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_281, 0, true, &tokens_0), _fx_catch_59); } else { - _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpLT, &v_276); - _fx_make_T2N14Lexer__token_tTa2i(&v_276, &loc_0, &v_277); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_277, 0, true, &tokens_0), _fx_catch_59); + _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpLT, &v_282); + _fx_make_T2N14Lexer__token_tTa2i(&v_282, &loc_0, &v_283); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_283, 0, true, &tokens_0), _fx_catch_59); } _fx_catch_59: ; + _fx_free_T2N14Lexer__token_tTa2i(&v_283); + _fx_free_N14Lexer__token_t(&v_282); + _fx_free_T2N14Lexer__token_tTa2i(&v_281); + _fx_free_T2N14Lexer__token_tTa2i(&v_280); + _fx_free_T2N14Lexer__token_tTa2i(&v_279); + _fx_free_N14Lexer__token_t(&v_278); _fx_free_T2N14Lexer__token_tTa2i(&v_277); _fx_free_N14Lexer__token_t(&v_276); _fx_free_T2N14Lexer__token_tTa2i(&v_275); - _fx_free_T2N14Lexer__token_tTa2i(&v_274); - _fx_free_T2N14Lexer__token_tTa2i(&v_273); - _fx_free_N14Lexer__token_t(&v_272); - _fx_free_T2N14Lexer__token_tTa2i(&v_271); - _fx_free_N14Lexer__token_t(&v_270); - _fx_free_T2N14Lexer__token_tTa2i(&v_269); } else if (c_2 == (char_)62) { - _fx_N14Lexer__token_t v_278 = {0}; - _fx_T2N14Lexer__token_tTa2i v_279 = {0}; - _fx_N14Lexer__token_t v_280 = {0}; - _fx_T2N14Lexer__token_tTa2i v_281 = {0}; - _fx_T2N14Lexer__token_tTa2i v_282 = {0}; - _fx_N14Lexer__token_t v_283 = {0}; - _fx_T2N14Lexer__token_tTa2i v_284 = {0}; + _fx_N14Lexer__token_t v_284 = {0}; + _fx_T2N14Lexer__token_tTa2i v_285 = {0}; + _fx_N14Lexer__token_t v_286 = {0}; + _fx_T2N14Lexer__token_tTa2i v_287 = {0}; + _fx_T2N14Lexer__token_tTa2i v_288 = {0}; + _fx_N14Lexer__token_t v_289 = {0}; + _fx_T2N14Lexer__token_tTa2i v_290 = {0}; if (c1_0 == (char_)61) { *pos_0 = *pos_0 + 1; - _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpGE, &v_278); - _fx_make_T2N14Lexer__token_tTa2i(&v_278, &loc_0, &v_279); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_279, 0, true, &tokens_0), _fx_catch_60); + _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpGE, &v_284); + _fx_make_T2N14Lexer__token_tTa2i(&v_284, &loc_0, &v_285); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_285, 0, true, &tokens_0), _fx_catch_60); } else if (c1_0 == (char_)62) { if (c2_0 == (char_)61) { *pos_0 = *pos_0 + 2; - _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g19Lexer__OpShiftRight, &v_280); - _fx_make_T2N14Lexer__token_tTa2i(&v_280, &loc_0, &v_281); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_281, 0, true, &tokens_0), _fx_catch_60); + _fx_M5LexerFM9AUG_BINOPN14Lexer__token_t1N13Ast__binary_t(_fx_g19Lexer__OpShiftRight, &v_286); + _fx_make_T2N14Lexer__token_tTa2i(&v_286, &loc_0, &v_287); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_287, 0, true, &tokens_0), _fx_catch_60); } else { *pos_0 = *pos_0 + 1; - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__SHIFT_RIGHT, &loc_0, &v_282); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_282, 0, true, &tokens_0), _fx_catch_60); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g18Lexer__SHIFT_RIGHT, &loc_0, &v_288); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_288, 0, true, &tokens_0), _fx_catch_60); } } else { - _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpGT, &v_283); - _fx_make_T2N14Lexer__token_tTa2i(&v_283, &loc_0, &v_284); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_284, 0, true, &tokens_0), _fx_catch_60); + _fx_M5LexerFM3CMPN14Lexer__token_t1N12Ast__cmpop_t(&_fx_g12Lexer__CmpGT, &v_289); + _fx_make_T2N14Lexer__token_tTa2i(&v_289, &loc_0, &v_290); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_290, 0, true, &tokens_0), _fx_catch_60); } _fx_catch_60: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_284); - _fx_free_N14Lexer__token_t(&v_283); - _fx_free_T2N14Lexer__token_tTa2i(&v_282); - _fx_free_T2N14Lexer__token_tTa2i(&v_281); - _fx_free_N14Lexer__token_t(&v_280); - _fx_free_T2N14Lexer__token_tTa2i(&v_279); - _fx_free_N14Lexer__token_t(&v_278); + _fx_free_T2N14Lexer__token_tTa2i(&v_290); + _fx_free_N14Lexer__token_t(&v_289); + _fx_free_T2N14Lexer__token_tTa2i(&v_288); + _fx_free_T2N14Lexer__token_tTa2i(&v_287); + _fx_free_N14Lexer__token_t(&v_286); + _fx_free_T2N14Lexer__token_tTa2i(&v_285); + _fx_free_N14Lexer__token_t(&v_284); } else if (c_2 == (char_)96) { - _fx_N14Lexer__token_t v_285 = {0}; - _fx_T2N14Lexer__token_tTa2i v_286 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_287 = 0; - _fx_N14Lexer__token_t v_288 = {0}; - _fx_T2N14Lexer__token_tTa2i v_289 = {0}; + _fx_N14Lexer__token_t v_291 = {0}; + _fx_T2N14Lexer__token_tTa2i v_292 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_293 = 0; + _fx_N14Lexer__token_t v_294 = {0}; + _fx_T2N14Lexer__token_tTa2i v_295 = {0}; fx_str_t verb_0 = {0}; _fx_LT2N14Lexer__token_tTa2i paren_stack_9 = 0; - _fx_T2N14Lexer__token_tTa2i v_290 = {0}; - _fx_N10Ast__lit_t v_291 = {0}; - _fx_N14Lexer__token_t v_292 = {0}; - _fx_T2N14Lexer__token_tTa2i v_293 = {0}; - _fx_T2N14Lexer__token_tTa2i v_294 = {0}; - fx_str_t v_295 = {0}; - fx_str_t v_296 = {0}; + _fx_T2N14Lexer__token_tTa2i v_296 = {0}; _fx_N10Ast__lit_t v_297 = {0}; _fx_N14Lexer__token_t v_298 = {0}; _fx_T2N14Lexer__token_tTa2i v_299 = {0}; _fx_T2N14Lexer__token_tTa2i v_300 = {0}; - _fx_N10Ast__lit_t v_301 = {0}; - _fx_N14Lexer__token_t v_302 = {0}; - _fx_T2N14Lexer__token_tTa2i v_303 = {0}; - _fx_T2N14Lexer__token_tTa2i v_304 = {0}; - _fx_LT2N14Lexer__token_tTa2i v_305 = 0; + fx_str_t v_301 = {0}; + fx_str_t v_302 = {0}; + _fx_N10Ast__lit_t v_303 = {0}; + _fx_N14Lexer__token_t v_304 = {0}; + _fx_T2N14Lexer__token_tTa2i v_305 = {0}; + _fx_T2N14Lexer__token_tTa2i v_306 = {0}; + _fx_N10Ast__lit_t v_307 = {0}; + _fx_N14Lexer__token_t v_308 = {0}; + _fx_T2N14Lexer__token_tTa2i v_309 = {0}; + _fx_T2N14Lexer__token_tTa2i v_310 = {0}; + _fx_LT2N14Lexer__token_tTa2i v_311 = 0; if (*backquote_pos_0 < 0) { *backquote_pos_0 = *pos_0; - _fx_Ta2i v_306; - FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_306, 0), _fx_catch_62); - *backquote_loc_0 = v_306; - _fx_M5LexerFM6LPARENN14Lexer__token_t1B(true, &v_285); - _fx_make_T2N14Lexer__token_tTa2i(&v_285, backquote_loc_0, &v_286); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_286, *paren_stack_1, true, &v_287), _fx_catch_62); + _fx_Ta2i v_312; + FX_CALL(_fx_M5LexerFM6getlocTa2i2iN20LexerUtils__stream_t(*pos_0 - 1, strm_0, &v_312, 0), _fx_catch_62); + *backquote_loc_0 = v_312; + _fx_M5LexerFM6LPARENN14Lexer__token_t1B(true, &v_291); + _fx_make_T2N14Lexer__token_tTa2i(&v_291, backquote_loc_0, &v_292); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_292, *paren_stack_1, true, &v_293), _fx_catch_62); _fx_free_LT2N14Lexer__token_tTa2i(paren_stack_1); - FX_COPY_PTR(v_287, paren_stack_1); - _fx_M5LexerFM6LPARENN14Lexer__token_t1B(true, &v_288); - _fx_make_T2N14Lexer__token_tTa2i(&v_288, &loc_0, &v_289); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_289, 0, true, &tokens_0), _fx_catch_62); + FX_COPY_PTR(v_293, paren_stack_1); + _fx_M5LexerFM6LPARENN14Lexer__token_t1B(true, &v_294); + _fx_make_T2N14Lexer__token_tTa2i(&v_294, &loc_0, &v_295); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_295, 0, true, &tokens_0), _fx_catch_62); } else { FX_CALL(fx_substr(&buf_0, *backquote_pos_0, *pos_0 - 1, 1, 0, &verb_0), _fx_catch_62); @@ -5684,126 +5697,127 @@ static int _fx_M5LexerFM10nexttokensT3LT2N14Lexer__token_tTa2iTa2iTa2i0( goto _fx_endmatch_14; } } - fx_exn_t v_307 = {0}; + fx_exn_t v_313 = {0}; fx_str_t slit_20 = FX_MAKE_STR("Unexpected \'`\', check parens"); - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &slit_20, &v_307), _fx_catch_61); - FX_THROW(&v_307, true, _fx_catch_61); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &slit_20, &v_313), _fx_catch_61); + FX_THROW(&v_313, true, _fx_catch_61); _fx_catch_61: ; - fx_free_exn(&v_307); + fx_free_exn(&v_313); _fx_endmatch_14: ; FX_CHECK_EXN(_fx_catch_62); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__COMMA, &endloc_0, &v_290); - _fx_M3AstFM9LitStringN10Ast__lit_t1S(&verb_0, &v_291); - _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_291, &v_292); - _fx_make_T2N14Lexer__token_tTa2i(&v_292, backquote_loc_0, &v_293); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__COMMA, &endloc_0, &v_294); - fx_copy_str(&strm_0->u.stream_t.t0, &v_295); - FX_CALL(_fx_M8FilenameFM8basenameS1S(&v_295, &v_296, 0), _fx_catch_62); - _fx_M3AstFM9LitStringN10Ast__lit_t1S(&v_296, &v_297); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__COMMA, &endloc_0, &v_296); + _fx_M3AstFM9LitStringN10Ast__lit_t1S(&verb_0, &v_297); _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_297, &v_298); _fx_make_T2N14Lexer__token_tTa2i(&v_298, backquote_loc_0, &v_299); _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__COMMA, &endloc_0, &v_300); - _fx_M3AstFM6LitIntN10Ast__lit_t1l((int64_t)backquote_loc_0->t0, &v_301); - _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_301, &v_302); - _fx_make_T2N14Lexer__token_tTa2i(&v_302, backquote_loc_0, &v_303); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RPAREN, &endloc_0, &v_304); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_304, 0, true, &v_305), _fx_catch_62); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_303, v_305, false, &v_305), _fx_catch_62); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_300, v_305, false, &v_305), _fx_catch_62); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_299, v_305, false, &v_305), _fx_catch_62); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_294, v_305, false, &v_305), _fx_catch_62); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_293, v_305, false, &v_305), _fx_catch_62); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_290, v_305, true, &tokens_0), _fx_catch_62); + fx_copy_str(&strm_0->u.stream_t.t0, &v_301); + FX_CALL(_fx_M8FilenameFM8basenameS1S(&v_301, &v_302, 0), _fx_catch_62); + _fx_M3AstFM9LitStringN10Ast__lit_t1S(&v_302, &v_303); + _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_303, &v_304); + _fx_make_T2N14Lexer__token_tTa2i(&v_304, backquote_loc_0, &v_305); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g12Lexer__COMMA, &endloc_0, &v_306); + int_ v_314 = backquote_loc_0->t0; + _fx_M3AstFM6LitIntN10Ast__lit_t1l((int64_t)v_314, &v_307); + _fx_M5LexerFM7LITERALN14Lexer__token_t1N10Ast__lit_t(&v_307, &v_308); + _fx_make_T2N14Lexer__token_tTa2i(&v_308, backquote_loc_0, &v_309); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g13Lexer__RPAREN, &endloc_0, &v_310); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_310, 0, true, &v_311), _fx_catch_62); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_309, v_311, false, &v_311), _fx_catch_62); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_306, v_311, false, &v_311), _fx_catch_62); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_305, v_311, false, &v_311), _fx_catch_62); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_300, v_311, false, &v_311), _fx_catch_62); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_299, v_311, false, &v_311), _fx_catch_62); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_296, v_311, true, &tokens_0), _fx_catch_62); } _fx_catch_62: ; - if (v_305) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_305); + if (v_311) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_311); } - _fx_free_T2N14Lexer__token_tTa2i(&v_304); - _fx_free_T2N14Lexer__token_tTa2i(&v_303); - _fx_free_N14Lexer__token_t(&v_302); - _fx_free_N10Ast__lit_t(&v_301); + _fx_free_T2N14Lexer__token_tTa2i(&v_310); + _fx_free_T2N14Lexer__token_tTa2i(&v_309); + _fx_free_N14Lexer__token_t(&v_308); + _fx_free_N10Ast__lit_t(&v_307); + _fx_free_T2N14Lexer__token_tTa2i(&v_306); + _fx_free_T2N14Lexer__token_tTa2i(&v_305); + _fx_free_N14Lexer__token_t(&v_304); + _fx_free_N10Ast__lit_t(&v_303); + FX_FREE_STR(&v_302); + FX_FREE_STR(&v_301); _fx_free_T2N14Lexer__token_tTa2i(&v_300); _fx_free_T2N14Lexer__token_tTa2i(&v_299); _fx_free_N14Lexer__token_t(&v_298); _fx_free_N10Ast__lit_t(&v_297); - FX_FREE_STR(&v_296); - FX_FREE_STR(&v_295); - _fx_free_T2N14Lexer__token_tTa2i(&v_294); - _fx_free_T2N14Lexer__token_tTa2i(&v_293); - _fx_free_N14Lexer__token_t(&v_292); - _fx_free_N10Ast__lit_t(&v_291); - _fx_free_T2N14Lexer__token_tTa2i(&v_290); + _fx_free_T2N14Lexer__token_tTa2i(&v_296); if (paren_stack_9) { _fx_free_LT2N14Lexer__token_tTa2i(&paren_stack_9); } FX_FREE_STR(&verb_0); - _fx_free_T2N14Lexer__token_tTa2i(&v_289); - _fx_free_N14Lexer__token_t(&v_288); - if (v_287) { - _fx_free_LT2N14Lexer__token_tTa2i(&v_287); + _fx_free_T2N14Lexer__token_tTa2i(&v_295); + _fx_free_N14Lexer__token_t(&v_294); + if (v_293) { + _fx_free_LT2N14Lexer__token_tTa2i(&v_293); } - _fx_free_T2N14Lexer__token_tTa2i(&v_286); - _fx_free_N14Lexer__token_t(&v_285); + _fx_free_T2N14Lexer__token_tTa2i(&v_292); + _fx_free_N14Lexer__token_t(&v_291); } else if (c_2 == (char_)0) { _fx_LT2N14Lexer__token_tTa2i paren_stack_10 = 0; - _fx_T2N14Lexer__token_tTa2i v_308 = {0}; + _fx_T2N14Lexer__token_tTa2i v_315 = {0}; FX_COPY_PTR(*paren_stack_1, &paren_stack_10); if (paren_stack_10 != 0) { - fx_str_t v_309 = {0}; - fx_str_t v_310 = {0}; - fx_str_t v_311 = {0}; - fx_exn_t v_312 = {0}; - FX_CALL(_fx_M5LexerFM8lloc2strS2Ta2iN20LexerUtils__stream_t(&paren_stack_10->hd.t1, strm_0, &v_309, 0), + fx_str_t v_316 = {0}; + fx_str_t v_317 = {0}; + fx_str_t v_318 = {0}; + fx_exn_t v_319 = {0}; + FX_CALL(_fx_M5LexerFM8lloc2strS2Ta2iN20LexerUtils__stream_t(&paren_stack_10->hd.t1, strm_0, &v_316, 0), _fx_catch_63); - FX_CALL(_fx_M5LexerFM6stringS1S(&v_309, &v_310, 0), _fx_catch_63); + FX_CALL(_fx_M5LexerFM6stringS1S(&v_316, &v_317, 0), _fx_catch_63); fx_str_t slit_21 = FX_MAKE_STR("some braces (around "); fx_str_t slit_22 = FX_MAKE_STR(") are not closed"); { - const fx_str_t strs_2[] = { slit_21, v_310, slit_22 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_311), _fx_catch_63); + const fx_str_t strs_2[] = { slit_21, v_317, slit_22 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_318), _fx_catch_63); } - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &v_311, &v_312), _fx_catch_63); - FX_THROW(&v_312, true, _fx_catch_63); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &v_318, &v_319), _fx_catch_63); + FX_THROW(&v_319, true, _fx_catch_63); _fx_catch_63: ; - fx_free_exn(&v_312); - FX_FREE_STR(&v_311); - FX_FREE_STR(&v_310); - FX_FREE_STR(&v_309); + fx_free_exn(&v_319); + FX_FREE_STR(&v_318); + FX_FREE_STR(&v_317); + FX_FREE_STR(&v_316); } FX_CHECK_EXN(_fx_catch_64); - _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__EOF, &loc_0, &v_308); - FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_308, 0, true, &tokens_0), _fx_catch_64); + _fx_make_T2N14Lexer__token_tTa2i(&_fx_g10Lexer__EOF, &loc_0, &v_315); + FX_CALL(_fx_cons_LT2N14Lexer__token_tTa2i(&v_315, 0, true, &tokens_0), _fx_catch_64); _fx_catch_64: ; - _fx_free_T2N14Lexer__token_tTa2i(&v_308); + _fx_free_T2N14Lexer__token_tTa2i(&v_315); if (paren_stack_10) { _fx_free_LT2N14Lexer__token_tTa2i(&paren_stack_10); } } else { - fx_str_t v_313 = {0}; - fx_str_t v_314 = {0}; - fx_exn_t v_315 = {0}; - FX_CALL(_fx_F6stringS1C(c_0, &v_313, 0), _fx_catch_65); + fx_str_t v_320 = {0}; + fx_str_t v_321 = {0}; + fx_exn_t v_322 = {0}; + FX_CALL(_fx_F6stringS1C(c_0, &v_320, 0), _fx_catch_65); fx_str_t slit_23 = FX_MAKE_STR("unrecognized character \'"); fx_str_t slit_24 = FX_MAKE_STR("\'"); { - const fx_str_t strs_3[] = { slit_23, v_313, slit_24 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_314), _fx_catch_65); + const fx_str_t strs_3[] = { slit_23, v_320, slit_24 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_321), _fx_catch_65); } - FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &v_314, &v_315), _fx_catch_65); - FX_THROW(&v_315, true, _fx_catch_65); + FX_CALL(_fx_M10LexerUtilsFM15make_LexerErrorE2Ta2iS(&loc_0, &v_321, &v_322), _fx_catch_65); + FX_THROW(&v_322, true, _fx_catch_65); _fx_catch_65: ; - fx_free_exn(&v_315); - FX_FREE_STR(&v_314); - FX_FREE_STR(&v_313); + fx_free_exn(&v_322); + FX_FREE_STR(&v_321); + FX_FREE_STR(&v_320); } FX_CHECK_EXN(_fx_cleanup); } diff --git a/compiler/bootstrap/Options.c b/compiler/bootstrap/Options.c index d7151b88..720a148d 100644 --- a/compiler/bootstrap/Options.c +++ b/compiler/bootstrap/Options.c @@ -546,7 +546,8 @@ FX_EXTERN_C int _fx_M7OptionsFM15default_optionsRM9options_t0(struct _fx_R18Opti FX_EXTERN_C int _fx_M7OptionsFM18force_full_rebuildv0(void* fx_fv) { int fx_status = 0; - _fx_g12Options__opt.force_rebuild = true; + bool* v_0 = &_fx_g12Options__opt.force_rebuild; + *v_0 = true; return fx_status; } @@ -741,7 +742,8 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) FX_CALL(_fx_M7OptionsFM15default_optionsRM9options_t0(&v_0, 0), _fx_cleanup); _fx_free_R18Options__options_t(&_fx_g12Options__opt); _fx_copy_R18Options__options_t(&v_0, &_fx_g12Options__opt); - _fx_g12Options__opt.arch64 = _fx_g18Options__is_arch64; + bool* v_31 = &_fx_g12Options__opt.arch64; + *v_31 = _fx_g18Options__is_arch64; FX_CALL(_fx_M8FilenameFM6getcwdS0(&curr_dir_0, 0), _fx_cleanup); FX_CALL(_fx_M7OptionsFM2tlLS1LS(_fx_g9Sys__argv, &args_0, 0), _fx_cleanup); fx_str_t slit_0 = FX_MAKE_STR(""); @@ -751,137 +753,137 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) bool ok_0 = true; while (args_0 != 0) { _fx_LS args_1 = 0; - _fx_LS v_31 = 0; + _fx_LS v_32 = 0; FX_COPY_PTR(args_0, &args_1); if (args_1 != 0) { fx_str_t slit_1 = FX_MAKE_STR("-no-preamble"); if (fx_streq(&args_1->hd, &slit_1)) { - _fx_g12Options__opt.use_preamble = false; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_33 = &_fx_g12Options__opt.use_preamble; *v_33 = false; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_2 = FX_MAKE_STR("-rebuild"); if (fx_streq(&args_1->hd, &slit_2)) { - _fx_g12Options__opt.force_rebuild = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_34 = &_fx_g12Options__opt.force_rebuild; *v_34 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_3 = FX_MAKE_STR("-pr-tokens"); if (fx_streq(&args_1->hd, &slit_3)) { - _fx_g12Options__opt.print_tokens = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_35 = &_fx_g12Options__opt.print_tokens; *v_35 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_4 = FX_MAKE_STR("-pr-ast0"); if (fx_streq(&args_1->hd, &slit_4)) { - _fx_g12Options__opt.print_ast0 = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_36 = &_fx_g12Options__opt.print_ast0; *v_36 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_5 = FX_MAKE_STR("-pr-ast"); if (fx_streq(&args_1->hd, &slit_5)) { - _fx_g12Options__opt.print_ast = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_37 = &_fx_g12Options__opt.print_ast; *v_37 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_6 = FX_MAKE_STR("-pr-k0"); if (fx_streq(&args_1->hd, &slit_6)) { - _fx_g12Options__opt.print_k0 = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_38 = &_fx_g12Options__opt.print_k0; *v_38 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_7 = FX_MAKE_STR("-pr-k"); if (fx_streq(&args_1->hd, &slit_7)) { - _fx_g12Options__opt.print_k = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_39 = &_fx_g12Options__opt.print_k; *v_39 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_8 = FX_MAKE_STR("-pr-resolve"); if (fx_streq(&args_1->hd, &slit_8)) { - _fx_g12Options__opt.print_resolve = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_40 = &_fx_g12Options__opt.print_resolve; *v_40 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_9 = FX_MAKE_STR("-no-c"); if (fx_streq(&args_1->hd, &slit_9)) { - _fx_g12Options__opt.gen_c = false; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_41 = &_fx_g12Options__opt.gen_c; *v_41 = false; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_10 = FX_MAKE_STR("-app"); if (fx_streq(&args_1->hd, &slit_10)) { - _fx_g12Options__opt.make_app = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_42 = &_fx_g12Options__opt.make_app; *v_42 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_11 = FX_MAKE_STR("-run"); if (fx_streq(&args_1->hd, &slit_11)) { - _fx_g12Options__opt.run_app = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_43 = &_fx_g12Options__opt.run_app; *v_43 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_12 = FX_MAKE_STR("-O0"); if (fx_streq(&args_1->hd, &slit_12)) { - _fx_g12Options__opt.optimize_level = 0; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + int_* v_44 = &_fx_g12Options__opt.optimize_level; *v_44 = 0; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_13 = FX_MAKE_STR("-O1"); if (fx_streq(&args_1->hd, &slit_13)) { - _fx_g12Options__opt.optimize_level = 1; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + int_* v_45 = &_fx_g12Options__opt.optimize_level; *v_45 = 1; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_14 = FX_MAKE_STR("-O3"); if (fx_streq(&args_1->hd, &slit_14)) { - _fx_g12Options__opt.optimize_level = 3; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + int_* v_46 = &_fx_g12Options__opt.optimize_level; *v_46 = 3; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_15 = FX_MAKE_STR("-Ofast"); if (fx_streq(&args_1->hd, &slit_15)) { - _fx_g12Options__opt.optimize_level = 100; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + int_* v_47 = &_fx_g12Options__opt.optimize_level; *v_47 = 100; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_16 = FX_MAKE_STR("-no-openmp"); if (fx_streq(&args_1->hd, &slit_16)) { - _fx_g12Options__opt.enable_openmp = false; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_48 = &_fx_g12Options__opt.enable_openmp; *v_48 = false; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_17 = FX_MAKE_STR("-debug"); if (fx_streq(&args_1->hd, &slit_17)) { - _fx_g12Options__opt.debug = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_49 = &_fx_g12Options__opt.debug; *v_49 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_18 = FX_MAKE_STR("-optim-iters"); if (fx_streq(&args_1->hd, &slit_18)) { - _fx_LS v_32 = args_1->tl; - if (v_32 != 0) { - fx_str_t v_33 = {0}; - fx_str_t v_34 = {0}; + _fx_LS v_50 = args_1->tl; + if (v_50 != 0) { + fx_str_t v_51 = {0}; + fx_str_t v_52 = {0}; int_ i_0; - FX_CALL(_fx_M7OptionsFM9to_int_ori3Sii(&v_32->hd, -1, 0, &i_0, 0), _fx_catch_0); + FX_CALL(_fx_M7OptionsFM9to_int_ori3Sii(&v_50->hd, -1, 0, &i_0, 0), _fx_catch_0); if (i_0 >= 0) { - _fx_g12Options__opt.optim_iters = i_0; FX_COPY_PTR(v_32->tl, &v_31); + int_* v_53 = &_fx_g12Options__opt.optim_iters; *v_53 = i_0; FX_COPY_PTR(v_50->tl, &v_32); } else { fx_str_t slit_19 = FX_MAKE_STR("error:"); - FX_CALL(_fx_M7OptionsFM6stringS1S(&slit_19, &v_33, 0), _fx_catch_0); + FX_CALL(_fx_M7OptionsFM6stringS1S(&slit_19, &v_51, 0), _fx_catch_0); fx_str_t slit_20 = FX_MAKE_STR(" invalid -optim-iters argument; must be a non-negative integer"); { - const fx_str_t strs_0[] = { v_33, slit_20 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_34), _fx_catch_0); + const fx_str_t strs_0[] = { v_51, slit_20 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_52), _fx_catch_0); } - FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_34, 0), _fx_catch_0); + FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_52, 0), _fx_catch_0); ok_0 = false; } _fx_catch_0: ; - FX_FREE_STR(&v_34); - FX_FREE_STR(&v_33); + FX_FREE_STR(&v_52); + FX_FREE_STR(&v_51); goto _fx_endmatch_3; } } @@ -889,30 +891,30 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) if (args_1 != 0) { fx_str_t slit_21 = FX_MAKE_STR("-inline-threshold"); if (fx_streq(&args_1->hd, &slit_21)) { - _fx_LS v_35 = args_1->tl; - if (v_35 != 0) { - fx_str_t v_36 = {0}; - fx_str_t v_37 = {0}; + _fx_LS v_54 = args_1->tl; + if (v_54 != 0) { + fx_str_t v_55 = {0}; + fx_str_t v_56 = {0}; int_ i_1; - FX_CALL(_fx_M7OptionsFM9to_int_ori3Sii(&v_35->hd, -1, 0, &i_1, 0), _fx_catch_1); + FX_CALL(_fx_M7OptionsFM9to_int_ori3Sii(&v_54->hd, -1, 0, &i_1, 0), _fx_catch_1); if (i_1 >= 0) { - _fx_g12Options__opt.optim_iters = i_1; FX_COPY_PTR(v_35->tl, &v_31); + int_* v_57 = &_fx_g12Options__opt.optim_iters; *v_57 = i_1; FX_COPY_PTR(v_54->tl, &v_32); } else { fx_str_t slit_22 = FX_MAKE_STR("error:"); - FX_CALL(_fx_M7OptionsFM6stringS1S(&slit_22, &v_36, 0), _fx_catch_1); + FX_CALL(_fx_M7OptionsFM6stringS1S(&slit_22, &v_55, 0), _fx_catch_1); fx_str_t slit_23 = FX_MAKE_STR(" invalid -inline-threshold argument; must be a non-negative integer"); { - const fx_str_t strs_1[] = { v_36, slit_23 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_37), _fx_catch_1); + const fx_str_t strs_1[] = { v_55, slit_23 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_56), _fx_catch_1); } - FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_37, 0), _fx_catch_1); + FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_56, 0), _fx_catch_1); ok_0 = false; } _fx_catch_1: ; - FX_FREE_STR(&v_37); - FX_FREE_STR(&v_36); + FX_FREE_STR(&v_56); + FX_FREE_STR(&v_55); goto _fx_endmatch_3; } } @@ -920,40 +922,48 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) if (args_1 != 0) { fx_str_t slit_24 = FX_MAKE_STR("-relax"); if (fx_streq(&args_1->hd, &slit_24)) { - _fx_g12Options__opt.relax = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_58 = &_fx_g12Options__opt.relax; *v_58 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_25 = FX_MAKE_STR("-Wno-unused"); if (fx_streq(&args_1->hd, &slit_25)) { - _fx_g12Options__opt.W_unused = false; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_59 = &_fx_g12Options__opt.W_unused; *v_59 = false; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_26 = FX_MAKE_STR("-Wimplicit-rettype"); if (fx_streq(&args_1->hd, &slit_26)) { - _fx_g12Options__opt.W_implicit_rettype = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_60 = &_fx_g12Options__opt.W_implicit_rettype; + *v_60 = true; + FX_COPY_PTR(args_1->tl, &v_32); + goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_27 = FX_MAKE_STR("-Wimplicit-rettype=all"); if (fx_streq(&args_1->hd, &slit_27)) { - _fx_g12Options__opt.W_implicit_rettype = true; - _fx_g12Options__opt.W_implicit_rettype_all = true; - FX_COPY_PTR(args_1->tl, &v_31); + bool* v_61 = &_fx_g12Options__opt.W_implicit_rettype; + *v_61 = true; + bool* v_62 = &_fx_g12Options__opt.W_implicit_rettype_all; + *v_62 = true; + FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_28 = FX_MAKE_STR("-Wall"); if (fx_streq(&args_1->hd, &slit_28)) { - _fx_g12Options__opt.W_implicit_rettype = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_63 = &_fx_g12Options__opt.W_implicit_rettype; + *v_63 = true; + FX_COPY_PTR(args_1->tl, &v_32); + goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_29 = FX_MAKE_STR("-Werror"); if (fx_streq(&args_1->hd, &slit_29)) { - _fx_g12Options__opt.Werror = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_64 = &_fx_g12Options__opt.Werror; *v_64 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { @@ -965,33 +975,33 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) int_ res_0; FX_CALL(_fx_M7OptionsFM6lengthi1S(&slit_31, &res_0, 0), _fx_catch_3); FX_CALL(fx_substr(opt_str_0, res_0, 0, 1, 2, &vstr_0), _fx_catch_3); - _fx_Nt6option1i v_38; - FX_CALL(_fx_M7OptionsFM6to_intNt6option1i2Si(&vstr_0, 0, &v_38, 0), _fx_catch_3); - if (v_38.tag == 2) { - int_ n_0 = v_38.u.Some; + _fx_Nt6option1i v_65; + FX_CALL(_fx_M7OptionsFM6to_intNt6option1i2Si(&vstr_0, 0, &v_65, 0), _fx_catch_3); + if (v_65.tag == 2) { + int_ n_0 = v_65.u.Some; if (n_0 > 0) { - _fx_g12Options__opt.max_errors = n_0; goto _fx_endmatch_0; + int_* v_66 = &_fx_g12Options__opt.max_errors; *v_66 = n_0; goto _fx_endmatch_0; } } - fx_str_t v_39 = {0}; - fx_str_t v_40 = {0}; - FX_CALL(_fx_M7OptionsFM6stringS1S(&vstr_0, &v_39, 0), _fx_catch_2); + fx_str_t v_67 = {0}; + fx_str_t v_68 = {0}; + FX_CALL(_fx_M7OptionsFM6stringS1S(&vstr_0, &v_67, 0), _fx_catch_2); fx_str_t slit_32 = FX_MAKE_STR("invalid -fmax-errors value \'"); fx_str_t slit_33 = FX_MAKE_STR("\' (expected a positive integer)"); { - const fx_str_t strs_2[] = { slit_32, v_39, slit_33 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_40), _fx_catch_2); + const fx_str_t strs_2[] = { slit_32, v_67, slit_33 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_68), _fx_catch_2); } - FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_40, 0), _fx_catch_2); + FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_68, 0), _fx_catch_2); ok_0 = false; _fx_catch_2: ; - FX_FREE_STR(&v_40); - FX_FREE_STR(&v_39); + FX_FREE_STR(&v_68); + FX_FREE_STR(&v_67); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_3); - FX_COPY_PTR(args_1->tl, &v_31); + FX_COPY_PTR(args_1->tl, &v_32); _fx_catch_3: ; FX_FREE_STR(&vstr_0); @@ -1001,19 +1011,19 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) if (args_1 != 0) { fx_str_t slit_34 = FX_MAKE_STR("-verbose"); if (fx_streq(&args_1->hd, &slit_34)) { - _fx_g12Options__opt.verbose = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_69 = &_fx_g12Options__opt.verbose; *v_69 = true; FX_COPY_PTR(args_1->tl, &v_32); goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_35 = FX_MAKE_STR("-o"); if (fx_streq(&args_1->hd, &slit_35)) { - _fx_LS v_41 = args_1->tl; - if (v_41 != 0) { - fx_str_t* v_42 = &_fx_g12Options__opt.output_name; - fx_str_t* oname_0 = &v_41->hd; - FX_FREE_STR(v_42); - fx_copy_str(oname_0, v_42); - FX_COPY_PTR(v_41->tl, &v_31); + _fx_LS v_70 = args_1->tl; + if (v_70 != 0) { + fx_str_t* v_71 = &_fx_g12Options__opt.output_name; + fx_str_t* oname_0 = &v_70->hd; + FX_FREE_STR(v_71); + fx_copy_str(oname_0, v_71); + FX_COPY_PTR(v_70->tl, &v_32); goto _fx_endmatch_3; } } @@ -1021,46 +1031,48 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) if (args_1 != 0) { fx_str_t slit_36 = FX_MAKE_STR("-D"); if (fx_streq(&args_1->hd, &slit_36)) { - _fx_LS v_43 = args_1->tl; - if (v_43 != 0) { - _fx_Ta2S v_44 = {0}; - fx_str_t v_45 = {0}; - fx_str_t v_46 = {0}; + _fx_LS v_72 = args_1->tl; + if (v_72 != 0) { + _fx_Ta2S v_73 = {0}; + fx_str_t v_74 = {0}; + fx_str_t v_75 = {0}; fx_str_t name_0 = {0}; fx_str_t value_0 = {0}; _fx_N17Options__optval_t errval_0 = {0}; _fx_N17Options__optval_t value_1 = {0}; - fx_str_t v_47 = {0}; - fx_str_t v_48 = {0}; - fx_str_t v_49 = {0}; - fx_str_t v_50 = {0}; - fx_str_t v_51 = {0}; - fx_str_t v_52 = {0}; - fx_str_t v_53 = {0}; - _fx_T2SN17Options__optval_t v_54 = {0}; - _fx_LT2SN17Options__optval_t v_55 = 0; - fx_str_t* nameval_0 = &v_43->hd; + fx_str_t v_76 = {0}; + fx_str_t v_77 = {0}; + fx_str_t v_78 = {0}; + fx_str_t v_79 = {0}; + fx_str_t v_80 = {0}; + fx_str_t v_81 = {0}; + fx_str_t v_82 = {0}; + _fx_T2SN17Options__optval_t v_83 = {0}; + _fx_LT2SN17Options__optval_t v_84 = 0; + _fx_LT2SN17Options__optval_t v_85 = 0; + fx_str_t* nameval_0 = &v_72->hd; int_ p1_0 = _fx_M6StringFM4findi2SC(nameval_0, (char_)61, 0); if (p1_0 < 0) { - fx_str_t slit_37 = FX_MAKE_STR("true"); _fx_make_Ta2S(nameval_0, &slit_37, &v_44); + fx_str_t slit_37 = FX_MAKE_STR("true"); _fx_make_Ta2S(nameval_0, &slit_37, &v_73); } else { - FX_CALL(fx_substr(nameval_0, 0, p1_0, 1, 1, &v_45), _fx_catch_6); - FX_CALL(fx_substr(nameval_0, p1_0 + 1, 0, 1, 2, &v_46), _fx_catch_6); - _fx_make_Ta2S(&v_45, &v_46, &v_44); + FX_CALL(fx_substr(nameval_0, 0, p1_0, 1, 1, &v_74), _fx_catch_6); + FX_CALL(fx_substr(nameval_0, p1_0 + 1, 0, 1, 2, &v_75), _fx_catch_6); + _fx_make_Ta2S(&v_74, &v_75, &v_73); } - fx_copy_str(&v_44.t0, &name_0); - fx_copy_str(&v_44.t1, &value_0); + fx_copy_str(&v_73.t0, &name_0); + fx_copy_str(&v_73.t1, &value_0); _fx_M7OptionsFM7OptBoolN17Options__optval_t1B(false, &errval_0); - bool v_56; + bool v_86; bool t_0; if (FX_STR_LENGTH(name_0) != 0) { FX_STR_CHKIDX(name_0, 0, _fx_catch_6); - if (_fx_M4CharFM7isalphaB1C(FX_STR_ELEM(name_0, 0), 0)) { + char_ v_87 = FX_STR_ELEM(name_0, 0); + if (_fx_M4CharFM7isalphaB1C(v_87, 0)) { t_0 = true; } else { - FX_STR_CHKIDX(name_0, 0, _fx_catch_6); t_0 = FX_STR_ELEM(name_0, 0) == (char_)95; + FX_STR_CHKIDX(name_0, 0, _fx_catch_6); char_ v_88 = FX_STR_ELEM(name_0, 0); t_0 = v_88 == (char_)95; } } else { @@ -1071,14 +1083,14 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) int_ len_0 = FX_STR_LENGTH(name_0); for (int_ i_2 = 0; i_2 < len_0; i_2++) { char_ c_0 = name_0.data[i_2]; - bool v_57; + bool v_89; if (_fx_M4CharFM7isalnumB1C(c_0, 0)) { - v_57 = true; + v_89 = true; } else { - v_57 = c_0 == (char_)95; + v_89 = c_0 == (char_)95; } - if (!v_57) { + if (!v_89) { __fold_result___0 = false; FX_BREAK(_fx_catch_4); } @@ -1086,13 +1098,13 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_6); } - v_56 = __fold_result___0; + v_86 = __fold_result___0; } else { - v_56 = false; + v_86 = false; } - if (v_56) { - bool v_58; + if (v_86) { + bool v_90; fx_str_t slit_38 = FX_MAKE_STR("TRUE"); bool t_1; if (_fx_F6__eq__B2SS(&value_0, &slit_38, 0)) { @@ -1109,16 +1121,16 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) fx_str_t slit_40 = FX_MAKE_STR("ON"); t_2 = _fx_F6__eq__B2SS(&value_0, &slit_40, 0); } if (t_2) { - v_58 = true; + v_90 = true; } else { - fx_str_t slit_41 = FX_MAKE_STR("on"); v_58 = _fx_F6__eq__B2SS(&value_0, &slit_41, 0); + fx_str_t slit_41 = FX_MAKE_STR("on"); v_90 = _fx_F6__eq__B2SS(&value_0, &slit_41, 0); } - if (v_58) { + if (v_90) { _fx_M7OptionsFM7OptBoolN17Options__optval_t1B(true, &value_1); } else { - bool v_59; + bool v_91; fx_str_t slit_42 = FX_MAKE_STR("FALSE"); bool t_3; if (_fx_F6__eq__B2SS(&value_0, &slit_42, 0)) { @@ -1135,91 +1147,96 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) fx_str_t slit_44 = FX_MAKE_STR("OFF"); t_4 = _fx_F6__eq__B2SS(&value_0, &slit_44, 0); } if (t_4) { - v_59 = true; + v_91 = true; } else { - fx_str_t slit_45 = FX_MAKE_STR("off"); v_59 = _fx_F6__eq__B2SS(&value_0, &slit_45, 0); + fx_str_t slit_45 = FX_MAKE_STR("off"); v_91 = _fx_F6__eq__B2SS(&value_0, &slit_45, 0); } - if (v_59) { + if (v_91) { _fx_M7OptionsFM7OptBoolN17Options__optval_t1B(false, &value_1); } else if (FX_STR_LENGTH(value_0) == 0) { - FX_CALL(_fx_M7OptionsFM6stringS1S(&name_0, &v_47, 0), _fx_catch_6); + FX_CALL(_fx_M7OptionsFM6stringS1S(&name_0, &v_76, 0), _fx_catch_6); fx_str_t slit_46 = FX_MAKE_STR("a value should follow after \'"); fx_str_t slit_47 = FX_MAKE_STR("=\'"); { - const fx_str_t strs_3[] = { slit_46, v_47, slit_47 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_48), _fx_catch_6); + const fx_str_t strs_3[] = { slit_46, v_76, slit_47 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 3, &v_77), _fx_catch_6); } - FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_48, 0), _fx_catch_6); + FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_77, 0), _fx_catch_6); ok_0 = false; _fx_copy_N17Options__optval_t(&errval_0, &value_1); } else { FX_STR_CHKIDX(value_0, 0, _fx_catch_6); - bool v_60; + char_ v_92 = FX_STR_ELEM(value_0, 0); + bool v_93; bool t_5; - if (FX_STR_ELEM(value_0, 0) == (char_)43) { + if (v_92 == (char_)43) { t_5 = true; } else { - FX_STR_CHKIDX(value_0, 0, _fx_catch_6); t_5 = FX_STR_ELEM(value_0, 0) == (char_)45; + FX_STR_CHKIDX(value_0, 0, _fx_catch_6); + char_ v_94 = FX_STR_ELEM(value_0, 0); + t_5 = v_94 == (char_)45; } if (t_5) { - v_60 = true; + v_93 = true; } else { - FX_STR_CHKIDX(value_0, 0, _fx_catch_6); v_60 = _fx_M4CharFM7isdigitB1C(FX_STR_ELEM(value_0, 0), 0); + FX_STR_CHKIDX(value_0, 0, _fx_catch_6); + char_ v_95 = FX_STR_ELEM(value_0, 0); + v_93 = _fx_M4CharFM7isdigitB1C(v_95, 0); } - if (v_60) { - _fx_Nt6option1i v_61; - FX_CALL(_fx_M7OptionsFM6to_intNt6option1i2Si(&value_0, 0, &v_61, 0), _fx_catch_6); - if (v_61.tag == 2) { - _fx_M7OptionsFM6OptIntN17Options__optval_t1i(v_61.u.Some, &value_1); + if (v_93) { + _fx_Nt6option1i v_96; + FX_CALL(_fx_M7OptionsFM6to_intNt6option1i2Si(&value_0, 0, &v_96, 0), _fx_catch_6); + if (v_96.tag == 2) { + _fx_M7OptionsFM6OptIntN17Options__optval_t1i(v_96.u.Some, &value_1); } else { - fx_str_t v_62 = {0}; - fx_str_t v_63 = {0}; - fx_str_t v_64 = {0}; - FX_CALL(_fx_M7OptionsFM6stringS1S(&value_0, &v_62, 0), _fx_catch_5); - FX_CALL(_fx_M7OptionsFM6stringS1S(&name_0, &v_63, 0), _fx_catch_5); + fx_str_t v_97 = {0}; + fx_str_t v_98 = {0}; + fx_str_t v_99 = {0}; + FX_CALL(_fx_M7OptionsFM6stringS1S(&value_0, &v_97, 0), _fx_catch_5); + FX_CALL(_fx_M7OptionsFM6stringS1S(&name_0, &v_98, 0), _fx_catch_5); fx_str_t slit_48 = FX_MAKE_STR("invalid numerical value \'"); fx_str_t slit_49 = FX_MAKE_STR("\' of a symbol \'"); fx_str_t slit_50 = FX_MAKE_STR("\'; if you meant a string, enclose it in double quotes"); { - const fx_str_t strs_4[] = { slit_48, v_62, slit_49, v_63, slit_50 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 5, &v_64), _fx_catch_5); + const fx_str_t strs_4[] = { slit_48, v_97, slit_49, v_98, slit_50 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 5, &v_99), _fx_catch_5); } - FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_64, 0), _fx_catch_5); + FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_99, 0), _fx_catch_5); ok_0 = false; _fx_copy_N17Options__optval_t(&errval_0, &value_1); _fx_catch_5: ; - FX_FREE_STR(&v_64); - FX_FREE_STR(&v_63); - FX_FREE_STR(&v_62); + FX_FREE_STR(&v_99); + FX_FREE_STR(&v_98); + FX_FREE_STR(&v_97); } FX_CHECK_EXN(_fx_catch_6); } else { - bool v_65 = _fx_M6StringFM10startswithB2SC(&value_0, (char_)34, 0); - if (v_65) { - bool v_66 = _fx_M6StringFM8endswithB2SC(&value_0, (char_)34, 0); - if (!v_66) { - FX_CALL(_fx_M7OptionsFM6stringS1S(&value_0, &v_49, 0), _fx_catch_6); + bool v_100 = _fx_M6StringFM10startswithB2SC(&value_0, (char_)34, 0); + if (v_100) { + bool v_101 = _fx_M6StringFM8endswithB2SC(&value_0, (char_)34, 0); + if (!v_101) { + FX_CALL(_fx_M7OptionsFM6stringS1S(&value_0, &v_78, 0), _fx_catch_6); fx_str_t slit_51 = FX_MAKE_STR("the value "); fx_str_t slit_52 = FX_MAKE_STR(" starts with \'\"\', but does not terminate with \'\"\'"); { - const fx_str_t strs_5[] = { slit_51, v_49, slit_52 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_5, 3, &v_50), _fx_catch_6); + const fx_str_t strs_5[] = { slit_51, v_78, slit_52 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_5, 3, &v_79), _fx_catch_6); } - FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_50, 0), _fx_catch_6); + FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_79, 0), _fx_catch_6); ok_0 = false; _fx_copy_N17Options__optval_t(&errval_0, &value_1); } else { - FX_CALL(fx_substr(&value_0, 1, -1, 1, 0, &v_51), _fx_catch_6); - _fx_M7OptionsFM9OptStringN17Options__optval_t1S(&v_51, &value_1); + FX_CALL(fx_substr(&value_0, 1, -1, 1, 0, &v_80), _fx_catch_6); + _fx_M7OptionsFM9OptStringN17Options__optval_t1S(&v_80, &value_1); } } else { @@ -1230,46 +1247,49 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) } } else { - FX_CALL(_fx_M7OptionsFM6stringS1S(&name_0, &v_52, 0), _fx_catch_6); + FX_CALL(_fx_M7OptionsFM6stringS1S(&name_0, &v_81, 0), _fx_catch_6); fx_str_t slit_53 = FX_MAKE_STR("identifier \'"); fx_str_t slit_54 = FX_MAKE_STR("\' contains incorrect characters"); { - const fx_str_t strs_6[] = { slit_53, v_52, slit_54 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_6, 3, &v_53), _fx_catch_6); + const fx_str_t strs_6[] = { slit_53, v_81, slit_54 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_6, 3, &v_82), _fx_catch_6); } - FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_53, 0), _fx_catch_6); + FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_82, 0), _fx_catch_6); ok_0 = false; _fx_copy_N17Options__optval_t(&errval_0, &value_1); } if (ok_0) { - _fx_make_T2SN17Options__optval_t(&name_0, &value_1, &v_54); - FX_COPY_PTR(_fx_g12Options__opt.defines, &v_55); - FX_CALL(_fx_cons_LT2SN17Options__optval_t(&v_54, v_55, false, &v_55), _fx_catch_6); - _fx_LT2SN17Options__optval_t* v_67 = &_fx_g12Options__opt.defines; - _fx_free_LT2SN17Options__optval_t(v_67); - FX_COPY_PTR(v_55, v_67); - FX_COPY_PTR(v_43->tl, &v_31); + _fx_make_T2SN17Options__optval_t(&name_0, &value_1, &v_83); + FX_COPY_PTR(_fx_g12Options__opt.defines, &v_84); + FX_CALL(_fx_cons_LT2SN17Options__optval_t(&v_83, v_84, true, &v_85), _fx_catch_6); + _fx_LT2SN17Options__optval_t* v_102 = &_fx_g12Options__opt.defines; + _fx_free_LT2SN17Options__optval_t(v_102); + FX_COPY_PTR(v_85, v_102); + FX_COPY_PTR(v_72->tl, &v_32); } _fx_catch_6: ; - if (v_55) { - _fx_free_LT2SN17Options__optval_t(&v_55); + if (v_85) { + _fx_free_LT2SN17Options__optval_t(&v_85); } - _fx_free_T2SN17Options__optval_t(&v_54); - FX_FREE_STR(&v_53); - FX_FREE_STR(&v_52); - FX_FREE_STR(&v_51); - FX_FREE_STR(&v_50); - FX_FREE_STR(&v_49); - FX_FREE_STR(&v_48); - FX_FREE_STR(&v_47); + if (v_84) { + _fx_free_LT2SN17Options__optval_t(&v_84); + } + _fx_free_T2SN17Options__optval_t(&v_83); + FX_FREE_STR(&v_82); + FX_FREE_STR(&v_81); + FX_FREE_STR(&v_80); + FX_FREE_STR(&v_79); + FX_FREE_STR(&v_78); + FX_FREE_STR(&v_77); + FX_FREE_STR(&v_76); _fx_free_N17Options__optval_t(&value_1); _fx_free_N17Options__optval_t(&errval_0); FX_FREE_STR(&value_0); FX_FREE_STR(&name_0); - FX_FREE_STR(&v_46); - FX_FREE_STR(&v_45); - _fx_free_Ta2S(&v_44); + FX_FREE_STR(&v_75); + FX_FREE_STR(&v_74); + _fx_free_Ta2S(&v_73); goto _fx_endmatch_3; } } @@ -1277,28 +1297,28 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) if (args_1 != 0) { fx_str_t slit_55 = FX_MAKE_STR("-I"); if (fx_streq(&args_1->hd, &slit_55)) { - _fx_LS v_68 = args_1->tl; - if (v_68 != 0) { - _fx_LS v_69 = 0; - _fx_LS v_70 = 0; - _fx_LS v_71 = 0; - FX_COPY_PTR(_fx_g12Options__opt.include_path, &v_69); - FX_CALL(_fx_cons_LS(&v_68->hd, 0, true, &v_70), _fx_catch_7); - FX_CALL(_fx_M7OptionsFM7__add__LS2LSLS(v_69, v_70, &v_71, 0), _fx_catch_7); - _fx_LS* v_72 = &_fx_g12Options__opt.include_path; - _fx_free_LS(v_72); - FX_COPY_PTR(v_71, v_72); - FX_COPY_PTR(v_68->tl, &v_31); + _fx_LS v_103 = args_1->tl; + if (v_103 != 0) { + _fx_LS v_104 = 0; + _fx_LS v_105 = 0; + _fx_LS v_106 = 0; + FX_COPY_PTR(_fx_g12Options__opt.include_path, &v_104); + FX_CALL(_fx_cons_LS(&v_103->hd, 0, true, &v_105), _fx_catch_7); + FX_CALL(_fx_M7OptionsFM7__add__LS2LSLS(v_104, v_105, &v_106, 0), _fx_catch_7); + _fx_LS* v_107 = &_fx_g12Options__opt.include_path; + _fx_free_LS(v_107); + FX_COPY_PTR(v_106, v_107); + FX_COPY_PTR(v_103->tl, &v_32); _fx_catch_7: ; - if (v_71) { - _fx_free_LS(&v_71); + if (v_106) { + _fx_free_LS(&v_106); } - if (v_70) { - _fx_free_LS(&v_70); + if (v_105) { + _fx_free_LS(&v_105); } - if (v_69) { - _fx_free_LS(&v_69); + if (v_104) { + _fx_free_LS(&v_104); } goto _fx_endmatch_3; } @@ -1307,13 +1327,13 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) if (args_1 != 0) { fx_str_t slit_56 = FX_MAKE_STR("-B"); if (fx_streq(&args_1->hd, &slit_56)) { - _fx_LS v_73 = args_1->tl; - if (v_73 != 0) { - fx_str_t* v_74 = &_fx_g12Options__opt.build_rootdir; - fx_str_t* bdir_0 = &v_73->hd; - FX_FREE_STR(v_74); - fx_copy_str(bdir_0, v_74); - FX_COPY_PTR(v_73->tl, &v_31); + _fx_LS v_108 = args_1->tl; + if (v_108 != 0) { + fx_str_t* v_109 = &_fx_g12Options__opt.build_rootdir; + fx_str_t* bdir_0 = &v_108->hd; + FX_FREE_STR(v_109); + fx_copy_str(bdir_0, v_109); + FX_COPY_PTR(v_108->tl, &v_32); goto _fx_endmatch_3; } } @@ -1321,39 +1341,42 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) if (args_1 != 0) { fx_str_t slit_57 = FX_MAKE_STR("-c++"); if (fx_streq(&args_1->hd, &slit_57)) { - _fx_g12Options__opt.compile_by_cpp = true; FX_COPY_PTR(args_1->tl, &v_31); goto _fx_endmatch_3; + bool* v_110 = &_fx_g12Options__opt.compile_by_cpp; + *v_110 = true; + FX_COPY_PTR(args_1->tl, &v_32); + goto _fx_endmatch_3; } } if (args_1 != 0) { fx_str_t slit_58 = FX_MAKE_STR("-cflags"); if (fx_streq(&args_1->hd, &slit_58)) { - _fx_LS v_75 = args_1->tl; - if (v_75 != 0) { - fx_str_t v_76 = {0}; - fx_str_t v_77 = {0}; - fx_str_t v_78 = {0}; - fx_str_t* cflags_0 = &v_75->hd; - fx_copy_str(&_fx_g12Options__opt.cflags, &v_76); - if (FX_STR_LENGTH(v_76) == 0) { - fx_copy_str(cflags_0, &v_77); + _fx_LS v_111 = args_1->tl; + if (v_111 != 0) { + fx_str_t v_112 = {0}; + fx_str_t v_113 = {0}; + fx_str_t v_114 = {0}; + fx_str_t* cflags_0 = &v_111->hd; + fx_copy_str(&_fx_g12Options__opt.cflags, &v_112); + if (FX_STR_LENGTH(v_112) == 0) { + fx_copy_str(cflags_0, &v_113); } else { - fx_copy_str(&_fx_g12Options__opt.cflags, &v_78); + fx_copy_str(&_fx_g12Options__opt.cflags, &v_114); fx_str_t slit_59 = FX_MAKE_STR(" "); { - const fx_str_t strs_7[] = { v_78, slit_59, *cflags_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_7, 3, &v_77), _fx_catch_8); + const fx_str_t strs_7[] = { v_114, slit_59, *cflags_0 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_7, 3, &v_113), _fx_catch_8); } } - fx_str_t* v_79 = &_fx_g12Options__opt.cflags; - FX_FREE_STR(v_79); - fx_copy_str(&v_77, v_79); - FX_COPY_PTR(v_75->tl, &v_31); + fx_str_t* v_115 = &_fx_g12Options__opt.cflags; + FX_FREE_STR(v_115); + fx_copy_str(&v_113, v_115); + FX_COPY_PTR(v_111->tl, &v_32); _fx_catch_8: ; - FX_FREE_STR(&v_78); - FX_FREE_STR(&v_77); - FX_FREE_STR(&v_76); + FX_FREE_STR(&v_114); + FX_FREE_STR(&v_113); + FX_FREE_STR(&v_112); goto _fx_endmatch_3; } } @@ -1361,33 +1384,33 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) if (args_1 != 0) { fx_str_t slit_60 = FX_MAKE_STR("-clibs"); if (fx_streq(&args_1->hd, &slit_60)) { - _fx_LS v_80 = args_1->tl; - if (v_80 != 0) { - fx_str_t v_81 = {0}; - fx_str_t v_82 = {0}; - fx_str_t v_83 = {0}; - fx_str_t* clibs_0 = &v_80->hd; - fx_copy_str(&_fx_g12Options__opt.clibs, &v_81); - if (FX_STR_LENGTH(v_81) == 0) { - fx_copy_str(clibs_0, &v_82); + _fx_LS v_116 = args_1->tl; + if (v_116 != 0) { + fx_str_t v_117 = {0}; + fx_str_t v_118 = {0}; + fx_str_t v_119 = {0}; + fx_str_t* clibs_0 = &v_116->hd; + fx_copy_str(&_fx_g12Options__opt.clibs, &v_117); + if (FX_STR_LENGTH(v_117) == 0) { + fx_copy_str(clibs_0, &v_118); } else { - fx_copy_str(&_fx_g12Options__opt.clibs, &v_83); + fx_copy_str(&_fx_g12Options__opt.clibs, &v_119); fx_str_t slit_61 = FX_MAKE_STR(" "); { - const fx_str_t strs_8[] = { v_83, slit_61, *clibs_0 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_8, 3, &v_82), _fx_catch_9); + const fx_str_t strs_8[] = { v_119, slit_61, *clibs_0 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_8, 3, &v_118), _fx_catch_9); } } - fx_str_t* v_84 = &_fx_g12Options__opt.clibs; - FX_FREE_STR(v_84); - fx_copy_str(&v_82, v_84); - FX_COPY_PTR(v_80->tl, &v_31); + fx_str_t* v_120 = &_fx_g12Options__opt.clibs; + FX_FREE_STR(v_120); + fx_copy_str(&v_118, v_120); + FX_COPY_PTR(v_116->tl, &v_32); _fx_catch_9: ; - FX_FREE_STR(&v_83); - FX_FREE_STR(&v_82); - FX_FREE_STR(&v_81); + FX_FREE_STR(&v_119); + FX_FREE_STR(&v_118); + FX_FREE_STR(&v_117); goto _fx_endmatch_3; } } @@ -1447,100 +1470,100 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) if (args_1 != 0) { fx_str_t slit_68 = FX_MAKE_STR("--"); if (fx_streq(&args_1->hd, &slit_68)) { - _fx_LS* v_85 = &_fx_g12Options__opt.app_args; + _fx_LS* v_121 = &_fx_g12Options__opt.app_args; _fx_LS* next_0 = &args_1->tl; - _fx_free_LS(v_85); - FX_COPY_PTR(*next_0, v_85); + _fx_free_LS(v_121); + FX_COPY_PTR(*next_0, v_121); goto _fx_endmatch_3; } } if (args_1 != 0) { - _fx_LS v_86 = 0; - fx_str_t v_87 = {0}; - fx_str_t v_88 = {0}; - fx_str_t v_89 = {0}; - fx_str_t v_90 = {0}; - fx_str_t v_91 = {0}; - fx_str_t v_92 = {0}; - fx_str_t v_93 = {0}; - _fx_LS v_94 = 0; - fx_str_t v_95 = {0}; - fx_str_t v_96 = {0}; + _fx_LS v_122 = 0; + fx_str_t v_123 = {0}; + fx_str_t v_124 = {0}; + fx_str_t v_125 = {0}; + fx_str_t v_126 = {0}; + fx_str_t v_127 = {0}; + fx_str_t v_128 = {0}; + fx_str_t v_129 = {0}; + _fx_LS v_130 = 0; + fx_str_t v_131 = {0}; + fx_str_t v_132 = {0}; fx_str_t* a_0 = &args_1->hd; - bool v_97; + bool v_133; fx_str_t slit_69 = FX_MAKE_STR("-"); - v_97 = _fx_M6StringFM10startswithB2SS(a_0, &slit_69, 0); - if (v_97) { + v_133 = _fx_M6StringFM10startswithB2SS(a_0, &slit_69, 0); + if (v_133) { fx_str_t slit_70 = FX_MAKE_STR("-clibs"); - FX_CALL(_fx_cons_LS(&slit_70, 0, true, &v_86), _fx_catch_10); + FX_CALL(_fx_cons_LS(&slit_70, 0, true, &v_122), _fx_catch_10); fx_str_t slit_71 = FX_MAKE_STR("-cflags"); - FX_CALL(_fx_cons_LS(&slit_71, v_86, false, &v_86), _fx_catch_10); + FX_CALL(_fx_cons_LS(&slit_71, v_122, false, &v_122), _fx_catch_10); fx_str_t slit_72 = FX_MAKE_STR("-B"); - FX_CALL(_fx_cons_LS(&slit_72, v_86, false, &v_86), _fx_catch_10); + FX_CALL(_fx_cons_LS(&slit_72, v_122, false, &v_122), _fx_catch_10); fx_str_t slit_73 = FX_MAKE_STR("-o"); - FX_CALL(_fx_cons_LS(&slit_73, v_86, false, &v_86), _fx_catch_10); + FX_CALL(_fx_cons_LS(&slit_73, v_122, false, &v_122), _fx_catch_10); fx_str_t slit_74 = FX_MAKE_STR("-inline-threshold"); - FX_CALL(_fx_cons_LS(&slit_74, v_86, false, &v_86), _fx_catch_10); - bool v_98; - FX_CALL(_fx_M7OptionsFM3memB2LSS(v_86, a_0, &v_98, 0), _fx_catch_10); - if (v_98) { + FX_CALL(_fx_cons_LS(&slit_74, v_122, false, &v_122), _fx_catch_10); + bool v_134; + FX_CALL(_fx_M7OptionsFM3memB2LSS(v_122, a_0, &v_134, 0), _fx_catch_10); + if (v_134) { fx_str_t slit_75 = FX_MAKE_STR("error:"); - FX_CALL(_fx_M7OptionsFM6stringS1S(&slit_75, &v_87, 0), _fx_catch_10); - FX_CALL(_fx_M7OptionsFM6stringS1S(a_0, &v_88, 0), _fx_catch_10); + FX_CALL(_fx_M7OptionsFM6stringS1S(&slit_75, &v_123, 0), _fx_catch_10); + FX_CALL(_fx_M7OptionsFM6stringS1S(a_0, &v_124, 0), _fx_catch_10); fx_str_t slit_76 = FX_MAKE_STR(" option "); fx_str_t slit_77 = FX_MAKE_STR(" needs an argument"); { - const fx_str_t strs_9[] = { v_87, slit_76, v_88, slit_77 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_9, 4, &v_89), _fx_catch_10); + const fx_str_t strs_9[] = { v_123, slit_76, v_124, slit_77 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_9, 4, &v_125), _fx_catch_10); } - FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_89, 0), _fx_catch_10); + FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_125, 0), _fx_catch_10); } else { fx_str_t slit_78 = FX_MAKE_STR("error:"); - FX_CALL(_fx_M7OptionsFM6stringS1S(&slit_78, &v_90, 0), _fx_catch_10); - FX_CALL(_fx_M7OptionsFM6stringS1S(a_0, &v_91, 0), _fx_catch_10); + FX_CALL(_fx_M7OptionsFM6stringS1S(&slit_78, &v_126, 0), _fx_catch_10); + FX_CALL(_fx_M7OptionsFM6stringS1S(a_0, &v_127, 0), _fx_catch_10); fx_str_t slit_79 = FX_MAKE_STR(" unrecognized option "); { - const fx_str_t strs_10[] = { v_90, slit_79, v_91 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_10, 3, &v_92), _fx_catch_10); + const fx_str_t strs_10[] = { v_126, slit_79, v_127 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_10, 3, &v_128), _fx_catch_10); } - FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_92, 0), _fx_catch_10); + FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_128, 0), _fx_catch_10); } ok_0 = false; } else if (FX_STR_LENGTH(inputfile_0) == 0) { - FX_FREE_STR(&inputfile_0); fx_copy_str(a_0, &inputfile_0); FX_COPY_PTR(args_1->tl, &v_31); + FX_FREE_STR(&inputfile_0); fx_copy_str(a_0, &inputfile_0); FX_COPY_PTR(args_1->tl, &v_32); } else { fx_str_t slit_80 = FX_MAKE_STR("error:"); - FX_CALL(_fx_M7OptionsFM6stringS1S(&slit_80, &v_93, 0), _fx_catch_10); - FX_CALL(_fx_cons_LS(a_0, 0, true, &v_94), _fx_catch_10); - FX_CALL(_fx_cons_LS(&inputfile_0, v_94, false, &v_94), _fx_catch_10); - FX_CALL(_fx_M7OptionsFM6stringS1LS(v_94, &v_95, 0), _fx_catch_10); + FX_CALL(_fx_M7OptionsFM6stringS1S(&slit_80, &v_129, 0), _fx_catch_10); + FX_CALL(_fx_cons_LS(a_0, 0, true, &v_130), _fx_catch_10); + FX_CALL(_fx_cons_LS(&inputfile_0, v_130, false, &v_130), _fx_catch_10); + FX_CALL(_fx_M7OptionsFM6stringS1LS(v_130, &v_131, 0), _fx_catch_10); fx_str_t slit_81 = FX_MAKE_STR(" more than one input file is specified: "); { - const fx_str_t strs_11[] = { v_93, slit_81, v_95 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_11, 3, &v_96), _fx_catch_10); + const fx_str_t strs_11[] = { v_129, slit_81, v_131 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_11, 3, &v_132), _fx_catch_10); } - FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_96, 0), _fx_catch_10); + FX_CALL(_fx_M7OptionsFM7printlnv1S(&v_132, 0), _fx_catch_10); ok_0 = false; } _fx_catch_10: ; - FX_FREE_STR(&v_96); - FX_FREE_STR(&v_95); - if (v_94) { - _fx_free_LS(&v_94); + FX_FREE_STR(&v_132); + FX_FREE_STR(&v_131); + if (v_130) { + _fx_free_LS(&v_130); } - FX_FREE_STR(&v_93); - FX_FREE_STR(&v_92); - FX_FREE_STR(&v_91); - FX_FREE_STR(&v_90); - FX_FREE_STR(&v_89); - FX_FREE_STR(&v_88); - FX_FREE_STR(&v_87); - if (v_86) { - _fx_free_LS(&v_86); + FX_FREE_STR(&v_129); + FX_FREE_STR(&v_128); + FX_FREE_STR(&v_127); + FX_FREE_STR(&v_126); + FX_FREE_STR(&v_125); + FX_FREE_STR(&v_124); + FX_FREE_STR(&v_123); + if (v_122) { + _fx_free_LS(&v_122); } goto _fx_endmatch_3; } @@ -1549,30 +1572,35 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) _fx_endmatch_3: ; FX_CHECK_EXN(_fx_catch_11); _fx_free_LS(&args_0); - FX_COPY_PTR(v_31, &args_0); + FX_COPY_PTR(v_32, &args_0); _fx_catch_11: ; - if (v_31) { - _fx_free_LS(&v_31); + if (v_32) { + _fx_free_LS(&v_32); } if (args_1) { _fx_free_LS(&args_1); } FX_CHECK_EXN(_fx_cleanup); } - if (_fx_g12Options__opt.optim_iters <= 0) { + int_ v_135 = _fx_g12Options__opt.optim_iters; + if (v_135 <= 0) { + int_ v_136 = _fx_g12Options__opt.optimize_level; int_ t_6; - if (_fx_g12Options__opt.optimize_level >= 3) { + if (v_136 >= 3) { t_6 = 3; } else { t_6 = 2; } - _fx_g12Options__opt.optim_iters = t_6; + int_* v_137 = &_fx_g12Options__opt.optim_iters; + *v_137 = t_6; } + int_ v_138 = _fx_g12Options__opt.optim_iters; int_ res_3; - FX_CALL(_fx_M7OptionsFM3maxi2ii(_fx_g12Options__opt.optim_iters, 2, &res_3, 0), _fx_cleanup); - _fx_g12Options__opt.optim_iters = res_3; + FX_CALL(_fx_M7OptionsFM3maxi2ii(v_138, 2, &res_3, 0), _fx_cleanup); + int_* v_139 = &_fx_g12Options__opt.optim_iters; + *v_139 = res_3; bool t_7; if (!prver_0) { t_7 = prhelp_0 == 0; @@ -1605,6 +1633,7 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) prhelp_0 = 1; } } + bool v_140; bool t_9; if (_fx_g12Options__opt.run_app) { t_9 = true; @@ -1612,14 +1641,13 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) else { t_9 = _fx_g12Options__opt.compile_by_cpp; } - bool t_10; if (t_9) { - t_10 = !_fx_g12Options__opt.gen_c; + bool v_141 = _fx_g12Options__opt.gen_c; v_140 = !v_141; } else { - t_10 = false; + v_140 = false; } - if (t_10) { + if (v_140) { fx_str_t slit_84 = FX_MAKE_STR("error:"); FX_CALL(_fx_M7OptionsFM6stringS1S(&slit_84, &v_4, 0), _fx_cleanup); fx_str_t slit_85 = FX_MAKE_STR(" -no-c option cannot be used together with -run or -c++"); @@ -1664,27 +1692,28 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) FX_CALL(_fx_M7OptionsFM10print_helpv1B(prhelp_0 > 1, 0), _fx_cleanup); *fx_result = false; } else if (ok_0) { - if (_fx_g12Options__opt.optimize_level == 0) { - _fx_g12Options__opt.inline_thresh = 1; + int_ v_142 = _fx_g12Options__opt.optimize_level; + if (v_142 == 0) { + int_* v_143 = &_fx_g12Options__opt.inline_thresh; *v_143 = 1; } FX_CALL(_fx_M8FilenameFM9normalizeS2SS(&curr_dir_0, &inputfile_0, &v_15, 0), _fx_cleanup); - fx_str_t* v_99 = &_fx_g12Options__opt.filename; - FX_FREE_STR(v_99); - fx_copy_str(&v_15, v_99); + fx_str_t* v_144 = &_fx_g12Options__opt.filename; + FX_FREE_STR(v_144); + fx_copy_str(&v_15, v_144); fx_copy_str(&_fx_g12Options__opt.filename, &v_16); FX_CALL(_fx_M8FilenameFM8basenameS1S(&v_16, &default_output_name_0, 0), _fx_cleanup); FX_CALL(_fx_M8FilenameFM16remove_extensionS1S(&default_output_name_0, &default_output_name_1, 0), _fx_cleanup); fx_copy_str(&_fx_g12Options__opt.build_rootdir, &v_17); FX_CALL(_fx_M8FilenameFM9normalizeS2SS(&curr_dir_0, &v_17, &v_18, 0), _fx_cleanup); - fx_str_t* v_100 = &_fx_g12Options__opt.build_rootdir; - FX_FREE_STR(v_100); - fx_copy_str(&v_18, v_100); + fx_str_t* v_145 = &_fx_g12Options__opt.build_rootdir; + FX_FREE_STR(v_145); + fx_copy_str(&v_18, v_145); fx_copy_str(&_fx_g12Options__opt.build_rootdir, &v_19); fx_str_t slit_91 = FX_MAKE_STR("__fxbuild__"); FX_CALL(_fx_M8FilenameFM9normalizeS2SS(&v_19, &slit_91, &v_20, 0), _fx_cleanup); - fx_str_t* v_101 = &_fx_g12Options__opt.build_rootdir; - FX_FREE_STR(v_101); - fx_copy_str(&v_20, v_101); + fx_str_t* v_146 = &_fx_g12Options__opt.build_rootdir; + FX_FREE_STR(v_146); + fx_copy_str(&v_20, v_146); fx_copy_str(&_fx_g12Options__opt.output_name, &v_21); if (FX_STR_LENGTH(v_21) != 0) { fx_copy_str(&_fx_g12Options__opt.output_name, &v_22); @@ -1692,24 +1721,24 @@ FX_EXTERN_C int _fx_M7OptionsFM13parse_optionsB0(bool* fx_result, void* fx_fv) else { fx_copy_str(&default_output_name_1, &v_22); } - fx_str_t* v_102 = &_fx_g12Options__opt.app_filename; - FX_FREE_STR(v_102); - fx_copy_str(&v_22, v_102); + fx_str_t* v_147 = &_fx_g12Options__opt.app_filename; + FX_FREE_STR(v_147); + fx_copy_str(&v_22, v_147); fx_copy_str(&_fx_g12Options__opt.build_rootdir, &v_23); fx_copy_str(&_fx_g12Options__opt.app_filename, &v_24); FX_CALL(_fx_M8FilenameFM8basenameS1S(&v_24, &v_25, 0), _fx_cleanup); FX_CALL(_fx_M8FilenameFM9normalizeS2SS(&v_23, &v_25, &v_26, 0), _fx_cleanup); - fx_str_t* v_103 = &_fx_g12Options__opt.build_dir; - FX_FREE_STR(v_103); - fx_copy_str(&v_26, v_103); + fx_str_t* v_148 = &_fx_g12Options__opt.build_dir; + FX_FREE_STR(v_148); + fx_copy_str(&v_26, v_148); fx_copy_str(&_fx_g12Options__opt.output_name, &v_27); if (FX_STR_LENGTH(v_27) == 0) { fx_copy_str(&_fx_g12Options__opt.build_dir, &v_28); fx_copy_str(&_fx_g12Options__opt.app_filename, &v_29); FX_CALL(_fx_M8FilenameFM9normalizeS2SS(&v_28, &v_29, &v_30, 0), _fx_cleanup); - fx_str_t* v_104 = &_fx_g12Options__opt.app_filename; - FX_FREE_STR(v_104); - fx_copy_str(&v_30, v_104); + fx_str_t* v_149 = &_fx_g12Options__opt.app_filename; + FX_FREE_STR(v_149); + fx_copy_str(&v_30, v_149); } *fx_result = true; } diff --git a/compiler/bootstrap/PP.c b/compiler/bootstrap/PP.c index 71ff4f3a..3025d473 100644 --- a/compiler/bootstrap/PP.c +++ b/compiler/bootstrap/PP.c @@ -551,19 +551,26 @@ FX_EXTERN_C int _fx_M2PPFM13make_pprinterRM1t4iFPv1SFPLS0i( FX_CALL(_fx_make_rR11PP__state_t(&v_4, &v_5), _fx_cleanup); _fx_make_R5PP__t(margin_0, default_indent_0, print_f_0, get_f_0, v_5, &pp_0); FX_COPY_PTR(pp_0.r, &v_6); - v_6->data.space = pp_0.margin; + _fx_R11PP__state_t* v_14 = &v_6->data; + v_14->space = pp_0.margin; FX_COPY_PTR(pp_0.r, &v_7); - v_7->data.left = 0; + _fx_R11PP__state_t* v_15 = &v_7->data; + v_15->left = 0; FX_COPY_PTR(pp_0.r, &v_8); - v_8->data.right = 0; + _fx_R11PP__state_t* v_16 = &v_8->data; + v_16->right = 0; FX_COPY_PTR(pp_0.r, &v_9); - v_9->data.top = 0; + _fx_R11PP__state_t* v_17 = &v_9->data; + v_17->top = 0; FX_COPY_PTR(pp_0.r, &v_10); - v_10->data.bottom = 0; + _fx_R11PP__state_t* v_18 = &v_10->data; + v_18->bottom = 0; FX_COPY_PTR(pp_0.r, &v_11); - v_11->data.emptystack = true; + _fx_R11PP__state_t* v_19 = &v_11->data; + v_19->emptystack = true; FX_COPY_PTR(pp_0.r, &v_12); - v_12->data.pp_top = 0; + _fx_R11PP__state_t* v_20 = &v_12->data; + v_20->pp_top = 0; _fx_copy_R5PP__t(&pp_0, fx_result); _fx_cleanup: ; @@ -616,9 +623,9 @@ FX_EXTERN_C int _fx_M2PPFM21pprint_to_string_listRM1t2ii( int fx_status = 0; FX_CALL(_fx_make_rLS(0, &lines_ref_0), _fx_cleanup); FX_CALL(_fx_make_ri(100, &capacity_ref_0), _fx_cleanup); + int_* capacity_0 = &capacity_ref_0->data; FX_CALL(_fx_make_ri(0, &bufsize_ref_0), _fx_cleanup); char_* dstptr_0 = 0; - int_* capacity_0 = &capacity_ref_0->data; int_ n_0 = *capacity_0; { const int_ shape_0[] = { n_0 }; @@ -683,14 +690,15 @@ static int _fx_M2PPFM7print_fv1S(fx_str_t* s_0, void* fx_fv) char_ c_0 = s_0->data[i_0]; int_ v_5 = bufsz_0 + i_0; FX_CHKIDX(FX_CHKIDX1(*curr_0, 0, v_5), _fx_catch_1); - *FX_PTR_1D(char_, *curr_0, v_5) = c_0; + char_* v_6 = FX_PTR_1D(char_, *curr_0, v_5); + *v_6 = c_0; _fx_catch_1: ; FX_CHECK_EXN(_fx_cleanup); } *bufsize_0 = bufsz_0 + strsize_0; - bool v_6 = _fx_M6StringFM8endswithB2SC(s_0, (char_)10, 0); - if (v_6) { + bool v_7 = _fx_M6StringFM8endswithB2SC(s_0, (char_)10, 0); + if (v_7) { { const int_ ranges_0[] = { 1, 0, *bufsize_0, 1 }; FX_CALL(fx_subarr(curr_0, ranges_0, &v_0), _fx_cleanup); @@ -734,16 +742,17 @@ static int _fx_M2PPFM5get_fLS0(struct _fx_LS_data_t** fx_result, void* fx_fv) fx_str_t v_1 = {0}; fx_str_t v_2 = {0}; _fx_LS v_3 = 0; - _fx_LS __fold_result___0 = 0; + _fx_LS res_0 = 0; _fx_LS lines_0 = 0; int fx_status = 0; _fx_M2PPFM5get_fLS0_cldata_t* cv_0 = (_fx_M2PPFM5get_fLS0_cldata_t*)fx_fv; int_* bufsize_0 = &cv_0->t0->data; + fx_arr_t* curr_0 = &cv_0->t1->data; _fx_LS* lines_1 = &cv_0->t2->data; if (*bufsize_0 > 0) { { const int_ ranges_0[] = { 1, 0, *bufsize_0, 1 }; - FX_CALL(fx_subarr(&cv_0->t1->data, ranges_0, &v_0), _fx_cleanup); + FX_CALL(fx_subarr(curr_0, ranges_0, &v_0), _fx_cleanup); } FX_CALL(_fx_F6stringS1A1C(&v_0, &v_1, 0), _fx_cleanup); FX_CALL(_fx_M6StringFM5stripS1S(&v_1, &v_2, 0), _fx_cleanup); @@ -754,20 +763,19 @@ static int _fx_M2PPFM5get_fLS0(struct _fx_LS_data_t** fx_result, void* fx_fv) FX_COPY_PTR(*lines_1, &lines_0); _fx_LS lst_0 = lines_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LS r_0 = 0; + _fx_LS v_4 = 0; fx_str_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LS(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LS(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LS(a_0, res_0, true, &v_4), _fx_catch_0); + _fx_free_LS(&res_0); + FX_COPY_PTR(v_4, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LS(&r_0); + if (v_4) { + _fx_free_LS(&v_4); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; FX_FREE_ARR(&v_0); @@ -776,8 +784,8 @@ _fx_cleanup: ; if (v_3) { _fx_free_LS(&v_3); } - if (__fold_result___0) { - _fx_free_LS(&__fold_result___0); + if (res_0) { + _fx_free_LS(&res_0); } if (lines_0) { _fx_free_LS(&lines_0); @@ -857,7 +865,8 @@ FX_EXTERN_C int _fx_M2PPFM5flushv1RM1t(struct _fx_R5PP__t* pp_0, void* fx_fv) int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); FX_COPY_PTR(pp_0->r, &v_0); - if (!v_0->data.emptystack) { + _fx_R11PP__state_t* v_1 = &v_0->data; + if (!v_1->emptystack) { FX_CALL(_fx_M2PPFM11check_stackv2RM1ti(pp_0, 0, 0), _fx_cleanup); int_ res_0; FX_CALL(_fx_M2PPFM12advance_lefti1RM1t(pp_0, &res_0, 0), _fx_cleanup); @@ -928,41 +937,52 @@ FX_EXTERN_C int _fx_M2PPFM5beginv3RM1tiN13PP__ppstyle_t( _fx_rR11PP__state_t v_12 = 0; int fx_status = 0; FX_COPY_PTR(pp_0->r, &v_0); + _fx_R11PP__state_t* v_13 = &v_0->data; int_ right_0; - if (v_0->data.emptystack) { + if (v_13->emptystack) { FX_COPY_PTR(pp_0->r, &v_1); - v_1->data.lefttotal = 1; + _fx_R11PP__state_t* v_14 = &v_1->data; + v_14->lefttotal = 1; FX_COPY_PTR(pp_0->r, &v_2); - v_2->data.righttotal = 1; + _fx_R11PP__state_t* v_15 = &v_2->data; + v_15->righttotal = 1; FX_COPY_PTR(pp_0->r, &v_3); - v_3->data.left = 0; + _fx_R11PP__state_t* v_16 = &v_3->data; + v_16->left = 0; FX_COPY_PTR(pp_0->r, &v_4); - v_4->data.right = 0; + _fx_R11PP__state_t* v_17 = &v_4->data; + v_17->right = 0; right_0 = 0; } else { FX_COPY_PTR(pp_0->r, &v_5); + _fx_R11PP__state_t* v_18 = &v_5->data; FX_COPY_PTR(pp_0->r, &v_6); - fx_copy_arr(&v_6->data.q, &v_7); - int_ v_13 = FX_ARR_SIZE(v_7, 0); - FX_CHECK_DIV_BY_ZERO(v_13, _fx_cleanup); - int_ right_1 = (v_5->data.right + 1) % v_13; + _fx_R11PP__state_t* v_19 = &v_6->data; + fx_copy_arr(&v_19->q, &v_7); + int_ v_20 = FX_ARR_SIZE(v_7, 0); + FX_CHECK_DIV_BY_ZERO(v_20, _fx_cleanup); + int_ right_1 = (v_18->right + 1) % v_20; FX_COPY_PTR(pp_0->r, &v_8); - v_8->data.right = right_1; + _fx_R11PP__state_t* v_21 = &v_8->data; + v_21->right = right_1; FX_COPY_PTR(pp_0->r, &v_9); - if (right_1 == v_9->data.left) { + _fx_R11PP__state_t* v_22 = &v_9->data; + if (right_1 == v_22->left) { FX_THROW(&_fx_E19PP__PPQueueOverflowv, false, _fx_cleanup); } right_0 = right_1; } _fx_M2PPFM7PPBeginN11PP__pptok_t2iN13PP__ppstyle_t(indent_0, style_0, &tk_0); FX_COPY_PTR(pp_0->r, &v_10); - _fx_make_T2N11PP__pptok_ti(&tk_0, -v_10->data.righttotal, &v_11); + _fx_R11PP__state_t* v_23 = &v_10->data; + _fx_make_T2N11PP__pptok_ti(&tk_0, -v_23->righttotal, &v_11); FX_COPY_PTR(pp_0->r, &v_12); - FX_CHKIDX(FX_CHKIDX1(v_12->data.q, 0, right_0), _fx_cleanup); - _fx_T2N11PP__pptok_ti* v_14 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_12->data.q, right_0); - _fx_free_T2N11PP__pptok_ti(v_14); - _fx_copy_T2N11PP__pptok_ti(&v_11, v_14); + _fx_R11PP__state_t* v_24 = &v_12->data; + FX_CHKIDX(FX_CHKIDX1(v_24->q, 0, right_0), _fx_cleanup); + _fx_T2N11PP__pptok_ti* v_25 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_24->q, right_0); + _fx_free_T2N11PP__pptok_ti(v_25); + _fx_copy_T2N11PP__pptok_ti(&v_11, v_25); FX_CALL(_fx_M2PPFM9scan_pushv2RM1ti(pp_0, right_0, 0), _fx_cleanup); _fx_cleanup: ; @@ -1017,28 +1037,34 @@ FX_EXTERN_C int _fx_M2PPFM3endv1RM1t(struct _fx_R5PP__t* pp_0, void* fx_fv) _fx_rR11PP__state_t v_7 = 0; int fx_status = 0; FX_COPY_PTR(pp_0->r, &v_0); - if (v_0->data.emptystack) { + _fx_R11PP__state_t* v_8 = &v_0->data; + if (v_8->emptystack) { FX_CALL(_fx_M2PPFM6pprintv3RM1tN11PP__pptok_ti(pp_0, &_fx_g9PP__PPEnd, 0, 0), _fx_cleanup); } else { FX_COPY_PTR(pp_0->r, &v_1); + _fx_R11PP__state_t* v_9 = &v_1->data; FX_COPY_PTR(pp_0->r, &v_2); - fx_copy_arr(&v_2->data.q, &v_3); - int_ v_8 = FX_ARR_SIZE(v_3, 0); - FX_CHECK_DIV_BY_ZERO(v_8, _fx_cleanup); - int_ right_0 = (v_1->data.right + 1) % v_8; + _fx_R11PP__state_t* v_10 = &v_2->data; + fx_copy_arr(&v_10->q, &v_3); + int_ v_11 = FX_ARR_SIZE(v_3, 0); + FX_CHECK_DIV_BY_ZERO(v_11, _fx_cleanup); + int_ right_0 = (v_9->right + 1) % v_11; FX_COPY_PTR(pp_0->r, &v_4); - v_4->data.right = right_0; + _fx_R11PP__state_t* v_12 = &v_4->data; + v_12->right = right_0; FX_COPY_PTR(pp_0->r, &v_5); - if (right_0 == v_5->data.left) { + _fx_R11PP__state_t* v_13 = &v_5->data; + if (right_0 == v_13->left) { FX_THROW(&_fx_E19PP__PPQueueOverflowv, false, _fx_cleanup); } _fx_make_T2N11PP__pptok_ti(&_fx_g9PP__PPEnd, -1, &v_6); FX_COPY_PTR(pp_0->r, &v_7); - FX_CHKIDX(FX_CHKIDX1(v_7->data.q, 0, right_0), _fx_cleanup); - _fx_T2N11PP__pptok_ti* v_9 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_7->data.q, right_0); - _fx_free_T2N11PP__pptok_ti(v_9); - _fx_copy_T2N11PP__pptok_ti(&v_6, v_9); + _fx_R11PP__state_t* v_14 = &v_7->data; + FX_CHKIDX(FX_CHKIDX1(v_14->q, 0, right_0), _fx_cleanup); + _fx_T2N11PP__pptok_ti* v_15 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_14->q, right_0); + _fx_free_T2N11PP__pptok_ti(v_15); + _fx_copy_T2N11PP__pptok_ti(&v_6, v_15); FX_CALL(_fx_M2PPFM9scan_pushv2RM1ti(pp_0, right_0, 0), _fx_cleanup); } @@ -1086,29 +1112,38 @@ FX_EXTERN_C int _fx_M2PPFM2brv4RM1tiiC(struct _fx_R5PP__t* pp_0, int_ spaces_0, _fx_rR11PP__state_t v_14 = 0; int fx_status = 0; FX_COPY_PTR(pp_0->r, &v_0); + _fx_R11PP__state_t* v_15 = &v_0->data; int_ right_0; - if (v_0->data.emptystack) { + if (v_15->emptystack) { FX_COPY_PTR(pp_0->r, &v_1); - v_1->data.lefttotal = 1; + _fx_R11PP__state_t* v_16 = &v_1->data; + v_16->lefttotal = 1; FX_COPY_PTR(pp_0->r, &v_2); - v_2->data.righttotal = 1; + _fx_R11PP__state_t* v_17 = &v_2->data; + v_17->righttotal = 1; FX_COPY_PTR(pp_0->r, &v_3); - v_3->data.left = 0; + _fx_R11PP__state_t* v_18 = &v_3->data; + v_18->left = 0; FX_COPY_PTR(pp_0->r, &v_4); - v_4->data.right = 0; + _fx_R11PP__state_t* v_19 = &v_4->data; + v_19->right = 0; right_0 = 0; } else { FX_COPY_PTR(pp_0->r, &v_5); + _fx_R11PP__state_t* v_20 = &v_5->data; FX_COPY_PTR(pp_0->r, &v_6); - fx_copy_arr(&v_6->data.q, &v_7); - int_ v_15 = FX_ARR_SIZE(v_7, 0); - FX_CHECK_DIV_BY_ZERO(v_15, _fx_cleanup); - int_ right_1 = (v_5->data.right + 1) % v_15; + _fx_R11PP__state_t* v_21 = &v_6->data; + fx_copy_arr(&v_21->q, &v_7); + int_ v_22 = FX_ARR_SIZE(v_7, 0); + FX_CHECK_DIV_BY_ZERO(v_22, _fx_cleanup); + int_ right_1 = (v_20->right + 1) % v_22; FX_COPY_PTR(pp_0->r, &v_8); - v_8->data.right = right_1; + _fx_R11PP__state_t* v_23 = &v_8->data; + v_23->right = right_1; FX_COPY_PTR(pp_0->r, &v_9); - if (right_1 == v_9->data.left) { + _fx_R11PP__state_t* v_24 = &v_9->data; + if (right_1 == v_24->left) { FX_THROW(&_fx_E19PP__PPQueueOverflowv, false, _fx_cleanup); } right_0 = right_1; @@ -1117,15 +1152,19 @@ FX_EXTERN_C int _fx_M2PPFM2brv4RM1tiiC(struct _fx_R5PP__t* pp_0, int_ spaces_0, FX_CALL(_fx_M2PPFM9scan_pushv2RM1ti(pp_0, right_0, 0), _fx_cleanup); _fx_M2PPFM7PPBreakN11PP__pptok_t3iiC(spaces_0, offset_0, sep_0, &tk_0); FX_COPY_PTR(pp_0->r, &v_10); - _fx_make_T2N11PP__pptok_ti(&tk_0, -v_10->data.righttotal, &v_11); + _fx_R11PP__state_t* v_25 = &v_10->data; + _fx_make_T2N11PP__pptok_ti(&tk_0, -v_25->righttotal, &v_11); FX_COPY_PTR(pp_0->r, &v_12); - FX_CHKIDX(FX_CHKIDX1(v_12->data.q, 0, right_0), _fx_cleanup); - _fx_T2N11PP__pptok_ti* v_16 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_12->data.q, right_0); - _fx_free_T2N11PP__pptok_ti(v_16); - _fx_copy_T2N11PP__pptok_ti(&v_11, v_16); + _fx_R11PP__state_t* v_26 = &v_12->data; + FX_CHKIDX(FX_CHKIDX1(v_26->q, 0, right_0), _fx_cleanup); + _fx_T2N11PP__pptok_ti* v_27 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_26->q, right_0); + _fx_free_T2N11PP__pptok_ti(v_27); + _fx_copy_T2N11PP__pptok_ti(&v_11, v_27); FX_COPY_PTR(pp_0->r, &v_13); + _fx_R11PP__state_t* v_28 = &v_13->data; FX_COPY_PTR(pp_0->r, &v_14); - v_14->data.righttotal = v_13->data.righttotal + spaces_0; + _fx_R11PP__state_t* v_29 = &v_14->data; + v_29->righttotal = v_28->righttotal + spaces_0; _fx_cleanup: ; if (v_0) { @@ -1262,31 +1301,39 @@ FX_EXTERN_C int _fx_M2PPFM3strv2RM1tS(struct _fx_R5PP__t* pp_0, fx_str_t* s_0, v _fx_M2PPFM8PPStringN11PP__pptok_t1S(s_0, &tk_0); int_ l_0 = FX_STR_LENGTH(*s_0); FX_COPY_PTR(pp_0->r, &v_0); - if (v_0->data.emptystack) { + _fx_R11PP__state_t* v_10 = &v_0->data; + if (v_10->emptystack) { FX_CALL(_fx_M2PPFM6pprintv3RM1tN11PP__pptok_ti(pp_0, &tk_0, l_0, 0), _fx_cleanup); } else { _fx_make_T2N11PP__pptok_ti(&tk_0, l_0, &v_1); FX_COPY_PTR(pp_0->r, &v_2); + _fx_R11PP__state_t* v_11 = &v_2->data; FX_COPY_PTR(pp_0->r, &v_3); + _fx_R11PP__state_t* v_12 = &v_3->data; FX_COPY_PTR(pp_0->r, &v_4); - fx_copy_arr(&v_4->data.q, &v_5); - int_ v_10 = FX_ARR_SIZE(v_5, 0); - FX_CHECK_DIV_BY_ZERO(v_10, _fx_cleanup); - int_ right_0 = (v_3->data.right + 1) % v_10; + _fx_R11PP__state_t* v_13 = &v_4->data; + fx_copy_arr(&v_13->q, &v_5); + int_ v_14 = FX_ARR_SIZE(v_5, 0); + FX_CHECK_DIV_BY_ZERO(v_14, _fx_cleanup); + int_ right_0 = (v_12->right + 1) % v_14; FX_COPY_PTR(pp_0->r, &v_6); - v_6->data.right = right_0; + _fx_R11PP__state_t* v_15 = &v_6->data; + v_15->right = right_0; FX_COPY_PTR(pp_0->r, &v_7); - if (right_0 == v_7->data.left) { + _fx_R11PP__state_t* v_16 = &v_7->data; + if (right_0 == v_16->left) { FX_THROW(&_fx_E19PP__PPQueueOverflowv, false, _fx_cleanup); } - FX_CHKIDX(FX_CHKIDX1(v_2->data.q, 0, right_0), _fx_cleanup); - _fx_T2N11PP__pptok_ti* v_11 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_2->data.q, right_0); - _fx_free_T2N11PP__pptok_ti(v_11); - _fx_copy_T2N11PP__pptok_ti(&v_1, v_11); + FX_CHKIDX(FX_CHKIDX1(v_11->q, 0, right_0), _fx_cleanup); + _fx_T2N11PP__pptok_ti* v_17 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_11->q, right_0); + _fx_free_T2N11PP__pptok_ti(v_17); + _fx_copy_T2N11PP__pptok_ti(&v_1, v_17); FX_COPY_PTR(pp_0->r, &v_8); + _fx_R11PP__state_t* v_18 = &v_8->data; FX_COPY_PTR(pp_0->r, &v_9); - v_9->data.righttotal = v_8->data.righttotal + l_0; + _fx_R11PP__state_t* v_19 = &v_9->data; + v_19->righttotal = v_18->righttotal + l_0; FX_CALL(_fx_M2PPFM12check_streamv1RM1t(pp_0, 0), _fx_cleanup); } @@ -1347,52 +1394,69 @@ FX_EXTERN_C int _fx_M2PPFM12check_streamv1RM1t(struct _fx_R5PP__t* pp_0, void* f _fx_rR11PP__state_t v_16 = 0; _fx_copy_R5PP__t(&pp_1, &pp_2); FX_COPY_PTR(pp_2.r, &v_0); + _fx_R11PP__state_t* v_17 = &v_0->data; FX_COPY_PTR(pp_2.r, &v_1); + _fx_R11PP__state_t* v_18 = &v_1->data; FX_COPY_PTR(pp_2.r, &v_2); - if (v_0->data.righttotal - v_1->data.lefttotal > v_2->data.space) { + _fx_R11PP__state_t* v_19 = &v_2->data; + if (v_17->righttotal - v_18->lefttotal > v_19->space) { FX_COPY_PTR(pp_2.r, &v_3); - bool t_0; - if (!v_3->data.emptystack) { + _fx_R11PP__state_t* v_20 = &v_3->data; + bool v_21; + if (!v_20->emptystack) { FX_COPY_PTR(pp_2.r, &v_4); + _fx_R11PP__state_t* v_22 = &v_4->data; FX_COPY_PTR(pp_2.r, &v_5); + _fx_R11PP__state_t* v_23 = &v_5->data; FX_COPY_PTR(pp_2.r, &v_6); - int_ v_17 = v_6->data.bottom; - FX_CHKIDX(FX_CHKIDX1(v_5->data.stack, 0, v_17), _fx_catch_0); - t_0 = v_4->data.left == *FX_PTR_1D(int_, v_5->data.stack, v_17); + _fx_R11PP__state_t* v_24 = &v_6->data; + int_ v_25 = v_24->bottom; + FX_CHKIDX(FX_CHKIDX1(v_23->stack, 0, v_25), _fx_catch_0); + int_ v_26 = *FX_PTR_1D(int_, v_23->stack, v_25); + v_21 = v_22->left == v_26; } else { - t_0 = false; + v_21 = false; } - if (t_0) { + if (v_21) { FX_COPY_PTR(pp_2.r, &v_7); + _fx_R11PP__state_t* v_27 = &v_7->data; FX_COPY_PTR(pp_2.r, &v_8); - if (v_8->data.emptystack) { + _fx_R11PP__state_t* v_28 = &v_8->data; + if (v_28->emptystack) { FX_THROW(&_fx_E16PP__PPEmptyStackv, false, _fx_catch_0); } FX_COPY_PTR(pp_2.r, &v_9); - int_ bottom_0 = v_9->data.bottom; + _fx_R11PP__state_t* v_29 = &v_9->data; + int_ bottom_0 = v_29->bottom; FX_COPY_PTR(pp_2.r, &v_10); - FX_CHKIDX(FX_CHKIDX1(v_10->data.stack, 0, bottom_0), _fx_catch_0); - int_ x_0 = *FX_PTR_1D(int_, v_10->data.stack, bottom_0); + _fx_R11PP__state_t* v_30 = &v_10->data; + FX_CHKIDX(FX_CHKIDX1(v_30->stack, 0, bottom_0), _fx_catch_0); + int_ x_0 = *FX_PTR_1D(int_, v_30->stack, bottom_0); FX_COPY_PTR(pp_2.r, &v_11); - if (bottom_0 == v_11->data.top) { - FX_COPY_PTR(pp_2.r, &v_12); v_12->data.emptystack = true; + _fx_R11PP__state_t* v_31 = &v_11->data; + if (bottom_0 == v_31->top) { + FX_COPY_PTR(pp_2.r, &v_12); _fx_R11PP__state_t* v_32 = &v_12->data; v_32->emptystack = true; } else { FX_COPY_PTR(pp_2.r, &v_13); - fx_copy_arr(&v_13->data.stack, &v_14); - int_ v_18 = FX_ARR_SIZE(v_14, 0); - FX_CHECK_DIV_BY_ZERO(v_18, _fx_catch_0); + _fx_R11PP__state_t* v_33 = &v_13->data; + fx_copy_arr(&v_33->stack, &v_14); + int_ v_34 = FX_ARR_SIZE(v_14, 0); + FX_CHECK_DIV_BY_ZERO(v_34, _fx_catch_0); FX_COPY_PTR(pp_2.r, &v_15); - v_15->data.bottom = (bottom_0 + 1) % v_18; + _fx_R11PP__state_t* v_35 = &v_15->data; + v_35->bottom = (bottom_0 + 1) % v_34; } - FX_CHKIDX(FX_CHKIDX1(v_7->data.q, 0, x_0), _fx_catch_0); - FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_7->data.q, x_0)->t1 = 1000000; + FX_CHKIDX(FX_CHKIDX1(v_27->q, 0, x_0), _fx_catch_0); + _fx_T2N11PP__pptok_ti* v_36 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_27->q, x_0); + v_36->t1 = 1000000; } int_ left_0; FX_CALL(_fx_M2PPFM12advance_lefti1RM1t(&pp_2, &left_0, 0), _fx_catch_0); FX_COPY_PTR(pp_2.r, &v_16); - if (left_0 != v_16->data.right) { + _fx_R11PP__state_t* v_37 = &v_16->data; + if (left_0 != v_37->right) { _fx_free_R5PP__t(&pp_1); _fx_copy_R5PP__t(&pp_2, &pp_1); } else { @@ -1476,27 +1540,36 @@ FX_EXTERN_C int _fx_M2PPFM9scan_pushv2RM1ti(struct _fx_R5PP__t* pp_0, int_ i_0, _fx_rR11PP__state_t v_8 = 0; int fx_status = 0; FX_COPY_PTR(pp_0->r, &v_0); - if (!v_0->data.emptystack) { + _fx_R11PP__state_t* v_9 = &v_0->data; + if (!v_9->emptystack) { FX_COPY_PTR(pp_0->r, &v_1); + _fx_R11PP__state_t* v_10 = &v_1->data; FX_COPY_PTR(pp_0->r, &v_2); - fx_copy_arr(&v_2->data.stack, &v_3); - int_ v_9 = FX_ARR_SIZE(v_3, 0); - FX_CHECK_DIV_BY_ZERO(v_9, _fx_cleanup); - int_ top_0 = (v_1->data.top + 1) % v_9; + _fx_R11PP__state_t* v_11 = &v_2->data; + fx_copy_arr(&v_11->stack, &v_3); + int_ v_12 = FX_ARR_SIZE(v_3, 0); + FX_CHECK_DIV_BY_ZERO(v_12, _fx_cleanup); + int_ top_0 = (v_10->top + 1) % v_12; FX_COPY_PTR(pp_0->r, &v_4); - v_4->data.top = top_0; + _fx_R11PP__state_t* v_13 = &v_4->data; + v_13->top = top_0; FX_COPY_PTR(pp_0->r, &v_5); - if (top_0 == v_5->data.bottom) { + _fx_R11PP__state_t* v_14 = &v_5->data; + if (top_0 == v_14->bottom) { FX_THROW(&_fx_E19PP__PPStackOverflowv, false, _fx_cleanup); } } FX_COPY_PTR(pp_0->r, &v_6); + _fx_R11PP__state_t* v_15 = &v_6->data; FX_COPY_PTR(pp_0->r, &v_7); - int_ v_10 = v_7->data.top; - FX_CHKIDX(FX_CHKIDX1(v_6->data.stack, 0, v_10), _fx_cleanup); - *FX_PTR_1D(int_, v_6->data.stack, v_10) = i_0; + _fx_R11PP__state_t* v_16 = &v_7->data; + int_ v_17 = v_16->top; + FX_CHKIDX(FX_CHKIDX1(v_15->stack, 0, v_17), _fx_cleanup); + int_* v_18 = FX_PTR_1D(int_, v_15->stack, v_17); + *v_18 = i_0; FX_COPY_PTR(pp_0->r, &v_8); - v_8->data.emptystack = false; + _fx_R11PP__state_t* v_19 = &v_8->data; + v_19->emptystack = false; _fx_cleanup: ; if (v_0) { @@ -1539,25 +1612,31 @@ FX_EXTERN_C int _fx_M2PPFM8scan_popi1RM1t(struct _fx_R5PP__t* pp_0, int_* fx_res _fx_rR11PP__state_t v_7 = 0; int fx_status = 0; FX_COPY_PTR(pp_0->r, &v_0); - if (v_0->data.emptystack) { + _fx_R11PP__state_t* v_8 = &v_0->data; + if (v_8->emptystack) { FX_THROW(&_fx_E16PP__PPEmptyStackv, false, _fx_cleanup); } FX_COPY_PTR(pp_0->r, &v_1); - int_ top_0 = v_1->data.top; + _fx_R11PP__state_t* v_9 = &v_1->data; + int_ top_0 = v_9->top; FX_COPY_PTR(pp_0->r, &v_2); - FX_CHKIDX(FX_CHKIDX1(v_2->data.stack, 0, top_0), _fx_cleanup); - int_ x_0 = *FX_PTR_1D(int_, v_2->data.stack, top_0); + _fx_R11PP__state_t* v_10 = &v_2->data; + FX_CHKIDX(FX_CHKIDX1(v_10->stack, 0, top_0), _fx_cleanup); + int_ x_0 = *FX_PTR_1D(int_, v_10->stack, top_0); FX_COPY_PTR(pp_0->r, &v_3); - if (top_0 == v_3->data.bottom) { - FX_COPY_PTR(pp_0->r, &v_4); v_4->data.emptystack = true; + _fx_R11PP__state_t* v_11 = &v_3->data; + if (top_0 == v_11->bottom) { + FX_COPY_PTR(pp_0->r, &v_4); _fx_R11PP__state_t* v_12 = &v_4->data; v_12->emptystack = true; } else { FX_COPY_PTR(pp_0->r, &v_5); - fx_copy_arr(&v_5->data.stack, &v_6); + _fx_R11PP__state_t* v_13 = &v_5->data; + fx_copy_arr(&v_13->stack, &v_6); int_ stacksize_0 = FX_ARR_SIZE(v_6, 0); FX_CHECK_DIV_BY_ZERO(stacksize_0, _fx_cleanup); FX_COPY_PTR(pp_0->r, &v_7); - v_7->data.top = (top_0 + stacksize_0 - 1) % stacksize_0; + _fx_R11PP__state_t* v_14 = &v_7->data; + v_14->top = (top_0 + stacksize_0 - 1) % stacksize_0; } *fx_result = x_0; @@ -1607,12 +1686,14 @@ FX_EXTERN_C int _fx_M2PPFM12advance_lefti1RM1t(struct _fx_R5PP__t* pp_0, int_* f _fx_rR11PP__state_t v_7 = 0; _fx_copy_R5PP__t(&pp_1, &pp_2); FX_COPY_PTR(pp_2.r, &v_0); - int_ left_0 = v_0->data.left; + _fx_R11PP__state_t* v_8 = &v_0->data; + int_ left_0 = v_8->left; FX_COPY_PTR(pp_2.r, &v_1); - FX_CHKIDX(FX_CHKIDX1(v_1->data.q, 0, left_0), _fx_catch_0); - _fx_T2N11PP__pptok_ti* v_8 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_1->data.q, left_0); - _fx_copy_N11PP__pptok_t(&v_8->t0, &tk_0); - int_ len_0 = v_8->t1; + _fx_R11PP__state_t* v_9 = &v_1->data; + FX_CHKIDX(FX_CHKIDX1(v_9->q, 0, left_0), _fx_catch_0); + _fx_T2N11PP__pptok_ti* v_10 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_9->q, left_0); + _fx_copy_N11PP__pptok_t(&v_10->t0, &tk_0); + int_ len_0 = v_10->t1; if (len_0 >= 0) { FX_CALL(_fx_M2PPFM6pprintv3RM1tN11PP__pptok_ti(&pp_2, &tk_0, len_0, 0), _fx_catch_0); int tag_0 = tk_0.tag; @@ -1628,16 +1709,21 @@ FX_EXTERN_C int _fx_M2PPFM12advance_lefti1RM1t(struct _fx_R5PP__t* pp_0, int_* f } FX_CHECK_EXN(_fx_catch_0); FX_COPY_PTR(pp_2.r, &v_2); + _fx_R11PP__state_t* v_11 = &v_2->data; FX_COPY_PTR(pp_2.r, &v_3); - v_3->data.lefttotal = v_2->data.lefttotal + spaces_0; + _fx_R11PP__state_t* v_12 = &v_3->data; + v_12->lefttotal = v_11->lefttotal + spaces_0; FX_COPY_PTR(pp_2.r, &v_4); - if (left_0 != v_4->data.right) { + _fx_R11PP__state_t* v_13 = &v_4->data; + if (left_0 != v_13->right) { FX_COPY_PTR(pp_2.r, &v_5); - fx_copy_arr(&v_5->data.q, &v_6); - int_ v_9 = FX_ARR_SIZE(v_6, 0); - FX_CHECK_DIV_BY_ZERO(v_9, _fx_catch_0); + _fx_R11PP__state_t* v_14 = &v_5->data; + fx_copy_arr(&v_14->q, &v_6); + int_ v_15 = FX_ARR_SIZE(v_6, 0); + FX_CHECK_DIV_BY_ZERO(v_15, _fx_catch_0); FX_COPY_PTR(pp_2.r, &v_7); - v_7->data.left = (left_0 + 1) % v_9; + _fx_R11PP__state_t* v_16 = &v_7->data; + v_16->left = (left_0 + 1) % v_15; _fx_free_R5PP__t(&pp_1); _fx_copy_R5PP__t(&pp_2, &pp_1); } @@ -1700,28 +1786,35 @@ FX_EXTERN_C int _fx_M2PPFM11check_stackv2RM1ti(struct _fx_R5PP__t* pp_0, int_ k_ _fx_copy_R5PP__t(&pp_1, &pp_2); int_ k_2 = k_1; FX_COPY_PTR(pp_2.r, &v_0); - if (!v_0->data.emptystack) { + _fx_R11PP__state_t* v_4 = &v_0->data; + if (!v_4->emptystack) { FX_COPY_PTR(pp_2.r, &v_1); + _fx_R11PP__state_t* v_5 = &v_1->data; FX_COPY_PTR(pp_2.r, &v_2); - int_ v_4 = v_2->data.top; - FX_CHKIDX(FX_CHKIDX1(v_1->data.stack, 0, v_4), _fx_catch_3); - int_ x_0 = *FX_PTR_1D(int_, v_1->data.stack, v_4); + _fx_R11PP__state_t* v_6 = &v_2->data; + int_ v_7 = v_6->top; + FX_CHKIDX(FX_CHKIDX1(v_5->stack, 0, v_7), _fx_catch_3); + int_ x_0 = *FX_PTR_1D(int_, v_5->stack, v_7); FX_COPY_PTR(pp_2.r, &v_3); - FX_CHKIDX(FX_CHKIDX1(v_3->data.q, 0, x_0), _fx_catch_3); - _fx_T2N11PP__pptok_ti* v_5 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_3->data.q, x_0); - _fx_copy_N11PP__pptok_t(&v_5->t0, &tk_0); - int_ len_0 = v_5->t1; + _fx_R11PP__state_t* v_8 = &v_3->data; + FX_CHKIDX(FX_CHKIDX1(v_8->q, 0, x_0), _fx_catch_3); + _fx_T2N11PP__pptok_ti* v_9 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_8->q, x_0); + _fx_copy_N11PP__pptok_t(&v_9->t0, &tk_0); + int_ len_0 = v_9->t1; int tag_0 = tk_0.tag; if (tag_0 == 3) { - _fx_rR11PP__state_t v_6 = 0; - _fx_rR11PP__state_t v_7 = 0; + _fx_rR11PP__state_t v_10 = 0; + _fx_rR11PP__state_t v_11 = 0; if (k_2 > 0) { int_ res_0; FX_CALL(_fx_M2PPFM8scan_popi1RM1t(&pp_2, &res_0, 0), _fx_catch_0); - FX_COPY_PTR(pp_2.r, &v_6); - FX_COPY_PTR(pp_2.r, &v_7); - FX_CHKIDX(FX_CHKIDX1(v_7->data.q, 0, x_0), _fx_catch_0); - FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_7->data.q, x_0)->t1 = len_0 + v_6->data.righttotal; + FX_COPY_PTR(pp_2.r, &v_10); + _fx_R11PP__state_t* v_12 = &v_10->data; + FX_COPY_PTR(pp_2.r, &v_11); + _fx_R11PP__state_t* v_13 = &v_11->data; + FX_CHKIDX(FX_CHKIDX1(v_13->q, 0, x_0), _fx_catch_0); + _fx_T2N11PP__pptok_ti* v_14 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_13->q, x_0); + v_14->t1 = len_0 + v_12->righttotal; _fx_free_R5PP__t(&pp_1); _fx_copy_R5PP__t(&pp_2, &pp_1); k_1 = k_2 - 1; @@ -1731,38 +1824,43 @@ FX_EXTERN_C int _fx_M2PPFM11check_stackv2RM1ti(struct _fx_R5PP__t* pp_0, int_ k_ } _fx_catch_0: ; - if (v_7) { - _fx_free_rR11PP__state_t(&v_7); + if (v_11) { + _fx_free_rR11PP__state_t(&v_11); } - if (v_6) { - _fx_free_rR11PP__state_t(&v_6); + if (v_10) { + _fx_free_rR11PP__state_t(&v_10); } } else if (tag_0 == 4) { - _fx_rR11PP__state_t v_8 = 0; + _fx_rR11PP__state_t v_15 = 0; int_ res_1; FX_CALL(_fx_M2PPFM8scan_popi1RM1t(&pp_2, &res_1, 0), _fx_catch_1); - FX_COPY_PTR(pp_2.r, &v_8); - FX_CHKIDX(FX_CHKIDX1(v_8->data.q, 0, x_0), _fx_catch_1); - FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_8->data.q, x_0)->t1 = 1; + FX_COPY_PTR(pp_2.r, &v_15); + _fx_R11PP__state_t* v_16 = &v_15->data; + FX_CHKIDX(FX_CHKIDX1(v_16->q, 0, x_0), _fx_catch_1); + _fx_T2N11PP__pptok_ti* v_17 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_16->q, x_0); + v_17->t1 = 1; _fx_free_R5PP__t(&pp_1); _fx_copy_R5PP__t(&pp_2, &pp_1); k_1 = k_2 + 1; _fx_catch_1: ; - if (v_8) { - _fx_free_rR11PP__state_t(&v_8); + if (v_15) { + _fx_free_rR11PP__state_t(&v_15); } } else { - _fx_rR11PP__state_t v_9 = 0; - _fx_rR11PP__state_t v_10 = 0; + _fx_rR11PP__state_t v_18 = 0; + _fx_rR11PP__state_t v_19 = 0; int_ res_2; FX_CALL(_fx_M2PPFM8scan_popi1RM1t(&pp_2, &res_2, 0), _fx_catch_2); - FX_COPY_PTR(pp_2.r, &v_9); - FX_COPY_PTR(pp_2.r, &v_10); - FX_CHKIDX(FX_CHKIDX1(v_10->data.q, 0, x_0), _fx_catch_2); - FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_10->data.q, x_0)->t1 = len_0 + v_9->data.righttotal; + FX_COPY_PTR(pp_2.r, &v_18); + _fx_R11PP__state_t* v_20 = &v_18->data; + FX_COPY_PTR(pp_2.r, &v_19); + _fx_R11PP__state_t* v_21 = &v_19->data; + FX_CHKIDX(FX_CHKIDX1(v_21->q, 0, x_0), _fx_catch_2); + _fx_T2N11PP__pptok_ti* v_22 = FX_PTR_1D(_fx_T2N11PP__pptok_ti, v_21->q, x_0); + v_22->t1 = len_0 + v_20->righttotal; if (k_2 > 0) { _fx_free_R5PP__t(&pp_1); _fx_copy_R5PP__t(&pp_2, &pp_1); k_1 = k_2; } @@ -1771,11 +1869,11 @@ FX_EXTERN_C int _fx_M2PPFM11check_stackv2RM1ti(struct _fx_R5PP__t* pp_0, int_ k_ } _fx_catch_2: ; - if (v_10) { - _fx_free_rR11PP__state_t(&v_10); + if (v_19) { + _fx_free_rR11PP__state_t(&v_19); } - if (v_9) { - _fx_free_rR11PP__state_t(&v_9); + if (v_18) { + _fx_free_rR11PP__state_t(&v_18); } } FX_CHECK_EXN(_fx_catch_3); @@ -1818,40 +1916,49 @@ FX_EXTERN_C int _fx_M2PPFM6pprintv3RM1tN11PP__pptok_ti( int fx_status = 0; FX_CALL(fx_check_stack(), _fx_cleanup); FX_COPY_PTR(pp_0->r, &v_0); - int_ top_0 = v_0->data.pp_top; + _fx_R11PP__state_t* v_1 = &v_0->data; + int_ top_0 = v_1->pp_top; int tag_0 = x_0->tag; if (tag_0 == 3) { - _fx_rR11PP__state_t v_1 = 0; _fx_rR11PP__state_t v_2 = 0; _fx_rR11PP__state_t v_3 = 0; _fx_rR11PP__state_t v_4 = 0; + _fx_rR11PP__state_t v_5 = 0; _fx_T2iN13PP__ppstyle_t* vcase_0 = &x_0->u.PPBegin; - FX_COPY_PTR(pp_0->r, &v_1); + FX_COPY_PTR(pp_0->r, &v_2); + _fx_R11PP__state_t* v_6 = &v_2->data; _fx_T2iN13PP__ppstyle_t x_1; - if (len_0 > v_1->data.space) { - FX_COPY_PTR(pp_0->r, &v_2); - int_ sp_0 = fx_maxi(fx_mini(v_2->data.space - vcase_0->t0, pp_0->margin), 10); - _fx_N13PP__ppstyle_t v_5; + if (len_0 > v_6->space) { + FX_COPY_PTR(pp_0->r, &v_3); + _fx_R11PP__state_t* v_7 = &v_3->data; + int_ sp_0 = fx_maxi(fx_mini(v_7->space - vcase_0->t0, pp_0->margin), 10); + _fx_N13PP__ppstyle_t v_8; if (vcase_0->t1.tag == 3) { - v_5 = _fx_g14PP__Consistent; + v_8 = _fx_g14PP__Consistent; } else { - v_5 = _fx_g8PP__Auto; + v_8 = _fx_g8PP__Auto; } FX_CHECK_EXN(_fx_catch_0); - _fx_T2iN13PP__ppstyle_t tup_0 = { sp_0, v_5 }; + _fx_T2iN13PP__ppstyle_t tup_0 = { sp_0, v_8 }; x_1 = tup_0; } else { _fx_T2iN13PP__ppstyle_t tup_1 = { pp_0->margin, _fx_g8PP__Fits }; x_1 = tup_1; } - FX_COPY_PTR(pp_0->r, &v_3); - FX_CHKIDX(FX_CHKIDX1(v_3->data.pp_stack, 0, top_0), _fx_catch_0); - *FX_PTR_1D(_fx_T2iN13PP__ppstyle_t, v_3->data.pp_stack, top_0) = x_1; FX_COPY_PTR(pp_0->r, &v_4); - v_4->data.pp_top = top_0 + 1; + _fx_R11PP__state_t* v_9 = &v_4->data; + FX_CHKIDX(FX_CHKIDX1(v_9->pp_stack, 0, top_0), _fx_catch_0); + _fx_T2iN13PP__ppstyle_t* v_10 = FX_PTR_1D(_fx_T2iN13PP__ppstyle_t, v_9->pp_stack, top_0); + *v_10 = x_1; + FX_COPY_PTR(pp_0->r, &v_5); + _fx_R11PP__state_t* v_11 = &v_5->data; + v_11->pp_top = top_0 + 1; _fx_catch_0: ; + if (v_5) { + _fx_free_rR11PP__state_t(&v_5); + } if (v_4) { _fx_free_rR11PP__state_t(&v_4); } @@ -1861,192 +1968,203 @@ FX_EXTERN_C int _fx_M2PPFM6pprintv3RM1tN11PP__pptok_ti( if (v_2) { _fx_free_rR11PP__state_t(&v_2); } - if (v_1) { - _fx_free_rR11PP__state_t(&v_1); - } } else if (tag_0 == 4) { - _fx_rR11PP__state_t v_6 = 0; + _fx_rR11PP__state_t v_12 = 0; if (top_0 > 0) { - FX_COPY_PTR(pp_0->r, &v_6); v_6->data.pp_top = top_0 - 1; + FX_COPY_PTR(pp_0->r, &v_12); _fx_R11PP__state_t* v_13 = &v_12->data; v_13->pp_top = top_0 - 1; } - if (v_6) { - _fx_free_rR11PP__state_t(&v_6); + if (v_12) { + _fx_free_rR11PP__state_t(&v_12); } } else if (tag_0 == 2) { - _fx_rR11PP__state_t v_7 = 0; + _fx_rR11PP__state_t v_14 = 0; _fx_T3iiC* vcase_1 = &x_0->u.PPBreak; char_ c_0 = vcase_1->t2; int_ offset_0 = vcase_1->t1; int_ spaces_0 = vcase_1->t0; - _fx_T2iN13PP__ppstyle_t v_8; + _fx_T2iN13PP__ppstyle_t v_15; if (top_0 > 0) { - FX_COPY_PTR(pp_0->r, &v_7); - int_ v_9 = top_0 - 1; - FX_CHKIDX(FX_CHKIDX1(v_7->data.pp_stack, 0, v_9), _fx_catch_4); - v_8 = *FX_PTR_1D(_fx_T2iN13PP__ppstyle_t, v_7->data.pp_stack, v_9); + FX_COPY_PTR(pp_0->r, &v_14); + _fx_R11PP__state_t* v_16 = &v_14->data; + int_ v_17 = top_0 - 1; + FX_CHKIDX(FX_CHKIDX1(v_16->pp_stack, 0, v_17), _fx_catch_4); + v_15 = *FX_PTR_1D(_fx_T2iN13PP__ppstyle_t, v_16->pp_stack, v_17); } else { - _fx_T2iN13PP__ppstyle_t tup_2 = { 0, _fx_g8PP__Auto }; v_8 = tup_2; + _fx_T2iN13PP__ppstyle_t tup_2 = { 0, _fx_g8PP__Auto }; v_15 = tup_2; } - int_ block_offset_0 = v_8.t0; - _fx_N13PP__ppstyle_t style_0 = v_8.t1; + int_ block_offset_0 = v_15.t0; + _fx_N13PP__ppstyle_t style_0 = v_15.t1; int tag_1 = style_0.tag; if (tag_1 == 2) { - _fx_rR11PP__state_t v_10 = 0; - _fx_rR11PP__state_t v_11 = 0; - fx_str_t v_12 = {0}; - fx_str_t v_13 = {0}; - fx_str_t v_14 = {0}; - FX_COPY_PTR(pp_0->r, &v_10); - FX_COPY_PTR(pp_0->r, &v_11); - v_11->data.space = v_10->data.space - spaces_0; + _fx_rR11PP__state_t v_18 = 0; + _fx_rR11PP__state_t v_19 = 0; + fx_str_t v_20 = {0}; + fx_str_t v_21 = {0}; + fx_str_t v_22 = {0}; + FX_COPY_PTR(pp_0->r, &v_18); + _fx_R11PP__state_t* v_23 = &v_18->data; + FX_COPY_PTR(pp_0->r, &v_19); + _fx_R11PP__state_t* v_24 = &v_19->data; + v_24->space = v_23->space - spaces_0; if (c_0 == (char_)0) { - FX_CALL(_fx_F7__mul__S2Ci((char_)32, spaces_0, &v_12, 0), _fx_catch_1); + FX_CALL(_fx_F7__mul__S2Ci((char_)32, spaces_0, &v_20, 0), _fx_catch_1); _fx_FPv1S* f_0 = &pp_0->print_f; - FX_CALL(f_0->fp(&v_12, f_0->fcv), _fx_catch_1); + FX_CALL(f_0->fp(&v_20, f_0->fcv), _fx_catch_1); } else { - FX_CALL(_fx_F7__mul__S2Ci((char_)32, spaces_0 - 1, &v_13, 0), _fx_catch_1); + FX_CALL(_fx_F7__mul__S2Ci((char_)32, spaces_0 - 1, &v_21, 0), _fx_catch_1); { - const fx_str_t strs_0[] = { FX_MAKE_VAR_STR1(c_0), v_13 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_14), _fx_catch_1); + const fx_str_t strs_0[] = { FX_MAKE_VAR_STR1(c_0), v_21 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_22), _fx_catch_1); } _fx_FPv1S* f_1 = &pp_0->print_f; - FX_CALL(f_1->fp(&v_14, f_1->fcv), _fx_catch_1); + FX_CALL(f_1->fp(&v_22, f_1->fcv), _fx_catch_1); } _fx_catch_1: ; - FX_FREE_STR(&v_14); - FX_FREE_STR(&v_13); - FX_FREE_STR(&v_12); - if (v_11) { - _fx_free_rR11PP__state_t(&v_11); + FX_FREE_STR(&v_22); + FX_FREE_STR(&v_21); + FX_FREE_STR(&v_20); + if (v_19) { + _fx_free_rR11PP__state_t(&v_19); } - if (v_10) { - _fx_free_rR11PP__state_t(&v_10); + if (v_18) { + _fx_free_rR11PP__state_t(&v_18); } } else if (tag_1 == 3) { - _fx_rR11PP__state_t v_15 = 0; - _fx_rR11PP__state_t v_16 = 0; - fx_str_t v_17 = {0}; - _fx_rR11PP__state_t v_18 = 0; - _fx_rR11PP__state_t v_19 = 0; - FX_COPY_PTR(pp_0->r, &v_15); - v_15->data.space = fx_mini(block_offset_0 - offset_0, pp_0->margin); - FX_COPY_PTR(pp_0->r, &v_16); + _fx_rR11PP__state_t v_25 = 0; + _fx_rR11PP__state_t v_26 = 0; + fx_str_t v_27 = {0}; + _fx_rR11PP__state_t v_28 = 0; + _fx_rR11PP__state_t v_29 = 0; + FX_COPY_PTR(pp_0->r, &v_25); + _fx_R11PP__state_t* v_30 = &v_25->data; + v_30->space = fx_mini(block_offset_0 - offset_0, pp_0->margin); + FX_COPY_PTR(pp_0->r, &v_26); + _fx_R11PP__state_t* v_31 = &v_26->data; _fx_FPv1S* f_2 = &pp_0->print_f; fx_str_t slit_0 = FX_MAKE_STR("\n"); FX_CALL(f_2->fp(&slit_0, f_2->fcv), _fx_catch_2); - FX_CALL(_fx_F7__mul__S2Ci((char_)32, pp_0->margin - v_16->data.space, &v_17, 0), _fx_catch_2); + FX_CALL(_fx_F7__mul__S2Ci((char_)32, pp_0->margin - v_31->space, &v_27, 0), _fx_catch_2); _fx_FPv1S* f_3 = &pp_0->print_f; - FX_CALL(f_3->fp(&v_17, f_3->fcv), _fx_catch_2); - FX_COPY_PTR(pp_0->r, &v_18); - FX_COPY_PTR(pp_0->r, &v_19); - v_19->data.space = fx_maxi(v_18->data.space, 10); + FX_CALL(f_3->fp(&v_27, f_3->fcv), _fx_catch_2); + FX_COPY_PTR(pp_0->r, &v_28); + _fx_R11PP__state_t* v_32 = &v_28->data; + FX_COPY_PTR(pp_0->r, &v_29); + _fx_R11PP__state_t* v_33 = &v_29->data; + v_33->space = fx_maxi(v_32->space, 10); _fx_catch_2: ; - if (v_19) { - _fx_free_rR11PP__state_t(&v_19); + if (v_29) { + _fx_free_rR11PP__state_t(&v_29); } - if (v_18) { - _fx_free_rR11PP__state_t(&v_18); + if (v_28) { + _fx_free_rR11PP__state_t(&v_28); } - FX_FREE_STR(&v_17); - if (v_16) { - _fx_free_rR11PP__state_t(&v_16); + FX_FREE_STR(&v_27); + if (v_26) { + _fx_free_rR11PP__state_t(&v_26); } - if (v_15) { - _fx_free_rR11PP__state_t(&v_15); + if (v_25) { + _fx_free_rR11PP__state_t(&v_25); } } else { - _fx_rR11PP__state_t v_20 = 0; - _fx_rR11PP__state_t v_21 = 0; - _fx_rR11PP__state_t v_22 = 0; - fx_str_t v_23 = {0}; - _fx_rR11PP__state_t v_24 = 0; - _fx_rR11PP__state_t v_25 = 0; - fx_str_t v_26 = {0}; - fx_str_t v_27 = {0}; - fx_str_t v_28 = {0}; - FX_COPY_PTR(pp_0->r, &v_20); - if (len_0 > v_20->data.space) { - FX_COPY_PTR(pp_0->r, &v_21); - v_21->data.space = block_offset_0 - offset_0; - FX_COPY_PTR(pp_0->r, &v_22); + _fx_rR11PP__state_t v_34 = 0; + _fx_rR11PP__state_t v_35 = 0; + _fx_rR11PP__state_t v_36 = 0; + fx_str_t v_37 = {0}; + _fx_rR11PP__state_t v_38 = 0; + _fx_rR11PP__state_t v_39 = 0; + fx_str_t v_40 = {0}; + fx_str_t v_41 = {0}; + fx_str_t v_42 = {0}; + FX_COPY_PTR(pp_0->r, &v_34); + _fx_R11PP__state_t* v_43 = &v_34->data; + if (len_0 > v_43->space) { + FX_COPY_PTR(pp_0->r, &v_35); + _fx_R11PP__state_t* v_44 = &v_35->data; + v_44->space = block_offset_0 - offset_0; + FX_COPY_PTR(pp_0->r, &v_36); + _fx_R11PP__state_t* v_45 = &v_36->data; _fx_FPv1S* f_4 = &pp_0->print_f; fx_str_t slit_1 = FX_MAKE_STR("\n"); FX_CALL(f_4->fp(&slit_1, f_4->fcv), _fx_catch_3); - FX_CALL(_fx_F7__mul__S2Ci((char_)32, pp_0->margin - v_22->data.space, &v_23, 0), _fx_catch_3); + FX_CALL(_fx_F7__mul__S2Ci((char_)32, pp_0->margin - v_45->space, &v_37, 0), _fx_catch_3); _fx_FPv1S* f_5 = &pp_0->print_f; - FX_CALL(f_5->fp(&v_23, f_5->fcv), _fx_catch_3); + FX_CALL(f_5->fp(&v_37, f_5->fcv), _fx_catch_3); } else { - FX_COPY_PTR(pp_0->r, &v_24); - FX_COPY_PTR(pp_0->r, &v_25); - v_25->data.space = v_24->data.space - spaces_0; + FX_COPY_PTR(pp_0->r, &v_38); + _fx_R11PP__state_t* v_46 = &v_38->data; + FX_COPY_PTR(pp_0->r, &v_39); + _fx_R11PP__state_t* v_47 = &v_39->data; + v_47->space = v_46->space - spaces_0; if (c_0 == (char_)0) { - FX_CALL(_fx_F7__mul__S2Ci((char_)32, spaces_0, &v_26, 0), _fx_catch_3); + FX_CALL(_fx_F7__mul__S2Ci((char_)32, spaces_0, &v_40, 0), _fx_catch_3); _fx_FPv1S* f_6 = &pp_0->print_f; - FX_CALL(f_6->fp(&v_26, f_6->fcv), _fx_catch_3); + FX_CALL(f_6->fp(&v_40, f_6->fcv), _fx_catch_3); } else { - FX_CALL(_fx_F7__mul__S2Ci((char_)32, spaces_0 - 1, &v_27, 0), _fx_catch_3); + FX_CALL(_fx_F7__mul__S2Ci((char_)32, spaces_0 - 1, &v_41, 0), _fx_catch_3); { - const fx_str_t strs_1[] = { FX_MAKE_VAR_STR1(c_0), v_27 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_28), _fx_catch_3); + const fx_str_t strs_1[] = { FX_MAKE_VAR_STR1(c_0), v_41 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_42), _fx_catch_3); } _fx_FPv1S* f_7 = &pp_0->print_f; - FX_CALL(f_7->fp(&v_28, f_7->fcv), _fx_catch_3); + FX_CALL(f_7->fp(&v_42, f_7->fcv), _fx_catch_3); } } _fx_catch_3: ; - FX_FREE_STR(&v_28); - FX_FREE_STR(&v_27); - FX_FREE_STR(&v_26); - if (v_25) { - _fx_free_rR11PP__state_t(&v_25); + FX_FREE_STR(&v_42); + FX_FREE_STR(&v_41); + FX_FREE_STR(&v_40); + if (v_39) { + _fx_free_rR11PP__state_t(&v_39); } - if (v_24) { - _fx_free_rR11PP__state_t(&v_24); + if (v_38) { + _fx_free_rR11PP__state_t(&v_38); } - FX_FREE_STR(&v_23); - if (v_22) { - _fx_free_rR11PP__state_t(&v_22); + FX_FREE_STR(&v_37); + if (v_36) { + _fx_free_rR11PP__state_t(&v_36); } - if (v_21) { - _fx_free_rR11PP__state_t(&v_21); + if (v_35) { + _fx_free_rR11PP__state_t(&v_35); } - if (v_20) { - _fx_free_rR11PP__state_t(&v_20); + if (v_34) { + _fx_free_rR11PP__state_t(&v_34); } } FX_CHECK_EXN(_fx_catch_4); _fx_catch_4: ; - if (v_7) { - _fx_free_rR11PP__state_t(&v_7); + if (v_14) { + _fx_free_rR11PP__state_t(&v_14); } } else if (tag_0 == 1) { - _fx_rR11PP__state_t v_29 = 0; - _fx_rR11PP__state_t v_30 = 0; - FX_COPY_PTR(pp_0->r, &v_29); - FX_COPY_PTR(pp_0->r, &v_30); - v_30->data.space = fx_maxi(v_29->data.space - len_0, 0); + _fx_rR11PP__state_t v_48 = 0; + _fx_rR11PP__state_t v_49 = 0; + FX_COPY_PTR(pp_0->r, &v_48); + _fx_R11PP__state_t* v_50 = &v_48->data; + FX_COPY_PTR(pp_0->r, &v_49); + _fx_R11PP__state_t* v_51 = &v_49->data; + v_51->space = fx_maxi(v_50->space - len_0, 0); _fx_FPv1S* f_8 = &pp_0->print_f; FX_CALL(f_8->fp(&x_0->u.PPString, f_8->fcv), _fx_catch_5); _fx_catch_5: ; - if (v_30) { - _fx_free_rR11PP__state_t(&v_30); + if (v_49) { + _fx_free_rR11PP__state_t(&v_49); } - if (v_29) { - _fx_free_rR11PP__state_t(&v_29); + if (v_48) { + _fx_free_rR11PP__state_t(&v_48); } } else if (tag_0 == 5) { diff --git a/compiler/bootstrap/Parser.c b/compiler/bootstrap/Parser.c index 7153f275..73e35644 100644 --- a/compiler/bootstrap/Parser.c +++ b/compiler/bootstrap/Parser.c @@ -10,6 +10,21 @@ struct _fx_N20LexerUtils__stream_t_data_t; static void _fx_free_N20LexerUtils__stream_t(struct _fx_N20LexerUtils__stream_t_data_t**); +struct _fx_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t_data_t; + +static void _fx_free_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t( + struct _fx_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t_data_t**); + +struct _fx_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_data_t; + +static void _fx_free_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t( + struct _fx_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_data_t**); + +struct _fx_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t_data_t; + +static void _fx_free_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t( + struct _fx_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t_data_t**); + struct _fx_Nt6option1N10Ast__exp_t_data_t; static void _fx_free_Nt6option1N10Ast__exp_t(struct _fx_Nt6option1N10Ast__exp_t_data_t**); @@ -255,6 +270,48 @@ typedef struct _fx_R16Ast__var_flags_t { bool var_flag_instance; } _fx_R16Ast__var_flags_t; +typedef struct _fx_R16Ast__ast_callb_t { + struct _fx_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t_data_t* ast_cb_typ; + struct _fx_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_data_t* ast_cb_exp; + struct _fx_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t_data_t* ast_cb_pat; +} _fx_R16Ast__ast_callb_t; + +typedef struct _fx_FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t { + int (*fp)(struct _fx_N10Ast__pat_t_data_t*, struct _fx_R16Ast__ast_callb_t*, struct _fx_N10Ast__pat_t_data_t**, void*); + fx_fcv_t* fcv; +} _fx_FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t; + +typedef struct _fx_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t_data_t { + int_ rc; + union { + struct _fx_FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t Some; + } u; +} _fx_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t_data_t, *_fx_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t; + +typedef struct _fx_FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t { + int (*fp)(struct _fx_N10Ast__exp_t_data_t*, struct _fx_R16Ast__ast_callb_t*, struct _fx_N10Ast__exp_t_data_t**, void*); + fx_fcv_t* fcv; +} _fx_FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t; + +typedef struct _fx_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_data_t { + int_ rc; + union { + struct _fx_FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t Some; + } u; +} _fx_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_data_t, *_fx_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t; + +typedef struct _fx_FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t { + int (*fp)(struct _fx_N10Ast__typ_t_data_t*, struct _fx_R16Ast__ast_callb_t*, struct _fx_N10Ast__typ_t_data_t**, void*); + fx_fcv_t* fcv; +} _fx_FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t; + +typedef struct _fx_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t_data_t { + int_ rc; + union { + struct _fx_FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t Some; + } u; +} _fx_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t_data_t, *_fx_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t; + typedef struct _fx_Nt6option1R9Ast__id_t { int tag; union { @@ -1186,19 +1243,6 @@ typedef struct _fx_LT2N19Parser__ppifstate_tR10Ast__loc_t_data_t { struct _fx_T2N19Parser__ppifstate_tR10Ast__loc_t hd; } _fx_LT2N19Parser__ppifstate_tR10Ast__loc_t_data_t, *_fx_LT2N19Parser__ppifstate_tR10Ast__loc_t; -typedef struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t { - struct _fx_LT2N10Ast__pat_tN10Ast__exp_t_data_t* t0; - struct _fx_N10Ast__pat_t_data_t* t1; - struct _fx_R16Ast__for_flags_t t2; - struct _fx_R10Ast__loc_t t3; -} _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t; - -typedef struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t { - int_ rc; - struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t* tl; - struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t hd; -} _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t, *_fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t; - typedef struct _fx_T3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t { struct _fx_N10Ast__pat_t_data_t* t0; struct _fx_N10Ast__pat_t_data_t* t1; @@ -1261,20 +1305,23 @@ typedef struct _fx_N17Parser__kw_mode_t { int tag; } _fx_N17Parser__kw_mode_t; -typedef struct _fx_T2iS { - int_ t0; - fx_str_t t1; -} _fx_T2iS; - typedef struct _fx_T2LN10Ast__pat_tN10Ast__exp_t { struct _fx_LN10Ast__pat_t_data_t* t0; struct _fx_N10Ast__exp_t_data_t* t1; } _fx_T2LN10Ast__pat_tN10Ast__exp_t; -typedef struct _fx_T2LN10Ast__pat_tLN10Ast__exp_t { - struct _fx_LN10Ast__pat_t_data_t* t0; - struct _fx_LN10Ast__exp_t_data_t* t1; -} _fx_T2LN10Ast__pat_tLN10Ast__exp_t; +typedef struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t { + struct _fx_LT2N10Ast__pat_tN10Ast__exp_t_data_t* t0; + struct _fx_N10Ast__pat_t_data_t* t1; + struct _fx_R16Ast__for_flags_t t2; + struct _fx_R10Ast__loc_t t3; +} _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t; + +typedef struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t { + int_ rc; + struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t* tl; + struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t hd; +} _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t, *_fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t; typedef struct _fx_T2LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_tN10Ast__exp_t { struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t* t0; @@ -1288,6 +1335,11 @@ typedef struct _fx_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t struct _fx_R16Ast__for_flags_t t3; } _fx_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t; +typedef struct _fx_Ta2LR9Ast__id_t { + struct _fx_LR9Ast__id_t_data_t* t0; + struct _fx_LR9Ast__id_t_data_t* t1; +} _fx_Ta2LR9Ast__id_t; + typedef struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t { struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t* t0; struct _fx_N10Ast__exp_t_data_t* t1; @@ -1329,12 +1381,6 @@ typedef struct _fx_T3N13Ast__binary_tiN15Ast__op_assoc_t { struct _fx_N15Ast__op_assoc_t t2; } _fx_T3N13Ast__binary_tiN15Ast__op_assoc_t; -typedef struct _fx_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t { - struct _fx_N10Ast__exp_t_data_t* t0; - struct _fx_N10Ast__exp_t_data_t* t1; - struct _fx_LN10Ast__exp_t_data_t* t2; -} _fx_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t; - typedef struct _fx_T2N10Ast__exp_tLN10Ast__exp_t { struct _fx_N10Ast__exp_t_data_t* t0; struct _fx_LN10Ast__exp_t_data_t* t1; @@ -1385,27 +1431,20 @@ typedef struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tNt6option1N10Ast__exp_t { struct _fx_Nt6option1N10Ast__exp_t_data_t* t1; } _fx_T2LT2N14Lexer__token_tR10Ast__loc_tNt6option1N10Ast__exp_t; -typedef struct _fx_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t { - struct _fx_LN10Ast__exp_t_data_t* t0; - struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t_data_t* t1; -} _fx_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t; - -typedef struct _fx_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t { - struct _fx_LN10Ast__exp_t_data_t* t0; - struct _fx_LT2N10Ast__pat_tN10Ast__exp_t_data_t* t1; - struct _fx_N10Ast__pat_t_data_t* t2; -} _fx_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t; +typedef struct _fx_Ta2N10Ast__pat_t { + struct _fx_N10Ast__pat_t_data_t* t0; + struct _fx_N10Ast__pat_t_data_t* t1; +} _fx_Ta2N10Ast__pat_t; typedef struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t { struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t* t0; struct _fx_LT2N10Ast__pat_tN10Ast__exp_t_data_t* t1; } _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t; -typedef struct _fx_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t { - struct _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t_data_t* t0; - struct _fx_N10Ast__exp_t_data_t* t1; - struct _fx_R10Ast__loc_t t2; -} _fx_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t; +typedef struct _fx_T2N10Ast__exp_tNt6option1N10Ast__exp_t { + struct _fx_N10Ast__exp_t_data_t* t0; + struct _fx_Nt6option1N10Ast__exp_t_data_t* t1; +} _fx_T2N10Ast__exp_tNt6option1N10Ast__exp_t; typedef struct _fx_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t { struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t* t0; @@ -1457,6 +1496,11 @@ typedef struct _fx_T4LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_tN10Ast__exp_ struct _fx_R16Ast__fun_flags_t t3; } _fx_T4LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_tN10Ast__exp_tR16Ast__fun_flags_t; +typedef struct _fx_Ta2LN10Ast__exp_t { + struct _fx_LN10Ast__exp_t_data_t* t0; + struct _fx_LN10Ast__exp_t_data_t* t1; +} _fx_Ta2LN10Ast__exp_t; + typedef struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_t { struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t* t0; struct _fx_LN10Ast__pat_t_data_t* t1; @@ -1520,6 +1564,11 @@ typedef struct _fx_rNt10Hashmap__t2SN15Parser__ppval_t_data_t { struct _fx_Nt10Hashmap__t2SN15Parser__ppval_t_data_t* data; } _fx_rNt10Hashmap__t2SN15Parser__ppval_t_data_t, *_fx_rNt10Hashmap__t2SN15Parser__ppval_t; +typedef struct _fx_rN16Ast__defmodule_t_data_t { + int_ rc; + struct _fx_N16Ast__defmodule_t_data_t* data; +} _fx_rN16Ast__defmodule_t_data_t, *_fx_rN16Ast__defmodule_t; + typedef struct { int_ rc; int_ data; @@ -1852,6 +1901,58 @@ static int _fx_cons_LR9Ast__id_t( FX_MAKE_LIST_IMPL(_fx_LR9Ast__id_t, FX_COPY_SIMPLE_BY_PTR); } +static void _fx_free_R16Ast__ast_callb_t(struct _fx_R16Ast__ast_callb_t* dst) +{ + _fx_free_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t(&dst->ast_cb_typ); + _fx_free_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t(&dst->ast_cb_exp); + _fx_free_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t(&dst->ast_cb_pat); +} + +static void _fx_copy_R16Ast__ast_callb_t(struct _fx_R16Ast__ast_callb_t* src, struct _fx_R16Ast__ast_callb_t* dst) +{ + FX_COPY_PTR(src->ast_cb_typ, &dst->ast_cb_typ); + FX_COPY_PTR(src->ast_cb_exp, &dst->ast_cb_exp); + FX_COPY_PTR(src->ast_cb_pat, &dst->ast_cb_pat); +} + +static void _fx_make_R16Ast__ast_callb_t( + struct _fx_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t_data_t* r_ast_cb_typ, + struct _fx_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_data_t* r_ast_cb_exp, + struct _fx_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t_data_t* r_ast_cb_pat, + struct _fx_R16Ast__ast_callb_t* fx_result) +{ + FX_COPY_PTR(r_ast_cb_typ, &fx_result->ast_cb_typ); + FX_COPY_PTR(r_ast_cb_exp, &fx_result->ast_cb_exp); + FX_COPY_PTR(r_ast_cb_pat, &fx_result->ast_cb_pat); +} + +static void _fx_free_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t( + struct _fx_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t_data_t** dst) +{ + if (*dst && FX_DECREF((*dst)->rc) == 1) { + fx_free_fp(&(*dst)->u.Some); fx_free(*dst); + } + *dst = 0; +} + +static void _fx_free_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t( + struct _fx_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_data_t** dst) +{ + if (*dst && FX_DECREF((*dst)->rc) == 1) { + fx_free_fp(&(*dst)->u.Some); fx_free(*dst); + } + *dst = 0; +} + +static void _fx_free_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t( + struct _fx_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t_data_t** dst) +{ + if (*dst && FX_DECREF((*dst)->rc) == 1) { + fx_free_fp(&(*dst)->u.Some); fx_free(*dst); + } + *dst = 0; +} + static void _fx_free_Nt6option1N10Ast__exp_t(struct _fx_Nt6option1N10Ast__exp_t_data_t** dst) { if (*dst && FX_DECREF((*dst)->rc) == 1) { @@ -4466,53 +4567,6 @@ static int _fx_cons_LT2N19Parser__ppifstate_tR10Ast__loc_t( FX_MAKE_LIST_IMPL(_fx_LT2N19Parser__ppifstate_tR10Ast__loc_t, FX_COPY_SIMPLE_BY_PTR); } -static void _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( - struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* dst) -{ - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&dst->t0); - _fx_free_N10Ast__pat_t(&dst->t1); -} - -static void _fx_copy_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( - struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* src, - struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - dst->t2 = src->t2; - dst->t3 = src->t3; -} - -static void _fx_make_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( - struct _fx_LT2N10Ast__pat_tN10Ast__exp_t_data_t* t0, - struct _fx_N10Ast__pat_t_data_t* t1, - struct _fx_R16Ast__for_flags_t* t2, - struct _fx_R10Ast__loc_t* t3, - struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - fx_result->t2 = *t2; - fx_result->t3 = *t3; -} - -static void _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( - struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t** dst) -{ - FX_FREE_LIST_IMPL(_fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t, - _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t); -} - -static int _fx_cons_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( - struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* hd, - struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t* tl, - bool addref_tl, - struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t** fx_result) -{ - FX_MAKE_LIST_IMPL(_fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t, - _fx_copy_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t); -} - static void _fx_free_T3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(struct _fx_T3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t* dst) { _fx_free_N10Ast__pat_t(&dst->t0); @@ -4702,23 +4756,6 @@ static void _fx_make_R20Parser__parser_ctx_t( fx_result->default_loc = *r_default_loc; } -static void _fx_free_T2iS(struct _fx_T2iS* dst) -{ - fx_free_str(&dst->t1); -} - -static void _fx_copy_T2iS(struct _fx_T2iS* src, struct _fx_T2iS* dst) -{ - dst->t0 = src->t0; - fx_copy_str(&src->t1, &dst->t1); -} - -static void _fx_make_T2iS(int_ t0, fx_str_t* t1, struct _fx_T2iS* fx_result) -{ - fx_result->t0 = t0; - fx_copy_str(t1, &fx_result->t1); -} - static void _fx_free_T2LN10Ast__pat_tN10Ast__exp_t(struct _fx_T2LN10Ast__pat_tN10Ast__exp_t* dst) { _fx_free_LN10Ast__pat_t(&dst->t0); @@ -4742,27 +4779,51 @@ static void _fx_make_T2LN10Ast__pat_tN10Ast__exp_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T2LN10Ast__pat_tLN10Ast__exp_t(struct _fx_T2LN10Ast__pat_tLN10Ast__exp_t* dst) +static void _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( + struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* dst) { - _fx_free_LN10Ast__pat_t(&dst->t0); - _fx_free_LN10Ast__exp_t(&dst->t1); + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&dst->t0); + _fx_free_N10Ast__pat_t(&dst->t1); } -static void _fx_copy_T2LN10Ast__pat_tLN10Ast__exp_t( - struct _fx_T2LN10Ast__pat_tLN10Ast__exp_t* src, - struct _fx_T2LN10Ast__pat_tLN10Ast__exp_t* dst) +static void _fx_copy_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( + struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* src, + struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* dst) { FX_COPY_PTR(src->t0, &dst->t0); FX_COPY_PTR(src->t1, &dst->t1); + dst->t2 = src->t2; + dst->t3 = src->t3; } -static void _fx_make_T2LN10Ast__pat_tLN10Ast__exp_t( - struct _fx_LN10Ast__pat_t_data_t* t0, - struct _fx_LN10Ast__exp_t_data_t* t1, - struct _fx_T2LN10Ast__pat_tLN10Ast__exp_t* fx_result) +static void _fx_make_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( + struct _fx_LT2N10Ast__pat_tN10Ast__exp_t_data_t* t0, + struct _fx_N10Ast__pat_t_data_t* t1, + struct _fx_R16Ast__for_flags_t* t2, + struct _fx_R10Ast__loc_t* t3, + struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* fx_result) { FX_COPY_PTR(t0, &fx_result->t0); FX_COPY_PTR(t1, &fx_result->t1); + fx_result->t2 = *t2; + fx_result->t3 = *t3; +} + +static void _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( + struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t** dst) +{ + FX_FREE_LIST_IMPL(_fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t, + _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t); +} + +static int _fx_cons_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( + struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* hd, + struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t* tl, + bool addref_tl, + struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t** fx_result) +{ + FX_MAKE_LIST_IMPL(_fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t, + _fx_copy_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t); } static void _fx_free_T2LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_tN10Ast__exp_t( @@ -4820,6 +4881,27 @@ static void _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_ fx_result->t3 = *t3; } +static void _fx_free_Ta2LR9Ast__id_t(struct _fx_Ta2LR9Ast__id_t* dst) +{ + fx_free_list_simple(&dst->t0); + fx_free_list_simple(&dst->t1); +} + +static void _fx_copy_Ta2LR9Ast__id_t(struct _fx_Ta2LR9Ast__id_t* src, struct _fx_Ta2LR9Ast__id_t* dst) +{ + FX_COPY_PTR(src->t0, &dst->t0); + FX_COPY_PTR(src->t1, &dst->t1); +} + +static void _fx_make_Ta2LR9Ast__id_t( + struct _fx_LR9Ast__id_t_data_t* t0, + struct _fx_LR9Ast__id_t_data_t* t1, + struct _fx_Ta2LR9Ast__id_t* fx_result) +{ + FX_COPY_PTR(t0, &fx_result->t0); + FX_COPY_PTR(t1, &fx_result->t1); +} + static void _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t( struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t* dst) { @@ -4975,33 +5057,6 @@ static void _fx_make_T3N13Ast__binary_tiN15Ast__op_assoc_t( fx_result->t2 = *t2; } -static void _fx_free_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t(struct _fx_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t* dst) -{ - _fx_free_N10Ast__exp_t(&dst->t0); - _fx_free_N10Ast__exp_t(&dst->t1); - _fx_free_LN10Ast__exp_t(&dst->t2); -} - -static void _fx_copy_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t( - struct _fx_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t* src, - struct _fx_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); -} - -static void _fx_make_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t( - struct _fx_N10Ast__exp_t_data_t* t0, - struct _fx_N10Ast__exp_t_data_t* t1, - struct _fx_LN10Ast__exp_t_data_t* t2, - struct _fx_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); -} - static void _fx_free_T2N10Ast__exp_tLN10Ast__exp_t(struct _fx_T2N10Ast__exp_tLN10Ast__exp_t* dst) { _fx_free_N10Ast__exp_t(&dst->t0); @@ -5239,68 +5294,37 @@ static void _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tNt6option1N10Ast__exp_t( FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t( - struct _fx_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t* dst) +static void _fx_free_Ta2N10Ast__pat_t(struct _fx_Ta2N10Ast__pat_t* dst) { - _fx_free_LN10Ast__exp_t(&dst->t0); - _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&dst->t1); + _fx_free_N10Ast__pat_t(&dst->t0); + _fx_free_N10Ast__pat_t(&dst->t1); } -static void _fx_copy_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t( - struct _fx_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t* src, - struct _fx_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t* dst) +static void _fx_copy_Ta2N10Ast__pat_t(struct _fx_Ta2N10Ast__pat_t* src, struct _fx_Ta2N10Ast__pat_t* dst) { FX_COPY_PTR(src->t0, &dst->t0); FX_COPY_PTR(src->t1, &dst->t1); } -static void _fx_make_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t( - struct _fx_LN10Ast__exp_t_data_t* t0, - struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t_data_t* t1, - struct _fx_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t* fx_result) +static void _fx_make_Ta2N10Ast__pat_t( + struct _fx_N10Ast__pat_t_data_t* t0, + struct _fx_N10Ast__pat_t_data_t* t1, + struct _fx_Ta2N10Ast__pat_t* fx_result) { FX_COPY_PTR(t0, &fx_result->t0); FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t( - struct _fx_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t* dst) +static void _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t( + struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t* dst) { - _fx_free_LN10Ast__exp_t(&dst->t0); + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&dst->t0); _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&dst->t1); - _fx_free_N10Ast__pat_t(&dst->t2); } -static void _fx_copy_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t( - struct _fx_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t* src, - struct _fx_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - FX_COPY_PTR(src->t1, &dst->t1); - FX_COPY_PTR(src->t2, &dst->t2); -} - -static void _fx_make_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t( - struct _fx_LN10Ast__exp_t_data_t* t0, - struct _fx_LT2N10Ast__pat_tN10Ast__exp_t_data_t* t1, - struct _fx_N10Ast__pat_t_data_t* t2, - struct _fx_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - FX_COPY_PTR(t1, &fx_result->t1); - FX_COPY_PTR(t2, &fx_result->t2); -} - -static void _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t( - struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t* dst) -{ - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&dst->t0); - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&dst->t1); -} - -static void _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t( - struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t* src, - struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t* dst) +static void _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t( + struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t* src, + struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t* dst) { FX_COPY_PTR(src->t0, &dst->t0); FX_COPY_PTR(src->t1, &dst->t1); @@ -5315,31 +5339,27 @@ static void _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__ FX_COPY_PTR(t1, &fx_result->t1); } -static void _fx_free_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t( - struct _fx_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t* dst) +static void _fx_free_T2N10Ast__exp_tNt6option1N10Ast__exp_t(struct _fx_T2N10Ast__exp_tNt6option1N10Ast__exp_t* dst) { - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&dst->t0); - _fx_free_N10Ast__exp_t(&dst->t1); + _fx_free_N10Ast__exp_t(&dst->t0); + _fx_free_Nt6option1N10Ast__exp_t(&dst->t1); } -static void _fx_copy_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t( - struct _fx_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t* src, - struct _fx_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t* dst) +static void _fx_copy_T2N10Ast__exp_tNt6option1N10Ast__exp_t( + struct _fx_T2N10Ast__exp_tNt6option1N10Ast__exp_t* src, + struct _fx_T2N10Ast__exp_tNt6option1N10Ast__exp_t* dst) { FX_COPY_PTR(src->t0, &dst->t0); FX_COPY_PTR(src->t1, &dst->t1); - dst->t2 = src->t2; } -static void _fx_make_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t( - struct _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t_data_t* t0, - struct _fx_N10Ast__exp_t_data_t* t1, - struct _fx_R10Ast__loc_t* t2, - struct _fx_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t* fx_result) +static void _fx_make_T2N10Ast__exp_tNt6option1N10Ast__exp_t( + struct _fx_N10Ast__exp_t_data_t* t0, + struct _fx_Nt6option1N10Ast__exp_t_data_t* t1, + struct _fx_T2N10Ast__exp_tNt6option1N10Ast__exp_t* fx_result) { FX_COPY_PTR(t0, &fx_result->t0); FX_COPY_PTR(t1, &fx_result->t1); - fx_result->t2 = *t2; } static void _fx_free_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t( @@ -5556,6 +5576,27 @@ static void _fx_make_T4LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_tN10Ast__ex fx_result->t3 = *t3; } +static void _fx_free_Ta2LN10Ast__exp_t(struct _fx_Ta2LN10Ast__exp_t* dst) +{ + _fx_free_LN10Ast__exp_t(&dst->t0); + _fx_free_LN10Ast__exp_t(&dst->t1); +} + +static void _fx_copy_Ta2LN10Ast__exp_t(struct _fx_Ta2LN10Ast__exp_t* src, struct _fx_Ta2LN10Ast__exp_t* dst) +{ + FX_COPY_PTR(src->t0, &dst->t0); + FX_COPY_PTR(src->t1, &dst->t1); +} + +static void _fx_make_Ta2LN10Ast__exp_t( + struct _fx_LN10Ast__exp_t_data_t* t0, + struct _fx_LN10Ast__exp_t_data_t* t1, + struct _fx_Ta2LN10Ast__exp_t* fx_result) +{ + FX_COPY_PTR(t0, &fx_result->t0); + FX_COPY_PTR(t1, &fx_result->t1); +} + static void _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_t( struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_t* dst) { @@ -5815,10 +5856,24 @@ static int _fx_make_rNt10Hashmap__t2SN15Parser__ppval_t( FX_MAKE_REF_IMPL(_fx_rNt10Hashmap__t2SN15Parser__ppval_t, FX_COPY_PTR); } +static void _fx_free_rN16Ast__defmodule_t(struct _fx_rN16Ast__defmodule_t_data_t** dst) +{ + FX_FREE_REF_IMPL(_fx_rN16Ast__defmodule_t, _fx_free_N16Ast__defmodule_t); +} + +static int _fx_make_rN16Ast__defmodule_t( + struct _fx_N16Ast__defmodule_t_data_t* arg, + struct _fx_rN16Ast__defmodule_t_data_t** fx_result) +{ + FX_MAKE_REF_IMPL(_fx_rN16Ast__defmodule_t, FX_COPY_PTR); +} + _fx_Nt6option1N15Parser__ppval_t _fx_g12Parser__None = { 1 }; -_fx_Nt6option1R9Ast__id_t _fx_g14Parser__None1_ = { 1 }; -_fx_Nt6option1N10Ast__exp_t _fx_g14Parser__None2_ = 0; -_fx_Nt6option1N10Ast__typ_t _fx_g14Parser__None3_ = 0; +_fx_Nt6option1FPN10Ast__pat_t2N10Ast__pat_tR16Ast__ast_callb_t _fx_g14Parser__None1_ = 0; +_fx_Nt6option1FPN10Ast__typ_t2N10Ast__typ_tR16Ast__ast_callb_t _fx_g14Parser__None2_ = 0; +_fx_Nt6option1R9Ast__id_t _fx_g14Parser__None3_ = { 1 }; +_fx_Nt6option1N10Ast__exp_t _fx_g14Parser__None4_ = 0; +_fx_Nt6option1N10Ast__typ_t _fx_g14Parser__None5_ = 0; _fx_N10Ast__lit_t _fx_g16Parser__LitEmpty = { 8 }; static _fx_N10Ast__typ_t_data_t TypVarRecord_data_0 = { 1, 4 }; _fx_N10Ast__typ_t _fx_g20Parser__TypVarRecord = &TypVarRecord_data_0; @@ -5988,13 +6043,13 @@ FX_EXTERN_C int _fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5l struct _fx_T2N10Ast__typ_tR10Ast__loc_t*, struct _fx_N10Ast__exp_t_data_t**); +FX_EXTERN_C int _fx_M3AstFM6get_idRM4id_t1S(fx_str_t*, struct _fx_R9Ast__id_t*, void*); + FX_EXTERN_C int _fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t( struct _fx_R9Ast__id_t*, struct _fx_T2N10Ast__typ_tR10Ast__loc_t*, struct _fx_N10Ast__exp_t_data_t**); -FX_EXTERN_C int _fx_M3AstFM6get_idRM4id_t1S(fx_str_t*, struct _fx_R9Ast__id_t*, void*); - FX_EXTERN_C int _fx_M3AstFM10ExpMkTupleN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( struct _fx_LN10Ast__exp_t_data_t*, struct _fx_T2N10Ast__typ_tR10Ast__loc_t*, @@ -6032,6 +6087,8 @@ FX_EXTERN_C int _fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t( FX_EXTERN_C int _fx_M3AstFM11get_end_locRM5loc_t1RM5loc_t(struct _fx_R10Ast__loc_t*, struct _fx_R10Ast__loc_t*, void*); +FX_EXTERN_C void _fx_M3AstFM7LitBoolN10Ast__lit_t1B(bool, struct _fx_N10Ast__lit_t*); + FX_EXTERN_C int _fx_M3AstFM17default_var_flagsRM11val_flags_t0(struct _fx_R16Ast__val_flags_t*, void*); FX_EXTERN_C int _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t( @@ -6041,23 +6098,19 @@ FX_EXTERN_C int _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11va struct _fx_R10Ast__loc_t*, struct _fx_N10Ast__exp_t_data_t**); -FX_EXTERN_C int _fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(struct _fx_R16Ast__val_flags_t*, void*); - FX_EXTERN_C int _fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t( struct _fx_N10Ast__exp_t_data_t*, struct _fx_N10Ast__exp_t_data_t*, struct _fx_R10Ast__loc_t*, struct _fx_N10Ast__exp_t_data_t**); +FX_EXTERN_C int _fx_M3AstFM8ExpBreakN10Ast__exp_t2BRM5loc_t(bool, struct _fx_R10Ast__loc_t*, struct _fx_N10Ast__exp_t_data_t**); + FX_EXTERN_C int _fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( struct _fx_LN10Ast__exp_t_data_t*, struct _fx_T2N10Ast__typ_tR10Ast__loc_t*, struct _fx_N10Ast__exp_t_data_t**); -FX_EXTERN_C void _fx_M3AstFM7LitBoolN10Ast__lit_t1B(bool, struct _fx_N10Ast__lit_t*); - -FX_EXTERN_C int _fx_M3AstFM8ExpBreakN10Ast__exp_t2BRM5loc_t(bool, struct _fx_R10Ast__loc_t*, struct _fx_N10Ast__exp_t_data_t**); - FX_EXTERN_C int _fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(struct _fx_R10Ast__loc_t*, struct _fx_N10Ast__exp_t_data_t**); FX_EXTERN_C int _fx_M3AstFM5ExpIfN10Ast__exp_t4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( @@ -6125,6 +6178,35 @@ FX_EXTERN_C int struct _fx_T2N10Ast__typ_tR10Ast__loc_t*, struct _fx_N10Ast__exp_t_data_t**); +FX_EXTERN_C int _fx_M6ParserFM7make_fpFPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t3LR9Ast__id_trLR9Ast__id_trLR9Ast__id_t( + struct _fx_LR9Ast__id_t_data_t*, + struct _fx_rLR9Ast__id_t_data_t*, + struct _fx_rLR9Ast__id_t_data_t*, + struct _fx_FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t*); + +FX_EXTERN_C int _fx_M3AstFM16check_n_walk_expN10Ast__exp_t2N10Ast__exp_tRM11ast_callb_t( + struct _fx_N10Ast__exp_t_data_t*, + struct _fx_R16Ast__ast_callb_t*, + struct _fx_N10Ast__exp_t_data_t**, + void*); + +FX_EXTERN_C int _fx_M3AstFM15compile_warningv2RM5loc_tS(struct _fx_R10Ast__loc_t*, fx_str_t*, void*); + +static int _fx_M6ParserFM7scan_cbN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t( + struct _fx_N10Ast__exp_t_data_t*, + struct _fx_R16Ast__ast_callb_t*, + struct _fx_N10Ast__exp_t_data_t**, + void*); + +FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g12Ast__dummyid) +FX_EXTERN_C int _fx_M3AstFM6__eq__B2RM4id_tRM4id_t(struct _fx_R9Ast__id_t*, struct _fx_R9Ast__id_t*, bool*, void*); + +FX_EXTERN_C int _fx_M3AstFM8walk_expN10Ast__exp_t2N10Ast__exp_tRM11ast_callb_t( + struct _fx_N10Ast__exp_t_data_t*, + struct _fx_R16Ast__ast_callb_t*, + struct _fx_N10Ast__exp_t_data_t**, + void*); + FX_EXTERN_C int _fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t( struct _fx_LR10Ast__loc_t_data_t*, struct _fx_R10Ast__loc_t*, @@ -6167,8 +6249,6 @@ FX_EXTERN_C int _fx_M6ParserFM10get_opnameR9Ast__id_t1N14Lexer__token_t( void*); FX_EXTERN_C_VAL(struct _fx_R9Ast__id_t _fx_g9Ast__noid) -FX_EXTERN_C int _fx_M3AstFM6__eq__B2RM4id_tRM4id_t(struct _fx_R9Ast__id_t*, struct _fx_R9Ast__id_t*, bool*, void*); - FX_EXTERN_C int _fx_M6ParserFM11parse_blockT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t( struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t*, struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t*, @@ -6285,6 +6365,8 @@ FX_EXTERN_C int _fx_M3AstFM5OpCmpN13Ast__binary_t1N12Ast__cmpop_t( struct _fx_N12Ast__cmpop_t*, struct _fx_N13Ast__binary_t_data_t**); +FX_EXTERN_C int _fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(struct _fx_R16Ast__val_flags_t*, void*); + FX_EXTERN_C int _fx_M6ParserFM12parse_expseqT2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__exp_t2LT2N14Lexer__token_tR10Ast__loc_tB( struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t*, @@ -6762,6 +6844,14 @@ FX_EXTERN_C int _fx_M5LexerFM10make_lexerFPT3LT2N14Lexer__token_tTa2iTa2iTa2i01N struct _fx_FPT3LT2N14Lexer__token_tTa2iTa2iTa2i0*, void*); +static int _fx_M6ParserFM5stampLT2N14Lexer__token_tR10Ast__loc_t4LT2N14Lexer__token_tTa2irN16Ast__defmodule_tii( + struct _fx_LT2N14Lexer__token_tTa2i_data_t*, + struct _fx_rN16Ast__defmodule_t_data_t*, + int_, + int_, + struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t**, + void*); + FX_EXTERN_C_VAL(struct _fx_R18Options__options_t _fx_g12Options__opt) fx_exn_info_t _fx_E18Parser__ParseError_info = {0}; typedef struct { @@ -6775,6 +6865,23 @@ FX_EXTERN_C void _fx_free_E18Parser__ParseError(_fx_E18Parser__ParseError_data_t fx_free(dst); } +typedef struct { + int_ rc; + fx_free_t free_f; + struct _fx_LR9Ast__id_t_data_t* t0; + struct _fx_rLR9Ast__id_t_data_t* t1; + struct _fx_rLR9Ast__id_t_data_t* t2; +} _fx_M6ParserFM7scan_cbN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_cldata_t; + +FX_EXTERN_C void _fx_free_M6ParserFM7scan_cbN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t( + _fx_M6ParserFM7scan_cbN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_cldata_t* dst) +{ + FX_FREE_LIST_SIMPLE(&dst->t0); + _fx_free_rLR9Ast__id_t(&dst->t1); + _fx_free_rLR9Ast__id_t(&dst->t2); + fx_free(dst); +} + FX_EXTERN_C void _fx_M6ParserFM4SomeNt6option1N15Parser__ppval_t1N15Parser__ppval_t( struct _fx_N15Parser__ppval_t* arg0, struct _fx_Nt6option1N15Parser__ppval_t* fx_result) @@ -6783,6 +6890,16 @@ FX_EXTERN_C void _fx_M6ParserFM4SomeNt6option1N15Parser__ppval_t1N15Parser__ppva _fx_copy_N15Parser__ppval_t(arg0, &fx_result->u.Some); } +FX_EXTERN_C int + _fx_M6ParserFM4SomeNt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t( + struct _fx_FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t* arg0, + struct _fx_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_data_t** fx_result) +{ + FX_MAKE_RECURSIVE_VARIANT_IMPL_START(_fx_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t); + FX_COPY_FP(arg0, &v->u.Some); + return 0; +} + FX_EXTERN_C void _fx_M6ParserFM4SomeNt6option1R9Ast__id_t1R9Ast__id_t( struct _fx_R9Ast__id_t* arg0, struct _fx_Nt6option1R9Ast__id_t* fx_result) @@ -6843,6 +6960,20 @@ return fx_list_length(l); } +FX_EXTERN_C int_ _fx_M6ParserFM6lengthi1LN10Ast__exp_t(struct _fx_LN10Ast__exp_t_data_t* l, void* fx_fv) +{ + +return fx_list_length(l); + +} + +FX_EXTERN_C int_ _fx_M6ParserFM6lengthi1LN10Ast__pat_t(struct _fx_LN10Ast__pat_t_data_t* l, void* fx_fv) +{ + +return fx_list_length(l); + +} + FX_EXTERN_C int_ _fx_M6ParserFM6lengthi1LS(struct _fx_LS_data_t* l, void* fx_fv) { @@ -6919,6 +7050,17 @@ FX_EXTERN_C int _fx_M6ParserFM7__add__LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_ return fx_status; } +FX_EXTERN_C void _fx_M6ParserFM5link2LR9Ast__id_t2LR9Ast__id_tLR9Ast__id_t( + struct _fx_LR9Ast__id_t_data_t* l1, + struct _fx_LR9Ast__id_t_data_t* l2, + struct _fx_LR9Ast__id_t_data_t** fx_result, + void* fx_fv) +{ + +fx_link_lists(l1, l2, fx_result); + +} + FX_EXTERN_C int _fx_M6ParserFM6stringS1S(fx_str_t* a_0, fx_str_t* fx_result, void* fx_fv) { int fx_status = 0; @@ -7287,87 +7429,32 @@ _fx_cleanup: ; return fx_status; } -FX_EXTERN_C int - _fx_M6ParserFM4lastT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t1LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( - struct _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t_data_t* __pat___0, - struct _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* fx_result, - void* fx_fv) -{ - _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t result_0 = {0}; - _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t __pat___1 = 0; - int fx_status = 0; - FX_COPY_PTR(__pat___0, &__pat___1); - for (;;) { - _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t __pat___2 = 0; - FX_COPY_PTR(__pat___1, &__pat___2); - if (__pat___2 != 0) { - if (__pat___2->tl == 0) { - _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t result_1 = {0}; - _fx_copy_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&__pat___2->hd, &result_1); - _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&result_0); - _fx_copy_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&result_1, &result_0); - FX_BREAK(_fx_catch_0); - - _fx_catch_0: ; - _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&result_1); - goto _fx_endmatch_0; - } - } - if (__pat___2 != 0) { - _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* rest_0 = &__pat___2->tl; - _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&__pat___1); - FX_COPY_PTR(*rest_0, &__pat___1); - goto _fx_endmatch_0; - } - FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_1); - - _fx_endmatch_0: ; - FX_CHECK_EXN(_fx_catch_1); - - _fx_catch_1: ; - if (__pat___2) { - _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&__pat___2); - } - FX_CHECK_BREAK(); - FX_CHECK_EXN(_fx_cleanup); - } - _fx_copy_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&result_0, fx_result); - -_fx_cleanup: ; - _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&result_0); - if (__pat___1) { - _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&__pat___1); - } - return fx_status; -} - FX_EXTERN_C int _fx_M6ParserFM3revLT2N14Lexer__token_tR10Ast__loc_t1LT2N14Lexer__token_tR10Ast__loc_t( struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t* l_0, struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t** fx_result, void* fx_fv) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t __fold_result___0 = 0; + _fx_LT2N14Lexer__token_tR10Ast__loc_t res_0 = 0; int fx_status = 0; _fx_LT2N14Lexer__token_tR10Ast__loc_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t r_0 = 0; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_0 = 0; _fx_T2N14Lexer__token_tR10Ast__loc_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2N14Lexer__token_tR10Ast__loc_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2N14Lexer__token_tR10Ast__loc_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&r_0); + if (v_0) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&res_0); } return fx_status; } @@ -7377,28 +7464,27 @@ FX_EXTERN_C int _fx_M6ParserFM3revLT2N10Ast__pat_tN10Ast__exp_t1LT2N10Ast__pat_t struct _fx_LT2N10Ast__pat_tN10Ast__exp_t_data_t** fx_result, void* fx_fv) { - _fx_LT2N10Ast__pat_tN10Ast__exp_t __fold_result___0 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t res_0 = 0; int fx_status = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2N10Ast__pat_tN10Ast__exp_t r_0 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_0 = 0; _fx_T2N10Ast__pat_tN10Ast__exp_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&r_0); + if (v_0) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&res_0); } return fx_status; } @@ -7409,29 +7495,29 @@ FX_EXTERN_C int struct _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t_data_t** fx_result, void* fx_fv) { - _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t __fold_result___0 = 0; + _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t res_0 = 0; int fx_status = 0; _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t r_0 = 0; + _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t v_0 = 0; _fx_T3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(a_0, r_0, false, &r_0), + FX_CALL( + _fx_cons_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(a_0, res_0, true, &v_0), _fx_catch_0); - _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&r_0); + if (v_0) { + _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&__fold_result___0); + if (res_0) { + _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&res_0); } return fx_status; } @@ -7441,28 +7527,27 @@ FX_EXTERN_C int _fx_M6ParserFM3revLLN10Ast__exp_t1LLN10Ast__exp_t( struct _fx_LLN10Ast__exp_t_data_t** fx_result, void* fx_fv) { - _fx_LLN10Ast__exp_t __fold_result___0 = 0; + _fx_LLN10Ast__exp_t res_0 = 0; int fx_status = 0; _fx_LLN10Ast__exp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LLN10Ast__exp_t r_0 = 0; + _fx_LLN10Ast__exp_t v_0 = 0; _fx_LN10Ast__exp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LLN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LLN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LLN10Ast__exp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LLN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LLN10Ast__exp_t(&r_0); + if (v_0) { + _fx_free_LLN10Ast__exp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LLN10Ast__exp_t(&__fold_result___0); + if (res_0) { + _fx_free_LLN10Ast__exp_t(&res_0); } return fx_status; } @@ -7472,28 +7557,27 @@ FX_EXTERN_C int _fx_M6ParserFM3revLN10Ast__exp_t1LN10Ast__exp_t( struct _fx_LN10Ast__exp_t_data_t** fx_result, void* fx_fv) { - _fx_LN10Ast__exp_t __fold_result___0 = 0; + _fx_LN10Ast__exp_t res_0 = 0; int fx_status = 0; _fx_LN10Ast__exp_t lst_0 = l_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN10Ast__exp_t r_0 = 0; + _fx_LN10Ast__exp_t v_0 = 0; _fx_N10Ast__exp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, res_0, true, &v_0), _fx_catch_0); + _fx_free_LN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_0, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN10Ast__exp_t(&r_0); + if (v_0) { + _fx_free_LN10Ast__exp_t(&v_0); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - if (__fold_result___0) { - _fx_free_LN10Ast__exp_t(&__fold_result___0); + if (res_0) { + _fx_free_LN10Ast__exp_t(&res_0); } return fx_status; } @@ -7582,12 +7666,13 @@ FX_EXTERN_C int int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t* v_2 = + _fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t* v_3 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, *ht_table_0, tabsz_0); - _fx_free_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t(v_2); - _fx_copy_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t(entry_0, v_2); + _fx_free_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t(v_3); + _fx_copy_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -7640,27 +7725,29 @@ FX_EXTERN_C int _fx_M6ParserFM4growv2Nt10Hashmap__t2SN15Parser__ppval_ti( for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t* v_3 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t( FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M6ParserFM9add_fast_i4iA1iA1Rt20Hashmap__hashentry_t2SN15Parser__ppval_tRt20Hashmap__hashentry_t2SN15Parser__ppval_t( - tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + tabsz_0, &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -7830,19 +7917,20 @@ FX_EXTERN_C int _fx_M6ParserFM18find_idx_or_inserti2Nt10Hashmap__t2SN15Parser__p } if (t_1) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_10 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_10 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_11 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_11 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_) - (FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, self_0->u.t.t5, found_0)->hv & - 9223372036854775807ULL); + _fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t* v_12 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_12->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -7853,12 +7941,13 @@ FX_EXTERN_C int _fx_M6ParserFM18find_idx_or_inserti2Nt10Hashmap__t2SN15Parser__p _fx_copy_N15Parser__ppval_t(&self_0->u.t.t0.data, &v_2); _fx_make_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t(hv_0, k_0, &v_2, &v_3); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t* v_10 = + _fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t* v_13 = FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, self_0->u.t.t5, found_0); - _fx_free_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t(v_10); - _fx_copy_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t(&v_3, v_10); + _fx_free_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t(v_13); + _fx_copy_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t(&v_3, v_13); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_14 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_14 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -7887,9 +7976,11 @@ FX_EXTERN_C int _fx_M6ParserFM3addv3Nt10Hashmap__t2SN15Parser__ppval_tSN15Parser int_ idx_0; FX_CALL(_fx_M6ParserFM18find_idx_or_inserti2Nt10Hashmap__t2SN15Parser__ppval_tS(self_0, k_0, &idx_0, 0), _fx_cleanup); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, idx_0), _fx_cleanup); - _fx_N15Parser__ppval_t* v_0 = &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, self_0->u.t.t5, idx_0)->data; - _fx_free_N15Parser__ppval_t(v_0); - _fx_copy_N15Parser__ppval_t(d_0, v_0); + _fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t* v_0 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, self_0->u.t.t5, idx_0); + _fx_N15Parser__ppval_t* v_1 = &v_0->data; + _fx_free_N15Parser__ppval_t(v_1); + _fx_copy_N15Parser__ppval_t(d_0, v_1); _fx_cleanup: ; return fx_status; @@ -7907,10 +7998,12 @@ FX_EXTERN_C int _fx_M6ParserFM6removev2Nt10Hashmap__t2SN15Parser__ppval_tS( int_ tidx_0 = v_0.t1; if (tidx_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_1 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_1 = 1; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, tidx_0), _fx_cleanup); - FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, self_0->u.t.t5, tidx_0)->hv = - (uint64_t)self_0->u.t.t3 | 9223372036854775808ULL; + _fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t* v_2 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, self_0->u.t.t5, tidx_0); + v_2->hv = (uint64_t)self_0->u.t.t3 | 9223372036854775808ULL; self_0->u.t.t3 = tidx_0 + 1; self_0->u.t.t1 = self_0->u.t.t1 - 1; } @@ -7940,11 +8033,12 @@ FX_EXTERN_C int _fx_M6ParserFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1SRt int_ tidx_0 = *FX_PTR_1D(int_, *ht_index_0, j_0); if (tidx_0 == 0) { FX_CHKIDX(FX_CHKIDX1(*ht_index_0, 0, j_0), _fx_catch_0); - *FX_PTR_1D(int_, *ht_index_0, j_0) = tabsz_0 + 2; + int_* v_2 = FX_PTR_1D(int_, *ht_index_0, j_0); + *v_2 = tabsz_0 + 2; FX_CHKIDX(FX_CHKIDX1(*ht_table_0, 0, tabsz_0), _fx_catch_0); - _fx_Rt24Hashset__hashset_entry_t1S* v_2 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, *ht_table_0, tabsz_0); - _fx_free_Rt24Hashset__hashset_entry_t1S(v_2); - _fx_copy_Rt24Hashset__hashset_entry_t1S(entry_0, v_2); + _fx_Rt24Hashset__hashset_entry_t1S* v_3 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, *ht_table_0, tabsz_0); + _fx_free_Rt24Hashset__hashset_entry_t1S(v_3); + _fx_copy_Rt24Hashset__hashset_entry_t1S(entry_0, v_3); found_free_slot_0 = true; FX_BREAK(_fx_catch_0); } @@ -7993,26 +8087,27 @@ FX_EXTERN_C int _fx_M6ParserFM4growv2Nt10Hashset__t1Si(struct _fx_Nt10Hashset__t for (int_ j_0 = 0; j_0 < v_1; j_0++) { _fx_Rt24Hashset__hashset_entry_t1S v_2 = {0}; FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); - if (FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, ht_table_0, j_0)->hv < 9223372036854775808ULL) { + _fx_Rt24Hashset__hashset_entry_t1S* v_3 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, ht_table_0, j_0); + if (v_3->hv < 9223372036854775808ULL) { FX_CHKIDX(FX_CHKIDX1(ht_table_0, 0, j_0), _fx_catch_0); _fx_copy_Rt24Hashset__hashset_entry_t1S(FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, ht_table_0, j_0), &v_2); - int_ v_3; + int_ v_4; FX_CALL( _fx_M6ParserFM9add_fast_i4iA1iA1Rt24Hashset__hashset_entry_t1SRt24Hashset__hashset_entry_t1S(tabsz_0, - &new_ht_index_0, &new_ht_table_0, &v_2, &v_3, 0), _fx_catch_0); - tabsz_0 = v_3; + &new_ht_index_0, &new_ht_table_0, &v_2, &v_4, 0), _fx_catch_0); + tabsz_0 = v_4; } _fx_catch_0: ; _fx_free_Rt24Hashset__hashset_entry_t1S(&v_2); FX_CHECK_EXN(_fx_cleanup); } - fx_arr_t* v_4 = &self_0->u.t.t4; - FX_FREE_ARR(v_4); - fx_copy_arr(&new_ht_index_0, v_4); - fx_arr_t* v_5 = &self_0->u.t.t5; + fx_arr_t* v_5 = &self_0->u.t.t4; FX_FREE_ARR(v_5); - fx_copy_arr(&new_ht_table_0, v_5); + fx_copy_arr(&new_ht_index_0, v_5); + fx_arr_t* v_6 = &self_0->u.t.t5; + FX_FREE_ARR(v_6); + fx_copy_arr(&new_ht_table_0, v_6); self_0->u.t.t2 = tabsz_0; self_0->u.t.t3 = 0; @@ -8160,17 +8255,19 @@ FX_EXTERN_C int _fx_M6ParserFM4add_v3Nt10Hashset__t1SSq( } if (t_1) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_8 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_8 = found_0 + 2; FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, j_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, j_0) = 1; + int_* v_9 = FX_PTR_1D(int_, self_0->u.t.t4, j_0); + *v_9 = 1; } } else if (insert_idx_0 >= 0) { found_0 = self_0->u.t.t3 - 1; if (found_0 >= 0) { FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - self_0->u.t.t3 = - (int_)(FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0)->hv & 9223372036854775807ULL); + _fx_Rt24Hashset__hashset_entry_t1S* v_10 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0); + self_0->u.t.t3 = (int_)(v_10->hv & 9223372036854775807ULL); } else { found_0 = self_0->u.t.t2; @@ -8180,11 +8277,12 @@ FX_EXTERN_C int _fx_M6ParserFM4add_v3Nt10Hashset__t1SSq( } _fx_make_Rt24Hashset__hashset_entry_t1S(hv_0, k_0, &v_2); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t5, 0, found_0), _fx_cleanup); - _fx_Rt24Hashset__hashset_entry_t1S* v_8 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0); - _fx_free_Rt24Hashset__hashset_entry_t1S(v_8); - _fx_copy_Rt24Hashset__hashset_entry_t1S(&v_2, v_8); + _fx_Rt24Hashset__hashset_entry_t1S* v_11 = FX_PTR_1D(_fx_Rt24Hashset__hashset_entry_t1S, self_0->u.t.t5, found_0); + _fx_free_Rt24Hashset__hashset_entry_t1S(v_11); + _fx_copy_Rt24Hashset__hashset_entry_t1S(&v_2, v_11); FX_CHKIDX(FX_CHKIDX1(self_0->u.t.t4, 0, insert_idx_0), _fx_cleanup); - *FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0) = found_0 + 2; + int_* v_12 = FX_PTR_1D(int_, self_0->u.t.t4, insert_idx_0); + *v_12 = found_0 + 2; self_0->u.t.t1 = self_0->u.t.t1 + 1; } else { @@ -8248,9 +8346,8 @@ FX_EXTERN_C int _fx_M6ParserFM14suggest_moduleS2SLS( fx_str_t* fx_result, void* fx_fv) { - _fx_T2iS __fold_result___0 = {0}; - _fx_T2iS v_0 = {0}; fx_str_t best_0 = {0}; + fx_str_t v_0 = {0}; int fx_status = 0; int_ tlen_0 = FX_STR_LENGTH(*mname_0); int_ thresh_0; @@ -8260,87 +8357,60 @@ FX_EXTERN_C int _fx_M6ParserFM14suggest_moduleS2SLS( else { thresh_0 = 2; } + int_ best_d_0 = thresh_0 + 1; fx_str_t slit_0 = FX_MAKE_STR(""); - _fx_make_T2iS(thresh_0 + 1, &slit_0, &__fold_result___0); + fx_copy_str(&slit_0, &best_0); _fx_LS lst_0 = inc_dirs_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_T2iS v_1 = {0}; - fx_str_t b_0 = {0}; - _fx_T2iS __fold_result___1 = {0}; - fx_str_t v_2 = {0}; - fx_arr_t v_3 = {0}; + fx_str_t v_1 = {0}; + fx_arr_t v_2 = {0}; fx_str_t* d_0 = &lst_0->hd; - _fx_copy_T2iS(&__fold_result___0, &v_1); - fx_copy_str(&v_1.t1, &b_0); - _fx_make_T2iS(v_1.t0, &b_0, &__fold_result___1); fx_str_t slit_1 = FX_MAKE_STR("*.fx"); - FX_CALL(_fx_M8FilenameFM6concatS2SS(d_0, &slit_1, &v_2, 0), _fx_catch_1); - FX_CALL(_fx_M8FilenameFM4globA1S1S(&v_2, &v_3, 0), _fx_catch_1); - int_ ni_0 = FX_ARR_SIZE(v_3, 0); - fx_str_t* ptr_v_0 = FX_PTR_1D(fx_str_t, v_3, 0); + FX_CALL(_fx_M8FilenameFM6concatS2SS(d_0, &slit_1, &v_1, 0), _fx_catch_1); + FX_CALL(_fx_M8FilenameFM4globA1S1S(&v_1, &v_2, 0), _fx_catch_1); + int_ ni_0 = FX_ARR_SIZE(v_2, 0); + fx_str_t* ptr_v_0 = FX_PTR_1D(fx_str_t, v_2, 0); for (int_ i_0 = 0; i_0 < ni_0; i_0++) { fx_str_t path_0 = {0}; - _fx_T2iS v_4 = {0}; - fx_str_t b_1 = {0}; - fx_str_t v_5 = {0}; + fx_str_t v_3 = {0}; fx_str_t nm_0 = {0}; - _fx_T2iS v_6 = {0}; fx_copy_str(ptr_v_0 + i_0, &path_0); - _fx_copy_T2iS(&__fold_result___1, &v_4); - int_ bd_0 = v_4.t0; - fx_copy_str(&v_4.t1, &b_1); - FX_CALL(_fx_M8FilenameFM8basenameS1S(&path_0, &v_5, 0), _fx_catch_0); - FX_CALL(_fx_M8FilenameFM16remove_extensionS1S(&v_5, &nm_0, 0), _fx_catch_0); - bool v_7 = _fx_F6__eq__B2SS(&nm_0, mname_0, 0); + FX_CALL(_fx_M8FilenameFM8basenameS1S(&path_0, &v_3, 0), _fx_catch_0); + FX_CALL(_fx_M8FilenameFM16remove_extensionS1S(&v_3, &nm_0, 0), _fx_catch_0); + bool v_4 = _fx_F6__eq__B2SS(&nm_0, mname_0, 0); int_ dist_0; - if (v_7) { - dist_0 = bd_0 + 1; + if (v_4) { + dist_0 = best_d_0 + 1; } else { FX_CALL(_fx_M3AstFM13edit_distancei2SS(mname_0, &nm_0, &dist_0, 0), _fx_catch_0); } - bool v_8; - if (dist_0 < bd_0) { - v_8 = true; + bool v_5; + if (dist_0 < best_d_0) { + v_5 = true; } - else if (dist_0 == bd_0) { - int_ v_9 = _fx_F7__cmp__i2SS(&nm_0, &b_1, 0); v_8 = v_9 < 0; + else if (dist_0 == best_d_0) { + int_ v_6 = _fx_F7__cmp__i2SS(&nm_0, &best_0, 0); v_5 = v_6 < 0; } else { - v_8 = false; - } - if (v_8) { - _fx_make_T2iS(dist_0, &nm_0, &v_6); + v_5 = false; } - else { - _fx_make_T2iS(bd_0, &b_1, &v_6); + if (v_5) { + best_d_0 = dist_0; FX_FREE_STR(&best_0); fx_copy_str(&nm_0, &best_0); } - _fx_free_T2iS(&__fold_result___1); - _fx_copy_T2iS(&v_6, &__fold_result___1); _fx_catch_0: ; - _fx_free_T2iS(&v_6); FX_FREE_STR(&nm_0); - FX_FREE_STR(&v_5); - FX_FREE_STR(&b_1); - _fx_free_T2iS(&v_4); + FX_FREE_STR(&v_3); FX_FREE_STR(&path_0); FX_CHECK_EXN(_fx_catch_1); } - _fx_free_T2iS(&__fold_result___0); - _fx_copy_T2iS(&__fold_result___1, &__fold_result___0); _fx_catch_1: ; - FX_FREE_ARR(&v_3); - FX_FREE_STR(&v_2); - _fx_free_T2iS(&__fold_result___1); - FX_FREE_STR(&b_0); - _fx_free_T2iS(&v_1); + FX_FREE_ARR(&v_2); + FX_FREE_STR(&v_1); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T2iS(&__fold_result___0, &v_0); - int_ best_d_0 = v_0.t0; - fx_copy_str(&v_0.t1, &best_0); bool t_0; if (tlen_0 > 0) { t_0 = best_d_0 <= thresh_0; @@ -8356,10 +8426,11 @@ FX_EXTERN_C int _fx_M6ParserFM14suggest_moduleS2SLS( t_1 = false; } if (t_1) { + fx_copy_str(&best_0, &v_0); fx_str_t slit_2 = FX_MAKE_STR("; did you mean \'"); fx_str_t slit_3 = FX_MAKE_STR("\'?"); { - const fx_str_t strs_0[] = { slit_2, best_0, slit_3 }; + const fx_str_t strs_0[] = { slit_2, v_0, slit_3 }; FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, fx_result), _fx_cleanup); } } @@ -8368,9 +8439,8 @@ FX_EXTERN_C int _fx_M6ParserFM14suggest_moduleS2SLS( } _fx_cleanup: ; - _fx_free_T2iS(&__fold_result___0); - _fx_free_T2iS(&v_0); FX_FREE_STR(&best_0); + FX_FREE_STR(&v_0); return fx_status; } @@ -8389,6 +8459,7 @@ FX_EXTERN_C int _fx_M6ParserFM23add_to_imported_modulesi2R9Ast__id_tR10Ast__loc_ fx_str_t dirname_0 = {0}; _fx_Li v_2 = 0; _fx_Li v_3 = 0; + _fx_Li v_4 = 0; int fx_status = 0; FX_CALL(_fx_M3AstFM2ppS1RM4id_t(mname_0, &mfname_0, 0), _fx_cleanup); FX_CALL(_fx_M6StringFM5splitLS3SCB(&mfname_0, (char_)46, false, &v_0, 0), _fx_cleanup); @@ -8396,20 +8467,20 @@ FX_EXTERN_C int _fx_M6ParserFM23add_to_imported_modulesi2R9Ast__id_tR10Ast__loc_ FX_CALL(_fx_M8FilenameFM7dir_sepS0(&v_1, 0), _fx_cleanup); fx_str_t slit_0 = FX_MAKE_STR("."); FX_CALL(_fx_M6StringFM7replaceS3SSS(&mfname_0, &slit_0, &v_1, &mfname_1, 0), _fx_cleanup); - fx_str_t v_4 = {0}; - _fx_LS v_5 = 0; + fx_str_t v_5 = {0}; + _fx_LS v_6 = 0; fx_str_t slit_1 = FX_MAKE_STR(".fx"); { const fx_str_t strs_0[] = { mfname_1, slit_1 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_4), _fx_catch_0); + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 2, &v_5), _fx_catch_0); } - FX_COPY_PTR(_fx_g18Parser__parser_ctx.inc_dirs, &v_5); - FX_CALL(_fx_M8FilenameFM6locateS2SLS(&v_4, v_5, &mfname_2, 0), _fx_catch_0); + FX_COPY_PTR(_fx_g18Parser__parser_ctx.inc_dirs, &v_6); + FX_CALL(_fx_M8FilenameFM6locateS2SLS(&v_5, v_6, &mfname_2, 0), _fx_catch_0); _fx_catch_0: ; - FX_FREE_STR(&v_4); - if (v_5) { - _fx_free_LS(&v_5); + FX_FREE_STR(&v_5); + if (v_6) { + _fx_free_LS(&v_6); } if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_0); @@ -8417,52 +8488,52 @@ _fx_catch_0: ; FX_FREE_STR(&mfname_2); if (exn_0.tag == FX_EXN_NotFoundError) { fx_exn_t exn_1 = {0}; - fx_str_t v_6 = {0}; - _fx_LS v_7 = 0; + fx_str_t v_7 = {0}; + _fx_LS v_8 = 0; ncomps_0 = ncomps_0 + 1; fx_str_t slit_2 = FX_MAKE_STR("init.fx"); - FX_CALL(_fx_M8FilenameFM6concatS2SS(&mfname_1, &slit_2, &v_6, 0), _fx_catch_1); - FX_COPY_PTR(_fx_g18Parser__parser_ctx.inc_dirs, &v_7); - FX_CALL(_fx_M8FilenameFM6locateS2SLS(&v_6, v_7, &mfname_2, 0), _fx_catch_1); + FX_CALL(_fx_M8FilenameFM6concatS2SS(&mfname_1, &slit_2, &v_7, 0), _fx_catch_1); + FX_COPY_PTR(_fx_g18Parser__parser_ctx.inc_dirs, &v_8); + FX_CALL(_fx_M8FilenameFM6locateS2SLS(&v_7, v_8, &mfname_2, 0), _fx_catch_1); _fx_catch_1: ; - FX_FREE_STR(&v_6); - if (v_7) { - _fx_free_LS(&v_7); + FX_FREE_STR(&v_7); + if (v_8) { + _fx_free_LS(&v_8); } if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_1); fx_status = 0; FX_FREE_STR(&mfname_2); if (exn_1.tag == FX_EXN_NotFoundError) { - fx_str_t v_8 = {0}; fx_str_t v_9 = {0}; - _fx_LS v_10 = 0; - fx_str_t v_11 = {0}; + fx_str_t v_10 = {0}; + _fx_LS v_11 = 0; fx_str_t v_12 = {0}; - fx_exn_t v_13 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM4id_t(mname_0, &v_8, 0), _fx_catch_2); - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(mname_0, &v_9, 0), _fx_catch_2); - FX_COPY_PTR(_fx_g18Parser__parser_ctx.inc_dirs, &v_10); - FX_CALL(_fx_M6ParserFM14suggest_moduleS2SLS(&v_9, v_10, &v_11, 0), _fx_catch_2); + fx_str_t v_13 = {0}; + fx_exn_t v_14 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM4id_t(mname_0, &v_9, 0), _fx_catch_2); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(mname_0, &v_10, 0), _fx_catch_2); + FX_COPY_PTR(_fx_g18Parser__parser_ctx.inc_dirs, &v_11); + FX_CALL(_fx_M6ParserFM14suggest_moduleS2SLS(&v_10, v_11, &v_12, 0), _fx_catch_2); fx_str_t slit_3 = FX_MAKE_STR("module "); fx_str_t slit_4 = FX_MAKE_STR(" is not found"); { - const fx_str_t strs_1[] = { slit_3, v_8, slit_4, v_11 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 4, &v_12), _fx_catch_2); + const fx_str_t strs_1[] = { slit_3, v_9, slit_4, v_12 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 4, &v_13), _fx_catch_2); } - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(loc_0, &v_12, &v_13), _fx_catch_2); - FX_THROW(&v_13, true, _fx_catch_2); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(loc_0, &v_13, &v_14), _fx_catch_2); + FX_THROW(&v_14, true, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_13); + fx_free_exn(&v_14); + FX_FREE_STR(&v_13); FX_FREE_STR(&v_12); - FX_FREE_STR(&v_11); - if (v_10) { - _fx_free_LS(&v_10); + if (v_11) { + _fx_free_LS(&v_11); } + FX_FREE_STR(&v_10); FX_FREE_STR(&v_9); - FX_FREE_STR(&v_8); } else { FX_RETHROW(&exn_1, _fx_catch_3); @@ -8481,24 +8552,24 @@ _fx_catch_0: ; fx_copy_str(&mfname_2, &dirname_0); int_ n_0 = ncomps_0; for (int_ i_0 = 0; i_0 < n_0; i_0++) { - fx_str_t v_14 = {0}; - FX_CALL(_fx_M8FilenameFM7dirnameS1S(&dirname_0, &v_14, 0), _fx_catch_4); + fx_str_t v_15 = {0}; + FX_CALL(_fx_M8FilenameFM7dirnameS1S(&dirname_0, &v_15, 0), _fx_catch_4); FX_FREE_STR(&dirname_0); - fx_copy_str(&v_14, &dirname_0); - uint64_t v_15 = _fx_F4hashq1S(&dirname_0, 0); - _fx_Ta2i v_16; + fx_copy_str(&v_15, &dirname_0); + uint64_t v_16 = _fx_F4hashq1S(&dirname_0, 0); + _fx_Ta2i v_17; FX_CALL( - _fx_M6ParserFM9find_idx_Ta2i3Nt10Hashset__t1SSq(_fx_g19Ast__all_c_inc_dirs, &dirname_0, v_15 & 9223372036854775807ULL, - &v_16, 0), _fx_catch_4); - if (v_16.t1 >= 0) { + _fx_M6ParserFM9find_idx_Ta2i3Nt10Hashset__t1SSq(_fx_g19Ast__all_c_inc_dirs, &dirname_0, v_16 & 9223372036854775807ULL, + &v_17, 0), _fx_catch_4); + if (v_17.t1 >= 0) { FX_BREAK(_fx_catch_4); } - uint64_t v_17 = _fx_F4hashq1S(&dirname_0, 0); - FX_CALL(_fx_M6ParserFM4add_v3Nt10Hashset__t1SSq(_fx_g19Ast__all_c_inc_dirs, &dirname_0, v_17 & 9223372036854775807ULL, 0), + uint64_t v_18 = _fx_F4hashq1S(&dirname_0, 0); + FX_CALL(_fx_M6ParserFM4add_v3Nt10Hashset__t1SSq(_fx_g19Ast__all_c_inc_dirs, &dirname_0, v_18 & 9223372036854775807ULL, 0), _fx_catch_4); _fx_catch_4: ; - FX_FREE_STR(&v_14); + FX_FREE_STR(&v_15); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_cleanup); } @@ -8519,10 +8590,10 @@ _fx_catch_0: ; } if (!__fold_result___0) { FX_COPY_PTR(_fx_g18Parser__parser_ctx.deps, &v_3); - FX_CALL(_fx_cons_Li(m_idx_0, v_3, false, &v_3), _fx_cleanup); - _fx_Li* v_18 = &_fx_g18Parser__parser_ctx.deps; - FX_FREE_LIST_SIMPLE(v_18); - FX_COPY_PTR(v_3, v_18); + FX_CALL(_fx_cons_Li(m_idx_0, v_3, true, &v_4), _fx_cleanup); + _fx_Li* v_19 = &_fx_g18Parser__parser_ctx.deps; + FX_FREE_LIST_SIMPLE(v_19); + FX_COPY_PTR(v_4, v_19); } *fx_result = m_idx_0; @@ -8538,6 +8609,7 @@ _fx_cleanup: ; FX_FREE_STR(&dirname_0); FX_FREE_LIST_SIMPLE(&v_2); FX_FREE_LIST_SIMPLE(&v_3); + FX_FREE_LIST_SIMPLE(&v_4); return fx_status; } @@ -8596,22 +8668,6 @@ _fx_cleanup: ; return fx_status; } -FX_EXTERN_C int _fx_M6ParserFM10make_identN10Ast__exp_t2R9Ast__id_tR10Ast__loc_t( - struct _fx_R9Ast__id_t* i_0, - struct _fx_R10Ast__loc_t* loc_0, - struct _fx_N10Ast__exp_t_data_t** fx_result, - void* fx_fv) -{ - _fx_T2N10Ast__typ_tR10Ast__loc_t v_0 = {0}; - int fx_status = 0; - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(loc_0, &v_0, 0), _fx_cleanup); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(i_0, &v_0, fx_result), _fx_cleanup); - -_fx_cleanup: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_0); - return fx_status; -} - FX_EXTERN_C int _fx_M6ParserFM10make_identN10Ast__exp_t2SR10Ast__loc_t( fx_str_t* s_0, struct _fx_R10Ast__loc_t* loc_0, @@ -8681,9 +8737,10 @@ FX_EXTERN_C int _fx_M6ParserFM8pat2exp_T2N10Ast__pat_tN10Ast__exp_t1N10Ast__pat_ _fx_T2N10Ast__typ_tR10Ast__loc_t v_1 = {0}; _fx_N10Ast__exp_t v_2 = 0; _fx_R10Ast__loc_t* loc_0 = &p_0->u.PatAny; + int_ v_3 = _fx_g18Parser__parser_ctx.m_idx; _fx_R9Ast__id_t param_id_0; fx_str_t slit_0 = FX_MAKE_STR("__pat__"); - FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(_fx_g18Parser__parser_ctx.m_idx, &slit_0, ¶m_id_0, 0), _fx_catch_0); + FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(v_3, &slit_0, ¶m_id_0, 0), _fx_catch_0); FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(¶m_id_0, loc_0, &v_0), _fx_catch_0); FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(loc_0, &v_1, 0), _fx_catch_0); FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(¶m_id_0, &v_1, &v_2), _fx_catch_0); @@ -8699,49 +8756,49 @@ FX_EXTERN_C int _fx_M6ParserFM8pat2exp_T2N10Ast__pat_tN10Ast__exp_t1N10Ast__pat_ } } else if (tag_0 == 3) { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_3 = {0}; - _fx_N10Ast__exp_t v_4 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_4 = {0}; + _fx_N10Ast__exp_t v_5 = 0; _fx_T2R9Ast__id_tR10Ast__loc_t* vcase_0 = &p_0->u.PatIdent; - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&vcase_0->t1, &v_3, 0), _fx_catch_1); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&vcase_0->t0, &v_3, &v_4), _fx_catch_1); - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(p_0, v_4, fx_result); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&vcase_0->t1, &v_4, 0), _fx_catch_1); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&vcase_0->t0, &v_4, &v_5), _fx_catch_1); + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(p_0, v_5, fx_result); _fx_catch_1: ; - if (v_4) { - _fx_free_N10Ast__exp_t(&v_4); + if (v_5) { + _fx_free_N10Ast__exp_t(&v_5); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_3); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_4); } else if (tag_0 == 8) { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_5 = {0}; - _fx_N10Ast__exp_t v_6 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_6 = {0}; + _fx_N10Ast__exp_t v_7 = 0; _fx_T3N10Ast__pat_tR9Ast__id_tR10Ast__loc_t* vcase_1 = &p_0->u.PatAs; - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&vcase_1->t2, &v_5, 0), _fx_catch_2); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&vcase_1->t1, &v_5, &v_6), _fx_catch_2); - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(vcase_1->t0, v_6, fx_result); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&vcase_1->t2, &v_6, 0), _fx_catch_2); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&vcase_1->t1, &v_6, &v_7), _fx_catch_2); + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(vcase_1->t0, v_7, fx_result); _fx_catch_2: ; - if (v_6) { - _fx_free_N10Ast__exp_t(&v_6); + if (v_7) { + _fx_free_N10Ast__exp_t(&v_7); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_5); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_6); } else if (tag_0 == 9) { - _fx_T2N10Ast__pat_tN10Ast__exp_t v_7 = {0}; + _fx_T2N10Ast__pat_tN10Ast__exp_t v_8 = {0}; _fx_N10Ast__pat_t p_1 = 0; _fx_N10Ast__exp_t e_0 = 0; - _fx_N10Ast__pat_t v_8 = 0; + _fx_N10Ast__pat_t v_9 = 0; _fx_T3N10Ast__pat_tN10Ast__typ_tR10Ast__loc_t* vcase_2 = &p_0->u.PatTyped; - FX_CALL(_fx_M6ParserFM8pat2exp_T2N10Ast__pat_tN10Ast__exp_t1N10Ast__pat_t(vcase_2->t0, &v_7, 0), _fx_catch_3); - FX_COPY_PTR(v_7.t0, &p_1); - FX_COPY_PTR(v_7.t1, &e_0); - FX_CALL(_fx_M3AstFM8PatTypedN10Ast__pat_t3N10Ast__pat_tN10Ast__typ_tRM5loc_t(p_1, vcase_2->t1, &vcase_2->t2, &v_8), + FX_CALL(_fx_M6ParserFM8pat2exp_T2N10Ast__pat_tN10Ast__exp_t1N10Ast__pat_t(vcase_2->t0, &v_8, 0), _fx_catch_3); + FX_COPY_PTR(v_8.t0, &p_1); + FX_COPY_PTR(v_8.t1, &e_0); + FX_CALL(_fx_M3AstFM8PatTypedN10Ast__pat_t3N10Ast__pat_tN10Ast__typ_tRM5loc_t(p_1, vcase_2->t1, &vcase_2->t2, &v_9), _fx_catch_3); - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(v_8, e_0, fx_result); + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(v_9, e_0, fx_result); _fx_catch_3: ; - if (v_8) { - _fx_free_N10Ast__pat_t(&v_8); + if (v_9) { + _fx_free_N10Ast__pat_t(&v_9); } if (e_0) { _fx_free_N10Ast__exp_t(&e_0); @@ -8749,29 +8806,30 @@ FX_EXTERN_C int _fx_M6ParserFM8pat2exp_T2N10Ast__pat_tN10Ast__exp_t1N10Ast__pat_ if (p_1) { _fx_free_N10Ast__pat_t(&p_1); } - _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_7); + _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_8); } else { - _fx_N10Ast__pat_t v_9 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_10 = {0}; - _fx_N10Ast__exp_t v_11 = 0; + _fx_N10Ast__pat_t v_10 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_11 = {0}; + _fx_N10Ast__exp_t v_12 = 0; _fx_R10Ast__loc_t loc_1; FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(p_0, &loc_1, 0), _fx_catch_4); + int_ v_13 = _fx_g18Parser__parser_ctx.m_idx; _fx_R9Ast__id_t param_id_1; fx_str_t slit_1 = FX_MAKE_STR("__pat__"); - FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(_fx_g18Parser__parser_ctx.m_idx, &slit_1, ¶m_id_1, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM5PatAsN10Ast__pat_t3N10Ast__pat_tRM4id_tRM5loc_t(p_0, ¶m_id_1, &loc_1, &v_9), _fx_catch_4); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&loc_1, &v_10, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(¶m_id_1, &v_10, &v_11), _fx_catch_4); - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(v_9, v_11, fx_result); + FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(v_13, &slit_1, ¶m_id_1, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM5PatAsN10Ast__pat_t3N10Ast__pat_tRM4id_tRM5loc_t(p_0, ¶m_id_1, &loc_1, &v_10), _fx_catch_4); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&loc_1, &v_11, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(¶m_id_1, &v_11, &v_12), _fx_catch_4); + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(v_10, v_12, fx_result); _fx_catch_4: ; - if (v_11) { - _fx_free_N10Ast__exp_t(&v_11); + if (v_12) { + _fx_free_N10Ast__exp_t(&v_12); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_10); - if (v_9) { - _fx_free_N10Ast__pat_t(&v_9); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_11); + if (v_10) { + _fx_free_N10Ast__pat_t(&v_10); } } @@ -8785,131 +8843,120 @@ FX_EXTERN_C int _fx_M6ParserFM9plist2expT2LN10Ast__pat_tN10Ast__exp_t2LN10Ast__p struct _fx_T2LN10Ast__pat_tN10Ast__exp_t* fx_result, void* fx_fv) { - _fx_T2LN10Ast__pat_tLN10Ast__exp_t __fold_result___0 = {0}; - _fx_T2LN10Ast__pat_tLN10Ast__exp_t v_0 = {0}; _fx_LN10Ast__pat_t plist_0 = 0; _fx_LN10Ast__exp_t elist_0 = 0; - _fx_LN10Ast__pat_t __fold_result___1 = 0; - _fx_LN10Ast__pat_t v_1 = 0; - _fx_N10Ast__exp_t v_2 = 0; + _fx_LN10Ast__pat_t res_0 = 0; + _fx_LN10Ast__pat_t v_0 = 0; + _fx_LN10Ast__exp_t elist_1 = 0; + _fx_N10Ast__exp_t v_1 = 0; int fx_status = 0; - _fx_make_T2LN10Ast__pat_tLN10Ast__exp_t(0, 0, &__fold_result___0); _fx_LN10Ast__pat_t lst_0 = pl_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_T2LN10Ast__pat_tLN10Ast__exp_t v_3 = {0}; - _fx_LN10Ast__pat_t plist_1 = 0; - _fx_LN10Ast__exp_t elist_1 = 0; - _fx_T2N10Ast__pat_tN10Ast__exp_t v_4 = {0}; + _fx_T2N10Ast__pat_tN10Ast__exp_t v_2 = {0}; _fx_N10Ast__pat_t p__0 = 0; _fx_N10Ast__exp_t e__0 = 0; - _fx_T2LN10Ast__pat_tLN10Ast__exp_t v_5 = {0}; + _fx_LN10Ast__pat_t v_3 = 0; + _fx_LN10Ast__exp_t v_4 = 0; _fx_N10Ast__pat_t p_0 = lst_0->hd; - _fx_copy_T2LN10Ast__pat_tLN10Ast__exp_t(&__fold_result___0, &v_3); - FX_COPY_PTR(v_3.t0, &plist_1); - FX_COPY_PTR(v_3.t1, &elist_1); - FX_CALL(_fx_M6ParserFM8pat2exp_T2N10Ast__pat_tN10Ast__exp_t1N10Ast__pat_t(p_0, &v_4, 0), _fx_catch_0); - FX_COPY_PTR(v_4.t0, &p__0); - FX_COPY_PTR(v_4.t1, &e__0); - FX_CALL(_fx_cons_LN10Ast__pat_t(p__0, plist_1, false, &plist_1), _fx_catch_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(e__0, elist_1, false, &elist_1), _fx_catch_0); - _fx_make_T2LN10Ast__pat_tLN10Ast__exp_t(plist_1, elist_1, &v_5); - _fx_free_T2LN10Ast__pat_tLN10Ast__exp_t(&__fold_result___0); - _fx_copy_T2LN10Ast__pat_tLN10Ast__exp_t(&v_5, &__fold_result___0); + FX_CALL(_fx_M6ParserFM8pat2exp_T2N10Ast__pat_tN10Ast__exp_t1N10Ast__pat_t(p_0, &v_2, 0), _fx_catch_0); + FX_COPY_PTR(v_2.t0, &p__0); + FX_COPY_PTR(v_2.t1, &e__0); + FX_CALL(_fx_cons_LN10Ast__pat_t(p__0, plist_0, true, &v_3), _fx_catch_0); + _fx_free_LN10Ast__pat_t(&plist_0); + FX_COPY_PTR(v_3, &plist_0); + FX_CALL(_fx_cons_LN10Ast__exp_t(e__0, elist_0, true, &v_4), _fx_catch_0); + _fx_free_LN10Ast__exp_t(&elist_0); + FX_COPY_PTR(v_4, &elist_0); _fx_catch_0: ; - _fx_free_T2LN10Ast__pat_tLN10Ast__exp_t(&v_5); + if (v_4) { + _fx_free_LN10Ast__exp_t(&v_4); + } + if (v_3) { + _fx_free_LN10Ast__pat_t(&v_3); + } if (e__0) { _fx_free_N10Ast__exp_t(&e__0); } if (p__0) { _fx_free_N10Ast__pat_t(&p__0); } - _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_4); - if (elist_1) { - _fx_free_LN10Ast__exp_t(&elist_1); - } - if (plist_1) { - _fx_free_LN10Ast__pat_t(&plist_1); - } - _fx_free_T2LN10Ast__pat_tLN10Ast__exp_t(&v_3); + _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_2); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T2LN10Ast__pat_tLN10Ast__exp_t(&__fold_result___0, &v_0); - FX_COPY_PTR(v_0.t0, &plist_0); - FX_COPY_PTR(v_0.t1, &elist_0); _fx_LN10Ast__pat_t lst_1 = plist_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN10Ast__pat_t r_0 = 0; + _fx_LN10Ast__pat_t v_5 = 0; _fx_N10Ast__pat_t a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LN10Ast__pat_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, res_0, true, &v_5), _fx_catch_1); + _fx_free_LN10Ast__pat_t(&res_0); + FX_COPY_PTR(v_5, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LN10Ast__pat_t(&r_0); + if (v_5) { + _fx_free_LN10Ast__pat_t(&v_5); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_1); - if (elist_0 != 0) { - if (elist_0->tl == 0) { - FX_COPY_PTR(elist_0->hd, &v_2); goto _fx_endmatch_0; + FX_COPY_PTR(res_0, &v_0); + FX_COPY_PTR(elist_0, &elist_1); + if (elist_1 != 0) { + if (elist_1->tl == 0) { + FX_COPY_PTR(elist_1->hd, &v_1); goto _fx_endmatch_0; } } - _fx_LN10Ast__exp_t __fold_result___2 = 0; + _fx_LN10Ast__exp_t res_1 = 0; _fx_LN10Ast__exp_t v_6 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_7 = {0}; _fx_LN10Ast__exp_t lst_2 = elist_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN10Ast__exp_t r_1 = 0; + _fx_LN10Ast__exp_t v_8 = 0; _fx_N10Ast__exp_t a_1 = lst_2->hd; - FX_COPY_PTR(__fold_result___2, &r_1); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_1, r_1, false, &r_1), _fx_catch_2); - _fx_free_LN10Ast__exp_t(&__fold_result___2); - FX_COPY_PTR(r_1, &__fold_result___2); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_1, res_1, true, &v_8), _fx_catch_2); + _fx_free_LN10Ast__exp_t(&res_1); + FX_COPY_PTR(v_8, &res_1); _fx_catch_2: ; - if (r_1) { - _fx_free_LN10Ast__exp_t(&r_1); + if (v_8) { + _fx_free_LN10Ast__exp_t(&v_8); } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___2, &v_6); + FX_COPY_PTR(res_1, &v_6); FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(loc_0, &v_7, 0), _fx_catch_3); - FX_CALL(_fx_M3AstFM10ExpMkTupleN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_6, &v_7, &v_2), _fx_catch_3); + FX_CALL(_fx_M3AstFM10ExpMkTupleN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_6, &v_7, &v_1), _fx_catch_3); _fx_catch_3: ; _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_7); if (v_6) { _fx_free_LN10Ast__exp_t(&v_6); } - if (__fold_result___2) { - _fx_free_LN10Ast__exp_t(&__fold_result___2); + if (res_1) { + _fx_free_LN10Ast__exp_t(&res_1); } _fx_endmatch_0: ; FX_CHECK_EXN(_fx_cleanup); - _fx_make_T2LN10Ast__pat_tN10Ast__exp_t(v_1, v_2, fx_result); + _fx_make_T2LN10Ast__pat_tN10Ast__exp_t(v_0, v_1, fx_result); _fx_cleanup: ; - _fx_free_T2LN10Ast__pat_tLN10Ast__exp_t(&__fold_result___0); - _fx_free_T2LN10Ast__pat_tLN10Ast__exp_t(&v_0); if (plist_0) { _fx_free_LN10Ast__pat_t(&plist_0); } if (elist_0) { _fx_free_LN10Ast__exp_t(&elist_0); } - if (__fold_result___1) { - _fx_free_LN10Ast__pat_t(&__fold_result___1); + if (res_0) { + _fx_free_LN10Ast__pat_t(&res_0); } - if (v_1) { - _fx_free_LN10Ast__pat_t(&v_1); + if (v_0) { + _fx_free_LN10Ast__pat_t(&v_0); } - if (v_2) { - _fx_free_N10Ast__exp_t(&v_2); + if (elist_1) { + _fx_free_LN10Ast__exp_t(&elist_1); + } + if (v_1) { + _fx_free_N10Ast__exp_t(&v_1); } return fx_status; } @@ -9013,33 +9060,69 @@ FX_EXTERN_C int struct _fx_N10Ast__exp_t_data_t** fx_result, void* fx_fv) { + _fx_T2N10Ast__typ_tR10Ast__loc_t v_0 = {0}; _fx_N10Ast__exp_t fr_exp_0 = 0; - _fx_T2LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_tN10Ast__exp_t v_0 = {0}; + _fx_T2LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_tN10Ast__exp_t v_1 = {0}; _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t nested_fors_0 = 0; _fx_N10Ast__exp_t fold_body_0 = 0; - _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t v_1 = {0}; + _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t result_0 = {0}; + _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t __pat___0 = 0; + _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t v_2 = {0}; _fx_T2N10Ast__typ_tR10Ast__loc_t void_ctx_0 = {0}; _fx_T2N10Ast__typ_tR10Ast__loc_t bool_ctx_0 = {0}; _fx_T2N10Ast__typ_tR10Ast__loc_t int_ctx_0 = {0}; - _fx_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t v_2 = {0}; + _fx_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t v_3 = {0}; _fx_N10Ast__exp_t fr_decl_0 = 0; _fx_N10Ast__exp_t new_body_0 = 0; _fx_N10Ast__exp_t fr_exp_1 = 0; int fx_status = 0; _fx_R10Ast__loc_t acc_loc_0; FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(fold_pat_0, &acc_loc_0, 0), _fx_cleanup); - FX_CALL( - _fx_M6ParserFM10make_identN10Ast__exp_t2R9Ast__id_tR10Ast__loc_t(&_fx_g23Ast__std__fold_result__, &acc_loc_0, &fr_exp_0, - 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&acc_loc_0, &v_0, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&_fx_g23Ast__std__fold_result__, &v_0, &fr_exp_0), + _fx_cleanup); FX_CALL( _fx_M6ParserFM11unpack_for_T2LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_tN10Ast__exp_t2N10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( - for_exp_0, 0, &v_0, 0), _fx_cleanup); - FX_COPY_PTR(v_0.t0, &nested_fors_0); - FX_COPY_PTR(v_0.t1, &fold_body_0); - FX_CALL( - _fx_M6ParserFM4lastT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t1LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t( - nested_fors_0, &v_1, 0), _fx_cleanup); - _fx_R16Ast__for_flags_t global_flags_0 = v_1.t2; + for_exp_0, 0, &v_1, 0), _fx_cleanup); + FX_COPY_PTR(v_1.t0, &nested_fors_0); + FX_COPY_PTR(v_1.t1, &fold_body_0); + FX_COPY_PTR(nested_fors_0, &__pat___0); + for (;;) { + _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t __pat___1 = 0; + FX_COPY_PTR(__pat___0, &__pat___1); + if (__pat___1 != 0) { + if (__pat___1->tl == 0) { + _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t result_1 = {0}; + _fx_copy_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&__pat___1->hd, &result_1); + _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&result_0); + _fx_copy_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&result_1, &result_0); + FX_BREAK(_fx_catch_0); + + _fx_catch_0: ; + _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&result_1); + goto _fx_endmatch_0; + } + } + if (__pat___1 != 0) { + _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* rest_0 = &__pat___1->tl; + _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&__pat___0); + FX_COPY_PTR(*rest_0, &__pat___0); + goto _fx_endmatch_0; + } + FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_1); + + _fx_endmatch_0: ; + FX_CHECK_EXN(_fx_catch_1); + + _fx_catch_1: ; + if (__pat___1) { + _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&__pat___1); + } + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_cleanup); + } + _fx_copy_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&result_0, &v_2); + _fx_R16Ast__for_flags_t global_flags_0 = v_2.t2; _fx_R10Ast__loc_t body_loc_0; FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(fold_body_0, &body_loc_0, 0), _fx_cleanup); _fx_R10Ast__loc_t body_end_loc_0; @@ -9047,130 +9130,77 @@ FX_EXTERN_C int _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypVoid, &body_loc_0, &void_ctx_0); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypBool, &body_loc_0, &bool_ctx_0); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g14Parser__TypInt, &body_loc_0, &int_ctx_0); - fx_str_t slit_0 = FX_MAKE_STR(""); + bool res_0; + fx_str_t slit_0 = FX_MAKE_STR("all"); if (fx_streq(special_0, &slit_0)) { - _fx_N10Ast__pat_t v_3 = 0; - _fx_R16Ast__val_flags_t v_4 = {0}; - _fx_N10Ast__exp_t fr_decl_1 = 0; - _fx_R16Ast__val_flags_t v_5 = {0}; - _fx_N10Ast__exp_t acc_decl_0 = 0; - _fx_N10Ast__exp_t update_fr_0 = 0; - _fx_LN10Ast__exp_t v_6 = 0; - _fx_N10Ast__exp_t new_body_1 = 0; - FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&_fx_g23Ast__std__fold_result__, &acc_loc_0, &v_3), - _fx_catch_0); - FX_CALL(_fx_M3AstFM17default_var_flagsRM11val_flags_t0(&v_4, 0), _fx_catch_0); - FX_CALL( - _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_3, fold_init_exp_0, &v_4, - &acc_loc_0, &fr_decl_1), _fx_catch_0); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_5, 0), _fx_catch_0); - FX_CALL( - _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(fold_pat_0, fr_exp_0, &v_5, - &acc_loc_0, &acc_decl_0), _fx_catch_0); - FX_CALL( - _fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(fr_exp_0, fold_body_0, &body_loc_0, - &update_fr_0), _fx_catch_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(update_fr_0, 0, true, &v_6), _fx_catch_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(acc_decl_0, v_6, false, &v_6), _fx_catch_0); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_6, &void_ctx_0, &new_body_1), - _fx_catch_0); - _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(fr_decl_1, new_body_1, fr_exp_0, &global_flags_0, - &v_2); - - _fx_catch_0: ; - if (new_body_1) { - _fx_free_N10Ast__exp_t(&new_body_1); - } - if (v_6) { - _fx_free_LN10Ast__exp_t(&v_6); - } - if (update_fr_0) { - _fx_free_N10Ast__exp_t(&update_fr_0); - } - if (acc_decl_0) { - _fx_free_N10Ast__exp_t(&acc_decl_0); - } - _fx_free_R16Ast__val_flags_t(&v_5); - if (fr_decl_1) { - _fx_free_N10Ast__exp_t(&fr_decl_1); - } - _fx_free_R16Ast__val_flags_t(&v_4); - if (v_3) { - _fx_free_N10Ast__pat_t(&v_3); - } - goto _fx_endmatch_3; + res_0 = true; goto _fx_endmatch_1; } - bool res_0; - fx_str_t slit_1 = FX_MAKE_STR("all"); + fx_str_t slit_1 = FX_MAKE_STR("exists"); if (fx_streq(special_0, &slit_1)) { - res_0 = true; goto _fx_endmatch_0; - } - fx_str_t slit_2 = FX_MAKE_STR("exists"); - if (fx_streq(special_0, &slit_2)) { - res_0 = true; goto _fx_endmatch_0; + res_0 = true; goto _fx_endmatch_1; } res_0 = false; -_fx_endmatch_0: ; +_fx_endmatch_1: ; FX_CHECK_EXN(_fx_cleanup); if (res_0) { - _fx_N10Ast__pat_t v_7 = 0; - _fx_N10Ast__lit_t v_8 = {0}; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_9 = {0}; + _fx_N10Ast__pat_t v_4 = 0; + _fx_N10Ast__lit_t v_5 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_6 = {0}; + _fx_N10Ast__exp_t v_7 = 0; + _fx_R16Ast__val_flags_t v_8 = {0}; + _fx_N10Ast__exp_t fr_decl_1 = 0; + _fx_N10Ast__lit_t v_9 = {0}; _fx_N10Ast__exp_t v_10 = 0; - _fx_R16Ast__val_flags_t v_11 = {0}; - _fx_N10Ast__exp_t fr_decl_2 = 0; - _fx_N10Ast__lit_t v_12 = {0}; - _fx_N10Ast__exp_t v_13 = 0; - _fx_N10Ast__exp_t v_14 = 0; - _fx_N10Ast__exp_t v_15 = 0; - _fx_LN10Ast__exp_t v_16 = 0; + _fx_N10Ast__exp_t v_11 = 0; + _fx_N10Ast__exp_t v_12 = 0; + _fx_LN10Ast__exp_t v_13 = 0; _fx_N10Ast__exp_t break_exp_0 = 0; _fx_N10Ast__exp_t predicate_exp_0 = 0; - _fx_N10Ast__exp_t v_17 = 0; - _fx_N10Ast__exp_t new_body_2 = 0; + _fx_N10Ast__exp_t v_14 = 0; + _fx_N10Ast__exp_t new_body_1 = 0; bool is_all_0; - fx_str_t slit_3 = FX_MAKE_STR("all"); - is_all_0 = _fx_F6__eq__B2SS(special_0, &slit_3, 0); - FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&_fx_g23Ast__std__fold_result__, &acc_loc_0, &v_7), - _fx_catch_1); - _fx_M3AstFM7LitBoolN10Ast__lit_t1B(is_all_0, &v_8); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypBool, &acc_loc_0, &v_9); - FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_8, &v_9, &v_10), _fx_catch_1); - FX_CALL(_fx_M3AstFM17default_var_flagsRM11val_flags_t0(&v_11, 0), _fx_catch_1); + fx_str_t slit_2 = FX_MAKE_STR("all"); + is_all_0 = _fx_F6__eq__B2SS(special_0, &slit_2, 0); + FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&_fx_g23Ast__std__fold_result__, &acc_loc_0, &v_4), + _fx_catch_2); + _fx_M3AstFM7LitBoolN10Ast__lit_t1B(is_all_0, &v_5); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypBool, &acc_loc_0, &v_6); + FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_5, &v_6, &v_7), _fx_catch_2); + FX_CALL(_fx_M3AstFM17default_var_flagsRM11val_flags_t0(&v_8, 0), _fx_catch_2); FX_CALL( - _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_7, v_10, &v_11, &acc_loc_0, - &fr_decl_2), _fx_catch_1); - _fx_M3AstFM7LitBoolN10Ast__lit_t1B(!is_all_0, &v_12); - FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_12, &bool_ctx_0, &v_13), _fx_catch_1); - FX_CALL(_fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(fr_exp_0, v_13, &body_loc_0, &v_14), - _fx_catch_1); - FX_CALL(_fx_M3AstFM8ExpBreakN10Ast__exp_t2BRM5loc_t(true, &body_loc_0, &v_15), _fx_catch_1); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_15, 0, true, &v_16), _fx_catch_1); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_14, v_16, false, &v_16), _fx_catch_1); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_16, &void_ctx_0, &break_exp_0), - _fx_catch_1); + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_4, v_7, &v_8, &acc_loc_0, + &fr_decl_1), _fx_catch_2); + _fx_M3AstFM7LitBoolN10Ast__lit_t1B(!is_all_0, &v_9); + FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_9, &bool_ctx_0, &v_10), _fx_catch_2); + FX_CALL(_fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(fr_exp_0, v_10, &body_loc_0, &v_11), + _fx_catch_2); + FX_CALL(_fx_M3AstFM8ExpBreakN10Ast__exp_t2BRM5loc_t(true, &body_loc_0, &v_12), _fx_catch_2); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_12, 0, true, &v_13), _fx_catch_2); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_11, v_13, false, &v_13), _fx_catch_2); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_13, &void_ctx_0, &break_exp_0), + _fx_catch_2); if (!is_all_0) { FX_COPY_PTR(fold_body_0, &predicate_exp_0); } else { FX_CALL( _fx_M3AstFM8ExpUnaryN10Ast__exp_t3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(&_fx_g18Parser__OpLogicNot, - fold_body_0, &bool_ctx_0, &predicate_exp_0), _fx_catch_1); + fold_body_0, &bool_ctx_0, &predicate_exp_0), _fx_catch_2); } - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_17), _fx_catch_1); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_14), _fx_catch_2); FX_CALL( _fx_M3AstFM5ExpIfN10Ast__exp_t4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(predicate_exp_0, - break_exp_0, v_17, &void_ctx_0, &new_body_2), _fx_catch_1); - _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(fr_decl_2, new_body_2, fr_exp_0, &global_flags_0, - &v_2); + break_exp_0, v_14, &void_ctx_0, &new_body_1), _fx_catch_2); + _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(fr_decl_1, new_body_1, fr_exp_0, &global_flags_0, + &v_3); - _fx_catch_1: ; - if (new_body_2) { - _fx_free_N10Ast__exp_t(&new_body_2); + _fx_catch_2: ; + if (new_body_1) { + _fx_free_N10Ast__exp_t(&new_body_1); } - if (v_17) { - _fx_free_N10Ast__exp_t(&v_17); + if (v_14) { + _fx_free_N10Ast__exp_t(&v_14); } if (predicate_exp_0) { _fx_free_N10Ast__exp_t(&predicate_exp_0); @@ -9178,168 +9208,173 @@ _fx_endmatch_0: ; if (break_exp_0) { _fx_free_N10Ast__exp_t(&break_exp_0); } - if (v_16) { - _fx_free_LN10Ast__exp_t(&v_16); - } - if (v_15) { - _fx_free_N10Ast__exp_t(&v_15); - } - if (v_14) { - _fx_free_N10Ast__exp_t(&v_14); - } if (v_13) { - _fx_free_N10Ast__exp_t(&v_13); + _fx_free_LN10Ast__exp_t(&v_13); } - _fx_free_N10Ast__lit_t(&v_12); - if (fr_decl_2) { - _fx_free_N10Ast__exp_t(&fr_decl_2); + if (v_12) { + _fx_free_N10Ast__exp_t(&v_12); + } + if (v_11) { + _fx_free_N10Ast__exp_t(&v_11); } - _fx_free_R16Ast__val_flags_t(&v_11); if (v_10) { _fx_free_N10Ast__exp_t(&v_10); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_9); - _fx_free_N10Ast__lit_t(&v_8); + _fx_free_N10Ast__lit_t(&v_9); + if (fr_decl_1) { + _fx_free_N10Ast__exp_t(&fr_decl_1); + } + _fx_free_R16Ast__val_flags_t(&v_8); if (v_7) { - _fx_free_N10Ast__pat_t(&v_7); + _fx_free_N10Ast__exp_t(&v_7); } - goto _fx_endmatch_3; + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_6); + _fx_free_N10Ast__lit_t(&v_5); + if (v_4) { + _fx_free_N10Ast__pat_t(&v_4); + } + goto _fx_endmatch_4; } - fx_str_t slit_4 = FX_MAKE_STR("count"); - if (fx_streq(special_0, &slit_4)) { - _fx_N10Ast__pat_t v_18 = 0; - _fx_N10Ast__lit_t v_19 = {0}; + fx_str_t slit_3 = FX_MAKE_STR("count"); + if (fx_streq(special_0, &slit_3)) { + _fx_N10Ast__pat_t v_15 = 0; + _fx_N10Ast__lit_t v_16 = {0}; + _fx_N10Ast__exp_t v_17 = 0; + _fx_R16Ast__val_flags_t v_18 = {0}; + _fx_N10Ast__exp_t fr_decl_2 = 0; + _fx_N13Ast__binary_t v_19 = 0; _fx_N10Ast__exp_t v_20 = 0; - _fx_R16Ast__val_flags_t v_21 = {0}; - _fx_N10Ast__exp_t fr_decl_3 = 0; - _fx_N13Ast__binary_t v_22 = 0; - _fx_N10Ast__exp_t v_23 = 0; - _fx_N10Ast__lit_t v_24 = {0}; - _fx_N10Ast__exp_t v_25 = 0; + _fx_N10Ast__lit_t v_21 = {0}; + _fx_N10Ast__exp_t v_22 = 0; _fx_N10Ast__exp_t update_exp_0 = 0; - _fx_N10Ast__exp_t v_26 = 0; - _fx_N10Ast__exp_t new_body_3 = 0; - FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&_fx_g23Ast__std__fold_result__, &acc_loc_0, &v_18), - _fx_catch_2); - _fx_M3AstFM6LitIntN10Ast__lit_t1l(0LL, &v_19); - FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_19, &int_ctx_0, &v_20), _fx_catch_2); - FX_CALL(_fx_M3AstFM17default_var_flagsRM11val_flags_t0(&v_21, 0), _fx_catch_2); + _fx_N10Ast__exp_t v_23 = 0; + _fx_N10Ast__exp_t new_body_2 = 0; + FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&_fx_g23Ast__std__fold_result__, &acc_loc_0, &v_15), + _fx_catch_3); + _fx_M3AstFM6LitIntN10Ast__lit_t1l(0LL, &v_16); + FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_16, &int_ctx_0, &v_17), _fx_catch_3); + FX_CALL(_fx_M3AstFM17default_var_flagsRM11val_flags_t0(&v_18, 0), _fx_catch_3); FX_CALL( - _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_18, v_20, &v_21, &acc_loc_0, - &fr_decl_3), _fx_catch_2); - FX_CALL(_fx_M3AstFM11OpAugBinaryN13Ast__binary_t1N13Ast__binary_t(_fx_g13Parser__OpAdd, &v_22), _fx_catch_2); + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_15, v_17, &v_18, &acc_loc_0, + &fr_decl_2), _fx_catch_3); + FX_CALL(_fx_M3AstFM11OpAugBinaryN13Ast__binary_t1N13Ast__binary_t(_fx_g13Parser__OpAdd, &v_19), _fx_catch_3); FX_CALL( - _fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&_fx_g23Ast__std__fold_result__, &int_ctx_0, &v_23), - _fx_catch_2); - _fx_M3AstFM6LitIntN10Ast__lit_t1l(1LL, &v_24); - FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_24, &int_ctx_0, &v_25), _fx_catch_2); + _fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&_fx_g23Ast__std__fold_result__, &int_ctx_0, &v_20), + _fx_catch_3); + _fx_M3AstFM6LitIntN10Ast__lit_t1l(1LL, &v_21); + FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_21, &int_ctx_0, &v_22), _fx_catch_3); FX_CALL( - _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_22, v_23, v_25, - &void_ctx_0, &update_exp_0), _fx_catch_2); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_26), _fx_catch_2); + _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_19, v_20, v_22, + &void_ctx_0, &update_exp_0), _fx_catch_3); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_23), _fx_catch_3); FX_CALL( _fx_M3AstFM5ExpIfN10Ast__exp_t4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(fold_body_0, - update_exp_0, v_26, &void_ctx_0, &new_body_3), _fx_catch_2); - _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(fr_decl_3, new_body_3, fr_exp_0, &global_flags_0, - &v_2); + update_exp_0, v_23, &void_ctx_0, &new_body_2), _fx_catch_3); + _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(fr_decl_2, new_body_2, fr_exp_0, &global_flags_0, + &v_3); - _fx_catch_2: ; - if (new_body_3) { - _fx_free_N10Ast__exp_t(&new_body_3); + _fx_catch_3: ; + if (new_body_2) { + _fx_free_N10Ast__exp_t(&new_body_2); } - if (v_26) { - _fx_free_N10Ast__exp_t(&v_26); + if (v_23) { + _fx_free_N10Ast__exp_t(&v_23); } if (update_exp_0) { _fx_free_N10Ast__exp_t(&update_exp_0); } - if (v_25) { - _fx_free_N10Ast__exp_t(&v_25); - } - _fx_free_N10Ast__lit_t(&v_24); - if (v_23) { - _fx_free_N10Ast__exp_t(&v_23); - } if (v_22) { - _fx_free_N13Ast__binary_t(&v_22); + _fx_free_N10Ast__exp_t(&v_22); } - if (fr_decl_3) { - _fx_free_N10Ast__exp_t(&fr_decl_3); - } - _fx_free_R16Ast__val_flags_t(&v_21); + _fx_free_N10Ast__lit_t(&v_21); if (v_20) { _fx_free_N10Ast__exp_t(&v_20); } - _fx_free_N10Ast__lit_t(&v_19); - if (v_18) { - _fx_free_N10Ast__pat_t(&v_18); + if (v_19) { + _fx_free_N13Ast__binary_t(&v_19); } - goto _fx_endmatch_3; + if (fr_decl_2) { + _fx_free_N10Ast__exp_t(&fr_decl_2); + } + _fx_free_R16Ast__val_flags_t(&v_18); + if (v_17) { + _fx_free_N10Ast__exp_t(&v_17); + } + _fx_free_N10Ast__lit_t(&v_16); + if (v_15) { + _fx_free_N10Ast__pat_t(&v_15); + } + goto _fx_endmatch_4; } bool res_1; - fx_str_t slit_5 = FX_MAKE_STR("find"); - if (fx_streq(special_0, &slit_5)) { - res_1 = true; goto _fx_endmatch_1; + fx_str_t slit_4 = FX_MAKE_STR("find"); + if (fx_streq(special_0, &slit_4)) { + res_1 = true; goto _fx_endmatch_2; } - fx_str_t slit_6 = FX_MAKE_STR("find_opt"); - if (fx_streq(special_0, &slit_6)) { - res_1 = true; goto _fx_endmatch_1; + fx_str_t slit_5 = FX_MAKE_STR("find_opt"); + if (fx_streq(special_0, &slit_5)) { + res_1 = true; goto _fx_endmatch_2; } res_1 = false; -_fx_endmatch_1: ; +_fx_endmatch_2: ; FX_CHECK_EXN(_fx_cleanup); if (res_1) { - _fx_N10Ast__pat_t v_27 = 0; - _fx_N10Ast__exp_t v_28 = 0; - _fx_R16Ast__val_flags_t v_29 = {0}; - _fx_N10Ast__exp_t fr_decl_4 = 0; - _fx_N10Ast__exp_t v_30 = 0; - _fx_LN10Ast__exp_t v_31 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_32 = {0}; + _fx_N10Ast__pat_t v_24 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_25 = {0}; + _fx_N10Ast__exp_t v_26 = 0; + _fx_R16Ast__val_flags_t v_27 = {0}; + _fx_N10Ast__exp_t fr_decl_3 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_28 = {0}; + _fx_N10Ast__exp_t v_29 = 0; + _fx_LN10Ast__exp_t v_30 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_31 = {0}; _fx_N10Ast__exp_t mksome_exp_0 = 0; + _fx_N10Ast__exp_t v_32 = 0; _fx_N10Ast__exp_t v_33 = 0; - _fx_N10Ast__exp_t v_34 = 0; - _fx_LN10Ast__exp_t v_35 = 0; + _fx_LN10Ast__exp_t v_34 = 0; _fx_N10Ast__exp_t break_exp_1 = 0; - _fx_N10Ast__exp_t v_36 = 0; - _fx_N10Ast__exp_t new_body_4 = 0; + _fx_N10Ast__exp_t v_35 = 0; + _fx_N10Ast__exp_t new_body_3 = 0; _fx_N10Ast__exp_t new_fr_exp_0 = 0; _fx_R9Ast__id_t none_0; - fx_str_t slit_7 = FX_MAKE_STR("None"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_7, &none_0, 0), _fx_catch_4); + fx_str_t slit_6 = FX_MAKE_STR("None"); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_6, &none_0, 0), _fx_catch_5); _fx_R9Ast__id_t some_0; - fx_str_t slit_8 = FX_MAKE_STR("Some"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_8, &some_0, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&_fx_g23Ast__std__fold_result__, &acc_loc_0, &v_27), - _fx_catch_4); - FX_CALL(_fx_M6ParserFM10make_identN10Ast__exp_t2R9Ast__id_tR10Ast__loc_t(&none_0, &acc_loc_0, &v_28, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM17default_var_flagsRM11val_flags_t0(&v_29, 0), _fx_catch_4); + fx_str_t slit_7 = FX_MAKE_STR("Some"); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_7, &some_0, 0), _fx_catch_5); + FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&_fx_g23Ast__std__fold_result__, &acc_loc_0, &v_24), + _fx_catch_5); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&acc_loc_0, &v_25, 0), _fx_catch_5); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&none_0, &v_25, &v_26), _fx_catch_5); + FX_CALL(_fx_M3AstFM17default_var_flagsRM11val_flags_t0(&v_27, 0), _fx_catch_5); FX_CALL( - _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_27, v_28, &v_29, &acc_loc_0, - &fr_decl_4), _fx_catch_4); - FX_CALL(_fx_M6ParserFM10make_identN10Ast__exp_t2R9Ast__id_tR10Ast__loc_t(&some_0, &body_loc_0, &v_30, 0), _fx_catch_4); - FX_CALL(_fx_cons_LN10Ast__exp_t(for_iter_exp_0, 0, true, &v_31), _fx_catch_4); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&body_loc_0, &v_32, 0), _fx_catch_4); + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_24, v_26, &v_27, &acc_loc_0, + &fr_decl_3), _fx_catch_5); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&body_loc_0, &v_28, 0), _fx_catch_5); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&some_0, &v_28, &v_29), _fx_catch_5); + FX_CALL(_fx_cons_LN10Ast__exp_t(for_iter_exp_0, 0, true, &v_30), _fx_catch_5); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&body_loc_0, &v_31, 0), _fx_catch_5); FX_CALL( - _fx_M3AstFM7ExpCallN10Ast__exp_t3N10Ast__exp_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_30, v_31, &v_32, &mksome_exp_0), - _fx_catch_4); - FX_CALL(_fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(fr_exp_0, mksome_exp_0, &body_loc_0, &v_33), - _fx_catch_4); - FX_CALL(_fx_M3AstFM8ExpBreakN10Ast__exp_t2BRM5loc_t(true, &body_loc_0, &v_34), _fx_catch_4); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_34, 0, true, &v_35), _fx_catch_4); - FX_CALL(_fx_cons_LN10Ast__exp_t(v_33, v_35, false, &v_35), _fx_catch_4); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_35, &void_ctx_0, &break_exp_1), - _fx_catch_4); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_36), _fx_catch_4); + _fx_M3AstFM7ExpCallN10Ast__exp_t3N10Ast__exp_tLN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_29, v_30, &v_31, &mksome_exp_0), + _fx_catch_5); + FX_CALL(_fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(fr_exp_0, mksome_exp_0, &body_loc_0, &v_32), + _fx_catch_5); + FX_CALL(_fx_M3AstFM8ExpBreakN10Ast__exp_t2BRM5loc_t(true, &body_loc_0, &v_33), _fx_catch_5); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_33, 0, true, &v_34), _fx_catch_5); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_32, v_34, false, &v_34), _fx_catch_5); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_34, &void_ctx_0, &break_exp_1), + _fx_catch_5); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_35), _fx_catch_5); FX_CALL( _fx_M3AstFM5ExpIfN10Ast__exp_t4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(fold_body_0, break_exp_1, - v_36, &void_ctx_0, &new_body_4), _fx_catch_4); - fx_str_t slit_9 = FX_MAKE_STR("find"); - if (fx_streq(special_0, &slit_9)) { - _fx_N10Ast__pat_t v_37 = 0; - _fx_LN10Ast__pat_t v_38 = 0; - _fx_N10Ast__pat_t v_39 = 0; + v_35, &void_ctx_0, &new_body_3), _fx_catch_5); + fx_str_t slit_8 = FX_MAKE_STR("find"); + if (fx_streq(special_0, &slit_8)) { + _fx_N10Ast__pat_t v_36 = 0; + _fx_LN10Ast__pat_t v_37 = 0; + _fx_N10Ast__pat_t v_38 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_39 = {0}; _fx_N10Ast__exp_t v_40 = 0; _fx_T2N10Ast__pat_tN10Ast__exp_t some_case_0 = {0}; _fx_N10Ast__pat_t v_41 = 0; @@ -9351,32 +9386,32 @@ _fx_endmatch_1: ; _fx_N10Ast__typ_t v_46 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_47 = {0}; _fx_R9Ast__id_t x_0; - fx_str_t slit_10 = FX_MAKE_STR("x"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_10, &x_0, 0), _fx_catch_3); - FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&x_0, &body_end_loc_0, &v_37), _fx_catch_3); - FX_CALL(_fx_cons_LN10Ast__pat_t(v_37, 0, true, &v_38), _fx_catch_3); - FX_CALL(_fx_M3AstFM10PatVariantN10Ast__pat_t3RM4id_tLN10Ast__pat_tRM5loc_t(&some_0, v_38, &body_end_loc_0, &v_39), - _fx_catch_3); - FX_CALL(_fx_M6ParserFM10make_identN10Ast__exp_t2R9Ast__id_tR10Ast__loc_t(&x_0, &body_end_loc_0, &v_40, 0), - _fx_catch_3); - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(v_39, v_40, &some_case_0); - FX_CALL(_fx_M3AstFM6PatAnyN10Ast__pat_t1RM5loc_t(&body_end_loc_0, &v_41), _fx_catch_3); + fx_str_t slit_9 = FX_MAKE_STR("x"); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_9, &x_0, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&x_0, &body_end_loc_0, &v_36), _fx_catch_4); + FX_CALL(_fx_cons_LN10Ast__pat_t(v_36, 0, true, &v_37), _fx_catch_4); + FX_CALL(_fx_M3AstFM10PatVariantN10Ast__pat_t3RM4id_tLN10Ast__pat_tRM5loc_t(&some_0, v_37, &body_end_loc_0, &v_38), + _fx_catch_4); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&body_end_loc_0, &v_39, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&x_0, &v_39, &v_40), _fx_catch_4); + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(v_38, v_40, &some_case_0); + FX_CALL(_fx_M3AstFM6PatAnyN10Ast__pat_t1RM5loc_t(&body_end_loc_0, &v_41), _fx_catch_4); _fx_R9Ast__id_t v_48; - fx_str_t slit_11 = FX_MAKE_STR("NotFoundError"); - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_11, &v_48, 0), _fx_catch_3); + fx_str_t slit_10 = FX_MAKE_STR("NotFoundError"); + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&slit_10, &v_48, 0), _fx_catch_4); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g14Parser__TypExn, &body_end_loc_0, &v_42); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&v_48, &v_42, &v_43), _fx_catch_3); - FX_CALL(_fx_M3AstFM8ExpThrowN10Ast__exp_t2N10Ast__exp_tRM5loc_t(v_43, &body_end_loc_0, &v_44), _fx_catch_3); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&v_48, &v_42, &v_43), _fx_catch_4); + FX_CALL(_fx_M3AstFM8ExpThrowN10Ast__exp_t2N10Ast__exp_tRM5loc_t(v_43, &body_end_loc_0, &v_44), _fx_catch_4); _fx_make_T2N10Ast__pat_tN10Ast__exp_t(v_41, v_44, &none_case_0); - FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&none_case_0, 0, true, &v_45), _fx_catch_3); - FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&some_case_0, v_45, false, &v_45), _fx_catch_3); - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_46, 0), _fx_catch_3); + FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&none_case_0, 0, true, &v_45), _fx_catch_4); + FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&some_case_0, v_45, false, &v_45), _fx_catch_4); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_46, 0), _fx_catch_4); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_46, &body_end_loc_0, &v_47); FX_CALL( _fx_M3AstFM8ExpMatchN10Ast__exp_t3N10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(fr_exp_0, v_45, - &v_47, &new_fr_exp_0), _fx_catch_3); + &v_47, &new_fr_exp_0), _fx_catch_4); - _fx_catch_3: ; + _fx_catch_4: ; _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_47); if (v_46) { _fx_free_N10Ast__typ_t(&v_46); @@ -9399,107 +9434,110 @@ _fx_endmatch_1: ; if (v_40) { _fx_free_N10Ast__exp_t(&v_40); } - if (v_39) { - _fx_free_N10Ast__pat_t(&v_39); - } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_39); if (v_38) { - _fx_free_LN10Ast__pat_t(&v_38); + _fx_free_N10Ast__pat_t(&v_38); } if (v_37) { - _fx_free_N10Ast__pat_t(&v_37); + _fx_free_LN10Ast__pat_t(&v_37); } - goto _fx_endmatch_2; + if (v_36) { + _fx_free_N10Ast__pat_t(&v_36); + } + goto _fx_endmatch_3; } FX_COPY_PTR(fr_exp_0, &new_fr_exp_0); - _fx_endmatch_2: ; - FX_CHECK_EXN(_fx_catch_4); - _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(fr_decl_4, new_body_4, new_fr_exp_0, - &global_flags_0, &v_2); + _fx_endmatch_3: ; + FX_CHECK_EXN(_fx_catch_5); + _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(fr_decl_3, new_body_3, new_fr_exp_0, + &global_flags_0, &v_3); - _fx_catch_4: ; + _fx_catch_5: ; if (new_fr_exp_0) { _fx_free_N10Ast__exp_t(&new_fr_exp_0); } - if (new_body_4) { - _fx_free_N10Ast__exp_t(&new_body_4); + if (new_body_3) { + _fx_free_N10Ast__exp_t(&new_body_3); } - if (v_36) { - _fx_free_N10Ast__exp_t(&v_36); + if (v_35) { + _fx_free_N10Ast__exp_t(&v_35); } if (break_exp_1) { _fx_free_N10Ast__exp_t(&break_exp_1); } - if (v_35) { - _fx_free_LN10Ast__exp_t(&v_35); - } if (v_34) { - _fx_free_N10Ast__exp_t(&v_34); + _fx_free_LN10Ast__exp_t(&v_34); } if (v_33) { _fx_free_N10Ast__exp_t(&v_33); } + if (v_32) { + _fx_free_N10Ast__exp_t(&v_32); + } if (mksome_exp_0) { _fx_free_N10Ast__exp_t(&mksome_exp_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_32); - if (v_31) { - _fx_free_LN10Ast__exp_t(&v_31); - } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_31); if (v_30) { - _fx_free_N10Ast__exp_t(&v_30); + _fx_free_LN10Ast__exp_t(&v_30); } - if (fr_decl_4) { - _fx_free_N10Ast__exp_t(&fr_decl_4); + if (v_29) { + _fx_free_N10Ast__exp_t(&v_29); + } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_28); + if (fr_decl_3) { + _fx_free_N10Ast__exp_t(&fr_decl_3); } - _fx_free_R16Ast__val_flags_t(&v_29); - if (v_28) { - _fx_free_N10Ast__exp_t(&v_28); + _fx_free_R16Ast__val_flags_t(&v_27); + if (v_26) { + _fx_free_N10Ast__exp_t(&v_26); } - if (v_27) { - _fx_free_N10Ast__pat_t(&v_27); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_25); + if (v_24) { + _fx_free_N10Ast__pat_t(&v_24); } - goto _fx_endmatch_3; + goto _fx_endmatch_4; } - fx_str_t slit_12 = FX_MAKE_STR("filter"); - if (fx_streq(special_0, &slit_12)) { + fx_str_t slit_11 = FX_MAKE_STR("filter"); + if (fx_streq(special_0, &slit_11)) { _fx_N10Ast__exp_t v_49 = 0; _fx_N10Ast__exp_t v_50 = 0; _fx_N10Ast__exp_t v_51 = 0; _fx_N10Ast__exp_t check_exp_0 = 0; _fx_LN10Ast__exp_t v_52 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_53 = {0}; - _fx_N10Ast__exp_t new_body_5 = 0; + _fx_N10Ast__exp_t new_body_4 = 0; _fx_N10Ast__exp_t v_54 = 0; _fx_N10Ast__exp_t v_55 = 0; FX_CALL( _fx_M3AstFM8ExpUnaryN10Ast__exp_t3N12Ast__unary_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(&_fx_g18Parser__OpLogicNot, - fold_body_0, &bool_ctx_0, &v_49), _fx_catch_5); - FX_CALL(_fx_M3AstFM11ExpContinueN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_50), _fx_catch_5); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_51), _fx_catch_5); + fold_body_0, &bool_ctx_0, &v_49), _fx_catch_6); + FX_CALL(_fx_M3AstFM11ExpContinueN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_50), _fx_catch_6); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_51), _fx_catch_6); FX_CALL( _fx_M3AstFM5ExpIfN10Ast__exp_t4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_49, v_50, v_51, - &void_ctx_0, &check_exp_0), _fx_catch_5); - FX_CALL(_fx_cons_LN10Ast__exp_t(for_iter_exp_0, 0, true, &v_52), _fx_catch_5); - FX_CALL(_fx_cons_LN10Ast__exp_t(check_exp_0, v_52, false, &v_52), _fx_catch_5); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&body_loc_0, &v_53, 0), _fx_catch_5); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_52, &v_53, &new_body_5), _fx_catch_5); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_54), _fx_catch_5); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_55), _fx_catch_5); + &void_ctx_0, &check_exp_0), _fx_catch_6); + FX_CALL(_fx_cons_LN10Ast__exp_t(for_iter_exp_0, 0, true, &v_52), _fx_catch_6); + FX_CALL(_fx_cons_LN10Ast__exp_t(check_exp_0, v_52, false, &v_52), _fx_catch_6); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&body_loc_0, &v_53, 0), _fx_catch_6); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_52, &v_53, &new_body_4), _fx_catch_6); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_54), _fx_catch_6); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_55), _fx_catch_6); _fx_R16Ast__for_flags_t v_56 = { global_flags_0.for_flag_parallel, _fx_g19Parser__ForMakeList, global_flags_0.for_flag_unzip, global_flags_0.for_flag_fold, global_flags_0.for_flag_nested }; - _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(v_54, new_body_5, v_55, &v_56, &v_2); + _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(v_54, new_body_4, v_55, &v_56, &v_3); - _fx_catch_5: ; + _fx_catch_6: ; if (v_55) { _fx_free_N10Ast__exp_t(&v_55); } if (v_54) { _fx_free_N10Ast__exp_t(&v_54); } - if (new_body_5) { - _fx_free_N10Ast__exp_t(&new_body_5); + if (new_body_4) { + _fx_free_N10Ast__exp_t(&new_body_4); } _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_53); if (v_52) { @@ -9517,85 +9555,76 @@ _fx_endmatch_1: ; if (v_49) { _fx_free_N10Ast__exp_t(&v_49); } - goto _fx_endmatch_3; + goto _fx_endmatch_4; } - fx_str_t slit_13 = FX_MAKE_STR("vector"); - if (fx_streq(special_0, &slit_13)) { + fx_str_t slit_12 = FX_MAKE_STR("vector"); + if (fx_streq(special_0, &slit_12)) { _fx_N10Ast__exp_t v_57 = 0; _fx_N10Ast__exp_t v_58 = 0; - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_57), _fx_catch_6); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_58), _fx_catch_6); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_57), _fx_catch_7); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&body_loc_0, &v_58), _fx_catch_7); _fx_R16Ast__for_flags_t v_59 = { global_flags_0.for_flag_parallel, _fx_g21Parser__ForMakeVector, global_flags_0.for_flag_unzip, global_flags_0.for_flag_fold, global_flags_0.for_flag_nested }; - _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(v_57, fold_body_0, v_58, &v_59, &v_2); + _fx_make_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(v_57, fold_body_0, v_58, &v_59, &v_3); - _fx_catch_6: ; + _fx_catch_7: ; if (v_58) { _fx_free_N10Ast__exp_t(&v_58); } if (v_57) { _fx_free_N10Ast__exp_t(&v_57); } - goto _fx_endmatch_3; + goto _fx_endmatch_4; } fx_str_t v_60 = {0}; - fx_str_t v_61 = {0}; - fx_exn_t v_62 = {0}; - FX_CALL(_fx_M6ParserFM6stringS1S(special_0, &v_60, 0), _fx_catch_7); - fx_str_t slit_14 = FX_MAKE_STR("unknown fold variation \'"); - fx_str_t slit_15 = FX_MAKE_STR("\'"); + fx_exn_t v_61 = {0}; + fx_str_t slit_13 = FX_MAKE_STR("unknown fold variation \'"); + fx_str_t slit_14 = FX_MAKE_STR("\'"); { - const fx_str_t strs_0[] = { slit_14, v_60, slit_15 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_61), _fx_catch_7); + const fx_str_t strs_0[] = { slit_13, *special_0, slit_14 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_60), _fx_catch_8); } - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&acc_loc_0, &v_61, &v_62), _fx_catch_7); - FX_THROW(&v_62, true, _fx_catch_7); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&acc_loc_0, &v_60, &v_61), _fx_catch_8); + FX_THROW(&v_61, true, _fx_catch_8); -_fx_catch_7: ; - fx_free_exn(&v_62); - FX_FREE_STR(&v_61); +_fx_catch_8: ; + fx_free_exn(&v_61); FX_FREE_STR(&v_60); -_fx_endmatch_3: ; +_fx_endmatch_4: ; FX_CHECK_EXN(_fx_cleanup); - FX_COPY_PTR(v_2.t0, &fr_decl_0); - FX_COPY_PTR(v_2.t1, &new_body_0); - FX_COPY_PTR(v_2.t2, &fr_exp_1); - _fx_R16Ast__for_flags_t global_flags_1 = v_2.t3; - _fx_N15Ast__for_make_t v_63 = global_flags_1.for_flag_make; - if (v_63.tag == 1) { - _fx_N10Ast__exp_t __fold_result___0 = 0; + FX_COPY_PTR(v_3.t0, &fr_decl_0); + FX_COPY_PTR(v_3.t1, &new_body_0); + FX_COPY_PTR(v_3.t2, &fr_exp_1); + _fx_R16Ast__for_flags_t global_flags_1 = v_3.t3; + _fx_N15Ast__for_make_t v_62 = global_flags_1.for_flag_make; + if (v_62.tag == 1) { _fx_N10Ast__exp_t for_exp_1 = 0; - _fx_LN10Ast__exp_t v_64 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_65 = {0}; - FX_COPY_PTR(new_body_0, &__fold_result___0); + _fx_LN10Ast__exp_t v_63 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_64 = {0}; + FX_COPY_PTR(new_body_0, &for_exp_1); _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t lst_0 = nested_fors_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_LT2N10Ast__pat_tN10Ast__exp_t pe_l_0 = 0; _fx_N10Ast__pat_t idxp_0 = 0; - _fx_N10Ast__exp_t for_exp_2 = 0; - _fx_N10Ast__exp_t v_66 = 0; - _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* __pat___0 = &lst_0->hd; - FX_COPY_PTR(__pat___0->t0, &pe_l_0); - FX_COPY_PTR(__pat___0->t1, &idxp_0); - _fx_R16Ast__for_flags_t flags_0 = __pat___0->t2; - _fx_R10Ast__loc_t loc_0 = __pat___0->t3; - FX_COPY_PTR(__fold_result___0, &for_exp_2); - _fx_R16Ast__for_flags_t v_67 = + _fx_N10Ast__exp_t v_65 = 0; + _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* __pat___2 = &lst_0->hd; + FX_COPY_PTR(__pat___2->t0, &pe_l_0); + FX_COPY_PTR(__pat___2->t1, &idxp_0); + _fx_R16Ast__for_flags_t flags_0 = __pat___2->t2; + _fx_R10Ast__loc_t loc_0 = __pat___2->t3; + _fx_R16Ast__for_flags_t v_66 = { flags_0.for_flag_parallel, flags_0.for_flag_make, flags_0.for_flag_unzip, true, flags_0.for_flag_nested }; FX_CALL( _fx_M3AstFM6ExpForN10Ast__exp_t5LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tRM11for_flags_tRM5loc_t( - pe_l_0, idxp_0, for_exp_2, &v_67, &loc_0, &v_66), _fx_catch_8); - _fx_free_N10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(v_66, &__fold_result___0); + pe_l_0, idxp_0, for_exp_1, &v_66, &loc_0, &v_65), _fx_catch_9); + _fx_free_N10Ast__exp_t(&for_exp_1); + FX_COPY_PTR(v_65, &for_exp_1); - _fx_catch_8: ; - if (v_66) { - _fx_free_N10Ast__exp_t(&v_66); - } - if (for_exp_2) { - _fx_free_N10Ast__exp_t(&for_exp_2); + _fx_catch_9: ; + if (v_65) { + _fx_free_N10Ast__exp_t(&v_65); } if (idxp_0) { _fx_free_N10Ast__pat_t(&idxp_0); @@ -9603,103 +9632,810 @@ _fx_endmatch_3: ; if (pe_l_0) { _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&pe_l_0); } - FX_CHECK_EXN(_fx_catch_9); + FX_CHECK_EXN(_fx_catch_10); } - FX_COPY_PTR(__fold_result___0, &for_exp_1); - FX_CALL(_fx_cons_LN10Ast__exp_t(fr_exp_1, 0, true, &v_64), _fx_catch_9); - FX_CALL(_fx_cons_LN10Ast__exp_t(for_exp_1, v_64, false, &v_64), _fx_catch_9); - FX_CALL(_fx_cons_LN10Ast__exp_t(fr_decl_0, v_64, false, &v_64), _fx_catch_9); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(fold_loc_0, &v_65, 0), _fx_catch_9); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_64, &v_65, fx_result), _fx_catch_9); + FX_CALL(_fx_cons_LN10Ast__exp_t(fr_exp_1, 0, true, &v_63), _fx_catch_10); + FX_CALL(_fx_cons_LN10Ast__exp_t(for_exp_1, v_63, false, &v_63), _fx_catch_10); + FX_CALL(_fx_cons_LN10Ast__exp_t(fr_decl_0, v_63, false, &v_63), _fx_catch_10); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(fold_loc_0, &v_64, 0), _fx_catch_10); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_63, &v_64, fx_result), _fx_catch_10); - _fx_catch_9: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_65); - if (v_64) { - _fx_free_LN10Ast__exp_t(&v_64); + _fx_catch_10: ; + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_64); + if (v_63) { + _fx_free_LN10Ast__exp_t(&v_63); } if (for_exp_1) { _fx_free_N10Ast__exp_t(&for_exp_1); } - if (__fold_result___0) { - _fx_free_N10Ast__exp_t(&__fold_result___0); - } } else { - _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t __fold_result___1 = 0; _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t nd_map_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_68 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_67 = {0}; _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t lst_1 = nested_fors_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_LT2N10Ast__pat_tN10Ast__exp_t pe_l_1 = 0; _fx_N10Ast__pat_t idxp_1 = 0; - _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t nd_map_1 = 0; - _fx_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_69 = {0}; - _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* __pat___1 = &lst_1->hd; - FX_COPY_PTR(__pat___1->t0, &pe_l_1); - FX_COPY_PTR(__pat___1->t1, &idxp_1); - FX_COPY_PTR(__fold_result___1, &nd_map_1); - _fx_make_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(pe_l_1, idxp_1, &v_69); - FX_CALL(_fx_cons_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_69, nd_map_1, false, &nd_map_1), _fx_catch_10); - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&__fold_result___1); - FX_COPY_PTR(nd_map_1, &__fold_result___1); + _fx_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_68 = {0}; + _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_69 = 0; + _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t* __pat___3 = &lst_1->hd; + FX_COPY_PTR(__pat___3->t0, &pe_l_1); + FX_COPY_PTR(__pat___3->t1, &idxp_1); + _fx_make_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(pe_l_1, idxp_1, &v_68); + FX_CALL(_fx_cons_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_68, nd_map_0, true, &v_69), _fx_catch_11); + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&nd_map_0); + FX_COPY_PTR(v_69, &nd_map_0); + + _fx_catch_11: ; + if (v_69) { + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_69); + } + _fx_free_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_68); + if (idxp_1) { + _fx_free_N10Ast__pat_t(&idxp_1); + } + if (pe_l_1) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&pe_l_1); + } + FX_CHECK_EXN(_fx_catch_12); + } + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(fold_loc_0, &v_67, 0), _fx_catch_12); + FX_CALL( + _fx_M3AstFM6ExpMapN10Ast__exp_t4LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tRM11for_flags_tT2N10Ast__typ_tRM5loc_t( + nd_map_0, new_body_0, &global_flags_1, &v_67, fx_result), _fx_catch_12); + + _fx_catch_12: ; + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_67); + if (nd_map_0) { + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&nd_map_0); + } + } + +_fx_cleanup: ; + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_0); + if (fr_exp_0) { + _fx_free_N10Ast__exp_t(&fr_exp_0); + } + _fx_free_T2LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_tN10Ast__exp_t(&v_1); + if (nested_fors_0) { + _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&nested_fors_0); + } + if (fold_body_0) { + _fx_free_N10Ast__exp_t(&fold_body_0); + } + _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&result_0); + if (__pat___0) { + _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&__pat___0); + } + _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&v_2); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&void_ctx_0); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&bool_ctx_0); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&int_ctx_0); + _fx_free_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(&v_3); + if (fr_decl_0) { + _fx_free_N10Ast__exp_t(&fr_decl_0); + } + if (new_body_0) { + _fx_free_N10Ast__exp_t(&new_body_0); + } + if (fr_exp_1) { + _fx_free_N10Ast__exp_t(&fr_exp_1); + } + return fx_status; +} + +FX_EXTERN_C int _fx_M6ParserFM15fold_pat_to_expN10Ast__exp_t1N10Ast__pat_t( + struct _fx_N10Ast__pat_t_data_t* p_0, + struct _fx_N10Ast__exp_t_data_t** fx_result, + void* fx_fv) +{ + _fx_N10Ast__exp_t result_0 = 0; + _fx_N10Ast__pat_t p_1 = 0; + int fx_status = 0; + FX_CALL(fx_check_stack(), _fx_cleanup); + FX_COPY_PTR(p_0, &p_1); + for (;;) { + _fx_N10Ast__pat_t p_2 = 0; + FX_COPY_PTR(p_1, &p_2); + int tag_0 = FX_REC_VARIANT_TAG(p_2); + if (tag_0 == 3) { + _fx_T2N10Ast__typ_tR10Ast__loc_t v_0 = {0}; + _fx_N10Ast__exp_t result_1 = 0; + _fx_T2R9Ast__id_tR10Ast__loc_t* vcase_0 = &p_2->u.PatIdent; + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&vcase_0->t1, &v_0, 0), _fx_catch_0); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&vcase_0->t0, &v_0, &result_1), _fx_catch_0); + _fx_free_N10Ast__exp_t(&result_0); + FX_COPY_PTR(result_1, &result_0); + FX_BREAK(_fx_catch_0); + + _fx_catch_0: ; + if (result_1) { + _fx_free_N10Ast__exp_t(&result_1); + } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_0); + } + else if (tag_0 == 9) { + _fx_N10Ast__pat_t* p_3 = &p_2->u.PatTyped.t0; _fx_free_N10Ast__pat_t(&p_1); FX_COPY_PTR(*p_3, &p_1); + } + else if (tag_0 == 4) { + _fx_LN10Ast__exp_t v_1 = 0; + _fx_LN10Ast__pat_t pl_0 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_2 = {0}; + _fx_N10Ast__exp_t result_2 = 0; + _fx_T2LN10Ast__pat_tR10Ast__loc_t* vcase_1 = &p_2->u.PatTuple; + _fx_LN10Ast__exp_t lstend_0 = 0; + FX_COPY_PTR(vcase_1->t0, &pl_0); + _fx_LN10Ast__pat_t lst_0 = pl_0; + for (; lst_0; lst_0 = lst_0->tl) { + _fx_N10Ast__exp_t res_0 = 0; + _fx_N10Ast__pat_t pi_0 = lst_0->hd; + FX_CALL(_fx_M6ParserFM15fold_pat_to_expN10Ast__exp_t1N10Ast__pat_t(pi_0, &res_0, 0), _fx_catch_1); + _fx_LN10Ast__exp_t node_0 = 0; + FX_CALL(_fx_cons_LN10Ast__exp_t(res_0, 0, false, &node_0), _fx_catch_1); + FX_LIST_APPEND(v_1, lstend_0, node_0); + + _fx_catch_1: ; + if (res_0) { + _fx_free_N10Ast__exp_t(&res_0); + } + FX_CHECK_EXN(_fx_catch_2); + } + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&vcase_1->t1, &v_2, 0), _fx_catch_2); + FX_CALL(_fx_M3AstFM10ExpMkTupleN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_1, &v_2, &result_2), _fx_catch_2); + _fx_free_N10Ast__exp_t(&result_0); + FX_COPY_PTR(result_2, &result_0); + FX_BREAK(_fx_catch_2); + + _fx_catch_2: ; + if (result_2) { + _fx_free_N10Ast__exp_t(&result_2); + } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_2); + if (pl_0) { + _fx_free_LN10Ast__pat_t(&pl_0); + } + if (v_1) { + _fx_free_LN10Ast__exp_t(&v_1); + } + } + else { + fx_exn_t v_3 = {0}; + _fx_R10Ast__loc_t v_4; + FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(p_2, &v_4, 0), _fx_catch_3); + fx_str_t slit_0 = FX_MAKE_STR("unsupported \'fold\' accumulator pattern"); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&v_4, &slit_0, &v_3), _fx_catch_3); + FX_THROW(&v_3, true, _fx_catch_3); + + _fx_catch_3: ; + fx_free_exn(&v_3); + } + FX_CHECK_EXN(_fx_catch_4); + + _fx_catch_4: ; + if (p_2) { + _fx_free_N10Ast__pat_t(&p_2); + } + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_cleanup); + } + FX_COPY_PTR(result_0, fx_result); + +_fx_cleanup: ; + if (result_0) { + _fx_free_N10Ast__exp_t(&result_0); + } + if (p_1) { + _fx_free_N10Ast__pat_t(&p_1); + } + return fx_status; +} + +FX_EXTERN_C int _fx_M6ParserFM12fold_acc_idsLR9Ast__id_t1N10Ast__pat_t( + struct _fx_N10Ast__pat_t_data_t* p_0, + struct _fx_LR9Ast__id_t_data_t** fx_result, + void* fx_fv) +{ + _fx_LR9Ast__id_t result_0 = 0; + _fx_N10Ast__pat_t p_1 = 0; + int fx_status = 0; + FX_CALL(fx_check_stack(), _fx_cleanup); + FX_COPY_PTR(p_0, &p_1); + for (;;) { + _fx_N10Ast__pat_t p_2 = 0; + FX_COPY_PTR(p_1, &p_2); + int tag_0 = FX_REC_VARIANT_TAG(p_2); + if (tag_0 == 3) { + _fx_LR9Ast__id_t result_1 = 0; + FX_CALL(_fx_cons_LR9Ast__id_t(&p_2->u.PatIdent.t0, 0, true, &result_1), _fx_catch_0); + FX_FREE_LIST_SIMPLE(&result_0); + FX_COPY_PTR(result_1, &result_0); + FX_BREAK(_fx_catch_0); + + _fx_catch_0: ; + FX_FREE_LIST_SIMPLE(&result_1); + } + else if (tag_0 == 9) { + _fx_N10Ast__pat_t* p_3 = &p_2->u.PatTyped.t0; _fx_free_N10Ast__pat_t(&p_1); FX_COPY_PTR(*p_3, &p_1); + } + else if (tag_0 == 8) { + _fx_LR9Ast__id_t v_0 = 0; + _fx_LR9Ast__id_t result_2 = 0; + _fx_T3N10Ast__pat_tR9Ast__id_tR10Ast__loc_t* vcase_0 = &p_2->u.PatAs; + FX_CALL(_fx_M6ParserFM12fold_acc_idsLR9Ast__id_t1N10Ast__pat_t(vcase_0->t0, &v_0, 0), _fx_catch_1); + FX_CALL(_fx_cons_LR9Ast__id_t(&vcase_0->t1, v_0, true, &result_2), _fx_catch_1); + FX_FREE_LIST_SIMPLE(&result_0); + FX_COPY_PTR(result_2, &result_0); + FX_BREAK(_fx_catch_1); + + _fx_catch_1: ; + FX_FREE_LIST_SIMPLE(&result_2); + FX_FREE_LIST_SIMPLE(&v_0); + } + else if (tag_0 == 4) { + _fx_LR9Ast__id_t acc_0 = 0; + _fx_LN10Ast__pat_t pl_0 = 0; + FX_COPY_PTR(p_2->u.PatTuple.t0, &pl_0); + _fx_LN10Ast__pat_t lst_0 = pl_0; + for (; lst_0; lst_0 = lst_0->tl) { + _fx_LR9Ast__id_t v_1 = 0; + _fx_Ta2LR9Ast__id_t v_2 = {0}; + _fx_LR9Ast__id_t v_3 = 0; + _fx_N10Ast__pat_t pi_0 = lst_0->hd; + FX_CALL(_fx_M6ParserFM12fold_acc_idsLR9Ast__id_t1N10Ast__pat_t(pi_0, &v_1, 0), _fx_catch_4); + _fx_make_Ta2LR9Ast__id_t(acc_0, v_1, &v_2); + if (v_2.t0 == 0) { + FX_COPY_PTR(v_1, &v_3); + } + else if (v_2.t1 == 0) { + FX_COPY_PTR(acc_0, &v_3); + } + else { + _fx_LR9Ast__id_t v_4 = 0; + _fx_LR9Ast__id_t lstend_0 = 0; + _fx_LR9Ast__id_t lst_1 = acc_0; + for (; lst_1; lst_1 = lst_1->tl) { + _fx_R9Ast__id_t* x_0 = &lst_1->hd; + _fx_LR9Ast__id_t node_0 = 0; + FX_CALL(_fx_cons_LR9Ast__id_t(x_0, 0, false, &node_0), _fx_catch_2); + FX_LIST_APPEND(v_4, lstend_0, node_0); + + _fx_catch_2: ; + FX_CHECK_EXN(_fx_catch_3); + } + _fx_M6ParserFM5link2LR9Ast__id_t2LR9Ast__id_tLR9Ast__id_t(v_4, v_1, &v_3, 0); + + _fx_catch_3: ; + FX_FREE_LIST_SIMPLE(&v_4); + } + FX_CHECK_EXN(_fx_catch_4); + FX_FREE_LIST_SIMPLE(&acc_0); + FX_COPY_PTR(v_3, &acc_0); + + _fx_catch_4: ; + FX_FREE_LIST_SIMPLE(&v_3); + _fx_free_Ta2LR9Ast__id_t(&v_2); + FX_FREE_LIST_SIMPLE(&v_1); + FX_CHECK_EXN(_fx_catch_5); + } + FX_FREE_LIST_SIMPLE(&result_0); + FX_COPY_PTR(acc_0, &result_0); + FX_BREAK(_fx_catch_5); + + _fx_catch_5: ; + if (pl_0) { + _fx_free_LN10Ast__pat_t(&pl_0); + } + FX_FREE_LIST_SIMPLE(&acc_0); + } + else { + FX_FREE_LIST_SIMPLE(&result_0); result_0 = 0; FX_BREAK(_fx_catch_6); _fx_catch_6: ; + } + FX_CHECK_EXN(_fx_catch_7); + + _fx_catch_7: ; + if (p_2) { + _fx_free_N10Ast__pat_t(&p_2); + } + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_cleanup); + } + FX_COPY_PTR(result_0, fx_result); + +_fx_cleanup: ; + FX_FREE_LIST_SIMPLE(&result_0); + if (p_1) { + _fx_free_N10Ast__pat_t(&p_1); + } + return fx_status; +} + +FX_EXTERN_C int _fx_M6ParserFM22transform_new_fold_expN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tN10Ast__exp_tR10Ast__loc_t( + struct _fx_N10Ast__pat_t_data_t* fold_pat_0, + struct _fx_N10Ast__exp_t_data_t* fold_init_exp_0, + struct _fx_N10Ast__exp_t_data_t* for_exp_0, + struct _fx_R10Ast__loc_t* fold_loc_0, + struct _fx_N10Ast__exp_t_data_t** fx_result, + void* fx_fv) +{ + _fx_LR9Ast__id_t acc_ids_0 = 0; + _fx_rLR9Ast__id_t assigned_ref_0 = 0; + _fx_rLR9Ast__id_t suppressed_ref_0 = 0; + _fx_FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t scan_cb_0 = {0}; + _fx_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t v_0 = 0; + _fx_R16Ast__ast_callb_t callb_0 = {0}; + _fx_N10Ast__exp_t for_exp_1 = 0; + _fx_LN10Ast__exp_t var_decls_0 = 0; + _fx_N10Ast__exp_t result_exp_0 = 0; + _fx_LN10Ast__exp_t v_1 = 0; + _fx_LN10Ast__exp_t v_2 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_3 = {0}; + int fx_status = 0; + _fx_R10Ast__loc_t acc_loc_0; + FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(fold_pat_0, &acc_loc_0, 0), _fx_cleanup); + FX_CALL(_fx_M6ParserFM12fold_acc_idsLR9Ast__id_t1N10Ast__pat_t(fold_pat_0, &acc_ids_0, 0), _fx_cleanup); + FX_CALL(_fx_make_rLR9Ast__id_t(0, &assigned_ref_0), _fx_cleanup); + _fx_LR9Ast__id_t* assigned_0 = &assigned_ref_0->data; + FX_CALL(_fx_make_rLR9Ast__id_t(0, &suppressed_ref_0), _fx_cleanup); + _fx_LR9Ast__id_t* suppressed_0 = &suppressed_ref_0->data; + _fx_M6ParserFM7make_fpFPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t3LR9Ast__id_trLR9Ast__id_trLR9Ast__id_t(acc_ids_0, + assigned_ref_0, suppressed_ref_0, &scan_cb_0); + FX_CALL( + _fx_M6ParserFM4SomeNt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t( + &scan_cb_0, &v_0), _fx_cleanup); + _fx_make_R16Ast__ast_callb_t(_fx_g14Parser__None2_, v_0, _fx_g14Parser__None1_, &callb_0); + FX_CALL(_fx_M3AstFM16check_n_walk_expN10Ast__exp_t2N10Ast__exp_tRM11ast_callb_t(for_exp_0, &callb_0, &for_exp_1, 0), + _fx_cleanup); + _fx_LR9Ast__id_t lst_0 = acc_ids_0; + for (; lst_0; lst_0 = lst_0->tl) { + _fx_LR9Ast__id_t assigned_1 = 0; + _fx_LR9Ast__id_t suppressed_1 = 0; + fx_str_t v_4 = {0}; + fx_str_t v_5 = {0}; + fx_str_t v_6 = {0}; + fx_str_t v_7 = {0}; + fx_str_t v_8 = {0}; + _fx_R9Ast__id_t* id_0 = &lst_0->hd; + bool __fold_result___0 = false; + FX_COPY_PTR(*assigned_0, &assigned_1); + _fx_LR9Ast__id_t lst_1 = assigned_1; + for (; lst_1; lst_1 = lst_1->tl) { + _fx_R9Ast__id_t* b_0 = &lst_1->hd; + bool f_0 = true; + f_0 = (bool)(f_0 & (id_0->m == b_0->m)); + f_0 = (bool)(f_0 & (id_0->i == b_0->i)); + f_0 = (bool)(f_0 & (id_0->j == b_0->j)); + if (f_0) { + __fold_result___0 = true; FX_BREAK(_fx_catch_0); + } + + _fx_catch_0: ; + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_catch_2); + } + bool v_9; + if (!__fold_result___0) { + bool __fold_result___1 = false; + FX_COPY_PTR(*suppressed_0, &suppressed_1); + _fx_LR9Ast__id_t lst_2 = suppressed_1; + for (; lst_2; lst_2 = lst_2->tl) { + _fx_R9Ast__id_t* b_1 = &lst_2->hd; + bool f_1 = true; + f_1 = (bool)(f_1 & (id_0->m == b_1->m)); + f_1 = (bool)(f_1 & (id_0->i == b_1->i)); + f_1 = (bool)(f_1 & (id_0->j == b_1->j)); + if (f_1) { + __fold_result___1 = true; FX_BREAK(_fx_catch_1); + } + + _fx_catch_1: ; + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_catch_2); + } + v_9 = !__fold_result___1; + } + else { + v_9 = false; + } + if (v_9) { + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(id_0, &v_4, 0), _fx_catch_2); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(id_0, &v_5, 0), _fx_catch_2); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(id_0, &v_6, 0), _fx_catch_2); + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(id_0, &v_7, 0), _fx_catch_2); + fx_str_t slit_0 = FX_MAKE_STR("\'fold\' accumulator \'"); + fx_str_t slit_1 = + FX_MAKE_STR( + "\' is never assigned in the body, so the fold has no effect. The body must UPDATE the accumulator (e.g. \'"); + fx_str_t slit_2 = FX_MAKE_STR(" = \' or \'"); + fx_str_t slit_3 = FX_MAKE_STR(" += ...\'); write \'"); + fx_str_t slit_4 = FX_MAKE_STR(" = _\' to silence"); + { + const fx_str_t strs_0[] = { slit_0, v_4, slit_1, v_5, slit_2, v_6, slit_3, v_7, slit_4 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 9, &v_8), _fx_catch_2); + } + FX_CALL(_fx_M3AstFM15compile_warningv2RM5loc_tS(&acc_loc_0, &v_8, 0), _fx_catch_2); + } + + _fx_catch_2: ; + FX_FREE_STR(&v_8); + FX_FREE_STR(&v_7); + FX_FREE_STR(&v_6); + FX_FREE_STR(&v_5); + FX_FREE_STR(&v_4); + FX_FREE_LIST_SIMPLE(&suppressed_1); + FX_FREE_LIST_SIMPLE(&assigned_1); + FX_CHECK_EXN(_fx_cleanup); + } + if (FX_REC_VARIANT_TAG(fold_init_exp_0) == 13) { + if (FX_REC_VARIANT_TAG(fold_pat_0) == 4) { + _fx_LN10Ast__pat_t pl_0 = fold_pat_0->u.PatTuple.t0; + _fx_LN10Ast__exp_t el_0 = fold_init_exp_0->u.ExpMkTuple.t0; + int_ v_10 = _fx_M6ParserFM6lengthi1LN10Ast__pat_t(pl_0, 0); + int_ v_11 = _fx_M6ParserFM6lengthi1LN10Ast__exp_t(el_0, 0); + if (v_10 == v_11) { + _fx_LN10Ast__pat_t pl_1 = 0; + _fx_LN10Ast__exp_t el_1 = 0; + _fx_LN10Ast__exp_t lstend_0 = 0; + FX_COPY_PTR(pl_0, &pl_1); + _fx_LN10Ast__pat_t lst_3 = pl_1; + FX_COPY_PTR(el_0, &el_1); + _fx_LN10Ast__exp_t lst_4 = el_1; + for (; lst_3 && lst_4; lst_4 = lst_4->tl, lst_3 = lst_3->tl) { + _fx_R16Ast__val_flags_t v_12 = {0}; + _fx_N10Ast__exp_t res_0 = 0; + _fx_N10Ast__exp_t e_0 = lst_4->hd; + _fx_N10Ast__pat_t p_0 = lst_3->hd; + FX_CALL(_fx_M3AstFM17default_var_flagsRM11val_flags_t0(&v_12, 0), _fx_catch_3); + _fx_R10Ast__loc_t v_13; + FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(p_0, &v_13, 0), _fx_catch_3); + FX_CALL( + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(p_0, e_0, &v_12, &v_13, + &res_0), _fx_catch_3); + _fx_LN10Ast__exp_t node_0 = 0; + FX_CALL(_fx_cons_LN10Ast__exp_t(res_0, 0, false, &node_0), _fx_catch_3); + FX_LIST_APPEND(var_decls_0, lstend_0, node_0); + + _fx_catch_3: ; + if (res_0) { + _fx_free_N10Ast__exp_t(&res_0); + } + _fx_free_R16Ast__val_flags_t(&v_12); + FX_CHECK_EXN(_fx_catch_4); + } + int s_0 = !lst_3 + !lst_4; + FX_CHECK_EQ_SIZE(s_0 == 0 || s_0 == 2, _fx_catch_4); + + _fx_catch_4: ; + if (el_1) { + _fx_free_LN10Ast__exp_t(&el_1); + } + if (pl_1) { + _fx_free_LN10Ast__pat_t(&pl_1); + } + goto _fx_endmatch_0; + } + } + } + _fx_R16Ast__val_flags_t v_14 = {0}; + _fx_N10Ast__exp_t v_15 = 0; + FX_CALL(_fx_M3AstFM17default_var_flagsRM11val_flags_t0(&v_14, 0), _fx_catch_5); + FX_CALL( + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(fold_pat_0, fold_init_exp_0, &v_14, + &acc_loc_0, &v_15), _fx_catch_5); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_15, 0, true, &var_decls_0), _fx_catch_5); + +_fx_catch_5: ; + if (v_15) { + _fx_free_N10Ast__exp_t(&v_15); + } + _fx_free_R16Ast__val_flags_t(&v_14); + +_fx_endmatch_0: ; + FX_CHECK_EXN(_fx_cleanup); + FX_CALL(_fx_M6ParserFM15fold_pat_to_expN10Ast__exp_t1N10Ast__pat_t(fold_pat_0, &result_exp_0, 0), _fx_cleanup); + FX_CALL(_fx_cons_LN10Ast__exp_t(result_exp_0, 0, true, &v_1), _fx_cleanup); + FX_CALL(_fx_cons_LN10Ast__exp_t(for_exp_1, v_1, false, &v_1), _fx_cleanup); + if (var_decls_0 == 0) { + FX_COPY_PTR(v_1, &v_2); + } + else if (v_1 == 0) { + FX_COPY_PTR(var_decls_0, &v_2); + } + else { + _fx_LN10Ast__exp_t v_16 = 0; + _fx_LN10Ast__exp_t lstend_1 = 0; + _fx_LN10Ast__exp_t lst_5 = var_decls_0; + for (; lst_5; lst_5 = lst_5->tl) { + _fx_N10Ast__exp_t x_0 = lst_5->hd; + _fx_LN10Ast__exp_t node_1 = 0; + FX_CALL(_fx_cons_LN10Ast__exp_t(x_0, 0, false, &node_1), _fx_catch_6); + FX_LIST_APPEND(v_16, lstend_1, node_1); + + _fx_catch_6: ; + FX_CHECK_EXN(_fx_catch_7); + } + _fx_M6ParserFM5link2LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(v_16, v_1, &v_2, 0); + + _fx_catch_7: ; + if (v_16) { + _fx_free_LN10Ast__exp_t(&v_16); + } + } + FX_CHECK_EXN(_fx_cleanup); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(fold_loc_0, &v_3, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_2, &v_3, fx_result), _fx_cleanup); + +_fx_cleanup: ; + FX_FREE_LIST_SIMPLE(&acc_ids_0); + if (assigned_ref_0) { + _fx_free_rLR9Ast__id_t(&assigned_ref_0); + } + if (suppressed_ref_0) { + _fx_free_rLR9Ast__id_t(&suppressed_ref_0); + } + FX_FREE_FP(&scan_cb_0); + if (v_0) { + _fx_free_Nt6option1FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t(&v_0); + } + _fx_free_R16Ast__ast_callb_t(&callb_0); + if (for_exp_1) { + _fx_free_N10Ast__exp_t(&for_exp_1); + } + if (var_decls_0) { + _fx_free_LN10Ast__exp_t(&var_decls_0); + } + if (result_exp_0) { + _fx_free_N10Ast__exp_t(&result_exp_0); + } + if (v_1) { + _fx_free_LN10Ast__exp_t(&v_1); + } + if (v_2) { + _fx_free_LN10Ast__exp_t(&v_2); + } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_3); + return fx_status; +} + +static int _fx_M6ParserFM7scan_cbN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t( + struct _fx_N10Ast__exp_t_data_t* e_0, + struct _fx_R16Ast__ast_callb_t* callb_0, + struct _fx_N10Ast__exp_t_data_t** fx_result, + void* fx_fv) +{ + _fx_LR9Ast__id_t acc_ids_0 = 0; + _fx_LR9Ast__id_t acc_ids_1 = 0; + _fx_LR9Ast__id_t acc_ids_2 = 0; + int fx_status = 0; + _fx_M6ParserFM7scan_cbN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_cldata_t* cv_0 = + (_fx_M6ParserFM7scan_cbN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_cldata_t*)fx_fv; + _fx_LR9Ast__id_t acc_ids_3 = cv_0->t0; + _fx_LR9Ast__id_t* assigned_0 = &cv_0->t1->data; + _fx_LR9Ast__id_t* suppressed_0 = &cv_0->t2->data; + int tag_0 = FX_REC_VARIANT_TAG(e_0); + if (tag_0 == 20) { + _fx_T3N10Ast__exp_tN10Ast__exp_tR10Ast__loc_t* vcase_0 = &e_0->u.ExpAssign; + _fx_N10Ast__exp_t v_0 = vcase_0->t1; + if (FX_REC_VARIANT_TAG(v_0) == 7) { + _fx_N10Ast__exp_t v_1 = vcase_0->t0; + if (FX_REC_VARIANT_TAG(v_1) == 7) { + _fx_R9Ast__id_t* id_0 = &v_1->u.ExpIdent.t0; + bool __fold_result___0 = false; + FX_COPY_PTR(acc_ids_3, &acc_ids_0); + _fx_LR9Ast__id_t lst_0 = acc_ids_0; + for (; lst_0; lst_0 = lst_0->tl) { + _fx_R9Ast__id_t* b_0 = &lst_0->hd; + bool f_0 = true; + f_0 = (bool)(f_0 & (id_0->m == b_0->m)); + f_0 = (bool)(f_0 & (id_0->i == b_0->i)); + f_0 = (bool)(f_0 & (id_0->j == b_0->j)); + if (f_0) { + __fold_result___0 = true; FX_BREAK(_fx_catch_0); + } + + _fx_catch_0: ; + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_cleanup); + } + bool t_0; + if (__fold_result___0) { + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&v_0->u.ExpIdent.t0, &_fx_g12Ast__dummyid, &t_0, 0), _fx_cleanup); + } + else { + t_0 = false; + } + if (t_0) { + _fx_LR9Ast__id_t suppressed_1 = 0; + _fx_LR9Ast__id_t v_2 = 0; + bool __fold_result___1 = false; + FX_COPY_PTR(*suppressed_0, &suppressed_1); + _fx_LR9Ast__id_t lst_1 = suppressed_1; + for (; lst_1; lst_1 = lst_1->tl) { + _fx_R9Ast__id_t* b_1 = &lst_1->hd; + bool f_1 = true; + f_1 = (bool)(f_1 & (id_0->m == b_1->m)); + f_1 = (bool)(f_1 & (id_0->i == b_1->i)); + f_1 = (bool)(f_1 & (id_0->j == b_1->j)); + if (f_1) { + __fold_result___1 = true; FX_BREAK(_fx_catch_1); + } + + _fx_catch_1: ; + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_catch_2); + } + if (!__fold_result___1) { + FX_CALL(_fx_cons_LR9Ast__id_t(id_0, *suppressed_0, true, &v_2), _fx_catch_2); + FX_FREE_LIST_SIMPLE(suppressed_0); + FX_COPY_PTR(v_2, suppressed_0); + } + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&vcase_0->t2, fx_result), _fx_catch_2); + + _fx_catch_2: ; + FX_FREE_LIST_SIMPLE(&v_2); + FX_FREE_LIST_SIMPLE(&suppressed_1); + goto _fx_endmatch_0; + } + } + } + } + if (tag_0 == 20) { + _fx_T3N10Ast__exp_tN10Ast__exp_tR10Ast__loc_t* vcase_1 = &e_0->u.ExpAssign; + _fx_N10Ast__exp_t lhs_0 = vcase_1->t0; + if (FX_REC_VARIANT_TAG(lhs_0) == 7) { + _fx_R9Ast__id_t* id_1 = &lhs_0->u.ExpIdent.t0; + bool __fold_result___2 = false; + FX_COPY_PTR(acc_ids_3, &acc_ids_1); + _fx_LR9Ast__id_t lst_2 = acc_ids_1; + for (; lst_2; lst_2 = lst_2->tl) { + _fx_R9Ast__id_t* b_2 = &lst_2->hd; + bool f_2 = true; + f_2 = (bool)(f_2 & (id_1->m == b_2->m)); + f_2 = (bool)(f_2 & (id_1->i == b_2->i)); + f_2 = (bool)(f_2 & (id_1->j == b_2->j)); + if (f_2) { + __fold_result___2 = true; FX_BREAK(_fx_catch_3); + } + + _fx_catch_3: ; + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_cleanup); + } + if (__fold_result___2) { + _fx_LR9Ast__id_t assigned_1 = 0; + _fx_LR9Ast__id_t v_3 = 0; + _fx_N10Ast__exp_t v_4 = 0; + bool __fold_result___3 = false; + FX_COPY_PTR(*assigned_0, &assigned_1); + _fx_LR9Ast__id_t lst_3 = assigned_1; + for (; lst_3; lst_3 = lst_3->tl) { + _fx_R9Ast__id_t* b_3 = &lst_3->hd; + bool f_3 = true; + f_3 = (bool)(f_3 & (id_1->m == b_3->m)); + f_3 = (bool)(f_3 & (id_1->i == b_3->i)); + f_3 = (bool)(f_3 & (id_1->j == b_3->j)); + if (f_3) { + __fold_result___3 = true; FX_BREAK(_fx_catch_4); + } + + _fx_catch_4: ; + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_catch_5); + } + if (!__fold_result___3) { + FX_CALL(_fx_cons_LR9Ast__id_t(id_1, *assigned_0, true, &v_3), _fx_catch_5); + FX_FREE_LIST_SIMPLE(assigned_0); + FX_COPY_PTR(v_3, assigned_0); + } + FX_CALL(_fx_M3AstFM16check_n_walk_expN10Ast__exp_t2N10Ast__exp_tRM11ast_callb_t(vcase_1->t1, callb_0, &v_4, 0), + _fx_catch_5); + FX_CALL(_fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(lhs_0, v_4, &vcase_1->t2, fx_result), + _fx_catch_5); + + _fx_catch_5: ; + if (v_4) { + _fx_free_N10Ast__exp_t(&v_4); + } + FX_FREE_LIST_SIMPLE(&v_3); + FX_FREE_LIST_SIMPLE(&assigned_1); + goto _fx_endmatch_0; + } + } + } + if (tag_0 == 8) { + _fx_T4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tR10Ast__loc_t* vcase_2 = &e_0->u.ExpBinary; + _fx_N10Ast__exp_t lhs_1 = vcase_2->t1; + if (FX_REC_VARIANT_TAG(lhs_1) == 7) { + _fx_R9Ast__id_t* id_2 = &lhs_1->u.ExpIdent.t0; + _fx_N13Ast__binary_t bop_0 = vcase_2->t0; + if (FX_REC_VARIANT_TAG(bop_0) == 27) { + bool __fold_result___4 = false; + FX_COPY_PTR(acc_ids_3, &acc_ids_2); + _fx_LR9Ast__id_t lst_4 = acc_ids_2; + for (; lst_4; lst_4 = lst_4->tl) { + _fx_R9Ast__id_t* b_4 = &lst_4->hd; + bool f_4 = true; + f_4 = (bool)(f_4 & (id_2->m == b_4->m)); + f_4 = (bool)(f_4 & (id_2->i == b_4->i)); + f_4 = (bool)(f_4 & (id_2->j == b_4->j)); + if (f_4) { + __fold_result___4 = true; FX_BREAK(_fx_catch_6); + } + + _fx_catch_6: ; + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_cleanup); + } + if (__fold_result___4) { + _fx_LR9Ast__id_t assigned_2 = 0; + _fx_LR9Ast__id_t v_5 = 0; + _fx_N10Ast__exp_t v_6 = 0; + bool __fold_result___5 = false; + FX_COPY_PTR(*assigned_0, &assigned_2); + _fx_LR9Ast__id_t lst_5 = assigned_2; + for (; lst_5; lst_5 = lst_5->tl) { + _fx_R9Ast__id_t* b_5 = &lst_5->hd; + bool f_5 = true; + f_5 = (bool)(f_5 & (id_2->m == b_5->m)); + f_5 = (bool)(f_5 & (id_2->i == b_5->i)); + f_5 = (bool)(f_5 & (id_2->j == b_5->j)); + if (f_5) { + __fold_result___5 = true; FX_BREAK(_fx_catch_7); + } + + _fx_catch_7: ; + FX_CHECK_BREAK(); + FX_CHECK_EXN(_fx_catch_8); + } + if (!__fold_result___5) { + FX_CALL(_fx_cons_LR9Ast__id_t(id_2, *assigned_0, true, &v_5), _fx_catch_8); + FX_FREE_LIST_SIMPLE(assigned_0); + FX_COPY_PTR(v_5, assigned_0); + } + FX_CALL(_fx_M3AstFM16check_n_walk_expN10Ast__exp_t2N10Ast__exp_tRM11ast_callb_t(vcase_2->t2, callb_0, &v_6, 0), + _fx_catch_8); + FX_CALL( + _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(bop_0, + lhs_1, v_6, &vcase_2->t3, fx_result), _fx_catch_8); - _fx_catch_10: ; - _fx_free_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_69); - if (nd_map_1) { - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&nd_map_1); - } - if (idxp_1) { - _fx_free_N10Ast__pat_t(&idxp_1); - } - if (pe_l_1) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&pe_l_1); + _fx_catch_8: ; + if (v_6) { + _fx_free_N10Ast__exp_t(&v_6); + } + FX_FREE_LIST_SIMPLE(&v_5); + FX_FREE_LIST_SIMPLE(&assigned_2); + goto _fx_endmatch_0; + } } - FX_CHECK_EXN(_fx_catch_11); - } - FX_COPY_PTR(__fold_result___1, &nd_map_0); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(fold_loc_0, &v_68, 0), _fx_catch_11); - FX_CALL( - _fx_M3AstFM6ExpMapN10Ast__exp_t4LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tRM11for_flags_tT2N10Ast__typ_tRM5loc_t( - nd_map_0, new_body_0, &global_flags_1, &v_68, fx_result), _fx_catch_11); - - _fx_catch_11: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_68); - if (nd_map_0) { - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&nd_map_0); - } - if (__fold_result___1) { - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&__fold_result___1); } } + FX_CALL(_fx_M3AstFM8walk_expN10Ast__exp_t2N10Ast__exp_tRM11ast_callb_t(e_0, callb_0, fx_result, 0), _fx_catch_9); + +_fx_catch_9: ; + +_fx_endmatch_0: ; _fx_cleanup: ; - if (fr_exp_0) { - _fx_free_N10Ast__exp_t(&fr_exp_0); - } - _fx_free_T2LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_tN10Ast__exp_t(&v_0); - if (nested_fors_0) { - _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&nested_fors_0); - } - if (fold_body_0) { - _fx_free_N10Ast__exp_t(&fold_body_0); - } - _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tR16Ast__for_flags_tR10Ast__loc_t(&v_1); - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&void_ctx_0); - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&bool_ctx_0); - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&int_ctx_0); - _fx_free_T4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR16Ast__for_flags_t(&v_2); - if (fr_decl_0) { - _fx_free_N10Ast__exp_t(&fr_decl_0); - } - if (new_body_0) { - _fx_free_N10Ast__exp_t(&new_body_0); - } - if (fr_exp_1) { - _fx_free_N10Ast__exp_t(&fr_exp_1); - } + FX_FREE_LIST_SIMPLE(&acc_ids_0); + FX_FREE_LIST_SIMPLE(&acc_ids_1); + FX_FREE_LIST_SIMPLE(&acc_ids_2); return fx_status; } +FX_EXTERN_C int _fx_M6ParserFM7make_fpFPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t3LR9Ast__id_trLR9Ast__id_trLR9Ast__id_t( + struct _fx_LR9Ast__id_t_data_t* arg0, + struct _fx_rLR9Ast__id_t_data_t* arg1, + struct _fx_rLR9Ast__id_t_data_t* arg2, + struct _fx_FPN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t* fx_result) +{ + FX_MAKE_FP_IMPL_START(_fx_M6ParserFM7scan_cbN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t_cldata_t, + _fx_free_M6ParserFM7scan_cbN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t, + _fx_M6ParserFM7scan_cbN10Ast__exp_t2N10Ast__exp_tR16Ast__ast_callb_t); + FX_COPY_PTR(arg0, &fcv->t0); + FX_COPY_PTR(arg1, &fcv->t1); + FX_COPY_PTR(arg2, &fcv->t2); + return 0; +} + FX_EXTERN_C int _fx_M6ParserFM9parse_errE2LT2N14Lexer__token_tR10Ast__loc_tS( struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t* ts_0, fx_str_t* msg_0, @@ -10090,43 +10826,41 @@ static int FX_CALL(_fx_M6ParserFM15__eq_variants__B2N14Lexer__token_tN14Lexer__token_t(&ts_2->hd.t0, ct_0, &res_0, 0), _fx_catch_11); if (res_0) { - _fx_LN10Ast__exp_t __fold_result___0 = 0; + _fx_LN10Ast__exp_t res_1 = 0; _fx_LN10Ast__exp_t v_1 = 0; - _fx_LT2R9Ast__id_tN10Ast__exp_t __fold_result___1 = 0; + _fx_LT2R9Ast__id_tN10Ast__exp_t res_2 = 0; _fx_LT2R9Ast__id_tN10Ast__exp_t v_2 = 0; _fx_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t result_1 = {0}; _fx_LN10Ast__exp_t lst_0 = el_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN10Ast__exp_t r_0 = 0; + _fx_LN10Ast__exp_t v_3 = 0; _fx_N10Ast__exp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, res_1, true, &v_3), _fx_catch_1); + _fx_free_LN10Ast__exp_t(&res_1); + FX_COPY_PTR(v_3, &res_1); _fx_catch_1: ; - if (r_0) { - _fx_free_LN10Ast__exp_t(&r_0); + if (v_3) { + _fx_free_LN10Ast__exp_t(&v_3); } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___0, &v_1); + FX_COPY_PTR(res_1, &v_1); _fx_LT2R9Ast__id_tN10Ast__exp_t lst_1 = kw_el_2; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LT2R9Ast__id_tN10Ast__exp_t r_1 = 0; + _fx_LT2R9Ast__id_tN10Ast__exp_t v_4 = 0; _fx_T2R9Ast__id_tN10Ast__exp_t* a_1 = &lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__exp_t(a_1, r_1, false, &r_1), _fx_catch_2); - _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__exp_t(a_1, res_2, true, &v_4), _fx_catch_2); + _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&res_2); + FX_COPY_PTR(v_4, &res_2); _fx_catch_2: ; - if (r_1) { - _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&r_1); + if (v_4) { + _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&v_4); } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___1, &v_2); + FX_COPY_PTR(res_2, &v_2); _fx_make_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t(ts_2->tl, true, v_1, v_2, &result_1); _fx_free_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t(&result_0); @@ -10138,25 +10872,25 @@ static int if (v_2) { _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&v_2); } - if (__fold_result___1) { - _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&__fold_result___1); + if (res_2) { + _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&res_2); } if (v_1) { _fx_free_LN10Ast__exp_t(&v_1); } - if (__fold_result___0) { - _fx_free_LN10Ast__exp_t(&__fold_result___0); + if (res_1) { + _fx_free_LN10Ast__exp_t(&res_1); } goto _fx_endmatch_1; } } if (ts_2 != 0) { if (ts_2->hd.t0.tag == 53) { - fx_exn_t v_3 = {0}; - _fx_LN10Ast__exp_t __fold_result___2 = 0; - _fx_LN10Ast__exp_t v_4 = 0; - _fx_LT2R9Ast__id_tN10Ast__exp_t __fold_result___3 = 0; - _fx_LT2R9Ast__id_tN10Ast__exp_t v_5 = 0; + fx_exn_t v_5 = {0}; + _fx_LN10Ast__exp_t res_3 = 0; + _fx_LN10Ast__exp_t v_6 = 0; + _fx_LT2R9Ast__id_tN10Ast__exp_t res_4 = 0; + _fx_LT2R9Ast__id_tN10Ast__exp_t v_7 = 0; _fx_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t result_2 = {0}; if (!stop_at_semicolon_0) { _fx_R10Ast__loc_t loc_1; @@ -10168,42 +10902,40 @@ static int } FX_CHECK_EXN(_fx_catch_6); fx_str_t slit_1 = FX_MAKE_STR("unxpected \';\'"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_3), _fx_catch_6); - FX_THROW(&v_3, true, _fx_catch_6); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_5), _fx_catch_6); + FX_THROW(&v_5, true, _fx_catch_6); } _fx_LN10Ast__exp_t lst_2 = el_2; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN10Ast__exp_t r_2 = 0; + _fx_LN10Ast__exp_t v_8 = 0; _fx_N10Ast__exp_t a_2 = lst_2->hd; - FX_COPY_PTR(__fold_result___2, &r_2); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_2, r_2, false, &r_2), _fx_catch_4); - _fx_free_LN10Ast__exp_t(&__fold_result___2); - FX_COPY_PTR(r_2, &__fold_result___2); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_2, res_3, true, &v_8), _fx_catch_4); + _fx_free_LN10Ast__exp_t(&res_3); + FX_COPY_PTR(v_8, &res_3); _fx_catch_4: ; - if (r_2) { - _fx_free_LN10Ast__exp_t(&r_2); + if (v_8) { + _fx_free_LN10Ast__exp_t(&v_8); } FX_CHECK_EXN(_fx_catch_6); } - FX_COPY_PTR(__fold_result___2, &v_4); + FX_COPY_PTR(res_3, &v_6); _fx_LT2R9Ast__id_tN10Ast__exp_t lst_3 = kw_el_2; for (; lst_3; lst_3 = lst_3->tl) { - _fx_LT2R9Ast__id_tN10Ast__exp_t r_3 = 0; + _fx_LT2R9Ast__id_tN10Ast__exp_t v_9 = 0; _fx_T2R9Ast__id_tN10Ast__exp_t* a_3 = &lst_3->hd; - FX_COPY_PTR(__fold_result___3, &r_3); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__exp_t(a_3, r_3, false, &r_3), _fx_catch_5); - _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&__fold_result___3); - FX_COPY_PTR(r_3, &__fold_result___3); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__exp_t(a_3, res_4, true, &v_9), _fx_catch_5); + _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&res_4); + FX_COPY_PTR(v_9, &res_4); _fx_catch_5: ; - if (r_3) { - _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&r_3); + if (v_9) { + _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&v_9); } FX_CHECK_EXN(_fx_catch_6); } - FX_COPY_PTR(__fold_result___3, &v_5); - _fx_make_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t(ts_2->tl, false, v_4, v_5, + FX_COPY_PTR(res_4, &v_7); + _fx_make_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t(ts_2->tl, false, v_6, v_7, &result_2); _fx_free_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t(&result_0); _fx_copy_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t(&result_2, &result_0); @@ -10211,28 +10943,28 @@ static int _fx_catch_6: ; _fx_free_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t(&result_2); - if (v_5) { - _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&v_5); + if (v_7) { + _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&v_7); } - if (__fold_result___3) { - _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&__fold_result___3); + if (res_4) { + _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&res_4); } - if (v_4) { - _fx_free_LN10Ast__exp_t(&v_4); + if (v_6) { + _fx_free_LN10Ast__exp_t(&v_6); } - if (__fold_result___2) { - _fx_free_LN10Ast__exp_t(&__fold_result___2); + if (res_3) { + _fx_free_LN10Ast__exp_t(&res_3); } - fx_free_exn(&v_3); + fx_free_exn(&v_5); goto _fx_endmatch_1; } } if (ts_2 != 0) { fx_str_t semi_msg_0 = {0}; - _fx_Ta2S v_6 = {0}; - fx_str_t v_7 = {0}; - fx_str_t v_8 = {0}; - fx_exn_t v_9 = {0}; + _fx_Ta2S v_10 = {0}; + fx_str_t v_11 = {0}; + fx_str_t v_12 = {0}; + fx_exn_t v_13 = {0}; if (expect_comma_2) { if (stop_at_semicolon_0) { fx_str_t slit_2 = FX_MAKE_STR("\';\' or "); fx_copy_str(&slit_2, &semi_msg_0); @@ -10240,14 +10972,14 @@ static int else { fx_str_t slit_3 = FX_MAKE_STR(""); fx_copy_str(&slit_3, &semi_msg_0); } - FX_CALL(_fx_M5LexerFM7tok2strTa2S1N14Lexer__token_t(ct_0, &v_6, 0), _fx_catch_9); - fx_copy_str(&v_6.t1, &v_7); + FX_CALL(_fx_M5LexerFM7tok2strTa2S1N14Lexer__token_t(ct_0, &v_10, 0), _fx_catch_9); + fx_copy_str(&v_10.t1, &v_11); fx_str_t slit_4 = FX_MAKE_STR("\',\' or "); fx_str_t slit_5 = FX_MAKE_STR("\'"); fx_str_t slit_6 = FX_MAKE_STR("\' is expected"); { - const fx_str_t strs_0[] = { slit_4, semi_msg_0, slit_5, v_7, slit_6 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_8), _fx_catch_9); + const fx_str_t strs_0[] = { slit_4, semi_msg_0, slit_5, v_11, slit_6 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_12), _fx_catch_9); } _fx_R10Ast__loc_t loc_2; if (ts_2 != 0) { @@ -10257,29 +10989,29 @@ static int loc_2 = _fx_g18Parser__parser_ctx.default_loc; } FX_CHECK_EXN(_fx_catch_9); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &v_8, &v_9), _fx_catch_9); - FX_THROW(&v_9, true, _fx_catch_9); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &v_12, &v_13), _fx_catch_9); + FX_THROW(&v_13, true, _fx_catch_9); } if (ts_2 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_10 = ts_2->tl; - if (v_10 != 0) { - if (v_10->hd.t0.tag == 86) { - _fx_N14Lexer__token_t* v_11 = &ts_2->hd.t0; - if (v_11->tag == 2) { - fx_str_t v_12 = {0}; - fx_exn_t v_13 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_14 = {0}; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_14 = ts_2->tl; + if (v_14 != 0) { + if (v_14->hd.t0.tag == 86) { + _fx_N14Lexer__token_t* v_15 = &ts_2->hd.t0; + if (v_15->tag == 2) { + fx_str_t v_16 = {0}; + fx_exn_t v_17 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_18 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; _fx_N10Ast__exp_t e_0 = 0; - _fx_T2R9Ast__id_tN10Ast__exp_t v_15 = {0}; - _fx_LT2R9Ast__id_tN10Ast__exp_t v_16 = 0; - fx_str_t* i_0 = &v_11->u.IDENT.t1; + _fx_T2R9Ast__id_tN10Ast__exp_t v_19 = {0}; + _fx_LT2R9Ast__id_tN10Ast__exp_t v_20 = 0; + fx_str_t* i_0 = &v_15->u.IDENT.t1; if (kw_mode_0->tag == 1) { fx_str_t slit_7 = FX_MAKE_STR("unexpected keyword element \'"); fx_str_t slit_8 = FX_MAKE_STR("=...\'"); { const fx_str_t strs_1[] = { slit_7, *i_0, slit_8 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_12), _fx_catch_7); + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 3, &v_16), _fx_catch_7); } _fx_R10Ast__loc_t loc_3; if (ts_2 != 0) { @@ -10289,50 +11021,50 @@ static int loc_3 = _fx_g18Parser__parser_ctx.default_loc; } FX_CHECK_EXN(_fx_catch_7); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &v_12, &v_13), _fx_catch_7); - FX_THROW(&v_13, true, _fx_catch_7); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &v_16, &v_17), _fx_catch_7); + FX_THROW(&v_17, true, _fx_catch_7); } FX_CALL( _fx_M6ParserFM17parse_complex_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t( - v_10->tl, &v_14, 0), _fx_catch_7); - FX_COPY_PTR(v_14.t0, &ts_3); - FX_COPY_PTR(v_14.t1, &e_0); - _fx_R9Ast__id_t v_17; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(i_0, &v_17, 0), _fx_catch_7); - _fx_make_T2R9Ast__id_tN10Ast__exp_t(&v_17, e_0, &v_15); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__exp_t(&v_15, kw_el_2, true, &v_16), _fx_catch_7); + v_14->tl, &v_18, 0), _fx_catch_7); + FX_COPY_PTR(v_18.t0, &ts_3); + FX_COPY_PTR(v_18.t1, &e_0); + _fx_R9Ast__id_t v_21; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(i_0, &v_21, 0), _fx_catch_7); + _fx_make_T2R9Ast__id_tN10Ast__exp_t(&v_21, e_0, &v_19); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__exp_t(&v_19, kw_el_2, true, &v_20), _fx_catch_7); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_3, &ts_1); expect_comma_1 = true; _fx_free_LN10Ast__exp_t(&el_1); FX_COPY_PTR(el_2, &el_1); _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&kw_el_1); - FX_COPY_PTR(v_16, &kw_el_1); + FX_COPY_PTR(v_20, &kw_el_1); _fx_catch_7: ; - if (v_16) { - _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&v_16); + if (v_20) { + _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&v_20); } - _fx_free_T2R9Ast__id_tN10Ast__exp_t(&v_15); + _fx_free_T2R9Ast__id_tN10Ast__exp_t(&v_19); if (e_0) { _fx_free_N10Ast__exp_t(&e_0); } if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_14); - fx_free_exn(&v_13); - FX_FREE_STR(&v_12); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_18); + fx_free_exn(&v_17); + FX_FREE_STR(&v_16); goto _fx_endmatch_0; } } } } - fx_exn_t v_18 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_19 = {0}; + fx_exn_t v_22 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_23 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_4 = 0; _fx_N10Ast__exp_t e_1 = 0; - _fx_LN10Ast__exp_t v_20 = 0; + _fx_LN10Ast__exp_t v_24 = 0; if (kw_mode_0->tag == 3) { _fx_R10Ast__loc_t loc_4; if (ts_2 != 0) { @@ -10343,24 +11075,24 @@ static int } FX_CHECK_EXN(_fx_catch_8); fx_str_t slit_9 = FX_MAKE_STR("expect a keyword element here \' = ...\'"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_4, &slit_9, &v_18), _fx_catch_8); - FX_THROW(&v_18, true, _fx_catch_8); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_4, &slit_9, &v_22), _fx_catch_8); + FX_THROW(&v_22, true, _fx_catch_8); } - FX_CALL(parse_exp_f_0->fp(ts_2, &v_19, parse_exp_f_0->fcv), _fx_catch_8); - FX_COPY_PTR(v_19.t0, &ts_4); - FX_COPY_PTR(v_19.t1, &e_1); - FX_CALL(_fx_cons_LN10Ast__exp_t(e_1, el_2, true, &v_20), _fx_catch_8); + FX_CALL(parse_exp_f_0->fp(ts_2, &v_23, parse_exp_f_0->fcv), _fx_catch_8); + FX_COPY_PTR(v_23.t0, &ts_4); + FX_COPY_PTR(v_23.t1, &e_1); + FX_CALL(_fx_cons_LN10Ast__exp_t(e_1, el_2, true, &v_24), _fx_catch_8); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_4, &ts_1); expect_comma_1 = true; _fx_free_LN10Ast__exp_t(&el_1); - FX_COPY_PTR(v_20, &el_1); + FX_COPY_PTR(v_24, &el_1); _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&kw_el_1); FX_COPY_PTR(kw_el_2, &kw_el_1); _fx_catch_8: ; - if (v_20) { - _fx_free_LN10Ast__exp_t(&v_20); + if (v_24) { + _fx_free_LN10Ast__exp_t(&v_24); } if (e_1) { _fx_free_N10Ast__exp_t(&e_1); @@ -10368,21 +11100,21 @@ static int if (ts_4) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_4); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_19); - fx_free_exn(&v_18); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_23); + fx_free_exn(&v_22); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_9); _fx_catch_9: ; - fx_free_exn(&v_9); - FX_FREE_STR(&v_8); - FX_FREE_STR(&v_7); - _fx_free_Ta2S(&v_6); + fx_free_exn(&v_13); + FX_FREE_STR(&v_12); + FX_FREE_STR(&v_11); + _fx_free_Ta2S(&v_10); FX_FREE_STR(&semi_msg_0); goto _fx_endmatch_1; } - fx_exn_t v_21 = {0}; + fx_exn_t v_25 = {0}; _fx_R10Ast__loc_t loc_5; if (ts0_0 != 0) { loc_5 = ts0_0->hd.t1; @@ -10392,11 +11124,11 @@ static int } FX_CHECK_EXN(_fx_catch_10); fx_str_t slit_10 = FX_MAKE_STR("the expression list is not complete by the end of file, check parentheses"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_5, &slit_10, &v_21), _fx_catch_10); - FX_THROW(&v_21, true, _fx_catch_10); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_5, &slit_10, &v_25), _fx_catch_10); + FX_THROW(&v_25, true, _fx_catch_10); _fx_catch_10: ; - fx_free_exn(&v_21); + fx_free_exn(&v_25); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_11); @@ -10639,7 +11371,7 @@ FX_EXTERN_C int if (ts_2 != 0) { _fx_N14Lexer__token_t* v_1 = &ts_2->hd.t0; if (v_1->tag == 2) { - _fx_LR9Ast__id_t __fold_result___0 = 0; + _fx_LR9Ast__id_t res_0 = 0; _fx_LR9Ast__id_t v_2 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t result_4 = {0}; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tS v_3 = {0}; @@ -10649,18 +11381,17 @@ FX_EXTERN_C int if (expect_comma_2) { _fx_LR9Ast__id_t lst_0 = result_3; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LR9Ast__id_t r_0 = 0; + _fx_LR9Ast__id_t v_5 = 0; _fx_R9Ast__id_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_1); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LR9Ast__id_t(a_0, res_0, true, &v_5), _fx_catch_1); + FX_FREE_LIST_SIMPLE(&res_0); + FX_COPY_PTR(v_5, &res_0); _fx_catch_1: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_5); FX_CHECK_EXN(_fx_catch_2); } - FX_COPY_PTR(__fold_result___0, &v_2); + FX_COPY_PTR(res_0, &v_2); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(ts_2, v_2, &result_4); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&result_4, &result_1); @@ -10678,9 +11409,9 @@ FX_EXTERN_C int } FX_COPY_PTR(v_3.t0, &ts_3); fx_copy_str(&v_3.t1, &i_0); - _fx_R9Ast__id_t v_5; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&i_0, &v_5, 0), _fx_catch_2); - FX_CALL(_fx_cons_LR9Ast__id_t(&v_5, result_3, true, &v_4), _fx_catch_2); + _fx_R9Ast__id_t v_6; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&i_0, &v_6, 0), _fx_catch_2); + FX_CALL(_fx_cons_LR9Ast__id_t(&v_6, result_3, true, &v_4), _fx_catch_2); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_3, &ts_1); expect_comma_1 = true; @@ -10698,13 +11429,13 @@ FX_EXTERN_C int _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tS(&v_3); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&result_4); FX_FREE_LIST_SIMPLE(&v_2); - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_0); goto _fx_endmatch_0; } } - fx_exn_t v_6 = {0}; - _fx_LR9Ast__id_t __fold_result___1 = 0; - _fx_LR9Ast__id_t v_7 = 0; + fx_exn_t v_7 = {0}; + _fx_LR9Ast__id_t res_1 = 0; + _fx_LR9Ast__id_t v_8 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t result_5 = {0}; if (result_3 == 0) { _fx_R10Ast__loc_t loc_1; @@ -10716,33 +11447,32 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_4); fx_str_t slit_2 = FX_MAKE_STR("empty id list"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_2, &v_6), _fx_catch_4); - FX_THROW(&v_6, true, _fx_catch_4); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_2, &v_7), _fx_catch_4); + FX_THROW(&v_7, true, _fx_catch_4); } _fx_LR9Ast__id_t lst_1 = result_3; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LR9Ast__id_t r_1 = 0; + _fx_LR9Ast__id_t v_9 = 0; _fx_R9Ast__id_t* a_1 = &lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LR9Ast__id_t(a_1, r_1, false, &r_1), _fx_catch_3); - FX_FREE_LIST_SIMPLE(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LR9Ast__id_t(a_1, res_1, true, &v_9), _fx_catch_3); + FX_FREE_LIST_SIMPLE(&res_1); + FX_COPY_PTR(v_9, &res_1); _fx_catch_3: ; - FX_FREE_LIST_SIMPLE(&r_1); + FX_FREE_LIST_SIMPLE(&v_9); FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___1, &v_7); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(ts_2, v_7, &result_5); + FX_COPY_PTR(res_1, &v_8); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(ts_2, v_8, &result_5); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&result_5, &result_1); FX_BREAK(_fx_catch_4); _fx_catch_4: ; _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&result_5); - FX_FREE_LIST_SIMPLE(&v_7); - FX_FREE_LIST_SIMPLE(&__fold_result___1); - fx_free_exn(&v_6); + FX_FREE_LIST_SIMPLE(&v_8); + FX_FREE_LIST_SIMPLE(&res_1); + fx_free_exn(&v_7); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_5); @@ -10774,69 +11504,62 @@ FX_EXTERN_C int _fx_M6ParserFM13make_list_expN10Ast__exp_t2LN10Ast__exp_tR10Ast_ { _fx_N10Ast__typ_t v_0 = 0; _fx_T2N10Ast__typ_tR10Ast__loc_t v_1 = {0}; - _fx_N10Ast__exp_t __fold_result___0 = 0; - _fx_LN10Ast__exp_t __fold_result___1 = 0; + _fx_N10Ast__exp_t mklist_e_0 = 0; + _fx_LN10Ast__exp_t res_0 = 0; _fx_LN10Ast__exp_t v_2 = 0; int fx_status = 0; FX_CALL(_fx_M3AstFM11get_lit_typN10Ast__typ_t1N10Ast__lit_t(&_fx_g16Parser__LitEmpty, &v_0, 0), _fx_cleanup); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_0, l1_0, &v_1); - FX_CALL( - _fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&_fx_g16Parser__LitEmpty, &v_1, &__fold_result___0), + FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&_fx_g16Parser__LitEmpty, &v_1, &mklist_e_0), _fx_cleanup); _fx_LN10Ast__exp_t lst_0 = el_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN10Ast__exp_t r_0 = 0; + _fx_LN10Ast__exp_t v_3 = 0; _fx_N10Ast__exp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LN10Ast__exp_t(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_0, res_0, true, &v_3), _fx_catch_0); + _fx_free_LN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_3, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LN10Ast__exp_t(&r_0); + if (v_3) { + _fx_free_LN10Ast__exp_t(&v_3); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_2); + FX_COPY_PTR(res_0, &v_2); _fx_LN10Ast__exp_t lst_1 = v_2; for (; lst_1; lst_1 = lst_1->tl) { - _fx_N10Ast__exp_t mklist_e_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_3 = {0}; - _fx_N10Ast__exp_t v_4 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_4 = {0}; + _fx_N10Ast__exp_t v_5 = 0; _fx_N10Ast__exp_t e_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___0, &mklist_e_0); - _fx_R10Ast__loc_t v_5; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e_0, &v_5, 0), _fx_catch_1); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_5, &v_3, 0), _fx_catch_1); + _fx_R10Ast__loc_t v_6; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e_0, &v_6, 0), _fx_catch_1); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_6, &v_4, 0), _fx_catch_1); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - _fx_g14Parser__OpCons, e_0, mklist_e_0, &v_3, &v_4), _fx_catch_1); - _fx_free_N10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(v_4, &__fold_result___0); + _fx_g14Parser__OpCons, e_0, mklist_e_0, &v_4, &v_5), _fx_catch_1); + _fx_free_N10Ast__exp_t(&mklist_e_0); + FX_COPY_PTR(v_5, &mklist_e_0); _fx_catch_1: ; - if (v_4) { - _fx_free_N10Ast__exp_t(&v_4); - } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_3); - if (mklist_e_0) { - _fx_free_N10Ast__exp_t(&mklist_e_0); + if (v_5) { + _fx_free_N10Ast__exp_t(&v_5); } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_4); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, fx_result); + FX_COPY_PTR(mklist_e_0, fx_result); _fx_cleanup: ; if (v_0) { _fx_free_N10Ast__typ_t(&v_0); } _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_1); - if (__fold_result___0) { - _fx_free_N10Ast__exp_t(&__fold_result___0); + if (mklist_e_0) { + _fx_free_N10Ast__exp_t(&mklist_e_0); } - if (__fold_result___1) { - _fx_free_LN10Ast__exp_t(&__fold_result___1); + if (res_0) { + _fx_free_LN10Ast__exp_t(&res_0); } if (v_2) { _fx_free_LN10Ast__exp_t(&v_2); @@ -13241,277 +13964,252 @@ static int } } } - _fx_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t __fold_result___0 = 0; + _fx_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t res_0 = 0; _fx_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t chain_3 = 0; - _fx_N10Ast__exp_t v_11 = 0; - _fx_T2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t v_12 = {0}; - _fx_N10Ast__exp_t v_13 = 0; - _fx_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t __fold_result___1 = {0}; - _fx_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t v_14 = 0; - _fx_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t v_15 = {0}; _fx_N10Ast__exp_t result_3 = 0; + _fx_T2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t v_11 = {0}; + _fx_N10Ast__exp_t prev_e_0 = 0; _fx_LN10Ast__exp_t code_0 = 0; - _fx_LN10Ast__exp_t __fold_result___2 = 0; - _fx_LN10Ast__exp_t v_16 = 0; - _fx_LN10Ast__exp_t v_17 = 0; - _fx_LN10Ast__exp_t v_18 = 0; + _fx_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t v_12 = 0; + _fx_LN10Ast__exp_t res_1 = 0; + _fx_LN10Ast__exp_t v_13 = 0; + _fx_LN10Ast__exp_t v_14 = 0; + _fx_LN10Ast__exp_t v_15 = 0; _fx_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t lst_0 = chain_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t r_0 = 0; + _fx_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t v_16 = 0; _fx_T2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_2); - _fx_free_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(a_0, res_0, true, &v_16), _fx_catch_2); + _fx_free_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_16, &res_0); _fx_catch_2: ; - if (r_0) { - _fx_free_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&r_0); + if (v_16) { + _fx_free_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&v_16); } FX_CHECK_EXN(_fx_catch_11); } - FX_COPY_PTR(__fold_result___0, &chain_3); + FX_COPY_PTR(res_0, &chain_3); int_ nexp_0 = _fx_M6ParserFM6lengthi1LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(chain_3, 0); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&_fx_g10Ast__noloc, &v_11), _fx_catch_11); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&_fx_g10Ast__noloc, &result_3), _fx_catch_11); if (chain_3 != 0) { - _fx_copy_T2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&chain_3->hd, &v_12); + _fx_copy_T2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&chain_3->hd, &v_11); } else { FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_11); } FX_CHECK_EXN(_fx_catch_11); - FX_COPY_PTR(v_12.t1, &v_13); - _fx_make_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t(v_11, v_13, 0, &__fold_result___1); + FX_COPY_PTR(v_11.t1, &prev_e_0); if (chain_3 != 0) { - FX_COPY_PTR(chain_3->tl, &v_14); + FX_COPY_PTR(chain_3->tl, &v_12); } else { FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_11); } FX_CHECK_EXN(_fx_catch_11); int_ i_0 = 0; - _fx_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t lst_1 = v_14; + _fx_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t lst_1 = v_12; for (; lst_1; lst_1 = lst_1->tl, i_0 += 1) { _fx_N10Ast__exp_t e_1 = 0; - _fx_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t v_19 = {0}; - _fx_N10Ast__exp_t result_4 = 0; - _fx_N10Ast__exp_t prev_e_0 = 0; - _fx_LN10Ast__exp_t code_1 = 0; - _fx_T2N10Ast__exp_tLN10Ast__exp_t v_20 = {0}; + _fx_T2N10Ast__exp_tLN10Ast__exp_t v_17 = {0}; _fx_N10Ast__exp_t next_e_0 = 0; - _fx_LN10Ast__exp_t code_2 = 0; - _fx_N13Ast__binary_t v_21 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_22 = {0}; + _fx_LN10Ast__exp_t code_new_0 = 0; + _fx_N13Ast__binary_t v_18 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_19 = {0}; _fx_N10Ast__exp_t cmp_exp_0 = 0; - _fx_N10Ast__exp_t result_5 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_23 = {0}; - _fx_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t v_24 = {0}; + _fx_N10Ast__exp_t v_20 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_21 = {0}; _fx_T2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t* __pat___0 = &lst_1->hd; _fx_T2N12Ast__cmpop_tR10Ast__loc_t* i_1 = &__pat___0->t0; _fx_N12Ast__cmpop_t cmpop_0 = i_1->t0; _fx_R10Ast__loc_t loc_0 = i_1->t1; FX_COPY_PTR(__pat___0->t1, &e_1); - _fx_copy_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t(&__fold_result___1, &v_19); - FX_COPY_PTR(v_19.t0, &result_4); - FX_COPY_PTR(v_19.t1, &prev_e_0); - FX_COPY_PTR(v_19.t2, &code_1); if (i_0 == nexp_0 - 2) { - _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(e_1, code_1, &v_20); + _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(e_1, code_0, &v_17); } else { int tag_0 = FX_REC_VARIANT_TAG(e_1); - bool res_0; + bool res_2; if (tag_0 == 6) { - res_0 = true; + res_2 = true; } else if (tag_0 == 7) { - res_0 = true; + res_2 = true; } else { - res_0 = false; + res_2 = false; } FX_CHECK_EXN(_fx_catch_4); - if (res_0) { - _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(e_1, code_1, &v_20); goto _fx_endmatch_0; + if (res_2) { + _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(e_1, code_0, &v_17); goto _fx_endmatch_0; } - _fx_N10Ast__pat_t v_25 = 0; - _fx_R16Ast__val_flags_t v_26 = {0}; + _fx_N10Ast__pat_t v_22 = 0; + _fx_R16Ast__val_flags_t v_23 = {0}; _fx_N10Ast__exp_t tmp_decl_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_27 = {0}; - _fx_N10Ast__exp_t v_28 = 0; - _fx_LN10Ast__exp_t v_29 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_24 = {0}; + _fx_N10Ast__exp_t v_25 = 0; + _fx_LN10Ast__exp_t v_26 = 0; _fx_R10Ast__loc_t e_loc_0; FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e_1, &e_loc_0, 0), _fx_catch_3); + int_ v_27 = _fx_g18Parser__parser_ctx.m_idx; _fx_R9Ast__id_t tmp_id_0; fx_str_t slit_0 = FX_MAKE_STR("t"); - FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(_fx_g18Parser__parser_ctx.m_idx, &slit_0, &tmp_id_0, 0), _fx_catch_3); - FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&tmp_id_0, &e_loc_0, &v_25), _fx_catch_3); - FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_26, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(v_27, &slit_0, &tmp_id_0, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&tmp_id_0, &e_loc_0, &v_22), _fx_catch_3); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_23, 0), _fx_catch_3); FX_CALL( - _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_25, e_1, &v_26, &e_loc_0, + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_22, e_1, &v_23, &e_loc_0, &tmp_decl_0), _fx_catch_3); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&e_loc_0, &v_27, 0), _fx_catch_3); - FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&tmp_id_0, &v_27, &v_28), _fx_catch_3); - FX_CALL(_fx_cons_LN10Ast__exp_t(tmp_decl_0, code_1, true, &v_29), _fx_catch_3); - _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(v_28, v_29, &v_20); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&e_loc_0, &v_24, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&tmp_id_0, &v_24, &v_25), _fx_catch_3); + FX_CALL(_fx_cons_LN10Ast__exp_t(tmp_decl_0, code_0, true, &v_26), _fx_catch_3); + _fx_make_T2N10Ast__exp_tLN10Ast__exp_t(v_25, v_26, &v_17); _fx_catch_3: ; - if (v_29) { - _fx_free_LN10Ast__exp_t(&v_29); + if (v_26) { + _fx_free_LN10Ast__exp_t(&v_26); } - if (v_28) { - _fx_free_N10Ast__exp_t(&v_28); + if (v_25) { + _fx_free_N10Ast__exp_t(&v_25); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_27); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_24); if (tmp_decl_0) { _fx_free_N10Ast__exp_t(&tmp_decl_0); } - _fx_free_R16Ast__val_flags_t(&v_26); - if (v_25) { - _fx_free_N10Ast__pat_t(&v_25); + _fx_free_R16Ast__val_flags_t(&v_23); + if (v_22) { + _fx_free_N10Ast__pat_t(&v_22); } _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(v_20.t0, &next_e_0); - FX_COPY_PTR(v_20.t1, &code_2); - FX_CALL(_fx_M3AstFM5OpCmpN13Ast__binary_t1N12Ast__cmpop_t(&cmpop_0, &v_21), _fx_catch_4); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypBool, &loc_0, &v_22); + FX_COPY_PTR(v_17.t0, &next_e_0); + FX_COPY_PTR(v_17.t1, &code_new_0); + FX_CALL(_fx_M3AstFM5OpCmpN13Ast__binary_t1N12Ast__cmpop_t(&cmpop_0, &v_18), _fx_catch_4); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypBool, &loc_0, &v_19); FX_CALL( - _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_21, prev_e_0, - next_e_0, &v_22, &cmp_exp_0), _fx_catch_4); + _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_18, prev_e_0, + next_e_0, &v_19, &cmp_exp_0), _fx_catch_4); if (i_0 == 0) { - FX_COPY_PTR(cmp_exp_0, &result_5); + FX_COPY_PTR(cmp_exp_0, &v_20); } else { - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypBool, &loc_0, &v_23); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypBool, &loc_0, &v_21); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - _fx_g20Parser__OpBitwiseAnd, result_4, cmp_exp_0, &v_23, &result_5), _fx_catch_4); + _fx_g20Parser__OpBitwiseAnd, result_3, cmp_exp_0, &v_21, &v_20), _fx_catch_4); } - _fx_make_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t(result_5, next_e_0, code_2, &v_24); - _fx_free_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t(&__fold_result___1); - _fx_copy_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t(&v_24, &__fold_result___1); + _fx_free_N10Ast__exp_t(&result_3); + FX_COPY_PTR(v_20, &result_3); + _fx_free_N10Ast__exp_t(&prev_e_0); + FX_COPY_PTR(next_e_0, &prev_e_0); + _fx_free_LN10Ast__exp_t(&code_0); + FX_COPY_PTR(code_new_0, &code_0); _fx_catch_4: ; - _fx_free_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t(&v_24); - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_23); - if (result_5) { - _fx_free_N10Ast__exp_t(&result_5); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_21); + if (v_20) { + _fx_free_N10Ast__exp_t(&v_20); } if (cmp_exp_0) { _fx_free_N10Ast__exp_t(&cmp_exp_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_22); - if (v_21) { - _fx_free_N13Ast__binary_t(&v_21); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_19); + if (v_18) { + _fx_free_N13Ast__binary_t(&v_18); } - if (code_2) { - _fx_free_LN10Ast__exp_t(&code_2); + if (code_new_0) { + _fx_free_LN10Ast__exp_t(&code_new_0); } if (next_e_0) { _fx_free_N10Ast__exp_t(&next_e_0); } - _fx_free_T2N10Ast__exp_tLN10Ast__exp_t(&v_20); - if (code_1) { - _fx_free_LN10Ast__exp_t(&code_1); - } - if (prev_e_0) { - _fx_free_N10Ast__exp_t(&prev_e_0); - } - if (result_4) { - _fx_free_N10Ast__exp_t(&result_4); - } - _fx_free_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t(&v_19); + _fx_free_T2N10Ast__exp_tLN10Ast__exp_t(&v_17); if (e_1) { _fx_free_N10Ast__exp_t(&e_1); } FX_CHECK_EXN(_fx_catch_11); } - _fx_copy_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t(&__fold_result___1, &v_15); - FX_COPY_PTR(v_15.t0, &result_3); - FX_COPY_PTR(v_15.t2, &code_0); _fx_LN10Ast__exp_t lst_2 = code_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN10Ast__exp_t r_1 = 0; + _fx_LN10Ast__exp_t v_28 = 0; _fx_N10Ast__exp_t a_1 = lst_2->hd; - FX_COPY_PTR(__fold_result___2, &r_1); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_1, r_1, false, &r_1), _fx_catch_5); - _fx_free_LN10Ast__exp_t(&__fold_result___2); - FX_COPY_PTR(r_1, &__fold_result___2); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_1, res_1, true, &v_28), _fx_catch_5); + _fx_free_LN10Ast__exp_t(&res_1); + FX_COPY_PTR(v_28, &res_1); _fx_catch_5: ; - if (r_1) { - _fx_free_LN10Ast__exp_t(&r_1); + if (v_28) { + _fx_free_LN10Ast__exp_t(&v_28); } FX_CHECK_EXN(_fx_catch_11); } - FX_COPY_PTR(__fold_result___2, &v_16); - FX_CALL(_fx_cons_LN10Ast__exp_t(result_3, 0, true, &v_17), _fx_catch_11); - if (v_16 == 0) { - FX_COPY_PTR(v_17, &v_18); + FX_COPY_PTR(res_1, &v_13); + FX_CALL(_fx_cons_LN10Ast__exp_t(result_3, 0, true, &v_14), _fx_catch_11); + if (v_13 == 0) { + FX_COPY_PTR(v_14, &v_15); } - else if (v_17 == 0) { - FX_COPY_PTR(v_16, &v_18); + else if (v_14 == 0) { + FX_COPY_PTR(v_13, &v_15); } else { - _fx_LN10Ast__exp_t v_30 = 0; + _fx_LN10Ast__exp_t v_29 = 0; _fx_LN10Ast__exp_t lstend_0 = 0; - _fx_LN10Ast__exp_t lst_3 = v_16; + _fx_LN10Ast__exp_t lst_3 = v_13; for (; lst_3; lst_3 = lst_3->tl) { _fx_N10Ast__exp_t x_0 = lst_3->hd; _fx_LN10Ast__exp_t node_0 = 0; FX_CALL(_fx_cons_LN10Ast__exp_t(x_0, 0, false, &node_0), _fx_catch_6); - FX_LIST_APPEND(v_30, lstend_0, node_0); + FX_LIST_APPEND(v_29, lstend_0, node_0); _fx_catch_6: ; FX_CHECK_EXN(_fx_catch_7); } - _fx_M6ParserFM5link2LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(v_30, v_17, &v_18, 0); + _fx_M6ParserFM5link2LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(v_29, v_14, &v_15, 0); _fx_catch_7: ; - if (v_30) { - _fx_free_LN10Ast__exp_t(&v_30); + if (v_29) { + _fx_free_LN10Ast__exp_t(&v_29); } } FX_CHECK_EXN(_fx_catch_11); - _fx_R10Ast__loc_t v_31; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(result_3, &v_31, 0), _fx_catch_11); - if (v_18 == 0) { - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&v_31, &result_1), _fx_catch_8); _fx_catch_8: ; goto _fx_endmatch_1; + _fx_R10Ast__loc_t v_30; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(result_3, &v_30, 0), _fx_catch_11); + if (v_15 == 0) { + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&v_30, &result_1), _fx_catch_8); _fx_catch_8: ; goto _fx_endmatch_1; } - if (v_18 != 0) { - if (v_18->tl == 0) { - FX_COPY_PTR(v_18->hd, &result_1); goto _fx_endmatch_1; + if (v_15 != 0) { + if (v_15->tl == 0) { + FX_COPY_PTR(v_15->hd, &result_1); goto _fx_endmatch_1; } } _fx_LR10Ast__loc_t llist_0 = 0; - _fx_N10Ast__typ_t v_32 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_33 = {0}; + _fx_N10Ast__typ_t v_31 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_32 = {0}; _fx_LR10Ast__loc_t lstend_1 = 0; - _fx_LN10Ast__exp_t lst_4 = v_18; + _fx_LN10Ast__exp_t lst_4 = v_15; for (; lst_4; lst_4 = lst_4->tl) { _fx_N10Ast__exp_t e_2 = lst_4->hd; - _fx_R10Ast__loc_t res_1; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e_2, &res_1, 0), _fx_catch_9); + _fx_R10Ast__loc_t res_3; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e_2, &res_3, 0), _fx_catch_9); _fx_LR10Ast__loc_t node_1 = 0; - FX_CALL(_fx_cons_LR10Ast__loc_t(&res_1, 0, false, &node_1), _fx_catch_9); + FX_CALL(_fx_cons_LR10Ast__loc_t(&res_3, 0, false, &node_1), _fx_catch_9); FX_LIST_APPEND(llist_0, lstend_1, node_1); _fx_catch_9: ; FX_CHECK_EXN(_fx_catch_10); } _fx_R10Ast__loc_t loc_1; - FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(llist_0, &v_31, &loc_1, 0), _fx_catch_10); - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_32, 0), _fx_catch_10); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_32, &loc_1, &v_33); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_18, &v_33, &result_1), _fx_catch_10); + FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(llist_0, &v_30, &loc_1, 0), _fx_catch_10); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_31, 0), _fx_catch_10); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_31, &loc_1, &v_32); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_15, &v_32, &result_1), _fx_catch_10); _fx_catch_10: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_33); - if (v_32) { - _fx_free_N10Ast__typ_t(&v_32); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_32); + if (v_31) { + _fx_free_N10Ast__typ_t(&v_31); } FX_FREE_LIST_SIMPLE(&llist_0); @@ -13519,41 +14217,36 @@ static int FX_CHECK_EXN(_fx_catch_11); _fx_catch_11: ; - if (v_18) { - _fx_free_LN10Ast__exp_t(&v_18); + if (v_15) { + _fx_free_LN10Ast__exp_t(&v_15); } - if (v_17) { - _fx_free_LN10Ast__exp_t(&v_17); + if (v_14) { + _fx_free_LN10Ast__exp_t(&v_14); } - if (v_16) { - _fx_free_LN10Ast__exp_t(&v_16); + if (v_13) { + _fx_free_LN10Ast__exp_t(&v_13); + } + if (res_1) { + _fx_free_LN10Ast__exp_t(&res_1); } - if (__fold_result___2) { - _fx_free_LN10Ast__exp_t(&__fold_result___2); + if (v_12) { + _fx_free_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&v_12); } if (code_0) { _fx_free_LN10Ast__exp_t(&code_0); } + if (prev_e_0) { + _fx_free_N10Ast__exp_t(&prev_e_0); + } + _fx_free_T2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&v_11); if (result_3) { _fx_free_N10Ast__exp_t(&result_3); } - _fx_free_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t(&v_15); - if (v_14) { - _fx_free_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&v_14); - } - _fx_free_T3N10Ast__exp_tN10Ast__exp_tLN10Ast__exp_t(&__fold_result___1); - if (v_13) { - _fx_free_N10Ast__exp_t(&v_13); - } - _fx_free_T2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&v_12); - if (v_11) { - _fx_free_N10Ast__exp_t(&v_11); - } if (chain_3) { _fx_free_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&chain_3); } - if (__fold_result___0) { - _fx_free_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2T2N12Ast__cmpop_tR10Ast__loc_tN10Ast__exp_t(&res_0); } _fx_endmatch_2: ; @@ -14294,7 +14987,7 @@ FX_EXTERN_C int if ((v_3->hd != 0) + 1 == 1) { FX_CALL( _fx_M3AstFM8ExpRangeN10Ast__exp_t4Nt6option1N10Ast__exp_tNt6option1N10Ast__exp_tNt6option1N10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - _fx_g14Parser__None2_, _fx_g14Parser__None2_, _fx_g14Parser__None2_, &ctx_0, &e_0), _fx_catch_1); + _fx_g14Parser__None4_, _fx_g14Parser__None4_, _fx_g14Parser__None4_, &ctx_0, &e_0), _fx_catch_1); _fx_catch_1: ; goto _fx_endmatch_1; @@ -14375,7 +15068,7 @@ _fx_endmatch_0: ; if ((v_8->hd != 0) + 1 == 1) { FX_CALL( _fx_M3AstFM8ExpRangeN10Ast__exp_t4Nt6option1N10Ast__exp_tNt6option1N10Ast__exp_tNt6option1N10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - elist_0->hd, _fx_g14Parser__None2_, _fx_g14Parser__None2_, &ctx_0, &e_0), _fx_catch_4); + elist_0->hd, _fx_g14Parser__None4_, _fx_g14Parser__None4_, &ctx_0, &e_0), _fx_catch_4); _fx_catch_4: ; goto _fx_endmatch_1; @@ -14389,7 +15082,7 @@ _fx_endmatch_0: ; if (v_9->tl == 0) { FX_CALL( _fx_M3AstFM8ExpRangeN10Ast__exp_t4Nt6option1N10Ast__exp_tNt6option1N10Ast__exp_tNt6option1N10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - elist_0->hd, v_9->hd, _fx_g14Parser__None2_, &ctx_0, &e_0), _fx_catch_5); + elist_0->hd, v_9->hd, _fx_g14Parser__None4_, &ctx_0, &e_0), _fx_catch_5); _fx_catch_5: ; goto _fx_endmatch_1; @@ -14486,11 +15179,11 @@ static int _fx_LNt6option1N10Ast__exp_t result_4 = 0; _fx_LNt6option1N10Ast__exp_t v_0 = 0; if (expect_sep_2) { - FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(_fx_g14Parser__None2_, result_3, true, &result_4), _fx_catch_0); + FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(_fx_g14Parser__None4_, result_3, true, &result_4), _fx_catch_0); } else { - FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(_fx_g14Parser__None2_, result_3, true, &v_0), _fx_catch_0); - FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(_fx_g14Parser__None2_, v_0, true, &result_4), _fx_catch_0); + FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(_fx_g14Parser__None4_, result_3, true, &v_0), _fx_catch_0); + FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(_fx_g14Parser__None4_, v_0, true, &result_4), _fx_catch_0); } _fx_LT2N14Lexer__token_tR10Ast__loc_t* rest_0 = &ts_2->tl; _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); @@ -14516,7 +15209,7 @@ static int FX_COPY_PTR(result_3, &result_5); } else { - FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(_fx_g14Parser__None2_, result_3, true, &result_5), _fx_catch_1); + FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(_fx_g14Parser__None4_, result_3, true, &result_5), _fx_catch_1); } _fx_LT2N14Lexer__token_tR10Ast__loc_t* rest_1 = &ts_2->tl; _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); @@ -14565,7 +15258,7 @@ static int if (res_0) { fx_exn_t v_1 = {0}; _fx_LNt6option1N10Ast__exp_t result_6 = 0; - _fx_LNt6option1N10Ast__exp_t __fold_result___0 = 0; + _fx_LNt6option1N10Ast__exp_t res_1 = 0; _fx_LNt6option1N10Ast__exp_t v_2 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLNt6option1N10Ast__exp_t result_7 = {0}; bool v_3; @@ -14592,24 +15285,23 @@ static int FX_COPY_PTR(result_3, &result_6); } else { - FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(_fx_g14Parser__None2_, result_3, true, &result_6), _fx_catch_3); + FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(_fx_g14Parser__None4_, result_3, true, &result_6), _fx_catch_3); } _fx_LNt6option1N10Ast__exp_t lst_0 = result_6; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LNt6option1N10Ast__exp_t r_0 = 0; + _fx_LNt6option1N10Ast__exp_t v_5 = 0; _fx_Nt6option1N10Ast__exp_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_2); - _fx_free_LNt6option1N10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(a_0, res_1, true, &v_5), _fx_catch_2); + _fx_free_LNt6option1N10Ast__exp_t(&res_1); + FX_COPY_PTR(v_5, &res_1); _fx_catch_2: ; - if (r_0) { - _fx_free_LNt6option1N10Ast__exp_t(&r_0); + if (v_5) { + _fx_free_LNt6option1N10Ast__exp_t(&v_5); } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___0, &v_2); + FX_COPY_PTR(res_1, &v_2); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLNt6option1N10Ast__exp_t(ts_2, v_2, &result_7); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLNt6option1N10Ast__exp_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLNt6option1N10Ast__exp_t(&result_7, &result_1); @@ -14620,8 +15312,8 @@ static int if (v_2) { _fx_free_LNt6option1N10Ast__exp_t(&v_2); } - if (__fold_result___0) { - _fx_free_LNt6option1N10Ast__exp_t(&__fold_result___0); + if (res_1) { + _fx_free_LNt6option1N10Ast__exp_t(&res_1); } if (result_6) { _fx_free_LNt6option1N10Ast__exp_t(&result_6); @@ -14629,12 +15321,12 @@ static int fx_free_exn(&v_1); goto _fx_endmatch_1; } - fx_exn_t v_5 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_6 = {0}; + fx_exn_t v_6 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_7 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; _fx_N10Ast__exp_t e_0 = 0; - _fx_Nt6option1N10Ast__exp_t v_7 = 0; - _fx_LNt6option1N10Ast__exp_t v_8 = 0; + _fx_Nt6option1N10Ast__exp_t v_8 = 0; + _fx_LNt6option1N10Ast__exp_t v_9 = 0; if (expect_sep_2) { _fx_R10Ast__loc_t loc_1; if (ts_2 != 0) { @@ -14645,28 +15337,28 @@ static int } FX_CHECK_EXN(_fx_catch_4); fx_str_t slit_1 = FX_MAKE_STR("\':\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_5), _fx_catch_4); - FX_THROW(&v_5, true, _fx_catch_4); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_6), _fx_catch_4); + FX_THROW(&v_6, true, _fx_catch_4); } FX_CALL( _fx_M6ParserFM9parse_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t2LT2N14Lexer__token_tR10Ast__loc_tB(ts_2, - allow_mkrecord_0, &v_6, 0), _fx_catch_4); - FX_COPY_PTR(v_6.t0, &ts_3); - FX_COPY_PTR(v_6.t1, &e_0); - FX_CALL(_fx_M6ParserFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(e_0, &v_7), _fx_catch_4); - FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(v_7, result_3, true, &v_8), _fx_catch_4); + allow_mkrecord_0, &v_7, 0), _fx_catch_4); + FX_COPY_PTR(v_7.t0, &ts_3); + FX_COPY_PTR(v_7.t1, &e_0); + FX_CALL(_fx_M6ParserFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(e_0, &v_8), _fx_catch_4); + FX_CALL(_fx_cons_LNt6option1N10Ast__exp_t(v_8, result_3, true, &v_9), _fx_catch_4); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_3, &ts_1); expect_sep_1 = true; _fx_free_LNt6option1N10Ast__exp_t(&result_2); - FX_COPY_PTR(v_8, &result_2); + FX_COPY_PTR(v_9, &result_2); _fx_catch_4: ; - if (v_8) { - _fx_free_LNt6option1N10Ast__exp_t(&v_8); + if (v_9) { + _fx_free_LNt6option1N10Ast__exp_t(&v_9); } - if (v_7) { - _fx_free_Nt6option1N10Ast__exp_t(&v_7); + if (v_8) { + _fx_free_Nt6option1N10Ast__exp_t(&v_8); } if (e_0) { _fx_free_N10Ast__exp_t(&e_0); @@ -14674,8 +15366,8 @@ static int if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_6); - fx_free_exn(&v_5); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_7); + fx_free_exn(&v_6); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_5); @@ -14757,7 +15449,7 @@ FX_EXTERN_C int if (ts_2 != 0) { _fx_T2N14Lexer__token_tR10Ast__loc_t* v_1 = &ts_2->hd; if (v_1->t0.tag == 2) { - _fx_LT2iR9Ast__id_t __fold_result___0 = 0; + _fx_LT2iR9Ast__id_t res_0 = 0; _fx_LT2iR9Ast__id_t v_2 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2iR9Ast__id_t result_4 = {0}; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tS v_3 = {0}; @@ -14774,18 +15466,17 @@ FX_EXTERN_C int if (expect_comma_2) { _fx_LT2iR9Ast__id_t lst_0 = result_3; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2iR9Ast__id_t r_0 = 0; + _fx_LT2iR9Ast__id_t v_8 = 0; _fx_T2iR9Ast__id_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2iR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_1); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2iR9Ast__id_t(a_0, res_0, true, &v_8), _fx_catch_1); + FX_FREE_LIST_SIMPLE(&res_0); + FX_COPY_PTR(v_8, &res_0); _fx_catch_1: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_8); FX_CHECK_EXN(_fx_catch_5); } - FX_COPY_PTR(__fold_result___0, &v_2); + FX_COPY_PTR(res_0, &v_2); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2iR9Ast__id_t(ts_2, v_2, &result_4); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2iR9Ast__id_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLT2iR9Ast__id_t(&result_4, &result_1); @@ -14798,12 +15489,12 @@ FX_EXTERN_C int false, &slit_1, &v_3, 0), _fx_catch_5); FX_COPY_PTR(v_3.t0, &ts1_0); fx_copy_str(&v_3.t1, &i_0); - int_ v_8 = _fx_M6ParserFM6lengthi1LT2N14Lexer__token_tR10Ast__loc_t(ts_2, 0); - int_ v_9 = _fx_M6ParserFM6lengthi1LT2N14Lexer__token_tR10Ast__loc_t(ts1_0, 0); - int_ n_0 = v_8 - v_9; - _fx_R10Ast__loc_t v_10; + int_ v_9 = _fx_M6ParserFM6lengthi1LT2N14Lexer__token_tR10Ast__loc_t(ts_2, 0); + int_ v_10 = _fx_M6ParserFM6lengthi1LT2N14Lexer__token_tR10Ast__loc_t(ts1_0, 0); + int_ n_0 = v_9 - v_10; + _fx_R10Ast__loc_t v_11; if (n_0 <= 0) { - v_10 = _fx_g10Ast__noloc; + v_11 = _fx_g10Ast__noloc; } else { FX_COPY_PTR(ts_2, &l_0); @@ -14841,9 +15532,9 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_5); } _fx_copy_T2N14Lexer__token_tR10Ast__loc_t(&result_5, &v_4); - v_10 = v_4.t1; + v_11 = v_4.t1; } - FX_CALL(_fx_cons_LR10Ast__loc_t(&v_10, 0, true, &v_5), _fx_catch_5); + FX_CALL(_fx_cons_LR10Ast__loc_t(&v_11, 0, true, &v_5), _fx_catch_5); FX_CALL(_fx_cons_LR10Ast__loc_t(loc_i_0, v_5, false, &v_5), _fx_catch_5); _fx_R10Ast__loc_t name_loc_0; FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(v_5, loc_i_0, &name_loc_0, 0), _fx_catch_5); @@ -14851,13 +15542,13 @@ FX_EXTERN_C int FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&i_0, &i_1, 0), _fx_catch_5); if (ts1_0 != 0) { if (ts1_0->hd.t0.tag == 5) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_11 = ts1_0->tl; - if (v_11 != 0) { - _fx_N14Lexer__token_t* v_12 = &v_11->hd.t0; - if (v_12->tag == 2) { - _fx_R9Ast__id_t v_13; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_12->u.IDENT.t1, &v_13, 0), _fx_catch_4); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tR9Ast__id_t(v_11->tl, &v_13, &v_6); + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_12 = ts1_0->tl; + if (v_12 != 0) { + _fx_N14Lexer__token_t* v_13 = &v_12->hd.t0; + if (v_13->tag == 2) { + _fx_R9Ast__id_t v_14; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_13->u.IDENT.t1, &v_14, 0), _fx_catch_4); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tR9Ast__id_t(v_12->tl, &v_14, &v_6); _fx_catch_4: ; goto _fx_endmatch_0; @@ -14874,8 +15565,8 @@ FX_EXTERN_C int int_ i__0; FX_CALL(_fx_M6ParserFM23add_to_imported_modulesi2R9Ast__id_tR10Ast__loc_t(&i_1, &name_loc_0, &i__0, 0), _fx_catch_5); - _fx_T2iR9Ast__id_t v_14 = { i__0, j_0 }; - FX_CALL(_fx_cons_LT2iR9Ast__id_t(&v_14, result_3, true, &v_7), _fx_catch_5); + _fx_T2iR9Ast__id_t v_15 = { i__0, j_0 }; + FX_CALL(_fx_cons_LT2iR9Ast__id_t(&v_15, result_3, true, &v_7), _fx_catch_5); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_3, &ts_1); expect_comma_1 = true; @@ -14902,13 +15593,13 @@ FX_EXTERN_C int _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tS(&v_3); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2iR9Ast__id_t(&result_4); FX_FREE_LIST_SIMPLE(&v_2); - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_0); goto _fx_endmatch_1; } } - fx_exn_t v_15 = {0}; - _fx_LT2iR9Ast__id_t __fold_result___1 = 0; - _fx_LT2iR9Ast__id_t v_16 = 0; + fx_exn_t v_16 = {0}; + _fx_LT2iR9Ast__id_t res_1 = 0; + _fx_LT2iR9Ast__id_t v_17 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2iR9Ast__id_t result_6 = {0}; if (result_3 == 0) { _fx_R10Ast__loc_t loc_1; @@ -14920,33 +15611,32 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_7); fx_str_t slit_2 = FX_MAKE_STR("empty module list"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_2, &v_15), _fx_catch_7); - FX_THROW(&v_15, true, _fx_catch_7); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_2, &v_16), _fx_catch_7); + FX_THROW(&v_16, true, _fx_catch_7); } _fx_LT2iR9Ast__id_t lst_1 = result_3; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LT2iR9Ast__id_t r_1 = 0; + _fx_LT2iR9Ast__id_t v_18 = 0; _fx_T2iR9Ast__id_t* a_2 = &lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LT2iR9Ast__id_t(a_2, r_1, false, &r_1), _fx_catch_6); - FX_FREE_LIST_SIMPLE(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LT2iR9Ast__id_t(a_2, res_1, true, &v_18), _fx_catch_6); + FX_FREE_LIST_SIMPLE(&res_1); + FX_COPY_PTR(v_18, &res_1); _fx_catch_6: ; - FX_FREE_LIST_SIMPLE(&r_1); + FX_FREE_LIST_SIMPLE(&v_18); FX_CHECK_EXN(_fx_catch_7); } - FX_COPY_PTR(__fold_result___1, &v_16); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2iR9Ast__id_t(ts_2, v_16, &result_6); + FX_COPY_PTR(res_1, &v_17); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2iR9Ast__id_t(ts_2, v_17, &result_6); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2iR9Ast__id_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLT2iR9Ast__id_t(&result_6, &result_1); FX_BREAK(_fx_catch_7); _fx_catch_7: ; _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2iR9Ast__id_t(&result_6); - FX_FREE_LIST_SIMPLE(&v_16); - FX_FREE_LIST_SIMPLE(&__fold_result___1); - fx_free_exn(&v_15); + FX_FREE_LIST_SIMPLE(&v_17); + FX_FREE_LIST_SIMPLE(&res_1); + fx_free_exn(&v_16); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_8); @@ -15027,25 +15717,24 @@ FX_EXTERN_C int _fx_M6ParserFM13more_pragmas_T2LT2N14Lexer__token_tR10Ast__loc_t } } } - _fx_LS __fold_result___0 = 0; + _fx_LS res_0 = 0; _fx_LS v_5 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLS result_1 = {0}; _fx_LS lst_0 = prl_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LS r_0 = 0; + _fx_LS v_6 = 0; fx_str_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LS(a_0, r_0, false, &r_0), _fx_catch_2); - _fx_free_LS(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LS(a_0, res_0, true, &v_6), _fx_catch_2); + _fx_free_LS(&res_0); + FX_COPY_PTR(v_6, &res_0); _fx_catch_2: ; - if (r_0) { - _fx_free_LS(&r_0); + if (v_6) { + _fx_free_LS(&v_6); } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___0, &v_5); + FX_COPY_PTR(res_0, &v_5); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLS(ts_2, v_5, &result_1); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLS(&result_0); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLS(&result_1, &result_0); @@ -15056,8 +15745,8 @@ FX_EXTERN_C int _fx_M6ParserFM13more_pragmas_T2LT2N14Lexer__token_tR10Ast__loc_t if (v_5) { _fx_free_LS(&v_5); } - if (__fold_result___0) { - _fx_free_LS(&__fold_result___0); + if (res_0) { + _fx_free_LS(&res_0); } _fx_endmatch_0: ; @@ -15957,7 +16646,7 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_7); if (res_0) { fx_exn_t v_1 = {0}; - _fx_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t __fold_result___0 = 0; + _fx_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t res_1 = 0; _fx_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t v_2 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t result_4 = {0}; if (result_3 == 0) { @@ -15975,20 +16664,19 @@ FX_EXTERN_C int } _fx_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t lst_0 = result_3; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t r_0 = 0; + _fx_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t v_3 = 0; _fx_T3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(a_0, res_1, true, &v_3), _fx_catch_1); + _fx_free_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&res_1); + FX_COPY_PTR(v_3, &res_1); _fx_catch_1: ; - if (r_0) { - _fx_free_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&r_0); + if (v_3) { + _fx_free_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&v_3); } FX_CHECK_EXN(_fx_catch_2); } - FX_COPY_PTR(__fold_result___0, &v_2); + FX_COPY_PTR(res_1, &v_2); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(ts_2, v_2, &result_4); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&result_4, &result_1); @@ -15999,25 +16687,25 @@ FX_EXTERN_C int if (v_2) { _fx_free_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&v_2); } - if (__fold_result___0) { - _fx_free_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&__fold_result___0); + if (res_1) { + _fx_free_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&res_1); } fx_free_exn(&v_1); goto _fx_endmatch_3; } - fx_exn_t v_3 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_4 = {0}; + fx_exn_t v_4 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_5 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; _fx_N10Ast__pat_t p_0 = 0; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_5 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_6 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_4 = 0; _fx_N10Ast__pat_t idx_pat_0 = 0; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_5 = 0; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_6 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_7 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_6 = 0; _fx_N10Ast__exp_t e_0 = 0; - _fx_T3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t v_7 = {0}; - _fx_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t v_8 = 0; + _fx_T3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t v_8 = {0}; + _fx_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t v_9 = 0; if (expect_comma_2) { _fx_R10Ast__loc_t loc_5; if (ts_2 != 0) { @@ -16028,43 +16716,43 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_6); fx_str_t slit_2 = FX_MAKE_STR("\',\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_5, &slit_2, &v_3), _fx_catch_6); - FX_THROW(&v_3, true, _fx_catch_6); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_5, &slit_2, &v_4), _fx_catch_6); + FX_THROW(&v_4, true, _fx_catch_6); } FX_CALL( _fx_M6ParserFM9parse_patT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t2LT2N14Lexer__token_tR10Ast__loc_tB(ts_2, true, - &v_4, 0), _fx_catch_6); - FX_COPY_PTR(v_4.t0, &ts_3); - FX_COPY_PTR(v_4.t1, &p_0); + &v_5, 0), _fx_catch_6); + FX_COPY_PTR(v_5.t0, &ts_3); + FX_COPY_PTR(v_5.t1, &p_0); if (ts_3 != 0) { if (ts_3->hd.t0.tag == 6) { FX_CALL( _fx_M6ParserFM9parse_patT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t2LT2N14Lexer__token_tR10Ast__loc_tB( - ts_3->tl, true, &v_5, 0), _fx_catch_3); + ts_3->tl, true, &v_6, 0), _fx_catch_3); _fx_catch_3: ; goto _fx_endmatch_1; } } - _fx_N10Ast__pat_t v_9 = 0; - FX_CALL(_fx_M3AstFM6PatAnyN10Ast__pat_t1RM5loc_t(&loc_2, &v_9), _fx_catch_4); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(ts_3, v_9, &v_5); + _fx_N10Ast__pat_t v_10 = 0; + FX_CALL(_fx_M3AstFM6PatAnyN10Ast__pat_t1RM5loc_t(&loc_2, &v_10), _fx_catch_4); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(ts_3, v_10, &v_6); _fx_catch_4: ; - if (v_9) { - _fx_free_N10Ast__pat_t(&v_9); + if (v_10) { + _fx_free_N10Ast__pat_t(&v_10); } _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_6); - FX_COPY_PTR(v_5.t0, &ts_4); - FX_COPY_PTR(v_5.t1, &idx_pat_0); + FX_COPY_PTR(v_6.t0, &ts_4); + FX_COPY_PTR(v_6.t1, &idx_pat_0); if (ts_4 != 0) { if (ts_4->hd.t0.tag == 59) { FX_COPY_PTR(ts_4->tl, &ts_5); goto _fx_endmatch_2; } } - fx_exn_t v_10 = {0}; + fx_exn_t v_11 = {0}; _fx_R10Ast__loc_t loc_6; if (ts_4 != 0) { loc_6 = ts_4->hd.t1; @@ -16074,40 +16762,40 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_5); fx_str_t slit_3 = FX_MAKE_STR("\'<-\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_6, &slit_3, &v_10), _fx_catch_5); - FX_THROW(&v_10, true, _fx_catch_5); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_6, &slit_3, &v_11), _fx_catch_5); + FX_THROW(&v_11, true, _fx_catch_5); _fx_catch_5: ; - fx_free_exn(&v_10); + fx_free_exn(&v_11); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_6); FX_CALL( _fx_M6ParserFM15parse_range_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t2LT2N14Lexer__token_tR10Ast__loc_tB( - ts_5, false, &v_6, 0), _fx_catch_6); - FX_COPY_PTR(v_6.t0, &ts_6); - FX_COPY_PTR(v_6.t1, &e_0); - _fx_make_T3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(p_0, idx_pat_0, e_0, &v_7); - FX_CALL(_fx_cons_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&v_7, result_3, true, &v_8), _fx_catch_6); + ts_5, false, &v_7, 0), _fx_catch_6); + FX_COPY_PTR(v_7.t0, &ts_6); + FX_COPY_PTR(v_7.t1, &e_0); + _fx_make_T3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(p_0, idx_pat_0, e_0, &v_8); + FX_CALL(_fx_cons_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&v_8, result_3, true, &v_9), _fx_catch_6); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_6, &ts_1); expect_comma_1 = true; _fx_free_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&result_2); - FX_COPY_PTR(v_8, &result_2); + FX_COPY_PTR(v_9, &result_2); loc_1 = loc_2; _fx_catch_6: ; - if (v_8) { - _fx_free_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&v_8); + if (v_9) { + _fx_free_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&v_9); } - _fx_free_T3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&v_7); + _fx_free_T3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&v_8); if (e_0) { _fx_free_N10Ast__exp_t(&e_0); } if (ts_6) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_6); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_6); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_7); if (ts_5) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_5); } @@ -16117,15 +16805,15 @@ FX_EXTERN_C int if (ts_4) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_4); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_5); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_6); if (p_0) { _fx_free_N10Ast__pat_t(&p_0); } if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_4); - fx_free_exn(&v_3); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_5); + fx_free_exn(&v_4); _fx_endmatch_3: ; FX_CHECK_EXN(_fx_catch_7); @@ -16163,15 +16851,13 @@ FX_EXTERN_C int _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t nested_fors_0 = 0; _fx_LT2N14Lexer__token_tR10Ast__loc_t vts_0 = 0; _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t nested_fors_1 = 0; - _fx_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t __fold_result___0 = - {0}; - _fx_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t v_0 = {0}; _fx_LN10Ast__exp_t glob_el_0 = 0; + _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t new_nested_fors_0 = 0; _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t nested_fors_2 = 0; - _fx_LN10Ast__exp_t v_1 = 0; + _fx_LN10Ast__exp_t v_0 = 0; _fx_N10Ast__exp_t for_iter_exp_0 = 0; _fx_LT2N14Lexer__token_tR10Ast__loc_t vts_1 = 0; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_2 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_1 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_1 = 0; _fx_N10Ast__exp_t body_0 = 0; _fx_N10Ast__exp_t for_exp_0 = 0; @@ -16185,11 +16871,11 @@ FX_EXTERN_C int FX_COPY_PTR(vts_0, &vts_2); if (vts_2 != 0) { if (vts_2->hd.t0.tag == 29) { - fx_exn_t v_3 = {0}; + fx_exn_t v_2 = {0}; if (is_parallel_0) { fx_str_t slit_0 = FX_MAKE_STR("duplicate @parallel attribute"); - FX_CALL(_fx_M6ParserFM9parse_errE2LT2N14Lexer__token_tR10Ast__loc_tS(ts_0, &slit_0, &v_3, 0), _fx_catch_0); - FX_THROW(&v_3, true, _fx_catch_0); + FX_CALL(_fx_M6ParserFM9parse_errE2LT2N14Lexer__token_tR10Ast__loc_tS(ts_0, &slit_0, &v_2, 0), _fx_catch_0); + FX_THROW(&v_2, true, _fx_catch_0); } is_parallel_0 = true; _fx_LT2N14Lexer__token_tR10Ast__loc_t* rest_0 = &vts_2->tl; @@ -16197,17 +16883,17 @@ FX_EXTERN_C int FX_COPY_PTR(*rest_0, &vts_0); _fx_catch_0: ; - fx_free_exn(&v_3); + fx_free_exn(&v_2); goto _fx_endmatch_0; } } if (vts_2 != 0) { if (vts_2->hd.t0.tag == 43) { - fx_exn_t v_4 = {0}; + fx_exn_t v_3 = {0}; if (need_unzip_0) { fx_str_t slit_1 = FX_MAKE_STR("duplicate @unzip attribute"); - FX_CALL(_fx_M6ParserFM9parse_errE2LT2N14Lexer__token_tR10Ast__loc_tS(ts_0, &slit_1, &v_4, 0), _fx_catch_1); - FX_THROW(&v_4, true, _fx_catch_1); + FX_CALL(_fx_M6ParserFM9parse_errE2LT2N14Lexer__token_tR10Ast__loc_tS(ts_0, &slit_1, &v_3, 0), _fx_catch_1); + FX_THROW(&v_3, true, _fx_catch_1); } need_unzip_0 = true; _fx_LT2N14Lexer__token_tR10Ast__loc_t* rest_1 = &vts_2->tl; @@ -16215,7 +16901,7 @@ FX_EXTERN_C int FX_COPY_PTR(*rest_1, &vts_0); _fx_catch_1: ; - fx_free_exn(&v_4); + fx_free_exn(&v_3); goto _fx_endmatch_0; } } @@ -16224,13 +16910,13 @@ FX_EXTERN_C int FX_BREAK(_fx_catch_2); _fx_catch_2: ; goto _fx_endmatch_0; } } - fx_exn_t v_5 = {0}; + fx_exn_t v_4 = {0}; fx_str_t slit_2 = FX_MAKE_STR("\'for\' is expected (after optional attributes)"); - FX_CALL(_fx_M6ParserFM9parse_errE2LT2N14Lexer__token_tR10Ast__loc_tS(vts_0, &slit_2, &v_5, 0), _fx_catch_3); - FX_THROW(&v_5, true, _fx_catch_3); + FX_CALL(_fx_M6ParserFM9parse_errE2LT2N14Lexer__token_tR10Ast__loc_tS(vts_0, &slit_2, &v_4, 0), _fx_catch_3); + FX_THROW(&v_4, true, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_5); + fx_free_exn(&v_4); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_4); @@ -16244,63 +16930,63 @@ FX_EXTERN_C int } for (;;) { _fx_LT2N14Lexer__token_tR10Ast__loc_t vts_3 = 0; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t v_6 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t v_5 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_2 = 0; _fx_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t for_cl_0 = 0; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tNt6option1N10Ast__exp_t v_7 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tNt6option1N10Ast__exp_t v_6 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; _fx_Nt6option1N10Ast__exp_t when_e_0 = 0; - _fx_T3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t v_8 = {0}; - _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t v_9 = 0; + _fx_T3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t v_7 = {0}; + _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t v_8 = 0; _fx_R10Ast__loc_t loc_i_0 = _fx_g10Ast__noloc; FX_COPY_PTR(vts_0, &vts_3); if (vts_3 != 0) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_10 = &vts_3->hd; - if (v_10->t0.tag == 19) { + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_9 = &vts_3->hd; + if (v_9->t0.tag == 19) { _fx_LT2N14Lexer__token_tR10Ast__loc_t* rest_2 = &vts_3->tl; _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&vts_0); FX_COPY_PTR(*rest_2, &vts_0); - loc_i_0 = v_10->t1; + loc_i_0 = v_9->t1; goto _fx_endmatch_1; } } - _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t v_11 = 0; + _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t v_10 = 0; FX_CALL( _fx_M6ParserFM3revLT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t1LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t( - nested_fors_0, &v_11, 0), _fx_catch_5); + nested_fors_0, &v_10, 0), _fx_catch_5); _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&nested_fors_0); - FX_COPY_PTR(v_11, &nested_fors_0); + FX_COPY_PTR(v_10, &nested_fors_0); FX_BREAK(_fx_catch_5); _fx_catch_5: ; - if (v_11) { - _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_11); + if (v_10) { + _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_10); } _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_7); FX_CALL( _fx_M6ParserFM17parse_for_clause_T2LT2N14Lexer__token_tR10Ast__loc_tLT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t4LT2N14Lexer__token_tR10Ast__loc_tBLT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t( - vts_0, false, 0, &loc_i_0, &v_6, 0), _fx_catch_7); - FX_COPY_PTR(v_6.t0, &ts_2); - FX_COPY_PTR(v_6.t1, &for_cl_0); + vts_0, false, 0, &loc_i_0, &v_5, 0), _fx_catch_7); + FX_COPY_PTR(v_5.t0, &ts_2); + FX_COPY_PTR(v_5.t1, &for_cl_0); if (ts_2 != 0) { if (ts_2->hd.t0.tag == 40) { - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_12 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_11 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_4 = 0; _fx_N10Ast__exp_t e_0 = 0; - _fx_Nt6option1N10Ast__exp_t v_13 = 0; + _fx_Nt6option1N10Ast__exp_t v_12 = 0; FX_CALL( _fx_M6ParserFM9parse_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t2LT2N14Lexer__token_tR10Ast__loc_tB( - ts_2->tl, false, &v_12, 0), _fx_catch_6); - FX_COPY_PTR(v_12.t0, &ts_4); - FX_COPY_PTR(v_12.t1, &e_0); - FX_CALL(_fx_M6ParserFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(e_0, &v_13), _fx_catch_6); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tNt6option1N10Ast__exp_t(ts_4, v_13, &v_7); + ts_2->tl, false, &v_11, 0), _fx_catch_6); + FX_COPY_PTR(v_11.t0, &ts_4); + FX_COPY_PTR(v_11.t1, &e_0); + FX_CALL(_fx_M6ParserFM4SomeNt6option1N10Ast__exp_t1N10Ast__exp_t(e_0, &v_12), _fx_catch_6); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tNt6option1N10Ast__exp_t(ts_4, v_12, &v_6); _fx_catch_6: ; - if (v_13) { - _fx_free_Nt6option1N10Ast__exp_t(&v_13); + if (v_12) { + _fx_free_Nt6option1N10Ast__exp_t(&v_12); } if (e_0) { _fx_free_N10Ast__exp_t(&e_0); @@ -16308,45 +16994,45 @@ FX_EXTERN_C int if (ts_4) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_4); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_12); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_11); goto _fx_endmatch_2; } } - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tNt6option1N10Ast__exp_t(ts_2, _fx_g14Parser__None2_, &v_7); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tNt6option1N10Ast__exp_t(ts_2, _fx_g14Parser__None4_, &v_6); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_7); - FX_COPY_PTR(v_7.t0, &ts_3); - FX_COPY_PTR(v_7.t1, &when_e_0); + FX_COPY_PTR(v_6.t0, &ts_3); + FX_COPY_PTR(v_6.t1, &when_e_0); _fx_make_T3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(for_cl_0, when_e_0, &loc_i_0, - &v_8); + &v_7); FX_CALL( - _fx_cons_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_8, nested_fors_0, true, - &v_9), _fx_catch_7); + _fx_cons_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_7, nested_fors_0, true, + &v_8), _fx_catch_7); _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&nested_fors_0); - FX_COPY_PTR(v_9, &nested_fors_0); + FX_COPY_PTR(v_8, &nested_fors_0); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&vts_0); FX_COPY_PTR(ts_3, &vts_0); _fx_catch_7: ; - if (v_9) { - _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_9); + if (v_8) { + _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_8); } - _fx_free_T3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_8); + _fx_free_T3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_7); if (when_e_0) { _fx_free_Nt6option1N10Ast__exp_t(&when_e_0); } if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tNt6option1N10Ast__exp_t(&v_7); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tNt6option1N10Ast__exp_t(&v_6); if (for_cl_0) { _fx_free_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&for_cl_0); } if (ts_2) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_2); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&v_6); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t(&v_5); if (vts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&vts_3); } @@ -16362,116 +17048,103 @@ FX_EXTERN_C int glob_loc_0 = _fx_g10Ast__noloc; } FX_CHECK_EXN(_fx_cleanup); - _fx_make_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(0, 0, - &__fold_result___0); _fx_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t lst_0 = nested_fors_0; for (; lst_0; lst_0 = lst_0->tl) { _fx_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t ppe_list_0 = 0; _fx_Nt6option1N10Ast__exp_t when_e_1 = 0; - _fx_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t v_14 = {0}; - _fx_LN10Ast__exp_t glob_el_1 = 0; - _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t nested_fors_3 = 0; - _fx_N10Ast__pat_t v_15 = 0; - _fx_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t __fold_result___1 = {0}; - _fx_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_16 = {0}; - _fx_LN10Ast__exp_t glob_el_2 = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t for_cl__0 = 0; _fx_N10Ast__pat_t idx_pat_0 = 0; - _fx_LT2N10Ast__pat_tN10Ast__exp_t v_17 = 0; - _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t v_18 = {0}; - _fx_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t v_19 = {0}; + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_13 = 0; + _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t v_14 = {0}; + _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t v_15 = 0; _fx_T3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t* __pat___0 = &lst_0->hd; FX_COPY_PTR(__pat___0->t0, &ppe_list_0); FX_COPY_PTR(__pat___0->t1, &when_e_1); _fx_R10Ast__loc_t loc_0 = __pat___0->t2; - _fx_copy_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t( - &__fold_result___0, &v_14); - FX_COPY_PTR(v_14.t0, &glob_el_1); - FX_COPY_PTR(v_14.t1, &nested_fors_3); - FX_CALL(_fx_M3AstFM6PatAnyN10Ast__pat_t1RM5loc_t(&loc_0, &v_15), _fx_catch_12); - _fx_make_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(glob_el_1, 0, v_15, &__fold_result___1); + FX_CALL(_fx_M3AstFM6PatAnyN10Ast__pat_t1RM5loc_t(&loc_0, &idx_pat_0), _fx_catch_12); _fx_LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t lst_1 = ppe_list_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N10Ast__pat_t p_0 = 0; _fx_N10Ast__pat_t idxp_0 = 0; _fx_N10Ast__exp_t e_1 = 0; - _fx_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_20 = {0}; - _fx_LN10Ast__exp_t glob_el_3 = 0; - _fx_LT2N10Ast__pat_tN10Ast__exp_t for_cl__1 = 0; - _fx_N10Ast__pat_t idx_pat_1 = 0; - _fx_LN10Ast__pat_t v_21 = 0; - _fx_T2LN10Ast__pat_tN10Ast__exp_t v_22 = {0}; + _fx_LN10Ast__pat_t v_16 = 0; + _fx_T2LN10Ast__pat_tN10Ast__exp_t v_17 = {0}; _fx_LN10Ast__pat_t p__0 = 0; _fx_N10Ast__exp_t p_e_0 = 0; _fx_N10Ast__pat_t p_1 = 0; - _fx_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_23 = {0}; + _fx_Ta2N10Ast__pat_t v_18 = {0}; _fx_T3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_t* __pat___1 = &lst_1->hd; FX_COPY_PTR(__pat___1->t0, &p_0); FX_COPY_PTR(__pat___1->t1, &idxp_0); FX_COPY_PTR(__pat___1->t2, &e_1); - _fx_copy_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&__fold_result___1, &v_20); - FX_COPY_PTR(v_20.t0, &glob_el_3); - FX_COPY_PTR(v_20.t1, &for_cl__1); - FX_COPY_PTR(v_20.t2, &idx_pat_1); - FX_CALL(_fx_cons_LN10Ast__pat_t(p_0, 0, true, &v_21), _fx_catch_11); - _fx_R10Ast__loc_t v_24; - FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(p_0, &v_24, 0), _fx_catch_11); - FX_CALL(_fx_M6ParserFM9plist2expT2LN10Ast__pat_tN10Ast__exp_t2LN10Ast__pat_tR10Ast__loc_t(v_21, &v_24, &v_22, 0), + FX_CALL(_fx_cons_LN10Ast__pat_t(p_0, 0, true, &v_16), _fx_catch_11); + _fx_R10Ast__loc_t v_19; + FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(p_0, &v_19, 0), _fx_catch_11); + FX_CALL(_fx_M6ParserFM9plist2expT2LN10Ast__pat_tN10Ast__exp_t2LN10Ast__pat_tR10Ast__loc_t(v_16, &v_19, &v_17, 0), _fx_catch_11); - FX_COPY_PTR(v_22.t0, &p__0); - FX_COPY_PTR(v_22.t1, &p_e_0); + FX_COPY_PTR(v_17.t0, &p__0); + FX_COPY_PTR(v_17.t1, &p_e_0); FX_CALL(_fx_M6ParserFM2hdN10Ast__pat_t1LN10Ast__pat_t(p__0, &p_1, 0), _fx_catch_11); - if (FX_REC_VARIANT_TAG(idxp_0) == 1) { - _fx_LN10Ast__exp_t v_25 = 0; - _fx_T2N10Ast__pat_tN10Ast__exp_t v_26 = {0}; - _fx_LT2N10Ast__pat_tN10Ast__exp_t v_27 = 0; - FX_CALL(_fx_cons_LN10Ast__exp_t(p_e_0, glob_el_3, true, &v_25), _fx_catch_8); - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(p_1, e_1, &v_26); - FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_26, for_cl__1, true, &v_27), _fx_catch_8); - _fx_make_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(v_25, v_27, idx_pat_1, &v_23); + _fx_make_Ta2N10Ast__pat_t(idxp_0, idx_pat_0, &v_18); + if (FX_REC_VARIANT_TAG(v_18.t0) == 1) { + _fx_LN10Ast__exp_t v_20 = 0; + _fx_T2N10Ast__pat_tN10Ast__exp_t v_21 = {0}; + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_22 = 0; + FX_CALL(_fx_cons_LN10Ast__exp_t(p_e_0, glob_el_0, true, &v_20), _fx_catch_8); + _fx_free_LN10Ast__exp_t(&glob_el_0); + FX_COPY_PTR(v_20, &glob_el_0); + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(p_1, e_1, &v_21); + FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_21, for_cl__0, true, &v_22), _fx_catch_8); + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&for_cl__0); + FX_COPY_PTR(v_22, &for_cl__0); _fx_catch_8: ; - if (v_27) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_27); + if (v_22) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_22); } - _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_26); - if (v_25) { - _fx_free_LN10Ast__exp_t(&v_25); + _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_21); + if (v_20) { + _fx_free_LN10Ast__exp_t(&v_20); } } - else if (FX_REC_VARIANT_TAG(idx_pat_1) == 1) { - _fx_LN10Ast__pat_t v_28 = 0; - _fx_T2LN10Ast__pat_tN10Ast__exp_t v_29 = {0}; + else if (FX_REC_VARIANT_TAG(v_18.t1) == 1) { + _fx_LN10Ast__pat_t v_23 = 0; + _fx_T2LN10Ast__pat_tN10Ast__exp_t v_24 = {0}; _fx_LN10Ast__pat_t idxp_1 = 0; _fx_N10Ast__exp_t idxp_e_0 = 0; - _fx_LN10Ast__exp_t v_30 = 0; - _fx_T2N10Ast__pat_tN10Ast__exp_t v_31 = {0}; - _fx_LT2N10Ast__pat_tN10Ast__exp_t v_32 = 0; - _fx_N10Ast__pat_t v_33 = 0; - FX_CALL(_fx_cons_LN10Ast__pat_t(idxp_0, 0, true, &v_28), _fx_catch_9); - _fx_R10Ast__loc_t v_34; - FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(idxp_0, &v_34, 0), _fx_catch_9); - FX_CALL(_fx_M6ParserFM9plist2expT2LN10Ast__pat_tN10Ast__exp_t2LN10Ast__pat_tR10Ast__loc_t(v_28, &v_34, &v_29, 0), + _fx_LN10Ast__exp_t v_25 = 0; + _fx_T2N10Ast__pat_tN10Ast__exp_t v_26 = {0}; + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_27 = 0; + _fx_N10Ast__pat_t v_28 = 0; + FX_CALL(_fx_cons_LN10Ast__pat_t(idxp_0, 0, true, &v_23), _fx_catch_9); + _fx_R10Ast__loc_t v_29; + FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(idxp_0, &v_29, 0), _fx_catch_9); + FX_CALL(_fx_M6ParserFM9plist2expT2LN10Ast__pat_tN10Ast__exp_t2LN10Ast__pat_tR10Ast__loc_t(v_23, &v_29, &v_24, 0), _fx_catch_9); - FX_COPY_PTR(v_29.t0, &idxp_1); - FX_COPY_PTR(v_29.t1, &idxp_e_0); - FX_CALL(_fx_cons_LN10Ast__exp_t(p_e_0, glob_el_3, true, &v_30), _fx_catch_9); - FX_CALL(_fx_cons_LN10Ast__exp_t(idxp_e_0, v_30, false, &v_30), _fx_catch_9); - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(p_1, e_1, &v_31); - FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_31, for_cl__1, true, &v_32), _fx_catch_9); - FX_CALL(_fx_M6ParserFM2hdN10Ast__pat_t1LN10Ast__pat_t(idxp_1, &v_33, 0), _fx_catch_9); - _fx_make_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(v_30, v_32, v_33, &v_23); + FX_COPY_PTR(v_24.t0, &idxp_1); + FX_COPY_PTR(v_24.t1, &idxp_e_0); + FX_CALL(_fx_cons_LN10Ast__exp_t(p_e_0, glob_el_0, true, &v_25), _fx_catch_9); + FX_CALL(_fx_cons_LN10Ast__exp_t(idxp_e_0, v_25, false, &v_25), _fx_catch_9); + _fx_free_LN10Ast__exp_t(&glob_el_0); + FX_COPY_PTR(v_25, &glob_el_0); + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(p_1, e_1, &v_26); + FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_26, for_cl__0, true, &v_27), _fx_catch_9); + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&for_cl__0); + FX_COPY_PTR(v_27, &for_cl__0); + FX_CALL(_fx_M6ParserFM2hdN10Ast__pat_t1LN10Ast__pat_t(idxp_1, &v_28, 0), _fx_catch_9); + _fx_free_N10Ast__pat_t(&idx_pat_0); + FX_COPY_PTR(v_28, &idx_pat_0); _fx_catch_9: ; - if (v_33) { - _fx_free_N10Ast__pat_t(&v_33); + if (v_28) { + _fx_free_N10Ast__pat_t(&v_28); } - if (v_32) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_32); + if (v_27) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_27); } - _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_31); - if (v_30) { - _fx_free_LN10Ast__exp_t(&v_30); + _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_26); + if (v_25) { + _fx_free_LN10Ast__exp_t(&v_25); } if (idxp_e_0) { _fx_free_N10Ast__exp_t(&idxp_e_0); @@ -16479,28 +17152,26 @@ FX_EXTERN_C int if (idxp_1) { _fx_free_LN10Ast__pat_t(&idxp_1); } - _fx_free_T2LN10Ast__pat_tN10Ast__exp_t(&v_29); - if (v_28) { - _fx_free_LN10Ast__pat_t(&v_28); + _fx_free_T2LN10Ast__pat_tN10Ast__exp_t(&v_24); + if (v_23) { + _fx_free_LN10Ast__pat_t(&v_23); } } else { - fx_exn_t v_35 = {0}; - _fx_R10Ast__loc_t v_36; - FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(idxp_0, &v_36, 0), _fx_catch_10); + fx_exn_t v_30 = {0}; + _fx_R10Ast__loc_t v_31; + FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(idxp_0, &v_31, 0), _fx_catch_10); fx_str_t slit_3 = FX_MAKE_STR("@ is used more than once, which does not make sence and is not supported"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&v_36, &slit_3, &v_35), _fx_catch_10); - FX_THROW(&v_35, true, _fx_catch_10); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&v_31, &slit_3, &v_30), _fx_catch_10); + FX_THROW(&v_30, true, _fx_catch_10); _fx_catch_10: ; - fx_free_exn(&v_35); + fx_free_exn(&v_30); } FX_CHECK_EXN(_fx_catch_11); - _fx_free_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&__fold_result___1); - _fx_copy_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_23, &__fold_result___1); _fx_catch_11: ; - _fx_free_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_23); + _fx_free_Ta2N10Ast__pat_t(&v_18); if (p_1) { _fx_free_N10Ast__pat_t(&p_1); } @@ -16510,20 +17181,10 @@ FX_EXTERN_C int if (p__0) { _fx_free_LN10Ast__pat_t(&p__0); } - _fx_free_T2LN10Ast__pat_tN10Ast__exp_t(&v_22); - if (v_21) { - _fx_free_LN10Ast__pat_t(&v_21); - } - if (idx_pat_1) { - _fx_free_N10Ast__pat_t(&idx_pat_1); - } - if (for_cl__1) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&for_cl__1); - } - if (glob_el_3) { - _fx_free_LN10Ast__exp_t(&glob_el_3); + _fx_free_T2LN10Ast__pat_tN10Ast__exp_t(&v_17); + if (v_16) { + _fx_free_LN10Ast__pat_t(&v_16); } - _fx_free_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_20); if (e_1) { _fx_free_N10Ast__exp_t(&e_1); } @@ -16535,28 +17196,22 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_12); } - _fx_copy_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&__fold_result___1, &v_16); - FX_COPY_PTR(v_16.t0, &glob_el_2); - FX_COPY_PTR(v_16.t1, &for_cl__0); - FX_COPY_PTR(v_16.t2, &idx_pat_0); - FX_CALL(_fx_M6ParserFM3revLT2N10Ast__pat_tN10Ast__exp_t1LT2N10Ast__pat_tN10Ast__exp_t(for_cl__0, &v_17, 0), _fx_catch_12); - _fx_make_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(v_17, idx_pat_0, when_e_1, - &loc_0, &v_18); + FX_CALL(_fx_M6ParserFM3revLT2N10Ast__pat_tN10Ast__exp_t1LT2N10Ast__pat_tN10Ast__exp_t(for_cl__0, &v_13, 0), _fx_catch_12); + _fx_make_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(v_13, idx_pat_0, when_e_1, + &loc_0, &v_14); FX_CALL( - _fx_cons_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_18, nested_fors_3, false, - &nested_fors_3), _fx_catch_12); - _fx_make_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(glob_el_2, - nested_fors_3, &v_19); - _fx_free_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t( - &__fold_result___0); - _fx_copy_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_19, - &__fold_result___0); + _fx_cons_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_14, new_nested_fors_0, + true, &v_15), _fx_catch_12); + _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&new_nested_fors_0); + FX_COPY_PTR(v_15, &new_nested_fors_0); _fx_catch_12: ; - _fx_free_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_19); - _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_18); - if (v_17) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_17); + if (v_15) { + _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_15); + } + _fx_free_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_14); + if (v_13) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_13); } if (idx_pat_0) { _fx_free_N10Ast__pat_t(&idx_pat_0); @@ -16564,21 +17219,6 @@ FX_EXTERN_C int if (for_cl__0) { _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&for_cl__0); } - if (glob_el_2) { - _fx_free_LN10Ast__exp_t(&glob_el_2); - } - _fx_free_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_16); - _fx_free_T3LN10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&__fold_result___1); - if (v_15) { - _fx_free_N10Ast__pat_t(&v_15); - } - if (nested_fors_3) { - _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&nested_fors_3); - } - if (glob_el_1) { - _fx_free_LN10Ast__exp_t(&glob_el_1); - } - _fx_free_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_14); if (when_e_1) { _fx_free_Nt6option1N10Ast__exp_t(&when_e_1); } @@ -16587,17 +17227,14 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t( - &__fold_result___0, &v_0); - FX_COPY_PTR(v_0.t0, &glob_el_0); - FX_COPY_PTR(v_0.t1, &nested_fors_2); - FX_CALL(_fx_M6ParserFM3revLN10Ast__exp_t1LN10Ast__exp_t(glob_el_0, &v_1, 0), _fx_cleanup); - if (v_1 != 0) { - if (v_1->tl == 0) { - FX_COPY_PTR(v_1->hd, &for_iter_exp_0); goto _fx_endmatch_3; + FX_COPY_PTR(new_nested_fors_0, &nested_fors_2); + FX_CALL(_fx_M6ParserFM3revLN10Ast__exp_t1LN10Ast__exp_t(glob_el_0, &v_0, 0), _fx_cleanup); + if (v_0 != 0) { + if (v_0->tl == 0) { + FX_COPY_PTR(v_0->hd, &for_iter_exp_0); goto _fx_endmatch_3; } } - FX_CALL(_fx_M6ParserFM10make_tupleN10Ast__exp_t2LN10Ast__exp_tR10Ast__loc_t(v_1, &glob_loc_0, &for_iter_exp_0, 0), + FX_CALL(_fx_M6ParserFM10make_tupleN10Ast__exp_t2LN10Ast__exp_tR10Ast__loc_t(v_0, &glob_loc_0, &for_iter_exp_0, 0), _fx_catch_13); _fx_catch_13: ; @@ -16606,39 +17243,39 @@ _fx_endmatch_3: ; FX_CHECK_EXN(_fx_cleanup); FX_COPY_PTR(vts_0, &vts_1); if (vts_1 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_37 = vts_1->tl; - if (v_37 != 0) { - if (v_37->hd.t0.tag == 55) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_38 = &vts_1->hd; - if (v_38->t0.tag == 49) { - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t v_39 = {0}; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_32 = vts_1->tl; + if (v_32 != 0) { + if (v_32->hd.t0.tag == 55) { + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_33 = &vts_1->hd; + if (v_33->t0.tag == 49) { + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t v_34 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_5 = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t cases_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_40 = {0}; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_35 = {0}; _fx_N10Ast__exp_t match_e_0 = 0; FX_CALL( _fx_M6ParserFM17parse_match_casesT2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t( - vts_0, &v_39, 0), _fx_catch_14); - FX_COPY_PTR(v_39.t0, &ts_5); - FX_COPY_PTR(v_39.t1, &cases_0); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_38->t1, &v_40, 0), _fx_catch_14); + vts_0, &v_34, 0), _fx_catch_14); + FX_COPY_PTR(v_34.t0, &ts_5); + FX_COPY_PTR(v_34.t1, &cases_0); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_33->t1, &v_35, 0), _fx_catch_14); FX_CALL( _fx_M3AstFM8ExpMatchN10Ast__exp_t3N10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - for_iter_exp_0, cases_0, &v_40, &match_e_0), _fx_catch_14); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_5, match_e_0, &v_2); + for_iter_exp_0, cases_0, &v_35, &match_e_0), _fx_catch_14); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_5, match_e_0, &v_1); _fx_catch_14: ; if (match_e_0) { _fx_free_N10Ast__exp_t(&match_e_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_40); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_35); if (cases_0) { _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&cases_0); } if (ts_5) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_5); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t(&v_39); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t(&v_34); goto _fx_endmatch_4; } } @@ -16648,24 +17285,24 @@ _fx_endmatch_3: ; if (vts_1->hd.t0.tag == 49) { FX_CALL( _fx_M6ParserFM11parse_blockT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t(vts_0, - &v_2, 0), _fx_catch_15); + &v_1, 0), _fx_catch_15); _fx_catch_15: ; goto _fx_endmatch_4; } } - fx_exn_t v_41 = {0}; + fx_exn_t v_36 = {0}; fx_str_t slit_4 = FX_MAKE_STR("\'{\' is expected (beginning of for-loop body)"); - FX_CALL(_fx_M6ParserFM9parse_errE2LT2N14Lexer__token_tR10Ast__loc_tS(ts_0, &slit_4, &v_41, 0), _fx_catch_16); - FX_THROW(&v_41, true, _fx_catch_16); + FX_CALL(_fx_M6ParserFM9parse_errE2LT2N14Lexer__token_tR10Ast__loc_tS(ts_0, &slit_4, &v_36, 0), _fx_catch_16); + FX_THROW(&v_36, true, _fx_catch_16); _fx_catch_16: ; - fx_free_exn(&v_41); + fx_free_exn(&v_36); _fx_endmatch_4: ; FX_CHECK_EXN(_fx_cleanup); - FX_COPY_PTR(v_2.t0, &ts_1); - FX_COPY_PTR(v_2.t1, &body_0); + FX_COPY_PTR(v_1.t0, &ts_1); + FX_COPY_PTR(v_1.t1, &body_0); int tag_0 = for_make_0->tag; bool res_0; if (tag_0 == 2) { @@ -16685,80 +17322,72 @@ _fx_endmatch_4: ; } FX_CHECK_EXN(_fx_cleanup); if (res_0) { - _fx_N10Ast__exp_t v_42 = 0; - _fx_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t __fold_result___2 = {0}; - _fx_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t v_43 = {0}; _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t pel_i_l_0 = 0; _fx_N10Ast__exp_t glob_when_e_0 = 0; + _fx_N10Ast__exp_t glob_when_e_1 = 0; _fx_N10Ast__exp_t body_1 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_44 = {0}; - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&_fx_g10Ast__noloc, &v_42), _fx_catch_21); - _fx_make_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t(0, v_42, &_fx_g10Ast__noloc, - &__fold_result___2); + _fx_T2N10Ast__typ_tR10Ast__loc_t v_37 = {0}; + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&_fx_g10Ast__noloc, &glob_when_e_0), _fx_catch_21); + _fx_R10Ast__loc_t last_loc_0 = _fx_g10Ast__noloc; _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t lst_2 = nested_fors_2; for (; lst_2; lst_2 = lst_2->tl) { _fx_LT2N10Ast__pat_tN10Ast__exp_t pe_l_0 = 0; _fx_N10Ast__pat_t idxp_2 = 0; _fx_Nt6option1N10Ast__exp_t when_e_2 = 0; - _fx_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t v_45 = {0}; - _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t pel_i_l_1 = 0; - _fx_N10Ast__exp_t glob_when_e_1 = 0; - _fx_N10Ast__exp_t glob_when_e_2 = 0; - _fx_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_46 = {0}; - _fx_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t v_47 = {0}; + _fx_T2N10Ast__exp_tNt6option1N10Ast__exp_t v_38 = {0}; + _fx_N10Ast__exp_t v_39 = 0; + _fx_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_40 = {0}; + _fx_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t v_41 = 0; _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t* __pat___2 = &lst_2->hd; FX_COPY_PTR(__pat___2->t0, &pe_l_0); FX_COPY_PTR(__pat___2->t1, &idxp_2); FX_COPY_PTR(__pat___2->t2, &when_e_2); - _fx_copy_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t(&__fold_result___2, &v_45); - FX_COPY_PTR(v_45.t0, &pel_i_l_1); - FX_COPY_PTR(v_45.t1, &glob_when_e_1); - _fx_R10Ast__loc_t loc_1 = v_45.t2; - if ((when_e_2 != 0) + 1 == 1) { - FX_COPY_PTR(glob_when_e_1, &glob_when_e_2); goto _fx_endmatch_5; - } - if (FX_REC_VARIANT_TAG(glob_when_e_1) == 1) { - if ((when_e_2 != 0) + 1 == 2) { - FX_COPY_PTR(when_e_2->u.Some, &glob_when_e_2); goto _fx_endmatch_5; - } - } - if ((when_e_2 != 0) + 1 == 2) { - _fx_T2N10Ast__typ_tR10Ast__loc_t v_48 = {0}; - _fx_R10Ast__loc_t v_49; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(glob_when_e_1, &v_49, 0), _fx_catch_17); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypBool, &v_49, &v_48); + _fx_R10Ast__loc_t loc_1 = __pat___2->t3; + _fx_make_T2N10Ast__exp_tNt6option1N10Ast__exp_t(glob_when_e_0, when_e_2, &v_38); + if ((v_38.t1 != 0) + 1 == 1) { + FX_COPY_PTR(glob_when_e_0, &v_39); goto _fx_endmatch_5; + } + if (FX_REC_VARIANT_TAG(v_38.t0) == 1) { + _fx_Nt6option1N10Ast__exp_t v_42 = v_38.t1; + if ((v_42 != 0) + 1 == 2) { + FX_COPY_PTR(v_42->u.Some, &v_39); goto _fx_endmatch_5; + } + } + _fx_Nt6option1N10Ast__exp_t v_43 = v_38.t1; + if ((v_43 != 0) + 1 == 2) { + _fx_T2N10Ast__typ_tR10Ast__loc_t v_44 = {0}; + _fx_R10Ast__loc_t v_45; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(glob_when_e_0, &v_45, 0), _fx_catch_17); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypBool, &v_45, &v_44); FX_CALL( _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t( - _fx_g18Parser__OpLogicAnd, glob_when_e_1, when_e_2->u.Some, &v_48, &glob_when_e_2), _fx_catch_17); + _fx_g18Parser__OpLogicAnd, glob_when_e_0, v_43->u.Some, &v_44, &v_39), _fx_catch_17); _fx_catch_17: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_48); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_44); goto _fx_endmatch_5; } FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_18); _fx_endmatch_5: ; FX_CHECK_EXN(_fx_catch_18); - _fx_make_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(pe_l_0, idxp_2, &v_46); - FX_CALL(_fx_cons_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_46, pel_i_l_1, false, &pel_i_l_1), _fx_catch_18); - _fx_make_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t(pel_i_l_1, glob_when_e_2, &loc_1, - &v_47); - _fx_free_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t(&__fold_result___2); - _fx_copy_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t(&v_47, &__fold_result___2); + _fx_free_N10Ast__exp_t(&glob_when_e_0); + FX_COPY_PTR(v_39, &glob_when_e_0); + _fx_make_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(pe_l_0, idxp_2, &v_40); + FX_CALL(_fx_cons_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_40, pel_i_l_0, true, &v_41), _fx_catch_18); + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&pel_i_l_0); + FX_COPY_PTR(v_41, &pel_i_l_0); + last_loc_0 = loc_1; _fx_catch_18: ; - _fx_free_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t(&v_47); - _fx_free_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_46); - if (glob_when_e_2) { - _fx_free_N10Ast__exp_t(&glob_when_e_2); - } - if (glob_when_e_1) { - _fx_free_N10Ast__exp_t(&glob_when_e_1); + if (v_41) { + _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_41); } - if (pel_i_l_1) { - _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&pel_i_l_1); + _fx_free_T2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&v_40); + if (v_39) { + _fx_free_N10Ast__exp_t(&v_39); } - _fx_free_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t(&v_45); + _fx_free_T2N10Ast__exp_tNt6option1N10Ast__exp_t(&v_38); if (when_e_2) { _fx_free_Nt6option1N10Ast__exp_t(&when_e_2); } @@ -16770,19 +17399,16 @@ _fx_endmatch_4: ; } FX_CHECK_EXN(_fx_catch_21); } - _fx_copy_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t(&__fold_result___2, &v_43); - FX_COPY_PTR(v_43.t0, &pel_i_l_0); - FX_COPY_PTR(v_43.t1, &glob_when_e_0); - _fx_R10Ast__loc_t loc_2 = v_43.t2; - if (FX_REC_VARIANT_TAG(glob_when_e_0) == 1) { + FX_COPY_PTR(glob_when_e_0, &glob_when_e_1); + if (FX_REC_VARIANT_TAG(glob_when_e_1) == 1) { FX_COPY_PTR(body_0, &body_1); } else { - _fx_N10Ast__exp_t v_50 = 0; - _fx_N10Ast__exp_t v_51 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_52 = {0}; + _fx_N10Ast__exp_t v_46 = 0; + _fx_N10Ast__exp_t v_47 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_48 = {0}; _fx_N10Ast__exp_t check_e_0 = 0; - _fx_LN10Ast__exp_t v_53 = 0; + _fx_LN10Ast__exp_t v_49 = 0; int tag_1 = for_make_0->tag; bool res_1; if (tag_1 == 2) { @@ -16796,93 +17422,89 @@ _fx_endmatch_4: ; } FX_CHECK_EXN(_fx_catch_20); if (res_1) { - fx_exn_t v_54 = {0}; + fx_exn_t v_50 = {0}; fx_str_t slit_5 = FX_MAKE_STR("\'when\' cannot be used inside array or tuple comprehensions"); - FX_CALL(_fx_M6ParserFM9parse_errE2LT2N14Lexer__token_tR10Ast__loc_tS(ts_1, &slit_5, &v_54, 0), _fx_catch_19); - FX_THROW(&v_54, true, _fx_catch_19); + FX_CALL(_fx_M6ParserFM9parse_errE2LT2N14Lexer__token_tR10Ast__loc_tS(ts_1, &slit_5, &v_50, 0), _fx_catch_19); + FX_THROW(&v_50, true, _fx_catch_19); _fx_catch_19: ; - fx_free_exn(&v_54); + fx_free_exn(&v_50); goto _fx_endmatch_6; } _fx_endmatch_6: ; FX_CHECK_EXN(_fx_catch_20); - _fx_R10Ast__loc_t loc_3; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(glob_when_e_0, &loc_3, 0), _fx_catch_20); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&loc_3, &v_50), _fx_catch_20); - FX_CALL(_fx_M3AstFM11ExpContinueN10Ast__exp_t1RM5loc_t(&loc_3, &v_51), _fx_catch_20); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypVoid, &loc_3, &v_52); + _fx_R10Ast__loc_t loc_2; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(glob_when_e_0, &loc_2, 0), _fx_catch_20); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&loc_2, &v_46), _fx_catch_20); + FX_CALL(_fx_M3AstFM11ExpContinueN10Ast__exp_t1RM5loc_t(&loc_2, &v_47), _fx_catch_20); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypVoid, &loc_2, &v_48); FX_CALL( - _fx_M3AstFM5ExpIfN10Ast__exp_t4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(glob_when_e_0, v_50, - v_51, &v_52, &check_e_0), _fx_catch_20); - FX_CALL(_fx_cons_LN10Ast__exp_t(body_0, 0, true, &v_53), _fx_catch_20); - FX_CALL(_fx_cons_LN10Ast__exp_t(check_e_0, v_53, false, &v_53), _fx_catch_20); - FX_CALL(_fx_M6ParserFM10expseq2expN10Ast__exp_t2LN10Ast__exp_tR10Ast__loc_t(v_53, &loc_3, &body_1, 0), _fx_catch_20); + _fx_M3AstFM5ExpIfN10Ast__exp_t4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(glob_when_e_0, v_46, + v_47, &v_48, &check_e_0), _fx_catch_20); + FX_CALL(_fx_cons_LN10Ast__exp_t(body_0, 0, true, &v_49), _fx_catch_20); + FX_CALL(_fx_cons_LN10Ast__exp_t(check_e_0, v_49, false, &v_49), _fx_catch_20); + FX_CALL(_fx_M6ParserFM10expseq2expN10Ast__exp_t2LN10Ast__exp_tR10Ast__loc_t(v_49, &loc_2, &body_1, 0), _fx_catch_20); _fx_catch_20: ; - if (v_53) { - _fx_free_LN10Ast__exp_t(&v_53); + if (v_49) { + _fx_free_LN10Ast__exp_t(&v_49); } if (check_e_0) { _fx_free_N10Ast__exp_t(&check_e_0); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_52); - if (v_51) { - _fx_free_N10Ast__exp_t(&v_51); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_48); + if (v_47) { + _fx_free_N10Ast__exp_t(&v_47); } - if (v_50) { - _fx_free_N10Ast__exp_t(&v_50); + if (v_46) { + _fx_free_N10Ast__exp_t(&v_46); } } FX_CHECK_EXN(_fx_catch_21); - _fx_R16Ast__for_flags_t v_55; - FX_CALL(_fx_M3AstFM17default_for_flagsRM11for_flags_t0(&v_55, 0), _fx_catch_21); - _fx_R16Ast__for_flags_t v_56 = { is_parallel_0, *for_make_0, need_unzip_0, v_55.for_flag_fold, v_55.for_flag_nested }; - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&loc_2, &v_44, 0), _fx_catch_21); + _fx_R16Ast__for_flags_t v_51; + FX_CALL(_fx_M3AstFM17default_for_flagsRM11for_flags_t0(&v_51, 0), _fx_catch_21); + _fx_R16Ast__for_flags_t v_52 = { is_parallel_0, *for_make_0, need_unzip_0, v_51.for_flag_fold, v_51.for_flag_nested }; + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&last_loc_0, &v_37, 0), _fx_catch_21); FX_CALL( _fx_M3AstFM6ExpMapN10Ast__exp_t4LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tRM11for_flags_tT2N10Ast__typ_tRM5loc_t( - pel_i_l_0, body_1, &v_56, &v_44, &for_exp_0), _fx_catch_21); + pel_i_l_0, body_1, &v_52, &v_37, &for_exp_0), _fx_catch_21); _fx_catch_21: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_44); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_37); if (body_1) { _fx_free_N10Ast__exp_t(&body_1); } + if (glob_when_e_1) { + _fx_free_N10Ast__exp_t(&glob_when_e_1); + } if (glob_when_e_0) { _fx_free_N10Ast__exp_t(&glob_when_e_0); } if (pel_i_l_0) { _fx_free_LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_t(&pel_i_l_0); } - _fx_free_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t(&v_43); - _fx_free_T3LT2LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tR10Ast__loc_t(&__fold_result___2); - if (v_42) { - _fx_free_N10Ast__exp_t(&v_42); - } goto _fx_endmatch_7; } - _fx_N10Ast__exp_t __fold_result___3 = 0; + _fx_N10Ast__exp_t e_2 = 0; int_ nfors_0; FX_CALL( _fx_M6ParserFM8length1_i1LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(nested_fors_2, &nfors_0, 0), _fx_catch_24); - FX_COPY_PTR(body_0, &__fold_result___3); + FX_COPY_PTR(body_0, &e_2); int_ i_0 = 0; _fx_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t lst_3 = nested_fors_2; for (; lst_3; lst_3 = lst_3->tl, i_0 += 1) { _fx_LT2N10Ast__pat_tN10Ast__exp_t pe_l_1 = 0; _fx_N10Ast__pat_t idxp_3 = 0; _fx_Nt6option1N10Ast__exp_t when_e_3 = 0; - _fx_N10Ast__exp_t e_2 = 0; _fx_N10Ast__exp_t body_2 = 0; - _fx_N10Ast__exp_t v_57 = 0; + _fx_N10Ast__exp_t v_53 = 0; _fx_T4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t* __pat___3 = &lst_3->hd; FX_COPY_PTR(__pat___3->t0, &pe_l_1); FX_COPY_PTR(__pat___3->t1, &idxp_3); FX_COPY_PTR(__pat___3->t2, &when_e_3); - _fx_R10Ast__loc_t loc_4 = __pat___3->t3; - FX_COPY_PTR(__fold_result___3, &e_2); + _fx_R10Ast__loc_t loc_3 = __pat___3->t3; bool nested_0 = i_0 < nfors_0 - 1; _fx_R16Ast__for_flags_t flags_0; FX_CALL(_fx_M3AstFM17default_for_flagsRM11for_flags_t0(&flags_0, 0), _fx_catch_23); @@ -16898,37 +17520,37 @@ _fx_endmatch_4: ; flags_1 = rec_1; } if ((when_e_3 != 0) + 1 == 2) { - _fx_N10Ast__exp_t v_58 = 0; - _fx_N10Ast__exp_t v_59 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_60 = {0}; + _fx_N10Ast__exp_t v_54 = 0; + _fx_N10Ast__exp_t v_55 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_56 = {0}; _fx_N10Ast__exp_t check_e_1 = 0; - _fx_LN10Ast__exp_t v_61 = 0; + _fx_LN10Ast__exp_t v_57 = 0; _fx_N10Ast__exp_t when_e_4 = when_e_3->u.Some; - _fx_R10Ast__loc_t loc_5; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(when_e_4, &loc_5, 0), _fx_catch_22); - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&loc_5, &v_58), _fx_catch_22); - FX_CALL(_fx_M3AstFM11ExpContinueN10Ast__exp_t1RM5loc_t(&loc_5, &v_59), _fx_catch_22); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypVoid, &loc_5, &v_60); + _fx_R10Ast__loc_t loc_4; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(when_e_4, &loc_4, 0), _fx_catch_22); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&loc_4, &v_54), _fx_catch_22); + FX_CALL(_fx_M3AstFM11ExpContinueN10Ast__exp_t1RM5loc_t(&loc_4, &v_55), _fx_catch_22); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g15Parser__TypVoid, &loc_4, &v_56); FX_CALL( - _fx_M3AstFM5ExpIfN10Ast__exp_t4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(when_e_4, v_58, v_59, - &v_60, &check_e_1), _fx_catch_22); - FX_CALL(_fx_cons_LN10Ast__exp_t(e_2, 0, true, &v_61), _fx_catch_22); - FX_CALL(_fx_cons_LN10Ast__exp_t(check_e_1, v_61, false, &v_61), _fx_catch_22); - FX_CALL(_fx_M6ParserFM10expseq2expN10Ast__exp_t2LN10Ast__exp_tR10Ast__loc_t(v_61, &loc_5, &body_2, 0), _fx_catch_22); + _fx_M3AstFM5ExpIfN10Ast__exp_t4N10Ast__exp_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(when_e_4, v_54, v_55, + &v_56, &check_e_1), _fx_catch_22); + FX_CALL(_fx_cons_LN10Ast__exp_t(e_2, 0, true, &v_57), _fx_catch_22); + FX_CALL(_fx_cons_LN10Ast__exp_t(check_e_1, v_57, false, &v_57), _fx_catch_22); + FX_CALL(_fx_M6ParserFM10expseq2expN10Ast__exp_t2LN10Ast__exp_tR10Ast__loc_t(v_57, &loc_4, &body_2, 0), _fx_catch_22); _fx_catch_22: ; - if (v_61) { - _fx_free_LN10Ast__exp_t(&v_61); + if (v_57) { + _fx_free_LN10Ast__exp_t(&v_57); } if (check_e_1) { _fx_free_N10Ast__exp_t(&check_e_1); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_60); - if (v_59) { - _fx_free_N10Ast__exp_t(&v_59); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_56); + if (v_55) { + _fx_free_N10Ast__exp_t(&v_55); } - if (v_58) { - _fx_free_N10Ast__exp_t(&v_58); + if (v_54) { + _fx_free_N10Ast__exp_t(&v_54); } } else { @@ -16937,20 +17559,17 @@ _fx_endmatch_4: ; FX_CHECK_EXN(_fx_catch_23); FX_CALL( _fx_M3AstFM6ExpForN10Ast__exp_t5LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tN10Ast__exp_tRM11for_flags_tRM5loc_t(pe_l_1, - idxp_3, body_2, &flags_1, &loc_4, &v_57), _fx_catch_23); - _fx_free_N10Ast__exp_t(&__fold_result___3); - FX_COPY_PTR(v_57, &__fold_result___3); + idxp_3, body_2, &flags_1, &loc_3, &v_53), _fx_catch_23); + _fx_free_N10Ast__exp_t(&e_2); + FX_COPY_PTR(v_53, &e_2); _fx_catch_23: ; - if (v_57) { - _fx_free_N10Ast__exp_t(&v_57); + if (v_53) { + _fx_free_N10Ast__exp_t(&v_53); } if (body_2) { _fx_free_N10Ast__exp_t(&body_2); } - if (e_2) { - _fx_free_N10Ast__exp_t(&e_2); - } if (when_e_3) { _fx_free_Nt6option1N10Ast__exp_t(&when_e_3); } @@ -16962,11 +17581,11 @@ _fx_endmatch_4: ; } FX_CHECK_EXN(_fx_catch_24); } - FX_COPY_PTR(__fold_result___3, &for_exp_0); + FX_COPY_PTR(e_2, &for_exp_0); _fx_catch_24: ; - if (__fold_result___3) { - _fx_free_N10Ast__exp_t(&__fold_result___3); + if (e_2) { + _fx_free_N10Ast__exp_t(&e_2); } _fx_endmatch_7: ; @@ -16983,17 +17602,17 @@ _fx_cleanup: ; if (nested_fors_1) { _fx_free_LT3LT3N10Ast__pat_tN10Ast__pat_tN10Ast__exp_tNt6option1N10Ast__exp_tR10Ast__loc_t(&nested_fors_1); } - _fx_free_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t( - &__fold_result___0); - _fx_free_T2LN10Ast__exp_tLT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&v_0); if (glob_el_0) { _fx_free_LN10Ast__exp_t(&glob_el_0); } + if (new_nested_fors_0) { + _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&new_nested_fors_0); + } if (nested_fors_2) { _fx_free_LT4LT2N10Ast__pat_tN10Ast__exp_tN10Ast__pat_tNt6option1N10Ast__exp_tR10Ast__loc_t(&nested_fors_2); } - if (v_1) { - _fx_free_LN10Ast__exp_t(&v_1); + if (v_0) { + _fx_free_LN10Ast__exp_t(&v_0); } if (for_iter_exp_0) { _fx_free_N10Ast__exp_t(&for_iter_exp_0); @@ -17001,7 +17620,7 @@ _fx_cleanup: ; if (vts_1) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&vts_1); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_2); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_1); if (ts_1) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); } @@ -17075,42 +17694,40 @@ FX_EXTERN_C int } if (ts_2 != 0) { if (ts_2->hd.t0.tag == 19) { - _fx_LN10Ast__pat_t __fold_result___0 = 0; + _fx_LN10Ast__pat_t res_0 = 0; _fx_LN10Ast__pat_t pl_3 = 0; - _fx_LN10Ast__exp_t __fold_result___1 = 0; + _fx_LN10Ast__exp_t res_1 = 0; _fx_LN10Ast__exp_t el_3 = 0; _fx_LN10Ast__pat_t lst_0 = pl_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN10Ast__pat_t r_0 = 0; + _fx_LN10Ast__pat_t v_1 = 0; _fx_N10Ast__pat_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LN10Ast__pat_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, res_0, true, &v_1), _fx_catch_1); + _fx_free_LN10Ast__pat_t(&res_0); + FX_COPY_PTR(v_1, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LN10Ast__pat_t(&r_0); + if (v_1) { + _fx_free_LN10Ast__pat_t(&v_1); } FX_CHECK_EXN(_fx_catch_5); } - FX_COPY_PTR(__fold_result___0, &pl_3); + FX_COPY_PTR(res_0, &pl_3); _fx_LN10Ast__exp_t lst_1 = el_2; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN10Ast__exp_t r_1 = 0; + _fx_LN10Ast__exp_t v_2 = 0; _fx_N10Ast__exp_t a_1 = lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LN10Ast__exp_t(a_1, r_1, false, &r_1), _fx_catch_2); - _fx_free_LN10Ast__exp_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LN10Ast__exp_t(a_1, res_1, true, &v_2), _fx_catch_2); + _fx_free_LN10Ast__exp_t(&res_1); + FX_COPY_PTR(v_2, &res_1); _fx_catch_2: ; - if (r_1) { - _fx_free_LN10Ast__exp_t(&r_1); + if (v_2) { + _fx_free_LN10Ast__exp_t(&v_2); } FX_CHECK_EXN(_fx_catch_5); } - FX_COPY_PTR(__fold_result___1, &el_3); + FX_COPY_PTR(res_1, &el_3); if (el_3 != 0) { if (el_3->tl == 0) { if (pl_3 != 0) { @@ -17129,52 +17746,52 @@ FX_EXTERN_C int } } } - _fx_N10Ast__pat_t v_1 = 0; - _fx_N10Ast__pat_t v_2 = 0; - _fx_N10Ast__exp_t v_3 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_4 = {0}; + _fx_N10Ast__pat_t v_3 = 0; + _fx_N10Ast__pat_t v_4 = 0; _fx_N10Ast__exp_t v_5 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_6 = {0}; + _fx_N10Ast__exp_t v_7 = 0; _fx_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t result_2 = {0}; if (pl_3 != 0) { - FX_COPY_PTR(pl_3->hd, &v_1); + FX_COPY_PTR(pl_3->hd, &v_3); } else { FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_4); } FX_CHECK_EXN(_fx_catch_4); - _fx_R10Ast__loc_t v_6; - FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(v_1, &v_6, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM8PatTupleN10Ast__pat_t2LN10Ast__pat_tRM5loc_t(pl_3, &v_6, &v_2), _fx_catch_4); + _fx_R10Ast__loc_t v_8; + FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(v_3, &v_8, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM8PatTupleN10Ast__pat_t2LN10Ast__pat_tRM5loc_t(pl_3, &v_8, &v_4), _fx_catch_4); if (el_3 != 0) { - FX_COPY_PTR(el_3->hd, &v_3); + FX_COPY_PTR(el_3->hd, &v_5); } else { FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_4); } FX_CHECK_EXN(_fx_catch_4); - _fx_R10Ast__loc_t v_7; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(v_3, &v_7, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_7, &v_4, 0), _fx_catch_4); - FX_CALL(_fx_M3AstFM10ExpMkTupleN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(el_3, &v_4, &v_5), _fx_catch_4); - _fx_make_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t(ts_2, v_2, v_5, &result_2); + _fx_R10Ast__loc_t v_9; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(v_5, &v_9, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_9, &v_6, 0), _fx_catch_4); + FX_CALL(_fx_M3AstFM10ExpMkTupleN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(el_3, &v_6, &v_7), _fx_catch_4); + _fx_make_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t(ts_2, v_4, v_7, &result_2); _fx_free_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t(&result_0); _fx_copy_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t(&result_2, &result_0); FX_BREAK(_fx_catch_4); _fx_catch_4: ; _fx_free_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t(&result_2); + if (v_7) { + _fx_free_N10Ast__exp_t(&v_7); + } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_6); if (v_5) { _fx_free_N10Ast__exp_t(&v_5); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_4); - if (v_3) { - _fx_free_N10Ast__exp_t(&v_3); - } - if (v_2) { - _fx_free_N10Ast__pat_t(&v_2); + if (v_4) { + _fx_free_N10Ast__pat_t(&v_4); } - if (v_1) { - _fx_free_N10Ast__pat_t(&v_1); + if (v_3) { + _fx_free_N10Ast__pat_t(&v_3); } _fx_endmatch_0: ; @@ -17184,20 +17801,20 @@ FX_EXTERN_C int if (el_3) { _fx_free_LN10Ast__exp_t(&el_3); } - if (__fold_result___1) { - _fx_free_LN10Ast__exp_t(&__fold_result___1); + if (res_1) { + _fx_free_LN10Ast__exp_t(&res_1); } if (pl_3) { _fx_free_LN10Ast__pat_t(&pl_3); } - if (__fold_result___0) { - _fx_free_LN10Ast__pat_t(&__fold_result___0); + if (res_0) { + _fx_free_LN10Ast__pat_t(&res_0); } goto _fx_endmatch_2; } } - fx_exn_t v_8 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_9 = {0}; + fx_exn_t v_10 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_11 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; _fx_N10Ast__pat_t p_0 = 0; if (expect_comma_2) { @@ -17210,42 +17827,42 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_8); fx_str_t slit_1 = FX_MAKE_STR("missing \',\'?"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_8), _fx_catch_8); - FX_THROW(&v_8, true, _fx_catch_8); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_10), _fx_catch_8); + FX_THROW(&v_10, true, _fx_catch_8); } FX_CALL( _fx_M6ParserFM9parse_patT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t2LT2N14Lexer__token_tR10Ast__loc_tB(ts_2, true, - &v_9, 0), _fx_catch_8); - FX_COPY_PTR(v_9.t0, &ts_3); - FX_COPY_PTR(v_9.t1, &p_0); + &v_11, 0), _fx_catch_8); + FX_COPY_PTR(v_11.t0, &ts_3); + FX_COPY_PTR(v_11.t1, &p_0); if (ts_3 != 0) { if (ts_3->hd.t0.tag == 86) { - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_10 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_12 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_4 = 0; _fx_N10Ast__exp_t e_0 = 0; - _fx_LN10Ast__pat_t v_11 = 0; - _fx_LN10Ast__exp_t v_12 = 0; + _fx_LN10Ast__pat_t v_13 = 0; + _fx_LN10Ast__exp_t v_14 = 0; FX_CALL( _fx_M6ParserFM17parse_complex_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t( - ts_3->tl, &v_10, 0), _fx_catch_6); - FX_COPY_PTR(v_10.t0, &ts_4); - FX_COPY_PTR(v_10.t1, &e_0); - FX_CALL(_fx_cons_LN10Ast__pat_t(p_0, pl_2, true, &v_11), _fx_catch_6); - FX_CALL(_fx_cons_LN10Ast__exp_t(e_0, el_2, true, &v_12), _fx_catch_6); + ts_3->tl, &v_12, 0), _fx_catch_6); + FX_COPY_PTR(v_12.t0, &ts_4); + FX_COPY_PTR(v_12.t1, &e_0); + FX_CALL(_fx_cons_LN10Ast__pat_t(p_0, pl_2, true, &v_13), _fx_catch_6); + FX_CALL(_fx_cons_LN10Ast__exp_t(e_0, el_2, true, &v_14), _fx_catch_6); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_4, &ts_1); expect_comma_1 = true; _fx_free_LN10Ast__pat_t(&pl_1); - FX_COPY_PTR(v_11, &pl_1); + FX_COPY_PTR(v_13, &pl_1); _fx_free_LN10Ast__exp_t(&el_1); - FX_COPY_PTR(v_12, &el_1); + FX_COPY_PTR(v_14, &el_1); _fx_catch_6: ; - if (v_12) { - _fx_free_LN10Ast__exp_t(&v_12); + if (v_14) { + _fx_free_LN10Ast__exp_t(&v_14); } - if (v_11) { - _fx_free_LN10Ast__pat_t(&v_11); + if (v_13) { + _fx_free_LN10Ast__pat_t(&v_13); } if (e_0) { _fx_free_N10Ast__exp_t(&e_0); @@ -17253,11 +17870,11 @@ FX_EXTERN_C int if (ts_4) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_4); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_10); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_12); goto _fx_endmatch_1; } } - fx_exn_t v_13 = {0}; + fx_exn_t v_15 = {0}; _fx_R10Ast__loc_t loc_2; if (ts_3 != 0) { loc_2 = ts_3->hd.t1; @@ -17267,11 +17884,11 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_7); fx_str_t slit_2 = FX_MAKE_STR("\'=\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_13), _fx_catch_7); - FX_THROW(&v_13, true, _fx_catch_7); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_15), _fx_catch_7); + FX_THROW(&v_15, true, _fx_catch_7); _fx_catch_7: ; - fx_free_exn(&v_13); + fx_free_exn(&v_15); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_8); @@ -17283,8 +17900,8 @@ FX_EXTERN_C int if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_9); - fx_free_exn(&v_8); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_11); + fx_free_exn(&v_10); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_9); @@ -17386,7 +18003,6 @@ _fx_endmatch_1: ; _fx_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_tN10Ast__exp_t v_6 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_4 = 0; _fx_N10Ast__exp_t for_exp_0 = 0; - _fx_N10Ast__exp_t for_iter_exp_0 = 0; _fx_N10Ast__exp_t fold_exp_0 = 0; _fx_N10Ast__exp_t v_7 = 0; _fx_LN10Ast__exp_t v_8 = 0; @@ -17401,11 +18017,9 @@ _fx_endmatch_1: ; ts_3, &_fx_g19Parser__ForMakeNone, &v_6, 0), _fx_catch_1); FX_COPY_PTR(v_6.t0, &ts_4); FX_COPY_PTR(v_6.t1, &for_exp_0); - FX_COPY_PTR(v_6.t2, &for_iter_exp_0); - fx_str_t slit_1 = FX_MAKE_STR(""); FX_CALL( - _fx_M6ParserFM18transform_fold_expN10Ast__exp_t6SN10Ast__pat_tN10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR10Ast__loc_t( - &slit_1, p_0, e_0, for_exp_0, for_iter_exp_0, &v_4->t1, &fold_exp_0, 0), _fx_catch_1); + _fx_M6ParserFM22transform_new_fold_expN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tN10Ast__exp_tR10Ast__loc_t(p_0, e_0, + for_exp_0, &v_4->t1, &fold_exp_0, 0), _fx_catch_1); _fx_R10Ast__loc_t v_9; FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(p_0, &v_9, 0), _fx_catch_1); FX_CALL( @@ -17424,9 +18038,6 @@ _fx_endmatch_1: ; if (fold_exp_0) { _fx_free_N10Ast__exp_t(&fold_exp_0); } - if (for_iter_exp_0) { - _fx_free_N10Ast__exp_t(&for_iter_exp_0); - } if (for_exp_0) { _fx_free_N10Ast__exp_t(&for_exp_0); } @@ -18559,9 +19170,10 @@ FX_EXTERN_C int FX_CALL(_fx_cons_LR10Ast__loc_t(l1_1, v_9, false, &v_9), _fx_catch_14); _fx_R10Ast__loc_t ll_0; FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(v_9, l1_1, &ll_0, 0), _fx_catch_14); + int_ v_24 = _fx_g18Parser__parser_ctx.m_idx; _fx_R9Ast__id_t tmp_0; fx_str_t slit_0 = FX_MAKE_STR("v"); - FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(_fx_g18Parser__parser_ctx.m_idx, &slit_0, &tmp_0, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(v_24, &slit_0, &tmp_0, 0), _fx_catch_14); FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&tmp_0, l1_1, &v_10), _fx_catch_14); FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_11, 0), _fx_catch_14); FX_CALL( @@ -18588,23 +19200,23 @@ FX_EXTERN_C int FX_COPY_PTR(v_12, &try_block_0); } else { - _fx_LN10Ast__exp_t v_24 = 0; + _fx_LN10Ast__exp_t v_25 = 0; _fx_LN10Ast__exp_t lstend_0 = 0; _fx_LN10Ast__exp_t lst_0 = v_12; for (; lst_0; lst_0 = lst_0->tl) { _fx_N10Ast__exp_t x_0 = lst_0->hd; _fx_LN10Ast__exp_t node_0 = 0; FX_CALL(_fx_cons_LN10Ast__exp_t(x_0, 0, false, &node_0), _fx_catch_3); - FX_LIST_APPEND(v_24, lstend_0, node_0); + FX_LIST_APPEND(v_25, lstend_0, node_0); _fx_catch_3: ; FX_CHECK_EXN(_fx_catch_4); } - _fx_M6ParserFM5link2LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(v_24, v_15, &try_block_0, 0); + _fx_M6ParserFM5link2LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(v_25, v_15, &try_block_0, 0); _fx_catch_4: ; - if (v_24) { - _fx_free_LN10Ast__exp_t(&v_24); + if (v_25) { + _fx_free_LN10Ast__exp_t(&v_25); } } FX_CHECK_EXN(_fx_catch_14); @@ -18620,8 +19232,8 @@ FX_EXTERN_C int } } _fx_LR10Ast__loc_t llist_0 = 0; - _fx_N10Ast__typ_t v_25 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_26 = {0}; + _fx_N10Ast__typ_t v_26 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_27 = {0}; _fx_LR10Ast__loc_t lstend_1 = 0; _fx_LN10Ast__exp_t lst_1 = try_block_0; for (; lst_1; lst_1 = lst_1->tl) { @@ -18637,23 +19249,24 @@ FX_EXTERN_C int } _fx_R10Ast__loc_t loc_0; FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(llist_0, l1_1, &loc_0, 0), _fx_catch_7); - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_25, 0), _fx_catch_7); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_25, &loc_0, &v_26); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(try_block_0, &v_26, &try_block_1), + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_26, 0), _fx_catch_7); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_26, &loc_0, &v_27); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(try_block_0, &v_27, &try_block_1), _fx_catch_7); _fx_catch_7: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_26); - if (v_25) { - _fx_free_N10Ast__typ_t(&v_25); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_27); + if (v_26) { + _fx_free_N10Ast__typ_t(&v_26); } FX_FREE_LIST_SIMPLE(&llist_0); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_14); + int_ v_28 = _fx_g18Parser__parser_ctx.m_idx; _fx_R9Ast__id_t some_exn_0; fx_str_t slit_1 = FX_MAKE_STR("e"); - FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(_fx_g18Parser__parser_ctx.m_idx, &slit_1, &some_exn_0, 0), _fx_catch_14); + FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(v_28, &slit_1, &some_exn_0, 0), _fx_catch_14); FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&some_exn_0, fe_loc_0, &some_exn_pat_0), _fx_catch_14); _fx_make_T2N10Ast__typ_tR10Ast__loc_t(_fx_g14Parser__TypExn, fe_loc_0, &v_16); FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&some_exn_0, &v_16, &v_17), @@ -18678,23 +19291,23 @@ FX_EXTERN_C int FX_COPY_PTR(v_19, &catch_block_0); } else { - _fx_LN10Ast__exp_t v_27 = 0; + _fx_LN10Ast__exp_t v_29 = 0; _fx_LN10Ast__exp_t lstend_2 = 0; _fx_LN10Ast__exp_t lst_2 = v_19; for (; lst_2; lst_2 = lst_2->tl) { _fx_N10Ast__exp_t x_1 = lst_2->hd; _fx_LN10Ast__exp_t node_2 = 0; FX_CALL(_fx_cons_LN10Ast__exp_t(x_1, 0, false, &node_2), _fx_catch_9); - FX_LIST_APPEND(v_27, lstend_2, node_2); + FX_LIST_APPEND(v_29, lstend_2, node_2); _fx_catch_9: ; FX_CHECK_EXN(_fx_catch_10); } - _fx_M6ParserFM5link2LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(v_27, v_20, &catch_block_0, 0); + _fx_M6ParserFM5link2LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(v_29, v_20, &catch_block_0, 0); _fx_catch_10: ; - if (v_27) { - _fx_free_LN10Ast__exp_t(&v_27); + if (v_29) { + _fx_free_LN10Ast__exp_t(&v_29); } } FX_CHECK_EXN(_fx_catch_14); @@ -18710,8 +19323,8 @@ FX_EXTERN_C int } } _fx_LR10Ast__loc_t llist_1 = 0; - _fx_N10Ast__typ_t v_28 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_29 = {0}; + _fx_N10Ast__typ_t v_30 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_31 = {0}; _fx_LR10Ast__loc_t lstend_3 = 0; _fx_LN10Ast__exp_t lst_3 = catch_block_0; for (; lst_3; lst_3 = lst_3->tl) { @@ -18727,16 +19340,16 @@ FX_EXTERN_C int } _fx_R10Ast__loc_t loc_1; FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(llist_1, fe_loc_0, &loc_1, 0), _fx_catch_13); - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_28, 0), _fx_catch_13); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_28, &loc_1, &v_29); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_30, 0), _fx_catch_13); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_30, &loc_1, &v_31); FX_CALL( - _fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(catch_block_0, &v_29, &catch_block_1), + _fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(catch_block_0, &v_31, &catch_block_1), _fx_catch_13); _fx_catch_13: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_29); - if (v_28) { - _fx_free_N10Ast__typ_t(&v_28); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_31); + if (v_30) { + _fx_free_N10Ast__typ_t(&v_30); } FX_FREE_LIST_SIMPLE(&llist_1); @@ -18842,98 +19455,92 @@ FX_EXTERN_C int } } if (ts_0 != 0) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_30 = &ts_0->hd; - if (v_30->t0.tag == 26) { - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_31 = {0}; + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_32 = &ts_0->hd; + if (v_32->t0.tag == 26) { + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_33 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_5 = 0; _fx_N10Ast__exp_t e_4 = 0; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t v_32 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t v_34 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_6 = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t cases_1 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_33 = {0}; - _fx_N10Ast__exp_t v_34 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_35 = {0}; + _fx_N10Ast__exp_t v_36 = 0; FX_CALL( _fx_M6ParserFM9parse_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t2LT2N14Lexer__token_tR10Ast__loc_tB( - ts_0->tl, false, &v_31, 0), _fx_catch_16); - FX_COPY_PTR(v_31.t0, &ts_5); - FX_COPY_PTR(v_31.t1, &e_4); + ts_0->tl, false, &v_33, 0), _fx_catch_16); + FX_COPY_PTR(v_33.t0, &ts_5); + FX_COPY_PTR(v_33.t1, &e_4); FX_CALL( _fx_M6ParserFM17parse_match_casesT2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t( - ts_5, &v_32, 0), _fx_catch_16); - FX_COPY_PTR(v_32.t0, &ts_6); - FX_COPY_PTR(v_32.t1, &cases_1); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_30->t1, &v_33, 0), _fx_catch_16); + ts_5, &v_34, 0), _fx_catch_16); + FX_COPY_PTR(v_34.t0, &ts_6); + FX_COPY_PTR(v_34.t1, &cases_1); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_32->t1, &v_35, 0), _fx_catch_16); FX_CALL( _fx_M3AstFM8ExpMatchN10Ast__exp_t3N10Ast__exp_tLT2N10Ast__pat_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(e_4, cases_1, - &v_33, &v_34), _fx_catch_16); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_6, v_34, fx_result); + &v_35, &v_36), _fx_catch_16); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_6, v_36, fx_result); _fx_catch_16: ; - if (v_34) { - _fx_free_N10Ast__exp_t(&v_34); + if (v_36) { + _fx_free_N10Ast__exp_t(&v_36); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_33); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_35); if (cases_1) { _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&cases_1); } if (ts_6) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_6); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t(&v_32); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t(&v_34); if (e_4) { _fx_free_N10Ast__exp_t(&e_4); } if (ts_5) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_5); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_31); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_33); goto _fx_endmatch_4; } } if (ts_0 != 0) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_35 = &ts_0->hd; - if (v_35->t0.tag == 18) { - _fx_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t v_36 = {0}; + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_37 = &ts_0->hd; + if (v_37->t0.tag == 18) { + _fx_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t v_38 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_7 = 0; _fx_N10Ast__pat_t p_0 = 0; _fx_N10Ast__exp_t e_5 = 0; - _fx_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_tN10Ast__exp_t v_37 = {0}; + _fx_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_tN10Ast__exp_t v_39 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_8 = 0; _fx_N10Ast__exp_t for_exp_0 = 0; - _fx_N10Ast__exp_t for_iter_exp_0 = 0; _fx_N10Ast__exp_t fold_exp_0 = 0; FX_CALL( _fx_M6ParserFM16parse_fold_init_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__pat_tLN10Ast__exp_t( - ts_0->tl, false, 0, 0, &v_36, 0), _fx_catch_17); - FX_COPY_PTR(v_36.t0, &ts_7); - FX_COPY_PTR(v_36.t1, &p_0); - FX_COPY_PTR(v_36.t2, &e_5); + ts_0->tl, false, 0, 0, &v_38, 0), _fx_catch_17); + FX_COPY_PTR(v_38.t0, &ts_7); + FX_COPY_PTR(v_38.t1, &p_0); + FX_COPY_PTR(v_38.t2, &e_5); FX_CALL( _fx_M6ParserFM9parse_forT3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_tN10Ast__exp_t2LT2N14Lexer__token_tR10Ast__loc_tN15Ast__for_make_t( - ts_7, &_fx_g19Parser__ForMakeNone, &v_37, 0), _fx_catch_17); - FX_COPY_PTR(v_37.t0, &ts_8); - FX_COPY_PTR(v_37.t1, &for_exp_0); - FX_COPY_PTR(v_37.t2, &for_iter_exp_0); - fx_str_t slit_2 = FX_MAKE_STR(""); + ts_7, &_fx_g19Parser__ForMakeNone, &v_39, 0), _fx_catch_17); + FX_COPY_PTR(v_39.t0, &ts_8); + FX_COPY_PTR(v_39.t1, &for_exp_0); FX_CALL( - _fx_M6ParserFM18transform_fold_expN10Ast__exp_t6SN10Ast__pat_tN10Ast__exp_tN10Ast__exp_tN10Ast__exp_tR10Ast__loc_t( - &slit_2, p_0, e_5, for_exp_0, for_iter_exp_0, &v_35->t1, &fold_exp_0, 0), _fx_catch_17); + _fx_M6ParserFM22transform_new_fold_expN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tN10Ast__exp_tR10Ast__loc_t(p_0, e_5, + for_exp_0, &v_37->t1, &fold_exp_0, 0), _fx_catch_17); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_8, fold_exp_0, fx_result); _fx_catch_17: ; if (fold_exp_0) { _fx_free_N10Ast__exp_t(&fold_exp_0); } - if (for_iter_exp_0) { - _fx_free_N10Ast__exp_t(&for_iter_exp_0); - } if (for_exp_0) { _fx_free_N10Ast__exp_t(&for_exp_0); } if (ts_8) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_8); } - _fx_free_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_tN10Ast__exp_t(&v_37); + _fx_free_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_tN10Ast__exp_t(&v_39); if (e_5) { _fx_free_N10Ast__exp_t(&e_5); } @@ -18943,7 +19550,7 @@ FX_EXTERN_C int if (ts_7) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_7); } - _fx_free_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t(&v_36); + _fx_free_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tN10Ast__exp_t(&v_38); goto _fx_endmatch_4; } } @@ -19135,20 +19742,20 @@ _fx_endmatch_0: ; FX_COPY_PTR(v_1.t2, &rt_0); FX_COPY_PTR(v_1.t3, &prologue_0); bool have_keywords_0 = v_1.t4; + int_ v_10 = _fx_g18Parser__parser_ctx.m_idx; _fx_R9Ast__id_t fname_0; - FX_CALL(_fx_M3AstFM6dup_idRM4id_t2iRM4id_t(_fx_g18Parser__parser_ctx.m_idx, &_fx_g18Ast__std__lambda__, &fname_0, 0), - _fx_cleanup); + FX_CALL(_fx_M3AstFM6dup_idRM4id_t2iRM4id_t(v_10, &_fx_g18Ast__std__lambda__, &fname_0, 0), _fx_cleanup); FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&loc_1, &v_2, 0), _fx_cleanup); FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&fname_0, &v_2, &fname_exp_0), _fx_cleanup); - _fx_R16Ast__fun_flags_t v_10; - FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_10, 0), _fx_cleanup); - _fx_R16Ast__fun_flags_t v_11 = - { v_10.fun_flag_pure, v_10.fun_flag_ccode, have_keywords_0, v_10.fun_flag_inline, v_10.fun_flag_nothrow, - v_10.fun_flag_really_nothrow, true, v_10.fun_flag_ctor, v_10.fun_flag_method_of, v_10.fun_flag_uses_fv, - v_10.fun_flag_recursive, v_10.fun_flag_instance }; + _fx_R16Ast__fun_flags_t v_11; + FX_CALL(_fx_M3AstFM17default_fun_flagsRM11fun_flags_t0(&v_11, 0), _fx_cleanup); + _fx_R16Ast__fun_flags_t v_12 = + { v_11.fun_flag_pure, v_11.fun_flag_ccode, have_keywords_0, v_11.fun_flag_inline, v_11.fun_flag_nothrow, + v_11.fun_flag_really_nothrow, true, v_11.fun_flag_ctor, v_11.fun_flag_method_of, v_11.fun_flag_uses_fv, + v_11.fun_flag_recursive, v_11.fun_flag_instance }; FX_CALL( _fx_M6ParserFM23parse_body_and_make_funT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t7LT2N14Lexer__token_tR10Ast__loc_tR9Ast__id_tLN10Ast__pat_tN10Ast__typ_tLN10Ast__exp_tR16Ast__fun_flags_tR10Ast__loc_t( - ts_2, &fname_0, params_0, rt_0, prologue_0, &v_11, &loc_1, &v_3, 0), _fx_cleanup); + ts_2, &fname_0, params_0, rt_0, prologue_0, &v_12, &loc_1, &v_3, 0), _fx_cleanup); FX_COPY_PTR(v_3.t0, &ts_3); FX_COPY_PTR(v_3.t1, &df_0); FX_CALL(_fx_cons_LN10Ast__exp_t(fname_exp_0, 0, true, &v_4), _fx_cleanup); @@ -19484,44 +20091,42 @@ FX_EXTERN_C int } if (ts_2 != 0) { if (ts_2->hd.t0.tag == 46) { - _fx_LN10Ast__pat_t __fold_result___0 = 0; + _fx_LN10Ast__pat_t res_0 = 0; _fx_LN10Ast__pat_t v_1 = 0; - _fx_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t __fold_result___1 = 0; + _fx_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t res_1 = 0; _fx_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t v_2 = 0; _fx_T3LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_tLT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t result_1 = {0}; _fx_LN10Ast__pat_t lst_0 = params_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN10Ast__pat_t r_0 = 0; + _fx_LN10Ast__pat_t v_3 = 0; _fx_N10Ast__pat_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LN10Ast__pat_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, res_0, true, &v_3), _fx_catch_1); + _fx_free_LN10Ast__pat_t(&res_0); + FX_COPY_PTR(v_3, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LN10Ast__pat_t(&r_0); + if (v_3) { + _fx_free_LN10Ast__pat_t(&v_3); } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___0, &v_1); + FX_COPY_PTR(res_0, &v_1); _fx_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t lst_1 = kw_params_2; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t r_1 = 0; + _fx_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t v_4 = 0; _fx_T4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t* a_1 = &lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(a_1, r_1, false, &r_1), _fx_catch_2); - _fx_free_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(a_1, res_1, true, &v_4), _fx_catch_2); + _fx_free_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&res_1); + FX_COPY_PTR(v_4, &res_1); _fx_catch_2: ; - if (r_1) { - _fx_free_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&r_1); + if (v_4) { + _fx_free_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&v_4); } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___1, &v_2); + FX_COPY_PTR(res_1, &v_2); _fx_make_T3LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_tLT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t( ts_2->tl, v_1, v_2, &result_1); _fx_free_T3LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_tLT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t( @@ -19536,37 +20141,37 @@ FX_EXTERN_C int if (v_2) { _fx_free_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&v_2); } - if (__fold_result___1) { - _fx_free_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&__fold_result___1); + if (res_1) { + _fx_free_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&res_1); } if (v_1) { _fx_free_LN10Ast__pat_t(&v_1); } - if (__fold_result___0) { - _fx_free_LN10Ast__pat_t(&__fold_result___0); + if (res_0) { + _fx_free_LN10Ast__pat_t(&res_0); } goto _fx_endmatch_1; } } if (ts_2 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_3 = ts_2->tl; - if (v_3 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_4 = v_3->tl; - if (v_4 != 0) { - if (v_4->hd.t0.tag == 54) { - _fx_N14Lexer__token_t* v_5 = &v_3->hd.t0; - if (v_5->tag == 2) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_6 = &ts_2->hd; - if (v_6->t0.tag == 82) { - fx_exn_t v_7 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_8 = {0}; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_5 = ts_2->tl; + if (v_5 != 0) { + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_6 = v_5->tl; + if (v_6 != 0) { + if (v_6->hd.t0.tag == 54) { + _fx_N14Lexer__token_t* v_7 = &v_5->hd.t0; + if (v_7->tag == 2) { + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_8 = &ts_2->hd; + if (v_8->t0.tag == 82) { + fx_exn_t v_9 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_10 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; _fx_N10Ast__typ_t t_0 = 0; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_9 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_11 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_4 = 0; _fx_N10Ast__exp_t defparam_0 = 0; - _fx_T4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t v_10 = {0}; - _fx_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t v_11 = 0; + _fx_T4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t v_12 = {0}; + _fx_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t v_13 = 0; if (expect_comma_2) { _fx_R10Ast__loc_t loc_1; if (ts_2 != 0) { @@ -19577,25 +20182,25 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_6); fx_str_t slit_1 = FX_MAKE_STR("\',\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_7), _fx_catch_6); - FX_THROW(&v_7, true, _fx_catch_6); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_9), _fx_catch_6); + FX_THROW(&v_9, true, _fx_catch_6); } FX_CALL( _fx_M6ParserFM14parse_typespecT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t1LT2N14Lexer__token_tR10Ast__loc_t( - v_4->tl, &v_8, 0), _fx_catch_6); - FX_COPY_PTR(v_8.t0, &ts_3); - FX_COPY_PTR(v_8.t1, &t_0); + v_6->tl, &v_10, 0), _fx_catch_6); + FX_COPY_PTR(v_10.t0, &ts_3); + FX_COPY_PTR(v_10.t1, &t_0); if (ts_3 != 0) { if (ts_3->hd.t0.tag == 86) { - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_12 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_14 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_5 = 0; _fx_N10Ast__exp_t v0_0 = 0; FX_CALL( _fx_M6ParserFM9parse_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t2LT2N14Lexer__token_tR10Ast__loc_tB( - ts_3->tl, true, &v_12, 0), _fx_catch_4); - FX_COPY_PTR(v_12.t0, &ts_5); - FX_COPY_PTR(v_12.t1, &v0_0); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_5, v0_0, &v_9); + ts_3->tl, true, &v_14, 0), _fx_catch_4); + FX_COPY_PTR(v_14.t0, &ts_5); + FX_COPY_PTR(v_14.t1, &v0_0); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_5, v0_0, &v_11); _fx_catch_4: ; if (v0_0) { @@ -19604,18 +20209,18 @@ FX_EXTERN_C int if (ts_5) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_5); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_12); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_14); goto _fx_endmatch_0; } } if (ts_3 != 0) { - _fx_N10Ast__exp_t v_13 = 0; - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&ts_3->hd.t1, &v_13), _fx_catch_5); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_3, v_13, &v_9); + _fx_N10Ast__exp_t v_15 = 0; + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&ts_3->hd.t1, &v_15), _fx_catch_5); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_3, v_15, &v_11); _fx_catch_5: ; - if (v_13) { - _fx_free_N10Ast__exp_t(&v_13); + if (v_15) { + _fx_free_N10Ast__exp_t(&v_15); } goto _fx_endmatch_0; } @@ -19623,12 +20228,12 @@ FX_EXTERN_C int _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_6); - FX_COPY_PTR(v_9.t0, &ts_4); - FX_COPY_PTR(v_9.t1, &defparam_0); - _fx_R9Ast__id_t v_14; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_5->u.IDENT.t1, &v_14, 0), _fx_catch_6); - _fx_make_T4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&v_14, t_0, defparam_0, &v_6->t1, &v_10); - FX_CALL(_fx_cons_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&v_10, kw_params_2, true, &v_11), + FX_COPY_PTR(v_11.t0, &ts_4); + FX_COPY_PTR(v_11.t1, &defparam_0); + _fx_R9Ast__id_t v_16; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_7->u.IDENT.t1, &v_16, 0), _fx_catch_6); + _fx_make_T4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&v_16, t_0, defparam_0, &v_8->t1, &v_12); + FX_CALL(_fx_cons_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&v_12, kw_params_2, true, &v_13), _fx_catch_6); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_4, &ts_1); @@ -19636,28 +20241,28 @@ FX_EXTERN_C int _fx_free_LN10Ast__pat_t(¶ms_1); FX_COPY_PTR(params_2, ¶ms_1); _fx_free_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&kw_params_1); - FX_COPY_PTR(v_11, &kw_params_1); + FX_COPY_PTR(v_13, &kw_params_1); _fx_catch_6: ; - if (v_11) { - _fx_free_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&v_11); + if (v_13) { + _fx_free_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&v_13); } - _fx_free_T4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&v_10); + _fx_free_T4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&v_12); if (defparam_0) { _fx_free_N10Ast__exp_t(&defparam_0); } if (ts_4) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_4); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_9); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_11); if (t_0) { _fx_free_N10Ast__typ_t(&t_0); } if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_8); - fx_free_exn(&v_7); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_10); + fx_free_exn(&v_9); goto _fx_endmatch_1; } } @@ -19665,12 +20270,12 @@ FX_EXTERN_C int } } } - fx_exn_t v_15 = {0}; - fx_exn_t v_16 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_17 = {0}; + fx_exn_t v_17 = {0}; + fx_exn_t v_18 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_19 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_6 = 0; _fx_N10Ast__pat_t p_0 = 0; - _fx_LN10Ast__pat_t v_18 = 0; + _fx_LN10Ast__pat_t v_20 = 0; if (expect_comma_2) { _fx_R10Ast__loc_t loc_2; if (ts_2 != 0) { @@ -19681,8 +20286,8 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_7); fx_str_t slit_2 = FX_MAKE_STR("\',\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_15), _fx_catch_7); - FX_THROW(&v_15, true, _fx_catch_7); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_17), _fx_catch_7); + FX_THROW(&v_17, true, _fx_catch_7); } if (kw_params_2 != 0) { _fx_R10Ast__loc_t loc_3; @@ -19694,26 +20299,26 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_7); fx_str_t slit_3 = FX_MAKE_STR("positional parameters cannot occur after or between named parameters"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_3, &v_16), _fx_catch_7); - FX_THROW(&v_16, true, _fx_catch_7); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_3, &v_18), _fx_catch_7); + FX_THROW(&v_18, true, _fx_catch_7); } FX_CALL( _fx_M6ParserFM9parse_patT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t2LT2N14Lexer__token_tR10Ast__loc_tB(ts_2, true, - &v_17, 0), _fx_catch_7); - FX_COPY_PTR(v_17.t0, &ts_6); - FX_COPY_PTR(v_17.t1, &p_0); - FX_CALL(_fx_cons_LN10Ast__pat_t(p_0, params_2, true, &v_18), _fx_catch_7); + &v_19, 0), _fx_catch_7); + FX_COPY_PTR(v_19.t0, &ts_6); + FX_COPY_PTR(v_19.t1, &p_0); + FX_CALL(_fx_cons_LN10Ast__pat_t(p_0, params_2, true, &v_20), _fx_catch_7); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_6, &ts_1); expect_comma_1 = true; _fx_free_LN10Ast__pat_t(¶ms_1); - FX_COPY_PTR(v_18, ¶ms_1); + FX_COPY_PTR(v_20, ¶ms_1); _fx_free_LT4R9Ast__id_tN10Ast__typ_tN10Ast__exp_tR10Ast__loc_t(&kw_params_1); FX_COPY_PTR(kw_params_2, &kw_params_1); _fx_catch_7: ; - if (v_18) { - _fx_free_LN10Ast__pat_t(&v_18); + if (v_20) { + _fx_free_LN10Ast__pat_t(&v_20); } if (p_0) { _fx_free_N10Ast__pat_t(&p_0); @@ -19721,9 +20326,9 @@ FX_EXTERN_C int if (ts_6) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_6); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_17); - fx_free_exn(&v_16); - fx_free_exn(&v_15); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_19); + fx_free_exn(&v_18); + fx_free_exn(&v_17); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_8); @@ -19885,7 +20490,7 @@ _fx_endmatch_0: ; FX_CHECK_EXN(_fx_cleanup); } FX_CALL( - _fx_M3AstFM9PatRecordN10Ast__pat_t3Nt6option1RM4id_tLT2RM4id_tN10Ast__pat_tRM5loc_t(&_fx_g14Parser__None1_, v_5, + _fx_M3AstFM9PatRecordN10Ast__pat_t3Nt6option1RM4id_tLT2RM4id_tN10Ast__pat_tRM5loc_t(&_fx_g14Parser__None3_, v_5, &loc_0, &recpat_0), _fx_cleanup); FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&loc_0, &v_6, 0), _fx_cleanup); FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&_fx_g18Ast__std__kwargs__, &v_6, &v_7), @@ -20390,6 +20995,225 @@ _fx_cleanup: ; return fx_status; } +FX_EXTERN_C int _fx_M6ParserFM17make_tuple_assignN10Ast__exp_t3LN10Ast__exp_tN10Ast__exp_tR10Ast__loc_t( + struct _fx_LN10Ast__exp_t_data_t* lhs_elems_0, + struct _fx_N10Ast__exp_t_data_t* rhs_0, + struct _fx_R10Ast__loc_t* loc_0, + struct _fx_N10Ast__exp_t_data_t** fx_result, + void* fx_fv) +{ + _fx_N10Ast__pat_t v_0 = 0; + _fx_R16Ast__val_flags_t v_1 = {0}; + _fx_N10Ast__exp_t temp_decl_0 = 0; + _fx_LN10Ast__exp_t stores_0 = 0; + _fx_LN10Ast__exp_t stores_1 = 0; + int fx_status = 0; + FX_CALL(fx_check_stack(), _fx_cleanup); + int_ v_2 = _fx_g18Parser__parser_ctx.m_idx; + _fx_R9Ast__id_t temp_id_0; + fx_str_t slit_0 = FX_MAKE_STR("__tup__"); + FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(v_2, &slit_0, &temp_id_0, 0), _fx_cleanup); + FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&temp_id_0, loc_0, &v_0), _fx_cleanup); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_1, 0), _fx_cleanup); + FX_CALL( + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_0, rhs_0, &v_1, loc_0, &temp_decl_0), + _fx_cleanup); + int_ i_0 = 0; + _fx_LN10Ast__exp_t lst_0 = lhs_elems_0; + for (; lst_0; lst_0 = lst_0->tl, i_0 += 1) { + _fx_T2N10Ast__typ_tR10Ast__loc_t v_3 = {0}; + _fx_N10Ast__exp_t v_4 = 0; + _fx_N10Ast__lit_t v_5 = {0}; + _fx_N10Ast__typ_t v_6 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_7 = {0}; + _fx_N10Ast__exp_t v_8 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_9 = {0}; + _fx_N10Ast__exp_t field_0 = 0; + _fx_LN10Ast__exp_t store_0 = 0; + _fx_Ta2LN10Ast__exp_t v_10 = {0}; + _fx_LN10Ast__exp_t v_11 = 0; + _fx_N10Ast__exp_t elem_0 = lst_0->hd; + _fx_R10Ast__loc_t eloc_0; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(elem_0, &eloc_0, 0), _fx_catch_5); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&eloc_0, &v_3, 0), _fx_catch_5); + FX_CALL(_fx_M3AstFM8ExpIdentN10Ast__exp_t2RM4id_tT2N10Ast__typ_tRM5loc_t(&temp_id_0, &v_3, &v_4), _fx_catch_5); + _fx_M3AstFM6LitIntN10Ast__lit_t1l((int64_t)i_0, &v_5); + FX_CALL(_fx_M3AstFM11get_lit_typN10Ast__typ_t1N10Ast__lit_t(&v_5, &v_6, 0), _fx_catch_5); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_6, &eloc_0, &v_7); + FX_CALL(_fx_M3AstFM6ExpLitN10Ast__exp_t2N10Ast__lit_tT2N10Ast__typ_tRM5loc_t(&v_5, &v_7, &v_8), _fx_catch_5); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&eloc_0, &v_9, 0), _fx_catch_5); + FX_CALL(_fx_M3AstFM6ExpMemN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_4, v_8, &v_9, &field_0), + _fx_catch_5); + int tag_0 = FX_REC_VARIANT_TAG(elem_0); + if (tag_0 == 7) { + bool res_0; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&elem_0->u.ExpIdent.t0, &_fx_g12Ast__dummyid, &res_0, 0), _fx_catch_5); + if (res_0) { + goto _fx_endmatch_1; + } + } + if (tag_0 == 13) { + _fx_N10Ast__exp_t v_12 = 0; + FX_CALL( + _fx_M6ParserFM17make_tuple_assignN10Ast__exp_t3LN10Ast__exp_tN10Ast__exp_tR10Ast__loc_t(elem_0->u.ExpMkTuple.t0, + field_0, &eloc_0, &v_12, 0), _fx_catch_0); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_12, 0, true, &store_0), _fx_catch_0); + + _fx_catch_0: ; + if (v_12) { + _fx_free_N10Ast__exp_t(&v_12); + } + goto _fx_endmatch_1; + } + bool res_1; + if (tag_0 == 9) { + if (elem_0->u.ExpUnary.t0.tag == 7) { + res_1 = true; goto _fx_endmatch_0; + } + } + if (tag_0 == 7) { + res_1 = true; goto _fx_endmatch_0; + } + if (tag_0 == 19) { + res_1 = true; goto _fx_endmatch_0; + } + if (tag_0 == 21) { + res_1 = true; goto _fx_endmatch_0; + } + res_1 = false; + + _fx_endmatch_0: ; + FX_CHECK_EXN(_fx_catch_5); + if (res_1) { + _fx_N10Ast__exp_t v_13 = 0; + FX_CALL(_fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(elem_0, field_0, &eloc_0, &v_13), + _fx_catch_1); + FX_CALL(_fx_cons_LN10Ast__exp_t(v_13, 0, true, &store_0), _fx_catch_1); + + _fx_catch_1: ; + if (v_13) { + _fx_free_N10Ast__exp_t(&v_13); + } + goto _fx_endmatch_1; + } + fx_exn_t v_14 = {0}; + fx_str_t slit_1 = FX_MAKE_STR("this element is not assignable in a tuple assignment"); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&eloc_0, &slit_1, &v_14), _fx_catch_2); + FX_THROW(&v_14, true, _fx_catch_2); + + _fx_catch_2: ; + fx_free_exn(&v_14); + + _fx_endmatch_1: ; + FX_CHECK_EXN(_fx_catch_5); + _fx_make_Ta2LN10Ast__exp_t(stores_0, store_0, &v_10); + if (v_10.t0 == 0) { + FX_COPY_PTR(store_0, &v_11); + } + else if (v_10.t1 == 0) { + FX_COPY_PTR(stores_0, &v_11); + } + else { + _fx_LN10Ast__exp_t v_15 = 0; + _fx_LN10Ast__exp_t lstend_0 = 0; + _fx_LN10Ast__exp_t lst_1 = stores_0; + for (; lst_1; lst_1 = lst_1->tl) { + _fx_N10Ast__exp_t x_0 = lst_1->hd; + _fx_LN10Ast__exp_t node_0 = 0; + FX_CALL(_fx_cons_LN10Ast__exp_t(x_0, 0, false, &node_0), _fx_catch_3); + FX_LIST_APPEND(v_15, lstend_0, node_0); + + _fx_catch_3: ; + FX_CHECK_EXN(_fx_catch_4); + } + _fx_M6ParserFM5link2LN10Ast__exp_t2LN10Ast__exp_tLN10Ast__exp_t(v_15, store_0, &v_11, 0); + + _fx_catch_4: ; + if (v_15) { + _fx_free_LN10Ast__exp_t(&v_15); + } + } + FX_CHECK_EXN(_fx_catch_5); + _fx_free_LN10Ast__exp_t(&stores_0); + FX_COPY_PTR(v_11, &stores_0); + + _fx_catch_5: ; + if (v_11) { + _fx_free_LN10Ast__exp_t(&v_11); + } + _fx_free_Ta2LN10Ast__exp_t(&v_10); + if (store_0) { + _fx_free_LN10Ast__exp_t(&store_0); + } + if (field_0) { + _fx_free_N10Ast__exp_t(&field_0); + } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_9); + if (v_8) { + _fx_free_N10Ast__exp_t(&v_8); + } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_7); + if (v_6) { + _fx_free_N10Ast__typ_t(&v_6); + } + _fx_free_N10Ast__lit_t(&v_5); + if (v_4) { + _fx_free_N10Ast__exp_t(&v_4); + } + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_3); + FX_CHECK_EXN(_fx_cleanup); + } + FX_COPY_PTR(stores_0, &stores_1); + if (stores_1 == 0) { + _fx_N10Ast__pat_t v_16 = 0; + _fx_R16Ast__val_flags_t v_17 = {0}; + int_ v_18 = _fx_g18Parser__parser_ctx.m_idx; + _fx_R9Ast__id_t drop_id_0; + fx_str_t slit_2 = FX_MAKE_STR("__drop__"); + FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(v_18, &slit_2, &drop_id_0, 0), _fx_catch_6); + FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&drop_id_0, loc_0, &v_16), _fx_catch_6); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_17, 0), _fx_catch_6); + FX_CALL( + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_16, rhs_0, &v_17, loc_0, + fx_result), _fx_catch_6); + + _fx_catch_6: ; + _fx_free_R16Ast__val_flags_t(&v_17); + if (v_16) { + _fx_free_N10Ast__pat_t(&v_16); + } + } + else { + _fx_LN10Ast__exp_t v_19 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_20 = {0}; + FX_CALL(_fx_cons_LN10Ast__exp_t(temp_decl_0, stores_0, true, &v_19), _fx_catch_7); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(loc_0, &v_20, 0), _fx_catch_7); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_19, &v_20, fx_result), _fx_catch_7); + + _fx_catch_7: ; + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_20); + if (v_19) { + _fx_free_LN10Ast__exp_t(&v_19); + } + } + +_fx_cleanup: ; + if (v_0) { + _fx_free_N10Ast__pat_t(&v_0); + } + _fx_free_R16Ast__val_flags_t(&v_1); + if (temp_decl_0) { + _fx_free_N10Ast__exp_t(&temp_decl_0); + } + if (stores_0) { + _fx_free_LN10Ast__exp_t(&stores_0); + } + if (stores_1) { + _fx_free_LN10Ast__exp_t(&stores_1); + } + return fx_status; +} + FX_EXTERN_C int _fx_M6ParserFM10parse_stmtT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t( struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t* ts_0, struct _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t* fx_result, @@ -20408,7 +21232,7 @@ FX_EXTERN_C int _fx_M6ParserFM10parse_stmtT2LT2N14Lexer__token_tR10Ast__loc_tN10 if (v_1) { _fx_free_N10Ast__exp_t(&v_1); } - goto _fx_endmatch_5; + goto _fx_endmatch_6; } } if (ts_0 != 0) { @@ -20422,7 +21246,7 @@ FX_EXTERN_C int _fx_M6ParserFM10parse_stmtT2LT2N14Lexer__token_tR10Ast__loc_tN10 if (v_3) { _fx_free_N10Ast__exp_t(&v_3); } - goto _fx_endmatch_5; + goto _fx_endmatch_6; } } if (ts_0 != 0) { @@ -20458,7 +21282,7 @@ FX_EXTERN_C int _fx_M6ParserFM10parse_stmtT2LT2N14Lexer__token_tR10Ast__loc_tN10 _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); } _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_6); - goto _fx_endmatch_5; + goto _fx_endmatch_6; } } } @@ -20468,7 +21292,7 @@ FX_EXTERN_C int _fx_M6ParserFM10parse_stmtT2LT2N14Lexer__token_tR10Ast__loc_tN10 if (v_10->tag == 34) { if (v_10->u.RETURN == false) { _fx_N10Ast__exp_t v_11 = 0; - FX_CALL(_fx_M3AstFM9ExpReturnN10Ast__exp_t2Nt6option1N10Ast__exp_tRM5loc_t(_fx_g14Parser__None2_, &v_9->t1, &v_11), + FX_CALL(_fx_M3AstFM9ExpReturnN10Ast__exp_t2Nt6option1N10Ast__exp_tRM5loc_t(_fx_g14Parser__None4_, &v_9->t1, &v_11), _fx_catch_3); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_0->tl, v_11, fx_result); @@ -20476,7 +21300,7 @@ FX_EXTERN_C int _fx_M6ParserFM10parse_stmtT2LT2N14Lexer__token_tR10Ast__loc_tN10 if (v_11) { _fx_free_N10Ast__exp_t(&v_11); } - goto _fx_endmatch_5; + goto _fx_endmatch_6; } } } @@ -20506,7 +21330,7 @@ FX_EXTERN_C int _fx_M6ParserFM10parse_stmtT2LT2N14Lexer__token_tR10Ast__loc_tN10 _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_2); } _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_13); - goto _fx_endmatch_5; + goto _fx_endmatch_6; } } if (ts_0 != 0) { @@ -20553,7 +21377,7 @@ FX_EXTERN_C int _fx_M6ParserFM10parse_stmtT2LT2N14Lexer__token_tR10Ast__loc_tN10 _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_17); - goto _fx_endmatch_5; + goto _fx_endmatch_6; } } } @@ -20624,7 +21448,7 @@ FX_EXTERN_C int _fx_M6ParserFM10parse_stmtT2LT2N14Lexer__token_tR10Ast__loc_tN10 _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_5); } _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_21); - goto _fx_endmatch_5; + goto _fx_endmatch_6; } } bool res_0; @@ -20661,7 +21485,7 @@ _fx_endmatch_1: ; _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_7); } _fx_free_T3LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_tN10Ast__exp_t(&v_25); - goto _fx_endmatch_5; + goto _fx_endmatch_6; } if (ts_0 != 0) { _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_26 = {0}; @@ -20669,7 +21493,7 @@ _fx_endmatch_1: ; _fx_N10Ast__exp_t e1_0 = 0; FX_CALL( _fx_M6ParserFM17parse_complex_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t( - ts_0, &v_26, 0), _fx_catch_13); + ts_0, &v_26, 0), _fx_catch_16); FX_COPY_PTR(v_26.t0, &ts_8); FX_COPY_PTR(v_26.t1, &e1_0); int tag_0 = FX_REC_VARIANT_TAG(e1_0); @@ -20692,22 +21516,97 @@ _fx_endmatch_1: ; res_1 = false; _fx_endmatch_2: ; - FX_CHECK_EXN(_fx_catch_13); + FX_CHECK_EXN(_fx_catch_16); if (res_1) { lvalue_e1_0 = true; goto _fx_endmatch_3; } lvalue_e1_0 = false; _fx_endmatch_3: ; - FX_CHECK_EXN(_fx_catch_13); + FX_CHECK_EXN(_fx_catch_16); if (ts_8 != 0) { _fx_T2N14Lexer__token_tR10Ast__loc_t* v_27 = &ts_8->hd; if (v_27->t0.tag == 86) { - fx_exn_t v_28 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_29 = {0}; - _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_9 = 0; - _fx_N10Ast__exp_t e2_0 = 0; - _fx_N10Ast__exp_t v_30 = 0; + _fx_R10Ast__loc_t* l2_0 = &v_27->t1; + _fx_LT2N14Lexer__token_tR10Ast__loc_t rest_0 = ts_8->tl; + int tag_1 = FX_REC_VARIANT_TAG(e1_0); + if (tag_1 == 13) { + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_28 = {0}; + _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_9 = 0; + _fx_N10Ast__exp_t e2_0 = 0; + _fx_N10Ast__exp_t v_29 = 0; + FX_CALL( + _fx_M6ParserFM17parse_complex_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t( + rest_0, &v_28, 0), _fx_catch_10); + FX_COPY_PTR(v_28.t0, &ts_9); + FX_COPY_PTR(v_28.t1, &e2_0); + FX_CALL( + _fx_M6ParserFM17make_tuple_assignN10Ast__exp_t3LN10Ast__exp_tN10Ast__exp_tR10Ast__loc_t(e1_0->u.ExpMkTuple.t0, + e2_0, l2_0, &v_29, 0), _fx_catch_10); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_9, v_29, fx_result); + + _fx_catch_10: ; + if (v_29) { + _fx_free_N10Ast__exp_t(&v_29); + } + if (e2_0) { + _fx_free_N10Ast__exp_t(&e2_0); + } + if (ts_9) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_9); + } + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_28); + goto _fx_endmatch_4; + } + if (tag_1 == 7) { + bool res_2; + FX_CALL(_fx_M3AstFM6__eq__B2RM4id_tRM4id_t(&e1_0->u.ExpIdent.t0, &_fx_g12Ast__dummyid, &res_2, 0), _fx_catch_13); + if (res_2) { + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_30 = {0}; + _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_10 = 0; + _fx_N10Ast__exp_t e2_1 = 0; + _fx_N10Ast__pat_t v_31 = 0; + _fx_R16Ast__val_flags_t v_32 = {0}; + _fx_N10Ast__exp_t v_33 = 0; + FX_CALL( + _fx_M6ParserFM17parse_complex_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t( + rest_0, &v_30, 0), _fx_catch_11); + FX_COPY_PTR(v_30.t0, &ts_10); + FX_COPY_PTR(v_30.t1, &e2_1); + int_ v_34 = _fx_g18Parser__parser_ctx.m_idx; + _fx_R9Ast__id_t drop_id_0; + fx_str_t slit_1 = FX_MAKE_STR("__drop__"); + FX_CALL(_fx_M3AstFM6gen_idRM4id_t2iS(v_34, &slit_1, &drop_id_0, 0), _fx_catch_11); + FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&drop_id_0, l2_0, &v_31), _fx_catch_11); + FX_CALL(_fx_M3AstFM21default_tempval_flagsRM11val_flags_t0(&v_32, 0), _fx_catch_11); + FX_CALL( + _fx_M3AstFM6DefValN10Ast__exp_t4N10Ast__pat_tN10Ast__exp_tRM11val_flags_tRM5loc_t(v_31, e2_1, &v_32, l2_0, + &v_33), _fx_catch_11); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_10, v_33, fx_result); + + _fx_catch_11: ; + if (v_33) { + _fx_free_N10Ast__exp_t(&v_33); + } + _fx_free_R16Ast__val_flags_t(&v_32); + if (v_31) { + _fx_free_N10Ast__pat_t(&v_31); + } + if (e2_1) { + _fx_free_N10Ast__exp_t(&e2_1); + } + if (ts_10) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_10); + } + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_30); + goto _fx_endmatch_4; + } + } + fx_exn_t v_35 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_36 = {0}; + _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_11 = 0; + _fx_N10Ast__exp_t e2_2 = 0; + _fx_N10Ast__exp_t v_37 = 0; if (!lvalue_e1_0) { _fx_R10Ast__loc_t loc_1; if (ts_8 != 0) { @@ -20716,46 +21615,51 @@ _fx_endmatch_1: ; else { loc_1 = _fx_g18Parser__parser_ctx.default_loc; } - FX_CHECK_EXN(_fx_catch_10); - fx_str_t slit_1 = FX_MAKE_STR("left-hand-side of the assignment is not an l-value"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_28), _fx_catch_10); - FX_THROW(&v_28, true, _fx_catch_10); + FX_CHECK_EXN(_fx_catch_12); + fx_str_t slit_2 = FX_MAKE_STR("left-hand-side of the assignment is not an l-value"); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_2, &v_35), _fx_catch_12); + FX_THROW(&v_35, true, _fx_catch_12); } FX_CALL( _fx_M6ParserFM17parse_complex_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t( - ts_8->tl, &v_29, 0), _fx_catch_10); - FX_COPY_PTR(v_29.t0, &ts_9); - FX_COPY_PTR(v_29.t1, &e2_0); - FX_CALL(_fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(e1_0, e2_0, &v_27->t1, &v_30), - _fx_catch_10); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_9, v_30, fx_result); + rest_0, &v_36, 0), _fx_catch_12); + FX_COPY_PTR(v_36.t0, &ts_11); + FX_COPY_PTR(v_36.t1, &e2_2); + FX_CALL(_fx_M3AstFM9ExpAssignN10Ast__exp_t3N10Ast__exp_tN10Ast__exp_tRM5loc_t(e1_0, e2_2, l2_0, &v_37), + _fx_catch_12); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_11, v_37, fx_result); - _fx_catch_10: ; - if (v_30) { - _fx_free_N10Ast__exp_t(&v_30); + _fx_catch_12: ; + if (v_37) { + _fx_free_N10Ast__exp_t(&v_37); } - if (e2_0) { - _fx_free_N10Ast__exp_t(&e2_0); + if (e2_2) { + _fx_free_N10Ast__exp_t(&e2_2); } - if (ts_9) { - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_9); + if (ts_11) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_11); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_29); - fx_free_exn(&v_28); - goto _fx_endmatch_4; + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_36); + fx_free_exn(&v_35); + + _fx_endmatch_4: ; + FX_CHECK_EXN(_fx_catch_13); + + _fx_catch_13: ; + goto _fx_endmatch_5; } } if (ts_8 != 0) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_31 = &ts_8->hd; - _fx_N14Lexer__token_t* v_32 = &v_31->t0; - if (v_32->tag == 88) { - fx_exn_t v_33 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_34 = {0}; - _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_10 = 0; - _fx_N10Ast__exp_t e2_1 = 0; - _fx_N13Ast__binary_t v_35 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_36 = {0}; - _fx_N10Ast__exp_t v_37 = 0; + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_38 = &ts_8->hd; + _fx_N14Lexer__token_t* v_39 = &v_38->t0; + if (v_39->tag == 88) { + fx_exn_t v_40 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_41 = {0}; + _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_12 = 0; + _fx_N10Ast__exp_t e2_3 = 0; + _fx_N13Ast__binary_t v_42 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_43 = {0}; + _fx_N10Ast__exp_t v_44 = 0; if (!lvalue_e1_0) { _fx_R10Ast__loc_t loc_2; if (ts_8 != 0) { @@ -20764,54 +21668,54 @@ _fx_endmatch_1: ; else { loc_2 = _fx_g18Parser__parser_ctx.default_loc; } - FX_CHECK_EXN(_fx_catch_11); - fx_str_t slit_2 = FX_MAKE_STR("left-hand-side of the assignment is not an l-value"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_33), _fx_catch_11); - FX_THROW(&v_33, true, _fx_catch_11); + FX_CHECK_EXN(_fx_catch_14); + fx_str_t slit_3 = FX_MAKE_STR("left-hand-side of the assignment is not an l-value"); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_3, &v_40), _fx_catch_14); + FX_THROW(&v_40, true, _fx_catch_14); } FX_CALL( _fx_M6ParserFM17parse_complex_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t1LT2N14Lexer__token_tR10Ast__loc_t( - ts_8->tl, &v_34, 0), _fx_catch_11); - FX_COPY_PTR(v_34.t0, &ts_10); - FX_COPY_PTR(v_34.t1, &e2_1); - FX_CALL(_fx_M3AstFM11OpAugBinaryN13Ast__binary_t1N13Ast__binary_t(v_32->u.AUG_BINOP, &v_35), _fx_catch_11); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_31->t1, &v_36, 0), _fx_catch_11); + ts_8->tl, &v_41, 0), _fx_catch_14); + FX_COPY_PTR(v_41.t0, &ts_12); + FX_COPY_PTR(v_41.t1, &e2_3); + FX_CALL(_fx_M3AstFM11OpAugBinaryN13Ast__binary_t1N13Ast__binary_t(v_39->u.AUG_BINOP, &v_42), _fx_catch_14); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_38->t1, &v_43, 0), _fx_catch_14); FX_CALL( - _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_35, e1_0, - e2_1, &v_36, &v_37), _fx_catch_11); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_10, v_37, fx_result); + _fx_M3AstFM9ExpBinaryN10Ast__exp_t4N13Ast__binary_tN10Ast__exp_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(v_42, e1_0, + e2_3, &v_43, &v_44), _fx_catch_14); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_12, v_44, fx_result); - _fx_catch_11: ; - if (v_37) { - _fx_free_N10Ast__exp_t(&v_37); + _fx_catch_14: ; + if (v_44) { + _fx_free_N10Ast__exp_t(&v_44); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_36); - if (v_35) { - _fx_free_N13Ast__binary_t(&v_35); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_43); + if (v_42) { + _fx_free_N13Ast__binary_t(&v_42); } - if (e2_1) { - _fx_free_N10Ast__exp_t(&e2_1); + if (e2_3) { + _fx_free_N10Ast__exp_t(&e2_3); } - if (ts_10) { - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_10); + if (ts_12) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_12); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_34); - fx_free_exn(&v_33); - goto _fx_endmatch_4; + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_41); + fx_free_exn(&v_40); + goto _fx_endmatch_5; } } if (ts_8 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_38 = ts_8->tl; - if (v_38 != 0) { - if (v_38->hd.t0.tag == 49) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_39 = &ts_8->hd; - if (v_39->t0.tag == 87) { - fx_exn_t v_40 = {0}; - _fx_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t v_41 = {0}; - _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_11 = 0; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_45 = ts_8->tl; + if (v_45 != 0) { + if (v_45->hd.t0.tag == 49) { + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_46 = &ts_8->hd; + if (v_46->t0.tag == 87) { + fx_exn_t v_47 = {0}; + _fx_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t v_48 = {0}; + _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_13 = 0; _fx_LT2R9Ast__id_tN10Ast__exp_t rec_init_elems_0 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_42 = {0}; - _fx_N10Ast__exp_t v_43 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_49 = {0}; + _fx_N10Ast__exp_t v_50 = 0; if (!lvalue_e1_0) { _fx_R10Ast__loc_t loc_3; if (ts_8 != 0) { @@ -20820,46 +21724,46 @@ _fx_endmatch_1: ; else { loc_3 = _fx_g18Parser__parser_ctx.default_loc; } - FX_CHECK_EXN(_fx_catch_12); - fx_str_t slit_3 = FX_MAKE_STR("left-hand-side of the assignment is not an l-value"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_3, &v_40), _fx_catch_12); - FX_THROW(&v_40, true, _fx_catch_12); + FX_CHECK_EXN(_fx_catch_15); + fx_str_t slit_4 = FX_MAKE_STR("left-hand-side of the assignment is not an l-value"); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_4, &v_47), _fx_catch_15); + FX_THROW(&v_47, true, _fx_catch_15); } FX_CALL( _fx_M6ParserFM14parse_exp_listT4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t5LT2N14Lexer__token_tR10Ast__loc_tN14Lexer__token_tN17Parser__kw_mode_tBB( - ts_8, &_fx_g14Parser__RBRACE, &_fx_g14Parser__KwMust, true, false, &v_41, 0), _fx_catch_12); - FX_COPY_PTR(v_41.t0, &ts_11); - FX_COPY_PTR(v_41.t3, &rec_init_elems_0); - FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_39->t1, &v_42, 0), _fx_catch_12); + ts_8, &_fx_g14Parser__RBRACE, &_fx_g14Parser__KwMust, true, false, &v_48, 0), _fx_catch_15); + FX_COPY_PTR(v_48.t0, &ts_13); + FX_COPY_PTR(v_48.t3, &rec_init_elems_0); + FX_CALL(_fx_M3AstFM12make_new_ctxT2N10Ast__typ_tRM5loc_t1RM5loc_t(&v_46->t1, &v_49, 0), _fx_catch_15); FX_CALL( _fx_M3AstFM15ExpUpdateRecordN10Ast__exp_t3N10Ast__exp_tLT2RM4id_tN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(e1_0, - rec_init_elems_0, &v_42, &v_43), _fx_catch_12); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_11, v_43, fx_result); + rec_init_elems_0, &v_49, &v_50), _fx_catch_15); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_13, v_50, fx_result); - _fx_catch_12: ; - if (v_43) { - _fx_free_N10Ast__exp_t(&v_43); + _fx_catch_15: ; + if (v_50) { + _fx_free_N10Ast__exp_t(&v_50); } - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_42); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_49); if (rec_init_elems_0) { _fx_free_LT2R9Ast__id_tN10Ast__exp_t(&rec_init_elems_0); } - if (ts_11) { - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_11); + if (ts_13) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_13); } - _fx_free_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t(&v_41); - fx_free_exn(&v_40); - goto _fx_endmatch_4; + _fx_free_T4LT2N14Lexer__token_tR10Ast__loc_tBLN10Ast__exp_tLT2R9Ast__id_tN10Ast__exp_t(&v_48); + fx_free_exn(&v_47); + goto _fx_endmatch_5; } } } } _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_8, e1_0, fx_result); - _fx_endmatch_4: ; - FX_CHECK_EXN(_fx_catch_13); + _fx_endmatch_5: ; + FX_CHECK_EXN(_fx_catch_16); - _fx_catch_13: ; + _fx_catch_16: ; if (e1_0) { _fx_free_N10Ast__exp_t(&e1_0); } @@ -20867,11 +21771,11 @@ _fx_endmatch_1: ; _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_8); } _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_26); - goto _fx_endmatch_5; + goto _fx_endmatch_6; } FX_FAST_THROW(FX_EXN_NoMatchError, _fx_cleanup); -_fx_endmatch_5: ; +_fx_endmatch_6: ; _fx_cleanup: ; return fx_status; @@ -20941,7 +21845,7 @@ FX_EXTERN_C int if (ts_2->hd.t0.tag == 46) { fx_exn_t v_1 = {0}; fx_exn_t v_2 = {0}; - _fx_LN10Ast__pat_t __fold_result___0 = 0; + _fx_LN10Ast__pat_t res_0 = 0; _fx_LN10Ast__pat_t v_3 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_t result_4 = {0}; if (rbrace_2 != (char_)41) { @@ -20972,20 +21876,19 @@ FX_EXTERN_C int } _fx_LN10Ast__pat_t lst_0 = result_3; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN10Ast__pat_t r_0 = 0; + _fx_LN10Ast__pat_t v_4 = 0; _fx_N10Ast__pat_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LN10Ast__pat_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, res_0, true, &v_4), _fx_catch_1); + _fx_free_LN10Ast__pat_t(&res_0); + FX_COPY_PTR(v_4, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LN10Ast__pat_t(&r_0); + if (v_4) { + _fx_free_LN10Ast__pat_t(&v_4); } FX_CHECK_EXN(_fx_catch_2); } - FX_COPY_PTR(__fold_result___0, &v_3); + FX_COPY_PTR(res_0, &v_3); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_t(ts_2->tl, v_3, &result_4); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_t(&result_4, &result_1); @@ -20996,8 +21899,8 @@ FX_EXTERN_C int if (v_3) { _fx_free_LN10Ast__pat_t(&v_3); } - if (__fold_result___0) { - _fx_free_LN10Ast__pat_t(&__fold_result___0); + if (res_0) { + _fx_free_LN10Ast__pat_t(&res_0); } fx_free_exn(&v_2); fx_free_exn(&v_1); @@ -21006,7 +21909,7 @@ FX_EXTERN_C int } if (ts_2 != 0) { if (ts_2->hd.t0.tag == 48) { - fx_exn_t v_4 = {0}; + fx_exn_t v_5 = {0}; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_t result_5 = {0}; if (rbrace_2 != (char_)93) { _fx_R10Ast__loc_t loc_3; @@ -21018,8 +21921,8 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_3); fx_str_t slit_3 = FX_MAKE_STR("mismatched closing brace; must be \')\'"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_3, &v_4), _fx_catch_3); - FX_THROW(&v_4, true, _fx_catch_3); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_3, &v_5), _fx_catch_3); + FX_THROW(&v_5, true, _fx_catch_3); } _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_t(ts_2->tl, result_3, &result_5); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_t(&result_1); @@ -21028,12 +21931,12 @@ FX_EXTERN_C int _fx_catch_3: ; _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__pat_t(&result_5); - fx_free_exn(&v_4); + fx_free_exn(&v_5); goto _fx_endmatch_0; } } if (expect_comma_2 == true) { - fx_exn_t v_5 = {0}; + fx_exn_t v_6 = {0}; _fx_R10Ast__loc_t loc_4; if (ts_2 != 0) { loc_4 = ts_2->hd.t1; @@ -21043,34 +21946,34 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_4); fx_str_t slit_4 = FX_MAKE_STR("\',\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_4, &slit_4, &v_5), _fx_catch_4); - FX_THROW(&v_5, true, _fx_catch_4); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_4, &slit_4, &v_6), _fx_catch_4); + FX_THROW(&v_6, true, _fx_catch_4); _fx_catch_4: ; - fx_free_exn(&v_5); + fx_free_exn(&v_6); goto _fx_endmatch_0; } - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_6 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_7 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; _fx_N10Ast__pat_t p_0 = 0; - _fx_LN10Ast__pat_t v_7 = 0; + _fx_LN10Ast__pat_t v_8 = 0; FX_CALL( _fx_M6ParserFM9parse_patT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t2LT2N14Lexer__token_tR10Ast__loc_tB(ts_2, - simple_2, &v_6, 0), _fx_catch_5); - FX_COPY_PTR(v_6.t0, &ts_3); - FX_COPY_PTR(v_6.t1, &p_0); - FX_CALL(_fx_cons_LN10Ast__pat_t(p_0, result_3, true, &v_7), _fx_catch_5); + simple_2, &v_7, 0), _fx_catch_5); + FX_COPY_PTR(v_7.t0, &ts_3); + FX_COPY_PTR(v_7.t1, &p_0); + FX_CALL(_fx_cons_LN10Ast__pat_t(p_0, result_3, true, &v_8), _fx_catch_5); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_3, &ts_1); expect_comma_1 = true; _fx_free_LN10Ast__pat_t(&result_2); - FX_COPY_PTR(v_7, &result_2); + FX_COPY_PTR(v_8, &result_2); simple_1 = simple_2; rbrace_1 = rbrace_2; _fx_catch_5: ; - if (v_7) { - _fx_free_LN10Ast__pat_t(&v_7); + if (v_8) { + _fx_free_LN10Ast__pat_t(&v_8); } if (p_0) { _fx_free_N10Ast__pat_t(&p_0); @@ -21078,7 +21981,7 @@ FX_EXTERN_C int if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_6); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_7); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_6); @@ -21164,25 +22067,24 @@ FX_EXTERN_C int } if (ts_2 != 0) { if (ts_2->hd.t0.tag == 50) { - _fx_LT2R9Ast__id_tN10Ast__pat_t __fold_result___0 = 0; + _fx_LT2R9Ast__id_tN10Ast__pat_t res_0 = 0; _fx_LT2R9Ast__id_tN10Ast__pat_t v_1 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__pat_t result_4 = {0}; _fx_LT2R9Ast__id_tN10Ast__pat_t lst_0 = result_3; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2R9Ast__id_tN10Ast__pat_t r_0 = 0; + _fx_LT2R9Ast__id_tN10Ast__pat_t v_2 = 0; _fx_T2R9Ast__id_tN10Ast__pat_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__pat_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__pat_t(a_0, res_0, true, &v_2), _fx_catch_1); + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&res_0); + FX_COPY_PTR(v_2, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&r_0); + if (v_2) { + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&v_2); } FX_CHECK_EXN(_fx_catch_2); } - FX_COPY_PTR(__fold_result___0, &v_1); + FX_COPY_PTR(res_0, &v_1); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__pat_t(ts_2->tl, v_1, &result_4); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__pat_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__pat_t(&result_4, &result_1); @@ -21193,14 +22095,14 @@ FX_EXTERN_C int if (v_1) { _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&v_1); } - if (__fold_result___0) { - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&res_0); } goto _fx_endmatch_1; } } if (expect_comma_2 == true) { - fx_exn_t v_2 = {0}; + fx_exn_t v_3 = {0}; _fx_R10Ast__loc_t loc_1; if (ts_2 != 0) { loc_1 = ts_2->hd.t1; @@ -21210,33 +22112,33 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_3); fx_str_t slit_1 = FX_MAKE_STR("\',\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_2), _fx_catch_3); - FX_THROW(&v_2, true, _fx_catch_3); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_3), _fx_catch_3); + FX_THROW(&v_3, true, _fx_catch_3); _fx_catch_3: ; - fx_free_exn(&v_2); + fx_free_exn(&v_3); goto _fx_endmatch_1; } if (ts_2 != 0) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_3 = &ts_2->hd; - _fx_N14Lexer__token_t* v_4 = &v_3->t0; - if (v_4->tag == 2) { - fx_exn_t v_5 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_6 = {0}; + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_4 = &ts_2->hd; + _fx_N14Lexer__token_t* v_5 = &v_4->t0; + if (v_5->tag == 2) { + fx_exn_t v_6 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_7 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; _fx_N10Ast__pat_t p_0 = 0; - _fx_T2R9Ast__id_tN10Ast__pat_t v_7 = {0}; - _fx_LT2R9Ast__id_tN10Ast__pat_t v_8 = 0; - fx_str_t* i__0 = &v_4->u.IDENT.t1; - _fx_R10Ast__loc_t* l1_0 = &v_3->t1; + _fx_T2R9Ast__id_tN10Ast__pat_t v_8 = {0}; + _fx_LT2R9Ast__id_tN10Ast__pat_t v_9 = 0; + fx_str_t* i__0 = &v_5->u.IDENT.t1; + _fx_R10Ast__loc_t* l1_0 = &v_4->t1; _fx_LT2N14Lexer__token_tR10Ast__loc_t rest_1 = ts_2->tl; - bool v_9; + bool v_10; fx_str_t slit_2 = FX_MAKE_STR("_"); - v_9 = _fx_F6__eq__B2SS(i__0, &slit_2, 0); - if (v_9) { + v_10 = _fx_F6__eq__B2SS(i__0, &slit_2, 0); + if (v_10) { fx_str_t slit_3 = FX_MAKE_STR("\'_\' cannot be used as a record elem name"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(l1_0, &slit_3, &v_5), _fx_catch_6); - FX_THROW(&v_5, true, _fx_catch_6); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(l1_0, &slit_3, &v_6), _fx_catch_6); + FX_THROW(&v_6, true, _fx_catch_6); } _fx_R9Ast__id_t i_0; FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(i__0, &i_0, 0), _fx_catch_6); @@ -21244,51 +22146,51 @@ FX_EXTERN_C int if (rest_1->hd.t0.tag == 86) { FX_CALL( _fx_M6ParserFM9parse_patT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t2LT2N14Lexer__token_tR10Ast__loc_tB( - rest_1->tl, simple_2, &v_6, 0), _fx_catch_4); + rest_1->tl, simple_2, &v_7, 0), _fx_catch_4); _fx_catch_4: ; goto _fx_endmatch_0; } } - _fx_N10Ast__pat_t v_10 = 0; - FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&i_0, l1_0, &v_10), _fx_catch_5); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(rest_1, v_10, &v_6); + _fx_N10Ast__pat_t v_11 = 0; + FX_CALL(_fx_M3AstFM8PatIdentN10Ast__pat_t2RM4id_tRM5loc_t(&i_0, l1_0, &v_11), _fx_catch_5); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(rest_1, v_11, &v_7); _fx_catch_5: ; - if (v_10) { - _fx_free_N10Ast__pat_t(&v_10); + if (v_11) { + _fx_free_N10Ast__pat_t(&v_11); } _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_6); - FX_COPY_PTR(v_6.t0, &ts_3); - FX_COPY_PTR(v_6.t1, &p_0); - _fx_make_T2R9Ast__id_tN10Ast__pat_t(&i_0, p_0, &v_7); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__pat_t(&v_7, result_3, true, &v_8), _fx_catch_6); + FX_COPY_PTR(v_7.t0, &ts_3); + FX_COPY_PTR(v_7.t1, &p_0); + _fx_make_T2R9Ast__id_tN10Ast__pat_t(&i_0, p_0, &v_8); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__pat_t(&v_8, result_3, true, &v_9), _fx_catch_6); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_3, &ts_1); expect_comma_1 = true; _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&result_2); - FX_COPY_PTR(v_8, &result_2); + FX_COPY_PTR(v_9, &result_2); simple_1 = simple_2; _fx_catch_6: ; - if (v_8) { - _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&v_8); + if (v_9) { + _fx_free_LT2R9Ast__id_tN10Ast__pat_t(&v_9); } - _fx_free_T2R9Ast__id_tN10Ast__pat_t(&v_7); + _fx_free_T2R9Ast__id_tN10Ast__pat_t(&v_8); if (p_0) { _fx_free_N10Ast__pat_t(&p_0); } if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_6); - fx_free_exn(&v_5); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_7); + fx_free_exn(&v_6); goto _fx_endmatch_1; } } - fx_exn_t v_11 = {0}; + fx_exn_t v_12 = {0}; _fx_R10Ast__loc_t loc_2; if (ts_2 != 0) { loc_2 = ts_2->hd.t1; @@ -21298,11 +22200,11 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_7); fx_str_t slit_4 = FX_MAKE_STR("identifier is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_4, &v_11), _fx_catch_7); - FX_THROW(&v_11, true, _fx_catch_7); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_4, &v_12), _fx_catch_7); + FX_THROW(&v_12, true, _fx_catch_7); _fx_catch_7: ; - fx_free_exn(&v_11); + fx_free_exn(&v_12); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_8); @@ -21669,7 +22571,7 @@ FX_EXTERN_C int _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_5 = 0; _fx_LN10Ast__pat_t pl_2 = 0; _fx_N10Ast__pat_t v_38 = 0; - _fx_N10Ast__pat_t __fold_result___0 = 0; + _fx_N10Ast__pat_t tail_0 = 0; if (simple_0) { _fx_R10Ast__loc_t loc_2; if (ts_0 != 0) { @@ -21697,16 +22599,13 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_10); _fx_R10Ast__loc_t v_39; FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(v_38, &v_39, 0), _fx_catch_10); - FX_CALL( - _fx_M3AstFM6PatLitN10Ast__pat_t2N10Ast__lit_tRM5loc_t(&_fx_g16Parser__LitEmpty, &v_39, &__fold_result___0), + FX_CALL(_fx_M3AstFM6PatLitN10Ast__pat_t2N10Ast__lit_tRM5loc_t(&_fx_g16Parser__LitEmpty, &v_39, &tail_0), _fx_catch_10); _fx_LN10Ast__pat_t lst_0 = pl_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_N10Ast__pat_t tail_0 = 0; _fx_LR10Ast__loc_t v_40 = 0; _fx_N10Ast__pat_t v_41 = 0; _fx_N10Ast__pat_t p_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &tail_0); _fx_R10Ast__loc_t v_42; FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(p_0, &v_42, 0), _fx_catch_9); _fx_R10Ast__loc_t v_43; @@ -21717,24 +22616,21 @@ FX_EXTERN_C int FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(v_40, &_fx_g10Ast__noloc, &v_44, 0), _fx_catch_9); FX_CALL(_fx_M3AstFM7PatConsN10Ast__pat_t3N10Ast__pat_tN10Ast__pat_tRM5loc_t(p_0, tail_0, &v_44, &v_41), _fx_catch_9); - _fx_free_N10Ast__pat_t(&__fold_result___0); - FX_COPY_PTR(v_41, &__fold_result___0); + _fx_free_N10Ast__pat_t(&tail_0); + FX_COPY_PTR(v_41, &tail_0); _fx_catch_9: ; if (v_41) { _fx_free_N10Ast__pat_t(&v_41); } FX_FREE_LIST_SIMPLE(&v_40); - if (tail_0) { - _fx_free_N10Ast__pat_t(&tail_0); - } FX_CHECK_EXN(_fx_catch_10); } - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(ts_5, __fold_result___0, fx_result); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(ts_5, tail_0, fx_result); _fx_catch_10: ; - if (__fold_result___0) { - _fx_free_N10Ast__pat_t(&__fold_result___0); + if (tail_0) { + _fx_free_N10Ast__pat_t(&tail_0); } if (v_38) { _fx_free_N10Ast__pat_t(&v_38); @@ -21765,7 +22661,7 @@ FX_EXTERN_C int FX_COPY_PTR(v_46.t0, &ts_6); FX_COPY_PTR(v_46.t1, &ipl_1); FX_CALL( - _fx_M3AstFM9PatRecordN10Ast__pat_t3Nt6option1RM4id_tLT2RM4id_tN10Ast__pat_tRM5loc_t(&_fx_g14Parser__None1_, ipl_1, + _fx_M3AstFM9PatRecordN10Ast__pat_t3Nt6option1RM4id_tLT2RM4id_tN10Ast__pat_tRM5loc_t(&_fx_g14Parser__None3_, ipl_1, &v_45->t1, &v_47), _fx_catch_11); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(ts_6, v_47, fx_result); @@ -22292,25 +23188,24 @@ FX_EXTERN_C int FX_COPY_PTR(result_3->hd, &p_0); goto _fx_endmatch_2; } } - _fx_LN10Ast__pat_t __fold_result___0 = 0; + _fx_LN10Ast__pat_t res_2 = 0; _fx_LN10Ast__pat_t result_5 = 0; _fx_N10Ast__pat_t v_3 = 0; _fx_LN10Ast__pat_t lst_0 = result_3; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LN10Ast__pat_t r_0 = 0; + _fx_LN10Ast__pat_t v_4 = 0; _fx_N10Ast__pat_t a_0 = lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, r_0, false, &r_0), _fx_catch_2); - _fx_free_LN10Ast__pat_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN10Ast__pat_t(a_0, res_2, true, &v_4), _fx_catch_2); + _fx_free_LN10Ast__pat_t(&res_2); + FX_COPY_PTR(v_4, &res_2); _fx_catch_2: ; - if (r_0) { - _fx_free_LN10Ast__pat_t(&r_0); + if (v_4) { + _fx_free_LN10Ast__pat_t(&v_4); } FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___0, &result_5); + FX_COPY_PTR(res_2, &result_5); if (result_5 != 0) { FX_COPY_PTR(result_5->hd, &v_3); } @@ -22318,9 +23213,9 @@ FX_EXTERN_C int FX_FAST_THROW(FX_EXN_NullListError, _fx_catch_3); } FX_CHECK_EXN(_fx_catch_3); - _fx_R10Ast__loc_t v_4; - FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(v_3, &v_4, 0), _fx_catch_3); - FX_CALL(_fx_M3AstFM6PatAltN10Ast__pat_t2LN10Ast__pat_tRM5loc_t(result_5, &v_4, &p_0), _fx_catch_3); + _fx_R10Ast__loc_t v_5; + FX_CALL(_fx_M3AstFM11get_pat_locRM5loc_t1N10Ast__pat_t(v_3, &v_5, 0), _fx_catch_3); + FX_CALL(_fx_M3AstFM6PatAltN10Ast__pat_t2LN10Ast__pat_tRM5loc_t(result_5, &v_5, &p_0), _fx_catch_3); _fx_catch_3: ; if (v_3) { @@ -22329,8 +23224,8 @@ FX_EXTERN_C int if (result_5) { _fx_free_LN10Ast__pat_t(&result_5); } - if (__fold_result___0) { - _fx_free_LN10Ast__pat_t(&__fold_result___0); + if (res_2) { + _fx_free_LN10Ast__pat_t(&res_2); } _fx_endmatch_2: ; @@ -22350,7 +23245,7 @@ FX_EXTERN_C int if (expect_bar_2 == false) { if (ts_2 != 0) { if (ts_2->hd.t0.tag == 60) { - fx_exn_t v_5 = {0}; + fx_exn_t v_6 = {0}; _fx_R10Ast__loc_t loc_2; if (ts_2 != 0) { loc_2 = ts_2->hd.t1; @@ -22360,33 +23255,33 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_5); fx_str_t slit_2 = FX_MAKE_STR("pattern is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_5), _fx_catch_5); - FX_THROW(&v_5, true, _fx_catch_5); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_6), _fx_catch_5); + FX_THROW(&v_6, true, _fx_catch_5); _fx_catch_5: ; - fx_free_exn(&v_5); + fx_free_exn(&v_6); goto _fx_endmatch_3; } } } - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_6 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_7 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; _fx_N10Ast__pat_t p_1 = 0; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_7 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_8 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_4 = 0; _fx_N10Ast__pat_t p_2 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t result_6 = {0}; - _fx_LN10Ast__pat_t v_8 = 0; + _fx_LN10Ast__pat_t v_9 = 0; FX_CALL( _fx_M6ParserFM15parse_base_pat_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t2LT2N14Lexer__token_tR10Ast__loc_tB( - ts_2, simple_2, &v_6, 0), _fx_catch_6); - FX_COPY_PTR(v_6.t0, &ts_3); - FX_COPY_PTR(v_6.t1, &p_1); + ts_2, simple_2, &v_7, 0), _fx_catch_6); + FX_COPY_PTR(v_7.t0, &ts_3); + FX_COPY_PTR(v_7.t1, &p_1); FX_CALL( _fx_M6ParserFM11extend_pat_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t4LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_tiB( - ts_3, p_1, 0, simple_2, &v_7, 0), _fx_catch_6); - FX_COPY_PTR(v_7.t0, &ts_4); - FX_COPY_PTR(v_7.t1, &p_2); + ts_3, p_1, 0, simple_2, &v_8, 0), _fx_catch_6); + FX_COPY_PTR(v_8.t0, &ts_4); + FX_COPY_PTR(v_8.t1, &p_2); if (simple_2) { _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(ts_4, p_2, &result_6); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&result_1); @@ -22394,18 +23289,18 @@ FX_EXTERN_C int FX_BREAK(_fx_catch_6); } else { - FX_CALL(_fx_cons_LN10Ast__pat_t(p_2, result_3, true, &v_8), _fx_catch_6); + FX_CALL(_fx_cons_LN10Ast__pat_t(p_2, result_3, true, &v_9), _fx_catch_6); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_4, &ts_1); expect_bar_1 = true; simple_1 = simple_2; _fx_free_LN10Ast__pat_t(&result_2); - FX_COPY_PTR(v_8, &result_2); + FX_COPY_PTR(v_9, &result_2); } _fx_catch_6: ; - if (v_8) { - _fx_free_LN10Ast__pat_t(&v_8); + if (v_9) { + _fx_free_LN10Ast__pat_t(&v_9); } _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&result_6); if (p_2) { @@ -22414,14 +23309,14 @@ FX_EXTERN_C int if (ts_4) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_4); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_7); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_8); if (p_1) { _fx_free_N10Ast__pat_t(&p_1); } if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_6); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_7); _fx_endmatch_3: ; FX_CHECK_EXN(_fx_catch_7); @@ -22487,7 +23382,7 @@ FX_EXTERN_C int if (ts_2 != 0) { if (ts_2->hd.t0.tag == 50) { fx_exn_t v_0 = {0}; - _fx_LT2N10Ast__pat_tN10Ast__exp_t __fold_result___0 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t res_0 = 0; _fx_LT2N10Ast__pat_tN10Ast__exp_t v_1 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t result_4 = {0}; if (result_3 == 0) { @@ -22505,20 +23400,19 @@ FX_EXTERN_C int } _fx_LT2N10Ast__pat_tN10Ast__exp_t lst_0 = result_3; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2N10Ast__pat_tN10Ast__exp_t r_0 = 0; + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_2 = 0; _fx_T2N10Ast__pat_tN10Ast__exp_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(a_0, r_0, false, &r_0), _fx_catch_0); - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(a_0, res_0, true, &v_2), _fx_catch_0); + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_2, &res_0); _fx_catch_0: ; - if (r_0) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&r_0); + if (v_2) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_2); } FX_CHECK_EXN(_fx_catch_1); } - FX_COPY_PTR(__fold_result___0, &v_1); + FX_COPY_PTR(res_0, &v_1); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t(ts_2->tl, v_1, &result_4); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLT2N10Ast__pat_tN10Ast__exp_t(&result_4, &result_1); @@ -22529,34 +23423,34 @@ FX_EXTERN_C int if (v_1) { _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_1); } - if (__fold_result___0) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&res_0); } fx_free_exn(&v_0); goto _fx_endmatch_4; } } - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_2 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t v_3 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; _fx_N10Ast__pat_t p_0 = 0; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_4 = 0; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_3 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_4 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_5 = 0; _fx_N10Ast__exp_t e_0 = 0; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_6 = 0; - _fx_T2N10Ast__pat_tN10Ast__exp_t v_4 = {0}; - _fx_LT2N10Ast__pat_tN10Ast__exp_t v_5 = 0; + _fx_T2N10Ast__pat_tN10Ast__exp_t v_5 = {0}; + _fx_LT2N10Ast__pat_tN10Ast__exp_t v_6 = 0; FX_CALL( _fx_M6ParserFM9parse_patT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t2LT2N14Lexer__token_tR10Ast__loc_tB(ts_2, - false, &v_2, 0), _fx_catch_10); - FX_COPY_PTR(v_2.t0, &ts_3); - FX_COPY_PTR(v_2.t1, &p_0); + false, &v_3, 0), _fx_catch_10); + FX_COPY_PTR(v_3.t0, &ts_3); + FX_COPY_PTR(v_3.t1, &p_0); if (ts_3 != 0) { if (ts_3->hd.t0.tag == 60) { FX_COPY_PTR(ts_3->tl, &ts_4); goto _fx_endmatch_0; } } - fx_exn_t v_6 = {0}; + fx_exn_t v_7 = {0}; _fx_R10Ast__loc_t loc_1; if (ts_3 != 0) { loc_1 = ts_3->hd.t1; @@ -22566,27 +23460,27 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_2); fx_str_t slit_1 = FX_MAKE_STR("\'=>\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_6), _fx_catch_2); - FX_THROW(&v_6, true, _fx_catch_2); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_7), _fx_catch_2); + FX_THROW(&v_7, true, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_6); + fx_free_exn(&v_7); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_10); if (ts_4 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_7 = ts_4->tl; - if (v_7 != 0) { - if (v_7->hd.t0.tag == 50) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_8 = &ts_4->hd; - if (v_8->t0.tag == 49) { - _fx_N10Ast__exp_t v_9 = 0; - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&v_8->t1, &v_9), _fx_catch_3); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(v_7->tl, v_9, &v_3); + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_8 = ts_4->tl; + if (v_8 != 0) { + if (v_8->hd.t0.tag == 50) { + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_9 = &ts_4->hd; + if (v_9->t0.tag == 49) { + _fx_N10Ast__exp_t v_10 = 0; + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&v_9->t1, &v_10), _fx_catch_3); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(v_8->tl, v_10, &v_4); _fx_catch_3: ; - if (v_9) { - _fx_free_N10Ast__exp_t(&v_9); + if (v_10) { + _fx_free_N10Ast__exp_t(&v_10); } goto _fx_endmatch_2; } @@ -22594,38 +23488,38 @@ FX_EXTERN_C int } } if (ts_4 != 0) { - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__exp_t v_10 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__exp_t v_11 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_7 = 0; _fx_LN10Ast__exp_t el_0 = 0; FX_CALL( _fx_M6ParserFM12parse_expseqT2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__exp_t2LT2N14Lexer__token_tR10Ast__loc_tB( - ts_4, false, &v_10, 0), _fx_catch_9); - FX_COPY_PTR(v_10.t0, &ts_7); - FX_COPY_PTR(v_10.t1, &el_0); + ts_4, false, &v_11, 0), _fx_catch_9); + FX_COPY_PTR(v_11.t0, &ts_7); + FX_COPY_PTR(v_11.t1, &el_0); if (el_0 != 0) { - _fx_N10Ast__exp_t v_11 = 0; + _fx_N10Ast__exp_t v_12 = 0; if (el_0 == 0) { - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&_fx_g10Ast__noloc, &v_11), _fx_catch_4); + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&_fx_g10Ast__noloc, &v_12), _fx_catch_4); _fx_catch_4: ; goto _fx_endmatch_1; } if (el_0 != 0) { if (el_0->tl == 0) { - FX_COPY_PTR(el_0->hd, &v_11); goto _fx_endmatch_1; + FX_COPY_PTR(el_0->hd, &v_12); goto _fx_endmatch_1; } } _fx_LR10Ast__loc_t llist_0 = 0; - _fx_N10Ast__typ_t v_12 = 0; - _fx_T2N10Ast__typ_tR10Ast__loc_t v_13 = {0}; + _fx_N10Ast__typ_t v_13 = 0; + _fx_T2N10Ast__typ_tR10Ast__loc_t v_14 = {0}; _fx_LR10Ast__loc_t lstend_0 = 0; _fx_LN10Ast__exp_t lst_1 = el_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_N10Ast__exp_t e_1 = lst_1->hd; - _fx_R10Ast__loc_t res_0; - FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e_1, &res_0, 0), _fx_catch_5); + _fx_R10Ast__loc_t res_1; + FX_CALL(_fx_M3AstFM11get_exp_locRM5loc_t1N10Ast__exp_t(e_1, &res_1, 0), _fx_catch_5); _fx_LR10Ast__loc_t node_0 = 0; - FX_CALL(_fx_cons_LR10Ast__loc_t(&res_0, 0, false, &node_0), _fx_catch_5); + FX_CALL(_fx_cons_LR10Ast__loc_t(&res_1, 0, false, &node_0), _fx_catch_5); FX_LIST_APPEND(llist_0, lstend_0, node_0); _fx_catch_5: ; @@ -22633,28 +23527,28 @@ FX_EXTERN_C int } _fx_R10Ast__loc_t loc_2; FX_CALL(_fx_M3AstFM11loclist2locRM5loc_t2LRM5loc_tRM5loc_t(llist_0, &_fx_g10Ast__noloc, &loc_2, 0), _fx_catch_6); - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_12, 0), _fx_catch_6); - _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_12, &loc_2, &v_13); - FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(el_0, &v_13, &v_11), _fx_catch_6); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_13, 0), _fx_catch_6); + _fx_make_T2N10Ast__typ_tR10Ast__loc_t(v_13, &loc_2, &v_14); + FX_CALL(_fx_M3AstFM6ExpSeqN10Ast__exp_t2LN10Ast__exp_tT2N10Ast__typ_tRM5loc_t(el_0, &v_14, &v_12), _fx_catch_6); _fx_catch_6: ; - _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_13); - if (v_12) { - _fx_free_N10Ast__typ_t(&v_12); + _fx_free_T2N10Ast__typ_tR10Ast__loc_t(&v_14); + if (v_13) { + _fx_free_N10Ast__typ_t(&v_13); } FX_FREE_LIST_SIMPLE(&llist_0); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_7); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_7, v_11, &v_3); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_7, v_12, &v_4); _fx_catch_7: ; - if (v_11) { - _fx_free_N10Ast__exp_t(&v_11); + if (v_12) { + _fx_free_N10Ast__exp_t(&v_12); } } else { - fx_exn_t v_14 = {0}; + fx_exn_t v_15 = {0}; _fx_R10Ast__loc_t loc_3; if (ts_7 != 0) { loc_3 = ts_7->hd.t1; @@ -22665,11 +23559,11 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_8); fx_str_t slit_2 = FX_MAKE_STR("some expressions are expected; use \'{}\' if there is no action for the particular match case"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_2, &v_14), _fx_catch_8); - FX_THROW(&v_14, true, _fx_catch_8); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_2, &v_15), _fx_catch_8); + FX_THROW(&v_15, true, _fx_catch_8); _fx_catch_8: ; - fx_free_exn(&v_14); + fx_free_exn(&v_15); } FX_CHECK_EXN(_fx_catch_9); @@ -22680,15 +23574,15 @@ FX_EXTERN_C int if (ts_7) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_7); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__exp_t(&v_10); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__exp_t(&v_11); goto _fx_endmatch_2; } FX_FAST_THROW(FX_EXN_NoMatchError, _fx_catch_10); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_10); - FX_COPY_PTR(v_3.t0, &ts_5); - FX_COPY_PTR(v_3.t1, &e_0); + FX_COPY_PTR(v_4.t0, &ts_5); + FX_COPY_PTR(v_4.t1, &e_0); if (ts_5 != 0) { if (ts_5->hd.t0.tag == 55) { FX_COPY_PTR(ts_5->tl, &ts_6); goto _fx_endmatch_3; @@ -22698,18 +23592,18 @@ FX_EXTERN_C int _fx_endmatch_3: ; FX_CHECK_EXN(_fx_catch_10); - _fx_make_T2N10Ast__pat_tN10Ast__exp_t(p_0, e_0, &v_4); - FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_4, result_3, true, &v_5), _fx_catch_10); + _fx_make_T2N10Ast__pat_tN10Ast__exp_t(p_0, e_0, &v_5); + FX_CALL(_fx_cons_LT2N10Ast__pat_tN10Ast__exp_t(&v_5, result_3, true, &v_6), _fx_catch_10); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_6, &ts_1); _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&result_2); - FX_COPY_PTR(v_5, &result_2); + FX_COPY_PTR(v_6, &result_2); _fx_catch_10: ; - if (v_5) { - _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_5); + if (v_6) { + _fx_free_LT2N10Ast__pat_tN10Ast__exp_t(&v_6); } - _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_4); + _fx_free_T2N10Ast__pat_tN10Ast__exp_t(&v_5); if (ts_6) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_6); } @@ -22719,7 +23613,7 @@ FX_EXTERN_C int if (ts_5) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_5); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_3); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_4); if (ts_4) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_4); } @@ -22729,7 +23623,7 @@ FX_EXTERN_C int if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_2); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__pat_t(&v_3); _fx_endmatch_4: ; FX_CHECK_EXN(_fx_catch_11); @@ -23361,7 +24255,7 @@ FX_EXTERN_C int _fx_N10Ast__typ_t v_1 = 0; _fx_Nt6option1N10Ast__typ_t v_2 = 0; _fx_rNt6option1N10Ast__typ_t v_3 = 0; - FX_CALL(_fx_M3AstFM11TypVarTupleN10Ast__typ_t1Nt6option1N10Ast__typ_t(_fx_g14Parser__None3_, &v_1), + FX_CALL(_fx_M3AstFM11TypVarTupleN10Ast__typ_t1Nt6option1N10Ast__typ_t(_fx_g14Parser__None5_, &v_1), _fx_catch_0); FX_CALL(_fx_M6ParserFM4SomeNt6option1N10Ast__typ_t1N10Ast__typ_t(v_1, &v_2), _fx_catch_0); FX_CALL(_fx_make_rNt6option1N10Ast__typ_t(v_2, &v_3), _fx_catch_0); @@ -23627,32 +24521,31 @@ FX_EXTERN_C int fx_free_exn(&v_20); goto _fx_endmatch_1; } - _fx_LN10Ast__typ_t __fold_result___0 = 0; + _fx_LN10Ast__typ_t res_0 = 0; _fx_LN10Ast__typ_t v_21 = 0; _fx_LN10Ast__typ_t lst_1 = result_3; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LN10Ast__typ_t r_0 = 0; + _fx_LN10Ast__typ_t v_22 = 0; _fx_N10Ast__typ_t a_0 = lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LN10Ast__typ_t(a_0, r_0, false, &r_0), _fx_catch_10); - _fx_free_LN10Ast__typ_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LN10Ast__typ_t(a_0, res_0, true, &v_22), _fx_catch_10); + _fx_free_LN10Ast__typ_t(&res_0); + FX_COPY_PTR(v_22, &res_0); _fx_catch_10: ; - if (r_0) { - _fx_free_LN10Ast__typ_t(&r_0); + if (v_22) { + _fx_free_LN10Ast__typ_t(&v_22); } FX_CHECK_EXN(_fx_catch_11); } - FX_COPY_PTR(__fold_result___0, &v_21); + FX_COPY_PTR(res_0, &v_21); FX_CALL(_fx_M3AstFM8TypTupleN10Ast__typ_t1LN10Ast__typ_t(v_21, &t_2), _fx_catch_11); _fx_catch_11: ; if (v_21) { _fx_free_LN10Ast__typ_t(&v_21); } - if (__fold_result___0) { - _fx_free_LN10Ast__typ_t(&__fold_result___0); + if (res_0) { + _fx_free_LN10Ast__typ_t(&res_0); } _fx_endmatch_1: ; @@ -23670,8 +24563,8 @@ FX_EXTERN_C int goto _fx_endmatch_3; } } - fx_exn_t v_22 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_23 = {0}; + fx_exn_t v_23 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_24 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_4 = 0; _fx_N10Ast__typ_t t_3 = 0; if (expect_comma_2) { @@ -23684,27 +24577,27 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_20); fx_str_t slit_6 = FX_MAKE_STR("\',\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_9, &slit_6, &v_22), _fx_catch_20); - FX_THROW(&v_22, true, _fx_catch_20); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_9, &slit_6, &v_23), _fx_catch_20); + FX_THROW(&v_23, true, _fx_catch_20); } FX_CALL( _fx_M6ParserFM17parse_typespec_nfT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t1LT2N14Lexer__token_tR10Ast__loc_t( - ts_2, &v_23, 0), _fx_catch_20); - FX_COPY_PTR(v_23.t0, &ts_4); - FX_COPY_PTR(v_23.t1, &t_3); + ts_2, &v_24, 0), _fx_catch_20); + FX_COPY_PTR(v_24.t0, &ts_4); + FX_COPY_PTR(v_24.t1, &t_3); if (ts_4 != 0) { if (ts_4->hd.t0.tag == 66) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_24 = ts_4->tl; - if (v_24 != 0) { - _fx_N14Lexer__token_t* v_25 = &v_24->hd.t0; - if (v_25->tag == 1) { - _fx_N10Ast__lit_t* v_26 = &v_25->u.LITERAL; - if (v_26->tag == 1) { + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_25 = ts_4->tl; + if (v_25 != 0) { + _fx_N14Lexer__token_t* v_26 = &v_25->hd.t0; + if (v_26->tag == 1) { + _fx_N10Ast__lit_t* v_27 = &v_26->u.LITERAL; + if (v_27->tag == 1) { _fx_LN10Ast__typ_t tt_1 = 0; - _fx_LN10Ast__typ_t v_27 = 0; + _fx_LN10Ast__typ_t v_28 = 0; _fx_LN10Ast__typ_t lstend_2 = 0; - int_ v_28 = (int_)v_26->u.LitInt; - for (int_ i_1 = 0; i_1 < v_28; i_1++) { + int_ v_29 = (int_)v_27->u.LitInt; + for (int_ i_1 = 0; i_1 < v_29; i_1++) { _fx_LN10Ast__typ_t node_2 = 0; FX_CALL(_fx_cons_LN10Ast__typ_t(t_3, 0, false, &node_2), _fx_catch_13); FX_LIST_APPEND(tt_1, lstend_2, node_2); @@ -23713,43 +24606,43 @@ FX_EXTERN_C int FX_CHECK_EXN(_fx_catch_16); } if (tt_1 == 0) { - FX_COPY_PTR(result_3, &v_27); + FX_COPY_PTR(result_3, &v_28); } else if (result_3 == 0) { - FX_COPY_PTR(tt_1, &v_27); + FX_COPY_PTR(tt_1, &v_28); } else { - _fx_LN10Ast__typ_t v_29 = 0; + _fx_LN10Ast__typ_t v_30 = 0; _fx_LN10Ast__typ_t lstend_3 = 0; _fx_LN10Ast__typ_t lst_2 = tt_1; for (; lst_2; lst_2 = lst_2->tl) { _fx_N10Ast__typ_t x_1 = lst_2->hd; _fx_LN10Ast__typ_t node_3 = 0; FX_CALL(_fx_cons_LN10Ast__typ_t(x_1, 0, false, &node_3), _fx_catch_14); - FX_LIST_APPEND(v_29, lstend_3, node_3); + FX_LIST_APPEND(v_30, lstend_3, node_3); _fx_catch_14: ; FX_CHECK_EXN(_fx_catch_15); } - _fx_M6ParserFM5link2LN10Ast__typ_t2LN10Ast__typ_tLN10Ast__typ_t(v_29, result_3, &v_27, 0); + _fx_M6ParserFM5link2LN10Ast__typ_t2LN10Ast__typ_tLN10Ast__typ_t(v_30, result_3, &v_28, 0); _fx_catch_15: ; - if (v_29) { - _fx_free_LN10Ast__typ_t(&v_29); + if (v_30) { + _fx_free_LN10Ast__typ_t(&v_30); } } FX_CHECK_EXN(_fx_catch_16); - _fx_LT2N14Lexer__token_tR10Ast__loc_t* rest_1 = &v_24->tl; + _fx_LT2N14Lexer__token_tR10Ast__loc_t* rest_1 = &v_25->tl; _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(*rest_1, &ts_1); expect_comma_1 = true; _fx_free_LN10Ast__typ_t(&result_2); - FX_COPY_PTR(v_27, &result_2); + FX_COPY_PTR(v_28, &result_2); loc_1 = loc_2; _fx_catch_16: ; - if (v_27) { - _fx_free_LN10Ast__typ_t(&v_27); + if (v_28) { + _fx_free_LN10Ast__typ_t(&v_28); } if (tt_1) { _fx_free_LN10Ast__typ_t(&tt_1); @@ -23762,43 +24655,43 @@ FX_EXTERN_C int } if (ts_4 != 0) { if (ts_4->hd.t0.tag == 61) { - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_30 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_31 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_5 = 0; _fx_N10Ast__typ_t rt_0 = 0; - _fx_LN10Ast__typ_t v_31 = 0; - _fx_N10Ast__typ_t v_32 = 0; - _fx_LN10Ast__typ_t v_33 = 0; + _fx_LN10Ast__typ_t v_32 = 0; + _fx_N10Ast__typ_t v_33 = 0; + _fx_LN10Ast__typ_t v_34 = 0; FX_CALL( _fx_M6ParserFM14parse_typespecT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t1LT2N14Lexer__token_tR10Ast__loc_t( - ts_4->tl, &v_30, 0), _fx_catch_18); - FX_COPY_PTR(v_30.t0, &ts_5); - FX_COPY_PTR(v_30.t1, &rt_0); + ts_4->tl, &v_31, 0), _fx_catch_18); + FX_COPY_PTR(v_31.t0, &ts_5); + FX_COPY_PTR(v_31.t1, &rt_0); int tag_0 = FX_REC_VARIANT_TAG(t_3); if (tag_0 == 18) { - FX_COPY_PTR(t_3->u.TypTuple, &v_31); + FX_COPY_PTR(t_3->u.TypTuple, &v_32); } else if (tag_0 != 14) { - FX_CALL(_fx_cons_LN10Ast__typ_t(t_3, 0, true, &v_31), _fx_catch_17); _fx_catch_17: ; + FX_CALL(_fx_cons_LN10Ast__typ_t(t_3, 0, true, &v_32), _fx_catch_17); _fx_catch_17: ; } FX_CHECK_EXN(_fx_catch_18); - FX_CALL(_fx_M3AstFM6TypFunN10Ast__typ_t2LN10Ast__typ_tN10Ast__typ_t(v_31, rt_0, &v_32), _fx_catch_18); - FX_CALL(_fx_cons_LN10Ast__typ_t(v_32, result_3, true, &v_33), _fx_catch_18); + FX_CALL(_fx_M3AstFM6TypFunN10Ast__typ_t2LN10Ast__typ_tN10Ast__typ_t(v_32, rt_0, &v_33), _fx_catch_18); + FX_CALL(_fx_cons_LN10Ast__typ_t(v_33, result_3, true, &v_34), _fx_catch_18); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_5, &ts_1); expect_comma_1 = true; _fx_free_LN10Ast__typ_t(&result_2); - FX_COPY_PTR(v_33, &result_2); + FX_COPY_PTR(v_34, &result_2); loc_1 = loc_2; _fx_catch_18: ; + if (v_34) { + _fx_free_LN10Ast__typ_t(&v_34); + } if (v_33) { - _fx_free_LN10Ast__typ_t(&v_33); + _fx_free_N10Ast__typ_t(&v_33); } if (v_32) { - _fx_free_N10Ast__typ_t(&v_32); - } - if (v_31) { - _fx_free_LN10Ast__typ_t(&v_31); + _fx_free_LN10Ast__typ_t(&v_32); } if (rt_0) { _fx_free_N10Ast__typ_t(&rt_0); @@ -23806,30 +24699,30 @@ FX_EXTERN_C int if (ts_5) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_5); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_30); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_31); goto _fx_endmatch_2; } } - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_34 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_35 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_6 = 0; _fx_N10Ast__typ_t t_4 = 0; - _fx_LN10Ast__typ_t v_35 = 0; + _fx_LN10Ast__typ_t v_36 = 0; FX_CALL( _fx_M6ParserFM19extend_typespec_nf_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t( - ts_4, t_3, &v_34, 0), _fx_catch_19); - FX_COPY_PTR(v_34.t0, &ts_6); - FX_COPY_PTR(v_34.t1, &t_4); - FX_CALL(_fx_cons_LN10Ast__typ_t(t_4, result_3, true, &v_35), _fx_catch_19); + ts_4, t_3, &v_35, 0), _fx_catch_19); + FX_COPY_PTR(v_35.t0, &ts_6); + FX_COPY_PTR(v_35.t1, &t_4); + FX_CALL(_fx_cons_LN10Ast__typ_t(t_4, result_3, true, &v_36), _fx_catch_19); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_6, &ts_1); expect_comma_1 = true; _fx_free_LN10Ast__typ_t(&result_2); - FX_COPY_PTR(v_35, &result_2); + FX_COPY_PTR(v_36, &result_2); loc_1 = loc_2; _fx_catch_19: ; - if (v_35) { - _fx_free_LN10Ast__typ_t(&v_35); + if (v_36) { + _fx_free_LN10Ast__typ_t(&v_36); } if (t_4) { _fx_free_N10Ast__typ_t(&t_4); @@ -23837,7 +24730,7 @@ FX_EXTERN_C int if (ts_6) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_6); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_34); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_35); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_20); @@ -23849,8 +24742,8 @@ FX_EXTERN_C int if (ts_4) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_4); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_23); - fx_free_exn(&v_22); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_24); + fx_free_exn(&v_23); _fx_endmatch_3: ; FX_CHECK_EXN(_fx_catch_21); @@ -24004,7 +24897,7 @@ FX_EXTERN_C int if (ts_2 != 0) { if (ts_2->hd.t0.tag == 50) { fx_exn_t v_1 = {0}; - _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t __fold_result___0 = 0; + _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t res_0 = 0; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_2 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t result_4 = {0}; if (result_3 == 0) { @@ -24022,21 +24915,20 @@ FX_EXTERN_C int } _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_0 = result_3; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t r_0 = 0; + _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_3 = 0; _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(a_0, r_0, false, &r_0), + FX_CALL(_fx_cons_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(a_0, res_0, true, &v_3), _fx_catch_1); - _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&res_0); + FX_COPY_PTR(v_3, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&r_0); + if (v_3) { + _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_3); } FX_CHECK_EXN(_fx_catch_2); } - FX_COPY_PTR(__fold_result___0, &v_2); + FX_COPY_PTR(res_0, &v_2); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(ts_2->tl, v_2, &result_4); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&result_1); @@ -24049,33 +24941,33 @@ FX_EXTERN_C int if (v_2) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_2); } - if (__fold_result___0) { - _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&__fold_result___0); + if (res_0) { + _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&res_0); } fx_free_exn(&v_1); goto _fx_endmatch_3; } } - bool res_0; + bool res_1; if (ts_2 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_3 = ts_2->tl; - if (v_3 != 0) { + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_4 = ts_2->tl; + if (v_4 != 0) { if (ts_2->hd.t0.tag == 2) { - if (v_3->hd.t0.tag == 54) { - res_0 = true; goto _fx_endmatch_0; + if (v_4->hd.t0.tag == 54) { + res_1 = true; goto _fx_endmatch_0; } } } } if (ts_2 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_4 = ts_2->tl; - if (v_4 != 0) { + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_5 = ts_2->tl; + if (v_5 != 0) { if (ts_2->hd.t0.tag == 39) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_5 = v_4->tl; - if (v_5 != 0) { - if (v_4->hd.t0.tag == 2) { - if (v_5->hd.t0.tag == 54) { - res_0 = true; goto _fx_endmatch_0; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_6 = v_5->tl; + if (v_6 != 0) { + if (v_5->hd.t0.tag == 2) { + if (v_6->hd.t0.tag == 54) { + res_1 = true; goto _fx_endmatch_0; } } } @@ -24083,52 +24975,52 @@ FX_EXTERN_C int } } if (ts_2 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_6 = ts_2->tl; - if (v_6 != 0) { + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_7 = ts_2->tl; + if (v_7 != 0) { if (ts_2->hd.t0.tag == 38) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_7 = v_6->tl; - if (v_7 != 0) { - if (v_6->hd.t0.tag == 2) { - if (v_7->hd.t0.tag == 54) { - res_0 = true; goto _fx_endmatch_0; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_8 = v_7->tl; + if (v_8 != 0) { + if (v_7->hd.t0.tag == 2) { + if (v_8->hd.t0.tag == 54) { + res_1 = true; goto _fx_endmatch_0; } } } } } } - res_0 = false; + res_1 = false; _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_11); - if (res_0) { - _fx_T4LT2N14Lexer__token_tR10Ast__loc_tBSR16Ast__val_flags_t v_8 = {0}; + if (res_1) { + _fx_T4LT2N14Lexer__token_tR10Ast__loc_tBSR16Ast__val_flags_t v_9 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; fx_str_t i_0 = {0}; _fx_R16Ast__val_flags_t flags_0 = {0}; - fx_exn_t v_9 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_10 = {0}; + fx_exn_t v_10 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_11 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_4 = 0; _fx_N10Ast__typ_t t_0 = 0; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_11 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_12 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_5 = 0; _fx_N10Ast__exp_t default__0 = 0; - _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_12 = {0}; - _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_13 = 0; + _fx_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_13 = {0}; + _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t v_14 = 0; if (ts_2 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_14 = ts_2->tl; - if (v_14 != 0) { - if (v_14->hd.t0.tag == 54) { - _fx_N14Lexer__token_t* v_15 = &ts_2->hd.t0; - if (v_15->tag == 2) { - _fx_R16Ast__val_flags_t v_16 = {0}; - _fx_T2BS* vcase_0 = &v_15->u.IDENT; - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_16, 0), _fx_catch_3); - _fx_make_T4LT2N14Lexer__token_tR10Ast__loc_tBSR16Ast__val_flags_t(v_14->tl, vcase_0->t0, &vcase_0->t1, - &v_16, &v_8); + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_15 = ts_2->tl; + if (v_15 != 0) { + if (v_15->hd.t0.tag == 54) { + _fx_N14Lexer__token_t* v_16 = &ts_2->hd.t0; + if (v_16->tag == 2) { + _fx_R16Ast__val_flags_t v_17 = {0}; + _fx_T2BS* vcase_0 = &v_16->u.IDENT; + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_17, 0), _fx_catch_3); + _fx_make_T4LT2N14Lexer__token_tR10Ast__loc_tBSR16Ast__val_flags_t(v_15->tl, vcase_0->t0, &vcase_0->t1, + &v_17, &v_9); _fx_catch_3: ; - _fx_free_R16Ast__val_flags_t(&v_16); + _fx_free_R16Ast__val_flags_t(&v_17); goto _fx_endmatch_1; } } @@ -24136,21 +25028,21 @@ FX_EXTERN_C int } if (ts_2 != 0) { if (ts_2->hd.t0.tag == 39) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_17 = ts_2->tl; - if (v_17 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_18 = v_17->tl; - if (v_18 != 0) { - if (v_18->hd.t0.tag == 54) { - _fx_N14Lexer__token_t* v_19 = &v_17->hd.t0; - if (v_19->tag == 2) { - _fx_R16Ast__val_flags_t v_20 = {0}; - _fx_T2BS* vcase_1 = &v_19->u.IDENT; - FX_CALL(_fx_M3AstFM17default_var_flagsRM11val_flags_t0(&v_20, 0), _fx_catch_4); - _fx_make_T4LT2N14Lexer__token_tR10Ast__loc_tBSR16Ast__val_flags_t(v_18->tl, vcase_1->t0, - &vcase_1->t1, &v_20, &v_8); + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_18 = ts_2->tl; + if (v_18 != 0) { + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_19 = v_18->tl; + if (v_19 != 0) { + if (v_19->hd.t0.tag == 54) { + _fx_N14Lexer__token_t* v_20 = &v_18->hd.t0; + if (v_20->tag == 2) { + _fx_R16Ast__val_flags_t v_21 = {0}; + _fx_T2BS* vcase_1 = &v_20->u.IDENT; + FX_CALL(_fx_M3AstFM17default_var_flagsRM11val_flags_t0(&v_21, 0), _fx_catch_4); + _fx_make_T4LT2N14Lexer__token_tR10Ast__loc_tBSR16Ast__val_flags_t(v_19->tl, vcase_1->t0, + &vcase_1->t1, &v_21, &v_9); _fx_catch_4: ; - _fx_free_R16Ast__val_flags_t(&v_20); + _fx_free_R16Ast__val_flags_t(&v_21); goto _fx_endmatch_1; } } @@ -24160,21 +25052,21 @@ FX_EXTERN_C int } if (ts_2 != 0) { if (ts_2->hd.t0.tag == 38) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_21 = ts_2->tl; - if (v_21 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_22 = v_21->tl; - if (v_22 != 0) { - if (v_22->hd.t0.tag == 54) { - _fx_N14Lexer__token_t* v_23 = &v_21->hd.t0; - if (v_23->tag == 2) { - _fx_R16Ast__val_flags_t v_24 = {0}; - _fx_T2BS* vcase_2 = &v_23->u.IDENT; - FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_24, 0), _fx_catch_5); - _fx_make_T4LT2N14Lexer__token_tR10Ast__loc_tBSR16Ast__val_flags_t(v_22->tl, vcase_2->t0, - &vcase_2->t1, &v_24, &v_8); + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_22 = ts_2->tl; + if (v_22 != 0) { + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_23 = v_22->tl; + if (v_23 != 0) { + if (v_23->hd.t0.tag == 54) { + _fx_N14Lexer__token_t* v_24 = &v_22->hd.t0; + if (v_24->tag == 2) { + _fx_R16Ast__val_flags_t v_25 = {0}; + _fx_T2BS* vcase_2 = &v_24->u.IDENT; + FX_CALL(_fx_M3AstFM17default_val_flagsRM11val_flags_t0(&v_25, 0), _fx_catch_5); + _fx_make_T4LT2N14Lexer__token_tR10Ast__loc_tBSR16Ast__val_flags_t(v_23->tl, vcase_2->t0, + &vcase_2->t1, &v_25, &v_9); _fx_catch_5: ; - _fx_free_R16Ast__val_flags_t(&v_24); + _fx_free_R16Ast__val_flags_t(&v_25); goto _fx_endmatch_1; } } @@ -24182,7 +25074,7 @@ FX_EXTERN_C int } } } - fx_exn_t v_25 = {0}; + fx_exn_t v_26 = {0}; _fx_R10Ast__loc_t loc_2; if (ts_2 != 0) { loc_2 = ts_2->hd.t1; @@ -24192,18 +25084,18 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_6); fx_str_t slit_2 = FX_MAKE_STR("unexpected token"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_25), _fx_catch_6); - FX_THROW(&v_25, true, _fx_catch_6); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_26), _fx_catch_6); + FX_THROW(&v_26, true, _fx_catch_6); _fx_catch_6: ; - fx_free_exn(&v_25); + fx_free_exn(&v_26); _fx_endmatch_1: ; FX_CHECK_EXN(_fx_catch_9); - FX_COPY_PTR(v_8.t0, &ts_3); - bool f_0 = v_8.t1; - fx_copy_str(&v_8.t2, &i_0); - _fx_copy_R16Ast__val_flags_t(&v_8.t3, &flags_0); + FX_COPY_PTR(v_9.t0, &ts_3); + bool f_0 = v_9.t1; + fx_copy_str(&v_9.t2, &i_0); + _fx_copy_R16Ast__val_flags_t(&v_9.t3, &flags_0); bool t_1; if (expect_semicolon_2) { t_1 = !f_0; @@ -24221,25 +25113,25 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_9); fx_str_t slit_3 = FX_MAKE_STR("\';\' or newline should be inserted between record elements"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_3, &v_9), _fx_catch_9); - FX_THROW(&v_9, true, _fx_catch_9); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_3, &v_10), _fx_catch_9); + FX_THROW(&v_10, true, _fx_catch_9); } FX_CALL( _fx_M6ParserFM14parse_typespecT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t1LT2N14Lexer__token_tR10Ast__loc_t( - ts_3, &v_10, 0), _fx_catch_9); - FX_COPY_PTR(v_10.t0, &ts_4); - FX_COPY_PTR(v_10.t1, &t_0); + ts_3, &v_11, 0), _fx_catch_9); + FX_COPY_PTR(v_11.t0, &ts_4); + FX_COPY_PTR(v_11.t1, &t_0); if (ts_4 != 0) { if (ts_4->hd.t0.tag == 86) { - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_26 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t v_27 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_6 = 0; _fx_N10Ast__exp_t v0_0 = 0; FX_CALL( _fx_M6ParserFM9parse_expT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t2LT2N14Lexer__token_tR10Ast__loc_tB( - ts_4->tl, true, &v_26, 0), _fx_catch_7); - FX_COPY_PTR(v_26.t0, &ts_6); - FX_COPY_PTR(v_26.t1, &v0_0); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_6, v0_0, &v_11); + ts_4->tl, true, &v_27, 0), _fx_catch_7); + FX_COPY_PTR(v_27.t0, &ts_6); + FX_COPY_PTR(v_27.t1, &v0_0); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_6, v0_0, &v_12); _fx_catch_7: ; if (v0_0) { @@ -24248,18 +25140,18 @@ FX_EXTERN_C int if (ts_6) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_6); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_26); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_27); goto _fx_endmatch_2; } } if (ts_4 != 0) { - _fx_N10Ast__exp_t v_27 = 0; - FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&ts_4->hd.t1, &v_27), _fx_catch_8); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_4, v_27, &v_11); + _fx_N10Ast__exp_t v_28 = 0; + FX_CALL(_fx_M3AstFM6ExpNopN10Ast__exp_t1RM5loc_t(&ts_4->hd.t1, &v_28), _fx_catch_8); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_4, v_28, &v_12); _fx_catch_8: ; - if (v_27) { - _fx_free_N10Ast__exp_t(&v_27); + if (v_28) { + _fx_free_N10Ast__exp_t(&v_28); } goto _fx_endmatch_2; } @@ -24267,54 +25159,54 @@ FX_EXTERN_C int _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_9); - FX_COPY_PTR(v_11.t0, &ts_5); - FX_COPY_PTR(v_11.t1, &default__0); - _fx_R9Ast__id_t v_28; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&i_0, &v_28, 0), _fx_catch_9); - _fx_make_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&flags_0, &v_28, t_0, default__0, &v_12); - FX_CALL(_fx_cons_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_12, result_3, true, &v_13), + FX_COPY_PTR(v_12.t0, &ts_5); + FX_COPY_PTR(v_12.t1, &default__0); + _fx_R9Ast__id_t v_29; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&i_0, &v_29, 0), _fx_catch_9); + _fx_make_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&flags_0, &v_29, t_0, default__0, &v_13); + FX_CALL(_fx_cons_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_13, result_3, true, &v_14), _fx_catch_9); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_5, &ts_1); expect_semicolon_1 = true; _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&result_2); - FX_COPY_PTR(v_13, &result_2); + FX_COPY_PTR(v_14, &result_2); _fx_catch_9: ; - if (v_13) { - _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_13); + if (v_14) { + _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_14); } - _fx_free_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_12); + _fx_free_T4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&v_13); if (default__0) { _fx_free_N10Ast__exp_t(&default__0); } if (ts_5) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_5); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_11); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(&v_12); if (t_0) { _fx_free_N10Ast__typ_t(&t_0); } if (ts_4) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_4); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_10); - fx_free_exn(&v_9); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_11); + fx_free_exn(&v_10); _fx_free_R16Ast__val_flags_t(&flags_0); FX_FREE_STR(&i_0); if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T4LT2N14Lexer__token_tR10Ast__loc_tBSR16Ast__val_flags_t(&v_8); + _fx_free_T4LT2N14Lexer__token_tR10Ast__loc_tBSR16Ast__val_flags_t(&v_9); goto _fx_endmatch_3; } - fx_str_t v_29 = {0}; - fx_exn_t v_30 = {0}; + fx_str_t v_30 = {0}; + fx_exn_t v_31 = {0}; if (expect_semicolon_2) { - fx_str_t slit_4 = FX_MAKE_STR("\';\' or newline is expected"); fx_copy_str(&slit_4, &v_29); + fx_str_t slit_4 = FX_MAKE_STR("\';\' or newline is expected"); fx_copy_str(&slit_4, &v_30); } else { - fx_str_t slit_5 = FX_MAKE_STR("identifier followed by \':\' is expected"); fx_copy_str(&slit_5, &v_29); + fx_str_t slit_5 = FX_MAKE_STR("identifier followed by \':\' is expected"); fx_copy_str(&slit_5, &v_30); } _fx_R10Ast__loc_t loc_4; if (ts_2 != 0) { @@ -24324,12 +25216,12 @@ FX_EXTERN_C int loc_4 = _fx_g18Parser__parser_ctx.default_loc; } FX_CHECK_EXN(_fx_catch_10); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_4, &v_29, &v_30), _fx_catch_10); - FX_THROW(&v_30, true, _fx_catch_10); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_4, &v_30, &v_31), _fx_catch_10); + FX_THROW(&v_31, true, _fx_catch_10); _fx_catch_10: ; - fx_free_exn(&v_30); - FX_FREE_STR(&v_29); + fx_free_exn(&v_31); + FX_FREE_STR(&v_30); _fx_endmatch_3: ; FX_CHECK_EXN(_fx_catch_11); @@ -24538,23 +25430,22 @@ FX_EXTERN_C int } if (ts_2 != 0) { if (ts_2->hd.t0.tag == 46) { - _fx_LR9Ast__id_t __fold_result___0 = 0; + _fx_LR9Ast__id_t res_0 = 0; _fx_LR9Ast__id_t v_5 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t result_1 = {0}; _fx_LR9Ast__id_t lst_0 = tyvars_2; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LR9Ast__id_t r_0 = 0; + _fx_LR9Ast__id_t v_6 = 0; _fx_R9Ast__id_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LR9Ast__id_t(a_0, r_0, false, &r_0), _fx_catch_2); - FX_FREE_LIST_SIMPLE(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LR9Ast__id_t(a_0, res_0, true, &v_6), _fx_catch_2); + FX_FREE_LIST_SIMPLE(&res_0); + FX_COPY_PTR(v_6, &res_0); _fx_catch_2: ; - FX_FREE_LIST_SIMPLE(&r_0); + FX_FREE_LIST_SIMPLE(&v_6); FX_CHECK_EXN(_fx_catch_3); } - FX_COPY_PTR(__fold_result___0, &v_5); + FX_COPY_PTR(res_0, &v_5); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(ts_2->tl, v_5, &result_1); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&result_0); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&result_1, &result_0); @@ -24563,19 +25454,19 @@ FX_EXTERN_C int _fx_catch_3: ; _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&result_1); FX_FREE_LIST_SIMPLE(&v_5); - FX_FREE_LIST_SIMPLE(&__fold_result___0); + FX_FREE_LIST_SIMPLE(&res_0); goto _fx_endmatch_0; } } - fx_str_t v_6 = {0}; fx_str_t v_7 = {0}; - fx_exn_t v_8 = {0}; - FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(&loc_2, &v_6, 0), _fx_catch_4); + fx_str_t v_8 = {0}; + fx_exn_t v_9 = {0}; + FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(&loc_2, &v_7, 0), _fx_catch_4); fx_str_t slit_2 = FX_MAKE_STR("incomplete type var list started at "); fx_str_t slit_3 = FX_MAKE_STR(", \')\' is missing?"); { - const fx_str_t strs_0[] = { slit_2, v_6, slit_3 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_7), _fx_catch_4); + const fx_str_t strs_0[] = { slit_2, v_7, slit_3 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 3, &v_8), _fx_catch_4); } _fx_R10Ast__loc_t loc_5; if (ts_2 != 0) { @@ -24585,13 +25476,13 @@ FX_EXTERN_C int loc_5 = _fx_g18Parser__parser_ctx.default_loc; } FX_CHECK_EXN(_fx_catch_4); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_5, &v_7, &v_8), _fx_catch_4); - FX_THROW(&v_8, true, _fx_catch_4); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_5, &v_8, &v_9), _fx_catch_4); + FX_THROW(&v_9, true, _fx_catch_4); _fx_catch_4: ; - fx_free_exn(&v_8); + fx_free_exn(&v_9); + FX_FREE_STR(&v_8); FX_FREE_STR(&v_7); - FX_FREE_STR(&v_6); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_5); @@ -24673,7 +25564,7 @@ FX_EXTERN_C int if (v_1->hd.t0.tag == 54) { _fx_N14Lexer__token_t* v_2 = &ts_2->hd.t0; if (v_2->tag == 2) { - _fx_LT2R9Ast__id_tN10Ast__typ_t __fold_result___0 = 0; + _fx_LT2R9Ast__id_tN10Ast__typ_t res_0 = 0; _fx_LT2R9Ast__id_tN10Ast__typ_t v_3 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t result_4 = {0}; fx_exn_t v_4 = {0}; @@ -24686,20 +25577,19 @@ FX_EXTERN_C int if (expect_bar_2) { _fx_LT2R9Ast__id_tN10Ast__typ_t lst_0 = result_3; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LT2R9Ast__id_tN10Ast__typ_t r_0 = 0; + _fx_LT2R9Ast__id_tN10Ast__typ_t v_8 = 0; _fx_T2R9Ast__id_tN10Ast__typ_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(a_0, res_0, true, &v_8), _fx_catch_1); + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&res_0); + FX_COPY_PTR(v_8, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&r_0); + if (v_8) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_8); } FX_CHECK_EXN(_fx_catch_2); } - FX_COPY_PTR(__fold_result___0, &v_3); + FX_COPY_PTR(res_0, &v_3); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(ts_2, v_3, &result_4); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(&result_4, &result_1); @@ -24708,14 +25598,14 @@ FX_EXTERN_C int else { FX_STR_CHKIDX(*i_0, 0, _fx_catch_2); char_ c_0 = FX_STR_ELEM(*i_0, 0); - bool v_8; + bool v_9; if ((bool)(((char_)65 <= c_0) & (c_0 <= (char_)90))) { - v_8 = true; + v_9 = true; } else { - v_8 = _fx_M6StringFM8containsB2SC(i_0, (char_)46, 0); + v_9 = _fx_M6StringFM8containsB2SC(i_0, (char_)46, 0); } - if (!v_8) { + if (!v_9) { _fx_R10Ast__loc_t loc_1; if (ts_2 != 0) { loc_1 = ts_2->hd.t1; @@ -24733,9 +25623,9 @@ FX_EXTERN_C int v_1->tl, &v_5, 0), _fx_catch_2); FX_COPY_PTR(v_5.t0, &ts_3); FX_COPY_PTR(v_5.t1, &t_0); - _fx_R9Ast__id_t v_9; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(i_0, &v_9, 0), _fx_catch_2); - _fx_make_T2R9Ast__id_tN10Ast__typ_t(&v_9, t_0, &v_6); + _fx_R9Ast__id_t v_10; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(i_0, &v_10, 0), _fx_catch_2); + _fx_make_T2R9Ast__id_tN10Ast__typ_t(&v_10, t_0, &v_6); FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(&v_6, result_3, true, &v_7), _fx_catch_2); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(ts_3, &ts_1); @@ -24761,8 +25651,8 @@ FX_EXTERN_C int if (v_3) { _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_3); } - if (__fold_result___0) { - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&res_0); } goto _fx_endmatch_0; } @@ -24770,33 +25660,32 @@ FX_EXTERN_C int } } if (ts_2 != 0) { - _fx_N14Lexer__token_t* v_10 = &ts_2->hd.t0; - if (v_10->tag == 2) { - _fx_LT2R9Ast__id_tN10Ast__typ_t __fold_result___1 = 0; - _fx_LT2R9Ast__id_tN10Ast__typ_t v_11 = 0; + _fx_N14Lexer__token_t* v_11 = &ts_2->hd.t0; + if (v_11->tag == 2) { + _fx_LT2R9Ast__id_tN10Ast__typ_t res_1 = 0; + _fx_LT2R9Ast__id_tN10Ast__typ_t v_12 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t result_5 = {0}; - fx_exn_t v_12 = {0}; - _fx_T2R9Ast__id_tN10Ast__typ_t v_13 = {0}; - _fx_LT2R9Ast__id_tN10Ast__typ_t v_14 = 0; - fx_str_t* i_1 = &v_10->u.IDENT.t1; + fx_exn_t v_13 = {0}; + _fx_T2R9Ast__id_tN10Ast__typ_t v_14 = {0}; + _fx_LT2R9Ast__id_tN10Ast__typ_t v_15 = 0; + fx_str_t* i_1 = &v_11->u.IDENT.t1; if (expect_bar_2) { _fx_LT2R9Ast__id_tN10Ast__typ_t lst_1 = result_3; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LT2R9Ast__id_tN10Ast__typ_t r_1 = 0; + _fx_LT2R9Ast__id_tN10Ast__typ_t v_16 = 0; _fx_T2R9Ast__id_tN10Ast__typ_t* a_1 = &lst_1->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(a_1, r_1, false, &r_1), _fx_catch_3); - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(a_1, res_1, true, &v_16), _fx_catch_3); + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&res_1); + FX_COPY_PTR(v_16, &res_1); _fx_catch_3: ; - if (r_1) { - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&r_1); + if (v_16) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_16); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___1, &v_11); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(ts_2, v_11, &result_5); + FX_COPY_PTR(res_1, &v_12); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(ts_2, v_12, &result_5); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(&result_5, &result_1); FX_BREAK(_fx_catch_4); @@ -24804,14 +25693,14 @@ FX_EXTERN_C int else { FX_STR_CHKIDX(*i_1, 0, _fx_catch_4); char_ c_1 = FX_STR_ELEM(*i_1, 0); - bool v_15; + bool v_17; if ((bool)(((char_)65 <= c_1) & (c_1 <= (char_)90))) { - v_15 = true; + v_17 = true; } else { - v_15 = _fx_M6StringFM8containsB2SC(i_1, (char_)46, 0); + v_17 = _fx_M6StringFM8containsB2SC(i_1, (char_)46, 0); } - if (!v_15) { + if (!v_17) { _fx_R10Ast__loc_t loc_2; if (ts_2 != 0) { loc_2 = ts_2->hd.t1; @@ -24821,68 +25710,67 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_4); fx_str_t slit_2 = FX_MAKE_STR("variant label should start with a capital letter A..Z"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_12), _fx_catch_4); - FX_THROW(&v_12, true, _fx_catch_4); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_13), _fx_catch_4); + FX_THROW(&v_13, true, _fx_catch_4); } - _fx_R9Ast__id_t v_16; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(i_1, &v_16, 0), _fx_catch_4); - _fx_make_T2R9Ast__id_tN10Ast__typ_t(&v_16, _fx_g15Parser__TypVoid, &v_13); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(&v_13, result_3, true, &v_14), _fx_catch_4); + _fx_R9Ast__id_t v_18; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(i_1, &v_18, 0), _fx_catch_4); + _fx_make_T2R9Ast__id_tN10Ast__typ_t(&v_18, _fx_g15Parser__TypVoid, &v_14); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(&v_14, result_3, true, &v_15), _fx_catch_4); _fx_LT2N14Lexer__token_tR10Ast__loc_t* rest_1 = &ts_2->tl; _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_1); FX_COPY_PTR(*rest_1, &ts_1); expect_bar_1 = true; _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&result_2); - FX_COPY_PTR(v_14, &result_2); + FX_COPY_PTR(v_15, &result_2); } _fx_catch_4: ; - if (v_14) { - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_14); + if (v_15) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_15); } - _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_13); - fx_free_exn(&v_12); + _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_14); + fx_free_exn(&v_13); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(&result_5); - if (v_11) { - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_11); + if (v_12) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_12); } - if (__fold_result___1) { - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&__fold_result___1); + if (res_1) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&res_1); } goto _fx_endmatch_0; } } - _fx_LT2R9Ast__id_tN10Ast__typ_t __fold_result___2 = 0; - _fx_LT2R9Ast__id_tN10Ast__typ_t v_17 = 0; + _fx_LT2R9Ast__id_tN10Ast__typ_t res_2 = 0; + _fx_LT2R9Ast__id_tN10Ast__typ_t v_19 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t result_6 = {0}; _fx_LT2R9Ast__id_tN10Ast__typ_t lst_2 = result_3; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LT2R9Ast__id_tN10Ast__typ_t r_2 = 0; + _fx_LT2R9Ast__id_tN10Ast__typ_t v_20 = 0; _fx_T2R9Ast__id_tN10Ast__typ_t* a_2 = &lst_2->hd; - FX_COPY_PTR(__fold_result___2, &r_2); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(a_2, r_2, false, &r_2), _fx_catch_5); - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&__fold_result___2); - FX_COPY_PTR(r_2, &__fold_result___2); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(a_2, res_2, true, &v_20), _fx_catch_5); + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&res_2); + FX_COPY_PTR(v_20, &res_2); _fx_catch_5: ; - if (r_2) { - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&r_2); + if (v_20) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_20); } FX_CHECK_EXN(_fx_catch_6); } - FX_COPY_PTR(__fold_result___2, &v_17); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(ts_2, v_17, &result_6); + FX_COPY_PTR(res_2, &v_19); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(ts_2, v_19, &result_6); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(&result_1); _fx_copy_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(&result_6, &result_1); FX_BREAK(_fx_catch_6); _fx_catch_6: ; _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(&result_6); - if (v_17) { - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_17); + if (v_19) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&v_19); } - if (__fold_result___2) { - _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&__fold_result___2); + if (res_2) { + _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&res_2); } _fx_endmatch_0: ; @@ -24931,7 +25819,9 @@ FX_EXTERN_C int _fx_M6ParserFM13parse_deftypeT2LT2N14Lexer__token_tR10Ast__loc_t FX_CALL(fx_check_stack(), _fx_cleanup); if (ts_0 != 0) { if (ts_0->hd.t0.tag == 10) { - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_ti(ts_0->tl, _fx_g18Parser__parser_ctx.m_idx, &v_0); goto _fx_endmatch_0; + int_ v_4 = _fx_g18Parser__parser_ctx.m_idx; + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_ti(ts_0->tl, v_4, &v_0); + goto _fx_endmatch_0; } } if (ts_0 != 0) { @@ -24939,7 +25829,7 @@ FX_EXTERN_C int _fx_M6ParserFM13parse_deftypeT2LT2N14Lexer__token_tR10Ast__loc_t _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_ti(ts_0->tl, 0, &v_0); goto _fx_endmatch_0; } } - fx_exn_t v_4 = {0}; + fx_exn_t v_5 = {0}; _fx_R10Ast__loc_t loc_0; if (ts_0 != 0) { loc_0 = ts_0->hd.t1; @@ -24949,42 +25839,42 @@ FX_EXTERN_C int _fx_M6ParserFM13parse_deftypeT2LT2N14Lexer__token_tR10Ast__loc_t } FX_CHECK_EXN(_fx_catch_0); fx_str_t slit_0 = FX_MAKE_STR("\'type\' or \'class\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_0, &slit_0, &v_4), _fx_catch_0); - FX_THROW(&v_4, true, _fx_catch_0); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_0, &slit_0, &v_5), _fx_catch_0); + FX_THROW(&v_5, true, _fx_catch_0); _fx_catch_0: ; - fx_free_exn(&v_4); + fx_free_exn(&v_5); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_cleanup); FX_COPY_PTR(v_0.t0, &ts_1); int_ class_module_0 = v_0.t1; if (ts_1 != 0) { - _fx_N14Lexer__token_t* v_5 = &ts_1->hd.t0; - if (v_5->tag == 3) { - _fx_LR9Ast__id_t v_6 = 0; - _fx_R9Ast__id_t v_7; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_5->u.TYVAR, &v_7, 0), _fx_catch_1); - FX_CALL(_fx_cons_LR9Ast__id_t(&v_7, 0, true, &v_6), _fx_catch_1); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(ts_1->tl, v_6, &v_1); + _fx_N14Lexer__token_t* v_6 = &ts_1->hd.t0; + if (v_6->tag == 3) { + _fx_LR9Ast__id_t v_7 = 0; + _fx_R9Ast__id_t v_8; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_6->u.TYVAR, &v_8, 0), _fx_catch_1); + FX_CALL(_fx_cons_LR9Ast__id_t(&v_8, 0, true, &v_7), _fx_catch_1); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(ts_1->tl, v_7, &v_1); _fx_catch_1: ; - FX_FREE_LIST_SIMPLE(&v_6); + FX_FREE_LIST_SIMPLE(&v_7); goto _fx_endmatch_1; } } if (ts_1 != 0) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_8 = &ts_1->hd; - if (v_8->t0.tag == 44) { - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t v_9 = {0}; + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_9 = &ts_1->hd; + if (v_9->t0.tag == 44) { + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t v_10 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_6 = 0; _fx_LR9Ast__id_t type_params_1 = 0; - fx_exn_t v_10 = {0}; + fx_exn_t v_11 = {0}; FX_CALL( _fx_M6ParserFM13parse_tyvars_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t4LT2N14Lexer__token_tR10Ast__loc_tBLR9Ast__id_tR10Ast__loc_t( - ts_1->tl, false, 0, &v_8->t1, &v_9, 0), _fx_catch_2); - FX_COPY_PTR(v_9.t0, &ts_6); - FX_COPY_PTR(v_9.t1, &type_params_1); + ts_1->tl, false, 0, &v_9->t1, &v_10, 0), _fx_catch_2); + FX_COPY_PTR(v_10.t0, &ts_6); + FX_COPY_PTR(v_10.t1, &type_params_1); if (type_params_1 == 0) { _fx_R10Ast__loc_t loc_1; if (ts_6 != 0) { @@ -24996,18 +25886,18 @@ _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_2); fx_str_t slit_1 = FX_MAKE_STR("empty list of type parameters inside (); if you don\'t want type parameters, just remove ()"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_10), _fx_catch_2); - FX_THROW(&v_10, true, _fx_catch_2); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_11), _fx_catch_2); + FX_THROW(&v_11, true, _fx_catch_2); } _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(ts_6, type_params_1, &v_1); _fx_catch_2: ; - fx_free_exn(&v_10); + fx_free_exn(&v_11); FX_FREE_LIST_SIMPLE(&type_params_1); if (ts_6) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_6); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&v_9); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&v_10); goto _fx_endmatch_1; } } @@ -25018,18 +25908,18 @@ _fx_endmatch_1: ; FX_COPY_PTR(v_1.t0, &ts_2); FX_COPY_PTR(v_1.t1, &type_params_0); if (ts_2 != 0) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_11 = &ts_2->hd; - _fx_N14Lexer__token_t* v_12 = &v_11->t0; - if (v_12->tag == 2) { - _fx_R9Ast__id_t v_13; - FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_12->u.IDENT.t1, &v_13, 0), _fx_catch_3); - _fx_make_T3LT2N14Lexer__token_tR10Ast__loc_tR9Ast__id_tR10Ast__loc_t(ts_2->tl, &v_13, &v_11->t1, &v_2); + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_12 = &ts_2->hd; + _fx_N14Lexer__token_t* v_13 = &v_12->t0; + if (v_13->tag == 2) { + _fx_R9Ast__id_t v_14; + FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_13->u.IDENT.t1, &v_14, 0), _fx_catch_3); + _fx_make_T3LT2N14Lexer__token_tR10Ast__loc_tR9Ast__id_tR10Ast__loc_t(ts_2->tl, &v_14, &v_12->t1, &v_2); _fx_catch_3: ; goto _fx_endmatch_2; } } - fx_exn_t v_14 = {0}; + fx_exn_t v_15 = {0}; _fx_R10Ast__loc_t loc_2; if (ts_2 != 0) { loc_2 = ts_2->hd.t1; @@ -25039,11 +25929,11 @@ _fx_endmatch_1: ; } FX_CHECK_EXN(_fx_catch_4); fx_str_t slit_2 = FX_MAKE_STR("the type name is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_14), _fx_catch_4); - FX_THROW(&v_14, true, _fx_catch_4); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &slit_2, &v_15), _fx_catch_4); + FX_THROW(&v_15, true, _fx_catch_4); _fx_catch_4: ; - fx_free_exn(&v_14); + fx_free_exn(&v_15); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_cleanup); @@ -25052,15 +25942,15 @@ _fx_endmatch_2: ; _fx_R10Ast__loc_t loc_3 = v_2.t2; if (ts_3 != 0) { if (ts_3->hd.t0.tag == 54) { - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t v_15 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t v_16 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_7 = 0; _fx_LR9Ast__id_t ifaces_1 = 0; - _fx_LT2R9Ast__id_tLTa2R9Ast__id_t v_16 = 0; + _fx_LT2R9Ast__id_tLTa2R9Ast__id_t v_17 = 0; FX_CALL( _fx_M6ParserFM16parse_ident_listT2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t4LT2N14Lexer__token_tR10Ast__loc_tBBLR9Ast__id_t( - ts_3->tl, false, true, 0, &v_15, 0), _fx_catch_6); - FX_COPY_PTR(v_15.t0, &ts_7); - FX_COPY_PTR(v_15.t1, &ifaces_1); + ts_3->tl, false, true, 0, &v_16, 0), _fx_catch_6); + FX_COPY_PTR(v_16.t0, &ts_7); + FX_COPY_PTR(v_16.t1, &ifaces_1); _fx_LT2R9Ast__id_tLTa2R9Ast__id_t lstend_0 = 0; _fx_LR9Ast__id_t lst_0 = ifaces_1; for (; lst_0; lst_0 = lst_0->tl) { @@ -25069,23 +25959,23 @@ _fx_endmatch_2: ; _fx_make_T2R9Ast__id_tLTa2R9Ast__id_t(i_0, 0, &tup_0); _fx_LT2R9Ast__id_tLTa2R9Ast__id_t node_0 = 0; FX_CALL(_fx_cons_LT2R9Ast__id_tLTa2R9Ast__id_t(&tup_0, 0, false, &node_0), _fx_catch_5); - FX_LIST_APPEND(v_16, lstend_0, node_0); + FX_LIST_APPEND(v_17, lstend_0, node_0); _fx_catch_5: ; _fx_free_T2R9Ast__id_tLTa2R9Ast__id_t(&tup_0); FX_CHECK_EXN(_fx_catch_6); } - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tLTa2R9Ast__id_t(ts_7, v_16, &v_3); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tLTa2R9Ast__id_t(ts_7, v_17, &v_3); _fx_catch_6: ; - if (v_16) { - _fx_free_LT2R9Ast__id_tLTa2R9Ast__id_t(&v_16); + if (v_17) { + _fx_free_LT2R9Ast__id_tLTa2R9Ast__id_t(&v_17); } FX_FREE_LIST_SIMPLE(&ifaces_1); if (ts_7) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_7); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&v_15); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLR9Ast__id_t(&v_16); goto _fx_endmatch_3; } } @@ -25105,7 +25995,7 @@ _fx_endmatch_3: ; FX_COPY_PTR(ts_4, &ts_5); goto _fx_endmatch_4; } } - fx_exn_t v_17 = {0}; + fx_exn_t v_18 = {0}; _fx_R10Ast__loc_t loc_4; if (ts_4 != 0) { loc_4 = ts_4->hd.t1; @@ -25115,45 +26005,45 @@ _fx_endmatch_3: ; } FX_CHECK_EXN(_fx_catch_7); fx_str_t slit_3 = FX_MAKE_STR("\'=\' or \'{\' is expected"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_4, &slit_3, &v_17), _fx_catch_7); - FX_THROW(&v_17, true, _fx_catch_7); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_4, &slit_3, &v_18), _fx_catch_7); + FX_THROW(&v_18, true, _fx_catch_7); _fx_catch_7: ; - fx_free_exn(&v_17); + fx_free_exn(&v_18); _fx_endmatch_4: ; FX_CHECK_EXN(_fx_cleanup); if (ts_5 != 0) { if (ts_5->hd.t0.tag == 49) { - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_18 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_19 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_8 = 0; _fx_N10Ast__typ_t t_0 = 0; - _fx_T2R9Ast__id_tN10Ast__typ_t v_19 = {0}; + _fx_T2R9Ast__id_tN10Ast__typ_t v_20 = {0}; _fx_LT2R9Ast__id_tN10Ast__typ_t cases_0 = 0; - _fx_N10Ast__typ_t v_20 = 0; - _fx_rLR9Ast__id_t v_21 = 0; - _fx_R17Ast__defvariant_t v_22 = {0}; + _fx_N10Ast__typ_t v_21 = 0; + _fx_rLR9Ast__id_t v_22 = 0; + _fx_R17Ast__defvariant_t v_23 = {0}; _fx_rR17Ast__defvariant_t dvar_0 = 0; - _fx_N10Ast__exp_t v_23 = 0; + _fx_N10Ast__exp_t v_24 = 0; FX_CALL( _fx_M6ParserFM24parse_typespec_or_recordT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t1LT2N14Lexer__token_tR10Ast__loc_t( - ts_5, &v_18, 0), _fx_catch_11); - FX_COPY_PTR(v_18.t0, &ts_8); - FX_COPY_PTR(v_18.t1, &t_0); - _fx_make_T2R9Ast__id_tN10Ast__typ_t(&tname_0, t_0, &v_19); - FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(&v_19, 0, true, &cases_0), _fx_catch_11); + ts_5, &v_19, 0), _fx_catch_11); + FX_COPY_PTR(v_19.t0, &ts_8); + FX_COPY_PTR(v_19.t1, &t_0); + _fx_make_T2R9Ast__id_tN10Ast__typ_t(&tname_0, t_0, &v_20); + FX_CALL(_fx_cons_LT2R9Ast__id_tN10Ast__typ_t(&v_20, 0, true, &cases_0), _fx_catch_11); bool __fold_result___0 = false; _fx_LT2R9Ast__id_tN10Ast__typ_t lst_1 = cases_0; for (; lst_1; lst_1 = lst_1->tl) { _fx_T2R9Ast__id_tN10Ast__typ_t* __pat___0 = &lst_1->hd; - _fx_N10Ast__typ_t v_24 = __pat___0->t1; - bool v_25; - if (FX_REC_VARIANT_TAG(v_24) == 21) { - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_26 = {0}; + _fx_N10Ast__typ_t v_25 = __pat___0->t1; + bool v_26; + if (FX_REC_VARIANT_TAG(v_25) == 21) { + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_27 = {0}; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_0 = 0; - _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_24->u.TypRecord->data, &v_26); + _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_25->u.TypRecord->data, &v_27); bool __fold_result___1 = false; - FX_COPY_PTR(v_26.t0, &relems_0); + FX_COPY_PTR(v_27.t0, &relems_0); _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_2 = relems_0; for (; lst_2; lst_2 = lst_2->tl) { _fx_R16Ast__val_flags_t flags_0 = {0}; @@ -25168,19 +26058,19 @@ _fx_endmatch_4: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_9); } - v_25 = __fold_result___1; + v_26 = __fold_result___1; _fx_catch_9: ; if (relems_0) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_0); } - _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_26); + _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_27); } else { - v_25 = false; + v_26 = false; } FX_CHECK_EXN(_fx_catch_10); - if (v_25) { + if (v_26) { __fold_result___0 = true; FX_BREAK(_fx_catch_10); } @@ -25189,9 +26079,9 @@ _fx_endmatch_4: ; FX_CHECK_EXN(_fx_catch_11); } bool hm_0 = __fold_result___0; - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_20, 0), _fx_catch_11); - _fx_R16Ast__var_flags_t v_27; - FX_CALL(_fx_M3AstFM21default_variant_flagsRM11var_flags_t0(&v_27, 0), _fx_catch_11); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_21, 0), _fx_catch_11); + _fx_R16Ast__var_flags_t v_28; + FX_CALL(_fx_M3AstFM21default_variant_flagsRM11var_flags_t0(&v_28, 0), _fx_catch_11); bool t_1; if (ifaces_0 == 0) { t_1 = !hm_0; @@ -25199,69 +26089,69 @@ _fx_endmatch_4: ; else { t_1 = false; } - _fx_R16Ast__var_flags_t v_28 = - { class_module_0, t_1, v_27.var_flag_recursive, v_27.var_flag_have_tag, hm_0, v_27.var_flag_opt, - v_27.var_flag_instance }; - FX_CALL(_fx_make_rLR9Ast__id_t(0, &v_21), _fx_catch_11); - _fx_make_R17Ast__defvariant_t(&tname_0, type_params_0, v_20, &v_28, cases_0, 0, v_21, ifaces_0, 0, &loc_3, &v_22); - FX_CALL(_fx_make_rR17Ast__defvariant_t(&v_22, &dvar_0), _fx_catch_11); - FX_CALL(_fx_M3AstFM10DefVariantN10Ast__exp_t1rRM12defvariant_t(dvar_0, &v_23), _fx_catch_11); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_8, v_23, fx_result); + _fx_R16Ast__var_flags_t v_29 = + { class_module_0, t_1, v_28.var_flag_recursive, v_28.var_flag_have_tag, hm_0, v_28.var_flag_opt, + v_28.var_flag_instance }; + FX_CALL(_fx_make_rLR9Ast__id_t(0, &v_22), _fx_catch_11); + _fx_make_R17Ast__defvariant_t(&tname_0, type_params_0, v_21, &v_29, cases_0, 0, v_22, ifaces_0, 0, &loc_3, &v_23); + FX_CALL(_fx_make_rR17Ast__defvariant_t(&v_23, &dvar_0), _fx_catch_11); + FX_CALL(_fx_M3AstFM10DefVariantN10Ast__exp_t1rRM12defvariant_t(dvar_0, &v_24), _fx_catch_11); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_8, v_24, fx_result); _fx_catch_11: ; - if (v_23) { - _fx_free_N10Ast__exp_t(&v_23); + if (v_24) { + _fx_free_N10Ast__exp_t(&v_24); } if (dvar_0) { _fx_free_rR17Ast__defvariant_t(&dvar_0); } - _fx_free_R17Ast__defvariant_t(&v_22); - if (v_21) { - _fx_free_rLR9Ast__id_t(&v_21); + _fx_free_R17Ast__defvariant_t(&v_23); + if (v_22) { + _fx_free_rLR9Ast__id_t(&v_22); } - if (v_20) { - _fx_free_N10Ast__typ_t(&v_20); + if (v_21) { + _fx_free_N10Ast__typ_t(&v_21); } if (cases_0) { _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&cases_0); } - _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_19); + _fx_free_T2R9Ast__id_tN10Ast__typ_t(&v_20); if (t_0) { _fx_free_N10Ast__typ_t(&t_0); } if (ts_8) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_8); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_18); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_19); goto _fx_endmatch_7; } } bool res_0; if (ts_5 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_29 = ts_5->tl; - if (v_29 != 0) { + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_30 = ts_5->tl; + if (v_30 != 0) { if (ts_5->hd.t0.tag == 81) { - if (v_29->hd.t0.tag == 2) { + if (v_30->hd.t0.tag == 2) { res_0 = true; goto _fx_endmatch_5; } } } } if (ts_5 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_30 = ts_5->tl; - if (v_30 != 0) { + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_31 = ts_5->tl; + if (v_31 != 0) { if (ts_5->hd.t0.tag == 2) { - if (v_30->hd.t0.tag == 81) { + if (v_31->hd.t0.tag == 81) { res_0 = true; goto _fx_endmatch_5; } } } } if (ts_5 != 0) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_31 = ts_5->tl; - if (v_31 != 0) { + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_32 = ts_5->tl; + if (v_32 != 0) { if (ts_5->hd.t0.tag == 2) { - if (v_31->hd.t0.tag == 54) { + if (v_32->hd.t0.tag == 54) { res_0 = true; goto _fx_endmatch_5; } } @@ -25273,14 +26163,14 @@ _fx_endmatch_5: ; FX_CHECK_EXN(_fx_cleanup); if (res_0) { _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_9 = 0; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t v_32 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t v_33 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_10 = 0; _fx_LT2R9Ast__id_tN10Ast__typ_t cases_1 = 0; - _fx_N10Ast__typ_t v_33 = 0; - _fx_rLR9Ast__id_t v_34 = 0; - _fx_R17Ast__defvariant_t v_35 = {0}; + _fx_N10Ast__typ_t v_34 = 0; + _fx_rLR9Ast__id_t v_35 = 0; + _fx_R17Ast__defvariant_t v_36 = {0}; _fx_rR17Ast__defvariant_t dvar_1 = 0; - _fx_N10Ast__exp_t v_36 = 0; + _fx_N10Ast__exp_t v_37 = 0; if (ts_5 != 0) { if (ts_5->hd.t0.tag == 81) { FX_COPY_PTR(ts_5->tl, &ts_9); goto _fx_endmatch_6; @@ -25292,24 +26182,24 @@ _fx_endmatch_5: ; FX_CHECK_EXN(_fx_catch_15); FX_CALL( _fx_M6ParserFM12parse_cases_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t3LT2N14Lexer__token_tR10Ast__loc_tBLT2R9Ast__id_tN10Ast__typ_t( - ts_9, false, 0, &v_32, 0), _fx_catch_15); - FX_COPY_PTR(v_32.t0, &ts_10); - FX_COPY_PTR(v_32.t1, &cases_1); - FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_33, 0), _fx_catch_15); - _fx_R16Ast__var_flags_t v_37; - FX_CALL(_fx_M3AstFM21default_variant_flagsRM11var_flags_t0(&v_37, 0), _fx_catch_15); + ts_9, false, 0, &v_33, 0), _fx_catch_15); + FX_COPY_PTR(v_33.t0, &ts_10); + FX_COPY_PTR(v_33.t1, &cases_1); + FX_CALL(_fx_M3AstFM12make_new_typN10Ast__typ_t0(&v_34, 0), _fx_catch_15); + _fx_R16Ast__var_flags_t v_38; + FX_CALL(_fx_M3AstFM21default_variant_flagsRM11var_flags_t0(&v_38, 0), _fx_catch_15); bool __fold_result___2 = false; _fx_LT2R9Ast__id_tN10Ast__typ_t lst_3 = cases_1; for (; lst_3; lst_3 = lst_3->tl) { _fx_T2R9Ast__id_tN10Ast__typ_t* __pat___2 = &lst_3->hd; - _fx_N10Ast__typ_t v_38 = __pat___2->t1; - bool v_39; - if (FX_REC_VARIANT_TAG(v_38) == 21) { - _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_40 = {0}; + _fx_N10Ast__typ_t v_39 = __pat___2->t1; + bool v_40; + if (FX_REC_VARIANT_TAG(v_39) == 21) { + _fx_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB v_41 = {0}; _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t relems_1 = 0; - _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_38->u.TypRecord->data, &v_40); + _fx_copy_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_39->u.TypRecord->data, &v_41); bool __fold_result___3 = false; - FX_COPY_PTR(v_40.t0, &relems_1); + FX_COPY_PTR(v_41.t0, &relems_1); _fx_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t lst_4 = relems_1; for (; lst_4; lst_4 = lst_4->tl) { _fx_R16Ast__val_flags_t flags_1 = {0}; @@ -25324,19 +26214,19 @@ _fx_endmatch_5: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_13); } - v_39 = __fold_result___3; + v_40 = __fold_result___3; _fx_catch_13: ; if (relems_1) { _fx_free_LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_t(&relems_1); } - _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_40); + _fx_free_T2LT4R16Ast__val_flags_tR9Ast__id_tN10Ast__typ_tN10Ast__exp_tB(&v_41); } else { - v_39 = false; + v_40 = false; } FX_CHECK_EXN(_fx_catch_14); - if (v_39) { + if (v_40) { __fold_result___2 = true; FX_BREAK(_fx_catch_14); } @@ -25344,28 +26234,28 @@ _fx_endmatch_5: ; FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_catch_15); } - _fx_R16Ast__var_flags_t v_41 = - { class_module_0, false, v_37.var_flag_recursive, v_37.var_flag_have_tag, __fold_result___2, v_37.var_flag_opt, - v_37.var_flag_instance }; - FX_CALL(_fx_make_rLR9Ast__id_t(0, &v_34), _fx_catch_15); - _fx_make_R17Ast__defvariant_t(&tname_0, type_params_0, v_33, &v_41, cases_1, 0, v_34, ifaces_0, 0, &loc_3, &v_35); - FX_CALL(_fx_make_rR17Ast__defvariant_t(&v_35, &dvar_1), _fx_catch_15); - FX_CALL(_fx_M3AstFM10DefVariantN10Ast__exp_t1rRM12defvariant_t(dvar_1, &v_36), _fx_catch_15); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_10, v_36, fx_result); + _fx_R16Ast__var_flags_t v_42 = + { class_module_0, false, v_38.var_flag_recursive, v_38.var_flag_have_tag, __fold_result___2, v_38.var_flag_opt, + v_38.var_flag_instance }; + FX_CALL(_fx_make_rLR9Ast__id_t(0, &v_35), _fx_catch_15); + _fx_make_R17Ast__defvariant_t(&tname_0, type_params_0, v_34, &v_42, cases_1, 0, v_35, ifaces_0, 0, &loc_3, &v_36); + FX_CALL(_fx_make_rR17Ast__defvariant_t(&v_36, &dvar_1), _fx_catch_15); + FX_CALL(_fx_M3AstFM10DefVariantN10Ast__exp_t1rRM12defvariant_t(dvar_1, &v_37), _fx_catch_15); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_10, v_37, fx_result); _fx_catch_15: ; - if (v_36) { - _fx_free_N10Ast__exp_t(&v_36); + if (v_37) { + _fx_free_N10Ast__exp_t(&v_37); } if (dvar_1) { _fx_free_rR17Ast__defvariant_t(&dvar_1); } - _fx_free_R17Ast__defvariant_t(&v_35); - if (v_34) { - _fx_free_rLR9Ast__id_t(&v_34); + _fx_free_R17Ast__defvariant_t(&v_36); + if (v_35) { + _fx_free_rLR9Ast__id_t(&v_35); } - if (v_33) { - _fx_free_N10Ast__typ_t(&v_33); + if (v_34) { + _fx_free_N10Ast__typ_t(&v_34); } if (cases_1) { _fx_free_LT2R9Ast__id_tN10Ast__typ_t(&cases_1); @@ -25373,20 +26263,20 @@ _fx_endmatch_5: ; if (ts_10) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_10); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(&v_32); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT2R9Ast__id_tN10Ast__typ_t(&v_33); if (ts_9) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_9); } goto _fx_endmatch_7; } - fx_exn_t v_42 = {0}; fx_exn_t v_43 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_44 = {0}; + fx_exn_t v_44 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t v_45 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_11 = 0; _fx_N10Ast__typ_t t_2 = 0; - _fx_R13Ast__deftyp_t v_45 = {0}; + _fx_R13Ast__deftyp_t v_46 = {0}; _fx_rR13Ast__deftyp_t dt_0 = 0; - _fx_N10Ast__exp_t v_46 = 0; + _fx_N10Ast__exp_t v_47 = 0; if (class_module_0 > 0) { _fx_R10Ast__loc_t loc_5; if (ts_5 != 0) { @@ -25397,8 +26287,8 @@ _fx_endmatch_5: ; } FX_CHECK_EXN(_fx_catch_16); fx_str_t slit_4 = FX_MAKE_STR("type alias (i.e. not a record nor variant) cannot be class"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_5, &slit_4, &v_42), _fx_catch_16); - FX_THROW(&v_42, true, _fx_catch_16); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_5, &slit_4, &v_43), _fx_catch_16); + FX_THROW(&v_43, true, _fx_catch_16); } if (ifaces_0 != 0) { _fx_R10Ast__loc_t loc_6; @@ -25410,36 +26300,36 @@ _fx_endmatch_5: ; } FX_CHECK_EXN(_fx_catch_16); fx_str_t slit_5 = FX_MAKE_STR("type alias (i.e. not a record nor variant) cannot implement any interfaces"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_6, &slit_5, &v_43), _fx_catch_16); - FX_THROW(&v_43, true, _fx_catch_16); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_6, &slit_5, &v_44), _fx_catch_16); + FX_THROW(&v_44, true, _fx_catch_16); } FX_CALL( _fx_M6ParserFM14parse_typespecT2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t1LT2N14Lexer__token_tR10Ast__loc_t(ts_5, - &v_44, 0), _fx_catch_16); - FX_COPY_PTR(v_44.t0, &ts_11); - FX_COPY_PTR(v_44.t1, &t_2); - _fx_make_R13Ast__deftyp_t(&tname_0, type_params_0, t_2, false, 0, &loc_3, &v_45); - FX_CALL(_fx_make_rR13Ast__deftyp_t(&v_45, &dt_0), _fx_catch_16); - FX_CALL(_fx_M3AstFM6DefTypN10Ast__exp_t1rRM8deftyp_t(dt_0, &v_46), _fx_catch_16); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_11, v_46, fx_result); + &v_45, 0), _fx_catch_16); + FX_COPY_PTR(v_45.t0, &ts_11); + FX_COPY_PTR(v_45.t1, &t_2); + _fx_make_R13Ast__deftyp_t(&tname_0, type_params_0, t_2, false, 0, &loc_3, &v_46); + FX_CALL(_fx_make_rR13Ast__deftyp_t(&v_46, &dt_0), _fx_catch_16); + FX_CALL(_fx_M3AstFM6DefTypN10Ast__exp_t1rRM8deftyp_t(dt_0, &v_47), _fx_catch_16); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__exp_t(ts_11, v_47, fx_result); _fx_catch_16: ; - if (v_46) { - _fx_free_N10Ast__exp_t(&v_46); + if (v_47) { + _fx_free_N10Ast__exp_t(&v_47); } if (dt_0) { _fx_free_rR13Ast__deftyp_t(&dt_0); } - _fx_free_R13Ast__deftyp_t(&v_45); + _fx_free_R13Ast__deftyp_t(&v_46); if (t_2) { _fx_free_N10Ast__typ_t(&t_2); } if (ts_11) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_11); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_44); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN10Ast__typ_t(&v_45); + fx_free_exn(&v_44); fx_free_exn(&v_43); - fx_free_exn(&v_42); _fx_endmatch_7: ; @@ -25600,25 +26490,24 @@ FX_EXTERN_C int } if (ts_2 != 0) { if (ts_2->hd.t0.tag == 50) { - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t __fold_result___0 = 0; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t res_1 = 0; _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_10 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t result_1 = {0}; _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t lst_1 = members_2; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t r_0 = 0; + _fx_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t v_11 = 0; _fx_T3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(a_0, r_0, false, &r_0), _fx_catch_3); - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(a_0, res_1, true, &v_11), _fx_catch_3); + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&res_1); + FX_COPY_PTR(v_11, &res_1); _fx_catch_3: ; - if (r_0) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&r_0); + if (v_11) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_11); } FX_CHECK_EXN(_fx_catch_4); } - FX_COPY_PTR(__fold_result___0, &v_10); + FX_COPY_PTR(res_1, &v_10); _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(ts_2->tl, v_10, &result_1); _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tLT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&result_0); @@ -25630,13 +26519,13 @@ FX_EXTERN_C int if (v_10) { _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&v_10); } - if (__fold_result___0) { - _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&__fold_result___0); + if (res_1) { + _fx_free_LT3R9Ast__id_tN10Ast__typ_tR16Ast__fun_flags_t(&res_1); } goto _fx_endmatch_0; } } - fx_exn_t v_11 = {0}; + fx_exn_t v_12 = {0}; _fx_R10Ast__loc_t loc_1; if (ts_2 != 0) { loc_1 = ts_2->hd.t1; @@ -25646,11 +26535,11 @@ FX_EXTERN_C int } FX_CHECK_EXN(_fx_catch_5); fx_str_t slit_1 = FX_MAKE_STR("expected \'fun (...\' or \'}\'"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_11), _fx_catch_5); - FX_THROW(&v_11, true, _fx_catch_5); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_1, &slit_1, &v_12), _fx_catch_5); + FX_THROW(&v_12, true, _fx_catch_5); _fx_catch_5: ; - fx_free_exn(&v_11); + fx_free_exn(&v_12); _fx_endmatch_0: ; FX_CHECK_EXN(_fx_catch_6); @@ -26202,8 +27091,9 @@ static int int_ j_0 = v_26.t1; if (j_0 >= 0) { FX_CHKIDX(FX_CHKIDX1((*env_0)->u.t.t5, 0, j_0), _fx_catch_7); - _fx_copy_N15Parser__ppval_t( - &FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, (*env_0)->u.t.t5, j_0)->data, &v_25); + _fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t* v_27 = + FX_PTR_1D(_fx_Rt20Hashmap__hashentry_t2SN15Parser__ppval_t, (*env_0)->u.t.t5, j_0); + _fx_copy_N15Parser__ppval_t(&v_27->data, &v_25); _fx_M6ParserFM4SomeNt6option1N15Parser__ppval_t1N15Parser__ppval_t(&v_25, &v_24); } else { @@ -26213,13 +27103,13 @@ static int _fx_copy_N15Parser__ppval_t(&v_24.u.Some, &x_3); } else { - fx_str_t v_27 = {0}; - fx_exn_t v_28 = {0}; + fx_str_t v_28 = {0}; + fx_exn_t v_29 = {0}; fx_str_t slit_8 = FX_MAKE_STR("identifier \'"); fx_str_t slit_9 = FX_MAKE_STR("\' is undefined"); { const fx_str_t strs_2[] = { slit_8, *i_1, slit_9 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_27), _fx_catch_6); + FX_CALL(fx_strjoin(0, 0, 0, strs_2, 3, &v_28), _fx_catch_6); } _fx_R10Ast__loc_t loc_2; if (ts_0 != 0) { @@ -26229,12 +27119,12 @@ static int loc_2 = _fx_g18Parser__parser_ctx.default_loc; } FX_CHECK_EXN(_fx_catch_6); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &v_27, &v_28), _fx_catch_6); - FX_THROW(&v_28, true, _fx_catch_6); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_2, &v_28, &v_29), _fx_catch_6); + FX_THROW(&v_29, true, _fx_catch_6); _fx_catch_6: ; - fx_free_exn(&v_28); - FX_FREE_STR(&v_27); + fx_free_exn(&v_29); + FX_FREE_STR(&v_28); } FX_CHECK_EXN(_fx_catch_7); } @@ -26251,22 +27141,22 @@ static int } } if (ts_0 != 0) { - _fx_N14Lexer__token_t* v_29 = &ts_0->hd.t0; - if (v_29->tag == 1) { - _fx_N15Parser__ppval_t v_30 = {0}; - _fx_N10Ast__lit_t* lit_0 = &v_29->u.LITERAL; + _fx_N14Lexer__token_t* v_30 = &ts_0->hd.t0; + if (v_30->tag == 1) { + _fx_N15Parser__ppval_t v_31 = {0}; + _fx_N10Ast__lit_t* lit_0 = &v_30->u.LITERAL; int tag_0 = lit_0->tag; if (tag_0 == 1) { - _fx_M6ParserFM6PP_INTN15Parser__ppval_t1l(lit_0->u.LitInt, &v_30); + _fx_M6ParserFM6PP_INTN15Parser__ppval_t1l(lit_0->u.LitInt, &v_31); } else if (tag_0 == 7) { - _fx_M6ParserFM7PP_BOOLN15Parser__ppval_t1B(lit_0->u.LitBool, &v_30); + _fx_M6ParserFM7PP_BOOLN15Parser__ppval_t1B(lit_0->u.LitBool, &v_31); } else if (tag_0 == 5) { - _fx_M6ParserFM9PP_STRINGN15Parser__ppval_t1S(&lit_0->u.LitString, &v_30); + _fx_M6ParserFM9PP_STRINGN15Parser__ppval_t1S(&lit_0->u.LitString, &v_31); } else { - fx_exn_t v_31 = {0}; + fx_exn_t v_32 = {0}; _fx_R10Ast__loc_t loc_3; if (ts_0 != 0) { loc_3 = ts_0->hd.t1; @@ -26277,29 +27167,29 @@ static int FX_CHECK_EXN(_fx_catch_8); fx_str_t slit_10 = FX_MAKE_STR("preprocessor: unsupported literal (only integers, boolean values and strings are supported)"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_10, &v_31), _fx_catch_8); - FX_THROW(&v_31, true, _fx_catch_8); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_3, &slit_10, &v_32), _fx_catch_8); + FX_THROW(&v_32, true, _fx_catch_8); _fx_catch_8: ; - fx_free_exn(&v_31); + fx_free_exn(&v_32); } FX_CHECK_EXN(_fx_catch_9); - _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN15Parser__ppval_t(ts_0->tl, &v_30, fx_result); + _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN15Parser__ppval_t(ts_0->tl, &v_31, fx_result); _fx_catch_9: ; - _fx_free_N15Parser__ppval_t(&v_30); + _fx_free_N15Parser__ppval_t(&v_31); goto _fx_endmatch_3; } } if (ts_0 != 0) { - _fx_T2N14Lexer__token_tR10Ast__loc_t* v_32 = &ts_0->hd; - _fx_N14Lexer__token_t* v_33 = &v_32->t0; - if (v_33->tag == 44) { - fx_exn_t v_34 = {0}; - _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN15Parser__ppval_t v_35 = {0}; + _fx_T2N14Lexer__token_tR10Ast__loc_t* v_33 = &ts_0->hd; + _fx_N14Lexer__token_t* v_34 = &v_33->t0; + if (v_34->tag == 44) { + fx_exn_t v_35 = {0}; + _fx_T2LT2N14Lexer__token_tR10Ast__loc_tN15Parser__ppval_t v_36 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t ts_3 = 0; _fx_N15Parser__ppval_t x_4 = {0}; - if (!v_33->u.LPAREN) { + if (!v_34->u.LPAREN) { _fx_R10Ast__loc_t loc_4; if (ts_0 != 0) { loc_4 = ts_0->hd.t1; @@ -26309,14 +27199,14 @@ static int } FX_CHECK_EXN(_fx_catch_11); fx_str_t slit_11 = FX_MAKE_STR("new line or \';\' is expected before new expression"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_4, &slit_11, &v_34), _fx_catch_11); - FX_THROW(&v_34, true, _fx_catch_11); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_4, &slit_11, &v_35), _fx_catch_11); + FX_THROW(&v_35, true, _fx_catch_11); } FX_CALL( _fx_M6ParserFM6pp_expT2LT2N14Lexer__token_tR10Ast__loc_tN15Parser__ppval_t3LT2N14Lexer__token_tR10Ast__loc_tBrNt10Hashmap__t2SN15Parser__ppval_t( - ts_0->tl, calc_0, env_ref_0, &v_35, 0), _fx_catch_11); - FX_COPY_PTR(v_35.t0, &ts_3); - _fx_copy_N15Parser__ppval_t(&v_35.t1, &x_4); + ts_0->tl, calc_0, env_ref_0, &v_36, 0), _fx_catch_11); + FX_COPY_PTR(v_36.t0, &ts_3); + _fx_copy_N15Parser__ppval_t(&v_36.t1, &x_4); if (ts_3 != 0) { bool res_1; FX_CALL( @@ -26326,19 +27216,19 @@ static int _fx_make_T2LT2N14Lexer__token_tR10Ast__loc_tN15Parser__ppval_t(ts_3->tl, &x_4, fx_result); goto _fx_endmatch_2; } } - _fx_Ta2S v_36 = {0}; - fx_str_t v_37 = {0}; + _fx_Ta2S v_37 = {0}; fx_str_t v_38 = {0}; fx_str_t v_39 = {0}; - fx_exn_t v_40 = {0}; - FX_CALL(_fx_M5LexerFM7tok2strTa2S1N14Lexer__token_t(&_fx_g14Parser__RPAREN, &v_36, 0), _fx_catch_10); - fx_copy_str(&v_36.t1, &v_37); - FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(&v_32->t1, &v_38, 0), _fx_catch_10); + fx_str_t v_40 = {0}; + fx_exn_t v_41 = {0}; + FX_CALL(_fx_M5LexerFM7tok2strTa2S1N14Lexer__token_t(&_fx_g14Parser__RPAREN, &v_37, 0), _fx_catch_10); + fx_copy_str(&v_37.t1, &v_38); + FX_CALL(_fx_M3AstFM6stringS1RM5loc_t(&v_33->t1, &v_39, 0), _fx_catch_10); fx_str_t slit_12 = FX_MAKE_STR("\'"); fx_str_t slit_13 = FX_MAKE_STR("\' is expected; the opening paren is here "); { - const fx_str_t strs_3[] = { slit_12, v_37, slit_13, v_38 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_3, 4, &v_39), _fx_catch_10); + const fx_str_t strs_3[] = { slit_12, v_38, slit_13, v_39 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_3, 4, &v_40), _fx_catch_10); } _fx_R10Ast__loc_t loc_5; if (ts_3 != 0) { @@ -26348,15 +27238,15 @@ static int loc_5 = _fx_g18Parser__parser_ctx.default_loc; } FX_CHECK_EXN(_fx_catch_10); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_5, &v_39, &v_40), _fx_catch_10); - FX_THROW(&v_40, true, _fx_catch_10); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_5, &v_40, &v_41), _fx_catch_10); + FX_THROW(&v_41, true, _fx_catch_10); _fx_catch_10: ; - fx_free_exn(&v_40); + fx_free_exn(&v_41); + FX_FREE_STR(&v_40); FX_FREE_STR(&v_39); FX_FREE_STR(&v_38); - FX_FREE_STR(&v_37); - _fx_free_Ta2S(&v_36); + _fx_free_Ta2S(&v_37); _fx_endmatch_2: ; FX_CHECK_EXN(_fx_catch_11); @@ -26366,23 +27256,23 @@ static int if (ts_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&ts_3); } - _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN15Parser__ppval_t(&v_35); - fx_free_exn(&v_34); + _fx_free_T2LT2N14Lexer__token_tR10Ast__loc_tN15Parser__ppval_t(&v_36); + fx_free_exn(&v_35); goto _fx_endmatch_3; } } if (ts_0 != 0) { - _fx_Ta2S v_41 = {0}; - fx_str_t v_42 = {0}; + _fx_Ta2S v_42 = {0}; fx_str_t v_43 = {0}; - fx_exn_t v_44 = {0}; - FX_CALL(_fx_M5LexerFM7tok2strTa2S1N14Lexer__token_t(&ts_0->hd.t0, &v_41, 0), _fx_catch_12); - fx_copy_str(&v_41.t1, &v_42); + fx_str_t v_44 = {0}; + fx_exn_t v_45 = {0}; + FX_CALL(_fx_M5LexerFM7tok2strTa2S1N14Lexer__token_t(&ts_0->hd.t0, &v_42, 0), _fx_catch_12); + fx_copy_str(&v_42.t1, &v_43); fx_str_t slit_14 = FX_MAKE_STR("unxpected token \'"); fx_str_t slit_15 = FX_MAKE_STR("\'. An identifier, literal or \'(\' is expected"); { - const fx_str_t strs_4[] = { slit_14, v_42, slit_15 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_43), _fx_catch_12); + const fx_str_t strs_4[] = { slit_14, v_43, slit_15 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_4, 3, &v_44), _fx_catch_12); } _fx_R10Ast__loc_t loc_6; if (ts_0 != 0) { @@ -26392,17 +27282,17 @@ static int loc_6 = _fx_g18Parser__parser_ctx.default_loc; } FX_CHECK_EXN(_fx_catch_12); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_6, &v_43, &v_44), _fx_catch_12); - FX_THROW(&v_44, true, _fx_catch_12); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_6, &v_44, &v_45), _fx_catch_12); + FX_THROW(&v_45, true, _fx_catch_12); _fx_catch_12: ; - fx_free_exn(&v_44); + fx_free_exn(&v_45); + FX_FREE_STR(&v_44); FX_FREE_STR(&v_43); - FX_FREE_STR(&v_42); - _fx_free_Ta2S(&v_41); + _fx_free_Ta2S(&v_42); goto _fx_endmatch_3; } - fx_exn_t v_45 = {0}; + fx_exn_t v_46 = {0}; _fx_R10Ast__loc_t loc_7; if (ts_0 != 0) { loc_7 = ts_0->hd.t1; @@ -26412,11 +27302,11 @@ static int } FX_CHECK_EXN(_fx_catch_13); fx_str_t slit_16 = FX_MAKE_STR("premature end of the stream; check the parens"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_7, &slit_16, &v_45), _fx_catch_13); - FX_THROW(&v_45, true, _fx_catch_13); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&loc_7, &slit_16, &v_46), _fx_catch_13); + FX_THROW(&v_46, true, _fx_catch_13); _fx_catch_13: ; - fx_free_exn(&v_45); + fx_free_exn(&v_46); _fx_endmatch_3: ; @@ -28468,7 +29358,8 @@ FX_EXTERN_C int _fx_M6ParserFM5parseB3iLN14Lexer__token_tLS( bool* fx_result, void* fx_fv) { - _fx_N16Ast__defmodule_t dm_0 = 0; + _fx_N16Ast__defmodule_t dm_arg_0 = 0; + _fx_rN16Ast__defmodule_t dm_ref_0 = 0; fx_str_t v_0 = {0}; fx_str_t v_1 = {0}; _fx_R20Parser__parser_ctx_t v_2 = {0}; @@ -28476,36 +29367,39 @@ FX_EXTERN_C int _fx_M6ParserFM5parseB3iLN14Lexer__token_tLS( fx_exn_t exn_0 = {0}; _fx_FPT3LT2N14Lexer__token_tTa2iTa2iTa2i0 lexer_0 = {0}; _fx_LT2N14Lexer__token_tR10Ast__loc_t all_tokens_0 = 0; - _fx_LT2N14Lexer__token_tR10Ast__loc_t __fold_result___0 = 0; + _fx_LT2N14Lexer__token_tR10Ast__loc_t res_0 = 0; _fx_LT2N14Lexer__token_tR10Ast__loc_t v_3 = 0; - _fx_LN14Lexer__token_t __fold_result___1 = 0; + _fx_LN14Lexer__token_t res_1 = 0; _fx_LN14Lexer__token_t v_4 = 0; _fx_LT2N14Lexer__token_tR10Ast__loc_t v_5 = 0; _fx_T2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__exp_t v_6 = {0}; _fx_LN10Ast__exp_t v_7 = 0; _fx_Li v_8 = 0; - _fx_Li __fold_result___2 = 0; + _fx_Li res_2 = 0; _fx_Li v_9 = 0; int fx_status = 0; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - FX_COPY_PTR(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0), &dm_0); - fx_copy_str(&dm_0->u.defmodule_t.t1, &v_0); + FX_COPY_PTR(*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0), &dm_arg_0); + FX_CALL(_fx_make_rN16Ast__defmodule_t(dm_arg_0, &dm_ref_0), _fx_cleanup); + _fx_N16Ast__defmodule_t* dm_0 = &dm_ref_0->data; + fx_copy_str(&(*dm_0)->u.defmodule_t.t1, &v_0); _fx_R9Ast__id_t fname_id_0; FX_CALL(_fx_M3AstFM6get_idRM4id_t1S(&v_0, &fname_id_0, 0), _fx_cleanup); - fx_copy_str(&dm_0->u.defmodule_t.t1, &v_1); - _fx_R10Ast__loc_t v_10 = { dm_0->u.defmodule_t.t2, 1, 1, 1, 1 }; - _fx_make_R20Parser__parser_ctx_t(dm_0->u.defmodule_t.t2, &v_1, 0, inc_dirs_0, &v_10, &v_2); + fx_copy_str(&(*dm_0)->u.defmodule_t.t1, &v_1); + _fx_R10Ast__loc_t v_10 = { (*dm_0)->u.defmodule_t.t2, 1, 1, 1, 1 }; + _fx_make_R20Parser__parser_ctx_t((*dm_0)->u.defmodule_t.t2, &v_1, 0, inc_dirs_0, &v_10, &v_2); _fx_free_R20Parser__parser_ctx_t(&_fx_g18Parser__parser_ctx); _fx_copy_R20Parser__parser_ctx_t(&v_2, &_fx_g18Parser__parser_ctx); - dm_0->u.defmodule_t.t7 = true; + (*dm_0)->u.defmodule_t.t7 = true; FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - (*FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0))->u.defmodule_t.t7 = true; - fx_str_t v_11 = {0}; - fx_copy_str(&dm_0->u.defmodule_t.t1, &v_11); - FX_CALL(_fx_M10LexerUtilsFM11make_streamN20LexerUtils__stream_t1S(&v_11, &strm_0, 0), _fx_catch_0); + _fx_N16Ast__defmodule_t v_11 = *FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + v_11->u.defmodule_t.t7 = true; + fx_str_t v_12 = {0}; + fx_copy_str(&(*dm_0)->u.defmodule_t.t1, &v_12); + FX_CALL(_fx_M10LexerUtilsFM11make_streamN20LexerUtils__stream_t1S(&v_12, &strm_0, 0), _fx_catch_0); _fx_catch_0: ; - FX_FREE_STR(&v_11); + FX_FREE_STR(&v_12); if (fx_status < 0) { fx_exn_get_and_reset(fx_status, &exn_0); fx_status = 0; @@ -28514,24 +29408,24 @@ _fx_catch_0: ; } int tag_0 = exn_0.tag; if (tag_0 == FX_EXN_FileOpenError) { - fx_exn_t v_12 = {0}; - _fx_R10Ast__loc_t v_13 = _fx_g18Parser__parser_ctx.default_loc; + fx_exn_t v_13 = {0}; + _fx_R10Ast__loc_t v_14 = _fx_g18Parser__parser_ctx.default_loc; fx_str_t slit_0 = FX_MAKE_STR("cannot open file"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&v_13, &slit_0, &v_12), _fx_catch_1); - FX_THROW(&v_12, true, _fx_catch_1); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&v_14, &slit_0, &v_13), _fx_catch_1); + FX_THROW(&v_13, true, _fx_catch_1); _fx_catch_1: ; - fx_free_exn(&v_12); + fx_free_exn(&v_13); } else if (tag_0 == FX_EXN_IOError) { - fx_exn_t v_14 = {0}; - _fx_R10Ast__loc_t v_15 = _fx_g18Parser__parser_ctx.default_loc; + fx_exn_t v_15 = {0}; + _fx_R10Ast__loc_t v_16 = _fx_g18Parser__parser_ctx.default_loc; fx_str_t slit_1 = FX_MAKE_STR("cannot read file"); - FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&v_15, &slit_1, &v_14), _fx_catch_2); - FX_THROW(&v_14, true, _fx_catch_2); + FX_CALL(_fx_M6ParserFM15make_ParseErrorE2R10Ast__loc_tS(&v_16, &slit_1, &v_15), _fx_catch_2); + FX_THROW(&v_15, true, _fx_catch_2); _fx_catch_2: ; - fx_free_exn(&v_14); + fx_free_exn(&v_15); } else { FX_RETHROW(&exn_0, _fx_cleanup); @@ -28542,70 +29436,72 @@ _fx_catch_0: ; _fx_cleanup); int_ prev_lineno_0 = -1; for (;;) { - _fx_T3LT2N14Lexer__token_tTa2iTa2iTa2i v_16 = {0}; + _fx_T3LT2N14Lexer__token_tTa2iTa2iTa2i v_17 = {0}; _fx_LT2N14Lexer__token_tTa2i more_tokens_0 = 0; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_18 = 0; _fx_LT2N14Lexer__token_tR10Ast__loc_t all_tokens_1 = 0; - FX_CALL(lexer_0.fp(&v_16, lexer_0.fcv), _fx_catch_5); - FX_COPY_PTR(v_16.t0, &more_tokens_0); - _fx_Ta2i* v_17 = &v_16.t1; - int_ bline_0 = v_17->t0; - int_ bcol_0 = v_17->t1; - _fx_Ta2i* v_18 = &v_16.t2; - int_ eline_0 = v_18->t0; - int_ ecol_0 = v_18->t1; - _fx_R10Ast__loc_t loc_0 = { dm_0->u.defmodule_t.t2, bline_0, bcol_0, eline_0, ecol_0 }; - _fx_LT2N14Lexer__token_tTa2i lst_0 = more_tokens_0; + FX_CALL(lexer_0.fp(&v_17, lexer_0.fcv), _fx_catch_5); + FX_COPY_PTR(v_17.t0, &more_tokens_0); + _fx_Ta2i* v_19 = &v_17.t2; + int_ eline_0 = v_19->t0; + int_ ecol_0 = v_19->t1; + FX_CALL( + _fx_M6ParserFM5stampLT2N14Lexer__token_tR10Ast__loc_t4LT2N14Lexer__token_tTa2irN16Ast__defmodule_tii(more_tokens_0, + dm_ref_0, ecol_0, eline_0, &v_18, 0), _fx_catch_5); + _fx_LT2N14Lexer__token_tR10Ast__loc_t lst_0 = v_18; for (; lst_0; lst_0 = lst_0->tl) { _fx_N14Lexer__token_t t_0 = {0}; - fx_str_t v_19 = {0}; fx_str_t v_20 = {0}; fx_str_t v_21 = {0}; - _fx_Ta2S v_22 = {0}; - fx_str_t v_23 = {0}; + fx_str_t v_22 = {0}; + _fx_Ta2S v_23 = {0}; fx_str_t v_24 = {0}; - _fx_T2N14Lexer__token_tR10Ast__loc_t v_25 = {0}; - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_26 = 0; - _fx_T2N14Lexer__token_tTa2i* __pat___0 = &lst_0->hd; + fx_str_t v_25 = {0}; + _fx_T2N14Lexer__token_tR10Ast__loc_t v_26 = {0}; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_27 = 0; + _fx_T2N14Lexer__token_tR10Ast__loc_t* __pat___0 = &lst_0->hd; _fx_copy_N14Lexer__token_t(&__pat___0->t0, &t_0); - if (_fx_g12Options__opt.print_tokens) { - if (bline_0 != prev_lineno_0) { - FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&fname_id_0, &v_19, 0), _fx_catch_3); - FX_CALL(_fx_F6stringS1i(bline_0, &v_20, 0), _fx_catch_3); + _fx_R10Ast__loc_t loc_0 = __pat___0->t1; + bool v_28 = _fx_g12Options__opt.print_tokens; + if (v_28) { + if (loc_0.line0 != prev_lineno_0) { + FX_CALL(_fx_M3AstFM2ppS1RM4id_t(&fname_id_0, &v_20, 0), _fx_catch_3); + FX_CALL(_fx_F6stringS1i(loc_0.line0, &v_21, 0), _fx_catch_3); fx_str_t slit_2 = FX_MAKE_STR("\n"); fx_str_t slit_3 = FX_MAKE_STR(":"); fx_str_t slit_4 = FX_MAKE_STR(": "); { - const fx_str_t strs_0[] = { slit_2, v_19, slit_3, v_20, slit_4 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_21), _fx_catch_3); + const fx_str_t strs_0[] = { slit_2, v_20, slit_3, v_21, slit_4 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_0, 5, &v_22), _fx_catch_3); } - _fx_F12print_stringv1S(&v_21, 0); - prev_lineno_0 = bline_0; + _fx_F12print_stringv1S(&v_22, 0); + prev_lineno_0 = loc_0.line0; } - FX_CALL(_fx_M5LexerFM7tok2strTa2S1N14Lexer__token_t(&t_0, &v_22, 0), _fx_catch_3); - fx_copy_str(&v_22.t0, &v_23); + FX_CALL(_fx_M5LexerFM7tok2strTa2S1N14Lexer__token_t(&t_0, &v_23, 0), _fx_catch_3); + fx_copy_str(&v_23.t0, &v_24); fx_str_t slit_5 = FX_MAKE_STR(" "); { - const fx_str_t strs_1[] = { v_23, slit_5 }; - FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_24), _fx_catch_3); + const fx_str_t strs_1[] = { v_24, slit_5 }; + FX_CALL(fx_strjoin(0, 0, 0, strs_1, 2, &v_25), _fx_catch_3); } - _fx_F12print_stringv1S(&v_24, 0); + _fx_F12print_stringv1S(&v_25, 0); } - _fx_make_T2N14Lexer__token_tR10Ast__loc_t(&t_0, &loc_0, &v_25); - FX_CALL(_fx_cons_LT2N14Lexer__token_tR10Ast__loc_t(&v_25, all_tokens_0, true, &v_26), _fx_catch_3); + _fx_make_T2N14Lexer__token_tR10Ast__loc_t(&t_0, &loc_0, &v_26); + FX_CALL(_fx_cons_LT2N14Lexer__token_tR10Ast__loc_t(&v_26, all_tokens_0, true, &v_27), _fx_catch_3); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&all_tokens_0); - FX_COPY_PTR(v_26, &all_tokens_0); + FX_COPY_PTR(v_27, &all_tokens_0); _fx_catch_3: ; - if (v_26) { - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&v_26); + if (v_27) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&v_27); } - _fx_free_T2N14Lexer__token_tR10Ast__loc_t(&v_25); + _fx_free_T2N14Lexer__token_tR10Ast__loc_t(&v_26); + FX_FREE_STR(&v_25); FX_FREE_STR(&v_24); - FX_FREE_STR(&v_23); - _fx_free_Ta2S(&v_22); + _fx_free_Ta2S(&v_23); + FX_FREE_STR(&v_22); FX_FREE_STR(&v_21); FX_FREE_STR(&v_20); - FX_FREE_STR(&v_19); _fx_free_N14Lexer__token_t(&t_0); FX_CHECK_EXN(_fx_catch_5); } @@ -28623,63 +29519,64 @@ _fx_catch_0: ; if (all_tokens_1) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&all_tokens_1); } + if (v_18) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&v_18); + } if (more_tokens_0) { _fx_free_LT2N14Lexer__token_tTa2i(&more_tokens_0); } - _fx_free_T3LT2N14Lexer__token_tTa2iTa2iTa2i(&v_16); + _fx_free_T3LT2N14Lexer__token_tTa2iTa2iTa2i(&v_17); FX_CHECK_BREAK(); FX_CHECK_EXN(_fx_cleanup); } _fx_LT2N14Lexer__token_tR10Ast__loc_t lst_1 = all_tokens_0; for (; lst_1; lst_1 = lst_1->tl) { - _fx_LT2N14Lexer__token_tR10Ast__loc_t r_0 = 0; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_29 = 0; _fx_T2N14Lexer__token_tR10Ast__loc_t* a_0 = &lst_1->hd; - FX_COPY_PTR(__fold_result___0, &r_0); - FX_CALL(_fx_cons_LT2N14Lexer__token_tR10Ast__loc_t(a_0, r_0, false, &r_0), _fx_catch_6); - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&__fold_result___0); - FX_COPY_PTR(r_0, &__fold_result___0); + FX_CALL(_fx_cons_LT2N14Lexer__token_tR10Ast__loc_t(a_0, res_0, true, &v_29), _fx_catch_6); + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&res_0); + FX_COPY_PTR(v_29, &res_0); _fx_catch_6: ; - if (r_0) { - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&r_0); + if (v_29) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&v_29); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___0, &v_3); + FX_COPY_PTR(res_0, &v_3); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&all_tokens_0); FX_COPY_PTR(v_3, &all_tokens_0); _fx_LN14Lexer__token_t lst_2 = preamble_0; for (; lst_2; lst_2 = lst_2->tl) { - _fx_LN14Lexer__token_t r_1 = 0; + _fx_LN14Lexer__token_t v_30 = 0; _fx_N14Lexer__token_t* a_1 = &lst_2->hd; - FX_COPY_PTR(__fold_result___1, &r_1); - FX_CALL(_fx_cons_LN14Lexer__token_t(a_1, r_1, false, &r_1), _fx_catch_7); - _fx_free_LN14Lexer__token_t(&__fold_result___1); - FX_COPY_PTR(r_1, &__fold_result___1); + FX_CALL(_fx_cons_LN14Lexer__token_t(a_1, res_1, true, &v_30), _fx_catch_7); + _fx_free_LN14Lexer__token_t(&res_1); + FX_COPY_PTR(v_30, &res_1); _fx_catch_7: ; - if (r_1) { - _fx_free_LN14Lexer__token_t(&r_1); + if (v_30) { + _fx_free_LN14Lexer__token_t(&v_30); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_4); + FX_COPY_PTR(res_1, &v_4); _fx_LN14Lexer__token_t lst_3 = v_4; for (; lst_3; lst_3 = lst_3->tl) { - _fx_T2N14Lexer__token_tR10Ast__loc_t v_27 = {0}; - _fx_LT2N14Lexer__token_tR10Ast__loc_t v_28 = 0; + _fx_T2N14Lexer__token_tR10Ast__loc_t v_31 = {0}; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_32 = 0; _fx_N14Lexer__token_t* t_1 = &lst_3->hd; - _fx_R10Ast__loc_t v_29 = _fx_g18Parser__parser_ctx.default_loc; - _fx_make_T2N14Lexer__token_tR10Ast__loc_t(t_1, &v_29, &v_27); - FX_CALL(_fx_cons_LT2N14Lexer__token_tR10Ast__loc_t(&v_27, all_tokens_0, true, &v_28), _fx_catch_8); + _fx_R10Ast__loc_t v_33 = _fx_g18Parser__parser_ctx.default_loc; + _fx_make_T2N14Lexer__token_tR10Ast__loc_t(t_1, &v_33, &v_31); + FX_CALL(_fx_cons_LT2N14Lexer__token_tR10Ast__loc_t(&v_31, all_tokens_0, true, &v_32), _fx_catch_8); _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&all_tokens_0); - FX_COPY_PTR(v_28, &all_tokens_0); + FX_COPY_PTR(v_32, &all_tokens_0); _fx_catch_8: ; - if (v_28) { - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&v_28); + if (v_32) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&v_32); } - _fx_free_T2N14Lexer__token_tR10Ast__loc_t(&v_27); + _fx_free_T2N14Lexer__token_tR10Ast__loc_t(&v_31); FX_CHECK_EXN(_fx_cleanup); } FX_CALL(_fx_M6ParserFM10preprocessLT2N14Lexer__token_tR10Ast__loc_t1LT2N14Lexer__token_tR10Ast__loc_t(all_tokens_0, &v_5, 0), @@ -28690,36 +29587,38 @@ _fx_catch_0: ; _fx_M6ParserFM12parse_expseqT2LT2N14Lexer__token_tR10Ast__loc_tLN10Ast__exp_t2LT2N14Lexer__token_tR10Ast__loc_tB( all_tokens_0, true, &v_6, 0), _fx_cleanup); FX_COPY_PTR(v_6.t1, &v_7); - _fx_LN10Ast__exp_t* v_30 = &dm_0->u.defmodule_t.t4; - _fx_free_LN10Ast__exp_t(v_30); - FX_COPY_PTR(v_7, v_30); + _fx_LN10Ast__exp_t* v_34 = &(*dm_0)->u.defmodule_t.t4; + _fx_free_LN10Ast__exp_t(v_34); + FX_COPY_PTR(v_7, v_34); FX_COPY_PTR(_fx_g18Parser__parser_ctx.deps, &v_8); _fx_Li lst_4 = v_8; for (; lst_4; lst_4 = lst_4->tl) { - _fx_Li r_2 = 0; + _fx_Li v_35 = 0; int_ a_2 = lst_4->hd; - FX_COPY_PTR(__fold_result___2, &r_2); - FX_CALL(_fx_cons_Li(a_2, r_2, false, &r_2), _fx_catch_9); - FX_FREE_LIST_SIMPLE(&__fold_result___2); - FX_COPY_PTR(r_2, &__fold_result___2); + FX_CALL(_fx_cons_Li(a_2, res_2, true, &v_35), _fx_catch_9); + FX_FREE_LIST_SIMPLE(&res_2); + FX_COPY_PTR(v_35, &res_2); _fx_catch_9: ; - FX_FREE_LIST_SIMPLE(&r_2); + FX_FREE_LIST_SIMPLE(&v_35); FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___2, &v_9); - _fx_Li* v_31 = &dm_0->u.defmodule_t.t5; - FX_FREE_LIST_SIMPLE(v_31); - FX_COPY_PTR(v_9, v_31); + FX_COPY_PTR(res_2, &v_9); + _fx_Li* v_36 = &(*dm_0)->u.defmodule_t.t5; + FX_FREE_LIST_SIMPLE(v_36); + FX_COPY_PTR(v_9, v_36); FX_CHKIDX(FX_CHKIDX1(_fx_g16Ast__all_modules, 0, m_idx_0), _fx_cleanup); - _fx_N16Ast__defmodule_t* v_32 = FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); - _fx_free_N16Ast__defmodule_t(v_32); - FX_COPY_PTR(dm_0, v_32); + _fx_N16Ast__defmodule_t* v_37 = FX_PTR_1D(_fx_N16Ast__defmodule_t, _fx_g16Ast__all_modules, m_idx_0); + _fx_free_N16Ast__defmodule_t(v_37); + FX_COPY_PTR(*dm_0, v_37); *fx_result = true; _fx_cleanup: ; - if (dm_0) { - _fx_free_N16Ast__defmodule_t(&dm_0); + if (dm_arg_0) { + _fx_free_N16Ast__defmodule_t(&dm_arg_0); + } + if (dm_ref_0) { + _fx_free_rN16Ast__defmodule_t(&dm_ref_0); } FX_FREE_STR(&v_0); FX_FREE_STR(&v_1); @@ -28732,14 +29631,14 @@ _fx_cleanup: ; if (all_tokens_0) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&all_tokens_0); } - if (__fold_result___0) { - _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&__fold_result___0); + if (res_0) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&res_0); } if (v_3) { _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&v_3); } - if (__fold_result___1) { - _fx_free_LN14Lexer__token_t(&__fold_result___1); + if (res_1) { + _fx_free_LN14Lexer__token_t(&res_1); } if (v_4) { _fx_free_LN14Lexer__token_t(&v_4); @@ -28752,11 +29651,70 @@ _fx_cleanup: ; _fx_free_LN10Ast__exp_t(&v_7); } FX_FREE_LIST_SIMPLE(&v_8); - FX_FREE_LIST_SIMPLE(&__fold_result___2); + FX_FREE_LIST_SIMPLE(&res_2); FX_FREE_LIST_SIMPLE(&v_9); return fx_status; } +static int _fx_M6ParserFM5stampLT2N14Lexer__token_tR10Ast__loc_t4LT2N14Lexer__token_tTa2irN16Ast__defmodule_tii( + struct _fx_LT2N14Lexer__token_tTa2i_data_t* toks_0, + struct _fx_rN16Ast__defmodule_t_data_t* dm_ref_0, + int_ ecol_0, + int_ eline_0, + struct _fx_LT2N14Lexer__token_tR10Ast__loc_t_data_t** fx_result, + void* fx_fv) +{ + int fx_status = 0; + FX_CALL(fx_check_stack(), _fx_cleanup); + _fx_N16Ast__defmodule_t* dm_0 = &dm_ref_0->data; + if (toks_0 != 0) { + _fx_LT2N14Lexer__token_tTa2i rest_0 = toks_0->tl; + if (rest_0 != 0) { + _fx_T2N14Lexer__token_tR10Ast__loc_t v_0 = {0}; + _fx_LT2N14Lexer__token_tR10Ast__loc_t v_1 = 0; + _fx_Ta2i* v_2 = &rest_0->hd.t1; + _fx_T2N14Lexer__token_tTa2i* v_3 = &toks_0->hd; + _fx_Ta2i* v_4 = &v_3->t1; + _fx_R10Ast__loc_t v_5 = { (*dm_0)->u.defmodule_t.t2, v_4->t0, v_4->t1, v_2->t0, v_2->t1 }; + _fx_make_T2N14Lexer__token_tR10Ast__loc_t(&v_3->t0, &v_5, &v_0); + FX_CALL( + _fx_M6ParserFM5stampLT2N14Lexer__token_tR10Ast__loc_t4LT2N14Lexer__token_tTa2irN16Ast__defmodule_tii(rest_0, + dm_ref_0, ecol_0, eline_0, &v_1, 0), _fx_catch_0); + FX_CALL(_fx_cons_LT2N14Lexer__token_tR10Ast__loc_t(&v_0, v_1, true, fx_result), _fx_catch_0); + + _fx_catch_0: ; + if (v_1) { + _fx_free_LT2N14Lexer__token_tR10Ast__loc_t(&v_1); + } + _fx_free_T2N14Lexer__token_tR10Ast__loc_t(&v_0); + goto _fx_endmatch_0; + } + } + if (toks_0 != 0) { + if (toks_0->tl == 0) { + _fx_T2N14Lexer__token_tR10Ast__loc_t v_6 = {0}; + _fx_T2N14Lexer__token_tTa2i* v_7 = &toks_0->hd; + _fx_Ta2i* v_8 = &v_7->t1; + _fx_R10Ast__loc_t v_9 = { (*dm_0)->u.defmodule_t.t2, v_8->t0, v_8->t1, eline_0, ecol_0 }; + _fx_make_T2N14Lexer__token_tR10Ast__loc_t(&v_7->t0, &v_9, &v_6); + FX_CALL(_fx_cons_LT2N14Lexer__token_tR10Ast__loc_t(&v_6, 0, true, fx_result), _fx_catch_1); + + _fx_catch_1: ; + _fx_free_T2N14Lexer__token_tR10Ast__loc_t(&v_6); + goto _fx_endmatch_0; + } + } + if (toks_0 == 0) { + goto _fx_endmatch_0; + } + FX_FAST_THROW(FX_EXN_NoMatchError, _fx_cleanup); + +_fx_endmatch_0: ; + +_fx_cleanup: ; + return fx_status; +} + FX_EXTERN_C int fx_init_Parser(void) { FX_REG_EXN("Parser.ParseError", _FX_EXN_E18Parser__ParseError, _fx_E18Parser__ParseError_info, diff --git a/compiler/bootstrap/String.c b/compiler/bootstrap/String.c index 79b72b39..03d52a83 100644 --- a/compiler/bootstrap/String.c +++ b/compiler/bootstrap/String.c @@ -18,17 +18,6 @@ typedef struct _fx_Nt6option1i { } u; } _fx_Nt6option1i; -typedef struct _fx_T3LSiB { - struct _fx_LS_data_t* t0; - int_ t1; - bool t2; -} _fx_T3LSiB; - -typedef struct _fx_T2LSi { - struct _fx_LS_data_t* t0; - int_ t1; -} _fx_T2LSi; - typedef struct _fx_T2SB { fx_str_t t0; bool t1; @@ -54,42 +43,6 @@ static int _fx_cons_LS(fx_str_t* hd, struct _fx_LS_data_t* tl, bool addref_tl, s FX_MAKE_LIST_IMPL(_fx_LS, fx_copy_str); } -static void _fx_free_T3LSiB(struct _fx_T3LSiB* dst) -{ - _fx_free_LS(&dst->t0); -} - -static void _fx_copy_T3LSiB(struct _fx_T3LSiB* src, struct _fx_T3LSiB* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - dst->t1 = src->t1; - dst->t2 = src->t2; -} - -static void _fx_make_T3LSiB(struct _fx_LS_data_t* t0, int_ t1, bool t2, struct _fx_T3LSiB* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - fx_result->t1 = t1; - fx_result->t2 = t2; -} - -static void _fx_free_T2LSi(struct _fx_T2LSi* dst) -{ - _fx_free_LS(&dst->t0); -} - -static void _fx_copy_T2LSi(struct _fx_T2LSi* src, struct _fx_T2LSi* dst) -{ - FX_COPY_PTR(src->t0, &dst->t0); - dst->t1 = src->t1; -} - -static void _fx_make_T2LSi(struct _fx_LS_data_t* t0, int_ t1, struct _fx_T2LSi* fx_result) -{ - FX_COPY_PTR(t0, &fx_result->t0); - fx_result->t1 = t1; -} - static void _fx_free_T2SB(struct _fx_T2SB* dst) { fx_free_str(&dst->t0); @@ -318,28 +271,21 @@ FX_EXTERN_C int _fx_M6StringFM5splitLS3SCB( struct _fx_LS_data_t** fx_result, void* fx_fv) { - _fx_T3LSiB __fold_result___0 = {0}; - fx_str_t s_1 = {0}; - _fx_T3LSiB v_0 = {0}; _fx_LS sl_0 = 0; - _fx_LS v_1 = 0; - fx_str_t v_2 = {0}; - _fx_LS __fold_result___1 = 0; + fx_str_t s_1 = {0}; + _fx_LS sl_1 = 0; + _fx_LS v_0 = 0; + fx_str_t v_1 = {0}; + _fx_LS res_0 = 0; int fx_status = 0; - _fx_make_T3LSiB(0, 0, true, &__fold_result___0); + int_ start_0 = 0; + bool sep_0 = true; fx_copy_str(s_0, &s_1); int_ len_0 = FX_STR_LENGTH(s_1); for (int_ i_0 = 0; i_0 < len_0; i_0++) { - _fx_T3LSiB v_3 = {0}; - _fx_LS sl_1 = 0; - _fx_T3LSiB v_4 = {0}; - _fx_LS v_5 = 0; - fx_str_t v_6 = {0}; + _fx_LS v_2 = 0; + fx_str_t v_3 = {0}; char_ ci_0 = s_1.data[i_0]; - _fx_copy_T3LSiB(&__fold_result___0, &v_3); - FX_COPY_PTR(v_3.t0, &sl_1); - int_ start_0 = v_3.t1; - bool sep_0 = v_3.t2; if (ci_0 == c_0) { bool t_0; if (sep_0) { @@ -349,13 +295,16 @@ FX_EXTERN_C int _fx_M6StringFM5splitLS3SCB( t_0 = false; } if (t_0) { - FX_COPY_PTR(sl_1, &v_5); + FX_COPY_PTR(sl_0, &v_2); } else { - FX_CALL(fx_substr(s_0, start_0, i_0, 1, 0, &v_6), _fx_catch_0); - FX_CALL(_fx_cons_LS(&v_6, sl_1, true, &v_5), _fx_catch_0); + FX_CALL(fx_substr(s_0, start_0, i_0, 1, 0, &v_3), _fx_catch_0); + FX_CALL(_fx_cons_LS(&v_3, sl_0, true, &v_2), _fx_catch_0); } - _fx_make_T3LSiB(v_5, i_0 + 1, true, &v_4); + _fx_free_LS(&sl_0); + FX_COPY_PTR(v_2, &sl_0); + start_0 = i_0 + 1; + sep_0 = true; } else { int_ t_1; @@ -365,63 +314,56 @@ FX_EXTERN_C int _fx_M6StringFM5splitLS3SCB( else { t_1 = start_0; } - _fx_make_T3LSiB(sl_1, t_1, false, &v_4); + start_0 = t_1; + sep_0 = false; } - _fx_free_T3LSiB(&__fold_result___0); - _fx_copy_T3LSiB(&v_4, &__fold_result___0); _fx_catch_0: ; - FX_FREE_STR(&v_6); - if (v_5) { - _fx_free_LS(&v_5); + FX_FREE_STR(&v_3); + if (v_2) { + _fx_free_LS(&v_2); } - _fx_free_T3LSiB(&v_4); - if (sl_1) { - _fx_free_LS(&sl_1); - } - _fx_free_T3LSiB(&v_3); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T3LSiB(&__fold_result___0, &v_0); - FX_COPY_PTR(v_0.t0, &sl_0); - int_ start_1 = v_0.t1; - bool sep_1 = v_0.t2; + FX_COPY_PTR(sl_0, &sl_1); + int_ start_1 = start_0; + bool sep_1 = sep_0; if (sep_1) { - FX_COPY_PTR(sl_0, &v_1); + FX_COPY_PTR(sl_1, &v_0); } else { - FX_CALL(fx_substr(s_0, start_1, 0, 1, 2, &v_2), _fx_cleanup); FX_CALL(_fx_cons_LS(&v_2, sl_0, true, &v_1), _fx_cleanup); + FX_CALL(fx_substr(s_0, start_1, 0, 1, 2, &v_1), _fx_cleanup); FX_CALL(_fx_cons_LS(&v_1, sl_1, true, &v_0), _fx_cleanup); } - _fx_LS lst_0 = v_1; + _fx_LS lst_0 = v_0; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LS r_0 = 0; + _fx_LS v_4 = 0; fx_str_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LS(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LS(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LS(a_0, res_0, true, &v_4), _fx_catch_1); + _fx_free_LS(&res_0); + FX_COPY_PTR(v_4, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LS(&r_0); + if (v_4) { + _fx_free_LS(&v_4); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, fx_result); + FX_COPY_PTR(res_0, fx_result); _fx_cleanup: ; - _fx_free_T3LSiB(&__fold_result___0); - FX_FREE_STR(&s_1); - _fx_free_T3LSiB(&v_0); if (sl_0) { _fx_free_LS(&sl_0); } - if (v_1) { - _fx_free_LS(&v_1); + FX_FREE_STR(&s_1); + if (sl_1) { + _fx_free_LS(&sl_1); + } + if (v_0) { + _fx_free_LS(&v_0); } - FX_FREE_STR(&v_2); - if (__fold_result___1) { - _fx_free_LS(&__fold_result___1); + FX_FREE_STR(&v_1); + if (res_0) { + _fx_free_LS(&res_0); } return fx_status; } @@ -465,15 +407,13 @@ FX_EXTERN_C int _fx_M6StringFM10num_suffixS1i(int_ n_0, fx_str_t* fx_result, voi FX_EXTERN_C int _fx_M6StringFM7escapedS2SB(fx_str_t* s_0, bool quotes_0, fx_str_t* fx_result, void* fx_fv) { fx_str_t q_0 = {0}; - _fx_LS v_0 = 0; - _fx_T2LSi __fold_result___0 = {0}; - fx_str_t s_1 = {0}; - _fx_T2LSi v_1 = {0}; _fx_LS ll_0 = 0; - fx_str_t v_2 = {0}; - _fx_LS v_3 = 0; - _fx_LS __fold_result___1 = 0; - _fx_LS v_4 = 0; + fx_str_t s_1 = {0}; + _fx_LS ll_1 = 0; + fx_str_t v_0 = {0}; + _fx_LS v_1 = 0; + _fx_LS res_0 = 0; + _fx_LS v_2 = 0; int fx_status = 0; if (quotes_0) { fx_str_t slit_0 = FX_MAKE_STR("\""); fx_copy_str(&slit_0, &q_0); @@ -481,23 +421,17 @@ FX_EXTERN_C int _fx_M6StringFM7escapedS2SB(fx_str_t* s_0, bool quotes_0, fx_str_ else { fx_str_t slit_1 = FX_MAKE_STR(""); fx_copy_str(&slit_1, &q_0); } - FX_CALL(_fx_cons_LS(&q_0, 0, true, &v_0), _fx_cleanup); - _fx_make_T2LSi(v_0, 0, &__fold_result___0); + FX_CALL(_fx_cons_LS(&q_0, 0, true, &ll_0), _fx_cleanup); + int_ verb_0 = 0; fx_copy_str(s_0, &s_1); int_ len_0 = FX_STR_LENGTH(s_1); for (int_ i_0 = 0; i_0 < len_0; i_0++) { - _fx_T2LSi v_5 = {0}; - _fx_LS ll_1 = 0; - _fx_T2LSi v_6 = {0}; - _fx_T2SB v_7 = {0}; + _fx_T2SB v_3 = {0}; fx_str_t esc_s_0 = {0}; - _fx_LS v_8 = 0; - fx_str_t v_9 = {0}; - _fx_LS ll_2 = 0; + _fx_LS v_4 = 0; + fx_str_t v_5 = {0}; + _fx_LS v_6 = 0; char_ c_0 = s_1.data[i_0]; - _fx_copy_T2LSi(&__fold_result___0, &v_5); - FX_COPY_PTR(v_5.t0, &ll_1); - int_ verb_0 = v_5.t1; int_ code_0; FX_CALL(_fx_F3ordi1C(c_0, &code_0, 0), _fx_catch_0); bool t_0; @@ -507,117 +441,102 @@ FX_EXTERN_C int _fx_M6StringFM7escapedS2SB(fx_str_t* s_0, bool quotes_0, fx_str_ else { t_0 = false; } - if (t_0) { - _fx_make_T2LSi(ll_1, verb_0, &v_6); - } - else { + if (!t_0) { if (code_0 == 10) { - fx_str_t slit_2 = FX_MAKE_STR("\\n"); _fx_make_T2SB(&slit_2, true, &v_7); + fx_str_t slit_2 = FX_MAKE_STR("\\n"); _fx_make_T2SB(&slit_2, true, &v_3); } else if (code_0 == 13) { - fx_str_t slit_3 = FX_MAKE_STR("\\r"); _fx_make_T2SB(&slit_3, true, &v_7); + fx_str_t slit_3 = FX_MAKE_STR("\\r"); _fx_make_T2SB(&slit_3, true, &v_3); } else if (code_0 == 9) { - fx_str_t slit_4 = FX_MAKE_STR("\\t"); _fx_make_T2SB(&slit_4, true, &v_7); + fx_str_t slit_4 = FX_MAKE_STR("\\t"); _fx_make_T2SB(&slit_4, true, &v_3); } else if (code_0 == 39) { - fx_str_t slit_5 = FX_MAKE_STR("\\\'"); _fx_make_T2SB(&slit_5, true, &v_7); + fx_str_t slit_5 = FX_MAKE_STR("\\\'"); _fx_make_T2SB(&slit_5, true, &v_3); } else if (code_0 == 34) { - fx_str_t slit_6 = FX_MAKE_STR("\\\""); _fx_make_T2SB(&slit_6, true, &v_7); + fx_str_t slit_6 = FX_MAKE_STR("\\\""); _fx_make_T2SB(&slit_6, true, &v_3); } else if (code_0 == 92) { - fx_str_t slit_7 = FX_MAKE_STR("\\\\"); _fx_make_T2SB(&slit_7, true, &v_7); + fx_str_t slit_7 = FX_MAKE_STR("\\\\"); _fx_make_T2SB(&slit_7, true, &v_3); } else if (code_0 == 0) { - fx_str_t slit_8 = FX_MAKE_STR("\\0"); _fx_make_T2SB(&slit_8, true, &v_7); + fx_str_t slit_8 = FX_MAKE_STR("\\0"); _fx_make_T2SB(&slit_8, true, &v_3); } else { - fx_str_t slit_9 = FX_MAKE_STR("\\0"); _fx_make_T2SB(&slit_9, false, &v_7); + fx_str_t slit_9 = FX_MAKE_STR("\\0"); _fx_make_T2SB(&slit_9, false, &v_3); } FX_CHECK_EXN(_fx_catch_0); - fx_copy_str(&v_7.t0, &esc_s_0); - bool esc_0 = v_7.t1; + fx_copy_str(&v_3.t0, &esc_s_0); + bool esc_0 = v_3.t1; if (esc_0) { if (i_0 > verb_0) { - FX_CALL(fx_substr(s_0, verb_0, i_0, 1, 0, &v_9), _fx_catch_0); - FX_CALL(_fx_cons_LS(&v_9, ll_1, true, &v_8), _fx_catch_0); + FX_CALL(fx_substr(s_0, verb_0, i_0, 1, 0, &v_5), _fx_catch_0); + FX_CALL(_fx_cons_LS(&v_5, ll_0, true, &v_4), _fx_catch_0); } else { - FX_COPY_PTR(ll_1, &v_8); + FX_COPY_PTR(ll_0, &v_4); } - FX_CALL(_fx_cons_LS(&esc_s_0, v_8, true, &ll_2), _fx_catch_0); - _fx_make_T2LSi(ll_2, i_0 + 1, &v_6); - } - else { - _fx_make_T2LSi(ll_1, verb_0, &v_6); + FX_CALL(_fx_cons_LS(&esc_s_0, v_4, true, &v_6), _fx_catch_0); + _fx_free_LS(&ll_0); + FX_COPY_PTR(v_6, &ll_0); + verb_0 = i_0 + 1; } } - _fx_free_T2LSi(&__fold_result___0); - _fx_copy_T2LSi(&v_6, &__fold_result___0); _fx_catch_0: ; - if (ll_2) { - _fx_free_LS(&ll_2); + if (v_6) { + _fx_free_LS(&v_6); } - FX_FREE_STR(&v_9); - if (v_8) { - _fx_free_LS(&v_8); + FX_FREE_STR(&v_5); + if (v_4) { + _fx_free_LS(&v_4); } FX_FREE_STR(&esc_s_0); - _fx_free_T2SB(&v_7); - _fx_free_T2LSi(&v_6); - if (ll_1) { - _fx_free_LS(&ll_1); - } - _fx_free_T2LSi(&v_5); + _fx_free_T2SB(&v_3); FX_CHECK_EXN(_fx_cleanup); } - _fx_copy_T2LSi(&__fold_result___0, &v_1); - FX_COPY_PTR(v_1.t0, &ll_0); - int_ verb_1 = v_1.t1; - FX_CALL(fx_substr(s_0, verb_1, 0, 1, 2, &v_2), _fx_cleanup); - FX_CALL(_fx_cons_LS(&v_2, ll_0, true, &v_3), _fx_cleanup); - FX_CALL(_fx_cons_LS(&q_0, v_3, false, &v_3), _fx_cleanup); - _fx_LS lst_0 = v_3; + FX_COPY_PTR(ll_0, &ll_1); + int_ verb_1 = verb_0; + FX_CALL(fx_substr(s_0, verb_1, 0, 1, 2, &v_0), _fx_cleanup); + FX_CALL(_fx_cons_LS(&v_0, ll_1, true, &v_1), _fx_cleanup); + FX_CALL(_fx_cons_LS(&q_0, v_1, false, &v_1), _fx_cleanup); + _fx_LS lst_0 = v_1; for (; lst_0; lst_0 = lst_0->tl) { - _fx_LS r_0 = 0; + _fx_LS v_7 = 0; fx_str_t* a_0 = &lst_0->hd; - FX_COPY_PTR(__fold_result___1, &r_0); - FX_CALL(_fx_cons_LS(a_0, r_0, false, &r_0), _fx_catch_1); - _fx_free_LS(&__fold_result___1); - FX_COPY_PTR(r_0, &__fold_result___1); + FX_CALL(_fx_cons_LS(a_0, res_0, true, &v_7), _fx_catch_1); + _fx_free_LS(&res_0); + FX_COPY_PTR(v_7, &res_0); _fx_catch_1: ; - if (r_0) { - _fx_free_LS(&r_0); + if (v_7) { + _fx_free_LS(&v_7); } FX_CHECK_EXN(_fx_cleanup); } - FX_COPY_PTR(__fold_result___1, &v_4); + FX_COPY_PTR(res_0, &v_2); fx_str_t slit_10 = FX_MAKE_STR(""); - FX_CALL(_fx_F4joinS2SLS(&slit_10, v_4, fx_result, 0), _fx_cleanup); + FX_CALL(_fx_F4joinS2SLS(&slit_10, v_2, fx_result, 0), _fx_cleanup); _fx_cleanup: ; FX_FREE_STR(&q_0); - if (v_0) { - _fx_free_LS(&v_0); - } - _fx_free_T2LSi(&__fold_result___0); - FX_FREE_STR(&s_1); - _fx_free_T2LSi(&v_1); if (ll_0) { _fx_free_LS(&ll_0); } - FX_FREE_STR(&v_2); - if (v_3) { - _fx_free_LS(&v_3); + FX_FREE_STR(&s_1); + if (ll_1) { + _fx_free_LS(&ll_1); + } + FX_FREE_STR(&v_0); + if (v_1) { + _fx_free_LS(&v_1); } - if (__fold_result___1) { - _fx_free_LS(&__fold_result___1); + if (res_0) { + _fx_free_LS(&res_0); } - if (v_4) { - _fx_free_LS(&v_4); + if (v_2) { + _fx_free_LS(&v_2); } return fx_status; } diff --git a/docs/fold1_brief.md b/docs/fold1_brief.md index de80df19..fe5d85ec 100644 --- a/docs/fold1_brief.md +++ b/docs/fold1_brief.md @@ -56,9 +56,7 @@ old `fold` until removal. - **`_` is legal as an LHS component** (Vadim): `(q, _) = divmod(a, b)` — no store is emitted for a `_` component, but the RHS temp is still evaluated in full (side effects preserved). Degenerate all-`_` - (`(_, _) = f()`) is legal = evaluate for effects. A BARE `_ = expr` - outside a tuple LHS is NOT introduced (out of scope — that's a separate - discard-assignment feature; expression-statements cover it). + (`(_, _) = f()`), as well as `_ = f()`, are legal = evaluate for effects. - Directed tests: Fibonacci `(a, b) = (b, a + b)` with exact values asserted; the classic swap `(arr[i], arr[j]) = (arr[j], arr[i])`; nested; tuple-returning call RHS; `(q, _) = ...` incl. an RHS whose diff --git a/docs/fold1_report.md b/docs/fold1_report.md new file mode 100644 index 00000000..3f573e04 --- /dev/null +++ b/docs/fold1_report.md @@ -0,0 +1,92 @@ +# fold-1 report — the imperative fold reform (first construct of the epoch) + +Branch `fold-1`. Brief: `docs/fold1_brief.md`; design: `docs/language_changes_brief.md` §2. + +## What shipped + +`fold` is now an **imperative** construct — a thin sugar over `for`: + +``` +fold = for { body } + ==> { var = init; for { body }; } +``` + +The accumulator is a real mutable **var**, visible and assignable in the body; +the whole-fold value is the accumulator after the loop. Multiple accumulators +are multiple vars (`fold a=0, b=1 for ...`, or a tuple pattern). `break` / +`continue` / `return` are legal in the body (it is a plain `for`) — the old +form banned them. A closure in the body captures the accumulator **var** (sees +the final value), not a per-iteration snapshot. + +The named reduction sugars (`all`/`exists`/`count`/`find`/`find_opt`/`filter`/ +`vector`, spelled `name(for ...)`) are a **separate** construct and were NOT +touched — they already lower directly to an imperative accumulator loop. + +## How it was staged (methodology) + +Per the brief, the reform ran behind a temporary keyword `__fold__` so every +step was reversible and ladder-green: + +1. **Phase 0.1 — simultaneous tuple assignment** (`(a,b) = (b,a+b)`): a + parse-time desugar (`Parser.fx` `make_tuple_assign`) — the RHS materializes + once into a temp before any store, so the Fibonacci and array-swap idioms + are simultaneous. `_` components emit no store; bare `_ = e` evaluates for + effects. This is the migration's target for tuple-accumulator folds. + - Surfaced **FB-023** (fixed): the swap exposed a latent C-gen soundness + hole — `find_single_use_vals` inlined a single-use temp that READS mutable + memory past an intervening aliasing store. Fixed with a recursive + `movement_unsafe_read` guard (keep such temps materialized). Perf within + noise; 35/55 bootstrap modules regenerated, behavior-preserving. +2. **Phase 0.2 — census** (`docs/fold_census.md`): 261 `fold` sites classified + by body-tail shape. Headline: **W (closure-captures-accumulator) = 0** across + the whole corpus, so the new var-capture semantics can't change behavior at + any migrated site — the reform's biggest semantic risk dissolved by data. +3. **Phase 1 — `__fold__` in the compiler**: the keyword + `transform_new_fold_exp` + desugar; an accumulator-unused warning (suppressed by `acc = _`); an empty + block `{}` (ExpNop) made a valid void no-op anywhere. Tests `test/test_fold2.fx`. +4. **Phase 2 — the automigrator + token-precise spans**: + - Fixed reform-prep-1's batch spans to be **token-precise** (each token gets + its own span from its start to the next token's start). A side win: 12 + negative goldens got tighter, correct carets (e.g. `break`, not `{ break`). + - A compiler-assisted rewriter: `-pr-fold-sites` emitted a per-site migration + descriptor; `tools/fold_migrate.py` applied span-based textual edits with a + `--check` safety net (re-parse + typecheck). Both are single-use and were + removed at the flip. +5. **Phase 3 — migrate the corpus, then the compiler**: + - Corpus (test/lib/examples/tools) migrated idiomatically by Vadim. + - `compiler/` (~156 sites) migrated in the same style — four parallel + migrators for the bulk, `Parser.fx` (comprehension-desugar nested folds, + the chained-cmp 3-accumulator fold) and the hardest `C_gen_code`/`K_fuse_loops` + blocks (a 10-accumulator fold, doubly-nested folds) by hand. + - **Compiler-specific silent-bug class**, handled throughout: an accumulator + whose name also appears in its for-iteration collection (`fold X = .. for e + <- X`) or is re-bound by a body `val X` would make the var-based form + iterate/read the wrong binding — invisible to `--check`, caught only by the + **bootstrap fixpoint / ladder**. Every such site renames the accumulator + (or the shadowing local). Two the migrators missed were caught by the build. +6. **Phase 4 — the flip**: `__fold__` renamed to `fold` tree-wide; the old + plain-`fold` desugar, the `FOLD: bool` staging, and the migrator tooling + removed (`FOLD` is nullary again). An old-style value body now warns + "accumulator never assigned … the body must UPDATE the accumulator (e.g. + 's = ' / 's += ...')" (negative goldens 708/709). A 2-stage bootstrap + avoided the chicken-and-egg: (1) make `fold` = new alongside the `__fold__` + alias + regen bootstrap so `ficus0` understands it, (2) rename + drop the + alias + regen. + +## Acceptance / verification + +- Full ladder green at every phase: unit 168, negative 90, T4 IR 63, cfold, + corpus O0/O3. **Bootstrap fixpoint holds** — the compiler self-builds + deterministically after migrating its own folds (the strongest check that no + migrated fold silently miscompiles). +- The T4 `fold` IR snapshot did **not** need semantic regeneration — the new + desugar lowers to a clean `{ var acc; for {..}; acc }` and is keyword-agnostic. +- `-pr-resolve` census unaffected (the fold desugar doesn't touch resolution). + +## Follow-ups (not blockers) + +- The old-style-body diagnostic is currently `warning: accumulator never + assigned` + a downstream type error. A single fold-specific "fold body must be + void" primary error would read better (golden 709 documents today's output). +- Writer accumulators (`l += x` appending to list/vector), named reduction + sugars as macros, and `@parallel` reductions remain out of scope (wave 2 / §2). diff --git a/docs/fold_census.md b/docs/fold_census.md new file mode 100644 index 00000000..121e1264 --- /dev/null +++ b/docs/fold_census.md @@ -0,0 +1,475 @@ +# fold census (fold-1 Phase 0.2) + +Every `fold` KEYWORD site in `lib/ compiler/ test/ examples/`, classified by the +shape of the body **tail** (the last expression, folded into the accumulator +each iteration) to drive the Phase-2 automigrator. This does NOT cover the +`name(for ...)` sugar family (`all`/`exists`/`count`/`find`/`find_opt`/`filter`/ +`vector`) — those are not `fold` keyword sites; they are re-expressed through +`__fold__` inside the compiler in Phase 1. + +Method: `grep -nE '\bfold\b'` per file, excluding `__fold_result__`, `unfold`, +`manifold`, identifier names (`fold_x`/`x_fold`), the `FOLD` token defs, and +"fold" in comments/strings. Each real site read for its accumulator arity and +body tail. Classification done by four parallel readers, aggregated here. + +## Categories + +- **A** `single-op=` — single accumulator `s`; tail `s rhs` with `s` the + LEFT operand and `` ∈ {`+ - * / % & | ^ << >> .* ./ .%`}. Migrates to + `s = rhs`. +- **B** `single-expr` — single accumulator; tail is any other expression (a + call, another var, a whole `match`/`if` value, a `::` cons). Migrates to + `s = E`. +- **C** `tuple-ctor` — tuple accumulator; tail is a literal tuple `(e1,…,en)`. + Migrates to per-component assignments (with `op=` beautification) when no + component reads a DIFFERENT accumulator, else to a simultaneous tuple + assignment. +- **D** `tuple-nonctor` — tuple accumulator; tail is NOT a literal tuple (a + `match`/`if` whose arms are tuples, or a tuple-returning call). Migrates to + the simultaneous tuple assignment `(a,…,z) = E` — Phase 0.1 exists for + exactly this, and simultaneity matters (the arms read the OLD accumulators). +- **E** `bare-acc` — tail is the bare accumulator (degenerate; drop the tail). +- **W** `closure-capture` — the body contains a lambda that references the + accumulator. **Semantic-change watchlist** (old fold captured a per-iteration + snapshot; new fold captures the var). +- **M** `manual` — unclear / fits none. + +## Headline findings + +- **W is EMPTY across the entire corpus.** No `fold` body anywhere closes over + its own accumulator, so the new `__fold__` var-capture semantics cannot + change behavior at any migrated site — the reform's single largest semantic + risk is dissolved by the data. +- **No true E (bare no-op) sites**, and **no M (manual)** — every site fits a + mechanical rule. Two sites *return* the bare accumulator but only after an + inner `val` rebinds it (C_gen_code:1304, :2969) — those are ordinary B. +- **A is dominated by lib/test math** (norms, dot products, hashing); the + compiler is almost all B (accumulator-list building `x :: acc`) and C/D + (folds returning tuples of `(list, code)` accumulators). +- **~30 D sites** (tuple accumulator, `match`/`if` tail) are the ones that + consume the Phase-0.1 simultaneous tuple assignment; several read the other + accumulators in the `else` arm, so simultaneity is load-bearing. +- `valfold` = the `val fold acc = init …` sugar (accumulator names are the val + bindings); `fold` = a bare fold expression (incl. `val (pat) = fold …` + destructuring and the one assignment `match_var_cases = fold …`). + +## Tally (261 sites) + +| cat | meaning | count | migration | +|-----|---------|------:|-----------| +| A | single-acc, `s rhs` (s left) | 47 | `s = rhs` | +| B | single-acc, other expr | 115 | `s = E` | +| C | tuple-acc, literal-tuple tail | 60 | per-component (or simultaneous) | +| D | tuple-acc, non-literal tail (match/if/call) | 38 | `(a,…,z) = E` | +| E | bare accumulator (degenerate) | 1 | drop tail | +| W | closure captures accumulator | **0** | — (no semantic risk) | +| M | manual | **0** | — | + +Accumulator arity: **163 single / 98 tuple**. Per directory: compiler ~171, +lib 62, test+examples 28. The lone E (K_fast_idx.fx:240) returns the bare +accumulator; the migrator drops its tail. + +--- + +## test/ + examples/ + +### test/test_nn_quant.fx +test/test_nn_quant.fx:98 | valfold | 1 | A | tail: s + (x[n, c, i, j] - xzp)*xsc + +### test/myops.fx +test/myops.fx:19 | fold | 1 | A | tail: s+x + +### test/test_resolve.fx +test/test_resolve.fx:104 | valfold | 1 | B | tail: [:: x*x] + prog + +### test/ir/fold.fx +test/ir/fold.fx:2 | valfold | 1 | A | tail: acc + x + +### test/test_ds.fx +test/test_ds.fx:42 | valfold | 1 | A | tail: sum0 + i +test/test_ds.fx:90 | valfold | 1 | B | tail: wcounter.add(w, wcounter.find(w, 0)+1) +test/test_ds.fx:111 | valfold | 1 | B | tail: wcounter2.update(w, fun (_, ci_opt) {...}) +test/test_ds.fx:122 | valfold | 1 | A | tail: c+ci +test/test_ds.fx:127 | valfold | N | D | tail: if c%2==0 {(wcounter_odd.remove(w), ll_odd)} else {(wcounter_odd, (w,c)::ll_odd)} +test/test_ds.fx:204 | valfold | 1 | A | tail: nbad + (if m.find_opt((i,i+1)).value_or(-1)==i*1000 {0} else {1}) + +### test/test_nbody.fx +test/test_nbody.fx:78 | fold | 1 | A | tail: p - body.vel * (body.mass / SolarMass) +test/test_nbody.fx:86 | fold | 1 | B | tail: e + 0.5*bi.mass*dot(bi.vel,bi.vel) - (fold e1 = 0. for j <- ...) +test/test_nbody.fx:90 | fold | 1 | A | tail: e1 + (bi.mass * bj.mass) / distance + +### test/test_btree.fx +test/test_btree.fx:36 | valfold | 1 | A | tail: c + check(make(d)) + +### test/test_spectralnorm.fx +test/test_spectralnorm.fx:24 | fold | 1 | A | tail: t + A(i, j) * u[j] +test/test_spectralnorm.fx:35 | fold | 1 | A | tail: t + A(j, i) * u[j] +test/test_spectralnorm.fx:45 | valfold | N | C | tail: (AtAu(v), v) +test/test_spectralnorm.fx:47 | valfold | N | C | tail: (vBv + ui*vi, vv + vi*vi) + +### test/test_array.fx +test/test_array.fx:145 | valfold | N | D | tail: if pix != 0 {(min(minx,x), max(maxx,x), min(miny,y), max(maxy,y))} else {(minx,maxx,miny,maxy)} + +### test/rand/test_rand_array.fx +test/rand/test_rand_array.fx:149 | valfold | 1 | A | tail: acc + x + +### examples/knucleotide.fx +examples/knucleotide.fx:74 | valfold | 1 | B | tail: key*4 + encrypt_char(c) + +### examples/spectralnorm.fx +examples/spectralnorm.fx:16 | fold | 1 | A | tail: t + uj / A(i, j) +examples/spectralnorm.fx:27 | fold | 1 | A | tail: t + uj / A(j, i) +examples/spectralnorm.fx:43 | valfold | N | C | tail: (vBv + ui*vi, vv + vi*vi) + +### examples/btree.fx +examples/btree.fx:45 | valfold | 1 | A | tail: c + check(make(d)) + +### examples/nbody.fx +examples/nbody.fx:72 | fold | 1 | A | tail: p - body.vel * (body.mass / SolarMass) +examples/nbody.fx:80 | fold | 1 | B | tail: e + 0.5*bi.mass*dot(bi.vel,bi.vel) - (fold e1 = 0. for j <- ...) +examples/nbody.fx:84 | fold | 1 | A | tail: e1 + (bi.mass * bj.mass) / distance + +### examples/fst.fx +examples/fst.fx:188 | valfold | N | C | tail: (min(minv, y), max(maxv, y)) + +--- + +## lib/ + +### lib/Sys.fx +lib/Sys.fx:100 | valfold | N | D | tail: if iterations>1 && i==0 {(gmean, new_mintime)} else {(gmean+log_t, new_mintime)} + +### lib/List.fx +lib/List.fx:31 | fold | 1 | B | tail: a :: r +lib/List.fx:34 | fold | 1 | B | tail: f(a, res) +lib/List.fx:70 | fold | 1 | B | tail: l + s (s is RIGHT operand -> not op=) + +### lib/Builtins.fx +lib/Builtins.fx:577 | fold | 1 | B | tail: if aj == bj {f} else {false} +lib/Builtins.fx:579 | fold | 1 | B | tail: if d != 0 {d} else {aj <=> bj} +lib/Builtins.fx:581 | fold | 1 | B | tail: if aj == bj {f} else {false} +lib/Builtins.fx:583 | fold | 1 | B | tail: if d != 0 {d} else {aj <=> bj} +lib/Builtins.fx:669 | fold | 1 | A | tail: s + aj*bj +lib/Builtins.fx:685 | fold | 1 | B | tail: max(s, normInf(aj)) +lib/Builtins.fx:687 | fold | 1 | A | tail: s + normL1(aj) +lib/Builtins.fx:689 | fold | 1 | A | tail: s + normL2sqr(aj) +lib/Builtins.fx:692 | fold | 1 | B | tail: max(s, normInf(aj, bj)) +lib/Builtins.fx:694 | fold | 1 | A | tail: s + normL1(aj, bj) +lib/Builtins.fx:696 | fold | 1 | A | tail: s + normL2sqr(aj, bj) +lib/Builtins.fx:736 | fold | 1 | A | tail: f & x +lib/Builtins.fx:737 | fold | 1 | A | tail: f | x +lib/Builtins.fx:775 | fold | 1 | A | tail: f & (aj === bj) +lib/Builtins.fx:777 | fold | 1 | A | tail: f & (aj === bj) +lib/Builtins.fx:1169 | fold | 1 | A | tail: h * FNV_1A_PRIME +lib/Builtins.fx:1175 | fold | 1 | A | tail: h * FNV_1A_PRIME + +### lib/NN/Inference.fx +lib/NN/Inference.fx:367 | valfold | 1 | B | tail: max(maxk, ik) + +### lib/Set.fx +lib/Set.fx:338 | valfold | N | C | tail: (new_root, size+dsz) + +### lib/Json.fx +lib/Json.fx:210 | valfold | 1 | B | tail: if i < n-1 {..; l_newind|ofs+2} else {printf(" "); ofs} + +### lib/String.fx +lib/String.fx:264 | valfold | N | D | tail: if f(c) {(.., start, true)} else {(sl, .., false)} +lib/String.fx:276 | valfold | N | D | tail: if ci==c {(.., i+1, true)} else {(sl, .., false)} +lib/String.fx:331 | valfold | N | D | tail: if code>=40 && code!=92 {(ll, verb)} else {..} + +### lib/Array.fx +lib/Array.fx:23 | fold | 1 | A | tail: p*szj +lib/Array.fx:234 | fold | 1 | A | tail: s + aj +lib/Array.fx:237 | fold | 1 | A | tail: s + aj +lib/Array.fx:240 | fold | 1 | A | tail: p * aj +lib/Array.fx:245 | fold | 1 | B | tail: max(s, normInf(aj)) +lib/Array.fx:248 | fold | 1 | A | tail: s + normL1(aj) +lib/Array.fx:251 | fold | 1 | A | tail: s + normL2sqr(aj) +lib/Array.fx:256 | fold | 1 | B | tail: max(s, normInf(aj, bj)) +lib/Array.fx:259 | fold | 1 | A | tail: s + normL1(aj, bj) +lib/Array.fx:262 | fold | 1 | A | tail: s + normL2sqr(aj, bj) +lib/Array.fx:270 | fold | N | D | tail: if x < minv {(x, i)} else {(minv, mini)} +lib/Array.fx:279 | fold | N | D | tail: if x > maxv {(x, i)} else {(maxv, maxi)} +lib/Array.fx:408 | fold | 1 | B | tail: if lt(b, p) {..; i0+1} else {i0} +lib/Array.fx:417 | fold | 1 | B | tail: if lt(arr[j], p) {_swap_..; i0+1} else {i0} +lib/Array.fx:663 | fold | 1 | A | tail: s + a[i, i] + +### lib/Deque.fx +lib/Deque.fx:81 | valfold | 1 | B | tail: f(x, res) +lib/Deque.fx:82 | fold | 1 | B | tail: f(x, res) +lib/Deque.fx:87 | valfold | 1 | B | tail: f(x, res) +lib/Deque.fx:88 | fold | 1 | B | tail: f(x, res) + +### lib/UTest.fx +lib/UTest.fx:391 | valfold | 1 | B | tail: if (!matches ^ inverse_test) {failed} else {..} + +### lib/Re2.fx +lib/Re2.fx:340 | fold | 1 | B | tail: if (ok) {piece::filtered} else {filtered} +lib/Re2.fx:351 | valfold | 1 | B | tail: match piece { RPString => max_sub | RPInt => max(max_sub, sub_num) } +lib/Re2.fx:972 | valfold | 1 | B | tail: match piece { RPString => ..::rlist | RPInt => ..::rlist } + +### lib/NN/Ast.fx +lib/NN/Ast.fx:1277 | fold | 1 | A | tail: p*sz + +### lib/NN/OpQuantized.fx +lib/NN/OpQuantized.fx:924 | valfold | 1 | A | tail: plane_size*inp_shape[i] + +### lib/NN/FromOnnx.fx +lib/NN/FromOnnx.fx:308 | valfold | 1 | B | tail: rev_more_ops + prog (prog is RIGHT operand -> not op=) + +### lib/NN/OpDetect.fx +lib/NN/OpDetect.fx:59 | valfold | N | D | tail: if p > pmax {(k, p)} else {(best_class, pmax)} +lib/NN/OpDetect.fx:135 | valfold | N | D | tail: if ..p > pmax {(i, p)} else {(ibest, pmax)} + +### lib/Map.fx +lib/Map.fx:335 | valfold | 1 | B | tail: add_(new_root, xk, xd, cmp) + +### lib/NN/InferShapes.fx +lib/NN/InferShapes.fx:150 | valfold | 1 | A | tail: out_shape_a + shape_i.shape[axis] +lib/NN/InferShapes.fx:268 | valfold | 1 | B | tail: if enable_broadcast {out_shape.broadcast(shape_i)} else {..layout coerce} +lib/NN/InferShapes.fx:308 | valfold | N | D | tail: if i < axis {(sz1*sz, sz2)} else {(sz1, sz2*sz)} +lib/NN/InferShapes.fx:640 | valfold | 1 | A | tail: old_total*sz +lib/NN/InferShapes.fx:641 | valfold | N | D | tail: if sz==-1 {(new_total,true)} else if sz==0 {..} else {(new_total*sz, havem1)} +lib/NN/InferShapes.fx:825 | valfold | 1 | B | tail: if shape.shape[axis]==1 {..; out_ndims-1} else {out_ndims} + +--- + +## compiler/ (non big-4) + +### compiler/Ast.fx +compiler/Ast.fx:74 | fold | 1 | B | tail: if m_idx != loci_m_idx { if m_idx<=0 {loci} else {loc} } else { loc_t{...} } +compiler/Ast.fx:1022 | fold | 1 | B | tail: if szj < 0 || sz < 0 {-1} else {sz + szj} + +### compiler/C_gen_types.fx +compiler/C_gen_types.fx:469 | fold | N | C | tail: (free_code, copy_code, make_code, (ni,cti)::relems, (ni,cti_arg,cti_arg_flags)::make_args) +compiler/C_gen_types.fx:518 | valfold | N | C | tail: (free_code, copy_code, make_code, (ni,cti)::relems, (arg_ni,cti_arg,cti_arg_flags)::make_args) +compiler/C_gen_types.fx:705 | valfold | N | D | tail: match kt { KTypVoid => (free_cases,copy_cases,uelems) | _ => (...,(ni_clean,ti)::uelems) } +compiler/C_gen_types.fx:1005 | valfold | 1 | B | tail: if is_used_decl(s, used_ids, true) { s::ctypes_ccode } else { ctypes_ccode } + +### compiler/C_gen_fdecls.fx +compiler/C_gen_fdecls.fx:32 | valfold | 1 | B | tail: (arg, ctyp, arg_flags) :: args +compiler/C_gen_fdecls.fx:92 | valfold | N | C | tail: ((c_id, ctyp) :: relems, free_ccode) +compiler/C_gen_fdecls.fx:308 | valfold | N | C | tail: (init_ccode, iface->ki_id :: ids, pair :: pairs, all_ids.add(iface->ki_id)) + +### compiler/Compiler.fx +compiler/Compiler.fx:122 | fold | N | D | tail: if found {(preamble,found)} else if bare_name==mname {...} else if from_import {...} else {...} +compiler/Compiler.fx:141 | fold | 1 | B | tail: Lexer.PP_DEFINE :: Lexer.IDENT(true,n) :: Lexer.LITERAL(v) :: p +compiler/Compiler.fx:619 | valfold | N | C | tail: (any_cpp|is_cpp, any_recompiled|is_recompiled, clibs_j+all_clibs, ok&ok_j, obj::objs) +compiler/Compiler.fx:665 | fold | 1 | B | tail: if key!="" && seen.mem(key) {acc} else { if key!="" {seen.add(key)}; e::acc } + +### compiler/K_flatten.fx +compiler/K_flatten.fx:85 | fold | 1 | B | tail: match new_e { KExpSeq(nested_elist,_) => nested_elist.rev()+code | _ => new_e::code } + +### compiler/K_fuse_loops.fx +compiler/K_fuse_loops.fx:32 | valfold | N | D | tail: match e { KDefVal(_,KExpMap _,_)=>(nmaps+1,nfors) | ... | _ =>(nmaps,nfors) } +compiler/K_fuse_loops.fx:105 | valfold | N | D | tail: match dom { DomainElem(AtomId arr)=>...(arr_fuse_map,...::a2f) | _ =>(arr_fuse_map,a2f) } +compiler/K_fuse_loops.fx:147 | fold | N | D | tail: match dom { DomainElem(AtomId arr)=>... | _ => ((i,dom)::new_idl,pbody,arr_fuse_map) } +compiler/K_fuse_loops.fx:153 | valfold | N | D | tail: match nested_dom { DomainElem(AtomId nested_arr)=>... | _ => ((nested_i,nested_dom)::new_idl2,pbody2,new_fuse_map) } + +### compiler/K_fast_idx.fx +compiler/K_fast_idx.fx:240 | valfold | 1 | E | tail: loop_idx (degenerate; but see note) +compiler/K_fast_idx.fx:242 | valfold | N | D | tail: match dom { DomainRange(...)when...=>(arr_id,loop_idx.add(...)) | ... | _ =>(arr_id,loop_idx) } +compiler/K_fast_idx.fx:264 | fold | 1 | B | tail: loop_idx.add(idx, LoopOverArr(arr_id, i)) +compiler/K_fast_idx.fx:413 | valfold | N | D | tail: match idx { DomainRange _ =>(true,have_slow) | DomainElem _ =>(have_ranges,true) | _ =>(...) } +compiler/K_fast_idx.fx:579 | fold | 1 | B | tail: match aa_class { IdxSimple(i,scale,shift)=>... | _ => pre_for_code } +compiler/K_fast_idx.fx:696 | valfold | N | D | tail: match idx { DomainRange _ =>(true,have_slow,have_non_invariants,idx_atoms) | ... } + +### compiler/K_inline.fx +compiler/K_inline.fx:133 | fold | 1 | B | tail: fold s = s for (f, a) <- al { s + (if f {10} else {1}) } (nested fold) +compiler/K_inline.fx:134 | fold | 1 | A | tail: s + (if f { 10 } else { 1 }) +compiler/K_inline.fx:138 | fold | 1 | A | tail: s + (if f { 10 } else { 1 }) +compiler/K_inline.fx:147 | fold | 1 | A | tail: total + checks.length() +compiler/K_inline.fx:152 | fold | 1 | B | tail: 10 + total + idl.length() + +### compiler/K_freevars.fx +compiler/K_freevars.fx:243 | valfold | 1 | B | tail: create_kdefval(fv_proxy, t, kv_flags, Some(deref_exp), prologue, kf_loc) + +### compiler/K_tailrec.fx +compiler/K_tailrec.fx:104 | valfold | N | C | tail: (a1i::new_kf_params, (a2i,ti)::trec_args, f_init_code, loop_init_code) +compiler/K_tailrec.fx:158 | valfold | 1 | B | tail: set_new :: tcall_rcode + +### compiler/K_form.fx +compiler/K_form.fx:699 | valfold | 1 | B | tail: (f, walk_atom_(a, loc)) :: new_row + +### compiler/K_remove_unused.fx +compiler/K_remove_unused.fx:412 | valfold | 1 | B | tail: match e { KDefVal(n,_,_)=> if all_main_deps.mem(n){e::new_top} else{new_top} | ... } + +### compiler/K_cfold_dealias.fx +compiler/K_cfold_dealias.fx:421 | valfold | 1 | B | tail: match a { AtomId n => ... | _ => try_cfold_str_concat(a, res_al) } + +### compiler/K_mangle.fx +compiler/K_mangle.fx:132 | valfold | 1 | B | tail: mangle_ktyp_(targ, result) +compiler/K_mangle.fx:230 | fold | 1 | B | tail: mangle_ktyp_(a, result) +compiler/K_mangle.fx:241 | fold | 1 | B | tail: mangle_ktyp_(t, result) + +### compiler/K_lift.fx +compiler/K_lift.fx:288 | valfold | 1 | B | tail: (new_fv, kv_typ) :: fvars_wt +compiler/K_lift.fx:527 | valfold | 1 | B | tail: create_kdefval(fv_proxy, t, new_kv_flags, Some(e), prologue, kf_loc) +compiler/K_lift.fx:613 | valfold | 1 | B | tail: (i, dom_i) :: idom_l + +### compiler/K_annotate.fx +compiler/K_annotate.fx:33 | fold | 1 | B | tail: get_ktyp_deps_(t, deps) +compiler/K_annotate.fx:35 | fold | 1 | B | tail: get_ktyp_deps_(t, deps) +compiler/K_annotate.fx:37 | fold | 1 | B | tail: get_ktyp_deps_(ti, deps) +compiler/K_annotate.fx:47 | valfold | 1 | B | tail: get_ktyp_deps_(ti, deps) +compiler/K_annotate.fx:48 | fold | 1 | B | tail: deps.add(iname) +compiler/K_annotate.fx:51 | valfold | 1 | B | tail: get_ktyp_deps_(ti, deps) + +### compiler/K_loop_inv.fx +compiler/K_loop_inv.fx:64 | fold | N | C | tail: (new_elist, new_e_idl_l, new_body) + +--- + +## compiler/ big-4 + +### compiler/C_gen_code.fx +compiler/C_gen_code.fx:265 | fold | N | C | tail: (if idx==0 {fwd_decls} else {..::fwd_decls}, ..::init_calls, ..::deinit_calls) +compiler/C_gen_code.fx:822 | valfold | 1 | B | tail: CExpBinary(COpLogicAnd, check_exp, check_i, (CTypBool, loc)) (ctor call, not op=) +compiler/C_gen_code.fx:835 | valfold | 1 | B | tail: CExpBinary(COpAdd, sum_checks, check_i, (CTypCInt, loc)) (ctor call, not op=) +compiler/C_gen_code.fx:864 | fold | 1 | B | tail: ndims_i +compiler/C_gen_code.fx:987 | valfold | N | C | tail: (lists_i + list_exps, i_exps, n_exps, for_checks, incr_exps, init_checks, ...) +compiler/C_gen_code.fx:1158 | valfold | N | C | tail: (i_exp :: i_exps, n_exp :: n_exps, init_ccode) +compiler/C_gen_code.fx:1169 | valfold | 1 | B | tail: init_check_k :: init_checks +compiler/C_gen_code.fx:1271 | valfold | N | C | tail: (k_final + 1, (Some(CTypInt), init_exps, Some(check_exp), incr_exps_i) :: for_headers) +compiler/C_gen_code.fx:1280 | valfold | 1 | B | tail: CExpBinary(COpLogicAnd, check_exp, e, (CTypBool, ifor_loc)) (ctor call) +compiler/C_gen_code.fx:1292 | valfold | 1 | B | tail: Some(match check_exp_opt { | Some e => ... | _ => check_i }) +compiler/C_gen_code.fx:1304 | fold | 1 | B | tail: body_ccode (rebound via inner val) +compiler/C_gen_code.fx:1320 | valfold | N | C | tail: (new_have_default, em_label_used || em_label_used_i, have_epilogues || ..., ...) +compiler/C_gen_code.fx:1324 | fold | N | C | tail: (ccheck_ij :: checks_i, ccode_ij :: pre_checks_i) +compiler/C_gen_code.fx:1379 | fold | 1 | B | tail: if_stmt :: pre_check_ij +compiler/C_gen_code.fx:1405 | valfold | 1 | B | tail: match s_i { | [:: CStmtIf(...)] => make_if(c_i, then_i, complex_if, loc_i) | _ => throw } +compiler/C_gen_code.fx:1758 | valfold | N | C | tail: (s_exp :: strs, ccode) +compiler/C_gen_code.fx:1862 | valfold | N | C | tail: (c_exp :: cargs, ccode) +compiler/C_gen_code.fx:1900 | valfold | N | C | tail: (i_exp :: i_exps, ccode) +compiler/C_gen_code.fx:1958 | valfold | N | C | tail: (carg :: args, ccode) +compiler/C_gen_code.fx:2025 | valfold | N | C | tail: (carg :: args, ccode) +compiler/C_gen_code.fx:2058 | valfold | N | C | tail: (ca :: cargs, ccode) +compiler/C_gen_code.fx:2083 | valfold | N | C | tail: (ca :: cargs, ccode) +compiler/C_gen_code.fx:2105 | fold | N | C | tail: (nscalars, scalars_data, make_int_exp(127, kloc) :: tags_data, arr_data, ccode) +compiler/C_gen_code.fx:2107 | valfold | N | D | tail: if f {(nscalars, scalars_data, ..::tags_data, elem_ptr::arr_data, ccode)} else {...} +compiler/C_gen_code.fx:2164 | valfold | N | D | tail: fold data = data, ccode = ccode for (_, a) <- arow { (e :: data, ccode) } (nested fold) +compiler/C_gen_code.fx:2165 | fold | N | C | tail: (e :: data, ccode) +compiler/C_gen_code.fx:2207 | fold | N | D | tail: if f {(nscalars, scalars_data, ..::tags_data, elem_ptr::vec_data, ccode)} else {...} +compiler/C_gen_code.fx:2257 | valfold | N | C | tail: (e :: data, ccode) +compiler/C_gen_code.fx:2409 | valfold | N | D | tail: match d { DomainElem/DomainFast => (..), DomainRange => (..) } +compiler/C_gen_code.fx:2445 | valfold | N | D | tail: match d { DomainFast => (..), DomainElem => (..) } +compiler/C_gen_code.fx:2701 | valfold | 1 | A | tail: ndims + ndims_i +compiler/C_gen_code.fx:2725 | valfold | N | D | tail: match (for_flag_make, coll_ctyp, deref_ktyp(coll_typ, kloc)) { ... } +compiler/C_gen_code.fx:2830 | fold | N | C | tail: (k + 1, cmp_size_i :: cmp_size_list) +compiler/C_gen_code.fx:2837 | valfold | 1 | B | tail: if is_parallel_map {then_ccode} else {CExp(set_dstptr) :: then_ccode} +compiler/C_gen_code.fx:2882 | valfold | N | C | tail: ((coll_ctyp, elemtyp, dst_exp, dst_ptr, iter) :: dst_data, decl_dstptr_ccode + decl_dstptr_ccode_all) +compiler/C_gen_code.fx:2926 | valfold | 1 | B | tail: match for_flag_make { ForMakeArray => gen_copy_code(...) | ForMakeVector => ... } +compiler/C_gen_code.fx:2969 | valfold | 1 | B | tail: for_ccode (rebound via inner vals) +compiler/C_gen_code.fx:2988 | fold | 1 | B | tail: match e { CExpBinary(COpAssign,...) => CDefVal(...) :: for_ccode | e => throw } +compiler/C_gen_code.fx:3065 | valfold | 1 | B | tail: if k>0 || pre_body_ccode==[] {for_stmt} else {rccode2stmt(for_stmt :: pre_body_ccode, for_loc)} +compiler/C_gen_code.fx:3489 | valfold | 1 | B | tail: C_gen_types.gen_copy_code(src_exp, dst_exp, t, ccode, kf_loc) +compiler/C_gen_code.fx:3522 | valfold | 1 | B | tail: C_gen_types.gen_copy_code(src_exp, dst_exp, t, ccode, kf_loc) +compiler/C_gen_code.fx:3557 | valfold | 1 | B | tail: C_gen_types.gen_copy_code(src_exp, dst_exp, t, ccode, kf_loc) +compiler/C_gen_code.fx:3625 | valfold | N | D | tail: if is_global {(s :: global_vars, temp_init_vals)} else {(global_vars, s :: temp_init_vals)} +compiler/C_gen_code.fx:3684 | fold | N | C | tail: ((km, c_fdecls, mod_init_calls, all_exn_data_decls.rev()) :: kmods_plus, mod_exn_data_decls.rev() + ...) +compiler/C_gen_code.fx:3692 | valfold | 1 | B | tail: (cmodule_t {...}) :: cmods + +### compiler/K_normalize.fx +compiler/K_normalize.fx:129 | valfold | N | C | tail: ((i, di) :: idom_list, code, body_code) +compiler/K_normalize.fx:167 | valfold | N | D | tail: match-arm form: (_, TypInt) => (i :: at_ids, body_code) | _ => throw +compiler/K_normalize.fx:177 | valfold | N | D | tail: match-arm form: (TypInt, _) => (i :: at_ids, KTypInt :: ktl) | _ => throw +compiler/K_normalize.fx:293 | valfold | N | C | tail: (ai :: args, code) +compiler/K_normalize.fx:310 | valfold | N | C | tail: (ai :: args, code) +compiler/K_normalize.fx:319 | valfold | N | C | tail: (krow.rev() :: krows, code, all_literals) +compiler/K_normalize.fx:320 | valfold | N | C | tail: ((f, a) :: krow, code, all_literals & islit) +compiler/K_normalize.fx:337 | valfold | N | C | tail: ((f, a) :: elems, code) +compiler/K_normalize.fx:356 | valfold | N | C | tail: (a :: ratoms, code) +compiler/K_normalize.fx:376 | valfold | N | C | tail: (a :: ratoms, code) +compiler/K_normalize.fx:398 | valfold | N | C | tail: (ai :: args, code) +compiler/K_normalize.fx:478 | fold | N | C | tail: ((pre_exp, idom_list, at_ids) :: pre_idom_ll, body_code) +compiler/K_normalize.fx:509 | fold | N | C | tail: (DomainElem(d)::dlist, code) +compiler/K_normalize.fx:515 | fold | N | C | tail: (d :: dlist, code) +compiler/K_normalize.fx:536 | fold | N | D | tail: if elem_id == ni { (j, j + 1) } else { (i, j + 1) } +compiler/K_normalize.fx:809 | valfold | 1 | B | tail: (ni, pi, found_t, found_idx) :: typed_rec_pl +compiler/K_normalize.fx:811 | valfold | N | D | tail: if get_orig_id(nj) == ni_orig { (idx, tj) } else { (found_idx, found_t) } +compiler/K_normalize.fx:966 | fold | 1 | B | tail: pat_simple_unpack(pi, ti, Some(ei), code, temp_prefix, flags, sc).1 +compiler/K_normalize.fx:982 | fold | 1 | B | tail: pat_simple_unpack(pi, ti, Some(ei), code, temp_prefix, flags, sc).1 +compiler/K_normalize.fx:1006 | fold | 1 | B | tail: pat_simple_unpack(pi, ti, Some(ei), code, temp_prefix, flags, sc).1 +compiler/K_normalize.fx:1105 | valfold | 1 | B | tail: (pinfo_i :: plists_delta) +compiler/K_normalize.fx:1120 | valfold | 1 | B | tail: dispatch_pat(pinfo, plists) +compiler/K_normalize.fx:1245 | valfold | 1 | B | tail: (pi, ti, idx) :: pti_l +compiler/K_normalize.fx:1255 | valfold | 1 | B | tail: (pi, ti, idx) :: pti_l +compiler/K_normalize.fx:1304 | valfold | 1 | B | tail: (checks_.rev(), e) :: alt_cases +compiler/K_normalize.fx:1329 | fold | 1 | B | tail: match_var_cases.add(get_orig_id(n)) +compiler/K_normalize.fx:1399 | fold | 1 | B | tail: match id_info(inst, df_loc) { IdFun(inst_df) => ... } +compiler/K_normalize.fx:1427 | valfold | N | C | tail: (pi :: inst_args, ti :: argtyps) +compiler/K_normalize.fx:1454 | valfold | N | C | tail: (i :: params, body_code) +compiler/K_normalize.fx:1487 | fold | 1 | B | tail: match-arm form on e: DefVariant(...) => ... +compiler/K_normalize.fx:1501 | fold | 1 | B | tail: match id_info(inst, dvar_loc) { IdVariant(...) => ... } +compiler/K_normalize.fx:1541 | fold | 1 | B | tail: match id_info(ctor, dvar_loc) { IdFun(...) => ... } +compiler/K_normalize.fx:1686 | valfold | 1 | B | tail: (minfo, kcode_typedefs) :: modules_plus + +### compiler/Ast_typecheck.fx +compiler/Ast_typecheck.fx:749 | valfold | 1 | B | tail: match-arm form on e: EnvId(i) => (e::extra_entries | extra_entries) | _ => extra_entries +compiler/Ast_typecheck.fx:1506 | valfold | 1 | B | tail: add_typ_to_env(nt, t, env1) +compiler/Ast_typecheck.fx:1565 | fold | 1 | B | tail: add_typ_to_env(n, t, env) +compiler/Ast_typecheck.fx:1666 | valfold | N | C | tail: (trszj, (pi, ei) :: for_clauses, code_i + code, dims_i, env, idset) +compiler/Ast_typecheck.fx:1706 | valfold | N | D | tail: match ttrj { TypTuple => (def_pj :: code, env, idset) | _ => ... } +compiler/Ast_typecheck.fx:2404 | valfold | 1 | A | tail: possible_matches + new_matches +compiler/Ast_typecheck.fx:2556 | valfold | N | D | tail: match new_idx { ExpRange => (..) | _ => (new_idx::new_idxs, ndims+dim_inc, ...) } +compiler/Ast_typecheck.fx:2717 | fold | N | C | tail: (trsz + trsz_k, pre_code_k + pre_code, (for_clauses, idx_pat) :: map_clauses, total_dims + dims, env, idset) +compiler/Ast_typecheck.fx:2776 | fold | 1 | B | tail: ExpBinary(OpCons, ej, l_exp, (ltyp, eloc)) +compiler/Ast_typecheck.fx:2848 | fold | N | C | tail: (if have_expanded_i {ncols_i} else {ncols}, arow.rev() :: arows, have_expanded, dims) +compiler/Ast_typecheck.fx:2850 | valfold | N | C | tail: (have_expanded_i || is_expanded, row_dims, elem1 :: arow) +compiler/Ast_typecheck.fx:2910 | valfold | 1 | B | tail: match elem { ExpUnary(OpExpand,...) => ... | _ => ... } +compiler/Ast_typecheck.fx:3224 | valfold | 1 | B | tail: match e { DefFun(df) => reg_deffun(df, env, sc) | DefExn(de) => check_defexn(de,env,sc) | _ => env } +compiler/Ast_typecheck.fx:3235 | valfold | N | C | tail: (eseq1, env1) +compiler/Ast_typecheck.fx:3397 | fold | 1 | B | tail: match i { EnvId(i) => ... } +compiler/Ast_typecheck.fx:3448 | fold | 1 | B | tail: import_entries(env, m_idx, op_name, entries, loc) +compiler/Ast_typecheck.fx:3454 | fold | N | D | tail: match e { DirImport => (fold ..., mlist) | DirImportFrom => (env, mlist) | ... } (nested fold) +compiler/Ast_typecheck.fx:3457 | fold | 1 | B | tail: try { import_mod(env, alias, m, true, eloc) } catch { ... env } +compiler/Ast_typecheck.fx:3471 | valfold | 1 | B | tail: try { ... import_entries(env, m, k, entries, eloc) } catch { ... env } +compiler/Ast_typecheck.fx:3501 | fold | 1 | B | tail: match e { DefTyp(dt) => ... | ... } +compiler/Ast_typecheck.fx:3577 | fold | 1 | B | tail: match e { DefTyp dt => ... | DefVariant dvar => ... | DefInterface di => ... | _ => env } +compiler/Ast_typecheck.fx:3581 | valfold | 1 | B | tail: add_typ_to_env(t_arg, TypApp([], t_arg), env1) +compiler/Ast_typecheck.fx:3591 | fold | 1 | B | tail: add_id_to_env_check(n, ctor_name, env, check_for_duplicate_fun(t, env, sc, dvar_loc)) +compiler/Ast_typecheck.fx:3616 | valfold | N | C | tail: (env1, (f, t, flags) :: base_members) +compiler/Ast_typecheck.fx:3622 | fold | N | C | tail: (env1, (f1, t, flags) :: all_members) +compiler/Ast_typecheck.fx:3695 | valfold | N | C | tail: (arg1 :: args1, t :: argtyps1, temp_env, idset1, templ_args1, all_typed & typed) +compiler/Ast_typecheck.fx:4023 | fold | N | C | tail: (df_inst_arg :: df_inst_args, inst_env, tmp_idset) +compiler/Ast_typecheck.fx:4170 | valfold | 1 | B | tail: match t { TypVoid => complex_cases | TypRecord => (..)::complex_cases | _ => (..)::complex_cases } +compiler/Ast_typecheck.fx:4176 | valfold | N | C | tail: ((rn, PatIdent(ai, body_loc)) :: al, (rn, PatIdent(bi, body_loc)) :: bl, cmp_code) +compiler/Ast_typecheck.fx:4197 | valfold | N | C | tail: (PatIdent(ai, body_loc) :: al, PatIdent(bi, body_loc) :: bl, cmp_code) +compiler/Ast_typecheck.fx:4257 | valfold | 1 | B | tail: add_typ_to_env(tn, TypApp([], tn), env) + +### compiler/Parser.fx +compiler/Parser.fx:36 | fold | N | D | tail: (outer) fold (bd, b) = (thresh+1, "") for d <- inc_dirs { fold (bd,b)=(bd,b) for path <- glob ... } +compiler/Parser.fx:37 | fold | N | D | tail: if dist < bd || (dist == bd && nm < b) { (dist, nm) } else { (bd, b) } +compiler/Parser.fx:130 | valfold | N | C | tail: (p_ :: plist, e_ :: elist) +compiler/Parser.fx:223 | valfold | 1 | B | tail: ExpFor(pe_l, idxp, for_exp, flags.{for_flag_fold=true}, loc) +compiler/Parser.fx:228 | valfold | 1 | B | tail: (pe_l, idxp) :: nd_map +compiler/Parser.fx:366 | fold | 1 | B | tail: ExpBinary(OpCons, e, mklist_e, make_new_ctx(get_exp_loc(e))) +compiler/Parser.fx:676 | fold | N | C | tail: (result, next_e, code) +compiler/Parser.fx:1023 | valfold | N | C | tail: (glob_el, (for_cl_.rev(), idx_pat, when_e, loc) :: nested_fors) +compiler/Parser.fx:1024 | valfold | N | D | tail: match (idxp, idx_pat) { (PatAny,_) => (..) | (_,PatAny) => (..) | _ => throw } +compiler/Parser.fx:1052 | valfold | N | C | tail: ((pe_l, idxp) :: pel_i_l, glob_when_e, loc) +compiler/Parser.fx:1083 | fold | 1 | B | tail: ExpFor(pe_l, idxp, body, flags, loc) +compiler/Parser.fx:1496 | valfold | 1 | A | tail: stores + store (own new make_tuple_assign helper) +compiler/Parser.fx:1673 | fold | 1 | B | tail: PatCons(p, tail, loclist2loc([::get_pat_loc(p), get_pat_loc(tail)], noloc)) + +--- + +## Migrator watch-notes + +- **Nested folds** (a `fold` whose body/init contains another `fold`): + K_inline.fx:133, C_gen_code.fx:2164, Ast_typecheck.fx:3454, Parser.fx:36→37. + The migrator must rewrite the inner site independently (span-based, innermost + first) — no site is only correct in combination with its parent. +- **C with cross-referencing components** — a tuple-ctor tail where component + `e_i` reads a DIFFERENT accumulator — must NOT become sequential per-component + stores; emit the simultaneous tuple assignment. Candidates to check by eye: + C_gen_code.fx:2830 `(k+1, ...)`, :3684, Ast_typecheck.fx:2717/2848. Most C + sites are cross-ref-free (`(x :: own_acc, other_acc)` shape). +- **`match`-arm fold bodies** (`fold (...) = (...) for x <- xs { | pat => ... }`) + at K_normalize.fx:167/177: the whole match is the tail; migrate as + `(a,…) = match x { | pat => (…) }`. +- **`op=` beautification is safe only when `s` is the LEFT operand.** Flagged + right-operand sites that stay `s = E`: List.fx:70 `l + s`, + NN/FromOnnx.fx:308 `rev_more_ops + prog`. +- **`::` cons tails are ordinary B** (`s = x :: s`), NOT the future writer + accumulator sugar (`s += x`); the latter is a separate wave. diff --git a/docs/found_bugs.md b/docs/found_bugs.md index 468698bf..9fcd1c6c 100644 --- a/docs/found_bugs.md +++ b/docs/found_bugs.md @@ -237,6 +237,35 @@ CLAUDE.md and (at rewrite time) the tutorial state it plainly; the annotate-2 follow-up would extend the DefVal recovery to poison the pattern regardless of RHS shape. +## FB-023 single-use temp memory read inlined PAST an aliasing store [FIXED — fold-1] +- repro (via fold-1 tuple assignment): `(arr[i], arr[j]) = (arr[j], arr[i])` + desugars to `val __t = (arr[j], arr[i]); arr[i] = __t.0; arr[j] = __t.1`. + The dealiaser (`K_cfold_dealias`, `mktup_map`) flattens `__t.k` to its + component atoms `@temp val v = arr[k]`, and C-gen's single-use-temp inlining + (`find_single_use_vals`) folded each such read directly into its store. That + MOVED the read of `arr[i]` PAST the store `arr[i] = arr[j]`, so the second + store saw the mutated element: `arr[i]=arr[j]; arr[j]=arr[i];` → both got + `arr[j]`. Wrong at O0 and O3; `-pr-k0` was correct, so the hazard was purely + in the temp-inlining. +- root cause: `find_single_use_vals` used `pure_kexp` (no side effects) as its + inline criterion, but purity ≠ movement-invariance. A *read of mutable + memory* (array element, ref-cell deref, mutable-record field) is pure yet + can change value if moved across an intervening store to an aliasing + location. `pure_kexp` is deliberately conservative for dead-code *removal* + (K_remove_unused.fx:89-92 notes this), but inlining *moves* code, a stronger + requirement. Normal code never exposes it (no read-write-read of one element + in a straight-line block); a simultaneous swap does exactly that. +- fix (`C_gen_code.fx`): a `movement_unsafe_read` guard excludes such temps + from `find_single_use_vals` — `KExpAt` (arrays are mutable), `KExpUnary + OpDeref`, and `KExpMem` on an `is_mutable` base stay materialized (one named + C temp each, which the C compiler coalesces where legal). The desugar keeps + its natural temp-flagged tuple val, so the tuple still scalarizes where the + dealiaser can prove it safe (immutable component atoms). Churn: 35/55 + bootstrap modules regenerate (memory-read temps are common) — all + behavior-preserving. Perf measured: spectralnorm N=5500 within noise; + compiler self-parse of fx.fx +0.3% (both < the ±2% budget), confirming the C + compiler recovers the inlining where it is actually safe. + ## (non-compiler) NN.Quantized.dequantizeLinear [FENCED — DL-engine bug] `lib/NN/OpQuantized.run_dequantize` int8 scalar path yields 0 on Linux/x86. Known DL-engine defect, unrelated to the compiler; fenced by commenting the diff --git a/docs/language_changes_brief.md b/docs/language_changes_brief.md index 0dd5e223..205af68e 100644 --- a/docs/language_changes_brief.md +++ b/docs/language_changes_brief.md @@ -94,7 +94,7 @@ losing the function's interface — session-2/LSP groundwork) and a future dividend for separate interface-only compilation. Not a language change for *users* — inference stays; the flag is a discipline knob. -## 2. fold — imperative form — DECIDED (spec ready for Brief #3) +## 2. fold — imperative form — DECIDED & IMPLEMENTED (fold-1; see docs/fold1_report.md) Body is a void expression; accumulators are scoped variables updated by named assignment; tuple assignment `(a, b) = (b, a+b)` has simultaneous semantics diff --git a/examples/btree.fx b/examples/btree.fx index d2668ef4..33d4a5c0 100644 --- a/examples/btree.fx +++ b/examples/btree.fx @@ -43,7 +43,7 @@ val report = [ @parallel for i <- 0 : (max_depth - min_depth) / 2 + 1 val d = min_depth + i * 2 val niter = 1 << (max_depth - d + min_depth) val fold c = 0 for i <- 0:niter { - c + check(make(d)) + c += check(make(d)) } f"{niter}\t trees of depth {d}\t check: {c}" }] diff --git a/examples/fst.fx b/examples/fst.fx index c9099c74..5dd3cbf4 100644 --- a/examples/fst.fx +++ b/examples/fst.fx @@ -185,7 +185,10 @@ fun plot(a: float, b: float, f: float->float, w: int, h: int) { val step = (b - a)/w val tab = [for x <- 0:w {f(a + step*x)}] val v0 = tab[0] - val fold (minv, maxv)=(v0, v0) for y <- tab { (min(minv, y), max(maxv, y)) } + val fold minv = v0, maxv = v0 for y <- tab { + minv = min(minv, y) + maxv = max(maxv, y) + } val scale = (h-1)/(maxv - minv) val screen: char [,] = array((h, w), ' ') diff --git a/examples/knucleotide.fx b/examples/knucleotide.fx index 09241f6a..6e76ec41 100644 --- a/examples/knucleotide.fx +++ b/examples/knucleotide.fx @@ -71,7 +71,7 @@ fun find_seq(seq: uint8 [], substr: string) { val length = substr.length() val (_, freq) = frequency(seq, length) - val fold key = 0i64 for c <- substr {key*4 + encrypt_char(c)} + val fold key = 0i64 for c <- substr {key = key*4 + encrypt_char(c)} val idx = freq.find_idx(key) val freq = if idx >= 0 {freq.table[idx].data} else {0} f"{freq}\t{substr.toupper()}" diff --git a/examples/nbody.fx b/examples/nbody.fx index 22cc6818..7d643d15 100644 --- a/examples/nbody.fx +++ b/examples/nbody.fx @@ -70,7 +70,7 @@ val bodies = [ sun, jupiter, saturn, uranus, neptune ] fun offsetMomentum() { bodies[0].vel = fold p=Vec{x=0., y=0., z=0.} for body <- bodies { - p - body.vel * (body.mass / SolarMass) + p -= body.vel * (body.mass / SolarMass) } } @@ -80,13 +80,13 @@ fun energy() fold e = 0. for i <- 0:n { val bi = bodies[i] - e + 0.5 * bi.mass * dot(bi.vel, bi.vel) - + e += 0.5 * bi.mass * dot(bi.vel, bi.vel) - (fold e1 = 0. for j <- (i+1):n { val bj = bodies[j] val diff = bi.pos - bj.pos val distance = sqrt(distance2(diff)) - e1 + (bi.mass * bj.mass) / distance + e1 += (bi.mass * bj.mass) / distance }) } } diff --git a/examples/spectralnorm.fx b/examples/spectralnorm.fx index 7a4801dd..60da962b 100644 --- a/examples/spectralnorm.fx +++ b/examples/spectralnorm.fx @@ -14,7 +14,7 @@ fun Au(u: double[], res: double []) @parallel for i <- 0:N { res[i] = fold t = 0. for uj@j <- u { - t + uj / A(i, j) + t += uj / A(i, j) } } } @@ -25,7 +25,7 @@ fun Atu(u: double[], res: double []) @parallel for i <- 0:N { res[i] = fold t = 0. for uj@j <- u { - t + uj / A(j, i) + t += uj / A(j, i) } } } @@ -40,8 +40,8 @@ fun spectralnorm(n: int) val temp = array(n, 0.) val u = array(n, 1.), v = array(n, 0.) for i <- 0:10 { AtAu(u, v, temp); AtAu(v, u, temp) } - val fold vBv=0., vv = 0. - for ui <- u, vi <- v { (vBv + ui*vi, vv + vi*vi) } + var vBv=0., vv = 0. + for ui <- u, vi <- v { vBv += ui*vi; vv += vi*vi } sqrt(vBv/vv) } diff --git a/lib/Array.fx b/lib/Array.fx index f2a94ee1..9bdb7b40 100644 --- a/lib/Array.fx +++ b/lib/Array.fx @@ -20,7 +20,7 @@ fun size(a: 't [,,]): (int, int, int) = (__intrin_size__(a, 0), __intrin_size__( fun size(a: 't [,,,]): (int, int, int, int) = (__intrin_size__(a, 0), __intrin_size__(a, 1), __intrin_size__(a, 2), __intrin_size__(a, 3)) -fun total(a: 't [+]): int = fold p = 1 for szj <- size(a) {p*szj} +fun total(a: 't [+]): int = fold p = 1 for szj <- size(a) { p*= szj } fun total(a: 't []): int = size(a) @nothrow fun empty(a: 't [+]):bool @@ -231,35 +231,35 @@ fun clip(a: 't [+], minv_arr: 't [+], maxv_arr: 't [+]): 't [+] = [for x <- a, minv <- minv_arr, maxv <- maxv_arr {min(max(x, minv), maxv)}] fun sum(a: 't [+]): double = - fold s = ((0 :> 't) :> double) for aj <- a {s + aj} + fold s = ((0 :> 't) :> double) for aj <- a {s += aj} fun sum(a: 't [+], v0: 's): 's = - fold s = v0 for aj <- a {s + aj} + fold s = v0 for aj <- a {s += aj} fun product(a: 't [+], v0: 's): 's = - fold p = v0 for aj <- a {p * aj} + fold p = v0 for aj <- a {p *= aj} fun mean(a: 't [+]): double = sum(a)/(max(total(a), 1) :> double) fun normInf(a: 't [+]): 't = - fold s = normInf(0 :> 't) for aj <- a {max(s, normInf(aj))} + fold s = normInf(0 :> 't) for aj <- a {s = max(s, normInf(aj))} fun normL1(a: 't [+]): double = - fold s = 0. for aj <- a {s + normL1(aj)} + fold s = 0. for aj <- a {s += normL1(aj)} fun normL2sqr(a: 't [+]): double = - fold s = 0. for aj <- a {s + normL2sqr(aj)} + fold s = 0. for aj <- a {s += normL2sqr(aj)} fun normL2(a: 't [+]): double = sqrt(normL2sqr(a)) fun normInf(a: 't [+], b: 't [+]): 't = - fold s = normInf(0 :> 't) for aj <- a, bj <- b {max(s, normInf(aj, bj))} + fold s = normInf(0 :> 't) for aj <- a, bj <- b {s = max(s, normInf(aj, bj))} fun normL1(a: 't [+], b: 't [+]): double = - fold s = 0. for aj <- a, bj <- b {s + normL1(aj, bj)} + fold s = 0. for aj <- a, bj <- b {s += normL1(aj, bj)} fun normL2sqr(a: 't [+], b: 't [+]): double = - fold s = 0. for aj <- a, bj <- b {s + normL2sqr(aj, bj)} + fold s = 0. for aj <- a, bj <- b {s += normL2sqr(aj, bj)} fun normL2(a: 't [+], b: 't [+]): double = sqrt(normL2sqr(a, b)) @@ -267,8 +267,11 @@ fun minindex(a: 't []): ('t, int) = if a == [] { (0 :> 't, -1) } else { - fold (minv, mini) = (a[0], 0) for x@i <- a { - if x < minv {(x, i)} else {(minv, mini)} + fold minv = a[0], mini = 0 for x@i <- a { + if x < minv { + minv = x + mini = i + } } } @@ -276,8 +279,11 @@ fun maxindex(a: 't []): ('t, int) = if a == [] { (0 :> 't, -1) } else { - fold (maxv, maxi) = (a[0], 0) for x@i <- a { - if x > maxv {(x, i)} else {(maxv, maxi)} + fold maxv = a[0], maxi = 0 for x@i <- a { + if x > maxv { + maxv = x + maxi = i + } } } @@ -403,24 +409,24 @@ fun sort(arr: 't [], lt: ('t, 't) -> bool, ~prefix: int): void } else { if lt(a, p) {arr[lo]=p; a} else if lt(b, p) {p} else {arr[m]=p; b} } - val i0 = - if __is_scalar__(p) { - fold i0 = lo for j <- lo:hi { - val b = arr[j] - if lt(b, p) { - val a = arr[i0] - arr[i0] = b; arr[j] = a; - i0 + 1 - } else {i0} + var i0 = lo + if __is_scalar__(p) { + for j <- lo:hi { + val b = arr[j] + if lt(b, p) { + val a = arr[i0] + arr[i0] = b; arr[j] = a; + i0 += 1 } - } else { - fold i0 = lo for j <- lo:hi { - if lt(arr[j], p) { - _swap_(arr, i0, j) - i0 + 1 - } else {i0} + } + } else { + for j <- lo:hi { + if lt(arr[j], p) { + _swap_(arr, i0, j) + i0 += 1 } } + } val a = arr[i0] arr[hi] = a; arr[i0] = p var i1 = hi @@ -660,5 +666,5 @@ fun det(a: double [,]): double = fun trace(a: 't [,]): double { val (m, n) = size(a) - fold s = 0. for i <- 0:min(m, n) {s + a[i, i]} + fold s = 0. for i <- 0:min(m, n) {s += a[i, i]} } \ No newline at end of file diff --git a/lib/Builtins.fx b/lib/Builtins.fx index 759003be..606b2445 100644 --- a/lib/Builtins.fx +++ b/lib/Builtins.fx @@ -574,13 +574,13 @@ fun size(_: ('t*4)): int = 4 fun size(_: ('t*5)): int = 5 operator == (a: (...), b: (...)): bool = - fold f=true for aj <- a, bj <- b {if aj == bj {f} else {false}} + fold f=true for aj <- a, bj <- b {f &= (aj == bj)} operator <=> (a: (...), b: (...)): int = - fold d=0 for aj <- a, bj <- b {if d != 0 {d} else {aj <=> bj}} + fold d=0 for aj <- a, bj <- b {if d == 0 {d = aj <=> bj}} operator == (a: {...}, b: {...}): bool = - fold f=true for (_, aj) <- a, (_, bj) <- b {if aj == bj {f} else {false}} + fold f=true for (_, aj) <- a, (_, bj) <- b {f &= (aj == bj)} operator <=> (a: {...}, b: {...}): int = - fold d=0 for (_, aj) <- a, (_, bj) <- b {if d != 0 {d} else {aj <=> bj}} + fold d=0 for (_, aj) <- a, (_, bj) <- b {if d == 0 {d = aj <=> bj}} operator <=> (a: int, b: int): int = (a > b) - (a < b) operator <=> (a: int8, b: int8): int = (a > b) - (a < b) @@ -666,7 +666,7 @@ operator * (a: ('t*4), b: ('t*4)): ('t*4) = // dot product fun dot(a: ('t...), b: ('t...)): 't = - fold s = a.0-a.0 for aj <- a, bj <- b {s + aj*bj} + fold s = a.0-a.0 for aj <- a, bj <- b {s += aj*bj} // cross product fun cross(a: ('t*2), b: ('t*2)): 't = a.0*b.1 - a.1*b.0 @@ -682,18 +682,18 @@ fun normL2sqr(a: 't): 't { val t = abs(a); t*t } fun normL2(a: 't): 't = abs(a) fun normInf(a: ('t...)): 't = - fold s = normInf(a.0) for aj <- a {max(s, normInf(aj))} + fold s = normInf(a.0) for aj <- a {s = max(s, normInf(aj))} fun normL1(a: ('t...)): 't3 = - fold s = normL1(a.0)*0.f for aj <- a {s + normL1(aj)} + fold s = normL1(a.0)*0.f for aj <- a {s += normL1(aj)} fun normL2sqr(a: ('t...)): 't3 = - fold s = normL1(a.0)*0.f for aj <- a {s + normL2sqr(aj)} + fold s = normL1(a.0)*0.f for aj <- a {s += normL2sqr(aj)} fun normL2(a: ('t...)): 't3 = __intrin_sqrt__(normL2sqr(a)) fun normInf(a: ('t...), b: ('t...)): 't = - fold s = normInf(a.0, b.0) for aj <- a, bj <- b {max(s, normInf(aj, bj))} + fold s = normInf(a.0, b.0) for aj <- a, bj <- b {s = max(s, normInf(aj, bj))} fun normL1(a: ('t...), b: ('t...)): 't3 = - fold s = normL1(a.0)*0.f for aj <- a, bj <- b {s + normL1(aj, bj)} + fold s = normL1(a.0)*0.f for aj <- a, bj <- b {s += normL1(aj, bj)} fun normL2sqr(a: ('t...), b: ('t...)): 't3 = - fold s = normL1(a.0)*0.f for aj <- a, bj <- b {s + normL2sqr(aj, bj)} + fold s = normL1(a.0)*0.f for aj <- a, bj <- b {s += normL2sqr(aj, bj)} fun normL2(a: ('t...), b: ('t...)): 't3 = __intrin_sqrt__(normL2sqr(a, b)) fun norm(a: ('t...)): 't3 = normL2(a) @@ -733,8 +733,8 @@ operator <=> (a: 't?, b: 't?): int { | _ => 0 } -fun all(a: (bool...)): bool = fold f=true for x <- a {f & x} -fun exists(a: (bool...)): bool = fold f=false for x <- a {f | x} +fun all(a: (bool...)): bool = fold f=true for x <- a {f &= x} +fun exists(a: (bool...)): bool = fold f=false for x <- a {f |= x} @pure @nothrow operator == (a: string, b: string): bool = @ccode { return fx_streq(a, b); } @@ -772,9 +772,9 @@ fun __fun_string__(a: 't): string @pure @nothrow operator === (a: string, b: string): bool = @ccode {return a->data == b->data} @pure @nothrow operator === (a: 't [+], b: 't [+]): bool = @ccode {return a->data == b->data} operator === (a: (...), b: (...)): bool = - fold f=true for aj<-a, bj<-b {f & (aj === bj)} + fold f=true for aj<-a, bj<-b {f &= (aj === bj)} operator === (a: {...}, b: {...}): bool = - fold f=true for (_, aj)<-a, (_, bj)<-b {f & (aj === bj)} + fold f=true for (_, aj)<-a, (_, bj)<-b {f &= (aj === bj)} operator === (a: 't?, b: 't?): bool { | (Some(a), Some(b)) => a === b | (None, None) => true @@ -1167,14 +1167,14 @@ val FNV_1A_OFFSET: hash_t = 14695981039346656037u64 fun hash(x: (...)): hash_t = fold h = FNV_1A_OFFSET for xj <- x { - val h = h ^ hash(xj) - h * FNV_1A_PRIME + h ^= hash(xj) + h *= FNV_1A_PRIME } fun hash(x: {...}): hash_t = fold h = FNV_1A_OFFSET for (_, xj) <- x { - val h = h ^ hash(xj) - h * FNV_1A_PRIME + h ^= hash(xj) + h *= FNV_1A_PRIME } @inline fun hash(x: int): uint64 = uint64(x) ^ FNV_1A_OFFSET diff --git a/lib/Deque.fx b/lib/Deque.fx index ade31384..2ef8b40e 100644 --- a/lib/Deque.fx +++ b/lib/Deque.fx @@ -78,14 +78,14 @@ fun app(d: 't Deque.t, f: 't -> void, ~in_order:bool=true): void fun foldl(d: 't Deque.t, f: ('t, 'acc) -> 'acc, res0: 'acc): 'acc { - val fold res=res0 for x <- d.head {f(x, res)} - fold res=res for x <- d.tail.rev() {f(x, res)} + val fold res=res0 for x <- d.head {res = f(x, res)} + fold res=res for x <- d.tail.rev() {res = f(x, res)} } fun foldr(d: 't Deque.t, f: ('t, 'acc) -> 'acc, res0: 'acc): 'acc { - val fold res=res0 for x <- d.tail {f(x, res)} - fold res=res for x <- d.head.rev() {f(x, res)} + val fold res=res0 for x <- d.tail {res = f(x, res)} + fold res=res for x <- d.head.rev() {res = f(x, res)} } fun all(d: 't Deque.t, f: 't -> bool): bool = d.head.all(f) && d.tail.all(f) diff --git a/lib/Json.fx b/lib/Json.fx index 0b227817..22160a5f 100644 --- a/lib/Json.fx +++ b/lib/Json.fx @@ -211,17 +211,22 @@ fun scalar2string(js: t): (string, bool) val (str, printed) = scalar2string(x) if !printed { throw Fail("scalar is expected here") } val lstr = length(str) - val ofs = if ofs > l_newind && ofs + lstr > W1 { + val new_ofs = if ofs > l_newind && ofs + lstr > W1 { printf(f"\n{newind}"); l_newind } else { ofs } printf(str) - val ofs = ofs + lstr - if i < n-1 { - printf(",") - if ofs+1 > W0 { - printf(f"\n{newind}"); l_newind - } else { printf(" "); ofs + 2 } - } else { printf(" "); ofs } + val new_ofs = new_ofs + lstr + ofs = if i < n-1 { + printf(",") + if new_ofs+1 > W0 { + printf(f"\n{newind}"); l_newind + } + else { + printf(" "); new_ofs + 2 + } + } else { + printf(" "); new_ofs + } } printf("]"); ofs + 1 } else { diff --git a/lib/List.fx b/lib/List.fx index 9a5145a9..a5f88c0c 100644 --- a/lib/List.fx +++ b/lib/List.fx @@ -28,10 +28,10 @@ fun skip_nothrow(l: 't list, n: int): 't list = if n == 0 {l} else { match l { | a :: rest => skip_nothrow(rest, n-1) | _ => [] } } fun rev(l: 't list): 't list = - fold r=[] for a <- l {a :: r} + fold res=[] for a <- l {res = a :: res} fun foldl(l: 't list, f: ('t, 'r) -> 'r, res0: 'r): 'r = - fold res=res0 for a <- l {f(a, res)} + fold res=res0 for a <- l {res = f(a, res)} fun assoc(l: ('a, 'b) list, x: 'a): 'b = find(for (a, b) <- l {a == x}).1 @@ -67,7 +67,7 @@ fun find_opt(l: 't list, f: 't -> bool): 't? = find_opt(for a <- l {f(a)}) fun concat(ll: 't list list): 't list = - fold s = ([]: 't list) for l <- rev(ll) {l + s} + fold s = ([]: 't list) for l <- rev(ll) {s = l + s} fun filter(l: 't list, f: 't -> bool): 't list = [:: for x <- l { if !f(x) {continue}; x }] diff --git a/lib/Map.fx b/lib/Map.fx index 14865c28..575d507d 100644 --- a/lib/Map.fx +++ b/lib/Map.fx @@ -333,7 +333,7 @@ fun add_list(m: ('k, 'd) Map.t, l: ('k, 'd) list): ('k, 'd) Map.t { val cmp = m.cmp val fold new_root=m.root for (xk, xd) <- l { - add_(new_root, xk, xd, cmp) + new_root = add_(new_root, xk, xd, cmp) } t {root=new_root, cmp=cmp} } diff --git a/lib/NN/Ast.fx b/lib/NN/Ast.fx index 64e1ae9c..9498d21a 100644 --- a/lib/NN/Ast.fx +++ b/lib/NN/Ast.fx @@ -1274,7 +1274,7 @@ fun empty_arg() = nnarg_t { typ = Notype } -fun total(shape: nnshape_t) = fold p=1 for sz <- shape.shape {p*sz} +fun total(shape: nnshape_t) = fold p=1 for sz <- shape.shape {p *= sz} fun nnshape_t.copy() = nnshape_t { layout = self.layout, diff --git a/lib/NN/FromOnnx.fx b/lib/NN/FromOnnx.fx index cb727118..2a6ef2bf 100644 --- a/lib/NN/FromOnnx.fx +++ b/lib/NN/FromOnnx.fx @@ -1009,7 +1009,7 @@ fun convert(onnx_model: OAst.model_t): Ast.nnmodel_t unsupported_ops.add(node.op) [] } - rev_more_ops + prog + prog = rev_more_ops + prog } Ast.NN_Graph { name = onnx_graph.name, diff --git a/lib/NN/InferShapes.fx b/lib/NN/InferShapes.fx index c424df07..15cf5c56 100644 --- a/lib/NN/InferShapes.fx +++ b/lib/NN/InferShapes.fx @@ -153,7 +153,7 @@ fun infer(model: Ast.nnmodel_t, op: Ast.nnop_t): argshapeinfo_t [] assert(`typ_i == typ0`) out_shape[axis] = shape_i.shape[axis] assert(`out_shape == shape_i.shape`) - out_shape_a + shape_i.shape[axis] + out_shape_a += shape_i.shape[axis] } out_shape[axis] = out_shape_a [argshapeinfo_t {idx=t_out, shape=Ast.nnshape_t {layout=shape0.layout, @@ -276,10 +276,10 @@ fun infer(model: Ast.nnmodel_t, op: Ast.nnop_t): argshapeinfo_t [] (typ0 == Type_F32 && typ_i == Type_F16)`) } if enable_broadcast { - out_shape.broadcast(shape_i) + out_shape = out_shape.broadcast(shape_i) } else { assert(`shape0.shape == shape_i.shape`) - out_shape.{layout = Ast.coerce_layouts(out_shape.layout, shape_i.layout)} + out_shape = out_shape.{layout = Ast.coerce_layouts(out_shape.layout, shape_i.layout)} } } val out_typ = match el_op { @@ -306,7 +306,11 @@ fun infer(model: Ast.nnmodel_t, op: Ast.nnop_t): argshapeinfo_t [] val ndims = shape.shape.size() val axis = Ast.normalize_axis(axis, ndims) val fold sz1 = 1, sz2 = 1 for sz@i <- shape.shape { - if i < axis {(sz1*sz, sz2)} else {(sz1, sz2*sz)} + if i < axis { + sz1 *= sz + } else { + sz2 *= sz + } } [argshapeinfo_t {idx=t_out, shape=Ast.nnshape_t {layout=Ast.NN_Layout_ND, shape=[sz1, sz2]}, typ=typ, dynamic=false}] @@ -637,18 +641,21 @@ fun infer(model: Ast.nnmodel_t, op: Ast.nnop_t): argshapeinfo_t [] val (sshape, _) = get_shape_typ(t_shape) assert(`sshape.shape.size() == 1 || sshape.shape.size() == 0`) val new_shape = int(model.get_tensor(t_shape)) - val fold old_total = 1 for sz <- shape.shape {old_total*sz} + val fold old_total = 1 for sz <- shape.shape {old_total *= sz} val fold new_total=1, havem1=false for sz@i <- new_shape { if sz == -1 { if havem1 {throw Ast.NNError(f"shape inference: {name} (op={opname}): the new shape contains more than one -1")} - (new_total, true) + havem1 = true } else if sz == 0 { - if allowzero {(new_total, havem1)} + if allowzero { + } else { val sz = shape.shape[i] - (new_total*sz, havem1) + new_total *= sz } - } else {(new_total*sz, havem1)} + } else { + new_total *= sz1 + } } val m1sz = if havem1 { if old_total % new_total != 0 { @@ -827,8 +834,8 @@ fun infer(model: Ast.nnmodel_t, op: Ast.nnop_t): argshapeinfo_t [] if shape.shape[axis] == 1 { assert(`out_shape_0[axis] >= 0`) out_shape_0[axis] = -1 - out_ndims - 1 - } else {out_ndims} + out_ndims -= 1 + } } var j = 0 val out_shape = array(out_ndims, 0) diff --git a/lib/NN/Inference.fx b/lib/NN/Inference.fx index 48efcd87..07724625 100644 --- a/lib/NN/Inference.fx +++ b/lib/NN/Inference.fx @@ -367,7 +367,7 @@ fun read_labels(fname: string) = val fold maxk = 0 for (k, v) <- entries { val ik = k.to_int().value_or(-1) assert(ik >= 0) - max(maxk, ik) + maxk = max(maxk, ik) } val labels_arr = array(maxk + 1, "unknown") for (k, v) <- entries { diff --git a/lib/NN/OpDetect.fx b/lib/NN/OpDetect.fx index 9f5c7ea5..791bac52 100644 --- a/lib/NN/OpDetect.fx +++ b/lib/NN/OpDetect.fx @@ -58,7 +58,10 @@ fun collect_boxes(yolo_outputs: Ast.nntensor_t [], val fold best_class=0, pmax=data_i[idx, CLS0] for k <- 1:nclasses { val p = data_i[idx, k+CLS0] - if p > pmax {(k, p)} else {(best_class, pmax)} + if p > pmax { + best_class = k; + pmax = p + } } val score = max(obj_conf, 0.f)*max(pmax, 0.f) if score <= score_threshold {continue} @@ -134,7 +137,10 @@ fun nms(bboxes: yolo_detection_t [], iou_threshold: float, for k <- 0:niters { val fold ibest = -1, pmax = 0.f for i <- i0:i1 { val p = sorted_boxes[i].4 - if sorted_boxes[i].5 == cls && p > pmax {(i, p)} else {(ibest, pmax)} + if sorted_boxes[i].5 == cls && p > pmax { + ibest = i; + pmax = p + } } ignore(pmax) if ibest < 0 {break} diff --git a/lib/NN/OpQuantized.fx b/lib/NN/OpQuantized.fx index 25128129..2206a973 100644 --- a/lib/NN/OpQuantized.fx +++ b/lib/NN/OpQuantized.fx @@ -921,7 +921,7 @@ fun NCXHWCtoNCHW(inp_t: Ast.nntensor_t) } val inp_shape = inp_t.shape.shape val inp_ndims = inp_shape.size() - val fold plane_size = 1 for i <- 2:inp_ndims-1 {plane_size*inp_shape[i]} + val fold plane_size = 1 for i <- 2:inp_ndims-1 {plane_size *= inp_shape[i]} val N = inp_shape[0] val inp_C = inp_shape[1] val out_shape = [N, inp_C, \inp_shape[2:inp_ndims-1]] diff --git a/lib/Re2.fx b/lib/Re2.fx index 48196478..1105c195 100644 --- a/lib/Re2.fx +++ b/lib/Re2.fx @@ -340,7 +340,7 @@ fun compile_replace_pattern(rewrite: string): replace_pattern_t fold filtered = [] for piece <- pieces_list { val ok = match piece { | RPString simple_piece => simple_piece.length()!=0 | RPInt sub_num => true} - if (ok) {piece::filtered} else {filtered} + if (ok) {filtered = piece::filtered} } } else @@ -352,8 +352,8 @@ fun compile_replace_pattern(rewrite: string): replace_pattern_t { match piece { - | RPString simple_piece => max_sub - | RPInt sub_num => max(max_sub, sub_num) + | RPString simple_piece => {} + | RPInt sub_num => max_sub = max(max_sub, sub_num) } } replace_pattern_t {pieces = piece_lst, max_subnum = max_sub} @@ -973,10 +973,10 @@ fun compose_replacement(cloth: string, french_curve: replace_pattern_t, found_su { match piece { - | RPString simple_piece => simple_piece::rlist + | RPString simple_piece => rlist = simple_piece::rlist | RPInt sub_num => val (sub_start, sub_end) = found_subs[sub_num] - cloth[sub_start:sub_end]::rlist + rlist = cloth[sub_start:sub_end]::rlist } } join("", List.rev(rlist)) diff --git a/lib/Set.fx b/lib/Set.fx index fcd85c81..dd1481c8 100644 --- a/lib/Set.fx +++ b/lib/Set.fx @@ -336,8 +336,9 @@ fun add_list(s: 't Set.t, l: 't list): 't Set.t { val cmp = s.cmp val fold new_root = s.root, size = s.size for x <- l { - val (new_root, dsz) = add_(new_root, x, cmp) - (new_root, size+dsz) + val (new_root_, dsz) = add_(new_root, x, cmp) + new_root = new_root_; + size += dsz } t {root=new_root, size=size, cmp=cmp} } diff --git a/lib/String.fx b/lib/String.fx index 4f8e9c4d..29db262c 100644 --- a/lib/String.fx +++ b/lib/String.fx @@ -261,11 +261,13 @@ fun tokens(s: string, f: char->bool): string list { - val fold (sl, start, sep) = ([], 0, true) for c@i <- s { + val fold sl: string list = [], start = 0, sep = true for c@i <- s { if f(c) { - (if sep {sl} else {s[start:i] :: sl}, start, true) + sl = if sep {sl} else {s[start:i] :: sl} + sep = true } else { - (sl, if sep {i} else {start}, false) + start = if sep {i} else {start} + sep = false } } (if sep {sl} else {s[start:] :: sl}).rev() @@ -273,11 +275,14 @@ fun tokens(s: string, f: char->bool): string list fun split(s: string, c: char, ~allow_empty:bool): string list { - val fold (sl, start, sep) = ([], 0, true) for ci@i <- s { + val fold sl: string list = [], start = 0, sep = true for ci@i <- s { if ci == c { - (if sep && !allow_empty {sl} else {s[start:i] :: sl}, i+1, true) + sl = if sep && !allow_empty {sl} else {s[start:i] :: sl} + start = i+1 + sep = true } else { - (sl, if sep {i} else {start}, false) + start = if sep {i} else {start} + sep = false } } (if sep {sl} else {s[start:] :: sl}).rev() @@ -328,25 +333,25 @@ fun escaped(s: string, ~quotes: bool=true): string val sn = "\\n", sr = "\\r", st = "\\t", ssq = "\\\'", sdq = "\\\"", ss = "\\\\", sz = "\\0" val q = if quotes {"\""} else {""} - val fold (ll, verb) = ([:: q], 0) for c@i <- s { + val fold ll = [:: q], verb = 0 for c@i <- s { val code = ord(c) - if code >= 40 && code != 92 { (ll, verb) } + if code >= 40 && code != 92 { + } else { val (esc_s, esc) = match code { - | 10 => (sn, true) - | 13 => (sr, true) - | 9 => (st, true) - | 39 => (ssq, true) - | 34 => (sdq, true) - | 92 => (ss, true) - | 0 => (sz, true) - | _ => (sz, false) + | 10 => (sn, true) + | 13 => (sr, true) + | 9 => (st, true) + | 39 => (ssq, true) + | 34 => (sdq, true) + | 92 => (ss, true) + | 0 => (sz, true) + | _ => (sz, false) } if esc { - val ll = esc_s :: (if i > verb {s[verb:i] :: ll} else {ll}) - (ll, i+1) + ll = esc_s :: (if i > verb {s[verb:i] :: ll} else {ll}) + verb = i + 1 } - else { (ll, verb) } } } Builtins.join("", (q :: s[verb:] :: ll).rev()) diff --git a/lib/Sys.fx b/lib/Sys.fx index 0e27c76e..2b09a417 100644 --- a/lib/Sys.fx +++ b/lib/Sys.fx @@ -108,8 +108,10 @@ fun timeit(f: void -> void, ~updated_min: (void->void)?, | (true, Some(f)) => f() | _ => {} } - if iterations > 1 && i == 0 {(gmean, new_mintime)} - else { (gmean + log_t, new_mintime) } + if !(iterations > 1 && i == 0) { + gmean += log_t + } + mintime = new_mintime } val gmean = if nreal_iterations > 1 { exp(gmean/nreal_iterations)/batch } else {gmean/batch} (gmean, mintime/batch) diff --git a/lib/UTest.fx b/lib/UTest.fx index 478280b6..20098e3e 100644 --- a/lib/UTest.fx +++ b/lib/UTest.fx @@ -396,7 +396,7 @@ fun test_run_all(opts: test_options_t): void (startswithstar && name.endswith(filter)) || (endswithstar && name.startswith(filter)) || (startswithstar && endswithstar && name.find(filter) != -1) - if (!matches ^ inverse_test) {failed} + if (!matches ^ inverse_test) {} else { nexecuted += 1 println(f"{Green}[ RUN ]{Normal} {name}") @@ -420,7 +420,7 @@ fun test_run_all(opts: test_options_t): void else {f"{Red}[ FAIL ]{Normal}"} val ts_diff_str = test_duration2str((ts_end - ts_start)*ts_scale) println(f"{ok_fail} {name} ({ts_diff_str})\n") - if ok {failed} else {name :: failed} + if !ok {failed = name :: failed} } } val ts0_end = Sys.tick_count() diff --git a/test/ir/fold.ast.golden b/test/ir/fold.ast.golden index 0c8eb6f1..4333462b 100644 --- a/test/ir/fold.ast.golden +++ b/test/ir/fold.ast.golden @@ -8,12 +8,8 @@ import Char import String val fold.s@g0: int = { - var fold.__fold_result__@g1: int = 0 - for fold.x@g2 <- [1, 2, 3, 4, 5] - { - @temp val fold.acc@g3: int = fold.__fold_result__@g1 - fold.__fold_result__@g1 = (fold.acc@g3 + fold.x@g2) - } - fold.__fold_result__@g1 + var fold.acc@g1: int = 0 + for fold.x@g2 <- [1, 2, 3, 4, 5] { fold.acc@g1 = (fold.acc@g1 + fold.x@g2) } + fold.acc@g1 } -<(int -> void)>Builtins.println@g4(fold.s@g0) +<(int -> void)>Builtins.println@g3(fold.s@g0) diff --git a/test/ir/fold.fx b/test/ir/fold.fx index cb10cab0..1234ba24 100644 --- a/test/ir/fold.fx +++ b/test/ir/fold.fx @@ -1,3 +1,3 @@ // IR snapshot: fold loop -val s = fold acc = 0 for x <- [1, 2, 3, 4, 5] { acc + x } +val s = fold acc = 0 for x <- [1, 2, 3, 4, 5] { acc += x } println(s) diff --git a/test/ir/fold.k.golden b/test/ir/fold.k.golden index 532bbceb..ef65300d 100644 --- a/test/ir/fold.k.golden +++ b/test/ir/fold.k.golden @@ -1,10 +1,6 @@ -@global var _fx_g21fold____fold_result__: int = 0 +@global var _fx_g9fold__acc: int = 0 @temp val v@g0: int [] = [ 1, 2, 3, 4, 5 ] -for x@g1 <- v@g0 { - @temp val acc@g2: int = _fx_g21fold____fold_result__ - @temp val v@g3: int = acc@g2 + x@g1 - _fx_g21fold____fold_result__ = v@g3 -} -@global val _fx_g7fold__s: int = _fx_g21fold____fold_result__ +for x@g1 <- v@g0 { @temp val v@g2: int = _fx_g9fold__acc + x@g1; _fx_g9fold__acc = v@g2 } +@global val _fx_g7fold__s: int = _fx_g9fold__acc _fx_F5printv1i(_fx_g7fold__s) _fx_F12print_stringv1S("\n") diff --git a/test/ir/fold.k0.golden b/test/ir/fold.k0.golden index 7f48daef..17f1d6b3 100644 --- a/test/ir/fold.k0.golden +++ b/test/ir/fold.k0.golden @@ -1,7 +1,5 @@ -var __fold_result__@g0: int = 0 +var acc@g0: int = 0 @temp val v@g1: int [] = [ 1, 2, 3, 4, 5 ] -for x@g2 <- v@g1 { - @temp val acc@g3: int = __fold_result__@g0; @temp val v@g4: int = acc@g3 + x@g2; __fold_result__@g0 = v@g4 -} -@global val fold.s@g5: int = __fold_result__@g0 -println@g6(fold.s@g5) +for x@g2 <- v@g1 { @temp val v@g3: int = acc@g0 + x@g2; acc@g0 = v@g3 } +@global val fold.s@g4: int = acc@g0 +println@g5(fold.s@g4) diff --git a/test/myops.fx b/test/myops.fx index 86f103ad..9e852797 100644 --- a/test/myops.fx +++ b/test/myops.fx @@ -16,4 +16,4 @@ fun div3(x: 't): 't = x/(3.0 :> 't) fun add_scaled(a: float [+], b: float [+], scale: float): float [+] = [for x <- a, y <- b {x + y*scale}] -fun sum_arr(arr: 't [+]): 't = fold s=(0:>'t) for x <- arr {s+x} +fun sum_arr(arr: 't [+]): 't = fold s=(0:>'t) for x <- arr {s+=x} diff --git a/test/negative/109_import_inside_function.err b/test/negative/109_import_inside_function.err index 91cacb15..4eac3b39 100644 --- a/test/negative/109_import_inside_function.err +++ b/test/negative/109_import_inside_function.err @@ -1,3 +1,3 @@ -109_import_inside_function.fx:2:9: error: import directives can only be used at the module level - 2 | fun f() { - | ^ +109_import_inside_function.fx:3:5: error: import directives can only be used at the module level + 3 | import Math + | ^~~~~~ diff --git a/test/negative/201_if_branches_differ.err b/test/negative/201_if_branches_differ.err index ea668b71..2da8f65e 100644 --- a/test/negative/201_if_branches_differ.err +++ b/test/negative/201_if_branches_differ.err @@ -1,5 +1,5 @@ -201_if_branches_differ.fx:2:26: error: if() expression should have the same type as its branches +201_if_branches_differ.fx:2:27: error: if() expression should have the same type as its branches 2 | val a = if true {1} else {"s"} - | ^~~~ + | ^~~ 1 errors occured during type checking. diff --git a/test/negative/212_negate_string.err b/test/negative/212_negate_string.err index 92c75e3b..fc36882d 100644 --- a/test/negative/212_negate_string.err +++ b/test/negative/212_negate_string.err @@ -4,6 +4,6 @@ Candidates: __negate__('t [+]) -> 't [+] [generic: 't, __var_array__] @ Array.fx:L:C -- argument 1 of type 'string' does not match ''t [+]' 2 | val x = -"abc" - | ^~~~~~ + | ^ 1 errors occured during type checking. diff --git a/test/negative/216_break_outside_loop.err b/test/negative/216_break_outside_loop.err index 2baff7b7..44502a11 100644 --- a/test/negative/216_break_outside_loop.err +++ b/test/negative/216_break_outside_loop.err @@ -1,5 +1,5 @@ -216_break_outside_loop.fx:4:15: error: cannot use 'break' outside of loop +216_break_outside_loop.fx:4:17: error: cannot use 'break' outside of loop 4 | fun f(): void { break } - | ^~~~~~~ + | ^~~~~ 1 errors occured during type checking. diff --git a/test/negative/218_bare_return_nonvoid.err b/test/negative/218_bare_return_nonvoid.err index 21717d09..87572a48 100644 --- a/test/negative/218_bare_return_nonvoid.err +++ b/test/negative/218_bare_return_nonvoid.err @@ -1,5 +1,5 @@ -218_bare_return_nonvoid.fx:5:41: error: the return statement type void is inconsistent with the previously deduced type int of function f +218_bare_return_nonvoid.fx:5:43: error: the return statement type void is inconsistent with the previously deduced type int of function f 5 | fun f(): int { for i <- 0:3 { if i == 1 { return } else {} }; 0 } - | ^~~~~~~~~ + | ^~~~~~~ 1 errors occured during type checking. diff --git a/test/negative/230_recovery_independent.err b/test/negative/230_recovery_independent.err index 3027df90..60032116 100644 --- a/test/negative/230_recovery_independent.err +++ b/test/negative/230_recovery_independent.err @@ -1,11 +1,11 @@ -230_recovery_independent.fx:4:14: error: the appropriate match for 'undef_a' of type '' is not found. +230_recovery_independent.fx:4:16: error: the appropriate match for 'undef_a' of type '' is not found. 4 | fun a(): int { undef_a + 1 } - | ^~~~~~~~~ -230_recovery_independent.fx:5:14: error: the appropriate match for 'undef_b' of type '' is not found. + | ^~~~~~~ +230_recovery_independent.fx:5:16: error: the appropriate match for 'undef_b' of type '' is not found. 5 | fun b(): int { undef_b + 2 } - | ^~~~~~~~~ -230_recovery_independent.fx:6:14: error: the appropriate match for 'undef_c' of type '' is not found. + | ^~~~~~~ +230_recovery_independent.fx:6:16: error: the appropriate match for 'undef_c' of type '' is not found. 6 | fun c(): int { undef_c + 3 } - | ^~~~~~~~~ + | ^~~~~~~ 3 errors occured during type checking. diff --git a/test/negative/232_recovery_firewall.err b/test/negative/232_recovery_firewall.err index e75b63bc..c27fcea3 100644 --- a/test/negative/232_recovery_firewall.err +++ b/test/negative/232_recovery_firewall.err @@ -1,6 +1,6 @@ -232_recovery_firewall.fx:6:20: error: the appropriate match for 'undefined_thing' of type '' is not found. +232_recovery_firewall.fx:6:22: error: the appropriate match for 'undefined_thing' of type '' is not found. 6 | fun f(x: int): int { undefined_thing + x } - | ^~~~~~~~~~~~~~~~~ + | ^~~~~~~~~~~~~~~ 232_recovery_firewall.fx:8:19: error: the appropriate match for 'f' of type '(int -> string)' is not found. Candidates: f(int) -> int @ 232_recovery_firewall.fx:6:5 -- the return type or the signature as a whole does not match diff --git a/test/negative/234_recovery_maxerrors.err b/test/negative/234_recovery_maxerrors.err index f090ee97..d9de6026 100644 --- a/test/negative/234_recovery_maxerrors.err +++ b/test/negative/234_recovery_maxerrors.err @@ -1,9 +1,9 @@ -234_recovery_maxerrors.fx:5:14: error: the appropriate match for 'undef_a' of type 'int' is not found. +234_recovery_maxerrors.fx:5:16: error: the appropriate match for 'undef_a' of type 'int' is not found. 5 | fun a(): int { undef_a } - | ^~~~~~~~~ -234_recovery_maxerrors.fx:6:14: error: the appropriate match for 'undef_b' of type 'int' is not found. + | ^~~~~~~ +234_recovery_maxerrors.fx:6:16: error: the appropriate match for 'undef_b' of type 'int' is not found. 6 | fun b(): int { undef_b } - | ^~~~~~~~~ + | ^~~~~~~ 2 further diagnostic(s) suppressed (-fmax-errors=2). diff --git a/test/negative/236_parallel_continue.err b/test/negative/236_parallel_continue.err index 64abf38f..d5ad8c27 100644 --- a/test/negative/236_parallel_continue.err +++ b/test/negative/236_parallel_continue.err @@ -1,5 +1,5 @@ -236_parallel_continue.fx:6:41: error: cannot use 'continue' inside a '@parallel' loop +236_parallel_continue.fx:6:43: error: cannot use 'continue' inside a '@parallel' loop 6 | @parallel for i <- 0:10 { if i % 2 == 0 { continue } else {}; a[i] = i } - | ^~~~~~~~~~ + | ^~~~~~~~ 1 errors occured during type checking. diff --git a/test/negative/503_break_outside_loop.err b/test/negative/503_break_outside_loop.err index 8c0dd450..e2e3580e 100644 --- a/test/negative/503_break_outside_loop.err +++ b/test/negative/503_break_outside_loop.err @@ -1,5 +1,5 @@ -503_break_outside_loop.fx:2:9: error: cannot use 'break' outside of loop +503_break_outside_loop.fx:2:11: error: cannot use 'break' outside of loop 2 | fun f() { break } - | ^~~~~~~ + | ^~~~~ 1 errors occured during type checking. diff --git a/test/negative/504_continue_outside_loop.err b/test/negative/504_continue_outside_loop.err index 534fef1b..4ad9a8bf 100644 --- a/test/negative/504_continue_outside_loop.err +++ b/test/negative/504_continue_outside_loop.err @@ -1,5 +1,5 @@ -504_continue_outside_loop.fx:2:9: error: cannot use 'continue' outside of loop +504_continue_outside_loop.fx:2:11: error: cannot use 'continue' outside of loop 2 | fun f() { continue } - | ^~~~~~~~~~ + | ^~~~~~~~ 1 errors occured during type checking. diff --git a/test/negative/701_exception_in_function.err b/test/negative/701_exception_in_function.err index 4eed2834..c1befd23 100644 --- a/test/negative/701_exception_in_function.err +++ b/test/negative/701_exception_in_function.err @@ -1,3 +1,3 @@ -701_exception_in_function.fx:2:9: error: exceptions can only be defined at module level - 2 | fun f() { - | ^ +701_exception_in_function.fx:3:5: error: exceptions can only be defined at module level + 3 | exception LocalErr + | ^~~~~~~~~ diff --git a/test/negative/707_tuple_assign_non_lvalue.err b/test/negative/707_tuple_assign_non_lvalue.err new file mode 100644 index 00000000..98606f69 --- /dev/null +++ b/test/negative/707_tuple_assign_non_lvalue.err @@ -0,0 +1,3 @@ +707_tuple_assign_non_lvalue.fx:3:7: error: this element is not assignable in a tuple assignment + 3 | (a, b + 1) = (2, 3) + | ^ diff --git a/test/negative/707_tuple_assign_non_lvalue.fx b/test/negative/707_tuple_assign_non_lvalue.fx new file mode 100644 index 00000000..84885647 --- /dev/null +++ b/test/negative/707_tuple_assign_non_lvalue.fx @@ -0,0 +1,4 @@ +// expect: not assignable in a tuple assignment +var a = 1 +(a, b + 1) = (2, 3) +println(a) diff --git a/test/negative/708_fold2_unused_accumulator.err b/test/negative/708_fold2_unused_accumulator.err new file mode 100644 index 00000000..d83abea2 --- /dev/null +++ b/test/negative/708_fold2_unused_accumulator.err @@ -0,0 +1,5 @@ +708_fold2_unused_accumulator.fx:6:14: warning: 'fold' accumulator 's' is never assigned in the body, so the fold has no effect. The body must UPDATE the accumulator (e.g. 's = ' or 's += ...'); write 's = _' to silence + 6 | val s = fold s = 0 for x <- [1, 2, 3] { println(x) } + | ^ + +1 warning generated (treated as errors due to -Werror). diff --git a/test/negative/708_fold2_unused_accumulator.fx b/test/negative/708_fold2_unused_accumulator.fx new file mode 100644 index 00000000..103b37b4 --- /dev/null +++ b/test/negative/708_fold2_unused_accumulator.fx @@ -0,0 +1,7 @@ +// expect: never assigned +// flags: -Werror +// fold-1 Phase 1: a fold whose accumulator is never assigned in the body +// is almost certainly a mistake; warn (promoted to an error here via -Werror). +// Writing 's = _' in the body would silence it. +val s = fold s = 0 for x <- [1, 2, 3] { println(x) } +println(s) diff --git a/test/negative/709_fold_old_style_body.err b/test/negative/709_fold_old_style_body.err new file mode 100644 index 00000000..9dbd2249 --- /dev/null +++ b/test/negative/709_fold_old_style_body.err @@ -0,0 +1,13 @@ +709_fold_old_style_body.fx:5:14: warning: 'fold' accumulator 's' is never assigned in the body, so the fold has no effect. The body must UPDATE the accumulator (e.g. 's = ' or 's += ...'); write 's = _' to silence + 5 | val s = fold s = 0 for x <- [1, 2, 3] { s + x } + | ^ +709_fold_old_style_body.fx:5:43: error: improper type of the arithmetic operation result + 5 | val s = fold s = 0 for x <- [1, 2, 3] { s + x } + | ^ +709_fold_old_style_body.fx:6:9: error: the appropriate match for 's' of type '' is not found. + 6 | println(s) + | ^ + +2 errors occured during type checking. + +1 warning generated. diff --git a/test/negative/709_fold_old_style_body.fx b/test/negative/709_fold_old_style_body.fx new file mode 100644 index 00000000..61de2ef8 --- /dev/null +++ b/test/negative/709_fold_old_style_body.fx @@ -0,0 +1,6 @@ +// expect: must UPDATE the accumulator +// fold-1 flip: after `fold` became the new imperative form, an OLD-style body +// that yields a value instead of updating the accumulator is a mistake; the +// 'never assigned' diagnostic points the way ('s += x' here). +val s = fold s = 0 for x <- [1, 2, 3] { s + x } +println(s) diff --git a/test/rand/test_rand_array.fx b/test/rand/test_rand_array.fx index c0946e3b..0c390f0e 100644 --- a/test/rand/test_rand_array.fx +++ b/test/rand/test_rand_array.fx @@ -146,7 +146,7 @@ TEST("rand.array.fold", fun() { val rng = mk_rng(seed) val n = next_int(rng, 0, 50) val a = rand_iarray(rng, n, -1000, 1000) - val got = fold acc = 0 for x <- a {acc + x} + val got = fold acc = 0 for x <- a {acc += x} var rf = 0 for x <- a {rf += x} if got != rf {println(f" [repro] {name} case={i} seed={seed} n={n}")} diff --git a/test/test_all.fx b/test/test_all.fx index fe57a466..64e4ca63 100644 --- a/test/test_all.fx +++ b/test/test_all.fx @@ -17,6 +17,8 @@ import test_mandelbrot import test_matrix import test_closure import test_ctrlflow +import test_tuple_assign +import test_fold2 import test_re @ifdef HAVE_RE2 import test_re2 diff --git a/test/test_array.fx b/test/test_array.fx index 98af9d5b..031dec6c 100644 --- a/test/test_array.fx +++ b/test/test_array.fx @@ -145,9 +145,7 @@ TEST("array.bounding_box", fun() { val fold minx = 1000000, maxx = -1, miny = 1000000, maxy = -1 for pix@(y, x) <- image { if pix != 0 { - (min(minx, x), max(maxx, x), min(miny, y), max(maxy, y)) - } else { - (minx, maxx, miny, maxy) + (minx, maxx, miny, maxy) = (min(minx, x), max(maxx, x), min(miny, y), max(maxy, y)) } } if maxx >= 0 { (minx, miny, maxx-minx+1, maxy-miny+1) } @@ -161,6 +159,6 @@ TEST("array.bounding_box", fun() { 0, 0, 0, 0, 0, 0, 0, 0; 0, 0, 0, 1, 0, 0, 0, 0 ]) - + EXPECT_EQ(bounding_box(img), (2, 1, 5, 4)) }) diff --git a/test/test_btree.fx b/test/test_btree.fx index c29fdacd..64099c95 100644 --- a/test/test_btree.fx +++ b/test/test_btree.fx @@ -34,7 +34,7 @@ val report = [ @parallel for i <- 0 : (max_depth - min_depth) / 2 + 1 val d = min_depth + i * 2 val niter = 1 << (max_depth - d + min_depth) val fold c = 0 for i <- 0:niter { - c + check(make(d)) + c += check(make(d)) } (niter, d, c) }] diff --git a/test/test_ds.fx b/test/test_ds.fx index 7d6c13bd..8e92d430 100644 --- a/test/test_ds.fx +++ b/test/test_ds.fx @@ -39,7 +39,7 @@ TEST("ds.set", fun() EXPECT_EQ(`i12.list()`, [:: -2, -1, 4 ]) EXPECT_EQ(`i12.size`, 3) - val fold sum0 = 0 for i <- u12.list() {sum0 + i} + val fold sum0 = 0 for i <- u12.list() {sum0 += i} val sum1 = u12.foldl(fun (i, s) {s + i}, 0) val sum2 = u12.foldr(fun (i, s) {s + i}, 0) EXPECT_EQ(`sum1`, sum0) @@ -88,7 +88,7 @@ TEST("ds.map", fun() val words = poem.tokens(fun (c) {c.isspace() || c == '.' || c == ','}) val fold wcounter = (Map.empty(scmp) : si_map) for w <- words { - wcounter.add(w, wcounter.find(w, 0)+1) + wcounter = wcounter.add(w, wcounter.find(w, 0)+1) } val ll = [:: ("A", 12), ("Christmas", 12), ("Eight", 5), ("Eleven", 2), @@ -109,7 +109,7 @@ TEST("ds.map", fun() // An alternative, faster way to increment word counters is to use Map.update() function, // where we search for each word just once val fold wcounter2 = (Map.empty(scmp) : si_map) for w <- words { - wcounter2.update(w, + wcounter2 = wcounter2.update(w, fun (_: string, ci_opt: int?) { | (_, Some(ci)) => ci + 1 @@ -119,14 +119,18 @@ TEST("ds.map", fun() EXPECT_EQ(`wcounter2.list()`, ll) - val total_words_ref = fold c=0 for (_, ci) <- ll {c+ci} + val total_words_ref = fold c=0 for (_, ci) <- ll {c+=ci} val total_words = wcounter.foldl(fun (_, ci, c) {c + ci}, 0) EXPECT_EQ(`total_words`, total_words_ref) val fold wcounter_odd=wcounter, ll_odd=[] for (w, c) <- ll { - if c % 2 == 0 {(wcounter_odd.remove(w), ll_odd)} - else {(wcounter_odd, (w, c) :: ll_odd)} + if c % 2 == 0 { + wcounter_odd = wcounter_odd.remove(w) + } + else { + ll_odd = (w, c) :: ll_odd + } } EXPECT_EQ(`wcounter_odd.list()`, `ll_odd.rev()`) @@ -202,7 +206,7 @@ TEST("ds.tuple_hash", fun() val m = Hashmap.empty(16, (0, 0), -1) for i <- 0:200 {m.add((i, i+1), i*1000)} val nbad = fold nbad = 0 for i <- 0:200 { - nbad + (if m.find_opt((i, i+1)).value_or(-1) == i*1000 {0} else {1}) + nbad += (if m.find_opt((i, i+1)).value_or(-1) == i*1000 {0} else {1}) } EXPECT_EQ(`nbad`, 0) EXPECT_EQ(`m.size()`, 200) diff --git a/test/test_fold2.fx b/test/test_fold2.fx new file mode 100644 index 00000000..8078a094 --- /dev/null +++ b/test/test_fold2.fx @@ -0,0 +1,106 @@ +/* + This file is a part of ficus language project. + See ficus/LICENSE for the licensing terms +*/ + +// fold-1: the new imperative fold. It is a thin sugar over `for`: +// fold = for { body } +// ==> { var = init; for { body }; } +// The accumulator is a real mutable var, visible and assignable in the body; +// break/continue/return fall out for free (it is an ordinary `for`). See +// compiler/Parser.fx (transform_new_fold_exp). + +from UTest import * + +// single accumulator, `op=` update. +TEST("fold2.single_sum", fun() { + val s = fold s = 0 for x <- [1, 2, 3, 4] { s += x } + EXPECT_EQ(s, 10) +}) + +// single accumulator, plain `s = E` update. +TEST("fold2.single_assign", fun() { + val p = fold p = 1 for x <- [1, 2, 3, 4] { p = p * x } + EXPECT_EQ(p, 24) +}) + +// tuple accumulator with the Fibonacci simultaneity case (the body uses a +// simultaneous tuple assignment from Phase 0.1). +TEST("fold2.tuple_fibonacci", fun() { + val (a, b) = fold (a, b) = (0, 1) for _ <- 0:8 { (a, b) = (b, a + b) } + EXPECT_EQ(a, 21) + EXPECT_EQ(b, 34) +}) + +// tuple accumulator, independent per-component updates. +TEST("fold2.tuple_minmax", fun() { + val (mn, mx) = fold (mn, mx) = (1000, -1000) for x <- [3, 1, 4, 1, 5, 9, 2, 6] { + if x < mn { mn = x } + if x > mx { mx = x } + } + EXPECT_EQ(mn, 1) + EXPECT_EQ(mx, 9) +}) + +// break inside the body is legal (plain for) and stops the fold. +TEST("fold2.break_in_body", fun() { + val first = fold r = -1 for x@i <- [5, 6, 7, 8] { if x == 7 { r = i; break } } + EXPECT_EQ(first, 2) +}) + +// continue inside the body skips the remaining updates of the iteration. +TEST("fold2.continue_in_body", fun() { + val s = fold s = 0 for x <- [1, 2, 3, 4, 5, 6] { + if x % 2 == 0 { continue } + s += x + } + EXPECT_EQ(s, 9) // 1 + 3 + 5 +}) + +// a valued return from within the body returns from the enclosing function, +// carrying the accumulated value. +TEST("fold2.return_in_body", fun() { + fun sum_until_neg(a: int []): int { + fold s = 0 for x <- a { if x < 0 { return s }; s += x } + } + EXPECT_EQ(sum_until_neg([1, 2, 3, -1, 100]), 6) // stops at the -1 + EXPECT_EQ(sum_until_neg([1, 2, 3]), 6) // no negative: full sum +}) + +// nested fold: the inner fold is an ordinary sub-expression whose value +// feeds the outer accumulator. +TEST("fold2.nested", fun() { + val total = fold acc = 0 for i <- 0:3 { + val row = fold t = 0 for j <- 0:3 { t += i * 10 + j } + acc += row + } + EXPECT_EQ(total, 99) // sum over i,j of (i*10+j) +}) + +// the inner fold's body may assign the OUTER accumulator directly (the outer +// accumulator is just a var in scope) — ordinary lexical scoping. +TEST("fold2.nested_inner_assigns_outer", fun() { + val count = fold c = 0 for i <- 0:3 { + ignore(fold seen = 0 for j <- 0:3 { c += 1; seen += 1 }) + } + EXPECT_EQ(count, 9) // c incremented 3*3 times +}) + +// NEW semantics lock: a closure in the body captures the accumulator VAR (it +// sees the final value), NOT a per-iteration immutable snapshot as old fold did. +TEST("fold2.closure_captures_var", fun() { + val (s, fns) = fold (s, fns) = (0, ([]: (void -> int) list)) for x <- [1, 2, 3] { + s += x + fns = (fun () { s }) :: fns + } + EXPECT_EQ(s, 6) + EXPECT_EQ([:: for f <- fns { f() }], [:: 6, 6, 6]) // all see the final var +}) + +// the accumulator is an ordinary value after the fold; a `val`-bound result is +// immutable (this just documents that the whole-fold value binds as usual). +TEST("fold2.result_is_plain_value", fun() { + val n = fold n = 0 for x <- [10, 20, 30] { n += x } + EXPECT_EQ(n, 60) + EXPECT_EQ(n * 2, 120) +}) diff --git a/test/test_nbody.fx b/test/test_nbody.fx index b5376307..14b05461 100644 --- a/test/test_nbody.fx +++ b/test/test_nbody.fx @@ -76,7 +76,7 @@ val bodies = [ sun, jupiter, saturn, uranus, neptune ] fun offsetMomentum() { bodies[0].vel = fold p=Vec{x=0., y=0., z=0.} for body <- bodies { - p - body.vel * (body.mass / SolarMass) + p -= body.vel * (body.mass / SolarMass) } } @@ -86,13 +86,13 @@ fun energy() fold e = 0. for i <- 0:n { val bi = bodies[i] - e + 0.5 * bi.mass * dot(bi.vel, bi.vel) - + e += 0.5 * bi.mass * dot(bi.vel, bi.vel) - (fold e1 = 0. for j <- (i+1):n { val bj = bodies[j] val diff = bi.pos - bj.pos val distance = sqrt(distance2(diff)) - e1 + (bi.mass * bj.mass) / distance + e1 += (bi.mass * bj.mass) / distance }) } } diff --git a/test/test_nn_quant.fx b/test/test_nn_quant.fx index 2fbdf968..903f200a 100644 --- a/test/test_nn_quant.fx +++ b/test/test_nn_quant.fx @@ -95,7 +95,7 @@ TEST("NN.Quantized.add", fun() val y_ref = [for n <- 0:N for c <- 0:C { val xsc = x_scale[0] val xzp = x_zp[0] - val fold s = 0. for i <- 0:H for j <- 0:W {s + (x[n, c, i, j] - xzp)*xsc} + val fold s = 0. for i <- 0:H for j <- 0:W {s += (x[n, c, i, j] - xzp)*xsc} sat_uint8(s/(y_scale[0]*H*W) + y_zp[0]) }].reshape(N, C, 1, 1) val y = array(N*C, 0u8).reshape(N, C, 1, 1) diff --git a/test/test_resolve.fx b/test/test_resolve.fx index 8dc05718..d7d16cd2 100644 --- a/test/test_resolve.fx +++ b/test/test_resolve.fx @@ -101,7 +101,7 @@ check("fb007.s2_cplx_times_int", c->re + c->im, 4) // in miniature.) The true deferral of under-constrained calls is still // session-2 scope; TypVarCollection removes this particular collision class. fun build(l: int list): int list { - val fold prog = [] for x <- l { [:: x*x] + prog } + val fold prog = [] for x <- l { prog = [:: x*x] + prog } prog.rev() } check("fb007.s3_free_accumulator", build([:: 1, 2, 3]).hd(), 1) diff --git a/test/test_spectralnorm.fx b/test/test_spectralnorm.fx index 3507da13..2a4dcc21 100644 --- a/test/test_spectralnorm.fx +++ b/test/test_spectralnorm.fx @@ -22,7 +22,7 @@ fun Au(u: double[]) [for i <- 0:N { fold t = 0. for j <- 0:N { - t + A(i, j) * u[j] + t += A(i, j) * u[j] } }] } @@ -33,7 +33,7 @@ fun Atu(u: double[]) [for i <- 0:N { fold t = 0. for j <- 0:N { - t + A(j, i) * u[j] + t += A(j, i) * u[j] } }] } @@ -42,10 +42,19 @@ fun AtAu(u: double[]) = Atu(Au(u)) fun spectralnorm(n: int) { - val fold (u, v) = (array(n, 1.), array(0, 0.)) - for i <- 0:10 { val v = AtAu(u); (AtAu(v), v) } - val fold (vBv, vv) = (0., 0.) - for ui <- u, vi <- v { (vBv + ui*vi, vv + vi*vi) } + var u = array(n, 1.), v = array(0, 0.) + for i <- 0:10 { + // for Claude: when you see that local values shadow accumulators, + // you can simply mark it for manual conversion, + // or maybe introduce temporary name, just make it simple ('t' or 'temp', something like that) + val t = AtAu(u) + (u, v) = (AtAu(t), t) + } + var vBv = 0., vv = 0. + for ui <- u, vi <- v { + vBv += ui*vi; + vv += vi*vi + } sqrt(vBv/vv) } diff --git a/test/test_tuple_assign.fx b/test/test_tuple_assign.fx new file mode 100644 index 00000000..a1084ff8 --- /dev/null +++ b/test/test_tuple_assign.fx @@ -0,0 +1,97 @@ +/* + This file is a part of ficus language project. + See ficus/LICENSE for the licensing terms +*/ + +// fold-1 Phase 0: simultaneous tuple assignment `(a, b) = (b, a + b)`. +// Parse-time desugar: the RHS materializes ONCE into a temp before any store +// (that is the simultaneity), stores run left-to-right, a '_' component emits +// no store but the RHS is still fully evaluated. See compiler/Parser.fx +// (make_tuple_assign); the swap cases (array_swap/scalar_swap/rotate3) lock the +// C-gen movement-unsafe-read fix, docs/found_bugs.md FB-023. + +from UTest import * + +// simultaneity: the classic Fibonacci step must use OLD a and OLD b. +TEST("tuple_assign.fibonacci", fun() { + var a = 0, b = 1 + for _ <- 0:8 { (a, b) = (b, a + b) } + EXPECT_EQ(a, 21) + EXPECT_EQ(b, 34) +}) + +// scalar swap: both components are bare identifiers -- the temp must NOT be a +// dealiasable temp-val, else `a = b; b = a` collapses to both == old b. +TEST("tuple_assign.scalar_swap", fun() { + var a = 10, b = 20 + (a, b) = (b, a) + EXPECT_EQ(a, 20) + EXPECT_EQ(b, 10) +}) + +// array-element swap: the aliasing case that broke a temp-val flattening +// (read of arr[i] must happen before the store to arr[i]). +TEST("tuple_assign.array_swap", fun() { + var arr = [1, 2, 3, 4] + val i = 0, j = 3 + (arr[i], arr[j]) = (arr[j], arr[i]) + EXPECT_EQ(arr, [4, 2, 3, 1]) +}) + +// a longer rotation across array elements. +TEST("tuple_assign.rotate3", fun() { + var a = [10, 20, 30] + (a[0], a[1], a[2]) = (a[1], a[2], a[0]) + EXPECT_EQ(a, [20, 30, 10]) +}) + +// a memory read hidden inside a COMPOUND rhs component (an if-expression): +// the movement-unsafe-read check must recurse into it, not just look at the top +// form, or the read is inlined past the store. Locks the recursive fold_kexp. +TEST("tuple_assign.compound_component", fun() { + var arr = [5, 6] + val cond = true + (arr[0], arr[1]) = (if cond {arr[1]} else {0}, if cond {arr[0]} else {0}) + EXPECT_EQ(arr, [6, 5]) +}) + +// nested tuple LHS recurses. +TEST("tuple_assign.nested", fun() { + var x = 0, y = 0, z = 0 + ((x, y), z) = ((10, 20), 30) + EXPECT_EQ(x, 10); EXPECT_EQ(y, 20); EXPECT_EQ(z, 30) +}) + +// RHS may be any tuple-typed expression, not only a literal. +TEST("tuple_assign.call_rhs", fun() { + fun divmod(p: int, q: int) = (p / q, p % q) + var d = 0, m = 0 + (d, m) = divmod(17, 5) + EXPECT_EQ(d, 3); EXPECT_EQ(m, 2) +}) + +// '_' component: no store is emitted, but the RHS is evaluated in full. +TEST("tuple_assign.underscore_component", fun() { + var log = 0 + fun eff(v: int) { log += 1; (v, v * v) } + var q = 0 + (q, _) = eff(7) + EXPECT_EQ(q, 7) + EXPECT_EQ(log, 1) // the effectful RHS ran exactly once +}) + +// degenerate all-'_' tuple: evaluate for effects only. +TEST("tuple_assign.all_underscore", fun() { + var log = 0 + fun eff(v: int) { log += 1; (v, v) } + (_, _) = eff(9) + EXPECT_EQ(log, 1) +}) + +// bare `_ = expr`: evaluate for effects, discard the value. +TEST("tuple_assign.bare_underscore", fun() { + var log = 0 + fun eff(v: int) { log += 1; (v, v) } + _ = eff(11) + EXPECT_EQ(log, 1) +}) diff --git a/tools/opencv/hdr_parser.fx b/tools/opencv/hdr_parser.fx index 6af2c69d..c8ba34e7 100644 --- a/tools/opencv/hdr_parser.fx +++ b/tools/opencv/hdr_parser.fx @@ -136,7 +136,7 @@ fun parse_err(self: hdr_parser_t, msg: string) } fun batch_replace(s0: string, pairs: (string, string) list) = - fold s=s0 for (f, t) <- pairs {s.replace(f, t)} + fold s=s0 for (f, t) <- pairs {s = s.replace(f, t)} /* Finds the next token from the 'tlist' in the input 's', starting from position 'p'. @@ -145,7 +145,11 @@ Returns the first occurred token and its position, or ("", len(s)) when no token fun hdr_parser_t.find_next_token(s: string, tlist: string list, pos0: int): (string, int) = fold token="", tpos=length(s) for t <- tlist { val pos = s.find(t, pos0) - if 0 <= pos < tpos {(t, pos)} else {(token, tpos)} + if 0 <= pos < tpos { + token = t; + tpos = pos + } + // for Claude { token = token; tpos = tpos } is simply removed } /* @@ -360,8 +364,8 @@ fun parse(hname: string, ~wrap_mode:bool=true) } if block_type == BlockNamespace { val fold nested = [] for b <- self.block_stack { - | {block_type=BlockNamespace, block_name} => block_name :: nested - | _ => nested + | {block_type=BlockNamespace, block_name} => nested = block_name :: nested + | _ => {} } self.namespaces.add(".".join((name :: nested).rev())) }