diff --git a/Makefile b/Makefile index 07984f27..e86f164d 100644 --- a/Makefile +++ b/Makefile @@ -32,6 +32,7 @@ PARITY_EXAMPLES := \ error_handling \ json_ops \ toml_ops \ + yaml_ops \ http_parsing \ uuid_ops \ matrix_math \ @@ -1140,7 +1141,9 @@ MEMCHECK_CASES := \ tests/cases/test_spawn_in_loop_capture \ tests/cases/test_result_ok_reclaim \ tests/cases/test_os_thread_spawn_reclaim \ - tests/cases/test_await_ownership + tests/cases/test_await_ownership \ + tests/cases/test_yaml_structure tests/cases/test_yaml_malformed \ + tests/cases/test_yaml_derived_decode memcheck: build @echo "--- memcheck (valgrind, curated) ---" diff --git a/README.md b/README.md index dfd44ea9..a870789a 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ small language carry on its own back? the answer so far: collector, but a struct graph can break its own cycles with a `weak` field — mark the back edge `weak` and a parent/child ring reclaims. - **the stdlib doesn't shell out.** TLS 1.3, http/1.1 and http/2, websockets, json, - toml, csv, tar, zip, gzip (interops with system gzip in both + toml, yaml, csv, tar, zip, gzip (interops with system gzip in both directions), sha-256, a linear-time regex engine — written in pith. when the language couldn't express something well, that became a language feature to build rather than a binding to hide behind. @@ -142,13 +142,14 @@ with idioms is [docs/idiomatic_pith.md](docs/idiomatic_pith.md). ## the standard library, briefly -80 modules, ~36,000 lines, all pith. the areas: io and filesystems +81 modules, ~37,000 lines, all pith. the areas: io and filesystems (fs, glob, path, process), networking (tcp, dns, url, http, http2, websocket, tls, sse), databases (sql, postgres, mysql, redis — pure-pith wire protocols with tls, prepared statements, and pooling — plus db, a pooled high-level layer over a connection url, see [docs/db.md](docs/db.md)), data (json, -toml, csv, config, table), bytes and crypto (hash, checksum, encoding, +toml, yaml, csv, config, table, see [docs/yaml.md](docs/yaml.md) for the +yaml subset), bytes and crypto (hash, checksum, encoding, crypto, bits, binary), compression and archives (gzip/zlib, tar, zip), text (regex, scanner, fmt), app plumbing (log, metrics, cli, env, testing, diagnostic, time, datetime, rand, uuid, math), observability (trace, diff --git a/docs/yaml.md b/docs/yaml.md new file mode 100644 index 00000000..0f1666cb --- /dev/null +++ b/docs/yaml.md @@ -0,0 +1,194 @@ +# yaml + +`std.yaml` reads yaml into a tree of nodes you address by opaque `Int` +handles, the same shape `std.json` and `std.toml` use. the three are +meant to feel like siblings: the accessors are spelled the same way, +they share the node-pool scope discipline, and typed decoding works the +same in all three. + +```pith +import std.yaml as yaml + +root := yaml.parse(text) +name := yaml.get_string(root, "name") +server := yaml.get_map(root, "server") +host := yaml.get_string(server, "host") +``` + +`parse` returns `-1` when the document is invalid and `last_error()` +says why. `parse_required` turns that into a `YamlDecodeError` you can +propagate with `!`. + +## what is supported + +yaml 1.2 is a much bigger language than a configuration file needs, so +this parser implements the part configuration actually uses: + +- block mappings nested by indentation, and block sequences written + with `-`, in any combination. a sequence of mappings, a mapping of + sequences, a sequence of sequences. +- the compact form where a mapping starts on the dash, `- name: a`, + with the rest of the mapping lined up under `name`. +- a sequence written at its key's own indentation: + + ```yaml + ports: + - 80 + - 443 + ``` + +- flow collections, `{a: 1, b: 2}` and `[1, 2, 3]`, nested inside each + other and inside block structure. a flow collection has to open and + close on one line. +- plain scalars, resolved against the yaml 1.2 core schema. `null`, `~` + and an empty value are null. `true` and `false`, along with their + `True` and `TRUE` spellings, are booleans. integers can be decimal, + `0x` or `0o`. floats are decimal with an optional exponent. anything + else is a string. +- single-quoted scalars, where `''` is a literal quote and a backslash + is just a backslash. +- double-quoted scalars, with the `\n`, `\t`, `\r`, `\0`, `\a`, `\b`, + `\f`, `\v`, `\e`, `\"`, `\\`, `\/` and `\uXXXX` escapes. `\uXXXX` + is written out as utf-8. +- comments, whole-line and trailing. a `#` only starts a comment at the + beginning of a line or after a space, so `tag: a#b` keeps its hash, + and a `#` inside a quoted scalar is content. +- block scalars, literal `|` and folded `>`, with the strip (`-`) and + keep (`+`) chomping indicators. clipping is the default. +- multiple documents separated by `---`, with `...` as an optional end + marker. `parse` returns the first document; `parse_all` returns a + sequence node holding one root per document. +- a document that is a single scalar, or that is empty, which is null. + +### about `yes` and `no` + +`yes`, `no`, `on` and `off` are strings here, not booleans. that mapping +was a yaml 1.1 rule and the 1.2 core schema dropped it. it is also the +reason the country code `NO` famously reads as false in older parsers. +if you want a boolean, write `true` or `false`. + +## what is not supported + +each of these is refused with a message that names it. none of them is +quietly mis-parsed. a file that means one thing here and another thing +in every other parser is worse than a file that fails to load. + +| feature | why it is out | +| --- | --- | +| anchors and aliases (`&a`, `*a`) | alias expansion is the billion-laughs amplification vector: a few kilobytes of aliases expand into gigabytes of nodes. a config parser that expands them hands an attacker a denial of service, and a depth cap does not help, because the blowup is in width. doing it safely needs a hard expansion budget, which is a different design. | +| merge keys (`<<`) | merging is defined in terms of aliases, so it goes with them. | +| tags (`!!str`, `!Foo`) | a tag selects a type resolution this parser does not have. a config file that needs one is really asking for a schema, and `decode[T]` is the answer to that here. | +| complex keys (`? `) | a key that is itself a collection has no representation in a `Map[String, _]` shaped tree. | +| directives (`%YAML`, `%TAG`) | `%TAG` only matters with tags, and `%YAML` would be a version claim this parser cannot honour. | +| multi-line plain scalars | a plain scalar continued on the next line reads as an indentation error instead. dropping the continuation would silently change what the document says. use `>` when you want a folded string. | +| explicit block-scalar indentation indicators (`\|2`) | rare, and the automatic indentation detection covers what people write. | +| flow collections spanning lines | a `{` or `[` has to close on the line it opens on. | +| content on a `---` line | write the document on the lines after the marker. | + +tabs used for indentation are refused too. that one is not a pith +restriction, yaml itself forbids them, but it is worth saying out loud +because the failure is otherwise baffling. + +## limits + +every quantity the input controls is bounded, and each bound is a module +constant you can read for yourself: + +| constant | value | what it stops | +| --- | --- | --- | +| `MAX_DOCUMENT_BYTES` | 4 MiB | an oversized document, refused before any parsing happens. the same ceiling `std.net.grpc` puts on a message. | +| `MAX_NESTING_DEPTH` | 64 | a file of nothing but indentation or brackets. indentation drives recursion here, and a stack overflow is a `SIGSEGV` that no error handler can catch, so the parser has to stop short of one rather than recover from it. | +| `MAX_NODES` | 262144 | a document under the size cap that still asks for an enormous number of tiny nodes. | +| `MAX_COLLECTION_ENTRIES` | 65536 | one mapping or sequence growing without bound. | +| `MAX_SCALAR_BYTES` | 1 MiB | one scalar, including a folded block scalar's body. | +| `MAX_KEY_BYTES` | 4096 | a document that is one enormous key. | + +## accessors + +lookups take a mapping handle and a key: + +```pith +yaml.get_value(root, "port") # the child handle, or -1 +yaml.get_string(root, "name") # "" when missing or another kind +yaml.get_int(root, "port") +yaml.get_float(root, "ratio") +yaml.get_bool(root, "tls") +yaml.get_string_or(root, "name", "unnamed") +yaml.get_int_or(root, "port", 8080) +yaml.get_map(root, "server") # get_table is the same thing +yaml.get_array(root, "ports") +yaml.keys(root) # in document order +yaml.has(root, "port") +``` + +`require_string`, `require_int` and `require_bool` are the same lookups +with a `YamlDecodeError` instead of a fallback. + +sequence elements have no key to look them up by, so read them straight +off the handle: + +```pith +ports := yaml.get_array(root, "ports") +mut i := 0 +while i < yaml.array_len(ports): + print(yaml.scalar_int(yaml.array_get(ports, i))) + i = i + 1 +``` + +`scalar_string`, `scalar_int`, `scalar_float` and `scalar_bool` all +return a zero value for the wrong kind. `type_of` gives the kind — +`"map"`, `"seq"`, `"string"`, `"int"`, `"float"`, `"bool"`, `"null"`, or +`"invalid"` for a handle that names no live node — and `is_null` asks +about the null kind directly. + +## typed decoding + +`decode[T]` fills a struct with public `String`, `Int` and `Bool` fields +straight out of a mapping. optional fields, field defaults and nested +structs all work: + +```pith +struct Server: + pub host: String + pub port: Int = 8080 + pub tls: Bool = false + +struct App: + pub name: String + pub server: Server + +app := yaml.decode_text[App](text)! +``` + +the variants match `std.toml`. `decode` takes a handle, `decode_text` a +string, `decode_file` a path, and `decode_path`, `decode_text_path` and +`decode_file_path` each take a dotted path naming a nested mapping. the +text and file forms own the parse they run, so they reclaim their pool +nodes before returning. + +## the node pool + +nodes live in a per-task pool in threadlocal storage. a program that +reads its configuration once at startup can ignore all of this. a +program that parses a document per request cannot. nothing gives the +nodes back on its own, so the pool grows for the life of the task. + +bracket the parse with a scope: + +```pith +scope := yaml.open_scope() +defer yaml.close_scope(scope) +root := yaml.parse(body) +``` + +copy what you need out of the tree before the scope closes. scopes nest +and close innermost-first; closing an outer scope also closes any inner +one still open, because an arena can only give back a suffix of what it +handed out. + +node ids are never reused. a handle held past its scope reads as +`"invalid"` instead of aliasing whatever document landed on that id +next, which turns a lifetime mistake into a visible one rather than a +silent wrong answer. `pool_live_nodes()` reports current occupancy, and +that is what a test should assert on. the id counter is not a measure of +occupancy. diff --git a/examples/expected/yaml_ops.txt b/examples/expected/yaml_ops.txt new file mode 100644 index 00000000..f9415b4f --- /dev/null +++ b/examples/expected/yaml_ops.txt @@ -0,0 +1,20 @@ +type: map +title: pith +version: 42 +pi: 3.14 +enabled: true +missing title: n/a +missing port: 9000 +has title: true +has missing: false +tags count: 2 +tag 0: lang +notes first line: first line +server host: localhost +server port: 8080 +typed server: localhost:8080 +key count: 7 +broken: true (unterminated flow sequence) +documents: 2 +second: 2 +file host: localhost diff --git a/examples/yaml_ops.pith b/examples/yaml_ops.pith new file mode 100644 index 00000000..fb2647d2 --- /dev/null +++ b/examples/yaml_ops.pith @@ -0,0 +1,78 @@ +# yaml parsing +import std.yaml as yaml +import std.fs as fs +import std.io as io + +struct ServerConfig: + pub host: String + pub port: Int + +fn main() -> String!: + path := "/tmp/pith_yaml_ops.yaml" + + # build a yaml document + newline := chr(10) + doc_buf := io.string_buffer() + doc_buf.write("title: pith{newline}")! + doc_buf.write("version: 42{newline}")! + doc_buf.write("pi: 3.14{newline}")! + doc_buf.write("enabled: true{newline}")! + doc_buf.write("tags: [lang, fast]{newline}")! + doc_buf.write("notes: |{newline}")! + doc_buf.write(" first line{newline}")! + doc_buf.write(" second line{newline}")! + doc_buf.write("server:{newline}")! + doc_buf.write(" host: localhost # trailing comments are ignored{newline}")! + doc_buf.write(" port: 8080{newline}")! + doc := doc_buf.string() + + root := yaml.parse(doc) + print("type: {yaml.type_of(root)}") + + # basic values + print("title: {yaml.get_string(root, "title")}") + print("version: {yaml.get_int(root, "version")}") + print("pi: {yaml.get_float(root, "pi")}") + print("enabled: {yaml.get_bool(root, "enabled")}") + print("missing title: {yaml.get_string_or(root, "missing_title", "n/a")}") + print("missing port: {yaml.get_int_or(root, "missing_port", 9000)}") + + # has key + print("has title: {yaml.has(root, "title")}") + print("has missing: {yaml.has(root, "missing")}") + + # sequence + tags := yaml.get_array(root, "tags") + print("tags count: {yaml.array_len(tags)}") + print("tag 0: {yaml.scalar_string(yaml.array_get(tags, 0))}") + + # block scalar + notes := yaml.get_string(root, "notes") + print("notes first line: {notes.split(chr(10))[0]}") + + # nested mapping + server := yaml.get_map(root, "server") + print("server host: {yaml.get_string(server, "host")}") + print("server port: {yaml.get_int(server, "port")}") + typed_server := yaml.decode[ServerConfig](server) + if typed_server.is_ok: + print("typed server: {typed_server.ok.host}:{typed_server.ok.port}") + + # keys + print("key count: {yaml.keys(root).len()}") + + # malformed input reports why instead of guessing + broken := yaml.parse("a: [1, 2") + print("broken: {broken < 0} ({yaml.last_error()})") + + # several documents in one stream + stream := "one: 1{newline}---{newline}two: 2{newline}" + all := yaml.parse_all(stream) + print("documents: {yaml.array_len(all)}") + print("second: {yaml.get_int(yaml.array_get(all, 1), "two")}") + + fs.write(path, doc)! + file_root := yaml.parse_file(path) + print("file host: {yaml.get_string(yaml.get_map(file_root, "server"), "host")}") + fs.remove(path) + return "" diff --git a/self-host/bootstrap/ir_driver.ir b/self-host/bootstrap/ir_driver.ir index 24a0baa0..fe9d5731 100644 --- a/self-host/bootstrap/ir_driver.ir +++ b/self-host/bootstrap/ir_driver.ir @@ -28379,254 +28379,257 @@ string m13s627 "config typed file decode argument type mismatch: expected " string m13s628 "config typed file decode target must be a struct, got " string m13s629 "config typed file decode expects 1 argument, got " string m13s630 "config typed file decode requires an explicit struct type" -string m13s631 "unknown type: TomlDecodeError" -string m13s632 "TomlDecodeError" -string m13s633 "toml.decode does not support field '" -string m13s634 "toml.decode target field must be public: " -string m13s635 "toml.decode argument type mismatch: expected " -string m13s636 "toml.decode target must be a struct, got " -string m13s637 "toml.decode expects 1 argument, got " -string m13s638 "toml.decode requires an explicit struct type" -string m13s639 "unknown type: JsonDecodeError" -string m13s640 "JsonDecodeError" -string m13s641 "json.decode does not support field '" -string m13s642 "json.decode target field must be public: " -string m13s643 "json.decode argument type mismatch: expected " -string m13s644 "json.decode target must be a struct, got " -string m13s645 "json.decode expects 1 argument, got " -string m13s646 "json.decode requires an explicit struct type" -string m13s647 "config.decode does not support field '" -string m13s648 "config.decode target field must be public: " -string m13s649 "config.decode prefix type mismatch: expected String, got " -string m13s650 "config.decode argument type mismatch: expected Config, got " -string m13s651 "unknown type: Config" -string m13s652 "Config" -string m13s653 "config.decode target must be a struct, got " -string m13s654 " argument(s), got " -string m13s655 "config.decode expects " -string m13s656 "config.decode requires an explicit struct type" -string m13s657 "|" -string m13s658 "json.decode type argument must be a concrete struct type" -string m13s659 "config_mod" -string m13s660 "config" -string m13s661 "std.config" -string m13s662 "toml_mod" -string m13s663 "toml" -string m13s664 "json_mod" -string m13s665 "json" -string m13s666 "unary 'not' requires Bool, got " -string m13s667 "not" -string m13s668 "unary - requires numeric type, got " -string m13s669 "negate" -string m13s670 "pipe type mismatch: function expects " -string m13s671 "' must take exactly 1 parameter" -string m13s672 "pipe target '" -string m13s673 "' is not a function" -string m13s674 "pipe operator requires a function name on the right" -string m13s675 "operator 'or' requires Bool, got " -string m13s676 "or" -string m13s677 "operator 'and' requires Bool, got " -string m13s678 "and" -string m13s679 "operator >= type mismatch: " -string m13s680 "operator >= requires numeric or string type, got " -string m13s681 "gte" -string m13s682 "operator <= type mismatch: " -string m13s683 "operator <= requires numeric or string type, got " -string m13s684 "lte" -string m13s685 "operator > type mismatch: " -string m13s686 "operator > requires numeric or string type, got " -string m13s687 "gt" -string m13s688 "operator < type mismatch: " -string m13s689 "operator < requires numeric or string type, got " -string m13s690 "lt" -string m13s691 "operator != type mismatch: " -string m13s692 "neq" -string m13s693 "operator == type mismatch: " -string m13s694 "eq" -string m13s695 "operator % type mismatch: " -string m13s696 "operator % requires integer type, got " -string m13s697 "mod" -string m13s698 "operator / type mismatch: " -string m13s699 "operator / requires numeric type, got " -string m13s700 "div" -string m13s701 "operator * type mismatch: " -string m13s702 "operator * requires numeric type, got " -string m13s703 "mul" -string m13s704 "operator - type mismatch: " -string m13s705 "operator - requires numeric type, got " -string m13s706 "sub" -string m13s707 "operator + type mismatch: " -string m13s708 "operator + requires numeric type, got " -string m13s709 "pipe" -string m13s710 "undefined variable: " -string m13s711 "import it where it is defined" -string m13s712 "' belongs to another module and is not imported here" -string m13s713 "await" -string m13s714 "spawn" -string m13s715 "struct_init" -string m13s716 "lambda" -string m13s717 "match_expr" -string m13s718 "select_expr" -string m13s719 "catch_expr" -string m13s720 "try" -string m13s721 "unwrap" -string m13s722 "if_expr" -string m13s723 "string interpolation requires a stringifiable value, got " -string m13s724 "lit" -string m13s725 "interp_spec" -string m13s726 "string_interp" -string m13s727 "grouped" -string m13s728 "unary" -string m13s729 "binary" -string m13s730 "self" -string m13s731 "bool_lit" -string m13s732 "string_lit" -string m13s733 "float_lit" -string m13s734 "int_lit" -string m13s735 "cannot iterate over " -string m13s736 ".." -string m13s737 "range bounds must be Int, got " -string m13s738 "range" -string m13s739 ".next" -string m13s740 "while let" -string m13s741 "if let" -string m13s742 " supports variant patterns and optional bindings" -string m13s743 "E245" -string m13s744 " with a bare binding needs an optional subject, got " -string m13s745 "else" -string m13s746 "then" -string m13s747 "elif" -string m13s748 "fail type mismatch: expected " -string m13s749 "fail requires function to return a result type" -string m13s750 "E234" -string m13s751 "fail outside of function" -string m13s752 "E231" -string m13s753 "change the return type to " -string m13s754 "return type mismatch: expected " -string m13s755 ", got Void" -string m13s756 "return outside of function" -string m13s757 "lambda returns disagree: " -string m13s758 "type mismatch: expected " -string m13s759 " requires numeric type, got " -string m13s760 "operator " -string m13s761 "=" -string m13s762 "declare with 'mut': mut " -string m13s763 "cannot assign to immutable variable '" -string m13s764 "E216" -string m13s765 "try_expr" -string m13s766 "bind" -string m13s767 "binding" -string m13s768 "errdefer" -string m13s769 "defer" -string m13s770 "continue" -string m13s771 "break" -string m13s772 "fail" -string m13s773 "return" -string m13s774 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m13s775 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m13s776 "E260" -string m13s777 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m13s778 "errdefer is only meaningful in a function returning a result (`T!`)" -string m13s779 "errdefer is only allowed inside a function" -string m13s780 "defer is only allowed inside a function" -string m13s781 "continue outside of loop" -string m13s782 "E215" -string m13s783 "break outside of loop" -string m13s784 "for_stmt" -string m13s785 "while_let" -string m13s786 "if_let" -string m13s787 "while_stmt" -string m13s788 "if_stmt" -string m13s789 "assignment" -string m13s790 "mut" -string m13s791 "fn_decl" -string m13s792 "pub" -string m13s793 " is missing associated type: " -string m13s794 " for " -string m13s795 "impl of " -string m13s796 "E229" -string m13s797 " is missing method: " -string m13s798 "E235" -string m13s799 "fn_sig" -string m13s800 "assoc_type_bind" -string m13s801 "for_type" -string m13s802 "test_decl" -string m13s803 "impl_decl" -string m13s804 "threadlocal" -string m13s805 "import" -string m13s806 "from_import" -string m13s807 "assoc_type" -string m13s808 "' is a builtin type name and cannot be used as an enum name" -string m13s809 "E250" -string m13s810 "' must be " -string m13s811 "default for field '" -string m13s812 " weak" -string m13s813 "' is a builtin type name and cannot be used as a struct name" -string m13s814 "' must be an optional struct type (T?)" -string m13s815 "weak field '" -string m13s816 "E249" -string m13s817 "parameter requires a type annotation" -string m13s818 "type_alias" -string m13s819 "interface_decl" -string m13s820 "unknown generic type: " -string m13s821 "Channel expects 1 type argument, got " -string m13s822 "Task expects 1 type argument, got " -string m13s823 "Map expects 2 type arguments, got " -string m13s824 "Set expects 1 type argument, got " -string m13s825 "List expects 1 type argument, got " -string m13s826 "type nesting too deep" -string m13s827 "E233" -string m13s828 "import it from the module that defines it" -string m13s829 "' is not declared by module '" -string m13s830 "E246" -string m13s831 "*" -string m13s832 "parse_int failed" -string m13s833 "file_open_read failed" -string m13s834 "file_open_write failed" -string m13s835 "file_open_append failed" -string m13s836 "byte_buffer_write failed" -string m13s837 "byte_buffer_write_string_utf8 failed" -string m13s838 "byte_buffer_write_byte failed" -string m13s839 "file_write failed" -string m13s840 "file_write_bytes failed" -string m13s841 "tcp_connect failed" -string m13s842 "tcp_listen failed" -string m13s843 "tcp_accept failed" -string m13s844 "tcp_write failed" -string m13s845 "tcp_write_bytes failed" -string m13s846 "process_spawn failed" -string m13s847 "process_spawn_argv failed" -string m13s848 "process_output_argv failed" -string m13s849 "process_write failed" -string m13s850 "process_write_bytes failed" -string m13s851 "crypto_x25519_keygen failed" -string m13s852 "write_file failed" -string m13s853 "append_file failed" -string m13s854 "write_file_bytes failed" -string m13s855 "append_file_bytes failed" -string m13s856 "read_file failed" -string m13s857 "exec_output failed" -string m13s858 "dns_resolve failed" -string m13s859 "bytes_to_string_utf8 failed" -string m13s860 "bytes_substring_utf8 failed" -string m13s861 "file_read failed" -string m13s862 "tcp_read failed" -string m13s863 "process_read failed" -string m13s864 "process_read_err failed" -string m13s865 "read_file_bytes failed" -string m13s866 "b64_decode failed" -string m13s867 "from_hex failed" -string m13s868 "file_read_bytes failed" -string m13s869 "tcp_read_bytes failed" -string m13s870 "process_read_bytes failed" -string m13s871 "process_read_err_bytes failed" -string m13s872 "crypto_x25519_public_key failed" -string m13s873 "crypto_x25519_shared_secret failed" -string m13s874 "crypto_aes_128_gcm_seal failed" -string m13s875 "crypto_aes_128_gcm_open failed" -string m13s876 "crypto_chacha20_poly1305_seal failed" -string m13s877 "crypto_chacha20_poly1305_open failed" -string m13s878 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m13s631 " does not support field '" +string m13s632 " target field must be public: " +string m13s633 " argument type mismatch: expected " +string m13s634 " target must be a struct, got " +string m13s635 " requires an explicit struct type" +string m13s636 ".decode" +string m13s637 "unknown type: JsonDecodeError" +string m13s638 "JsonDecodeError" +string m13s639 "json.decode does not support field '" +string m13s640 "json.decode target field must be public: " +string m13s641 "json.decode argument type mismatch: expected " +string m13s642 "json.decode target must be a struct, got " +string m13s643 "json.decode expects 1 argument, got " +string m13s644 "json.decode requires an explicit struct type" +string m13s645 "config.decode does not support field '" +string m13s646 "config.decode target field must be public: " +string m13s647 "config.decode prefix type mismatch: expected String, got " +string m13s648 "config.decode argument type mismatch: expected Config, got " +string m13s649 "unknown type: Config" +string m13s650 "Config" +string m13s651 "config.decode target must be a struct, got " +string m13s652 " argument(s), got " +string m13s653 "config.decode expects " +string m13s654 "config.decode requires an explicit struct type" +string m13s655 "|" +string m13s656 "json.decode type argument must be a concrete struct type" +string m13s657 "config_mod" +string m13s658 "config" +string m13s659 "std.config" +string m13s660 "TomlDecodeError" +string m13s661 "YamlDecodeError" +string m13s662 "yaml" +string m13s663 "yaml_mod" +string m13s664 "toml" +string m13s665 "toml_mod" +string m13s666 "std.yaml" +string m13s667 "json_mod" +string m13s668 "json" +string m13s669 "unary 'not' requires Bool, got " +string m13s670 "not" +string m13s671 "unary - requires numeric type, got " +string m13s672 "negate" +string m13s673 "pipe type mismatch: function expects " +string m13s674 "' must take exactly 1 parameter" +string m13s675 "pipe target '" +string m13s676 "' is not a function" +string m13s677 "pipe operator requires a function name on the right" +string m13s678 "operator 'or' requires Bool, got " +string m13s679 "or" +string m13s680 "operator 'and' requires Bool, got " +string m13s681 "and" +string m13s682 "operator >= type mismatch: " +string m13s683 "operator >= requires numeric or string type, got " +string m13s684 "gte" +string m13s685 "operator <= type mismatch: " +string m13s686 "operator <= requires numeric or string type, got " +string m13s687 "lte" +string m13s688 "operator > type mismatch: " +string m13s689 "operator > requires numeric or string type, got " +string m13s690 "gt" +string m13s691 "operator < type mismatch: " +string m13s692 "operator < requires numeric or string type, got " +string m13s693 "lt" +string m13s694 "operator != type mismatch: " +string m13s695 "neq" +string m13s696 "operator == type mismatch: " +string m13s697 "eq" +string m13s698 "operator % type mismatch: " +string m13s699 "operator % requires integer type, got " +string m13s700 "mod" +string m13s701 "operator / type mismatch: " +string m13s702 "operator / requires numeric type, got " +string m13s703 "div" +string m13s704 "operator * type mismatch: " +string m13s705 "operator * requires numeric type, got " +string m13s706 "mul" +string m13s707 "operator - type mismatch: " +string m13s708 "operator - requires numeric type, got " +string m13s709 "sub" +string m13s710 "operator + type mismatch: " +string m13s711 "operator + requires numeric type, got " +string m13s712 "pipe" +string m13s713 "undefined variable: " +string m13s714 "import it where it is defined" +string m13s715 "' belongs to another module and is not imported here" +string m13s716 "await" +string m13s717 "spawn" +string m13s718 "struct_init" +string m13s719 "lambda" +string m13s720 "match_expr" +string m13s721 "select_expr" +string m13s722 "catch_expr" +string m13s723 "try" +string m13s724 "unwrap" +string m13s725 "if_expr" +string m13s726 "string interpolation requires a stringifiable value, got " +string m13s727 "lit" +string m13s728 "interp_spec" +string m13s729 "string_interp" +string m13s730 "grouped" +string m13s731 "unary" +string m13s732 "binary" +string m13s733 "self" +string m13s734 "bool_lit" +string m13s735 "string_lit" +string m13s736 "float_lit" +string m13s737 "int_lit" +string m13s738 "cannot iterate over " +string m13s739 ".." +string m13s740 "range bounds must be Int, got " +string m13s741 "range" +string m13s742 ".next" +string m13s743 "while let" +string m13s744 "if let" +string m13s745 " supports variant patterns and optional bindings" +string m13s746 "E245" +string m13s747 " with a bare binding needs an optional subject, got " +string m13s748 "else" +string m13s749 "then" +string m13s750 "elif" +string m13s751 "fail type mismatch: expected " +string m13s752 "fail requires function to return a result type" +string m13s753 "E234" +string m13s754 "fail outside of function" +string m13s755 "E231" +string m13s756 "change the return type to " +string m13s757 "return type mismatch: expected " +string m13s758 ", got Void" +string m13s759 "return outside of function" +string m13s760 "lambda returns disagree: " +string m13s761 "type mismatch: expected " +string m13s762 " requires numeric type, got " +string m13s763 "operator " +string m13s764 "=" +string m13s765 "declare with 'mut': mut " +string m13s766 "cannot assign to immutable variable '" +string m13s767 "E216" +string m13s768 "try_expr" +string m13s769 "bind" +string m13s770 "binding" +string m13s771 "errdefer" +string m13s772 "defer" +string m13s773 "continue" +string m13s774 "break" +string m13s775 "fail" +string m13s776 "return" +string m13s777 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m13s778 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m13s779 "E260" +string m13s780 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m13s781 "errdefer is only meaningful in a function returning a result (`T!`)" +string m13s782 "errdefer is only allowed inside a function" +string m13s783 "defer is only allowed inside a function" +string m13s784 "continue outside of loop" +string m13s785 "E215" +string m13s786 "break outside of loop" +string m13s787 "for_stmt" +string m13s788 "while_let" +string m13s789 "if_let" +string m13s790 "while_stmt" +string m13s791 "if_stmt" +string m13s792 "assignment" +string m13s793 "mut" +string m13s794 "fn_decl" +string m13s795 "pub" +string m13s796 " is missing associated type: " +string m13s797 " for " +string m13s798 "impl of " +string m13s799 "E229" +string m13s800 " is missing method: " +string m13s801 "E235" +string m13s802 "fn_sig" +string m13s803 "assoc_type_bind" +string m13s804 "for_type" +string m13s805 "test_decl" +string m13s806 "impl_decl" +string m13s807 "threadlocal" +string m13s808 "import" +string m13s809 "from_import" +string m13s810 "assoc_type" +string m13s811 "' is a builtin type name and cannot be used as an enum name" +string m13s812 "E250" +string m13s813 "' must be " +string m13s814 "default for field '" +string m13s815 " weak" +string m13s816 "' is a builtin type name and cannot be used as a struct name" +string m13s817 "' must be an optional struct type (T?)" +string m13s818 "weak field '" +string m13s819 "E249" +string m13s820 "parameter requires a type annotation" +string m13s821 "type_alias" +string m13s822 "interface_decl" +string m13s823 "unknown generic type: " +string m13s824 "Channel expects 1 type argument, got " +string m13s825 "Task expects 1 type argument, got " +string m13s826 "Map expects 2 type arguments, got " +string m13s827 "Set expects 1 type argument, got " +string m13s828 "List expects 1 type argument, got " +string m13s829 "type nesting too deep" +string m13s830 "E233" +string m13s831 "import it from the module that defines it" +string m13s832 "' is not declared by module '" +string m13s833 "E246" +string m13s834 "*" +string m13s835 "parse_int failed" +string m13s836 "file_open_read failed" +string m13s837 "file_open_write failed" +string m13s838 "file_open_append failed" +string m13s839 "byte_buffer_write failed" +string m13s840 "byte_buffer_write_string_utf8 failed" +string m13s841 "byte_buffer_write_byte failed" +string m13s842 "file_write failed" +string m13s843 "file_write_bytes failed" +string m13s844 "tcp_connect failed" +string m13s845 "tcp_listen failed" +string m13s846 "tcp_accept failed" +string m13s847 "tcp_write failed" +string m13s848 "tcp_write_bytes failed" +string m13s849 "process_spawn failed" +string m13s850 "process_spawn_argv failed" +string m13s851 "process_output_argv failed" +string m13s852 "process_write failed" +string m13s853 "process_write_bytes failed" +string m13s854 "crypto_x25519_keygen failed" +string m13s855 "write_file failed" +string m13s856 "append_file failed" +string m13s857 "write_file_bytes failed" +string m13s858 "append_file_bytes failed" +string m13s859 "read_file failed" +string m13s860 "exec_output failed" +string m13s861 "dns_resolve failed" +string m13s862 "bytes_to_string_utf8 failed" +string m13s863 "bytes_substring_utf8 failed" +string m13s864 "file_read failed" +string m13s865 "tcp_read failed" +string m13s866 "process_read failed" +string m13s867 "process_read_err failed" +string m13s868 "read_file_bytes failed" +string m13s869 "b64_decode failed" +string m13s870 "from_hex failed" +string m13s871 "file_read_bytes failed" +string m13s872 "tcp_read_bytes failed" +string m13s873 "process_read_bytes failed" +string m13s874 "process_read_err_bytes failed" +string m13s875 "crypto_x25519_public_key failed" +string m13s876 "crypto_x25519_shared_secret failed" +string m13s877 "crypto_aes_128_gcm_seal failed" +string m13s878 "crypto_aes_128_gcm_open failed" +string m13s879 "crypto_chacha20_poly1305_seal failed" +string m13s880 "crypto_chacha20_poly1305_open failed" +string m13s881 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -29052,7 +29055,7 @@ call 37 pith_cstring_retain void 1 36 call 38 pith_cstring_release void 1 34 store value 36 load 39 kind -strref 40 m13s792 +strref 40 m13s795 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 brif 41 L9 L10 @@ -29091,7 +29094,7 @@ jmp L8 label L10 label L8 load 65 kind -strref 66 m13s805 +strref 66 m13s808 call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 66 brif 67 L15 L16 @@ -29206,7 +29209,7 @@ label L32 jmp L14 label L16 load 138 kind -strref 139 m13s806 +strref 139 m13s809 call 140 pith_cstring_eq bool 2 138 139 call 141 pith_cstring_release void 1 139 brif 140 L35 L36 @@ -29302,7 +29305,7 @@ label L55 load 193 parts iconst 194 1 call 195 pith_list_get_value_strict string 2 193 194 -strref 196 m13s831 +strref 196 m13s834 call 197 pith_cstring_eq bool 2 195 196 call 198 pith_cstring_release void 1 196 brif 197 L58 L59 @@ -29398,12 +29401,12 @@ eq 256 254 255 brif 256 L79 L80 label L79 load 257 __loopvar_65_child -strref 258 m13s830 +strref 258 m13s833 strref 259 m13s349 load 260 imported_name concat 261 259 260 call 262 pith_cstring_release void 1 259 -strref 263 m13s829 +strref 263 m13s832 concat 264 261 263 call 265 pith_cstring_release void 1 261 call 266 pith_cstring_release void 1 263 @@ -29414,7 +29417,7 @@ strref 270 m13s349 concat 271 268 270 call 272 pith_cstring_release void 1 268 call 273 pith_cstring_release void 1 270 -strref 274 m13s828 +strref 274 m13s831 call 275 checker_diagnostics_report_error_with_fix_at void 4 257 258 271 274 call 276 pith_cstring_release void 1 258 call 277 pith_cstring_release void 1 271 @@ -29608,8 +29611,8 @@ load 23 checker_type_resolve_depth iconst 24 1 sub 25 23 24 store checker_type_resolve_depth 25 -strref 26 m13s827 -strref 27 m13s826 +strref 26 m13s830 +strref 27 m13s829 call 28 checker_diagnostics_report_error void 2 26 27 call 29 pith_cstring_release void 1 26 call 30 pith_cstring_release void 1 27 @@ -30368,7 +30371,7 @@ neq 9 7 8 brif 9 L179 L180 label L179 strref 10 m13s621 -strref 11 m13s825 +strref 11 m13s828 load 12 type_args call 13 pith_list_len int 1 12 call 14 int_to_string string 1 13 @@ -30402,7 +30405,7 @@ neq 33 31 32 brif 33 L185 L186 label L185 strref 34 m13s621 -strref 35 m13s824 +strref 35 m13s827 load 36 type_args call 37 pith_list_len int 1 36 call 38 int_to_string string 1 37 @@ -30436,7 +30439,7 @@ neq 57 55 56 brif 57 L191 L192 label L191 strref 58 m13s621 -strref 59 m13s823 +strref 59 m13s826 load 60 type_args call 61 pith_list_len int 1 60 call 62 int_to_string string 1 61 @@ -30473,7 +30476,7 @@ neq 84 82 83 brif 84 L197 L198 label L197 strref 85 m13s621 -strref 86 m13s822 +strref 86 m13s825 load 87 type_args call 88 pith_list_len int 1 87 call 89 int_to_string string 1 88 @@ -30507,7 +30510,7 @@ neq 108 106 107 brif 108 L203 L204 label L203 strref 109 m13s621 -strref 110 m13s821 +strref 110 m13s824 load 111 type_args call 112 pith_list_len int 1 111 call 113 int_to_string string 1 112 @@ -30542,7 +30545,7 @@ ret 131 label L207 label L205 strref 132 m13s310 -strref 133 m13s820 +strref 133 m13s823 load 134 base concat 135 133 134 call 136 pith_cstring_release void 1 133 @@ -31387,7 +31390,7 @@ call 5 pith_struct_release void 1 2 store node 4 load 6 node field 7 6 0 string kind -strref 8 m13s792 +strref 8 m13s795 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L302 L303 @@ -31402,7 +31405,7 @@ jmp L301 label L303 load 17 node field 18 17 0 string kind -strref 19 m13s806 +strref 19 m13s809 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L304 L305 @@ -31414,7 +31417,7 @@ ret 24 label L305 load 25 node field 26 25 0 string kind -strref 27 m13s805 +strref 27 m13s808 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L306 L307 @@ -31445,7 +31448,7 @@ call 6 pith_struct_release void 1 3 store node 5 load 7 node field 8 7 0 string kind -strref 9 m13s804 +strref 9 m13s807 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 brif 10 L309 L310 @@ -31464,7 +31467,7 @@ label L310 label L308 load 21 node field 22 21 0 string kind -strref 23 m13s791 +strref 23 m13s794 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 brif 24 L312 L313 @@ -31501,7 +31504,7 @@ jmp L311 label L317 load 46 node field 47 46 0 string kind -strref 48 m13s819 +strref 48 m13s822 call 49 pith_cstring_eq bool 2 47 48 call 50 pith_cstring_release void 1 48 brif 49 L318 L319 @@ -31513,7 +31516,7 @@ jmp L311 label L319 load 54 node field 55 54 0 string kind -strref 56 m13s803 +strref 56 m13s806 call 57 pith_cstring_eq bool 2 55 56 call 58 pith_cstring_release void 1 56 brif 57 L320 L321 @@ -31525,7 +31528,7 @@ jmp L311 label L321 load 62 node field 63 62 0 string kind -strref 64 m13s818 +strref 64 m13s821 call 65 pith_cstring_eq bool 2 63 64 call 66 pith_cstring_release void 1 64 brif 65 L322 L323 @@ -31536,7 +31539,7 @@ jmp L311 label L323 load 69 node field 70 69 0 string kind -strref 71 m13s767 +strref 71 m13s770 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 brif 72 L324 L325 @@ -31548,7 +31551,7 @@ ret 76 label L325 load 77 node field 78 77 0 string kind -strref 79 m13s802 +strref 79 m13s805 call 80 pith_cstring_eq bool 2 78 79 call 81 pith_cstring_release void 1 79 brif 80 L326 L327 @@ -31749,7 +31752,7 @@ call 38 pith_list_push_value void 2 36 37 jmp L353 label L355 strref 39 m13s322 -strref 40 m13s817 +strref 40 m13s820 call 41 checker_diagnostics_report_error void 2 39 40 call 42 pith_cstring_release void 1 39 call 43 pith_cstring_release void 1 40 @@ -31859,12 +31862,12 @@ iconst 34 0 ret 34 label L363 label L361 -strref 35 m13s816 -strref 36 m13s815 +strref 35 m13s819 +strref 36 m13s818 load 37 fname concat 38 36 37 call 39 pith_cstring_release void 1 36 -strref 40 m13s814 +strref 40 m13s817 concat 41 38 40 call 42 pith_cstring_release void 1 38 call 43 pith_cstring_release void 1 40 @@ -32018,12 +32021,12 @@ call 19 checker_is_reserved_type_name bool 1 18 brif 19 L376 L377 label L376 load 20 node_idx -strref 21 m13s809 +strref 21 m13s812 strref 22 m13s349 load 23 name concat 24 22 23 call 25 pith_cstring_release void 1 22 -strref 26 m13s813 +strref 26 m13s816 concat 27 24 26 call 28 pith_cstring_release void 1 24 call 29 pith_cstring_release void 1 26 @@ -32212,7 +32215,7 @@ load 178 ftid call 179 pith_list_push_value void 2 177 178 load 180 cn field 181 180 8 string value -strref 182 m13s812 +strref 182 m13s815 call 183 pith_cstring_contains bool 2 181 182 call 184 pith_cstring_release void 1 182 brif 183 L392 L393 @@ -32287,11 +32290,11 @@ eq 233 231 232 brif 233 L405 L406 label L405 strref 234 m13s304 -strref 235 m13s811 +strref 235 m13s814 load 236 fname concat 237 235 236 call 238 pith_cstring_release void 1 235 -strref 239 m13s810 +strref 239 m13s813 concat 240 237 239 call 241 pith_cstring_release void 1 237 call 242 pith_cstring_release void 1 239 @@ -32431,12 +32434,12 @@ call 14 checker_is_reserved_type_name bool 1 13 brif 14 L408 L409 label L408 load 15 node_idx -strref 16 m13s809 +strref 16 m13s812 strref 17 m13s349 load 18 name concat 19 17 18 call 20 pith_cstring_release void 1 17 -strref 21 m13s808 +strref 21 m13s811 concat 22 19 21 call 23 pith_cstring_release void 1 19 call 24 pith_cstring_release void 1 21 @@ -32684,7 +32687,7 @@ jmp L428 label L430 load 48 cn field 49 48 0 string kind -strref 50 m13s807 +strref 50 m13s810 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 50 brif 51 L431 L432 @@ -32857,7 +32860,7 @@ call 38 pith_struct_release void 1 32 store second_node 37 load 39 second_node field 40 39 0 string kind -strref 41 m13s801 +strref 41 m13s804 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 brif 42 L446 L447 @@ -33035,7 +33038,7 @@ call 166 pith_struct_release void 1 163 store cn 165 load 167 cn field 168 167 0 string kind -strref 169 m13s800 +strref 169 m13s803 call 170 pith_cstring_eq bool 2 168 169 call 171 pith_cstring_release void 1 169 brif 170 L463 L464 @@ -33150,7 +33153,7 @@ iconst 249 0 store method_is_pub 249 load 250 cn field 251 250 0 string kind -strref 252 m13s792 +strref 252 m13s795 call 253 pith_cstring_eq bool 2 251 252 call 254 pith_cstring_release void 1 252 brif 253 L476 L477 @@ -33172,7 +33175,7 @@ label L477 label L475 load 264 cn field 265 264 0 string kind -strref 266 m13s791 +strref 266 m13s794 call 267 pith_cstring_eq bool 2 265 266 call 268 pith_cstring_release void 1 266 brif 267 L479 L480 @@ -33302,7 +33305,7 @@ call 5 pith_struct_release void 1 2 store node 4 load 6 node field 7 6 0 string kind -strref 8 m13s792 +strref 8 m13s795 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L486 L487 @@ -33320,7 +33323,7 @@ label L487 label L485 load 19 node field 20 19 0 string kind -strref 21 m13s803 +strref 21 m13s806 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 brif 22 L489 L490 @@ -33390,7 +33393,7 @@ call 37 pith_struct_release void 1 31 store second_node 36 load 38 second_node field 39 38 0 string kind -strref 40 m13s801 +strref 40 m13s804 call 42 pith_cstring_eq bool 2 39 40 iconst 43 1 sub 41 43 42 @@ -33539,7 +33542,7 @@ call 152 pith_struct_release void 1 149 store mn 151 load 153 mn field 154 153 0 string kind -strref 155 m13s791 +strref 155 m13s794 call 156 pith_cstring_eq bool 2 154 155 call 157 pith_cstring_release void 1 155 brif 156 L510 L511 @@ -35088,7 +35091,7 @@ call 5 pith_struct_release void 1 2 store node 4 load 6 node field 7 6 0 string kind -strref 8 m13s792 +strref 8 m13s795 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L682 L683 @@ -35102,7 +35105,7 @@ jmp L681 label L683 load 16 node field 17 16 0 string kind -strref 18 m13s806 +strref 18 m13s809 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L684 L685 @@ -35114,7 +35117,7 @@ ret 23 label L685 load 24 node field 25 24 0 string kind -strref 26 m13s805 +strref 26 m13s808 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 brif 27 L686 L687 @@ -35143,7 +35146,7 @@ call 5 pith_struct_release void 1 2 store node 4 load 6 node field 7 6 0 string kind -strref 8 m13s804 +strref 8 m13s807 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L689 L690 @@ -35161,7 +35164,7 @@ label L690 label L688 load 19 node field 20 19 0 string kind -strref 21 m13s791 +strref 21 m13s794 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 brif 22 L692 L693 @@ -35172,7 +35175,7 @@ jmp L691 label L693 load 26 node field 27 26 0 string kind -strref 28 m13s767 +strref 28 m13s770 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 brif 29 L694 L695 @@ -35184,7 +35187,7 @@ jmp L691 label L695 load 34 node field 35 34 0 string kind -strref 36 m13s803 +strref 36 m13s806 call 37 pith_cstring_eq bool 2 35 36 call 38 pith_cstring_release void 1 36 brif 37 L696 L697 @@ -35195,7 +35198,7 @@ jmp L691 label L697 load 41 node field 42 41 0 string kind -strref 43 m13s802 +strref 43 m13s805 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 brif 44 L698 L699 @@ -35346,7 +35349,7 @@ load 94 param_idx call 95 pith_list_get_value_strict int 2 93 94 load 96 cn field 97 96 8 string value -strref 98 m13s790 +strref 98 m13s793 call 99 pith_cstring_contains bool 2 97 98 call 100 pith_cstring_release void 1 98 call 101 scope_define_binding void 4 90 91 95 99 @@ -35522,7 +35525,7 @@ call 31 pith_struct_release void 1 25 store second_node 30 load 32 second_node field 33 32 0 string kind -strref 34 m13s801 +strref 34 m13s804 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 brif 35 L735 L736 @@ -35638,7 +35641,7 @@ call 114 pith_struct_release void 1 111 store cn 113 load 115 cn field 116 115 0 string kind -strref 117 m13s800 +strref 117 m13s803 call 118 pith_cstring_eq bool 2 116 117 call 119 pith_cstring_release void 1 117 brif 118 L748 L749 @@ -35711,7 +35714,7 @@ call 158 pith_struct_release void 1 155 store cn 157 load 159 cn field 160 159 0 string kind -strref 161 m13s792 +strref 161 m13s795 call 162 pith_cstring_eq bool 2 160 161 call 163 pith_cstring_release void 1 161 brif 162 L761 L762 @@ -35729,7 +35732,7 @@ label L762 label L760 load 171 cn field 172 171 0 string kind -strref 173 m13s791 +strref 173 m13s794 call 174 pith_cstring_eq bool 2 172 173 call 175 pith_cstring_release void 1 173 brif 174 L764 L765 @@ -35794,7 +35797,7 @@ call 212 pith_struct_release void 1 209 store mn 211 load 213 mn field 214 213 0 string kind -strref 215 m13s791 +strref 215 m13s794 call 216 pith_cstring_eq bool 2 214 215 call 217 pith_cstring_release void 1 215 brif 216 L777 L778 @@ -35819,7 +35822,7 @@ jmp L776 label L778 load 229 mn field 230 229 0 string kind -strref 231 m13s799 +strref 231 m13s802 call 232 pith_cstring_eq bool 2 230 231 call 233 pith_cstring_release void 1 231 brif 232 L782 L783 @@ -35833,19 +35836,19 @@ iconst 239 0 eq 240 238 239 brif 240 L785 L786 label L785 -strref 241 m13s798 -strref 242 m13s795 +strref 241 m13s801 +strref 242 m13s798 load 243 iface_base concat 244 242 243 call 245 pith_cstring_release void 1 242 -strref 246 m13s794 +strref 246 m13s797 concat 247 244 246 call 248 pith_cstring_release void 1 244 call 249 pith_cstring_release void 1 246 load 250 concrete_name concat 251 247 250 call 252 pith_cstring_release void 1 247 -strref 253 m13s797 +strref 253 m13s800 concat 254 251 253 call 255 pith_cstring_release void 1 251 call 256 pith_cstring_release void 1 253 @@ -35947,19 +35950,19 @@ iconst 32 0 eq 33 31 32 brif 33 L795 L796 label L795 -strref 34 m13s796 -strref 35 m13s795 +strref 34 m13s799 +strref 35 m13s798 load 36 iface_base concat 37 35 36 call 38 pith_cstring_release void 1 35 -strref 39 m13s794 +strref 39 m13s797 concat 40 37 39 call 41 pith_cstring_release void 1 37 call 42 pith_cstring_release void 1 39 load 43 concrete_name concat 44 40 43 call 45 pith_cstring_release void 1 40 -strref 46 m13s793 +strref 46 m13s796 concat 47 44 46 call 48 pith_cstring_release void 1 44 call 49 pith_cstring_release void 1 46 @@ -36030,7 +36033,7 @@ call 24 pith_struct_release void 1 21 store cn 23 load 25 cn field 26 25 0 string kind -strref 27 m13s792 +strref 27 m13s795 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L805 L806 @@ -36048,7 +36051,7 @@ label L806 label L804 load 37 cn field 38 37 0 string kind -strref 39 m13s791 +strref 39 m13s794 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 brif 40 L808 L809 @@ -36107,7 +36110,7 @@ load 13 ret_type call 14 scope_create_function_scope int 2 12 13 store method_scope 14 load 15 method_scope -strref 16 m13s730 +strref 16 m13s733 load 17 type_tid iconst 18 0 call 19 scope_define_binding void 4 15 16 17 18 @@ -36162,7 +36165,7 @@ load 53 param_idx call 54 pith_list_get_value_strict int 2 52 53 load 55 cn field 56 55 8 string value -strref 57 m13s790 +strref 57 m13s793 call 58 pith_cstring_contains bool 2 56 57 call 59 pith_cstring_release void 1 57 call 60 scope_define_binding void 4 50 51 54 58 @@ -36277,7 +36280,7 @@ call 8 pith_struct_release void 1 5 store node 7 load 9 node field 10 9 0 string kind -strref 11 m13s767 +strref 11 m13s770 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 brif 12 L833 L834 @@ -36289,7 +36292,7 @@ jmp L832 label L834 load 17 node field 18 17 0 string kind -strref 19 m13s789 +strref 19 m13s792 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L835 L836 @@ -36301,7 +36304,7 @@ jmp L832 label L836 load 25 node field 26 25 0 string kind -strref 27 m13s773 +strref 27 m13s776 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L837 L838 @@ -36313,7 +36316,7 @@ jmp L832 label L838 load 33 node field 34 33 0 string kind -strref 35 m13s772 +strref 35 m13s775 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 brif 36 L839 L840 @@ -36325,7 +36328,7 @@ jmp L832 label L840 load 41 node field 42 41 0 string kind -strref 43 m13s788 +strref 43 m13s791 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 brif 44 L841 L842 @@ -36337,7 +36340,7 @@ jmp L832 label L842 load 49 node field 50 49 0 string kind -strref 51 m13s787 +strref 51 m13s790 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 brif 52 L843 L844 @@ -36349,7 +36352,7 @@ jmp L832 label L844 load 57 node field 58 57 0 string kind -strref 59 m13s786 +strref 59 m13s789 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 brif 60 L845 L846 @@ -36361,7 +36364,7 @@ jmp L832 label L846 load 65 node field 66 65 0 string kind -strref 67 m13s785 +strref 67 m13s788 call 68 pith_cstring_eq bool 2 66 67 call 69 pith_cstring_release void 1 67 brif 68 L847 L848 @@ -36373,7 +36376,7 @@ jmp L832 label L848 load 73 node field 74 73 0 string kind -strref 75 m13s784 +strref 75 m13s787 call 76 pith_cstring_eq bool 2 74 75 call 77 pith_cstring_release void 1 75 brif 76 L849 L850 @@ -36385,7 +36388,7 @@ jmp L832 label L850 load 81 node field 82 81 0 string kind -strref 83 m13s771 +strref 83 m13s774 call 84 pith_cstring_eq bool 2 82 83 call 85 pith_cstring_release void 1 83 brif 84 L851 L852 @@ -36396,8 +36399,8 @@ iconst 88 0 eq 89 87 88 brif 89 L854 L855 label L854 -strref 90 m13s782 -strref 91 m13s783 +strref 90 m13s785 +strref 91 m13s786 call 92 checker_diagnostics_report_error void 2 90 91 call 93 pith_cstring_release void 1 90 call 94 pith_cstring_release void 1 91 @@ -36408,7 +36411,7 @@ jmp L832 label L852 load 95 node field 96 95 0 string kind -strref 97 m13s770 +strref 97 m13s773 call 98 pith_cstring_eq bool 2 96 97 call 99 pith_cstring_release void 1 97 brif 98 L856 L857 @@ -36419,8 +36422,8 @@ iconst 102 0 eq 103 101 102 brif 103 L859 L860 label L859 -strref 104 m13s782 -strref 105 m13s781 +strref 104 m13s785 +strref 105 m13s784 call 106 checker_diagnostics_report_error void 2 104 105 call 107 pith_cstring_release void 1 104 call 108 pith_cstring_release void 1 105 @@ -36431,7 +36434,7 @@ jmp L832 label L857 load 109 node field 110 109 0 string kind -strref 111 m13s717 +strref 111 m13s720 call 112 pith_cstring_eq bool 2 110 111 call 113 pith_cstring_release void 1 111 brif 112 L861 L862 @@ -36443,7 +36446,7 @@ jmp L832 label L862 load 117 node field 118 117 0 string kind -strref 119 m13s769 +strref 119 m13s772 call 120 pith_cstring_eq bool 2 118 119 call 121 pith_cstring_release void 1 119 brif 120 L863 L864 @@ -36455,7 +36458,7 @@ jmp L832 label L864 load 125 node field 126 125 0 string kind -strref 127 m13s768 +strref 127 m13s771 call 128 pith_cstring_eq bool 2 126 127 call 129 pith_cstring_release void 1 127 brif 128 L865 L866 @@ -36483,8 +36486,8 @@ iconst 4 0 lt 5 3 4 brif 5 L868 L869 label L868 -strref 6 m13s776 -strref 7 m13s780 +strref 6 m13s779 +strref 7 m13s783 call 8 checker_diagnostics_report_error void 2 6 7 call 9 pith_cstring_release void 1 6 call 10 pith_cstring_release void 1 7 @@ -36509,8 +36512,8 @@ iconst 5 0 lt 6 4 5 brif 6 L871 L872 label L871 -strref 7 m13s776 -strref 8 m13s779 +strref 7 m13s779 +strref 8 m13s782 call 9 checker_diagnostics_report_error void 2 7 8 call 10 pith_cstring_release void 1 7 call 11 pith_cstring_release void 1 8 @@ -36528,9 +36531,9 @@ sub 17 19 18 call 20 pith_cstring_release void 1 16 brif 17 L874 L875 label L874 -strref 21 m13s776 -strref 22 m13s778 -strref 23 m13s777 +strref 21 m13s779 +strref 22 m13s781 +strref 23 m13s780 call 24 checker_diagnostics_report_error_with_fix void 3 21 22 23 call 25 pith_cstring_release void 1 21 call 26 pith_cstring_release void 1 22 @@ -36568,9 +36571,9 @@ load 12 inner_idx call 13 checker_defer_body_has_forbidden_node bool 1 12 brif 13 L880 L881 label L880 -strref 14 m13s776 -strref 15 m13s775 -strref 16 m13s774 +strref 14 m13s779 +strref 15 m13s778 +strref 16 m13s777 call 17 checker_diagnostics_report_error_with_fix void 3 14 15 16 call 18 pith_cstring_release void 1 14 call 19 pith_cstring_release void 1 15 @@ -36609,14 +36612,14 @@ store __or_13_885 13 iconst 14 0 store __or_14_885 14 load 15 k -strref 16 m13s773 +strref 16 m13s776 call 17 pith_cstring_eq bool 2 15 16 call 18 pith_cstring_release void 1 16 store __or_14_885 17 brif 17 L886 L885 label L885 load 19 k -strref 20 m13s772 +strref 20 m13s775 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 store __or_14_885 21 @@ -36626,7 +36629,7 @@ store __or_13_885 23 brif 23 L888 L887 label L887 load 24 k -strref 25 m13s771 +strref 25 m13s774 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 store __or_13_885 26 @@ -36636,7 +36639,7 @@ store __or_12_885 28 brif 28 L890 L889 label L889 load 29 k -strref 30 m13s770 +strref 30 m13s773 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 store __or_12_885 31 @@ -36659,14 +36662,14 @@ store __or_40_894 40 iconst 41 0 store __or_41_894 41 load 42 k -strref 43 m13s769 +strref 43 m13s772 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 store __or_41_894 44 brif 44 L895 L894 label L894 load 46 k -strref 47 m13s768 +strref 47 m13s771 call 48 pith_cstring_eq bool 2 46 47 call 49 pith_cstring_release void 1 47 store __or_41_894 48 @@ -36676,7 +36679,7 @@ store __or_40_894 50 brif 50 L897 L896 label L896 load 51 k -strref 52 m13s767 +strref 52 m13s770 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 store __or_40_894 53 @@ -36686,7 +36689,7 @@ store __or_39_894 55 brif 55 L899 L898 label L898 load 56 k -strref 57 m13s766 +strref 57 m13s769 call 58 pith_cstring_eq bool 2 56 57 call 59 pith_cstring_release void 1 57 store __or_39_894 58 @@ -36707,14 +36710,14 @@ store __or_66_903 66 iconst 67 0 store __or_67_903 67 load 68 k -strref 69 m13s720 +strref 69 m13s723 call 70 pith_cstring_eq bool 2 68 69 call 71 pith_cstring_release void 1 69 store __or_67_903 70 brif 70 L904 L903 label L903 load 72 k -strref 73 m13s765 +strref 73 m13s768 call 74 pith_cstring_eq bool 2 72 73 call 75 pith_cstring_release void 1 73 store __or_67_903 74 @@ -36724,7 +36727,7 @@ store __or_66_903 76 brif 76 L906 L905 label L905 load 77 k -strref 78 m13s721 +strref 78 m13s724 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 store __or_66_903 79 @@ -38093,7 +38096,7 @@ eq 120 118 119 brif 120 L1099 L1100 label L1099 strref 121 m13s375 -strref 122 m13s758 +strref 122 m13s761 load 123 annotated call 124 types_get_type_name string 1 123 concat 125 122 124 @@ -38283,8 +38286,8 @@ iconst 35 0 eq 36 34 35 brif 36 L1123 L1124 label L1123 -strref 37 m13s764 -strref 38 m13s763 +strref 37 m13s767 +strref 38 m13s766 load 39 target_node field 40 39 8 string value concat 41 38 40 @@ -38293,7 +38296,7 @@ strref 43 m13s349 concat 44 41 43 call 45 pith_cstring_release void 1 41 call 46 pith_cstring_release void 1 43 -strref 47 m13s762 +strref 47 m13s765 load 48 target_node field 49 48 8 string value concat 50 47 49 @@ -38380,7 +38383,7 @@ call 102 pith_cstring_retain void 1 101 call 103 pith_cstring_release void 1 99 store op 101 load 104 op -strref 105 m13s761 +strref 105 m13s764 call 106 pith_cstring_eq bool 2 104 105 call 107 pith_cstring_release void 1 105 brif 106 L1138 L1139 @@ -38398,7 +38401,7 @@ eq 115 113 114 brif 115 L1144 L1145 label L1144 strref 116 m13s375 -strref 117 m13s758 +strref 117 m13s761 load 118 target_type call 119 types_get_type_name string 1 118 concat 120 117 119 @@ -38431,11 +38434,11 @@ eq 138 136 137 brif 138 L1147 L1148 label L1147 strref 139 m13s413 -strref 140 m13s760 +strref 140 m13s763 load 141 op concat 142 140 141 call 143 pith_cstring_release void 1 140 -strref 144 m13s759 +strref 144 m13s762 concat 145 142 144 call 146 pith_cstring_release void 1 142 call 147 pith_cstring_release void 1 144 @@ -38455,7 +38458,7 @@ neq 158 156 157 brif 158 L1149 L1150 label L1149 strref 159 m13s375 -strref 160 m13s758 +strref 160 m13s761 load 161 target_type call 162 types_get_type_name string 1 161 concat 163 160 162 @@ -38565,7 +38568,7 @@ eq 46 44 45 brif 46 L1168 L1169 label L1168 strref 47 m13s375 -strref 48 m13s757 +strref 48 m13s760 load 49 checker_lambda_inferred_return call 50 types_get_type_name string 1 49 concat 51 48 50 @@ -38602,8 +38605,8 @@ iconst 72 0 lt 73 71 72 brif 73 L1171 L1172 label L1171 -strref 74 m13s752 -strref 75 m13s756 +strref 74 m13s755 +strref 75 m13s759 call 76 checker_diagnostics_report_error void 2 74 75 call 77 pith_cstring_release void 1 74 call 78 pith_cstring_release void 1 75 @@ -38628,13 +38631,13 @@ neq 91 89 90 brif 91 L1177 L1178 label L1177 strref 92 m13s375 -strref 93 m13s754 +strref 93 m13s757 load 94 expected call 95 types_get_type_name string 1 94 concat 96 93 95 call 97 pith_cstring_release void 1 93 call 98 pith_cstring_release void 1 95 -strref 99 m13s755 +strref 99 m13s758 concat 100 96 99 call 101 pith_cstring_release void 1 96 call 102 pith_cstring_release void 1 99 @@ -38916,7 +38919,7 @@ ret 270 label L1230 label L1228 strref 271 m13s375 -strref 272 m13s754 +strref 272 m13s757 load 273 expected call 274 types_get_type_name string 1 273 concat 275 272 274 @@ -38931,7 +38934,7 @@ call 283 types_get_type_name string 1 282 concat 284 279 283 call 285 pith_cstring_release void 1 279 call 286 pith_cstring_release void 1 283 -strref 287 m13s753 +strref 287 m13s756 load 288 actual call 289 types_get_type_name string 1 288 concat 290 287 289 @@ -38961,8 +38964,8 @@ iconst 6 0 lt 7 5 6 brif 7 L1232 L1233 label L1232 -strref 8 m13s752 -strref 9 m13s751 +strref 8 m13s755 +strref 9 m13s754 call 10 checker_diagnostics_report_error void 2 8 9 call 11 pith_cstring_release void 1 8 call 12 pith_cstring_release void 1 9 @@ -38986,8 +38989,8 @@ sub 23 25 24 call 26 pith_cstring_release void 1 22 brif 23 L1235 L1236 label L1235 -strref 27 m13s750 -strref 28 m13s749 +strref 27 m13s753 +strref 28 m13s752 call 29 checker_diagnostics_report_error void 2 27 28 call 30 pith_cstring_release void 1 27 call 31 pith_cstring_release void 1 28 @@ -39036,7 +39039,7 @@ eq 59 57 58 brif 59 L1244 L1245 label L1244 strref 60 m13s304 -strref 61 m13s748 +strref 61 m13s751 load 62 ret_info field 63 62 80 int value_type call 64 types_get_type_name string 1 63 @@ -39145,7 +39148,7 @@ call 55 pith_struct_release void 1 49 store then_node 54 load 56 then_node field 57 56 0 string kind -strref 58 m13s746 +strref 58 m13s749 call 59 pith_cstring_eq bool 2 57 58 call 60 pith_cstring_release void 1 58 brif 59 L1256 L1257 @@ -39225,7 +39228,7 @@ call 103 pith_struct_release void 1 100 store cn 102 load 104 cn field 105 104 0 string kind -strref 106 m13s747 +strref 106 m13s750 call 107 pith_cstring_eq bool 2 105 106 call 108 pith_cstring_release void 1 106 brif 107 L1272 L1273 @@ -39306,7 +39309,7 @@ jmp L1286 label L1288 load 159 ebody field 160 159 0 string kind -strref 161 m13s746 +strref 161 m13s749 call 162 pith_cstring_eq bool 2 160 161 call 163 pith_cstring_release void 1 161 brif 162 L1289 L1290 @@ -39352,7 +39355,7 @@ jmp L1271 label L1273 load 184 cn field 185 184 0 string kind -strref 186 m13s745 +strref 186 m13s748 call 187 pith_cstring_eq bool 2 185 186 call 188 pith_cstring_release void 1 186 brif 187 L1297 L1298 @@ -39598,9 +39601,9 @@ iconst 60 0 ret 60 label L1330 label L1328 -strref 61 m13s743 +strref 61 m13s746 load 62 form -strref 63 m13s744 +strref 63 m13s747 concat 64 62 63 call 65 pith_cstring_release void 1 63 load 66 subj_type @@ -39619,9 +39622,9 @@ iconst 78 0 ret 78 label L1327 label L1325 -strref 79 m13s743 +strref 79 m13s746 load 80 form -strref 81 m13s742 +strref 81 m13s745 concat 82 80 81 call 83 pith_cstring_release void 1 81 call 84 checker_diagnostics_report_error void 2 79 82 @@ -39669,7 +39672,7 @@ iconst 22 1 call 23 pith_list_get_value_strict int 2 21 22 load 24 then_scope load 25 scope_id -strref 26 m13s741 +strref 26 m13s744 call 27 checker_check_let_pattern void 5 19 23 24 25 26 call 28 pith_cstring_release void 1 26 load 29 then_node @@ -39765,7 +39768,7 @@ iconst 19 1 call 20 pith_list_get_value_strict int 2 18 19 load 21 loop_scope load 22 scope_id -strref 23 m13s740 +strref 23 m13s743 call 24 checker_check_let_pattern void 5 16 20 21 22 23 call 25 pith_cstring_release void 1 23 load 26 body_node @@ -39863,7 +39866,7 @@ call 48 pith_cstring_release void 1 45 store type_name 47 load 49 next_key load 50 type_name -strref 51 m13s739 +strref 51 m13s742 concat 52 50 51 call 53 pith_cstring_release void 1 51 call 54 pith_cstring_release void 1 49 @@ -39888,7 +39891,7 @@ brif 65 L1356 L1357 label L1356 load 68 next_key load 69 base -strref 70 m13s739 +strref 70 m13s742 concat 71 69 70 call 72 pith_cstring_release void 1 70 call 73 pith_cstring_release void 1 68 @@ -40208,7 +40211,7 @@ call 42 pith_struct_release void 1 36 store iter_node 41 load 43 iter_node field 44 43 0 string kind -strref 45 m13s738 +strref 45 m13s741 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 brif 46 L1387 L1388 @@ -40274,13 +40277,13 @@ load 86 __or_79_1397 brif 86 L1395 L1396 label L1395 strref 87 m13s413 -strref 88 m13s737 +strref 88 m13s740 load 89 lo_type call 90 types_get_type_name string 1 89 concat 91 88 90 call 92 pith_cstring_release void 1 88 call 93 pith_cstring_release void 1 90 -strref 94 m13s736 +strref 94 m13s739 concat 95 91 94 call 96 pith_cstring_release void 1 91 call 97 pith_cstring_release void 1 94 @@ -40402,7 +40405,7 @@ store elem_type 175 jmp L1411 label L1413 strref 176 m13s413 -strref 177 m13s735 +strref 177 m13s738 load 178 iter_type call 179 types_get_type_name string 1 178 concat 180 177 179 @@ -40625,7 +40628,7 @@ call 22 pith_cstring_release void 1 20 store tid_err 21 load 23 node field 24 23 0 string kind -strref 25 m13s734 +strref 25 m13s737 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 brif 26 L1429 L1430 @@ -40640,7 +40643,7 @@ label L1430 label L1428 load 33 node field 34 33 0 string kind -strref 35 m13s733 +strref 35 m13s736 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 brif 36 L1432 L1433 @@ -40655,7 +40658,7 @@ label L1433 label L1431 load 43 node field 44 43 0 string kind -strref 45 m13s732 +strref 45 m13s735 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 brif 46 L1435 L1436 @@ -40670,7 +40673,7 @@ label L1436 label L1434 load 53 node field 54 53 0 string kind -strref 55 m13s731 +strref 55 m13s734 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 brif 56 L1438 L1439 @@ -40719,13 +40722,13 @@ label L1445 label L1443 load 87 node field 88 87 0 string kind -strref 89 m13s730 +strref 89 m13s733 call 90 pith_cstring_eq bool 2 88 89 call 91 pith_cstring_release void 1 89 brif 90 L1447 L1448 label L1447 load 92 node_idx -strref 93 m13s730 +strref 93 m13s733 load 94 scope_id call 95 checker_check_identifier int 3 92 93 94 call 96 pith_cstring_release void 1 93 @@ -40738,7 +40741,7 @@ label L1448 label L1446 load 101 node field 102 101 0 string kind -strref 103 m13s729 +strref 103 m13s732 call 104 pith_cstring_eq bool 2 102 103 call 105 pith_cstring_release void 1 103 brif 104 L1450 L1451 @@ -40755,7 +40758,7 @@ label L1451 label L1449 load 113 node field 114 113 0 string kind -strref 115 m13s728 +strref 115 m13s731 call 116 pith_cstring_eq bool 2 114 115 call 117 pith_cstring_release void 1 115 brif 116 L1453 L1454 @@ -40772,7 +40775,7 @@ label L1454 label L1452 load 125 node field 126 125 0 string kind -strref 127 m13s727 +strref 127 m13s730 call 128 pith_cstring_eq bool 2 126 127 call 129 pith_cstring_release void 1 127 brif 128 L1456 L1457 @@ -40807,7 +40810,7 @@ label L1457 label L1455 load 150 node field 151 150 0 string kind -strref 152 m13s726 +strref 152 m13s729 call 153 pith_cstring_eq bool 2 151 152 call 154 pith_cstring_release void 1 152 brif 153 L1462 L1463 @@ -40836,7 +40839,7 @@ call 168 pith_struct_release void 1 165 store cn 167 load 169 cn field 170 169 0 string kind -strref 171 m13s725 +strref 171 m13s728 call 172 pith_cstring_eq bool 2 170 171 call 173 pith_cstring_release void 1 171 brif 172 L1469 L1470 @@ -40861,7 +40864,7 @@ eq 187 185 186 brif 187 L1475 L1476 label L1475 strref 188 m13s304 -strref 189 m13s723 +strref 189 m13s726 load 190 spec_tid call 191 types_get_type_name string 1 190 concat 192 189 191 @@ -40880,7 +40883,7 @@ jmp L1468 label L1470 load 198 cn field 199 198 0 string kind -strref 200 m13s724 +strref 200 m13s727 call 202 pith_cstring_eq bool 2 199 200 iconst 203 1 sub 201 203 202 @@ -40904,7 +40907,7 @@ eq 215 213 214 brif 215 L1483 L1484 label L1483 strref 216 m13s304 -strref 217 m13s723 +strref 217 m13s726 load 218 expr_tid call 219 types_get_type_name string 1 218 concat 220 217 219 @@ -40939,7 +40942,7 @@ label L1463 label L1461 load 234 node field 235 234 0 string kind -strref 236 m13s722 +strref 236 m13s725 call 237 pith_cstring_eq bool 2 235 236 call 238 pith_cstring_release void 1 236 brif 237 L1486 L1487 @@ -41024,7 +41027,7 @@ label L1499 label L1497 load 294 node field 295 294 0 string kind -strref 296 m13s721 +strref 296 m13s724 call 297 pith_cstring_eq bool 2 295 296 call 298 pith_cstring_release void 1 296 brif 297 L1501 L1502 @@ -41041,7 +41044,7 @@ label L1502 label L1500 load 306 node field 307 306 0 string kind -strref 308 m13s720 +strref 308 m13s723 call 309 pith_cstring_eq bool 2 307 308 call 310 pith_cstring_release void 1 308 brif 309 L1504 L1505 @@ -41058,7 +41061,7 @@ label L1505 label L1503 load 318 node field 319 318 0 string kind -strref 320 m13s719 +strref 320 m13s722 call 321 pith_cstring_eq bool 2 319 320 call 322 pith_cstring_release void 1 320 brif 321 L1507 L1508 @@ -41075,7 +41078,7 @@ label L1508 label L1506 load 330 node field 331 330 0 string kind -strref 332 m13s718 +strref 332 m13s721 call 333 pith_cstring_eq bool 2 331 332 call 334 pith_cstring_release void 1 332 brif 333 L1510 L1511 @@ -41092,7 +41095,7 @@ label L1511 label L1509 load 342 node field 343 342 0 string kind -strref 344 m13s717 +strref 344 m13s720 call 345 pith_cstring_eq bool 2 343 344 call 346 pith_cstring_release void 1 344 brif 345 L1513 L1514 @@ -41109,7 +41112,7 @@ label L1514 label L1512 load 354 node field 355 354 0 string kind -strref 356 m13s716 +strref 356 m13s719 call 357 pith_cstring_eq bool 2 355 356 call 358 pith_cstring_release void 1 356 brif 357 L1516 L1517 @@ -41194,7 +41197,7 @@ label L1529 label L1527 load 414 node field 415 414 0 string kind -strref 416 m13s715 +strref 416 m13s718 call 417 pith_cstring_eq bool 2 415 416 call 418 pith_cstring_release void 1 416 brif 417 L1531 L1532 @@ -41211,7 +41214,7 @@ label L1532 label L1530 load 426 node field 427 426 0 string kind -strref 428 m13s714 +strref 428 m13s717 call 429 pith_cstring_eq bool 2 427 428 call 430 pith_cstring_release void 1 428 brif 429 L1534 L1535 @@ -41228,7 +41231,7 @@ label L1535 label L1533 load 438 node field 439 438 0 string kind -strref 440 m13s713 +strref 440 m13s716 call 441 pith_cstring_eq bool 2 439 440 call 442 pith_cstring_release void 1 440 brif 441 L1537 L1538 @@ -41699,11 +41702,11 @@ strref 21 m13s349 load 22 name concat 23 21 22 call 24 pith_cstring_release void 1 21 -strref 25 m13s712 +strref 25 m13s715 concat 26 23 25 call 27 pith_cstring_release void 1 23 call 28 pith_cstring_release void 1 25 -strref 29 m13s711 +strref 29 m13s714 call 30 checker_diagnostics_report_error_with_fix_at void 4 19 20 26 29 call 31 pith_cstring_release void 1 20 call 32 pith_cstring_release void 1 26 @@ -41729,7 +41732,7 @@ label L1612 label L1610 load 39 node_idx strref 40 m13s550 -strref 41 m13s710 +strref 41 m13s713 load 42 name concat 43 41 42 call 44 pith_cstring_release void 1 41 @@ -41782,7 +41785,7 @@ call 26 types_lookup_type_id int 1 25 call 27 pith_cstring_release void 1 25 store tid_string 26 load 28 op -strref 29 m13s709 +strref 29 m13s712 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 brif 30 L1617 L1618 @@ -41832,14 +41835,14 @@ store right 66 iconst 67 0 store __or_67_1622 67 load 68 op -strref 69 m13s694 +strref 69 m13s697 call 70 pith_cstring_eq bool 2 68 69 call 71 pith_cstring_release void 1 69 store __or_67_1622 70 brif 70 L1623 L1622 label L1622 load 72 op -strref 73 m13s692 +strref 73 m13s695 call 74 pith_cstring_eq bool 2 72 73 call 75 pith_cstring_release void 1 73 store __or_67_1622 74 @@ -42031,7 +42034,7 @@ eq 184 182 183 brif 184 L1664 L1665 label L1664 strref 185 m13s413 -strref 186 m13s708 +strref 186 m13s711 load 187 left call 188 types_get_type_name string 1 187 concat 189 186 188 @@ -42056,7 +42059,7 @@ neq 204 202 203 brif 204 L1667 L1668 label L1667 strref 205 m13s413 -strref 206 m13s707 +strref 206 m13s710 load 207 left call 208 types_get_type_name string 1 207 concat 209 206 208 @@ -42095,7 +42098,7 @@ ret 231 label L1662 label L1660 load 238 op -strref 239 m13s706 +strref 239 m13s709 call 240 pith_cstring_eq bool 2 238 239 call 241 pith_cstring_release void 1 239 brif 240 L1670 L1671 @@ -42107,7 +42110,7 @@ eq 245 243 244 brif 245 L1673 L1674 label L1673 strref 246 m13s413 -strref 247 m13s705 +strref 247 m13s708 load 248 left call 249 types_get_type_name string 1 248 concat 250 247 249 @@ -42132,7 +42135,7 @@ neq 265 263 264 brif 265 L1676 L1677 label L1676 strref 266 m13s413 -strref 267 m13s704 +strref 267 m13s707 load 268 left call 269 types_get_type_name string 1 268 concat 270 267 269 @@ -42171,7 +42174,7 @@ ret 292 label L1671 label L1669 load 299 op -strref 300 m13s703 +strref 300 m13s706 call 301 pith_cstring_eq bool 2 299 300 call 302 pith_cstring_release void 1 300 brif 301 L1679 L1680 @@ -42183,7 +42186,7 @@ eq 306 304 305 brif 306 L1682 L1683 label L1682 strref 307 m13s413 -strref 308 m13s702 +strref 308 m13s705 load 309 left call 310 types_get_type_name string 1 309 concat 311 308 310 @@ -42208,7 +42211,7 @@ neq 326 324 325 brif 326 L1685 L1686 label L1685 strref 327 m13s413 -strref 328 m13s701 +strref 328 m13s704 load 329 left call 330 types_get_type_name string 1 329 concat 331 328 330 @@ -42247,7 +42250,7 @@ ret 353 label L1680 label L1678 load 360 op -strref 361 m13s700 +strref 361 m13s703 call 362 pith_cstring_eq bool 2 360 361 call 363 pith_cstring_release void 1 361 brif 362 L1688 L1689 @@ -42259,7 +42262,7 @@ eq 367 365 366 brif 367 L1691 L1692 label L1691 strref 368 m13s413 -strref 369 m13s699 +strref 369 m13s702 load 370 left call 371 types_get_type_name string 1 370 concat 372 369 371 @@ -42284,7 +42287,7 @@ neq 387 385 386 brif 387 L1694 L1695 label L1694 strref 388 m13s413 -strref 389 m13s698 +strref 389 m13s701 load 390 left call 391 types_get_type_name string 1 390 concat 392 389 391 @@ -42323,7 +42326,7 @@ ret 414 label L1689 label L1687 load 421 op -strref 422 m13s697 +strref 422 m13s700 call 423 pith_cstring_eq bool 2 421 422 call 424 pith_cstring_release void 1 422 brif 423 L1697 L1698 @@ -42335,7 +42338,7 @@ eq 428 426 427 brif 428 L1700 L1701 label L1700 strref 429 m13s413 -strref 430 m13s696 +strref 430 m13s699 load 431 left call 432 types_get_type_name string 1 431 concat 433 430 432 @@ -42360,7 +42363,7 @@ neq 448 446 447 brif 448 L1703 L1704 label L1703 strref 449 m13s413 -strref 450 m13s695 +strref 450 m13s698 load 451 left call 452 types_get_type_name string 1 451 concat 453 450 452 @@ -42399,7 +42402,7 @@ ret 475 label L1698 label L1696 load 482 op -strref 483 m13s694 +strref 483 m13s697 call 484 pith_cstring_eq bool 2 482 483 call 485 pith_cstring_release void 1 483 brif 484 L1706 L1707 @@ -42423,7 +42426,7 @@ load 495 __and_486_1711 brif 495 L1709 L1710 label L1709 strref 496 m13s413 -strref 497 m13s693 +strref 497 m13s696 load 498 left call 499 types_get_type_name string 1 498 concat 500 497 499 @@ -42462,7 +42465,7 @@ ret 522 label L1707 label L1705 load 529 op -strref 530 m13s692 +strref 530 m13s695 call 531 pith_cstring_eq bool 2 529 530 call 532 pith_cstring_release void 1 530 brif 531 L1714 L1715 @@ -42486,7 +42489,7 @@ load 542 __and_533_1719 brif 542 L1717 L1718 label L1717 strref 543 m13s413 -strref 544 m13s691 +strref 544 m13s694 load 545 left call 546 types_get_type_name string 1 545 concat 547 544 546 @@ -42525,7 +42528,7 @@ ret 569 label L1715 label L1713 load 576 op -strref 577 m13s690 +strref 577 m13s693 call 578 pith_cstring_eq bool 2 576 577 call 579 pith_cstring_release void 1 577 brif 578 L1722 L1723 @@ -42542,7 +42545,7 @@ neq 586 584 585 brif 586 L1728 L1729 label L1728 strref 587 m13s413 -strref 588 m13s689 +strref 588 m13s692 load 589 left call 590 types_get_type_name string 1 589 concat 591 588 590 @@ -42570,7 +42573,7 @@ neq 606 604 605 brif 606 L1731 L1732 label L1731 strref 607 m13s413 -strref 608 m13s688 +strref 608 m13s691 load 609 left call 610 types_get_type_name string 1 609 concat 611 608 610 @@ -42609,7 +42612,7 @@ ret 633 label L1723 label L1721 load 640 op -strref 641 m13s687 +strref 641 m13s690 call 642 pith_cstring_eq bool 2 640 641 call 643 pith_cstring_release void 1 641 brif 642 L1734 L1735 @@ -42626,7 +42629,7 @@ neq 650 648 649 brif 650 L1740 L1741 label L1740 strref 651 m13s413 -strref 652 m13s686 +strref 652 m13s689 load 653 left call 654 types_get_type_name string 1 653 concat 655 652 654 @@ -42654,7 +42657,7 @@ neq 670 668 669 brif 670 L1743 L1744 label L1743 strref 671 m13s413 -strref 672 m13s685 +strref 672 m13s688 load 673 left call 674 types_get_type_name string 1 673 concat 675 672 674 @@ -42693,7 +42696,7 @@ ret 697 label L1735 label L1733 load 704 op -strref 705 m13s684 +strref 705 m13s687 call 706 pith_cstring_eq bool 2 704 705 call 707 pith_cstring_release void 1 705 brif 706 L1746 L1747 @@ -42710,7 +42713,7 @@ neq 714 712 713 brif 714 L1752 L1753 label L1752 strref 715 m13s413 -strref 716 m13s683 +strref 716 m13s686 load 717 left call 718 types_get_type_name string 1 717 concat 719 716 718 @@ -42738,7 +42741,7 @@ neq 734 732 733 brif 734 L1755 L1756 label L1755 strref 735 m13s413 -strref 736 m13s682 +strref 736 m13s685 load 737 left call 738 types_get_type_name string 1 737 concat 739 736 738 @@ -42777,7 +42780,7 @@ ret 761 label L1747 label L1745 load 768 op -strref 769 m13s681 +strref 769 m13s684 call 770 pith_cstring_eq bool 2 768 769 call 771 pith_cstring_release void 1 769 brif 770 L1758 L1759 @@ -42794,7 +42797,7 @@ neq 778 776 777 brif 778 L1764 L1765 label L1764 strref 779 m13s413 -strref 780 m13s680 +strref 780 m13s683 load 781 left call 782 types_get_type_name string 1 781 concat 783 780 782 @@ -42822,7 +42825,7 @@ neq 798 796 797 brif 798 L1767 L1768 label L1767 strref 799 m13s413 -strref 800 m13s679 +strref 800 m13s682 load 801 left call 802 types_get_type_name string 1 801 concat 803 800 802 @@ -42861,7 +42864,7 @@ ret 825 label L1759 label L1757 load 832 op -strref 833 m13s678 +strref 833 m13s681 call 834 pith_cstring_eq bool 2 832 833 call 835 pith_cstring_release void 1 833 brif 834 L1770 L1771 @@ -42872,7 +42875,7 @@ neq 838 836 837 brif 838 L1773 L1774 label L1773 strref 839 m13s413 -strref 840 m13s677 +strref 840 m13s680 load 841 left call 842 types_get_type_name string 1 841 concat 843 840 842 @@ -42897,7 +42900,7 @@ neq 858 856 857 brif 858 L1776 L1777 label L1776 strref 859 m13s413 -strref 860 m13s677 +strref 860 m13s680 load 861 right call 862 types_get_type_name string 1 861 concat 863 860 862 @@ -42927,7 +42930,7 @@ ret 876 label L1771 label L1769 load 883 op -strref 884 m13s676 +strref 884 m13s679 call 885 pith_cstring_eq bool 2 883 884 call 886 pith_cstring_release void 1 884 brif 885 L1779 L1780 @@ -42938,7 +42941,7 @@ neq 889 887 888 brif 889 L1782 L1783 label L1782 strref 890 m13s413 -strref 891 m13s675 +strref 891 m13s678 load 892 left call 893 types_get_type_name string 1 892 concat 894 891 893 @@ -42963,7 +42966,7 @@ neq 909 907 908 brif 909 L1785 L1786 label L1785 strref 910 m13s413 -strref 911 m13s675 +strref 911 m13s678 load 912 right call 913 types_get_type_name string 1 912 concat 914 911 913 @@ -43057,7 +43060,7 @@ call 33 pith_cstring_release void 1 29 brif 30 L1791 L1792 label L1791 strref 34 m13s579 -strref 35 m13s674 +strref 35 m13s677 call 36 checker_diagnostics_report_error void 2 34 35 call 37 pith_cstring_release void 1 34 call 38 pith_cstring_release void 1 35 @@ -43123,7 +43126,7 @@ strref 84 m13s349 load 85 fn_name concat 86 84 85 call 87 pith_cstring_release void 1 84 -strref 88 m13s673 +strref 88 m13s676 concat 89 86 88 call 90 pith_cstring_release void 1 86 call 91 pith_cstring_release void 1 88 @@ -43148,11 +43151,11 @@ neq 106 104 105 brif 106 L1800 L1801 label L1800 strref 107 m13s307 -strref 108 m13s672 +strref 108 m13s675 load 109 fn_name concat 110 108 109 call 111 pith_cstring_release void 1 108 -strref 112 m13s671 +strref 112 m13s674 concat 113 110 112 call 114 pith_cstring_release void 1 110 call 115 pith_cstring_release void 1 112 @@ -43178,7 +43181,7 @@ neq 131 126 130 brif 131 L1803 L1804 label L1803 strref 132 m13s375 -strref 133 m13s670 +strref 133 m13s673 load 134 fn_info field 135 134 48 list param_types iconst 136 0 @@ -43273,7 +43276,7 @@ call 28 pith_cstring_retain void 1 27 call 29 pith_cstring_release void 1 25 store op 27 load 30 op -strref 31 m13s669 +strref 31 m13s672 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 brif 32 L1812 L1813 @@ -43285,7 +43288,7 @@ eq 37 35 36 brif 37 L1815 L1816 label L1815 strref 38 m13s413 -strref 39 m13s668 +strref 39 m13s671 load 40 operand call 41 types_get_type_name string 1 40 concat 42 39 41 @@ -43307,7 +43310,7 @@ ret 51 label L1813 label L1811 load 54 op -strref 55 m13s667 +strref 55 m13s670 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 brif 56 L1818 L1819 @@ -43318,7 +43321,7 @@ neq 60 58 59 brif 60 L1821 L1822 label L1821 strref 61 m13s413 -strref 62 m13s666 +strref 62 m13s669 load 63 operand call 64 types_get_type_name string 1 63 concat 65 62 64 @@ -43494,7 +43497,7 @@ iconst 95 0 store __or_95_1845 95 load 96 recv_node field 97 96 8 string value -strref 98 m13s665 +strref 98 m13s668 call 99 pith_cstring_eq bool 2 97 98 call 100 pith_cstring_release void 1 98 store __or_95_1845 99 @@ -43502,7 +43505,7 @@ brif 99 L1846 L1845 label L1845 load 101 recv_node field 102 101 8 string value -strref 103 m13s664 +strref 103 m13s667 call 104 pith_cstring_eq bool 2 102 103 call 105 pith_cstring_release void 1 103 store __or_95_1845 104 @@ -43646,7 +43649,7 @@ load 83 checker_module_aliases load 84 recv_node field 85 84 8 string value call 86 map_get_strict string 2 83 85 -strref 87 m13s661 +strref 87 m13s659 call 88 pith_cstring_eq bool 2 86 87 call 89 pith_cstring_release void 1 87 brif 88 L1867 L1868 @@ -43666,7 +43669,7 @@ iconst 95 0 store __or_95_1869 95 load 96 recv_node field 97 96 8 string value -strref 98 m13s660 +strref 98 m13s658 call 99 pith_cstring_eq bool 2 97 98 call 100 pith_cstring_release void 1 98 store __or_95_1869 99 @@ -43674,7 +43677,7 @@ brif 99 L1870 L1869 label L1869 load 101 recv_node field 102 101 8 string value -strref 103 m13s659 +strref 103 m13s657 call 104 pith_cstring_eq bool 2 102 103 call 105 pith_cstring_release void 1 103 store __or_95_1869 104 @@ -43692,7 +43695,7 @@ call 114 pith_struct_release void 1 113 iconst 115 0 ret 115 endfunc -func checker_check_toml_decode_callee 2 bool +func checker_handle_decode_module 2 string param index_node param member_name iconst 2 0 @@ -43721,7 +43724,7 @@ label L1875 load 17 __or_4_1874 brif 17 L1872 L1873 label L1872 -iconst 18 0 +strref 18 m13s35 load 19 base_node call 20 pith_struct_release void 1 19 load 21 recv_node @@ -43760,7 +43763,7 @@ label L1880 load 44 __or_30_1879 brif 44 L1877 L1878 label L1877 -iconst 45 0 +strref 45 m13s35 load 46 base_node call 47 pith_struct_release void 1 46 load 48 recv_node @@ -43775,7 +43778,7 @@ iconst 53 1 lt 54 52 53 brif 54 L1882 L1883 label L1882 -iconst 55 0 +strref 55 m13s35 load 56 base_node call 57 pith_struct_release void 1 56 load 58 recv_node @@ -43800,7 +43803,7 @@ sub 70 72 71 call 73 pith_cstring_release void 1 69 brif 70 L1885 L1886 label L1885 -iconst 74 0 +strref 74 m13s35 load 75 base_node call 76 pith_struct_release void 1 75 load 77 recv_node @@ -43823,7 +43826,7 @@ call 88 pith_cstring_eq bool 2 86 87 call 89 pith_cstring_release void 1 87 brif 88 L1891 L1892 label L1891 -iconst 90 1 +strref 90 m13s664 load 91 base_node call 92 pith_struct_release void 1 91 load 93 recv_node @@ -43831,38 +43834,125 @@ call 94 pith_struct_release void 1 93 ret 90 label L1892 label L1890 -jmp L1887 -label L1889 -label L1887 -iconst 95 0 -store __or_95_1893 95 +load 95 checker_module_aliases load 96 recv_node field 97 96 8 string value -strref 98 m13s663 -call 99 pith_cstring_eq bool 2 97 98 -call 100 pith_cstring_release void 1 98 -store __or_95_1893 99 -brif 99 L1894 L1893 -label L1893 -load 101 recv_node -field 102 101 8 string value -strref 103 m13s662 -call 104 pith_cstring_eq bool 2 102 103 -call 105 pith_cstring_release void 1 103 -store __or_95_1893 104 +call 98 map_get_strict string 2 95 97 +strref 99 m13s666 +call 100 pith_cstring_eq bool 2 98 99 +call 101 pith_cstring_release void 1 99 +brif 100 L1894 L1895 label L1894 -load 106 __or_95_1893 -load 107 base_node -call 108 pith_struct_release void 1 107 -load 109 recv_node -call 110 pith_struct_release void 1 109 -ret 106 -load 111 base_node -call 112 pith_struct_release void 1 111 +strref 102 m13s662 +load 103 base_node +call 104 pith_struct_release void 1 103 +load 105 recv_node +call 106 pith_struct_release void 1 105 +ret 102 +label L1895 +label L1893 +jmp L1887 +label L1889 +label L1887 +iconst 107 0 +store __or_107_1899 107 +load 108 recv_node +field 109 108 8 string value +strref 110 m13s664 +call 111 pith_cstring_eq bool 2 109 110 +call 112 pith_cstring_release void 1 110 +store __or_107_1899 111 +brif 111 L1900 L1899 +label L1899 load 113 recv_node -call 114 pith_struct_release void 1 113 -iconst 115 0 -ret 115 +field 114 113 8 string value +strref 115 m13s665 +call 116 pith_cstring_eq bool 2 114 115 +call 117 pith_cstring_release void 1 115 +store __or_107_1899 116 +label L1900 +load 118 __or_107_1899 +brif 118 L1897 L1898 +label L1897 +strref 119 m13s664 +load 120 base_node +call 121 pith_struct_release void 1 120 +load 122 recv_node +call 123 pith_struct_release void 1 122 +ret 119 +label L1898 +label L1896 +iconst 124 0 +store __or_124_1904 124 +load 125 recv_node +field 126 125 8 string value +strref 127 m13s662 +call 128 pith_cstring_eq bool 2 126 127 +call 129 pith_cstring_release void 1 127 +store __or_124_1904 128 +brif 128 L1905 L1904 +label L1904 +load 130 recv_node +field 131 130 8 string value +strref 132 m13s663 +call 133 pith_cstring_eq bool 2 131 132 +call 134 pith_cstring_release void 1 132 +store __or_124_1904 133 +label L1905 +load 135 __or_124_1904 +brif 135 L1902 L1903 +label L1902 +strref 136 m13s662 +load 137 base_node +call 138 pith_struct_release void 1 137 +load 139 recv_node +call 140 pith_struct_release void 1 139 +ret 136 +label L1903 +label L1901 +strref 141 m13s35 +load 142 base_node +call 143 pith_struct_release void 1 142 +load 144 recv_node +call 145 pith_struct_release void 1 144 +ret 141 +load 146 base_node +call 147 pith_struct_release void 1 146 +load 148 recv_node +call 149 pith_struct_release void 1 148 +iconst 150 0 +ret 150 +endfunc +func checker_check_handle_decode_callee 2 bool +param index_node +param member_name +load 2 index_node +load 3 member_name +call 4 checker_handle_decode_module string 2 2 3 +call 5 string_len int 1 4 +call 6 pith_cstring_release void 1 4 +iconst 7 0 +gt 8 5 7 +ret 8 +iconst 9 0 +ret 9 +endfunc +func checker_handle_decode_error_type 1 string +param module_name +load 1 module_name +strref 2 m13s662 +call 3 pith_cstring_eq bool 2 1 2 +call 4 pith_cstring_release void 1 2 +brif 3 L1907 L1908 +label L1907 +strref 5 m13s661 +ret 5 +label L1908 +label L1906 +strref 6 m13s660 +ret 6 +iconst 7 0 +ret 7 endfunc func checker_check_config_file_decode_callee 2 bool param index_node @@ -43872,7 +43962,7 @@ store base_node 2 iconst 3 0 store recv_node 3 iconst 4 0 -store __or_4_1898 4 +store __or_4_1912 4 load 5 index_node field 6 5 0 string kind strref 7 m13s291 @@ -43880,27 +43970,27 @@ call 9 pith_cstring_eq bool 2 6 7 iconst 10 1 sub 8 10 9 call 11 pith_cstring_release void 1 7 -store __or_4_1898 8 -brif 8 L1899 L1898 -label L1898 +store __or_4_1912 8 +brif 8 L1913 L1912 +label L1912 load 12 index_node field 13 12 16 list children call 14 pith_list_len int 1 13 iconst 15 2 lt 16 14 15 -store __or_4_1898 16 -label L1899 -load 17 __or_4_1898 -brif 17 L1896 L1897 -label L1896 +store __or_4_1912 16 +label L1913 +load 17 __or_4_1912 +brif 17 L1910 L1911 +label L1910 iconst 18 0 load 19 base_node call 20 pith_struct_release void 1 19 load 21 recv_node call 22 pith_struct_release void 1 21 ret 18 -label L1897 -label L1895 +label L1911 +label L1909 load 23 base_node load 24 index_node field 25 24 16 list children @@ -43914,8 +44004,8 @@ field 31 30 0 string kind strref 32 m13s293 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 -brif 33 L1901 L1902 -label L1901 +brif 33 L1915 L1916 +label L1915 load 35 base_node field 36 35 8 string value load 37 member_name @@ -43925,10 +44015,10 @@ call 40 pith_struct_release void 1 39 load 41 recv_node call 42 pith_struct_release void 1 41 ret 38 -label L1902 -label L1900 +label L1916 +label L1914 iconst 43 0 -store __or_43_1906 43 +store __or_43_1920 43 load 44 base_node field 45 44 0 string kind strref 46 m13s292 @@ -43936,43 +44026,43 @@ call 48 pith_cstring_eq bool 2 45 46 iconst 49 1 sub 47 49 48 call 50 pith_cstring_release void 1 46 -store __or_43_1906 47 -brif 47 L1907 L1906 -label L1906 +store __or_43_1920 47 +brif 47 L1921 L1920 +label L1920 load 51 base_node field 52 51 8 string value load 53 member_name call 55 pith_cstring_eq bool 2 52 53 iconst 56 1 sub 54 56 55 -store __or_43_1906 54 -label L1907 -load 57 __or_43_1906 -brif 57 L1904 L1905 -label L1904 +store __or_43_1920 54 +label L1921 +load 57 __or_43_1920 +brif 57 L1918 L1919 +label L1918 iconst 58 0 load 59 base_node call 60 pith_struct_release void 1 59 load 61 recv_node call 62 pith_struct_release void 1 61 ret 58 -label L1905 -label L1903 +label L1919 +label L1917 load 63 base_node field 64 63 16 list children call 65 pith_list_len int 1 64 iconst 66 1 lt 67 65 66 -brif 67 L1909 L1910 -label L1909 +brif 67 L1923 L1924 +label L1923 iconst 68 0 load 69 base_node call 70 pith_struct_release void 1 69 load 71 recv_node call 72 pith_struct_release void 1 71 ret 68 -label L1910 -label L1908 +label L1924 +label L1922 load 73 recv_node load 74 base_node field 75 74 16 list children @@ -43988,60 +44078,60 @@ call 84 pith_cstring_eq bool 2 81 82 iconst 85 1 sub 83 85 84 call 86 pith_cstring_release void 1 82 -brif 83 L1912 L1913 -label L1912 +brif 83 L1926 L1927 +label L1926 iconst 87 0 load 88 base_node call 89 pith_struct_release void 1 88 load 90 recv_node call 91 pith_struct_release void 1 90 ret 87 -label L1913 -label L1911 +label L1927 +label L1925 load 92 checker_module_aliases load 93 recv_node field 94 93 8 string value call 95 contains_key bool 2 92 94 -brif 95 L1915 L1916 -label L1915 +brif 95 L1929 L1930 +label L1929 load 96 checker_module_aliases load 97 recv_node field 98 97 8 string value call 99 map_get_strict string 2 96 98 -strref 100 m13s661 +strref 100 m13s659 call 101 pith_cstring_eq bool 2 99 100 call 102 pith_cstring_release void 1 100 -brif 101 L1918 L1919 -label L1918 +brif 101 L1932 L1933 +label L1932 iconst 103 1 load 104 base_node call 105 pith_struct_release void 1 104 load 106 recv_node call 107 pith_struct_release void 1 106 ret 103 -label L1919 -label L1917 -jmp L1914 -label L1916 -label L1914 +label L1933 +label L1931 +jmp L1928 +label L1930 +label L1928 iconst 108 0 -store __or_108_1920 108 +store __or_108_1934 108 load 109 recv_node field 110 109 8 string value -strref 111 m13s660 +strref 111 m13s658 call 112 pith_cstring_eq bool 2 110 111 call 113 pith_cstring_release void 1 111 -store __or_108_1920 112 -brif 112 L1921 L1920 -label L1920 +store __or_108_1934 112 +brif 112 L1935 L1934 +label L1934 load 114 recv_node field 115 114 8 string value -strref 116 m13s659 +strref 116 m13s657 call 117 pith_cstring_eq bool 2 115 116 call 118 pith_cstring_release void 1 116 -store __or_108_1920 117 -label L1921 -load 119 __or_108_1920 +store __or_108_1934 117 +label L1935 +load 119 __or_108_1934 load 120 base_node call 121 pith_struct_release void 1 120 load 122 recv_node @@ -44070,8 +44160,8 @@ field 8 7 0 string kind strref 9 m13s293 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 -brif 10 L1923 L1924 -label L1923 +brif 10 L1937 L1938 +label L1937 load 12 type_arg field 13 12 8 string value call 14 checker_resolve_named_type int 1 13 @@ -44080,28 +44170,28 @@ call 16 pith_struct_release void 1 15 load 17 recv call 18 pith_struct_release void 1 17 ret 14 -label L1924 -label L1922 +label L1938 +label L1936 iconst 19 0 -store __and_19_1928 19 +store __and_19_1942 19 load 20 type_arg field 21 20 0 string kind strref 22 m13s292 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 -store __and_19_1928 23 -brif 23 L1928 L1929 -label L1928 +store __and_19_1942 23 +brif 23 L1942 L1943 +label L1942 load 25 type_arg field 26 25 16 list children call 27 pith_list_len int 1 26 iconst 28 0 gt 29 27 28 -store __and_19_1928 29 -label L1929 -load 30 __and_19_1928 -brif 30 L1926 L1927 -label L1926 +store __and_19_1942 29 +label L1943 +load 30 __and_19_1942 +brif 30 L1940 L1941 +label L1940 load 31 recv load 32 type_arg field 33 32 16 list children @@ -44115,8 +44205,8 @@ field 39 38 0 string kind strref 40 m13s293 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 -brif 41 L1931 L1932 -label L1931 +brif 41 L1945 L1946 +label L1945 load 43 recv field 44 43 8 string value strref 45 m13s123 @@ -44133,13 +44223,13 @@ call 55 pith_struct_release void 1 54 load 56 recv call 57 pith_struct_release void 1 56 ret 52 -label L1932 -label L1930 -jmp L1925 -label L1927 -label L1925 +label L1946 +label L1944 +jmp L1939 +label L1941 +label L1939 strref 58 m13s310 -strref 59 m13s658 +strref 59 m13s656 call 60 checker_diagnostics_report_error void 2 58 59 call 61 pith_cstring_release void 1 58 call 62 pith_cstring_release void 1 59 @@ -44158,13 +44248,13 @@ ret 72 endfunc func checker_decode_support_seen_key 1 string param field_tid -strref 1 m13s657 +strref 1 m13s655 load 2 field_tid call 3 int_to_string string 1 2 concat 4 1 3 call 5 pith_cstring_release void 1 1 call 6 pith_cstring_release void 1 3 -strref 7 m13s657 +strref 7 m13s655 concat 8 4 7 call 9 pith_cstring_release void 1 4 call 10 pith_cstring_release void 1 7 @@ -44182,38 +44272,38 @@ store seen_key 3 iconst 4 0 store next_seen 4 iconst 5 0 -store __or_5_1936 5 +store __or_5_1950 5 iconst 6 0 -store __or_6_1936 6 +store __or_6_1950 6 load 7 field_tid strref 8 m13s11 call 9 types_lookup_type_id int 1 8 call 10 pith_cstring_release void 1 8 eq 11 7 9 -store __or_6_1936 11 -brif 11 L1937 L1936 -label L1936 +store __or_6_1950 11 +brif 11 L1951 L1950 +label L1950 load 12 field_tid strref 13 m13s15 call 14 types_lookup_type_id int 1 13 call 15 pith_cstring_release void 1 13 eq 16 12 14 -store __or_6_1936 16 -label L1937 -load 17 __or_6_1936 -store __or_5_1936 17 -brif 17 L1939 L1938 -label L1938 +store __or_6_1950 16 +label L1951 +load 17 __or_6_1950 +store __or_5_1950 17 +brif 17 L1953 L1952 +label L1952 load 18 field_tid strref 19 m13s12 call 20 types_lookup_type_id int 1 19 call 21 pith_cstring_release void 1 19 eq 22 18 20 -store __or_5_1936 22 -label L1939 -load 23 __or_5_1936 -brif 23 L1934 L1935 -label L1934 +store __or_5_1950 22 +label L1953 +load 23 __or_5_1950 +brif 23 L1948 L1949 +label L1948 iconst 24 1 load 25 info call 26 pith_struct_release void 1 25 @@ -44222,32 +44312,32 @@ call 28 pith_cstring_release void 1 27 load 29 next_seen call 30 pith_cstring_release void 1 29 ret 24 -label L1935 -label L1933 +label L1949 +label L1947 load 31 info load 32 field_tid call 33 types_get_type_info struct:TypeInfo 1 32 call 34 pith_struct_release void 1 31 store info 33 iconst 35 0 -store __and_35_1943 35 +store __and_35_1957 35 load 36 info field 37 36 0 string kind strref 38 m13s29 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 -store __and_35_1943 39 -brif 39 L1943 L1944 -label L1943 +store __and_35_1957 39 +brif 39 L1957 L1958 +label L1957 load 41 info field 42 41 64 int inner iconst 43 0 gte 44 42 43 -store __and_35_1943 44 -label L1944 -load 45 __and_35_1943 -brif 45 L1941 L1942 -label L1941 +store __and_35_1957 44 +label L1958 +load 45 __and_35_1957 +brif 45 L1955 L1956 +label L1955 load 46 info field 47 46 64 int inner load 48 seen @@ -44259,15 +44349,15 @@ call 53 pith_cstring_release void 1 52 load 54 next_seen call 55 pith_cstring_release void 1 54 ret 49 -label L1942 -label L1940 +label L1956 +label L1954 load 56 info field 57 56 0 string kind strref 58 m13s34 call 59 pith_cstring_eq bool 2 57 58 call 60 pith_cstring_release void 1 58 -brif 59 L1946 L1947 -label L1946 +brif 59 L1960 L1961 +label L1960 load 61 seen_key load 62 field_tid call 63 checker_decode_support_seen_key string 1 62 @@ -44276,8 +44366,8 @@ store seen_key 63 load 65 seen load 66 seen_key call 67 pith_cstring_contains bool 2 65 66 -brif 67 L1949 L1950 -label L1949 +brif 67 L1963 L1964 +label L1963 iconst 68 0 load 69 info call 70 pith_struct_release void 1 69 @@ -44286,8 +44376,8 @@ call 72 pith_cstring_release void 1 71 load 73 next_seen call 74 pith_cstring_release void 1 73 ret 68 -label L1950 -label L1948 +label L1964 +label L1962 load 75 next_seen load 76 seen load 77 seen_key @@ -44301,12 +44391,12 @@ iconst 83 0 store __for_idx_121 83 store __for_len_121 82 store __for_iter_121 81 -label L1951 +label L1965 load 84 __for_idx_121 load 85 __for_len_121 lt 86 84 85 -brif 86 L1952 L1954 -label L1952 +brif 86 L1966 L1968 +label L1966 load 87 __for_iter_121 load 88 __for_idx_121 call 89 pith_list_get_value_unchecked string 2 87 88 @@ -44314,26 +44404,26 @@ store __loopvar_121_field_name 89 load 90 __for_idx_121 store __loopvar_121_i 90 iconst 91 0 -store __and_91_1958 91 +store __and_91_1972 91 load 92 __loopvar_121_i load 93 info field 94 93 32 list field_pub call 95 pith_list_len int 1 94 lt 96 92 95 -store __and_91_1958 96 -brif 96 L1958 L1959 -label L1958 +store __and_91_1972 96 +brif 96 L1972 L1973 +label L1972 load 97 info field 98 97 32 list field_pub load 99 __loopvar_121_i call 100 pith_list_get_value_strict bool 2 98 99 iconst 102 1 sub 101 102 100 -store __and_91_1958 101 -label L1959 -load 103 __and_91_1958 -brif 103 L1956 L1957 -label L1956 +store __and_91_1972 101 +label L1973 +load 103 __and_91_1972 +brif 103 L1970 L1971 +label L1970 iconst 104 0 load 105 info call 106 pith_struct_release void 1 105 @@ -44342,15 +44432,15 @@ call 108 pith_cstring_release void 1 107 load 109 next_seen call 110 pith_cstring_release void 1 109 ret 104 -label L1957 -label L1955 +label L1971 +label L1969 load 111 __loopvar_121_i load 112 info field 113 112 24 list field_types call 114 pith_list_len int 1 113 gte 115 111 114 -brif 115 L1961 L1962 -label L1961 +brif 115 L1975 L1976 +label L1975 iconst 116 0 load 117 info call 118 pith_struct_release void 1 117 @@ -44359,8 +44449,8 @@ call 120 pith_cstring_release void 1 119 load 121 next_seen call 122 pith_cstring_release void 1 121 ret 116 -label L1962 -label L1960 +label L1976 +label L1974 load 123 info field 124 123 24 list field_types load 125 __loopvar_121_i @@ -44369,8 +44459,8 @@ load 127 next_seen call 128 checker_json_decode_field_supported_with_seen bool 2 126 127 iconst 130 1 sub 129 130 128 -brif 129 L1964 L1965 -label L1964 +brif 129 L1978 L1979 +label L1978 iconst 131 0 load 132 info call 133 pith_struct_release void 1 132 @@ -44379,15 +44469,15 @@ call 135 pith_cstring_release void 1 134 load 136 next_seen call 137 pith_cstring_release void 1 136 ret 131 -label L1965 -label L1963 -label L1953 +label L1979 +label L1977 +label L1967 load 138 __for_idx_121 iconst 139 1 add 140 138 139 store __for_idx_121 140 -jmp L1951 -label L1954 +jmp L1965 +label L1968 iconst 141 1 load 142 info call 143 pith_struct_release void 1 142 @@ -44396,8 +44486,8 @@ call 145 pith_cstring_release void 1 144 load 146 next_seen call 147 pith_cstring_release void 1 146 ret 141 -label L1947 -label L1945 +label L1961 +label L1959 iconst 148 0 load 149 info call 150 pith_struct_release void 1 149 @@ -44437,10 +44527,10 @@ field 6 5 16 list children call 7 pith_list_len int 1 6 iconst 8 2 lt 9 7 8 -brif 9 L1967 L1968 -label L1967 +brif 9 L1981 L1982 +label L1981 strref 10 m13s557 -strref 11 m13s656 +strref 11 m13s654 call 12 checker_diagnostics_report_error void 2 10 11 call 13 pith_cstring_release void 1 10 call 14 pith_cstring_release void 1 11 @@ -44448,32 +44538,32 @@ load 15 types_TID_ERR load 16 target_info call 17 pith_struct_release void 1 16 ret 15 -label L1968 -label L1966 +label L1982 +label L1980 iconst 18 1 store expected_args 18 load 19 prefixed -brif 19 L1970 L1971 -label L1970 +brif 19 L1984 L1985 +label L1984 iconst 20 2 store expected_args 20 -jmp L1969 -label L1971 -label L1969 +jmp L1983 +label L1985 +label L1983 load 21 arg_indices call 22 pith_list_len int 1 21 load 23 expected_args neq 24 22 23 -brif 24 L1973 L1974 -label L1973 +brif 24 L1987 L1988 +label L1987 strref 25 m13s307 -strref 26 m13s655 +strref 26 m13s653 load 27 expected_args call 28 int_to_string string 1 27 concat 29 26 28 call 30 pith_cstring_release void 1 26 call 31 pith_cstring_release void 1 28 -strref 32 m13s654 +strref 32 m13s652 concat 33 29 32 call 34 pith_cstring_release void 1 29 call 35 pith_cstring_release void 1 32 @@ -44490,8 +44580,8 @@ load 45 types_TID_ERR load 46 target_info call 47 pith_struct_release void 1 46 ret 45 -label L1974 -label L1972 +label L1988 +label L1986 load 48 index_node field 49 48 16 list children iconst 50 1 @@ -44500,14 +44590,14 @@ call 52 checker_resolve_json_decode_type_arg int 1 51 store target_tid 52 load 53 target_tid call 54 types_is_error_type bool 1 53 -brif 54 L1976 L1977 -label L1976 +brif 54 L1990 L1991 +label L1990 load 55 types_TID_ERR load 56 target_info call 57 pith_struct_release void 1 56 ret 55 -label L1977 -label L1975 +label L1991 +label L1989 load 58 target_info load 59 target_tid call 60 types_get_type_info struct:TypeInfo 1 59 @@ -44520,10 +44610,10 @@ call 66 pith_cstring_eq bool 2 63 64 iconst 67 1 sub 65 67 66 call 68 pith_cstring_release void 1 64 -brif 65 L1979 L1980 -label L1979 +brif 65 L1993 L1994 +label L1993 strref 69 m13s304 -strref 70 m13s653 +strref 70 m13s651 load 71 target_tid call 72 types_get_type_name string 1 71 concat 73 70 72 @@ -44536,19 +44626,19 @@ load 79 types_TID_ERR load 80 target_info call 81 pith_struct_release void 1 80 ret 79 -label L1980 -label L1978 -strref 82 m13s652 +label L1994 +label L1992 +strref 82 m13s650 call 83 types_lookup_type_id int 1 82 call 84 pith_cstring_release void 1 82 store cfg_tid 83 load 85 cfg_tid iconst 86 0 lt 87 85 86 -brif 87 L1982 L1983 -label L1982 +brif 87 L1996 L1997 +label L1996 strref 88 m13s310 -strref 89 m13s651 +strref 89 m13s649 call 90 checker_diagnostics_report_error void 2 88 89 call 91 pith_cstring_release void 1 88 call 92 pith_cstring_release void 1 89 @@ -44556,8 +44646,8 @@ load 93 types_TID_ERR load 94 target_info call 95 pith_struct_release void 1 94 ret 93 -label L1983 -label L1981 +label L1997 +label L1995 load 96 arg_indices iconst 97 0 call 98 pith_list_get_value_strict int 2 96 97 @@ -44565,24 +44655,24 @@ load 99 scope_id call 100 checker_c_check_expr int 2 98 99 store first_arg_tid 100 iconst 101 0 -store __and_101_1987 101 +store __and_101_2001 101 load 102 first_arg_tid call 103 types_is_error_type bool 1 102 iconst 104 0 eq 105 103 104 -store __and_101_1987 105 -brif 105 L1987 L1988 -label L1987 +store __and_101_2001 105 +brif 105 L2001 L2002 +label L2001 load 106 first_arg_tid load 107 cfg_tid neq 108 106 107 -store __and_101_1987 108 -label L1988 -load 109 __and_101_1987 -brif 109 L1985 L1986 -label L1985 +store __and_101_2001 108 +label L2002 +load 109 __and_101_2001 +brif 109 L1999 L2000 +label L1999 strref 110 m13s304 -strref 111 m13s650 +strref 111 m13s648 load 112 first_arg_tid call 113 types_get_type_name string 1 112 concat 114 111 113 @@ -44595,11 +44685,11 @@ load 120 types_TID_ERR load 121 target_info call 122 pith_struct_release void 1 121 ret 120 -label L1986 -label L1984 +label L2000 +label L1998 load 123 prefixed -brif 123 L1990 L1991 -label L1990 +brif 123 L2004 L2005 +label L2004 load 124 arg_indices iconst 125 1 call 126 pith_list_get_value_strict int 2 124 125 @@ -44611,24 +44701,24 @@ call 130 types_lookup_type_id int 1 129 call 131 pith_cstring_release void 1 129 store string_tid 130 iconst 132 0 -store __and_132_1995 132 +store __and_132_2009 132 load 133 prefix_tid call 134 types_is_error_type bool 1 133 iconst 135 0 eq 136 134 135 -store __and_132_1995 136 -brif 136 L1995 L1996 -label L1995 +store __and_132_2009 136 +brif 136 L2009 L2010 +label L2009 load 137 prefix_tid load 138 string_tid neq 139 137 138 -store __and_132_1995 139 -label L1996 -load 140 __and_132_1995 -brif 140 L1993 L1994 -label L1993 +store __and_132_2009 139 +label L2010 +load 140 __and_132_2009 +brif 140 L2007 L2008 +label L2007 strref 141 m13s304 -strref 142 m13s649 +strref 142 m13s647 load 143 prefix_tid call 144 types_get_type_name string 1 143 concat 145 142 144 @@ -44641,11 +44731,11 @@ load 151 types_TID_ERR load 152 target_info call 153 pith_struct_release void 1 152 ret 151 -label L1994 -label L1992 -jmp L1989 -label L1991 -label L1989 +label L2008 +label L2006 +jmp L2003 +label L2005 +label L2003 load 154 target_info field 155 154 16 list_string fields call 156 pith_auto_len int 1 155 @@ -44653,12 +44743,12 @@ iconst 157 0 store __for_idx_122 157 store __for_len_122 156 store __for_iter_122 155 -label L1997 +label L2011 load 158 __for_idx_122 load 159 __for_len_122 lt 160 158 159 -brif 160 L1998 L2000 -label L1998 +brif 160 L2012 L2014 +label L2012 load 161 __for_iter_122 load 162 __for_idx_122 call 163 pith_list_get_value_unchecked string 2 161 162 @@ -44666,28 +44756,28 @@ store __loopvar_122_field_name 163 load 164 __for_idx_122 store __loopvar_122_i 164 iconst 165 0 -store __and_165_2004 165 +store __and_165_2018 165 load 166 __loopvar_122_i load 167 target_info field 168 167 32 list field_pub call 169 pith_list_len int 1 168 lt 170 166 169 -store __and_165_2004 170 -brif 170 L2004 L2005 -label L2004 +store __and_165_2018 170 +brif 170 L2018 L2019 +label L2018 load 171 target_info field 172 171 32 list field_pub load 173 __loopvar_122_i call 174 pith_list_get_value_strict bool 2 172 173 iconst 176 1 sub 175 176 174 -store __and_165_2004 175 -label L2005 -load 177 __and_165_2004 -brif 177 L2002 L2003 -label L2002 +store __and_165_2018 175 +label L2019 +load 177 __and_165_2018 +brif 177 L2016 L2017 +label L2016 strref 178 m13s304 -strref 179 m13s648 +strref 179 m13s646 load 180 __loopvar_122_field_name concat 181 179 180 call 182 pith_cstring_release void 1 179 @@ -44698,15 +44788,15 @@ load 186 types_TID_ERR load 187 target_info call 188 pith_struct_release void 1 187 ret 186 -label L2003 -label L2001 +label L2017 +label L2015 load 189 __loopvar_122_i load 190 target_info field 191 190 24 list field_types call 192 pith_list_len int 1 191 lt 193 189 192 -brif 193 L2007 L2008 -label L2007 +brif 193 L2021 L2022 +label L2021 load 194 target_info field 195 194 24 list field_types load 196 __loopvar_122_i @@ -44716,10 +44806,10 @@ load 198 field_tid call 199 checker_json_decode_field_supported bool 1 198 iconst 201 1 sub 200 201 199 -brif 200 L2010 L2011 -label L2010 +brif 200 L2024 L2025 +label L2024 strref 202 m13s304 -strref 203 m13s647 +strref 203 m13s645 load 204 __loopvar_122_field_name concat 205 203 204 call 206 pith_cstring_release void 1 203 @@ -44739,18 +44829,18 @@ load 219 types_TID_ERR load 220 target_info call 221 pith_struct_release void 1 220 ret 219 -label L2011 -label L2009 -jmp L2006 -label L2008 -label L2006 -label L1999 +label L2025 +label L2023 +jmp L2020 +label L2022 +label L2020 +label L2013 load 222 __for_idx_122 iconst 223 1 add 224 222 223 store __for_idx_122 224 -jmp L1997 -label L2000 +jmp L2011 +label L2014 strref 225 m13s623 call 226 types_lookup_type_id int 1 225 call 227 pith_cstring_release void 1 225 @@ -44758,8 +44848,8 @@ store err_tid 226 load 228 err_tid iconst 229 0 lt 230 228 229 -brif 230 L2013 L2014 -label L2013 +brif 230 L2027 L2028 +label L2027 strref 231 m13s310 strref 232 m13s622 call 233 checker_diagnostics_report_error void 2 231 232 @@ -44769,8 +44859,8 @@ load 236 types_TID_ERR load 237 target_info call 238 pith_struct_release void 1 237 ret 236 -label L2014 -label L2012 +label L2028 +label L2026 load 239 target_tid load 240 err_tid call 241 types_ti_result struct:TypeInfo 2 239 240 @@ -44798,10 +44888,10 @@ field 7 6 16 list children call 8 pith_list_len int 1 7 iconst 9 2 lt 10 8 9 -brif 10 L2016 L2017 -label L2016 +brif 10 L2030 L2031 +label L2030 strref 11 m13s557 -strref 12 m13s646 +strref 12 m13s644 call 13 checker_diagnostics_report_error void 2 11 12 call 14 pith_cstring_release void 1 11 call 15 pith_cstring_release void 1 12 @@ -44811,16 +44901,16 @@ call 18 pith_struct_release void 1 17 load 19 arg_node call 20 pith_struct_release void 1 19 ret 16 -label L2017 -label L2015 +label L2031 +label L2029 load 21 arg_indices call 22 pith_list_len int 1 21 iconst 23 1 neq 24 22 23 -brif 24 L2019 L2020 -label L2019 +brif 24 L2033 L2034 +label L2033 strref 25 m13s307 -strref 26 m13s645 +strref 26 m13s643 load 27 arg_indices call 28 pith_list_len int 1 27 call 29 int_to_string string 1 28 @@ -44836,8 +44926,8 @@ call 38 pith_struct_release void 1 37 load 39 arg_node call 40 pith_struct_release void 1 39 ret 36 -label L2020 -label L2018 +label L2034 +label L2032 load 41 index_node field 42 41 16 list children iconst 43 1 @@ -44846,16 +44936,16 @@ call 45 checker_resolve_json_decode_type_arg int 1 44 store target_tid 45 load 46 target_tid call 47 types_is_error_type bool 1 46 -brif 47 L2022 L2023 -label L2022 +brif 47 L2036 L2037 +label L2036 load 48 types_TID_ERR load 49 target_info call 50 pith_struct_release void 1 49 load 51 arg_node call 52 pith_struct_release void 1 51 ret 48 -label L2023 -label L2021 +label L2037 +label L2035 load 53 target_info load 54 target_tid call 55 types_get_type_info struct:TypeInfo 1 54 @@ -44868,10 +44958,10 @@ call 61 pith_cstring_eq bool 2 58 59 iconst 62 1 sub 60 62 61 call 63 pith_cstring_release void 1 59 -brif 60 L2025 L2026 -label L2025 +brif 60 L2039 L2040 +label L2039 strref 64 m13s304 -strref 65 m13s644 +strref 65 m13s642 load 66 target_tid call 67 types_get_type_name string 1 66 concat 68 65 67 @@ -44886,8 +44976,8 @@ call 76 pith_struct_release void 1 75 load 77 arg_node call 78 pith_struct_release void 1 77 ret 74 -label L2026 -label L2024 +label L2040 +label L2038 load 79 arg_node load 80 arg_indices iconst 81 0 @@ -44900,33 +44990,33 @@ iconst 86 0 call 87 pith_list_get_value_strict int 2 85 86 store arg_expr_idx 87 iconst 88 0 -store __and_88_2030 88 +store __and_88_2044 88 load 89 arg_node field 90 89 0 string kind strref 91 m13s298 call 92 pith_cstring_eq bool 2 90 91 call 93 pith_cstring_release void 1 91 -store __and_88_2030 92 -brif 92 L2030 L2031 -label L2030 +store __and_88_2044 92 +brif 92 L2044 L2045 +label L2044 load 94 arg_node field 95 94 16 list children call 96 pith_list_len int 1 95 iconst 97 0 gt 98 96 97 -store __and_88_2030 98 -label L2031 -load 99 __and_88_2030 -brif 99 L2028 L2029 -label L2028 +store __and_88_2044 98 +label L2045 +load 99 __and_88_2044 +brif 99 L2042 L2043 +label L2042 load 100 arg_node field 101 100 16 list children iconst 102 0 call 103 pith_list_get_value_strict int 2 101 102 store arg_expr_idx 103 -jmp L2027 -label L2029 -label L2027 +jmp L2041 +label L2043 +label L2041 load 104 arg_expr_idx load 105 scope_id call 106 checker_c_check_expr int 2 104 105 @@ -44936,34 +45026,34 @@ call 108 types_lookup_type_id int 1 107 call 109 pith_cstring_release void 1 107 store expected_tid 108 load 110 text_input -brif 110 L2033 L2034 -label L2033 +brif 110 L2047 L2048 +label L2047 strref 111 m13s11 call 112 types_lookup_type_id int 1 111 call 113 pith_cstring_release void 1 111 store expected_tid 112 -jmp L2032 -label L2034 -label L2032 +jmp L2046 +label L2048 +label L2046 iconst 114 0 -store __and_114_2038 114 +store __and_114_2052 114 load 115 arg_tid call 116 types_is_error_type bool 1 115 iconst 117 0 eq 118 116 117 -store __and_114_2038 118 -brif 118 L2038 L2039 -label L2038 +store __and_114_2052 118 +brif 118 L2052 L2053 +label L2052 load 119 arg_tid load 120 expected_tid neq 121 119 120 -store __and_114_2038 121 -label L2039 -load 122 __and_114_2038 -brif 122 L2036 L2037 -label L2036 +store __and_114_2052 121 +label L2053 +load 122 __and_114_2052 +brif 122 L2050 L2051 +label L2050 strref 123 m13s304 -strref 124 m13s643 +strref 124 m13s641 load 125 expected_tid call 126 types_get_type_name string 1 125 concat 127 124 126 @@ -44987,8 +45077,8 @@ call 144 pith_struct_release void 1 143 load 145 arg_node call 146 pith_struct_release void 1 145 ret 142 -label L2037 -label L2035 +label L2051 +label L2049 load 147 target_info field 148 147 16 list_string fields call 149 pith_auto_len int 1 148 @@ -44996,12 +45086,12 @@ iconst 150 0 store __for_idx_123 150 store __for_len_123 149 store __for_iter_123 148 -label L2040 +label L2054 load 151 __for_idx_123 load 152 __for_len_123 lt 153 151 152 -brif 153 L2041 L2043 -label L2041 +brif 153 L2055 L2057 +label L2055 load 154 __for_iter_123 load 155 __for_idx_123 call 156 pith_list_get_value_unchecked string 2 154 155 @@ -45009,28 +45099,28 @@ store __loopvar_123_field_name 156 load 157 __for_idx_123 store __loopvar_123_i 157 iconst 158 0 -store __and_158_2047 158 +store __and_158_2061 158 load 159 __loopvar_123_i load 160 target_info field 161 160 32 list field_pub call 162 pith_list_len int 1 161 lt 163 159 162 -store __and_158_2047 163 -brif 163 L2047 L2048 -label L2047 +store __and_158_2061 163 +brif 163 L2061 L2062 +label L2061 load 164 target_info field 165 164 32 list field_pub load 166 __loopvar_123_i call 167 pith_list_get_value_strict bool 2 165 166 iconst 169 1 sub 168 169 167 -store __and_158_2047 168 -label L2048 -load 170 __and_158_2047 -brif 170 L2045 L2046 -label L2045 +store __and_158_2061 168 +label L2062 +load 170 __and_158_2061 +brif 170 L2059 L2060 +label L2059 strref 171 m13s304 -strref 172 m13s642 +strref 172 m13s640 load 173 __loopvar_123_field_name concat 174 172 173 call 175 pith_cstring_release void 1 172 @@ -45043,15 +45133,15 @@ call 181 pith_struct_release void 1 180 load 182 arg_node call 183 pith_struct_release void 1 182 ret 179 -label L2046 -label L2044 +label L2060 +label L2058 load 184 __loopvar_123_i load 185 target_info field 186 185 24 list field_types call 187 pith_list_len int 1 186 lt 188 184 187 -brif 188 L2050 L2051 -label L2050 +brif 188 L2064 L2065 +label L2064 load 189 target_info field 190 189 24 list field_types load 191 __loopvar_123_i @@ -45061,10 +45151,10 @@ load 193 field_tid call 194 checker_json_decode_field_supported bool 1 193 iconst 196 1 sub 195 196 194 -brif 195 L2053 L2054 -label L2053 +brif 195 L2067 L2068 +label L2067 strref 197 m13s304 -strref 198 m13s641 +strref 198 m13s639 load 199 __loopvar_123_field_name concat 200 198 199 call 201 pith_cstring_release void 1 198 @@ -45086,29 +45176,29 @@ call 216 pith_struct_release void 1 215 load 217 arg_node call 218 pith_struct_release void 1 217 ret 214 -label L2054 -label L2052 -jmp L2049 -label L2051 -label L2049 -label L2042 +label L2068 +label L2066 +jmp L2063 +label L2065 +label L2063 +label L2056 load 219 __for_idx_123 iconst 220 1 add 221 219 220 store __for_idx_123 221 -jmp L2040 -label L2043 -strref 222 m13s640 +jmp L2054 +label L2057 +strref 222 m13s638 call 223 types_lookup_type_id int 1 222 call 224 pith_cstring_release void 1 222 store err_tid 223 load 225 err_tid iconst 226 0 lt 227 225 226 -brif 227 L2056 L2057 -label L2056 +brif 227 L2070 L2071 +label L2070 strref 228 m13s310 -strref 229 m13s639 +strref 229 m13s637 call 230 checker_diagnostics_report_error void 2 228 229 call 231 pith_cstring_release void 1 228 call 232 pith_cstring_release void 1 229 @@ -45118,8 +45208,8 @@ call 235 pith_struct_release void 1 234 load 236 arg_node call 237 pith_struct_release void 1 236 ret 233 -label L2057 -label L2055 +label L2071 +label L2069 load 238 target_tid load 239 err_tid call 240 types_ti_result struct:TypeInfo 2 238 239 @@ -45137,358 +45227,435 @@ call 250 pith_struct_release void 1 249 iconst 251 0 ret 251 endfunc -func checker_check_toml_decode_call 4 int +func checker_check_handle_decode_call 5 int param index_node +param module_name param arg_indices param scope_id param text_input -iconst 4 0 -store target_info 4 iconst 5 0 -store arg_node 5 -load 6 index_node -field 7 6 16 list children -call 8 pith_list_len int 1 7 -iconst 9 2 -lt 10 8 9 -brif 10 L2059 L2060 -label L2059 -strref 11 m13s557 -strref 12 m13s638 -call 13 checker_diagnostics_report_error void 2 11 12 -call 14 pith_cstring_release void 1 11 -call 15 pith_cstring_release void 1 12 -load 16 types_TID_ERR -load 17 target_info -call 18 pith_struct_release void 1 17 -load 19 arg_node -call 20 pith_struct_release void 1 19 -ret 16 -label L2060 -label L2058 -load 21 arg_indices -call 22 pith_list_len int 1 21 -iconst 23 1 -neq 24 22 23 -brif 24 L2062 L2063 -label L2062 -strref 25 m13s307 -strref 26 m13s637 -load 27 arg_indices -call 28 pith_list_len int 1 27 -call 29 int_to_string string 1 28 -concat 30 26 29 -call 31 pith_cstring_release void 1 26 -call 32 pith_cstring_release void 1 29 -call 33 checker_diagnostics_report_error void 2 25 30 -call 34 pith_cstring_release void 1 25 -call 35 pith_cstring_release void 1 30 -load 36 types_TID_ERR -load 37 target_info -call 38 pith_struct_release void 1 37 -load 39 arg_node -call 40 pith_struct_release void 1 39 -ret 36 -label L2063 -label L2061 -load 41 index_node -field 42 41 16 list children -iconst 43 1 -call 44 pith_list_get_value_strict int 2 42 43 -call 45 checker_resolve_json_decode_type_arg int 1 44 -store target_tid 45 -load 46 target_tid -call 47 types_is_error_type bool 1 46 -brif 47 L2065 L2066 -label L2065 -load 48 types_TID_ERR -load 49 target_info -call 50 pith_struct_release void 1 49 -load 51 arg_node -call 52 pith_struct_release void 1 51 -ret 48 -label L2066 -label L2064 -load 53 target_info -load 54 target_tid -call 55 types_get_type_info struct:TypeInfo 1 54 -call 56 pith_struct_release void 1 53 -store target_info 55 -load 57 target_info -field 58 57 0 string kind -strref 59 m13s34 -call 61 pith_cstring_eq bool 2 58 59 -iconst 62 1 -sub 60 62 61 -call 63 pith_cstring_release void 1 59 -brif 60 L2068 L2069 -label L2068 -strref 64 m13s304 -strref 65 m13s636 -load 66 target_tid -call 67 types_get_type_name string 1 66 -concat 68 65 67 -call 69 pith_cstring_release void 1 65 -call 70 pith_cstring_release void 1 67 -call 71 checker_diagnostics_report_error void 2 64 68 -call 72 pith_cstring_release void 1 64 -call 73 pith_cstring_release void 1 68 -load 74 types_TID_ERR -load 75 target_info -call 76 pith_struct_release void 1 75 -load 77 arg_node -call 78 pith_struct_release void 1 77 -ret 74 -label L2069 -label L2067 -load 79 arg_node -load 80 arg_indices -iconst 81 0 -call 82 pith_list_get_value_strict int 2 80 81 -call 83 ast_get_node struct:Node 1 82 -call 84 pith_struct_release void 1 79 -store arg_node 83 -load 85 arg_indices -iconst 86 0 -call 87 pith_list_get_value_strict int 2 85 86 -store arg_expr_idx 87 -iconst 88 0 -store __and_88_2073 88 -load 89 arg_node -field 90 89 0 string kind -strref 91 m13s298 -call 92 pith_cstring_eq bool 2 90 91 -call 93 pith_cstring_release void 1 91 -store __and_88_2073 92 -brif 92 L2073 L2074 +store label 5 +iconst 6 0 +store target_info 6 +iconst 7 0 +store arg_node 7 +iconst 8 0 +store err_name 8 +load 9 label +load 10 module_name +strref 11 m13s636 +concat 12 10 11 +call 13 pith_cstring_release void 1 11 +call 14 pith_cstring_release void 1 9 +store label 12 +load 15 index_node +field 16 15 16 list children +call 17 pith_list_len int 1 16 +iconst 18 2 +lt 19 17 18 +brif 19 L2073 L2074 label L2073 -load 94 arg_node -field 95 94 16 list children -call 96 pith_list_len int 1 95 -iconst 97 0 -gt 98 96 97 -store __and_88_2073 98 +strref 20 m13s557 +load 21 label +strref 22 m13s635 +concat 23 21 22 +call 24 pith_cstring_release void 1 22 +call 25 checker_diagnostics_report_error void 2 20 23 +call 26 pith_cstring_release void 1 20 +call 27 pith_cstring_release void 1 23 +load 28 types_TID_ERR +load 29 label +call 30 pith_cstring_release void 1 29 +load 31 target_info +call 32 pith_struct_release void 1 31 +load 33 arg_node +call 34 pith_struct_release void 1 33 +load 35 err_name +call 36 pith_cstring_release void 1 35 +ret 28 label L2074 -load 99 __and_88_2073 -brif 99 L2071 L2072 -label L2071 -load 100 arg_node -field 101 100 16 list children -iconst 102 0 -call 103 pith_list_get_value_strict int 2 101 102 -store arg_expr_idx 103 -jmp L2070 label L2072 -label L2070 -load 104 arg_expr_idx -load 105 scope_id -call 106 checker_c_check_expr int 2 104 105 -store arg_tid 106 -strref 107 m13s15 -call 108 types_lookup_type_id int 1 107 -call 109 pith_cstring_release void 1 107 -store expected_tid 108 -load 110 text_input -brif 110 L2076 L2077 +load 37 arg_indices +call 38 pith_list_len int 1 37 +iconst 39 1 +neq 40 38 39 +brif 40 L2076 L2077 label L2076 -strref 111 m13s11 -call 112 types_lookup_type_id int 1 111 -call 113 pith_cstring_release void 1 111 -store expected_tid 112 -jmp L2075 +strref 41 m13s307 +load 42 label +strref 43 m13s445 +concat 44 42 43 +call 45 pith_cstring_release void 1 43 +load 46 arg_indices +call 47 pith_list_len int 1 46 +call 48 int_to_string string 1 47 +concat 49 44 48 +call 50 pith_cstring_release void 1 44 +call 51 pith_cstring_release void 1 48 +call 52 checker_diagnostics_report_error void 2 41 49 +call 53 pith_cstring_release void 1 41 +call 54 pith_cstring_release void 1 49 +load 55 types_TID_ERR +load 56 label +call 57 pith_cstring_release void 1 56 +load 58 target_info +call 59 pith_struct_release void 1 58 +load 60 arg_node +call 61 pith_struct_release void 1 60 +load 62 err_name +call 63 pith_cstring_release void 1 62 +ret 55 label L2077 label L2075 -iconst 114 0 -store __and_114_2081 114 -load 115 arg_tid -call 116 types_is_error_type bool 1 115 -iconst 117 0 -eq 118 116 117 -store __and_114_2081 118 -brif 118 L2081 L2082 -label L2081 -load 119 arg_tid -load 120 expected_tid -neq 121 119 120 -store __and_114_2081 121 -label L2082 -load 122 __and_114_2081 -brif 122 L2079 L2080 +load 64 index_node +field 65 64 16 list children +iconst 66 1 +call 67 pith_list_get_value_strict int 2 65 66 +call 68 checker_resolve_json_decode_type_arg int 1 67 +store target_tid 68 +load 69 target_tid +call 70 types_is_error_type bool 1 69 +brif 70 L2079 L2080 label L2079 -strref 123 m13s304 -strref 124 m13s635 -load 125 expected_tid -call 126 types_get_type_name string 1 125 -concat 127 124 126 -call 128 pith_cstring_release void 1 124 -call 129 pith_cstring_release void 1 126 -strref 130 m13s301 -concat 131 127 130 -call 132 pith_cstring_release void 1 127 -call 133 pith_cstring_release void 1 130 -load 134 arg_tid -call 135 types_get_type_name string 1 134 -concat 136 131 135 -call 137 pith_cstring_release void 1 131 -call 138 pith_cstring_release void 1 135 -call 139 checker_diagnostics_report_error void 2 123 136 -call 140 pith_cstring_release void 1 123 -call 141 pith_cstring_release void 1 136 -load 142 types_TID_ERR -load 143 target_info -call 144 pith_struct_release void 1 143 -load 145 arg_node -call 146 pith_struct_release void 1 145 -ret 142 +load 71 types_TID_ERR +load 72 label +call 73 pith_cstring_release void 1 72 +load 74 target_info +call 75 pith_struct_release void 1 74 +load 76 arg_node +call 77 pith_struct_release void 1 76 +load 78 err_name +call 79 pith_cstring_release void 1 78 +ret 71 label L2080 label L2078 -load 147 target_info -field 148 147 16 list_string fields -call 149 pith_auto_len int 1 148 -iconst 150 0 -store __for_idx_124 150 -store __for_len_124 149 -store __for_iter_124 148 +load 80 target_info +load 81 target_tid +call 82 types_get_type_info struct:TypeInfo 1 81 +call 83 pith_struct_release void 1 80 +store target_info 82 +load 84 target_info +field 85 84 0 string kind +strref 86 m13s34 +call 88 pith_cstring_eq bool 2 85 86 +iconst 89 1 +sub 87 89 88 +call 90 pith_cstring_release void 1 86 +brif 87 L2082 L2083 +label L2082 +strref 91 m13s304 +load 92 label +strref 93 m13s634 +concat 94 92 93 +call 95 pith_cstring_release void 1 93 +load 96 target_tid +call 97 types_get_type_name string 1 96 +concat 98 94 97 +call 99 pith_cstring_release void 1 94 +call 100 pith_cstring_release void 1 97 +call 101 checker_diagnostics_report_error void 2 91 98 +call 102 pith_cstring_release void 1 91 +call 103 pith_cstring_release void 1 98 +load 104 types_TID_ERR +load 105 label +call 106 pith_cstring_release void 1 105 +load 107 target_info +call 108 pith_struct_release void 1 107 +load 109 arg_node +call 110 pith_struct_release void 1 109 +load 111 err_name +call 112 pith_cstring_release void 1 111 +ret 104 label L2083 -load 151 __for_idx_124 -load 152 __for_len_124 -lt 153 151 152 -brif 153 L2084 L2086 +label L2081 +load 113 arg_node +load 114 arg_indices +iconst 115 0 +call 116 pith_list_get_value_strict int 2 114 115 +call 117 ast_get_node struct:Node 1 116 +call 118 pith_struct_release void 1 113 +store arg_node 117 +load 119 arg_indices +iconst 120 0 +call 121 pith_list_get_value_strict int 2 119 120 +store arg_expr_idx 121 +iconst 122 0 +store __and_122_2087 122 +load 123 arg_node +field 124 123 0 string kind +strref 125 m13s298 +call 126 pith_cstring_eq bool 2 124 125 +call 127 pith_cstring_release void 1 125 +store __and_122_2087 126 +brif 126 L2087 L2088 +label L2087 +load 128 arg_node +field 129 128 16 list children +call 130 pith_list_len int 1 129 +iconst 131 0 +gt 132 130 131 +store __and_122_2087 132 +label L2088 +load 133 __and_122_2087 +brif 133 L2085 L2086 +label L2085 +load 134 arg_node +field 135 134 16 list children +iconst 136 0 +call 137 pith_list_get_value_strict int 2 135 136 +store arg_expr_idx 137 +jmp L2084 +label L2086 label L2084 -load 154 __for_iter_124 -load 155 __for_idx_124 -call 156 pith_list_get_value_unchecked string 2 154 155 -store __loopvar_124_field_name 156 -load 157 __for_idx_124 -store __loopvar_124_i 157 -iconst 158 0 -store __and_158_2090 158 -load 159 __loopvar_124_i -load 160 target_info -field 161 160 32 list field_pub -call 162 pith_list_len int 1 161 -lt 163 159 162 -store __and_158_2090 163 -brif 163 L2090 L2091 +load 138 arg_expr_idx +load 139 scope_id +call 140 checker_c_check_expr int 2 138 139 +store arg_tid 140 +strref 141 m13s15 +call 142 types_lookup_type_id int 1 141 +call 143 pith_cstring_release void 1 141 +store expected_tid 142 +load 144 text_input +brif 144 L2090 L2091 label L2090 -load 164 target_info -field 165 164 32 list field_pub -load 166 __loopvar_124_i -call 167 pith_list_get_value_strict bool 2 165 166 -iconst 169 1 -sub 168 169 167 -store __and_158_2090 168 +strref 145 m13s11 +call 146 types_lookup_type_id int 1 145 +call 147 pith_cstring_release void 1 145 +store expected_tid 146 +jmp L2089 label L2091 -load 170 __and_158_2090 -brif 170 L2088 L2089 -label L2088 -strref 171 m13s304 -strref 172 m13s634 -load 173 __loopvar_124_field_name -concat 174 172 173 +label L2089 +iconst 148 0 +store __and_148_2095 148 +load 149 arg_tid +call 150 types_is_error_type bool 1 149 +iconst 151 0 +eq 152 150 151 +store __and_148_2095 152 +brif 152 L2095 L2096 +label L2095 +load 153 arg_tid +load 154 expected_tid +neq 155 153 154 +store __and_148_2095 155 +label L2096 +load 156 __and_148_2095 +brif 156 L2093 L2094 +label L2093 +strref 157 m13s304 +load 158 label +strref 159 m13s633 +concat 160 158 159 +call 161 pith_cstring_release void 1 159 +load 162 expected_tid +call 163 types_get_type_name string 1 162 +concat 164 160 163 +call 165 pith_cstring_release void 1 160 +call 166 pith_cstring_release void 1 163 +strref 167 m13s301 +concat 168 164 167 +call 169 pith_cstring_release void 1 164 +call 170 pith_cstring_release void 1 167 +load 171 arg_tid +call 172 types_get_type_name string 1 171 +concat 173 168 172 +call 174 pith_cstring_release void 1 168 call 175 pith_cstring_release void 1 172 -call 176 checker_diagnostics_report_error void 2 171 174 -call 177 pith_cstring_release void 1 171 -call 178 pith_cstring_release void 1 174 +call 176 checker_diagnostics_report_error void 2 157 173 +call 177 pith_cstring_release void 1 157 +call 178 pith_cstring_release void 1 173 load 179 types_TID_ERR -load 180 target_info -call 181 pith_struct_release void 1 180 -load 182 arg_node +load 180 label +call 181 pith_cstring_release void 1 180 +load 182 target_info call 183 pith_struct_release void 1 182 +load 184 arg_node +call 185 pith_struct_release void 1 184 +load 186 err_name +call 187 pith_cstring_release void 1 186 ret 179 -label L2089 -label L2087 -load 184 __loopvar_124_i -load 185 target_info -field 186 185 24 list field_types -call 187 pith_list_len int 1 186 -lt 188 184 187 -brif 188 L2093 L2094 -label L2093 -load 189 target_info -field 190 189 24 list field_types -load 191 __loopvar_124_i -call 192 pith_list_get_value_strict int 2 190 191 -store field_tid 192 -load 193 field_tid -call 194 checker_json_decode_field_supported bool 1 193 -iconst 196 1 -sub 195 196 194 -brif 195 L2096 L2097 -label L2096 -strref 197 m13s304 -strref 198 m13s633 -load 199 __loopvar_124_field_name -concat 200 198 199 -call 201 pith_cstring_release void 1 198 -strref 202 m13s624 -concat 203 200 202 -call 204 pith_cstring_release void 1 200 -call 205 pith_cstring_release void 1 202 -load 206 field_tid -call 207 types_get_type_name string 1 206 -concat 208 203 207 -call 209 pith_cstring_release void 1 203 -call 210 pith_cstring_release void 1 207 -call 211 checker_diagnostics_report_error void 2 197 208 -call 212 pith_cstring_release void 1 197 -call 213 pith_cstring_release void 1 208 -load 214 types_TID_ERR -load 215 target_info -call 216 pith_struct_release void 1 215 -load 217 arg_node -call 218 pith_struct_release void 1 217 -ret 214 -label L2097 -label L2095 -jmp L2092 label L2094 label L2092 -label L2085 -load 219 __for_idx_124 -iconst 220 1 -add 221 219 220 -store __for_idx_124 221 -jmp L2083 -label L2086 -strref 222 m13s632 -call 223 types_lookup_type_id int 1 222 -call 224 pith_cstring_release void 1 222 -store err_tid 223 -load 225 err_tid -iconst 226 0 -lt 227 225 226 -brif 227 L2099 L2100 +load 188 target_info +field 189 188 16 list_string fields +call 190 pith_auto_len int 1 189 +iconst 191 0 +store __for_idx_124 191 +store __for_len_124 190 +store __for_iter_124 189 +label L2097 +load 192 __for_idx_124 +load 193 __for_len_124 +lt 194 192 193 +brif 194 L2098 L2100 +label L2098 +load 195 __for_iter_124 +load 196 __for_idx_124 +call 197 pith_list_get_value_unchecked string 2 195 196 +store __loopvar_124_field_name 197 +load 198 __for_idx_124 +store __loopvar_124_i 198 +iconst 199 0 +store __and_199_2104 199 +load 200 __loopvar_124_i +load 201 target_info +field 202 201 32 list field_pub +call 203 pith_list_len int 1 202 +lt 204 200 203 +store __and_199_2104 204 +brif 204 L2104 L2105 +label L2104 +load 205 target_info +field 206 205 32 list field_pub +load 207 __loopvar_124_i +call 208 pith_list_get_value_strict bool 2 206 207 +iconst 210 1 +sub 209 210 208 +store __and_199_2104 209 +label L2105 +load 211 __and_199_2104 +brif 211 L2102 L2103 +label L2102 +strref 212 m13s304 +load 213 label +strref 214 m13s632 +concat 215 213 214 +call 216 pith_cstring_release void 1 214 +load 217 __loopvar_124_field_name +concat 218 215 217 +call 219 pith_cstring_release void 1 215 +call 220 checker_diagnostics_report_error void 2 212 218 +call 221 pith_cstring_release void 1 212 +call 222 pith_cstring_release void 1 218 +load 223 types_TID_ERR +load 224 label +call 225 pith_cstring_release void 1 224 +load 226 target_info +call 227 pith_struct_release void 1 226 +load 228 arg_node +call 229 pith_struct_release void 1 228 +load 230 err_name +call 231 pith_cstring_release void 1 230 +ret 223 +label L2103 +label L2101 +load 232 __loopvar_124_i +load 233 target_info +field 234 233 24 list field_types +call 235 pith_list_len int 1 234 +lt 236 232 235 +brif 236 L2107 L2108 +label L2107 +load 237 target_info +field 238 237 24 list field_types +load 239 __loopvar_124_i +call 240 pith_list_get_value_strict int 2 238 239 +store field_tid 240 +load 241 field_tid +call 242 checker_json_decode_field_supported bool 1 241 +iconst 244 1 +sub 243 244 242 +brif 243 L2110 L2111 +label L2110 +strref 245 m13s304 +load 246 label +strref 247 m13s631 +concat 248 246 247 +call 249 pith_cstring_release void 1 247 +load 250 __loopvar_124_field_name +concat 251 248 250 +call 252 pith_cstring_release void 1 248 +strref 253 m13s624 +concat 254 251 253 +call 255 pith_cstring_release void 1 251 +call 256 pith_cstring_release void 1 253 +load 257 field_tid +call 258 types_get_type_name string 1 257 +concat 259 254 258 +call 260 pith_cstring_release void 1 254 +call 261 pith_cstring_release void 1 258 +call 262 checker_diagnostics_report_error void 2 245 259 +call 263 pith_cstring_release void 1 245 +call 264 pith_cstring_release void 1 259 +load 265 types_TID_ERR +load 266 label +call 267 pith_cstring_release void 1 266 +load 268 target_info +call 269 pith_struct_release void 1 268 +load 270 arg_node +call 271 pith_struct_release void 1 270 +load 272 err_name +call 273 pith_cstring_release void 1 272 +ret 265 +label L2111 +label L2109 +jmp L2106 +label L2108 +label L2106 label L2099 -strref 228 m13s310 -strref 229 m13s631 -call 230 checker_diagnostics_report_error void 2 228 229 -call 231 pith_cstring_release void 1 228 -call 232 pith_cstring_release void 1 229 -load 233 types_TID_ERR -load 234 target_info -call 235 pith_struct_release void 1 234 -load 236 arg_node -call 237 pith_struct_release void 1 236 -ret 233 +load 274 __for_idx_124 +iconst 275 1 +add 276 274 275 +store __for_idx_124 276 +jmp L2097 label L2100 -label L2098 -load 238 target_tid -load 239 err_tid -call 240 types_ti_result struct:TypeInfo 2 238 239 -call 241 types_add_type_info int 1 240 -call 242 pith_struct_release void 1 240 -load 243 target_info -call 244 pith_struct_release void 1 243 -load 245 arg_node -call 246 pith_struct_release void 1 245 -ret 241 -load 247 target_info -call 248 pith_struct_release void 1 247 -load 249 arg_node -call 250 pith_struct_release void 1 249 -iconst 251 0 -ret 251 +load 277 err_name +load 278 module_name +call 279 checker_handle_decode_error_type string 1 278 +call 280 pith_cstring_release void 1 277 +store err_name 279 +load 281 err_name +call 282 types_lookup_type_id int 1 281 +store err_tid 282 +load 283 err_tid +iconst 284 0 +lt 285 283 284 +brif 285 L2113 L2114 +label L2113 +strref 286 m13s310 +strref 287 m13s311 +load 288 err_name +concat 289 287 288 +call 290 pith_cstring_release void 1 287 +call 291 checker_diagnostics_report_error void 2 286 289 +call 292 pith_cstring_release void 1 286 +call 293 pith_cstring_release void 1 289 +load 294 types_TID_ERR +load 295 label +call 296 pith_cstring_release void 1 295 +load 297 target_info +call 298 pith_struct_release void 1 297 +load 299 arg_node +call 300 pith_struct_release void 1 299 +load 301 err_name +call 302 pith_cstring_release void 1 301 +ret 294 +label L2114 +label L2112 +load 303 target_tid +load 304 err_tid +call 305 types_ti_result struct:TypeInfo 2 303 304 +call 306 types_add_type_info int 1 305 +call 307 pith_struct_release void 1 305 +load 308 label +call 309 pith_cstring_release void 1 308 +load 310 target_info +call 311 pith_struct_release void 1 310 +load 312 arg_node +call 313 pith_struct_release void 1 312 +load 314 err_name +call 315 pith_cstring_release void 1 314 +ret 306 +load 316 label +call 317 pith_cstring_release void 1 316 +load 318 target_info +call 319 pith_struct_release void 1 318 +load 320 arg_node +call 321 pith_struct_release void 1 320 +load 322 err_name +call 323 pith_cstring_release void 1 322 +iconst 324 0 +ret 324 endfunc func checker_check_config_file_decode_call 3 int param index_node @@ -45503,8 +45670,8 @@ field 6 5 16 list children call 7 pith_list_len int 1 6 iconst 8 2 lt 9 7 8 -brif 9 L2102 L2103 -label L2102 +brif 9 L2116 L2117 +label L2116 strref 10 m13s557 strref 11 m13s630 call 12 checker_diagnostics_report_error void 2 10 11 @@ -45516,14 +45683,14 @@ call 17 pith_struct_release void 1 16 load 18 arg_node call 19 pith_struct_release void 1 18 ret 15 -label L2103 -label L2101 +label L2117 +label L2115 load 20 arg_indices call 21 pith_list_len int 1 20 iconst 22 1 neq 23 21 22 -brif 23 L2105 L2106 -label L2105 +brif 23 L2119 L2120 +label L2119 strref 24 m13s307 strref 25 m13s629 load 26 arg_indices @@ -45541,8 +45708,8 @@ call 37 pith_struct_release void 1 36 load 38 arg_node call 39 pith_struct_release void 1 38 ret 35 -label L2106 -label L2104 +label L2120 +label L2118 load 40 index_node field 41 40 16 list children iconst 42 1 @@ -45551,16 +45718,16 @@ call 44 checker_resolve_json_decode_type_arg int 1 43 store target_tid 44 load 45 target_tid call 46 types_is_error_type bool 1 45 -brif 46 L2108 L2109 -label L2108 +brif 46 L2122 L2123 +label L2122 load 47 types_TID_ERR load 48 target_info call 49 pith_struct_release void 1 48 load 50 arg_node call 51 pith_struct_release void 1 50 ret 47 -label L2109 -label L2107 +label L2123 +label L2121 load 52 target_info load 53 target_tid call 54 types_get_type_info struct:TypeInfo 1 53 @@ -45573,8 +45740,8 @@ call 60 pith_cstring_eq bool 2 57 58 iconst 61 1 sub 59 61 60 call 62 pith_cstring_release void 1 58 -brif 59 L2111 L2112 -label L2111 +brif 59 L2125 L2126 +label L2125 strref 63 m13s304 strref 64 m13s628 load 65 target_tid @@ -45591,8 +45758,8 @@ call 75 pith_struct_release void 1 74 load 76 arg_node call 77 pith_struct_release void 1 76 ret 73 -label L2112 -label L2110 +label L2126 +label L2124 load 78 arg_node load 79 arg_indices iconst 80 0 @@ -45605,33 +45772,33 @@ iconst 85 0 call 86 pith_list_get_value_strict int 2 84 85 store arg_expr_idx 86 iconst 87 0 -store __and_87_2116 87 +store __and_87_2130 87 load 88 arg_node field 89 88 0 string kind strref 90 m13s298 call 91 pith_cstring_eq bool 2 89 90 call 92 pith_cstring_release void 1 90 -store __and_87_2116 91 -brif 91 L2116 L2117 -label L2116 +store __and_87_2130 91 +brif 91 L2130 L2131 +label L2130 load 93 arg_node field 94 93 16 list children call 95 pith_list_len int 1 94 iconst 96 0 gt 97 95 96 -store __and_87_2116 97 -label L2117 -load 98 __and_87_2116 -brif 98 L2114 L2115 -label L2114 +store __and_87_2130 97 +label L2131 +load 98 __and_87_2130 +brif 98 L2128 L2129 +label L2128 load 99 arg_node field 100 99 16 list children iconst 101 0 call 102 pith_list_get_value_strict int 2 100 101 store arg_expr_idx 102 -jmp L2113 -label L2115 -label L2113 +jmp L2127 +label L2129 +label L2127 load 103 arg_expr_idx load 104 scope_id call 105 checker_c_check_expr int 2 103 104 @@ -45641,22 +45808,22 @@ call 107 types_lookup_type_id int 1 106 call 108 pith_cstring_release void 1 106 store expected_tid 107 iconst 109 0 -store __and_109_2121 109 +store __and_109_2135 109 load 110 arg_tid call 111 types_is_error_type bool 1 110 iconst 112 0 eq 113 111 112 -store __and_109_2121 113 -brif 113 L2121 L2122 -label L2121 +store __and_109_2135 113 +brif 113 L2135 L2136 +label L2135 load 114 arg_tid load 115 expected_tid neq 116 114 115 -store __and_109_2121 116 -label L2122 -load 117 __and_109_2121 -brif 117 L2119 L2120 -label L2119 +store __and_109_2135 116 +label L2136 +load 117 __and_109_2135 +brif 117 L2133 L2134 +label L2133 strref 118 m13s304 strref 119 m13s627 load 120 expected_tid @@ -45682,8 +45849,8 @@ call 139 pith_struct_release void 1 138 load 140 arg_node call 141 pith_struct_release void 1 140 ret 137 -label L2120 -label L2118 +label L2134 +label L2132 load 142 target_info field 143 142 16 list_string fields call 144 pith_auto_len int 1 143 @@ -45691,12 +45858,12 @@ iconst 145 0 store __for_idx_125 145 store __for_len_125 144 store __for_iter_125 143 -label L2123 +label L2137 load 146 __for_idx_125 load 147 __for_len_125 lt 148 146 147 -brif 148 L2124 L2126 -label L2124 +brif 148 L2138 L2140 +label L2138 load 149 __for_iter_125 load 150 __for_idx_125 call 151 pith_list_get_value_unchecked string 2 149 150 @@ -45704,26 +45871,26 @@ store __loopvar_125_field_name 151 load 152 __for_idx_125 store __loopvar_125_i 152 iconst 153 0 -store __and_153_2130 153 +store __and_153_2144 153 load 154 __loopvar_125_i load 155 target_info field 156 155 32 list field_pub call 157 pith_list_len int 1 156 lt 158 154 157 -store __and_153_2130 158 -brif 158 L2130 L2131 -label L2130 +store __and_153_2144 158 +brif 158 L2144 L2145 +label L2144 load 159 target_info field 160 159 32 list field_pub load 161 __loopvar_125_i call 162 pith_list_get_value_strict bool 2 160 161 iconst 164 1 sub 163 164 162 -store __and_153_2130 163 -label L2131 -load 165 __and_153_2130 -brif 165 L2128 L2129 -label L2128 +store __and_153_2144 163 +label L2145 +load 165 __and_153_2144 +brif 165 L2142 L2143 +label L2142 strref 166 m13s304 strref 167 m13s626 load 168 __loopvar_125_field_name @@ -45738,15 +45905,15 @@ call 176 pith_struct_release void 1 175 load 177 arg_node call 178 pith_struct_release void 1 177 ret 174 -label L2129 -label L2127 +label L2143 +label L2141 load 179 __loopvar_125_i load 180 target_info field 181 180 24 list field_types call 182 pith_list_len int 1 181 lt 183 179 182 -brif 183 L2133 L2134 -label L2133 +brif 183 L2147 L2148 +label L2147 load 184 target_info field 185 184 24 list field_types load 186 __loopvar_125_i @@ -45756,8 +45923,8 @@ load 188 field_tid call 189 checker_json_decode_field_supported bool 1 188 iconst 191 1 sub 190 191 189 -brif 190 L2136 L2137 -label L2136 +brif 190 L2150 L2151 +label L2150 strref 192 m13s304 strref 193 m13s625 load 194 __loopvar_125_field_name @@ -45781,18 +45948,18 @@ call 211 pith_struct_release void 1 210 load 212 arg_node call 213 pith_struct_release void 1 212 ret 209 -label L2137 -label L2135 -jmp L2132 -label L2134 -label L2132 -label L2125 +label L2151 +label L2149 +jmp L2146 +label L2148 +label L2146 +label L2139 load 214 __for_idx_125 iconst 215 1 add 216 214 215 store __for_idx_125 216 -jmp L2123 -label L2126 +jmp L2137 +label L2140 strref 217 m13s623 call 218 types_lookup_type_id int 1 217 call 219 pith_cstring_release void 1 217 @@ -45800,8 +45967,8 @@ store err_tid 218 load 220 err_tid iconst 221 0 lt 222 220 221 -brif 222 L2139 L2140 -label L2139 +brif 222 L2153 L2154 +label L2153 strref 223 m13s310 strref 224 m13s622 call 225 checker_diagnostics_report_error void 2 223 224 @@ -45813,8 +45980,8 @@ call 230 pith_struct_release void 1 229 load 231 arg_node call 232 pith_struct_release void 1 231 ret 228 -label L2140 -label L2138 +label L2154 +label L2152 load 233 target_tid load 234 err_tid call 235 types_ti_result struct:TypeInfo 2 233 234 @@ -45839,7 +46006,7 @@ store base_node 1 iconst 2 0 store recv_node 2 iconst 3 0 -store __or_3_2144 3 +store __or_3_2158 3 load 4 index_node field 5 4 0 string kind strref 6 m13s291 @@ -45847,27 +46014,27 @@ call 8 pith_cstring_eq bool 2 5 6 iconst 9 1 sub 7 9 8 call 10 pith_cstring_release void 1 6 -store __or_3_2144 7 -brif 7 L2145 L2144 -label L2144 +store __or_3_2158 7 +brif 7 L2159 L2158 +label L2158 load 11 index_node field 12 11 16 list children call 13 pith_list_len int 1 12 iconst 14 1 lt 15 13 14 -store __or_3_2144 15 -label L2145 -load 16 __or_3_2144 -brif 16 L2142 L2143 -label L2142 +store __or_3_2158 15 +label L2159 +load 16 __or_3_2158 +brif 16 L2156 L2157 +label L2156 strref 17 m13s35 load 18 base_node call 19 pith_struct_release void 1 18 load 20 recv_node call 21 pith_struct_release void 1 20 ret 17 -label L2143 -label L2141 +label L2157 +label L2155 load 22 base_node load 23 index_node field 24 23 16 list children @@ -45881,8 +46048,8 @@ field 30 29 0 string kind strref 31 m13s293 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 -brif 32 L2147 L2148 -label L2147 +brif 32 L2161 L2162 +label L2161 load 34 base_node field 35 34 8 string value call 36 pith_cstring_retain void 1 35 @@ -45891,28 +46058,28 @@ call 38 pith_struct_release void 1 37 load 39 recv_node call 40 pith_struct_release void 1 39 ret 35 -label L2148 -label L2146 +label L2162 +label L2160 iconst 41 0 -store __and_41_2152 41 +store __and_41_2166 41 load 42 base_node field 43 42 0 string kind strref 44 m13s292 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 -store __and_41_2152 45 -brif 45 L2152 L2153 -label L2152 +store __and_41_2166 45 +brif 45 L2166 L2167 +label L2166 load 47 base_node field 48 47 16 list children call 49 pith_list_len int 1 48 iconst 50 0 gt 51 49 50 -store __and_41_2152 51 -label L2153 -load 52 __and_41_2152 -brif 52 L2150 L2151 -label L2150 +store __and_41_2166 51 +label L2167 +load 52 __and_41_2166 +brif 52 L2164 L2165 +label L2164 load 53 recv_node load 54 base_node field 55 54 16 list children @@ -45922,24 +46089,24 @@ call 58 ast_get_node struct:Node 1 57 call 59 pith_struct_release void 1 53 store recv_node 58 iconst 60 0 -store __and_60_2157 60 +store __and_60_2171 60 load 61 recv_node field 62 61 0 string kind strref 63 m13s293 call 64 pith_cstring_eq bool 2 62 63 call 65 pith_cstring_release void 1 63 -store __and_60_2157 64 -brif 64 L2157 L2158 -label L2157 +store __and_60_2171 64 +brif 64 L2171 L2172 +label L2171 load 66 checker_module_aliases load 67 recv_node field 68 67 8 string value call 69 contains_key bool 2 66 68 -store __and_60_2157 69 -label L2158 -load 70 __and_60_2157 -brif 70 L2155 L2156 -label L2155 +store __and_60_2171 69 +label L2172 +load 70 __and_60_2171 +brif 70 L2169 L2170 +label L2169 load 71 checker_module_aliases load 72 recv_node field 73 72 8 string value @@ -45952,11 +46119,11 @@ call 79 pith_struct_release void 1 78 load 80 recv_node call 81 pith_struct_release void 1 80 ret 77 -label L2156 -label L2154 -jmp L2149 -label L2151 -label L2149 +label L2170 +label L2168 +jmp L2163 +label L2165 +label L2163 strref 82 m13s35 load 83 base_node call 84 pith_struct_release void 1 83 @@ -45984,16 +46151,16 @@ field 7 6 0 string kind strref 8 m13s293 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L2160 L2161 -label L2160 +brif 9 L2174 L2175 +label L2174 load 11 type_arg field 12 11 8 string value call 13 checker_resolve_named_type int 1 12 load 14 type_arg call 15 pith_struct_release void 1 14 ret 13 -label L2161 -label L2159 +label L2175 +label L2173 load 16 type_arg_idx call 17 checker_resolve_type_implementation int 1 16 load 18 type_arg @@ -46023,8 +46190,8 @@ store decl_idx 9 load 10 decl_idx iconst 11 0 lt 12 10 11 -brif 12 L2163 L2164 -label L2163 +brif 12 L2177 L2178 +label L2177 load 13 types_TID_ERR load 14 decl_node call 15 pith_struct_release void 1 14 @@ -46035,8 +46202,8 @@ call 19 pith_list_release_handle void 1 18 load 20 subst_map call 21 pith_map_release_handle void 1 20 ret 13 -label L2164 -label L2162 +label L2178 +label L2176 load 22 decl_node load 23 decl_idx call 24 ast_get_node struct:Node 1 23 @@ -46053,14 +46220,14 @@ call 32 pith_list_release_handle void 1 30 store type_args 31 iconst 33 1 store i 33 -label L2165 +label L2179 load 34 i load 35 index_node field 36 35 16 list children call 37 pith_list_len int 1 36 lt 38 34 37 -brif 38 L2166 L2167 -label L2166 +brif 38 L2180 L2181 +label L2180 load 39 type_args load 40 index_node field 41 40 16 list children @@ -46072,15 +46239,15 @@ load 46 i iconst 47 1 add 48 46 47 store i 48 -jmp L2165 -label L2167 +jmp L2179 +label L2181 load 49 type_args call 50 pith_list_len int 1 49 load 51 generic_params call 52 pith_list_len int 1 51 neq 53 50 52 -brif 53 L2169 L2170 -label L2169 +brif 53 L2183 L2184 +label L2183 strref 54 m13s621 load 55 name strref 56 m13s549 @@ -46115,8 +46282,8 @@ call 84 pith_list_release_handle void 1 83 load 85 subst_map call 86 pith_map_release_handle void 1 85 ret 78 -label L2170 -label L2168 +label L2184 +label L2182 load 87 subst_map call 88 pith_map_new_default map 0 call 89 pith_map_release_handle void 1 87 @@ -46127,12 +46294,12 @@ iconst 92 0 store __for_idx_126 92 store __for_len_126 91 store __for_iter_126 90 -label L2171 +label L2185 load 93 __for_idx_126 load 94 __for_len_126 lt 95 93 94 -brif 95 L2172 L2174 -label L2172 +brif 95 L2186 L2188 +label L2186 load 96 __for_iter_126 load 97 __for_idx_126 call 98 pith_list_get_value_unchecked string 2 96 97 @@ -46143,31 +46310,31 @@ load 100 __loopvar_126_gp_i load 101 type_args call 102 pith_list_len int 1 101 lt 103 100 102 -brif 103 L2176 L2177 -label L2176 +brif 103 L2190 L2191 +label L2190 load 104 subst_map load 105 __loopvar_126_gp load 106 type_args load 107 __loopvar_126_gp_i call 108 pith_list_get_value_strict int 2 106 107 call 109 map_insert void 3 104 105 108 -jmp L2175 -label L2177 -label L2175 -label L2173 +jmp L2189 +label L2191 +label L2189 +label L2187 load 110 __for_idx_126 iconst 111 1 add 112 110 111 store __for_idx_126 112 -jmp L2171 -label L2174 +jmp L2185 +label L2188 load 113 decl_idx load 114 subst_map call 115 checker_check_type_parameter_bounds bool 2 113 114 iconst 116 0 eq 117 115 116 -brif 117 L2179 L2180 -label L2179 +brif 117 L2193 L2194 +label L2193 load 118 types_TID_ERR load 119 decl_node call 120 pith_struct_release void 1 119 @@ -46178,8 +46345,8 @@ call 124 pith_list_release_handle void 1 123 load 125 subst_map call 126 pith_map_release_handle void 1 125 ret 118 -label L2180 -label L2178 +label L2194 +label L2192 load 127 decl_node load 128 type_args call 129 checker_instantiate_generic_struct_type int 2 127 128 @@ -46187,8 +46354,8 @@ store struct_tid 129 load 130 struct_tid iconst 131 0 lt 132 130 131 -brif 132 L2182 L2183 -label L2182 +brif 132 L2196 L2197 +label L2196 load 133 types_TID_ERR load 134 decl_node call 135 pith_struct_release void 1 134 @@ -46199,8 +46366,8 @@ call 139 pith_list_release_handle void 1 138 load 140 subst_map call 141 pith_map_release_handle void 1 140 ret 133 -label L2183 -label L2181 +label L2197 +label L2195 load 142 struct_tid call 143 types_get_type_name string 1 142 load 144 struct_tid @@ -46258,8 +46425,8 @@ store decl_idx 13 load 14 decl_idx iconst 15 0 lt 16 14 15 -brif 16 L2185 L2186 -label L2185 +brif 16 L2199 L2200 +label L2199 load 17 types_TID_ERR load 18 decl_node call 19 pith_struct_release void 1 18 @@ -46278,8 +46445,8 @@ call 31 pith_list_release_handle void 1 30 load 32 cn call 33 pith_struct_release void 1 32 ret 17 -label L2186 -label L2184 +label L2200 +label L2198 load 34 decl_node load 35 decl_idx call 36 ast_get_node struct:Node 1 35 @@ -46296,14 +46463,14 @@ call 44 pith_list_release_handle void 1 42 store subst_args 43 iconst 45 1 store i 45 -label L2187 +label L2201 load 46 i load 47 index_node field 48 47 16 list children call 49 pith_list_len int 1 48 lt 50 46 49 -brif 50 L2188 L2189 -label L2188 +brif 50 L2202 L2203 +label L2202 load 51 subst_args load 52 index_node field 53 52 16 list children @@ -46315,15 +46482,15 @@ load 58 i iconst 59 1 add 60 58 59 store i 60 -jmp L2187 -label L2189 +jmp L2201 +label L2203 load 61 subst_args call 62 pith_list_len int 1 61 load 63 generic_params call 64 pith_list_len int 1 63 neq 65 62 64 -brif 65 L2191 L2192 -label L2191 +brif 65 L2205 L2206 +label L2205 strref 66 m13s621 load 67 name strref 68 m13s549 @@ -46366,8 +46533,8 @@ call 104 pith_list_release_handle void 1 103 load 105 cn call 106 pith_struct_release void 1 105 ret 90 -label L2192 -label L2190 +label L2206 +label L2204 load 107 subst_map call 108 pith_map_new_default map 0 call 109 pith_map_release_handle void 1 107 @@ -46378,12 +46545,12 @@ iconst 112 0 store __for_idx_127 112 store __for_len_127 111 store __for_iter_127 110 -label L2193 +label L2207 load 113 __for_idx_127 load 114 __for_len_127 lt 115 113 114 -brif 115 L2194 L2196 -label L2194 +brif 115 L2208 L2210 +label L2208 load 116 __for_iter_127 load 117 __for_idx_127 call 118 pith_list_get_value_unchecked string 2 116 117 @@ -46394,31 +46561,31 @@ load 120 __loopvar_127_gp_i load 121 subst_args call 122 pith_list_len int 1 121 lt 123 120 122 -brif 123 L2198 L2199 -label L2198 +brif 123 L2212 L2213 +label L2212 load 124 subst_map load 125 __loopvar_127_gp load 126 subst_args load 127 __loopvar_127_gp_i call 128 pith_list_get_value_strict int 2 126 127 call 129 map_insert void 3 124 125 128 -jmp L2197 -label L2199 -label L2197 -label L2195 +jmp L2211 +label L2213 +label L2211 +label L2209 load 130 __for_idx_127 iconst 131 1 add 132 130 131 store __for_idx_127 132 -jmp L2193 -label L2196 +jmp L2207 +label L2210 load 133 decl_idx load 134 subst_map call 135 checker_check_type_parameter_bounds bool 2 133 134 iconst 136 0 eq 137 135 136 -brif 137 L2201 L2202 -label L2201 +brif 137 L2215 L2216 +label L2215 load 138 types_TID_ERR load 139 decl_node call 140 pith_struct_release void 1 139 @@ -46437,8 +46604,8 @@ call 152 pith_list_release_handle void 1 151 load 153 cn call 154 pith_struct_release void 1 153 ret 138 -label L2202 -label L2200 +label L2216 +label L2214 load 155 arg_types call 156 pith_list_new_default list 0 call 157 pith_list_release_handle void 1 155 @@ -46449,12 +46616,12 @@ iconst 160 0 store __for_idx_128 160 store __for_len_128 159 store __for_iter_128 158 -label L2203 +label L2217 load 161 __for_idx_128 load 162 __for_len_128 lt 163 161 162 -brif 163 L2204 L2206 -label L2204 +brif 163 L2218 L2220 +label L2218 load 164 __for_iter_128 load 165 __for_idx_128 call 166 pith_list_get_value unknown 2 164 165 @@ -46467,45 +46634,45 @@ store arg_node 169 load 171 __loopvar_128_ai store arg_expr 171 iconst 172 0 -store __and_172_2210 172 +store __and_172_2224 172 load 173 arg_node field 174 173 0 string kind strref 175 m13s298 call 176 pith_cstring_eq bool 2 174 175 call 177 pith_cstring_release void 1 175 -store __and_172_2210 176 -brif 176 L2210 L2211 -label L2210 +store __and_172_2224 176 +brif 176 L2224 L2225 +label L2224 load 178 arg_node field 179 178 16 list children call 180 pith_list_len int 1 179 iconst 181 0 gt 182 180 181 -store __and_172_2210 182 -label L2211 -load 183 __and_172_2210 -brif 183 L2208 L2209 -label L2208 +store __and_172_2224 182 +label L2225 +load 183 __and_172_2224 +brif 183 L2222 L2223 +label L2222 load 184 arg_node field 185 184 16 list children iconst 186 0 call 187 pith_list_get_value_strict int 2 185 186 store arg_expr 187 -jmp L2207 -label L2209 -label L2207 +jmp L2221 +label L2223 +label L2221 load 188 arg_types load 189 arg_expr load 190 scope_id call 191 checker_c_check_expr int 2 189 190 call 192 pith_list_push_value void 2 188 191 -label L2205 +label L2219 load 193 __for_idx_128 iconst 194 1 add 195 193 194 store __for_idx_128 195 -jmp L2203 -label L2206 +jmp L2217 +label L2220 load 196 param_type_nodes call 197 pith_list_new_default list 0 call 198 pith_list_release_handle void 1 196 @@ -46517,12 +46684,12 @@ iconst 202 0 store __for_idx_129 202 store __for_len_129 201 store __for_iter_129 200 -label L2212 +label L2226 load 203 __for_idx_129 load 204 __for_len_129 lt 205 203 204 -brif 205 L2213 L2215 -label L2213 +brif 205 L2227 L2229 +label L2227 load 206 __for_iter_129 load 207 __for_idx_129 call 208 pith_list_get_value unknown 2 206 207 @@ -46537,46 +46704,46 @@ field 214 213 0 string kind strref 215 m13s323 call 216 pith_cstring_eq bool 2 214 215 call 217 pith_cstring_release void 1 215 -brif 216 L2217 L2218 -label L2217 +brif 216 L2231 L2232 +label L2231 load 218 cn field 219 218 16 list children call 220 pith_list_len int 1 219 iconst 221 0 gt 222 220 221 -brif 222 L2220 L2221 -label L2220 +brif 222 L2234 L2235 +label L2234 load 223 param_type_nodes load 224 cn field 225 224 16 list children iconst 226 0 call 227 pith_list_get_value_strict int 2 225 226 call 228 pith_list_push_value void 2 223 227 -jmp L2219 -label L2221 +jmp L2233 +label L2235 load 229 param_type_nodes iconst 230 1 iconst 232 0 sub 231 232 230 call 233 pith_list_push_value void 2 229 231 -label L2219 -jmp L2216 -label L2218 -label L2216 -label L2214 +label L2233 +jmp L2230 +label L2232 +label L2230 +label L2228 load 234 __for_idx_129 iconst 235 1 add 236 234 235 store __for_idx_129 236 -jmp L2212 -label L2215 +jmp L2226 +label L2229 load 237 arg_types call 238 pith_list_len int 1 237 load 239 param_type_nodes call 240 pith_list_len int 1 239 neq 241 238 240 -brif 241 L2223 L2224 -label L2223 +brif 241 L2237 L2238 +label L2237 strref 242 m13s307 strref 243 m13s558 load 244 param_type_nodes @@ -46616,8 +46783,8 @@ call 277 pith_list_release_handle void 1 276 load 278 cn call 279 pith_struct_release void 1 278 ret 263 -label L2224 -label L2222 +label L2238 +label L2236 load 280 types_TID_VOID store ret_type 280 load 281 decl_node @@ -46627,12 +46794,12 @@ iconst 284 0 store __for_idx_130 284 store __for_len_130 283 store __for_iter_130 282 -label L2225 +label L2239 load 285 __for_idx_130 load 286 __for_len_130 lt 287 285 286 -brif 287 L2226 L2228 -label L2226 +brif 287 L2240 L2242 +label L2240 load 288 __for_iter_130 load 289 __for_idx_130 call 290 pith_list_get_value unknown 2 288 289 @@ -46647,8 +46814,8 @@ field 296 295 0 string kind strref 297 m13s555 call 298 pith_cstring_eq bool 2 296 297 call 299 pith_cstring_release void 1 297 -brif 298 L2230 L2231 -label L2230 +brif 298 L2244 L2245 +label L2244 load 300 cn field 301 300 16 list children iconst 302 0 @@ -46657,16 +46824,16 @@ load 304 generic_params load 305 subst_args call 306 checker_resolve_type_with_substitution_map int 3 303 304 305 store ret_type 306 -jmp L2229 -label L2231 -label L2229 -label L2227 +jmp L2243 +label L2245 +label L2243 +label L2241 load 307 __for_idx_130 iconst 308 1 add 309 307 308 store __for_idx_130 309 -jmp L2225 -label L2228 +jmp L2239 +label L2242 iconst 310 0 store vidx 310 load 311 param_type_nodes @@ -46675,65 +46842,65 @@ iconst 313 0 store __for_idx_131 313 store __for_len_131 312 store __for_iter_131 311 -label L2232 +label L2246 load 314 __for_idx_131 load 315 __for_len_131 lt 316 314 315 -brif 316 L2233 L2235 -label L2233 +brif 316 L2247 L2249 +label L2247 load 317 __for_iter_131 load 318 __for_idx_131 call 319 pith_list_get_value unknown 2 317 318 store __loopvar_131_ptn 319 iconst 320 0 -store __and_320_2239 320 +store __and_320_2253 320 load 321 __loopvar_131_ptn iconst 322 0 gte 323 321 322 -store __and_320_2239 323 -brif 323 L2239 L2240 -label L2239 +store __and_320_2253 323 +brif 323 L2253 L2254 +label L2253 load 324 vidx load 325 arg_types call 326 pith_list_len int 1 325 lt 327 324 326 -store __and_320_2239 327 -label L2240 -load 328 __and_320_2239 -brif 328 L2237 L2238 -label L2237 +store __and_320_2253 327 +label L2254 +load 328 __and_320_2253 +brif 328 L2251 L2252 +label L2251 load 329 __loopvar_131_ptn load 330 generic_params load 331 subst_args call 332 checker_resolve_type_with_substitution_map int 3 329 330 331 store concrete 332 iconst 333 0 -store __and_333_2244 333 +store __and_333_2258 333 load 334 concrete call 335 types_is_error_type bool 1 334 iconst 336 0 eq 337 335 336 -store __and_333_2244 337 -brif 337 L2244 L2245 -label L2244 +store __and_333_2258 337 +brif 337 L2258 L2259 +label L2258 load 338 arg_types load 339 vidx call 340 pith_list_get_value_strict int 2 338 339 call 341 types_is_error_type bool 1 340 iconst 342 0 eq 343 341 342 -store __and_333_2244 343 -label L2245 -load 344 __and_333_2244 -brif 344 L2242 L2243 -label L2242 +store __and_333_2258 343 +label L2259 +load 344 __and_333_2258 +brif 344 L2256 L2257 +label L2256 load 345 arg_types load 346 vidx call 347 pith_list_get_value_strict int 2 345 346 load 348 concrete neq 349 347 348 -brif 349 L2247 L2248 -label L2247 +brif 349 L2261 L2262 +label L2261 load 350 arg_types load 351 vidx call 352 pith_list_get_value_strict int 2 350 351 @@ -46741,8 +46908,8 @@ load 353 concrete call 354 checker_types_structurally_equal bool 2 352 353 iconst 355 0 eq 356 354 355 -brif 356 L2250 L2251 -label L2250 +brif 356 L2264 L2265 +label L2264 strref 357 m13s304 strref 358 m13s443 load 359 concrete @@ -46764,29 +46931,29 @@ call 374 pith_cstring_release void 1 371 call 375 checker_diagnostics_report_error void 2 357 372 call 376 pith_cstring_release void 1 357 call 377 pith_cstring_release void 1 372 -jmp L2249 -label L2251 -label L2249 -jmp L2246 -label L2248 -label L2246 -jmp L2241 -label L2243 -label L2241 -jmp L2236 -label L2238 -label L2236 +jmp L2263 +label L2265 +label L2263 +jmp L2260 +label L2262 +label L2260 +jmp L2255 +label L2257 +label L2255 +jmp L2250 +label L2252 +label L2250 load 378 vidx iconst 379 1 add 380 378 379 store vidx 380 -label L2234 +label L2248 load 381 __for_idx_131 iconst 382 1 add 383 381 382 store __for_idx_131 383 -jmp L2232 -label L2235 +jmp L2246 +label L2249 load 384 ret_type load 385 decl_node call 386 pith_struct_release void 1 385 @@ -46848,8 +47015,8 @@ field 11 10 16 list children call 12 pith_list_len int 1 11 iconst 13 1 lt 14 12 13 -brif 14 L2253 L2254 -label L2253 +brif 14 L2267 L2268 +label L2267 load 15 types_TID_ERR load 16 callee_node call 17 pith_struct_release void 1 16 @@ -46868,8 +47035,8 @@ call 29 pith_struct_release void 1 28 load 30 existing_info call 31 pith_struct_release void 1 30 ret 15 -label L2254 -label L2252 +label L2268 +label L2266 load 32 node field 33 32 16 list children iconst 34 0 @@ -46893,12 +47060,12 @@ iconst 47 0 store __for_idx_132 47 store __for_len_132 46 store __for_iter_132 45 -label L2255 +label L2269 load 48 __for_idx_132 load 49 __for_len_132 lt 50 48 49 -brif 50 L2256 L2258 -label L2256 +brif 50 L2270 L2272 +label L2270 load 51 __for_iter_132 load 52 __for_idx_132 call 53 pith_list_get_value unknown 2 51 52 @@ -46906,38 +47073,38 @@ store __loopvar_132_child 53 load 54 skip_callee iconst 55 0 gt 56 54 55 -brif 56 L2260 L2261 -label L2260 +brif 56 L2274 L2275 +label L2274 load 57 skip_callee iconst 58 1 sub 59 57 58 store skip_callee 59 -jmp L2257 -label L2261 -label L2259 +jmp L2271 +label L2275 +label L2273 load 60 arg_indices load 61 __loopvar_132_child call 62 pith_list_push_value void 2 60 61 -label L2257 +label L2271 load 63 __for_idx_132 iconst 64 1 add 65 63 64 store __for_idx_132 65 -jmp L2255 -label L2258 +jmp L2269 +label L2272 load 66 callee_node field 67 66 0 string kind strref 68 m13s291 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 -brif 69 L2263 L2264 -label L2263 +brif 69 L2277 L2278 +label L2277 load 71 callee_node strref 72 m13s618 call 73 checker_check_json_decode_callee bool 2 71 72 call 74 pith_cstring_release void 1 72 -brif 73 L2266 L2267 -label L2266 +brif 73 L2280 L2281 +label L2280 load 75 callee_node load 76 arg_indices load 77 scope_id @@ -46960,14 +47127,14 @@ call 93 pith_struct_release void 1 92 load 94 existing_info call 95 pith_struct_release void 1 94 ret 79 -label L2267 -label L2265 +label L2281 +label L2279 load 96 callee_node strref 97 m13s617 call 98 checker_check_json_decode_callee bool 2 96 97 call 99 pith_cstring_release void 1 97 -brif 98 L2269 L2270 -label L2269 +brif 98 L2283 L2284 +label L2283 load 100 callee_node load 101 arg_indices load 102 scope_id @@ -46990,14 +47157,14 @@ call 118 pith_struct_release void 1 117 load 119 existing_info call 120 pith_struct_release void 1 119 ret 104 -label L2270 -label L2268 +label L2284 +label L2282 load 121 callee_node strref 122 m13s618 call 123 checker_check_config_decode_callee bool 2 121 122 call 124 pith_cstring_release void 1 122 -brif 123 L2272 L2273 -label L2272 +brif 123 L2286 L2287 +label L2286 load 125 callee_node load 126 arg_indices load 127 scope_id @@ -47020,14 +47187,14 @@ call 143 pith_struct_release void 1 142 load 144 existing_info call 145 pith_struct_release void 1 144 ret 129 -label L2273 -label L2271 +label L2287 +label L2285 load 146 callee_node strref 147 m13s619 call 148 checker_check_config_decode_callee bool 2 146 147 call 149 pith_cstring_release void 1 147 -brif 148 L2275 L2276 -label L2275 +brif 148 L2289 L2290 +label L2289 load 150 callee_node load 151 arg_indices load 152 scope_id @@ -47050,749 +47217,759 @@ call 168 pith_struct_release void 1 167 load 169 existing_info call 170 pith_struct_release void 1 169 ret 154 -label L2276 -label L2274 +label L2290 +label L2288 load 171 callee_node strref 172 m13s618 -call 173 checker_check_toml_decode_callee bool 2 171 172 +call 173 checker_check_handle_decode_callee bool 2 171 172 call 174 pith_cstring_release void 1 172 -brif 173 L2278 L2279 -label L2278 +brif 173 L2292 L2293 +label L2292 load 175 callee_node -load 176 arg_indices -load 177 scope_id -iconst 178 0 -call 179 checker_check_toml_decode_call int 4 175 176 177 178 -load 180 callee_node -call 181 pith_struct_release void 1 180 -load 182 arg_indices -call 183 pith_list_release_handle void 1 182 -load 184 obj_node -call 185 pith_struct_release void 1 184 -load 186 explicit_name -call 187 pith_cstring_release void 1 186 -load 188 gdecl -call 189 pith_struct_release void 1 188 -load 190 name -call 191 pith_cstring_release void 1 190 -load 192 info -call 193 pith_struct_release void 1 192 -load 194 existing_info -call 195 pith_struct_release void 1 194 -ret 179 -label L2279 -label L2277 -load 196 callee_node -strref 197 m13s617 -call 198 checker_check_toml_decode_callee bool 2 196 197 -call 199 pith_cstring_release void 1 197 -brif 198 L2281 L2282 -label L2281 -load 200 callee_node -load 201 arg_indices -load 202 scope_id -iconst 203 1 -call 204 checker_check_toml_decode_call int 4 200 201 202 203 +load 176 callee_node +strref 177 m13s618 +call 178 checker_handle_decode_module string 2 176 177 +call 179 pith_cstring_release void 1 177 +load 180 arg_indices +load 181 scope_id +iconst 182 0 +call 183 checker_check_handle_decode_call int 5 175 178 180 181 182 +call 184 pith_cstring_release void 1 178 +load 185 callee_node +call 186 pith_struct_release void 1 185 +load 187 arg_indices +call 188 pith_list_release_handle void 1 187 +load 189 obj_node +call 190 pith_struct_release void 1 189 +load 191 explicit_name +call 192 pith_cstring_release void 1 191 +load 193 gdecl +call 194 pith_struct_release void 1 193 +load 195 name +call 196 pith_cstring_release void 1 195 +load 197 info +call 198 pith_struct_release void 1 197 +load 199 existing_info +call 200 pith_struct_release void 1 199 +ret 183 +label L2293 +label L2291 +load 201 callee_node +strref 202 m13s617 +call 203 checker_check_handle_decode_callee bool 2 201 202 +call 204 pith_cstring_release void 1 202 +brif 203 L2295 L2296 +label L2295 load 205 callee_node -call 206 pith_struct_release void 1 205 -load 207 arg_indices -call 208 pith_list_release_handle void 1 207 -load 209 obj_node -call 210 pith_struct_release void 1 209 -load 211 explicit_name -call 212 pith_cstring_release void 1 211 -load 213 gdecl -call 214 pith_struct_release void 1 213 -load 215 name -call 216 pith_cstring_release void 1 215 -load 217 info -call 218 pith_struct_release void 1 217 -load 219 existing_info +load 206 callee_node +strref 207 m13s617 +call 208 checker_handle_decode_module string 2 206 207 +call 209 pith_cstring_release void 1 207 +load 210 arg_indices +load 211 scope_id +iconst 212 1 +call 213 checker_check_handle_decode_call int 5 205 208 210 211 212 +call 214 pith_cstring_release void 1 208 +load 215 callee_node +call 216 pith_struct_release void 1 215 +load 217 arg_indices +call 218 pith_list_release_handle void 1 217 +load 219 obj_node call 220 pith_struct_release void 1 219 -ret 204 -label L2282 -label L2280 -load 221 callee_node -strref 222 m13s616 -call 223 checker_check_config_file_decode_callee bool 2 221 222 -call 224 pith_cstring_release void 1 222 -brif 223 L2284 L2285 -label L2284 -load 225 callee_node -load 226 arg_indices -load 227 scope_id -call 228 checker_check_config_file_decode_call int 3 225 226 227 -load 229 callee_node +load 221 explicit_name +call 222 pith_cstring_release void 1 221 +load 223 gdecl +call 224 pith_struct_release void 1 223 +load 225 name +call 226 pith_cstring_release void 1 225 +load 227 info +call 228 pith_struct_release void 1 227 +load 229 existing_info call 230 pith_struct_release void 1 229 -load 231 arg_indices -call 232 pith_list_release_handle void 1 231 -load 233 obj_node -call 234 pith_struct_release void 1 233 -load 235 explicit_name -call 236 pith_cstring_release void 1 235 -load 237 gdecl -call 238 pith_struct_release void 1 237 -load 239 name -call 240 pith_cstring_release void 1 239 -load 241 info -call 242 pith_struct_release void 1 241 -load 243 existing_info +ret 213 +label L2296 +label L2294 +load 231 callee_node +strref 232 m13s616 +call 233 checker_check_config_file_decode_callee bool 2 231 232 +call 234 pith_cstring_release void 1 232 +brif 233 L2298 L2299 +label L2298 +load 235 callee_node +load 236 arg_indices +load 237 scope_id +call 238 checker_check_config_file_decode_call int 3 235 236 237 +load 239 callee_node +call 240 pith_struct_release void 1 239 +load 241 arg_indices +call 242 pith_list_release_handle void 1 241 +load 243 obj_node call 244 pith_struct_release void 1 243 -ret 228 -label L2285 -label L2283 -load 245 callee_node -strref 246 m13s615 -call 247 checker_check_config_file_decode_callee bool 2 245 246 -call 248 pith_cstring_release void 1 246 -brif 247 L2287 L2288 -label L2287 -load 249 callee_node -load 250 arg_indices -load 251 scope_id -call 252 checker_check_config_file_decode_call int 3 249 250 251 -load 253 callee_node +load 245 explicit_name +call 246 pith_cstring_release void 1 245 +load 247 gdecl +call 248 pith_struct_release void 1 247 +load 249 name +call 250 pith_cstring_release void 1 249 +load 251 info +call 252 pith_struct_release void 1 251 +load 253 existing_info call 254 pith_struct_release void 1 253 -load 255 arg_indices -call 256 pith_list_release_handle void 1 255 -load 257 obj_node -call 258 pith_struct_release void 1 257 -load 259 explicit_name -call 260 pith_cstring_release void 1 259 -load 261 gdecl -call 262 pith_struct_release void 1 261 -load 263 name -call 264 pith_cstring_release void 1 263 -load 265 info -call 266 pith_struct_release void 1 265 -load 267 existing_info -call 268 pith_struct_release void 1 267 -ret 252 -label L2288 -label L2286 -load 269 callee_node -field 270 269 16 list children -call 271 pith_list_len int 1 270 -iconst 272 2 -gte 273 271 272 -brif 273 L2290 L2291 -label L2290 -load 274 obj_node -load 275 callee_node -field 276 275 16 list children -iconst 277 0 -call 278 pith_list_get_value_strict int 2 276 277 -call 279 ast_get_node struct:Node 1 278 -call 280 pith_struct_release void 1 274 -store obj_node 279 -load 281 obj_node -field 282 281 0 string kind -strref 283 m13s293 -call 284 pith_cstring_eq bool 2 282 283 -call 285 pith_cstring_release void 1 283 -brif 284 L2293 L2294 -label L2293 -load 286 obj_node -field 287 286 8 string value -strref 288 m13s23 -call 289 pith_cstring_eq bool 2 287 288 -call 290 pith_cstring_release void 1 288 -brif 289 L2296 L2297 -label L2296 -load 291 callee_node -load 292 arg_indices -load 293 scope_id -call 294 checker_check_channel_constructor int 3 291 292 293 -load 295 callee_node -call 296 pith_struct_release void 1 295 -load 297 arg_indices -call 298 pith_list_release_handle void 1 297 -load 299 obj_node -call 300 pith_struct_release void 1 299 -load 301 explicit_name -call 302 pith_cstring_release void 1 301 -load 303 gdecl -call 304 pith_struct_release void 1 303 -load 305 name -call 306 pith_cstring_release void 1 305 -load 307 info -call 308 pith_struct_release void 1 307 -load 309 existing_info -call 310 pith_struct_release void 1 309 -ret 294 +ret 238 +label L2299 label L2297 -label L2295 -jmp L2292 -label L2294 -label L2292 -jmp L2289 -label L2291 -label L2289 -load 311 explicit_name -load 312 callee_node -call 313 checker_check_explicit_generic_callee_name string 1 312 -call 314 pith_cstring_release void 1 311 -store explicit_name 313 -iconst 315 0 -store __and_315_2301 315 -load 316 explicit_name -call 317 string_len int 1 316 -iconst 318 0 -gt 319 317 318 -store __and_315_2301 319 -brif 319 L2301 L2302 +load 255 callee_node +strref 256 m13s615 +call 257 checker_check_config_file_decode_callee bool 2 255 256 +call 258 pith_cstring_release void 1 256 +brif 257 L2301 L2302 label L2301 -load 320 explicit_name -call 321 checker_has_generic_declaration bool 1 320 -store __and_315_2301 321 +load 259 callee_node +load 260 arg_indices +load 261 scope_id +call 262 checker_check_config_file_decode_call int 3 259 260 261 +load 263 callee_node +call 264 pith_struct_release void 1 263 +load 265 arg_indices +call 266 pith_list_release_handle void 1 265 +load 267 obj_node +call 268 pith_struct_release void 1 267 +load 269 explicit_name +call 270 pith_cstring_release void 1 269 +load 271 gdecl +call 272 pith_struct_release void 1 271 +load 273 name +call 274 pith_cstring_release void 1 273 +load 275 info +call 276 pith_struct_release void 1 275 +load 277 existing_info +call 278 pith_struct_release void 1 277 +ret 262 label L2302 -load 322 __and_315_2301 -brif 322 L2299 L2300 -label L2299 -load 323 gdecl -load 324 explicit_name -call 325 checker_get_generic_declaration_index int 1 324 -call 326 ast_get_node struct:Node 1 325 -call 327 pith_struct_release void 1 323 -store gdecl 326 -load 328 gdecl -field 329 328 0 string kind -strref 330 m13s287 -call 331 pith_cstring_eq bool 2 329 330 -call 332 pith_cstring_release void 1 330 -brif 331 L2304 L2305 -label L2304 -load 333 explicit_name -load 334 callee_node -load 335 arg_indices -load 336 scope_id -call 337 checker_check_generic_struct_call_explicit int 4 333 334 335 336 -load 338 callee_node -call 339 pith_struct_release void 1 338 -load 340 arg_indices -call 341 pith_list_release_handle void 1 340 -load 342 obj_node -call 343 pith_struct_release void 1 342 -load 344 explicit_name -call 345 pith_cstring_release void 1 344 -load 346 gdecl -call 347 pith_struct_release void 1 346 -load 348 name -call 349 pith_cstring_release void 1 348 -load 350 info -call 351 pith_struct_release void 1 350 -load 352 existing_info -call 353 pith_struct_release void 1 352 -ret 337 -label L2305 -label L2303 -load 354 explicit_name -load 355 callee_node -load 356 arg_indices -load 357 scope_id -call 358 checker_check_generic_function_call_explicit int 4 354 355 356 357 -load 359 callee_node -call 360 pith_struct_release void 1 359 -load 361 arg_indices -call 362 pith_list_release_handle void 1 361 -load 363 obj_node -call 364 pith_struct_release void 1 363 -load 365 explicit_name -call 366 pith_cstring_release void 1 365 -load 367 gdecl -call 368 pith_struct_release void 1 367 -load 369 name -call 370 pith_cstring_release void 1 369 -load 371 info -call 372 pith_struct_release void 1 371 -load 373 existing_info -call 374 pith_struct_release void 1 373 -ret 358 label L2300 -label L2298 -load 375 callee_idx -load 376 arg_indices -load 377 scope_id -call 378 checker_check_function_call_expression int 3 375 376 377 -load 379 callee_node -call 380 pith_struct_release void 1 379 -load 381 arg_indices -call 382 pith_list_release_handle void 1 381 -load 383 obj_node -call 384 pith_struct_release void 1 383 -load 385 explicit_name -call 386 pith_cstring_release void 1 385 -load 387 gdecl -call 388 pith_struct_release void 1 387 -load 389 name -call 390 pith_cstring_release void 1 389 -load 391 info -call 392 pith_struct_release void 1 391 -load 393 existing_info -call 394 pith_struct_release void 1 393 -ret 378 -label L2264 -label L2262 -load 395 callee_node -field 396 395 0 string kind -strref 397 m13s293 -call 398 pith_cstring_eq bool 2 396 397 -call 399 pith_cstring_release void 1 397 -brif 398 L2307 L2308 +load 279 callee_node +field 280 279 16 list children +call 281 pith_list_len int 1 280 +iconst 282 2 +gte 283 281 282 +brif 283 L2304 L2305 +label L2304 +load 284 obj_node +load 285 callee_node +field 286 285 16 list children +iconst 287 0 +call 288 pith_list_get_value_strict int 2 286 287 +call 289 ast_get_node struct:Node 1 288 +call 290 pith_struct_release void 1 284 +store obj_node 289 +load 291 obj_node +field 292 291 0 string kind +strref 293 m13s293 +call 294 pith_cstring_eq bool 2 292 293 +call 295 pith_cstring_release void 1 293 +brif 294 L2307 L2308 label L2307 -load 400 name -load 401 callee_node -field 402 401 8 string value -call 403 pith_cstring_retain void 1 402 -call 404 pith_cstring_release void 1 400 -store name 402 -iconst 405 0 -store __and_405_2312 405 -load 406 checker_checking_test_decl -store __and_405_2312 406 -brif 406 L2312 L2313 -label L2312 -load 407 name -strref 408 m13s614 -call 409 pith_cstring_eq bool 2 407 408 -call 410 pith_cstring_release void 1 408 -store __and_405_2312 409 -label L2313 -load 411 __and_405_2312 -brif 411 L2310 L2311 +load 296 obj_node +field 297 296 8 string value +strref 298 m13s23 +call 299 pith_cstring_eq bool 2 297 298 +call 300 pith_cstring_release void 1 298 +brif 299 L2310 L2311 label L2310 -load 412 arg_indices -load 413 scope_id -call 414 checker_check_assertion_equality int 2 412 413 -load 415 callee_node -call 416 pith_struct_release void 1 415 -load 417 arg_indices -call 418 pith_list_release_handle void 1 417 -load 419 obj_node -call 420 pith_struct_release void 1 419 -load 421 explicit_name -call 422 pith_cstring_release void 1 421 -load 423 gdecl -call 424 pith_struct_release void 1 423 -load 425 name -call 426 pith_cstring_release void 1 425 -load 427 info -call 428 pith_struct_release void 1 427 -load 429 existing_info -call 430 pith_struct_release void 1 429 -ret 414 +load 301 callee_node +load 302 arg_indices +load 303 scope_id +call 304 checker_check_channel_constructor int 3 301 302 303 +load 305 callee_node +call 306 pith_struct_release void 1 305 +load 307 arg_indices +call 308 pith_list_release_handle void 1 307 +load 309 obj_node +call 310 pith_struct_release void 1 309 +load 311 explicit_name +call 312 pith_cstring_release void 1 311 +load 313 gdecl +call 314 pith_struct_release void 1 313 +load 315 name +call 316 pith_cstring_release void 1 315 +load 317 info +call 318 pith_struct_release void 1 317 +load 319 existing_info +call 320 pith_struct_release void 1 319 +ret 304 label L2311 label L2309 -iconst 431 0 -store __and_431_2317 431 -load 432 checker_checking_test_decl -store __and_431_2317 432 -brif 432 L2317 L2318 -label L2317 -load 433 name -strref 434 m13s613 -call 435 pith_cstring_eq bool 2 433 434 -call 436 pith_cstring_release void 1 434 -store __and_431_2317 435 -label L2318 -load 437 __and_431_2317 -brif 437 L2315 L2316 +jmp L2306 +label L2308 +label L2306 +jmp L2303 +label L2305 +label L2303 +load 321 explicit_name +load 322 callee_node +call 323 checker_check_explicit_generic_callee_name string 1 322 +call 324 pith_cstring_release void 1 321 +store explicit_name 323 +iconst 325 0 +store __and_325_2315 325 +load 326 explicit_name +call 327 string_len int 1 326 +iconst 328 0 +gt 329 327 328 +store __and_325_2315 329 +brif 329 L2315 L2316 label L2315 -load 438 arg_indices -load 439 scope_id -call 440 checker_check_assertion_equality int 2 438 439 -load 441 callee_node -call 442 pith_struct_release void 1 441 -load 443 arg_indices -call 444 pith_list_release_handle void 1 443 -load 445 obj_node -call 446 pith_struct_release void 1 445 -load 447 explicit_name -call 448 pith_cstring_release void 1 447 -load 449 gdecl -call 450 pith_struct_release void 1 449 -load 451 name -call 452 pith_cstring_release void 1 451 -load 453 info -call 454 pith_struct_release void 1 453 -load 455 existing_info -call 456 pith_struct_release void 1 455 -ret 440 +load 330 explicit_name +call 331 checker_has_generic_declaration bool 1 330 +store __and_325_2315 331 label L2316 +load 332 __and_325_2315 +brif 332 L2313 L2314 +label L2313 +load 333 gdecl +load 334 explicit_name +call 335 checker_get_generic_declaration_index int 1 334 +call 336 ast_get_node struct:Node 1 335 +call 337 pith_struct_release void 1 333 +store gdecl 336 +load 338 gdecl +field 339 338 0 string kind +strref 340 m13s287 +call 341 pith_cstring_eq bool 2 339 340 +call 342 pith_cstring_release void 1 340 +brif 341 L2318 L2319 +label L2318 +load 343 explicit_name +load 344 callee_node +load 345 arg_indices +load 346 scope_id +call 347 checker_check_generic_struct_call_explicit int 4 343 344 345 346 +load 348 callee_node +call 349 pith_struct_release void 1 348 +load 350 arg_indices +call 351 pith_list_release_handle void 1 350 +load 352 obj_node +call 353 pith_struct_release void 1 352 +load 354 explicit_name +call 355 pith_cstring_release void 1 354 +load 356 gdecl +call 357 pith_struct_release void 1 356 +load 358 name +call 359 pith_cstring_release void 1 358 +load 360 info +call 361 pith_struct_release void 1 360 +load 362 existing_info +call 363 pith_struct_release void 1 362 +ret 347 +label L2319 +label L2317 +load 364 explicit_name +load 365 callee_node +load 366 arg_indices +load 367 scope_id +call 368 checker_check_generic_function_call_explicit int 4 364 365 366 367 +load 369 callee_node +call 370 pith_struct_release void 1 369 +load 371 arg_indices +call 372 pith_list_release_handle void 1 371 +load 373 obj_node +call 374 pith_struct_release void 1 373 +load 375 explicit_name +call 376 pith_cstring_release void 1 375 +load 377 gdecl +call 378 pith_struct_release void 1 377 +load 379 name +call 380 pith_cstring_release void 1 379 +load 381 info +call 382 pith_struct_release void 1 381 +load 383 existing_info +call 384 pith_struct_release void 1 383 +ret 368 label L2314 -load 457 name -strref 458 m13s20 -call 459 pith_cstring_eq bool 2 457 458 -call 460 pith_cstring_release void 1 458 -brif 459 L2320 L2321 -label L2320 -load 461 arg_indices -load 462 scope_id -call 463 checker_check_list_map_builtin int 2 461 462 -load 464 callee_node -call 465 pith_struct_release void 1 464 -load 466 arg_indices -call 467 pith_list_release_handle void 1 466 -load 468 obj_node -call 469 pith_struct_release void 1 468 -load 470 explicit_name -call 471 pith_cstring_release void 1 470 -load 472 gdecl -call 473 pith_struct_release void 1 472 -load 474 name -call 475 pith_cstring_release void 1 474 -load 476 info -call 477 pith_struct_release void 1 476 -load 478 existing_info -call 479 pith_struct_release void 1 478 -ret 463 +label L2312 +load 385 callee_idx +load 386 arg_indices +load 387 scope_id +call 388 checker_check_function_call_expression int 3 385 386 387 +load 389 callee_node +call 390 pith_struct_release void 1 389 +load 391 arg_indices +call 392 pith_list_release_handle void 1 391 +load 393 obj_node +call 394 pith_struct_release void 1 393 +load 395 explicit_name +call 396 pith_cstring_release void 1 395 +load 397 gdecl +call 398 pith_struct_release void 1 397 +load 399 name +call 400 pith_cstring_release void 1 399 +load 401 info +call 402 pith_struct_release void 1 401 +load 403 existing_info +call 404 pith_struct_release void 1 403 +ret 388 +label L2278 +label L2276 +load 405 callee_node +field 406 405 0 string kind +strref 407 m13s293 +call 408 pith_cstring_eq bool 2 406 407 +call 409 pith_cstring_release void 1 407 +brif 408 L2321 L2322 label L2321 -label L2319 -load 480 name -strref 481 m13s503 -call 482 pith_cstring_eq bool 2 480 481 -call 483 pith_cstring_release void 1 481 -brif 482 L2323 L2324 -label L2323 -load 484 arg_indices -load 485 scope_id -call 486 checker_check_list_filter_builtin int 2 484 485 -load 487 callee_node -call 488 pith_struct_release void 1 487 -load 489 arg_indices -call 490 pith_list_release_handle void 1 489 -load 491 obj_node -call 492 pith_struct_release void 1 491 -load 493 explicit_name -call 494 pith_cstring_release void 1 493 -load 495 gdecl -call 496 pith_struct_release void 1 495 -load 497 name -call 498 pith_cstring_release void 1 497 -load 499 info -call 500 pith_struct_release void 1 499 -load 501 existing_info -call 502 pith_struct_release void 1 501 -ret 486 -label L2324 -label L2322 -load 503 name -strref 504 m13s502 -call 505 pith_cstring_eq bool 2 503 504 -call 506 pith_cstring_release void 1 504 -brif 505 L2326 L2327 +load 410 name +load 411 callee_node +field 412 411 8 string value +call 413 pith_cstring_retain void 1 412 +call 414 pith_cstring_release void 1 410 +store name 412 +iconst 415 0 +store __and_415_2326 415 +load 416 checker_checking_test_decl +store __and_415_2326 416 +brif 416 L2326 L2327 label L2326 -load 507 arg_indices -load 508 scope_id -call 509 checker_check_list_reduce_builtin int 2 507 508 -load 510 callee_node -call 511 pith_struct_release void 1 510 -load 512 arg_indices -call 513 pith_list_release_handle void 1 512 -load 514 obj_node -call 515 pith_struct_release void 1 514 -load 516 explicit_name -call 517 pith_cstring_release void 1 516 -load 518 gdecl -call 519 pith_struct_release void 1 518 -load 520 name -call 521 pith_cstring_release void 1 520 -load 522 info -call 523 pith_struct_release void 1 522 -load 524 existing_info -call 525 pith_struct_release void 1 524 -ret 509 +load 417 name +strref 418 m13s614 +call 419 pith_cstring_eq bool 2 417 418 +call 420 pith_cstring_release void 1 418 +store __and_415_2326 419 label L2327 +load 421 __and_415_2326 +brif 421 L2324 L2325 +label L2324 +load 422 arg_indices +load 423 scope_id +call 424 checker_check_assertion_equality int 2 422 423 +load 425 callee_node +call 426 pith_struct_release void 1 425 +load 427 arg_indices +call 428 pith_list_release_handle void 1 427 +load 429 obj_node +call 430 pith_struct_release void 1 429 +load 431 explicit_name +call 432 pith_cstring_release void 1 431 +load 433 gdecl +call 434 pith_struct_release void 1 433 +load 435 name +call 436 pith_cstring_release void 1 435 +load 437 info +call 438 pith_struct_release void 1 437 +load 439 existing_info +call 440 pith_struct_release void 1 439 +ret 424 label L2325 -load 526 name -call 527 types_lookup_type_id int 1 526 -store struct_tid 527 -load 528 struct_tid -iconst 529 0 -gte 530 528 529 -brif 530 L2329 L2330 -label L2329 -load 531 info -load 532 struct_tid -call 533 types_get_type_info struct:TypeInfo 1 532 -call 534 pith_struct_release void 1 531 -store info 533 -load 535 info -field 536 535 0 string kind -strref 537 m13s34 -call 538 pith_cstring_eq bool 2 536 537 -call 539 pith_cstring_release void 1 537 -brif 538 L2332 L2333 +label L2323 +iconst 441 0 +store __and_441_2331 441 +load 442 checker_checking_test_decl +store __and_441_2331 442 +brif 442 L2331 L2332 +label L2331 +load 443 name +strref 444 m13s613 +call 445 pith_cstring_eq bool 2 443 444 +call 446 pith_cstring_release void 1 444 +store __and_441_2331 445 label L2332 -load 540 info -field 541 540 16 list_string fields -call 542 pith_list_len int 1 541 -iconst 543 0 -eq 544 542 543 -brif 544 L2335 L2336 +load 447 __and_441_2331 +brif 447 L2329 L2330 +label L2329 +load 448 arg_indices +load 449 scope_id +call 450 checker_check_assertion_equality int 2 448 449 +load 451 callee_node +call 452 pith_struct_release void 1 451 +load 453 arg_indices +call 454 pith_list_release_handle void 1 453 +load 455 obj_node +call 456 pith_struct_release void 1 455 +load 457 explicit_name +call 458 pith_cstring_release void 1 457 +load 459 gdecl +call 460 pith_struct_release void 1 459 +load 461 name +call 462 pith_cstring_release void 1 461 +load 463 info +call 464 pith_struct_release void 1 463 +load 465 existing_info +call 466 pith_struct_release void 1 465 +ret 450 +label L2330 +label L2328 +load 467 name +strref 468 m13s20 +call 469 pith_cstring_eq bool 2 467 468 +call 470 pith_cstring_release void 1 468 +brif 469 L2334 L2335 +label L2334 +load 471 arg_indices +load 472 scope_id +call 473 checker_check_list_map_builtin int 2 471 472 +load 474 callee_node +call 475 pith_struct_release void 1 474 +load 476 arg_indices +call 477 pith_list_release_handle void 1 476 +load 478 obj_node +call 479 pith_struct_release void 1 478 +load 480 explicit_name +call 481 pith_cstring_release void 1 480 +load 482 gdecl +call 483 pith_struct_release void 1 482 +load 484 name +call 485 pith_cstring_release void 1 484 +load 486 info +call 487 pith_struct_release void 1 486 +load 488 existing_info +call 489 pith_struct_release void 1 488 +ret 473 label L2335 -load 545 arg_indices -call 546 pith_list_len int 1 545 -iconst 547 0 -gt 548 546 547 -brif 548 L2338 L2339 +label L2333 +load 490 name +strref 491 m13s503 +call 492 pith_cstring_eq bool 2 490 491 +call 493 pith_cstring_release void 1 491 +brif 492 L2337 L2338 +label L2337 +load 494 arg_indices +load 495 scope_id +call 496 checker_check_list_filter_builtin int 2 494 495 +load 497 callee_node +call 498 pith_struct_release void 1 497 +load 499 arg_indices +call 500 pith_list_release_handle void 1 499 +load 501 obj_node +call 502 pith_struct_release void 1 501 +load 503 explicit_name +call 504 pith_cstring_release void 1 503 +load 505 gdecl +call 506 pith_struct_release void 1 505 +load 507 name +call 508 pith_cstring_release void 1 507 +load 509 info +call 510 pith_struct_release void 1 509 +load 511 existing_info +call 512 pith_struct_release void 1 511 +ret 496 label L2338 -load 549 callee_idx -load 550 arg_indices -load 551 scope_id -call 552 checker_check_function_call_expression int 3 549 550 551 -load 553 callee_node -call 554 pith_struct_release void 1 553 +label L2336 +load 513 name +strref 514 m13s502 +call 515 pith_cstring_eq bool 2 513 514 +call 516 pith_cstring_release void 1 514 +brif 515 L2340 L2341 +label L2340 +load 517 arg_indices +load 518 scope_id +call 519 checker_check_list_reduce_builtin int 2 517 518 +load 520 callee_node +call 521 pith_struct_release void 1 520 +load 522 arg_indices +call 523 pith_list_release_handle void 1 522 +load 524 obj_node +call 525 pith_struct_release void 1 524 +load 526 explicit_name +call 527 pith_cstring_release void 1 526 +load 528 gdecl +call 529 pith_struct_release void 1 528 +load 530 name +call 531 pith_cstring_release void 1 530 +load 532 info +call 533 pith_struct_release void 1 532 +load 534 existing_info +call 535 pith_struct_release void 1 534 +ret 519 +label L2341 +label L2339 +load 536 name +call 537 types_lookup_type_id int 1 536 +store struct_tid 537 +load 538 struct_tid +iconst 539 0 +gte 540 538 539 +brif 540 L2343 L2344 +label L2343 +load 541 info +load 542 struct_tid +call 543 types_get_type_info struct:TypeInfo 1 542 +call 544 pith_struct_release void 1 541 +store info 543 +load 545 info +field 546 545 0 string kind +strref 547 m13s34 +call 548 pith_cstring_eq bool 2 546 547 +call 549 pith_cstring_release void 1 547 +brif 548 L2346 L2347 +label L2346 +load 550 info +field 551 550 16 list_string fields +call 552 pith_list_len int 1 551 +iconst 553 0 +eq 554 552 553 +brif 554 L2349 L2350 +label L2349 load 555 arg_indices -call 556 pith_list_release_handle void 1 555 -load 557 obj_node -call 558 pith_struct_release void 1 557 -load 559 explicit_name -call 560 pith_cstring_release void 1 559 -load 561 gdecl -call 562 pith_struct_release void 1 561 -load 563 name -call 564 pith_cstring_release void 1 563 -load 565 info -call 566 pith_struct_release void 1 565 -load 567 existing_info +call 556 pith_list_len int 1 555 +iconst 557 0 +gt 558 556 557 +brif 558 L2352 L2353 +label L2352 +load 559 callee_idx +load 560 arg_indices +load 561 scope_id +call 562 checker_check_function_call_expression int 3 559 560 561 +load 563 callee_node +call 564 pith_struct_release void 1 563 +load 565 arg_indices +call 566 pith_list_release_handle void 1 565 +load 567 obj_node call 568 pith_struct_release void 1 567 -ret 552 -label L2339 -label L2337 -jmp L2334 -label L2336 -label L2334 -load 569 name -load 570 struct_tid -load 571 info -load 572 arg_indices -load 573 scope_id -call 574 checker_check_struct_constructor int 5 569 570 571 572 573 -load 575 callee_node +load 569 explicit_name +call 570 pith_cstring_release void 1 569 +load 571 gdecl +call 572 pith_struct_release void 1 571 +load 573 name +call 574 pith_cstring_release void 1 573 +load 575 info call 576 pith_struct_release void 1 575 -load 577 arg_indices -call 578 pith_list_release_handle void 1 577 -load 579 obj_node -call 580 pith_struct_release void 1 579 -load 581 explicit_name -call 582 pith_cstring_release void 1 581 -load 583 gdecl -call 584 pith_struct_release void 1 583 -load 585 name -call 586 pith_cstring_release void 1 585 -load 587 info -call 588 pith_struct_release void 1 587 -load 589 existing_info +load 577 existing_info +call 578 pith_struct_release void 1 577 +ret 562 +label L2353 +label L2351 +jmp L2348 +label L2350 +label L2348 +load 579 name +load 580 struct_tid +load 581 info +load 582 arg_indices +load 583 scope_id +call 584 checker_check_struct_constructor int 5 579 580 581 582 583 +load 585 callee_node +call 586 pith_struct_release void 1 585 +load 587 arg_indices +call 588 pith_list_release_handle void 1 587 +load 589 obj_node call 590 pith_struct_release void 1 589 -ret 574 -label L2333 -label L2331 -load 591 info -field 592 591 0 string kind -strref 593 m13s33 -call 594 pith_cstring_eq bool 2 592 593 -call 595 pith_cstring_release void 1 593 -brif 594 L2341 L2342 -label L2341 -load 596 callee_idx -load 597 arg_indices -load 598 scope_id -call 599 checker_check_function_call_expression int 3 596 597 598 -load 600 callee_node -call 601 pith_struct_release void 1 600 -load 602 arg_indices -call 603 pith_list_release_handle void 1 602 -load 604 obj_node -call 605 pith_struct_release void 1 604 -load 606 explicit_name -call 607 pith_cstring_release void 1 606 -load 608 gdecl -call 609 pith_struct_release void 1 608 -load 610 name -call 611 pith_cstring_release void 1 610 -load 612 info -call 613 pith_struct_release void 1 612 -load 614 existing_info +load 591 explicit_name +call 592 pith_cstring_release void 1 591 +load 593 gdecl +call 594 pith_struct_release void 1 593 +load 595 name +call 596 pith_cstring_release void 1 595 +load 597 info +call 598 pith_struct_release void 1 597 +load 599 existing_info +call 600 pith_struct_release void 1 599 +ret 584 +label L2347 +label L2345 +load 601 info +field 602 601 0 string kind +strref 603 m13s33 +call 604 pith_cstring_eq bool 2 602 603 +call 605 pith_cstring_release void 1 603 +brif 604 L2355 L2356 +label L2355 +load 606 callee_idx +load 607 arg_indices +load 608 scope_id +call 609 checker_check_function_call_expression int 3 606 607 608 +load 610 callee_node +call 611 pith_struct_release void 1 610 +load 612 arg_indices +call 613 pith_list_release_handle void 1 612 +load 614 obj_node call 615 pith_struct_release void 1 614 -ret 599 -label L2342 -label L2340 -jmp L2328 -label L2330 -label L2328 -load 616 scope_id -load 617 name -call 618 scope_lookup_binding int 2 616 617 -store existing_fn 618 -load 619 existing_fn -iconst 620 0 -gte 621 619 620 -brif 621 L2344 L2345 +load 616 explicit_name +call 617 pith_cstring_release void 1 616 +load 618 gdecl +call 619 pith_struct_release void 1 618 +load 620 name +call 621 pith_cstring_release void 1 620 +load 622 info +call 623 pith_struct_release void 1 622 +load 624 existing_info +call 625 pith_struct_release void 1 624 +ret 609 +label L2356 +label L2354 +jmp L2342 label L2344 -load 622 existing_info -load 623 existing_fn -call 624 types_get_type_info struct:TypeInfo 1 623 -call 625 pith_struct_release void 1 622 -store existing_info 624 -load 626 existing_info -field 627 626 0 string kind -strref 628 m13s31 -call 629 pith_cstring_eq bool 2 627 628 -call 630 pith_cstring_release void 1 628 -brif 629 L2347 L2348 -label L2347 -load 631 callee_idx -load 632 arg_indices -load 633 scope_id -call 634 checker_check_function_call_expression int 3 631 632 633 -load 635 callee_node -call 636 pith_struct_release void 1 635 -load 637 arg_indices -call 638 pith_list_release_handle void 1 637 -load 639 obj_node -call 640 pith_struct_release void 1 639 -load 641 explicit_name -call 642 pith_cstring_release void 1 641 -load 643 gdecl -call 644 pith_struct_release void 1 643 -load 645 name -call 646 pith_cstring_release void 1 645 -load 647 info -call 648 pith_struct_release void 1 647 -load 649 existing_info +label L2342 +load 626 scope_id +load 627 name +call 628 scope_lookup_binding int 2 626 627 +store existing_fn 628 +load 629 existing_fn +iconst 630 0 +gte 631 629 630 +brif 631 L2358 L2359 +label L2358 +load 632 existing_info +load 633 existing_fn +call 634 types_get_type_info struct:TypeInfo 1 633 +call 635 pith_struct_release void 1 632 +store existing_info 634 +load 636 existing_info +field 637 636 0 string kind +strref 638 m13s31 +call 639 pith_cstring_eq bool 2 637 638 +call 640 pith_cstring_release void 1 638 +brif 639 L2361 L2362 +label L2361 +load 641 callee_idx +load 642 arg_indices +load 643 scope_id +call 644 checker_check_function_call_expression int 3 641 642 643 +load 645 callee_node +call 646 pith_struct_release void 1 645 +load 647 arg_indices +call 648 pith_list_release_handle void 1 647 +load 649 obj_node call 650 pith_struct_release void 1 649 -ret 634 -label L2348 -label L2346 -jmp L2343 -label L2345 -label L2343 -load 651 name -call 652 checker_has_generic_declaration bool 1 651 -brif 652 L2350 L2351 -label L2350 +load 651 explicit_name +call 652 pith_cstring_release void 1 651 load 653 gdecl -load 654 name -call 655 checker_get_generic_declaration_index int 1 654 -call 656 ast_get_node struct:Node 1 655 -call 657 pith_struct_release void 1 653 -store gdecl 656 -load 658 gdecl -field 659 658 0 string kind -strref 660 m13s287 -call 661 pith_cstring_eq bool 2 659 660 -call 662 pith_cstring_release void 1 660 -brif 661 L2353 L2354 -label L2353 -load 663 name -load 664 arg_indices -load 665 scope_id -call 666 checker_check_generic_struct_constructor int 3 663 664 665 -load 667 callee_node -call 668 pith_struct_release void 1 667 -load 669 arg_indices -call 670 pith_list_release_handle void 1 669 -load 671 obj_node -call 672 pith_struct_release void 1 671 -load 673 explicit_name -call 674 pith_cstring_release void 1 673 -load 675 gdecl -call 676 pith_struct_release void 1 675 -load 677 name -call 678 pith_cstring_release void 1 677 -load 679 info -call 680 pith_struct_release void 1 679 -load 681 existing_info +call 654 pith_struct_release void 1 653 +load 655 name +call 656 pith_cstring_release void 1 655 +load 657 info +call 658 pith_struct_release void 1 657 +load 659 existing_info +call 660 pith_struct_release void 1 659 +ret 644 +label L2362 +label L2360 +jmp L2357 +label L2359 +label L2357 +load 661 name +call 662 checker_has_generic_declaration bool 1 661 +brif 662 L2364 L2365 +label L2364 +load 663 gdecl +load 664 name +call 665 checker_get_generic_declaration_index int 1 664 +call 666 ast_get_node struct:Node 1 665 +call 667 pith_struct_release void 1 663 +store gdecl 666 +load 668 gdecl +field 669 668 0 string kind +strref 670 m13s287 +call 671 pith_cstring_eq bool 2 669 670 +call 672 pith_cstring_release void 1 670 +brif 671 L2367 L2368 +label L2367 +load 673 name +load 674 arg_indices +load 675 scope_id +call 676 checker_check_generic_struct_constructor int 3 673 674 675 +load 677 callee_node +call 678 pith_struct_release void 1 677 +load 679 arg_indices +call 680 pith_list_release_handle void 1 679 +load 681 obj_node call 682 pith_struct_release void 1 681 -ret 666 -label L2354 -label L2352 -load 683 name -load 684 arg_indices -load 685 scope_id -call 686 checker_check_generic_function_call int 3 683 684 685 -load 687 callee_node -call 688 pith_struct_release void 1 687 -load 689 arg_indices -call 690 pith_list_release_handle void 1 689 -load 691 obj_node +load 683 explicit_name +call 684 pith_cstring_release void 1 683 +load 685 gdecl +call 686 pith_struct_release void 1 685 +load 687 name +call 688 pith_cstring_release void 1 687 +load 689 info +call 690 pith_struct_release void 1 689 +load 691 existing_info call 692 pith_struct_release void 1 691 -load 693 explicit_name -call 694 pith_cstring_release void 1 693 -load 695 gdecl -call 696 pith_struct_release void 1 695 -load 697 name -call 698 pith_cstring_release void 1 697 -load 699 info -call 700 pith_struct_release void 1 699 -load 701 existing_info +ret 676 +label L2368 +label L2366 +load 693 name +load 694 arg_indices +load 695 scope_id +call 696 checker_check_generic_function_call int 3 693 694 695 +load 697 callee_node +call 698 pith_struct_release void 1 697 +load 699 arg_indices +call 700 pith_list_release_handle void 1 699 +load 701 obj_node call 702 pith_struct_release void 1 701 -ret 686 -label L2351 -label L2349 -load 703 callee_idx -load 704 arg_indices -load 705 scope_id -call 706 checker_check_function_call_expression int 3 703 704 705 -load 707 callee_node -call 708 pith_struct_release void 1 707 -load 709 arg_indices -call 710 pith_list_release_handle void 1 709 -load 711 obj_node +load 703 explicit_name +call 704 pith_cstring_release void 1 703 +load 705 gdecl +call 706 pith_struct_release void 1 705 +load 707 name +call 708 pith_cstring_release void 1 707 +load 709 info +call 710 pith_struct_release void 1 709 +load 711 existing_info call 712 pith_struct_release void 1 711 -load 713 explicit_name -call 714 pith_cstring_release void 1 713 -load 715 gdecl -call 716 pith_struct_release void 1 715 -load 717 name -call 718 pith_cstring_release void 1 717 -load 719 info -call 720 pith_struct_release void 1 719 -load 721 existing_info +ret 696 +label L2365 +label L2363 +load 713 callee_idx +load 714 arg_indices +load 715 scope_id +call 716 checker_check_function_call_expression int 3 713 714 715 +load 717 callee_node +call 718 pith_struct_release void 1 717 +load 719 arg_indices +call 720 pith_list_release_handle void 1 719 +load 721 obj_node call 722 pith_struct_release void 1 721 -ret 706 -label L2308 -label L2306 -load 723 callee_idx -load 724 arg_indices -load 725 scope_id -call 726 checker_check_function_call_expression int 3 723 724 725 -load 727 callee_node -call 728 pith_struct_release void 1 727 -load 729 arg_indices -call 730 pith_list_release_handle void 1 729 -load 731 obj_node +load 723 explicit_name +call 724 pith_cstring_release void 1 723 +load 725 gdecl +call 726 pith_struct_release void 1 725 +load 727 name +call 728 pith_cstring_release void 1 727 +load 729 info +call 730 pith_struct_release void 1 729 +load 731 existing_info call 732 pith_struct_release void 1 731 -load 733 explicit_name -call 734 pith_cstring_release void 1 733 -load 735 gdecl -call 736 pith_struct_release void 1 735 -load 737 name -call 738 pith_cstring_release void 1 737 -load 739 info -call 740 pith_struct_release void 1 739 -load 741 existing_info +ret 716 +label L2322 +label L2320 +load 733 callee_idx +load 734 arg_indices +load 735 scope_id +call 736 checker_check_function_call_expression int 3 733 734 735 +load 737 callee_node +call 738 pith_struct_release void 1 737 +load 739 arg_indices +call 740 pith_list_release_handle void 1 739 +load 741 obj_node call 742 pith_struct_release void 1 741 -ret 726 -load 743 callee_node -call 744 pith_struct_release void 1 743 -load 745 arg_indices -call 746 pith_list_release_handle void 1 745 -load 747 obj_node -call 748 pith_struct_release void 1 747 -load 749 explicit_name -call 750 pith_cstring_release void 1 749 -load 751 gdecl +load 743 explicit_name +call 744 pith_cstring_release void 1 743 +load 745 gdecl +call 746 pith_struct_release void 1 745 +load 747 name +call 748 pith_cstring_release void 1 747 +load 749 info +call 750 pith_struct_release void 1 749 +load 751 existing_info call 752 pith_struct_release void 1 751 -load 753 name -call 754 pith_cstring_release void 1 753 -load 755 info -call 756 pith_struct_release void 1 755 -load 757 existing_info +ret 736 +load 753 callee_node +call 754 pith_struct_release void 1 753 +load 755 arg_indices +call 756 pith_list_release_handle void 1 755 +load 757 obj_node call 758 pith_struct_release void 1 757 -iconst 759 0 -ret 759 +load 759 explicit_name +call 760 pith_cstring_release void 1 759 +load 761 gdecl +call 762 pith_struct_release void 1 761 +load 763 name +call 764 pith_cstring_release void 1 763 +load 765 info +call 766 pith_struct_release void 1 765 +load 767 existing_info +call 768 pith_struct_release void 1 767 +iconst 769 0 +ret 769 endfunc func checker_check_channel_constructor 3 int param index_node @@ -47817,8 +47994,8 @@ call 16 pith_cstring_eq bool 2 13 14 iconst 17 1 sub 15 17 16 call 18 pith_cstring_release void 1 14 -brif 15 L2356 L2357 -label L2356 +brif 15 L2370 L2371 +label L2370 strref 19 m13s612 strref 20 m13s611 call 21 checker_diagnostics_report_error void 2 19 20 @@ -47830,30 +48007,30 @@ call 26 pith_struct_release void 1 25 load 27 type_args call 28 pith_list_release_handle void 1 27 ret 24 -label L2357 -label L2355 +label L2371 +label L2369 load 29 type_arg_node field 30 29 8 string value call 31 checker_resolve_named_type int 1 30 store inner_tid 31 load 32 inner_tid call 33 types_is_error_type bool 1 32 -brif 33 L2359 L2360 -label L2359 +brif 33 L2373 L2374 +label L2373 load 34 types_TID_ERR load 35 type_arg_node call 36 pith_struct_release void 1 35 load 37 type_args call 38 pith_list_release_handle void 1 37 ret 34 -label L2360 -label L2358 +label L2374 +label L2372 load 39 arg_indices call 40 pith_list_len int 1 39 iconst 41 1 gt 42 40 41 -brif 42 L2362 L2363 -label L2362 +brif 42 L2376 L2377 +label L2376 strref 43 m13s307 strref 44 m13s610 load 45 arg_indices @@ -47871,14 +48048,14 @@ call 56 pith_struct_release void 1 55 load 57 type_args call 58 pith_list_release_handle void 1 57 ret 54 -label L2363 -label L2361 +label L2377 +label L2375 load 59 arg_indices call 60 pith_list_len int 1 59 iconst 61 1 eq 62 60 61 -brif 62 L2365 L2366 -label L2365 +brif 62 L2379 L2380 +label L2379 strref 63 m13s23 load 64 arg_indices strref 65 m13s15 @@ -47887,9 +48064,9 @@ call 67 pith_cstring_release void 1 65 load 68 scope_id call 69 checker_expect_one_typed_argument void 4 63 64 66 68 call 70 pith_cstring_release void 1 63 -jmp L2364 -label L2366 -label L2364 +jmp L2378 +label L2380 +label L2378 load 71 type_args call 72 pith_list_new_default list 0 call 73 pith_list_release_handle void 1 71 @@ -47923,12 +48100,12 @@ call 5 checker_c_check_expr int 2 3 4 store callee_type 5 load 6 callee_type call 7 types_is_error_type bool 1 6 -brif 7 L2368 L2369 -label L2368 +brif 7 L2382 L2383 +label L2382 load 8 types_TID_ERR ret 8 -label L2369 -label L2367 +label L2383 +label L2381 load 9 callee_type load 10 arg_indices load 11 scope_id @@ -47957,8 +48134,8 @@ call 13 pith_cstring_eq bool 2 10 11 iconst 14 1 sub 12 14 13 call 15 pith_cstring_release void 1 11 -brif 12 L2371 L2372 -label L2371 +brif 12 L2385 L2386 +label L2385 strref 16 m13s579 strref 17 m13s609 call 18 checker_diagnostics_report_error void 2 16 17 @@ -47970,16 +48147,16 @@ call 23 pith_struct_release void 1 22 load 24 arg_node call 25 pith_struct_release void 1 24 ret 21 -label L2372 -label L2370 +label L2386 +label L2384 load 26 arg_indices call 27 pith_list_len int 1 26 load 28 fn_info field 29 28 48 list param_types call 30 pith_list_len int 1 29 neq 31 27 30 -brif 31 L2374 L2375 -label L2374 +brif 31 L2388 L2389 +label L2388 strref 32 m13s307 strref 33 m13s558 load 34 fn_info @@ -48008,8 +48185,8 @@ call 56 pith_struct_release void 1 55 load 57 arg_node call 58 pith_struct_release void 1 57 ret 54 -label L2375 -label L2373 +label L2389 +label L2387 iconst 59 0 store idx 59 load 60 arg_indices @@ -48018,12 +48195,12 @@ iconst 62 0 store __for_idx_133 62 store __for_len_133 61 store __for_iter_133 60 -label L2376 +label L2390 load 63 __for_idx_133 load 64 __for_len_133 lt 65 63 64 -brif 65 L2377 L2379 -label L2377 +brif 65 L2391 L2393 +label L2391 load 66 __for_iter_133 load 67 __for_idx_133 call 68 pith_list_get_value unknown 2 66 67 @@ -48040,26 +48217,26 @@ field 75 74 0 string kind strref 76 m13s298 call 77 pith_cstring_eq bool 2 75 76 call 78 pith_cstring_release void 1 76 -brif 77 L2381 L2382 -label L2381 +brif 77 L2395 L2396 +label L2395 load 79 arg_node field 80 79 16 list children call 81 pith_list_len int 1 80 iconst 82 0 gt 83 81 82 -brif 83 L2384 L2385 -label L2384 +brif 83 L2398 L2399 +label L2398 load 84 arg_node field 85 84 16 list children iconst 86 0 call 87 pith_list_get_value_strict int 2 85 86 store arg_expr_idx 87 -jmp L2383 -label L2385 -label L2383 -jmp L2380 -label L2382 -label L2380 +jmp L2397 +label L2399 +label L2397 +jmp L2394 +label L2396 +label L2394 load 88 arg_expr_idx load 89 scope_id call 90 checker_c_check_expr int 2 88 89 @@ -48068,15 +48245,15 @@ load 91 arg_type call 92 types_is_error_type bool 1 91 iconst 93 0 eq 94 92 93 -brif 94 L2387 L2388 -label L2387 +brif 94 L2401 L2402 +label L2401 load 95 idx load 96 fn_info field 97 96 48 list param_types call 98 pith_list_len int 1 97 lt 99 95 98 -brif 99 L2390 L2391 -label L2390 +brif 99 L2404 L2405 +label L2404 load 100 fn_info field 101 100 48 list param_types load 102 idx @@ -48085,15 +48262,15 @@ store expected 103 load 104 arg_type load 105 expected neq 106 104 105 -brif 106 L2393 L2394 -label L2393 +brif 106 L2407 L2408 +label L2407 load 107 arg_type load 108 expected call 109 checker_types_structurally_equal bool 2 107 108 iconst 110 0 eq 111 109 110 -brif 111 L2396 L2397 -label L2396 +brif 111 L2410 L2411 +label L2410 strref 112 m13s304 strref 113 m13s443 load 114 expected @@ -48113,29 +48290,29 @@ call 127 pith_cstring_release void 1 124 call 128 checker_diagnostics_report_error void 2 112 125 call 129 pith_cstring_release void 1 112 call 130 pith_cstring_release void 1 125 -jmp L2395 -label L2397 -label L2395 -jmp L2392 -label L2394 -label L2392 -jmp L2389 -label L2391 -label L2389 -jmp L2386 -label L2388 -label L2386 +jmp L2409 +label L2411 +label L2409 +jmp L2406 +label L2408 +label L2406 +jmp L2403 +label L2405 +label L2403 +jmp L2400 +label L2402 +label L2400 load 131 idx iconst 132 1 add 133 131 132 store idx 133 -label L2378 +label L2392 load 134 __for_idx_133 iconst 135 1 add 136 134 135 store __for_idx_133 136 -jmp L2376 -label L2379 +jmp L2390 +label L2393 load 137 fn_info field 138 137 56 int return_type load 139 fn_info @@ -48160,12 +48337,12 @@ iconst 4 0 store __for_idx_134 4 store __for_len_134 3 store __for_iter_134 2 -label L2398 +label L2412 load 5 __for_idx_134 load 6 __for_len_134 lt 7 5 6 -brif 7 L2399 L2401 -label L2399 +brif 7 L2413 L2415 +label L2413 load 8 __for_iter_134 load 9 __for_idx_134 call 10 pith_list_get_value unknown 2 8 9 @@ -48176,38 +48353,38 @@ call 13 ast_get_node struct:Node 1 12 call 14 pith_struct_release void 1 11 store an 13 iconst 15 0 -store __and_15_2405 15 +store __and_15_2419 15 load 16 an field 17 16 0 string kind strref 18 m13s298 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -store __and_15_2405 19 -brif 19 L2405 L2406 -label L2405 +store __and_15_2419 19 +brif 19 L2419 L2420 +label L2419 load 21 an field 22 21 8 string value call 23 string_len int 1 22 iconst 24 0 gt 25 23 24 -store __and_15_2405 25 -label L2406 -load 26 __and_15_2405 -brif 26 L2403 L2404 -label L2403 +store __and_15_2419 25 +label L2420 +load 26 __and_15_2419 +brif 26 L2417 L2418 +label L2417 iconst 27 1 load 28 an call 29 pith_struct_release void 1 28 ret 27 -label L2404 -label L2402 -label L2400 +label L2418 +label L2416 +label L2414 load 30 __for_idx_134 iconst 31 1 add 32 30 31 store __for_idx_134 32 -jmp L2398 -label L2401 +jmp L2412 +label L2415 iconst 33 0 load 34 an call 35 pith_struct_release void 1 34 @@ -48227,12 +48404,12 @@ iconst 5 0 store __for_idx_135 5 store __for_len_135 4 store __for_iter_135 3 -label L2407 +label L2421 load 6 __for_idx_135 load 7 __for_len_135 lt 8 6 7 -brif 8 L2408 L2410 -label L2408 +brif 8 L2422 L2424 +label L2422 load 9 __for_iter_135 load 10 __for_idx_135 call 11 pith_list_get_value_unchecked string 2 9 10 @@ -48240,19 +48417,19 @@ store __loopvar_135_f 11 load 12 __loopvar_135_f load 13 field_name call 14 checker_strings_equal bool 2 12 13 -brif 14 L2412 L2413 -label L2412 +brif 14 L2426 L2427 +label L2426 iconst 15 1 ret 15 -label L2413 -label L2411 -label L2409 +label L2427 +label L2425 +label L2423 load 16 __for_idx_135 iconst 17 1 add 18 16 17 store __for_idx_135 18 -jmp L2407 -label L2410 +jmp L2421 +label L2424 iconst 19 0 ret 19 iconst 20 0 @@ -48280,12 +48457,12 @@ iconst 13 0 store __for_idx_136 13 store __for_len_136 12 store __for_iter_136 11 -label L2414 +label L2428 load 14 __for_idx_136 load 15 __for_len_136 lt 16 14 15 -brif 16 L2415 L2417 -label L2415 +brif 16 L2429 L2431 +label L2429 load 17 __for_iter_136 load 18 __for_idx_136 call 19 pith_list_get_value unknown 2 17 18 @@ -48296,7 +48473,7 @@ call 22 ast_get_node struct:Node 1 21 call 23 pith_struct_release void 1 20 store an 22 iconst 24 0 -store __or_24_2421 24 +store __or_24_2435 24 load 25 an field 26 25 0 string kind strref 27 m13s298 @@ -48304,19 +48481,19 @@ call 29 pith_cstring_eq bool 2 26 27 iconst 30 1 sub 28 30 29 call 31 pith_cstring_release void 1 27 -store __or_24_2421 28 -brif 28 L2422 L2421 -label L2421 +store __or_24_2435 28 +brif 28 L2436 L2435 +label L2435 load 32 an field 33 32 8 string value call 34 string_len int 1 33 iconst 35 0 eq 36 34 35 -store __or_24_2421 36 -label L2422 -load 37 __or_24_2421 -brif 37 L2419 L2420 -label L2419 +store __or_24_2435 36 +label L2436 +load 37 __or_24_2435 +brif 37 L2433 L2434 +label L2433 strref 38 m13s608 load 39 name strref 40 m13s607 @@ -48327,16 +48504,16 @@ call 44 pith_cstring_release void 1 38 call 45 pith_cstring_release void 1 41 iconst 46 0 store ok 46 -jmp L2418 -label L2420 +jmp L2432 +label L2434 load 47 info load 48 an field 49 48 8 string value call 50 checker_struct_has_field bool 2 47 49 iconst 51 0 eq 52 50 51 -brif 52 L2423 L2424 -label L2423 +brif 52 L2437 L2438 +label L2437 strref 53 m13s606 load 54 name strref 55 m13s428 @@ -48355,14 +48532,14 @@ call 67 pith_cstring_release void 1 53 call 68 pith_cstring_release void 1 63 iconst 69 0 store ok 69 -jmp L2418 -label L2424 +jmp L2432 +label L2438 load 70 provided load 71 an field 72 71 8 string value call 73 contains_key bool 2 70 72 -brif 73 L2425 L2426 -label L2425 +brif 73 L2439 L2440 +label L2439 strref 74 m13s605 load 75 name strref 76 m13s604 @@ -48381,8 +48558,8 @@ call 88 pith_cstring_release void 1 74 call 89 pith_cstring_release void 1 84 iconst 90 0 store ok 90 -jmp L2418 -label L2426 +jmp L2432 +label L2440 load 91 __loopvar_136_ai store expr 91 load 92 an @@ -48390,29 +48567,29 @@ field 93 92 16 list children call 94 pith_list_len int 1 93 iconst 95 0 gt 96 94 95 -brif 96 L2428 L2429 -label L2428 +brif 96 L2442 L2443 +label L2442 load 97 an field 98 97 16 list children iconst 99 0 call 100 pith_list_get_value_strict int 2 98 99 store expr 100 -jmp L2427 -label L2429 -label L2427 +jmp L2441 +label L2443 +label L2441 load 101 provided load 102 an field 103 102 8 string value load 104 expr call 105 map_insert void 3 101 103 104 -label L2418 -label L2416 +label L2432 +label L2430 load 106 __for_idx_136 iconst 107 1 add 108 106 107 store __for_idx_136 108 -jmp L2414 -label L2417 +jmp L2428 +label L2431 load 109 info field 110 109 16 list_string fields call 111 pith_auto_len int 1 110 @@ -48420,12 +48597,12 @@ iconst 112 0 store __for_idx_137 112 store __for_len_137 111 store __for_iter_137 110 -label L2430 +label L2444 load 113 __for_idx_137 load 114 __for_len_137 lt 115 113 114 -brif 115 L2431 L2433 -label L2431 +brif 115 L2445 L2447 +label L2445 load 116 __for_iter_137 load 117 __for_idx_137 call 118 pith_list_get_value_unchecked string 2 116 117 @@ -48435,15 +48612,15 @@ load 120 __loopvar_137_fld call 121 contains_key bool 2 119 120 iconst 122 0 eq 123 121 122 -brif 123 L2435 L2436 -label L2435 +brif 123 L2449 L2450 +label L2449 load 124 name load 125 __loopvar_137_fld call 126 checker_struct_field_has_default bool 2 124 125 iconst 127 0 eq 128 126 127 -brif 128 L2438 L2439 -label L2438 +brif 128 L2452 L2453 +label L2452 strref 129 m13s602 load 130 name strref 131 m13s601 @@ -48461,32 +48638,32 @@ call 142 pith_cstring_release void 1 129 call 143 pith_cstring_release void 1 138 iconst 144 0 store ok 144 -jmp L2437 -label L2439 -label L2437 -jmp L2434 -label L2436 -label L2434 -label L2432 +jmp L2451 +label L2453 +label L2451 +jmp L2448 +label L2450 +label L2448 +label L2446 load 145 __for_idx_137 iconst 146 1 add 147 145 146 store __for_idx_137 147 -jmp L2430 -label L2433 +jmp L2444 +label L2447 load 148 ok iconst 149 0 eq 150 148 149 -brif 150 L2441 L2442 -label L2441 +brif 150 L2455 L2456 +label L2455 load 151 types_TID_ERR load 152 provided call 153 pith_map_release_handle void 1 152 load 154 an call 155 pith_struct_release void 1 154 ret 151 -label L2442 -label L2440 +label L2456 +label L2454 iconst 156 0 store idx 156 load 157 info @@ -48496,12 +48673,12 @@ iconst 160 0 store __for_idx_138 160 store __for_len_138 159 store __for_iter_138 158 -label L2443 +label L2457 load 161 __for_idx_138 load 162 __for_len_138 lt 163 161 162 -brif 163 L2444 L2446 -label L2444 +brif 163 L2458 L2460 +label L2458 load 164 __for_iter_138 load 165 __for_idx_138 call 166 pith_list_get_value_unchecked string 2 164 165 @@ -48509,8 +48686,8 @@ store __loopvar_138_fld 166 load 167 provided load 168 __loopvar_138_fld call 169 contains_key bool 2 167 168 -brif 169 L2448 L2449 -label L2448 +brif 169 L2462 L2463 +label L2462 load 170 provided load 171 __loopvar_138_fld call 172 map_get_strict int 2 170 171 @@ -48521,23 +48698,23 @@ call 175 checker_c_check_expr int 2 173 174 store arg_type 175 load 176 arg_type call 177 types_is_error_type bool 1 176 -brif 177 L2451 L2452 -label L2451 +brif 177 L2465 L2466 +label L2465 load 178 expr load 179 info field 180 179 24 list field_types load 181 idx call 182 pith_list_get_value_strict int 2 180 181 call 183 checker_propagate_empty_collection_literal void 2 178 182 -jmp L2450 -label L2452 -label L2450 +jmp L2464 +label L2466 +label L2464 load 184 arg_type call 185 types_is_error_type bool 1 184 iconst 186 0 eq 187 185 186 -brif 187 L2454 L2455 -label L2454 +brif 187 L2468 L2469 +label L2468 load 188 info field 189 188 24 list field_types load 190 idx @@ -48549,23 +48726,23 @@ load 194 expected call 195 checker_value_matches_optional_target bool 3 192 193 194 iconst 196 0 eq 197 195 196 -brif 197 L2457 L2458 -label L2457 +brif 197 L2471 L2472 +label L2471 load 198 expr load 199 expected load 200 scope_id call 201 checker_collection_literal_matches_target bool 3 198 199 200 iconst 202 0 eq 203 201 202 -brif 203 L2460 L2461 -label L2460 +brif 203 L2474 L2475 +label L2474 load 204 arg_type load 205 expected call 206 checker_types_compatible bool 2 204 205 iconst 207 0 eq 208 206 207 -brif 208 L2463 L2464 -label L2463 +brif 208 L2477 L2478 +label L2477 strref 209 m13s304 strref 210 m13s303 load 211 __loopvar_138_fld @@ -48592,32 +48769,32 @@ call 231 pith_cstring_release void 1 228 call 232 checker_diagnostics_report_error void 2 209 229 call 233 pith_cstring_release void 1 209 call 234 pith_cstring_release void 1 229 -jmp L2462 -label L2464 -label L2462 -jmp L2459 +jmp L2476 +label L2478 +label L2476 +jmp L2473 +label L2475 +label L2473 +jmp L2470 +label L2472 +label L2470 +jmp L2467 +label L2469 +label L2467 +jmp L2461 +label L2463 label L2461 -label L2459 -jmp L2456 -label L2458 -label L2456 -jmp L2453 -label L2455 -label L2453 -jmp L2447 -label L2449 -label L2447 load 235 idx iconst 236 1 add 237 235 236 store idx 237 -label L2445 +label L2459 load 238 __for_idx_138 iconst 239 1 add 240 238 239 store __for_idx_138 240 -jmp L2443 -label L2446 +jmp L2457 +label L2460 load 241 struct_tid load 242 provided call 243 pith_map_release_handle void 1 242 @@ -48641,8 +48818,8 @@ iconst 5 0 store arg_node 5 load 6 arg_indices call 7 checker_struct_args_are_named bool 1 6 -brif 7 L2466 L2467 -label L2466 +brif 7 L2480 L2481 +label L2480 load 8 name load 9 struct_tid load 10 info @@ -48652,16 +48829,16 @@ call 13 checker_check_named_struct_constructor int 5 8 9 10 11 12 load 14 arg_node call 15 pith_struct_release void 1 14 ret 13 -label L2467 -label L2465 +label L2481 +label L2479 load 16 arg_indices call 17 pith_list_len int 1 16 load 18 info field 19 18 16 list_string fields call 20 pith_list_len int 1 19 gt 21 17 20 -brif 21 L2469 L2470 -label L2469 +brif 21 L2483 L2484 +label L2483 strref 22 m13s307 load 23 name strref 24 m13s308 @@ -48691,8 +48868,8 @@ load 47 types_TID_ERR load 48 arg_node call 49 pith_struct_release void 1 48 ret 47 -label L2470 -label L2468 +label L2484 +label L2482 load 50 name load 51 info call 52 checker_struct_min_required_fields int 2 50 51 @@ -48701,8 +48878,8 @@ load 53 arg_indices call 54 pith_list_len int 1 53 load 55 min_required lt 56 54 55 -brif 56 L2472 L2473 -label L2472 +brif 56 L2486 L2487 +label L2486 strref 57 m13s307 load 58 name strref 59 m13s306 @@ -48730,8 +48907,8 @@ load 80 types_TID_ERR load 81 arg_node call 82 pith_struct_release void 1 81 ret 80 -label L2473 -label L2471 +label L2487 +label L2485 iconst 83 0 store idx 83 load 84 arg_indices @@ -48740,12 +48917,12 @@ iconst 86 0 store __for_idx_139 86 store __for_len_139 85 store __for_iter_139 84 -label L2474 +label L2488 load 87 __for_idx_139 load 88 __for_len_139 lt 89 87 88 -brif 89 L2475 L2477 -label L2475 +brif 89 L2489 L2491 +label L2489 load 90 __for_iter_139 load 91 __for_idx_139 call 92 pith_list_get_value unknown 2 90 91 @@ -48762,66 +48939,66 @@ field 99 98 0 string kind strref 100 m13s298 call 101 pith_cstring_eq bool 2 99 100 call 102 pith_cstring_release void 1 100 -brif 101 L2479 L2480 -label L2479 +brif 101 L2493 L2494 +label L2493 load 103 arg_node field 104 103 16 list children call 105 pith_list_len int 1 104 iconst 106 0 gt 107 105 106 -brif 107 L2482 L2483 -label L2482 +brif 107 L2496 L2497 +label L2496 load 108 arg_node field 109 108 16 list children iconst 110 0 call 111 pith_list_get_value_strict int 2 109 110 store arg_expr_idx 111 -jmp L2481 -label L2483 -label L2481 -jmp L2478 -label L2480 -label L2478 +jmp L2495 +label L2497 +label L2495 +jmp L2492 +label L2494 +label L2492 load 112 arg_expr_idx load 113 scope_id call 114 checker_c_check_expr int 2 112 113 store arg_type 114 load 115 arg_type call 116 types_is_error_type bool 1 115 -brif 116 L2485 L2486 -label L2485 +brif 116 L2499 L2500 +label L2499 load 117 idx load 118 info field 119 118 24 list field_types call 120 pith_list_len int 1 119 lt 121 117 120 -brif 121 L2488 L2489 -label L2488 +brif 121 L2502 L2503 +label L2502 load 122 arg_expr_idx load 123 info field 124 123 24 list field_types load 125 idx call 126 pith_list_get_value_strict int 2 124 125 call 127 checker_propagate_empty_collection_literal void 2 122 126 -jmp L2487 -label L2489 -label L2487 -jmp L2484 -label L2486 -label L2484 +jmp L2501 +label L2503 +label L2501 +jmp L2498 +label L2500 +label L2498 load 128 arg_type call 129 types_is_error_type bool 1 128 iconst 130 0 eq 131 129 130 -brif 131 L2491 L2492 -label L2491 +brif 131 L2505 L2506 +label L2505 load 132 idx load 133 info field 134 133 24 list field_types call 135 pith_list_len int 1 134 lt 136 132 135 -brif 136 L2494 L2495 -label L2494 +brif 136 L2508 L2509 +label L2508 load 137 info field 138 137 24 list field_types load 139 idx @@ -48833,23 +49010,23 @@ load 143 expected call 144 checker_value_matches_optional_target bool 3 141 142 143 iconst 145 0 eq 146 144 145 -brif 146 L2497 L2498 -label L2497 +brif 146 L2511 L2512 +label L2511 load 147 arg_expr_idx load 148 expected load 149 scope_id call 150 checker_collection_literal_matches_target bool 3 147 148 149 iconst 151 0 eq 152 150 151 -brif 152 L2500 L2501 -label L2500 +brif 152 L2514 L2515 +label L2514 load 153 arg_type load 154 expected call 155 checker_types_compatible bool 2 153 154 iconst 156 0 eq 157 155 156 -brif 157 L2503 L2504 -label L2503 +brif 157 L2517 L2518 +label L2517 strref 158 m13s304 strref 159 m13s303 load 160 info @@ -48879,32 +49056,32 @@ call 183 pith_cstring_release void 1 180 call 184 checker_diagnostics_report_error void 2 158 181 call 185 pith_cstring_release void 1 158 call 186 pith_cstring_release void 1 181 -jmp L2502 +jmp L2516 +label L2518 +label L2516 +jmp L2513 +label L2515 +label L2513 +jmp L2510 +label L2512 +label L2510 +jmp L2507 +label L2509 +label L2507 +jmp L2504 +label L2506 label L2504 -label L2502 -jmp L2499 -label L2501 -label L2499 -jmp L2496 -label L2498 -label L2496 -jmp L2493 -label L2495 -label L2493 -jmp L2490 -label L2492 -label L2490 load 187 idx iconst 188 1 add 189 187 188 store idx 189 -label L2476 +label L2490 load 190 __for_idx_139 iconst 191 1 add 192 190 191 store __for_idx_139 192 -jmp L2474 -label L2477 +jmp L2488 +label L2491 load 193 struct_tid load 194 arg_node call 195 pith_struct_release void 1 194 @@ -48926,29 +49103,29 @@ store arg_info 5 load 6 field_node_idx iconst 7 0 lt 8 6 7 -brif 8 L2506 L2507 -label L2506 +brif 8 L2520 L2521 +label L2520 load 9 fnode call 10 pith_struct_release void 1 9 load 11 arg_info call 12 pith_struct_release void 1 11 iconst 13 0 ret 13 -label L2507 -label L2505 +label L2521 +label L2519 load 14 arg_tid iconst 15 0 lt 16 14 15 -brif 16 L2509 L2510 -label L2509 +brif 16 L2523 L2524 +label L2523 load 17 fnode call 18 pith_struct_release void 1 17 load 19 arg_info call 20 pith_struct_release void 1 19 iconst 21 0 ret 21 -label L2510 -label L2508 +label L2524 +label L2522 load 22 fnode load 23 field_node_idx call 24 ast_get_node struct:Node 1 23 @@ -48959,20 +49136,20 @@ field 27 26 0 string kind strref 28 m13s564 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 -brif 29 L2512 L2513 -label L2512 +brif 29 L2526 L2527 +label L2526 load 31 generic_params call 32 pith_auto_len int 1 31 iconst 33 0 store __for_idx_140 33 store __for_len_140 32 store __for_iter_140 31 -label L2514 +label L2528 load 34 __for_idx_140 load 35 __for_len_140 lt 36 34 35 -brif 36 L2515 L2517 -label L2515 +brif 36 L2529 L2531 +label L2529 load 37 __for_iter_140 load 38 __for_idx_140 call 39 pith_list_get_value_unchecked string 2 37 38 @@ -48981,45 +49158,45 @@ load 40 __loopvar_140_gp load 41 fnode field 42 41 8 string value call 43 checker_strings_equal bool 2 40 42 -brif 43 L2519 L2520 -label L2519 +brif 43 L2533 L2534 +label L2533 load 44 subst_map load 45 __loopvar_140_gp call 46 contains_key bool 2 44 45 iconst 47 0 eq 48 46 47 -brif 48 L2522 L2523 -label L2522 +brif 48 L2536 L2537 +label L2536 load 49 subst_map load 50 __loopvar_140_gp load 51 arg_tid call 52 map_insert void 3 49 50 51 -jmp L2521 -label L2523 -label L2521 +jmp L2535 +label L2537 +label L2535 load 53 fnode call 54 pith_struct_release void 1 53 load 55 arg_info call 56 pith_struct_release void 1 55 iconst 57 0 ret 57 -label L2520 -label L2518 -label L2516 +label L2534 +label L2532 +label L2530 load 58 __for_idx_140 iconst 59 1 add 60 58 59 store __for_idx_140 60 -jmp L2514 -label L2517 +jmp L2528 +label L2531 load 61 fnode call 62 pith_struct_release void 1 61 load 63 arg_info call 64 pith_struct_release void 1 63 iconst 65 0 ret 65 -label L2513 -label L2511 +label L2527 +label L2525 load 66 arg_info load 67 arg_tid call 68 types_get_type_info struct:TypeInfo 1 67 @@ -49030,29 +49207,29 @@ field 71 70 0 string kind strref 72 m13s563 call 73 pith_cstring_eq bool 2 71 72 call 74 pith_cstring_release void 1 72 -brif 73 L2525 L2526 -label L2525 +brif 73 L2539 L2540 +label L2539 load 75 fnode field 76 75 8 string value strref 77 m13s21 call 78 checker_strings_equal bool 2 76 77 call 79 pith_cstring_release void 1 77 -brif 78 L2528 L2529 -label L2528 +brif 78 L2542 L2543 +label L2542 load 80 arg_info field 81 80 0 string kind strref 82 m13s22 call 83 pith_cstring_eq bool 2 81 82 call 84 pith_cstring_release void 1 82 -brif 83 L2531 L2532 -label L2531 +brif 83 L2545 L2546 +label L2545 load 85 fnode field 86 85 16 list children call 87 pith_list_len int 1 86 iconst 88 1 eq 89 87 88 -brif 89 L2534 L2535 -label L2534 +brif 89 L2548 L2549 +label L2548 load 90 fnode field 91 90 16 list children iconst 92 0 @@ -49062,41 +49239,41 @@ field 95 94 64 int inner load 96 generic_params load 97 subst_map call 98 checker_unify_field_type_against_arg void 4 93 95 96 97 -jmp L2533 -label L2535 -label L2533 -jmp L2530 -label L2532 -label L2530 +jmp L2547 +label L2549 +label L2547 +jmp L2544 +label L2546 +label L2544 load 99 fnode call 100 pith_struct_release void 1 99 load 101 arg_info call 102 pith_struct_release void 1 101 iconst 103 0 ret 103 -label L2529 -label L2527 +label L2543 +label L2541 load 104 fnode field 105 104 8 string value strref 106 m13s17 call 107 checker_strings_equal bool 2 105 106 call 108 pith_cstring_release void 1 106 -brif 107 L2537 L2538 -label L2537 +brif 107 L2551 L2552 +label L2551 load 109 arg_info field 110 109 0 string kind strref 111 m13s18 call 112 pith_cstring_eq bool 2 110 111 call 113 pith_cstring_release void 1 111 -brif 112 L2540 L2541 -label L2540 +brif 112 L2554 L2555 +label L2554 load 114 fnode field 115 114 16 list children call 116 pith_list_len int 1 115 iconst 117 1 eq 118 116 117 -brif 118 L2543 L2544 -label L2543 +brif 118 L2557 L2558 +label L2557 load 119 fnode field 120 119 16 list children iconst 121 0 @@ -49106,41 +49283,41 @@ field 124 123 64 int inner load 125 generic_params load 126 subst_map call 127 checker_unify_field_type_against_arg void 4 122 124 125 126 -jmp L2542 -label L2544 -label L2542 -jmp L2539 -label L2541 -label L2539 +jmp L2556 +label L2558 +label L2556 +jmp L2553 +label L2555 +label L2553 load 128 fnode call 129 pith_struct_release void 1 128 load 130 arg_info call 131 pith_struct_release void 1 130 iconst 132 0 ret 132 -label L2538 -label L2536 +label L2552 +label L2550 load 133 fnode field 134 133 8 string value strref 135 m13s19 call 136 checker_strings_equal bool 2 134 135 call 137 pith_cstring_release void 1 135 -brif 136 L2546 L2547 -label L2546 +brif 136 L2560 L2561 +label L2560 load 138 arg_info field 139 138 0 string kind strref 140 m13s20 call 141 pith_cstring_eq bool 2 139 140 call 142 pith_cstring_release void 1 140 -brif 141 L2549 L2550 -label L2549 +brif 141 L2563 L2564 +label L2563 load 143 fnode field 144 143 16 list children call 145 pith_list_len int 1 144 iconst 146 2 eq 147 145 146 -brif 147 L2552 L2553 -label L2552 +brif 147 L2566 L2567 +label L2566 load 148 fnode field 149 148 16 list children iconst 150 0 @@ -49159,41 +49336,41 @@ field 162 161 80 int value_type load 163 generic_params load 164 subst_map call 165 checker_unify_field_type_against_arg void 4 160 162 163 164 -jmp L2551 -label L2553 -label L2551 -jmp L2548 -label L2550 -label L2548 +jmp L2565 +label L2567 +label L2565 +jmp L2562 +label L2564 +label L2562 load 166 fnode call 167 pith_struct_release void 1 166 load 168 arg_info call 169 pith_struct_release void 1 168 iconst 170 0 ret 170 -label L2547 -label L2545 +label L2561 +label L2559 load 171 fnode field 172 171 8 string value strref 173 m13s25 call 174 checker_strings_equal bool 2 172 173 call 175 pith_cstring_release void 1 173 -brif 174 L2555 L2556 -label L2555 +brif 174 L2569 L2570 +label L2569 load 176 arg_info field 177 176 0 string kind strref 178 m13s26 call 179 pith_cstring_eq bool 2 177 178 call 180 pith_cstring_release void 1 178 -brif 179 L2558 L2559 -label L2558 +brif 179 L2572 L2573 +label L2572 load 181 fnode field 182 181 16 list children call 183 pith_list_len int 1 182 iconst 184 1 eq 185 183 184 -brif 185 L2561 L2562 -label L2561 +brif 185 L2575 L2576 +label L2575 load 186 fnode field 187 186 16 list children iconst 188 0 @@ -49203,41 +49380,41 @@ field 191 190 64 int inner load 192 generic_params load 193 subst_map call 194 checker_unify_field_type_against_arg void 4 189 191 192 193 -jmp L2560 -label L2562 -label L2560 -jmp L2557 -label L2559 -label L2557 +jmp L2574 +label L2576 +label L2574 +jmp L2571 +label L2573 +label L2571 load 195 fnode call 196 pith_struct_release void 1 195 load 197 arg_info call 198 pith_struct_release void 1 197 iconst 199 0 ret 199 -label L2556 -label L2554 +label L2570 +label L2568 load 200 fnode field 201 200 8 string value strref 202 m13s23 call 203 checker_strings_equal bool 2 201 202 call 204 pith_cstring_release void 1 202 -brif 203 L2564 L2565 -label L2564 +brif 203 L2578 L2579 +label L2578 load 205 arg_info field 206 205 0 string kind strref 207 m13s24 call 208 pith_cstring_eq bool 2 206 207 call 209 pith_cstring_release void 1 207 -brif 208 L2567 L2568 -label L2567 +brif 208 L2581 L2582 +label L2581 load 210 fnode field 211 210 16 list children call 212 pith_list_len int 1 211 iconst 213 1 eq 214 212 213 -brif 214 L2570 L2571 -label L2570 +brif 214 L2584 L2585 +label L2584 load 215 fnode field 216 215 16 list children iconst 217 0 @@ -49247,49 +49424,49 @@ field 220 219 64 int inner load 221 generic_params load 222 subst_map call 223 checker_unify_field_type_against_arg void 4 218 220 221 222 -jmp L2569 -label L2571 -label L2569 -jmp L2566 -label L2568 -label L2566 +jmp L2583 +label L2585 +label L2583 +jmp L2580 +label L2582 +label L2580 load 224 fnode call 225 pith_struct_release void 1 224 load 226 arg_info call 227 pith_struct_release void 1 226 iconst 228 0 ret 228 -label L2565 -label L2563 +label L2579 +label L2577 load 229 fnode call 230 pith_struct_release void 1 229 load 231 arg_info call 232 pith_struct_release void 1 231 iconst 233 0 ret 233 -label L2526 -label L2524 +label L2540 +label L2538 load 234 fnode field 235 234 0 string kind strref 236 m13s562 call 237 pith_cstring_eq bool 2 235 236 call 238 pith_cstring_release void 1 236 -brif 237 L2573 L2574 -label L2573 +brif 237 L2587 L2588 +label L2587 load 239 arg_info field 240 239 0 string kind strref 241 m13s29 call 242 pith_cstring_eq bool 2 240 241 call 243 pith_cstring_release void 1 241 -brif 242 L2576 L2577 -label L2576 +brif 242 L2590 L2591 +label L2590 load 244 fnode field 245 244 16 list children call 246 pith_list_len int 1 245 iconst 247 1 gte 248 246 247 -brif 248 L2579 L2580 -label L2579 +brif 248 L2593 L2594 +label L2593 load 249 fnode field 250 249 16 list children iconst 251 0 @@ -49299,34 +49476,34 @@ field 254 253 64 int inner load 255 generic_params load 256 subst_map call 257 checker_unify_field_type_against_arg void 4 252 254 255 256 -jmp L2578 -label L2580 -label L2578 -jmp L2575 -label L2577 -label L2575 +jmp L2592 +label L2594 +label L2592 +jmp L2589 +label L2591 +label L2589 load 258 fnode call 259 pith_struct_release void 1 258 load 260 arg_info call 261 pith_struct_release void 1 260 iconst 262 0 ret 262 -label L2574 -label L2572 +label L2588 +label L2586 load 263 fnode field 264 263 0 string kind strref 265 m13s560 call 266 pith_cstring_eq bool 2 264 265 call 267 pith_cstring_release void 1 265 -brif 266 L2582 L2583 -label L2582 +brif 266 L2596 L2597 +label L2596 load 268 arg_info field 269 268 0 string kind strref 270 m13s27 call 271 pith_cstring_eq bool 2 269 270 call 272 pith_cstring_release void 1 270 -brif 271 L2585 L2586 -label L2585 +brif 271 L2599 L2600 +label L2599 iconst 273 0 store i 273 load 274 fnode @@ -49336,12 +49513,12 @@ iconst 277 0 store __for_idx_141 277 store __for_len_141 276 store __for_iter_141 275 -label L2587 +label L2601 load 278 __for_idx_141 load 279 __for_len_141 lt 280 278 279 -brif 280 L2588 L2590 -label L2588 +brif 280 L2602 L2604 +label L2602 load 281 __for_iter_141 load 282 __for_idx_141 call 283 pith_list_get_value unknown 2 281 282 @@ -49351,8 +49528,8 @@ load 285 arg_info field 286 285 88 list elements call 287 pith_list_len int 1 286 lt 288 284 287 -brif 288 L2592 L2593 -label L2592 +brif 288 L2606 L2607 +label L2606 load 289 __loopvar_141_c load 290 arg_info field 291 290 88 list elements @@ -49361,26 +49538,26 @@ call 293 pith_list_get_value_strict int 2 291 292 load 294 generic_params load 295 subst_map call 296 checker_unify_field_type_against_arg void 4 289 293 294 295 -jmp L2591 -label L2593 -label L2591 +jmp L2605 +label L2607 +label L2605 load 297 i iconst 298 1 add 299 297 298 store i 299 -label L2589 +label L2603 load 300 __for_idx_141 iconst 301 1 add 302 300 301 store __for_idx_141 302 -jmp L2587 -label L2590 -jmp L2584 -label L2586 -label L2584 -jmp L2581 -label L2583 -label L2581 +jmp L2601 +label L2604 +jmp L2598 +label L2600 +label L2598 +jmp L2595 +label L2597 +label L2595 load 303 fnode call 304 pith_struct_release void 1 303 load 305 arg_info @@ -49400,12 +49577,12 @@ iconst 6 0 store __for_idx_142 6 store __for_len_142 5 store __for_iter_142 4 -label L2594 +label L2608 load 7 __for_idx_142 load 8 __for_len_142 lt 9 7 8 -brif 9 L2595 L2597 -label L2595 +brif 9 L2609 L2611 +label L2609 load 10 __for_iter_142 load 11 __for_idx_142 call 12 pith_list_get_value unknown 2 10 11 @@ -49420,21 +49597,21 @@ field 18 17 0 string kind strref 19 m13s298 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 -brif 20 L2599 L2600 -label L2599 +brif 20 L2613 L2614 +label L2613 load 22 an field 23 22 8 string value load 24 fname call 25 checker_strings_equal bool 2 23 24 -brif 25 L2602 L2603 -label L2602 +brif 25 L2616 L2617 +label L2616 load 26 an field 27 26 16 list children call 28 pith_list_len int 1 27 iconst 29 0 gt 30 28 29 -brif 30 L2605 L2606 -label L2605 +brif 30 L2619 L2620 +label L2619 load 31 an field 32 31 16 list children iconst 33 0 @@ -49444,21 +49621,21 @@ call 36 checker_c_check_expr int 2 34 35 load 37 an call 38 pith_struct_release void 1 37 ret 36 -label L2606 -label L2604 -jmp L2601 -label L2603 -label L2601 -jmp L2598 -label L2600 -label L2598 -label L2596 +label L2620 +label L2618 +jmp L2615 +label L2617 +label L2615 +jmp L2612 +label L2614 +label L2612 +label L2610 load 39 __for_idx_142 iconst 40 1 add 41 39 40 store __for_idx_142 41 -jmp L2594 -label L2597 +jmp L2608 +label L2611 iconst 42 1 iconst 44 0 sub 43 44 42 @@ -49523,12 +49700,12 @@ iconst 33 0 store __for_idx_143 33 store __for_len_143 32 store __for_iter_143 31 -label L2607 +label L2621 load 34 __for_idx_143 load 35 __for_len_143 lt 36 34 35 -brif 36 L2608 L2610 -label L2608 +brif 36 L2622 L2624 +label L2622 load 37 __for_iter_143 load 38 __for_idx_143 call 39 pith_list_get_value unknown 2 37 38 @@ -49543,63 +49720,63 @@ field 45 44 0 string kind strref 46 m13s285 call 47 pith_cstring_eq bool 2 45 46 call 48 pith_cstring_release void 1 46 -brif 47 L2612 L2613 -label L2612 +brif 47 L2626 L2627 +label L2626 load 49 cn field 50 49 16 list children call 51 pith_list_len int 1 50 iconst 52 0 gt 53 51 52 -brif 53 L2615 L2616 -label L2615 +brif 53 L2629 L2630 +label L2629 load 54 field_type_nodes load 55 cn field 56 55 16 list children iconst 57 0 call 58 pith_list_get_value_strict int 2 56 57 call 59 pith_list_push_value void 2 54 58 -jmp L2614 -label L2616 +jmp L2628 +label L2630 load 60 field_type_nodes iconst 61 1 iconst 63 0 sub 62 63 61 call 64 pith_list_push_value void 2 60 62 -label L2614 +label L2628 load 65 field_names load 66 cn field 67 66 8 string value call 68 checker_extract_field_name string 1 67 call 69 pith_list_push_value_owned void 2 65 68 -jmp L2611 -label L2613 -label L2611 -label L2609 +jmp L2625 +label L2627 +label L2625 +label L2623 load 70 __for_idx_143 iconst 71 1 add 72 70 71 store __for_idx_143 72 -jmp L2607 -label L2610 +jmp L2621 +label L2624 load 73 arg_types call 74 pith_list_new_default list 0 call 75 pith_list_release_handle void 1 73 store arg_types 74 load 76 named -brif 76 L2618 L2619 -label L2618 +brif 76 L2632 L2633 +label L2632 load 77 field_names call 78 pith_auto_len int 1 77 iconst 79 0 store __for_idx_144 79 store __for_len_144 78 store __for_iter_144 77 -label L2620 +label L2634 load 80 __for_idx_144 load 81 __for_len_144 lt 82 80 81 -brif 82 L2621 L2623 -label L2621 +brif 82 L2635 L2637 +label L2635 load 83 __for_iter_144 load 84 __for_idx_144 call 85 pith_list_get_value_unchecked string 2 83 84 @@ -49610,27 +49787,27 @@ load 88 __loopvar_144_fname load 89 scope_id call 90 checker_named_arg_type_for_field int 3 87 88 89 call 91 pith_list_push_value void 2 86 90 -label L2622 +label L2636 load 92 __for_idx_144 iconst 93 1 add 94 92 93 store __for_idx_144 94 -jmp L2620 -label L2623 -jmp L2617 -label L2619 +jmp L2634 +label L2637 +jmp L2631 +label L2633 load 95 arg_indices call 96 pith_auto_len int 1 95 iconst 97 0 store __for_idx_145 97 store __for_len_145 96 store __for_iter_145 95 -label L2624 +label L2638 load 98 __for_idx_145 load 99 __for_len_145 lt 100 98 99 -brif 100 L2625 L2627 -label L2625 +brif 100 L2639 L2641 +label L2639 load 101 __for_iter_145 load 102 __for_idx_145 call 103 pith_list_get_value unknown 2 101 102 @@ -49647,45 +49824,45 @@ field 110 109 0 string kind strref 111 m13s298 call 112 pith_cstring_eq bool 2 110 111 call 113 pith_cstring_release void 1 111 -brif 112 L2629 L2630 -label L2629 +brif 112 L2643 L2644 +label L2643 load 114 arg_node field 115 114 16 list children call 116 pith_list_len int 1 115 iconst 117 0 gt 118 116 117 -brif 118 L2632 L2633 -label L2632 +brif 118 L2646 L2647 +label L2646 load 119 arg_node field 120 119 16 list children iconst 121 0 call 122 pith_list_get_value_strict int 2 120 121 store arg_expr 122 -jmp L2631 -label L2633 -label L2631 -jmp L2628 -label L2630 -label L2628 +jmp L2645 +label L2647 +label L2645 +jmp L2642 +label L2644 +label L2642 load 123 arg_types load 124 arg_expr load 125 scope_id call 126 checker_c_check_expr int 2 124 125 call 127 pith_list_push_value void 2 123 126 -label L2626 +label L2640 load 128 __for_idx_145 iconst 129 1 add 130 128 129 store __for_idx_145 130 -jmp L2624 -label L2627 +jmp L2638 +label L2641 load 131 arg_types call 132 pith_list_len int 1 131 load 133 field_type_nodes call 134 pith_list_len int 1 133 gt 135 132 134 -brif 135 L2635 L2636 -label L2635 +brif 135 L2649 L2650 +label L2649 strref 136 m13s307 load 137 name strref 138 m13s308 @@ -49730,9 +49907,9 @@ call 176 pith_map_release_handle void 1 175 load 177 type_args call 178 pith_list_release_handle void 1 177 ret 160 -label L2636 -label L2634 -label L2617 +label L2650 +label L2648 +label L2631 load 179 subst_map call 180 pith_map_new_default map 0 call 181 pith_map_release_handle void 1 179 @@ -49745,12 +49922,12 @@ iconst 185 0 store __for_idx_146 185 store __for_len_146 184 store __for_iter_146 183 -label L2637 +label L2651 load 186 __for_idx_146 load 187 __for_len_146 lt 188 186 187 -brif 188 L2638 L2640 -label L2638 +brif 188 L2652 L2654 +label L2652 load 189 __for_iter_146 load 190 __for_idx_146 call 191 pith_list_get_value unknown 2 189 190 @@ -49758,41 +49935,41 @@ store __loopvar_146_ftn 191 load 192 __loopvar_146_ftn iconst 193 0 gte 194 192 193 -brif 194 L2642 L2643 -label L2642 +brif 194 L2656 L2657 +label L2656 iconst 195 0 -store __and_195_2647 195 +store __and_195_2661 195 iconst 196 0 -store __and_196_2647 196 +store __and_196_2661 196 load 197 fidx load 198 arg_types call 199 pith_list_len int 1 198 lt 200 197 199 -store __and_196_2647 200 -brif 200 L2647 L2648 -label L2647 +store __and_196_2661 200 +brif 200 L2661 L2662 +label L2661 load 201 arg_types load 202 fidx call 203 pith_list_get_value_strict int 2 201 202 iconst 204 0 gte 205 203 204 -store __and_196_2647 205 -label L2648 -load 206 __and_196_2647 -store __and_195_2647 206 -brif 206 L2649 L2650 -label L2649 +store __and_196_2661 205 +label L2662 +load 206 __and_196_2661 +store __and_195_2661 206 +brif 206 L2663 L2664 +label L2663 load 207 arg_types load 208 fidx call 209 pith_list_get_value_strict int 2 207 208 call 210 types_is_error_type bool 1 209 iconst 211 0 eq 212 210 211 -store __and_195_2647 212 -label L2650 -load 213 __and_195_2647 -brif 213 L2645 L2646 -label L2645 +store __and_195_2661 212 +label L2664 +load 213 __and_195_2661 +brif 213 L2659 L2660 +label L2659 load 214 __loopvar_146_ftn load 215 arg_types load 216 fidx @@ -49800,30 +49977,30 @@ call 217 pith_list_get_value_strict int 2 215 216 load 218 generic_params load 219 subst_map call 220 checker_unify_field_type_against_arg void 4 214 217 218 219 -jmp L2644 -label L2646 -label L2644 -jmp L2641 -label L2643 -label L2641 +jmp L2658 +label L2660 +label L2658 +jmp L2655 +label L2657 +label L2655 load 221 fidx iconst 222 1 add 223 221 222 store fidx 223 -label L2639 +label L2653 load 224 __for_idx_146 iconst 225 1 add 226 224 225 store __for_idx_146 226 -jmp L2637 -label L2640 +jmp L2651 +label L2654 load 227 decl_idx load 228 subst_map call 229 checker_check_type_parameter_bounds bool 2 227 228 iconst 230 0 eq 231 229 230 -brif 231 L2652 L2653 -label L2652 +brif 231 L2666 L2667 +label L2666 load 232 types_TID_ERR load 233 decl_node call 234 pith_struct_release void 1 233 @@ -49844,8 +50021,8 @@ call 248 pith_map_release_handle void 1 247 load 249 type_args call 250 pith_list_release_handle void 1 249 ret 232 -label L2653 -label L2651 +label L2667 +label L2665 load 251 type_args call 252 pith_list_new_default list 0 call 253 pith_list_release_handle void 1 251 @@ -49856,12 +50033,12 @@ iconst 256 0 store __for_idx_147 256 store __for_len_147 255 store __for_iter_147 254 -label L2654 +label L2668 load 257 __for_idx_147 load 258 __for_len_147 lt 259 257 258 -brif 259 L2655 L2657 -label L2655 +brif 259 L2669 L2671 +label L2669 load 260 __for_iter_147 load 261 __for_idx_147 call 262 pith_list_get_value_unchecked string 2 260 261 @@ -49869,26 +50046,26 @@ store __loopvar_147_gp 262 load 263 subst_map load 264 __loopvar_147_gp call 265 contains_key bool 2 263 264 -brif 265 L2659 L2660 -label L2659 +brif 265 L2673 L2674 +label L2673 load 266 type_args load 267 subst_map load 268 __loopvar_147_gp call 269 map_get_strict int 2 267 268 call 270 pith_list_push_value void 2 266 269 -jmp L2658 -label L2660 +jmp L2672 +label L2674 load 271 type_args load 272 types_TID_ERR call 273 pith_list_push_value void 2 271 272 -label L2658 -label L2656 +label L2672 +label L2670 load 274 __for_idx_147 iconst 275 1 add 276 274 275 store __for_idx_147 276 -jmp L2654 -label L2657 +jmp L2668 +label L2671 load 277 decl_node load 278 type_args call 279 checker_instantiate_generic_struct_type int 2 277 278 @@ -49896,8 +50073,8 @@ store struct_tid 279 load 280 struct_tid iconst 281 0 lt 282 280 281 -brif 282 L2662 L2663 -label L2662 +brif 282 L2676 L2677 +label L2676 load 283 types_TID_ERR load 284 decl_node call 285 pith_struct_release void 1 284 @@ -49918,8 +50095,8 @@ call 299 pith_map_release_handle void 1 298 load 300 type_args call 301 pith_list_release_handle void 1 300 ret 283 -label L2663 -label L2661 +label L2677 +label L2675 load 302 struct_tid call 303 types_get_type_name string 1 302 load 304 struct_tid @@ -49981,8 +50158,8 @@ load 4 arg_indices call 5 pith_list_len int 1 4 iconst 6 2 neq 7 5 6 -brif 7 L2665 L2666 -label L2665 +brif 7 L2679 L2680 +label L2679 strref 8 m13s307 strref 9 m13s600 load 10 arg_indices @@ -50000,8 +50177,8 @@ call 21 pith_struct_release void 1 20 load 22 second_node call 23 pith_struct_release void 1 22 ret 19 -label L2666 -label L2664 +label L2680 +label L2678 load 24 arg_indices iconst 25 0 call 26 pith_list_get_value_strict int 2 24 25 @@ -50029,51 +50206,51 @@ field 41 40 0 string kind strref 42 m13s298 call 43 pith_cstring_eq bool 2 41 42 call 44 pith_cstring_release void 1 42 -brif 43 L2668 L2669 -label L2668 +brif 43 L2682 L2683 +label L2682 load 45 first_node field 46 45 16 list children call 47 pith_list_len int 1 46 iconst 48 0 gt 49 47 48 -brif 49 L2671 L2672 -label L2671 +brif 49 L2685 L2686 +label L2685 load 50 first_node field 51 50 16 list children iconst 52 0 call 53 pith_list_get_value_strict int 2 51 52 store first_expr 53 -jmp L2670 -label L2672 -label L2670 -jmp L2667 -label L2669 -label L2667 +jmp L2684 +label L2686 +label L2684 +jmp L2681 +label L2683 +label L2681 load 54 second_node field 55 54 0 string kind strref 56 m13s298 call 57 pith_cstring_eq bool 2 55 56 call 58 pith_cstring_release void 1 56 -brif 57 L2674 L2675 -label L2674 +brif 57 L2688 L2689 +label L2688 load 59 second_node field 60 59 16 list children call 61 pith_list_len int 1 60 iconst 62 0 gt 63 61 62 -brif 63 L2677 L2678 -label L2677 +brif 63 L2691 L2692 +label L2691 load 64 second_node field 65 64 16 list children iconst 66 0 call 67 pith_list_get_value_strict int 2 65 66 store second_expr 67 -jmp L2676 -label L2678 -label L2676 -jmp L2673 -label L2675 -label L2673 +jmp L2690 +label L2692 +label L2690 +jmp L2687 +label L2689 +label L2687 load 68 first_expr load 69 scope_id call 70 checker_c_check_expr int 2 68 69 @@ -50086,32 +50263,32 @@ load 74 t1 call 75 types_is_error_type bool 1 74 iconst 76 0 eq 77 75 76 -brif 77 L2680 L2681 -label L2680 +brif 77 L2694 L2695 +label L2694 load 78 t2 call 79 types_is_error_type bool 1 78 iconst 80 0 eq 81 79 80 -brif 81 L2683 L2684 -label L2683 +brif 81 L2697 L2698 +label L2697 iconst 82 0 -store __and_82_2688 82 +store __and_82_2702 82 load 83 t1 load 84 t2 neq 85 83 84 -store __and_82_2688 85 -brif 85 L2688 L2689 -label L2688 +store __and_82_2702 85 +brif 85 L2702 L2703 +label L2702 load 86 t1 load 87 t2 call 88 checker_types_structurally_equal bool 2 86 87 iconst 89 0 eq 90 88 89 -store __and_82_2688 90 -label L2689 -load 91 __and_82_2688 -brif 91 L2686 L2687 -label L2686 +store __and_82_2702 90 +label L2703 +load 91 __and_82_2702 +brif 91 L2700 L2701 +label L2700 strref 92 m13s304 strref 93 m13s599 load 94 t1 @@ -50131,15 +50308,15 @@ call 107 pith_cstring_release void 1 104 call 108 checker_diagnostics_report_error void 2 92 105 call 109 pith_cstring_release void 1 92 call 110 pith_cstring_release void 1 105 -jmp L2685 -label L2687 -label L2685 -jmp L2682 -label L2684 -label L2682 -jmp L2679 -label L2681 -label L2679 +jmp L2699 +label L2701 +label L2699 +jmp L2696 +label L2698 +label L2696 +jmp L2693 +label L2695 +label L2693 load 111 types_TID_VOID load 112 first_node call 113 pith_struct_release void 1 112 @@ -50167,15 +50344,15 @@ field 7 6 0 string kind strref 8 m13s298 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L2691 L2692 -label L2691 +brif 9 L2705 L2706 +label L2705 load 11 arg_node field 12 11 16 list children call 13 pith_list_len int 1 12 iconst 14 0 gt 15 13 14 -brif 15 L2694 L2695 -label L2694 +brif 15 L2708 L2709 +label L2708 load 16 arg_node field 17 16 16 list children iconst 18 0 @@ -50183,11 +50360,11 @@ call 19 pith_list_get_value_strict int 2 17 18 load 20 arg_node call 21 pith_struct_release void 1 20 ret 19 -label L2695 -label L2693 -jmp L2690 -label L2692 -label L2690 +label L2709 +label L2707 +jmp L2704 +label L2706 +label L2704 load 22 arg_idx load 23 arg_node call 24 pith_struct_release void 1 23 @@ -50208,8 +50385,8 @@ load 4 arg_indices call 5 pith_list_len int 1 4 iconst 6 2 neq 7 5 6 -brif 7 L2697 L2698 -label L2697 +brif 7 L2711 L2712 +label L2711 strref 8 m13s307 strref 9 m13s598 load 10 arg_indices @@ -50227,8 +50404,8 @@ call 21 pith_struct_release void 1 20 load 22 fn_info call 23 pith_struct_release void 1 22 ret 19 -label L2698 -label L2696 +label L2712 +label L2710 load 24 arg_indices iconst 25 0 call 26 pith_list_get_value_strict int 2 24 25 @@ -50245,28 +50422,28 @@ call 35 checker_c_check_expr int 2 33 34 store fn_tid 35 load 36 list_tid call 37 types_is_error_type bool 1 36 -brif 37 L2700 L2701 -label L2700 +brif 37 L2714 L2715 +label L2714 load 38 types_TID_ERR load 39 list_info call 40 pith_struct_release void 1 39 load 41 fn_info call 42 pith_struct_release void 1 41 ret 38 -label L2701 -label L2699 +label L2715 +label L2713 load 43 fn_tid call 44 types_is_error_type bool 1 43 -brif 44 L2703 L2704 -label L2703 +brif 44 L2717 L2718 +label L2717 load 45 types_TID_ERR load 46 list_info call 47 pith_struct_release void 1 46 load 48 fn_info call 49 pith_struct_release void 1 48 ret 45 -label L2704 -label L2702 +label L2718 +label L2716 load 50 list_info load 51 list_tid call 52 types_get_type_info struct:TypeInfo 1 51 @@ -50279,8 +50456,8 @@ call 58 pith_cstring_eq bool 2 55 56 iconst 59 1 sub 57 59 58 call 60 pith_cstring_release void 1 56 -brif 57 L2706 L2707 -label L2706 +brif 57 L2720 L2721 +label L2720 strref 61 m13s304 strref 62 m13s597 load 63 list_tid @@ -50297,8 +50474,8 @@ call 73 pith_struct_release void 1 72 load 74 fn_info call 75 pith_struct_release void 1 74 ret 71 -label L2707 -label L2705 +label L2721 +label L2719 load 76 fn_info load 77 fn_tid call 78 types_get_type_info struct:TypeInfo 1 77 @@ -50311,8 +50488,8 @@ call 84 pith_cstring_eq bool 2 81 82 iconst 85 1 sub 83 85 84 call 86 pith_cstring_release void 1 82 -brif 83 L2709 L2710 -label L2709 +brif 83 L2723 L2724 +label L2723 strref 87 m13s579 strref 88 m13s596 call 89 checker_diagnostics_report_error void 2 87 88 @@ -50324,15 +50501,15 @@ call 94 pith_struct_release void 1 93 load 95 fn_info call 96 pith_struct_release void 1 95 ret 92 -label L2710 -label L2708 +label L2724 +label L2722 load 97 fn_info field 98 97 48 list param_types call 99 pith_list_len int 1 98 iconst 100 1 neq 101 99 100 -brif 101 L2712 L2713 -label L2712 +brif 101 L2726 L2727 +label L2726 strref 102 m13s307 strref 103 m13s587 load 104 fn_info @@ -50351,8 +50528,8 @@ call 116 pith_struct_release void 1 115 load 117 fn_info call 118 pith_struct_release void 1 117 ret 114 -label L2713 -label L2711 +label L2727 +label L2725 load 119 fn_info field 120 119 48 list param_types iconst 121 0 @@ -50362,8 +50539,8 @@ field 124 123 64 int inner call 125 checker_types_structurally_equal bool 2 122 124 iconst 126 0 eq 127 125 126 -brif 127 L2715 L2716 -label L2715 +brif 127 L2729 L2730 +label L2729 strref 128 m13s304 strref 129 m13s586 load 130 list_info @@ -50393,8 +50570,8 @@ call 153 pith_struct_release void 1 152 load 154 fn_info call 155 pith_struct_release void 1 154 ret 151 -label L2716 -label L2714 +label L2730 +label L2728 load 156 fn_info field 157 156 56 int return_type call 158 checker_type_intern_intern_list_type int 1 157 @@ -50421,8 +50598,8 @@ load 4 arg_indices call 5 pith_list_len int 1 4 iconst 6 2 neq 7 5 6 -brif 7 L2718 L2719 -label L2718 +brif 7 L2732 L2733 +label L2732 strref 8 m13s307 strref 9 m13s595 load 10 arg_indices @@ -50440,8 +50617,8 @@ call 21 pith_struct_release void 1 20 load 22 fn_info call 23 pith_struct_release void 1 22 ret 19 -label L2719 -label L2717 +label L2733 +label L2731 load 24 arg_indices iconst 25 0 call 26 pith_list_get_value_strict int 2 24 25 @@ -50458,28 +50635,28 @@ call 35 checker_c_check_expr int 2 33 34 store fn_tid 35 load 36 list_tid call 37 types_is_error_type bool 1 36 -brif 37 L2721 L2722 -label L2721 +brif 37 L2735 L2736 +label L2735 load 38 types_TID_ERR load 39 list_info call 40 pith_struct_release void 1 39 load 41 fn_info call 42 pith_struct_release void 1 41 ret 38 -label L2722 -label L2720 +label L2736 +label L2734 load 43 fn_tid call 44 types_is_error_type bool 1 43 -brif 44 L2724 L2725 -label L2724 +brif 44 L2738 L2739 +label L2738 load 45 types_TID_ERR load 46 list_info call 47 pith_struct_release void 1 46 load 48 fn_info call 49 pith_struct_release void 1 48 ret 45 -label L2725 -label L2723 +label L2739 +label L2737 load 50 list_info load 51 list_tid call 52 types_get_type_info struct:TypeInfo 1 51 @@ -50492,8 +50669,8 @@ call 58 pith_cstring_eq bool 2 55 56 iconst 59 1 sub 57 59 58 call 60 pith_cstring_release void 1 56 -brif 57 L2727 L2728 -label L2727 +brif 57 L2741 L2742 +label L2741 strref 61 m13s304 strref 62 m13s594 load 63 list_tid @@ -50510,8 +50687,8 @@ call 73 pith_struct_release void 1 72 load 74 fn_info call 75 pith_struct_release void 1 74 ret 71 -label L2728 -label L2726 +label L2742 +label L2740 load 76 fn_info load 77 fn_tid call 78 types_get_type_info struct:TypeInfo 1 77 @@ -50524,8 +50701,8 @@ call 84 pith_cstring_eq bool 2 81 82 iconst 85 1 sub 83 85 84 call 86 pith_cstring_release void 1 82 -brif 83 L2730 L2731 -label L2730 +brif 83 L2744 L2745 +label L2744 strref 87 m13s579 strref 88 m13s593 call 89 checker_diagnostics_report_error void 2 87 88 @@ -50537,15 +50714,15 @@ call 94 pith_struct_release void 1 93 load 95 fn_info call 96 pith_struct_release void 1 95 ret 92 -label L2731 -label L2729 +label L2745 +label L2743 load 97 fn_info field 98 97 48 list param_types call 99 pith_list_len int 1 98 iconst 100 1 neq 101 99 100 -brif 101 L2733 L2734 -label L2733 +brif 101 L2747 L2748 +label L2747 strref 102 m13s307 strref 103 m13s583 load 104 fn_info @@ -50564,8 +50741,8 @@ call 116 pith_struct_release void 1 115 load 117 fn_info call 118 pith_struct_release void 1 117 ret 114 -label L2734 -label L2732 +label L2748 +label L2746 load 119 fn_info field 120 119 48 list param_types iconst 121 0 @@ -50575,8 +50752,8 @@ field 124 123 64 int inner call 125 checker_types_structurally_equal bool 2 122 124 iconst 126 0 eq 127 125 126 -brif 127 L2736 L2737 -label L2736 +brif 127 L2750 L2751 +label L2750 strref 128 m13s304 strref 129 m13s582 load 130 list_info @@ -50606,23 +50783,23 @@ call 153 pith_struct_release void 1 152 load 154 fn_info call 155 pith_struct_release void 1 154 ret 151 -label L2737 -label L2735 +label L2751 +label L2749 load 156 fn_info field 157 156 56 int return_type strref 158 m13s12 call 159 types_lookup_type_id int 1 158 call 160 pith_cstring_release void 1 158 neq 161 157 159 -brif 161 L2739 L2740 -label L2739 +brif 161 L2753 L2754 +label L2753 load 162 fn_info field 163 162 56 int return_type call 164 types_is_integer_type bool 1 163 iconst 165 0 eq 166 164 165 -brif 166 L2742 L2743 -label L2742 +brif 166 L2756 L2757 +label L2756 strref 167 m13s304 strref 168 m13s581 load 169 fn_info @@ -50640,11 +50817,11 @@ call 180 pith_struct_release void 1 179 load 181 fn_info call 182 pith_struct_release void 1 181 ret 178 -label L2743 -label L2741 -jmp L2738 -label L2740 -label L2738 +label L2757 +label L2755 +jmp L2752 +label L2754 +label L2752 load 183 list_tid load 184 list_info call 185 pith_struct_release void 1 184 @@ -50669,8 +50846,8 @@ load 4 arg_indices call 5 pith_list_len int 1 4 iconst 6 3 neq 7 5 6 -brif 7 L2745 L2746 -label L2745 +brif 7 L2759 L2760 +label L2759 strref 8 m13s307 strref 9 m13s592 load 10 arg_indices @@ -50688,8 +50865,8 @@ call 21 pith_struct_release void 1 20 load 22 fn_info call 23 pith_struct_release void 1 22 ret 19 -label L2746 -label L2744 +label L2760 +label L2758 load 24 arg_indices iconst 25 0 call 26 pith_list_get_value_strict int 2 24 25 @@ -50713,40 +50890,40 @@ call 41 checker_c_check_expr int 2 39 40 store fn_tid 41 load 42 list_tid call 43 types_is_error_type bool 1 42 -brif 43 L2748 L2749 -label L2748 +brif 43 L2762 L2763 +label L2762 load 44 types_TID_ERR load 45 list_info call 46 pith_struct_release void 1 45 load 47 fn_info call 48 pith_struct_release void 1 47 ret 44 -label L2749 -label L2747 +label L2763 +label L2761 load 49 init_tid call 50 types_is_error_type bool 1 49 -brif 50 L2751 L2752 -label L2751 +brif 50 L2765 L2766 +label L2765 load 51 types_TID_ERR load 52 list_info call 53 pith_struct_release void 1 52 load 54 fn_info call 55 pith_struct_release void 1 54 ret 51 -label L2752 -label L2750 +label L2766 +label L2764 load 56 fn_tid call 57 types_is_error_type bool 1 56 -brif 57 L2754 L2755 -label L2754 +brif 57 L2768 L2769 +label L2768 load 58 types_TID_ERR load 59 list_info call 60 pith_struct_release void 1 59 load 61 fn_info call 62 pith_struct_release void 1 61 ret 58 -label L2755 -label L2753 +label L2769 +label L2767 load 63 list_info load 64 list_tid call 65 types_get_type_info struct:TypeInfo 1 64 @@ -50759,8 +50936,8 @@ call 71 pith_cstring_eq bool 2 68 69 iconst 72 1 sub 70 72 71 call 73 pith_cstring_release void 1 69 -brif 70 L2757 L2758 -label L2757 +brif 70 L2771 L2772 +label L2771 strref 74 m13s304 strref 75 m13s591 load 76 list_tid @@ -50777,8 +50954,8 @@ call 86 pith_struct_release void 1 85 load 87 fn_info call 88 pith_struct_release void 1 87 ret 84 -label L2758 -label L2756 +label L2772 +label L2770 load 89 fn_info load 90 fn_tid call 91 types_get_type_info struct:TypeInfo 1 90 @@ -50791,8 +50968,8 @@ call 97 pith_cstring_eq bool 2 94 95 iconst 98 1 sub 96 98 97 call 99 pith_cstring_release void 1 95 -brif 96 L2760 L2761 -label L2760 +brif 96 L2774 L2775 +label L2774 strref 100 m13s579 strref 101 m13s590 call 102 checker_diagnostics_report_error void 2 100 101 @@ -50804,15 +50981,15 @@ call 107 pith_struct_release void 1 106 load 108 fn_info call 109 pith_struct_release void 1 108 ret 105 -label L2761 -label L2759 +label L2775 +label L2773 load 110 fn_info field 111 110 48 list param_types call 112 pith_list_len int 1 111 iconst 113 2 neq 114 112 113 -brif 114 L2763 L2764 -label L2763 +brif 114 L2777 L2778 +label L2777 strref 115 m13s307 strref 116 m13s577 load 117 fn_info @@ -50831,8 +51008,8 @@ call 129 pith_struct_release void 1 128 load 130 fn_info call 131 pith_struct_release void 1 130 ret 127 -label L2764 -label L2762 +label L2778 +label L2776 load 132 fn_info field 133 132 48 list param_types iconst 134 0 @@ -50841,8 +51018,8 @@ load 136 init_tid call 137 checker_types_structurally_equal bool 2 135 136 iconst 138 0 eq 139 137 138 -brif 139 L2766 L2767 -label L2766 +brif 139 L2780 L2781 +label L2780 strref 140 m13s304 strref 141 m13s576 load 142 init_tid @@ -50871,8 +51048,8 @@ call 164 pith_struct_release void 1 163 load 165 fn_info call 166 pith_struct_release void 1 165 ret 162 -label L2767 -label L2765 +label L2781 +label L2779 load 167 fn_info field 168 167 48 list param_types iconst 169 1 @@ -50882,8 +51059,8 @@ field 172 171 64 int inner call 173 checker_types_structurally_equal bool 2 170 172 iconst 174 0 eq 175 173 174 -brif 175 L2769 L2770 -label L2769 +brif 175 L2783 L2784 +label L2783 strref 176 m13s304 strref 177 m13s575 load 178 list_info @@ -50913,16 +51090,16 @@ call 201 pith_struct_release void 1 200 load 202 fn_info call 203 pith_struct_release void 1 202 ret 199 -label L2770 -label L2768 +label L2784 +label L2782 load 204 fn_info field 205 204 56 int return_type load 206 init_tid call 207 checker_types_structurally_equal bool 2 205 206 iconst 208 0 eq 209 207 208 -brif 209 L2772 L2773 -label L2772 +brif 209 L2786 L2787 +label L2786 strref 210 m13s304 strref 211 m13s574 load 212 init_tid @@ -50949,8 +51126,8 @@ call 232 pith_struct_release void 1 231 load 233 fn_info call 234 pith_struct_release void 1 233 ret 230 -label L2773 -label L2771 +label L2787 +label L2785 load 235 init_tid load 236 list_info call 237 pith_struct_release void 1 236 @@ -50974,8 +51151,8 @@ load 4 args call 5 pith_list_len int 1 4 iconst 6 1 neq 7 5 6 -brif 7 L2775 L2776 -label L2775 +brif 7 L2789 L2790 +label L2789 strref 8 m13s307 strref 9 m13s589 load 10 args @@ -50991,8 +51168,8 @@ load 19 types_TID_ERR load 20 fn_info call 21 pith_struct_release void 1 20 ret 19 -label L2776 -label L2774 +label L2790 +label L2788 load 22 args iconst 23 0 call 24 pith_list_get_value_strict int 2 22 23 @@ -51002,14 +51179,14 @@ call 27 checker_c_check_expr int 2 25 26 store fn_tid 27 load 28 fn_tid call 29 types_is_error_type bool 1 28 -brif 29 L2778 L2779 -label L2778 +brif 29 L2792 L2793 +label L2792 load 30 types_TID_ERR load 31 fn_info call 32 pith_struct_release void 1 31 ret 30 -label L2779 -label L2777 +label L2793 +label L2791 load 33 fn_info load 34 fn_tid call 35 types_get_type_info struct:TypeInfo 1 34 @@ -51022,8 +51199,8 @@ call 41 pith_cstring_eq bool 2 38 39 iconst 42 1 sub 40 42 41 call 43 pith_cstring_release void 1 39 -brif 40 L2781 L2782 -label L2781 +brif 40 L2795 L2796 +label L2795 strref 44 m13s579 strref 45 m13s588 call 46 checker_diagnostics_report_error void 2 44 45 @@ -51033,15 +51210,15 @@ load 49 types_TID_ERR load 50 fn_info call 51 pith_struct_release void 1 50 ret 49 -label L2782 -label L2780 +label L2796 +label L2794 load 52 fn_info field 53 52 48 list param_types call 54 pith_list_len int 1 53 iconst 55 1 neq 56 54 55 -brif 56 L2784 L2785 -label L2784 +brif 56 L2798 L2799 +label L2798 strref 57 m13s307 strref 58 m13s587 load 59 fn_info @@ -51058,8 +51235,8 @@ load 69 types_TID_ERR load 70 fn_info call 71 pith_struct_release void 1 70 ret 69 -label L2785 -label L2783 +label L2799 +label L2797 load 72 fn_info field 73 72 48 list param_types iconst 74 0 @@ -51069,8 +51246,8 @@ field 77 76 64 int inner call 78 checker_types_structurally_equal bool 2 75 77 iconst 79 0 eq 80 78 79 -brif 80 L2787 L2788 -label L2787 +brif 80 L2801 L2802 +label L2801 strref 81 m13s304 strref 82 m13s586 load 83 info @@ -51098,8 +51275,8 @@ load 104 types_TID_ERR load 105 fn_info call 106 pith_struct_release void 1 105 ret 104 -label L2788 -label L2786 +label L2802 +label L2800 load 107 fn_info field 108 107 56 int return_type call 109 checker_type_intern_intern_list_type int 1 108 @@ -51121,8 +51298,8 @@ load 4 args call 5 pith_list_len int 1 4 iconst 6 1 neq 7 5 6 -brif 7 L2790 L2791 -label L2790 +brif 7 L2804 L2805 +label L2804 strref 8 m13s307 strref 9 m13s585 load 10 args @@ -51138,8 +51315,8 @@ load 19 types_TID_ERR load 20 fn_info call 21 pith_struct_release void 1 20 ret 19 -label L2791 -label L2789 +label L2805 +label L2803 load 22 args iconst 23 0 call 24 pith_list_get_value_strict int 2 22 23 @@ -51149,14 +51326,14 @@ call 27 checker_c_check_expr int 2 25 26 store fn_tid 27 load 28 fn_tid call 29 types_is_error_type bool 1 28 -brif 29 L2793 L2794 -label L2793 +brif 29 L2807 L2808 +label L2807 load 30 types_TID_ERR load 31 fn_info call 32 pith_struct_release void 1 31 ret 30 -label L2794 -label L2792 +label L2808 +label L2806 load 33 fn_info load 34 fn_tid call 35 types_get_type_info struct:TypeInfo 1 34 @@ -51169,8 +51346,8 @@ call 41 pith_cstring_eq bool 2 38 39 iconst 42 1 sub 40 42 41 call 43 pith_cstring_release void 1 39 -brif 40 L2796 L2797 -label L2796 +brif 40 L2810 L2811 +label L2810 strref 44 m13s579 strref 45 m13s584 call 46 checker_diagnostics_report_error void 2 44 45 @@ -51180,15 +51357,15 @@ load 49 types_TID_ERR load 50 fn_info call 51 pith_struct_release void 1 50 ret 49 -label L2797 -label L2795 +label L2811 +label L2809 load 52 fn_info field 53 52 48 list param_types call 54 pith_list_len int 1 53 iconst 55 1 neq 56 54 55 -brif 56 L2799 L2800 -label L2799 +brif 56 L2813 L2814 +label L2813 strref 57 m13s307 strref 58 m13s583 load 59 fn_info @@ -51205,8 +51382,8 @@ load 69 types_TID_ERR load 70 fn_info call 71 pith_struct_release void 1 70 ret 69 -label L2800 -label L2798 +label L2814 +label L2812 load 72 fn_info field 73 72 48 list param_types iconst 74 0 @@ -51216,8 +51393,8 @@ field 77 76 64 int inner call 78 checker_types_structurally_equal bool 2 75 77 iconst 79 0 eq 80 78 79 -brif 80 L2802 L2803 -label L2802 +brif 80 L2816 L2817 +label L2816 strref 81 m13s304 strref 82 m13s582 load 83 info @@ -51245,23 +51422,23 @@ load 104 types_TID_ERR load 105 fn_info call 106 pith_struct_release void 1 105 ret 104 -label L2803 -label L2801 +label L2817 +label L2815 load 107 fn_info field 108 107 56 int return_type strref 109 m13s12 call 110 types_lookup_type_id int 1 109 call 111 pith_cstring_release void 1 109 neq 112 108 110 -brif 112 L2805 L2806 -label L2805 +brif 112 L2819 L2820 +label L2819 load 113 fn_info field 114 113 56 int return_type call 115 types_is_integer_type bool 1 114 iconst 116 0 eq 117 115 116 -brif 117 L2808 L2809 -label L2808 +brif 117 L2822 L2823 +label L2822 strref 118 m13s304 strref 119 m13s581 load 120 fn_info @@ -51277,11 +51454,11 @@ load 129 types_TID_ERR load 130 fn_info call 131 pith_struct_release void 1 130 ret 129 -label L2809 -label L2807 -jmp L2804 -label L2806 -label L2804 +label L2823 +label L2821 +jmp L2818 +label L2820 +label L2818 load 132 info field 133 132 64 int inner call 134 checker_type_intern_intern_list_type int 1 133 @@ -51303,8 +51480,8 @@ load 4 args call 5 pith_list_len int 1 4 iconst 6 2 neq 7 5 6 -brif 7 L2811 L2812 -label L2811 +brif 7 L2825 L2826 +label L2825 strref 8 m13s307 strref 9 m13s580 load 10 args @@ -51320,8 +51497,8 @@ load 19 types_TID_ERR load 20 fn_info call 21 pith_struct_release void 1 20 ret 19 -label L2812 -label L2810 +label L2826 +label L2824 load 22 args iconst 23 0 call 24 pith_list_get_value_strict int 2 22 23 @@ -51338,24 +51515,24 @@ call 33 checker_c_check_expr int 2 31 32 store fn_tid 33 load 34 init_tid call 35 types_is_error_type bool 1 34 -brif 35 L2814 L2815 -label L2814 +brif 35 L2828 L2829 +label L2828 load 36 types_TID_ERR load 37 fn_info call 38 pith_struct_release void 1 37 ret 36 -label L2815 -label L2813 +label L2829 +label L2827 load 39 fn_tid call 40 types_is_error_type bool 1 39 -brif 40 L2817 L2818 -label L2817 +brif 40 L2831 L2832 +label L2831 load 41 types_TID_ERR load 42 fn_info call 43 pith_struct_release void 1 42 ret 41 -label L2818 -label L2816 +label L2832 +label L2830 load 44 fn_info load 45 fn_tid call 46 types_get_type_info struct:TypeInfo 1 45 @@ -51368,8 +51545,8 @@ call 52 pith_cstring_eq bool 2 49 50 iconst 53 1 sub 51 53 52 call 54 pith_cstring_release void 1 50 -brif 51 L2820 L2821 -label L2820 +brif 51 L2834 L2835 +label L2834 strref 55 m13s579 strref 56 m13s578 call 57 checker_diagnostics_report_error void 2 55 56 @@ -51379,15 +51556,15 @@ load 60 types_TID_ERR load 61 fn_info call 62 pith_struct_release void 1 61 ret 60 -label L2821 -label L2819 +label L2835 +label L2833 load 63 fn_info field 64 63 48 list param_types call 65 pith_list_len int 1 64 iconst 66 2 neq 67 65 66 -brif 67 L2823 L2824 -label L2823 +brif 67 L2837 L2838 +label L2837 strref 68 m13s307 strref 69 m13s577 load 70 fn_info @@ -51404,8 +51581,8 @@ load 80 types_TID_ERR load 81 fn_info call 82 pith_struct_release void 1 81 ret 80 -label L2824 -label L2822 +label L2838 +label L2836 load 83 fn_info field 84 83 48 list param_types iconst 85 0 @@ -51414,8 +51591,8 @@ load 87 init_tid call 88 checker_types_structurally_equal bool 2 86 87 iconst 89 0 eq 90 88 89 -brif 90 L2826 L2827 -label L2826 +brif 90 L2840 L2841 +label L2840 strref 91 m13s304 strref 92 m13s576 load 93 init_tid @@ -51442,8 +51619,8 @@ load 113 types_TID_ERR load 114 fn_info call 115 pith_struct_release void 1 114 ret 113 -label L2827 -label L2825 +label L2841 +label L2839 load 116 fn_info field 117 116 48 list param_types iconst 118 1 @@ -51453,8 +51630,8 @@ field 121 120 64 int inner call 122 checker_types_structurally_equal bool 2 119 121 iconst 123 0 eq 124 122 123 -brif 124 L2829 L2830 -label L2829 +brif 124 L2843 L2844 +label L2843 strref 125 m13s304 strref 126 m13s575 load 127 info @@ -51482,16 +51659,16 @@ load 148 types_TID_ERR load 149 fn_info call 150 pith_struct_release void 1 149 ret 148 -label L2830 -label L2828 +label L2844 +label L2842 load 151 fn_info field 152 151 56 int return_type load 153 init_tid call 154 checker_types_structurally_equal bool 2 152 153 iconst 155 0 eq 156 154 155 -brif 156 L2832 L2833 -label L2832 +brif 156 L2846 L2847 +label L2846 strref 157 m13s304 strref 158 m13s574 load 159 init_tid @@ -51516,8 +51693,8 @@ load 177 types_TID_ERR load 178 fn_info call 179 pith_struct_release void 1 178 ret 177 -label L2833 -label L2831 +label L2847 +label L2845 load 180 init_tid load 181 fn_info call 182 pith_struct_release void 1 181 @@ -51534,40 +51711,40 @@ field 2 1 0 string kind strref 3 m13s563 call 4 pith_cstring_eq bool 2 2 3 call 5 pith_cstring_release void 1 3 -brif 4 L2835 L2836 -label L2835 +brif 4 L2849 L2850 +label L2849 load 6 node field 7 6 8 string value call 8 pith_cstring_retain void 1 7 ret 7 -label L2836 -label L2834 +label L2850 +label L2848 load 9 node field 10 9 0 string kind strref 11 m13s564 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 -brif 12 L2838 L2839 -label L2838 +brif 12 L2852 L2853 +label L2852 load 14 node field 15 14 8 string value strref 16 m13s96 call 17 pith_cstring_contains bool 2 15 16 call 18 pith_cstring_release void 1 16 -brif 17 L2841 L2842 -label L2841 +brif 17 L2855 L2856 +label L2855 load 19 node field 20 19 8 string value call 21 checker_extract_base_type_name string 1 20 ret 21 -label L2842 -label L2840 +label L2856 +label L2854 load 22 node field 23 22 8 string value call 24 pith_cstring_retain void 1 23 ret 23 -label L2839 -label L2837 +label L2853 +label L2851 strref 25 m13s35 ret 25 iconst 26 0 @@ -51594,8 +51771,8 @@ field 10 9 0 string kind strref 11 m13s563 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 -brif 12 L2844 L2845 -label L2844 +brif 12 L2858 L2859 +label L2858 load 14 node field 15 14 16 list children call 16 pith_auto_len int 1 15 @@ -51603,12 +51780,12 @@ iconst 17 0 store __for_idx_148 17 store __for_len_148 16 store __for_iter_148 15 -label L2846 +label L2860 load 18 __for_idx_148 load 19 __for_len_148 lt 20 18 19 -brif 20 L2847 L2849 -label L2847 +brif 20 L2861 L2863 +label L2861 load 21 __for_iter_148 load 22 __for_idx_148 call 23 pith_list_get_value unknown 2 21 22 @@ -51622,29 +51799,29 @@ load 28 names load 29 cn call 30 checker_get_type_node_name string 1 29 call 31 pith_list_push_value_owned void 2 28 30 -label L2848 +label L2862 load 32 __for_idx_148 iconst 33 1 add 34 32 33 store __for_idx_148 34 -jmp L2846 -label L2849 -jmp L2843 -label L2845 +jmp L2860 +label L2863 +jmp L2857 +label L2859 load 35 node field 36 35 0 string kind strref 37 m13s564 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 -brif 38 L2850 L2851 -label L2850 +brif 38 L2864 L2865 +label L2864 load 40 node field 41 40 8 string value strref 42 m13s96 call 43 pith_cstring_contains bool 2 41 42 call 44 pith_cstring_release void 1 42 -brif 43 L2853 L2854 -label L2853 +brif 43 L2867 L2868 +label L2867 load 45 base load 46 node field 47 46 8 string value @@ -51679,12 +51856,12 @@ iconst 72 0 store __for_idx_149 72 store __for_len_149 71 store __for_iter_149 70 -label L2855 +label L2869 load 73 __for_idx_149 load 74 __for_len_149 lt 75 73 74 -brif 75 L2856 L2858 -label L2856 +brif 75 L2870 L2872 +label L2870 load 76 __for_iter_149 load 77 __for_idx_149 call 78 pith_list_get_value_unchecked string 2 76 77 @@ -51693,19 +51870,19 @@ load 79 names load 80 __loopvar_149_part call 81 pith_cstring_trim string 1 80 call 82 pith_list_push_value_owned void 2 79 81 -label L2857 +label L2871 load 83 __for_idx_149 iconst 84 1 add 85 83 84 store __for_idx_149 85 -jmp L2855 -label L2858 -jmp L2852 -label L2854 -label L2852 -jmp L2843 -label L2851 -label L2843 +jmp L2869 +label L2872 +jmp L2866 +label L2868 +label L2866 +jmp L2857 +label L2865 +label L2857 load 86 names load 87 cn call 88 pith_struct_release void 1 87 @@ -51751,8 +51928,8 @@ call 12 pith_list_release_handle void 1 10 store struct_params 11 load 13 impl_struct_base call 14 checker_has_generic_declaration bool 1 13 -brif 14 L2860 L2861 -label L2860 +brif 14 L2874 L2875 +label L2874 load 15 sdecl load 16 impl_struct_base call 17 checker_get_generic_declaration_index int 1 16 @@ -51764,9 +51941,9 @@ load 21 sdecl call 22 checker_collect_generic_parameter_names list_string 1 21 call 23 pith_list_release_handle void 1 20 store struct_params 22 -jmp L2859 -label L2861 -label L2859 +jmp L2873 +label L2875 +label L2873 load 24 parts call 25 pith_list_new_cstr list 0 call 26 pith_list_release_handle void 1 24 @@ -51777,12 +51954,12 @@ iconst 29 0 store __for_idx_150 29 store __for_len_150 28 store __for_iter_150 27 -label L2862 +label L2876 load 30 __for_idx_150 load 31 __for_len_150 lt 32 30 31 -brif 32 L2863 L2865 -label L2863 +brif 32 L2877 L2879 +label L2877 load 33 __for_iter_150 load 34 __for_idx_150 call 35 pith_list_get_value_unchecked string 2 33 34 @@ -51797,12 +51974,12 @@ iconst 41 0 store __for_idx_151 41 store __for_len_151 40 store __for_iter_151 39 -label L2866 +label L2880 load 42 __for_idx_151 load 43 __for_len_151 lt 44 42 43 -brif 44 L2867 L2869 -label L2867 +brif 44 L2881 L2883 +label L2881 load 45 __for_iter_151 load 46 __for_idx_151 call 47 pith_list_get_value_unchecked string 2 45 46 @@ -51812,25 +51989,25 @@ store __loopvar_151_sp_i 48 load 49 __loopvar_151_sp load 50 __loopvar_150_n call 51 pith_cstring_eq bool 2 49 50 -brif 51 L2871 L2872 -label L2871 +brif 51 L2885 L2886 +label L2885 load 52 __loopvar_151_sp_i store found_idx 52 -jmp L2870 -label L2872 -label L2870 -label L2868 +jmp L2884 +label L2886 +label L2884 +label L2882 load 53 __for_idx_151 iconst 54 1 add 55 53 54 store __for_idx_151 55 -jmp L2866 -label L2869 +jmp L2880 +label L2883 load 56 found_idx iconst 57 0 gte 58 56 57 -brif 58 L2874 L2875 -label L2874 +brif 58 L2888 L2889 +label L2888 load 59 parts strref 60 m13s573 load 61 found_idx @@ -51839,8 +52016,8 @@ concat 63 60 62 call 64 pith_cstring_release void 1 60 call 65 pith_cstring_release void 1 62 call 66 pith_list_push_value_owned void 2 59 63 -jmp L2873 -label L2875 +jmp L2887 +label L2889 load 67 parts strref 68 m13s572 load 69 __loopvar_150_n @@ -51850,14 +52027,14 @@ concat 72 68 71 call 73 pith_cstring_release void 1 68 call 74 pith_cstring_release void 1 71 call 75 pith_list_push_value_owned void 2 67 72 -label L2873 -label L2864 +label L2887 +label L2878 load 76 __for_idx_150 iconst 77 1 add 78 76 77 store __for_idx_150 78 -jmp L2862 -label L2865 +jmp L2876 +label L2879 load 79 parts strref 80 m13s90 call 81 list_join string 2 79 80 @@ -51901,8 +52078,8 @@ load 9 encoded call 10 string_len int 1 9 iconst 11 0 eq 12 10 11 -brif 12 L2877 L2878 -label L2877 +brif 12 L2891 L2892 +label L2891 load 13 tids load 14 instance_args call 15 pith_list_release_handle void 1 14 @@ -51911,8 +52088,8 @@ call 17 pith_list_release_handle void 1 16 load 18 idx_str call 19 pith_cstring_release void 1 18 ret 13 -label L2878 -label L2876 +label L2892 +label L2890 load 20 instance_args call 21 pith_list_new_default list 0 call 22 pith_list_release_handle void 1 20 @@ -51920,8 +52097,8 @@ store instance_args 21 load 23 checker_struct_instance_type_args load 24 instance_tid call 25 map_contains_ikey bool 2 23 24 -brif 25 L2880 L2881 -label L2880 +brif 25 L2894 L2895 +label L2894 load 26 instance_args load 27 checker_struct_instance_type_args load 28 instance_tid @@ -51929,9 +52106,9 @@ call 29 map_get_ikey_strict string 2 27 28 call 30 checker_decode_tid_list list 1 29 call 31 pith_list_release_handle void 1 26 store instance_args 30 -jmp L2879 -label L2881 -label L2879 +jmp L2893 +label L2895 +label L2893 load 32 parts load 33 encoded strref 34 m13s90 @@ -51945,12 +52122,12 @@ iconst 40 0 store __for_idx_152 40 store __for_len_152 39 store __for_iter_152 38 -label L2882 +label L2896 load 41 __for_idx_152 load 42 __for_len_152 lt 43 41 42 -brif 43 L2883 L2885 -label L2883 +brif 43 L2897 L2899 +label L2897 load 44 __for_iter_152 load 45 __for_idx_152 call 46 pith_list_get_value_unchecked string 2 44 45 @@ -51959,8 +52136,8 @@ load 47 __loopvar_152_part strref 48 m13s573 call 49 pith_cstring_starts_with bool 2 47 48 call 50 pith_cstring_release void 1 48 -brif 49 L2887 L2888 -label L2887 +brif 49 L2901 L2902 +label L2901 load 51 idx_str load 52 __loopvar_152_part iconst 53 6 @@ -51973,43 +52150,43 @@ load 58 idx_str call 59 checker_parse_integer_string int 1 58 store idx 59 iconst 60 0 -store __and_60_2892 60 +store __and_60_2906 60 load 61 idx iconst 62 0 gte 63 61 62 -store __and_60_2892 63 -brif 63 L2892 L2893 -label L2892 +store __and_60_2906 63 +brif 63 L2906 L2907 +label L2906 load 64 idx load 65 instance_args call 66 pith_list_len int 1 65 lt 67 64 66 -store __and_60_2892 67 -label L2893 -load 68 __and_60_2892 -brif 68 L2890 L2891 -label L2890 +store __and_60_2906 67 +label L2907 +load 68 __and_60_2906 +brif 68 L2904 L2905 +label L2904 load 69 tids load 70 instance_args load 71 idx call 72 pith_list_get_value_strict int 2 70 71 call 73 pith_list_push_value void 2 69 72 -jmp L2889 -label L2891 +jmp L2903 +label L2905 load 74 tids iconst 75 0 iconst 76 1 sub 77 75 76 call 78 pith_list_push_value void 2 74 77 -label L2889 -jmp L2886 -label L2888 +label L2903 +jmp L2900 +label L2902 load 79 __loopvar_152_part strref 80 m13s572 call 81 pith_cstring_starts_with bool 2 79 80 call 82 pith_cstring_release void 1 80 -brif 81 L2894 L2895 -label L2894 +brif 81 L2908 L2909 +label L2908 load 83 __loopvar_152_part iconst 84 4 load 85 __loopvar_152_part @@ -52021,21 +52198,21 @@ store tid 88 load 90 tids load 91 tid call 92 pith_list_push_value void 2 90 91 -jmp L2886 -label L2895 +jmp L2900 +label L2909 load 93 tids iconst 94 0 iconst 95 1 sub 96 94 95 call 97 pith_list_push_value void 2 93 96 -label L2886 -label L2884 +label L2900 +label L2898 load 98 __for_idx_152 iconst 99 1 add 100 98 99 store __for_idx_152 100 -jmp L2882 -label L2885 +jmp L2896 +label L2899 load 101 tids load 102 instance_args call 103 pith_list_release_handle void 1 102 @@ -52069,12 +52246,12 @@ iconst 7 0 store __for_idx_153 7 store __for_len_153 6 store __for_iter_153 5 -label L2896 +label L2910 load 8 __for_idx_153 load 9 __for_len_153 lt 10 8 9 -brif 10 L2897 L2899 -label L2897 +brif 10 L2911 L2913 +label L2911 load 11 __for_iter_153 load 12 __for_idx_153 call 13 pith_list_get_value unknown 2 11 12 @@ -52083,13 +52260,13 @@ load 14 parts load 15 __loopvar_153_tid call 16 int_to_string string 1 15 call 17 pith_list_push_value_owned void 2 14 16 -label L2898 +label L2912 load 18 __for_idx_153 iconst 19 1 add 20 18 19 store __for_idx_153 20 -jmp L2896 -label L2899 +jmp L2910 +label L2913 load 21 parts strref 22 m13s90 call 23 list_join string 2 21 22 @@ -52116,14 +52293,14 @@ load 6 s call 7 string_len int 1 6 iconst 8 0 eq 9 7 8 -brif 9 L2901 L2902 -label L2901 +brif 9 L2915 L2916 +label L2915 load 10 tids load 11 parts call 12 pith_list_release_handle void 1 11 ret 10 -label L2902 -label L2900 +label L2916 +label L2914 load 13 parts load 14 s strref 15 m13s90 @@ -52137,12 +52314,12 @@ iconst 21 0 store __for_idx_154 21 store __for_len_154 20 store __for_iter_154 19 -label L2903 +label L2917 load 22 __for_idx_154 load 23 __for_len_154 lt 24 22 23 -brif 24 L2904 L2906 -label L2904 +brif 24 L2918 L2920 +label L2918 load 25 __for_iter_154 load 26 __for_idx_154 call 27 pith_list_get_value_unchecked string 2 25 26 @@ -52151,13 +52328,13 @@ load 28 tids load 29 __loopvar_154_part call 30 checker_parse_integer_string int 1 29 call 31 pith_list_push_value void 2 28 30 -label L2905 +label L2919 load 32 __for_idx_154 iconst 33 1 add 34 32 33 store __for_idx_154 34 -jmp L2903 -label L2906 +jmp L2917 +label L2920 load 35 tids load 36 parts call 37 pith_list_release_handle void 1 36 @@ -52197,12 +52374,12 @@ iconst 14 0 store __for_idx_155 14 store __for_len_155 13 store __for_iter_155 12 -label L2907 +label L2921 load 15 __for_idx_155 load 16 __for_len_155 lt 17 15 16 -brif 17 L2908 L2910 -label L2908 +brif 17 L2922 L2924 +label L2922 load 18 __for_iter_155 load 19 __for_idx_155 call 20 pith_list_get_value unknown 2 18 19 @@ -52217,8 +52394,8 @@ field 26 25 0 string kind strref 27 m13s571 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 -brif 28 L2912 L2913 -label L2912 +brif 28 L2926 L2927 +label L2926 load 30 param_name load 31 cn field 32 31 8 string value @@ -52228,8 +52405,8 @@ store param_name 32 load 35 checker_generic_inference_subst load 36 param_name call 37 contains_key bool 2 35 36 -brif 37 L2915 L2916 -label L2915 +brif 37 L2929 L2930 +label L2929 load 38 checker_generic_inference_subst load 39 param_name call 40 map_get_strict int 2 38 39 @@ -52248,12 +52425,12 @@ iconst 50 0 store __for_idx_156 50 store __for_len_156 49 store __for_iter_156 48 -label L2917 +label L2931 load 51 __for_idx_156 load 52 __for_len_156 lt 53 51 52 -brif 53 L2918 L2920 -label L2918 +brif 53 L2932 L2934 +label L2932 load 54 __for_iter_156 load 55 __for_idx_156 call 56 pith_list_get_value unknown 2 54 55 @@ -52287,8 +52464,8 @@ store impl_key 76 load 79 checker_impl_interface_args load 80 impl_key call 81 contains_key bool 2 79 80 -brif 81 L2922 L2923 -label L2922 +brif 81 L2936 L2937 +label L2936 load 82 impl_args load 83 checker_impl_interface_args load 84 impl_key @@ -52299,25 +52476,25 @@ call 88 pith_list_release_handle void 1 82 store impl_args 87 iconst 89 0 store k 89 -label L2924 +label L2938 iconst 90 0 -store __and_90_2927 90 +store __and_90_2941 90 load 91 k load 92 bound_arg_names call 93 pith_list_len int 1 92 lt 94 91 93 -store __and_90_2927 94 -brif 94 L2927 L2928 -label L2927 +store __and_90_2941 94 +brif 94 L2941 L2942 +label L2941 load 95 k load 96 impl_args call 97 pith_list_len int 1 96 lt 98 95 97 -store __and_90_2927 98 -label L2928 -load 99 __and_90_2927 -brif 99 L2925 L2926 -label L2925 +store __and_90_2941 98 +label L2942 +load 99 __and_90_2941 +brif 99 L2939 L2940 +label L2939 load 100 ban load 101 bound_arg_names load 102 k @@ -52333,12 +52510,12 @@ iconst 109 0 store __for_idx_157 109 store __for_len_157 108 store __for_iter_157 107 -label L2929 +label L2943 load 110 __for_idx_157 load 111 __for_len_157 lt 112 110 111 -brif 112 L2930 L2932 -label L2930 +brif 112 L2944 L2946 +label L2944 load 113 __for_iter_157 load 114 __for_idx_157 call 115 pith_list_get_value_unchecked string 2 113 114 @@ -52346,84 +52523,84 @@ store __loopvar_157_gp 115 load 116 __loopvar_157_gp load 117 ban call 118 pith_cstring_eq bool 2 116 117 -brif 118 L2934 L2935 -label L2934 +brif 118 L2948 L2949 +label L2948 iconst 119 1 store is_gp 119 -jmp L2933 -label L2935 -label L2933 -label L2931 +jmp L2947 +label L2949 +label L2947 +label L2945 load 120 __for_idx_157 iconst 121 1 add 122 120 121 store __for_idx_157 122 -jmp L2929 -label L2932 +jmp L2943 +label L2946 iconst 123 0 -store __and_123_2939 123 +store __and_123_2953 123 load 124 is_gp -store __and_123_2939 124 -brif 124 L2939 L2940 -label L2939 +store __and_123_2953 124 +brif 124 L2953 L2954 +label L2953 load 125 checker_generic_inference_subst load 126 ban call 127 contains_key bool 2 125 126 iconst 128 0 eq 129 127 128 -store __and_123_2939 129 -label L2940 -load 130 __and_123_2939 -brif 130 L2937 L2938 -label L2937 +store __and_123_2953 129 +label L2954 +load 130 __and_123_2953 +brif 130 L2951 L2952 +label L2951 load 131 impl_args load 132 k call 133 pith_list_get_value_strict int 2 131 132 iconst 134 0 gte 135 133 134 -brif 135 L2942 L2943 -label L2942 +brif 135 L2956 L2957 +label L2956 load 136 checker_generic_inference_subst load 137 ban load 138 impl_args load 139 k call 140 pith_list_get_value_strict int 2 138 139 call 141 map_insert void 3 136 137 140 -jmp L2941 -label L2943 -label L2941 -jmp L2936 -label L2938 -label L2936 +jmp L2955 +label L2957 +label L2955 +jmp L2950 +label L2952 +label L2950 load 142 k iconst 143 1 add 144 142 143 store k 144 -jmp L2924 -label L2926 -jmp L2921 -label L2923 -label L2921 -label L2919 +jmp L2938 +label L2940 +jmp L2935 +label L2937 +label L2935 +label L2933 load 145 __for_idx_156 iconst 146 1 add 147 145 146 store __for_idx_156 147 -jmp L2917 -label L2920 -jmp L2914 -label L2916 -label L2914 -jmp L2911 -label L2913 -label L2911 -label L2909 +jmp L2931 +label L2934 +jmp L2928 +label L2930 +label L2928 +jmp L2925 +label L2927 +label L2925 +label L2923 load 148 __for_idx_155 iconst 149 1 add 150 148 149 store __for_idx_155 150 -jmp L2907 -label L2910 +jmp L2921 +label L2924 load 151 cn call 152 pith_struct_release void 1 151 load 153 param_name @@ -52474,12 +52651,12 @@ iconst 16 0 store __for_idx_158 16 store __for_len_158 15 store __for_iter_158 14 -label L2944 +label L2958 load 17 __for_idx_158 load 18 __for_len_158 lt 19 17 18 -brif 19 L2945 L2947 -label L2945 +brif 19 L2959 L2961 +label L2959 load 20 __for_iter_158 load 21 __for_idx_158 call 22 pith_list_get_value unknown 2 20 21 @@ -52494,8 +52671,8 @@ field 28 27 0 string kind strref 29 m13s571 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L2949 L2950 -label L2949 +brif 30 L2963 L2964 +label L2963 load 32 param_name load 33 cn field 34 33 8 string value @@ -52505,8 +52682,8 @@ store param_name 34 load 37 subst_map load 38 param_name call 39 contains_key bool 2 37 38 -brif 39 L2952 L2953 -label L2952 +brif 39 L2966 L2967 +label L2966 load 40 subst_map load 41 param_name call 42 map_get_strict int 2 40 41 @@ -52523,12 +52700,12 @@ iconst 50 0 store __for_idx_159 50 store __for_len_159 49 store __for_iter_159 48 -label L2954 +label L2968 load 51 __for_idx_159 load 52 __for_len_159 lt 53 51 52 -brif 53 L2955 L2957 -label L2955 +brif 53 L2969 L2971 +label L2969 load 54 __for_iter_159 load 55 __for_idx_159 call 56 pith_list_get_value unknown 2 54 55 @@ -52548,8 +52725,8 @@ load 66 iface_name call 67 checker_interfaces_has_interface_declaration bool 1 66 iconst 68 0 eq 69 67 68 -brif 69 L2959 L2960 -label L2959 +brif 69 L2973 L2974 +label L2973 strref 70 m13s568 strref 71 m13s570 load 72 iface_name @@ -52571,15 +52748,15 @@ call 87 pith_cstring_release void 1 70 call 88 pith_cstring_release void 1 83 iconst 89 0 store ok 89 -jmp L2958 -label L2960 +jmp L2972 +label L2974 load 90 type_name load 91 iface_name call 92 checker_check_type_implements_interface bool 2 90 91 iconst 93 0 eq 94 92 93 -brif 94 L2962 L2963 -label L2962 +brif 94 L2976 L2977 +label L2976 strref 95 m13s568 strref 96 m13s567 load 97 type_name @@ -52601,30 +52778,30 @@ call 112 pith_cstring_release void 1 95 call 113 pith_cstring_release void 1 108 iconst 114 0 store ok 114 -jmp L2961 -label L2963 -label L2961 -label L2958 -label L2956 +jmp L2975 +label L2977 +label L2975 +label L2972 +label L2970 load 115 __for_idx_159 iconst 116 1 add 117 115 116 store __for_idx_159 117 -jmp L2954 -label L2957 -jmp L2951 -label L2953 -label L2951 -jmp L2948 -label L2950 -label L2948 -label L2946 +jmp L2968 +label L2971 +jmp L2965 +label L2967 +label L2965 +jmp L2962 +label L2964 +label L2962 +label L2960 load 118 __for_idx_158 iconst 119 1 add 120 118 119 store __for_idx_158 120 -jmp L2944 -label L2947 +jmp L2958 +label L2961 load 121 ok load 122 decl_node call 123 pith_struct_release void 1 122 @@ -52660,8 +52837,8 @@ param actual_tid load 2 checker_generic_inference_subst load 3 name call 4 contains_key bool 2 2 3 -brif 4 L2965 L2966 -label L2965 +brif 4 L2979 L2980 +label L2979 load 5 checker_generic_inference_subst load 6 name call 7 map_get_strict int 2 5 6 @@ -52671,8 +52848,8 @@ load 9 actual_tid call 10 checker_types_structurally_equal bool 2 8 9 iconst 11 0 eq 12 10 11 -brif 12 L2968 L2969 -label L2968 +brif 12 L2982 L2983 +label L2982 strref 13 m13s304 strref 14 m13s565 load 15 name @@ -52701,12 +52878,12 @@ call 37 pith_cstring_release void 1 13 call 38 pith_cstring_release void 1 33 iconst 39 0 ret 39 -label L2969 -label L2967 +label L2983 +label L2981 iconst 40 1 ret 40 -label L2966 -label L2964 +label L2980 +label L2978 load 41 checker_generic_inference_subst load 42 name load 43 actual_tid @@ -52723,40 +52900,40 @@ store start 1 load 2 text call 3 string_len int 1 2 store end 3 -label L2970 +label L2984 iconst 4 0 -store __and_4_2973 4 +store __and_4_2987 4 load 5 start load 6 end lt 7 5 6 -store __and_4_2973 7 -brif 7 L2973 L2974 -label L2973 +store __and_4_2987 7 +brif 7 L2987 L2988 +label L2987 load 8 text load 9 start call 10 byte_at int 2 8 9 iconst 11 32 eq 12 10 11 -store __and_4_2973 12 -label L2974 -load 13 __and_4_2973 -brif 13 L2971 L2972 -label L2971 +store __and_4_2987 12 +label L2988 +load 13 __and_4_2987 +brif 13 L2985 L2986 +label L2985 load 14 start iconst 15 1 add 16 14 15 store start 16 -jmp L2970 -label L2972 -label L2975 +jmp L2984 +label L2986 +label L2989 iconst 17 0 -store __and_17_2978 17 +store __and_17_2992 17 load 18 end load 19 start gt 20 18 19 -store __and_17_2978 20 -brif 20 L2978 L2979 -label L2978 +store __and_17_2992 20 +brif 20 L2992 L2993 +label L2992 load 21 text load 22 end iconst 23 1 @@ -52764,17 +52941,17 @@ sub 24 22 23 call 25 byte_at int 2 21 24 iconst 26 32 eq 27 25 26 -store __and_17_2978 27 -label L2979 -load 28 __and_17_2978 -brif 28 L2976 L2977 -label L2976 +store __and_17_2992 27 +label L2993 +load 28 __and_17_2992 +brif 28 L2990 L2991 +label L2990 load 29 end iconst 30 1 sub 31 29 30 store end 31 -jmp L2975 -label L2977 +jmp L2989 +label L2991 load 32 text load 33 start load 34 end @@ -52799,13 +52976,13 @@ iconst 7 0 store depth 7 iconst 8 0 store i 8 -label L2980 +label L2994 load 9 i load 10 text call 11 string_len int 1 10 lt 12 9 11 -brif 12 L2981 L2982 -label L2981 +brif 12 L2995 L2996 +label L2995 load 13 ch load 14 text load 15 i @@ -52816,43 +52993,43 @@ load 18 ch strref 19 m13s96 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 -brif 20 L2984 L2985 -label L2984 +brif 20 L2998 L2999 +label L2998 load 22 depth iconst 23 1 add 24 22 23 store depth 24 -jmp L2983 -label L2985 +jmp L2997 +label L2999 load 25 ch strref 26 m13s95 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 -brif 27 L2986 L2987 -label L2986 +brif 27 L3000 L3001 +label L3000 load 29 depth iconst 30 1 sub 31 29 30 store depth 31 -jmp L2983 -label L2987 +jmp L2997 +label L3001 iconst 32 0 -store __and_32_2990 32 +store __and_32_3004 32 load 33 ch strref 34 m13s90 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 -store __and_32_2990 35 -brif 35 L2990 L2991 -label L2990 +store __and_32_3004 35 +brif 35 L3004 L3005 +label L3004 load 37 depth iconst 38 0 eq 39 37 38 -store __and_32_2990 39 -label L2991 -load 40 __and_32_2990 -brif 40 L2988 L2989 -label L2988 +store __and_32_3004 39 +label L3005 +load 40 __and_32_3004 +brif 40 L3002 L3003 +label L3002 load 41 parts load 42 text load 43 start @@ -52865,15 +53042,15 @@ load 49 i iconst 50 1 add 51 49 50 store start 51 -jmp L2983 -label L2989 -label L2983 +jmp L2997 +label L3003 +label L2997 load 52 i iconst 53 1 add 54 52 53 store i 54 -jmp L2980 -label L2982 +jmp L2994 +label L2996 load 55 parts load 56 text load 57 start @@ -52911,8 +53088,8 @@ store args 7 load 8 actual_tid iconst 9 0 lt 10 8 9 -brif 10 L2993 L2994 -label L2993 +brif 10 L3007 L3008 +label L3007 iconst 11 1 load 12 trimmed call 13 pith_cstring_release void 1 12 @@ -52925,8 +53102,8 @@ call 19 pith_cstring_release void 1 18 load 20 args call 21 pith_list_release_handle void 1 20 ret 11 -label L2994 -label L2992 +label L3008 +label L3006 load 22 trimmed load 23 type_name call 24 checker_trim_type_text string 1 23 @@ -52938,12 +53115,12 @@ iconst 28 0 store __for_idx_160 28 store __for_len_160 27 store __for_iter_160 26 -label L2995 +label L3009 load 29 __for_idx_160 load 30 __for_len_160 lt 31 29 30 -brif 31 L2996 L2998 -label L2996 +brif 31 L3010 L3012 +label L3010 load 32 __for_iter_160 load 33 __for_idx_160 call 34 pith_list_get_value_unchecked string 2 32 33 @@ -52956,8 +53133,8 @@ store normalized_gp 37 load 39 normalized_gp load 40 trimmed call 41 checker_strings_equal bool 2 39 40 -brif 41 L3000 L3001 -label L3000 +brif 41 L3014 L3015 +label L3014 load 42 normalized_gp load 43 actual_tid call 44 checker_bind_inferred_generic_type bool 2 42 43 @@ -52972,38 +53149,38 @@ call 52 pith_cstring_release void 1 51 load 53 args call 54 pith_list_release_handle void 1 53 ret 44 -label L3001 -label L2999 -label L2997 +label L3015 +label L3013 +label L3011 load 55 __for_idx_160 iconst 56 1 add 57 55 56 store __for_idx_160 57 -jmp L2995 -label L2998 +jmp L3009 +label L3012 load 58 actual_info load 59 actual_tid call 60 types_get_type_info struct:TypeInfo 1 59 call 61 pith_struct_release void 1 58 store actual_info 60 iconst 62 0 -store __and_62_3005 62 +store __and_62_3019 62 load 63 trimmed strref 64 m13s135 call 65 pith_cstring_starts_with bool 2 63 64 call 66 pith_cstring_release void 1 64 -store __and_62_3005 65 -brif 65 L3005 L3006 -label L3005 +store __and_62_3019 65 +brif 65 L3019 L3020 +label L3019 load 67 trimmed strref 68 m13s95 call 69 pith_cstring_ends_with bool 2 67 68 call 70 pith_cstring_release void 1 68 -store __and_62_3005 69 -label L3006 -load 71 __and_62_3005 -brif 71 L3003 L3004 -label L3003 +store __and_62_3019 69 +label L3020 +load 71 __and_62_3019 +brif 71 L3017 L3018 +label L3017 load 72 actual_info field 73 72 0 string kind strref 74 m13s22 @@ -53011,8 +53188,8 @@ call 76 pith_cstring_eq bool 2 73 74 iconst 77 1 sub 75 77 76 call 78 pith_cstring_release void 1 74 -brif 75 L3008 L3009 -label L3008 +brif 75 L3022 L3023 +label L3022 iconst 79 1 load 80 trimmed call 81 pith_cstring_release void 1 80 @@ -53025,8 +53202,8 @@ call 87 pith_cstring_release void 1 86 load 88 args call 89 pith_list_release_handle void 1 88 ret 79 -label L3009 -label L3007 +label L3023 +label L3021 load 90 inner_text load 91 trimmed iconst 92 5 @@ -53053,26 +53230,26 @@ call 111 pith_cstring_release void 1 110 load 112 args call 113 pith_list_release_handle void 1 112 ret 103 -label L3004 -label L3002 +label L3018 +label L3016 iconst 114 0 -store __and_114_3013 114 +store __and_114_3027 114 load 115 trimmed strref 116 m13s134 call 117 pith_cstring_starts_with bool 2 115 116 call 118 pith_cstring_release void 1 116 -store __and_114_3013 117 -brif 117 L3013 L3014 -label L3013 +store __and_114_3027 117 +brif 117 L3027 L3028 +label L3027 load 119 trimmed strref 120 m13s95 call 121 pith_cstring_ends_with bool 2 119 120 call 122 pith_cstring_release void 1 120 -store __and_114_3013 121 -label L3014 -load 123 __and_114_3013 -brif 123 L3011 L3012 -label L3011 +store __and_114_3027 121 +label L3028 +load 123 __and_114_3027 +brif 123 L3025 L3026 +label L3025 load 124 actual_info field 125 124 0 string kind strref 126 m13s18 @@ -53080,8 +53257,8 @@ call 128 pith_cstring_eq bool 2 125 126 iconst 129 1 sub 127 129 128 call 130 pith_cstring_release void 1 126 -brif 127 L3016 L3017 -label L3016 +brif 127 L3030 L3031 +label L3030 iconst 131 1 load 132 trimmed call 133 pith_cstring_release void 1 132 @@ -53094,8 +53271,8 @@ call 139 pith_cstring_release void 1 138 load 140 args call 141 pith_list_release_handle void 1 140 ret 131 -label L3017 -label L3015 +label L3031 +label L3029 load 142 inner_text load 143 trimmed iconst 144 4 @@ -53122,26 +53299,26 @@ call 163 pith_cstring_release void 1 162 load 164 args call 165 pith_list_release_handle void 1 164 ret 155 -label L3012 -label L3010 +label L3026 +label L3024 iconst 166 0 -store __and_166_3021 166 +store __and_166_3035 166 load 167 trimmed strref 168 m13s133 call 169 pith_cstring_starts_with bool 2 167 168 call 170 pith_cstring_release void 1 168 -store __and_166_3021 169 -brif 169 L3021 L3022 -label L3021 +store __and_166_3035 169 +brif 169 L3035 L3036 +label L3035 load 171 trimmed strref 172 m13s95 call 173 pith_cstring_ends_with bool 2 171 172 call 174 pith_cstring_release void 1 172 -store __and_166_3021 173 -label L3022 -load 175 __and_166_3021 -brif 175 L3019 L3020 -label L3019 +store __and_166_3035 173 +label L3036 +load 175 __and_166_3035 +brif 175 L3033 L3034 +label L3033 load 176 actual_info field 177 176 0 string kind strref 178 m13s26 @@ -53149,8 +53326,8 @@ call 180 pith_cstring_eq bool 2 177 178 iconst 181 1 sub 179 181 180 call 182 pith_cstring_release void 1 178 -brif 179 L3024 L3025 -label L3024 +brif 179 L3038 L3039 +label L3038 iconst 183 1 load 184 trimmed call 185 pith_cstring_release void 1 184 @@ -53163,8 +53340,8 @@ call 191 pith_cstring_release void 1 190 load 192 args call 193 pith_list_release_handle void 1 192 ret 183 -label L3025 -label L3023 +label L3039 +label L3037 load 194 inner_text load 195 trimmed iconst 196 5 @@ -53191,26 +53368,26 @@ call 215 pith_cstring_release void 1 214 load 216 args call 217 pith_list_release_handle void 1 216 ret 207 -label L3020 -label L3018 +label L3034 +label L3032 iconst 218 0 -store __and_218_3029 218 +store __and_218_3043 218 load 219 trimmed strref 220 m13s132 call 221 pith_cstring_starts_with bool 2 219 220 call 222 pith_cstring_release void 1 220 -store __and_218_3029 221 -brif 221 L3029 L3030 -label L3029 +store __and_218_3043 221 +brif 221 L3043 L3044 +label L3043 load 223 trimmed strref 224 m13s95 call 225 pith_cstring_ends_with bool 2 223 224 call 226 pith_cstring_release void 1 224 -store __and_218_3029 225 -label L3030 -load 227 __and_218_3029 -brif 227 L3027 L3028 -label L3027 +store __and_218_3043 225 +label L3044 +load 227 __and_218_3043 +brif 227 L3041 L3042 +label L3041 load 228 actual_info field 229 228 0 string kind strref 230 m13s24 @@ -53218,8 +53395,8 @@ call 232 pith_cstring_eq bool 2 229 230 iconst 233 1 sub 231 233 232 call 234 pith_cstring_release void 1 230 -brif 231 L3032 L3033 -label L3032 +brif 231 L3046 L3047 +label L3046 iconst 235 1 load 236 trimmed call 237 pith_cstring_release void 1 236 @@ -53232,8 +53409,8 @@ call 243 pith_cstring_release void 1 242 load 244 args call 245 pith_list_release_handle void 1 244 ret 235 -label L3033 -label L3031 +label L3047 +label L3045 load 246 inner_text load 247 trimmed iconst 248 8 @@ -53260,26 +53437,26 @@ call 267 pith_cstring_release void 1 266 load 268 args call 269 pith_list_release_handle void 1 268 ret 259 -label L3028 -label L3026 +label L3042 +label L3040 iconst 270 0 -store __and_270_3037 270 +store __and_270_3051 270 load 271 trimmed strref 272 m13s131 call 273 pith_cstring_starts_with bool 2 271 272 call 274 pith_cstring_release void 1 272 -store __and_270_3037 273 -brif 273 L3037 L3038 -label L3037 +store __and_270_3051 273 +brif 273 L3051 L3052 +label L3051 load 275 trimmed strref 276 m13s95 call 277 pith_cstring_ends_with bool 2 275 276 call 278 pith_cstring_release void 1 276 -store __and_270_3037 277 -label L3038 -load 279 __and_270_3037 -brif 279 L3035 L3036 -label L3035 +store __and_270_3051 277 +label L3052 +load 279 __and_270_3051 +brif 279 L3049 L3050 +label L3049 load 280 actual_info field 281 280 0 string kind strref 282 m13s20 @@ -53287,8 +53464,8 @@ call 284 pith_cstring_eq bool 2 281 282 iconst 285 1 sub 283 285 284 call 286 pith_cstring_release void 1 282 -brif 283 L3040 L3041 -label L3040 +brif 283 L3054 L3055 +label L3054 iconst 287 1 load 288 trimmed call 289 pith_cstring_release void 1 288 @@ -53301,8 +53478,8 @@ call 295 pith_cstring_release void 1 294 load 296 args call 297 pith_list_release_handle void 1 296 ret 287 -label L3041 -label L3039 +label L3055 +label L3053 load 298 args load 299 trimmed iconst 300 4 @@ -53319,8 +53496,8 @@ load 309 args call 310 pith_list_len int 1 309 iconst 311 0 gt 312 310 311 -brif 312 L3043 L3044 -label L3043 +brif 312 L3057 L3058 +label L3057 load 313 args iconst 314 0 call 315 pith_list_get_value_strict string 2 313 314 @@ -53330,8 +53507,8 @@ load 318 generic_params call 319 checker_infer_generic_subst_from_type_text bool 3 315 317 318 iconst 320 0 eq 321 319 320 -brif 321 L3046 L3047 -label L3046 +brif 321 L3060 L3061 +label L3060 iconst 322 0 load 323 trimmed call 324 pith_cstring_release void 1 323 @@ -53344,17 +53521,17 @@ call 330 pith_cstring_release void 1 329 load 331 args call 332 pith_list_release_handle void 1 331 ret 322 -label L3047 -label L3045 -jmp L3042 -label L3044 -label L3042 +label L3061 +label L3059 +jmp L3056 +label L3058 +label L3056 load 333 args call 334 pith_list_len int 1 333 iconst 335 1 gt 336 334 335 -brif 336 L3049 L3050 -label L3049 +brif 336 L3063 L3064 +label L3063 load 337 args iconst 338 1 call 339 pith_list_get_value_strict string 2 337 338 @@ -53373,8 +53550,8 @@ call 351 pith_cstring_release void 1 350 load 352 args call 353 pith_list_release_handle void 1 352 ret 343 -label L3050 -label L3048 +label L3064 +label L3062 iconst 354 1 load 355 trimmed call 356 pith_cstring_release void 1 355 @@ -53387,8 +53564,8 @@ call 362 pith_cstring_release void 1 361 load 363 args call 364 pith_list_release_handle void 1 363 ret 354 -label L3036 -label L3034 +label L3050 +label L3048 iconst 365 1 load 366 trimmed call 367 pith_cstring_release void 1 366 @@ -53427,21 +53604,21 @@ store normalized_gp 5 iconst 6 0 store cn 6 iconst 7 0 -store __or_7_3054 7 +store __or_7_3068 7 load 8 type_idx iconst 9 0 lt 10 8 9 -store __or_7_3054 10 -brif 10 L3055 L3054 -label L3054 +store __or_7_3068 10 +brif 10 L3069 L3068 +label L3068 load 11 actual_tid iconst 12 0 lt 13 11 12 -store __or_7_3054 13 -label L3055 -load 14 __or_7_3054 -brif 14 L3052 L3053 -label L3052 +store __or_7_3068 13 +label L3069 +load 14 __or_7_3068 +brif 14 L3066 L3067 +label L3066 iconst 15 1 load 16 node call 17 pith_struct_release void 1 16 @@ -53452,8 +53629,8 @@ call 21 pith_cstring_release void 1 20 load 22 cn call 23 pith_struct_release void 1 22 ret 15 -label L3053 -label L3051 +label L3067 +label L3065 load 24 node load 25 type_idx call 26 ast_get_node struct:Node 1 25 @@ -53464,8 +53641,8 @@ field 29 28 0 string kind strref 30 m13s564 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 -brif 31 L3057 L3058 -label L3057 +brif 31 L3071 L3072 +label L3071 load 33 node field 34 33 8 string value load 35 actual_tid @@ -53480,8 +53657,8 @@ call 43 pith_cstring_release void 1 42 load 44 cn call 45 pith_struct_release void 1 44 ret 37 -label L3058 -label L3056 +label L3072 +label L3070 load 46 actual_info load 47 actual_tid call 48 types_get_type_info struct:TypeInfo 1 47 @@ -53492,20 +53669,20 @@ field 51 50 0 string kind strref 52 m13s563 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 -brif 53 L3060 L3061 -label L3060 +brif 53 L3074 L3075 +label L3074 load 55 generic_params call 56 pith_auto_len int 1 55 iconst 57 0 store __for_idx_161 57 store __for_len_161 56 store __for_iter_161 55 -label L3062 +label L3076 load 58 __for_idx_161 load 59 __for_len_161 lt 60 58 59 -brif 60 L3063 L3065 -label L3063 +brif 60 L3077 L3079 +label L3077 load 61 __for_iter_161 load 62 __for_idx_161 call 63 pith_list_get_value_unchecked string 2 61 62 @@ -53521,8 +53698,8 @@ field 70 69 8 string value call 71 checker_trim_type_text string 1 70 call 72 checker_strings_equal bool 2 68 71 call 73 pith_cstring_release void 1 71 -brif 72 L3067 L3068 -label L3067 +brif 72 L3081 L3082 +label L3081 load 74 normalized_gp load 75 actual_tid call 76 checker_bind_inferred_generic_type bool 2 74 75 @@ -53535,42 +53712,42 @@ call 82 pith_cstring_release void 1 81 load 83 cn call 84 pith_struct_release void 1 83 ret 76 -label L3068 -label L3066 -label L3064 +label L3082 +label L3080 +label L3078 load 85 __for_idx_161 iconst 86 1 add 87 85 86 store __for_idx_161 87 -jmp L3062 -label L3065 +jmp L3076 +label L3079 load 88 node field 89 88 8 string value strref 90 m13s21 call 91 pith_cstring_eq bool 2 89 90 call 92 pith_cstring_release void 1 90 -brif 91 L3070 L3071 -label L3070 +brif 91 L3084 L3085 +label L3084 iconst 93 0 -store __and_93_3075 93 +store __and_93_3089 93 load 94 actual_info field 95 94 0 string kind strref 96 m13s22 call 97 pith_cstring_eq bool 2 95 96 call 98 pith_cstring_release void 1 96 -store __and_93_3075 97 -brif 97 L3075 L3076 -label L3075 +store __and_93_3089 97 +brif 97 L3089 L3090 +label L3089 load 99 node field 100 99 16 list children call 101 pith_list_len int 1 100 iconst 102 0 gt 103 101 102 -store __and_93_3075 103 -label L3076 -load 104 __and_93_3075 -brif 104 L3073 L3074 -label L3073 +store __and_93_3089 103 +label L3090 +load 104 __and_93_3089 +brif 104 L3087 L3088 +label L3087 load 105 node field 106 105 16 list children iconst 107 0 @@ -53588,8 +53765,8 @@ call 118 pith_cstring_release void 1 117 load 119 cn call 120 pith_struct_release void 1 119 ret 112 -label L3074 -label L3072 +label L3088 +label L3086 iconst 121 1 load 122 node call 123 pith_struct_release void 1 122 @@ -53600,35 +53777,35 @@ call 127 pith_cstring_release void 1 126 load 128 cn call 129 pith_struct_release void 1 128 ret 121 -label L3071 -label L3069 +label L3085 +label L3083 load 130 node field 131 130 8 string value strref 132 m13s17 call 133 pith_cstring_eq bool 2 131 132 call 134 pith_cstring_release void 1 132 -brif 133 L3078 L3079 -label L3078 +brif 133 L3092 L3093 +label L3092 iconst 135 0 -store __and_135_3083 135 +store __and_135_3097 135 load 136 actual_info field 137 136 0 string kind strref 138 m13s18 call 139 pith_cstring_eq bool 2 137 138 call 140 pith_cstring_release void 1 138 -store __and_135_3083 139 -brif 139 L3083 L3084 -label L3083 +store __and_135_3097 139 +brif 139 L3097 L3098 +label L3097 load 141 node field 142 141 16 list children call 143 pith_list_len int 1 142 iconst 144 0 gt 145 143 144 -store __and_135_3083 145 -label L3084 -load 146 __and_135_3083 -brif 146 L3081 L3082 -label L3081 +store __and_135_3097 145 +label L3098 +load 146 __and_135_3097 +brif 146 L3095 L3096 +label L3095 load 147 node field 148 147 16 list children iconst 149 0 @@ -53646,8 +53823,8 @@ call 160 pith_cstring_release void 1 159 load 161 cn call 162 pith_struct_release void 1 161 ret 154 -label L3082 -label L3080 +label L3096 +label L3094 iconst 163 1 load 164 node call 165 pith_struct_release void 1 164 @@ -53658,35 +53835,35 @@ call 169 pith_cstring_release void 1 168 load 170 cn call 171 pith_struct_release void 1 170 ret 163 -label L3079 -label L3077 +label L3093 +label L3091 load 172 node field 173 172 8 string value strref 174 m13s25 call 175 pith_cstring_eq bool 2 173 174 call 176 pith_cstring_release void 1 174 -brif 175 L3086 L3087 -label L3086 +brif 175 L3100 L3101 +label L3100 iconst 177 0 -store __and_177_3091 177 +store __and_177_3105 177 load 178 actual_info field 179 178 0 string kind strref 180 m13s26 call 181 pith_cstring_eq bool 2 179 180 call 182 pith_cstring_release void 1 180 -store __and_177_3091 181 -brif 181 L3091 L3092 -label L3091 +store __and_177_3105 181 +brif 181 L3105 L3106 +label L3105 load 183 node field 184 183 16 list children call 185 pith_list_len int 1 184 iconst 186 0 gt 187 185 186 -store __and_177_3091 187 -label L3092 -load 188 __and_177_3091 -brif 188 L3089 L3090 -label L3089 +store __and_177_3105 187 +label L3106 +load 188 __and_177_3105 +brif 188 L3103 L3104 +label L3103 load 189 node field 190 189 16 list children iconst 191 0 @@ -53704,8 +53881,8 @@ call 202 pith_cstring_release void 1 201 load 203 cn call 204 pith_struct_release void 1 203 ret 196 -label L3090 -label L3088 +label L3104 +label L3102 iconst 205 1 load 206 node call 207 pith_struct_release void 1 206 @@ -53716,35 +53893,35 @@ call 211 pith_cstring_release void 1 210 load 212 cn call 213 pith_struct_release void 1 212 ret 205 -label L3087 -label L3085 +label L3101 +label L3099 load 214 node field 215 214 8 string value strref 216 m13s23 call 217 pith_cstring_eq bool 2 215 216 call 218 pith_cstring_release void 1 216 -brif 217 L3094 L3095 -label L3094 +brif 217 L3108 L3109 +label L3108 iconst 219 0 -store __and_219_3099 219 +store __and_219_3113 219 load 220 actual_info field 221 220 0 string kind strref 222 m13s24 call 223 pith_cstring_eq bool 2 221 222 call 224 pith_cstring_release void 1 222 -store __and_219_3099 223 -brif 223 L3099 L3100 -label L3099 +store __and_219_3113 223 +brif 223 L3113 L3114 +label L3113 load 225 node field 226 225 16 list children call 227 pith_list_len int 1 226 iconst 228 0 gt 229 227 228 -store __and_219_3099 229 -label L3100 -load 230 __and_219_3099 -brif 230 L3097 L3098 -label L3097 +store __and_219_3113 229 +label L3114 +load 230 __and_219_3113 +brif 230 L3111 L3112 +label L3111 load 231 node field 232 231 16 list children iconst 233 0 @@ -53762,8 +53939,8 @@ call 244 pith_cstring_release void 1 243 load 245 cn call 246 pith_struct_release void 1 245 ret 238 -label L3098 -label L3096 +label L3112 +label L3110 iconst 247 1 load 248 node call 249 pith_struct_release void 1 248 @@ -53774,35 +53951,35 @@ call 253 pith_cstring_release void 1 252 load 254 cn call 255 pith_struct_release void 1 254 ret 247 -label L3095 -label L3093 +label L3109 +label L3107 load 256 node field 257 256 8 string value strref 258 m13s19 call 259 pith_cstring_eq bool 2 257 258 call 260 pith_cstring_release void 1 258 -brif 259 L3102 L3103 -label L3102 +brif 259 L3116 L3117 +label L3116 iconst 261 0 -store __and_261_3107 261 +store __and_261_3121 261 load 262 actual_info field 263 262 0 string kind strref 264 m13s20 call 265 pith_cstring_eq bool 2 263 264 call 266 pith_cstring_release void 1 264 -store __and_261_3107 265 -brif 265 L3107 L3108 -label L3107 +store __and_261_3121 265 +brif 265 L3121 L3122 +label L3121 load 267 node field 268 267 16 list children call 269 pith_list_len int 1 268 iconst 270 1 gt 271 269 270 -store __and_261_3107 271 -label L3108 -load 272 __and_261_3107 -brif 272 L3105 L3106 -label L3105 +store __and_261_3121 271 +label L3122 +load 272 __and_261_3121 +brif 272 L3119 L3120 +label L3119 load 273 node field 274 273 16 list children iconst 275 0 @@ -53813,8 +53990,8 @@ load 279 generic_params call 280 checker_infer_generic_subst_from_type_node bool 3 276 278 279 iconst 281 0 eq 282 280 281 -brif 282 L3110 L3111 -label L3110 +brif 282 L3124 L3125 +label L3124 iconst 283 0 load 284 node call 285 pith_struct_release void 1 284 @@ -53825,8 +54002,8 @@ call 289 pith_cstring_release void 1 288 load 290 cn call 291 pith_struct_release void 1 290 ret 283 -label L3111 -label L3109 +label L3125 +label L3123 load 292 node field 293 292 16 list children iconst 294 1 @@ -53844,8 +54021,8 @@ call 305 pith_cstring_release void 1 304 load 306 cn call 307 pith_struct_release void 1 306 ret 299 -label L3106 -label L3104 +label L3120 +label L3118 iconst 308 1 load 309 node call 310 pith_struct_release void 1 309 @@ -53856,8 +54033,8 @@ call 314 pith_cstring_release void 1 313 load 315 cn call 316 pith_struct_release void 1 315 ret 308 -label L3103 -label L3101 +label L3117 +label L3115 iconst 317 1 load 318 node call 319 pith_struct_release void 1 318 @@ -53868,35 +54045,35 @@ call 323 pith_cstring_release void 1 322 load 324 cn call 325 pith_struct_release void 1 324 ret 317 -label L3061 -label L3059 +label L3075 +label L3073 load 326 node field 327 326 0 string kind strref 328 m13s562 call 329 pith_cstring_eq bool 2 327 328 call 330 pith_cstring_release void 1 328 -brif 329 L3113 L3114 -label L3113 +brif 329 L3127 L3128 +label L3127 iconst 331 0 -store __and_331_3118 331 +store __and_331_3132 331 load 332 actual_info field 333 332 0 string kind strref 334 m13s29 call 335 pith_cstring_eq bool 2 333 334 call 336 pith_cstring_release void 1 334 -store __and_331_3118 335 -brif 335 L3118 L3119 -label L3118 +store __and_331_3132 335 +brif 335 L3132 L3133 +label L3132 load 337 node field 338 337 16 list children call 339 pith_list_len int 1 338 iconst 340 0 gt 341 339 340 -store __and_331_3118 341 -label L3119 -load 342 __and_331_3118 -brif 342 L3116 L3117 -label L3116 +store __and_331_3132 341 +label L3133 +load 342 __and_331_3132 +brif 342 L3130 L3131 +label L3130 load 343 node field 344 343 16 list children iconst 345 0 @@ -53914,8 +54091,8 @@ call 356 pith_cstring_release void 1 355 load 357 cn call 358 pith_struct_release void 1 357 ret 350 -label L3117 -label L3115 +label L3131 +label L3129 iconst 359 1 load 360 node call 361 pith_struct_release void 1 360 @@ -53926,35 +54103,35 @@ call 365 pith_cstring_release void 1 364 load 366 cn call 367 pith_struct_release void 1 366 ret 359 -label L3114 -label L3112 +label L3128 +label L3126 load 368 node field 369 368 0 string kind strref 370 m13s561 call 371 pith_cstring_eq bool 2 369 370 call 372 pith_cstring_release void 1 370 -brif 371 L3121 L3122 -label L3121 +brif 371 L3135 L3136 +label L3135 iconst 373 0 -store __and_373_3126 373 +store __and_373_3140 373 load 374 actual_info field 375 374 0 string kind strref 376 m13s28 call 377 pith_cstring_eq bool 2 375 376 call 378 pith_cstring_release void 1 376 -store __and_373_3126 377 -brif 377 L3126 L3127 -label L3126 +store __and_373_3140 377 +brif 377 L3140 L3141 +label L3140 load 379 node field 380 379 16 list children call 381 pith_list_len int 1 380 iconst 382 0 gt 383 381 382 -store __and_373_3126 383 -label L3127 -load 384 __and_373_3126 -brif 384 L3124 L3125 -label L3124 +store __and_373_3140 383 +label L3141 +load 384 __and_373_3140 +brif 384 L3138 L3139 +label L3138 load 385 node field 386 385 16 list children iconst 387 0 @@ -53965,8 +54142,8 @@ load 391 generic_params call 392 checker_infer_generic_subst_from_type_node bool 3 388 390 391 iconst 393 0 eq 394 392 393 -brif 394 L3129 L3130 -label L3129 +brif 394 L3143 L3144 +label L3143 iconst 395 0 load 396 node call 397 pith_struct_release void 1 396 @@ -53977,27 +54154,27 @@ call 401 pith_cstring_release void 1 400 load 402 cn call 403 pith_struct_release void 1 402 ret 395 -label L3130 -label L3128 +label L3144 +label L3142 iconst 404 0 -store __and_404_3134 404 +store __and_404_3148 404 load 405 node field 406 405 16 list children call 407 pith_list_len int 1 406 iconst 408 1 gt 409 407 408 -store __and_404_3134 409 -brif 409 L3134 L3135 -label L3134 +store __and_404_3148 409 +brif 409 L3148 L3149 +label L3148 load 410 actual_info field 411 410 80 int value_type iconst 412 0 gte 413 411 412 -store __and_404_3134 413 -label L3135 -load 414 __and_404_3134 -brif 414 L3132 L3133 -label L3132 +store __and_404_3148 413 +label L3149 +load 414 __and_404_3148 +brif 414 L3146 L3147 +label L3146 load 415 node field 416 415 16 list children iconst 417 1 @@ -54015,11 +54192,11 @@ call 428 pith_cstring_release void 1 427 load 429 cn call 430 pith_struct_release void 1 429 ret 422 -label L3133 -label L3131 -jmp L3123 -label L3125 -label L3123 +label L3147 +label L3145 +jmp L3137 +label L3139 +label L3137 iconst 431 1 load 432 node call 433 pith_struct_release void 1 432 @@ -54030,22 +54207,22 @@ call 437 pith_cstring_release void 1 436 load 438 cn call 439 pith_struct_release void 1 438 ret 431 -label L3122 -label L3120 +label L3136 +label L3134 load 440 node field 441 440 0 string kind strref 442 m13s560 call 443 pith_cstring_eq bool 2 441 442 call 444 pith_cstring_release void 1 442 -brif 443 L3137 L3138 -label L3137 +brif 443 L3151 L3152 +label L3151 load 445 actual_info field 446 445 0 string kind strref 447 m13s27 call 448 pith_cstring_eq bool 2 446 447 call 449 pith_cstring_release void 1 447 -brif 448 L3140 L3141 -label L3140 +brif 448 L3154 L3155 +label L3154 load 450 node field 451 450 16 list children call 452 pith_auto_len int 1 451 @@ -54053,12 +54230,12 @@ iconst 453 0 store __for_idx_162 453 store __for_len_162 452 store __for_iter_162 451 -label L3142 +label L3156 load 454 __for_idx_162 load 455 __for_len_162 lt 456 454 455 -brif 456 L3143 L3145 -label L3143 +brif 456 L3157 L3159 +label L3157 load 457 __for_iter_162 load 458 __for_idx_162 call 459 pith_list_get_value unknown 2 457 458 @@ -54070,8 +54247,8 @@ load 462 actual_info field 463 462 88 list elements call 464 pith_list_len int 1 463 lt 465 461 464 -brif 465 L3147 L3148 -label L3147 +brif 465 L3161 L3162 +label L3161 load 466 __loopvar_162_child load 467 actual_info field 468 467 88 list elements @@ -54081,8 +54258,8 @@ load 471 generic_params call 472 checker_infer_generic_subst_from_type_node bool 3 466 470 471 iconst 473 0 eq 474 472 473 -brif 474 L3150 L3151 -label L3150 +brif 474 L3164 L3165 +label L3164 iconst 475 0 load 476 node call 477 pith_struct_release void 1 476 @@ -54093,21 +54270,21 @@ call 481 pith_cstring_release void 1 480 load 482 cn call 483 pith_struct_release void 1 482 ret 475 -label L3151 -label L3149 -jmp L3146 -label L3148 -label L3146 -label L3144 +label L3165 +label L3163 +jmp L3160 +label L3162 +label L3160 +label L3158 load 484 __for_idx_162 iconst 485 1 add 486 484 485 store __for_idx_162 486 -jmp L3142 -label L3145 -jmp L3139 -label L3141 -label L3139 +jmp L3156 +label L3159 +jmp L3153 +label L3155 +label L3153 iconst 487 1 load 488 node call 489 pith_struct_release void 1 488 @@ -54118,22 +54295,22 @@ call 493 pith_cstring_release void 1 492 load 494 cn call 495 pith_struct_release void 1 494 ret 487 -label L3138 -label L3136 +label L3152 +label L3150 load 496 node field 497 496 0 string kind strref 498 m13s559 call 499 pith_cstring_eq bool 2 497 498 call 500 pith_cstring_release void 1 498 -brif 499 L3153 L3154 -label L3153 +brif 499 L3167 L3168 +label L3167 load 501 actual_info field 502 501 0 string kind strref 503 m13s31 call 504 pith_cstring_eq bool 2 502 503 call 505 pith_cstring_release void 1 503 -brif 504 L3156 L3157 -label L3156 +brif 504 L3170 L3171 +label L3170 load 506 node field 507 506 16 list children call 508 pith_auto_len int 1 507 @@ -54141,12 +54318,12 @@ iconst 509 0 store __for_idx_163 509 store __for_len_163 508 store __for_iter_163 507 -label L3158 +label L3172 load 510 __for_idx_163 load 511 __for_len_163 lt 512 510 511 -brif 512 L3159 L3161 -label L3159 +brif 512 L3173 L3175 +label L3173 load 513 __for_iter_163 load 514 __for_idx_163 call 515 pith_list_get_value unknown 2 513 514 @@ -54163,15 +54340,15 @@ field 522 521 0 string kind strref 523 m13s323 call 524 pith_cstring_eq bool 2 522 523 call 525 pith_cstring_release void 1 523 -brif 524 L3163 L3164 -label L3163 +brif 524 L3177 L3178 +label L3177 load 526 __loopvar_163_i load 527 actual_info field 528 527 48 list param_types call 529 pith_list_len int 1 528 lt 530 526 529 -brif 530 L3166 L3167 -label L3166 +brif 530 L3180 L3181 +label L3180 load 531 cn field 532 531 16 list children iconst 533 0 @@ -54184,8 +54361,8 @@ load 539 generic_params call 540 checker_infer_generic_subst_from_type_node bool 3 534 538 539 iconst 541 0 eq 542 540 541 -brif 542 L3169 L3170 -label L3169 +brif 542 L3183 L3184 +label L3183 iconst 543 0 load 544 node call 545 pith_struct_release void 1 544 @@ -54196,28 +54373,28 @@ call 549 pith_cstring_release void 1 548 load 550 cn call 551 pith_struct_release void 1 550 ret 543 -label L3170 -label L3168 -jmp L3165 -label L3167 -label L3165 -jmp L3160 -label L3164 -label L3162 +label L3184 +label L3182 +jmp L3179 +label L3181 +label L3179 +jmp L3174 +label L3178 +label L3176 load 552 cn field 553 552 0 string kind strref 554 m13s555 call 555 pith_cstring_eq bool 2 553 554 call 556 pith_cstring_release void 1 554 -brif 555 L3172 L3173 -label L3172 +brif 555 L3186 L3187 +label L3186 load 557 cn field 558 557 16 list children call 559 pith_list_len int 1 558 iconst 560 0 gt 561 559 560 -brif 561 L3175 L3176 -label L3175 +brif 561 L3189 L3190 +label L3189 load 562 cn field 563 562 16 list children iconst 564 0 @@ -54235,21 +54412,21 @@ call 575 pith_cstring_release void 1 574 load 576 cn call 577 pith_struct_release void 1 576 ret 569 -label L3176 +label L3190 +label L3188 +jmp L3185 +label L3187 +label L3185 label L3174 -jmp L3171 -label L3173 -label L3171 -label L3160 load 578 __for_idx_163 iconst 579 1 add 580 578 579 store __for_idx_163 580 -jmp L3158 -label L3161 -jmp L3155 -label L3157 -label L3155 +jmp L3172 +label L3175 +jmp L3169 +label L3171 +label L3169 iconst 581 1 load 582 node call 583 pith_struct_release void 1 582 @@ -54260,8 +54437,8 @@ call 587 pith_cstring_release void 1 586 load 588 cn call 589 pith_struct_release void 1 588 ret 581 -label L3154 -label L3152 +label L3168 +label L3166 iconst 590 1 load 591 node call 592 pith_struct_release void 1 591 @@ -54332,12 +54509,12 @@ iconst 29 0 store __for_idx_164 29 store __for_len_164 28 store __for_iter_164 27 -label L3177 +label L3191 load 30 __for_idx_164 load 31 __for_len_164 lt 32 30 31 -brif 32 L3178 L3180 -label L3178 +brif 32 L3192 L3194 +label L3192 load 33 __for_iter_164 load 34 __for_idx_164 call 35 pith_list_get_value unknown 2 33 34 @@ -54354,38 +54531,38 @@ field 42 41 0 string kind strref 43 m13s298 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 -brif 44 L3182 L3183 -label L3182 +brif 44 L3196 L3197 +label L3196 load 46 arg_node field 47 46 16 list children call 48 pith_list_len int 1 47 iconst 49 0 gt 50 48 49 -brif 50 L3185 L3186 -label L3185 +brif 50 L3199 L3200 +label L3199 load 51 arg_node field 52 51 16 list children iconst 53 0 call 54 pith_list_get_value_strict int 2 52 53 store arg_expr 54 -jmp L3184 -label L3186 -label L3184 -jmp L3181 -label L3183 -label L3181 +jmp L3198 +label L3200 +label L3198 +jmp L3195 +label L3197 +label L3195 load 55 arg_types load 56 arg_expr load 57 scope_id call 58 checker_c_check_expr int 2 56 57 call 59 pith_list_push_value void 2 55 58 -label L3179 +label L3193 load 60 __for_idx_164 iconst 61 1 add 62 60 61 store __for_idx_164 62 -jmp L3177 -label L3180 +jmp L3191 +label L3194 load 63 param_type_nodes call 64 pith_list_new_default list 0 call 65 pith_list_release_handle void 1 63 @@ -54397,12 +54574,12 @@ iconst 69 0 store __for_idx_165 69 store __for_len_165 68 store __for_iter_165 67 -label L3187 +label L3201 load 70 __for_idx_165 load 71 __for_len_165 lt 72 70 71 -brif 72 L3188 L3190 -label L3188 +brif 72 L3202 L3204 +label L3202 load 73 __for_iter_165 load 74 __for_idx_165 call 75 pith_list_get_value unknown 2 73 74 @@ -54417,46 +54594,46 @@ field 81 80 0 string kind strref 82 m13s323 call 83 pith_cstring_eq bool 2 81 82 call 84 pith_cstring_release void 1 82 -brif 83 L3192 L3193 -label L3192 +brif 83 L3206 L3207 +label L3206 load 85 cn field 86 85 16 list children call 87 pith_list_len int 1 86 iconst 88 0 gt 89 87 88 -brif 89 L3195 L3196 -label L3195 +brif 89 L3209 L3210 +label L3209 load 90 param_type_nodes load 91 cn field 92 91 16 list children iconst 93 0 call 94 pith_list_get_value_strict int 2 92 93 call 95 pith_list_push_value void 2 90 94 -jmp L3194 -label L3196 +jmp L3208 +label L3210 load 96 param_type_nodes iconst 97 1 iconst 99 0 sub 98 99 97 call 100 pith_list_push_value void 2 96 98 -label L3194 -jmp L3191 -label L3193 -label L3191 -label L3189 +label L3208 +jmp L3205 +label L3207 +label L3205 +label L3203 load 101 __for_idx_165 iconst 102 1 add 103 101 102 store __for_idx_165 103 -jmp L3187 -label L3190 +jmp L3201 +label L3204 load 104 arg_types call 105 pith_list_len int 1 104 load 106 param_type_nodes call 107 pith_list_len int 1 106 neq 108 105 107 -brif 108 L3198 L3199 -label L3198 +brif 108 L3212 L3213 +label L3212 strref 109 m13s307 strref 110 m13s558 load 111 param_type_nodes @@ -54502,8 +54679,8 @@ call 150 pith_list_release_handle void 1 149 load 151 pnode call 152 pith_struct_release void 1 151 ret 130 -label L3199 -label L3197 +label L3213 +label L3211 call 153 pith_map_new_default map 0 store checker_generic_inference_subst 153 iconst 154 0 @@ -54514,33 +54691,33 @@ iconst 157 0 store __for_idx_166 157 store __for_len_166 156 store __for_iter_166 155 -label L3200 +label L3214 load 158 __for_idx_166 load 159 __for_len_166 lt 160 158 159 -brif 160 L3201 L3203 -label L3201 +brif 160 L3215 L3217 +label L3215 load 161 __for_iter_166 load 162 __for_idx_166 call 163 pith_list_get_value unknown 2 161 162 store __loopvar_166_ptn 163 iconst 164 0 -store __and_164_3207 164 +store __and_164_3221 164 load 165 __loopvar_166_ptn iconst 166 0 gte 167 165 166 -store __and_164_3207 167 -brif 167 L3207 L3208 -label L3207 +store __and_164_3221 167 +brif 167 L3221 L3222 +label L3221 load 168 pidx load 169 arg_types call 170 pith_list_len int 1 169 lt 171 168 170 -store __and_164_3207 171 -label L3208 -load 172 __and_164_3207 -brif 172 L3205 L3206 -label L3205 +store __and_164_3221 171 +label L3222 +load 172 __and_164_3221 +brif 172 L3219 L3220 +label L3219 load 173 __loopvar_166_ptn load 174 arg_types load 175 pidx @@ -54549,8 +54726,8 @@ load 177 generic_params call 178 checker_infer_generic_subst_from_type_node bool 3 173 176 177 iconst 179 0 eq 180 178 179 -brif 180 L3210 L3211 -label L3210 +brif 180 L3224 L3225 +label L3224 load 181 types_TID_ERR load 182 decl_node call 183 pith_struct_release void 1 182 @@ -54575,22 +54752,22 @@ call 201 pith_list_release_handle void 1 200 load 202 pnode call 203 pith_struct_release void 1 202 ret 181 -label L3211 -label L3209 -jmp L3204 -label L3206 -label L3204 +label L3225 +label L3223 +jmp L3218 +label L3220 +label L3218 load 204 pidx iconst 205 1 add 206 204 205 store pidx 206 -label L3202 +label L3216 load 207 __for_idx_166 iconst 208 1 add 209 207 208 store __for_idx_166 209 -jmp L3200 -label L3203 +jmp L3214 +label L3217 load 210 decl_node load 211 generic_params call 212 checker_infer_subst_from_bounds void 2 210 211 @@ -54606,12 +54783,12 @@ iconst 219 0 store __for_idx_167 219 store __for_len_167 218 store __for_iter_167 217 -label L3212 +label L3226 load 220 __for_idx_167 load 221 __for_len_167 lt 222 220 221 -brif 222 L3213 L3215 -label L3213 +brif 222 L3227 L3229 +label L3227 load 223 __for_iter_167 load 224 __for_idx_167 call 225 pith_list_get_value_unchecked string 2 223 224 @@ -54624,15 +54801,15 @@ store normalized_gp 228 load 230 checker_generic_inference_subst load 231 normalized_gp call 232 contains_key bool 2 230 231 -brif 232 L3217 L3218 -label L3217 +brif 232 L3231 L3232 +label L3231 load 233 subst_args load 234 checker_generic_inference_subst load 235 normalized_gp call 236 map_get_strict int 2 234 235 call 237 pith_list_push_value void 2 233 236 -jmp L3216 -label L3218 +jmp L3230 +label L3232 iconst 238 0 store all_inferred 238 load 239 debug_args @@ -54645,12 +54822,12 @@ iconst 244 0 store __for_idx_168 244 store __for_len_168 243 store __for_iter_168 242 -label L3219 +label L3233 load 245 __for_idx_168 load 246 __for_len_168 lt 247 245 246 -brif 247 L3220 L3222 -label L3220 +brif 247 L3234 L3236 +label L3234 load 248 __for_iter_168 load 249 __for_idx_168 call 250 pith_list_get_value unknown 2 248 249 @@ -54659,13 +54836,13 @@ load 251 debug_args load 252 __loopvar_168_arg_tid call 253 types_get_type_name string 1 252 call 254 pith_list_push_value_owned void 2 251 253 -label L3221 +label L3235 load 255 __for_idx_168 iconst 256 1 add 257 255 256 store __for_idx_168 257 -jmp L3219 -label L3222 +jmp L3233 +label L3236 load 258 debug_params call 259 pith_list_new_cstr list 0 call 260 pith_list_release_handle void 1 258 @@ -54676,12 +54853,12 @@ iconst 263 0 store __for_idx_169 263 store __for_len_169 262 store __for_iter_169 261 -label L3223 +label L3237 load 264 __for_idx_169 load 265 __for_len_169 lt 266 264 265 -brif 266 L3224 L3226 -label L3224 +brif 266 L3238 L3240 +label L3238 load 267 __for_iter_169 load 268 __for_idx_169 call 269 pith_list_get_value unknown 2 267 268 @@ -54689,8 +54866,8 @@ store __loopvar_169_ptn 269 load 270 __loopvar_169_ptn iconst 271 0 gte 272 270 271 -brif 272 L3228 L3229 -label L3228 +brif 272 L3242 L3243 +label L3242 load 273 pnode load 274 __loopvar_169_ptn call 275 ast_get_node struct:Node 1 274 @@ -54707,16 +54884,16 @@ field 284 283 8 string value concat 285 281 284 call 286 pith_cstring_release void 1 281 call 287 pith_list_push_value_owned void 2 277 285 -jmp L3227 -label L3229 -label L3227 -label L3225 +jmp L3241 +label L3243 +label L3241 +label L3239 load 288 __for_idx_169 iconst 289 1 add 290 288 289 store __for_idx_169 290 -jmp L3223 -label L3226 +jmp L3237 +label L3240 strref 291 m13s557 strref 292 m13s556 load 293 __loopvar_167_gp @@ -54749,21 +54926,21 @@ call 319 pith_list_release_handle void 1 318 load 320 pnode call 321 pith_struct_release void 1 320 ret 299 -label L3216 -label L3214 +label L3230 +label L3228 load 322 __for_idx_167 iconst 323 1 add 324 322 323 store __for_idx_167 324 -jmp L3212 -label L3215 +jmp L3226 +label L3229 load 325 decl_idx load 326 checker_generic_inference_subst call 327 checker_check_type_parameter_bounds bool 2 325 326 iconst 328 0 eq 329 327 328 -brif 329 L3231 L3232 -label L3231 +brif 329 L3245 L3246 +label L3245 load 330 types_TID_ERR load 331 decl_node call 332 pith_struct_release void 1 331 @@ -54788,8 +54965,8 @@ call 350 pith_list_release_handle void 1 349 load 351 pnode call 352 pith_struct_release void 1 351 ret 330 -label L3232 -label L3230 +label L3246 +label L3244 load 353 types_TID_VOID store ret_type 353 load 354 decl_node @@ -54799,12 +54976,12 @@ iconst 357 0 store __for_idx_170 357 store __for_len_170 356 store __for_iter_170 355 -label L3233 +label L3247 load 358 __for_idx_170 load 359 __for_len_170 lt 360 358 359 -brif 360 L3234 L3236 -label L3234 +brif 360 L3248 L3250 +label L3248 load 361 __for_iter_170 load 362 __for_idx_170 call 363 pith_list_get_value unknown 2 361 362 @@ -54819,8 +54996,8 @@ field 369 368 0 string kind strref 370 m13s555 call 371 pith_cstring_eq bool 2 369 370 call 372 pith_cstring_release void 1 370 -brif 371 L3238 L3239 -label L3238 +brif 371 L3252 L3253 +label L3252 load 373 cn field 374 373 16 list children iconst 375 0 @@ -54829,16 +55006,16 @@ load 377 generic_params load 378 subst_args call 379 checker_resolve_type_with_substitution_map int 3 376 377 378 store ret_type 379 -jmp L3237 -label L3239 -label L3237 -label L3235 +jmp L3251 +label L3253 +label L3251 +label L3249 load 380 __for_idx_170 iconst 381 1 add 382 380 381 store __for_idx_170 382 -jmp L3233 -label L3236 +jmp L3247 +label L3250 iconst 383 0 store vidx 383 load 384 param_type_nodes @@ -54847,12 +55024,12 @@ iconst 386 0 store __for_idx_171 386 store __for_len_171 385 store __for_iter_171 384 -label L3240 +label L3254 load 387 __for_idx_171 load 388 __for_len_171 lt 389 387 388 -brif 389 L3241 L3243 -label L3241 +brif 389 L3255 L3257 +label L3255 load 390 __for_iter_171 load 391 __for_idx_171 call 392 pith_list_get_value unknown 2 390 391 @@ -54860,14 +55037,14 @@ store __loopvar_171_ptn 392 load 393 __loopvar_171_ptn iconst 394 0 gte 395 393 394 -brif 395 L3245 L3246 -label L3245 +brif 395 L3259 L3260 +label L3259 load 396 vidx load 397 arg_types call 398 pith_list_len int 1 397 lt 399 396 398 -brif 399 L3248 L3249 -label L3248 +brif 399 L3262 L3263 +label L3262 load 400 __loopvar_171_ptn load 401 generic_params load 402 subst_args @@ -54877,23 +55054,23 @@ load 404 concrete call 405 types_is_error_type bool 1 404 iconst 406 0 eq 407 405 406 -brif 407 L3251 L3252 -label L3251 +brif 407 L3265 L3266 +label L3265 load 408 arg_types load 409 vidx call 410 pith_list_get_value_strict int 2 408 409 call 411 types_is_error_type bool 1 410 iconst 412 0 eq 413 411 412 -brif 413 L3254 L3255 -label L3254 +brif 413 L3268 L3269 +label L3268 load 414 arg_types load 415 vidx call 416 pith_list_get_value_strict int 2 414 415 load 417 concrete neq 418 416 417 -brif 418 L3257 L3258 -label L3257 +brif 418 L3271 L3272 +label L3271 load 419 arg_types load 420 vidx call 421 pith_list_get_value_strict int 2 419 420 @@ -54901,8 +55078,8 @@ load 422 concrete call 423 checker_types_structurally_equal bool 2 421 422 iconst 424 0 eq 425 423 424 -brif 425 L3260 L3261 -label L3260 +brif 425 L3274 L3275 +label L3274 strref 426 m13s304 strref 427 m13s443 load 428 concrete @@ -54924,35 +55101,35 @@ call 443 pith_cstring_release void 1 440 call 444 checker_diagnostics_report_error void 2 426 441 call 445 pith_cstring_release void 1 426 call 446 pith_cstring_release void 1 441 -jmp L3259 +jmp L3273 +label L3275 +label L3273 +jmp L3270 +label L3272 +label L3270 +jmp L3267 +label L3269 +label L3267 +jmp L3264 +label L3266 +label L3264 +jmp L3261 +label L3263 label L3261 -label L3259 -jmp L3256 +jmp L3258 +label L3260 label L3258 -label L3256 -jmp L3253 -label L3255 -label L3253 -jmp L3250 -label L3252 -label L3250 -jmp L3247 -label L3249 -label L3247 -jmp L3244 -label L3246 -label L3244 load 447 vidx iconst 448 1 add 449 447 448 store vidx 449 -label L3242 +label L3256 load 450 __for_idx_171 iconst 451 1 add 452 450 451 store __for_idx_171 452 -jmp L3240 -label L3243 +jmp L3254 +label L3257 load 453 ret_type load 454 decl_node call 455 pith_struct_release void 1 454 @@ -55021,12 +55198,12 @@ iconst 11 0 store __for_idx_172 11 store __for_len_172 10 store __for_iter_172 9 -label L3262 +label L3276 load 12 __for_idx_172 load 13 __for_len_172 lt 14 12 13 -brif 14 L3263 L3265 -label L3263 +brif 14 L3277 L3279 +label L3277 load 15 __for_iter_172 load 16 __for_idx_172 call 17 pith_list_get_value unknown 2 15 16 @@ -55041,15 +55218,15 @@ field 23 22 0 string kind strref 24 m13s323 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 -brif 25 L3267 L3268 -label L3267 +brif 25 L3281 L3282 +label L3281 load 27 cn field 28 27 16 list children call 29 pith_list_len int 1 28 iconst 30 0 gt 31 29 30 -brif 31 L3270 L3271 -label L3270 +brif 31 L3284 L3285 +label L3284 load 32 out load 33 cn field 34 33 16 list children @@ -55059,22 +55236,22 @@ load 37 params load 38 args call 39 checker_resolve_type_with_substitution_map int 3 36 37 38 call 40 pith_list_push_value void 2 32 39 -jmp L3269 -label L3271 +jmp L3283 +label L3285 load 41 out load 42 types_TID_ERR call 43 pith_list_push_value void 2 41 42 -label L3269 -jmp L3266 -label L3268 -label L3266 -label L3264 +label L3283 +jmp L3280 +label L3282 +label L3280 +label L3278 load 44 __for_idx_172 iconst 45 1 add 46 44 45 store __for_idx_172 46 -jmp L3262 -label L3265 +jmp L3276 +label L3279 load 47 out load 48 cn call 49 pith_struct_release void 1 48 @@ -55099,12 +55276,12 @@ iconst 7 0 store __for_idx_173 7 store __for_len_173 6 store __for_iter_173 5 -label L3272 +label L3286 load 8 __for_idx_173 load 9 __for_len_173 lt 10 8 9 -brif 10 L3273 L3275 -label L3273 +brif 10 L3287 L3289 +label L3287 load 11 __for_iter_173 load 12 __for_idx_173 call 13 pith_list_get_value unknown 2 11 12 @@ -55119,15 +55296,15 @@ field 19 18 0 string kind strref 20 m13s555 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 -brif 21 L3277 L3278 -label L3277 +brif 21 L3291 L3292 +label L3291 load 23 cn field 24 23 16 list children call 25 pith_list_len int 1 24 iconst 26 0 gt 27 25 26 -brif 27 L3280 L3281 -label L3280 +brif 27 L3294 L3295 +label L3294 load 28 cn field 29 28 16 list children iconst 30 0 @@ -55138,18 +55315,18 @@ call 34 checker_resolve_type_with_substitution_map int 3 31 32 33 load 35 cn call 36 pith_struct_release void 1 35 ret 34 -label L3281 -label L3279 -jmp L3276 -label L3278 -label L3276 -label L3274 +label L3295 +label L3293 +jmp L3290 +label L3292 +label L3290 +label L3288 load 37 __for_idx_173 iconst 38 1 add 39 37 38 store __for_idx_173 39 -jmp L3272 -label L3275 +jmp L3286 +label L3289 load 40 types_TID_VOID load 41 cn call 42 pith_struct_release void 1 41 @@ -55169,25 +55346,25 @@ call 4 ast_get_node struct:Node 1 3 call 5 pith_struct_release void 1 2 store arg_node 4 iconst 6 0 -store __and_6_3285 6 +store __and_6_3299 6 load 7 arg_node field 8 7 0 string kind strref 9 m13s298 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 -store __and_6_3285 10 -brif 10 L3285 L3286 -label L3285 +store __and_6_3299 10 +brif 10 L3299 L3300 +label L3299 load 12 arg_node field 13 12 16 list children call 14 pith_list_len int 1 13 iconst 15 0 gt 16 14 15 -store __and_6_3285 16 -label L3286 -load 17 __and_6_3285 -brif 17 L3283 L3284 -label L3283 +store __and_6_3299 16 +label L3300 +load 17 __and_6_3299 +brif 17 L3297 L3298 +label L3297 load 18 arg_node field 19 18 16 list children iconst 20 0 @@ -55195,8 +55372,8 @@ call 21 pith_list_get_value_strict int 2 19 20 load 22 arg_node call 23 pith_struct_release void 1 22 ret 21 -label L3284 -label L3282 +label L3298 +label L3296 load 24 arg_idx load 25 arg_node call 26 pith_struct_release void 1 25 @@ -55231,8 +55408,8 @@ load 18 arg_indices call 19 pith_list_len int 1 18 iconst 20 0 gt 21 19 20 -brif 21 L3288 L3289 -label L3288 +brif 21 L3302 L3303 +label L3302 load 22 arg_indices iconst 23 0 call 24 pith_list_get_value_strict int 2 22 23 @@ -55244,8 +55421,8 @@ load 28 recv_type call 29 types_is_error_type bool 1 28 iconst 30 0 eq 31 29 30 -brif 31 L3291 L3292 -label L3291 +brif 31 L3305 L3306 +label L3305 load 32 checker_method_type_map load 33 recv_type call 34 types_get_type_name string 1 33 @@ -55258,8 +55435,8 @@ concat 40 36 39 call 41 pith_cstring_release void 1 36 call 42 contains_key bool 2 32 40 call 43 pith_cstring_release void 1 40 -brif 42 L3294 L3295 -label L3294 +brif 42 L3308 L3309 +label L3308 strref 44 m13s550 load 45 message strref 46 m13s349 @@ -55293,14 +55470,14 @@ load 73 message call 74 pith_cstring_release void 1 73 iconst 75 0 ret 75 -label L3295 -label L3293 -jmp L3290 -label L3292 -label L3290 -jmp L3287 -label L3289 -label L3287 +label L3309 +label L3307 +jmp L3304 +label L3306 +label L3304 +jmp L3301 +label L3303 +label L3301 strref 76 m13s550 load 77 message call 78 checker_diagnostics_report_error void 2 76 77 @@ -55325,27 +55502,27 @@ store binding_index 8 load 9 binding_index iconst 10 0 lt 11 9 10 -brif 11 L3297 L3298 -label L3297 +brif 11 L3311 L3312 +label L3311 load 12 types_TID_ERR load 13 literal_kind call 14 pith_cstring_release void 1 13 ret 12 -label L3298 -label L3296 +label L3312 +label L3310 load 15 checker_open_empty_literal_bindings load 16 binding_index call 17 map_contains_ikey bool 2 15 16 iconst 18 0 eq 19 17 18 -brif 19 L3300 L3301 -label L3300 +brif 19 L3314 L3315 +label L3314 load 20 types_TID_ERR load 21 literal_kind call 22 pith_cstring_release void 1 21 ret 20 -label L3301 -label L3299 +label L3315 +label L3313 load 23 checker_open_empty_literal_bindings load 24 binding_index call 25 map_get_ikey_strict int 2 23 24 @@ -55360,35 +55537,35 @@ store literal_kind 29 load 32 types_TID_ERR store refined 32 iconst 33 0 -store __and_33_3305 33 +store __and_33_3319 33 iconst 34 0 -store __and_34_3305 34 +store __and_34_3319 34 load 35 literal_kind strref 36 m13s22 call 37 pith_cstring_eq bool 2 35 36 call 38 pith_cstring_release void 1 36 -store __and_34_3305 37 -brif 37 L3305 L3306 -label L3305 +store __and_34_3319 37 +brif 37 L3319 L3320 +label L3319 load 39 method strref 40 m13s512 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 -store __and_34_3305 41 -label L3306 -load 43 __and_34_3305 -store __and_33_3305 43 -brif 43 L3307 L3308 -label L3307 +store __and_34_3319 41 +label L3320 +load 43 __and_34_3319 +store __and_33_3319 43 +brif 43 L3321 L3322 +label L3321 load 44 args call 45 pith_list_len int 1 44 iconst 46 1 eq 47 45 46 -store __and_33_3305 47 -label L3308 -load 48 __and_33_3305 -brif 48 L3303 L3304 -label L3303 +store __and_33_3319 47 +label L3322 +load 48 __and_33_3319 +brif 48 L3317 L3318 +label L3317 load 49 args iconst 50 0 call 51 pith_list_get_value_strict int 2 49 50 @@ -55400,46 +55577,46 @@ load 55 elem call 56 types_is_error_type bool 1 55 iconst 57 0 eq 58 56 57 -brif 58 L3310 L3311 -label L3310 +brif 58 L3324 L3325 +label L3324 load 59 elem call 60 checker_type_intern_intern_list_type int 1 59 store refined 60 -jmp L3309 -label L3311 -label L3309 -jmp L3302 -label L3304 +jmp L3323 +label L3325 +label L3323 +jmp L3316 +label L3318 iconst 61 0 -store __and_61_3314 61 +store __and_61_3328 61 iconst 62 0 -store __and_62_3314 62 +store __and_62_3328 62 load 63 literal_kind strref 64 m13s18 call 65 pith_cstring_eq bool 2 63 64 call 66 pith_cstring_release void 1 64 -store __and_62_3314 65 -brif 65 L3314 L3315 -label L3314 +store __and_62_3328 65 +brif 65 L3328 L3329 +label L3328 load 67 method strref 68 m13s480 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 -store __and_62_3314 69 -label L3315 -load 71 __and_62_3314 -store __and_61_3314 71 -brif 71 L3316 L3317 -label L3316 +store __and_62_3328 69 +label L3329 +load 71 __and_62_3328 +store __and_61_3328 71 +brif 71 L3330 L3331 +label L3330 load 72 args call 73 pith_list_len int 1 72 iconst 74 1 eq 75 73 74 -store __and_61_3314 75 -label L3317 -load 76 __and_61_3314 -brif 76 L3312 L3313 -label L3312 +store __and_61_3328 75 +label L3331 +load 76 __and_61_3328 +brif 76 L3326 L3327 +label L3326 load 77 args iconst 78 0 call 79 pith_list_get_value_strict int 2 77 78 @@ -55451,46 +55628,46 @@ load 83 elem call 84 types_is_error_type bool 1 83 iconst 85 0 eq 86 84 85 -brif 86 L3319 L3320 -label L3319 +brif 86 L3333 L3334 +label L3333 load 87 elem call 88 checker_type_intern_intern_set_type int 1 87 store refined 88 -jmp L3318 -label L3320 -label L3318 -jmp L3302 -label L3313 +jmp L3332 +label L3334 +label L3332 +jmp L3316 +label L3327 iconst 89 0 -store __and_89_3323 89 +store __and_89_3337 89 iconst 90 0 -store __and_90_3323 90 +store __and_90_3337 90 load 91 literal_kind strref 92 m13s20 call 93 pith_cstring_eq bool 2 91 92 call 94 pith_cstring_release void 1 92 -store __and_90_3323 93 -brif 93 L3323 L3324 -label L3323 +store __and_90_3337 93 +brif 93 L3337 L3338 +label L3337 load 95 method strref 96 m13s491 call 97 pith_cstring_eq bool 2 95 96 call 98 pith_cstring_release void 1 96 -store __and_90_3323 97 -label L3324 -load 99 __and_90_3323 -store __and_89_3323 99 -brif 99 L3325 L3326 -label L3325 +store __and_90_3337 97 +label L3338 +load 99 __and_90_3337 +store __and_89_3337 99 +brif 99 L3339 L3340 +label L3339 load 100 args call 101 pith_list_len int 1 100 iconst 102 2 eq 103 101 102 -store __and_89_3323 103 -label L3326 -load 104 __and_89_3323 -brif 104 L3321 L3322 -label L3321 +store __and_89_3337 103 +label L3340 +load 104 __and_89_3337 +brif 104 L3335 L3336 +label L3335 load 105 args iconst 106 0 call 107 pith_list_get_value_strict int 2 105 106 @@ -55506,43 +55683,43 @@ load 115 scope_id call 116 checker_c_check_expr int 2 114 115 store value_type 116 iconst 117 0 -store __and_117_3330 117 +store __and_117_3344 117 load 118 key_type call 119 types_is_error_type bool 1 118 iconst 120 0 eq 121 119 120 -store __and_117_3330 121 -brif 121 L3330 L3331 -label L3330 +store __and_117_3344 121 +brif 121 L3344 L3345 +label L3344 load 122 value_type call 123 types_is_error_type bool 1 122 iconst 124 0 eq 125 123 124 -store __and_117_3330 125 -label L3331 -load 126 __and_117_3330 -brif 126 L3328 L3329 -label L3328 +store __and_117_3344 125 +label L3345 +load 126 __and_117_3344 +brif 126 L3342 L3343 +label L3342 load 127 key_type load 128 value_type call 129 checker_type_intern_intern_map_type int 2 127 128 store refined 129 -jmp L3327 -label L3329 -label L3327 -jmp L3302 -label L3322 -label L3302 +jmp L3341 +label L3343 +label L3341 +jmp L3316 +label L3336 +label L3316 load 130 refined call 131 types_is_error_type bool 1 130 -brif 131 L3333 L3334 -label L3333 +brif 131 L3347 L3348 +label L3347 load 132 types_TID_ERR load 133 literal_kind call 134 pith_cstring_release void 1 133 ret 132 -label L3334 -label L3332 +label L3348 +label L3346 load 135 binding_index load 136 refined call 137 scope_set_binding_type_at void 2 135 136 @@ -55626,8 +55803,8 @@ field 29 28 16 list children call 30 pith_list_len int 1 29 iconst 31 1 lt 32 30 31 -brif 32 L3336 L3337 -label L3336 +brif 32 L3350 L3351 +label L3350 load 33 types_TID_ERR load 34 method_name call 35 pith_cstring_release void 1 34 @@ -55682,8 +55859,8 @@ call 83 pith_list_release_handle void 1 82 load 84 arg_node call 85 pith_struct_release void 1 84 ret 33 -label L3337 -label L3335 +label L3351 +label L3349 load 86 method_name load 87 node field 88 87 8 string value @@ -55694,8 +55871,8 @@ load 91 method_name strref 92 m13s123 call 93 pith_cstring_starts_with bool 2 91 92 call 94 pith_cstring_release void 1 92 -brif 93 L3339 L3340 -label L3339 +brif 93 L3353 L3354 +label L3353 load 95 method_name load 96 method_name iconst 97 1 @@ -55704,9 +55881,9 @@ call 99 string_len int 1 98 call 100 pith_cstring_substring string 3 96 97 99 call 101 pith_cstring_release void 1 95 store method_name 100 -jmp L3338 -label L3340 -label L3338 +jmp L3352 +label L3354 +label L3352 load 102 recv_node load 103 node field 104 103 16 list children @@ -55728,12 +55905,12 @@ iconst 116 0 store __for_idx_174 116 store __for_len_174 115 store __for_iter_174 114 -label L3341 +label L3355 load 117 __for_idx_174 load 118 __for_len_174 lt 119 117 118 -brif 119 L3342 L3344 -label L3342 +brif 119 L3356 L3358 +label L3356 load 120 __for_iter_174 load 121 __for_idx_174 call 122 pith_list_get_value unknown 2 120 121 @@ -55741,32 +55918,32 @@ store __loopvar_174_child 122 load 123 skip_recv iconst 124 0 gt 125 123 124 -brif 125 L3346 L3347 -label L3346 +brif 125 L3360 L3361 +label L3360 load 126 skip_recv iconst 127 1 sub 128 126 127 store skip_recv 128 -jmp L3343 -label L3347 -label L3345 +jmp L3357 +label L3361 +label L3359 load 129 arg_indices load 130 __loopvar_174_child call 131 pith_list_push_value void 2 129 130 -label L3343 +label L3357 load 132 __for_idx_174 iconst 133 1 add 134 132 133 store __for_idx_174 134 -jmp L3341 -label L3344 +jmp L3355 +label L3358 load 135 recv_node field 136 135 0 string kind strref 137 m13s293 call 138 pith_cstring_eq bool 2 136 137 call 139 pith_cstring_release void 1 137 -brif 138 L3349 L3350 -label L3349 +brif 138 L3363 L3364 +label L3363 load 140 recv_name load 141 recv_node field 142 141 8 string value @@ -55776,8 +55953,8 @@ store recv_name 142 load 145 checker_module_aliases load 146 recv_name call 147 contains_key bool 2 145 146 -brif 147 L3352 L3353 -label L3352 +brif 147 L3366 L3367 +label L3366 load 148 module_path load 149 checker_module_aliases load 150 recv_name @@ -55803,8 +55980,8 @@ store ctor_tid 166 load 167 ctor_tid iconst 168 0 gte 169 167 168 -brif 169 L3355 L3356 -label L3355 +brif 169 L3369 L3370 +label L3369 load 170 ctor_info load 171 ctor_tid call 172 types_get_type_info struct:TypeInfo 1 171 @@ -55815,27 +55992,27 @@ field 175 174 0 string kind strref 176 m13s34 call 177 pith_cstring_eq bool 2 175 176 call 178 pith_cstring_release void 1 176 -brif 177 L3358 L3359 -label L3358 +brif 177 L3372 L3373 +label L3372 iconst 179 0 -store __or_179_3363 179 +store __or_179_3377 179 load 180 ctor_info field 181 180 16 list_string fields call 182 pith_list_len int 1 181 iconst 183 0 gt 184 182 183 -store __or_179_3363 184 -brif 184 L3364 L3363 -label L3363 +store __or_179_3377 184 +brif 184 L3378 L3377 +label L3377 load 185 arg_indices call 186 pith_list_len int 1 185 iconst 187 0 eq 188 186 187 -store __or_179_3363 188 -label L3364 -load 189 __or_179_3363 -brif 189 L3361 L3362 -label L3361 +store __or_179_3377 188 +label L3378 +load 189 __or_179_3377 +brif 189 L3375 L3376 +label L3375 load 190 ctor_type_name load 191 ctor_tid load 192 ctor_info @@ -55895,14 +56072,14 @@ call 245 pith_list_release_handle void 1 244 load 246 arg_node call 247 pith_struct_release void 1 246 ret 195 -label L3362 -label L3360 -jmp L3357 -label L3359 -label L3357 -jmp L3354 -label L3356 -label L3354 +label L3376 +label L3374 +jmp L3371 +label L3373 +label L3371 +jmp L3368 +label L3370 +label L3368 load 248 gen_ctor_name load 249 module_path load 250 method_name @@ -55911,8 +56088,8 @@ call 252 pith_cstring_release void 1 248 store gen_ctor_name 251 load 253 gen_ctor_name call 254 checker_has_generic_declaration bool 1 253 -brif 254 L3366 L3367 -label L3366 +brif 254 L3380 L3381 +label L3380 load 255 gen_ctor_name call 256 checker_get_generic_declaration_index int 1 255 call 257 ast_get_node struct:Node 1 256 @@ -55920,8 +56097,8 @@ field 258 257 0 string kind strref 259 m13s287 call 260 pith_cstring_eq bool 2 258 259 call 261 pith_cstring_release void 1 259 -brif 260 L3369 L3370 -label L3369 +brif 260 L3383 L3384 +label L3383 load 262 gen_ctor_name load 263 arg_indices load 264 scope_id @@ -55979,15 +56156,15 @@ call 315 pith_list_release_handle void 1 314 load 316 arg_node call 317 pith_struct_release void 1 316 ret 265 -label L3370 -label L3368 -jmp L3365 -label L3367 -label L3365 +label L3384 +label L3382 +jmp L3379 +label L3381 +label L3379 load 318 method_name call 319 checker_has_generic_declaration bool 1 318 -brif 319 L3372 L3373 -label L3372 +brif 319 L3386 L3387 +label L3386 load 320 method_name call 321 checker_get_generic_declaration_index int 1 320 call 322 ast_get_node struct:Node 1 321 @@ -55995,8 +56172,8 @@ field 323 322 0 string kind strref 324 m13s287 call 325 pith_cstring_eq bool 2 323 324 call 326 pith_cstring_release void 1 324 -brif 325 L3375 L3376 -label L3375 +brif 325 L3389 L3390 +label L3389 load 327 method_name load 328 arg_indices load 329 scope_id @@ -56054,18 +56231,18 @@ call 380 pith_list_release_handle void 1 379 load 381 arg_node call 382 pith_struct_release void 1 381 ret 330 -label L3376 -label L3374 -jmp L3371 -label L3373 -label L3371 +label L3390 +label L3388 +jmp L3385 +label L3387 +label L3385 load 383 module_path load 384 method_name call 385 checker_module_function_is_visible bool 2 383 384 iconst 387 1 sub 386 387 385 -brif 386 L3378 L3379 -label L3378 +brif 386 L3392 L3393 +label L3392 strref 388 m13s442 strref 389 m13s349 load 390 method_name @@ -56139,8 +56316,8 @@ call 457 pith_list_release_handle void 1 456 load 458 arg_node call 459 pith_struct_release void 1 458 ret 407 -label L3379 -label L3377 +label L3393 +label L3391 load 460 qualified_name load 461 module_path load 462 method_name @@ -56160,34 +56337,34 @@ store callee_type 472 load 473 callee_type iconst 474 0 lt 475 473 474 -brif 475 L3381 L3382 -label L3381 +brif 475 L3395 L3396 +label L3395 load 476 scope_id load 477 qualified_name load 478 module_path call 479 scope_lookup_binding_owned_by int 3 476 477 478 store callee_type 479 -jmp L3380 -label L3382 -label L3380 +jmp L3394 +label L3396 +label L3394 load 480 callee_type iconst 481 0 lt 482 480 481 -brif 482 L3384 L3385 -label L3384 +brif 482 L3398 L3399 +label L3398 load 483 scope_id load 484 method_name load 485 module_path call 486 scope_lookup_binding_owned_by int 3 483 484 485 store callee_type 486 -jmp L3383 -label L3385 -label L3383 +jmp L3397 +label L3399 +label L3397 load 487 callee_type iconst 488 0 lt 489 487 488 -brif 489 L3387 L3388 -label L3387 +brif 489 L3401 L3402 +label L3401 load 490 generic_name load 491 module_path load 492 method_name @@ -56196,8 +56373,8 @@ call 494 pith_cstring_release void 1 490 store generic_name 493 load 495 generic_name call 496 checker_has_generic_declaration bool 1 495 -brif 496 L3390 L3391 -label L3390 +brif 496 L3404 L3405 +label L3404 load 497 generic_name load 498 arg_indices load 499 scope_id @@ -56255,12 +56432,12 @@ call 550 pith_list_release_handle void 1 549 load 551 arg_node call 552 pith_struct_release void 1 551 ret 500 -label L3391 -label L3389 +label L3405 +label L3403 load 553 method_name call 554 checker_has_generic_declaration bool 1 553 -brif 554 L3393 L3394 -label L3393 +brif 554 L3407 L3408 +label L3407 load 555 method_name load 556 arg_indices load 557 scope_id @@ -56318,16 +56495,16 @@ call 608 pith_list_release_handle void 1 607 load 609 arg_node call 610 pith_struct_release void 1 609 ret 558 -label L3394 -label L3392 -jmp L3386 -label L3388 -label L3386 +label L3408 +label L3406 +jmp L3400 +label L3402 +label L3400 load 611 callee_type iconst 612 0 lt 613 611 612 -brif 613 L3396 L3397 -label L3396 +brif 613 L3410 L3411 +label L3410 load 614 recv_name load 615 method_name load 616 arg_indices @@ -56387,8 +56564,8 @@ call 669 pith_list_release_handle void 1 668 load 670 arg_node call 671 pith_struct_release void 1 670 ret 619 -label L3397 -label L3395 +label L3411 +label L3409 load 672 callee_type load 673 arg_indices load 674 scope_id @@ -56446,11 +56623,11 @@ call 725 pith_list_release_handle void 1 724 load 726 arg_node call 727 pith_struct_release void 1 726 ret 675 -label L3353 -label L3351 -jmp L3348 -label L3350 -label L3348 +label L3367 +label L3365 +jmp L3362 +label L3364 +label L3362 load 728 node field 729 728 16 list children iconst 730 0 @@ -56459,22 +56636,22 @@ load 732 scope_id call 733 checker_c_check_expr int 2 731 732 store receiver_type 733 iconst 734 0 -store __and_734_3401 734 +store __and_734_3415 734 load 735 receiver_type call 736 types_is_error_type bool 1 735 -store __and_734_3401 736 -brif 736 L3401 L3402 -label L3401 +store __and_734_3415 736 +brif 736 L3415 L3416 +label L3415 load 737 recv_node field 738 737 0 string kind strref 739 m13s293 call 740 pith_cstring_eq bool 2 738 739 call 741 pith_cstring_release void 1 739 -store __and_734_3401 740 -label L3402 -load 742 __and_734_3401 -brif 742 L3399 L3400 -label L3399 +store __and_734_3415 740 +label L3416 +load 742 __and_734_3415 +brif 742 L3413 L3414 +label L3413 load 743 recv_node field 744 743 8 string value load 745 method_name @@ -56486,13 +56663,13 @@ iconst 750 0 call 751 pith_list_get_value_strict int 2 749 750 call 752 checker_refine_empty_literal_binding int 5 744 745 746 747 751 store receiver_type 752 -jmp L3398 -label L3400 -label L3398 +jmp L3412 +label L3414 +label L3412 load 753 receiver_type call 754 types_is_error_type bool 1 753 -brif 754 L3404 L3405 -label L3404 +brif 754 L3418 L3419 +label L3418 load 755 types_TID_ERR load 756 method_name call 757 pith_cstring_release void 1 756 @@ -56547,8 +56724,8 @@ call 805 pith_list_release_handle void 1 804 load 806 arg_node call 807 pith_struct_release void 1 806 ret 755 -label L3405 -label L3403 +label L3419 +label L3417 load 808 recv_info load 809 receiver_type call 810 types_get_type_info struct:TypeInfo 1 809 @@ -56561,14 +56738,14 @@ field 814 813 0 string kind strref 815 m13s29 call 816 pith_cstring_eq bool 2 814 815 call 817 pith_cstring_release void 1 815 -brif 816 L3407 L3408 -label L3407 +brif 816 L3421 L3422 +label L3421 load 818 method_name strref 819 m13s76 call 820 pith_cstring_eq bool 2 818 819 call 821 pith_cstring_release void 1 819 -brif 820 L3410 L3411 -label L3410 +brif 820 L3424 L3425 +label L3424 load 822 method_name load 823 arg_indices call 824 checker_expect_no_arguments void 2 822 823 @@ -56627,20 +56804,20 @@ call 876 pith_list_release_handle void 1 875 load 877 arg_node call 878 pith_struct_release void 1 877 ret 826 -label L3411 -label L3409 +label L3425 +label L3423 load 879 method_name strref 880 m13s528 call 881 pith_cstring_eq bool 2 879 880 call 882 pith_cstring_release void 1 880 -brif 881 L3413 L3414 -label L3413 +brif 881 L3427 L3428 +label L3427 load 883 arg_indices call 884 pith_list_len int 1 883 iconst 885 1 neq 886 884 885 -brif 886 L3416 L3417 -label L3416 +brif 886 L3430 L3431 +label L3430 strref 887 m13s307 strref 888 m13s527 load 889 arg_indices @@ -56707,8 +56884,8 @@ call 949 pith_list_release_handle void 1 948 load 950 arg_node call 951 pith_struct_release void 1 950 ret 899 -label L3417 -label L3415 +label L3431 +label L3429 load 952 arg_indices iconst 953 0 call 954 pith_list_get_value_strict int 2 952 953 @@ -56771,8 +56948,8 @@ call 1010 pith_list_release_handle void 1 1009 load 1011 arg_node call 1012 pith_struct_release void 1 1011 ret 960 -label L3414 -label L3412 +label L3428 +label L3426 load 1013 recv_info field 1014 1013 64 int inner store dispatch_type 1014 @@ -56781,15 +56958,15 @@ load 1016 dispatch_type call 1017 types_get_type_info struct:TypeInfo 1 1016 call 1018 pith_struct_release void 1 1015 store recv_info 1017 -jmp L3406 -label L3408 +jmp L3420 +label L3422 load 1019 recv_info field 1020 1019 0 string kind strref 1021 m13s28 call 1022 pith_cstring_eq bool 2 1020 1021 call 1023 pith_cstring_release void 1 1021 -brif 1022 L3418 L3419 -label L3418 +brif 1022 L3432 L3433 +label L3432 load 1024 method_name load 1025 recv_info load 1026 arg_indices @@ -56800,8 +56977,8 @@ load 1029 result_method call 1030 types_is_error_type bool 1 1029 iconst 1031 0 eq 1032 1030 1031 -brif 1032 L3421 L3422 -label L3421 +brif 1032 L3435 L3436 +label L3435 load 1033 result_method load 1034 method_name call 1035 pith_cstring_release void 1 1034 @@ -56856,8 +57033,8 @@ call 1083 pith_list_release_handle void 1 1082 load 1084 arg_node call 1085 pith_struct_release void 1 1084 ret 1033 -label L3422 -label L3420 +label L3436 +label L3434 load 1086 recv_info field 1087 1086 64 int inner store dispatch_type 1087 @@ -56866,9 +57043,9 @@ load 1089 dispatch_type call 1090 types_get_type_info struct:TypeInfo 1 1089 call 1091 pith_struct_release void 1 1088 store recv_info 1090 -jmp L3406 -label L3419 -label L3406 +jmp L3420 +label L3433 +label L3420 strref 1092 m13s11 call 1093 types_lookup_type_id int 1 1092 call 1094 pith_cstring_release void 1 1092 @@ -56892,8 +57069,8 @@ store tid_bool 1105 load 1107 dispatch_type load 1108 tid_string eq 1109 1107 1108 -brif 1109 L3424 L3425 -label L3424 +brif 1109 L3438 L3439 +label L3438 load 1110 method_name load 1111 arg_indices load 1112 scope_id @@ -56951,13 +57128,13 @@ call 1163 pith_list_release_handle void 1 1162 load 1164 arg_node call 1165 pith_struct_release void 1 1164 ret 1113 -label L3425 -label L3423 +label L3439 +label L3437 load 1166 dispatch_type load 1167 tid_bytes eq 1168 1166 1167 -brif 1168 L3427 L3428 -label L3427 +brif 1168 L3441 L3442 +label L3441 load 1169 method_name load 1170 arg_indices load 1171 scope_id @@ -57015,12 +57192,12 @@ call 1222 pith_list_release_handle void 1 1221 load 1223 arg_node call 1224 pith_struct_release void 1 1223 ret 1172 -label L3428 -label L3426 +label L3442 +label L3440 load 1225 dispatch_type call 1226 types_is_integer_type bool 1 1225 -brif 1226 L3430 L3431 -label L3430 +brif 1226 L3444 L3445 +label L3444 load 1227 method_name load 1228 arg_indices load 1229 scope_id @@ -57078,13 +57255,13 @@ call 1280 pith_list_release_handle void 1 1279 load 1281 arg_node call 1282 pith_struct_release void 1 1281 ret 1230 -label L3431 -label L3429 +label L3445 +label L3443 load 1283 dispatch_type load 1284 tid_float eq 1285 1283 1284 -brif 1285 L3433 L3434 -label L3433 +brif 1285 L3447 L3448 +label L3447 load 1286 method_name load 1287 arg_indices load 1288 scope_id @@ -57142,13 +57319,13 @@ call 1339 pith_list_release_handle void 1 1338 load 1340 arg_node call 1341 pith_struct_release void 1 1340 ret 1289 -label L3434 -label L3432 +label L3448 +label L3446 load 1342 dispatch_type load 1343 tid_bool eq 1344 1342 1343 -brif 1344 L3436 L3437 -label L3436 +brif 1344 L3450 L3451 +label L3450 load 1345 method_name load 1346 arg_indices load 1347 scope_id @@ -57206,15 +57383,15 @@ call 1398 pith_list_release_handle void 1 1397 load 1399 arg_node call 1400 pith_struct_release void 1 1399 ret 1348 -label L3437 -label L3435 +label L3451 +label L3449 load 1401 recv_info field 1402 1401 0 string kind strref 1403 m13s22 call 1404 pith_cstring_eq bool 2 1402 1403 call 1405 pith_cstring_release void 1 1403 -brif 1404 L3439 L3440 -label L3439 +brif 1404 L3453 L3454 +label L3453 load 1406 method_name load 1407 recv_info load 1408 arg_indices @@ -57223,8 +57400,8 @@ call 1410 checker_check_list_method_call int 4 1406 1407 1408 1409 store result 1410 load 1411 result call 1412 checker_method_table_answered bool 1 1411 -brif 1412 L3442 L3443 -label L3442 +brif 1412 L3456 L3457 +label L3456 load 1413 result load 1414 method_name call 1415 pith_cstring_release void 1 1414 @@ -57279,18 +57456,18 @@ call 1463 pith_list_release_handle void 1 1462 load 1464 arg_node call 1465 pith_struct_release void 1 1464 ret 1413 -label L3443 -label L3441 -jmp L3438 -label L3440 -label L3438 +label L3457 +label L3455 +jmp L3452 +label L3454 +label L3452 load 1466 recv_info field 1467 1466 0 string kind strref 1468 m13s20 call 1469 pith_cstring_eq bool 2 1467 1468 call 1470 pith_cstring_release void 1 1468 -brif 1469 L3445 L3446 -label L3445 +brif 1469 L3459 L3460 +label L3459 load 1471 method_name load 1472 recv_info load 1473 arg_indices @@ -57299,8 +57476,8 @@ call 1475 checker_check_map_method_call int 4 1471 1472 1473 1474 store result 1475 load 1476 result call 1477 checker_method_table_answered bool 1 1476 -brif 1477 L3448 L3449 -label L3448 +brif 1477 L3462 L3463 +label L3462 load 1478 result load 1479 method_name call 1480 pith_cstring_release void 1 1479 @@ -57355,18 +57532,18 @@ call 1528 pith_list_release_handle void 1 1527 load 1529 arg_node call 1530 pith_struct_release void 1 1529 ret 1478 -label L3449 -label L3447 -jmp L3444 -label L3446 -label L3444 +label L3463 +label L3461 +jmp L3458 +label L3460 +label L3458 load 1531 recv_info field 1532 1531 0 string kind strref 1533 m13s18 call 1534 pith_cstring_eq bool 2 1532 1533 call 1535 pith_cstring_release void 1 1533 -brif 1534 L3451 L3452 -label L3451 +brif 1534 L3465 L3466 +label L3465 load 1536 method_name load 1537 recv_info load 1538 arg_indices @@ -57375,8 +57552,8 @@ call 1540 checker_check_set_method_call int 4 1536 1537 1538 1539 store result 1540 load 1541 result call 1542 checker_method_table_answered bool 1 1541 -brif 1542 L3454 L3455 -label L3454 +brif 1542 L3468 L3469 +label L3468 load 1543 result load 1544 method_name call 1545 pith_cstring_release void 1 1544 @@ -57431,18 +57608,18 @@ call 1593 pith_list_release_handle void 1 1592 load 1594 arg_node call 1595 pith_struct_release void 1 1594 ret 1543 -label L3455 -label L3453 -jmp L3450 -label L3452 -label L3450 +label L3469 +label L3467 +jmp L3464 +label L3466 +label L3464 load 1596 recv_info field 1597 1596 0 string kind strref 1598 m13s24 call 1599 pith_cstring_eq bool 2 1597 1598 call 1600 pith_cstring_release void 1 1598 -brif 1599 L3457 L3458 -label L3457 +brif 1599 L3471 L3472 +label L3471 load 1601 method_name load 1602 recv_info load 1603 arg_indices @@ -57451,8 +57628,8 @@ call 1605 checker_check_channel_method_call int 4 1601 1602 1603 1604 store ch_result 1605 load 1606 ch_result call 1607 checker_method_table_answered bool 1 1606 -brif 1607 L3460 L3461 -label L3460 +brif 1607 L3474 L3475 +label L3474 load 1608 ch_result load 1609 method_name call 1610 pith_cstring_release void 1 1609 @@ -57507,18 +57684,18 @@ call 1658 pith_list_release_handle void 1 1657 load 1659 arg_node call 1660 pith_struct_release void 1 1659 ret 1608 -label L3461 -label L3459 -jmp L3456 -label L3458 -label L3456 +label L3475 +label L3473 +jmp L3470 +label L3472 +label L3470 load 1661 recv_info field 1662 1661 0 string kind strref 1663 m13s26 call 1664 pith_cstring_eq bool 2 1662 1663 call 1665 pith_cstring_release void 1 1663 -brif 1664 L3463 L3464 -label L3463 +brif 1664 L3477 L3478 +label L3477 load 1666 method_name load 1667 recv_info load 1668 arg_indices @@ -57527,8 +57704,8 @@ call 1670 checker_check_task_method_call int 4 1666 1667 1668 1669 store task_result 1670 load 1671 task_result call 1672 checker_method_table_answered bool 1 1671 -brif 1672 L3466 L3467 -label L3466 +brif 1672 L3480 L3481 +label L3480 load 1673 task_result load 1674 method_name call 1675 pith_cstring_release void 1 1674 @@ -57583,18 +57760,18 @@ call 1723 pith_list_release_handle void 1 1722 load 1724 arg_node call 1725 pith_struct_release void 1 1724 ret 1673 -label L3467 -label L3465 -jmp L3462 -label L3464 -label L3462 +label L3481 +label L3479 +jmp L3476 +label L3478 +label L3476 load 1726 recv_info field 1727 1726 0 string kind strref 1728 m13s34 call 1729 pith_cstring_eq bool 2 1727 1728 call 1730 pith_cstring_release void 1 1728 -brif 1729 L3469 L3470 -label L3469 +brif 1729 L3483 L3484 +label L3483 load 1731 recv_info field 1732 1731 8 string name load 1733 method_name @@ -57604,8 +57781,8 @@ call 1736 checker_check_sync_primitive_method_call int 4 1732 1733 1734 1735 store sync_result 1736 load 1737 sync_result call 1738 checker_method_table_answered bool 1 1737 -brif 1738 L3472 L3473 -label L3472 +brif 1738 L3486 L3487 +label L3486 load 1739 sync_result load 1740 method_name call 1741 pith_cstring_release void 1 1740 @@ -57660,36 +57837,36 @@ call 1789 pith_list_release_handle void 1 1788 load 1790 arg_node call 1791 pith_struct_release void 1 1790 ret 1739 -label L3473 -label L3471 -jmp L3468 -label L3470 -label L3468 +label L3487 +label L3485 +jmp L3482 +label L3484 +label L3482 load 1792 recv_info field 1793 1792 0 string kind strref 1794 m13s33 call 1795 pith_cstring_eq bool 2 1793 1794 call 1796 pith_cstring_release void 1 1794 -brif 1795 L3475 L3476 -label L3475 +brif 1795 L3489 L3490 +label L3489 iconst 1797 0 store vi 1797 -label L3477 +label L3491 load 1798 vi load 1799 recv_info field 1800 1799 96 list_string variants call 1801 pith_list_len int 1 1800 lt 1802 1798 1801 -brif 1802 L3478 L3479 -label L3478 +brif 1802 L3492 L3493 +label L3492 load 1803 recv_info field 1804 1803 96 list_string variants load 1805 vi call 1806 pith_list_get_value_strict string 2 1804 1805 load 1807 method_name call 1808 pith_cstring_eq bool 2 1806 1807 -brif 1808 L3481 L3482 -label L3481 +brif 1808 L3495 L3496 +label L3495 load 1809 payload_types load 1810 recv_info field 1811 1810 104 list variant_types @@ -57703,8 +57880,8 @@ call 1817 pith_list_len int 1 1816 load 1818 payload_types call 1819 pith_list_len int 1 1818 neq 1820 1817 1819 -brif 1820 L3484 L3485 -label L3484 +brif 1820 L3498 L3499 +label L3498 strref 1821 m13s307 load 1822 method_name strref 1823 m13s549 @@ -57783,8 +57960,8 @@ call 1895 pith_list_release_handle void 1 1894 load 1896 arg_node call 1897 pith_struct_release void 1 1896 ret 1845 -label L3485 -label L3483 +label L3499 +label L3497 iconst 1898 0 store pi 1898 load 1899 arg_indices @@ -57793,12 +57970,12 @@ iconst 1901 0 store __for_idx_175 1901 store __for_len_175 1900 store __for_iter_175 1899 -label L3486 +label L3500 load 1902 __for_idx_175 load 1903 __for_len_175 lt 1904 1902 1903 -brif 1904 L3487 L3489 -label L3487 +brif 1904 L3501 L3503 +label L3501 load 1905 __for_iter_175 load 1906 __for_idx_175 call 1907 pith_list_get_value unknown 2 1905 1906 @@ -57815,55 +57992,55 @@ field 1914 1913 0 string kind strref 1915 m13s298 call 1916 pith_cstring_eq bool 2 1914 1915 call 1917 pith_cstring_release void 1 1915 -brif 1916 L3491 L3492 -label L3491 +brif 1916 L3505 L3506 +label L3505 load 1918 pa_node field 1919 1918 16 list children call 1920 pith_list_len int 1 1919 iconst 1921 0 gt 1922 1920 1921 -brif 1922 L3494 L3495 -label L3494 +brif 1922 L3508 L3509 +label L3508 load 1923 pa_node field 1924 1923 16 list children iconst 1925 0 call 1926 pith_list_get_value_strict int 2 1924 1925 store pa_expr 1926 -jmp L3493 -label L3495 -label L3493 -jmp L3490 -label L3492 -label L3490 +jmp L3507 +label L3509 +label L3507 +jmp L3504 +label L3506 +label L3504 load 1927 pa_expr load 1928 scope_id call 1929 checker_c_check_expr int 2 1927 1928 store pa_type 1929 iconst 1930 0 -store __and_1930_3499 1930 +store __and_1930_3513 1930 load 1931 pa_type call 1932 types_is_error_type bool 1 1931 iconst 1933 0 eq 1934 1932 1933 -store __and_1930_3499 1934 -brif 1934 L3499 L3500 -label L3499 +store __and_1930_3513 1934 +brif 1934 L3513 L3514 +label L3513 load 1935 pi load 1936 payload_types call 1937 pith_list_len int 1 1936 lt 1938 1935 1937 -store __and_1930_3499 1938 -label L3500 -load 1939 __and_1930_3499 -brif 1939 L3497 L3498 -label L3497 +store __and_1930_3513 1938 +label L3514 +load 1939 __and_1930_3513 +brif 1939 L3511 L3512 +label L3511 load 1940 pa_type load 1941 payload_types load 1942 pi call 1943 pith_list_get_value_strict int 2 1941 1942 neq 1944 1940 1943 -brif 1944 L3502 L3503 -label L3502 +brif 1944 L3516 L3517 +label L3516 load 1945 pa_type load 1946 payload_types load 1947 pi @@ -57871,8 +58048,8 @@ call 1948 pith_list_get_value_strict int 2 1946 1947 call 1949 checker_types_structurally_equal bool 2 1945 1948 iconst 1950 0 eq 1951 1949 1950 -brif 1951 L3505 L3506 -label L3505 +brif 1951 L3519 L3520 +label L3519 strref 1952 m13s304 strref 1953 m13s443 load 1954 payload_types @@ -57894,26 +58071,26 @@ call 1969 pith_cstring_release void 1 1966 call 1970 checker_diagnostics_report_error void 2 1952 1967 call 1971 pith_cstring_release void 1 1952 call 1972 pith_cstring_release void 1 1967 -jmp L3504 -label L3506 -label L3504 -jmp L3501 -label L3503 -label L3501 -jmp L3496 -label L3498 -label L3496 +jmp L3518 +label L3520 +label L3518 +jmp L3515 +label L3517 +label L3515 +jmp L3510 +label L3512 +label L3510 load 1973 pi iconst 1974 1 add 1975 1973 1974 store pi 1975 -label L3488 +label L3502 load 1976 __for_idx_175 iconst 1977 1 add 1978 1976 1977 store __for_idx_175 1978 -jmp L3486 -label L3489 +jmp L3500 +label L3503 load 1979 receiver_type load 1980 method_name call 1981 pith_cstring_release void 1 1980 @@ -57968,17 +58145,17 @@ call 2029 pith_list_release_handle void 1 2028 load 2030 arg_node call 2031 pith_struct_release void 1 2030 ret 1979 -label L3482 -label L3480 +label L3496 +label L3494 load 2032 vi iconst 2033 1 add 2034 2032 2033 store vi 2034 -jmp L3477 -label L3479 -jmp L3474 -label L3476 -label L3474 +jmp L3491 +label L3493 +jmp L3488 +label L3490 +label L3488 load 2035 type_name load 2036 dispatch_type call 2037 types_get_type_name string 1 2036 @@ -57998,8 +58175,8 @@ load 2048 key call 2049 checker_methods_has_method_declaration bool 1 2048 iconst 2050 0 eq 2051 2049 2050 -brif 2051 L3508 L3509 -label L3508 +brif 2051 L3522 L3523 +label L3522 load 2052 base_name load 2053 type_name call 2054 checker_extract_base_type_name string 1 2053 @@ -58010,8 +58187,8 @@ load 2057 type_name call 2059 pith_cstring_eq bool 2 2056 2057 iconst 2060 1 sub 2058 2060 2059 -brif 2058 L3511 L3512 -label L3511 +brif 2058 L3525 L3526 +label L3525 load 2061 key load 2062 base_name strref 2063 m13s123 @@ -58022,16 +58199,16 @@ concat 2067 2064 2066 call 2068 pith_cstring_release void 1 2064 call 2069 pith_cstring_release void 1 2061 store key 2067 -jmp L3510 -label L3512 -label L3510 -jmp L3507 -label L3509 -label L3507 +jmp L3524 +label L3526 +label L3524 +jmp L3521 +label L3523 +label L3521 load 2070 key call 2071 checker_methods_has_method_declaration bool 1 2070 -brif 2071 L3514 L3515 -label L3514 +brif 2071 L3528 L3529 +label L3528 load 2072 method_node load 2073 key call 2074 checker_methods_get_method_declaration_index int 1 2073 @@ -58049,8 +58226,8 @@ store struct_args 2081 load 2083 checker_struct_instance_type_args load 2084 dispatch_type call 2085 map_contains_ikey bool 2 2083 2084 -brif 2085 L3517 L3518 -label L3517 +brif 2085 L3531 L3532 +label L3531 load 2086 struct_args load 2087 checker_struct_instance_type_args load 2088 dispatch_type @@ -58061,8 +58238,8 @@ store struct_args 2090 load 2092 checker_struct_instance_base_name load 2093 dispatch_type call 2094 map_contains_ikey bool 2 2092 2093 -brif 2094 L3520 L3521 -label L3520 +brif 2094 L3534 L3535 +label L3534 load 2095 base load 2096 checker_struct_instance_base_name load 2097 dispatch_type @@ -58072,8 +58249,8 @@ call 2100 pith_cstring_release void 1 2095 store base 2098 load 2101 base call 2102 checker_has_generic_declaration bool 1 2101 -brif 2102 L3523 L3524 -label L3523 +brif 2102 L3537 L3538 +label L3537 load 2103 sdecl load 2104 base call 2105 checker_get_generic_declaration_index int 1 2104 @@ -58085,15 +58262,15 @@ load 2109 sdecl call 2110 checker_collect_generic_parameter_names list_string 1 2109 call 2111 pith_list_release_handle void 1 2108 store struct_params 2110 -jmp L3522 -label L3524 -label L3522 -jmp L3519 -label L3521 -label L3519 -jmp L3516 -label L3518 -label L3516 +jmp L3536 +label L3538 +label L3536 +jmp L3533 +label L3535 +label L3533 +jmp L3530 +label L3532 +label L3530 load 2112 assoc_base load 2113 type_name call 2114 checker_extract_base_type_name string 1 2113 @@ -58102,8 +58279,8 @@ store assoc_base 2114 load 2116 checker_type_assoc_names load 2117 assoc_base call 2118 contains_key bool 2 2116 2117 -brif 2118 L3526 L3527 -label L3526 +brif 2118 L3540 L3541 +label L3540 load 2119 checker_type_assoc_names load 2120 assoc_base call 2121 map_get_strict string 2 2119 2120 @@ -58115,12 +58292,12 @@ iconst 2126 0 store __for_idx_176 2126 store __for_len_176 2125 store __for_iter_176 2123 -label L3528 +label L3542 load 2127 __for_idx_176 load 2128 __for_len_176 lt 2129 2127 2128 -brif 2129 L3529 L3531 -label L3529 +brif 2129 L3543 L3545 +label L3543 load 2130 __for_iter_176 load 2131 __for_idx_176 call 2132 pith_list_get_value_unchecked string 2 2130 2131 @@ -58138,8 +58315,8 @@ store bkey 2139 load 2142 checker_assoc_type_binding load 2143 bkey call 2144 contains_key bool 2 2142 2143 -brif 2144 L3533 L3534 -label L3533 +brif 2144 L3547 L3548 +label L3547 load 2145 struct_params load 2146 __loopvar_176_an call 2147 pith_list_push_value void 2 2145 2146 @@ -58148,21 +58325,21 @@ load 2149 checker_assoc_type_binding load 2150 bkey call 2151 map_get_strict int 2 2149 2150 call 2152 pith_list_push_value void 2 2148 2151 -jmp L3532 -label L3534 -label L3532 -label L3530 +jmp L3546 +label L3548 +label L3546 +label L3544 load 2153 __for_idx_176 iconst 2154 1 add 2155 2153 2154 store __for_idx_176 2155 -jmp L3528 -label L3531 +jmp L3542 +label L3545 load 2156 __for_iter_176 call 2157 pith_list_release_handle void 1 2156 -jmp L3525 -label L3527 -label L3525 +jmp L3539 +label L3541 +label L3539 load 2158 param_types load 2159 method_node load 2160 struct_params @@ -58180,8 +58357,8 @@ call 2169 pith_list_len int 1 2168 load 2170 param_types call 2171 pith_list_len int 1 2170 neq 2172 2169 2171 -brif 2172 L3536 L3537 -label L3536 +brif 2172 L3550 L3551 +label L3550 strref 2173 m13s307 load 2174 method_name strref 2175 m13s549 @@ -58260,8 +58437,8 @@ call 2247 pith_list_release_handle void 1 2246 load 2248 arg_node call 2249 pith_struct_release void 1 2248 ret 2197 -label L3537 -label L3535 +label L3551 +label L3549 iconst 2250 0 store aidx 2250 load 2251 arg_indices @@ -58270,12 +58447,12 @@ iconst 2253 0 store __for_idx_177 2253 store __for_len_177 2252 store __for_iter_177 2251 -label L3538 +label L3552 load 2254 __for_idx_177 load 2255 __for_len_177 lt 2256 2254 2255 -brif 2256 L3539 L3541 -label L3539 +brif 2256 L3553 L3555 +label L3553 load 2257 __for_iter_177 load 2258 __for_idx_177 call 2259 pith_list_get_value unknown 2 2257 2258 @@ -58292,26 +58469,26 @@ field 2266 2265 0 string kind strref 2267 m13s298 call 2268 pith_cstring_eq bool 2 2266 2267 call 2269 pith_cstring_release void 1 2267 -brif 2268 L3543 L3544 -label L3543 +brif 2268 L3557 L3558 +label L3557 load 2270 arg_node field 2271 2270 16 list children call 2272 pith_list_len int 1 2271 iconst 2273 0 gt 2274 2272 2273 -brif 2274 L3546 L3547 -label L3546 +brif 2274 L3560 L3561 +label L3560 load 2275 arg_node field 2276 2275 16 list children iconst 2277 0 call 2278 pith_list_get_value_strict int 2 2276 2277 store arg_expr 2278 -jmp L3545 -label L3547 -label L3545 -jmp L3542 -label L3544 -label L3542 +jmp L3559 +label L3561 +label L3559 +jmp L3556 +label L3558 +label L3556 load 2279 arg_expr load 2280 scope_id call 2281 checker_c_check_expr int 2 2279 2280 @@ -58320,21 +58497,21 @@ load 2282 atype call 2283 types_is_error_type bool 1 2282 iconst 2284 0 eq 2285 2283 2284 -brif 2285 L3549 L3550 -label L3549 +brif 2285 L3563 L3564 +label L3563 load 2286 aidx load 2287 param_types call 2288 pith_list_len int 1 2287 lt 2289 2286 2288 -brif 2289 L3552 L3553 -label L3552 +brif 2289 L3566 L3567 +label L3566 load 2290 atype load 2291 param_types load 2292 aidx call 2293 pith_list_get_value_strict int 2 2291 2292 neq 2294 2290 2293 -brif 2294 L3555 L3556 -label L3555 +brif 2294 L3569 L3570 +label L3569 load 2295 atype load 2296 param_types load 2297 aidx @@ -58342,8 +58519,8 @@ call 2298 pith_list_get_value_strict int 2 2296 2297 call 2299 checker_types_structurally_equal bool 2 2295 2298 iconst 2300 0 eq 2301 2299 2300 -brif 2301 L3558 L3559 -label L3558 +brif 2301 L3572 L3573 +label L3572 strref 2302 m13s304 strref 2303 m13s443 load 2304 param_types @@ -58365,29 +58542,29 @@ call 2319 pith_cstring_release void 1 2316 call 2320 checker_diagnostics_report_error void 2 2302 2317 call 2321 pith_cstring_release void 1 2302 call 2322 pith_cstring_release void 1 2317 -jmp L3557 -label L3559 -label L3557 -jmp L3554 -label L3556 -label L3554 -jmp L3551 -label L3553 -label L3551 -jmp L3548 -label L3550 -label L3548 +jmp L3571 +label L3573 +label L3571 +jmp L3568 +label L3570 +label L3568 +jmp L3565 +label L3567 +label L3565 +jmp L3562 +label L3564 +label L3562 load 2323 aidx iconst 2324 1 add 2325 2323 2324 store aidx 2325 -label L3540 +label L3554 load 2326 __for_idx_177 iconst 2327 1 add 2328 2326 2327 store __for_idx_177 2328 -jmp L3538 -label L3541 +jmp L3552 +label L3555 load 2329 ret_type load 2330 method_name call 2331 pith_cstring_release void 1 2330 @@ -58442,43 +58619,43 @@ call 2379 pith_list_release_handle void 1 2378 load 2380 arg_node call 2381 pith_struct_release void 1 2380 ret 2329 -label L3515 -label L3513 +label L3529 +label L3527 load 2382 recv_info field 2383 2382 0 string kind strref 2384 m13s34 call 2385 pith_cstring_eq bool 2 2383 2384 call 2386 pith_cstring_release void 1 2384 -brif 2385 L3561 L3562 -label L3561 +brif 2385 L3575 L3576 +label L3575 iconst 2387 0 store ffi 2387 -label L3563 +label L3577 load 2388 ffi load 2389 recv_info field 2390 2389 16 list_string fields call 2391 pith_list_len int 1 2390 lt 2392 2388 2391 -brif 2392 L3564 L3565 -label L3564 +brif 2392 L3578 L3579 +label L3578 load 2393 recv_info field 2394 2393 16 list_string fields load 2395 ffi call 2396 pith_list_get_value_strict string 2 2394 2395 load 2397 method_name call 2398 checker_strings_equal bool 2 2396 2397 -brif 2398 L3567 L3568 -label L3567 +brif 2398 L3581 L3582 +label L3581 iconst 2399 0 -store __and_2399_3572 2399 +store __and_2399_3586 2399 load 2400 ffi load 2401 recv_info field 2402 2401 24 list field_types call 2403 pith_list_len int 1 2402 lt 2404 2400 2403 -store __and_2399_3572 2404 -brif 2404 L3572 L3573 -label L3572 +store __and_2399_3586 2404 +brif 2404 L3586 L3587 +label L3586 load 2405 recv_info field 2406 2405 24 list field_types load 2407 ffi @@ -58488,11 +58665,11 @@ field 2410 2409 0 string kind strref 2411 m13s31 call 2412 pith_cstring_eq bool 2 2410 2411 call 2413 pith_cstring_release void 1 2411 -store __and_2399_3572 2412 -label L3573 -load 2414 __and_2399_3572 -brif 2414 L3570 L3571 -label L3570 +store __and_2399_3586 2412 +label L3587 +load 2414 __and_2399_3586 +brif 2414 L3584 L3585 +label L3584 load 2415 recv_info field 2416 2415 24 list field_types load 2417 ffi @@ -58553,25 +58730,25 @@ call 2471 pith_list_release_handle void 1 2470 load 2472 arg_node call 2473 pith_struct_release void 1 2472 ret 2421 -label L3571 -label L3569 -jmp L3566 -label L3568 -label L3566 +label L3585 +label L3583 +jmp L3580 +label L3582 +label L3580 load 2474 ffi iconst 2475 1 add 2476 2474 2475 store ffi 2476 -jmp L3563 -label L3565 -jmp L3560 -label L3562 -label L3560 +jmp L3577 +label L3579 +jmp L3574 +label L3576 +label L3574 call 2477 checker_diagnostics_checker_reported_at_current bool 0 iconst 2478 0 eq 2479 2477 2478 -brif 2479 L3575 L3576 -label L3575 +brif 2479 L3589 L3590 +label L3589 strref 2480 m13s429 load 2481 receiver_type call 2482 types_get_type_name string 1 2481 @@ -58589,9 +58766,9 @@ call 2493 pith_cstring_release void 1 2490 call 2494 checker_diagnostics_report_error void 2 2480 2491 call 2495 pith_cstring_release void 1 2480 call 2496 pith_cstring_release void 1 2491 -jmp L3574 -label L3576 -label L3574 +jmp L3588 +label L3590 +label L3588 load 2497 types_TID_ERR load 2498 method_name call 2499 pith_cstring_release void 1 2498 @@ -58704,20 +58881,20 @@ endfunc func checker_method_table_answered 1 bool param result iconst 1 0 -store __and_1_3577 1 +store __and_1_3591 1 load 2 result iconst 3 0 gte 4 2 3 -store __and_1_3577 4 -brif 4 L3577 L3578 -label L3577 +store __and_1_3591 4 +brif 4 L3591 L3592 +label L3591 load 5 result call 6 types_is_error_type bool 1 5 iconst 7 0 eq 8 6 7 -store __and_1_3577 8 -label L3578 -load 9 __and_1_3577 +store __and_1_3591 8 +label L3592 +load 9 __and_1_3591 ret 9 iconst 10 0 ret 10 @@ -58742,143 +58919,143 @@ load 12 method strref 13 m13s454 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L3580 L3581 -label L3580 +brif 14 L3594 L3595 +label L3594 load 16 method load 17 args call 18 checker_expect_no_arguments void 2 16 17 load 19 tid_int ret 19 -label L3581 -label L3579 +label L3595 +label L3593 load 20 method strref 21 m13s546 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L3583 L3584 -label L3583 +brif 22 L3597 L3598 +label L3597 load 24 method load 25 args call 26 checker_expect_no_arguments void 2 24 25 load 27 tid_string ret 27 -label L3584 -label L3582 +label L3598 +label L3596 load 28 method strref 29 m13s545 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L3586 L3587 -label L3586 +brif 30 L3600 L3601 +label L3600 load 32 method load 33 args call 34 checker_expect_no_arguments void 2 32 33 load 35 tid_string ret 35 -label L3587 -label L3585 +label L3601 +label L3599 load 36 method strref 37 m13s544 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 -brif 38 L3589 L3590 -label L3589 +brif 38 L3603 L3604 +label L3603 load 40 method load 41 args call 42 checker_expect_no_arguments void 2 40 41 load 43 tid_string ret 43 -label L3590 -label L3588 +label L3604 +label L3602 load 44 method strref 45 m13s488 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 -brif 46 L3592 L3593 -label L3592 +brif 46 L3606 L3607 +label L3606 load 48 method load 49 args call 50 checker_expect_no_arguments void 2 48 49 load 51 tid_bool ret 51 -label L3593 -label L3591 +label L3607 +label L3605 load 52 method strref 53 m13s486 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 -brif 54 L3595 L3596 -label L3595 +brif 54 L3609 L3610 +label L3609 load 56 method load 57 args load 58 scope_id call 59 checker_expect_one_string_argument void 3 56 57 58 load 60 tid_bool ret 60 -label L3596 -label L3594 +label L3610 +label L3608 load 61 method strref 62 m13s543 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 -brif 63 L3598 L3599 -label L3598 +brif 63 L3612 L3613 +label L3612 load 65 method load 66 args load 67 scope_id call 68 checker_expect_one_string_argument void 3 65 66 67 load 69 tid_bool ret 69 -label L3599 -label L3597 +label L3613 +label L3611 load 70 method strref 71 m13s542 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 -brif 72 L3601 L3602 -label L3601 +brif 72 L3615 L3616 +label L3615 load 74 method load 75 args load 76 scope_id call 77 checker_expect_one_string_argument void 3 74 75 76 load 78 tid_bool ret 78 -label L3602 -label L3600 +label L3616 +label L3614 load 79 method strref 80 m13s506 call 81 pith_cstring_eq bool 2 79 80 call 82 pith_cstring_release void 1 80 -brif 81 L3604 L3605 -label L3604 +brif 81 L3618 L3619 +label L3618 load 83 method load 84 args load 85 scope_id call 86 checker_expect_one_string_argument void 3 83 84 85 load 87 tid_int ret 87 -label L3605 -label L3603 +label L3619 +label L3617 load 88 method strref 89 m13s541 call 90 pith_cstring_eq bool 2 88 89 call 91 pith_cstring_release void 1 89 -brif 90 L3607 L3608 -label L3607 +brif 90 L3621 L3622 +label L3621 load 92 method load 93 args load 94 scope_id call 95 checker_expect_one_string_argument void 3 92 93 94 load 96 tid_int ret 96 -label L3608 -label L3606 +label L3622 +label L3620 load 97 method strref 98 m13s540 call 99 pith_cstring_eq bool 2 97 98 call 100 pith_cstring_release void 1 98 -brif 99 L3610 L3611 -label L3610 +brif 99 L3624 L3625 +label L3624 load 101 method load 102 args load 103 scope_id @@ -58886,42 +59063,42 @@ call 104 checker_expect_one_string_argument void 3 101 102 103 load 105 tid_string call 106 checker_type_intern_intern_list_type int 1 105 ret 106 -label L3611 -label L3609 +label L3625 +label L3623 load 107 method strref 108 m13s539 call 109 pith_cstring_eq bool 2 107 108 call 110 pith_cstring_release void 1 108 -brif 109 L3613 L3614 -label L3613 +brif 109 L3627 L3628 +label L3627 load 111 method load 112 args load 113 scope_id call 114 checker_expect_two_int_arguments void 3 111 112 113 load 115 tid_string ret 115 -label L3614 -label L3612 +label L3628 +label L3626 load 116 method strref 117 m13s538 call 118 pith_cstring_eq bool 2 116 117 call 119 pith_cstring_release void 1 117 -brif 118 L3616 L3617 -label L3616 +brif 118 L3630 L3631 +label L3630 load 120 method load 121 args load 122 scope_id call 123 checker_expect_two_string_arguments void 3 120 121 122 load 124 tid_string ret 124 -label L3617 -label L3615 +label L3631 +label L3629 load 125 method strref 126 m13s537 call 127 pith_cstring_eq bool 2 125 126 call 128 pith_cstring_release void 1 126 -brif 127 L3619 L3620 -label L3619 +brif 127 L3633 L3634 +label L3633 load 129 method load 130 args load 131 tid_int @@ -58929,56 +59106,56 @@ load 132 scope_id call 133 checker_expect_one_typed_argument void 4 129 130 131 132 load 134 tid_string ret 134 -label L3620 -label L3618 +label L3634 +label L3632 load 135 method strref 136 m13s536 call 137 pith_cstring_eq bool 2 135 136 call 138 pith_cstring_release void 1 136 -brif 137 L3622 L3623 -label L3622 +brif 137 L3636 L3637 +label L3636 load 139 method load 140 args load 141 scope_id call 142 checker_expect_int_string_arguments void 3 139 140 141 load 143 tid_string ret 143 -label L3623 -label L3621 +label L3637 +label L3635 load 144 method strref 145 m13s535 call 146 pith_cstring_eq bool 2 144 145 call 147 pith_cstring_release void 1 145 -brif 146 L3625 L3626 -label L3625 +brif 146 L3639 L3640 +label L3639 load 148 method load 149 args load 150 scope_id call 151 checker_expect_int_string_arguments void 3 148 149 150 load 152 tid_string ret 152 -label L3626 -label L3624 +label L3640 +label L3638 load 153 method strref 154 m13s534 call 155 pith_cstring_eq bool 2 153 154 call 156 pith_cstring_release void 1 154 -brif 155 L3628 L3629 -label L3628 +brif 155 L3642 L3643 +label L3642 load 157 method load 158 args call 159 checker_expect_no_arguments void 2 157 158 load 160 tid_string call 161 checker_type_intern_intern_list_type int 1 160 ret 161 -label L3629 -label L3627 +label L3643 +label L3641 load 162 method strref 163 m13s497 call 164 pith_cstring_eq bool 2 162 163 call 165 pith_cstring_release void 1 163 -brif 164 L3631 L3632 -label L3631 +brif 164 L3645 L3646 +label L3645 load 166 method load 167 args load 168 tid_int @@ -58989,8 +59166,8 @@ call 172 types_ti_optional struct:TypeInfo 1 171 call 173 types_add_type_info int 1 172 call 174 pith_struct_release void 1 172 ret 173 -label L3632 -label L3630 +label L3646 +label L3644 strref 175 m13s429 strref 176 m13s533 load 177 method @@ -59032,48 +59209,48 @@ load 15 method strref 16 m13s454 call 17 pith_cstring_eq bool 2 15 16 call 18 pith_cstring_release void 1 16 -brif 17 L3634 L3635 -label L3634 +brif 17 L3648 L3649 +label L3648 load 19 method load 20 args call 21 checker_expect_no_arguments void 2 19 20 load 22 tid_int ret 22 -label L3635 -label L3633 +label L3649 +label L3647 load 23 method strref 24 m13s488 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 -brif 25 L3637 L3638 -label L3637 +brif 25 L3651 L3652 +label L3651 load 27 method load 28 args call 29 checker_expect_no_arguments void 2 27 28 load 30 tid_bool ret 30 -label L3638 -label L3636 +label L3652 +label L3650 load 31 method strref 32 m13s505 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 -brif 33 L3640 L3641 -label L3640 +brif 33 L3654 L3655 +label L3654 load 35 method load 36 args load 37 scope_id call 38 checker_expect_two_int_arguments void 3 35 36 37 load 39 tid_bytes ret 39 -label L3641 -label L3639 +label L3655 +label L3653 load 40 method strref 41 m13s532 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 -brif 42 L3643 L3644 -label L3643 +brif 42 L3657 L3658 +label L3657 load 44 method load 45 args load 46 tid_bytes @@ -59081,14 +59258,14 @@ load 47 scope_id call 48 checker_expect_one_typed_argument void 4 44 45 46 47 load 49 tid_bytes ret 49 -label L3644 -label L3642 +label L3658 +label L3656 load 50 method strref 51 m13s531 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 -brif 52 L3646 L3647 -label L3646 +brif 52 L3660 L3661 +label L3660 load 54 method load 55 args call 56 checker_expect_no_arguments void 2 54 55 @@ -59098,8 +59275,8 @@ call 59 types_ti_result struct:TypeInfo 2 57 58 call 60 types_add_type_info int 1 59 call 61 pith_struct_release void 1 59 ret 60 -label L3647 -label L3645 +label L3661 +label L3659 strref 62 m13s429 strref 63 m13s530 load 64 method @@ -59134,31 +59311,31 @@ load 9 method strref 10 m13s514 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 -brif 11 L3649 L3650 -label L3649 +brif 11 L3663 L3664 +label L3663 load 13 method load 14 args call 15 checker_expect_no_arguments void 2 13 14 iconst 16 0 -store __or_16_3654 16 +store __or_16_3668 16 load 17 info field 18 17 64 int inner call 19 checker_type_supports_stringify bool 1 18 iconst 20 0 eq 21 19 20 -store __or_16_3654 21 -brif 21 L3655 L3654 -label L3654 +store __or_16_3668 21 +brif 21 L3669 L3668 +label L3668 load 22 info field 23 22 80 int value_type call 24 checker_type_supports_stringify bool 1 23 iconst 25 0 eq 26 24 25 -store __or_16_3654 26 -label L3655 -load 27 __or_16_3654 -brif 27 L3652 L3653 -label L3652 +store __or_16_3668 26 +label L3669 +load 27 __or_16_3668 +brif 27 L3666 L3667 +label L3666 strref 28 m13s304 strref 29 m13s529 call 30 checker_diagnostics_report_error void 2 28 29 @@ -59170,28 +59347,28 @@ call 35 pith_struct_release void 1 34 load 36 ret_info call 37 pith_struct_release void 1 36 ret 33 -label L3653 -label L3651 +label L3667 +label L3665 load 38 tid_string load 39 handler_info call 40 pith_struct_release void 1 39 load 41 ret_info call 42 pith_struct_release void 1 41 ret 38 -label L3650 -label L3648 +label L3664 +label L3662 load 43 method strref 44 m13s528 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 -brif 45 L3657 L3658 -label L3657 +brif 45 L3671 L3672 +label L3671 load 47 args call 48 pith_list_len int 1 47 iconst 49 1 neq 50 48 49 -brif 50 L3660 L3661 -label L3660 +brif 50 L3674 L3675 +label L3674 strref 51 m13s307 strref 52 m13s527 load 53 args @@ -59209,8 +59386,8 @@ call 64 pith_struct_release void 1 63 load 65 ret_info call 66 pith_struct_release void 1 65 ret 62 -label L3661 -label L3659 +label L3675 +label L3673 load 67 args iconst 68 0 call 69 pith_list_get_value_strict int 2 67 68 @@ -59225,20 +59402,20 @@ call 77 pith_struct_release void 1 76 load 78 ret_info call 79 pith_struct_release void 1 78 ret 75 -label L3658 -label L3656 +label L3672 +label L3670 load 80 method strref 81 m13s526 call 82 pith_cstring_eq bool 2 80 81 call 83 pith_cstring_release void 1 81 -brif 82 L3663 L3664 -label L3663 +brif 82 L3677 L3678 +label L3677 load 84 args call 85 pith_list_len int 1 84 iconst 86 1 neq 87 85 86 -brif 87 L3666 L3667 -label L3666 +brif 87 L3680 L3681 +label L3680 strref 88 m13s307 strref 89 m13s525 load 90 args @@ -59256,8 +59433,8 @@ call 101 pith_struct_release void 1 100 load 102 ret_info call 103 pith_struct_release void 1 102 ret 99 -label L3667 -label L3665 +label L3681 +label L3679 load 104 args iconst 105 0 call 106 pith_list_get_value_strict int 2 104 105 @@ -59267,16 +59444,16 @@ call 109 checker_c_check_expr int 2 107 108 store handler_type 109 load 110 handler_type call 111 types_is_error_type bool 1 110 -brif 111 L3669 L3670 -label L3669 +brif 111 L3683 L3684 +label L3683 load 112 types_TID_ERR load 113 handler_info call 114 pith_struct_release void 1 113 load 115 ret_info call 116 pith_struct_release void 1 115 ret 112 -label L3670 -label L3668 +label L3684 +label L3682 load 117 handler_info load 118 handler_type call 119 types_get_type_info struct:TypeInfo 1 118 @@ -59289,8 +59466,8 @@ call 125 pith_cstring_eq bool 2 122 123 iconst 126 1 sub 124 126 125 call 127 pith_cstring_release void 1 123 -brif 124 L3672 L3673 -label L3672 +brif 124 L3686 L3687 +label L3686 strref 128 m13s304 strref 129 m13s524 load 130 handler_type @@ -59307,15 +59484,15 @@ call 140 pith_struct_release void 1 139 load 141 ret_info call 142 pith_struct_release void 1 141 ret 138 -label L3673 -label L3671 +label L3687 +label L3685 load 143 handler_info field 144 143 48 list param_types call 145 pith_list_len int 1 144 iconst 146 1 neq 147 145 146 -brif 147 L3675 L3676 -label L3675 +brif 147 L3689 L3690 +label L3689 strref 148 m13s304 strref 149 m13s523 call 150 checker_diagnostics_report_error void 2 148 149 @@ -59327,8 +59504,8 @@ call 155 pith_struct_release void 1 154 load 156 ret_info call 157 pith_struct_release void 1 156 ret 153 -label L3676 -label L3674 +label L3690 +label L3688 load 158 handler_info field 159 158 48 list param_types iconst 160 0 @@ -59338,8 +59515,8 @@ field 163 162 80 int value_type call 164 checker_types_compatible bool 2 161 163 iconst 165 0 eq 166 164 165 -brif 166 L3678 L3679 -label L3678 +brif 166 L3692 L3693 +label L3692 strref 167 m13s304 strref 168 m13s522 load 169 info @@ -59369,8 +59546,8 @@ call 192 pith_struct_release void 1 191 load 193 ret_info call 194 pith_struct_release void 1 193 ret 190 -label L3679 -label L3677 +label L3693 +label L3691 load 195 ret_info load 196 handler_info field 197 196 56 int return_type @@ -59384,8 +59561,8 @@ call 204 pith_cstring_eq bool 2 201 202 iconst 205 1 sub 203 205 204 call 206 pith_cstring_release void 1 202 -brif 203 L3681 L3682 -label L3681 +brif 203 L3695 L3696 +label L3695 strref 207 m13s304 strref 208 m13s521 call 209 checker_diagnostics_report_error void 2 207 208 @@ -59397,8 +59574,8 @@ call 214 pith_struct_release void 1 213 load 215 ret_info call 216 pith_struct_release void 1 215 ret 212 -label L3682 -label L3680 +label L3696 +label L3694 load 217 ret_info field 218 217 64 int inner load 219 info @@ -59406,8 +59583,8 @@ field 220 219 64 int inner call 221 checker_types_compatible bool 2 218 220 iconst 222 0 eq 223 221 222 -brif 223 L3684 L3685 -label L3684 +brif 223 L3698 L3699 +label L3698 strref 224 m13s304 strref 225 m13s520 load 226 info @@ -59435,8 +59612,8 @@ call 247 pith_struct_release void 1 246 load 248 ret_info call 249 pith_struct_release void 1 248 ret 245 -label L3685 -label L3683 +label L3699 +label L3697 load 250 handler_info field 251 250 56 int return_type load 252 handler_info @@ -59444,8 +59621,8 @@ call 253 pith_struct_release void 1 252 load 254 ret_info call 255 pith_struct_release void 1 254 ret 251 -label L3664 -label L3662 +label L3678 +label L3676 load 256 types_TID_ERR load 257 handler_info call 258 pith_struct_release void 1 257 @@ -59475,28 +59652,28 @@ load 9 method strref 10 m13s514 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 -brif 11 L3687 L3688 -label L3687 +brif 11 L3701 L3702 +label L3701 load 13 method load 14 args call 15 checker_expect_no_arguments void 2 13 14 load 16 tid_string ret 16 -label L3688 -label L3686 +label L3702 +label L3700 load 17 method strref 18 m13s518 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -brif 19 L3690 L3691 -label L3690 +brif 19 L3704 L3705 +label L3704 load 21 method load 22 args call 23 checker_expect_no_arguments void 2 21 22 load 24 tid_float ret 24 -label L3691 -label L3689 +label L3705 +label L3703 strref 25 m13s429 strref 26 m13s517 load 27 method @@ -59530,28 +59707,28 @@ load 9 method strref 10 m13s514 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 -brif 11 L3693 L3694 -label L3693 +brif 11 L3707 L3708 +label L3707 load 13 method load 14 args call 15 checker_expect_no_arguments void 2 13 14 load 16 tid_string ret 16 -label L3694 -label L3692 +label L3708 +label L3706 load 17 method strref 18 m13s516 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -brif 19 L3696 L3697 -label L3696 +brif 19 L3710 L3711 +label L3710 load 21 method load 22 args call 23 checker_expect_no_arguments void 2 21 22 load 24 tid_int ret 24 -label L3697 -label L3695 +label L3711 +label L3709 strref 25 m13s429 strref 26 m13s515 load 27 method @@ -59581,15 +59758,15 @@ load 6 method strref 7 m13s514 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -brif 8 L3699 L3700 -label L3699 +brif 8 L3713 L3714 +label L3713 load 10 method load 11 args call 12 checker_expect_no_arguments void 2 10 11 load 13 tid_string ret 13 -label L3700 -label L3698 +label L3714 +label L3712 strref 14 m13s429 strref 15 m13s513 load 16 method @@ -59635,8 +59812,8 @@ load 18 method strref 19 m13s512 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 -brif 20 L3702 L3703 -label L3702 +brif 20 L3716 L3717 +label L3716 load 22 method load 23 args load 24 elem @@ -59644,66 +59821,66 @@ load 25 scope_id call 26 checker_expect_one_typed_argument void 4 22 23 24 25 load 27 tid_void ret 27 -label L3703 -label L3701 +label L3717 +label L3715 load 28 method strref 29 m13s454 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L3705 L3706 -label L3705 +brif 30 L3719 L3720 +label L3719 load 32 method load 33 args call 34 checker_expect_no_arguments void 2 32 33 load 35 tid_int ret 35 -label L3706 -label L3704 +label L3720 +label L3718 load 36 method strref 37 m13s488 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 -brif 38 L3708 L3709 -label L3708 +brif 38 L3722 L3723 +label L3722 load 40 method load 41 args call 42 checker_expect_no_arguments void 2 40 41 load 43 tid_bool ret 43 -label L3709 -label L3707 +label L3723 +label L3721 load 44 method strref 45 m13s487 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 -brif 46 L3711 L3712 -label L3711 +brif 46 L3725 L3726 +label L3725 load 48 method load 49 args call 50 checker_expect_no_arguments void 2 48 49 load 51 tid_void ret 51 -label L3712 -label L3710 +label L3726 +label L3724 load 52 method strref 53 m13s511 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 -brif 54 L3714 L3715 -label L3714 +brif 54 L3728 L3729 +label L3728 load 56 method load 57 args call 58 checker_expect_no_arguments void 2 56 57 load 59 tid_void ret 59 -label L3715 -label L3713 +label L3729 +label L3727 load 60 method strref 61 m13s485 call 62 pith_cstring_eq bool 2 60 61 call 63 pith_cstring_release void 1 61 -brif 62 L3717 L3718 -label L3717 +brif 62 L3731 L3732 +label L3731 load 64 method load 65 args load 66 tid_int @@ -59711,20 +59888,20 @@ load 67 scope_id call 68 checker_expect_one_typed_argument void 4 64 65 66 67 load 69 tid_void ret 69 -label L3718 -label L3716 +label L3732 +label L3730 load 70 method strref 71 m13s491 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 -brif 72 L3720 L3721 -label L3720 +brif 72 L3734 L3735 +label L3734 load 74 args call 75 pith_list_len int 1 74 iconst 76 2 neq 77 75 76 -brif 77 L3723 L3724 -label L3723 +brif 77 L3737 L3738 +label L3737 strref 78 m13s307 strref 79 m13s510 load 80 args @@ -59738,8 +59915,8 @@ call 87 pith_cstring_release void 1 78 call 88 pith_cstring_release void 1 83 load 89 tid_void ret 89 -label L3724 -label L3722 +label L3738 +label L3736 load 90 args iconst 91 0 call 92 pith_list_get_value_strict int 2 90 91 @@ -59754,14 +59931,14 @@ load 100 scope_id call 101 checker_check_argument_type void 3 98 99 100 load 102 tid_void ret 102 -label L3721 -label L3719 +label L3735 +label L3733 load 103 method strref 104 m13s486 call 105 pith_cstring_eq bool 2 103 104 call 106 pith_cstring_release void 1 104 -brif 105 L3726 L3727 -label L3726 +brif 105 L3740 L3741 +label L3740 load 107 method load 108 args load 109 elem @@ -59769,36 +59946,36 @@ load 110 scope_id call 111 checker_expect_one_typed_argument void 4 107 108 109 110 load 112 tid_bool ret 112 -label L3727 -label L3725 +label L3741 +label L3739 load 113 method strref 114 m13s509 call 115 pith_cstring_eq bool 2 113 114 call 116 pith_cstring_release void 1 114 -brif 115 L3729 L3730 -label L3729 +brif 115 L3743 L3744 +label L3743 load 117 method load 118 args load 119 tid_string load 120 scope_id call 121 checker_expect_one_typed_argument void 4 117 118 119 120 iconst 122 0 -store __and_122_3734 122 +store __and_122_3748 122 load 123 elem load 124 tid_string neq 125 123 124 -store __and_122_3734 125 -brif 125 L3734 L3735 -label L3734 +store __and_122_3748 125 +brif 125 L3748 L3749 +label L3748 load 126 elem call 127 types_is_integer_type bool 1 126 iconst 128 0 eq 129 127 128 -store __and_122_3734 129 -label L3735 -load 130 __and_122_3734 -brif 130 L3732 L3733 -label L3732 +store __and_122_3748 129 +label L3749 +load 130 __and_122_3748 +brif 130 L3746 L3747 +label L3746 strref 131 m13s304 strref 132 m13s508 load 133 elem @@ -59813,19 +59990,19 @@ call 141 pith_cstring_release void 1 138 call 142 checker_diagnostics_report_error void 2 131 139 call 143 pith_cstring_release void 1 131 call 144 pith_cstring_release void 1 139 -jmp L3731 -label L3733 -label L3731 +jmp L3745 +label L3747 +label L3745 load 145 tid_string ret 145 -label L3730 -label L3728 +label L3744 +label L3742 load 146 method strref 147 m13s506 call 148 pith_cstring_eq bool 2 146 147 call 149 pith_cstring_release void 1 147 -brif 148 L3737 L3738 -label L3737 +brif 148 L3751 L3752 +label L3751 load 150 method load 151 args load 152 elem @@ -59836,14 +60013,14 @@ call 156 types_ti_optional struct:TypeInfo 1 155 call 157 types_add_type_info int 1 156 call 158 pith_struct_release void 1 156 ret 157 -label L3738 -label L3736 +label L3752 +label L3750 load 159 method strref 160 m13s505 call 161 pith_cstring_eq bool 2 159 160 call 162 pith_cstring_release void 1 160 -brif 161 L3740 L3741 -label L3740 +brif 161 L3754 L3755 +label L3754 load 163 method load 164 args load 165 scope_id @@ -59851,67 +60028,67 @@ call 166 checker_expect_two_int_arguments void 3 163 164 165 load 167 elem call 168 checker_type_intern_intern_list_type int 1 167 ret 168 -label L3741 -label L3739 +label L3755 +label L3753 load 169 method strref 170 m13s504 call 171 pith_cstring_eq bool 2 169 170 call 172 pith_cstring_release void 1 170 -brif 171 L3743 L3744 -label L3743 +brif 171 L3757 L3758 +label L3757 load 173 method load 174 args call 175 checker_expect_no_arguments void 2 173 174 load 176 elem call 177 checker_type_intern_intern_list_type int 1 176 ret 177 -label L3744 -label L3742 +label L3758 +label L3756 load 178 method strref 179 m13s20 call 180 pith_cstring_eq bool 2 178 179 call 181 pith_cstring_release void 1 179 -brif 180 L3746 L3747 -label L3746 +brif 180 L3760 L3761 +label L3760 load 182 info load 183 args load 184 scope_id call 185 checker_check_list_map_method int 3 182 183 184 ret 185 -label L3747 -label L3745 +label L3761 +label L3759 load 186 method strref 187 m13s503 call 188 pith_cstring_eq bool 2 186 187 call 189 pith_cstring_release void 1 187 -brif 188 L3749 L3750 -label L3749 +brif 188 L3763 L3764 +label L3763 load 190 info load 191 args load 192 scope_id call 193 checker_check_list_filter_method int 3 190 191 192 ret 193 -label L3750 -label L3748 +label L3764 +label L3762 load 194 method strref 195 m13s502 call 196 pith_cstring_eq bool 2 194 195 call 197 pith_cstring_release void 1 195 -brif 196 L3752 L3753 -label L3752 +brif 196 L3766 L3767 +label L3766 load 198 info load 199 args load 200 scope_id call 201 checker_check_list_reduce_method int 3 198 199 200 ret 201 -label L3753 -label L3751 +label L3767 +label L3765 load 202 method strref 203 m13s497 call 204 pith_cstring_eq bool 2 202 203 call 205 pith_cstring_release void 1 203 -brif 204 L3755 L3756 -label L3755 +brif 204 L3769 L3770 +label L3769 load 206 method load 207 args load 208 tid_int @@ -59922,14 +60099,14 @@ call 212 types_ti_optional struct:TypeInfo 1 211 call 213 types_add_type_info int 1 212 call 214 pith_struct_release void 1 212 ret 213 -label L3756 -label L3754 +label L3770 +label L3768 load 215 method strref 216 m13s501 call 217 pith_cstring_eq bool 2 215 216 call 218 pith_cstring_release void 1 216 -brif 217 L3758 L3759 -label L3758 +brif 217 L3772 L3773 +label L3772 load 219 method load 220 args call 221 checker_expect_no_arguments void 2 219 220 @@ -59938,14 +60115,14 @@ call 223 types_ti_optional struct:TypeInfo 1 222 call 224 types_add_type_info int 1 223 call 225 pith_struct_release void 1 223 ret 224 -label L3759 -label L3757 +label L3773 +label L3771 load 226 method strref 227 m13s500 call 228 pith_cstring_eq bool 2 226 227 call 229 pith_cstring_release void 1 227 -brif 228 L3761 L3762 -label L3761 +brif 228 L3775 L3776 +label L3775 load 230 method load 231 args call 232 checker_expect_no_arguments void 2 230 231 @@ -59954,8 +60131,8 @@ call 234 types_ti_optional struct:TypeInfo 1 233 call 235 types_add_type_info int 1 234 call 236 pith_struct_release void 1 234 ret 235 -label L3762 -label L3760 +label L3776 +label L3774 iconst 237 1 iconst 239 0 sub 238 239 237 @@ -59990,14 +60167,14 @@ load 17 method strref 18 m13s491 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -brif 19 L3764 L3765 -label L3764 +brif 19 L3778 L3779 +label L3778 load 21 args call 22 pith_list_len int 1 21 iconst 23 2 neq 24 22 23 -brif 24 L3767 L3768 -label L3767 +brif 24 L3781 L3782 +label L3781 strref 25 m13s307 strref 26 m13s499 load 27 args @@ -60011,8 +60188,8 @@ call 34 pith_cstring_release void 1 25 call 35 pith_cstring_release void 1 30 load 36 tid_void ret 36 -label L3768 -label L3766 +label L3782 +label L3780 load 37 args iconst 38 0 call 39 pith_list_get_value_strict int 2 37 38 @@ -60027,53 +60204,53 @@ load 47 scope_id call 48 checker_check_argument_type void 3 45 46 47 load 49 tid_void ret 49 -label L3765 -label L3763 +label L3779 +label L3777 load 50 method strref 51 m13s454 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 -brif 52 L3770 L3771 -label L3770 +brif 52 L3784 L3785 +label L3784 load 54 method load 55 args call 56 checker_expect_no_arguments void 2 54 55 load 57 tid_int ret 57 -label L3771 -label L3769 +label L3785 +label L3783 load 58 method strref 59 m13s488 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 -brif 60 L3773 L3774 -label L3773 +brif 60 L3787 L3788 +label L3787 load 62 method load 63 args call 64 checker_expect_no_arguments void 2 62 63 load 65 tid_bool ret 65 -label L3774 -label L3772 +label L3788 +label L3786 load 66 method strref 67 m13s487 call 68 pith_cstring_eq bool 2 66 67 call 69 pith_cstring_release void 1 67 -brif 68 L3776 L3777 -label L3776 +brif 68 L3790 L3791 +label L3790 load 70 method load 71 args call 72 checker_expect_no_arguments void 2 70 71 load 73 tid_void ret 73 -label L3777 -label L3775 +label L3791 +label L3789 load 74 method strref 75 m13s498 call 76 pith_cstring_eq bool 2 74 75 call 77 pith_cstring_release void 1 75 -brif 76 L3779 L3780 -label L3779 +brif 76 L3793 L3794 +label L3793 load 78 method load 79 args load 80 key_t @@ -60081,14 +60258,14 @@ load 81 scope_id call 82 checker_expect_one_typed_argument void 4 78 79 80 81 load 83 tid_bool ret 83 -label L3780 -label L3778 +label L3794 +label L3792 load 84 method strref 85 m13s497 call 86 pith_cstring_eq bool 2 84 85 call 87 pith_cstring_release void 1 85 -brif 86 L3782 L3783 -label L3782 +brif 86 L3796 L3797 +label L3796 load 88 method load 89 args load 90 key_t @@ -60099,20 +60276,20 @@ call 94 types_ti_optional struct:TypeInfo 1 93 call 95 types_add_type_info int 1 94 call 96 pith_struct_release void 1 94 ret 95 -label L3783 -label L3781 +label L3797 +label L3795 load 97 method strref 98 m13s496 call 99 pith_cstring_eq bool 2 97 98 call 100 pith_cstring_release void 1 98 -brif 99 L3785 L3786 -label L3785 +brif 99 L3799 L3800 +label L3799 load 101 args call 102 pith_list_len int 1 101 iconst 103 2 neq 104 102 103 -brif 104 L3788 L3789 -label L3788 +brif 104 L3802 L3803 +label L3802 strref 105 m13s307 strref 106 m13s495 load 107 args @@ -60126,8 +60303,8 @@ call 114 pith_cstring_release void 1 105 call 115 pith_cstring_release void 1 110 load 116 val_t ret 116 -label L3789 -label L3787 +label L3803 +label L3801 load 117 args iconst 118 0 call 119 pith_list_get_value_strict int 2 117 118 @@ -60142,14 +60319,14 @@ load 127 scope_id call 128 checker_check_argument_type void 3 125 126 127 load 129 val_t ret 129 -label L3786 -label L3784 +label L3800 +label L3798 load 130 method strref 131 m13s485 call 132 pith_cstring_eq bool 2 130 131 call 133 pith_cstring_release void 1 131 -brif 132 L3791 L3792 -label L3791 +brif 132 L3805 L3806 +label L3805 load 134 method load 135 args load 136 key_t @@ -60157,14 +60334,14 @@ load 137 scope_id call 138 checker_expect_one_typed_argument void 4 134 135 136 137 load 139 tid_void ret 139 -label L3792 -label L3790 +label L3806 +label L3804 load 140 method strref 141 m13s494 call 142 pith_cstring_eq bool 2 140 141 call 143 pith_cstring_release void 1 141 -brif 142 L3794 L3795 -label L3794 +brif 142 L3808 L3809 +label L3808 load 144 method load 145 args load 146 key_t @@ -60172,36 +60349,36 @@ load 147 scope_id call 148 checker_expect_one_typed_argument void 4 144 145 146 147 load 149 val_t ret 149 -label L3795 -label L3793 +label L3809 +label L3807 load 150 method strref 151 m13s493 call 152 pith_cstring_eq bool 2 150 151 call 153 pith_cstring_release void 1 151 -brif 152 L3797 L3798 -label L3797 +brif 152 L3811 L3812 +label L3811 load 154 method load 155 args call 156 checker_expect_no_arguments void 2 154 155 load 157 key_t call 158 checker_type_intern_intern_list_type int 1 157 ret 158 -label L3798 -label L3796 +label L3812 +label L3810 load 159 method strref 160 m13s492 call 161 pith_cstring_eq bool 2 159 160 call 162 pith_cstring_release void 1 160 -brif 161 L3800 L3801 -label L3800 +brif 161 L3814 L3815 +label L3814 load 163 method load 164 args call 165 checker_expect_no_arguments void 2 163 164 load 166 val_t call 167 checker_type_intern_intern_list_type int 1 166 ret 167 -label L3801 -label L3799 +label L3815 +label L3813 iconst 168 1 iconst 170 0 sub 169 170 168 @@ -60221,8 +60398,8 @@ load 6 method strref 7 m13s491 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -brif 8 L3803 L3804 -label L3803 +brif 8 L3817 L3818 +label L3817 strref 10 m13s429 strref 11 m13s490 strref 12 m13s489 @@ -60232,14 +60409,14 @@ call 15 pith_cstring_release void 1 11 call 16 pith_cstring_release void 1 12 load 17 types_TID_ERR ret 17 -label L3804 -label L3802 +label L3818 +label L3816 load 18 method strref 19 m13s480 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 -brif 20 L3806 L3807 -label L3806 +brif 20 L3820 L3821 +label L3820 load 22 method load 23 args load 24 elem @@ -60247,53 +60424,53 @@ load 25 scope_id call 26 checker_expect_one_typed_argument void 4 22 23 24 25 load 27 types_TID_VOID ret 27 -label L3807 -label L3805 +label L3821 +label L3819 load 28 method strref 29 m13s454 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L3809 L3810 -label L3809 +brif 30 L3823 L3824 +label L3823 load 32 method load 33 args call 34 checker_expect_no_arguments void 2 32 33 load 35 types_TID_INT ret 35 -label L3810 -label L3808 +label L3824 +label L3822 load 36 method strref 37 m13s488 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 -brif 38 L3812 L3813 -label L3812 +brif 38 L3826 L3827 +label L3826 load 40 method load 41 args call 42 checker_expect_no_arguments void 2 40 41 load 43 types_TID_BOOL ret 43 -label L3813 -label L3811 +label L3827 +label L3825 load 44 method strref 45 m13s487 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 -brif 46 L3815 L3816 -label L3815 +brif 46 L3829 L3830 +label L3829 load 48 method load 49 args call 50 checker_expect_no_arguments void 2 48 49 load 51 types_TID_VOID ret 51 -label L3816 -label L3814 +label L3830 +label L3828 load 52 method strref 53 m13s486 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 -brif 54 L3818 L3819 -label L3818 +brif 54 L3832 L3833 +label L3832 load 56 method load 57 args load 58 elem @@ -60301,14 +60478,14 @@ load 59 scope_id call 60 checker_expect_one_typed_argument void 4 56 57 58 59 load 61 types_TID_BOOL ret 61 -label L3819 -label L3817 +label L3833 +label L3831 load 62 method strref 63 m13s485 call 64 pith_cstring_eq bool 2 62 63 call 65 pith_cstring_release void 1 63 -brif 64 L3821 L3822 -label L3821 +brif 64 L3835 L3836 +label L3835 load 66 method load 67 args load 68 elem @@ -60316,8 +60493,8 @@ load 69 scope_id call 70 checker_expect_one_typed_argument void 4 66 67 68 69 load 71 types_TID_VOID ret 71 -label L3822 -label L3820 +label L3836 +label L3834 iconst 72 1 iconst 74 0 sub 73 74 72 @@ -60346,51 +60523,51 @@ load 13 type_name strref 14 m13s279 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 -brif 15 L3824 L3825 -label L3824 +brif 15 L3838 L3839 +label L3838 load 17 method strref 18 m13s484 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -brif 19 L3827 L3828 -label L3827 +brif 19 L3841 L3842 +label L3841 strref 21 m13s483 load 22 args call 23 checker_expect_no_arguments void 2 21 22 call 24 pith_cstring_release void 1 21 load 25 tid_void ret 25 -label L3828 -label L3826 +label L3842 +label L3840 load 26 method strref 27 m13s482 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 -brif 28 L3830 L3831 -label L3830 +brif 28 L3844 L3845 +label L3844 strref 30 m13s481 load 31 args call 32 checker_expect_no_arguments void 2 30 31 call 33 pith_cstring_release void 1 30 load 34 tid_void ret 34 -label L3831 -label L3829 -jmp L3823 -label L3825 -label L3823 +label L3845 +label L3843 +jmp L3837 +label L3839 +label L3837 load 35 type_name strref 36 m13s278 call 37 pith_cstring_eq bool 2 35 36 call 38 pith_cstring_release void 1 36 -brif 37 L3833 L3834 -label L3833 +brif 37 L3847 L3848 +label L3847 load 39 method strref 40 m13s480 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 -brif 41 L3836 L3837 -label L3836 +brif 41 L3850 L3851 +label L3850 strref 43 m13s479 load 44 args load 45 tid_int @@ -60399,82 +60576,82 @@ call 47 checker_expect_one_typed_argument void 4 43 44 45 46 call 48 pith_cstring_release void 1 43 load 49 tid_void ret 49 -label L3837 -label L3835 +label L3851 +label L3849 load 50 method strref 51 m13s478 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 -brif 52 L3839 L3840 -label L3839 +brif 52 L3853 L3854 +label L3853 strref 54 m13s477 load 55 args call 56 checker_expect_no_arguments void 2 54 55 call 57 pith_cstring_release void 1 54 load 58 tid_void ret 58 -label L3840 -label L3838 +label L3854 +label L3852 load 59 method strref 60 m13s476 call 61 pith_cstring_eq bool 2 59 60 call 62 pith_cstring_release void 1 60 -brif 61 L3842 L3843 -label L3842 +brif 61 L3856 L3857 +label L3856 strref 63 m13s475 load 64 args call 65 checker_expect_no_arguments void 2 63 64 call 66 pith_cstring_release void 1 63 load 67 tid_void ret 67 -label L3843 -label L3841 -jmp L3832 -label L3834 -label L3832 +label L3857 +label L3855 +jmp L3846 +label L3848 +label L3846 load 68 type_name strref 69 m13s277 call 70 pith_cstring_eq bool 2 68 69 call 71 pith_cstring_release void 1 69 -brif 70 L3845 L3846 -label L3845 +brif 70 L3859 L3860 +label L3859 load 72 method strref 73 m13s474 call 74 pith_cstring_eq bool 2 72 73 call 75 pith_cstring_release void 1 73 -brif 74 L3848 L3849 -label L3848 +brif 74 L3862 L3863 +label L3862 strref 76 m13s473 load 77 args call 78 checker_expect_no_arguments void 2 76 77 call 79 pith_cstring_release void 1 76 load 80 tid_void ret 80 -label L3849 -label L3847 +label L3863 +label L3861 load 81 method strref 82 m13s472 call 83 pith_cstring_eq bool 2 81 82 call 84 pith_cstring_release void 1 82 -brif 83 L3851 L3852 -label L3851 +brif 83 L3865 L3866 +label L3865 strref 85 m13s471 load 86 args call 87 checker_expect_no_arguments void 2 85 86 call 88 pith_cstring_release void 1 85 load 89 tid_void ret 89 -label L3852 -label L3850 -jmp L3844 -label L3846 -label L3844 +label L3866 +label L3864 +jmp L3858 +label L3860 +label L3858 load 90 type_name strref 91 m13s276 call 92 pith_cstring_eq bool 2 90 91 call 93 pith_cstring_release void 1 91 -brif 92 L3854 L3855 -label L3854 +brif 92 L3868 L3869 +label L3868 strref 94 m13s12 call 95 types_lookup_type_id int 1 94 call 96 pith_cstring_release void 1 94 @@ -60483,22 +60660,22 @@ load 97 method strref 98 m13s470 call 99 pith_cstring_eq bool 2 97 98 call 100 pith_cstring_release void 1 98 -brif 99 L3857 L3858 -label L3857 +brif 99 L3871 L3872 +label L3871 strref 101 m13s469 load 102 args call 103 checker_expect_no_arguments void 2 101 102 call 104 pith_cstring_release void 1 101 load 105 tid_int ret 105 -label L3858 -label L3856 +label L3872 +label L3870 load 106 method strref 107 m13s468 call 108 pith_cstring_eq bool 2 106 107 call 109 pith_cstring_release void 1 107 -brif 108 L3860 L3861 -label L3860 +brif 108 L3874 L3875 +label L3874 strref 110 m13s467 load 111 args load 112 tid_int @@ -60507,14 +60684,14 @@ call 114 checker_expect_one_typed_argument void 4 110 111 112 113 call 115 pith_cstring_release void 1 110 load 116 tid_void ret 116 -label L3861 -label L3859 +label L3875 +label L3873 load 117 method strref 118 m13s466 call 119 pith_cstring_eq bool 2 117 118 call 120 pith_cstring_release void 1 118 -brif 119 L3863 L3864 -label L3863 +brif 119 L3877 L3878 +label L3877 strref 121 m13s465 load 122 args load 123 tid_int @@ -60524,11 +60701,11 @@ call 126 checker_expect_two_typed_arguments void 5 121 122 123 124 125 call 127 pith_cstring_release void 1 121 load 128 tid_bool ret 128 -label L3864 -label L3862 -jmp L3853 -label L3855 -label L3853 +label L3878 +label L3876 +jmp L3867 +label L3869 +label L3867 load 129 tid_err ret 129 iconst 130 0 @@ -60558,8 +60735,8 @@ load 15 method strref 16 m13s381 call 17 pith_cstring_eq bool 2 15 16 call 18 pith_cstring_release void 1 16 -brif 17 L3866 L3867 -label L3866 +brif 17 L3880 L3881 +label L3880 strref 19 m13s464 load 20 args load 21 inner @@ -60568,14 +60745,14 @@ call 23 checker_expect_one_typed_argument void 4 19 20 21 22 call 24 pith_cstring_release void 1 19 load 25 tid_bool ret 25 -label L3867 -label L3865 +label L3881 +label L3879 load 26 method strref 27 m13s385 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 -brif 28 L3869 L3870 -label L3869 +brif 28 L3883 L3884 +label L3883 strref 30 m13s463 load 31 args call 32 checker_expect_no_arguments void 2 30 31 @@ -60585,14 +60762,14 @@ call 35 types_ti_optional struct:TypeInfo 1 34 call 36 types_add_type_info int 1 35 call 37 pith_struct_release void 1 35 ret 36 -label L3870 -label L3868 +label L3884 +label L3882 load 38 method strref 39 m13s462 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 -brif 40 L3872 L3873 -label L3872 +brif 40 L3886 L3887 +label L3886 strref 42 m13s461 load 43 args load 44 inner @@ -60601,14 +60778,14 @@ call 46 checker_expect_one_typed_argument void 4 42 43 44 45 call 47 pith_cstring_release void 1 42 load 48 tid_bool ret 48 -label L3873 -label L3871 +label L3887 +label L3885 load 49 method strref 50 m13s460 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 50 -brif 51 L3875 L3876 -label L3875 +brif 51 L3889 L3890 +label L3889 strref 53 m13s459 load 54 args call 55 checker_expect_no_arguments void 2 53 54 @@ -60618,64 +60795,64 @@ call 58 types_ti_optional struct:TypeInfo 1 57 call 59 types_add_type_info int 1 58 call 60 pith_struct_release void 1 58 ret 59 -label L3876 -label L3874 +label L3890 +label L3888 load 61 method strref 62 m13s458 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 -brif 63 L3878 L3879 -label L3878 +brif 63 L3892 L3893 +label L3892 strref 65 m13s457 load 66 args call 67 checker_expect_no_arguments void 2 65 66 call 68 pith_cstring_release void 1 65 load 69 tid_bool ret 69 -label L3879 -label L3877 +label L3893 +label L3891 load 70 method strref 71 m13s456 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 -brif 72 L3881 L3882 -label L3881 +brif 72 L3895 L3896 +label L3895 strref 74 m13s455 load 75 args call 76 checker_expect_no_arguments void 2 74 75 call 77 pith_cstring_release void 1 74 load 78 tid_bool ret 78 -label L3882 -label L3880 +label L3896 +label L3894 load 79 method strref 80 m13s454 call 81 pith_cstring_eq bool 2 79 80 call 82 pith_cstring_release void 1 80 -brif 81 L3884 L3885 -label L3884 +brif 81 L3898 L3899 +label L3898 strref 83 m13s453 load 84 args call 85 checker_expect_no_arguments void 2 83 84 call 86 pith_cstring_release void 1 83 load 87 tid_int ret 87 -label L3885 -label L3883 +label L3899 +label L3897 load 88 method strref 89 m13s452 call 90 pith_cstring_eq bool 2 88 89 call 91 pith_cstring_release void 1 89 -brif 90 L3887 L3888 -label L3887 +brif 90 L3901 L3902 +label L3901 strref 92 m13s451 load 93 args call 94 checker_expect_no_arguments void 2 92 93 call 95 pith_cstring_release void 1 92 load 96 tid_int ret 96 -label L3888 -label L3886 +label L3902 +label L3900 load 97 tid_err ret 97 iconst 98 0 @@ -60702,30 +60879,30 @@ load 13 method strref 14 m13s450 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 -brif 15 L3890 L3891 -label L3890 +brif 15 L3904 L3905 +label L3904 strref 17 m13s449 load 18 args call 19 checker_expect_no_arguments void 2 17 18 call 20 pith_cstring_release void 1 17 load 21 tid_bool ret 21 -label L3891 -label L3889 +label L3905 +label L3903 load 22 method strref 23 m13s448 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 -brif 24 L3893 L3894 -label L3893 +brif 24 L3907 L3908 +label L3907 strref 26 m13s447 load 27 args call 28 checker_expect_no_arguments void 2 26 27 call 29 pith_cstring_release void 1 26 load 30 tid_void ret 30 -label L3894 -label L3892 +label L3908 +label L3906 load 31 tid_err ret 31 iconst 32 0 @@ -60738,8 +60915,8 @@ load 2 args call 3 pith_list_len int 1 2 iconst 4 0 neq 5 3 4 -brif 5 L3896 L3897 -label L3896 +brif 5 L3910 L3911 +label L3910 strref 6 m13s307 load 7 method strref 8 m13s446 @@ -60754,9 +60931,9 @@ call 16 pith_cstring_release void 1 13 call 17 checker_diagnostics_report_error void 2 6 14 call 18 pith_cstring_release void 1 6 call 19 pith_cstring_release void 1 14 -jmp L3895 -label L3897 -label L3895 +jmp L3909 +label L3911 +label L3909 iconst 20 0 ret 20 endfunc @@ -60772,8 +60949,8 @@ load 6 args call 7 pith_list_len int 1 6 iconst 8 1 neq 9 7 8 -brif 9 L3899 L3900 -label L3899 +brif 9 L3913 L3914 +label L3913 strref 10 m13s307 load 11 method strref 12 m13s445 @@ -60790,8 +60967,8 @@ call 22 pith_cstring_release void 1 10 call 23 pith_cstring_release void 1 18 iconst 24 0 ret 24 -label L3900 -label L3898 +label L3914 +label L3912 load 25 args iconst 26 0 call 27 pith_list_get_value_strict int 2 25 26 @@ -60813,8 +60990,8 @@ load 6 args call 7 pith_list_len int 1 6 iconst 8 2 neq 9 7 8 -brif 9 L3902 L3903 -label L3902 +brif 9 L3916 L3917 +label L3916 strref 10 m13s307 load 11 method strref 12 m13s444 @@ -60831,8 +61008,8 @@ call 22 pith_cstring_release void 1 10 call 23 pith_cstring_release void 1 18 iconst 24 0 ret 24 -label L3903 -label L3901 +label L3917 +label L3915 load 25 args iconst 26 0 call 27 pith_list_get_value_strict int 2 25 26 @@ -60860,8 +61037,8 @@ load 6 args call 7 pith_list_len int 1 6 iconst 8 2 neq 9 7 8 -brif 9 L3905 L3906 -label L3905 +brif 9 L3919 L3920 +label L3919 strref 10 m13s307 load 11 method strref 12 m13s444 @@ -60878,8 +61055,8 @@ call 22 pith_cstring_release void 1 10 call 23 pith_cstring_release void 1 18 iconst 24 0 ret 24 -label L3906 -label L3904 +label L3920 +label L3918 load 25 args iconst 26 0 call 27 pith_list_get_value_strict int 2 25 26 @@ -60911,8 +61088,8 @@ load 9 args call 10 pith_list_len int 1 9 iconst 11 2 neq 12 10 11 -brif 12 L3908 L3909 -label L3908 +brif 12 L3922 L3923 +label L3922 strref 13 m13s307 load 14 method strref 15 m13s444 @@ -60929,8 +61106,8 @@ call 25 pith_cstring_release void 1 13 call 26 pith_cstring_release void 1 21 iconst 27 0 ret 27 -label L3909 -label L3907 +label L3923 +label L3921 load 28 args iconst 29 0 call 30 pith_list_get_value_strict int 2 28 29 @@ -60955,8 +61132,8 @@ load 4 args call 5 pith_list_len int 1 4 iconst 6 1 neq 7 5 6 -brif 7 L3911 L3912 -label L3911 +brif 7 L3925 L3926 +label L3925 strref 8 m13s307 load 9 method strref 10 m13s445 @@ -60973,8 +61150,8 @@ call 20 pith_cstring_release void 1 8 call 21 pith_cstring_release void 1 16 iconst 22 0 ret 22 -label L3912 -label L3910 +label L3926 +label L3924 load 23 args iconst 24 0 call 25 pith_list_get_value_strict int 2 23 24 @@ -60994,8 +61171,8 @@ load 5 args call 6 pith_list_len int 1 5 iconst 7 2 neq 8 6 7 -brif 8 L3914 L3915 -label L3914 +brif 8 L3928 L3929 +label L3928 strref 9 m13s307 load 10 method strref 11 m13s444 @@ -61012,8 +61189,8 @@ call 21 pith_cstring_release void 1 9 call 22 pith_cstring_release void 1 17 iconst 23 0 ret 23 -label L3915 -label L3913 +label L3929 +label L3927 load 24 args iconst 25 0 call 26 pith_list_get_value_strict int 2 24 25 @@ -61042,20 +61219,20 @@ load 7 actual call 8 types_is_error_type bool 1 7 iconst 9 0 eq 10 8 9 -brif 10 L3917 L3918 -label L3917 +brif 10 L3931 L3932 +label L3931 load 11 actual load 12 expected neq 13 11 12 -brif 13 L3920 L3921 -label L3920 +brif 13 L3934 L3935 +label L3934 load 14 actual load 15 expected call 16 checker_types_structurally_equal bool 2 14 15 iconst 17 0 eq 18 16 17 -brif 18 L3923 L3924 -label L3923 +brif 18 L3937 L3938 +label L3937 strref 19 m13s304 strref 20 m13s443 load 21 expected @@ -61075,15 +61252,15 @@ call 34 pith_cstring_release void 1 31 call 35 checker_diagnostics_report_error void 2 19 32 call 36 pith_cstring_release void 1 19 call 37 pith_cstring_release void 1 32 -jmp L3922 -label L3924 -label L3922 -jmp L3919 -label L3921 -label L3919 -jmp L3916 -label L3918 -label L3916 +jmp L3936 +label L3938 +label L3936 +jmp L3933 +label L3935 +label L3933 +jmp L3930 +label L3932 +label L3930 iconst 38 0 ret 38 endfunc @@ -61109,8 +61286,8 @@ field 10 9 16 list children call 11 pith_list_len int 1 10 iconst 12 1 lt 13 11 12 -brif 13 L3926 L3927 -label L3926 +brif 13 L3940 L3941 +label L3940 load 14 types_TID_ERR load 15 field_name call 16 pith_cstring_release void 1 15 @@ -61127,8 +61304,8 @@ call 26 pith_cstring_release void 1 25 load 27 obj_info call 28 pith_struct_release void 1 27 ret 14 -label L3927 -label L3925 +label L3941 +label L3939 load 29 field_name load 30 node field 31 30 8 string value @@ -61150,8 +61327,8 @@ field 43 42 0 string kind strref 44 m13s293 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 -brif 45 L3929 L3930 -label L3929 +brif 45 L3943 L3944 +label L3943 load 47 obj_name load 48 obj_node field 49 48 8 string value @@ -61161,8 +61338,8 @@ store obj_name 49 load 52 checker_module_aliases load 53 obj_name call 54 contains_key bool 2 52 53 -brif 54 L3932 L3933 -label L3932 +brif 54 L3946 L3947 +label L3946 load 55 module_path load 56 checker_module_aliases load 57 obj_name @@ -61187,8 +61364,8 @@ load 72 field_name call 73 checker_module_function_is_visible bool 2 71 72 iconst 75 1 sub 74 75 73 -brif 74 L3935 L3936 -label L3935 +brif 74 L3949 L3950 +label L3949 strref 76 m13s442 strref 77 m13s349 load 78 field_name @@ -61224,8 +61401,8 @@ call 107 pith_cstring_release void 1 106 load 108 obj_info call 109 pith_struct_release void 1 108 ret 95 -label L3936 -label L3934 +label L3950 +label L3948 load 110 scope_id load 111 module_name call 112 scope_lookup_binding int 2 110 111 @@ -61233,8 +61410,8 @@ store func_tid 112 load 113 func_tid iconst 114 0 gte 115 113 114 -brif 115 L3938 L3939 -label L3938 +brif 115 L3952 L3953 +label L3952 load 116 func_tid load 117 field_name call 118 pith_cstring_release void 1 117 @@ -61251,8 +61428,8 @@ call 128 pith_cstring_release void 1 127 load 129 obj_info call 130 pith_struct_release void 1 129 ret 116 -label L3939 -label L3937 +label L3953 +label L3951 load 131 scope_id load 132 qualified_name load 133 module_path @@ -61261,8 +61438,8 @@ store func_tid 134 load 135 func_tid iconst 136 0 gte 137 135 136 -brif 137 L3941 L3942 -label L3941 +brif 137 L3955 L3956 +label L3955 load 138 func_tid load 139 field_name call 140 pith_cstring_release void 1 139 @@ -61279,8 +61456,8 @@ call 150 pith_cstring_release void 1 149 load 151 obj_info call 152 pith_struct_release void 1 151 ret 138 -label L3942 -label L3940 +label L3956 +label L3954 load 153 scope_id load 154 field_name load 155 module_path @@ -61289,8 +61466,8 @@ store func_tid 156 load 157 func_tid iconst 158 0 gte 159 157 158 -brif 159 L3944 L3945 -label L3944 +brif 159 L3958 L3959 +label L3958 load 160 func_tid load 161 field_name call 162 pith_cstring_release void 1 161 @@ -61307,8 +61484,8 @@ call 172 pith_cstring_release void 1 171 load 173 obj_info call 174 pith_struct_release void 1 173 ret 160 -label L3945 -label L3943 +label L3959 +label L3957 strref 175 m13s429 strref 176 m13s440 load 177 obj_name @@ -61344,19 +61521,19 @@ call 206 pith_cstring_release void 1 205 load 207 obj_info call 208 pith_struct_release void 1 207 ret 194 -label L3933 -label L3931 -jmp L3928 -label L3930 -label L3928 +label L3947 +label L3945 +jmp L3942 +label L3944 +label L3942 load 209 obj_node_idx load 210 scope_id call 211 checker_c_check_expr int 2 209 210 store obj_type 211 load 212 obj_type call 213 types_is_error_type bool 1 212 -brif 213 L3947 L3948 -label L3947 +brif 213 L3961 L3962 +label L3961 load 214 types_TID_ERR load 215 field_name call 216 pith_cstring_release void 1 215 @@ -61373,8 +61550,8 @@ call 226 pith_cstring_release void 1 225 load 227 obj_info call 228 pith_struct_release void 1 227 ret 214 -label L3948 -label L3946 +label L3962 +label L3960 load 229 obj_info load 230 obj_type call 231 types_get_type_info struct:TypeInfo 1 230 @@ -61385,33 +61562,33 @@ field 234 233 0 string kind strref 235 m13s34 call 236 pith_cstring_eq bool 2 234 235 call 237 pith_cstring_release void 1 235 -brif 236 L3950 L3951 -label L3950 +brif 236 L3964 L3965 +label L3964 iconst 238 0 store fidx 238 -label L3952 +label L3966 load 239 fidx load 240 obj_info field 241 240 16 list_string fields call 242 pith_list_len int 1 241 lt 243 239 242 -brif 243 L3953 L3954 -label L3953 +brif 243 L3967 L3968 +label L3967 load 244 obj_info field 245 244 16 list_string fields load 246 fidx call 247 pith_list_get_value_strict string 2 245 246 load 248 field_name call 249 checker_strings_equal bool 2 247 248 -brif 249 L3956 L3957 -label L3956 +brif 249 L3970 L3971 +label L3970 load 250 fidx load 251 obj_info field 252 251 24 list field_types call 253 pith_list_len int 1 252 lt 254 250 253 -brif 254 L3959 L3960 -label L3959 +brif 254 L3973 L3974 +label L3973 load 255 obj_info field 256 255 24 list field_types load 257 fidx @@ -61431,8 +61608,8 @@ call 270 pith_cstring_release void 1 269 load 271 obj_info call 272 pith_struct_release void 1 271 ret 258 -label L3960 -label L3958 +label L3974 +label L3972 load 273 types_TID_ERR load 274 field_name call 275 pith_cstring_release void 1 274 @@ -61449,14 +61626,14 @@ call 285 pith_cstring_release void 1 284 load 286 obj_info call 287 pith_struct_release void 1 286 ret 273 -label L3957 -label L3955 +label L3971 +label L3969 load 288 fidx iconst 289 1 add 290 288 289 store fidx 290 -jmp L3952 -label L3954 +jmp L3966 +label L3968 strref 291 m13s429 load 292 obj_type call 293 types_get_type_name string 1 292 @@ -61490,23 +61667,23 @@ call 320 pith_cstring_release void 1 319 load 321 obj_info call 322 pith_struct_release void 1 321 ret 308 -label L3951 -label L3949 +label L3965 +label L3963 load 323 obj_info field 324 323 0 string kind strref 325 m13s27 call 326 pith_cstring_eq bool 2 324 325 call 327 pith_cstring_release void 1 325 -brif 326 L3962 L3963 -label L3962 +brif 326 L3976 L3977 +label L3976 load 328 field_name call 329 checker_parse_integer_string int 1 328 store idx 329 load 330 idx iconst 331 0 lt 332 330 331 -brif 332 L3965 L3966 -label L3965 +brif 332 L3979 L3980 +label L3979 strref 333 m13s429 strref 334 m13s438 call 335 checker_diagnostics_report_error void 2 333 334 @@ -61528,15 +61705,15 @@ call 350 pith_cstring_release void 1 349 load 351 obj_info call 352 pith_struct_release void 1 351 ret 338 -label L3966 -label L3964 +label L3980 +label L3978 load 353 idx load 354 obj_info field 355 354 88 list elements call 356 pith_list_len int 1 355 gte 357 353 356 -brif 357 L3968 L3969 -label L3968 +brif 357 L3982 L3983 +label L3982 strref 358 m13s429 strref 359 m13s437 load 360 field_name @@ -61576,8 +61753,8 @@ call 393 pith_cstring_release void 1 392 load 394 obj_info call 395 pith_struct_release void 1 394 ret 381 -label L3969 -label L3967 +label L3983 +label L3981 load 396 obj_info field 397 396 88 list elements load 398 idx @@ -61597,37 +61774,37 @@ call 411 pith_cstring_release void 1 410 load 412 obj_info call 413 pith_struct_release void 1 412 ret 399 -label L3963 -label L3961 +label L3977 +label L3975 load 414 obj_info field 415 414 0 string kind strref 416 m13s28 call 417 pith_cstring_eq bool 2 415 416 call 418 pith_cstring_release void 1 416 -brif 417 L3971 L3972 -label L3971 +brif 417 L3985 L3986 +label L3985 strref 419 m13s12 call 420 types_lookup_type_id int 1 419 call 421 pith_cstring_release void 1 419 store tid_bool 420 iconst 422 0 -store __or_422_3976 422 +store __or_422_3990 422 load 423 field_name strref 424 m13s434 call 425 checker_strings_equal bool 2 423 424 call 426 pith_cstring_release void 1 424 -store __or_422_3976 425 -brif 425 L3977 L3976 -label L3976 +store __or_422_3990 425 +brif 425 L3991 L3990 +label L3990 load 427 field_name strref 428 m13s433 call 429 checker_strings_equal bool 2 427 428 call 430 pith_cstring_release void 1 428 -store __or_422_3976 429 -label L3977 -load 431 __or_422_3976 -brif 431 L3974 L3975 -label L3974 +store __or_422_3990 429 +label L3991 +load 431 __or_422_3990 +brif 431 L3988 L3989 +label L3988 load 432 tid_bool load 433 field_name call 434 pith_cstring_release void 1 433 @@ -61644,14 +61821,14 @@ call 444 pith_cstring_release void 1 443 load 445 obj_info call 446 pith_struct_release void 1 445 ret 432 -label L3975 -label L3973 +label L3989 +label L3987 load 447 field_name strref 448 m13s432 call 449 checker_strings_equal bool 2 447 448 call 450 pith_cstring_release void 1 448 -brif 449 L3979 L3980 -label L3979 +brif 449 L3993 L3994 +label L3993 load 451 obj_info field 452 451 64 int inner load 453 field_name @@ -61669,14 +61846,14 @@ call 464 pith_cstring_release void 1 463 load 465 obj_info call 466 pith_struct_release void 1 465 ret 452 -label L3980 -label L3978 +label L3994 +label L3992 load 467 field_name strref 468 m13s431 call 469 checker_strings_equal bool 2 467 468 call 470 pith_cstring_release void 1 468 -brif 469 L3982 L3983 -label L3982 +brif 469 L3996 L3997 +label L3996 load 471 obj_info field 472 471 80 int value_type load 473 field_name @@ -61694,8 +61871,8 @@ call 484 pith_cstring_release void 1 483 load 485 obj_info call 486 pith_struct_release void 1 485 ret 472 -label L3983 -label L3981 +label L3997 +label L3995 strref 487 m13s429 strref 488 m13s430 load 489 field_name @@ -61724,15 +61901,15 @@ call 511 pith_cstring_release void 1 510 load 512 obj_info call 513 pith_struct_release void 1 512 ret 499 -label L3972 -label L3970 +label L3986 +label L3984 load 514 obj_info field 515 514 0 string kind strref 516 m13s33 call 517 pith_cstring_eq bool 2 515 516 call 518 pith_cstring_release void 1 516 -brif 517 L3985 L3986 -label L3985 +brif 517 L3999 L4000 +label L3999 load 519 obj_type load 520 field_name call 521 pith_cstring_release void 1 520 @@ -61749,8 +61926,8 @@ call 531 pith_cstring_release void 1 530 load 532 obj_info call 533 pith_struct_release void 1 532 ret 519 -label L3986 -label L3984 +label L4000 +label L3998 strref 534 m13s429 load 535 obj_type call 536 types_get_type_name string 1 535 @@ -61809,27 +61986,27 @@ load 2 s call 3 string_len int 1 2 iconst 4 0 eq 5 3 4 -brif 5 L3988 L3989 -label L3988 +brif 5 L4002 L4003 +label L4002 iconst 6 1 iconst 8 0 sub 7 8 6 load 9 ch call 10 pith_cstring_release void 1 9 ret 7 -label L3989 -label L3987 +label L4003 +label L4001 iconst 11 0 store result 11 iconst 12 0 store i 12 -label L3990 +label L4004 load 13 i load 14 s call 15 string_len int 1 14 lt 16 13 15 -brif 16 L3991 L3992 -label L3991 +brif 16 L4005 L4006 +label L4005 load 17 ch load 18 s load 19 i @@ -61840,153 +62017,153 @@ load 22 ch strref 23 m13s427 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 -brif 24 L3994 L3995 -label L3994 +brif 24 L4008 L4009 +label L4008 load 26 result iconst 27 10 mul 28 26 27 store result 28 -jmp L3993 -label L3995 +jmp L4007 +label L4009 load 29 ch strref 30 m13s426 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 -brif 31 L3996 L3997 -label L3996 +brif 31 L4010 L4011 +label L4010 load 33 result iconst 34 10 mul 35 33 34 iconst 36 1 add 37 35 36 store result 37 -jmp L3993 -label L3997 +jmp L4007 +label L4011 load 38 ch strref 39 m13s425 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 -brif 40 L3998 L3999 -label L3998 +brif 40 L4012 L4013 +label L4012 load 42 result iconst 43 10 mul 44 42 43 iconst 45 2 add 46 44 45 store result 46 -jmp L3993 -label L3999 +jmp L4007 +label L4013 load 47 ch strref 48 m13s424 call 49 pith_cstring_eq bool 2 47 48 call 50 pith_cstring_release void 1 48 -brif 49 L4000 L4001 -label L4000 +brif 49 L4014 L4015 +label L4014 load 51 result iconst 52 10 mul 53 51 52 iconst 54 3 add 55 53 54 store result 55 -jmp L3993 -label L4001 +jmp L4007 +label L4015 load 56 ch strref 57 m13s423 call 58 pith_cstring_eq bool 2 56 57 call 59 pith_cstring_release void 1 57 -brif 58 L4002 L4003 -label L4002 +brif 58 L4016 L4017 +label L4016 load 60 result iconst 61 10 mul 62 60 61 iconst 63 4 add 64 62 63 store result 64 -jmp L3993 -label L4003 +jmp L4007 +label L4017 load 65 ch strref 66 m13s422 call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 66 -brif 67 L4004 L4005 -label L4004 +brif 67 L4018 L4019 +label L4018 load 69 result iconst 70 10 mul 71 69 70 iconst 72 5 add 73 71 72 store result 73 -jmp L3993 -label L4005 +jmp L4007 +label L4019 load 74 ch strref 75 m13s421 call 76 pith_cstring_eq bool 2 74 75 call 77 pith_cstring_release void 1 75 -brif 76 L4006 L4007 -label L4006 +brif 76 L4020 L4021 +label L4020 load 78 result iconst 79 10 mul 80 78 79 iconst 81 6 add 82 80 81 store result 82 -jmp L3993 -label L4007 +jmp L4007 +label L4021 load 83 ch strref 84 m13s420 call 85 pith_cstring_eq bool 2 83 84 call 86 pith_cstring_release void 1 84 -brif 85 L4008 L4009 -label L4008 +brif 85 L4022 L4023 +label L4022 load 87 result iconst 88 10 mul 89 87 88 iconst 90 7 add 91 89 90 store result 91 -jmp L3993 -label L4009 +jmp L4007 +label L4023 load 92 ch strref 93 m13s419 call 94 pith_cstring_eq bool 2 92 93 call 95 pith_cstring_release void 1 93 -brif 94 L4010 L4011 -label L4010 +brif 94 L4024 L4025 +label L4024 load 96 result iconst 97 10 mul 98 96 97 iconst 99 8 add 100 98 99 store result 100 -jmp L3993 -label L4011 +jmp L4007 +label L4025 load 101 ch strref 102 m13s418 call 103 pith_cstring_eq bool 2 101 102 call 104 pith_cstring_release void 1 102 -brif 103 L4012 L4013 -label L4012 +brif 103 L4026 L4027 +label L4026 load 105 result iconst 106 10 mul 107 105 106 iconst 108 9 add 109 107 108 store result 109 -jmp L3993 -label L4013 +jmp L4007 +label L4027 iconst 110 1 iconst 112 0 sub 111 112 110 load 113 ch call 114 pith_cstring_release void 1 113 ret 111 -label L3993 +label L4007 load 115 i iconst 116 1 add 117 115 116 store i 117 -jmp L3990 -label L3992 +jmp L4004 +label L4006 load 118 result load 119 ch call 120 pith_cstring_release void 1 119 @@ -62018,14 +62195,14 @@ field 13 12 16 list children call 14 pith_list_len int 1 13 iconst 15 2 lt 16 14 15 -brif 16 L4015 L4016 -label L4015 +brif 16 L4029 L4030 +label L4029 load 17 types_TID_ERR load 18 obj_info call 19 pith_struct_release void 1 18 ret 17 -label L4016 -label L4014 +label L4030 +label L4028 load 20 node field 21 20 16 list children iconst 22 0 @@ -62042,24 +62219,24 @@ call 31 checker_c_check_expr int 2 29 30 store idx_type 31 load 32 obj_type call 33 types_is_error_type bool 1 32 -brif 33 L4018 L4019 -label L4018 +brif 33 L4032 L4033 +label L4032 load 34 types_TID_ERR load 35 obj_info call 36 pith_struct_release void 1 35 ret 34 -label L4019 -label L4017 +label L4033 +label L4031 load 37 idx_type call 38 types_is_error_type bool 1 37 -brif 38 L4021 L4022 -label L4021 +brif 38 L4035 L4036 +label L4035 load 39 types_TID_ERR load 40 obj_info call 41 pith_struct_release void 1 40 ret 39 -label L4022 -label L4020 +label L4036 +label L4034 load 42 obj_info load 43 obj_type call 44 types_get_type_info struct:TypeInfo 1 43 @@ -62070,8 +62247,8 @@ field 47 46 0 string kind strref 48 m13s29 call 49 pith_cstring_eq bool 2 47 48 call 50 pith_cstring_release void 1 48 -brif 49 L4024 L4025 -label L4024 +brif 49 L4038 L4039 +label L4038 load 51 obj_info field 52 51 64 int inner store obj_type 52 @@ -62080,15 +62257,15 @@ load 54 obj_type call 55 types_get_type_info struct:TypeInfo 1 54 call 56 pith_struct_release void 1 53 store obj_info 55 -jmp L4023 -label L4025 +jmp L4037 +label L4039 load 57 obj_info field 58 57 0 string kind strref 59 m13s28 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 -brif 60 L4026 L4027 -label L4026 +brif 60 L4040 L4041 +label L4040 load 62 obj_info field 63 62 64 int inner store obj_type 63 @@ -62097,20 +62274,20 @@ load 65 obj_type call 66 types_get_type_info struct:TypeInfo 1 65 call 67 pith_struct_release void 1 64 store obj_info 66 -jmp L4023 -label L4027 -label L4023 +jmp L4037 +label L4041 +label L4037 load 68 obj_type load 69 tid_string eq 70 68 69 -brif 70 L4029 L4030 -label L4029 +brif 70 L4043 L4044 +label L4043 load 71 idx_type call 72 types_is_integer_type bool 1 71 iconst 73 0 eq 74 72 73 -brif 74 L4032 L4033 -label L4032 +brif 74 L4046 L4047 +label L4046 strref 75 m13s413 strref 76 m13s417 load 77 idx_type @@ -62125,25 +62302,25 @@ load 85 types_TID_ERR load 86 obj_info call 87 pith_struct_release void 1 86 ret 85 -label L4033 -label L4031 +label L4047 +label L4045 load 88 tid_string load 89 obj_info call 90 pith_struct_release void 1 89 ret 88 -label L4030 -label L4028 +label L4044 +label L4042 load 91 obj_type load 92 tid_bytes eq 93 91 92 -brif 93 L4035 L4036 -label L4035 +brif 93 L4049 L4050 +label L4049 load 94 idx_type call 95 types_is_integer_type bool 1 94 iconst 96 0 eq 97 95 96 -brif 97 L4038 L4039 -label L4038 +brif 97 L4052 L4053 +label L4052 strref 98 m13s413 strref 99 m13s416 load 100 idx_type @@ -62158,27 +62335,27 @@ load 108 types_TID_ERR load 109 obj_info call 110 pith_struct_release void 1 109 ret 108 -label L4039 -label L4037 +label L4053 +label L4051 load 111 tid_int load 112 obj_info call 113 pith_struct_release void 1 112 ret 111 -label L4036 -label L4034 +label L4050 +label L4048 load 114 obj_info field 115 114 0 string kind strref 116 m13s22 call 117 pith_cstring_eq bool 2 115 116 call 118 pith_cstring_release void 1 116 -brif 117 L4041 L4042 -label L4041 +brif 117 L4055 L4056 +label L4055 load 119 idx_type call 120 types_is_integer_type bool 1 119 iconst 121 0 eq 122 120 121 -brif 122 L4044 L4045 -label L4044 +brif 122 L4058 L4059 +label L4058 strref 123 m13s413 strref 124 m13s415 load 125 idx_type @@ -62193,28 +62370,28 @@ load 133 types_TID_ERR load 134 obj_info call 135 pith_struct_release void 1 134 ret 133 -label L4045 -label L4043 +label L4059 +label L4057 load 136 obj_info field 137 136 64 int inner load 138 obj_info call 139 pith_struct_release void 1 138 ret 137 -label L4042 -label L4040 +label L4056 +label L4054 load 140 obj_info field 141 140 0 string kind strref 142 m13s20 call 143 pith_cstring_eq bool 2 141 142 call 144 pith_cstring_release void 1 142 -brif 143 L4047 L4048 -label L4047 +brif 143 L4061 L4062 +label L4061 load 145 idx_type load 146 obj_info field 147 146 72 int key_type neq 148 145 147 -brif 148 L4050 L4051 -label L4050 +brif 148 L4064 L4065 +label L4064 strref 149 m13s413 strref 150 m13s414 load 151 obj_info @@ -62239,15 +62416,15 @@ load 169 types_TID_ERR load 170 obj_info call 171 pith_struct_release void 1 170 ret 169 -label L4051 -label L4049 +label L4065 +label L4063 load 172 obj_info field 173 172 80 int value_type load 174 obj_info call 175 pith_struct_release void 1 174 ret 173 -label L4048 -label L4046 +label L4062 +label L4060 strref 176 m13s413 load 177 obj_type call 178 types_get_type_name string 1 177 @@ -62279,16 +62456,16 @@ field 5 4 16 list children call 6 pith_list_len int 1 5 iconst 7 1 lt 8 6 7 -brif 8 L4053 L4054 -label L4053 +brif 8 L4067 L4068 +label L4067 load 9 types_TID_ERR load 10 info call 11 pith_struct_release void 1 10 load 12 ret_info call 13 pith_struct_release void 1 12 ret 9 -label L4054 -label L4052 +label L4068 +label L4066 load 14 node field 15 14 16 list children iconst 16 0 @@ -62298,16 +62475,16 @@ call 19 checker_c_check_expr int 2 17 18 store inner 19 load 20 inner call 21 types_is_error_type bool 1 20 -brif 21 L4056 L4057 -label L4056 +brif 21 L4070 L4071 +label L4070 load 22 types_TID_ERR load 23 info call 24 pith_struct_release void 1 23 load 25 ret_info call 26 pith_struct_release void 1 25 ret 22 -label L4057 -label L4055 +label L4071 +label L4069 load 27 info load 28 inner call 29 types_get_type_info struct:TypeInfo 1 28 @@ -62318,11 +62495,11 @@ field 32 31 0 string kind strref 33 m13s29 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 -brif 34 L4059 L4060 -label L4059 +brif 34 L4073 L4074 +label L4073 load 36 checker_checking_test_decl -brif 36 L4062 L4063 -label L4062 +brif 36 L4076 L4077 +label L4076 load 37 info field 38 37 64 int inner load 39 info @@ -62330,16 +62507,16 @@ call 40 pith_struct_release void 1 39 load 41 ret_info call 42 pith_struct_release void 1 41 ret 38 -label L4063 -label L4061 +label L4077 +label L4075 load 43 scope_id call 44 scope_get_scope_return_type int 1 43 store ret 44 load 45 ret iconst 46 0 lt 47 45 46 -brif 47 L4065 L4066 -label L4065 +brif 47 L4079 L4080 +label L4079 strref 48 m13s411 strref 49 m13s410 strref 50 m13s409 @@ -62353,8 +62530,8 @@ call 57 pith_struct_release void 1 56 load 58 ret_info call 59 pith_struct_release void 1 58 ret 55 -label L4066 -label L4064 +label L4080 +label L4078 load 60 ret_info load 61 ret call 62 types_get_type_info struct:TypeInfo 1 61 @@ -62367,8 +62544,8 @@ call 68 pith_cstring_eq bool 2 65 66 iconst 69 1 sub 67 69 68 call 70 pith_cstring_release void 1 66 -brif 67 L4068 L4069 -label L4068 +brif 67 L4082 L4083 +label L4082 strref 71 m13s411 strref 72 m13s410 strref 73 m13s409 @@ -62382,8 +62559,8 @@ call 80 pith_struct_release void 1 79 load 81 ret_info call 82 pith_struct_release void 1 81 ret 78 -label L4069 -label L4067 +label L4083 +label L4081 load 83 info field 84 83 64 int inner load 85 info @@ -62391,15 +62568,15 @@ call 86 pith_struct_release void 1 85 load 87 ret_info call 88 pith_struct_release void 1 87 ret 84 -label L4060 -label L4058 +label L4074 +label L4072 load 89 info field 90 89 0 string kind strref 91 m13s28 call 92 pith_cstring_eq bool 2 90 91 call 93 pith_cstring_release void 1 91 -brif 92 L4071 L4072 -label L4071 +brif 92 L4085 L4086 +label L4085 strref 94 m13s398 strref 95 m13s407 load 96 inner @@ -62412,8 +62589,8 @@ call 102 checker_diagnostics_report_error_with_fix void 3 94 98 101 call 103 pith_cstring_release void 1 94 call 104 pith_cstring_release void 1 98 call 105 pith_cstring_release void 1 101 -jmp L4070 -label L4072 +jmp L4084 +label L4086 strref 106 m13s398 strref 107 m13s407 load 108 inner @@ -62426,7 +62603,7 @@ call 114 checker_diagnostics_report_error_with_fix void 3 106 110 113 call 115 pith_cstring_release void 1 106 call 116 pith_cstring_release void 1 110 call 117 pith_cstring_release void 1 113 -label L4070 +label L4084 load 118 types_TID_ERR load 119 info call 120 pith_struct_release void 1 119 @@ -62452,16 +62629,16 @@ field 5 4 16 list children call 6 pith_list_len int 1 5 iconst 7 1 lt 8 6 7 -brif 8 L4074 L4075 -label L4074 +brif 8 L4088 L4089 +label L4088 load 9 types_TID_ERR load 10 info call 11 pith_struct_release void 1 10 load 12 ret_info call 13 pith_struct_release void 1 12 ret 9 -label L4075 -label L4073 +label L4089 +label L4087 load 14 node field 15 14 16 list children iconst 16 0 @@ -62471,16 +62648,16 @@ call 19 checker_c_check_expr int 2 17 18 store inner 19 load 20 inner call 21 types_is_error_type bool 1 20 -brif 21 L4077 L4078 -label L4077 +brif 21 L4091 L4092 +label L4091 load 22 types_TID_ERR load 23 info call 24 pith_struct_release void 1 23 load 25 ret_info call 26 pith_struct_release void 1 25 ret 22 -label L4078 -label L4076 +label L4092 +label L4090 load 27 info load 28 inner call 29 types_get_type_info struct:TypeInfo 1 28 @@ -62491,11 +62668,11 @@ field 32 31 0 string kind strref 33 m13s28 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 -brif 34 L4080 L4081 -label L4080 +brif 34 L4094 L4095 +label L4094 load 36 checker_checking_test_decl -brif 36 L4083 L4084 -label L4083 +brif 36 L4097 L4098 +label L4097 load 37 info field 38 37 64 int inner load 39 info @@ -62503,16 +62680,16 @@ call 40 pith_struct_release void 1 39 load 41 ret_info call 42 pith_struct_release void 1 41 ret 38 -label L4084 -label L4082 +label L4098 +label L4096 load 43 scope_id call 44 scope_get_scope_return_type int 1 43 store ret 44 load 45 ret iconst 46 0 lt 47 45 46 -brif 47 L4086 L4087 -label L4086 +brif 47 L4100 L4101 +label L4100 strref 48 m13s404 strref 49 m13s405 call 50 checker_diagnostics_report_error void 2 48 49 @@ -62524,8 +62701,8 @@ call 55 pith_struct_release void 1 54 load 56 ret_info call 57 pith_struct_release void 1 56 ret 53 -label L4087 -label L4085 +label L4101 +label L4099 load 58 ret_info load 59 ret call 60 types_get_type_info struct:TypeInfo 1 59 @@ -62538,8 +62715,8 @@ call 66 pith_cstring_eq bool 2 63 64 iconst 67 1 sub 65 67 66 call 68 pith_cstring_release void 1 64 -brif 65 L4089 L4090 -label L4089 +brif 65 L4103 L4104 +label L4103 strref 69 m13s404 strref 70 m13s405 call 71 checker_diagnostics_report_error void 2 69 70 @@ -62551,8 +62728,8 @@ call 76 pith_struct_release void 1 75 load 77 ret_info call 78 pith_struct_release void 1 77 ret 74 -label L4090 -label L4088 +label L4104 +label L4102 load 79 info field 80 79 80 int value_type load 81 ret_info @@ -62560,8 +62737,8 @@ field 82 81 80 int value_type call 83 checker_types_compatible bool 2 80 82 iconst 84 0 eq 85 83 84 -brif 85 L4092 L4093 -label L4092 +brif 85 L4106 L4107 +label L4106 strref 86 m13s404 strref 87 m13s403 load 88 info @@ -62588,8 +62765,8 @@ call 108 pith_struct_release void 1 107 load 109 ret_info call 110 pith_struct_release void 1 109 ret 106 -label L4093 -label L4091 +label L4107 +label L4105 load 111 info field 112 111 64 int inner load 113 info @@ -62597,15 +62774,15 @@ call 114 pith_struct_release void 1 113 load 115 ret_info call 116 pith_struct_release void 1 115 ret 112 -label L4081 -label L4079 +label L4095 +label L4093 load 117 info field 118 117 0 string kind strref 119 m13s29 call 120 pith_cstring_eq bool 2 118 119 call 121 pith_cstring_release void 1 119 -brif 120 L4095 L4096 -label L4095 +brif 120 L4109 L4110 +label L4109 strref 122 m13s398 strref 123 m13s400 load 124 inner @@ -62618,8 +62795,8 @@ call 130 checker_diagnostics_report_error_with_fix void 3 122 126 129 call 131 pith_cstring_release void 1 122 call 132 pith_cstring_release void 1 126 call 133 pith_cstring_release void 1 129 -jmp L4094 -label L4096 +jmp L4108 +label L4110 strref 134 m13s398 strref 135 m13s400 load 136 inner @@ -62632,7 +62809,7 @@ call 142 checker_diagnostics_report_error_with_fix void 3 134 138 141 call 143 pith_cstring_release void 1 134 call 144 pith_cstring_release void 1 138 call 145 pith_cstring_release void 1 141 -label L4094 +label L4108 load 146 types_TID_ERR load 147 info call 148 pith_struct_release void 1 147 @@ -62656,14 +62833,14 @@ field 4 3 16 list children call 5 pith_list_len int 1 4 iconst 6 2 lt 7 5 6 -brif 7 L4098 L4099 -label L4098 +brif 7 L4112 L4113 +label L4112 load 8 types_TID_ERR load 9 result_info call 10 pith_struct_release void 1 9 ret 8 -label L4099 -label L4097 +label L4113 +label L4111 load 11 node field 12 11 16 list children iconst 13 0 @@ -62673,14 +62850,14 @@ call 16 checker_c_check_expr int 2 14 15 store result_type 16 load 17 result_type call 18 types_is_error_type bool 1 17 -brif 18 L4101 L4102 -label L4101 +brif 18 L4115 L4116 +label L4115 load 19 types_TID_ERR load 20 result_info call 21 pith_struct_release void 1 20 ret 19 -label L4102 -label L4100 +label L4116 +label L4114 load 22 result_info load 23 result_type call 24 types_get_type_info struct:TypeInfo 1 23 @@ -62693,8 +62870,8 @@ call 30 pith_cstring_eq bool 2 27 28 iconst 31 1 sub 29 31 30 call 32 pith_cstring_release void 1 28 -brif 29 L4104 L4105 -label L4104 +brif 29 L4118 L4119 +label L4118 strref 33 m13s398 strref 34 m13s397 load 35 result_type @@ -62709,8 +62886,8 @@ load 43 types_TID_ERR load 44 result_info call 45 pith_struct_release void 1 44 ret 43 -label L4105 -label L4103 +label L4119 +label L4117 load 46 node field 47 46 16 list children iconst 48 1 @@ -62720,22 +62897,22 @@ call 51 checker_c_check_expr int 2 49 50 store fallback_type 51 load 52 fallback_type call 53 types_is_error_type bool 1 52 -brif 53 L4107 L4108 -label L4107 +brif 53 L4121 L4122 +label L4121 load 54 types_TID_ERR load 55 result_info call 56 pith_struct_release void 1 55 ret 54 -label L4108 -label L4106 +label L4122 +label L4120 load 57 fallback_type load 58 result_info field 59 58 64 int inner call 60 checker_types_compatible bool 2 57 59 iconst 61 0 eq 62 60 61 -brif 62 L4110 L4111 -label L4110 +brif 62 L4124 L4125 +label L4124 strref 63 m13s304 strref 64 m13s396 load 65 result_info @@ -62760,8 +62937,8 @@ load 83 types_TID_ERR load 84 result_info call 85 pith_struct_release void 1 84 ret 83 -label L4111 -label L4109 +label L4125 +label L4123 load 86 result_info field 87 86 64 int inner load 88 result_info @@ -62782,8 +62959,8 @@ field 4 3 16 list children call 5 pith_list_len int 1 4 iconst 6 0 eq 7 5 6 -brif 7 L4113 L4114 -label L4113 +brif 7 L4127 L4128 +label L4127 strref 8 m13s289 strref 9 m13s395 call 10 checker_diagnostics_report_error void 2 8 9 @@ -62793,8 +62970,8 @@ load 13 types_TID_ERR load 14 arm_node call 15 pith_struct_release void 1 14 ret 13 -label L4114 -label L4112 +label L4128 +label L4126 load 16 types_TID_ERR store result_type 16 iconst 17 0 @@ -62808,12 +62985,12 @@ iconst 22 0 store __for_idx_178 22 store __for_len_178 21 store __for_iter_178 20 -label L4115 +label L4129 load 23 __for_idx_178 load 24 __for_len_178 lt 25 23 24 -brif 25 L4116 L4118 -label L4116 +brif 25 L4130 L4132 +label L4130 load 26 __for_iter_178 load 27 __for_idx_178 call 28 pith_list_get_value unknown 2 26 27 @@ -62832,88 +63009,88 @@ field 37 36 0 string kind strref 38 m13s388 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 -brif 39 L4120 L4121 -label L4120 +brif 39 L4134 L4135 +label L4134 load 41 saw_default -brif 41 L4123 L4124 -label L4123 +brif 41 L4137 L4138 +label L4137 strref 42 m13s289 strref 43 m13s394 call 44 checker_diagnostics_report_error void 2 42 43 call 45 pith_cstring_release void 1 42 call 46 pith_cstring_release void 1 43 -jmp L4122 -label L4124 -label L4122 +jmp L4136 +label L4138 +label L4136 iconst 47 1 store saw_default 47 -jmp L4119 -label L4121 +jmp L4133 +label L4135 load 48 arm_node field 49 48 0 string kind strref 50 m13s389 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 50 -brif 51 L4125 L4126 -label L4125 +brif 51 L4139 L4140 +label L4139 load 53 saw_timeout -brif 53 L4128 L4129 -label L4128 +brif 53 L4142 L4143 +label L4142 strref 54 m13s289 strref 55 m13s393 call 56 checker_diagnostics_report_error void 2 54 55 call 57 pith_cstring_release void 1 54 call 58 pith_cstring_release void 1 55 -jmp L4127 -label L4129 -label L4127 +jmp L4141 +label L4143 +label L4141 iconst 59 1 store saw_timeout 59 -jmp L4119 -label L4126 -label L4119 +jmp L4133 +label L4140 +label L4133 load 60 result_type call 61 types_is_error_type bool 1 60 -brif 61 L4131 L4132 -label L4131 +brif 61 L4145 L4146 +label L4145 load 62 arm_type store result_type 62 -jmp L4130 -label L4132 +jmp L4144 +label L4146 load 63 arm_type call 64 types_is_error_type bool 1 63 iconst 65 0 eq 66 64 65 -brif 66 L4133 L4134 -label L4133 +brif 66 L4147 L4148 +label L4147 load 67 arm_type load 68 result_type neq 69 67 68 -brif 69 L4136 L4137 -label L4136 +brif 69 L4150 L4151 +label L4150 load 70 arm_type load 71 result_type call 72 checker_types_structurally_equal bool 2 70 71 iconst 73 0 eq 74 72 73 -brif 74 L4139 L4140 -label L4139 +brif 74 L4153 L4154 +label L4153 iconst 75 0 -store __and_75_4144 75 +store __and_75_4158 75 load 76 arm_type load 77 types_TID_VOID neq 78 76 77 -store __and_75_4144 78 -brif 78 L4144 L4145 -label L4144 +store __and_75_4158 78 +brif 78 L4158 L4159 +label L4158 load 79 result_type load 80 types_TID_VOID neq 81 79 80 -store __and_75_4144 81 -label L4145 -load 82 __and_75_4144 -brif 82 L4142 L4143 -label L4142 +store __and_75_4158 81 +label L4159 +load 82 __and_75_4158 +brif 82 L4156 L4157 +label L4156 strref 83 m13s371 strref 84 m13s392 load 85 result_type @@ -62933,25 +63110,25 @@ call 98 pith_cstring_release void 1 95 call 99 checker_diagnostics_report_error void 2 83 96 call 100 pith_cstring_release void 1 83 call 101 pith_cstring_release void 1 96 -jmp L4141 -label L4143 -label L4141 -jmp L4138 -label L4140 -label L4138 -jmp L4135 -label L4137 -label L4135 -jmp L4130 -label L4134 -label L4130 -label L4117 +jmp L4155 +label L4157 +label L4155 +jmp L4152 +label L4154 +label L4152 +jmp L4149 +label L4151 +label L4149 +jmp L4144 +label L4148 +label L4144 +label L4131 load 102 __for_idx_178 iconst 103 1 add 104 102 103 store __for_idx_178 104 -jmp L4115 -label L4118 +jmp L4129 +label L4132 load 105 result_type load 106 arm_node call 107 pith_struct_release void 1 106 @@ -62969,54 +63146,54 @@ field 3 2 0 string kind strref 4 m13s391 call 5 pith_cstring_eq bool 2 3 4 call 6 pith_cstring_release void 1 4 -brif 5 L4147 L4148 -label L4147 +brif 5 L4161 L4162 +label L4161 load 7 arm load 8 scope_id call 9 checker_check_select_recv_arm int 2 7 8 ret 9 -label L4148 -label L4146 +label L4162 +label L4160 load 10 arm field 11 10 0 string kind strref 12 m13s390 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 -brif 13 L4150 L4151 -label L4150 +brif 13 L4164 L4165 +label L4164 load 15 arm load 16 scope_id call 17 checker_check_select_send_arm int 2 15 16 ret 17 -label L4151 -label L4149 +label L4165 +label L4163 load 18 arm field 19 18 0 string kind strref 20 m13s389 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 -brif 21 L4153 L4154 -label L4153 +brif 21 L4167 L4168 +label L4167 load 23 arm load 24 scope_id call 25 checker_check_select_timeout_arm int 2 23 24 ret 25 -label L4154 -label L4152 +label L4168 +label L4166 load 26 arm field 27 26 0 string kind strref 28 m13s388 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 -brif 29 L4156 L4157 -label L4156 +brif 29 L4170 L4171 +label L4170 load 31 arm iconst 32 0 load 33 scope_id call 34 checker_check_select_arm_body int 3 31 32 33 ret 34 -label L4157 -label L4155 +label L4171 +label L4169 strref 35 m13s289 strref 36 m13s387 call 37 checker_diagnostics_report_error void 2 35 36 @@ -63037,8 +63214,8 @@ field 4 3 16 list children call 5 pith_list_len int 1 4 iconst 6 2 lt 7 5 6 -brif 7 L4159 L4160 -label L4159 +brif 7 L4173 L4174 +label L4173 strref 8 m13s289 strref 9 m13s386 call 10 checker_diagnostics_report_error void 2 8 9 @@ -63048,8 +63225,8 @@ load 13 types_TID_ERR load 14 recv_node call 15 pith_struct_release void 1 14 ret 13 -label L4160 -label L4158 +label L4174 +label L4172 load 16 recv_node load 17 arm field 18 17 16 list children @@ -63059,7 +63236,7 @@ call 21 ast_get_node struct:Node 1 20 call 22 pith_struct_release void 1 16 store recv_node 21 iconst 23 0 -store __or_23_4164 23 +store __or_23_4178 23 load 24 recv_node field 25 24 0 string kind strref 26 m13s382 @@ -63067,9 +63244,9 @@ call 28 pith_cstring_eq bool 2 25 26 iconst 29 1 sub 27 29 28 call 30 pith_cstring_release void 1 26 -store __or_23_4164 27 -brif 27 L4165 L4164 -label L4164 +store __or_23_4178 27 +brif 27 L4179 L4178 +label L4178 load 31 recv_node field 32 31 8 string value strref 33 m13s385 @@ -63077,11 +63254,11 @@ call 35 pith_cstring_eq bool 2 32 33 iconst 36 1 sub 34 36 35 call 37 pith_cstring_release void 1 33 -store __or_23_4164 34 -label L4165 -load 38 __or_23_4164 -brif 38 L4162 L4163 -label L4162 +store __or_23_4178 34 +label L4179 +load 38 __or_23_4178 +brif 38 L4176 L4177 +label L4176 strref 39 m13s289 strref 40 m13s384 call 41 checker_diagnostics_report_error void 2 39 40 @@ -63091,8 +63268,8 @@ load 44 types_TID_ERR load 45 recv_node call 46 pith_struct_release void 1 45 ret 44 -label L4163 -label L4161 +label L4177 +label L4175 load 47 arm field 48 47 16 list children iconst 49 0 @@ -63102,14 +63279,14 @@ call 52 checker_c_check_expr int 2 50 51 store recv_type 52 load 53 recv_type call 54 types_is_error_type bool 1 53 -brif 54 L4167 L4168 -label L4167 +brif 54 L4181 L4182 +label L4181 load 55 types_TID_ERR load 56 recv_node call 57 pith_struct_release void 1 56 ret 55 -label L4168 -label L4166 +label L4182 +label L4180 load 58 scope_id call 59 scope_create_scope int 1 58 store arm_scope 59 @@ -63141,8 +63318,8 @@ field 4 3 16 list children call 5 pith_list_len int 1 4 iconst 6 2 lt 7 5 6 -brif 7 L4170 L4171 -label L4170 +brif 7 L4184 L4185 +label L4184 strref 8 m13s289 strref 9 m13s383 call 10 checker_diagnostics_report_error void 2 8 9 @@ -63152,8 +63329,8 @@ load 13 types_TID_ERR load 14 send_node call 15 pith_struct_release void 1 14 ret 13 -label L4171 -label L4169 +label L4185 +label L4183 load 16 send_node load 17 arm field 18 17 16 list children @@ -63163,7 +63340,7 @@ call 21 ast_get_node struct:Node 1 20 call 22 pith_struct_release void 1 16 store send_node 21 iconst 23 0 -store __or_23_4175 23 +store __or_23_4189 23 load 24 send_node field 25 24 0 string kind strref 26 m13s382 @@ -63171,9 +63348,9 @@ call 28 pith_cstring_eq bool 2 25 26 iconst 29 1 sub 27 29 28 call 30 pith_cstring_release void 1 26 -store __or_23_4175 27 -brif 27 L4176 L4175 -label L4175 +store __or_23_4189 27 +brif 27 L4190 L4189 +label L4189 load 31 send_node field 32 31 8 string value strref 33 m13s381 @@ -63181,11 +63358,11 @@ call 35 pith_cstring_eq bool 2 32 33 iconst 36 1 sub 34 36 35 call 37 pith_cstring_release void 1 33 -store __or_23_4175 34 -label L4176 -load 38 __or_23_4175 -brif 38 L4173 L4174 -label L4173 +store __or_23_4189 34 +label L4190 +load 38 __or_23_4189 +brif 38 L4187 L4188 +label L4187 strref 39 m13s289 strref 40 m13s380 call 41 checker_diagnostics_report_error void 2 39 40 @@ -63195,8 +63372,8 @@ load 44 types_TID_ERR load 45 send_node call 46 pith_struct_release void 1 45 ret 44 -label L4174 -label L4172 +label L4188 +label L4186 load 47 arm field 48 47 16 list children iconst 49 0 @@ -63206,19 +63383,19 @@ call 52 checker_c_check_expr int 2 50 51 store send_type 52 load 53 send_type call 54 types_is_error_type bool 1 53 -brif 54 L4178 L4179 -label L4178 +brif 54 L4192 L4193 +label L4192 load 55 types_TID_ERR load 56 send_node call 57 pith_struct_release void 1 56 ret 55 -label L4179 -label L4177 +label L4193 +label L4191 load 58 send_type load 59 types_TID_BOOL neq 60 58 59 -brif 60 L4181 L4182 -label L4181 +brif 60 L4195 L4196 +label L4195 strref 61 m13s289 strref 62 m13s379 call 63 checker_diagnostics_report_error void 2 61 62 @@ -63228,8 +63405,8 @@ load 66 types_TID_ERR load 67 send_node call 68 pith_struct_release void 1 67 ret 66 -label L4182 -label L4180 +label L4196 +label L4194 load 69 arm iconst 70 1 load 71 scope_id @@ -63250,8 +63427,8 @@ field 3 2 16 list children call 4 pith_list_len int 1 3 iconst 5 2 lt 6 4 5 -brif 6 L4184 L4185 -label L4184 +brif 6 L4198 L4199 +label L4198 strref 7 m13s289 strref 8 m13s378 call 9 checker_diagnostics_report_error void 2 7 8 @@ -63259,8 +63436,8 @@ call 10 pith_cstring_release void 1 7 call 11 pith_cstring_release void 1 8 load 12 types_TID_ERR ret 12 -label L4185 -label L4183 +label L4199 +label L4197 load 13 arm field 14 13 16 list children iconst 15 0 @@ -63272,13 +63449,13 @@ load 19 timeout_type call 20 types_is_error_type bool 1 19 iconst 21 0 eq 22 20 21 -brif 22 L4187 L4188 -label L4187 +brif 22 L4201 L4202 +label L4201 load 23 timeout_type load 24 types_TID_INT neq 25 23 24 -brif 25 L4190 L4191 -label L4190 +brif 25 L4204 L4205 +label L4204 strref 26 m13s304 strref 27 m13s377 load 28 timeout_type @@ -63289,12 +63466,12 @@ call 32 pith_cstring_release void 1 29 call 33 checker_diagnostics_report_error void 2 26 30 call 34 pith_cstring_release void 1 26 call 35 pith_cstring_release void 1 30 -jmp L4189 -label L4191 -label L4189 -jmp L4186 -label L4188 -label L4186 +jmp L4203 +label L4205 +label L4203 +jmp L4200 +label L4202 +label L4200 load 36 arm iconst 37 1 load 38 scope_id @@ -63314,14 +63491,14 @@ load 5 arm field 6 5 16 list children call 7 pith_list_len int 1 6 gte 8 4 7 -brif 8 L4193 L4194 -label L4193 +brif 8 L4207 L4208 +label L4207 load 9 types_TID_VOID load 10 body_node call 11 pith_struct_release void 1 10 ret 9 -label L4194 -label L4192 +label L4208 +label L4206 load 12 body_node load 13 arm field 14 13 16 list children @@ -63335,21 +63512,21 @@ field 20 19 0 string kind strref 21 m13s320 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L4196 L4197 -label L4196 +brif 22 L4210 L4211 +label L4210 load 24 body_node field 25 24 16 list children call 26 pith_list_len int 1 25 iconst 27 0 eq 28 26 27 -brif 28 L4199 L4200 -label L4199 +brif 28 L4213 L4214 +label L4213 load 29 types_TID_VOID load 30 body_node call 31 pith_struct_release void 1 30 ret 29 -label L4200 -label L4198 +label L4214 +label L4212 load 32 body_node field 33 32 16 list children iconst 34 0 @@ -63359,15 +63536,15 @@ call 37 checker_c_check_expr int 2 35 36 load 38 body_node call 39 pith_struct_release void 1 38 ret 37 -label L4197 -label L4195 +label L4211 +label L4209 load 40 body_node field 41 40 0 string kind strref 42 m13s319 call 43 pith_cstring_eq bool 2 41 42 call 44 pith_cstring_release void 1 42 -brif 43 L4202 L4203 -label L4202 +brif 43 L4216 L4217 +label L4216 load 45 body_node load 46 scope_id call 47 checker_check_block_statement void 2 45 46 @@ -63375,8 +63552,8 @@ load 48 types_TID_VOID load 49 body_node call 50 pith_struct_release void 1 49 ret 48 -label L4203 -label L4201 +label L4217 +label L4215 load 51 arm field 52 51 16 list children load 53 body_idx @@ -63401,14 +63578,14 @@ field 4 3 16 list children call 5 pith_list_len int 1 4 iconst 6 2 lt 7 5 6 -brif 7 L4205 L4206 -label L4205 +brif 7 L4219 L4220 +label L4219 load 8 types_TID_ERR load 9 cn call 10 pith_struct_release void 1 9 ret 8 -label L4206 -label L4204 +label L4220 +label L4218 load 11 node field 12 11 16 list children iconst 13 0 @@ -63420,13 +63597,13 @@ load 17 cond call 18 types_is_error_type bool 1 17 iconst 19 0 eq 20 18 19 -brif 20 L4208 L4209 -label L4208 +brif 20 L4222 L4223 +label L4222 load 21 cond load 22 types_TID_BOOL neq 23 21 22 -brif 23 L4211 L4212 -label L4211 +brif 23 L4225 L4226 +label L4225 strref 24 m13s375 strref 25 m13s374 load 26 cond @@ -63437,12 +63614,12 @@ call 30 pith_cstring_release void 1 27 call 31 checker_diagnostics_report_error void 2 24 28 call 32 pith_cstring_release void 1 24 call 33 pith_cstring_release void 1 28 -jmp L4210 -label L4212 -label L4210 -jmp L4207 -label L4209 -label L4207 +jmp L4224 +label L4226 +label L4224 +jmp L4221 +label L4223 +label L4221 load 34 node field 35 34 16 list children iconst 36 1 @@ -63461,12 +63638,12 @@ iconst 45 0 store __for_idx_179 45 store __for_len_179 44 store __for_iter_179 43 -label L4213 +label L4227 load 46 __for_idx_179 load 47 __for_len_179 lt 48 46 47 -brif 48 L4214 L4216 -label L4214 +brif 48 L4228 L4230 +label L4228 load 49 __for_iter_179 load 50 __for_idx_179 call 51 pith_list_get_value unknown 2 49 50 @@ -63474,15 +63651,15 @@ store __loopvar_179_child 51 load 52 skip_br iconst 53 0 gt 54 52 53 -brif 54 L4218 L4219 -label L4218 +brif 54 L4232 L4233 +label L4232 load 55 skip_br iconst 56 1 sub 57 55 56 store skip_br 57 -jmp L4215 -label L4219 -label L4217 +jmp L4229 +label L4233 +label L4231 load 58 cn load 59 __loopvar_179_child call 60 ast_get_node struct:Node 1 59 @@ -63493,15 +63670,15 @@ field 63 62 0 string kind strref 64 m13s376 call 65 pith_cstring_eq bool 2 63 64 call 66 pith_cstring_release void 1 64 -brif 65 L4221 L4222 -label L4221 +brif 65 L4235 L4236 +label L4235 load 67 cn field 68 67 16 list children call 69 pith_list_len int 1 68 iconst 70 2 gte 71 69 70 -brif 71 L4224 L4225 -label L4224 +brif 71 L4238 L4239 +label L4238 load 72 cn field 73 72 16 list children iconst 74 0 @@ -63513,13 +63690,13 @@ load 78 econd call 79 types_is_error_type bool 1 78 iconst 80 0 eq 81 79 80 -brif 81 L4227 L4228 -label L4227 +brif 81 L4241 L4242 +label L4241 load 82 econd load 83 types_TID_BOOL neq 84 82 83 -brif 84 L4230 L4231 -label L4230 +brif 84 L4244 L4245 +label L4244 strref 85 m13s375 strref 86 m13s374 load 87 econd @@ -63530,12 +63707,12 @@ call 91 pith_cstring_release void 1 88 call 92 checker_diagnostics_report_error void 2 85 89 call 93 pith_cstring_release void 1 85 call 94 pith_cstring_release void 1 89 -jmp L4229 -label L4231 -label L4229 -jmp L4226 -label L4228 -label L4226 +jmp L4243 +label L4245 +label L4243 +jmp L4240 +label L4242 +label L4240 load 95 cn field 96 95 16 list children iconst 97 1 @@ -63545,30 +63722,30 @@ call 100 checker_c_check_expr int 2 98 99 store etype 100 load 101 result_type call 102 types_is_error_type bool 1 101 -brif 102 L4233 L4234 -label L4233 +brif 102 L4247 L4248 +label L4247 load 103 etype store result_type 103 -jmp L4232 -label L4234 +jmp L4246 +label L4248 load 104 etype call 105 types_is_error_type bool 1 104 iconst 106 0 eq 107 105 106 -brif 107 L4235 L4236 -label L4235 +brif 107 L4249 L4250 +label L4249 load 108 etype load 109 result_type neq 110 108 109 -brif 110 L4238 L4239 -label L4238 +brif 110 L4252 L4253 +label L4252 load 111 etype load 112 result_type call 113 checker_types_structurally_equal bool 2 111 112 iconst 114 0 eq 115 113 114 -brif 115 L4241 L4242 -label L4241 +brif 115 L4255 L4256 +label L4255 strref 116 m13s371 strref 117 m13s373 load 118 result_type @@ -63588,50 +63765,50 @@ call 131 pith_cstring_release void 1 128 call 132 checker_diagnostics_report_error void 2 116 129 call 133 pith_cstring_release void 1 116 call 134 pith_cstring_release void 1 129 -jmp L4240 -label L4242 -label L4240 +jmp L4254 +label L4256 +label L4254 +jmp L4251 +label L4253 +label L4251 +jmp L4246 +label L4250 +label L4246 jmp L4237 label L4239 label L4237 -jmp L4232 +jmp L4234 label L4236 -label L4232 -jmp L4223 -label L4225 -label L4223 -jmp L4220 -label L4222 load 135 __loopvar_179_child load 136 scope_id call 137 checker_c_check_expr int 2 135 136 store etype 137 load 138 result_type call 139 types_is_error_type bool 1 138 -brif 139 L4244 L4245 -label L4244 +brif 139 L4258 L4259 +label L4258 load 140 etype store result_type 140 -jmp L4243 -label L4245 +jmp L4257 +label L4259 load 141 etype call 142 types_is_error_type bool 1 141 iconst 143 0 eq 144 142 143 -brif 144 L4246 L4247 -label L4246 +brif 144 L4260 L4261 +label L4260 load 145 etype load 146 result_type neq 147 145 146 -brif 147 L4249 L4250 -label L4249 +brif 147 L4263 L4264 +label L4263 load 148 etype load 149 result_type call 150 checker_types_structurally_equal bool 2 148 149 iconst 151 0 eq 152 150 151 -brif 152 L4252 L4253 -label L4252 +brif 152 L4266 L4267 +label L4266 strref 153 m13s371 strref 154 m13s373 load 155 result_type @@ -63651,23 +63828,23 @@ call 168 pith_cstring_release void 1 165 call 169 checker_diagnostics_report_error void 2 153 166 call 170 pith_cstring_release void 1 153 call 171 pith_cstring_release void 1 166 -jmp L4251 -label L4253 -label L4251 -jmp L4248 -label L4250 -label L4248 -jmp L4243 -label L4247 -label L4243 -label L4220 -label L4215 +jmp L4265 +label L4267 +label L4265 +jmp L4262 +label L4264 +label L4262 +jmp L4257 +label L4261 +label L4257 +label L4234 +label L4229 load 172 __for_idx_179 iconst 173 1 add 174 172 173 store __for_idx_179 174 -jmp L4213 -label L4216 +jmp L4227 +label L4230 load 175 result_type load 176 cn call 177 pith_struct_release void 1 176 @@ -63702,8 +63879,8 @@ field 13 12 16 list children call 14 pith_list_len int 1 13 iconst 15 2 lt 16 14 15 -brif 16 L4255 L4256 -label L4255 +brif 16 L4269 L4270 +label L4269 load 17 types_TID_ERR load 18 node call 19 pith_struct_release void 1 18 @@ -63718,8 +63895,8 @@ call 27 pith_cstring_release void 1 26 load 28 pv call 29 pith_cstring_release void 1 28 ret 17 -label L4256 -label L4254 +label L4270 +label L4268 load 30 node field 31 30 16 list children iconst 32 0 @@ -63729,8 +63906,8 @@ call 35 checker_c_check_expr int 2 33 34 store subject_type 35 load 36 subject_type call 37 types_is_error_type bool 1 36 -brif 37 L4258 L4259 -label L4258 +brif 37 L4272 L4273 +label L4272 load 38 types_TID_ERR load 39 node call 40 pith_struct_release void 1 39 @@ -63745,8 +63922,8 @@ call 48 pith_cstring_release void 1 47 load 49 pv call 50 pith_cstring_release void 1 49 ret 38 -label L4259 -label L4257 +label L4273 +label L4271 load 51 types_TID_ERR store result_type 51 load 52 arm_values @@ -63762,12 +63939,12 @@ iconst 59 0 store __for_idx_180 59 store __for_len_180 58 store __for_iter_180 57 -label L4260 +label L4274 load 60 __for_idx_180 load 61 __for_len_180 lt 62 60 61 -brif 62 L4261 L4263 -label L4261 +brif 62 L4275 L4277 +label L4275 load 63 __for_iter_180 load 64 __for_idx_180 call 65 pith_list_get_value unknown 2 63 64 @@ -63775,15 +63952,15 @@ store __loopvar_180_child 65 load 66 skip_subj iconst 67 0 gt 68 66 67 -brif 68 L4265 L4266 -label L4265 +brif 68 L4279 L4280 +label L4279 load 69 skip_subj iconst 70 1 sub 71 69 70 store skip_subj 71 -jmp L4262 -label L4266 -label L4264 +jmp L4276 +label L4280 +label L4278 load 72 arm_node load 73 __loopvar_180_child call 74 ast_get_node struct:Node 1 73 @@ -63794,8 +63971,8 @@ field 77 76 0 string kind strref 78 m13s372 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 -brif 79 L4268 L4269 -label L4268 +brif 79 L4282 L4283 +label L4282 load 81 arm_node load 82 subject_type load 83 scope_id @@ -63806,8 +63983,8 @@ field 86 85 16 list children call 87 pith_list_len int 1 86 iconst 88 0 gt 89 87 88 -brif 89 L4271 L4272 -label L4271 +brif 89 L4285 L4286 +label L4285 load 90 pat load 91 arm_node field 92 91 16 list children @@ -63821,8 +63998,8 @@ field 98 97 0 string kind strref 99 m13s358 call 100 pith_cstring_eq bool 2 98 99 call 101 pith_cstring_release void 1 99 -brif 100 L4274 L4275 -label L4274 +brif 100 L4288 L4289 +label L4288 load 102 pat field 103 102 16 list children call 104 pith_auto_len int 1 103 @@ -63830,12 +64007,12 @@ iconst 105 0 store __for_idx_181 105 store __for_len_181 104 store __for_iter_181 103 -label L4276 +label L4290 load 106 __for_idx_181 load 107 __for_len_181 lt 108 106 107 -brif 108 L4277 L4279 -label L4277 +brif 108 L4291 L4293 +label L4291 load 109 __for_iter_181 load 110 __for_idx_181 call 111 pith_list_get_value unknown 2 109 110 @@ -63851,23 +64028,23 @@ load 118 av call 119 string_len int 1 118 iconst 120 0 gt 121 119 120 -brif 121 L4281 L4282 -label L4281 +brif 121 L4295 L4296 +label L4295 load 122 arm_values load 123 av call 124 pith_list_push_value void 2 122 123 -jmp L4280 -label L4282 -label L4280 -label L4278 +jmp L4294 +label L4296 +label L4294 +label L4292 load 125 __for_idx_181 iconst 126 1 add 127 125 126 store __for_idx_181 127 -jmp L4276 -label L4279 -jmp L4273 -label L4275 +jmp L4290 +label L4293 +jmp L4287 +label L4289 load 128 pv load 129 pat call 130 checker_collect_arm_pattern_bindings string 1 129 @@ -63877,54 +64054,54 @@ load 132 pv call 133 string_len int 1 132 iconst 134 0 gt 135 133 134 -brif 135 L4284 L4285 -label L4284 +brif 135 L4298 L4299 +label L4298 load 136 arm_values load 137 pv call 138 pith_list_push_value void 2 136 137 -jmp L4283 -label L4285 -label L4283 -label L4273 -jmp L4270 -label L4272 -label L4270 +jmp L4297 +label L4299 +label L4297 +label L4287 +jmp L4284 +label L4286 +label L4284 load 139 result_type call 140 types_is_error_type bool 1 139 -brif 140 L4287 L4288 -label L4287 +brif 140 L4301 L4302 +label L4301 load 141 arm_type store result_type 141 -jmp L4286 -label L4288 +jmp L4300 +label L4302 load 142 arm_type call 143 types_is_error_type bool 1 142 iconst 144 0 eq 145 143 144 -brif 145 L4289 L4290 -label L4289 +brif 145 L4303 L4304 +label L4303 load 146 arm_type load 147 result_type neq 148 146 147 -brif 148 L4292 L4293 -label L4292 +brif 148 L4306 L4307 +label L4306 load 149 arm_type load 150 types_TID_VOID neq 151 149 150 -brif 151 L4295 L4296 -label L4295 +brif 151 L4309 L4310 +label L4309 load 152 result_type load 153 types_TID_VOID neq 154 152 153 -brif 154 L4298 L4299 -label L4298 +brif 154 L4312 L4313 +label L4312 load 155 arm_type load 156 result_type call 157 checker_types_structurally_equal bool 2 155 156 iconst 158 0 eq 159 157 158 -brif 159 L4301 L4302 -label L4301 +brif 159 L4315 L4316 +label L4315 strref 160 m13s371 strref 161 m13s370 load 162 result_type @@ -63944,31 +64121,31 @@ call 175 pith_cstring_release void 1 172 call 176 checker_diagnostics_report_error void 2 160 173 call 177 pith_cstring_release void 1 160 call 178 pith_cstring_release void 1 173 +jmp L4314 +label L4316 +label L4314 +jmp L4311 +label L4313 +label L4311 +jmp L4308 +label L4310 +label L4308 +jmp L4305 +label L4307 +label L4305 jmp L4300 -label L4302 +label L4304 label L4300 -jmp L4297 -label L4299 -label L4297 -jmp L4294 -label L4296 -label L4294 -jmp L4291 -label L4293 -label L4291 -jmp L4286 -label L4290 -label L4286 -jmp L4267 -label L4269 -label L4267 -label L4262 +jmp L4281 +label L4283 +label L4281 +label L4276 load 179 __for_idx_180 iconst 180 1 add 181 179 180 store __for_idx_180 181 -jmp L4260 -label L4263 +jmp L4274 +label L4277 load 182 subject_type load 183 arm_values load 184 node_idx @@ -64015,16 +64192,16 @@ field 6 5 16 list children call 7 pith_list_len int 1 6 iconst 8 2 lt 9 7 8 -brif 9 L4304 L4305 -label L4304 +brif 9 L4318 L4319 +label L4318 load 10 types_TID_ERR load 11 guard_node call 12 pith_struct_release void 1 11 load 13 body_node call 14 pith_struct_release void 1 13 ret 10 -label L4305 -label L4303 +label L4319 +label L4317 load 15 scope_id call 16 scope_create_scope int 1 15 store arm_scope 16 @@ -64042,8 +64219,8 @@ field 26 25 16 list children call 27 pith_list_len int 1 26 iconst 28 2 gt 29 27 28 -brif 29 L4307 L4308 -label L4307 +brif 29 L4321 L4322 +label L4321 load 30 guard_node load 31 arm field 32 31 16 list children @@ -64057,15 +64234,15 @@ field 38 37 0 string kind strref 39 m13s368 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 -brif 40 L4310 L4311 -label L4310 +brif 40 L4324 L4325 +label L4324 load 42 guard_node field 43 42 16 list children call 44 pith_list_len int 1 43 iconst 45 0 gt 46 44 45 -brif 46 L4313 L4314 -label L4313 +brif 46 L4327 L4328 +label L4327 load 47 guard_node field 48 47 16 list children iconst 49 0 @@ -64077,13 +64254,13 @@ load 53 guard_type call 54 types_is_error_type bool 1 53 iconst 55 0 eq 56 54 55 -brif 56 L4316 L4317 -label L4316 +brif 56 L4330 L4331 +label L4330 load 57 guard_type load 58 types_TID_BOOL neq 59 57 58 -brif 59 L4319 L4320 -label L4319 +brif 59 L4333 L4334 +label L4333 strref 60 m13s367 strref 61 m13s366 load 62 guard_type @@ -64094,38 +64271,38 @@ call 66 pith_cstring_release void 1 63 call 67 checker_diagnostics_report_error void 2 60 64 call 68 pith_cstring_release void 1 60 call 69 pith_cstring_release void 1 64 -jmp L4318 -label L4320 -label L4318 -jmp L4315 -label L4317 -label L4315 -jmp L4312 -label L4314 -label L4312 +jmp L4332 +label L4334 +label L4332 +jmp L4329 +label L4331 +label L4329 +jmp L4326 +label L4328 +label L4326 iconst 70 2 store body_idx 70 -jmp L4309 -label L4311 -label L4309 -jmp L4306 -label L4308 -label L4306 +jmp L4323 +label L4325 +label L4323 +jmp L4320 +label L4322 +label L4320 load 71 body_idx load 72 arm field 73 72 16 list children call 74 pith_list_len int 1 73 gte 75 71 74 -brif 75 L4322 L4323 -label L4322 +brif 75 L4336 L4337 +label L4336 load 76 types_TID_VOID load 77 guard_node call 78 pith_struct_release void 1 77 load 79 body_node call 80 pith_struct_release void 1 79 ret 76 -label L4323 -label L4321 +label L4337 +label L4335 load 81 body_node load 82 arm field 83 82 16 list children @@ -64139,15 +64316,15 @@ field 89 88 0 string kind strref 90 m13s320 call 91 pith_cstring_eq bool 2 89 90 call 92 pith_cstring_release void 1 90 -brif 91 L4325 L4326 -label L4325 +brif 91 L4339 L4340 +label L4339 load 93 body_node field 94 93 16 list children call 95 pith_list_len int 1 94 iconst 96 0 gt 97 95 96 -brif 97 L4328 L4329 -label L4328 +brif 97 L4342 L4343 +label L4342 load 98 body_node field 99 98 16 list children iconst 100 0 @@ -64159,23 +64336,23 @@ call 105 pith_struct_release void 1 104 load 106 body_node call 107 pith_struct_release void 1 106 ret 103 -label L4329 -label L4327 +label L4343 +label L4341 load 108 types_TID_VOID load 109 guard_node call 110 pith_struct_release void 1 109 load 111 body_node call 112 pith_struct_release void 1 111 ret 108 -label L4326 -label L4324 +label L4340 +label L4338 load 113 body_node field 114 113 0 string kind strref 115 m13s319 call 116 pith_cstring_eq bool 2 114 115 call 117 pith_cstring_release void 1 115 -brif 116 L4331 L4332 -label L4331 +brif 116 L4345 L4346 +label L4345 load 118 body_node load 119 arm_scope call 120 checker_check_block_statement void 2 118 119 @@ -64185,8 +64362,8 @@ call 123 pith_struct_release void 1 122 load 124 body_node call 125 pith_struct_release void 1 124 ret 121 -label L4332 -label L4330 +label L4346 +label L4344 load 126 arm field 127 126 16 list children load 128 body_idx @@ -64223,23 +64400,23 @@ field 10 9 0 string kind strref 11 m13s337 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 -brif 12 L4334 L4335 -label L4334 +brif 12 L4348 L4349 +label L4348 load 14 pat call 15 pith_struct_release void 1 14 load 16 info call 17 pith_struct_release void 1 16 iconst 18 0 ret 18 -label L4335 -label L4333 +label L4349 +label L4347 load 19 pat field 20 19 0 string kind strref 21 m13s338 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L4337 L4338 -label L4337 +brif 22 L4351 L4352 +label L4351 load 24 info load 25 expected_type call 26 types_get_type_info struct:TypeInfo 1 25 @@ -64250,8 +64427,8 @@ field 29 28 0 string kind strref 30 m13s29 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 -brif 31 L4340 L4341 -label L4340 +brif 31 L4354 L4355 +label L4354 load 33 scope_id load 34 pat field 35 34 8 string value @@ -64265,8 +64442,8 @@ load 42 info call 43 pith_struct_release void 1 42 iconst 44 0 ret 44 -label L4341 -label L4339 +label L4355 +label L4353 load 45 scope_id load 46 pat field 47 46 8 string value @@ -64279,21 +64456,21 @@ load 53 info call 54 pith_struct_release void 1 53 iconst 55 0 ret 55 -label L4338 -label L4336 +label L4352 +label L4350 load 56 pat field 57 56 0 string kind strref 58 m13s341 call 59 pith_cstring_eq bool 2 57 58 call 60 pith_cstring_release void 1 58 -brif 59 L4343 L4344 -label L4343 +brif 59 L4357 L4358 +label L4357 load 61 expected_type call 62 types_is_integer_type bool 1 61 iconst 63 0 eq 64 62 63 -brif 64 L4346 L4347 -label L4346 +brif 64 L4360 L4361 +label L4360 strref 65 m13s348 strref 66 m13s365 load 67 expected_type @@ -64304,30 +64481,30 @@ call 71 pith_cstring_release void 1 68 call 72 checker_diagnostics_report_error void 2 65 69 call 73 pith_cstring_release void 1 65 call 74 pith_cstring_release void 1 69 -jmp L4345 -label L4347 -label L4345 +jmp L4359 +label L4361 +label L4359 load 75 pat call 76 pith_struct_release void 1 75 load 77 info call 78 pith_struct_release void 1 77 iconst 79 0 ret 79 -label L4344 -label L4342 +label L4358 +label L4356 load 80 pat field 81 80 0 string kind strref 82 m13s364 call 83 pith_cstring_eq bool 2 81 82 call 84 pith_cstring_release void 1 82 -brif 83 L4349 L4350 -label L4349 +brif 83 L4363 L4364 +label L4363 load 85 expected_type call 86 types_is_integer_type bool 1 85 iconst 87 0 eq 88 86 87 -brif 88 L4352 L4353 -label L4352 +brif 88 L4366 L4367 +label L4366 strref 89 m13s348 strref 90 m13s363 load 91 expected_type @@ -64338,29 +64515,29 @@ call 95 pith_cstring_release void 1 92 call 96 checker_diagnostics_report_error void 2 89 93 call 97 pith_cstring_release void 1 89 call 98 pith_cstring_release void 1 93 -jmp L4351 -label L4353 -label L4351 +jmp L4365 +label L4367 +label L4365 load 99 pat call 100 pith_struct_release void 1 99 load 101 info call 102 pith_struct_release void 1 101 iconst 103 0 ret 103 -label L4350 -label L4348 +label L4364 +label L4362 load 104 pat field 105 104 0 string kind strref 106 m13s362 call 107 pith_cstring_eq bool 2 105 106 call 108 pith_cstring_release void 1 106 -brif 107 L4355 L4356 -label L4355 +brif 107 L4369 L4370 +label L4369 load 109 expected_type load 110 types_TID_FLOAT neq 111 109 110 -brif 111 L4358 L4359 -label L4358 +brif 111 L4372 L4373 +label L4372 strref 112 m13s348 strref 113 m13s361 load 114 expected_type @@ -64371,29 +64548,29 @@ call 118 pith_cstring_release void 1 115 call 119 checker_diagnostics_report_error void 2 112 116 call 120 pith_cstring_release void 1 112 call 121 pith_cstring_release void 1 116 -jmp L4357 -label L4359 -label L4357 +jmp L4371 +label L4373 +label L4371 load 122 pat call 123 pith_struct_release void 1 122 load 124 info call 125 pith_struct_release void 1 124 iconst 126 0 ret 126 -label L4356 -label L4354 +label L4370 +label L4368 load 127 pat field 128 127 0 string kind strref 129 m13s340 call 130 pith_cstring_eq bool 2 128 129 call 131 pith_cstring_release void 1 129 -brif 130 L4361 L4362 -label L4361 +brif 130 L4375 L4376 +label L4375 load 132 expected_type load 133 types_TID_STRING neq 134 132 133 -brif 134 L4364 L4365 -label L4364 +brif 134 L4378 L4379 +label L4378 strref 135 m13s348 strref 136 m13s360 load 137 expected_type @@ -64404,29 +64581,29 @@ call 141 pith_cstring_release void 1 138 call 142 checker_diagnostics_report_error void 2 135 139 call 143 pith_cstring_release void 1 135 call 144 pith_cstring_release void 1 139 -jmp L4363 -label L4365 -label L4363 +jmp L4377 +label L4379 +label L4377 load 145 pat call 146 pith_struct_release void 1 145 load 147 info call 148 pith_struct_release void 1 147 iconst 149 0 ret 149 -label L4362 -label L4360 +label L4376 +label L4374 load 150 pat field 151 150 0 string kind strref 152 m13s343 call 153 pith_cstring_eq bool 2 151 152 call 154 pith_cstring_release void 1 152 -brif 153 L4367 L4368 -label L4367 +brif 153 L4381 L4382 +label L4381 load 155 expected_type load 156 types_TID_BOOL neq 157 155 156 -brif 157 L4370 L4371 -label L4370 +brif 157 L4384 L4385 +label L4384 strref 158 m13s348 strref 159 m13s359 load 160 expected_type @@ -64437,39 +64614,39 @@ call 164 pith_cstring_release void 1 161 call 165 checker_diagnostics_report_error void 2 158 162 call 166 pith_cstring_release void 1 158 call 167 pith_cstring_release void 1 162 -jmp L4369 -label L4371 -label L4369 +jmp L4383 +label L4385 +label L4383 load 168 pat call 169 pith_struct_release void 1 168 load 170 info call 171 pith_struct_release void 1 170 iconst 172 0 ret 172 -label L4368 -label L4366 +label L4382 +label L4380 load 173 pat field 174 173 0 string kind strref 175 m13s336 call 176 pith_cstring_eq bool 2 174 175 call 177 pith_cstring_release void 1 175 -brif 176 L4373 L4374 -label L4373 +brif 176 L4387 L4388 +label L4387 load 178 pat call 179 pith_struct_release void 1 178 load 180 info call 181 pith_struct_release void 1 180 iconst 182 0 ret 182 -label L4374 -label L4372 +label L4388 +label L4386 load 183 pat field 184 183 0 string kind strref 185 m13s342 call 186 pith_cstring_eq bool 2 184 185 call 187 pith_cstring_release void 1 185 -brif 186 L4376 L4377 -label L4376 +brif 186 L4390 L4391 +label L4390 load 188 pat load 189 expected_type load 190 scope_id @@ -64480,15 +64657,15 @@ load 194 info call 195 pith_struct_release void 1 194 iconst 196 0 ret 196 -label L4377 -label L4375 +label L4391 +label L4389 load 197 pat field 198 197 0 string kind strref 199 m13s358 call 200 pith_cstring_eq bool 2 198 199 call 201 pith_cstring_release void 1 199 -brif 200 L4379 L4380 -label L4379 +brif 200 L4393 L4394 +label L4393 load 202 pat load 203 expected_type load 204 scope_id @@ -64499,15 +64676,15 @@ load 208 info call 209 pith_struct_release void 1 208 iconst 210 0 ret 210 -label L4380 -label L4378 +label L4394 +label L4392 load 211 pat field 212 211 0 string kind strref 213 m13s339 call 214 pith_cstring_eq bool 2 212 213 call 215 pith_cstring_release void 1 213 -brif 214 L4382 L4383 -label L4382 +brif 214 L4396 L4397 +label L4396 load 216 pat load 217 expected_type load 218 scope_id @@ -64518,8 +64695,8 @@ load 222 info call 223 pith_struct_release void 1 222 iconst 224 0 ret 224 -label L4383 -label L4381 +label L4397 +label L4395 load 225 pat call 226 pith_struct_release void 1 225 load 227 info @@ -64540,12 +64717,12 @@ iconst 7 0 store __for_idx_182 7 store __for_len_182 6 store __for_iter_182 5 -label L4384 +label L4398 load 8 __for_idx_182 load 9 __for_len_182 lt 10 8 9 -brif 10 L4385 L4387 -label L4385 +brif 10 L4399 L4401 +label L4399 load 11 __for_iter_182 load 12 __for_idx_182 call 13 pith_list_get_value unknown 2 11 12 @@ -64556,44 +64733,44 @@ call 16 ast_get_node struct:Node 1 15 call 17 pith_struct_release void 1 14 store alt_node 16 iconst 18 0 -store __or_18_4391 18 +store __or_18_4405 18 load 19 alt_node field 20 19 0 string kind strref 21 m13s338 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -store __or_18_4391 22 -brif 22 L4392 L4391 -label L4391 +store __or_18_4405 22 +brif 22 L4406 L4405 +label L4405 load 24 alt_node field 25 24 0 string kind strref 26 m13s337 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 -store __or_18_4391 27 -label L4392 -load 29 __or_18_4391 -brif 29 L4389 L4390 -label L4389 +store __or_18_4405 27 +label L4406 +load 29 __or_18_4405 +brif 29 L4403 L4404 +label L4403 strref 30 m13s348 strref 31 m13s357 call 32 checker_diagnostics_report_error void 2 30 31 call 33 pith_cstring_release void 1 30 call 34 pith_cstring_release void 1 31 -jmp L4388 -label L4390 +jmp L4402 +label L4404 load 35 __loopvar_182_alt load 36 expected_type load 37 scope_id call 38 checker_check_pattern_match void 3 35 36 37 -label L4388 -label L4386 +label L4402 +label L4400 load 39 __for_idx_182 iconst 40 1 add 41 39 40 store __for_idx_182 41 -jmp L4384 -label L4387 +jmp L4398 +label L4401 load 42 alt_node call 43 pith_struct_release void 1 42 iconst 44 0 @@ -64624,8 +64801,8 @@ field 14 13 8 string 1 call 15 string_len int 1 14 iconst 16 0 eq 17 15 16 -brif 17 L4394 L4395 -label L4394 +brif 17 L4408 L4409 +label L4408 load 18 parts call 19 pith_struct_release void 1 18 load 20 type_name @@ -64638,8 +64815,8 @@ load 26 variant_fields call 27 pith_list_release_handle void 1 26 iconst 28 0 ret 28 -label L4395 -label L4393 +label L4409 +label L4407 load 29 type_name load 30 parts field 31 30 0 string 0 @@ -64658,8 +64835,8 @@ store enum_tid 40 load 41 enum_tid iconst 42 0 lt 43 41 42 -brif 43 L4397 L4398 -label L4397 +brif 43 L4411 L4412 +label L4411 strref 44 m13s310 strref 45 m13s311 load 46 type_name @@ -64680,13 +64857,13 @@ load 60 variant_fields call 61 pith_list_release_handle void 1 60 iconst 62 0 ret 62 -label L4398 -label L4396 +label L4412 +label L4410 load 63 enum_tid load 64 expected_type neq 65 63 64 -brif 65 L4400 L4401 -label L4400 +brif 65 L4414 L4415 +label L4414 strref 66 m13s348 strref 67 m13s356 load 68 type_name @@ -64716,8 +64893,8 @@ load 91 variant_fields call 92 pith_list_release_handle void 1 91 iconst 93 0 ret 93 -label L4401 -label L4399 +label L4415 +label L4413 load 94 enum_info load 95 enum_tid call 96 types_get_type_info struct:TypeInfo 1 95 @@ -64730,8 +64907,8 @@ call 102 pith_cstring_eq bool 2 99 100 iconst 103 1 sub 101 103 102 call 104 pith_cstring_release void 1 100 -brif 101 L4403 L4404 -label L4403 +brif 101 L4417 L4418 +label L4417 strref 105 m13s348 load 106 type_name strref 107 m13s354 @@ -64752,8 +64929,8 @@ load 121 variant_fields call 122 pith_list_release_handle void 1 121 iconst 123 0 ret 123 -label L4404 -label L4402 +label L4418 +label L4416 iconst 124 0 store found 124 iconst 125 0 @@ -64765,12 +64942,12 @@ iconst 129 0 store __for_idx_183 129 store __for_len_183 128 store __for_iter_183 127 -label L4405 +label L4419 load 130 __for_idx_183 load 131 __for_len_183 lt 132 130 131 -brif 132 L4406 L4408 -label L4406 +brif 132 L4420 L4422 +label L4420 load 133 __for_iter_183 load 134 __for_idx_183 call 135 pith_list_get_value_unchecked string 2 133 134 @@ -64778,8 +64955,8 @@ store __loopvar_183_v 135 load 136 __loopvar_183_v load 137 variant_name call 138 checker_strings_equal bool 2 136 137 -brif 138 L4410 L4411 -label L4410 +brif 138 L4424 L4425 +label L4424 iconst 139 1 store found 139 load 140 vidx @@ -64787,8 +64964,8 @@ load 141 enum_info field 142 141 104 list variant_types call 143 pith_list_len int 1 142 lt 144 140 143 -brif 144 L4413 L4414 -label L4413 +brif 144 L4427 L4428 +label L4427 load 145 variant_fields load 146 enum_info field 147 146 104 list variant_types @@ -64803,8 +64980,8 @@ call 154 pith_list_len int 1 153 load 155 variant_fields call 156 pith_list_len int 1 155 neq 157 154 156 -brif 157 L4416 L4417 -label L4416 +brif 157 L4430 L4431 +label L4430 strref 158 m13s346 load 159 variant_name strref 160 m13s353 @@ -64842,8 +65019,8 @@ load 191 variant_fields call 192 pith_list_release_handle void 1 191 iconst 193 0 ret 193 -label L4417 -label L4415 +label L4431 +label L4429 iconst 194 0 store fidx 194 load 195 pat @@ -64853,12 +65030,12 @@ iconst 198 0 store __for_idx_184 198 store __for_len_184 197 store __for_iter_184 196 -label L4418 +label L4432 load 199 __for_idx_184 load 200 __for_len_184 lt 201 199 200 -brif 201 L4419 L4421 -label L4419 +brif 201 L4433 L4435 +label L4433 load 202 __for_iter_184 load 203 __for_idx_184 call 204 pith_list_get_value unknown 2 202 203 @@ -64867,50 +65044,50 @@ load 205 fidx load 206 variant_fields call 207 pith_list_len int 1 206 lt 208 205 207 -brif 208 L4423 L4424 -label L4423 +brif 208 L4437 L4438 +label L4437 load 209 __loopvar_184_sub_pat load 210 variant_fields load 211 fidx call 212 pith_list_get_value_strict int 2 210 211 load 213 scope_id call 214 checker_check_pattern_match void 3 209 212 213 -jmp L4422 -label L4424 -label L4422 +jmp L4436 +label L4438 +label L4436 load 215 fidx iconst 216 1 add 217 215 216 store fidx 217 -label L4420 +label L4434 load 218 __for_idx_184 iconst 219 1 add 220 218 219 store __for_idx_184 220 -jmp L4418 -label L4421 -jmp L4412 -label L4414 -label L4412 -jmp L4409 -label L4411 -label L4409 +jmp L4432 +label L4435 +jmp L4426 +label L4428 +label L4426 +jmp L4423 +label L4425 +label L4423 load 221 vidx iconst 222 1 add 223 221 222 store vidx 223 -label L4407 +label L4421 load 224 __for_idx_183 iconst 225 1 add 226 224 225 store __for_idx_183 226 -jmp L4405 -label L4408 +jmp L4419 +label L4422 load 227 found iconst 228 0 eq 229 227 228 -brif 229 L4426 L4427 -label L4426 +brif 229 L4440 L4441 +label L4440 strref 230 m13s351 load 231 type_name strref 232 m13s350 @@ -64926,9 +65103,9 @@ call 241 pith_cstring_release void 1 238 call 242 checker_diagnostics_report_error void 2 230 239 call 243 pith_cstring_release void 1 230 call 244 pith_cstring_release void 1 239 -jmp L4425 -label L4427 -label L4425 +jmp L4439 +label L4441 +label L4439 load 245 parts call 246 pith_struct_release void 1 245 load 247 type_name @@ -64960,8 +65137,8 @@ call 12 pith_cstring_eq bool 2 9 10 iconst 13 1 sub 11 13 12 call 14 pith_cstring_release void 1 10 -brif 11 L4429 L4430 -label L4429 +brif 11 L4443 L4444 +label L4443 strref 15 m13s348 strref 16 m13s347 load 17 expected_type @@ -64976,8 +65153,8 @@ load 25 info call 26 pith_struct_release void 1 25 iconst 27 0 ret 27 -label L4430 -label L4428 +label L4444 +label L4442 load 28 pat field 29 28 16 list children call 30 pith_list_len int 1 29 @@ -64985,8 +65162,8 @@ load 31 info field 32 31 88 list elements call 33 pith_list_len int 1 32 neq 34 30 33 -brif 34 L4432 L4433 -label L4432 +brif 34 L4446 L4447 +label L4446 strref 35 m13s346 strref 36 m13s345 load 37 pat @@ -65014,8 +65191,8 @@ load 58 info call 59 pith_struct_release void 1 58 iconst 60 0 ret 60 -label L4433 -label L4431 +label L4447 +label L4445 iconst 61 0 store i 61 load 62 pat @@ -65025,12 +65202,12 @@ iconst 65 0 store __for_idx_185 65 store __for_len_185 64 store __for_iter_185 63 -label L4434 +label L4448 load 66 __for_idx_185 load 67 __for_len_185 lt 68 66 67 -brif 68 L4435 L4437 -label L4435 +brif 68 L4449 L4451 +label L4449 load 69 __for_iter_185 load 70 __for_idx_185 call 71 pith_list_get_value unknown 2 69 70 @@ -65040,8 +65217,8 @@ load 73 info field 74 73 88 list elements call 75 pith_list_len int 1 74 lt 76 72 75 -brif 76 L4439 L4440 -label L4439 +brif 76 L4453 L4454 +label L4453 load 77 __loopvar_185_sub_pat load 78 info field 79 78 88 list elements @@ -65049,20 +65226,20 @@ load 80 i call 81 pith_list_get_value_strict int 2 79 80 load 82 scope_id call 83 checker_check_pattern_match void 3 77 81 82 -jmp L4438 -label L4440 -label L4438 +jmp L4452 +label L4454 +label L4452 load 84 i iconst 85 1 add 86 84 85 store i 86 -label L4436 +label L4450 load 87 __for_idx_185 iconst 88 1 add 89 87 88 store __for_idx_185 89 -jmp L4434 -label L4437 +jmp L4448 +label L4451 load 90 info call 91 pith_struct_release void 1 90 iconst 92 0 @@ -65079,38 +65256,38 @@ field 4 3 0 string kind strref 5 m13s337 call 6 pith_cstring_eq bool 2 4 5 call 7 pith_cstring_release void 1 5 -brif 6 L4442 L4443 -label L4442 +brif 6 L4456 L4457 +label L4456 strref 8 m13s124 load 9 parts call 10 pith_struct_release void 1 9 load 11 sub call 12 pith_struct_release void 1 11 ret 8 -label L4443 -label L4441 +label L4457 +label L4455 load 13 pat field 14 13 0 string kind strref 15 m13s338 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 -brif 16 L4445 L4446 -label L4445 +brif 16 L4459 L4460 +label L4459 strref 18 m13s124 load 19 parts call 20 pith_struct_release void 1 19 load 21 sub call 22 pith_struct_release void 1 21 ret 18 -label L4446 -label L4444 +label L4460 +label L4458 load 23 pat field 24 23 0 string kind strref 25 m13s343 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 -brif 26 L4448 L4449 -label L4448 +brif 26 L4462 L4463 +label L4462 load 28 pat field 29 28 8 string value call 30 pith_cstring_retain void 1 29 @@ -65119,15 +65296,15 @@ call 32 pith_struct_release void 1 31 load 33 sub call 34 pith_struct_release void 1 33 ret 29 -label L4449 -label L4447 +label L4463 +label L4461 load 35 pat field 36 35 0 string kind strref 37 m13s342 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 -brif 38 L4451 L4452 -label L4451 +brif 38 L4465 L4466 +label L4465 load 40 parts load 41 pat field 42 41 8 string value @@ -65139,8 +65316,8 @@ field 46 45 8 string 1 call 47 string_len int 1 46 iconst 48 0 gt 49 47 48 -brif 49 L4454 L4455 -label L4454 +brif 49 L4468 L4469 +label L4468 load 50 parts field 51 50 8 string 1 call 52 pith_cstring_retain void 1 51 @@ -65149,8 +65326,8 @@ call 54 pith_struct_release void 1 53 load 55 sub call 56 pith_struct_release void 1 55 ret 51 -label L4455 -label L4453 +label L4469 +label L4467 load 57 parts field 58 57 0 string 0 call 59 pith_cstring_retain void 1 58 @@ -65159,15 +65336,15 @@ call 61 pith_struct_release void 1 60 load 62 sub call 63 pith_struct_release void 1 62 ret 58 -label L4452 -label L4450 +label L4466 +label L4464 load 64 pat field 65 64 0 string kind strref 66 m13s341 call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 66 -brif 67 L4457 L4458 -label L4457 +brif 67 L4471 L4472 +label L4471 load 69 pat field 70 69 8 string value call 71 pith_cstring_retain void 1 70 @@ -65176,15 +65353,15 @@ call 73 pith_struct_release void 1 72 load 74 sub call 75 pith_struct_release void 1 74 ret 70 -label L4458 -label L4456 +label L4472 +label L4470 load 76 pat field 77 76 0 string kind strref 78 m13s340 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 -brif 79 L4460 L4461 -label L4460 +brif 79 L4474 L4475 +label L4474 load 81 pat field 82 81 8 string value call 83 pith_cstring_retain void 1 82 @@ -65193,15 +65370,15 @@ call 85 pith_struct_release void 1 84 load 86 sub call 87 pith_struct_release void 1 86 ret 82 -label L4461 -label L4459 +label L4475 +label L4473 load 88 pat field 89 88 0 string kind strref 90 m13s339 call 91 pith_cstring_eq bool 2 89 90 call 92 pith_cstring_release void 1 90 -brif 91 L4463 L4464 -label L4463 +brif 91 L4477 L4478 +label L4477 load 93 pat field 94 93 16 list children call 95 pith_auto_len int 1 94 @@ -65209,12 +65386,12 @@ iconst 96 0 store __for_idx_186 96 store __for_len_186 95 store __for_iter_186 94 -label L4465 +label L4479 load 97 __for_idx_186 load 98 __for_len_186 lt 99 97 98 -brif 99 L4466 L4468 -label L4466 +brif 99 L4480 L4482 +label L4480 load 100 __for_iter_186 load 101 __for_idx_186 call 102 pith_list_get_value unknown 2 100 101 @@ -65225,7 +65402,7 @@ call 105 ast_get_node struct:Node 1 104 call 106 pith_struct_release void 1 103 store sub 105 iconst 107 0 -store __and_107_4472 107 +store __and_107_4486 107 load 108 sub field 109 108 0 string kind strref 110 m13s338 @@ -65233,9 +65410,9 @@ call 112 pith_cstring_eq bool 2 109 110 iconst 113 1 sub 111 113 112 call 114 pith_cstring_release void 1 110 -store __and_107_4472 111 -brif 111 L4472 L4473 -label L4472 +store __and_107_4486 111 +brif 111 L4486 L4487 +label L4486 load 115 sub field 116 115 0 string kind strref 117 m13s337 @@ -65243,49 +65420,49 @@ call 119 pith_cstring_eq bool 2 116 117 iconst 120 1 sub 118 120 119 call 121 pith_cstring_release void 1 117 -store __and_107_4472 118 -label L4473 -load 122 __and_107_4472 -brif 122 L4470 L4471 -label L4470 +store __and_107_4486 118 +label L4487 +load 122 __and_107_4486 +brif 122 L4484 L4485 +label L4484 strref 123 m13s35 load 124 parts call 125 pith_struct_release void 1 124 load 126 sub call 127 pith_struct_release void 1 126 ret 123 -label L4471 -label L4469 -label L4467 +label L4485 +label L4483 +label L4481 load 128 __for_idx_186 iconst 129 1 add 130 128 129 store __for_idx_186 130 -jmp L4465 -label L4468 +jmp L4479 +label L4482 strref 131 m13s124 load 132 parts call 133 pith_struct_release void 1 132 load 134 sub call 135 pith_struct_release void 1 134 ret 131 -label L4464 -label L4462 +label L4478 +label L4476 load 136 pat field 137 136 0 string kind strref 138 m13s336 call 139 pith_cstring_eq bool 2 137 138 call 140 pith_cstring_release void 1 138 -brif 139 L4475 L4476 -label L4475 +brif 139 L4489 L4490 +label L4489 strref 141 m13s334 load 142 parts call 143 pith_struct_release void 1 142 load 144 sub call 145 pith_struct_release void 1 144 ret 141 -label L4476 -label L4474 +label L4490 +label L4488 strref 146 m13s35 load 147 parts call 148 pith_struct_release void 1 147 @@ -65311,12 +65488,12 @@ iconst 6 0 store __for_idx_187 6 store __for_len_187 5 store __for_iter_187 4 -label L4477 +label L4491 load 7 __for_idx_187 load 8 __for_len_187 lt 9 7 8 -brif 9 L4478 L4480 -label L4478 +brif 9 L4492 L4494 +label L4492 load 10 __for_iter_187 load 11 __for_idx_187 call 12 pith_list_get_value_unchecked string 2 10 11 @@ -65325,34 +65502,34 @@ load 13 __loopvar_187_v strref 14 m13s124 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 -brif 15 L4482 L4483 -label L4482 +brif 15 L4496 L4497 +label L4496 load 17 subj_info call 18 pith_struct_release void 1 17 iconst 19 0 ret 19 -label L4483 -label L4481 -label L4479 +label L4497 +label L4495 +label L4493 load 20 __for_idx_187 iconst 21 1 add 22 20 21 store __for_idx_187 22 -jmp L4477 -label L4480 +jmp L4491 +label L4494 load 23 subject_type load 24 types_TID_BOOL eq 25 23 24 -brif 25 L4485 L4486 -label L4485 +brif 25 L4499 L4500 +label L4499 load 26 arm_values call 27 checker_check_bool_exhaustiveness void 1 26 load 28 subj_info call 29 pith_struct_release void 1 28 iconst 30 0 ret 30 -label L4486 -label L4484 +label L4500 +label L4498 load 31 subj_info load 32 subject_type call 33 types_get_type_info struct:TypeInfo 1 32 @@ -65363,8 +65540,8 @@ field 36 35 0 string kind strref 37 m13s33 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 -brif 38 L4488 L4489 -label L4488 +brif 38 L4502 L4503 +label L4502 load 40 subj_info load 41 arm_values call 42 checker_check_enum_exhaustiveness void 2 40 41 @@ -65372,15 +65549,15 @@ load 43 subj_info call 44 pith_struct_release void 1 43 iconst 45 0 ret 45 -label L4489 -label L4487 +label L4503 +label L4501 load 46 subj_info field 47 46 0 string kind strref 48 m13s29 call 49 pith_cstring_eq bool 2 47 48 call 50 pith_cstring_release void 1 48 -brif 49 L4491 L4492 -label L4491 +brif 49 L4505 L4506 +label L4505 iconst 51 0 store has_some 51 iconst 52 0 @@ -65391,12 +65568,12 @@ iconst 55 0 store __for_idx_188 55 store __for_len_188 54 store __for_iter_188 53 -label L4493 +label L4507 load 56 __for_idx_188 load 57 __for_len_188 lt 58 56 57 -brif 58 L4494 L4496 -label L4494 +brif 58 L4508 L4510 +label L4508 load 59 __for_iter_188 load 60 __for_idx_188 call 61 pith_list_get_value_unchecked string 2 59 60 @@ -65405,83 +65582,83 @@ load 62 __loopvar_188_v strref 63 m13s335 call 64 pith_cstring_eq bool 2 62 63 call 65 pith_cstring_release void 1 63 -brif 64 L4498 L4499 -label L4498 +brif 64 L4512 L4513 +label L4512 iconst 66 1 store has_some 66 -jmp L4497 -label L4499 +jmp L4511 +label L4513 load 67 __loopvar_188_v strref 68 m13s124 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 -brif 69 L4500 L4501 -label L4500 +brif 69 L4514 L4515 +label L4514 iconst 71 1 store has_some 71 -jmp L4497 -label L4501 -label L4497 +jmp L4511 +label L4515 +label L4511 load 72 __loopvar_188_v strref 73 m13s334 call 74 pith_cstring_eq bool 2 72 73 call 75 pith_cstring_release void 1 73 -brif 74 L4503 L4504 -label L4503 +brif 74 L4517 L4518 +label L4517 iconst 76 1 store has_none 76 -jmp L4502 -label L4504 +jmp L4516 +label L4518 load 77 __loopvar_188_v strref 78 m13s124 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 -brif 79 L4505 L4506 -label L4505 +brif 79 L4519 L4520 +label L4519 iconst 81 1 store has_none 81 -jmp L4502 -label L4506 -label L4502 -label L4495 +jmp L4516 +label L4520 +label L4516 +label L4509 load 82 __for_idx_188 iconst 83 1 add 84 82 83 store __for_idx_188 84 -jmp L4493 -label L4496 +jmp L4507 +label L4510 load 85 has_some iconst 87 1 sub 86 87 85 -brif 86 L4508 L4509 -label L4508 +brif 86 L4522 L4523 +label L4522 strref 88 m13s326 strref 89 m13s333 call 90 checker_diagnostics_report_error void 2 88 89 call 91 pith_cstring_release void 1 88 call 92 pith_cstring_release void 1 89 -jmp L4507 -label L4509 -label L4507 +jmp L4521 +label L4523 +label L4521 load 93 has_none iconst 95 1 sub 94 95 93 -brif 94 L4511 L4512 -label L4511 +brif 94 L4525 L4526 +label L4525 strref 96 m13s326 strref 97 m13s332 call 98 checker_diagnostics_report_error void 2 96 97 call 99 pith_cstring_release void 1 96 call 100 pith_cstring_release void 1 97 -jmp L4510 -label L4512 -label L4510 +jmp L4524 +label L4526 +label L4524 load 101 subj_info call 102 pith_struct_release void 1 101 iconst 103 0 ret 103 -label L4492 -label L4490 +label L4506 +label L4504 strref 104 m13s326 strref 105 m13s331 call 106 checker_diagnostics_report_error void 2 104 105 @@ -65504,12 +65681,12 @@ iconst 5 0 store __for_idx_189 5 store __for_len_189 4 store __for_iter_189 3 -label L4513 +label L4527 load 6 __for_idx_189 load 7 __for_len_189 lt 8 6 7 -brif 8 L4514 L4516 -label L4514 +brif 8 L4528 L4530 +label L4528 load 9 __for_iter_189 load 10 __for_idx_189 call 11 pith_list_get_value_unchecked string 2 9 10 @@ -65518,57 +65695,57 @@ load 12 __loopvar_189_v strref 13 m13s330 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L4518 L4519 -label L4518 +brif 14 L4532 L4533 +label L4532 iconst 16 1 store has_true 16 -jmp L4517 -label L4519 -label L4517 +jmp L4531 +label L4533 +label L4531 load 17 __loopvar_189_v strref 18 m13s329 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -brif 19 L4521 L4522 -label L4521 +brif 19 L4535 L4536 +label L4535 iconst 21 1 store has_false 21 -jmp L4520 -label L4522 -label L4520 -label L4515 +jmp L4534 +label L4536 +label L4534 +label L4529 load 22 __for_idx_189 iconst 23 1 add 24 22 23 store __for_idx_189 24 -jmp L4513 -label L4516 +jmp L4527 +label L4530 load 25 has_true iconst 26 0 eq 27 25 26 -brif 27 L4524 L4525 -label L4524 +brif 27 L4538 L4539 +label L4538 strref 28 m13s326 strref 29 m13s328 call 30 checker_diagnostics_report_error void 2 28 29 call 31 pith_cstring_release void 1 28 call 32 pith_cstring_release void 1 29 -jmp L4523 -label L4525 -label L4523 +jmp L4537 +label L4539 +label L4537 load 33 has_false iconst 34 0 eq 35 33 34 -brif 35 L4527 L4528 -label L4527 +brif 35 L4541 L4542 +label L4541 strref 36 m13s326 strref 37 m13s327 call 38 checker_diagnostics_report_error void 2 36 37 call 39 pith_cstring_release void 1 36 call 40 pith_cstring_release void 1 37 -jmp L4526 -label L4528 -label L4526 +jmp L4540 +label L4542 +label L4540 iconst 41 0 ret 41 endfunc @@ -65588,12 +65765,12 @@ iconst 9 0 store __for_idx_190 9 store __for_len_190 8 store __for_iter_190 7 -label L4529 +label L4543 load 10 __for_idx_190 load 11 __for_len_190 lt 12 10 11 -brif 12 L4530 L4532 -label L4530 +brif 12 L4544 L4546 +label L4544 load 13 __for_iter_190 load 14 __for_idx_190 call 15 pith_list_get_value_unchecked string 2 13 14 @@ -65606,12 +65783,12 @@ iconst 19 0 store __for_idx_191 19 store __for_len_191 18 store __for_iter_191 17 -label L4533 +label L4547 load 20 __for_idx_191 load 21 __for_len_191 lt 22 20 21 -brif 22 L4534 L4536 -label L4534 +brif 22 L4548 L4550 +label L4548 load 23 __for_iter_191 load 24 __for_idx_191 call 25 pith_list_get_value_unchecked string 2 23 24 @@ -65619,44 +65796,44 @@ store __loopvar_191_v 25 load 26 __loopvar_191_v load 27 __loopvar_190_variant call 28 checker_strings_equal bool 2 26 27 -brif 28 L4538 L4539 -label L4538 +brif 28 L4552 L4553 +label L4552 iconst 29 1 store found 29 -jmp L4537 -label L4539 -label L4537 -label L4535 +jmp L4551 +label L4553 +label L4551 +label L4549 load 30 __for_idx_191 iconst 31 1 add 32 30 31 store __for_idx_191 32 -jmp L4533 -label L4536 +jmp L4547 +label L4550 load 33 found iconst 34 0 eq 35 33 34 -brif 35 L4541 L4542 -label L4541 +brif 35 L4555 L4556 +label L4555 load 36 missing load 37 __loopvar_190_variant call 38 pith_list_push_value void 2 36 37 -jmp L4540 -label L4542 -label L4540 -label L4531 +jmp L4554 +label L4556 +label L4554 +label L4545 load 39 __for_idx_190 iconst 40 1 add 41 39 40 store __for_idx_190 41 -jmp L4529 -label L4532 +jmp L4543 +label L4546 load 42 missing call 43 pith_list_len int 1 42 iconst 44 0 gt 45 43 44 -brif 45 L4544 L4545 -label L4544 +brif 45 L4558 L4559 +label L4558 strref 46 m13s326 strref 47 m13s325 load 48 missing @@ -65669,9 +65846,9 @@ call 54 pith_cstring_release void 1 50 call 55 checker_diagnostics_report_error void 2 46 52 call 56 pith_cstring_release void 1 46 call 57 pith_cstring_release void 1 52 -jmp L4543 -label L4545 -label L4543 +jmp L4557 +label L4559 +label L4557 load 58 missing call 59 pith_list_release_handle void 1 58 iconst 60 0 @@ -65706,12 +65883,12 @@ iconst 17 0 store __for_idx_192 17 store __for_len_192 16 store __for_iter_192 15 -label L4546 +label L4560 load 18 __for_idx_192 load 19 __for_len_192 lt 20 18 19 -brif 20 L4547 L4549 -label L4547 +brif 20 L4561 L4563 +label L4561 load 21 __for_iter_192 load 22 __for_idx_192 call 23 pith_list_get_value unknown 2 21 22 @@ -65726,15 +65903,15 @@ field 29 28 0 string kind strref 30 m13s323 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 -brif 31 L4551 L4552 -label L4551 +brif 31 L4565 L4566 +label L4565 load 33 cn field 34 33 16 list children call 35 pith_list_len int 1 34 iconst 36 0 gt 37 35 36 -brif 37 L4554 L4555 -label L4554 +brif 37 L4568 L4569 +label L4568 load 38 cn field 39 38 16 list children iconst 40 0 @@ -65755,8 +65932,8 @@ load 52 pname load 53 ptid iconst 54 0 call 55 scope_define_binding void 4 51 52 53 54 -jmp L4553 -label L4555 +jmp L4567 +label L4569 strref 56 m13s322 strref 57 m13s321 call 58 checker_diagnostics_report_error void 2 56 57 @@ -65765,26 +65942,26 @@ call 60 pith_cstring_release void 1 57 load 61 params load 62 types_TID_ERR call 63 pith_list_push_value void 2 61 62 -label L4553 -jmp L4550 -label L4552 +label L4567 +jmp L4564 +label L4566 load 64 __loopvar_192_child store body_idx 64 -label L4550 -label L4548 +label L4564 +label L4562 load 65 __for_idx_192 iconst 66 1 add 67 65 66 store __for_idx_192 67 -jmp L4546 -label L4549 +jmp L4560 +label L4563 load 68 types_TID_VOID store ret_type 68 load 69 body_idx iconst 70 0 gte 71 69 70 -brif 71 L4557 L4558 -label L4557 +brif 71 L4571 L4572 +label L4571 load 72 body_node load 73 body_idx call 74 ast_get_node struct:Node 1 73 @@ -65795,15 +65972,15 @@ field 77 76 0 string kind strref 78 m13s320 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 -brif 79 L4560 L4561 -label L4560 +brif 79 L4574 L4575 +label L4574 load 81 body_node field 82 81 16 list children call 83 pith_list_len int 1 82 iconst 84 0 gt 85 83 84 -brif 85 L4563 L4564 -label L4563 +brif 85 L4577 L4578 +label L4577 load 86 body_node field 87 86 16 list children iconst 88 0 @@ -65811,18 +65988,18 @@ call 89 pith_list_get_value_strict int 2 87 88 load 90 lambda_scope call 91 checker_c_check_expr int 2 89 90 store ret_type 91 -jmp L4562 -label L4564 -label L4562 -jmp L4559 -label L4561 +jmp L4576 +label L4578 +label L4576 +jmp L4573 +label L4575 load 92 body_node field 93 92 0 string kind strref 94 m13s319 call 95 pith_cstring_eq bool 2 93 94 call 96 pith_cstring_release void 1 94 -brif 95 L4565 L4566 -label L4565 +brif 95 L4579 L4580 +label L4579 load 97 lambda_scope load 98 checker_TID_LAMBDA_INFER call 99 scope_create_function_scope int 2 97 98 @@ -65839,25 +66016,25 @@ call 106 checker_check_block_statement void 2 104 105 load 107 checker_lambda_inferred_return iconst 108 0 gte 109 107 108 -brif 109 L4568 L4569 -label L4568 +brif 109 L4582 L4583 +label L4582 load 110 checker_lambda_inferred_return store ret_type 110 -jmp L4567 -label L4569 -label L4567 +jmp L4581 +label L4583 +label L4581 load 111 saved_infer store checker_lambda_inferred_return 111 -jmp L4559 -label L4566 +jmp L4573 +label L4580 load 112 body_idx load 113 lambda_scope call 114 checker_c_check_expr int 2 112 113 store ret_type 114 -label L4559 -jmp L4556 -label L4558 -label L4556 +label L4573 +jmp L4570 +label L4572 +label L4570 load 115 params load 116 ret_type call 117 types_ti_function struct:TypeInfo 2 115 116 @@ -65895,12 +66072,12 @@ field 6 5 16 list children call 7 pith_list_len int 1 6 iconst 8 0 eq 9 7 8 -brif 9 L4571 L4572 -label L4571 +brif 9 L4585 L4586 +label L4585 load 10 tid_err ret 10 -label L4572 -label L4570 +label L4586 +label L4584 load 11 tid_err store elem_type 11 load 12 node @@ -65910,12 +66087,12 @@ iconst 15 0 store __for_idx_193 15 store __for_len_193 14 store __for_iter_193 13 -label L4573 +label L4587 load 16 __for_idx_193 load 17 __for_len_193 lt 18 16 17 -brif 18 L4574 L4576 -label L4574 +brif 18 L4588 L4590 +label L4588 load 19 __for_iter_193 load 20 __for_idx_193 call 21 pith_list_get_value unknown 2 19 20 @@ -65926,36 +66103,36 @@ call 24 checker_c_check_expr int 2 22 23 store t 24 load 25 elem_type call 26 types_is_error_type bool 1 25 -brif 26 L4578 L4579 -label L4578 +brif 26 L4592 L4593 +label L4592 load 27 t store elem_type 27 -jmp L4577 -label L4579 +jmp L4591 +label L4593 load 28 t call 29 types_is_error_type bool 1 28 iconst 30 0 eq 31 29 30 -brif 31 L4580 L4581 -label L4580 +brif 31 L4594 L4595 +label L4594 iconst 32 0 -store __and_32_4585 32 +store __and_32_4599 32 load 33 t load 34 elem_type neq 35 33 34 -store __and_32_4585 35 -brif 35 L4585 L4586 -label L4585 +store __and_32_4599 35 +brif 35 L4599 L4600 +label L4599 load 36 t load 37 elem_type call 38 checker_types_structurally_equal bool 2 36 37 iconst 39 0 eq 40 38 39 -store __and_32_4585 40 -label L4586 -load 41 __and_32_4585 -brif 41 L4583 L4584 -label L4583 +store __and_32_4599 40 +label L4600 +load 41 __and_32_4599 +brif 41 L4597 L4598 +label L4597 strref 42 m13s314 strref 43 m13s318 load 44 elem_type @@ -65975,27 +66152,27 @@ call 57 pith_cstring_release void 1 54 call 58 checker_diagnostics_report_error void 2 42 55 call 59 pith_cstring_release void 1 42 call 60 pith_cstring_release void 1 55 -jmp L4582 -label L4584 -label L4582 -jmp L4577 -label L4581 -label L4577 -label L4575 +jmp L4596 +label L4598 +label L4596 +jmp L4591 +label L4595 +label L4591 +label L4589 load 61 __for_idx_193 iconst 62 1 add 63 61 62 store __for_idx_193 63 -jmp L4573 -label L4576 +jmp L4587 +label L4590 load 64 elem_type call 65 types_is_error_type bool 1 64 -brif 65 L4588 L4589 -label L4588 +brif 65 L4602 L4603 +label L4602 load 66 tid_err ret 66 -label L4589 -label L4587 +label L4603 +label L4601 load 67 elem_type call 68 checker_type_intern_intern_list_type int 1 67 ret 68 @@ -66016,14 +66193,14 @@ field 7 6 16 list children call 8 pith_list_len int 1 7 iconst 9 0 eq 10 8 9 -brif 10 L4591 L4592 -label L4591 +brif 10 L4605 L4606 +label L4605 load 11 tid_err load 12 entry call 13 pith_struct_release void 1 12 ret 11 -label L4592 -label L4590 +label L4606 +label L4604 load 14 tid_err store key_type 14 load 15 tid_err @@ -66035,12 +66212,12 @@ iconst 19 0 store __for_idx_194 19 store __for_len_194 18 store __for_iter_194 17 -label L4593 +label L4607 load 20 __for_idx_194 load 21 __for_len_194 lt 22 20 21 -brif 22 L4594 L4596 -label L4594 +brif 22 L4608 L4610 +label L4608 load 23 __for_iter_194 load 24 __for_idx_194 call 25 pith_list_get_value unknown 2 23 24 @@ -66055,15 +66232,15 @@ field 31 30 0 string kind strref 32 m13s317 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 -brif 33 L4598 L4599 -label L4598 +brif 33 L4612 L4613 +label L4612 load 35 entry field 36 35 16 list children call 37 pith_list_len int 1 36 iconst 38 2 gte 39 37 38 -brif 39 L4601 L4602 -label L4601 +brif 39 L4615 L4616 +label L4615 load 40 entry field 41 40 16 list children iconst 42 0 @@ -66080,110 +66257,110 @@ call 51 checker_c_check_expr int 2 49 50 store vt 51 load 52 key_type call 53 types_is_error_type bool 1 52 -brif 53 L4604 L4605 -label L4604 +brif 53 L4618 L4619 +label L4618 load 54 kt store key_type 54 -jmp L4603 -label L4605 +jmp L4617 +label L4619 load 55 kt call 56 types_is_error_type bool 1 55 iconst 57 0 eq 58 56 57 -brif 58 L4606 L4607 -label L4606 +brif 58 L4620 L4621 +label L4620 load 59 kt load 60 key_type neq 61 59 60 -brif 61 L4609 L4610 -label L4609 +brif 61 L4623 L4624 +label L4623 strref 62 m13s314 strref 63 m13s316 call 64 checker_diagnostics_report_error void 2 62 63 call 65 pith_cstring_release void 1 62 call 66 pith_cstring_release void 1 63 -jmp L4608 -label L4610 -label L4608 -jmp L4603 -label L4607 -label L4603 +jmp L4622 +label L4624 +label L4622 +jmp L4617 +label L4621 +label L4617 load 67 val_type call 68 types_is_error_type bool 1 67 -brif 68 L4612 L4613 -label L4612 +brif 68 L4626 L4627 +label L4626 load 69 vt store val_type 69 -jmp L4611 -label L4613 +jmp L4625 +label L4627 load 70 vt call 71 types_is_error_type bool 1 70 iconst 72 0 eq 73 71 72 -brif 73 L4614 L4615 -label L4614 +brif 73 L4628 L4629 +label L4628 iconst 74 0 -store __and_74_4619 74 +store __and_74_4633 74 load 75 vt load 76 val_type neq 77 75 76 -store __and_74_4619 77 -brif 77 L4619 L4620 -label L4619 +store __and_74_4633 77 +brif 77 L4633 L4634 +label L4633 load 78 vt load 79 val_type call 80 checker_types_structurally_equal bool 2 78 79 iconst 81 0 eq 82 80 81 -store __and_74_4619 82 -label L4620 -load 83 __and_74_4619 -brif 83 L4617 L4618 -label L4617 +store __and_74_4633 82 +label L4634 +load 83 __and_74_4633 +brif 83 L4631 L4632 +label L4631 strref 84 m13s314 strref 85 m13s315 call 86 checker_diagnostics_report_error void 2 84 85 call 87 pith_cstring_release void 1 84 call 88 pith_cstring_release void 1 85 -jmp L4616 -label L4618 +jmp L4630 +label L4632 +label L4630 +jmp L4625 +label L4629 +label L4625 +jmp L4614 label L4616 +label L4614 jmp L4611 -label L4615 +label L4613 label L4611 -jmp L4600 -label L4602 -label L4600 -jmp L4597 -label L4599 -label L4597 -label L4595 +label L4609 load 89 __for_idx_194 iconst 90 1 add 91 89 90 store __for_idx_194 91 -jmp L4593 -label L4596 +jmp L4607 +label L4610 load 92 key_type call 93 types_is_error_type bool 1 92 -brif 93 L4622 L4623 -label L4622 +brif 93 L4636 L4637 +label L4636 load 94 tid_err load 95 entry call 96 pith_struct_release void 1 95 ret 94 -label L4623 -label L4621 +label L4637 +label L4635 load 97 val_type call 98 types_is_error_type bool 1 97 -brif 98 L4625 L4626 -label L4625 +brif 98 L4639 L4640 +label L4639 load 99 tid_err load 100 entry call 101 pith_struct_release void 1 100 ret 99 -label L4626 -label L4624 +label L4640 +label L4638 load 102 key_type load 103 val_type call 104 checker_type_intern_intern_map_type int 2 102 103 @@ -66207,12 +66384,12 @@ field 6 5 16 list children call 7 pith_list_len int 1 6 iconst 8 0 eq 9 7 8 -brif 9 L4628 L4629 -label L4628 +brif 9 L4642 L4643 +label L4642 load 10 tid_err ret 10 -label L4629 -label L4627 +label L4643 +label L4641 load 11 tid_err store elem_type 11 load 12 node @@ -66222,12 +66399,12 @@ iconst 15 0 store __for_idx_195 15 store __for_len_195 14 store __for_iter_195 13 -label L4630 +label L4644 load 16 __for_idx_195 load 17 __for_len_195 lt 18 16 17 -brif 18 L4631 L4633 -label L4631 +brif 18 L4645 L4647 +label L4645 load 19 __for_iter_195 load 20 __for_idx_195 call 21 pith_list_get_value unknown 2 19 20 @@ -66238,62 +66415,62 @@ call 24 checker_c_check_expr int 2 22 23 store t 24 load 25 elem_type call 26 types_is_error_type bool 1 25 -brif 26 L4635 L4636 -label L4635 +brif 26 L4649 L4650 +label L4649 load 27 t store elem_type 27 -jmp L4634 -label L4636 +jmp L4648 +label L4650 load 28 t call 29 types_is_error_type bool 1 28 iconst 30 0 eq 31 29 30 -brif 31 L4637 L4638 -label L4637 +brif 31 L4651 L4652 +label L4651 iconst 32 0 -store __and_32_4642 32 +store __and_32_4656 32 load 33 t load 34 elem_type neq 35 33 34 -store __and_32_4642 35 -brif 35 L4642 L4643 -label L4642 +store __and_32_4656 35 +brif 35 L4656 L4657 +label L4656 load 36 t load 37 elem_type call 38 checker_types_structurally_equal bool 2 36 37 iconst 39 0 eq 40 38 39 -store __and_32_4642 40 -label L4643 -load 41 __and_32_4642 -brif 41 L4640 L4641 -label L4640 +store __and_32_4656 40 +label L4657 +load 41 __and_32_4656 +brif 41 L4654 L4655 +label L4654 strref 42 m13s314 strref 43 m13s313 call 44 checker_diagnostics_report_error void 2 42 43 call 45 pith_cstring_release void 1 42 call 46 pith_cstring_release void 1 43 -jmp L4639 -label L4641 -label L4639 -jmp L4634 -label L4638 -label L4634 -label L4632 +jmp L4653 +label L4655 +label L4653 +jmp L4648 +label L4652 +label L4648 +label L4646 load 47 __for_idx_195 iconst 48 1 add 49 47 48 store __for_idx_195 49 -jmp L4630 -label L4633 +jmp L4644 +label L4647 load 50 elem_type call 51 types_is_error_type bool 1 50 -brif 51 L4645 L4646 -label L4645 +brif 51 L4659 L4660 +label L4659 load 52 tid_err ret 52 -label L4646 -label L4644 +label L4660 +label L4658 load 53 elem_type call 54 checker_type_intern_intern_set_type int 1 53 ret 54 @@ -66318,12 +66495,12 @@ iconst 10 0 store __for_idx_196 10 store __for_len_196 9 store __for_iter_196 8 -label L4647 +label L4661 load 11 __for_idx_196 load 12 __for_len_196 lt 13 11 12 -brif 13 L4648 L4650 -label L4648 +brif 13 L4662 L4664 +label L4662 load 14 __for_iter_196 load 15 __for_idx_196 call 16 pith_list_get_value unknown 2 14 15 @@ -66338,29 +66515,29 @@ field 22 21 0 string kind strref 23 m13s312 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 -brif 24 L4652 L4653 -label L4652 +brif 24 L4666 L4667 +label L4666 load 26 elems load 27 types_TID_ERR call 28 types_ti_optional struct:TypeInfo 1 27 call 29 types_add_type_info int 1 28 call 30 pith_struct_release void 1 28 call 31 pith_list_push_value void 2 26 29 -jmp L4651 -label L4653 +jmp L4665 +label L4667 load 32 elems load 33 __loopvar_196_child load 34 scope_id call 35 checker_c_check_expr int 2 33 34 call 36 pith_list_push_value void 2 32 35 -label L4651 -label L4649 +label L4665 +label L4663 load 37 __for_idx_196 iconst 38 1 add 39 37 38 store __for_idx_196 39 -jmp L4647 -label L4650 +jmp L4661 +label L4664 load 40 elems call 41 types_ti_tuple struct:TypeInfo 1 40 call 42 types_add_type_info int 1 41 @@ -66396,8 +66573,8 @@ store struct_tid 10 load 11 struct_tid iconst 12 0 lt 13 11 12 -brif 13 L4655 L4656 -label L4655 +brif 13 L4669 L4670 +label L4669 strref 14 m13s310 strref 15 m13s311 load 16 struct_name @@ -66412,8 +66589,8 @@ call 24 pith_cstring_release void 1 23 load 25 info call 26 pith_struct_release void 1 25 ret 22 -label L4656 -label L4654 +label L4670 +label L4668 load 27 info load 28 struct_tid call 29 types_get_type_info struct:TypeInfo 1 28 @@ -66426,8 +66603,8 @@ call 35 pith_cstring_eq bool 2 32 33 iconst 36 1 sub 34 36 35 call 37 pith_cstring_release void 1 33 -brif 34 L4658 L4659 -label L4658 +brif 34 L4672 L4673 +label L4672 strref 38 m13s310 load 39 struct_name strref 40 m13s309 @@ -66442,8 +66619,8 @@ call 48 pith_cstring_release void 1 47 load 49 info call 50 pith_struct_release void 1 49 ret 46 -label L4659 -label L4657 +label L4673 +label L4671 load 51 node field 52 51 16 list children call 53 pith_list_len int 1 52 @@ -66451,8 +66628,8 @@ load 54 info field 55 54 16 list_string fields call 56 pith_list_len int 1 55 gt 57 53 56 -brif 57 L4661 L4662 -label L4661 +brif 57 L4675 L4676 +label L4675 strref 58 m13s307 load 59 struct_name strref 60 m13s308 @@ -66485,8 +66662,8 @@ call 86 pith_cstring_release void 1 85 load 87 info call 88 pith_struct_release void 1 87 ret 84 -label L4662 -label L4660 +label L4676 +label L4674 load 89 struct_name load 90 info call 91 checker_struct_min_required_fields int 2 89 90 @@ -66496,8 +66673,8 @@ field 93 92 16 list children call 94 pith_list_len int 1 93 load 95 min_required lt 96 94 95 -brif 96 L4664 L4665 -label L4664 +brif 96 L4678 L4679 +label L4678 strref 97 m13s307 load 98 struct_name strref 99 m13s306 @@ -66528,8 +66705,8 @@ call 123 pith_cstring_release void 1 122 load 124 info call 125 pith_struct_release void 1 124 ret 121 -label L4665 -label L4663 +label L4679 +label L4677 iconst 126 0 store idx 126 load 127 node @@ -66539,12 +66716,12 @@ iconst 130 0 store __for_idx_197 130 store __for_len_197 129 store __for_iter_197 128 -label L4666 +label L4680 load 131 __for_idx_197 load 132 __for_len_197 lt 133 131 132 -brif 133 L4667 L4669 -label L4667 +brif 133 L4681 L4683 +label L4681 load 134 __for_iter_197 load 135 __for_idx_197 call 136 pith_list_get_value unknown 2 134 135 @@ -66557,15 +66734,15 @@ load 140 arg_type call 141 types_is_error_type bool 1 140 iconst 142 0 eq 143 141 142 -brif 143 L4671 L4672 -label L4671 +brif 143 L4685 L4686 +label L4685 load 144 idx load 145 info field 146 145 24 list field_types call 147 pith_list_len int 1 146 lt 148 144 147 -brif 148 L4674 L4675 -label L4674 +brif 148 L4688 L4689 +label L4688 load 149 info field 150 149 24 list field_types load 151 idx @@ -66577,23 +66754,23 @@ load 155 expected call 156 checker_value_matches_optional_target bool 3 153 154 155 iconst 157 0 eq 158 156 157 -brif 158 L4677 L4678 -label L4677 +brif 158 L4691 L4692 +label L4691 load 159 __loopvar_197_child load 160 expected load 161 scope_id call 162 checker_collection_literal_matches_target bool 3 159 160 161 iconst 163 0 eq 164 162 163 -brif 164 L4680 L4681 -label L4680 +brif 164 L4694 L4695 +label L4694 load 165 arg_type load 166 expected call 167 checker_types_compatible bool 2 165 166 iconst 168 0 eq 169 167 168 -brif 169 L4683 L4684 -label L4683 +brif 169 L4697 L4698 +label L4697 strref 170 m13s304 strref 171 m13s303 load 172 info @@ -66623,32 +66800,32 @@ call 195 pith_cstring_release void 1 192 call 196 checker_diagnostics_report_error void 2 170 193 call 197 pith_cstring_release void 1 170 call 198 pith_cstring_release void 1 193 -jmp L4682 +jmp L4696 +label L4698 +label L4696 +jmp L4693 +label L4695 +label L4693 +jmp L4690 +label L4692 +label L4690 +jmp L4687 +label L4689 +label L4687 +jmp L4684 +label L4686 label L4684 -label L4682 -jmp L4679 -label L4681 -label L4679 -jmp L4676 -label L4678 -label L4676 -jmp L4673 -label L4675 -label L4673 -jmp L4670 -label L4672 -label L4670 load 199 idx iconst 200 1 add 201 199 200 store idx 201 -label L4668 +label L4682 load 202 __for_idx_197 iconst 203 1 add 204 202 203 store __for_idx_197 204 -jmp L4666 -label L4669 +jmp L4680 +label L4683 load 205 struct_tid load 206 struct_name call 207 pith_cstring_release void 1 206 @@ -66672,8 +66849,8 @@ field 4 3 16 list children call 5 pith_list_len int 1 4 iconst 6 1 lt 7 5 6 -brif 7 L4686 L4687 -label L4686 +brif 7 L4700 L4701 +label L4700 strref 8 m13s289 strref 9 m13s299 call 10 checker_diagnostics_report_error void 2 8 9 @@ -66683,8 +66860,8 @@ load 13 types_TID_ERR load 14 inner_node call 15 pith_struct_release void 1 14 ret 13 -label L4687 -label L4685 +label L4701 +label L4699 load 16 inner_node load 17 node field 18 17 16 list children @@ -66700,8 +66877,8 @@ call 27 pith_cstring_eq bool 2 24 25 iconst 28 1 sub 26 28 27 call 29 pith_cstring_release void 1 25 -brif 26 L4689 L4690 -label L4689 +brif 26 L4703 L4704 +label L4703 strref 30 m13s289 strref 31 m13s299 call 32 checker_diagnostics_report_error void 2 30 31 @@ -66711,8 +66888,8 @@ load 35 types_TID_ERR load 36 inner_node call 37 pith_struct_release void 1 36 ret 35 -label L4690 -label L4688 +label L4704 +label L4702 load 38 node field 39 38 16 list children iconst 40 0 @@ -66722,14 +66899,14 @@ call 43 checker_c_check_expr int 2 41 42 store inner 43 load 44 inner call 45 types_is_error_type bool 1 44 -brif 45 L4692 L4693 -label L4692 +brif 45 L4706 L4707 +label L4706 load 46 types_TID_ERR load 47 inner_node call 48 pith_struct_release void 1 47 ret 46 -label L4693 -label L4691 +label L4707 +label L4705 load 49 inner_node call 50 checker_check_spawn_shared_collections void 1 49 load 51 inner @@ -66757,12 +66934,12 @@ iconst 6 0 store __for_idx_198 6 store __for_len_198 5 store __for_iter_198 4 -label L4694 +label L4708 load 7 __for_idx_198 load 8 __for_len_198 lt 9 7 8 -brif 9 L4695 L4697 -label L4695 +brif 9 L4709 L4711 +label L4709 load 10 __for_iter_198 load 11 __for_idx_198 call 12 pith_list_get_value unknown 2 10 11 @@ -66772,11 +66949,11 @@ store __loopvar_198_i 13 load 14 __loopvar_198_i iconst 15 0 eq 16 14 15 -brif 16 L4699 L4700 -label L4699 -jmp L4696 -label L4700 -label L4698 +brif 16 L4713 L4714 +label L4713 +jmp L4710 +label L4714 +label L4712 load 17 __loopvar_198_child store expr_idx 17 load 18 arg_node @@ -66785,37 +66962,37 @@ call 20 ast_get_node struct:Node 1 19 call 21 pith_struct_release void 1 18 store arg_node 20 iconst 22 0 -store __and_22_4704 22 +store __and_22_4718 22 load 23 arg_node field 24 23 0 string kind strref 25 m13s298 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 -store __and_22_4704 26 -brif 26 L4704 L4705 -label L4704 +store __and_22_4718 26 +brif 26 L4718 L4719 +label L4718 load 28 arg_node field 29 28 16 list children call 30 pith_list_len int 1 29 iconst 31 0 gt 32 30 31 -store __and_22_4704 32 -label L4705 -load 33 __and_22_4704 -brif 33 L4702 L4703 -label L4702 +store __and_22_4718 32 +label L4719 +load 33 __and_22_4718 +brif 33 L4716 L4717 +label L4716 load 34 arg_node field 35 34 16 list children iconst 36 0 call 37 pith_list_get_value_strict int 2 35 36 store expr_idx 37 -jmp L4701 -label L4703 -label L4701 +jmp L4715 +label L4717 +label L4715 load 38 expr_idx call 39 checker_spawn_arg_shares_collection bool 1 38 -brif 39 L4707 L4708 -label L4707 +brif 39 L4721 L4722 +label L4721 load 40 kind load 41 expr_idx call 42 checker_c_get_expr_type int 1 41 @@ -66846,16 +67023,16 @@ call 65 checker_diagnostics_report_error_with_fix_at void 4 47 48 54 62 call 66 pith_cstring_release void 1 48 call 67 pith_cstring_release void 1 54 call 68 pith_cstring_release void 1 62 -jmp L4706 -label L4708 -label L4706 -label L4696 +jmp L4720 +label L4722 +label L4720 +label L4710 load 69 __for_idx_198 iconst 70 1 add 71 69 70 store __for_idx_198 71 -jmp L4694 -label L4697 +jmp L4708 +label L4711 load 72 arg_node call 73 pith_struct_release void 1 72 load 74 kind @@ -66875,9 +67052,9 @@ call 5 ast_get_node struct:Node 1 4 call 6 pith_struct_release void 1 3 store node 5 iconst 7 0 -store __and_7_4712 7 +store __and_7_4726 7 iconst 8 0 -store __and_8_4712 8 +store __and_8_4726 8 load 9 node field 10 9 0 string kind strref 11 m13s293 @@ -66885,9 +67062,9 @@ call 13 pith_cstring_eq bool 2 10 11 iconst 14 1 sub 12 14 13 call 15 pith_cstring_release void 1 11 -store __and_8_4712 12 -brif 12 L4712 L4713 -label L4712 +store __and_8_4726 12 +brif 12 L4726 L4727 +label L4726 load 16 node field 17 16 0 string kind strref 18 m13s292 @@ -66895,12 +67072,12 @@ call 20 pith_cstring_eq bool 2 17 18 iconst 21 1 sub 19 21 20 call 22 pith_cstring_release void 1 18 -store __and_8_4712 19 -label L4713 -load 23 __and_8_4712 -store __and_7_4712 23 -brif 23 L4714 L4715 -label L4714 +store __and_8_4726 19 +label L4727 +load 23 __and_8_4726 +store __and_7_4726 23 +brif 23 L4728 L4729 +label L4728 load 24 node field 25 24 0 string kind strref 26 m13s291 @@ -66908,35 +67085,35 @@ call 28 pith_cstring_eq bool 2 25 26 iconst 29 1 sub 27 29 28 call 30 pith_cstring_release void 1 26 -store __and_7_4712 27 -label L4715 -load 31 __and_7_4712 -brif 31 L4710 L4711 -label L4710 +store __and_7_4726 27 +label L4729 +load 31 __and_7_4726 +brif 31 L4724 L4725 +label L4724 iconst 32 0 load 33 node call 34 pith_struct_release void 1 33 load 35 kind call 36 pith_cstring_release void 1 35 ret 32 -label L4711 -label L4709 +label L4725 +label L4723 load 37 expr_idx call 38 checker_c_get_expr_type int 1 37 store tid 38 load 39 tid iconst 40 0 lt 41 39 40 -brif 41 L4717 L4718 -label L4717 +brif 41 L4731 L4732 +label L4731 iconst 42 0 load 43 node call 44 pith_struct_release void 1 43 load 45 kind call 46 pith_cstring_release void 1 45 ret 42 -label L4718 -label L4716 +label L4732 +label L4730 load 47 kind load 48 tid call 49 types_get_type_info struct:TypeInfo 1 48 @@ -66945,33 +67122,33 @@ call 51 pith_cstring_retain void 1 50 call 52 pith_cstring_release void 1 47 store kind 50 iconst 53 0 -store __or_53_4719 53 +store __or_53_4733 53 iconst 54 0 -store __or_54_4719 54 +store __or_54_4733 54 load 55 kind strref 56 m13s22 call 57 pith_cstring_eq bool 2 55 56 call 58 pith_cstring_release void 1 56 -store __or_54_4719 57 -brif 57 L4720 L4719 -label L4719 +store __or_54_4733 57 +brif 57 L4734 L4733 +label L4733 load 59 kind strref 60 m13s20 call 61 pith_cstring_eq bool 2 59 60 call 62 pith_cstring_release void 1 60 -store __or_54_4719 61 -label L4720 -load 63 __or_54_4719 -store __or_53_4719 63 -brif 63 L4722 L4721 -label L4721 +store __or_54_4733 61 +label L4734 +load 63 __or_54_4733 +store __or_53_4733 63 +brif 63 L4736 L4735 +label L4735 load 64 kind strref 65 m13s18 call 66 pith_cstring_eq bool 2 64 65 call 67 pith_cstring_release void 1 65 -store __or_53_4719 66 -label L4722 -load 68 __or_53_4719 +store __or_53_4733 66 +label L4736 +load 68 __or_53_4733 load 69 node call 70 pith_struct_release void 1 69 load 71 kind @@ -66994,8 +67171,8 @@ field 4 3 16 list children call 5 pith_list_len int 1 4 iconst 6 1 lt 7 5 6 -brif 7 L4724 L4725 -label L4724 +brif 7 L4738 L4739 +label L4738 strref 8 m13s289 strref 9 m13s290 call 10 checker_diagnostics_report_error void 2 8 9 @@ -67005,8 +67182,8 @@ load 13 types_TID_ERR load 14 info call 15 pith_struct_release void 1 14 ret 13 -label L4725 -label L4723 +label L4739 +label L4737 load 16 node field 17 16 16 list children iconst 18 0 @@ -67016,14 +67193,14 @@ call 21 checker_c_check_expr int 2 19 20 store inner 21 load 22 inner call 23 types_is_error_type bool 1 22 -brif 23 L4727 L4728 -label L4727 +brif 23 L4741 L4742 +label L4741 load 24 types_TID_ERR load 25 info call 26 pith_struct_release void 1 25 ret 24 -label L4728 -label L4726 +label L4742 +label L4740 load 27 info load 28 inner call 29 types_get_type_info struct:TypeInfo 1 28 @@ -67034,15 +67211,15 @@ field 32 31 0 string kind strref 33 m13s26 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 -brif 34 L4730 L4731 -label L4730 +brif 34 L4744 L4745 +label L4744 load 36 info field 37 36 64 int inner load 38 info call 39 pith_struct_release void 1 38 ret 37 -label L4731 -label L4729 +label L4745 +label L4743 strref 40 m13s289 strref 41 m13s288 load 42 inner @@ -67077,31 +67254,31 @@ field 8 7 0 string kind strref 9 m13s287 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 -brif 10 L4733 L4734 -label L4733 +brif 10 L4747 L4748 +label L4747 load 12 decl load 13 type_args call 14 checker_instantiate_generic_struct_type int 2 12 13 load 15 decl call 16 pith_struct_release void 1 15 ret 14 -label L4734 -label L4732 +label L4748 +label L4746 load 17 decl field 18 17 0 string kind strref 19 m13s286 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 -brif 20 L4736 L4737 -label L4736 +brif 20 L4750 L4751 +label L4750 load 22 decl load 23 type_args call 24 checker_instantiate_generic_enum_type int 2 22 23 load 25 decl call 26 pith_struct_release void 1 25 ret 24 -label L4737 -label L4735 +label L4751 +label L4749 load 27 types_TID_ERR load 28 decl call 29 pith_struct_release void 1 28 @@ -67159,8 +67336,8 @@ iconst 29 1 iconst 31 0 sub 30 31 29 neq 32 28 30 -brif 32 L4739 L4740 -label L4739 +brif 32 L4753 L4754 +label L4753 load 33 existing load 34 name call 35 pith_cstring_release void 1 34 @@ -67183,8 +67360,8 @@ call 51 pith_struct_release void 1 50 load 52 fname call 53 pith_cstring_release void 1 52 ret 33 -label L4740 -label L4738 +label L4754 +label L4752 load 54 generic_params load 55 decl call 56 checker_collect_generic_parameter_names list_string 1 55 @@ -67213,12 +67390,12 @@ iconst 73 0 store __for_idx_199 73 store __for_len_199 72 store __for_iter_199 71 -label L4741 +label L4755 load 74 __for_idx_199 load 75 __for_len_199 lt 76 74 75 -brif 76 L4742 L4744 -label L4742 +brif 76 L4756 L4758 +label L4756 load 77 __for_iter_199 load 78 __for_idx_199 call 79 pith_list_get_value unknown 2 77 78 @@ -67233,8 +67410,8 @@ field 85 84 0 string kind strref 86 m13s285 call 87 pith_cstring_eq bool 2 85 86 call 88 pith_cstring_release void 1 86 -brif 87 L4746 L4747 -label L4746 +brif 87 L4760 L4761 +label L4760 load 89 fname load 90 cn field 91 90 8 string value @@ -67267,8 +67444,8 @@ field 114 113 16 list children call 115 pith_list_len int 1 114 iconst 116 0 gt 117 115 116 -brif 117 L4749 L4750 -label L4749 +brif 117 L4763 L4764 +label L4763 load 118 cn field 119 118 16 list children iconst 120 0 @@ -67285,8 +67462,8 @@ field 129 128 16 list children call 130 pith_list_len int 1 129 iconst 131 1 gt 132 130 131 -brif 132 L4752 L4753 -label L4752 +brif 132 L4766 L4767 +label L4766 load 133 checker_struct_field_default_nodes load 134 inst_name strref 135 m13s123 @@ -67301,25 +67478,25 @@ iconst 143 1 call 144 pith_list_get_value_strict int 2 142 143 call 145 map_insert void 3 133 139 144 call 146 pith_cstring_release void 1 139 -jmp L4751 -label L4753 -label L4751 -jmp L4748 -label L4750 +jmp L4765 +label L4767 +label L4765 +jmp L4762 +label L4764 load 147 field_types load 148 types_TID_ERR call 149 pith_list_push_value void 2 147 148 -label L4748 -jmp L4745 -label L4747 -label L4745 -label L4743 +label L4762 +jmp L4759 +label L4761 +label L4759 +label L4757 load 150 __for_idx_199 iconst 151 1 add 152 150 151 store __for_idx_199 152 -jmp L4741 -label L4744 +jmp L4755 +label L4758 load 153 inst_name load 154 field_names load 155 field_types @@ -67433,8 +67610,8 @@ iconst 27 1 iconst 29 0 sub 28 29 27 neq 30 26 28 -brif 30 L4755 L4756 -label L4755 +brif 30 L4769 L4770 +label L4769 load 31 existing load 32 name call 33 pith_cstring_release void 1 32 @@ -67453,8 +67630,8 @@ call 45 pith_struct_release void 1 44 load 46 vtypes call 47 pith_list_release_handle void 1 46 ret 31 -label L4756 -label L4754 +label L4770 +label L4768 load 48 generic_params load 49 decl call 50 checker_collect_generic_parameter_names list_string 1 49 @@ -67475,12 +67652,12 @@ iconst 61 0 store __for_idx_200 61 store __for_len_200 60 store __for_iter_200 59 -label L4757 +label L4771 load 62 __for_idx_200 load 63 __for_len_200 lt 64 62 63 -brif 64 L4758 L4760 -label L4758 +brif 64 L4772 L4774 +label L4772 load 65 __for_iter_200 load 66 __for_idx_200 call 67 pith_list_get_value unknown 2 65 66 @@ -67495,8 +67672,8 @@ field 73 72 0 string kind strref 74 m13s282 call 75 pith_cstring_eq bool 2 73 74 call 76 pith_cstring_release void 1 74 -brif 75 L4762 L4763 -label L4762 +brif 75 L4776 L4777 +label L4776 load 77 variant_names load 78 cn field 79 78 8 string value @@ -67512,12 +67689,12 @@ iconst 87 0 store __for_idx_201 87 store __for_len_201 86 store __for_iter_201 85 -label L4764 +label L4778 load 88 __for_idx_201 load 89 __for_len_201 lt 90 88 89 -brif 90 L4765 L4767 -label L4765 +brif 90 L4779 L4781 +label L4779 load 91 __for_iter_201 load 92 __for_idx_201 call 93 pith_list_get_value unknown 2 91 92 @@ -67528,27 +67705,27 @@ load 96 generic_params load 97 type_args call 98 checker_resolve_type_with_substitution_map int 3 95 96 97 call 99 pith_list_push_value void 2 94 98 -label L4766 +label L4780 load 100 __for_idx_201 iconst 101 1 add 102 100 101 store __for_idx_201 102 -jmp L4764 -label L4767 +jmp L4778 +label L4781 load 103 variant_types load 104 vtypes call 106 pith_list_retain_handle void 1 104 call 105 pith_list_push_value void 2 103 104 -jmp L4761 -label L4763 -label L4761 -label L4759 +jmp L4775 +label L4777 +label L4775 +label L4773 load 107 __for_idx_200 iconst 108 1 add 109 107 108 store __for_idx_200 109 -jmp L4757 -label L4760 +jmp L4771 +label L4774 load 110 inst_name load 111 variant_names load 112 variant_types @@ -67606,66 +67783,66 @@ store bi 3 load 4 a load 5 b eq 6 4 5 -brif 6 L4769 L4770 -label L4769 +brif 6 L4783 L4784 +label L4783 iconst 7 1 load 8 ai call 9 pith_struct_release void 1 8 load 10 bi call 11 pith_struct_release void 1 10 ret 7 -label L4770 -label L4768 +label L4784 +label L4782 load 12 a call 13 types_is_error_type bool 1 12 -brif 13 L4772 L4773 -label L4772 +brif 13 L4786 L4787 +label L4786 iconst 14 1 load 15 ai call 16 pith_struct_release void 1 15 load 17 bi call 18 pith_struct_release void 1 17 ret 14 -label L4773 -label L4771 +label L4787 +label L4785 load 19 b call 20 types_is_error_type bool 1 19 -brif 20 L4775 L4776 -label L4775 +brif 20 L4789 L4790 +label L4789 iconst 21 1 load 22 ai call 23 pith_struct_release void 1 22 load 24 bi call 25 pith_struct_release void 1 24 ret 21 -label L4776 -label L4774 +label L4790 +label L4788 load 26 a iconst 27 0 lt 28 26 27 -brif 28 L4778 L4779 -label L4778 +brif 28 L4792 L4793 +label L4792 iconst 29 0 load 30 ai call 31 pith_struct_release void 1 30 load 32 bi call 33 pith_struct_release void 1 32 ret 29 -label L4779 -label L4777 +label L4793 +label L4791 load 34 b iconst 35 0 lt 36 34 35 -brif 36 L4781 L4782 -label L4781 +brif 36 L4795 L4796 +label L4795 iconst 37 0 load 38 ai call 39 pith_struct_release void 1 38 load 40 bi call 41 pith_struct_release void 1 40 ret 37 -label L4782 -label L4780 +label L4796 +label L4794 load 42 ai load 43 a call 44 types_get_type_info struct:TypeInfo 1 43 @@ -67681,15 +67858,15 @@ field 51 50 0 string kind strref 52 m13s31 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 -brif 53 L4784 L4785 -label L4784 +brif 53 L4798 L4799 +label L4798 load 55 bi field 56 55 0 string kind strref 57 m13s31 call 58 pith_cstring_eq bool 2 56 57 call 59 pith_cstring_release void 1 57 -brif 58 L4787 L4788 -label L4787 +brif 58 L4801 L4802 +label L4801 load 60 ai field 61 60 48 list param_types call 62 pith_list_len int 1 61 @@ -67697,16 +67874,16 @@ load 63 bi field 64 63 48 list param_types call 65 pith_list_len int 1 64 neq 66 62 65 -brif 66 L4790 L4791 -label L4790 +brif 66 L4804 L4805 +label L4804 iconst 67 0 load 68 ai call 69 pith_struct_release void 1 68 load 70 bi call 71 pith_struct_release void 1 70 ret 67 -label L4791 -label L4789 +label L4805 +label L4803 load 72 ai field 73 72 48 list param_types call 74 pith_auto_len int 1 73 @@ -67714,12 +67891,12 @@ iconst 75 0 store __for_idx_202 75 store __for_len_202 74 store __for_iter_202 73 -label L4792 +label L4806 load 76 __for_idx_202 load 77 __for_len_202 lt 78 76 77 -brif 78 L4793 L4795 -label L4793 +brif 78 L4807 L4809 +label L4807 load 79 __for_iter_202 load 80 __for_idx_202 call 81 pith_list_get_value unknown 2 79 80 @@ -67731,8 +67908,8 @@ load 84 bi field 85 84 48 list param_types call 86 pith_list_len int 1 85 lt 87 83 86 -brif 87 L4797 L4798 -label L4797 +brif 87 L4811 L4812 +label L4811 load 88 __loopvar_202_ap load 89 bi field 90 89 48 list param_types @@ -67741,26 +67918,26 @@ call 92 pith_list_get_value_strict int 2 90 91 call 93 checker_types_structurally_equal bool 2 88 92 iconst 94 0 eq 95 93 94 -brif 95 L4800 L4801 -label L4800 +brif 95 L4814 L4815 +label L4814 iconst 96 0 load 97 ai call 98 pith_struct_release void 1 97 load 99 bi call 100 pith_struct_release void 1 99 ret 96 -label L4801 -label L4799 -jmp L4796 -label L4798 -label L4796 -label L4794 +label L4815 +label L4813 +jmp L4810 +label L4812 +label L4810 +label L4808 load 101 __for_idx_202 iconst 102 1 add 103 101 102 store __for_idx_202 103 -jmp L4792 -label L4795 +jmp L4806 +label L4809 load 104 ai field 105 104 56 int return_type load 106 bi @@ -67768,41 +67945,41 @@ field 107 106 56 int return_type call 108 checker_types_structurally_equal bool 2 105 107 iconst 109 0 eq 110 108 109 -brif 110 L4803 L4804 -label L4803 +brif 110 L4817 L4818 +label L4817 iconst 111 0 load 112 ai call 113 pith_struct_release void 1 112 load 114 bi call 115 pith_struct_release void 1 114 ret 111 -label L4804 -label L4802 +label L4818 +label L4816 iconst 116 1 load 117 ai call 118 pith_struct_release void 1 117 load 119 bi call 120 pith_struct_release void 1 119 ret 116 -label L4788 -label L4786 -jmp L4783 -label L4785 -label L4783 +label L4802 +label L4800 +jmp L4797 +label L4799 +label L4797 load 121 ai field 122 121 0 string kind strref 123 m13s27 call 124 pith_cstring_eq bool 2 122 123 call 125 pith_cstring_release void 1 123 -brif 124 L4806 L4807 -label L4806 +brif 124 L4820 L4821 +label L4820 load 126 bi field 127 126 0 string kind strref 128 m13s27 call 129 pith_cstring_eq bool 2 127 128 call 130 pith_cstring_release void 1 128 -brif 129 L4809 L4810 -label L4809 +brif 129 L4823 L4824 +label L4823 load 131 ai field 132 131 88 list elements call 133 pith_list_len int 1 132 @@ -67810,16 +67987,16 @@ load 134 bi field 135 134 88 list elements call 136 pith_list_len int 1 135 neq 137 133 136 -brif 137 L4812 L4813 -label L4812 +brif 137 L4826 L4827 +label L4826 iconst 138 0 load 139 ai call 140 pith_struct_release void 1 139 load 141 bi call 142 pith_struct_release void 1 141 ret 138 -label L4813 -label L4811 +label L4827 +label L4825 load 143 ai field 144 143 88 list elements call 145 pith_auto_len int 1 144 @@ -67827,12 +68004,12 @@ iconst 146 0 store __for_idx_203 146 store __for_len_203 145 store __for_iter_203 144 -label L4814 +label L4828 load 147 __for_idx_203 load 148 __for_len_203 lt 149 147 148 -brif 149 L4815 L4817 -label L4815 +brif 149 L4829 L4831 +label L4829 load 150 __for_iter_203 load 151 __for_idx_203 call 152 pith_list_get_value unknown 2 150 151 @@ -67844,8 +68021,8 @@ load 155 bi field 156 155 88 list elements call 157 pith_list_len int 1 156 lt 158 154 157 -brif 158 L4819 L4820 -label L4819 +brif 158 L4833 L4834 +label L4833 load 159 __loopvar_203_ae load 160 bi field 161 160 88 list elements @@ -67854,51 +68031,51 @@ call 163 pith_list_get_value_strict int 2 161 162 call 164 checker_types_structurally_equal bool 2 159 163 iconst 165 0 eq 166 164 165 -brif 166 L4822 L4823 -label L4822 +brif 166 L4836 L4837 +label L4836 iconst 167 0 load 168 ai call 169 pith_struct_release void 1 168 load 170 bi call 171 pith_struct_release void 1 170 ret 167 -label L4823 -label L4821 -jmp L4818 -label L4820 -label L4818 -label L4816 +label L4837 +label L4835 +jmp L4832 +label L4834 +label L4832 +label L4830 load 172 __for_idx_203 iconst 173 1 add 174 172 173 store __for_idx_203 174 -jmp L4814 -label L4817 +jmp L4828 +label L4831 iconst 175 1 load 176 ai call 177 pith_struct_release void 1 176 load 178 bi call 179 pith_struct_release void 1 178 ret 175 -label L4810 -label L4808 -jmp L4805 -label L4807 -label L4805 +label L4824 +label L4822 +jmp L4819 +label L4821 +label L4819 load 180 ai field 181 180 0 string kind strref 182 m13s28 call 183 pith_cstring_eq bool 2 181 182 call 184 pith_cstring_release void 1 182 -brif 183 L4825 L4826 -label L4825 +brif 183 L4839 L4840 +label L4839 load 185 bi field 186 185 0 string kind strref 187 m13s28 call 188 pith_cstring_eq bool 2 186 187 call 189 pith_cstring_release void 1 187 -brif 188 L4828 L4829 -label L4828 +brif 188 L4842 L4843 +label L4842 load 190 ai field 191 190 64 int inner load 192 bi @@ -67906,16 +68083,16 @@ field 193 192 64 int inner call 194 checker_types_structurally_equal bool 2 191 193 iconst 195 0 eq 196 194 195 -brif 196 L4831 L4832 -label L4831 +brif 196 L4845 L4846 +label L4845 iconst 197 0 load 198 ai call 199 pith_struct_release void 1 198 load 200 bi call 201 pith_struct_release void 1 200 ret 197 -label L4832 -label L4830 +label L4846 +label L4844 load 202 ai field 203 202 80 int value_type load 204 bi @@ -67926,25 +68103,25 @@ call 208 pith_struct_release void 1 207 load 209 bi call 210 pith_struct_release void 1 209 ret 206 -label L4829 -label L4827 -jmp L4824 -label L4826 -label L4824 +label L4843 +label L4841 +jmp L4838 +label L4840 +label L4838 load 211 ai field 212 211 0 string kind strref 213 m13s29 call 214 pith_cstring_eq bool 2 212 213 call 215 pith_cstring_release void 1 213 -brif 214 L4834 L4835 -label L4834 +brif 214 L4848 L4849 +label L4848 load 216 bi field 217 216 0 string kind strref 218 m13s29 call 219 pith_cstring_eq bool 2 217 218 call 220 pith_cstring_release void 1 218 -brif 219 L4837 L4838 -label L4837 +brif 219 L4851 L4852 +label L4851 load 221 ai field 222 221 64 int inner load 223 bi @@ -67955,25 +68132,25 @@ call 227 pith_struct_release void 1 226 load 228 bi call 229 pith_struct_release void 1 228 ret 225 -label L4838 -label L4836 -jmp L4833 -label L4835 -label L4833 +label L4852 +label L4850 +jmp L4847 +label L4849 +label L4847 load 230 ai field 231 230 0 string kind strref 232 m13s22 call 233 pith_cstring_eq bool 2 231 232 call 234 pith_cstring_release void 1 232 -brif 233 L4840 L4841 -label L4840 +brif 233 L4854 L4855 +label L4854 load 235 bi field 236 235 0 string kind strref 237 m13s22 call 238 pith_cstring_eq bool 2 236 237 call 239 pith_cstring_release void 1 237 -brif 238 L4843 L4844 -label L4843 +brif 238 L4857 L4858 +label L4857 load 240 ai field 241 240 64 int inner load 242 bi @@ -67984,25 +68161,25 @@ call 246 pith_struct_release void 1 245 load 247 bi call 248 pith_struct_release void 1 247 ret 244 -label L4844 -label L4842 -jmp L4839 -label L4841 -label L4839 +label L4858 +label L4856 +jmp L4853 +label L4855 +label L4853 load 249 ai field 250 249 0 string kind strref 251 m13s20 call 252 pith_cstring_eq bool 2 250 251 call 253 pith_cstring_release void 1 251 -brif 252 L4846 L4847 -label L4846 +brif 252 L4860 L4861 +label L4860 load 254 bi field 255 254 0 string kind strref 256 m13s20 call 257 pith_cstring_eq bool 2 255 256 call 258 pith_cstring_release void 1 256 -brif 257 L4849 L4850 -label L4849 +brif 257 L4863 L4864 +label L4863 load 259 ai field 260 259 72 int key_type load 261 bi @@ -68010,16 +68187,16 @@ field 262 261 72 int key_type call 263 checker_types_structurally_equal bool 2 260 262 iconst 264 0 eq 265 263 264 -brif 265 L4852 L4853 -label L4852 +brif 265 L4866 L4867 +label L4866 iconst 266 0 load 267 ai call 268 pith_struct_release void 1 267 load 269 bi call 270 pith_struct_release void 1 269 ret 266 -label L4853 -label L4851 +label L4867 +label L4865 load 271 ai field 272 271 80 int value_type load 273 bi @@ -68030,25 +68207,25 @@ call 277 pith_struct_release void 1 276 load 278 bi call 279 pith_struct_release void 1 278 ret 275 -label L4850 -label L4848 -jmp L4845 -label L4847 -label L4845 +label L4864 +label L4862 +jmp L4859 +label L4861 +label L4859 load 280 ai field 281 280 0 string kind strref 282 m13s18 call 283 pith_cstring_eq bool 2 281 282 call 284 pith_cstring_release void 1 282 -brif 283 L4855 L4856 -label L4855 +brif 283 L4869 L4870 +label L4869 load 285 bi field 286 285 0 string kind strref 287 m13s18 call 288 pith_cstring_eq bool 2 286 287 call 289 pith_cstring_release void 1 287 -brif 288 L4858 L4859 -label L4858 +brif 288 L4872 L4873 +label L4872 load 290 ai field 291 290 64 int inner load 292 bi @@ -68059,25 +68236,25 @@ call 296 pith_struct_release void 1 295 load 297 bi call 298 pith_struct_release void 1 297 ret 294 -label L4859 -label L4857 -jmp L4854 -label L4856 -label L4854 +label L4873 +label L4871 +jmp L4868 +label L4870 +label L4868 load 299 ai field 300 299 0 string kind strref 301 m13s26 call 302 pith_cstring_eq bool 2 300 301 call 303 pith_cstring_release void 1 301 -brif 302 L4861 L4862 -label L4861 +brif 302 L4875 L4876 +label L4875 load 304 bi field 305 304 0 string kind strref 306 m13s26 call 307 pith_cstring_eq bool 2 305 306 call 308 pith_cstring_release void 1 306 -brif 307 L4864 L4865 -label L4864 +brif 307 L4878 L4879 +label L4878 load 309 ai field 310 309 64 int inner load 311 bi @@ -68088,25 +68265,25 @@ call 315 pith_struct_release void 1 314 load 316 bi call 317 pith_struct_release void 1 316 ret 313 -label L4865 -label L4863 -jmp L4860 -label L4862 -label L4860 +label L4879 +label L4877 +jmp L4874 +label L4876 +label L4874 load 318 ai field 319 318 0 string kind strref 320 m13s24 call 321 pith_cstring_eq bool 2 319 320 call 322 pith_cstring_release void 1 320 -brif 321 L4867 L4868 -label L4867 +brif 321 L4881 L4882 +label L4881 load 323 bi field 324 323 0 string kind strref 325 m13s24 call 326 pith_cstring_eq bool 2 324 325 call 327 pith_cstring_release void 1 325 -brif 326 L4870 L4871 -label L4870 +brif 326 L4884 L4885 +label L4884 load 328 ai field 329 328 64 int inner load 330 bi @@ -68117,25 +68294,25 @@ call 334 pith_struct_release void 1 333 load 335 bi call 336 pith_struct_release void 1 335 ret 332 -label L4871 -label L4869 -jmp L4866 -label L4868 -label L4866 +label L4885 +label L4883 +jmp L4880 +label L4882 +label L4880 load 337 ai field 338 337 0 string kind strref 339 m13s34 call 340 pith_cstring_eq bool 2 338 339 call 341 pith_cstring_release void 1 339 -brif 340 L4873 L4874 -label L4873 +brif 340 L4887 L4888 +label L4887 load 342 bi field 343 342 0 string kind strref 344 m13s34 call 345 pith_cstring_eq bool 2 343 344 call 346 pith_cstring_release void 1 344 -brif 345 L4876 L4877 -label L4876 +brif 345 L4890 L4891 +label L4890 load 347 ai field 348 347 16 list_string fields call 349 pith_list_len int 1 348 @@ -68143,16 +68320,16 @@ load 350 bi field 351 350 16 list_string fields call 352 pith_list_len int 1 351 neq 353 349 352 -brif 353 L4879 L4880 -label L4879 +brif 353 L4893 L4894 +label L4893 iconst 354 0 load 355 ai call 356 pith_struct_release void 1 355 load 357 bi call 358 pith_struct_release void 1 357 ret 354 -label L4880 -label L4878 +label L4894 +label L4892 load 359 ai field 360 359 16 list_string fields call 361 pith_auto_len int 1 360 @@ -68160,12 +68337,12 @@ iconst 362 0 store __for_idx_204 362 store __for_len_204 361 store __for_iter_204 360 -label L4881 +label L4895 load 363 __for_idx_204 load 364 __for_len_204 lt 365 363 364 -brif 365 L4882 L4884 -label L4882 +brif 365 L4896 L4898 +label L4896 load 366 __for_iter_204 load 367 __for_idx_204 call 368 pith_list_get_value_unchecked string 2 366 367 @@ -68180,16 +68357,16 @@ call 374 pith_list_get_value_strict string 2 372 373 call 376 pith_cstring_eq bool 2 370 374 iconst 377 1 sub 375 377 376 -brif 375 L4886 L4887 -label L4886 +brif 375 L4900 L4901 +label L4900 iconst 378 0 load 379 ai call 380 pith_struct_release void 1 379 load 381 bi call 382 pith_struct_release void 1 381 ret 378 -label L4887 -label L4885 +label L4901 +label L4899 load 383 ai field 384 383 24 list field_types load 385 __loopvar_204_i @@ -68201,48 +68378,48 @@ call 390 pith_list_get_value_strict int 2 388 389 call 391 checker_types_structurally_equal bool 2 386 390 iconst 392 0 eq 393 391 392 -brif 393 L4889 L4890 -label L4889 +brif 393 L4903 L4904 +label L4903 iconst 394 0 load 395 ai call 396 pith_struct_release void 1 395 load 397 bi call 398 pith_struct_release void 1 397 ret 394 -label L4890 -label L4888 -label L4883 +label L4904 +label L4902 +label L4897 load 399 __for_idx_204 iconst 400 1 add 401 399 400 store __for_idx_204 401 -jmp L4881 -label L4884 +jmp L4895 +label L4898 iconst 402 1 load 403 ai call 404 pith_struct_release void 1 403 load 405 bi call 406 pith_struct_release void 1 405 ret 402 -label L4877 -label L4875 -jmp L4872 -label L4874 -label L4872 +label L4891 +label L4889 +jmp L4886 +label L4888 +label L4886 load 407 ai field 408 407 0 string kind strref 409 m13s33 call 410 pith_cstring_eq bool 2 408 409 call 411 pith_cstring_release void 1 409 -brif 410 L4892 L4893 -label L4892 +brif 410 L4906 L4907 +label L4906 load 412 bi field 413 412 0 string kind strref 414 m13s33 call 415 pith_cstring_eq bool 2 413 414 call 416 pith_cstring_release void 1 414 -brif 415 L4895 L4896 -label L4895 +brif 415 L4909 L4910 +label L4909 load 417 ai field 418 417 96 list_string variants call 419 pith_list_len int 1 418 @@ -68250,16 +68427,16 @@ load 420 bi field 421 420 96 list_string variants call 422 pith_list_len int 1 421 neq 423 419 422 -brif 423 L4898 L4899 -label L4898 +brif 423 L4912 L4913 +label L4912 iconst 424 0 load 425 ai call 426 pith_struct_release void 1 425 load 427 bi call 428 pith_struct_release void 1 427 ret 424 -label L4899 -label L4897 +label L4913 +label L4911 load 429 ai field 430 429 96 list_string variants call 431 pith_auto_len int 1 430 @@ -68267,12 +68444,12 @@ iconst 432 0 store __for_idx_205 432 store __for_len_205 431 store __for_iter_205 430 -label L4900 +label L4914 load 433 __for_idx_205 load 434 __for_len_205 lt 435 433 434 -brif 435 L4901 L4903 -label L4901 +brif 435 L4915 L4917 +label L4915 load 436 __for_iter_205 load 437 __for_idx_205 call 438 pith_list_get_value_unchecked string 2 436 437 @@ -68287,16 +68464,16 @@ call 444 pith_list_get_value_strict string 2 442 443 call 446 pith_cstring_eq bool 2 440 444 iconst 447 1 sub 445 447 446 -brif 445 L4905 L4906 -label L4905 +brif 445 L4919 L4920 +label L4919 iconst 448 0 load 449 ai call 450 pith_struct_release void 1 449 load 451 bi call 452 pith_struct_release void 1 451 ret 448 -label L4906 -label L4904 +label L4920 +label L4918 load 453 ai field 454 453 104 list variant_types load 455 __loopvar_205_i @@ -68308,16 +68485,16 @@ load 460 __loopvar_205_i call 461 pith_list_get_value_strict list 2 459 460 call 462 pith_list_len int 1 461 neq 463 457 462 -brif 463 L4908 L4909 -label L4908 +brif 463 L4922 L4923 +label L4922 iconst 464 0 load 465 ai call 466 pith_struct_release void 1 465 load 467 bi call 468 pith_struct_release void 1 467 ret 464 -label L4909 -label L4907 +label L4923 +label L4921 load 469 ai field 470 469 104 list variant_types load 471 __loopvar_205_i @@ -68327,12 +68504,12 @@ iconst 474 0 store __for_idx_206 474 store __for_len_206 473 store __for_iter_206 472 -label L4910 +label L4924 load 475 __for_idx_206 load 476 __for_len_206 lt 477 475 476 -brif 477 L4911 L4913 -label L4911 +brif 477 L4925 L4927 +label L4925 load 478 __for_iter_206 load 479 __for_idx_206 call 480 pith_list_get_value unknown 2 478 479 @@ -68349,41 +68526,41 @@ call 488 pith_list_get_value_strict int 2 486 487 call 489 checker_types_structurally_equal bool 2 482 488 iconst 490 0 eq 491 489 490 -brif 491 L4915 L4916 -label L4915 +brif 491 L4929 L4930 +label L4929 iconst 492 0 load 493 ai call 494 pith_struct_release void 1 493 load 495 bi call 496 pith_struct_release void 1 495 ret 492 -label L4916 -label L4914 -label L4912 +label L4930 +label L4928 +label L4926 load 497 __for_idx_206 iconst 498 1 add 499 497 498 store __for_idx_206 499 -jmp L4910 -label L4913 -label L4902 +jmp L4924 +label L4927 +label L4916 load 500 __for_idx_205 iconst 501 1 add 502 500 501 store __for_idx_205 502 -jmp L4900 -label L4903 +jmp L4914 +label L4917 iconst 503 1 load 504 ai call 505 pith_struct_release void 1 504 load 506 bi call 507 pith_struct_release void 1 506 ret 503 -label L4896 -label L4894 -jmp L4891 -label L4893 -label L4891 +label L4910 +label L4908 +jmp L4905 +label L4907 +label L4905 iconst 508 0 load 509 ai call 510 pith_struct_release void 1 509 @@ -68403,12 +68580,12 @@ param expected load 2 actual load 3 expected eq 4 2 3 -brif 4 L4918 L4919 -label L4918 +brif 4 L4932 L4933 +label L4932 iconst 5 1 ret 5 -label L4919 -label L4917 +label L4933 +label L4931 load 6 actual load 7 expected call 8 checker_types_structurally_equal bool 2 6 7 @@ -72163,493 +72340,496 @@ string m17s400 "config typed file decode argument type mismatch: expected " string m17s401 "config typed file decode target must be a struct, got " string m17s402 "config typed file decode expects 1 argument, got " string m17s403 "config typed file decode requires an explicit struct type" -string m17s404 "unknown type: TomlDecodeError" -string m17s405 "TomlDecodeError" -string m17s406 "toml.decode does not support field '" -string m17s407 "toml.decode target field must be public: " -string m17s408 "toml.decode argument type mismatch: expected " -string m17s409 "toml.decode target must be a struct, got " -string m17s410 "toml.decode expects 1 argument, got " -string m17s411 "toml.decode requires an explicit struct type" -string m17s412 "unknown type: JsonDecodeError" -string m17s413 "JsonDecodeError" -string m17s414 "json.decode does not support field '" -string m17s415 "json.decode target field must be public: " -string m17s416 "json.decode argument type mismatch: expected " -string m17s417 "json.decode target must be a struct, got " -string m17s418 "json.decode expects 1 argument, got " -string m17s419 "json.decode requires an explicit struct type" -string m17s420 "config.decode does not support field '" -string m17s421 "config.decode target field must be public: " -string m17s422 "config.decode prefix type mismatch: expected String, got " -string m17s423 "config.decode argument type mismatch: expected Config, got " -string m17s424 "unknown type: Config" -string m17s425 "Config" -string m17s426 "config.decode target must be a struct, got " -string m17s427 " argument(s), got " -string m17s428 "config.decode expects " -string m17s429 "config.decode requires an explicit struct type" -string m17s430 "|" -string m17s431 "json.decode type argument must be a concrete struct type" -string m17s432 "config_mod" -string m17s433 "config" -string m17s434 "std.config" -string m17s435 "toml_mod" -string m17s436 "toml" -string m17s437 "std.toml" -string m17s438 "json_mod" -string m17s439 "json" -string m17s440 "std.json" -string m17s441 "unary 'not' requires Bool, got " -string m17s442 "not" -string m17s443 "unary - requires numeric type, got " -string m17s444 "negate" -string m17s445 "pipe type mismatch: function expects " -string m17s446 "' must take exactly 1 parameter" -string m17s447 "pipe target '" -string m17s448 "' is not a function" -string m17s449 "pipe operator requires a function name on the right" -string m17s450 "operator 'or' requires Bool, got " -string m17s451 "or" -string m17s452 "operator 'and' requires Bool, got " -string m17s453 "and" -string m17s454 "operator >= type mismatch: " -string m17s455 "operator >= requires numeric or string type, got " -string m17s456 "gte" -string m17s457 "operator <= type mismatch: " -string m17s458 "operator <= requires numeric or string type, got " -string m17s459 "lte" -string m17s460 "operator > type mismatch: " -string m17s461 "operator > requires numeric or string type, got " -string m17s462 "gt" -string m17s463 "operator < type mismatch: " -string m17s464 "operator < requires numeric or string type, got " -string m17s465 "lt" -string m17s466 "operator != type mismatch: " -string m17s467 "neq" -string m17s468 "operator == type mismatch: " -string m17s469 "eq" -string m17s470 "operator % type mismatch: " -string m17s471 "operator % requires integer type, got " -string m17s472 "mod" -string m17s473 "operator / type mismatch: " -string m17s474 "operator / requires numeric type, got " -string m17s475 "div" -string m17s476 "operator * type mismatch: " -string m17s477 "operator * requires numeric type, got " -string m17s478 "mul" -string m17s479 "operator - type mismatch: " -string m17s480 "operator - requires numeric type, got " -string m17s481 "sub" -string m17s482 "operator + type mismatch: " -string m17s483 "operator + requires numeric type, got " -string m17s484 "pipe" -string m17s485 "undefined variable: " -string m17s486 "import it where it is defined" -string m17s487 "' belongs to another module and is not imported here" -string m17s488 "UInt64" -string m17s489 "UInt32" -string m17s490 "UInt16" -string m17s491 "UInt8" -string m17s492 "Int64" -string m17s493 "Int32" -string m17s494 "Int16" -string m17s495 "Int8" -string m17s496 "UInt" -string m17s497 "primitive" -string m17s498 "await" -string m17s499 "spawn" -string m17s500 "struct_init" -string m17s501 "lambda" -string m17s502 "match_expr" -string m17s503 "select_expr" -string m17s504 "catch_expr" -string m17s505 "try" -string m17s506 "unwrap" -string m17s507 "if_expr" -string m17s508 "string interpolation requires a stringifiable value, got " -string m17s509 "lit" -string m17s510 "interp_spec" -string m17s511 "string_interp" -string m17s512 "grouped" -string m17s513 "unary" -string m17s514 "binary" -string m17s515 "self" -string m17s516 "bool_lit" -string m17s517 "string_lit" -string m17s518 "float_lit" -string m17s519 "int_lit" -string m17s520 "cannot iterate over " -string m17s521 ".." -string m17s522 "range bounds must be Int, got " -string m17s523 "range" -string m17s524 ".next" -string m17s525 "while let" -string m17s526 "if let" -string m17s527 " supports variant patterns and optional bindings" -string m17s528 "E245" -string m17s529 " with a bare binding needs an optional subject, got " -string m17s530 "else" -string m17s531 "then" -string m17s532 "elif" -string m17s533 "fail type mismatch: expected " -string m17s534 "fail requires function to return a result type" -string m17s535 "E234" -string m17s536 "fail outside of function" -string m17s537 "E231" -string m17s538 "change the return type to " -string m17s539 "return type mismatch: expected " -string m17s540 ", got Void" -string m17s541 "return outside of function" -string m17s542 "lambda returns disagree: " -string m17s543 "type mismatch: expected " -string m17s544 " requires numeric type, got " -string m17s545 "operator " -string m17s546 "=" -string m17s547 "declare with 'mut': mut " -string m17s548 "cannot assign to immutable variable '" -string m17s549 "E216" -string m17s550 "try_expr" -string m17s551 "bind" -string m17s552 "binding" -string m17s553 "errdefer" -string m17s554 "defer" -string m17s555 "continue" -string m17s556 "break" -string m17s557 "fail" -string m17s558 "return" -string m17s559 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m17s560 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m17s561 "E260" -string m17s562 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m17s563 "errdefer is only meaningful in a function returning a result (`T!`)" -string m17s564 "errdefer is only allowed inside a function" -string m17s565 "defer is only allowed inside a function" -string m17s566 "continue outside of loop" -string m17s567 "E215" -string m17s568 "break outside of loop" -string m17s569 "for_stmt" -string m17s570 "while_let" -string m17s571 "if_let" -string m17s572 "while_stmt" -string m17s573 "if_stmt" -string m17s574 "assignment" -string m17s575 "mut" -string m17s576 "fn_decl" -string m17s577 "pub" -string m17s578 " is missing associated type: " -string m17s579 " for " -string m17s580 "impl of " -string m17s581 "E229" -string m17s582 " is missing method: " -string m17s583 "E235" -string m17s584 "fn_sig" -string m17s585 "assoc_type_bind" -string m17s586 "for_type" -string m17s587 "test_decl" -string m17s588 "impl_decl" -string m17s589 "threadlocal" -string m17s590 "import" -string m17s591 "from_import" -string m17s592 "assoc_type" -string m17s593 "' is a builtin type name and cannot be used as an enum name" -string m17s594 "E250" -string m17s595 "' must be " -string m17s596 "default for field '" -string m17s597 " weak" -string m17s598 "' is a builtin type name and cannot be used as a struct name" -string m17s599 "' must be an optional struct type (T?)" -string m17s600 "weak field '" -string m17s601 "E249" -string m17s602 "parameter requires a type annotation" -string m17s603 "type_alias" -string m17s604 "interface_decl" -string m17s605 "unknown generic type: " -string m17s606 "Channel expects 1 type argument, got " -string m17s607 "Task expects 1 type argument, got " -string m17s608 "Map expects 2 type arguments, got " -string m17s609 "Set expects 1 type argument, got " -string m17s610 "List expects 1 type argument, got " -string m17s611 "type nesting too deep" -string m17s612 "E233" -string m17s613 "import it from the module that defines it" -string m17s614 "' is not declared by module '" -string m17s615 "E246" -string m17s616 "*" -string m17s617 "" -string m17s618 "fn" -string m17s619 "TypeInfo(" -string m17s620 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" -string m17s621 "name" -string m17s622 ", name: " -string m17s623 "fields" -string m17s624 ", fields: " -string m17s625 "field_types" -string m17s626 ", field_types: " -string m17s627 "field_pub" -string m17s628 ", field_pub: " -string m17s629 "field_mut" -string m17s630 ", field_mut: " -string m17s631 "param_types" -string m17s632 ", param_types: " -string m17s633 "return_type" -string m17s634 ", return_type: " -string m17s635 "inner" -string m17s636 ", inner: " -string m17s637 "key_type" -string m17s638 ", key_type: " -string m17s639 "value_type" -string m17s640 ", value_type: " -string m17s641 "elements" -string m17s642 ", elements: " -string m17s643 "variants" -string m17s644 ", variants: " -string m17s645 "variant_types" -string m17s646 ", variant_types: " -string m17s647 "pith_atomic_int_compare_set" -string m17s648 "pith_atomic_int_set" -string m17s649 "pith_atomic_int_get" -string m17s650 "opaque:AtomicInt" -string m17s651 "pith_task_detach" -string m17s652 "pith_task_is_done" -string m17s653 "pith_channel_is_closed" -string m17s654 "pith_channel_close" -string m17s655 "pith_channel_try_recv" -string m17s656 "pith_channel_recv" -string m17s657 "pith_channel_try_send" -string m17s658 "pith_channel_send" -string m17s659 "pith_channel_cap" -string m17s660 "pith_channel_len" -string m17s661 "identity" -string m17s662 "int_to_string" -string m17s663 "bool_to_string" -string m17s664 "float_to_string" -string m17s665 "task:" -string m17s666 "channel:" -string m17s667 "list:" -string m17s668 "list_string" -string m17s669 "set_int" -string m17s670 "map_int" -string m17s671 "int" -string m17s672 "float" -string m17s673 "bool" -string m17s674 "bytes" -string m17s675 "string" -string m17s676 "set_remove" -string m17s677 "set_remove_int" -string m17s678 "set_clear" -string m17s679 "set_is_empty" -string m17s680 "set_contains" -string m17s681 "set_contains_int" -string m17s682 "set_add" -string m17s683 "set_add_int" -string m17s684 "set_len" -string m17s685 "map_get_opt" -string m17s686 "map_get_ikey_opt" -string m17s687 "map_get_default" -string m17s688 "map_get_default_ikey" -string m17s689 "map_take" -string m17s690 "map_take_ikey" -string m17s691 "map_remove" -string m17s692 "map_remove_ikey" -string m17s693 "map_insert" -string m17s694 "map_insert_ikey" -string m17s695 "map_contains_ikey" -string m17s696 "map_values" -string m17s697 "map_keys" -string m17s698 "map_keys_ikey" -string m17s699 "map_clear" -string m17s700 "map_is_empty" -string m17s701 "map_len" -string m17s702 "pith_list_last_opt" -string m17s703 "pith_list_first_opt" -string m17s704 "pith_list_get_opt" -string m17s705 "list_clear" -string m17s706 "list_reverse" -string m17s707 "list_join" -string m17s708 "list_sort_copy" -string m17s709 "list_sort_strings_copy" -string m17s710 "list_slice_copy" -string m17s711 "list_insert" -string m17s712 "pith_list_len" -string m17s713 "bytes_to_string_utf8" -string m17s714 "bytes_concat" -string m17s715 "bytes_slice" -string m17s716 "bytes_is_empty" -string m17s717 "bytes_len" -string m17s718 "pith_cstring_char_at_opt" -string m17s719 "string_is_empty" -string m17s720 "string_len" -string m17s721 "pith_cstring_eq" -string m17s722 "__str_eq" -string m17s723 "pith_closure_get_env" -string m17s724 "__closure_get_env" -string m17s725 "pith_closure_set_env" -string m17s726 "__closure_set_env" -string m17s727 "pith_struct_alloc" -string m17s728 "__struct_alloc" -string m17s729 "pith_set_to_list_int_handle" -string m17s730 "__set_to_list_int" -string m17s731 "pith_set_to_list_cstr" -string m17s732 "__set_to_list" -string m17s733 "pith_set_new_int" -string m17s734 "__set_new_int" -string m17s735 "pith_set_new_default" -string m17s736 "__set_new" -string m17s737 "pith_cstring_release" -string m17s738 "__cstring_release" -string m17s739 "pith_cstring_retain" -string m17s740 "__cstring_retain" -string m17s741 "pith_map_new_int_cstr_val" -string m17s742 "__map_new_int_str_val" -string m17s743 "pith_map_new_cstr_val" -string m17s744 "__map_new_str_val" -string m17s745 "pith_map_new_int" -string m17s746 "__map_new_int" -string m17s747 "pith_map_new_default" -string m17s748 "__map_new" -string m17s749 "pith_list_push_value" -string m17s750 "__list_push" -string m17s751 "pith_list_new_closure" -string m17s752 "__list_new_closure" -string m17s753 "pith_list_new_bytes" -string m17s754 "__list_new_bytes" -string m17s755 "pith_list_new_struct" -string m17s756 "__list_new_struct" -string m17s757 "pith_list_new_nested_map" -string m17s758 "__list_new_map" -string m17s759 "pith_list_new_nested_list" -string m17s760 "__list_new_list" -string m17s761 "pith_list_new_cstr" -string m17s762 "__list_new_str" -string m17s763 "pith_list_new_default" -string m17s764 "__list_new" -string m17s765 "pith_list_get_value_unchecked" -string m17s766 "__list_get_unchecked" -string m17s767 "pith_list_get_value_strict" -string m17s768 "__list_get_strict" -string m17s769 "pith_list_get_value" -string m17s770 "__index" -string m17s771 "__list_get" -string m17s772 "pith_list_sort_strings" -string m17s773 "sort_strings" -string m17s774 "pith_list_set_value" -string m17s775 "pith_list_pop" -string m17s776 "pop" -string m17s777 "pith_cstring_is_empty" -string m17s778 "pith_cstring_reverse" -string m17s779 "pith_cstring_chars" -string m17s780 "pith_cstring_char_at_strict" -string m17s781 "char_at_strict" -string m17s782 "pith_cstring_char_at" -string m17s783 "char_at" -string m17s784 "pith_cstring_last_index_of" -string m17s785 "string_last_index_of" -string m17s786 "pith_cstring_index_of" -string m17s787 "string_index_of" -string m17s788 "pith_cstring_repeat" -string m17s789 "pith_cstring_replace" -string m17s790 "pith_cstring_to_lower" -string m17s791 "pith_cstring_to_upper" -string m17s792 "pith_string_split_to_list" -string m17s793 "pith_cstring_trim" -string m17s794 "pith_cstring_ends_with" -string m17s795 "pith_cstring_starts_with" -string m17s796 "pith_cstring_substring" -string m17s797 "pith_cstring_contains" -string m17s798 "string_contains" -string m17s799 "pith_auto_len" -string m17s800 "pith_await" -string m17s801 "pith_spawn" -string m17s802 "pith_print_cstr" -string m17s803 "print" -string m17s804 "parse_int" -string m17s805 "result_bool" -string m17s806 "result_int" -string m17s807 "parse_float" -string m17s808 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" -string m17s809 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" -string m17s810 "write_file,append_file,write_file_bytes,append_file_bytes" -string m17s811 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" -string m17s812 "trim,substring,to_upper,to_lower,reverse,replace,repeat,pad_left,pad_right,char_at,join,list_join,list_join_int,read_file,env,chr" -string m17s813 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list_reverse,map_insert,map_insert_ikey,map_remove,map_remove_ikey,map_clear,set_add,set_add_int,set_remove,set_remove_int,set_clear,detach,lock,unlock,done,wait,acquire,release,store" -string m17s814 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" -string m17s815 "sort_strings,zip,enumerate,toml_keys" -string m17s816 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" -string m17s817 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" -string m17s818 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" -string m17s819 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" -string m17s820 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" -string m17s821 "pow,sqrt,floor,ceil,round,to_float,get_float,float_from_bits" -string m17s822 "not_op" -string m17s823 "!" -string m17s824 "integer" -string m17s825 "str_lit" -string m17s826 "unknown" -string m17s827 "closure" -string m17s828 "struct:" -string m17s829 "opaque:" -string m17s830 "void" -string m17s831 "Set[UInt64]" -string m17s832 "Set[UInt32]" -string m17s833 "Set[UInt16]" -string m17s834 "Set[UInt8]" -string m17s835 "Set[Int64]" -string m17s836 "Set[Int32]" -string m17s837 "Set[Int16]" -string m17s838 "Set[Int8]" -string m17s839 "Set[UInt]" -string m17s840 "Set[Int]" -string m17s841 "Map[Int, " -string m17s842 "Map[Int," -string m17s843 "List[String]" -string m17s844 "parse_int failed" -string m17s845 "file_open_read failed" -string m17s846 "file_open_write failed" -string m17s847 "file_open_append failed" -string m17s848 "byte_buffer_write failed" -string m17s849 "byte_buffer_write_string_utf8 failed" -string m17s850 "byte_buffer_write_byte failed" -string m17s851 "file_write failed" -string m17s852 "file_write_bytes failed" -string m17s853 "tcp_connect failed" -string m17s854 "tcp_listen failed" -string m17s855 "tcp_accept failed" -string m17s856 "tcp_write failed" -string m17s857 "tcp_write_bytes failed" -string m17s858 "process_spawn failed" -string m17s859 "process_spawn_argv failed" -string m17s860 "process_output_argv failed" -string m17s861 "process_write failed" -string m17s862 "process_write_bytes failed" -string m17s863 "crypto_x25519_keygen failed" -string m17s864 "write_file failed" -string m17s865 "append_file failed" -string m17s866 "write_file_bytes failed" -string m17s867 "append_file_bytes failed" -string m17s868 "read_file failed" -string m17s869 "exec_output failed" -string m17s870 "dns_resolve failed" -string m17s871 "bytes_to_string_utf8 failed" -string m17s872 "bytes_substring_utf8 failed" -string m17s873 "file_read failed" -string m17s874 "tcp_read failed" -string m17s875 "process_read failed" -string m17s876 "process_read_err failed" -string m17s877 "read_file_bytes failed" -string m17s878 "b64_decode failed" -string m17s879 "from_hex failed" -string m17s880 "file_read_bytes failed" -string m17s881 "tcp_read_bytes failed" -string m17s882 "process_read_bytes failed" -string m17s883 "process_read_err_bytes failed" -string m17s884 "crypto_x25519_public_key failed" -string m17s885 "crypto_x25519_shared_secret failed" -string m17s886 "crypto_aes_128_gcm_seal failed" -string m17s887 "crypto_aes_128_gcm_open failed" -string m17s888 "crypto_chacha20_poly1305_seal failed" -string m17s889 "crypto_chacha20_poly1305_open failed" -string m17s890 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m17s404 " does not support field '" +string m17s405 " target field must be public: " +string m17s406 " argument type mismatch: expected " +string m17s407 " target must be a struct, got " +string m17s408 " requires an explicit struct type" +string m17s409 ".decode" +string m17s410 "unknown type: JsonDecodeError" +string m17s411 "JsonDecodeError" +string m17s412 "json.decode does not support field '" +string m17s413 "json.decode target field must be public: " +string m17s414 "json.decode argument type mismatch: expected " +string m17s415 "json.decode target must be a struct, got " +string m17s416 "json.decode expects 1 argument, got " +string m17s417 "json.decode requires an explicit struct type" +string m17s418 "config.decode does not support field '" +string m17s419 "config.decode target field must be public: " +string m17s420 "config.decode prefix type mismatch: expected String, got " +string m17s421 "config.decode argument type mismatch: expected Config, got " +string m17s422 "unknown type: Config" +string m17s423 "Config" +string m17s424 "config.decode target must be a struct, got " +string m17s425 " argument(s), got " +string m17s426 "config.decode expects " +string m17s427 "config.decode requires an explicit struct type" +string m17s428 "|" +string m17s429 "json.decode type argument must be a concrete struct type" +string m17s430 "config_mod" +string m17s431 "config" +string m17s432 "std.config" +string m17s433 "TomlDecodeError" +string m17s434 "YamlDecodeError" +string m17s435 "yaml" +string m17s436 "yaml_mod" +string m17s437 "toml" +string m17s438 "toml_mod" +string m17s439 "std.yaml" +string m17s440 "std.toml" +string m17s441 "json_mod" +string m17s442 "json" +string m17s443 "std.json" +string m17s444 "unary 'not' requires Bool, got " +string m17s445 "not" +string m17s446 "unary - requires numeric type, got " +string m17s447 "negate" +string m17s448 "pipe type mismatch: function expects " +string m17s449 "' must take exactly 1 parameter" +string m17s450 "pipe target '" +string m17s451 "' is not a function" +string m17s452 "pipe operator requires a function name on the right" +string m17s453 "operator 'or' requires Bool, got " +string m17s454 "or" +string m17s455 "operator 'and' requires Bool, got " +string m17s456 "and" +string m17s457 "operator >= type mismatch: " +string m17s458 "operator >= requires numeric or string type, got " +string m17s459 "gte" +string m17s460 "operator <= type mismatch: " +string m17s461 "operator <= requires numeric or string type, got " +string m17s462 "lte" +string m17s463 "operator > type mismatch: " +string m17s464 "operator > requires numeric or string type, got " +string m17s465 "gt" +string m17s466 "operator < type mismatch: " +string m17s467 "operator < requires numeric or string type, got " +string m17s468 "lt" +string m17s469 "operator != type mismatch: " +string m17s470 "neq" +string m17s471 "operator == type mismatch: " +string m17s472 "eq" +string m17s473 "operator % type mismatch: " +string m17s474 "operator % requires integer type, got " +string m17s475 "mod" +string m17s476 "operator / type mismatch: " +string m17s477 "operator / requires numeric type, got " +string m17s478 "div" +string m17s479 "operator * type mismatch: " +string m17s480 "operator * requires numeric type, got " +string m17s481 "mul" +string m17s482 "operator - type mismatch: " +string m17s483 "operator - requires numeric type, got " +string m17s484 "sub" +string m17s485 "operator + type mismatch: " +string m17s486 "operator + requires numeric type, got " +string m17s487 "pipe" +string m17s488 "undefined variable: " +string m17s489 "import it where it is defined" +string m17s490 "' belongs to another module and is not imported here" +string m17s491 "UInt64" +string m17s492 "UInt32" +string m17s493 "UInt16" +string m17s494 "UInt8" +string m17s495 "Int64" +string m17s496 "Int32" +string m17s497 "Int16" +string m17s498 "Int8" +string m17s499 "UInt" +string m17s500 "primitive" +string m17s501 "await" +string m17s502 "spawn" +string m17s503 "struct_init" +string m17s504 "lambda" +string m17s505 "match_expr" +string m17s506 "select_expr" +string m17s507 "catch_expr" +string m17s508 "try" +string m17s509 "unwrap" +string m17s510 "if_expr" +string m17s511 "string interpolation requires a stringifiable value, got " +string m17s512 "lit" +string m17s513 "interp_spec" +string m17s514 "string_interp" +string m17s515 "grouped" +string m17s516 "unary" +string m17s517 "binary" +string m17s518 "self" +string m17s519 "bool_lit" +string m17s520 "string_lit" +string m17s521 "float_lit" +string m17s522 "int_lit" +string m17s523 "cannot iterate over " +string m17s524 ".." +string m17s525 "range bounds must be Int, got " +string m17s526 "range" +string m17s527 ".next" +string m17s528 "while let" +string m17s529 "if let" +string m17s530 " supports variant patterns and optional bindings" +string m17s531 "E245" +string m17s532 " with a bare binding needs an optional subject, got " +string m17s533 "else" +string m17s534 "then" +string m17s535 "elif" +string m17s536 "fail type mismatch: expected " +string m17s537 "fail requires function to return a result type" +string m17s538 "E234" +string m17s539 "fail outside of function" +string m17s540 "E231" +string m17s541 "change the return type to " +string m17s542 "return type mismatch: expected " +string m17s543 ", got Void" +string m17s544 "return outside of function" +string m17s545 "lambda returns disagree: " +string m17s546 "type mismatch: expected " +string m17s547 " requires numeric type, got " +string m17s548 "operator " +string m17s549 "=" +string m17s550 "declare with 'mut': mut " +string m17s551 "cannot assign to immutable variable '" +string m17s552 "E216" +string m17s553 "try_expr" +string m17s554 "bind" +string m17s555 "binding" +string m17s556 "errdefer" +string m17s557 "defer" +string m17s558 "continue" +string m17s559 "break" +string m17s560 "fail" +string m17s561 "return" +string m17s562 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m17s563 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m17s564 "E260" +string m17s565 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m17s566 "errdefer is only meaningful in a function returning a result (`T!`)" +string m17s567 "errdefer is only allowed inside a function" +string m17s568 "defer is only allowed inside a function" +string m17s569 "continue outside of loop" +string m17s570 "E215" +string m17s571 "break outside of loop" +string m17s572 "for_stmt" +string m17s573 "while_let" +string m17s574 "if_let" +string m17s575 "while_stmt" +string m17s576 "if_stmt" +string m17s577 "assignment" +string m17s578 "mut" +string m17s579 "fn_decl" +string m17s580 "pub" +string m17s581 " is missing associated type: " +string m17s582 " for " +string m17s583 "impl of " +string m17s584 "E229" +string m17s585 " is missing method: " +string m17s586 "E235" +string m17s587 "fn_sig" +string m17s588 "assoc_type_bind" +string m17s589 "for_type" +string m17s590 "test_decl" +string m17s591 "impl_decl" +string m17s592 "threadlocal" +string m17s593 "import" +string m17s594 "from_import" +string m17s595 "assoc_type" +string m17s596 "' is a builtin type name and cannot be used as an enum name" +string m17s597 "E250" +string m17s598 "' must be " +string m17s599 "default for field '" +string m17s600 " weak" +string m17s601 "' is a builtin type name and cannot be used as a struct name" +string m17s602 "' must be an optional struct type (T?)" +string m17s603 "weak field '" +string m17s604 "E249" +string m17s605 "parameter requires a type annotation" +string m17s606 "type_alias" +string m17s607 "interface_decl" +string m17s608 "unknown generic type: " +string m17s609 "Channel expects 1 type argument, got " +string m17s610 "Task expects 1 type argument, got " +string m17s611 "Map expects 2 type arguments, got " +string m17s612 "Set expects 1 type argument, got " +string m17s613 "List expects 1 type argument, got " +string m17s614 "type nesting too deep" +string m17s615 "E233" +string m17s616 "import it from the module that defines it" +string m17s617 "' is not declared by module '" +string m17s618 "E246" +string m17s619 "*" +string m17s620 "" +string m17s621 "fn" +string m17s622 "TypeInfo(" +string m17s623 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" +string m17s624 "name" +string m17s625 ", name: " +string m17s626 "fields" +string m17s627 ", fields: " +string m17s628 "field_types" +string m17s629 ", field_types: " +string m17s630 "field_pub" +string m17s631 ", field_pub: " +string m17s632 "field_mut" +string m17s633 ", field_mut: " +string m17s634 "param_types" +string m17s635 ", param_types: " +string m17s636 "return_type" +string m17s637 ", return_type: " +string m17s638 "inner" +string m17s639 ", inner: " +string m17s640 "key_type" +string m17s641 ", key_type: " +string m17s642 "value_type" +string m17s643 ", value_type: " +string m17s644 "elements" +string m17s645 ", elements: " +string m17s646 "variants" +string m17s647 ", variants: " +string m17s648 "variant_types" +string m17s649 ", variant_types: " +string m17s650 "pith_atomic_int_compare_set" +string m17s651 "pith_atomic_int_set" +string m17s652 "pith_atomic_int_get" +string m17s653 "opaque:AtomicInt" +string m17s654 "pith_task_detach" +string m17s655 "pith_task_is_done" +string m17s656 "pith_channel_is_closed" +string m17s657 "pith_channel_close" +string m17s658 "pith_channel_try_recv" +string m17s659 "pith_channel_recv" +string m17s660 "pith_channel_try_send" +string m17s661 "pith_channel_send" +string m17s662 "pith_channel_cap" +string m17s663 "pith_channel_len" +string m17s664 "identity" +string m17s665 "int_to_string" +string m17s666 "bool_to_string" +string m17s667 "float_to_string" +string m17s668 "task:" +string m17s669 "channel:" +string m17s670 "list:" +string m17s671 "list_string" +string m17s672 "set_int" +string m17s673 "map_int" +string m17s674 "int" +string m17s675 "float" +string m17s676 "bool" +string m17s677 "bytes" +string m17s678 "string" +string m17s679 "set_remove" +string m17s680 "set_remove_int" +string m17s681 "set_clear" +string m17s682 "set_is_empty" +string m17s683 "set_contains" +string m17s684 "set_contains_int" +string m17s685 "set_add" +string m17s686 "set_add_int" +string m17s687 "set_len" +string m17s688 "map_get_opt" +string m17s689 "map_get_ikey_opt" +string m17s690 "map_get_default" +string m17s691 "map_get_default_ikey" +string m17s692 "map_take" +string m17s693 "map_take_ikey" +string m17s694 "map_remove" +string m17s695 "map_remove_ikey" +string m17s696 "map_insert" +string m17s697 "map_insert_ikey" +string m17s698 "map_contains_ikey" +string m17s699 "map_values" +string m17s700 "map_keys" +string m17s701 "map_keys_ikey" +string m17s702 "map_clear" +string m17s703 "map_is_empty" +string m17s704 "map_len" +string m17s705 "pith_list_last_opt" +string m17s706 "pith_list_first_opt" +string m17s707 "pith_list_get_opt" +string m17s708 "list_clear" +string m17s709 "list_reverse" +string m17s710 "list_join" +string m17s711 "list_sort_copy" +string m17s712 "list_sort_strings_copy" +string m17s713 "list_slice_copy" +string m17s714 "list_insert" +string m17s715 "pith_list_len" +string m17s716 "bytes_to_string_utf8" +string m17s717 "bytes_concat" +string m17s718 "bytes_slice" +string m17s719 "bytes_is_empty" +string m17s720 "bytes_len" +string m17s721 "pith_cstring_char_at_opt" +string m17s722 "string_is_empty" +string m17s723 "string_len" +string m17s724 "pith_cstring_eq" +string m17s725 "__str_eq" +string m17s726 "pith_closure_get_env" +string m17s727 "__closure_get_env" +string m17s728 "pith_closure_set_env" +string m17s729 "__closure_set_env" +string m17s730 "pith_struct_alloc" +string m17s731 "__struct_alloc" +string m17s732 "pith_set_to_list_int_handle" +string m17s733 "__set_to_list_int" +string m17s734 "pith_set_to_list_cstr" +string m17s735 "__set_to_list" +string m17s736 "pith_set_new_int" +string m17s737 "__set_new_int" +string m17s738 "pith_set_new_default" +string m17s739 "__set_new" +string m17s740 "pith_cstring_release" +string m17s741 "__cstring_release" +string m17s742 "pith_cstring_retain" +string m17s743 "__cstring_retain" +string m17s744 "pith_map_new_int_cstr_val" +string m17s745 "__map_new_int_str_val" +string m17s746 "pith_map_new_cstr_val" +string m17s747 "__map_new_str_val" +string m17s748 "pith_map_new_int" +string m17s749 "__map_new_int" +string m17s750 "pith_map_new_default" +string m17s751 "__map_new" +string m17s752 "pith_list_push_value" +string m17s753 "__list_push" +string m17s754 "pith_list_new_closure" +string m17s755 "__list_new_closure" +string m17s756 "pith_list_new_bytes" +string m17s757 "__list_new_bytes" +string m17s758 "pith_list_new_struct" +string m17s759 "__list_new_struct" +string m17s760 "pith_list_new_nested_map" +string m17s761 "__list_new_map" +string m17s762 "pith_list_new_nested_list" +string m17s763 "__list_new_list" +string m17s764 "pith_list_new_cstr" +string m17s765 "__list_new_str" +string m17s766 "pith_list_new_default" +string m17s767 "__list_new" +string m17s768 "pith_list_get_value_unchecked" +string m17s769 "__list_get_unchecked" +string m17s770 "pith_list_get_value_strict" +string m17s771 "__list_get_strict" +string m17s772 "pith_list_get_value" +string m17s773 "__index" +string m17s774 "__list_get" +string m17s775 "pith_list_sort_strings" +string m17s776 "sort_strings" +string m17s777 "pith_list_set_value" +string m17s778 "pith_list_pop" +string m17s779 "pop" +string m17s780 "pith_cstring_is_empty" +string m17s781 "pith_cstring_reverse" +string m17s782 "pith_cstring_chars" +string m17s783 "pith_cstring_char_at_strict" +string m17s784 "char_at_strict" +string m17s785 "pith_cstring_char_at" +string m17s786 "char_at" +string m17s787 "pith_cstring_last_index_of" +string m17s788 "string_last_index_of" +string m17s789 "pith_cstring_index_of" +string m17s790 "string_index_of" +string m17s791 "pith_cstring_repeat" +string m17s792 "pith_cstring_replace" +string m17s793 "pith_cstring_to_lower" +string m17s794 "pith_cstring_to_upper" +string m17s795 "pith_string_split_to_list" +string m17s796 "pith_cstring_trim" +string m17s797 "pith_cstring_ends_with" +string m17s798 "pith_cstring_starts_with" +string m17s799 "pith_cstring_substring" +string m17s800 "pith_cstring_contains" +string m17s801 "string_contains" +string m17s802 "pith_auto_len" +string m17s803 "pith_await" +string m17s804 "pith_spawn" +string m17s805 "pith_print_cstr" +string m17s806 "print" +string m17s807 "parse_int" +string m17s808 "result_bool" +string m17s809 "result_int" +string m17s810 "parse_float" +string m17s811 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m17s812 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" +string m17s813 "write_file,append_file,write_file_bytes,append_file_bytes" +string m17s814 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" +string m17s815 "trim,substring,to_upper,to_lower,reverse,replace,repeat,pad_left,pad_right,char_at,join,list_join,list_join_int,read_file,env,chr" +string m17s816 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list_reverse,map_insert,map_insert_ikey,map_remove,map_remove_ikey,map_clear,set_add,set_add_int,set_remove,set_remove_int,set_clear,detach,lock,unlock,done,wait,acquire,release,store" +string m17s817 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" +string m17s818 "sort_strings,zip,enumerate,toml_keys" +string m17s819 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" +string m17s820 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m17s821 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" +string m17s822 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" +string m17s823 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" +string m17s824 "pow,sqrt,floor,ceil,round,to_float,get_float,float_from_bits" +string m17s825 "not_op" +string m17s826 "!" +string m17s827 "integer" +string m17s828 "str_lit" +string m17s829 "unknown" +string m17s830 "closure" +string m17s831 "struct:" +string m17s832 "opaque:" +string m17s833 "void" +string m17s834 "Set[UInt64]" +string m17s835 "Set[UInt32]" +string m17s836 "Set[UInt16]" +string m17s837 "Set[UInt8]" +string m17s838 "Set[Int64]" +string m17s839 "Set[Int32]" +string m17s840 "Set[Int16]" +string m17s841 "Set[Int8]" +string m17s842 "Set[UInt]" +string m17s843 "Set[Int]" +string m17s844 "Map[Int, " +string m17s845 "Map[Int," +string m17s846 "List[String]" +string m17s847 "parse_int failed" +string m17s848 "file_open_read failed" +string m17s849 "file_open_write failed" +string m17s850 "file_open_append failed" +string m17s851 "byte_buffer_write failed" +string m17s852 "byte_buffer_write_string_utf8 failed" +string m17s853 "byte_buffer_write_byte failed" +string m17s854 "file_write failed" +string m17s855 "file_write_bytes failed" +string m17s856 "tcp_connect failed" +string m17s857 "tcp_listen failed" +string m17s858 "tcp_accept failed" +string m17s859 "tcp_write failed" +string m17s860 "tcp_write_bytes failed" +string m17s861 "process_spawn failed" +string m17s862 "process_spawn_argv failed" +string m17s863 "process_output_argv failed" +string m17s864 "process_write failed" +string m17s865 "process_write_bytes failed" +string m17s866 "crypto_x25519_keygen failed" +string m17s867 "write_file failed" +string m17s868 "append_file failed" +string m17s869 "write_file_bytes failed" +string m17s870 "append_file_bytes failed" +string m17s871 "read_file failed" +string m17s872 "exec_output failed" +string m17s873 "dns_resolve failed" +string m17s874 "bytes_to_string_utf8 failed" +string m17s875 "bytes_substring_utf8 failed" +string m17s876 "file_read failed" +string m17s877 "tcp_read failed" +string m17s878 "process_read failed" +string m17s879 "process_read_err failed" +string m17s880 "read_file_bytes failed" +string m17s881 "b64_decode failed" +string m17s882 "from_hex failed" +string m17s883 "file_read_bytes failed" +string m17s884 "tcp_read_bytes failed" +string m17s885 "process_read_bytes failed" +string m17s886 "process_read_err_bytes failed" +string m17s887 "crypto_x25519_public_key failed" +string m17s888 "crypto_x25519_shared_secret failed" +string m17s889 "crypto_aes_128_gcm_seal failed" +string m17s890 "crypto_aes_128_gcm_open failed" +string m17s891 "crypto_chacha20_poly1305_seal failed" +string m17s892 "crypto_chacha20_poly1305_open failed" +string m17s893 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -72795,7 +72975,7 @@ jmp L0 label L2 label L0 load 18 resolved -strref 19 m17s829 +strref 19 m17s832 call 20 pith_cstring_starts_with bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L4 L5 @@ -72817,7 +72997,7 @@ call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 brif 31 L7 L8 label L7 -strref 33 m17s675 +strref 33 m17s678 load 34 resolved call 35 pith_cstring_release void 1 34 load 36 base @@ -72831,7 +73011,7 @@ call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 brif 40 L10 L11 label L10 -strref 42 m17s674 +strref 42 m17s677 load 43 resolved call 44 pith_cstring_release void 1 43 load 45 base @@ -72845,7 +73025,7 @@ call 49 pith_cstring_eq bool 2 47 48 call 50 pith_cstring_release void 1 48 brif 49 L13 L14 label L13 -strref 51 m17s673 +strref 51 m17s676 load 52 resolved call 53 pith_cstring_release void 1 52 load 54 base @@ -72859,7 +73039,7 @@ call 58 pith_cstring_eq bool 2 56 57 call 59 pith_cstring_release void 1 57 brif 58 L16 L17 label L16 -strref 60 m17s671 +strref 60 m17s674 load 61 resolved call 62 pith_cstring_release void 1 61 load 63 base @@ -72873,7 +73053,7 @@ call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 66 brif 67 L19 L20 label L19 -strref 69 m17s672 +strref 69 m17s675 load 70 resolved call 71 pith_cstring_release void 1 70 load 72 base @@ -72882,12 +73062,12 @@ ret 69 label L20 label L18 load 74 resolved -strref 75 m17s843 +strref 75 m17s846 call 76 pith_cstring_contains bool 2 74 75 call 77 pith_cstring_release void 1 75 brif 76 L22 L23 label L22 -strref 78 m17s668 +strref 78 m17s671 load 79 resolved call 80 pith_cstring_release void 1 79 load 81 base @@ -72924,14 +73104,14 @@ label L24 iconst 98 0 store __or_98_32 98 load 99 resolved -strref 100 m17s842 +strref 100 m17s845 call 101 pith_cstring_contains bool 2 99 100 call 102 pith_cstring_release void 1 100 store __or_98_32 101 brif 101 L33 L32 label L32 load 103 resolved -strref 104 m17s841 +strref 104 m17s844 call 105 pith_cstring_contains bool 2 103 104 call 106 pith_cstring_release void 1 104 store __or_98_32 105 @@ -72939,7 +73119,7 @@ label L33 load 107 __or_98_32 brif 107 L30 L31 label L30 -strref 108 m17s670 +strref 108 m17s673 load 109 resolved call 110 pith_cstring_release void 1 109 load 111 base @@ -72992,14 +73172,14 @@ store __or_135_42 135 iconst 136 0 store __or_136_42 136 load 137 resolved -strref 138 m17s840 +strref 138 m17s843 call 139 pith_cstring_contains bool 2 137 138 call 140 pith_cstring_release void 1 138 store __or_136_42 139 brif 139 L43 L42 label L42 load 141 resolved -strref 142 m17s839 +strref 142 m17s842 call 143 pith_cstring_contains bool 2 141 142 call 144 pith_cstring_release void 1 142 store __or_136_42 143 @@ -73009,7 +73189,7 @@ store __or_135_42 145 brif 145 L45 L44 label L44 load 146 resolved -strref 147 m17s838 +strref 147 m17s841 call 148 pith_cstring_contains bool 2 146 147 call 149 pith_cstring_release void 1 147 store __or_135_42 148 @@ -73019,7 +73199,7 @@ store __or_134_42 150 brif 150 L47 L46 label L46 load 151 resolved -strref 152 m17s837 +strref 152 m17s840 call 153 pith_cstring_contains bool 2 151 152 call 154 pith_cstring_release void 1 152 store __or_134_42 153 @@ -73029,7 +73209,7 @@ store __or_133_42 155 brif 155 L49 L48 label L48 load 156 resolved -strref 157 m17s836 +strref 157 m17s839 call 158 pith_cstring_contains bool 2 156 157 call 159 pith_cstring_release void 1 157 store __or_133_42 158 @@ -73039,7 +73219,7 @@ store __or_132_42 160 brif 160 L51 L50 label L50 load 161 resolved -strref 162 m17s835 +strref 162 m17s838 call 163 pith_cstring_contains bool 2 161 162 call 164 pith_cstring_release void 1 162 store __or_132_42 163 @@ -73049,7 +73229,7 @@ store __or_131_42 165 brif 165 L53 L52 label L52 load 166 resolved -strref 167 m17s834 +strref 167 m17s837 call 168 pith_cstring_contains bool 2 166 167 call 169 pith_cstring_release void 1 167 store __or_131_42 168 @@ -73059,7 +73239,7 @@ store __or_130_42 170 brif 170 L55 L54 label L54 load 171 resolved -strref 172 m17s833 +strref 172 m17s836 call 173 pith_cstring_contains bool 2 171 172 call 174 pith_cstring_release void 1 172 store __or_130_42 173 @@ -73069,7 +73249,7 @@ store __or_129_42 175 brif 175 L57 L56 label L56 load 176 resolved -strref 177 m17s832 +strref 177 m17s835 call 178 pith_cstring_contains bool 2 176 177 call 179 pith_cstring_release void 1 177 store __or_129_42 178 @@ -73079,7 +73259,7 @@ store __or_128_42 180 brif 180 L59 L58 label L58 load 181 resolved -strref 182 m17s831 +strref 182 m17s834 call 183 pith_cstring_contains bool 2 181 182 call 184 pith_cstring_release void 1 182 store __or_128_42 183 @@ -73087,7 +73267,7 @@ label L59 load 185 __or_128_42 brif 185 L40 L41 label L40 -strref 186 m17s669 +strref 186 m17s672 load 187 resolved call 188 pith_cstring_release void 1 187 load 189 base @@ -73231,7 +73411,7 @@ iconst 6 0 eq 7 5 6 brif 7 L82 L83 label L82 -strref 8 m17s826 +strref 8 m17s829 load 9 resolved call 10 pith_cstring_release void 1 9 ret 8 @@ -73245,48 +73425,48 @@ call 15 ir_type_helpers_ir_resolve_type_hint_with_state string 3 12 13 14 call 16 pith_cstring_release void 1 11 store resolved 15 load 17 resolved -strref 18 m17s671 +strref 18 m17s674 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L85 L86 label L85 -strref 21 m17s671 +strref 21 m17s674 load 22 resolved call 23 pith_cstring_release void 1 22 ret 21 label L86 label L84 load 24 resolved -strref 25 m17s672 +strref 25 m17s675 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 brif 26 L88 L89 label L88 -strref 28 m17s672 +strref 28 m17s675 load 29 resolved call 30 pith_cstring_release void 1 29 ret 28 label L89 label L87 load 31 resolved -strref 32 m17s673 +strref 32 m17s676 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 brif 33 L91 L92 label L91 -strref 35 m17s673 +strref 35 m17s676 load 36 resolved call 37 pith_cstring_release void 1 36 ret 35 label L92 label L90 load 38 resolved -strref 39 m17s675 +strref 39 m17s678 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 brif 40 L94 L95 label L94 -strref 42 m17s675 +strref 42 m17s678 load 43 resolved call 44 pith_cstring_release void 1 43 ret 42 @@ -73305,12 +73485,12 @@ ret 49 label L98 label L96 load 52 resolved -strref 53 m17s668 +strref 53 m17s671 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 brif 54 L100 L101 label L100 -strref 56 m17s668 +strref 56 m17s671 load 57 resolved call 58 pith_cstring_release void 1 57 ret 56 @@ -73329,24 +73509,24 @@ ret 63 label L104 label L102 load 66 resolved -strref 67 m17s670 +strref 67 m17s673 call 68 pith_cstring_eq bool 2 66 67 call 69 pith_cstring_release void 1 67 brif 68 L106 L107 label L106 -strref 70 m17s670 +strref 70 m17s673 load 71 resolved call 72 pith_cstring_release void 1 71 ret 70 label L107 label L105 load 73 resolved -strref 74 m17s669 +strref 74 m17s672 call 75 pith_cstring_eq bool 2 73 74 call 76 pith_cstring_release void 1 74 brif 75 L109 L110 label L109 -strref 77 m17s669 +strref 77 m17s672 load 78 resolved call 79 pith_cstring_release void 1 78 ret 77 @@ -73365,12 +73545,12 @@ ret 84 label L113 label L111 load 87 resolved -strref 88 m17s830 +strref 88 m17s833 call 89 pith_cstring_eq bool 2 87 88 call 90 pith_cstring_release void 1 88 brif 89 L115 L116 label L115 -strref 91 m17s830 +strref 91 m17s833 load 92 resolved call 93 pith_cstring_release void 1 92 ret 91 @@ -73418,7 +73598,7 @@ label L125 load 115 __or_94_120 brif 115 L118 L119 label L118 -strref 116 m17s829 +strref 116 m17s832 load 117 resolved concat 118 116 117 call 119 pith_cstring_release void 1 116 @@ -73432,7 +73612,7 @@ load 123 resolved call 124 contains_key bool 2 122 123 brif 124 L127 L128 label L127 -strref 125 m17s828 +strref 125 m17s831 load 126 resolved concat 127 125 126 call 128 pith_cstring_release void 1 125 @@ -73494,7 +73674,7 @@ label L139 load 30 __and_19_138 brif 30 L136 L137 label L136 -strref 31 m17s668 +strref 31 m17s671 load 32 first call 33 pith_struct_release void 1 32 ret 31 @@ -73551,7 +73731,7 @@ label L150 load 65 __and_54_149 brif 65 L147 L148 label L147 -strref 66 m17s670 +strref 66 m17s673 load 67 first call 68 pith_struct_release void 1 67 ret 66 @@ -73608,7 +73788,7 @@ label L161 load 100 __and_89_160 brif 100 L158 L159 label L158 -strref 101 m17s669 +strref 101 m17s672 load 102 first call 103 pith_struct_release void 1 102 ret 101 @@ -73703,7 +73883,7 @@ label L170 label L168 load 42 info field 43 42 0 string kind -strref 44 m17s497 +strref 44 m17s500 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 brif 45 L172 L173 @@ -73736,7 +73916,7 @@ brif 59 L178 L177 label L177 load 61 info field 62 61 8 string name -strref 63 m17s496 +strref 63 m17s499 call 64 pith_cstring_eq bool 2 62 63 call 65 pith_cstring_release void 1 63 store __or_55_177 64 @@ -73747,7 +73927,7 @@ brif 66 L180 L179 label L179 load 67 info field 68 67 8 string name -strref 69 m17s495 +strref 69 m17s498 call 70 pith_cstring_eq bool 2 68 69 call 71 pith_cstring_release void 1 69 store __or_54_177 70 @@ -73758,7 +73938,7 @@ brif 72 L182 L181 label L181 load 73 info field 74 73 8 string name -strref 75 m17s494 +strref 75 m17s497 call 76 pith_cstring_eq bool 2 74 75 call 77 pith_cstring_release void 1 75 store __or_53_177 76 @@ -73769,7 +73949,7 @@ brif 78 L184 L183 label L183 load 79 info field 80 79 8 string name -strref 81 m17s493 +strref 81 m17s496 call 82 pith_cstring_eq bool 2 80 81 call 83 pith_cstring_release void 1 81 store __or_52_177 82 @@ -73780,7 +73960,7 @@ brif 84 L186 L185 label L185 load 85 info field 86 85 8 string name -strref 87 m17s492 +strref 87 m17s495 call 88 pith_cstring_eq bool 2 86 87 call 89 pith_cstring_release void 1 87 store __or_51_177 88 @@ -73791,7 +73971,7 @@ brif 90 L188 L187 label L187 load 91 info field 92 91 8 string name -strref 93 m17s491 +strref 93 m17s494 call 94 pith_cstring_eq bool 2 92 93 call 95 pith_cstring_release void 1 93 store __or_50_177 94 @@ -73802,7 +73982,7 @@ brif 96 L190 L189 label L189 load 97 info field 98 97 8 string name -strref 99 m17s490 +strref 99 m17s493 call 100 pith_cstring_eq bool 2 98 99 call 101 pith_cstring_release void 1 99 store __or_49_177 100 @@ -73813,7 +73993,7 @@ brif 102 L192 L191 label L191 load 103 info field 104 103 8 string name -strref 105 m17s489 +strref 105 m17s492 call 106 pith_cstring_eq bool 2 104 105 call 107 pith_cstring_release void 1 105 store __or_48_177 106 @@ -73824,7 +74004,7 @@ brif 108 L194 L193 label L193 load 109 info field 110 109 8 string name -strref 111 m17s488 +strref 111 m17s491 call 112 pith_cstring_eq bool 2 110 111 call 113 pith_cstring_release void 1 111 store __or_47_177 112 @@ -73832,7 +74012,7 @@ label L194 load 114 __or_47_177 brif 114 L175 L176 label L175 -strref 115 m17s671 +strref 115 m17s674 load 116 info call 117 pith_struct_release void 1 116 load 118 elem_info @@ -73849,7 +74029,7 @@ call 125 pith_cstring_eq bool 2 123 124 call 126 pith_cstring_release void 1 124 brif 125 L196 L197 label L196 -strref 127 m17s672 +strref 127 m17s675 load 128 info call 129 pith_struct_release void 1 128 load 130 elem_info @@ -73866,7 +74046,7 @@ call 137 pith_cstring_eq bool 2 135 136 call 138 pith_cstring_release void 1 136 brif 137 L199 L200 label L199 -strref 139 m17s673 +strref 139 m17s676 load 140 info call 141 pith_struct_release void 1 140 load 142 elem_info @@ -73883,7 +74063,7 @@ call 149 pith_cstring_eq bool 2 147 148 call 150 pith_cstring_release void 1 148 brif 149 L202 L203 label L202 -strref 151 m17s675 +strref 151 m17s678 load 152 info call 153 pith_struct_release void 1 152 load 154 elem_info @@ -73900,7 +74080,7 @@ call 161 pith_cstring_eq bool 2 159 160 call 162 pith_cstring_release void 1 160 brif 161 L205 L206 label L205 -strref 163 m17s674 +strref 163 m17s677 load 164 info call 165 pith_struct_release void 1 164 load 166 elem_info @@ -73937,7 +74117,7 @@ iconst 187 0 store __and_187_213 187 load 188 elem_info field 189 188 0 string kind -strref 190 m17s497 +strref 190 m17s500 call 191 pith_cstring_eq bool 2 189 190 call 192 pith_cstring_release void 1 190 store __and_187_213 191 @@ -73953,7 +74133,7 @@ label L214 load 198 __and_187_213 brif 198 L211 L212 label L211 -strref 199 m17s668 +strref 199 m17s671 load 200 info call 201 pith_struct_release void 1 200 load 202 elem_info @@ -73990,7 +74170,7 @@ iconst 223 0 store __and_223_221 223 load 224 key_info field 225 224 0 string kind -strref 226 m17s497 +strref 226 m17s500 call 227 pith_cstring_eq bool 2 225 226 call 228 pith_cstring_release void 1 226 store __and_223_221 227 @@ -74024,7 +74204,7 @@ brif 241 L224 L223 label L223 load 243 key_info field 244 243 8 string name -strref 245 m17s496 +strref 245 m17s499 call 246 pith_cstring_eq bool 2 244 245 call 247 pith_cstring_release void 1 245 store __or_237_223 246 @@ -74035,7 +74215,7 @@ brif 248 L226 L225 label L225 load 249 key_info field 250 249 8 string name -strref 251 m17s495 +strref 251 m17s498 call 252 pith_cstring_eq bool 2 250 251 call 253 pith_cstring_release void 1 251 store __or_236_223 252 @@ -74046,7 +74226,7 @@ brif 254 L228 L227 label L227 load 255 key_info field 256 255 8 string name -strref 257 m17s494 +strref 257 m17s497 call 258 pith_cstring_eq bool 2 256 257 call 259 pith_cstring_release void 1 257 store __or_235_223 258 @@ -74057,7 +74237,7 @@ brif 260 L230 L229 label L229 load 261 key_info field 262 261 8 string name -strref 263 m17s493 +strref 263 m17s496 call 264 pith_cstring_eq bool 2 262 263 call 265 pith_cstring_release void 1 263 store __or_234_223 264 @@ -74068,7 +74248,7 @@ brif 266 L232 L231 label L231 load 267 key_info field 268 267 8 string name -strref 269 m17s492 +strref 269 m17s495 call 270 pith_cstring_eq bool 2 268 269 call 271 pith_cstring_release void 1 269 store __or_233_223 270 @@ -74079,7 +74259,7 @@ brif 272 L234 L233 label L233 load 273 key_info field 274 273 8 string name -strref 275 m17s491 +strref 275 m17s494 call 276 pith_cstring_eq bool 2 274 275 call 277 pith_cstring_release void 1 275 store __or_232_223 276 @@ -74090,7 +74270,7 @@ brif 278 L236 L235 label L235 load 279 key_info field 280 279 8 string name -strref 281 m17s490 +strref 281 m17s493 call 282 pith_cstring_eq bool 2 280 281 call 283 pith_cstring_release void 1 281 store __or_231_223 282 @@ -74101,7 +74281,7 @@ brif 284 L238 L237 label L237 load 285 key_info field 286 285 8 string name -strref 287 m17s489 +strref 287 m17s492 call 288 pith_cstring_eq bool 2 286 287 call 289 pith_cstring_release void 1 287 store __or_230_223 288 @@ -74112,7 +74292,7 @@ brif 290 L240 L239 label L239 load 291 key_info field 292 291 8 string name -strref 293 m17s488 +strref 293 m17s491 call 294 pith_cstring_eq bool 2 292 293 call 295 pith_cstring_release void 1 293 store __or_229_223 294 @@ -74123,7 +74303,7 @@ label L222 load 297 __and_223_221 brif 297 L219 L220 label L219 -strref 298 m17s670 +strref 298 m17s673 load 299 info call 300 pith_struct_release void 1 299 load 301 elem_info @@ -74160,7 +74340,7 @@ iconst 322 0 store __and_322_247 322 load 323 elem_info field 324 323 0 string kind -strref 325 m17s497 +strref 325 m17s500 call 326 pith_cstring_eq bool 2 324 325 call 327 pith_cstring_release void 1 325 store __and_322_247 326 @@ -74194,7 +74374,7 @@ brif 340 L250 L249 label L249 load 342 elem_info field 343 342 8 string name -strref 344 m17s496 +strref 344 m17s499 call 345 pith_cstring_eq bool 2 343 344 call 346 pith_cstring_release void 1 344 store __or_336_249 345 @@ -74205,7 +74385,7 @@ brif 347 L252 L251 label L251 load 348 elem_info field 349 348 8 string name -strref 350 m17s495 +strref 350 m17s498 call 351 pith_cstring_eq bool 2 349 350 call 352 pith_cstring_release void 1 350 store __or_335_249 351 @@ -74216,7 +74396,7 @@ brif 353 L254 L253 label L253 load 354 elem_info field 355 354 8 string name -strref 356 m17s494 +strref 356 m17s497 call 357 pith_cstring_eq bool 2 355 356 call 358 pith_cstring_release void 1 356 store __or_334_249 357 @@ -74227,7 +74407,7 @@ brif 359 L256 L255 label L255 load 360 elem_info field 361 360 8 string name -strref 362 m17s493 +strref 362 m17s496 call 363 pith_cstring_eq bool 2 361 362 call 364 pith_cstring_release void 1 362 store __or_333_249 363 @@ -74238,7 +74418,7 @@ brif 365 L258 L257 label L257 load 366 elem_info field 367 366 8 string name -strref 368 m17s492 +strref 368 m17s495 call 369 pith_cstring_eq bool 2 367 368 call 370 pith_cstring_release void 1 368 store __or_332_249 369 @@ -74249,7 +74429,7 @@ brif 371 L260 L259 label L259 load 372 elem_info field 373 372 8 string name -strref 374 m17s491 +strref 374 m17s494 call 375 pith_cstring_eq bool 2 373 374 call 376 pith_cstring_release void 1 374 store __or_331_249 375 @@ -74260,7 +74440,7 @@ brif 377 L262 L261 label L261 load 378 elem_info field 379 378 8 string name -strref 380 m17s490 +strref 380 m17s493 call 381 pith_cstring_eq bool 2 379 380 call 382 pith_cstring_release void 1 380 store __or_330_249 381 @@ -74271,7 +74451,7 @@ brif 383 L264 L263 label L263 load 384 elem_info field 385 384 8 string name -strref 386 m17s489 +strref 386 m17s492 call 387 pith_cstring_eq bool 2 385 386 call 388 pith_cstring_release void 1 386 store __or_329_249 387 @@ -74282,7 +74462,7 @@ brif 389 L266 L265 label L265 load 390 elem_info field 391 390 8 string name -strref 392 m17s488 +strref 392 m17s491 call 393 pith_cstring_eq bool 2 391 392 call 394 pith_cstring_release void 1 392 store __or_328_249 393 @@ -74293,7 +74473,7 @@ label L248 load 396 __and_322_247 brif 396 L245 L246 label L245 -strref 397 m17s669 +strref 397 m17s672 load 398 info call 399 pith_struct_release void 1 398 load 400 elem_info @@ -74374,7 +74554,7 @@ add 452 450 451 store vi 452 jmp L273 label L275 -strref 453 m17s671 +strref 453 m17s674 load 454 info call 455 pith_struct_release void 1 454 load 456 elem_info @@ -74444,7 +74624,7 @@ call 501 pith_cstring_eq bool 2 499 500 call 502 pith_cstring_release void 1 500 brif 501 L289 L290 label L289 -strref 503 m17s827 +strref 503 m17s830 load 504 info call 505 pith_struct_release void 1 504 load 506 elem_info @@ -74521,7 +74701,7 @@ label L294 jmp L291 label L293 label L291 -strref 29 m17s826 +strref 29 m17s829 load 30 info call 31 pith_struct_release void 1 30 load 32 kind @@ -74584,7 +74764,7 @@ label L303 jmp L300 label L302 label L300 -strref 29 m17s826 +strref 29 m17s829 load 30 info call 31 pith_struct_release void 1 30 load 32 kind @@ -74889,7 +75069,7 @@ iconst 30 0 gte 31 29 30 brif 31 L345 L346 label L345 -strref 32 m17s671 +strref 32 m17s674 ret 32 label L346 label L344 @@ -74922,7 +75102,7 @@ iconst 45 0 gte 46 44 45 brif 46 L355 L356 label L355 -strref 47 m17s675 +strref 47 m17s678 ret 47 label L356 label L354 @@ -74955,7 +75135,7 @@ iconst 60 0 gte 61 59 60 brif 61 L365 L366 label L365 -strref 62 m17s668 +strref 62 m17s671 ret 62 label L366 label L364 @@ -75021,7 +75201,7 @@ iconst 90 0 gte 91 89 90 brif 91 L385 L386 label L385 -strref 92 m17s670 +strref 92 m17s673 ret 92 label L386 label L384 @@ -75087,7 +75267,7 @@ iconst 120 0 gte 121 119 120 brif 121 L405 L406 label L405 -strref 122 m17s669 +strref 122 m17s672 ret 122 label L406 label L404 @@ -75153,7 +75333,7 @@ iconst 150 0 gte 151 149 150 brif 151 L425 L426 label L425 -strref 152 m17s673 +strref 152 m17s676 ret 152 label L426 label L424 @@ -75168,7 +75348,7 @@ load 1 fname call 2 ir_metadata_ir_is_float_returning_func bool 1 1 brif 2 L435 L436 label L435 -strref 3 m17s672 +strref 3 m17s675 ret 3 label L436 label L434 @@ -75176,7 +75356,7 @@ load 4 fname call 5 ir_metadata_ir_is_bool_returning_func bool 1 4 brif 5 L438 L439 label L438 -strref 6 m17s673 +strref 6 m17s676 ret 6 label L439 label L437 @@ -75184,7 +75364,7 @@ load 7 fname call 8 ir_metadata_ir_is_int_returning_func bool 1 7 brif 8 L441 L442 label L441 -strref 9 m17s671 +strref 9 m17s674 ret 9 label L442 label L440 @@ -75192,7 +75372,7 @@ load 10 fname call 11 ir_metadata_ir_is_string_returning_func bool 1 10 brif 11 L444 L445 label L444 -strref 12 m17s675 +strref 12 m17s678 ret 12 label L445 label L443 @@ -75200,7 +75380,7 @@ load 13 fname call 14 ir_metadata_ir_is_bytes_returning_func bool 1 13 brif 14 L447 L448 label L447 -strref 15 m17s674 +strref 15 m17s677 ret 15 label L448 label L446 @@ -75223,7 +75403,7 @@ load 4 fname call 5 ir_metadata_ir_is_list_string_returning_func bool 1 4 brif 5 L453 L454 label L453 -strref 6 m17s668 +strref 6 m17s671 ret 6 label L454 label L452 @@ -75250,7 +75430,7 @@ label L459 load 8 __or_1_458 brif 8 L456 L457 label L456 -strref 9 m17s675 +strref 9 m17s678 ret 9 label L457 label L455 @@ -75296,7 +75476,7 @@ label L468 load 31 __or_10_463 brif 31 L461 L462 label L461 -strref 32 m17s668 +strref 32 m17s671 ret 32 label L462 label L460 @@ -75318,7 +75498,7 @@ store __or_2_472 5 brif 5 L473 L472 label L472 load 7 obj_type -strref 8 m17s666 +strref 8 m17s669 call 9 pith_cstring_starts_with bool 2 7 8 call 10 pith_cstring_release void 1 8 store __or_2_472 9 @@ -75364,7 +75544,7 @@ label L484 load 31 __or_22_483 brif 31 L481 L482 label L481 -strref 32 m17s671 +strref 32 m17s674 ret 32 label L482 label L480 @@ -75410,7 +75590,7 @@ label L493 load 54 __or_33_488 brif 54 L486 L487 label L486 -strref 55 m17s673 +strref 55 m17s676 ret 55 label L487 label L485 @@ -75429,7 +75609,7 @@ store __or_57_497 60 brif 60 L498 L497 label L497 load 62 obj_type -strref 63 m17s665 +strref 63 m17s668 call 64 pith_cstring_starts_with bool 2 62 63 call 65 pith_cstring_release void 1 63 store __or_57_497 64 @@ -75447,7 +75627,7 @@ label L500 load 71 __and_56_497 brif 71 L495 L496 label L495 -strref 72 m17s673 +strref 72 m17s676 ret 72 label L496 label L494 @@ -75472,7 +75652,7 @@ store __or_79_506 82 brif 82 L507 L506 label L506 load 84 obj_type -strref 85 m17s668 +strref 85 m17s671 call 86 pith_cstring_eq bool 2 84 85 call 87 pith_cstring_release void 1 85 store __or_79_506 86 @@ -75482,7 +75662,7 @@ store __or_78_506 88 brif 88 L509 L508 label L508 load 89 obj_type -strref 90 m17s667 +strref 90 m17s670 call 91 pith_cstring_starts_with bool 2 89 90 call 92 pith_cstring_release void 1 90 store __or_78_506 91 @@ -75493,7 +75673,7 @@ label L505 load 94 __and_73_504 brif 94 L502 L503 label L502 -strref 95 m17s671 +strref 95 m17s674 ret 95 label L503 label L501 @@ -75516,12 +75696,12 @@ load 105 __or_96_513 brif 105 L511 L512 label L511 load 106 obj_type -strref 107 m17s668 +strref 107 m17s671 call 108 pith_cstring_eq bool 2 106 107 call 109 pith_cstring_release void 1 107 brif 108 L516 L517 label L516 -strref 110 m17s668 +strref 110 m17s671 ret 110 label L517 label L515 @@ -75535,7 +75715,7 @@ store __or_111_521 114 brif 114 L522 L521 label L521 load 116 obj_type -strref 117 m17s667 +strref 117 m17s670 call 118 pith_cstring_starts_with bool 2 116 117 call 119 pith_cstring_release void 1 117 store __or_111_521 118 @@ -75565,14 +75745,14 @@ store __or_3_526 3 iconst 4 0 store __or_4_526 4 load 5 kind -strref 6 m17s519 +strref 6 m17s522 call 7 pith_cstring_eq bool 2 5 6 call 8 pith_cstring_release void 1 6 store __or_4_526 7 brif 7 L527 L526 label L526 load 9 kind -strref 10 m17s671 +strref 10 m17s674 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 store __or_4_526 11 @@ -75582,7 +75762,7 @@ store __or_3_526 13 brif 13 L529 L528 label L528 load 14 kind -strref 15 m17s824 +strref 15 m17s827 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 store __or_3_526 16 @@ -75590,7 +75770,7 @@ label L529 load 18 __or_3_526 brif 18 L524 L525 label L524 -strref 19 m17s671 +strref 19 m17s674 load 20 first call 21 pith_struct_release void 1 20 ret 19 @@ -75599,14 +75779,14 @@ label L523 iconst 22 0 store __or_22_533 22 load 23 kind -strref 24 m17s518 +strref 24 m17s521 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 store __or_22_533 25 brif 25 L534 L533 label L533 load 27 kind -strref 28 m17s672 +strref 28 m17s675 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 store __or_22_533 29 @@ -75614,7 +75794,7 @@ label L534 load 31 __or_22_533 brif 31 L531 L532 label L531 -strref 32 m17s672 +strref 32 m17s675 load 33 first call 34 pith_struct_release void 1 33 ret 32 @@ -75623,14 +75803,14 @@ label L530 iconst 35 0 store __or_35_538 35 load 36 kind -strref 37 m17s516 +strref 37 m17s519 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 store __or_35_538 38 brif 38 L539 L538 label L538 load 40 kind -strref 41 m17s673 +strref 41 m17s676 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 store __or_35_538 42 @@ -75638,7 +75818,7 @@ label L539 load 44 __or_35_538 brif 44 L536 L537 label L536 -strref 45 m17s673 +strref 45 m17s676 load 46 first call 47 pith_struct_release void 1 46 ret 45 @@ -75651,14 +75831,14 @@ store __or_49_543 49 iconst 50 0 store __or_50_543 50 load 51 kind -strref 52 m17s517 +strref 52 m17s520 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 store __or_50_543 53 brif 53 L544 L543 label L543 load 55 kind -strref 56 m17s675 +strref 56 m17s678 call 57 pith_cstring_eq bool 2 55 56 call 58 pith_cstring_release void 1 56 store __or_50_543 57 @@ -75668,7 +75848,7 @@ store __or_49_543 59 brif 59 L546 L545 label L545 load 60 kind -strref 61 m17s825 +strref 61 m17s828 call 62 pith_cstring_eq bool 2 60 61 call 63 pith_cstring_release void 1 61 store __or_49_543 62 @@ -75678,7 +75858,7 @@ store __or_48_543 64 brif 64 L548 L547 label L547 load 65 kind -strref 66 m17s511 +strref 66 m17s514 call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 66 store __or_48_543 67 @@ -75686,7 +75866,7 @@ label L548 load 69 __or_48_543 brif 69 L541 L542 label L541 -strref 70 m17s675 +strref 70 m17s678 load 71 first call 72 pith_struct_release void 1 71 ret 70 @@ -75717,7 +75897,7 @@ iconst 89 0 store __or_89_558 89 load 90 first field 91 90 0 string kind -strref 92 m17s517 +strref 92 m17s520 call 93 pith_cstring_eq bool 2 91 92 call 94 pith_cstring_release void 1 92 store __or_89_558 93 @@ -75725,7 +75905,7 @@ brif 93 L559 L558 label L558 load 95 first field 96 95 0 string kind -strref 97 m17s675 +strref 97 m17s678 call 98 pith_cstring_eq bool 2 96 97 call 99 pith_cstring_release void 1 97 store __or_89_558 98 @@ -75733,7 +75913,7 @@ label L559 load 100 __or_89_558 brif 100 L556 L557 label L556 -strref 101 m17s668 +strref 101 m17s671 load 102 first call 103 pith_struct_release void 1 102 ret 101 @@ -75787,7 +75967,7 @@ iconst 131 0 store __or_131_572 131 load 132 first field 133 132 0 string kind -strref 134 m17s519 +strref 134 m17s522 call 135 pith_cstring_eq bool 2 133 134 call 136 pith_cstring_release void 1 134 store __or_131_572 135 @@ -75795,7 +75975,7 @@ brif 135 L573 L572 label L572 load 137 first field 138 137 0 string kind -strref 139 m17s671 +strref 139 m17s674 call 140 pith_cstring_eq bool 2 138 139 call 141 pith_cstring_release void 1 139 store __or_131_572 140 @@ -75806,7 +75986,7 @@ brif 142 L575 L574 label L574 load 143 first field 144 143 0 string kind -strref 145 m17s824 +strref 145 m17s827 call 146 pith_cstring_eq bool 2 144 145 call 147 pith_cstring_release void 1 145 store __or_130_572 146 @@ -75814,7 +75994,7 @@ label L575 load 148 __or_130_572 brif 148 L570 L571 label L570 -strref 149 m17s669 +strref 149 m17s672 load 150 first call 151 pith_struct_release void 1 150 ret 149 @@ -75858,7 +76038,7 @@ iconst 2 0 store __or_2_582 2 load 3 node field 4 3 8 string value -strref 5 m17s442 +strref 5 m17s445 call 6 pith_cstring_eq bool 2 4 5 call 7 pith_cstring_release void 1 5 store __or_2_582 6 @@ -75866,7 +76046,7 @@ brif 6 L583 L582 label L582 load 8 node field 9 8 8 string value -strref 10 m17s823 +strref 10 m17s826 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 store __or_2_582 11 @@ -75877,7 +76057,7 @@ brif 13 L585 L584 label L584 load 14 node field 15 14 8 string value -strref 16 m17s822 +strref 16 m17s825 call 17 pith_cstring_eq bool 2 15 16 call 18 pith_cstring_release void 1 16 store __or_1_582 17 @@ -75885,11 +76065,11 @@ label L585 load 19 __or_1_582 brif 19 L580 L581 label L580 -strref 20 m17s673 +strref 20 m17s676 ret 20 label L581 label L579 -strref 21 m17s671 +strref 21 m17s674 ret 21 iconst 22 0 ret 22 @@ -78792,7 +78972,7 @@ ret 9 iconst 11 0 ret 11 endfunc -func ir_generics_ir_toml_generic_name_with_state 3 string +func ir_generics_ir_handle_generic_name_with_state 3 string param base_name param module_path param generic_decl_indices @@ -81314,111 +81494,109 @@ string m23s163 "variants" string m23s164 ", variants: " string m23s165 "variant_types" string m23s166 ", variant_types: " -string m23s167 "std_toml_require_bool" -string m23s168 "std_toml_require_int" -string m23s169 "std_toml_require_string" -string m23s170 "require_bool" -string m23s171 "require_int" -string m23s172 "require" -string m23s173 "std_json_scalar_has_bool" -string m23s174 "std_json_scalar_has_int" -string m23s175 "std_json_scalar_has_string" -string m23s176 "b" -string m23s177 "i" -string m23s178 "s" -string m23s179 "std_json_scan_required_bool_bytes" -string m23s180 "std_json_scan_required_int_bytes" -string m23s181 "std_json_scan_required_string_bytes" -string m23s182 "std_json_require_bool" -string m23s183 "std_json_require_int" -string m23s184 "std_json_require_string" -string m23s185 "object_require_bool" -string m23s186 "object_require_int" -string m23s187 "object_require_string" -string m23s188 "ident" -string m23s189 "field_access" -string m23s190 "dotted_path" -string m23s191 "handle" -string m23s192 "decode_path" -string m23s193 "std_json_decode_path" -string m23s194 "std.json" -string m23s195 "input" -string m23s196 "decode" -string m23s197 "std_json_decode" -string m23s198 "decode_text" -string m23s199 "std_json_decode_text" -string m23s200 "decode_object" -string m23s201 "std_json_decode_object" -string m23s202 "std_toml_decode_text" -string m23s203 "std.toml" -string m23s204 "decode_text_path" -string m23s205 "std_toml_decode_text_path" -string m23s206 "std_toml_decode_path" -string m23s207 "std_toml_decode" -string m23s208 "cfg" -string m23s209 "std_config_decode" -string m23s210 "prefix" -string m23s211 "decode_prefix" -string m23s212 "std_config_decode_prefix" -string m23s213 "std/config" -string m23s214 "require_string" -string m23s215 "std_config_require_bool" -string m23s216 "std_config_require_int" -string m23s217 "std_config_require" -string m23s218 "config_mod" -string m23s219 "config" -string m23s220 "std.config" -string m23s221 "toml_mod" -string m23s222 "toml" -string m23s223 "json_mod" -string m23s224 "json" -string m23s225 "parse_int failed" -string m23s226 "file_open_read failed" -string m23s227 "file_open_write failed" -string m23s228 "file_open_append failed" -string m23s229 "byte_buffer_write failed" -string m23s230 "byte_buffer_write_string_utf8 failed" -string m23s231 "byte_buffer_write_byte failed" -string m23s232 "file_write failed" -string m23s233 "file_write_bytes failed" -string m23s234 "tcp_connect failed" -string m23s235 "tcp_listen failed" -string m23s236 "tcp_accept failed" -string m23s237 "tcp_write failed" -string m23s238 "tcp_write_bytes failed" -string m23s239 "process_spawn failed" -string m23s240 "process_spawn_argv failed" -string m23s241 "process_output_argv failed" -string m23s242 "process_write failed" -string m23s243 "process_write_bytes failed" -string m23s244 "crypto_x25519_keygen failed" -string m23s245 "write_file failed" -string m23s246 "append_file failed" -string m23s247 "write_file_bytes failed" -string m23s248 "append_file_bytes failed" -string m23s249 "read_file failed" -string m23s250 "exec_output failed" -string m23s251 "dns_resolve failed" -string m23s252 "bytes_to_string_utf8 failed" -string m23s253 "bytes_substring_utf8 failed" -string m23s254 "file_read failed" -string m23s255 "tcp_read failed" -string m23s256 "process_read failed" -string m23s257 "process_read_err failed" -string m23s258 "read_file_bytes failed" -string m23s259 "b64_decode failed" -string m23s260 "from_hex failed" -string m23s261 "file_read_bytes failed" -string m23s262 "tcp_read_bytes failed" -string m23s263 "process_read_bytes failed" -string m23s264 "process_read_err_bytes failed" -string m23s265 "crypto_x25519_public_key failed" -string m23s266 "crypto_x25519_shared_secret failed" -string m23s267 "crypto_aes_128_gcm_seal failed" -string m23s268 "crypto_aes_128_gcm_open failed" -string m23s269 "crypto_chacha20_poly1305_seal failed" -string m23s270 "crypto_chacha20_poly1305_open failed" -string m23s271 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m23s167 "require_bool" +string m23s168 "require_int" +string m23s169 "require_string" +string m23s170 "require" +string m23s171 "std_json_scalar_has_bool" +string m23s172 "std_json_scalar_has_int" +string m23s173 "std_json_scalar_has_string" +string m23s174 "b" +string m23s175 "i" +string m23s176 "s" +string m23s177 "std_json_scan_required_bool_bytes" +string m23s178 "std_json_scan_required_int_bytes" +string m23s179 "std_json_scan_required_string_bytes" +string m23s180 "std_json_require_bool" +string m23s181 "std_json_require_int" +string m23s182 "std_json_require_string" +string m23s183 "object_require_bool" +string m23s184 "object_require_int" +string m23s185 "object_require_string" +string m23s186 "ident" +string m23s187 "field_access" +string m23s188 "dotted_path" +string m23s189 "handle" +string m23s190 "decode_path" +string m23s191 "std_json_decode_path" +string m23s192 "std.json" +string m23s193 "input" +string m23s194 "decode" +string m23s195 "std_json_decode" +string m23s196 "decode_text" +string m23s197 "std_json_decode_text" +string m23s198 "decode_object" +string m23s199 "std_json_decode_object" +string m23s200 "decode_text_path" +string m23s201 "std_yaml_" +string m23s202 "std_toml_" +string m23s203 "cfg" +string m23s204 "std_config_decode" +string m23s205 "prefix" +string m23s206 "decode_prefix" +string m23s207 "std_config_decode_prefix" +string m23s208 "std/config" +string m23s209 "std_config_require_bool" +string m23s210 "std_config_require_int" +string m23s211 "std_config_require" +string m23s212 "config_mod" +string m23s213 "config" +string m23s214 "std.config" +string m23s215 "yaml_mod" +string m23s216 "yaml" +string m23s217 "toml_mod" +string m23s218 "toml" +string m23s219 "std.yaml" +string m23s220 "std.toml" +string m23s221 "json_mod" +string m23s222 "json" +string m23s223 "parse_int failed" +string m23s224 "file_open_read failed" +string m23s225 "file_open_write failed" +string m23s226 "file_open_append failed" +string m23s227 "byte_buffer_write failed" +string m23s228 "byte_buffer_write_string_utf8 failed" +string m23s229 "byte_buffer_write_byte failed" +string m23s230 "file_write failed" +string m23s231 "file_write_bytes failed" +string m23s232 "tcp_connect failed" +string m23s233 "tcp_listen failed" +string m23s234 "tcp_accept failed" +string m23s235 "tcp_write failed" +string m23s236 "tcp_write_bytes failed" +string m23s237 "process_spawn failed" +string m23s238 "process_spawn_argv failed" +string m23s239 "process_output_argv failed" +string m23s240 "process_write failed" +string m23s241 "process_write_bytes failed" +string m23s242 "crypto_x25519_keygen failed" +string m23s243 "write_file failed" +string m23s244 "append_file failed" +string m23s245 "write_file_bytes failed" +string m23s246 "append_file_bytes failed" +string m23s247 "read_file failed" +string m23s248 "exec_output failed" +string m23s249 "dns_resolve failed" +string m23s250 "bytes_to_string_utf8 failed" +string m23s251 "bytes_substring_utf8 failed" +string m23s252 "file_read failed" +string m23s253 "tcp_read failed" +string m23s254 "process_read failed" +string m23s255 "process_read_err failed" +string m23s256 "read_file_bytes failed" +string m23s257 "b64_decode failed" +string m23s258 "from_hex failed" +string m23s259 "file_read_bytes failed" +string m23s260 "tcp_read_bytes failed" +string m23s261 "process_read_bytes failed" +string m23s262 "process_read_err_bytes failed" +string m23s263 "crypto_x25519_public_key failed" +string m23s264 "crypto_x25519_shared_secret failed" +string m23s265 "crypto_aes_128_gcm_seal failed" +string m23s266 "crypto_aes_128_gcm_open failed" +string m23s267 "crypto_chacha20_poly1305_seal failed" +string m23s268 "crypto_chacha20_poly1305_open failed" +string m23s269 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -81593,7 +81771,7 @@ iconst 37 0 store __or_37_8 37 load 38 base_node field 39 38 0 string kind -strref 40 m23s189 +strref 40 m23s187 call 42 pith_cstring_eq bool 2 39 40 iconst 43 1 sub 41 43 42 @@ -81649,7 +81827,7 @@ call 77 pith_struct_release void 1 71 store recv 76 load 78 recv field 79 78 0 string kind -strref 80 m23s188 +strref 80 m23s186 call 82 pith_cstring_eq bool 2 79 80 iconst 83 1 sub 81 83 82 @@ -81717,7 +81895,7 @@ label L20 load 19 module_aliases load 20 recv_name call 21 map_get_strict string 2 19 20 -strref 22 m23s194 +strref 22 m23s192 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 brif 23 L23 L24 @@ -81734,14 +81912,14 @@ label L19 iconst 28 0 store __or_28_25 28 load 29 recv_name -strref 30 m23s224 +strref 30 m23s222 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 store __or_28_25 31 brif 31 L26 L25 label L25 load 33 recv_name -strref 34 m23s223 +strref 34 m23s221 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 store __or_28_25 35 @@ -81787,7 +81965,7 @@ label L31 load 19 module_aliases load 20 recv_name call 21 map_get_strict string 2 19 20 -strref 22 m23s220 +strref 22 m23s214 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 brif 23 L34 L35 @@ -81804,14 +81982,14 @@ label L30 iconst 28 0 store __or_28_36 28 load 29 recv_name -strref 30 m23s219 +strref 30 m23s213 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 store __or_28_36 31 brif 31 L37 L36 label L36 load 33 recv_name -strref 34 m23s218 +strref 34 m23s212 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 store __or_28_36 35 @@ -81825,7 +82003,29 @@ call 41 pith_cstring_release void 1 40 iconst 42 0 ret 42 endfunc -func ir_decode_calls_ir_is_toml_decode_callee_with_aliases 3 bool +func ir_decode_calls_ir_is_handle_pool_module 1 bool +param module_path +iconst 1 0 +store __or_1_38 1 +load 2 module_path +strref 3 m23s220 +call 4 pith_cstring_eq bool 2 2 3 +call 5 pith_cstring_release void 1 3 +store __or_1_38 4 +brif 4 L39 L38 +label L38 +load 6 module_path +strref 7 m23s219 +call 8 pith_cstring_eq bool 2 6 7 +call 9 pith_cstring_release void 1 7 +store __or_1_38 8 +label L39 +load 10 __or_1_38 +ret 10 +iconst 11 0 +ret 11 +endfunc +func ir_decode_calls_ir_is_handle_decode_callee_with_aliases 3 bool param index_idx param member_name param module_aliases @@ -81841,59 +82041,81 @@ load 9 recv_name call 10 string_len int 1 9 iconst 11 0 eq 12 10 11 -brif 12 L39 L40 -label L39 +brif 12 L41 L42 +label L41 iconst 13 0 load 14 recv_name call 15 pith_cstring_release void 1 14 ret 13 +label L42 label L40 -label L38 load 16 module_aliases load 17 recv_name call 18 contains_key bool 2 16 17 -brif 18 L42 L43 -label L42 +brif 18 L44 L45 +label L44 load 19 module_aliases load 20 recv_name call 21 map_get_strict string 2 19 20 -strref 22 m23s203 -call 23 pith_cstring_eq bool 2 21 22 -call 24 pith_cstring_release void 1 22 -brif 23 L45 L46 -label L45 -iconst 25 1 -load 26 recv_name -call 27 pith_cstring_release void 1 26 -ret 25 +call 22 ir_decode_calls_ir_is_handle_pool_module bool 1 21 +brif 22 L47 L48 +label L47 +iconst 23 1 +load 24 recv_name +call 25 pith_cstring_release void 1 24 +ret 23 +label L48 label L46 -label L44 -jmp L41 +jmp L43 +label L45 label L43 -label L41 +iconst 26 0 +store __or_26_49 26 +iconst 27 0 +store __or_27_49 27 iconst 28 0 -store __or_28_47 28 +store __or_28_49 28 load 29 recv_name -strref 30 m23s222 +strref 30 m23s218 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 -store __or_28_47 31 -brif 31 L48 L47 -label L47 +store __or_28_49 31 +brif 31 L50 L49 +label L49 load 33 recv_name -strref 34 m23s221 +strref 34 m23s217 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 -store __or_28_47 35 -label L48 -load 37 __or_28_47 +store __or_28_49 35 +label L50 +load 37 __or_28_49 +store __or_27_49 37 +brif 37 L52 L51 +label L51 load 38 recv_name -call 39 pith_cstring_release void 1 38 -ret 37 -load 40 recv_name -call 41 pith_cstring_release void 1 40 -iconst 42 0 -ret 42 +strref 39 m23s216 +call 40 pith_cstring_eq bool 2 38 39 +call 41 pith_cstring_release void 1 39 +store __or_27_49 40 +label L52 +load 42 __or_27_49 +store __or_26_49 42 +brif 42 L54 L53 +label L53 +load 43 recv_name +strref 44 m23s215 +call 45 pith_cstring_eq bool 2 43 44 +call 46 pith_cstring_release void 1 44 +store __or_26_49 45 +label L54 +load 47 __or_26_49 +load 48 recv_name +call 49 pith_cstring_release void 1 48 +ret 47 +load 50 recv_name +call 51 pith_cstring_release void 1 50 +iconst 52 0 +ret 52 endfunc func ir_decode_calls_ir_is_config_file_decode_callee_with_aliases 3 bool param index_idx @@ -81911,7 +82133,7 @@ call 8 ast_get_node struct:Node 1 7 call 9 pith_struct_release void 1 6 store index_node 8 iconst 10 0 -store __or_10_52 10 +store __or_10_58 10 load 11 index_node field 12 11 0 string kind strref 13 m23s64 @@ -81919,19 +82141,19 @@ call 15 pith_cstring_eq bool 2 12 13 iconst 16 1 sub 14 16 15 call 17 pith_cstring_release void 1 13 -store __or_10_52 14 -brif 14 L53 L52 -label L52 +store __or_10_58 14 +brif 14 L59 L58 +label L58 load 18 index_node field 19 18 16 list children call 20 pith_list_len int 1 19 iconst 21 2 lt 22 20 21 -store __or_10_52 22 -label L53 -load 23 __or_10_52 -brif 23 L50 L51 -label L50 +store __or_10_58 22 +label L59 +load 23 __or_10_58 +brif 23 L56 L57 +label L56 iconst 24 0 load 25 index_node call 26 pith_struct_release void 1 25 @@ -81940,8 +82162,8 @@ call 28 pith_struct_release void 1 27 load 29 recv call 30 pith_struct_release void 1 29 ret 24 -label L51 -label L49 +label L57 +label L55 load 31 base_node load 32 index_node field 33 32 16 list children @@ -81952,11 +82174,11 @@ call 37 pith_struct_release void 1 31 store base_node 36 load 38 base_node field 39 38 0 string kind -strref 40 m23s188 +strref 40 m23s186 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 -brif 41 L55 L56 -label L55 +brif 41 L61 L62 +label L61 load 43 base_node field 44 43 8 string value load 45 member_name @@ -81968,31 +82190,31 @@ call 50 pith_struct_release void 1 49 load 51 recv call 52 pith_struct_release void 1 51 ret 46 -label L56 -label L54 +label L62 +label L60 iconst 53 0 -store __or_53_60 53 +store __or_53_66 53 load 54 base_node field 55 54 0 string kind -strref 56 m23s189 +strref 56 m23s187 call 58 pith_cstring_eq bool 2 55 56 iconst 59 1 sub 57 59 58 call 60 pith_cstring_release void 1 56 -store __or_53_60 57 -brif 57 L61 L60 -label L60 +store __or_53_66 57 +brif 57 L67 L66 +label L66 load 61 base_node field 62 61 8 string value load 63 member_name call 65 pith_cstring_eq bool 2 62 63 iconst 66 1 sub 64 66 65 -store __or_53_60 64 -label L61 -load 67 __or_53_60 -brif 67 L58 L59 -label L58 +store __or_53_66 64 +label L67 +load 67 __or_53_66 +brif 67 L64 L65 +label L64 iconst 68 0 load 69 index_node call 70 pith_struct_release void 1 69 @@ -82001,15 +82223,15 @@ call 72 pith_struct_release void 1 71 load 73 recv call 74 pith_struct_release void 1 73 ret 68 -label L59 -label L57 +label L65 +label L63 load 75 base_node field 76 75 16 list children call 77 pith_list_len int 1 76 iconst 78 1 lt 79 77 78 -brif 79 L63 L64 -label L63 +brif 79 L69 L70 +label L69 iconst 80 0 load 81 index_node call 82 pith_struct_release void 1 81 @@ -82018,8 +82240,8 @@ call 84 pith_struct_release void 1 83 load 85 recv call 86 pith_struct_release void 1 85 ret 80 -label L64 -label L62 +label L70 +label L68 load 87 recv load 88 base_node field 89 88 16 list children @@ -82030,13 +82252,13 @@ call 93 pith_struct_release void 1 87 store recv 92 load 94 recv field 95 94 0 string kind -strref 96 m23s188 +strref 96 m23s186 call 98 pith_cstring_eq bool 2 95 96 iconst 99 1 sub 97 99 98 call 100 pith_cstring_release void 1 96 -brif 97 L66 L67 -label L66 +brif 97 L72 L73 +label L72 iconst 101 0 load 102 index_node call 103 pith_struct_release void 1 102 @@ -82045,23 +82267,23 @@ call 105 pith_struct_release void 1 104 load 106 recv call 107 pith_struct_release void 1 106 ret 101 -label L67 -label L65 +label L73 +label L71 load 108 module_aliases load 109 recv field 110 109 8 string value call 111 contains_key bool 2 108 110 -brif 111 L69 L70 -label L69 +brif 111 L75 L76 +label L75 load 112 module_aliases load 113 recv field 114 113 8 string value call 115 map_get_strict string 2 112 114 -strref 116 m23s220 +strref 116 m23s214 call 117 pith_cstring_eq bool 2 115 116 call 118 pith_cstring_release void 1 116 -brif 117 L72 L73 -label L72 +brif 117 L78 L79 +label L78 iconst 119 1 load 120 index_node call 121 pith_struct_release void 1 120 @@ -82070,29 +82292,29 @@ call 123 pith_struct_release void 1 122 load 124 recv call 125 pith_struct_release void 1 124 ret 119 -label L73 -label L71 -jmp L68 -label L70 -label L68 +label L79 +label L77 +jmp L74 +label L76 +label L74 iconst 126 0 -store __or_126_74 126 +store __or_126_80 126 load 127 recv field 128 127 8 string value -strref 129 m23s219 +strref 129 m23s213 call 130 pith_cstring_eq bool 2 128 129 call 131 pith_cstring_release void 1 129 -store __or_126_74 130 -brif 130 L75 L74 -label L74 +store __or_126_80 130 +brif 130 L81 L80 +label L80 load 132 recv field 133 132 8 string value -strref 134 m23s218 +strref 134 m23s212 call 135 pith_cstring_eq bool 2 133 134 call 136 pith_cstring_release void 1 134 -store __or_126_74 135 -label L75 -load 137 __or_126_74 +store __or_126_80 135 +label L81 +load 137 __or_126_80 load 138 index_node call 139 pith_struct_release void 1 138 load 140 base_node @@ -82126,38 +82348,38 @@ load 10 resolved strref 11 m23s31 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 -brif 12 L77 L78 -label L77 -strref 14 m23s217 +brif 12 L83 L84 +label L83 +strref 14 m23s211 load 15 resolved call 16 pith_cstring_release void 1 15 ret 14 -label L78 -label L76 +label L84 +label L82 load 17 resolved strref 18 m23s18 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 -brif 19 L80 L81 -label L80 -strref 21 m23s216 +brif 19 L86 L87 +label L86 +strref 21 m23s210 load 22 resolved call 23 pith_cstring_release void 1 22 ret 21 -label L81 -label L79 +label L87 +label L85 load 24 resolved strref 25 m23s19 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 -brif 26 L83 L84 -label L83 -strref 28 m23s215 +brif 26 L89 L90 +label L89 +strref 28 m23s209 load 29 resolved call 30 pith_cstring_release void 1 29 ret 28 -label L84 -label L82 +label L90 +label L88 strref 31 m23s17 load 32 resolved call 33 pith_cstring_release void 1 32 @@ -82167,7 +82389,7 @@ call 35 pith_cstring_release void 1 34 iconst 36 0 ret 36 endfunc -func ir_decode_calls_ir_toml_require_full_name_for_type_name_with_state 4 string +func ir_decode_calls_ir_handle_require_full_name_for_type_name_with_state 4 string param type_name param module_path param type_aliases @@ -82185,47 +82407,47 @@ load 11 resolved strref 12 m23s31 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 -brif 13 L86 L87 -label L86 +brif 13 L92 L93 +label L92 load 15 module_path -strref 16 m23s214 +strref 16 m23s169 call 17 ir_generics_ir_resolve_generic_module_call_name string 2 15 16 call 18 pith_cstring_release void 1 16 load 19 resolved call 20 pith_cstring_release void 1 19 ret 17 -label L87 -label L85 +label L93 +label L91 load 21 resolved strref 22 m23s18 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 -brif 23 L89 L90 -label L89 +brif 23 L95 L96 +label L95 load 25 module_path -strref 26 m23s171 +strref 26 m23s168 call 27 ir_generics_ir_resolve_generic_module_call_name string 2 25 26 call 28 pith_cstring_release void 1 26 load 29 resolved call 30 pith_cstring_release void 1 29 ret 27 -label L90 -label L88 +label L96 +label L94 load 31 resolved strref 32 m23s19 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 -brif 33 L92 L93 -label L92 +brif 33 L98 L99 +label L98 load 35 module_path -strref 36 m23s170 +strref 36 m23s167 call 37 ir_generics_ir_resolve_generic_module_call_name string 2 35 36 call 38 pith_cstring_release void 1 36 load 39 resolved call 40 pith_cstring_release void 1 39 ret 37 -label L93 -label L91 +label L99 +label L97 strref 41 m23s17 load 42 resolved call 43 pith_cstring_release void 1 42 @@ -82245,21 +82467,21 @@ store first_param 4 iconst 5 0 store second_param 5 iconst 6 0 -store __or_6_94 6 +store __or_6_100 6 load 7 module_path strref 8 m23s17 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -store __or_6_94 9 -brif 9 L95 L94 -label L94 +store __or_6_100 9 +brif 9 L101 L100 +label L100 load 11 module_path -strref 12 m23s213 +strref 12 m23s208 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 -store __or_6_94 13 -label L95 -load 15 __or_6_94 +store __or_6_100 13 +label L101 +load 15 __or_6_100 store local_std_config 15 load 16 first_param load 17 decl_idx @@ -82274,105 +82496,105 @@ call 24 ir_generics_ir_param_name_at string 2 22 23 call 25 pith_cstring_release void 1 21 store second_param 24 load 26 prefixed -brif 26 L97 L98 -label L97 +brif 26 L103 L104 +label L103 load 27 base_name -strref 28 m23s212 +strref 28 m23s207 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 -brif 29 L100 L101 -label L100 +brif 29 L106 L107 +label L106 iconst 31 1 load 32 first_param call 33 pith_cstring_release void 1 32 load 34 second_param call 35 pith_cstring_release void 1 34 ret 31 -label L101 -label L99 +label L107 +label L105 iconst 36 0 -store __and_36_102 36 +store __and_36_108 36 iconst 37 0 -store __and_37_102 37 +store __and_37_108 37 iconst 38 0 -store __and_38_102 38 +store __and_38_108 38 load 39 base_name -strref 40 m23s211 +strref 40 m23s206 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 -store __and_38_102 41 -brif 41 L102 L103 -label L102 +store __and_38_108 41 +brif 41 L108 L109 +label L108 load 43 local_std_config -store __and_38_102 43 -label L103 -load 44 __and_38_102 -store __and_37_102 44 -brif 44 L104 L105 -label L104 +store __and_38_108 43 +label L109 +load 44 __and_38_108 +store __and_37_108 44 +brif 44 L110 L111 +label L110 load 45 first_param -strref 46 m23s208 +strref 46 m23s203 call 47 pith_cstring_eq bool 2 45 46 call 48 pith_cstring_release void 1 46 -store __and_37_102 47 -label L105 -load 49 __and_37_102 -store __and_36_102 49 -brif 49 L106 L107 -label L106 +store __and_37_108 47 +label L111 +load 49 __and_37_108 +store __and_36_108 49 +brif 49 L112 L113 +label L112 load 50 second_param -strref 51 m23s210 +strref 51 m23s205 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 -store __and_36_102 52 -label L107 -load 54 __and_36_102 +store __and_36_108 52 +label L113 +load 54 __and_36_108 load 55 first_param call 56 pith_cstring_release void 1 55 load 57 second_param call 58 pith_cstring_release void 1 57 ret 54 -label L98 -label L96 +label L104 +label L102 load 59 base_name -strref 60 m23s209 +strref 60 m23s204 call 61 pith_cstring_eq bool 2 59 60 call 62 pith_cstring_release void 1 60 -brif 61 L109 L110 -label L109 +brif 61 L115 L116 +label L115 iconst 63 1 load 64 first_param call 65 pith_cstring_release void 1 64 load 66 second_param call 67 pith_cstring_release void 1 66 ret 63 -label L110 -label L108 +label L116 +label L114 iconst 68 0 -store __and_68_111 68 +store __and_68_117 68 iconst 69 0 -store __and_69_111 69 +store __and_69_117 69 load 70 base_name -strref 71 m23s196 +strref 71 m23s194 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 -store __and_69_111 72 -brif 72 L111 L112 -label L111 +store __and_69_117 72 +brif 72 L117 L118 +label L117 load 74 local_std_config -store __and_69_111 74 -label L112 -load 75 __and_69_111 -store __and_68_111 75 -brif 75 L113 L114 -label L113 +store __and_69_117 74 +label L118 +load 75 __and_69_117 +store __and_68_117 75 +brif 75 L119 L120 +label L119 load 76 first_param -strref 77 m23s208 +strref 77 m23s203 call 78 pith_cstring_eq bool 2 76 77 call 79 pith_cstring_release void 1 77 -store __and_68_111 78 -label L114 -load 80 __and_68_111 +store __and_68_117 78 +label L120 +load 80 __and_68_117 load 81 first_param call 82 pith_cstring_release void 1 81 load 83 second_param @@ -82385,181 +82607,114 @@ call 88 pith_cstring_release void 1 87 iconst 89 0 ret 89 endfunc -func ir_decode_calls_ir_is_toml_decode_specialization 3 bool -param base_name +func ir_decode_calls_in_handle_pool_module 1 bool param module_path -param decl_idx -iconst 3 0 -store first_param 3 -iconst 4 0 -store __or_4_115 4 -load 5 module_path -strref 6 m23s17 -call 7 pith_cstring_eq bool 2 5 6 -call 8 pith_cstring_release void 1 6 -store __or_4_115 7 -brif 7 L116 L115 -label L115 -load 9 module_path -strref 10 m23s203 -call 11 pith_cstring_eq bool 2 9 10 -call 12 pith_cstring_release void 1 10 -store __or_4_115 11 -label L116 -load 13 __or_4_115 -store local_std_toml 13 -load 14 first_param -load 15 decl_idx -iconst 16 0 -call 17 ir_generics_ir_param_name_at string 2 15 16 -call 18 pith_cstring_release void 1 14 -store first_param 17 -load 19 base_name -strref 20 m23s207 -call 21 pith_cstring_eq bool 2 19 20 -call 22 pith_cstring_release void 1 20 -brif 21 L118 L119 -label L118 -iconst 23 1 -load 24 first_param -call 25 pith_cstring_release void 1 24 -ret 23 -label L119 -label L117 -iconst 26 0 -store __and_26_120 26 -iconst 27 0 -store __and_27_120 27 -load 28 base_name -strref 29 m23s196 -call 30 pith_cstring_eq bool 2 28 29 -call 31 pith_cstring_release void 1 29 -store __and_27_120 30 -brif 30 L120 L121 -label L120 -load 32 local_std_toml -store __and_27_120 32 +iconst 1 0 +store __or_1_121 1 +load 2 module_path +strref 3 m23s17 +call 4 pith_cstring_eq bool 2 2 3 +call 5 pith_cstring_release void 1 3 +store __or_1_121 4 +brif 4 L122 L121 label L121 -load 33 __and_27_120 -store __and_26_120 33 -brif 33 L122 L123 +load 6 module_path +call 7 ir_decode_calls_ir_is_handle_pool_module bool 1 6 +store __or_1_121 7 label L122 -load 34 first_param -strref 35 m23s191 -call 36 pith_cstring_eq bool 2 34 35 -call 37 pith_cstring_release void 1 35 -store __and_26_120 36 +load 8 __or_1_121 +ret 8 +iconst 9 0 +ret 9 +endfunc +func ir_decode_calls_is_handle_pool_specialization_name 2 bool +param base_name +param suffix +iconst 2 0 +store __or_2_123 2 +load 3 base_name +strref 4 m23s202 +load 5 suffix +concat 6 4 5 +call 7 pith_cstring_release void 1 4 +call 8 pith_cstring_eq bool 2 3 6 +call 9 pith_cstring_release void 1 6 +store __or_2_123 8 +brif 8 L124 L123 label L123 -load 38 __and_26_120 -load 39 first_param -call 40 pith_cstring_release void 1 39 -ret 38 -load 41 first_param -call 42 pith_cstring_release void 1 41 -iconst 43 0 -ret 43 +load 10 base_name +strref 11 m23s201 +load 12 suffix +concat 13 11 12 +call 14 pith_cstring_release void 1 11 +call 15 pith_cstring_eq bool 2 10 13 +call 16 pith_cstring_release void 1 13 +store __or_2_123 15 +label L124 +load 17 __or_2_123 +ret 17 +iconst 18 0 +ret 18 endfunc -func ir_decode_calls_ir_is_toml_decode_path_specialization 3 bool +func ir_decode_calls_ir_is_handle_decode_specialization 3 bool param base_name param module_path param decl_idx iconst 3 0 store first_param 3 -iconst 4 0 -store second_param 4 -iconst 5 0 -store __or_5_124 5 -load 6 module_path -strref 7 m23s17 -call 8 pith_cstring_eq bool 2 6 7 -call 9 pith_cstring_release void 1 7 -store __or_5_124 8 -brif 8 L125 L124 -label L124 -load 10 module_path -strref 11 m23s203 -call 12 pith_cstring_eq bool 2 10 11 -call 13 pith_cstring_release void 1 11 -store __or_5_124 12 +load 4 first_param +load 5 decl_idx +iconst 6 0 +call 7 ir_generics_ir_param_name_at string 2 5 6 +call 8 pith_cstring_release void 1 4 +store first_param 7 +load 9 base_name +strref 10 m23s194 +call 11 ir_decode_calls_is_handle_pool_specialization_name bool 2 9 10 +call 12 pith_cstring_release void 1 10 +brif 11 L126 L127 +label L126 +iconst 13 1 +load 14 first_param +call 15 pith_cstring_release void 1 14 +ret 13 +label L127 label L125 -load 14 __or_5_124 -store local_std_toml 14 -load 15 first_param -load 16 decl_idx +iconst 16 0 +store __and_16_128 16 iconst 17 0 -call 18 ir_generics_ir_param_name_at string 2 16 17 -call 19 pith_cstring_release void 1 15 -store first_param 18 -load 20 second_param -load 21 decl_idx -iconst 22 1 -call 23 ir_generics_ir_param_name_at string 2 21 22 -call 24 pith_cstring_release void 1 20 -store second_param 23 -load 25 base_name -strref 26 m23s206 +store __and_17_128 17 +load 18 base_name +strref 19 m23s194 +call 20 pith_cstring_eq bool 2 18 19 +call 21 pith_cstring_release void 1 19 +store __and_17_128 20 +brif 20 L128 L129 +label L128 +load 22 module_path +call 23 ir_decode_calls_in_handle_pool_module bool 1 22 +store __and_17_128 23 +label L129 +load 24 __and_17_128 +store __and_16_128 24 +brif 24 L130 L131 +label L130 +load 25 first_param +strref 26 m23s189 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 -brif 27 L127 L128 -label L127 -iconst 29 1 +store __and_16_128 27 +label L131 +load 29 __and_16_128 load 30 first_param call 31 pith_cstring_release void 1 30 -load 32 second_param -call 33 pith_cstring_release void 1 32 ret 29 -label L128 -label L126 +load 32 first_param +call 33 pith_cstring_release void 1 32 iconst 34 0 -store __and_34_129 34 -iconst 35 0 -store __and_35_129 35 -iconst 36 0 -store __and_36_129 36 -load 37 base_name -strref 38 m23s192 -call 39 pith_cstring_eq bool 2 37 38 -call 40 pith_cstring_release void 1 38 -store __and_36_129 39 -brif 39 L129 L130 -label L129 -load 41 local_std_toml -store __and_36_129 41 -label L130 -load 42 __and_36_129 -store __and_35_129 42 -brif 42 L131 L132 -label L131 -load 43 first_param -strref 44 m23s191 -call 45 pith_cstring_eq bool 2 43 44 -call 46 pith_cstring_release void 1 44 -store __and_35_129 45 -label L132 -load 47 __and_35_129 -store __and_34_129 47 -brif 47 L133 L134 -label L133 -load 48 second_param -strref 49 m23s190 -call 50 pith_cstring_eq bool 2 48 49 -call 51 pith_cstring_release void 1 49 -store __and_34_129 50 -label L134 -load 52 __and_34_129 -load 53 first_param -call 54 pith_cstring_release void 1 53 -load 55 second_param -call 56 pith_cstring_release void 1 55 -ret 52 -load 57 first_param -call 58 pith_cstring_release void 1 57 -load 59 second_param -call 60 pith_cstring_release void 1 59 -iconst 61 0 -ret 61 +ret 34 endfunc -func ir_decode_calls_ir_is_toml_decode_text_path_specialization 3 bool +func ir_decode_calls_ir_is_handle_decode_path_specialization 3 bool param base_name param module_path param decl_idx @@ -82567,171 +82722,223 @@ iconst 3 0 store first_param 3 iconst 4 0 store second_param 4 -iconst 5 0 -store __or_5_135 5 -load 6 module_path -strref 7 m23s17 -call 8 pith_cstring_eq bool 2 6 7 -call 9 pith_cstring_release void 1 7 -store __or_5_135 8 -brif 8 L136 L135 +load 5 first_param +load 6 decl_idx +iconst 7 0 +call 8 ir_generics_ir_param_name_at string 2 6 7 +call 9 pith_cstring_release void 1 5 +store first_param 8 +load 10 second_param +load 11 decl_idx +iconst 12 1 +call 13 ir_generics_ir_param_name_at string 2 11 12 +call 14 pith_cstring_release void 1 10 +store second_param 13 +load 15 base_name +strref 16 m23s190 +call 17 ir_decode_calls_is_handle_pool_specialization_name bool 2 15 16 +call 18 pith_cstring_release void 1 16 +brif 17 L133 L134 +label L133 +iconst 19 1 +load 20 first_param +call 21 pith_cstring_release void 1 20 +load 22 second_param +call 23 pith_cstring_release void 1 22 +ret 19 +label L134 +label L132 +iconst 24 0 +store __and_24_135 24 +iconst 25 0 +store __and_25_135 25 +iconst 26 0 +store __and_26_135 26 +load 27 base_name +strref 28 m23s190 +call 29 pith_cstring_eq bool 2 27 28 +call 30 pith_cstring_release void 1 28 +store __and_26_135 29 +brif 29 L135 L136 label L135 -load 10 module_path -strref 11 m23s203 -call 12 pith_cstring_eq bool 2 10 11 -call 13 pith_cstring_release void 1 11 -store __or_5_135 12 +load 31 module_path +call 32 ir_decode_calls_in_handle_pool_module bool 1 31 +store __and_26_135 32 label L136 -load 14 __or_5_135 -store local_std_toml 14 -load 15 first_param -load 16 decl_idx -iconst 17 0 -call 18 ir_generics_ir_param_name_at string 2 16 17 -call 19 pith_cstring_release void 1 15 -store first_param 18 -load 20 second_param -load 21 decl_idx -iconst 22 1 -call 23 ir_generics_ir_param_name_at string 2 21 22 -call 24 pith_cstring_release void 1 20 -store second_param 23 -load 25 base_name -strref 26 m23s205 -call 27 pith_cstring_eq bool 2 25 26 -call 28 pith_cstring_release void 1 26 -brif 27 L138 L139 +load 33 __and_26_135 +store __and_25_135 33 +brif 33 L137 L138 +label L137 +load 34 first_param +strref 35 m23s189 +call 36 pith_cstring_eq bool 2 34 35 +call 37 pith_cstring_release void 1 35 +store __and_25_135 36 label L138 -iconst 29 1 -load 30 first_param -call 31 pith_cstring_release void 1 30 -load 32 second_param -call 33 pith_cstring_release void 1 32 -ret 29 +load 38 __and_25_135 +store __and_24_135 38 +brif 38 L139 L140 label L139 -label L137 -iconst 34 0 -store __and_34_140 34 -iconst 35 0 -store __and_35_140 35 -iconst 36 0 -store __and_36_140 36 -load 37 base_name -strref 38 m23s204 -call 39 pith_cstring_eq bool 2 37 38 -call 40 pith_cstring_release void 1 38 -store __and_36_140 39 -brif 39 L140 L141 +load 39 second_param +strref 40 m23s188 +call 41 pith_cstring_eq bool 2 39 40 +call 42 pith_cstring_release void 1 40 +store __and_24_135 41 label L140 -load 41 local_std_toml -store __and_36_140 41 -label L141 -load 42 __and_36_140 -store __and_35_140 42 -brif 42 L142 L143 +load 43 __and_24_135 +load 44 first_param +call 45 pith_cstring_release void 1 44 +load 46 second_param +call 47 pith_cstring_release void 1 46 +ret 43 +load 48 first_param +call 49 pith_cstring_release void 1 48 +load 50 second_param +call 51 pith_cstring_release void 1 50 +iconst 52 0 +ret 52 +endfunc +func ir_decode_calls_ir_is_handle_decode_text_path_specialization 3 bool +param base_name +param module_path +param decl_idx +iconst 3 0 +store first_param 3 +iconst 4 0 +store second_param 4 +load 5 first_param +load 6 decl_idx +iconst 7 0 +call 8 ir_generics_ir_param_name_at string 2 6 7 +call 9 pith_cstring_release void 1 5 +store first_param 8 +load 10 second_param +load 11 decl_idx +iconst 12 1 +call 13 ir_generics_ir_param_name_at string 2 11 12 +call 14 pith_cstring_release void 1 10 +store second_param 13 +load 15 base_name +strref 16 m23s200 +call 17 ir_decode_calls_is_handle_pool_specialization_name bool 2 15 16 +call 18 pith_cstring_release void 1 16 +brif 17 L142 L143 label L142 -load 43 first_param -strref 44 m23s195 -call 45 pith_cstring_eq bool 2 43 44 -call 46 pith_cstring_release void 1 44 -store __and_35_140 45 +iconst 19 1 +load 20 first_param +call 21 pith_cstring_release void 1 20 +load 22 second_param +call 23 pith_cstring_release void 1 22 +ret 19 label L143 -load 47 __and_35_140 -store __and_34_140 47 -brif 47 L144 L145 +label L141 +iconst 24 0 +store __and_24_144 24 +iconst 25 0 +store __and_25_144 25 +iconst 26 0 +store __and_26_144 26 +load 27 base_name +strref 28 m23s200 +call 29 pith_cstring_eq bool 2 27 28 +call 30 pith_cstring_release void 1 28 +store __and_26_144 29 +brif 29 L144 L145 label L144 -load 48 second_param -strref 49 m23s190 -call 50 pith_cstring_eq bool 2 48 49 -call 51 pith_cstring_release void 1 49 -store __and_34_140 50 +load 31 module_path +call 32 ir_decode_calls_in_handle_pool_module bool 1 31 +store __and_26_144 32 label L145 -load 52 __and_34_140 -load 53 first_param -call 54 pith_cstring_release void 1 53 -load 55 second_param -call 56 pith_cstring_release void 1 55 +load 33 __and_26_144 +store __and_25_144 33 +brif 33 L146 L147 +label L146 +load 34 first_param +strref 35 m23s193 +call 36 pith_cstring_eq bool 2 34 35 +call 37 pith_cstring_release void 1 35 +store __and_25_144 36 +label L147 +load 38 __and_25_144 +store __and_24_144 38 +brif 38 L148 L149 +label L148 +load 39 second_param +strref 40 m23s188 +call 41 pith_cstring_eq bool 2 39 40 +call 42 pith_cstring_release void 1 40 +store __and_24_144 41 +label L149 +load 43 __and_24_144 +load 44 first_param +call 45 pith_cstring_release void 1 44 +load 46 second_param +call 47 pith_cstring_release void 1 46 +ret 43 +load 48 first_param +call 49 pith_cstring_release void 1 48 +load 50 second_param +call 51 pith_cstring_release void 1 50 +iconst 52 0 ret 52 -load 57 first_param -call 58 pith_cstring_release void 1 57 -load 59 second_param -call 60 pith_cstring_release void 1 59 -iconst 61 0 -ret 61 endfunc -func ir_decode_calls_ir_is_toml_decode_text_specialization 3 bool +func ir_decode_calls_ir_is_handle_decode_text_specialization 3 bool param base_name param module_path param decl_idx iconst 3 0 store first_param 3 -iconst 4 0 -store __or_4_146 4 -load 5 module_path -strref 6 m23s17 -call 7 pith_cstring_eq bool 2 5 6 -call 8 pith_cstring_release void 1 6 -store __or_4_146 7 -brif 7 L147 L146 -label L146 -load 9 module_path -strref 10 m23s203 -call 11 pith_cstring_eq bool 2 9 10 +load 4 first_param +load 5 decl_idx +iconst 6 0 +call 7 ir_generics_ir_param_name_at string 2 5 6 +call 8 pith_cstring_release void 1 4 +store first_param 7 +load 9 base_name +strref 10 m23s196 +call 11 ir_decode_calls_is_handle_pool_specialization_name bool 2 9 10 call 12 pith_cstring_release void 1 10 -store __or_4_146 11 -label L147 -load 13 __or_4_146 -store local_std_toml 13 -load 14 first_param -load 15 decl_idx -iconst 16 0 -call 17 ir_generics_ir_param_name_at string 2 15 16 -call 18 pith_cstring_release void 1 14 -store first_param 17 -load 19 base_name -strref 20 m23s202 -call 21 pith_cstring_eq bool 2 19 20 -call 22 pith_cstring_release void 1 20 -brif 21 L149 L150 -label L149 -iconst 23 1 -load 24 first_param -call 25 pith_cstring_release void 1 24 -ret 23 -label L150 -label L148 -iconst 26 0 -store __and_26_151 26 -iconst 27 0 -store __and_27_151 27 -load 28 base_name -strref 29 m23s198 -call 30 pith_cstring_eq bool 2 28 29 -call 31 pith_cstring_release void 1 29 -store __and_27_151 30 -brif 30 L151 L152 +brif 11 L151 L152 label L151 -load 32 local_std_toml -store __and_27_151 32 +iconst 13 1 +load 14 first_param +call 15 pith_cstring_release void 1 14 +ret 13 label L152 -load 33 __and_27_151 -store __and_26_151 33 -brif 33 L153 L154 +label L150 +iconst 16 0 +store __and_16_153 16 +iconst 17 0 +store __and_17_153 17 +load 18 base_name +strref 19 m23s196 +call 20 pith_cstring_eq bool 2 18 19 +call 21 pith_cstring_release void 1 19 +store __and_17_153 20 +brif 20 L153 L154 label L153 -load 34 first_param -strref 35 m23s195 -call 36 pith_cstring_eq bool 2 34 35 -call 37 pith_cstring_release void 1 35 -store __and_26_151 36 +load 22 module_path +call 23 ir_decode_calls_in_handle_pool_module bool 1 22 +store __and_17_153 23 label L154 -load 38 __and_26_151 -load 39 first_param -call 40 pith_cstring_release void 1 39 -ret 38 -load 41 first_param -call 42 pith_cstring_release void 1 41 -iconst 43 0 -ret 43 +load 24 __and_17_153 +store __and_16_153 24 +brif 24 L155 L156 +label L155 +load 25 first_param +strref 26 m23s193 +call 27 pith_cstring_eq bool 2 25 26 +call 28 pith_cstring_release void 1 26 +store __and_16_153 27 +label L156 +load 29 __and_16_153 +load 30 first_param +call 31 pith_cstring_release void 1 30 +ret 29 +load 32 first_param +call 33 pith_cstring_release void 1 32 +iconst 34 0 +ret 34 endfunc func ir_decode_calls_ir_is_json_decode_object_specialization 3 bool param base_name @@ -82740,21 +82947,21 @@ param decl_idx iconst 3 0 store first_param 3 iconst 4 0 -store __or_4_155 4 +store __or_4_157 4 load 5 module_path strref 6 m23s17 call 7 pith_cstring_eq bool 2 5 6 call 8 pith_cstring_release void 1 6 -store __or_4_155 7 -brif 7 L156 L155 -label L155 +store __or_4_157 7 +brif 7 L158 L157 +label L157 load 9 module_path -strref 10 m23s194 +strref 10 m23s192 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 -store __or_4_155 11 -label L156 -load 13 __or_4_155 +store __or_4_157 11 +label L158 +load 13 __or_4_157 store local_std_json 13 load 14 first_param load 15 decl_idx @@ -82763,42 +82970,42 @@ call 17 ir_generics_ir_param_name_at string 2 15 16 call 18 pith_cstring_release void 1 14 store first_param 17 load 19 base_name -strref 20 m23s201 +strref 20 m23s199 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 -brif 21 L158 L159 -label L158 +brif 21 L160 L161 +label L160 iconst 23 1 load 24 first_param call 25 pith_cstring_release void 1 24 ret 23 +label L161 label L159 -label L157 iconst 26 0 -store __and_26_160 26 +store __and_26_162 26 iconst 27 0 -store __and_27_160 27 +store __and_27_162 27 load 28 base_name -strref 29 m23s200 +strref 29 m23s198 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -store __and_27_160 30 -brif 30 L160 L161 -label L160 -load 32 local_std_json -store __and_27_160 32 -label L161 -load 33 __and_27_160 -store __and_26_160 33 -brif 33 L162 L163 +store __and_27_162 30 +brif 30 L162 L163 label L162 +load 32 local_std_json +store __and_27_162 32 +label L163 +load 33 __and_27_162 +store __and_26_162 33 +brif 33 L164 L165 +label L164 load 34 first_param -strref 35 m23s191 +strref 35 m23s189 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 -store __and_26_160 36 -label L163 -load 38 __and_26_160 +store __and_26_162 36 +label L165 +load 38 __and_26_162 load 39 first_param call 40 pith_cstring_release void 1 39 ret 38 @@ -82815,21 +83022,21 @@ param text_input iconst 4 0 store first_param 4 iconst 5 0 -store __or_5_164 5 +store __or_5_166 5 load 6 module_path strref 7 m23s17 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -store __or_5_164 8 -brif 8 L165 L164 -label L164 +store __or_5_166 8 +brif 8 L167 L166 +label L166 load 10 module_path -strref 11 m23s194 +strref 11 m23s192 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 -store __or_5_164 12 -label L165 -load 14 __or_5_164 +store __or_5_166 12 +label L167 +load 14 __or_5_166 store local_std_json 14 load 15 first_param load 16 decl_idx @@ -82838,87 +83045,87 @@ call 18 ir_generics_ir_param_name_at string 2 16 17 call 19 pith_cstring_release void 1 15 store first_param 18 load 20 text_input -brif 20 L167 L168 -label L167 +brif 20 L169 L170 +label L169 load 21 base_name -strref 22 m23s199 +strref 22 m23s197 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 -brif 23 L170 L171 -label L170 +brif 23 L172 L173 +label L172 iconst 25 1 load 26 first_param call 27 pith_cstring_release void 1 26 ret 25 +label L173 label L171 -label L169 iconst 28 0 -store __and_28_172 28 +store __and_28_174 28 iconst 29 0 -store __and_29_172 29 +store __and_29_174 29 load 30 base_name -strref 31 m23s198 +strref 31 m23s196 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 -store __and_29_172 32 -brif 32 L172 L173 -label L172 -load 34 local_std_json -store __and_29_172 34 -label L173 -load 35 __and_29_172 -store __and_28_172 35 -brif 35 L174 L175 +store __and_29_174 32 +brif 32 L174 L175 label L174 +load 34 local_std_json +store __and_29_174 34 +label L175 +load 35 __and_29_174 +store __and_28_174 35 +brif 35 L176 L177 +label L176 load 36 first_param -strref 37 m23s195 +strref 37 m23s193 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 -store __and_28_172 38 -label L175 -load 40 __and_28_172 +store __and_28_174 38 +label L177 +load 40 __and_28_174 load 41 first_param call 42 pith_cstring_release void 1 41 ret 40 +label L170 label L168 -label L166 load 43 base_name -strref 44 m23s197 +strref 44 m23s195 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 -brif 45 L177 L178 -label L177 +brif 45 L179 L180 +label L179 iconst 47 1 load 48 first_param call 49 pith_cstring_release void 1 48 ret 47 +label L180 label L178 -label L176 iconst 50 0 -store __and_50_179 50 +store __and_50_181 50 iconst 51 0 -store __and_51_179 51 +store __and_51_181 51 load 52 base_name -strref 53 m23s196 +strref 53 m23s194 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 -store __and_51_179 54 -brif 54 L179 L180 -label L179 -load 56 local_std_json -store __and_51_179 56 -label L180 -load 57 __and_51_179 -store __and_50_179 57 -brif 57 L181 L182 +store __and_51_181 54 +brif 54 L181 L182 label L181 +load 56 local_std_json +store __and_51_181 56 +label L182 +load 57 __and_51_181 +store __and_50_181 57 +brif 57 L183 L184 +label L183 load 58 first_param -strref 59 m23s195 +strref 59 m23s193 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 -store __and_50_179 60 -label L182 -load 62 __and_50_179 +store __and_50_181 60 +label L184 +load 62 __and_50_181 load 63 first_param call 64 pith_cstring_release void 1 63 ret 62 @@ -82936,21 +83143,21 @@ store first_param 3 iconst 4 0 store second_param 4 iconst 5 0 -store __or_5_183 5 +store __or_5_185 5 load 6 module_path strref 7 m23s17 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -store __or_5_183 8 -brif 8 L184 L183 -label L183 +store __or_5_185 8 +brif 8 L186 L185 +label L185 load 10 module_path -strref 11 m23s194 +strref 11 m23s192 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 -store __or_5_183 12 -label L184 -load 14 __or_5_183 +store __or_5_185 12 +label L186 +load 14 __or_5_185 store local_std_json 14 load 15 first_param load 16 decl_idx @@ -82965,56 +83172,56 @@ call 23 ir_generics_ir_param_name_at string 2 21 22 call 24 pith_cstring_release void 1 20 store second_param 23 load 25 base_name -strref 26 m23s193 +strref 26 m23s191 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 -brif 27 L186 L187 -label L186 +brif 27 L188 L189 +label L188 iconst 29 1 load 30 first_param call 31 pith_cstring_release void 1 30 load 32 second_param call 33 pith_cstring_release void 1 32 ret 29 +label L189 label L187 -label L185 iconst 34 0 -store __and_34_188 34 +store __and_34_190 34 iconst 35 0 -store __and_35_188 35 +store __and_35_190 35 iconst 36 0 -store __and_36_188 36 +store __and_36_190 36 load 37 base_name -strref 38 m23s192 +strref 38 m23s190 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 -store __and_36_188 39 -brif 39 L188 L189 -label L188 -load 41 local_std_json -store __and_36_188 41 -label L189 -load 42 __and_36_188 -store __and_35_188 42 -brif 42 L190 L191 +store __and_36_190 39 +brif 39 L190 L191 label L190 +load 41 local_std_json +store __and_36_190 41 +label L191 +load 42 __and_36_190 +store __and_35_190 42 +brif 42 L192 L193 +label L192 load 43 first_param -strref 44 m23s191 +strref 44 m23s189 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 -store __and_35_188 45 -label L191 -load 47 __and_35_188 -store __and_34_188 47 -brif 47 L192 L193 -label L192 +store __and_35_190 45 +label L193 +load 47 __and_35_190 +store __and_34_190 47 +brif 47 L194 L195 +label L194 load 48 second_param -strref 49 m23s190 +strref 49 m23s188 call 50 pith_cstring_eq bool 2 48 49 call 51 pith_cstring_release void 1 49 -store __and_34_188 50 -label L193 -load 52 __and_34_188 +store __and_34_190 50 +label L195 +load 52 __and_34_190 load 53 first_param call 54 pith_cstring_release void 1 53 load 55 second_param @@ -83042,16 +83249,16 @@ load 8 alias call 9 contains_key bool 2 7 8 iconst 11 1 sub 10 11 9 -brif 10 L195 L196 -label L195 +brif 10 L197 L198 +label L197 strref 12 m23s17 load 13 module_path call 14 pith_cstring_release void 1 13 load 15 key call 16 pith_cstring_release void 1 15 ret 12 +label L198 label L196 -label L194 load 17 module_path load 18 module_aliases load 19 alias @@ -83072,8 +83279,8 @@ store key 29 load 32 import_declared_functions load 33 key call 34 contains_key bool 2 32 33 -brif 34 L198 L199 -label L198 +brif 34 L200 L201 +label L200 load 35 module_path load 36 member call 37 ir_names_ir_import_target_name string 2 35 36 @@ -83082,13 +83289,13 @@ call 39 pith_cstring_release void 1 38 load 40 key call 41 pith_cstring_release void 1 40 ret 37 +label L201 label L199 -label L197 load 42 import_declared_globals load 43 key call 44 contains_key bool 2 42 43 -brif 44 L201 L202 -label L201 +brif 44 L203 L204 +label L203 load 45 module_path load 46 member call 47 ir_names_ir_import_target_name string 2 45 46 @@ -83097,8 +83304,8 @@ call 49 pith_cstring_release void 1 48 load 50 key call 51 pith_cstring_release void 1 50 ret 47 +label L204 label L202 -label L200 load 52 member call 53 pith_cstring_retain void 1 52 load 54 module_path @@ -83133,25 +83340,25 @@ call 11 ast_get_node struct:Node 1 10 call 12 pith_struct_release void 1 9 store index_node 11 iconst 13 0 -store __and_13_206 13 +store __and_13_208 13 load 14 index_node field 15 14 0 string kind strref 16 m23s64 call 17 pith_cstring_eq bool 2 15 16 call 18 pith_cstring_release void 1 16 -store __and_13_206 17 -brif 17 L206 L207 -label L206 +store __and_13_208 17 +brif 17 L208 L209 +label L208 load 19 index_node field 20 19 16 list children call 21 pith_list_len int 1 20 iconst 22 0 gt 23 21 22 -store __and_13_206 23 -label L207 -load 24 __and_13_206 -brif 24 L204 L205 -label L204 +store __and_13_208 23 +label L209 +load 24 __and_13_208 +brif 24 L206 L207 +label L206 load 25 base_node load 26 index_node field 27 26 16 list children @@ -83161,25 +83368,25 @@ call 30 ast_get_node struct:Node 1 29 call 31 pith_struct_release void 1 25 store base_node 30 iconst 32 0 -store __and_32_211 32 +store __and_32_213 32 load 33 base_node field 34 33 0 string kind -strref 35 m23s189 +strref 35 m23s187 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 -store __and_32_211 36 -brif 36 L211 L212 -label L211 +store __and_32_213 36 +brif 36 L213 L214 +label L213 load 38 base_node field 39 38 16 list children call 40 pith_list_len int 1 39 iconst 41 0 gt 42 40 41 -store __and_32_211 42 -label L212 -load 43 __and_32_211 -brif 43 L209 L210 -label L209 +store __and_32_213 42 +label L214 +load 43 __and_32_213 +brif 43 L211 L212 +label L211 load 44 recv load 45 base_node field 46 45 16 list children @@ -83190,11 +83397,11 @@ call 50 pith_struct_release void 1 44 store recv 49 load 51 recv field 52 51 0 string kind -strref 53 m23s188 +strref 53 m23s186 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 -brif 54 L214 L215 -label L214 +brif 54 L216 L217 +label L216 load 56 alias_name load 57 recv field 58 57 8 string value @@ -83209,8 +83416,8 @@ load 65 alias_name call 66 string_len int 1 65 iconst 67 0 gt 68 66 67 -brif 68 L217 L218 -label L217 +brif 68 L219 L220 +label L219 load 69 alias_name load 70 index_node call 71 pith_struct_release void 1 70 @@ -83219,17 +83426,17 @@ call 73 pith_struct_release void 1 72 load 74 recv call 75 pith_struct_release void 1 74 ret 69 +label L220 label L218 -label L216 -jmp L213 +jmp L215 +label L217 label L215 -label L213 -jmp L208 +jmp L210 +label L212 label L210 -label L208 -jmp L203 +jmp L205 +label L207 label L205 -label L203 load 76 member_name call 77 pith_cstring_retain void 1 76 load 78 index_node @@ -83266,50 +83473,50 @@ field 7 6 0 string kind strref 8 m23s80 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L220 L221 -label L220 +brif 9 L222 L223 +label L222 load 11 info field 12 11 8 string name strref 13 m23s81 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L223 L224 -label L223 -strref 16 m23s181 +brif 14 L225 L226 +label L225 +strref 16 m23s179 load 17 info call 18 pith_struct_release void 1 17 ret 16 +label L226 label L224 -label L222 load 19 info field 20 19 8 string name strref 21 m23s79 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L226 L227 -label L226 -strref 24 m23s180 +brif 22 L228 L229 +label L228 +strref 24 m23s178 load 25 info call 26 pith_struct_release void 1 25 ret 24 +label L229 label L227 -label L225 load 27 info field 28 27 8 string name strref 29 m23s83 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L229 L230 -label L229 -strref 32 m23s179 +brif 30 L231 L232 +label L231 +strref 32 m23s177 load 33 info call 34 pith_struct_release void 1 33 ret 32 +label L232 label L230 -label L228 -jmp L219 +jmp L221 +label L223 label L221 -label L219 strref 35 m23s17 load 36 info call 37 pith_struct_release void 1 36 @@ -83333,50 +83540,50 @@ field 7 6 0 string kind strref 8 m23s80 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L232 L233 -label L232 +brif 9 L234 L235 +label L234 load 11 info field 12 11 8 string name strref 13 m23s81 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L235 L236 -label L235 -strref 16 m23s187 +brif 14 L237 L238 +label L237 +strref 16 m23s185 load 17 info call 18 pith_struct_release void 1 17 ret 16 +label L238 label L236 -label L234 load 19 info field 20 19 8 string name strref 21 m23s79 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L238 L239 -label L238 -strref 24 m23s186 +brif 22 L240 L241 +label L240 +strref 24 m23s184 load 25 info call 26 pith_struct_release void 1 25 ret 24 +label L241 label L239 -label L237 load 27 info field 28 27 8 string name strref 29 m23s83 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L241 L242 -label L241 -strref 32 m23s185 +brif 30 L243 L244 +label L243 +strref 32 m23s183 load 33 info call 34 pith_struct_release void 1 33 ret 32 +label L244 label L242 -label L240 -jmp L231 +jmp L233 +label L235 label L233 -label L231 strref 35 m23s17 load 36 info call 37 pith_struct_release void 1 36 @@ -83400,50 +83607,50 @@ field 7 6 0 string kind strref 8 m23s80 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L244 L245 -label L244 +brif 9 L246 L247 +label L246 load 11 info field 12 11 8 string name strref 13 m23s81 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L247 L248 -label L247 -strref 16 m23s184 +brif 14 L249 L250 +label L249 +strref 16 m23s182 load 17 info call 18 pith_struct_release void 1 17 ret 16 +label L250 label L248 -label L246 load 19 info field 20 19 8 string name strref 21 m23s79 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L250 L251 -label L250 -strref 24 m23s183 +brif 22 L252 L253 +label L252 +strref 24 m23s181 load 25 info call 26 pith_struct_release void 1 25 ret 24 +label L253 label L251 -label L249 load 27 info field 28 27 8 string name strref 29 m23s83 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L253 L254 -label L253 -strref 32 m23s182 +brif 30 L255 L256 +label L255 +strref 32 m23s180 load 33 info call 34 pith_struct_release void 1 33 ret 32 +label L256 label L254 -label L252 -jmp L243 +jmp L245 +label L247 label L245 -label L243 strref 35 m23s17 load 36 info call 37 pith_struct_release void 1 36 @@ -83467,50 +83674,50 @@ field 7 6 0 string kind strref 8 m23s80 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L256 L257 -label L256 +brif 9 L258 L259 +label L258 load 11 info field 12 11 8 string name strref 13 m23s81 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L259 L260 -label L259 -strref 16 m23s181 +brif 14 L261 L262 +label L261 +strref 16 m23s179 load 17 info call 18 pith_struct_release void 1 17 ret 16 +label L262 label L260 -label L258 load 19 info field 20 19 8 string name strref 21 m23s79 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L262 L263 -label L262 -strref 24 m23s180 +brif 22 L264 L265 +label L264 +strref 24 m23s178 load 25 info call 26 pith_struct_release void 1 25 ret 24 +label L265 label L263 -label L261 load 27 info field 28 27 8 string name strref 29 m23s83 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L265 L266 -label L265 -strref 32 m23s179 +brif 30 L267 L268 +label L267 +strref 32 m23s177 load 33 info call 34 pith_struct_release void 1 33 ret 32 +label L268 label L266 -label L264 -jmp L255 +jmp L257 +label L259 label L257 -label L255 strref 35 m23s17 load 36 info call 37 pith_struct_release void 1 36 @@ -83526,32 +83733,32 @@ load 1 name strref 2 m23s81 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 -brif 3 L268 L269 -label L268 -strref 5 m23s178 +brif 3 L270 L271 +label L270 +strref 5 m23s176 ret 5 +label L271 label L269 -label L267 load 6 name strref 7 m23s79 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 -brif 8 L271 L272 -label L271 -strref 10 m23s177 +brif 8 L273 L274 +label L273 +strref 10 m23s175 ret 10 +label L274 label L272 -label L270 load 11 name strref 12 m23s83 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 -brif 13 L274 L275 -label L274 -strref 15 m23s176 +brif 13 L276 L277 +label L276 +strref 15 m23s174 ret 15 +label L277 label L275 -label L273 strref 16 m23s17 ret 16 iconst 17 0 @@ -83571,16 +83778,16 @@ field 7 6 0 string kind strref 8 m23s80 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L277 L278 -label L277 +brif 9 L279 L280 +label L279 load 11 info field 12 11 8 string name call 13 ir_decode_calls_ir_json_type_name_char string 1 12 load 14 info call 15 pith_struct_release void 1 14 ret 13 +label L280 label L278 -label L276 strref 16 m23s17 load 17 info call 18 pith_struct_release void 1 17 @@ -83604,50 +83811,50 @@ field 7 6 0 string kind strref 8 m23s80 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L280 L281 -label L280 +brif 9 L282 L283 +label L282 load 11 info field 12 11 8 string name strref 13 m23s81 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L283 L284 -label L283 -strref 16 m23s175 +brif 14 L285 L286 +label L285 +strref 16 m23s173 load 17 info call 18 pith_struct_release void 1 17 ret 16 +label L286 label L284 -label L282 load 19 info field 20 19 8 string name strref 21 m23s79 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L286 L287 -label L286 -strref 24 m23s174 +brif 22 L288 L289 +label L288 +strref 24 m23s172 load 25 info call 26 pith_struct_release void 1 25 ret 24 +label L289 label L287 -label L285 load 27 info field 28 27 8 string name strref 29 m23s83 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L289 L290 -label L289 -strref 32 m23s173 +brif 30 L291 L292 +label L291 +strref 32 m23s171 load 33 info call 34 pith_struct_release void 1 33 ret 32 +label L292 label L290 -label L288 -jmp L279 +jmp L281 +label L283 label L281 -label L279 strref 35 m23s17 load 36 info call 37 pith_struct_release void 1 36 @@ -83671,50 +83878,50 @@ field 7 6 0 string kind strref 8 m23s80 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L292 L293 -label L292 +brif 9 L294 L295 +label L294 load 11 info field 12 11 8 string name strref 13 m23s81 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L295 L296 -label L295 -strref 16 m23s172 +brif 14 L297 L298 +label L297 +strref 16 m23s170 load 17 info call 18 pith_struct_release void 1 17 ret 16 +label L298 label L296 -label L294 load 19 info field 20 19 8 string name strref 21 m23s79 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L298 L299 -label L298 -strref 24 m23s171 +brif 22 L300 L301 +label L300 +strref 24 m23s168 load 25 info call 26 pith_struct_release void 1 25 ret 24 +label L301 label L299 -label L297 load 27 info field 28 27 8 string name strref 29 m23s83 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L301 L302 -label L301 -strref 32 m23s170 +brif 30 L303 L304 +label L303 +strref 32 m23s167 load 33 info call 34 pith_struct_release void 1 33 ret 32 +label L304 label L302 -label L300 -jmp L291 +jmp L293 +label L295 label L293 -label L291 strref 35 m23s17 load 36 info call 37 pith_struct_release void 1 36 @@ -83724,7 +83931,7 @@ call 39 pith_struct_release void 1 38 iconst 40 0 ret 40 endfunc -func ir_decode_calls_ir_toml_require_helper_name 1 string +func ir_decode_calls_ir_handle_require_helper_name 1 string param field_tid iconst 1 0 store info 1 @@ -83738,50 +83945,50 @@ field 7 6 0 string kind strref 8 m23s80 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L304 L305 -label L304 +brif 9 L306 L307 +label L306 load 11 info field 12 11 8 string name strref 13 m23s81 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L307 L308 -label L307 +brif 14 L309 L310 +label L309 strref 16 m23s169 load 17 info call 18 pith_struct_release void 1 17 ret 16 +label L310 label L308 -label L306 load 19 info field 20 19 8 string name strref 21 m23s79 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L310 L311 -label L310 +brif 22 L312 L313 +label L312 strref 24 m23s168 load 25 info call 26 pith_struct_release void 1 25 ret 24 +label L313 label L311 -label L309 load 27 info field 28 27 8 string name strref 29 m23s83 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L313 L314 -label L313 +brif 30 L315 L316 +label L315 strref 32 m23s167 load 33 info call 34 pith_struct_release void 1 33 ret 32 +label L316 label L314 -label L312 -jmp L303 +jmp L305 +label L307 label L305 -label L303 strref 35 m23s17 load 36 info call 37 pith_struct_release void 1 36 @@ -83805,14 +84012,14 @@ field 7 6 0 string kind strref 8 m23s68 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L316 L317 -label L316 +brif 9 L318 L319 +label L318 load 11 field_tid load 12 info call 13 pith_struct_release void 1 12 ret 11 +label L319 label L317 -label L315 iconst 14 0 iconst 15 1 sub 16 14 15 @@ -83838,50 +84045,50 @@ field 7 6 0 string kind strref 8 m23s80 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L319 L320 -label L319 +brif 9 L321 L322 +label L321 load 11 info field 12 11 8 string name strref 13 m23s81 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 -brif 14 L322 L323 -label L322 +brif 14 L324 L325 +label L324 iconst 16 0 load 17 info call 18 pith_struct_release void 1 17 ret 16 +label L325 label L323 -label L321 load 19 info field 20 19 8 string name strref 21 m23s79 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 -brif 22 L325 L326 -label L325 +brif 22 L327 L328 +label L327 iconst 24 1 load 25 info call 26 pith_struct_release void 1 25 ret 24 +label L328 label L326 -label L324 load 27 info field 28 27 8 string name strref 29 m23s83 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 -brif 30 L328 L329 -label L328 +brif 30 L330 L331 +label L330 iconst 32 2 load 33 info call 34 pith_struct_release void 1 33 ret 32 +label L331 label L329 -label L327 -jmp L318 +jmp L320 +label L322 label L320 -label L318 iconst 35 0 iconst 36 1 sub 37 35 36 @@ -83907,15 +84114,15 @@ field 7 6 0 string kind strref 8 m23s63 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 -brif 9 L331 L332 -label L331 +brif 9 L333 L334 +label L333 load 11 info field 12 11 64 int inner load 13 info call 14 pith_struct_release void 1 13 ret 12 +label L334 label L332 -label L330 iconst 15 0 iconst 16 1 sub 17 15 16 @@ -83936,12 +84143,12 @@ iconst 4 0 store __for_idx_229 4 store __for_len_229 3 store __for_iter_229 2 -label L333 +label L335 load 5 __for_idx_229 load 6 __for_len_229 lt 7 5 6 -brif 7 L334 L336 -label L334 +brif 7 L336 L338 +label L336 load 8 __for_iter_229 load 9 __for_idx_229 call 10 pith_list_get_value unknown 2 8 9 @@ -83950,19 +84157,19 @@ load 11 __loopvar_229_field_tid call 12 ir_decode_calls_ir_optional_inner_tid int 1 11 iconst 13 0 gte 14 12 13 -brif 14 L338 L339 -label L338 +brif 14 L340 L341 +label L340 iconst 15 1 ret 15 +label L341 label L339 label L337 -label L335 load 16 __for_idx_229 iconst 17 1 add 18 16 17 store __for_idx_229 18 -jmp L333 -label L336 +jmp L335 +label L338 iconst 19 0 ret 19 iconst 20 0 @@ -83978,12 +84185,12 @@ iconst 5 0 store __for_idx_230 5 store __for_len_230 4 store __for_iter_230 3 -label L340 +label L342 load 6 __for_idx_230 load 7 __for_len_230 lt 8 6 7 -brif 8 L341 L343 -label L341 +brif 8 L343 L345 +label L343 load 9 __for_iter_230 load 10 __for_idx_230 call 11 pith_list_get_value_unchecked string 2 9 10 @@ -83999,19 +84206,19 @@ concat 19 16 18 call 20 pith_cstring_release void 1 16 call 21 contains_key bool 2 12 19 call 22 pith_cstring_release void 1 19 -brif 21 L345 L346 -label L345 +brif 21 L347 L348 +label L347 iconst 23 1 ret 23 +label L348 label L346 label L344 -label L342 load 24 __for_idx_230 iconst 25 1 add 26 24 25 store __for_idx_230 26 -jmp L340 -label L343 +jmp L342 +label L345 iconst 27 0 ret 27 iconst 28 0 @@ -84026,12 +84233,12 @@ iconst 4 0 store __for_idx_231 4 store __for_len_231 3 store __for_iter_231 2 -label L347 +label L349 load 5 __for_idx_231 load 6 __for_len_231 lt 7 5 6 -brif 7 L348 L350 -label L348 +brif 7 L350 L352 +label L350 load 8 __for_iter_231 load 9 __for_idx_231 call 10 pith_list_get_value unknown 2 8 9 @@ -84040,43 +84247,43 @@ load 11 __loopvar_231_field_tid call 12 ir_decode_calls_ir_struct_decode_field_tid int 1 11 iconst 13 0 gte 14 12 13 -brif 14 L352 L353 -label L352 +brif 14 L354 L355 +label L354 iconst 15 1 ret 15 +label L355 label L353 -label L351 load 16 __loopvar_231_field_tid call 17 ir_decode_calls_ir_optional_inner_tid int 1 16 store optional_inner_tid 17 iconst 18 0 -store __and_18_357 18 +store __and_18_359 18 load 19 optional_inner_tid iconst 20 0 gte 21 19 20 -store __and_18_357 21 -brif 21 L357 L358 -label L357 +store __and_18_359 21 +brif 21 L359 L360 +label L359 load 22 optional_inner_tid call 23 ir_decode_calls_ir_struct_decode_field_tid int 1 22 iconst 24 0 gte 25 23 24 -store __and_18_357 25 -label L358 -load 26 __and_18_357 -brif 26 L355 L356 -label L355 +store __and_18_359 25 +label L360 +load 26 __and_18_359 +brif 26 L357 L358 +label L357 iconst 27 1 ret 27 +label L358 label L356 -label L354 -label L349 +label L351 load 28 __for_idx_231 iconst 29 1 add 30 28 29 store __for_idx_231 30 -jmp L347 -label L350 +jmp L349 +label L352 iconst 31 0 ret 31 iconst 32 0 @@ -84475,344 +84682,347 @@ string m24s388 "config typed file decode argument type mismatch: expected " string m24s389 "config typed file decode target must be a struct, got " string m24s390 "config typed file decode expects 1 argument, got " string m24s391 "config typed file decode requires an explicit struct type" -string m24s392 "unknown type: TomlDecodeError" -string m24s393 "TomlDecodeError" -string m24s394 "toml.decode does not support field '" -string m24s395 "toml.decode target field must be public: " -string m24s396 "toml.decode argument type mismatch: expected " -string m24s397 "toml.decode target must be a struct, got " -string m24s398 "toml.decode expects 1 argument, got " -string m24s399 "toml.decode requires an explicit struct type" -string m24s400 "unknown type: JsonDecodeError" -string m24s401 "JsonDecodeError" -string m24s402 "json.decode does not support field '" -string m24s403 "json.decode target field must be public: " -string m24s404 "json.decode argument type mismatch: expected " -string m24s405 "json.decode target must be a struct, got " -string m24s406 "json.decode expects 1 argument, got " -string m24s407 "json.decode requires an explicit struct type" -string m24s408 "config.decode does not support field '" -string m24s409 "config.decode target field must be public: " -string m24s410 "config.decode prefix type mismatch: expected String, got " -string m24s411 "config.decode argument type mismatch: expected Config, got " -string m24s412 "unknown type: Config" -string m24s413 "Config" -string m24s414 "config.decode target must be a struct, got " -string m24s415 " argument(s), got " -string m24s416 "config.decode expects " -string m24s417 "config.decode requires an explicit struct type" -string m24s418 "|" -string m24s419 "json.decode type argument must be a concrete struct type" -string m24s420 "config_mod" -string m24s421 "config" -string m24s422 "std.config" -string m24s423 "toml_mod" -string m24s424 "toml" -string m24s425 "std.toml" -string m24s426 "json_mod" -string m24s427 "json" -string m24s428 "std.json" -string m24s429 "unary 'not' requires Bool, got " -string m24s430 "not" -string m24s431 "unary - requires numeric type, got " -string m24s432 "negate" -string m24s433 "pipe type mismatch: function expects " -string m24s434 "' must take exactly 1 parameter" -string m24s435 "pipe target '" -string m24s436 "' is not a function" -string m24s437 "pipe operator requires a function name on the right" -string m24s438 "operator 'or' requires Bool, got " -string m24s439 "or" -string m24s440 "operator 'and' requires Bool, got " -string m24s441 "and" -string m24s442 "operator >= type mismatch: " -string m24s443 "operator >= requires numeric or string type, got " -string m24s444 "gte" -string m24s445 "operator <= type mismatch: " -string m24s446 "operator <= requires numeric or string type, got " -string m24s447 "lte" -string m24s448 "operator > type mismatch: " -string m24s449 "operator > requires numeric or string type, got " -string m24s450 "gt" -string m24s451 "operator < type mismatch: " -string m24s452 "operator < requires numeric or string type, got " -string m24s453 "lt" -string m24s454 "operator != type mismatch: " -string m24s455 "neq" -string m24s456 "operator == type mismatch: " -string m24s457 "eq" -string m24s458 "operator % type mismatch: " -string m24s459 "operator % requires integer type, got " -string m24s460 "mod" -string m24s461 "operator / type mismatch: " -string m24s462 "operator / requires numeric type, got " -string m24s463 "div" -string m24s464 "operator * type mismatch: " -string m24s465 "operator * requires numeric type, got " -string m24s466 "mul" -string m24s467 "operator - type mismatch: " -string m24s468 "operator - requires numeric type, got " -string m24s469 "sub" -string m24s470 "operator + type mismatch: " -string m24s471 "operator + requires numeric type, got " -string m24s472 "pipe" -string m24s473 "undefined variable: " -string m24s474 "import it where it is defined" -string m24s475 "' belongs to another module and is not imported here" -string m24s476 "UInt64" -string m24s477 "UInt32" -string m24s478 "UInt16" -string m24s479 "UInt8" -string m24s480 "Int64" -string m24s481 "Int32" -string m24s482 "Int16" -string m24s483 "Int8" -string m24s484 "UInt" -string m24s485 "primitive" -string m24s486 "await" -string m24s487 "spawn" -string m24s488 "struct_init" -string m24s489 "lambda" -string m24s490 "match_expr" -string m24s491 "select_expr" -string m24s492 "catch_expr" -string m24s493 "try" -string m24s494 "unwrap" -string m24s495 "if_expr" -string m24s496 "string interpolation requires a stringifiable value, got " -string m24s497 "lit" -string m24s498 "interp_spec" -string m24s499 "string_interp" -string m24s500 "grouped" -string m24s501 "unary" -string m24s502 "binary" -string m24s503 "self" -string m24s504 "bool_lit" -string m24s505 "string_lit" -string m24s506 "float_lit" -string m24s507 "int_lit" -string m24s508 "cannot iterate over " -string m24s509 ".." -string m24s510 "range bounds must be Int, got " -string m24s511 "range" -string m24s512 ".next" -string m24s513 "while let" -string m24s514 "if let" -string m24s515 " supports variant patterns and optional bindings" -string m24s516 "E245" -string m24s517 " with a bare binding needs an optional subject, got " -string m24s518 "else" -string m24s519 "then" -string m24s520 "elif" -string m24s521 "fail type mismatch: expected " -string m24s522 "fail requires function to return a result type" -string m24s523 "E234" -string m24s524 "fail outside of function" -string m24s525 "E231" -string m24s526 "change the return type to " -string m24s527 "return type mismatch: expected " -string m24s528 ", got Void" -string m24s529 "return outside of function" -string m24s530 "lambda returns disagree: " -string m24s531 "type mismatch: expected " -string m24s532 " requires numeric type, got " -string m24s533 "operator " -string m24s534 "=" -string m24s535 "declare with 'mut': mut " -string m24s536 "cannot assign to immutable variable '" -string m24s537 "E216" -string m24s538 "try_expr" -string m24s539 "bind" -string m24s540 "binding" -string m24s541 "errdefer" -string m24s542 "defer" -string m24s543 "continue" -string m24s544 "break" -string m24s545 "fail" -string m24s546 "return" -string m24s547 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m24s548 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m24s549 "E260" -string m24s550 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m24s551 "errdefer is only meaningful in a function returning a result (`T!`)" -string m24s552 "errdefer is only allowed inside a function" -string m24s553 "defer is only allowed inside a function" -string m24s554 "continue outside of loop" -string m24s555 "E215" -string m24s556 "break outside of loop" -string m24s557 "for_stmt" -string m24s558 "while_let" -string m24s559 "if_let" -string m24s560 "while_stmt" -string m24s561 "if_stmt" -string m24s562 "assignment" -string m24s563 "mut" -string m24s564 "fn_decl" -string m24s565 "pub" -string m24s566 " is missing associated type: " -string m24s567 " for " -string m24s568 "impl of " -string m24s569 "E229" -string m24s570 " is missing method: " -string m24s571 "E235" -string m24s572 "fn_sig" -string m24s573 "assoc_type_bind" -string m24s574 "for_type" -string m24s575 "test_decl" -string m24s576 "impl_decl" -string m24s577 "threadlocal" -string m24s578 "import" -string m24s579 "from_import" -string m24s580 "assoc_type" -string m24s581 "' is a builtin type name and cannot be used as an enum name" -string m24s582 "E250" -string m24s583 "' must be " -string m24s584 "default for field '" -string m24s585 " weak" -string m24s586 "' is a builtin type name and cannot be used as a struct name" -string m24s587 "' must be an optional struct type (T?)" -string m24s588 "weak field '" -string m24s589 "E249" -string m24s590 "parameter requires a type annotation" -string m24s591 "type_alias" -string m24s592 "interface_decl" -string m24s593 "unknown generic type: " -string m24s594 "Channel expects 1 type argument, got " -string m24s595 "Task expects 1 type argument, got " -string m24s596 "Map expects 2 type arguments, got " -string m24s597 "Set expects 1 type argument, got " -string m24s598 "List expects 1 type argument, got " -string m24s599 "type nesting too deep" -string m24s600 "E233" -string m24s601 "import it from the module that defines it" -string m24s602 "' is not declared by module '" -string m24s603 "E246" -string m24s604 "*" -string m24s605 "L" -string m24s606 "string " -string m24s607 "__" -string m24s608 "s" -string m24s609 "m" -string m24s610 "IrBuilderSnapshot(" -string m24s611 "..." -string m24s612 "inext_reg,lines" -string m24s613 "next_reg" -string m24s614 "next_reg: " -string m24s615 "lines" -string m24s616 ", lines: " -string m24s617 "int" -string m24s618 "bool" -string m24s619 "not_op" -string m24s620 "!" -string m24s621 "set_int" -string m24s622 "integer" -string m24s623 "list_string" -string m24s624 "string" -string m24s625 "str_lit" -string m24s626 "float" -string m24s627 "list:" -string m24s628 "task:" -string m24s629 "channel:" -string m24s630 "bytes" -string m24s631 "map_int" -string m24s632 "unknown" -string m24s633 "closure" -string m24s634 "struct:" -string m24s635 "opaque:" -string m24s636 "void" -string m24s637 "Set[UInt64]" -string m24s638 "Set[UInt32]" -string m24s639 "Set[UInt16]" -string m24s640 "Set[UInt8]" -string m24s641 "Set[Int64]" -string m24s642 "Set[Int32]" -string m24s643 "Set[Int16]" -string m24s644 "Set[Int8]" -string m24s645 "Set[UInt]" -string m24s646 "Set[Int]" -string m24s647 "Map[Int, " -string m24s648 "Map[Int," -string m24s649 "List[String]" -string m24s650 "" -string m24s651 "fn" -string m24s652 "TypeInfo(" -string m24s653 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" -string m24s654 "kind" -string m24s655 "kind: " -string m24s656 "name" -string m24s657 ", name: " -string m24s658 "fields" -string m24s659 ", fields: " -string m24s660 "field_types" -string m24s661 ", field_types: " -string m24s662 "field_pub" -string m24s663 ", field_pub: " -string m24s664 "field_mut" -string m24s665 ", field_mut: " -string m24s666 "param_types" -string m24s667 ", param_types: " -string m24s668 "return_type" -string m24s669 ", return_type: " -string m24s670 "inner" -string m24s671 ", inner: " -string m24s672 "key_type" -string m24s673 ", key_type: " -string m24s674 "value_type" -string m24s675 ", value_type: " -string m24s676 "elements" -string m24s677 ", elements: " -string m24s678 "variants" -string m24s679 ", variants: " -string m24s680 "variant_types" -string m24s681 ", variant_types: " -string m24s682 "field " -string m24s683 "parse_int failed" -string m24s684 "file_open_read failed" -string m24s685 "file_open_write failed" -string m24s686 "file_open_append failed" -string m24s687 "byte_buffer_write failed" -string m24s688 "byte_buffer_write_string_utf8 failed" -string m24s689 "byte_buffer_write_byte failed" -string m24s690 "file_write failed" -string m24s691 "file_write_bytes failed" -string m24s692 "tcp_connect failed" -string m24s693 "tcp_listen failed" -string m24s694 "tcp_accept failed" -string m24s695 "tcp_write failed" -string m24s696 "tcp_write_bytes failed" -string m24s697 "process_spawn failed" -string m24s698 "process_spawn_argv failed" -string m24s699 "process_output_argv failed" -string m24s700 "process_write failed" -string m24s701 "process_write_bytes failed" -string m24s702 "crypto_x25519_keygen failed" -string m24s703 "write_file failed" -string m24s704 "append_file failed" -string m24s705 "write_file_bytes failed" -string m24s706 "append_file_bytes failed" -string m24s707 "read_file failed" -string m24s708 "exec_output failed" -string m24s709 "dns_resolve failed" -string m24s710 "bytes_to_string_utf8 failed" -string m24s711 "bytes_substring_utf8 failed" -string m24s712 "file_read failed" -string m24s713 "tcp_read failed" -string m24s714 "process_read failed" -string m24s715 "process_read_err failed" -string m24s716 "read_file_bytes failed" -string m24s717 "b64_decode failed" -string m24s718 "from_hex failed" -string m24s719 "file_read_bytes failed" -string m24s720 "tcp_read_bytes failed" -string m24s721 "process_read_bytes failed" -string m24s722 "process_read_err_bytes failed" -string m24s723 "crypto_x25519_public_key failed" -string m24s724 "crypto_x25519_shared_secret failed" -string m24s725 "crypto_aes_128_gcm_seal failed" -string m24s726 "crypto_aes_128_gcm_open failed" -string m24s727 "crypto_chacha20_poly1305_seal failed" -string m24s728 "crypto_chacha20_poly1305_open failed" -string m24s729 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m24s392 " does not support field '" +string m24s393 " target field must be public: " +string m24s394 " argument type mismatch: expected " +string m24s395 " target must be a struct, got " +string m24s396 " requires an explicit struct type" +string m24s397 ".decode" +string m24s398 "unknown type: JsonDecodeError" +string m24s399 "JsonDecodeError" +string m24s400 "json.decode does not support field '" +string m24s401 "json.decode target field must be public: " +string m24s402 "json.decode argument type mismatch: expected " +string m24s403 "json.decode target must be a struct, got " +string m24s404 "json.decode expects 1 argument, got " +string m24s405 "json.decode requires an explicit struct type" +string m24s406 "config.decode does not support field '" +string m24s407 "config.decode target field must be public: " +string m24s408 "config.decode prefix type mismatch: expected String, got " +string m24s409 "config.decode argument type mismatch: expected Config, got " +string m24s410 "unknown type: Config" +string m24s411 "Config" +string m24s412 "config.decode target must be a struct, got " +string m24s413 " argument(s), got " +string m24s414 "config.decode expects " +string m24s415 "config.decode requires an explicit struct type" +string m24s416 "|" +string m24s417 "json.decode type argument must be a concrete struct type" +string m24s418 "config_mod" +string m24s419 "config" +string m24s420 "std.config" +string m24s421 "TomlDecodeError" +string m24s422 "YamlDecodeError" +string m24s423 "yaml" +string m24s424 "yaml_mod" +string m24s425 "toml" +string m24s426 "toml_mod" +string m24s427 "std.yaml" +string m24s428 "std.toml" +string m24s429 "json_mod" +string m24s430 "json" +string m24s431 "std.json" +string m24s432 "unary 'not' requires Bool, got " +string m24s433 "not" +string m24s434 "unary - requires numeric type, got " +string m24s435 "negate" +string m24s436 "pipe type mismatch: function expects " +string m24s437 "' must take exactly 1 parameter" +string m24s438 "pipe target '" +string m24s439 "' is not a function" +string m24s440 "pipe operator requires a function name on the right" +string m24s441 "operator 'or' requires Bool, got " +string m24s442 "or" +string m24s443 "operator 'and' requires Bool, got " +string m24s444 "and" +string m24s445 "operator >= type mismatch: " +string m24s446 "operator >= requires numeric or string type, got " +string m24s447 "gte" +string m24s448 "operator <= type mismatch: " +string m24s449 "operator <= requires numeric or string type, got " +string m24s450 "lte" +string m24s451 "operator > type mismatch: " +string m24s452 "operator > requires numeric or string type, got " +string m24s453 "gt" +string m24s454 "operator < type mismatch: " +string m24s455 "operator < requires numeric or string type, got " +string m24s456 "lt" +string m24s457 "operator != type mismatch: " +string m24s458 "neq" +string m24s459 "operator == type mismatch: " +string m24s460 "eq" +string m24s461 "operator % type mismatch: " +string m24s462 "operator % requires integer type, got " +string m24s463 "mod" +string m24s464 "operator / type mismatch: " +string m24s465 "operator / requires numeric type, got " +string m24s466 "div" +string m24s467 "operator * type mismatch: " +string m24s468 "operator * requires numeric type, got " +string m24s469 "mul" +string m24s470 "operator - type mismatch: " +string m24s471 "operator - requires numeric type, got " +string m24s472 "sub" +string m24s473 "operator + type mismatch: " +string m24s474 "operator + requires numeric type, got " +string m24s475 "pipe" +string m24s476 "undefined variable: " +string m24s477 "import it where it is defined" +string m24s478 "' belongs to another module and is not imported here" +string m24s479 "UInt64" +string m24s480 "UInt32" +string m24s481 "UInt16" +string m24s482 "UInt8" +string m24s483 "Int64" +string m24s484 "Int32" +string m24s485 "Int16" +string m24s486 "Int8" +string m24s487 "UInt" +string m24s488 "primitive" +string m24s489 "await" +string m24s490 "spawn" +string m24s491 "struct_init" +string m24s492 "lambda" +string m24s493 "match_expr" +string m24s494 "select_expr" +string m24s495 "catch_expr" +string m24s496 "try" +string m24s497 "unwrap" +string m24s498 "if_expr" +string m24s499 "string interpolation requires a stringifiable value, got " +string m24s500 "lit" +string m24s501 "interp_spec" +string m24s502 "string_interp" +string m24s503 "grouped" +string m24s504 "unary" +string m24s505 "binary" +string m24s506 "self" +string m24s507 "bool_lit" +string m24s508 "string_lit" +string m24s509 "float_lit" +string m24s510 "int_lit" +string m24s511 "cannot iterate over " +string m24s512 ".." +string m24s513 "range bounds must be Int, got " +string m24s514 "range" +string m24s515 ".next" +string m24s516 "while let" +string m24s517 "if let" +string m24s518 " supports variant patterns and optional bindings" +string m24s519 "E245" +string m24s520 " with a bare binding needs an optional subject, got " +string m24s521 "else" +string m24s522 "then" +string m24s523 "elif" +string m24s524 "fail type mismatch: expected " +string m24s525 "fail requires function to return a result type" +string m24s526 "E234" +string m24s527 "fail outside of function" +string m24s528 "E231" +string m24s529 "change the return type to " +string m24s530 "return type mismatch: expected " +string m24s531 ", got Void" +string m24s532 "return outside of function" +string m24s533 "lambda returns disagree: " +string m24s534 "type mismatch: expected " +string m24s535 " requires numeric type, got " +string m24s536 "operator " +string m24s537 "=" +string m24s538 "declare with 'mut': mut " +string m24s539 "cannot assign to immutable variable '" +string m24s540 "E216" +string m24s541 "try_expr" +string m24s542 "bind" +string m24s543 "binding" +string m24s544 "errdefer" +string m24s545 "defer" +string m24s546 "continue" +string m24s547 "break" +string m24s548 "fail" +string m24s549 "return" +string m24s550 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m24s551 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m24s552 "E260" +string m24s553 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m24s554 "errdefer is only meaningful in a function returning a result (`T!`)" +string m24s555 "errdefer is only allowed inside a function" +string m24s556 "defer is only allowed inside a function" +string m24s557 "continue outside of loop" +string m24s558 "E215" +string m24s559 "break outside of loop" +string m24s560 "for_stmt" +string m24s561 "while_let" +string m24s562 "if_let" +string m24s563 "while_stmt" +string m24s564 "if_stmt" +string m24s565 "assignment" +string m24s566 "mut" +string m24s567 "fn_decl" +string m24s568 "pub" +string m24s569 " is missing associated type: " +string m24s570 " for " +string m24s571 "impl of " +string m24s572 "E229" +string m24s573 " is missing method: " +string m24s574 "E235" +string m24s575 "fn_sig" +string m24s576 "assoc_type_bind" +string m24s577 "for_type" +string m24s578 "test_decl" +string m24s579 "impl_decl" +string m24s580 "threadlocal" +string m24s581 "import" +string m24s582 "from_import" +string m24s583 "assoc_type" +string m24s584 "' is a builtin type name and cannot be used as an enum name" +string m24s585 "E250" +string m24s586 "' must be " +string m24s587 "default for field '" +string m24s588 " weak" +string m24s589 "' is a builtin type name and cannot be used as a struct name" +string m24s590 "' must be an optional struct type (T?)" +string m24s591 "weak field '" +string m24s592 "E249" +string m24s593 "parameter requires a type annotation" +string m24s594 "type_alias" +string m24s595 "interface_decl" +string m24s596 "unknown generic type: " +string m24s597 "Channel expects 1 type argument, got " +string m24s598 "Task expects 1 type argument, got " +string m24s599 "Map expects 2 type arguments, got " +string m24s600 "Set expects 1 type argument, got " +string m24s601 "List expects 1 type argument, got " +string m24s602 "type nesting too deep" +string m24s603 "E233" +string m24s604 "import it from the module that defines it" +string m24s605 "' is not declared by module '" +string m24s606 "E246" +string m24s607 "*" +string m24s608 "L" +string m24s609 "string " +string m24s610 "__" +string m24s611 "s" +string m24s612 "m" +string m24s613 "IrBuilderSnapshot(" +string m24s614 "..." +string m24s615 "inext_reg,lines" +string m24s616 "next_reg" +string m24s617 "next_reg: " +string m24s618 "lines" +string m24s619 ", lines: " +string m24s620 "int" +string m24s621 "bool" +string m24s622 "not_op" +string m24s623 "!" +string m24s624 "set_int" +string m24s625 "integer" +string m24s626 "list_string" +string m24s627 "string" +string m24s628 "str_lit" +string m24s629 "float" +string m24s630 "list:" +string m24s631 "task:" +string m24s632 "channel:" +string m24s633 "bytes" +string m24s634 "map_int" +string m24s635 "unknown" +string m24s636 "closure" +string m24s637 "struct:" +string m24s638 "opaque:" +string m24s639 "void" +string m24s640 "Set[UInt64]" +string m24s641 "Set[UInt32]" +string m24s642 "Set[UInt16]" +string m24s643 "Set[UInt8]" +string m24s644 "Set[Int64]" +string m24s645 "Set[Int32]" +string m24s646 "Set[Int16]" +string m24s647 "Set[Int8]" +string m24s648 "Set[UInt]" +string m24s649 "Set[Int]" +string m24s650 "Map[Int, " +string m24s651 "Map[Int," +string m24s652 "List[String]" +string m24s653 "" +string m24s654 "fn" +string m24s655 "TypeInfo(" +string m24s656 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" +string m24s657 "kind" +string m24s658 "kind: " +string m24s659 "name" +string m24s660 ", name: " +string m24s661 "fields" +string m24s662 ", fields: " +string m24s663 "field_types" +string m24s664 ", field_types: " +string m24s665 "field_pub" +string m24s666 ", field_pub: " +string m24s667 "field_mut" +string m24s668 ", field_mut: " +string m24s669 "param_types" +string m24s670 ", param_types: " +string m24s671 "return_type" +string m24s672 ", return_type: " +string m24s673 "inner" +string m24s674 ", inner: " +string m24s675 "key_type" +string m24s676 ", key_type: " +string m24s677 "value_type" +string m24s678 ", value_type: " +string m24s679 "elements" +string m24s680 ", elements: " +string m24s681 "variants" +string m24s682 ", variants: " +string m24s683 "variant_types" +string m24s684 ", variant_types: " +string m24s685 "field " +string m24s686 "parse_int failed" +string m24s687 "file_open_read failed" +string m24s688 "file_open_write failed" +string m24s689 "file_open_append failed" +string m24s690 "byte_buffer_write failed" +string m24s691 "byte_buffer_write_string_utf8 failed" +string m24s692 "byte_buffer_write_byte failed" +string m24s693 "file_write failed" +string m24s694 "file_write_bytes failed" +string m24s695 "tcp_connect failed" +string m24s696 "tcp_listen failed" +string m24s697 "tcp_accept failed" +string m24s698 "tcp_write failed" +string m24s699 "tcp_write_bytes failed" +string m24s700 "process_spawn failed" +string m24s701 "process_spawn_argv failed" +string m24s702 "process_output_argv failed" +string m24s703 "process_write failed" +string m24s704 "process_write_bytes failed" +string m24s705 "crypto_x25519_keygen failed" +string m24s706 "write_file failed" +string m24s707 "append_file failed" +string m24s708 "write_file_bytes failed" +string m24s709 "append_file_bytes failed" +string m24s710 "read_file failed" +string m24s711 "exec_output failed" +string m24s712 "dns_resolve failed" +string m24s713 "bytes_to_string_utf8 failed" +string m24s714 "bytes_substring_utf8 failed" +string m24s715 "file_read failed" +string m24s716 "tcp_read failed" +string m24s717 "process_read failed" +string m24s718 "process_read_err failed" +string m24s719 "read_file_bytes failed" +string m24s720 "b64_decode failed" +string m24s721 "from_hex failed" +string m24s722 "file_read_bytes failed" +string m24s723 "tcp_read_bytes failed" +string m24s724 "process_read_bytes failed" +string m24s725 "process_read_err_bytes failed" +string m24s726 "crypto_x25519_public_key failed" +string m24s727 "crypto_x25519_shared_secret failed" +string m24s728 "crypto_aes_128_gcm_seal failed" +string m24s729 "crypto_aes_128_gcm_open failed" +string m24s730 "crypto_chacha20_poly1305_seal failed" +string m24s731 "crypto_chacha20_poly1305_open failed" +string m24s732 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -85058,7 +85268,7 @@ store keys 9 iconst 11 0 store matched 11 load 12 field_kind -strref 13 m24s632 +strref 13 m24s635 call 14 pith_cstring_release void 1 12 store field_kind 13 load 15 keys @@ -85116,7 +85326,7 @@ iconst 51 1 sub 49 51 50 brif 49 L25 L26 label L25 -strref 52 m24s632 +strref 52 m24s635 load 53 keys call 54 pith_list_release_handle void 1 53 load 55 field_kind @@ -85178,7 +85388,7 @@ iconst 18 8 mul 19 17 18 store field_offset 19 load 20 field_kind -strref 21 m24s632 +strref 21 m24s635 call 22 pith_cstring_release void 1 20 store field_kind 21 load 23 field_kind_override @@ -85211,7 +85421,7 @@ store field_kind 40 jmp L30 label L34 label L30 -strref 42 m24s682 +strref 42 m24s685 load 43 result_reg call 44 int_to_string string 1 43 concat 45 42 44 @@ -85270,7 +85480,7 @@ load 92 struct_names call 93 ir_field_helpers_ir_unique_field_kind_with_state string 4 89 90 91 92 call 94 pith_cstring_release void 1 88 store unique_kind 93 -strref 95 m24s682 +strref 95 m24s685 load 96 result_reg call 97 int_to_string string 1 96 concat 98 95 97 @@ -85312,7 +85522,7 @@ call 133 ir_builder_ir_emit void 1 131 call 134 pith_cstring_release void 1 131 jmp L35 label L37 -strref 135 m24s682 +strref 135 m24s685 load 136 result_reg call 137 int_to_string string 1 136 concat 138 135 137 @@ -85422,7 +85632,7 @@ load 46 field_index iconst 47 8 mul 48 46 47 store field_offset 48 -strref 49 m24s682 +strref 49 m24s685 load 50 result_reg call 51 int_to_string string 1 50 concat 52 49 51 @@ -88520,330 +88730,328 @@ string m28s440 "config typed file decode argument type mismatch: expected " string m28s441 "config typed file decode target must be a struct, got " string m28s442 "config typed file decode expects 1 argument, got " string m28s443 "config typed file decode requires an explicit struct type" -string m28s444 "unknown type: TomlDecodeError" -string m28s445 "TomlDecodeError" -string m28s446 "toml.decode does not support field '" -string m28s447 "toml.decode target field must be public: " -string m28s448 "toml.decode argument type mismatch: expected " -string m28s449 "toml.decode target must be a struct, got " -string m28s450 "toml.decode expects 1 argument, got " -string m28s451 "toml.decode requires an explicit struct type" -string m28s452 "unknown type: JsonDecodeError" -string m28s453 "JsonDecodeError" -string m28s454 "json.decode does not support field '" -string m28s455 "json.decode target field must be public: " -string m28s456 "json.decode argument type mismatch: expected " -string m28s457 "json.decode target must be a struct, got " -string m28s458 "json.decode expects 1 argument, got " -string m28s459 "json.decode requires an explicit struct type" -string m28s460 "config.decode does not support field '" -string m28s461 "config.decode target field must be public: " -string m28s462 "config.decode prefix type mismatch: expected String, got " -string m28s463 "config.decode argument type mismatch: expected Config, got " -string m28s464 "unknown type: Config" -string m28s465 "Config" -string m28s466 "config.decode target must be a struct, got " -string m28s467 " argument(s), got " -string m28s468 "config.decode expects " -string m28s469 "config.decode requires an explicit struct type" -string m28s470 "|" -string m28s471 "json.decode type argument must be a concrete struct type" -string m28s472 "config_mod" -string m28s473 "config" -string m28s474 "std.config" -string m28s475 "toml_mod" -string m28s476 "toml" -string m28s477 "std.toml" -string m28s478 "json_mod" -string m28s479 "json" -string m28s480 "std.json" -string m28s481 "unary 'not' requires Bool, got " -string m28s482 "not" -string m28s483 "unary - requires numeric type, got " -string m28s484 "negate" -string m28s485 "pipe type mismatch: function expects " -string m28s486 "' must take exactly 1 parameter" -string m28s487 "pipe target '" -string m28s488 "' is not a function" -string m28s489 "pipe operator requires a function name on the right" -string m28s490 "operator 'or' requires Bool, got " -string m28s491 "or" -string m28s492 "operator 'and' requires Bool, got " -string m28s493 "and" -string m28s494 "operator >= type mismatch: " -string m28s495 "operator >= requires numeric or string type, got " -string m28s496 "gte" -string m28s497 "operator <= type mismatch: " -string m28s498 "operator <= requires numeric or string type, got " -string m28s499 "lte" -string m28s500 "operator > type mismatch: " -string m28s501 "operator > requires numeric or string type, got " -string m28s502 "gt" -string m28s503 "operator < type mismatch: " -string m28s504 "operator < requires numeric or string type, got " -string m28s505 "lt" -string m28s506 "operator != type mismatch: " -string m28s507 "neq" -string m28s508 "operator == type mismatch: " -string m28s509 "eq" -string m28s510 "operator % type mismatch: " -string m28s511 "operator % requires integer type, got " -string m28s512 "mod" -string m28s513 "operator / type mismatch: " -string m28s514 "operator / requires numeric type, got " -string m28s515 "div" -string m28s516 "operator * type mismatch: " -string m28s517 "operator * requires numeric type, got " -string m28s518 "mul" -string m28s519 "operator - type mismatch: " -string m28s520 "operator - requires numeric type, got " -string m28s521 "sub" -string m28s522 "operator + type mismatch: " -string m28s523 "operator + requires numeric type, got " -string m28s524 "pipe" -string m28s525 "undefined variable: " -string m28s526 "import it where it is defined" -string m28s527 "' belongs to another module and is not imported here" -string m28s528 "await" -string m28s529 "spawn" -string m28s530 "struct_init" -string m28s531 "lambda" -string m28s532 "match_expr" -string m28s533 "select_expr" -string m28s534 "catch_expr" -string m28s535 "try" -string m28s536 "unwrap" -string m28s537 "if_expr" -string m28s538 "string interpolation requires a stringifiable value, got " -string m28s539 "lit" -string m28s540 "interp_spec" -string m28s541 "string_interp" -string m28s542 "grouped" -string m28s543 "unary" -string m28s544 "binary" -string m28s545 "self" -string m28s546 "bool_lit" -string m28s547 "string_lit" -string m28s548 "float_lit" -string m28s549 "int_lit" -string m28s550 "cannot iterate over " -string m28s551 ".." -string m28s552 "range bounds must be Int, got " -string m28s553 "range" -string m28s554 ".next" -string m28s555 "while let" -string m28s556 "if let" -string m28s557 " supports variant patterns and optional bindings" -string m28s558 "E245" -string m28s559 " with a bare binding needs an optional subject, got " -string m28s560 "else" -string m28s561 "then" -string m28s562 "elif" -string m28s563 "fail type mismatch: expected " -string m28s564 "fail requires function to return a result type" -string m28s565 "E234" -string m28s566 "fail outside of function" -string m28s567 "E231" -string m28s568 "change the return type to " -string m28s569 "return type mismatch: expected " -string m28s570 ", got Void" -string m28s571 "return outside of function" -string m28s572 "lambda returns disagree: " -string m28s573 "type mismatch: expected " -string m28s574 " requires numeric type, got " -string m28s575 "operator " -string m28s576 "=" -string m28s577 "declare with 'mut': mut " -string m28s578 "cannot assign to immutable variable '" -string m28s579 "E216" -string m28s580 "try_expr" -string m28s581 "bind" -string m28s582 "binding" -string m28s583 "errdefer" -string m28s584 "defer" -string m28s585 "continue" -string m28s586 "break" -string m28s587 "fail" -string m28s588 "return" -string m28s589 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m28s590 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m28s591 "E260" -string m28s592 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m28s593 "errdefer is only meaningful in a function returning a result (`T!`)" -string m28s594 "errdefer is only allowed inside a function" -string m28s595 "defer is only allowed inside a function" -string m28s596 "continue outside of loop" -string m28s597 "E215" -string m28s598 "break outside of loop" -string m28s599 "for_stmt" -string m28s600 "while_let" -string m28s601 "if_let" -string m28s602 "while_stmt" -string m28s603 "if_stmt" -string m28s604 "assignment" -string m28s605 "mut" -string m28s606 "fn_decl" -string m28s607 "pub" -string m28s608 " is missing associated type: " -string m28s609 " for " -string m28s610 "impl of " -string m28s611 "E229" -string m28s612 " is missing method: " -string m28s613 "E235" -string m28s614 "fn_sig" -string m28s615 "assoc_type_bind" -string m28s616 "for_type" -string m28s617 "test_decl" -string m28s618 "impl_decl" -string m28s619 "threadlocal" -string m28s620 "import" -string m28s621 "from_import" -string m28s622 "assoc_type" -string m28s623 "' is a builtin type name and cannot be used as an enum name" -string m28s624 "E250" -string m28s625 "' must be " -string m28s626 "default for field '" -string m28s627 " weak" -string m28s628 "' is a builtin type name and cannot be used as a struct name" -string m28s629 "' must be an optional struct type (T?)" -string m28s630 "weak field '" -string m28s631 "E249" -string m28s632 "parameter requires a type annotation" -string m28s633 "type_alias" -string m28s634 "interface_decl" -string m28s635 "unknown generic type: " -string m28s636 "Channel expects 1 type argument, got " -string m28s637 "Task expects 1 type argument, got " -string m28s638 "Map expects 2 type arguments, got " -string m28s639 "Set expects 1 type argument, got " -string m28s640 "List expects 1 type argument, got " -string m28s641 "type nesting too deep" -string m28s642 "E233" -string m28s643 "import it from the module that defines it" -string m28s644 "' is not declared by module '" -string m28s645 "E246" -string m28s646 "*" -string m28s647 "void" -string m28s648 "bytes" -string m28s649 "string" -string m28s650 "bool" -string m28s651 "float" -string m28s652 "int" -string m28s653 "closure" -string m28s654 "std_toml_require_bool" -string m28s655 "std_toml_require_int" -string m28s656 "std_toml_require_string" +string m28s444 " does not support field '" +string m28s445 " target field must be public: " +string m28s446 " argument type mismatch: expected " +string m28s447 " target must be a struct, got " +string m28s448 " requires an explicit struct type" +string m28s449 ".decode" +string m28s450 "unknown type: JsonDecodeError" +string m28s451 "JsonDecodeError" +string m28s452 "json.decode does not support field '" +string m28s453 "json.decode target field must be public: " +string m28s454 "json.decode argument type mismatch: expected " +string m28s455 "json.decode target must be a struct, got " +string m28s456 "json.decode expects 1 argument, got " +string m28s457 "json.decode requires an explicit struct type" +string m28s458 "config.decode does not support field '" +string m28s459 "config.decode target field must be public: " +string m28s460 "config.decode prefix type mismatch: expected String, got " +string m28s461 "config.decode argument type mismatch: expected Config, got " +string m28s462 "unknown type: Config" +string m28s463 "Config" +string m28s464 "config.decode target must be a struct, got " +string m28s465 " argument(s), got " +string m28s466 "config.decode expects " +string m28s467 "config.decode requires an explicit struct type" +string m28s468 "|" +string m28s469 "json.decode type argument must be a concrete struct type" +string m28s470 "config_mod" +string m28s471 "config" +string m28s472 "std.config" +string m28s473 "TomlDecodeError" +string m28s474 "YamlDecodeError" +string m28s475 "yaml" +string m28s476 "yaml_mod" +string m28s477 "toml" +string m28s478 "toml_mod" +string m28s479 "std.yaml" +string m28s480 "std.toml" +string m28s481 "json_mod" +string m28s482 "json" +string m28s483 "std.json" +string m28s484 "unary 'not' requires Bool, got " +string m28s485 "not" +string m28s486 "unary - requires numeric type, got " +string m28s487 "negate" +string m28s488 "pipe type mismatch: function expects " +string m28s489 "' must take exactly 1 parameter" +string m28s490 "pipe target '" +string m28s491 "' is not a function" +string m28s492 "pipe operator requires a function name on the right" +string m28s493 "operator 'or' requires Bool, got " +string m28s494 "or" +string m28s495 "operator 'and' requires Bool, got " +string m28s496 "and" +string m28s497 "operator >= type mismatch: " +string m28s498 "operator >= requires numeric or string type, got " +string m28s499 "gte" +string m28s500 "operator <= type mismatch: " +string m28s501 "operator <= requires numeric or string type, got " +string m28s502 "lte" +string m28s503 "operator > type mismatch: " +string m28s504 "operator > requires numeric or string type, got " +string m28s505 "gt" +string m28s506 "operator < type mismatch: " +string m28s507 "operator < requires numeric or string type, got " +string m28s508 "lt" +string m28s509 "operator != type mismatch: " +string m28s510 "neq" +string m28s511 "operator == type mismatch: " +string m28s512 "eq" +string m28s513 "operator % type mismatch: " +string m28s514 "operator % requires integer type, got " +string m28s515 "mod" +string m28s516 "operator / type mismatch: " +string m28s517 "operator / requires numeric type, got " +string m28s518 "div" +string m28s519 "operator * type mismatch: " +string m28s520 "operator * requires numeric type, got " +string m28s521 "mul" +string m28s522 "operator - type mismatch: " +string m28s523 "operator - requires numeric type, got " +string m28s524 "sub" +string m28s525 "operator + type mismatch: " +string m28s526 "operator + requires numeric type, got " +string m28s527 "pipe" +string m28s528 "undefined variable: " +string m28s529 "import it where it is defined" +string m28s530 "' belongs to another module and is not imported here" +string m28s531 "await" +string m28s532 "spawn" +string m28s533 "struct_init" +string m28s534 "lambda" +string m28s535 "match_expr" +string m28s536 "select_expr" +string m28s537 "catch_expr" +string m28s538 "try" +string m28s539 "unwrap" +string m28s540 "if_expr" +string m28s541 "string interpolation requires a stringifiable value, got " +string m28s542 "lit" +string m28s543 "interp_spec" +string m28s544 "string_interp" +string m28s545 "grouped" +string m28s546 "unary" +string m28s547 "binary" +string m28s548 "self" +string m28s549 "bool_lit" +string m28s550 "string_lit" +string m28s551 "float_lit" +string m28s552 "int_lit" +string m28s553 "cannot iterate over " +string m28s554 ".." +string m28s555 "range bounds must be Int, got " +string m28s556 "range" +string m28s557 ".next" +string m28s558 "while let" +string m28s559 "if let" +string m28s560 " supports variant patterns and optional bindings" +string m28s561 "E245" +string m28s562 " with a bare binding needs an optional subject, got " +string m28s563 "else" +string m28s564 "then" +string m28s565 "elif" +string m28s566 "fail type mismatch: expected " +string m28s567 "fail requires function to return a result type" +string m28s568 "E234" +string m28s569 "fail outside of function" +string m28s570 "E231" +string m28s571 "change the return type to " +string m28s572 "return type mismatch: expected " +string m28s573 ", got Void" +string m28s574 "return outside of function" +string m28s575 "lambda returns disagree: " +string m28s576 "type mismatch: expected " +string m28s577 " requires numeric type, got " +string m28s578 "operator " +string m28s579 "=" +string m28s580 "declare with 'mut': mut " +string m28s581 "cannot assign to immutable variable '" +string m28s582 "E216" +string m28s583 "try_expr" +string m28s584 "bind" +string m28s585 "binding" +string m28s586 "errdefer" +string m28s587 "defer" +string m28s588 "continue" +string m28s589 "break" +string m28s590 "fail" +string m28s591 "return" +string m28s592 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m28s593 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m28s594 "E260" +string m28s595 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m28s596 "errdefer is only meaningful in a function returning a result (`T!`)" +string m28s597 "errdefer is only allowed inside a function" +string m28s598 "defer is only allowed inside a function" +string m28s599 "continue outside of loop" +string m28s600 "E215" +string m28s601 "break outside of loop" +string m28s602 "for_stmt" +string m28s603 "while_let" +string m28s604 "if_let" +string m28s605 "while_stmt" +string m28s606 "if_stmt" +string m28s607 "assignment" +string m28s608 "mut" +string m28s609 "fn_decl" +string m28s610 "pub" +string m28s611 " is missing associated type: " +string m28s612 " for " +string m28s613 "impl of " +string m28s614 "E229" +string m28s615 " is missing method: " +string m28s616 "E235" +string m28s617 "fn_sig" +string m28s618 "assoc_type_bind" +string m28s619 "for_type" +string m28s620 "test_decl" +string m28s621 "impl_decl" +string m28s622 "threadlocal" +string m28s623 "import" +string m28s624 "from_import" +string m28s625 "assoc_type" +string m28s626 "' is a builtin type name and cannot be used as an enum name" +string m28s627 "E250" +string m28s628 "' must be " +string m28s629 "default for field '" +string m28s630 " weak" +string m28s631 "' is a builtin type name and cannot be used as a struct name" +string m28s632 "' must be an optional struct type (T?)" +string m28s633 "weak field '" +string m28s634 "E249" +string m28s635 "parameter requires a type annotation" +string m28s636 "type_alias" +string m28s637 "interface_decl" +string m28s638 "unknown generic type: " +string m28s639 "Channel expects 1 type argument, got " +string m28s640 "Task expects 1 type argument, got " +string m28s641 "Map expects 2 type arguments, got " +string m28s642 "Set expects 1 type argument, got " +string m28s643 "List expects 1 type argument, got " +string m28s644 "type nesting too deep" +string m28s645 "E233" +string m28s646 "import it from the module that defines it" +string m28s647 "' is not declared by module '" +string m28s648 "E246" +string m28s649 "*" +string m28s650 "void" +string m28s651 "bytes" +string m28s652 "string" +string m28s653 "bool" +string m28s654 "float" +string m28s655 "int" +string m28s656 "closure" string m28s657 "require_bool" string m28s658 "require_int" -string m28s659 "require" -string m28s660 "std_json_scalar_has_bool" -string m28s661 "std_json_scalar_has_int" -string m28s662 "std_json_scalar_has_string" -string m28s663 "b" -string m28s664 "i" -string m28s665 "s" -string m28s666 "std_json_scan_required_bool_bytes" -string m28s667 "std_json_scan_required_int_bytes" -string m28s668 "std_json_scan_required_string_bytes" -string m28s669 "std_json_require_bool" -string m28s670 "std_json_require_int" -string m28s671 "std_json_require_string" -string m28s672 "object_require_bool" -string m28s673 "object_require_int" -string m28s674 "object_require_string" -string m28s675 "dotted_path" -string m28s676 "handle" -string m28s677 "decode_path" -string m28s678 "std_json_decode_path" -string m28s679 "input" -string m28s680 "std_json_decode" -string m28s681 "std_json_decode_text" -string m28s682 "decode_object" -string m28s683 "std_json_decode_object" -string m28s684 "std_toml_decode_text" +string m28s659 "require_string" +string m28s660 "require" +string m28s661 "std_json_scalar_has_bool" +string m28s662 "std_json_scalar_has_int" +string m28s663 "std_json_scalar_has_string" +string m28s664 "b" +string m28s665 "i" +string m28s666 "s" +string m28s667 "std_json_scan_required_bool_bytes" +string m28s668 "std_json_scan_required_int_bytes" +string m28s669 "std_json_scan_required_string_bytes" +string m28s670 "std_json_require_bool" +string m28s671 "std_json_require_int" +string m28s672 "std_json_require_string" +string m28s673 "object_require_bool" +string m28s674 "object_require_int" +string m28s675 "object_require_string" +string m28s676 "dotted_path" +string m28s677 "handle" +string m28s678 "decode_path" +string m28s679 "std_json_decode_path" +string m28s680 "input" +string m28s681 "std_json_decode" +string m28s682 "std_json_decode_text" +string m28s683 "decode_object" +string m28s684 "std_json_decode_object" string m28s685 "decode_text_path" -string m28s686 "std_toml_decode_text_path" -string m28s687 "std_toml_decode_path" -string m28s688 "std_toml_decode" -string m28s689 "cfg" -string m28s690 "std_config_decode" -string m28s691 "prefix" -string m28s692 "std_config_decode_prefix" -string m28s693 "std/config" -string m28s694 "require_string" -string m28s695 "std_config_require_bool" -string m28s696 "std_config_require_int" -string m28s697 "std_config_require" -string m28s698 "TypeInfo" -string m28s699 "get_type_info" -string m28s700 "ti_channel" -string m28s701 "ti_task" -string m28s702 "ti_set" -string m28s703 "ti_map" -string m28s704 "ti_list" -string m28s705 "ti_tuple" -string m28s706 "ti_result" -string m28s707 "ti_optional" -string m28s708 "ti_function" -string m28s709 "ti_enum" -string m28s710 "ti_struct" -string m28s711 "ti_primitive" -string m28s712 "Token" -string m28s713 "expect" -string m28s714 "advance_token" -string m28s715 "Node" -string m28s716 "get_node" -string m28s717 "struct:" -string m28s718 "set_int" -string m28s719 "map_int" -string m28s720 "list_string" -string m28s721 "parse_int failed" -string m28s722 "file_open_read failed" -string m28s723 "file_open_write failed" -string m28s724 "file_open_append failed" -string m28s725 "byte_buffer_write failed" -string m28s726 "byte_buffer_write_string_utf8 failed" -string m28s727 "byte_buffer_write_byte failed" -string m28s728 "file_write failed" -string m28s729 "file_write_bytes failed" -string m28s730 "tcp_connect failed" -string m28s731 "tcp_listen failed" -string m28s732 "tcp_accept failed" -string m28s733 "tcp_write failed" -string m28s734 "tcp_write_bytes failed" -string m28s735 "process_spawn failed" -string m28s736 "process_spawn_argv failed" -string m28s737 "process_output_argv failed" -string m28s738 "process_write failed" -string m28s739 "process_write_bytes failed" -string m28s740 "crypto_x25519_keygen failed" -string m28s741 "write_file failed" -string m28s742 "append_file failed" -string m28s743 "write_file_bytes failed" -string m28s744 "append_file_bytes failed" -string m28s745 "read_file failed" -string m28s746 "exec_output failed" -string m28s747 "dns_resolve failed" -string m28s748 "bytes_to_string_utf8 failed" -string m28s749 "bytes_substring_utf8 failed" -string m28s750 "file_read failed" -string m28s751 "tcp_read failed" -string m28s752 "process_read failed" -string m28s753 "process_read_err failed" -string m28s754 "read_file_bytes failed" -string m28s755 "b64_decode failed" -string m28s756 "from_hex failed" -string m28s757 "file_read_bytes failed" -string m28s758 "tcp_read_bytes failed" -string m28s759 "process_read_bytes failed" -string m28s760 "process_read_err_bytes failed" -string m28s761 "crypto_x25519_public_key failed" -string m28s762 "crypto_x25519_shared_secret failed" -string m28s763 "crypto_aes_128_gcm_seal failed" -string m28s764 "crypto_aes_128_gcm_open failed" -string m28s765 "crypto_chacha20_poly1305_seal failed" -string m28s766 "crypto_chacha20_poly1305_open failed" -string m28s767 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m28s686 "std_yaml_" +string m28s687 "std_toml_" +string m28s688 "cfg" +string m28s689 "std_config_decode" +string m28s690 "prefix" +string m28s691 "std_config_decode_prefix" +string m28s692 "std/config" +string m28s693 "std_config_require_bool" +string m28s694 "std_config_require_int" +string m28s695 "std_config_require" +string m28s696 "TypeInfo" +string m28s697 "get_type_info" +string m28s698 "ti_channel" +string m28s699 "ti_task" +string m28s700 "ti_set" +string m28s701 "ti_map" +string m28s702 "ti_list" +string m28s703 "ti_tuple" +string m28s704 "ti_result" +string m28s705 "ti_optional" +string m28s706 "ti_function" +string m28s707 "ti_enum" +string m28s708 "ti_struct" +string m28s709 "ti_primitive" +string m28s710 "Token" +string m28s711 "expect" +string m28s712 "advance_token" +string m28s713 "Node" +string m28s714 "get_node" +string m28s715 "struct:" +string m28s716 "set_int" +string m28s717 "map_int" +string m28s718 "list_string" +string m28s719 "parse_int failed" +string m28s720 "file_open_read failed" +string m28s721 "file_open_write failed" +string m28s722 "file_open_append failed" +string m28s723 "byte_buffer_write failed" +string m28s724 "byte_buffer_write_string_utf8 failed" +string m28s725 "byte_buffer_write_byte failed" +string m28s726 "file_write failed" +string m28s727 "file_write_bytes failed" +string m28s728 "tcp_connect failed" +string m28s729 "tcp_listen failed" +string m28s730 "tcp_accept failed" +string m28s731 "tcp_write failed" +string m28s732 "tcp_write_bytes failed" +string m28s733 "process_spawn failed" +string m28s734 "process_spawn_argv failed" +string m28s735 "process_output_argv failed" +string m28s736 "process_write failed" +string m28s737 "process_write_bytes failed" +string m28s738 "crypto_x25519_keygen failed" +string m28s739 "write_file failed" +string m28s740 "append_file failed" +string m28s741 "write_file_bytes failed" +string m28s742 "append_file_bytes failed" +string m28s743 "read_file failed" +string m28s744 "exec_output failed" +string m28s745 "dns_resolve failed" +string m28s746 "bytes_to_string_utf8 failed" +string m28s747 "bytes_substring_utf8 failed" +string m28s748 "file_read failed" +string m28s749 "tcp_read failed" +string m28s750 "process_read failed" +string m28s751 "process_read_err failed" +string m28s752 "read_file_bytes failed" +string m28s753 "b64_decode failed" +string m28s754 "from_hex failed" +string m28s755 "file_read_bytes failed" +string m28s756 "tcp_read_bytes failed" +string m28s757 "process_read_bytes failed" +string m28s758 "process_read_err_bytes failed" +string m28s759 "crypto_x25519_public_key failed" +string m28s760 "crypto_x25519_shared_secret failed" +string m28s761 "crypto_aes_128_gcm_seal failed" +string m28s762 "crypto_aes_128_gcm_open failed" +string m28s763 "crypto_chacha20_poly1305_seal failed" +string m28s764 "crypto_chacha20_poly1305_open failed" +string m28s765 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -89027,12 +89235,12 @@ endfunc func ir_struct_registry_ir_rc_kind 1 string param type_hint load 1 type_hint -strref 2 m28s649 +strref 2 m28s652 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 brif 3 L7 L8 label L7 -strref 5 m28s649 +strref 5 m28s652 ret 5 label L8 label L6 @@ -89046,7 +89254,7 @@ store __or_6_12 9 brif 9 L13 L12 label L12 load 11 type_hint -strref 12 m28s720 +strref 12 m28s718 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 store __or_6_12 13 @@ -89068,7 +89276,7 @@ store __or_17_17 20 brif 20 L18 L17 label L17 load 22 type_hint -strref 23 m28s719 +strref 23 m28s717 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 store __or_17_17 24 @@ -89090,7 +89298,7 @@ store __or_28_22 31 brif 31 L23 L22 label L22 load 33 type_hint -strref 34 m28s718 +strref 34 m28s716 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 store __or_28_22 35 @@ -89103,22 +89311,22 @@ ret 38 label L21 label L19 load 39 type_hint -strref 40 m28s648 +strref 40 m28s651 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 brif 41 L25 L26 label L25 -strref 43 m28s648 +strref 43 m28s651 ret 43 label L26 label L24 load 44 type_hint -strref 45 m28s653 +strref 45 m28s656 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 brif 46 L28 L29 label L28 -strref 48 m28s653 +strref 48 m28s656 ret 48 label L29 label L27 @@ -89133,7 +89341,7 @@ ret 53 label L32 label L30 load 54 type_hint -strref 55 m28s717 +strref 55 m28s715 call 56 pith_cstring_starts_with bool 2 54 55 call 57 pith_cstring_release void 1 55 brif 56 L34 L35 @@ -89171,26 +89379,26 @@ ret 4 label L41 label L39 load 6 fname -strref 7 m28s716 +strref 7 m28s714 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 brif 8 L43 L44 label L43 -strref 10 m28s715 +strref 10 m28s713 ret 10 label L44 label L42 iconst 11 0 store __or_11_48 11 load 12 fname -strref 13 m28s714 +strref 13 m28s712 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 store __or_11_48 14 brif 14 L49 L48 label L48 load 16 fname -strref 17 m28s713 +strref 17 m28s711 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 store __or_11_48 18 @@ -89198,7 +89406,7 @@ label L49 load 20 __or_11_48 brif 20 L46 L47 label L46 -strref 21 m28s712 +strref 21 m28s710 ret 21 label L47 label L45 @@ -89227,14 +89435,14 @@ store __or_32_53 32 iconst 33 0 store __or_33_53 33 load 34 fname -strref 35 m28s711 +strref 35 m28s709 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 store __or_33_53 36 brif 36 L54 L53 label L53 load 38 fname -strref 39 m28s710 +strref 39 m28s708 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 store __or_33_53 40 @@ -89244,7 +89452,7 @@ store __or_32_53 42 brif 42 L56 L55 label L55 load 43 fname -strref 44 m28s709 +strref 44 m28s707 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 store __or_32_53 45 @@ -89254,7 +89462,7 @@ store __or_31_53 47 brif 47 L58 L57 label L57 load 48 fname -strref 49 m28s708 +strref 49 m28s706 call 50 pith_cstring_eq bool 2 48 49 call 51 pith_cstring_release void 1 49 store __or_31_53 50 @@ -89264,7 +89472,7 @@ store __or_30_53 52 brif 52 L60 L59 label L59 load 53 fname -strref 54 m28s707 +strref 54 m28s705 call 55 pith_cstring_eq bool 2 53 54 call 56 pith_cstring_release void 1 54 store __or_30_53 55 @@ -89274,7 +89482,7 @@ store __or_29_53 57 brif 57 L62 L61 label L61 load 58 fname -strref 59 m28s706 +strref 59 m28s704 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 store __or_29_53 60 @@ -89284,7 +89492,7 @@ store __or_28_53 62 brif 62 L64 L63 label L63 load 63 fname -strref 64 m28s705 +strref 64 m28s703 call 65 pith_cstring_eq bool 2 63 64 call 66 pith_cstring_release void 1 64 store __or_28_53 65 @@ -89294,7 +89502,7 @@ store __or_27_53 67 brif 67 L66 L65 label L65 load 68 fname -strref 69 m28s704 +strref 69 m28s702 call 70 pith_cstring_eq bool 2 68 69 call 71 pith_cstring_release void 1 69 store __or_27_53 70 @@ -89304,7 +89512,7 @@ store __or_26_53 72 brif 72 L68 L67 label L67 load 73 fname -strref 74 m28s703 +strref 74 m28s701 call 75 pith_cstring_eq bool 2 73 74 call 76 pith_cstring_release void 1 74 store __or_26_53 75 @@ -89314,7 +89522,7 @@ store __or_25_53 77 brif 77 L70 L69 label L69 load 78 fname -strref 79 m28s702 +strref 79 m28s700 call 80 pith_cstring_eq bool 2 78 79 call 81 pith_cstring_release void 1 79 store __or_25_53 80 @@ -89324,7 +89532,7 @@ store __or_24_53 82 brif 82 L72 L71 label L71 load 83 fname -strref 84 m28s701 +strref 84 m28s699 call 85 pith_cstring_eq bool 2 83 84 call 86 pith_cstring_release void 1 84 store __or_24_53 85 @@ -89334,7 +89542,7 @@ store __or_23_53 87 brif 87 L74 L73 label L73 load 88 fname -strref 89 m28s700 +strref 89 m28s698 call 90 pith_cstring_eq bool 2 88 89 call 91 pith_cstring_release void 1 89 store __or_23_53 90 @@ -89344,7 +89552,7 @@ store __or_22_53 92 brif 92 L76 L75 label L75 load 93 fname -strref 94 m28s699 +strref 94 m28s697 call 95 pith_cstring_eq bool 2 93 94 call 96 pith_cstring_release void 1 94 store __or_22_53 95 @@ -89352,7 +89560,7 @@ label L76 load 97 __or_22_53 brif 97 L51 L52 label L51 -strref 98 m28s698 +strref 98 m28s696 ret 98 label L52 label L50 @@ -90369,379 +90577,377 @@ string m30s440 "config typed file decode argument type mismatch: expected " string m30s441 "config typed file decode target must be a struct, got " string m30s442 "config typed file decode expects 1 argument, got " string m30s443 "config typed file decode requires an explicit struct type" -string m30s444 "unknown type: TomlDecodeError" -string m30s445 "TomlDecodeError" -string m30s446 "toml.decode does not support field '" -string m30s447 "toml.decode target field must be public: " -string m30s448 "toml.decode argument type mismatch: expected " -string m30s449 "toml.decode target must be a struct, got " -string m30s450 "toml.decode expects 1 argument, got " -string m30s451 "toml.decode requires an explicit struct type" -string m30s452 "unknown type: JsonDecodeError" -string m30s453 "JsonDecodeError" -string m30s454 "json.decode does not support field '" -string m30s455 "json.decode target field must be public: " -string m30s456 "json.decode argument type mismatch: expected " -string m30s457 "json.decode target must be a struct, got " -string m30s458 "json.decode expects 1 argument, got " -string m30s459 "json.decode requires an explicit struct type" -string m30s460 "config.decode does not support field '" -string m30s461 "config.decode target field must be public: " -string m30s462 "config.decode prefix type mismatch: expected String, got " -string m30s463 "config.decode argument type mismatch: expected Config, got " -string m30s464 "unknown type: Config" -string m30s465 "Config" -string m30s466 "config.decode target must be a struct, got " -string m30s467 " argument(s), got " -string m30s468 "config.decode expects " -string m30s469 "config.decode requires an explicit struct type" -string m30s470 "|" -string m30s471 "json.decode type argument must be a concrete struct type" -string m30s472 "config_mod" -string m30s473 "config" -string m30s474 "std.config" -string m30s475 "toml_mod" -string m30s476 "toml" -string m30s477 "std.toml" -string m30s478 "json_mod" -string m30s479 "json" -string m30s480 "std.json" -string m30s481 "unary 'not' requires Bool, got " -string m30s482 "not" -string m30s483 "unary - requires numeric type, got " -string m30s484 "negate" -string m30s485 "pipe type mismatch: function expects " -string m30s486 "' must take exactly 1 parameter" -string m30s487 "pipe target '" -string m30s488 "' is not a function" -string m30s489 "pipe operator requires a function name on the right" -string m30s490 "operator 'or' requires Bool, got " -string m30s491 "or" -string m30s492 "operator 'and' requires Bool, got " -string m30s493 "and" -string m30s494 "operator >= type mismatch: " -string m30s495 "operator >= requires numeric or string type, got " -string m30s496 "gte" -string m30s497 "operator <= type mismatch: " -string m30s498 "operator <= requires numeric or string type, got " -string m30s499 "lte" -string m30s500 "operator > type mismatch: " -string m30s501 "operator > requires numeric or string type, got " -string m30s502 "gt" -string m30s503 "operator < type mismatch: " -string m30s504 "operator < requires numeric or string type, got " -string m30s505 "lt" -string m30s506 "operator != type mismatch: " -string m30s507 "neq" -string m30s508 "operator == type mismatch: " -string m30s509 "eq" -string m30s510 "operator % type mismatch: " -string m30s511 "operator % requires integer type, got " -string m30s512 "mod" -string m30s513 "operator / type mismatch: " -string m30s514 "operator / requires numeric type, got " -string m30s515 "div" -string m30s516 "operator * type mismatch: " -string m30s517 "operator * requires numeric type, got " -string m30s518 "mul" -string m30s519 "operator - type mismatch: " -string m30s520 "operator - requires numeric type, got " -string m30s521 "sub" -string m30s522 "operator + type mismatch: " -string m30s523 "operator + requires numeric type, got " -string m30s524 "pipe" -string m30s525 "undefined variable: " -string m30s526 "import it where it is defined" -string m30s527 "' belongs to another module and is not imported here" -string m30s528 "await" -string m30s529 "spawn" -string m30s530 "struct_init" -string m30s531 "lambda" -string m30s532 "match_expr" -string m30s533 "select_expr" -string m30s534 "catch_expr" -string m30s535 "try" -string m30s536 "unwrap" -string m30s537 "if_expr" -string m30s538 "string interpolation requires a stringifiable value, got " -string m30s539 "lit" -string m30s540 "interp_spec" -string m30s541 "string_interp" -string m30s542 "grouped" -string m30s543 "unary" -string m30s544 "binary" -string m30s545 "self" -string m30s546 "bool_lit" -string m30s547 "string_lit" -string m30s548 "float_lit" -string m30s549 "int_lit" -string m30s550 "cannot iterate over " -string m30s551 ".." -string m30s552 "range bounds must be Int, got " -string m30s553 "range" -string m30s554 ".next" -string m30s555 "while let" -string m30s556 "if let" -string m30s557 " supports variant patterns and optional bindings" -string m30s558 "E245" -string m30s559 " with a bare binding needs an optional subject, got " -string m30s560 "else" -string m30s561 "then" -string m30s562 "elif" -string m30s563 "fail type mismatch: expected " -string m30s564 "fail requires function to return a result type" -string m30s565 "E234" -string m30s566 "fail outside of function" -string m30s567 "E231" -string m30s568 "change the return type to " -string m30s569 "return type mismatch: expected " -string m30s570 ", got Void" -string m30s571 "return outside of function" -string m30s572 "lambda returns disagree: " -string m30s573 "type mismatch: expected " -string m30s574 " requires numeric type, got " -string m30s575 "operator " -string m30s576 "=" -string m30s577 "declare with 'mut': mut " -string m30s578 "cannot assign to immutable variable '" -string m30s579 "E216" -string m30s580 "try_expr" -string m30s581 "bind" -string m30s582 "binding" -string m30s583 "errdefer" -string m30s584 "defer" -string m30s585 "continue" -string m30s586 "break" -string m30s587 "fail" -string m30s588 "return" -string m30s589 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m30s590 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m30s591 "E260" -string m30s592 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m30s593 "errdefer is only meaningful in a function returning a result (`T!`)" -string m30s594 "errdefer is only allowed inside a function" -string m30s595 "defer is only allowed inside a function" -string m30s596 "continue outside of loop" -string m30s597 "E215" -string m30s598 "break outside of loop" -string m30s599 "for_stmt" -string m30s600 "while_let" -string m30s601 "if_let" -string m30s602 "while_stmt" -string m30s603 "if_stmt" -string m30s604 "assignment" -string m30s605 "mut" -string m30s606 "fn_decl" -string m30s607 "pub" -string m30s608 " is missing associated type: " -string m30s609 " for " -string m30s610 "impl of " -string m30s611 "E229" -string m30s612 " is missing method: " -string m30s613 "E235" -string m30s614 "fn_sig" -string m30s615 "assoc_type_bind" -string m30s616 "for_type" -string m30s617 "test_decl" -string m30s618 "impl_decl" -string m30s619 "threadlocal" -string m30s620 "import" -string m30s621 "from_import" -string m30s622 "assoc_type" -string m30s623 "' is a builtin type name and cannot be used as an enum name" -string m30s624 "E250" -string m30s625 "' must be " -string m30s626 "default for field '" -string m30s627 " weak" -string m30s628 "' is a builtin type name and cannot be used as a struct name" -string m30s629 "' must be an optional struct type (T?)" -string m30s630 "weak field '" -string m30s631 "E249" -string m30s632 "parameter requires a type annotation" -string m30s633 "type_alias" -string m30s634 "interface_decl" -string m30s635 "unknown generic type: " -string m30s636 "Channel expects 1 type argument, got " -string m30s637 "Task expects 1 type argument, got " -string m30s638 "Map expects 2 type arguments, got " -string m30s639 "Set expects 1 type argument, got " -string m30s640 "List expects 1 type argument, got " -string m30s641 "type nesting too deep" -string m30s642 "E233" -string m30s643 "import it from the module that defines it" -string m30s644 "' is not declared by module '" -string m30s645 "E246" -string m30s646 "*" -string m30s647 "call " -string m30s648 "tcp_read2" -string m30s649 "tcp_read" -string m30s650 "bool" -string m30s651 "result_bool" -string m30s652 "int" -string m30s653 "result_int" -string m30s654 "ResolvedCallee(" -string m30s655 "sname,bimported" -string m30s656 "name: " -string m30s657 "imported" -string m30s658 ", imported: " -string m30s659 "std_toml_require_bool" -string m30s660 "std_toml_require_int" -string m30s661 "std_toml_require_string" +string m30s444 " does not support field '" +string m30s445 " target field must be public: " +string m30s446 " argument type mismatch: expected " +string m30s447 " target must be a struct, got " +string m30s448 " requires an explicit struct type" +string m30s449 ".decode" +string m30s450 "unknown type: JsonDecodeError" +string m30s451 "JsonDecodeError" +string m30s452 "json.decode does not support field '" +string m30s453 "json.decode target field must be public: " +string m30s454 "json.decode argument type mismatch: expected " +string m30s455 "json.decode target must be a struct, got " +string m30s456 "json.decode expects 1 argument, got " +string m30s457 "json.decode requires an explicit struct type" +string m30s458 "config.decode does not support field '" +string m30s459 "config.decode target field must be public: " +string m30s460 "config.decode prefix type mismatch: expected String, got " +string m30s461 "config.decode argument type mismatch: expected Config, got " +string m30s462 "unknown type: Config" +string m30s463 "Config" +string m30s464 "config.decode target must be a struct, got " +string m30s465 " argument(s), got " +string m30s466 "config.decode expects " +string m30s467 "config.decode requires an explicit struct type" +string m30s468 "|" +string m30s469 "json.decode type argument must be a concrete struct type" +string m30s470 "config_mod" +string m30s471 "config" +string m30s472 "std.config" +string m30s473 "TomlDecodeError" +string m30s474 "YamlDecodeError" +string m30s475 "yaml" +string m30s476 "yaml_mod" +string m30s477 "toml" +string m30s478 "toml_mod" +string m30s479 "std.yaml" +string m30s480 "std.toml" +string m30s481 "json_mod" +string m30s482 "json" +string m30s483 "std.json" +string m30s484 "unary 'not' requires Bool, got " +string m30s485 "not" +string m30s486 "unary - requires numeric type, got " +string m30s487 "negate" +string m30s488 "pipe type mismatch: function expects " +string m30s489 "' must take exactly 1 parameter" +string m30s490 "pipe target '" +string m30s491 "' is not a function" +string m30s492 "pipe operator requires a function name on the right" +string m30s493 "operator 'or' requires Bool, got " +string m30s494 "or" +string m30s495 "operator 'and' requires Bool, got " +string m30s496 "and" +string m30s497 "operator >= type mismatch: " +string m30s498 "operator >= requires numeric or string type, got " +string m30s499 "gte" +string m30s500 "operator <= type mismatch: " +string m30s501 "operator <= requires numeric or string type, got " +string m30s502 "lte" +string m30s503 "operator > type mismatch: " +string m30s504 "operator > requires numeric or string type, got " +string m30s505 "gt" +string m30s506 "operator < type mismatch: " +string m30s507 "operator < requires numeric or string type, got " +string m30s508 "lt" +string m30s509 "operator != type mismatch: " +string m30s510 "neq" +string m30s511 "operator == type mismatch: " +string m30s512 "eq" +string m30s513 "operator % type mismatch: " +string m30s514 "operator % requires integer type, got " +string m30s515 "mod" +string m30s516 "operator / type mismatch: " +string m30s517 "operator / requires numeric type, got " +string m30s518 "div" +string m30s519 "operator * type mismatch: " +string m30s520 "operator * requires numeric type, got " +string m30s521 "mul" +string m30s522 "operator - type mismatch: " +string m30s523 "operator - requires numeric type, got " +string m30s524 "sub" +string m30s525 "operator + type mismatch: " +string m30s526 "operator + requires numeric type, got " +string m30s527 "pipe" +string m30s528 "undefined variable: " +string m30s529 "import it where it is defined" +string m30s530 "' belongs to another module and is not imported here" +string m30s531 "await" +string m30s532 "spawn" +string m30s533 "struct_init" +string m30s534 "lambda" +string m30s535 "match_expr" +string m30s536 "select_expr" +string m30s537 "catch_expr" +string m30s538 "try" +string m30s539 "unwrap" +string m30s540 "if_expr" +string m30s541 "string interpolation requires a stringifiable value, got " +string m30s542 "lit" +string m30s543 "interp_spec" +string m30s544 "string_interp" +string m30s545 "grouped" +string m30s546 "unary" +string m30s547 "binary" +string m30s548 "self" +string m30s549 "bool_lit" +string m30s550 "string_lit" +string m30s551 "float_lit" +string m30s552 "int_lit" +string m30s553 "cannot iterate over " +string m30s554 ".." +string m30s555 "range bounds must be Int, got " +string m30s556 "range" +string m30s557 ".next" +string m30s558 "while let" +string m30s559 "if let" +string m30s560 " supports variant patterns and optional bindings" +string m30s561 "E245" +string m30s562 " with a bare binding needs an optional subject, got " +string m30s563 "else" +string m30s564 "then" +string m30s565 "elif" +string m30s566 "fail type mismatch: expected " +string m30s567 "fail requires function to return a result type" +string m30s568 "E234" +string m30s569 "fail outside of function" +string m30s570 "E231" +string m30s571 "change the return type to " +string m30s572 "return type mismatch: expected " +string m30s573 ", got Void" +string m30s574 "return outside of function" +string m30s575 "lambda returns disagree: " +string m30s576 "type mismatch: expected " +string m30s577 " requires numeric type, got " +string m30s578 "operator " +string m30s579 "=" +string m30s580 "declare with 'mut': mut " +string m30s581 "cannot assign to immutable variable '" +string m30s582 "E216" +string m30s583 "try_expr" +string m30s584 "bind" +string m30s585 "binding" +string m30s586 "errdefer" +string m30s587 "defer" +string m30s588 "continue" +string m30s589 "break" +string m30s590 "fail" +string m30s591 "return" +string m30s592 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m30s593 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m30s594 "E260" +string m30s595 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m30s596 "errdefer is only meaningful in a function returning a result (`T!`)" +string m30s597 "errdefer is only allowed inside a function" +string m30s598 "defer is only allowed inside a function" +string m30s599 "continue outside of loop" +string m30s600 "E215" +string m30s601 "break outside of loop" +string m30s602 "for_stmt" +string m30s603 "while_let" +string m30s604 "if_let" +string m30s605 "while_stmt" +string m30s606 "if_stmt" +string m30s607 "assignment" +string m30s608 "mut" +string m30s609 "fn_decl" +string m30s610 "pub" +string m30s611 " is missing associated type: " +string m30s612 " for " +string m30s613 "impl of " +string m30s614 "E229" +string m30s615 " is missing method: " +string m30s616 "E235" +string m30s617 "fn_sig" +string m30s618 "assoc_type_bind" +string m30s619 "for_type" +string m30s620 "test_decl" +string m30s621 "impl_decl" +string m30s622 "threadlocal" +string m30s623 "import" +string m30s624 "from_import" +string m30s625 "assoc_type" +string m30s626 "' is a builtin type name and cannot be used as an enum name" +string m30s627 "E250" +string m30s628 "' must be " +string m30s629 "default for field '" +string m30s630 " weak" +string m30s631 "' is a builtin type name and cannot be used as a struct name" +string m30s632 "' must be an optional struct type (T?)" +string m30s633 "weak field '" +string m30s634 "E249" +string m30s635 "parameter requires a type annotation" +string m30s636 "type_alias" +string m30s637 "interface_decl" +string m30s638 "unknown generic type: " +string m30s639 "Channel expects 1 type argument, got " +string m30s640 "Task expects 1 type argument, got " +string m30s641 "Map expects 2 type arguments, got " +string m30s642 "Set expects 1 type argument, got " +string m30s643 "List expects 1 type argument, got " +string m30s644 "type nesting too deep" +string m30s645 "E233" +string m30s646 "import it from the module that defines it" +string m30s647 "' is not declared by module '" +string m30s648 "E246" +string m30s649 "*" +string m30s650 "call " +string m30s651 "tcp_read2" +string m30s652 "tcp_read" +string m30s653 "bool" +string m30s654 "result_bool" +string m30s655 "int" +string m30s656 "result_int" +string m30s657 "ResolvedCallee(" +string m30s658 "sname,bimported" +string m30s659 "name: " +string m30s660 "imported" +string m30s661 ", imported: " string m30s662 "require_bool" string m30s663 "require_int" -string m30s664 "require" -string m30s665 "std_json_scalar_has_bool" -string m30s666 "std_json_scalar_has_int" -string m30s667 "std_json_scalar_has_string" -string m30s668 "b" -string m30s669 "i" -string m30s670 "s" -string m30s671 "std_json_scan_required_bool_bytes" -string m30s672 "std_json_scan_required_int_bytes" -string m30s673 "std_json_scan_required_string_bytes" -string m30s674 "std_json_require_bool" -string m30s675 "std_json_require_int" -string m30s676 "std_json_require_string" -string m30s677 "object_require_bool" -string m30s678 "object_require_int" -string m30s679 "object_require_string" -string m30s680 "dotted_path" -string m30s681 "handle" -string m30s682 "decode_path" -string m30s683 "std_json_decode_path" -string m30s684 "input" -string m30s685 "std_json_decode" -string m30s686 "std_json_decode_text" -string m30s687 "decode_object" -string m30s688 "std_json_decode_object" -string m30s689 "std_toml_decode_text" +string m30s664 "require_string" +string m30s665 "require" +string m30s666 "std_json_scalar_has_bool" +string m30s667 "std_json_scalar_has_int" +string m30s668 "std_json_scalar_has_string" +string m30s669 "b" +string m30s670 "i" +string m30s671 "s" +string m30s672 "std_json_scan_required_bool_bytes" +string m30s673 "std_json_scan_required_int_bytes" +string m30s674 "std_json_scan_required_string_bytes" +string m30s675 "std_json_require_bool" +string m30s676 "std_json_require_int" +string m30s677 "std_json_require_string" +string m30s678 "object_require_bool" +string m30s679 "object_require_int" +string m30s680 "object_require_string" +string m30s681 "dotted_path" +string m30s682 "handle" +string m30s683 "decode_path" +string m30s684 "std_json_decode_path" +string m30s685 "input" +string m30s686 "std_json_decode" +string m30s687 "std_json_decode_text" +string m30s688 "decode_object" +string m30s689 "std_json_decode_object" string m30s690 "decode_text_path" -string m30s691 "std_toml_decode_text_path" -string m30s692 "std_toml_decode_path" -string m30s693 "std_toml_decode" -string m30s694 "cfg" -string m30s695 "std_config_decode" -string m30s696 "prefix" -string m30s697 "std_config_decode_prefix" -string m30s698 "std/config" -string m30s699 "require_string" -string m30s700 "string" -string m30s701 "std_config_require_bool" -string m30s702 "std_config_require_int" -string m30s703 "std_config_require" -string m30s704 "field " -string m30s705 "unknown" -string m30s706 "-" -string m30s707 "closure" -string m30s708 "set_int" -string m30s709 "map_int" -string m30s710 "list_string" -string m30s711 "__" -string m30s712 "std_config_" -string m30s713 "std_json_" -string m30s714 " ok" -string m30s715 " 8 " -string m30s716 " failed" -string m30s717 "strref " -string m30s718 " 0" -string m30s719 "iconst " -string m30s720 "eq " -string m30s721 " 0 bool is_ok" -string m30s722 "sub " -string m30s723 " 1" -string m30s724 "add " -string m30s725 "not_op" -string m30s726 "!" -string m30s727 "integer" -string m30s728 "str_lit" -string m30s729 "float" -string m30s730 "list:" -string m30s731 "task:" -string m30s732 "channel:" -string m30s733 "bytes" -string m30s734 "struct:" -string m30s735 "opaque:" -string m30s736 "void" -string m30s737 "Set[UInt64]" -string m30s738 "Set[UInt32]" -string m30s739 "Set[UInt16]" -string m30s740 "Set[UInt8]" -string m30s741 "Set[Int64]" -string m30s742 "Set[Int32]" -string m30s743 "Set[Int16]" -string m30s744 "Set[Int8]" -string m30s745 "Set[UInt]" -string m30s746 "Set[Int]" -string m30s747 "Map[Int, " -string m30s748 "Map[Int," -string m30s749 "List[String]" -string m30s750 "TypeInfo" -string m30s751 "get_type_info" -string m30s752 "ti_channel" -string m30s753 "ti_task" -string m30s754 "ti_set" -string m30s755 "ti_map" -string m30s756 "ti_list" -string m30s757 "ti_tuple" -string m30s758 "ti_result" -string m30s759 "ti_optional" -string m30s760 "ti_function" -string m30s761 "ti_enum" -string m30s762 "ti_struct" -string m30s763 "ti_primitive" -string m30s764 "Token" -string m30s765 "expect" -string m30s766 "advance_token" -string m30s767 "Node" -string m30s768 "get_node" -string m30s769 "a" -string m30s770 "parse_int failed" -string m30s771 "file_open_read failed" -string m30s772 "file_open_write failed" -string m30s773 "file_open_append failed" -string m30s774 "byte_buffer_write failed" -string m30s775 "byte_buffer_write_string_utf8 failed" -string m30s776 "byte_buffer_write_byte failed" -string m30s777 "file_write failed" -string m30s778 "file_write_bytes failed" -string m30s779 "tcp_connect failed" -string m30s780 "tcp_listen failed" -string m30s781 "tcp_accept failed" -string m30s782 "tcp_write failed" -string m30s783 "tcp_write_bytes failed" -string m30s784 "process_spawn failed" -string m30s785 "process_spawn_argv failed" -string m30s786 "process_output_argv failed" -string m30s787 "process_write failed" -string m30s788 "process_write_bytes failed" -string m30s789 "crypto_x25519_keygen failed" -string m30s790 "write_file failed" -string m30s791 "append_file failed" -string m30s792 "write_file_bytes failed" -string m30s793 "append_file_bytes failed" -string m30s794 "read_file failed" -string m30s795 "exec_output failed" -string m30s796 "dns_resolve failed" -string m30s797 "bytes_to_string_utf8 failed" -string m30s798 "bytes_substring_utf8 failed" -string m30s799 "file_read failed" -string m30s800 "tcp_read failed" -string m30s801 "process_read failed" -string m30s802 "process_read_err failed" -string m30s803 "read_file_bytes failed" -string m30s804 "b64_decode failed" -string m30s805 "from_hex failed" -string m30s806 "file_read_bytes failed" -string m30s807 "tcp_read_bytes failed" -string m30s808 "process_read_bytes failed" -string m30s809 "process_read_err_bytes failed" -string m30s810 "crypto_x25519_public_key failed" -string m30s811 "crypto_x25519_shared_secret failed" -string m30s812 "crypto_aes_128_gcm_seal failed" -string m30s813 "crypto_aes_128_gcm_open failed" -string m30s814 "crypto_chacha20_poly1305_seal failed" -string m30s815 "crypto_chacha20_poly1305_open failed" -string m30s816 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m30s691 "std_yaml_" +string m30s692 "std_toml_" +string m30s693 "cfg" +string m30s694 "std_config_decode" +string m30s695 "prefix" +string m30s696 "std_config_decode_prefix" +string m30s697 "std/config" +string m30s698 "string" +string m30s699 "std_config_require_bool" +string m30s700 "std_config_require_int" +string m30s701 "std_config_require" +string m30s702 "field " +string m30s703 "unknown" +string m30s704 "-" +string m30s705 "closure" +string m30s706 "set_int" +string m30s707 "map_int" +string m30s708 "list_string" +string m30s709 "__" +string m30s710 "std_config_" +string m30s711 "std_json_" +string m30s712 " ok" +string m30s713 " 8 " +string m30s714 " failed" +string m30s715 "strref " +string m30s716 " 0" +string m30s717 "iconst " +string m30s718 "eq " +string m30s719 " 0 bool is_ok" +string m30s720 "sub " +string m30s721 " 1" +string m30s722 "add " +string m30s723 "not_op" +string m30s724 "!" +string m30s725 "integer" +string m30s726 "str_lit" +string m30s727 "float" +string m30s728 "list:" +string m30s729 "task:" +string m30s730 "channel:" +string m30s731 "bytes" +string m30s732 "struct:" +string m30s733 "opaque:" +string m30s734 "void" +string m30s735 "Set[UInt64]" +string m30s736 "Set[UInt32]" +string m30s737 "Set[UInt16]" +string m30s738 "Set[UInt8]" +string m30s739 "Set[Int64]" +string m30s740 "Set[Int32]" +string m30s741 "Set[Int16]" +string m30s742 "Set[Int8]" +string m30s743 "Set[UInt]" +string m30s744 "Set[Int]" +string m30s745 "Map[Int, " +string m30s746 "Map[Int," +string m30s747 "List[String]" +string m30s748 "TypeInfo" +string m30s749 "get_type_info" +string m30s750 "ti_channel" +string m30s751 "ti_task" +string m30s752 "ti_set" +string m30s753 "ti_map" +string m30s754 "ti_list" +string m30s755 "ti_tuple" +string m30s756 "ti_result" +string m30s757 "ti_optional" +string m30s758 "ti_function" +string m30s759 "ti_enum" +string m30s760 "ti_struct" +string m30s761 "ti_primitive" +string m30s762 "Token" +string m30s763 "expect" +string m30s764 "advance_token" +string m30s765 "Node" +string m30s766 "get_node" +string m30s767 "a" +string m30s768 "parse_int failed" +string m30s769 "file_open_read failed" +string m30s770 "file_open_write failed" +string m30s771 "file_open_append failed" +string m30s772 "byte_buffer_write failed" +string m30s773 "byte_buffer_write_string_utf8 failed" +string m30s774 "byte_buffer_write_byte failed" +string m30s775 "file_write failed" +string m30s776 "file_write_bytes failed" +string m30s777 "tcp_connect failed" +string m30s778 "tcp_listen failed" +string m30s779 "tcp_accept failed" +string m30s780 "tcp_write failed" +string m30s781 "tcp_write_bytes failed" +string m30s782 "process_spawn failed" +string m30s783 "process_spawn_argv failed" +string m30s784 "process_output_argv failed" +string m30s785 "process_write failed" +string m30s786 "process_write_bytes failed" +string m30s787 "crypto_x25519_keygen failed" +string m30s788 "write_file failed" +string m30s789 "append_file failed" +string m30s790 "write_file_bytes failed" +string m30s791 "append_file_bytes failed" +string m30s792 "read_file failed" +string m30s793 "exec_output failed" +string m30s794 "dns_resolve failed" +string m30s795 "bytes_to_string_utf8 failed" +string m30s796 "bytes_substring_utf8 failed" +string m30s797 "file_read failed" +string m30s798 "tcp_read failed" +string m30s799 "process_read failed" +string m30s800 "process_read_err failed" +string m30s801 "read_file_bytes failed" +string m30s802 "b64_decode failed" +string m30s803 "from_hex failed" +string m30s804 "file_read_bytes failed" +string m30s805 "tcp_read_bytes failed" +string m30s806 "process_read_bytes failed" +string m30s807 "process_read_err_bytes failed" +string m30s808 "crypto_x25519_public_key failed" +string m30s809 "crypto_x25519_shared_secret failed" +string m30s810 "crypto_aes_128_gcm_seal failed" +string m30s811 "crypto_aes_128_gcm_open failed" +string m30s812 "crypto_chacha20_poly1305_seal failed" +string m30s813 "crypto_chacha20_poly1305_open failed" +string m30s814 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -90934,7 +91140,7 @@ func ir_alias_registry_ir_record_global_type 2 void param name param global_type load 2 global_type -strref 3 m30s652 +strref 3 m30s655 call 4 pith_cstring_eq bool 2 2 3 call 5 pith_cstring_release void 1 3 brif 4 L1 L2 @@ -90946,7 +91152,7 @@ store ir_alias_registry_ir_global_int_names 8 jmp L0 label L2 load 9 global_type -strref 10 m30s700 +strref 10 m30s698 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 brif 11 L3 L4 @@ -90958,7 +91164,7 @@ store ir_alias_registry_ir_global_string_names 15 jmp L0 label L4 load 16 global_type -strref 17 m30s710 +strref 17 m30s708 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 brif 18 L5 L6 @@ -90982,7 +91188,7 @@ store ir_alias_registry_ir_global_list_names 29 jmp L0 label L8 load 30 global_type -strref 31 m30s709 +strref 31 m30s707 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 brif 32 L9 L10 @@ -91018,7 +91224,7 @@ store ir_alias_registry_ir_global_set_names 50 jmp L0 label L14 load 51 global_type -strref 52 m30s708 +strref 52 m30s706 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 brif 53 L15 L16 @@ -91030,7 +91236,7 @@ store ir_alias_registry_ir_global_set_int_names 57 jmp L0 label L16 load 58 global_type -strref 59 m30s650 +strref 59 m30s653 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 brif 60 L17 L18 @@ -91235,7 +91441,7 @@ call 130 pith_cstring_eq bool 2 128 129 call 131 pith_cstring_release void 1 129 brif 130 L45 L46 label L45 -strref 132 m30s707 +strref 132 m30s705 load 133 resolved call 134 pith_cstring_release void 1 133 load 135 tn @@ -91786,13 +91992,13 @@ ret 5 iconst 6 0 ret 6 endfunc -func ir_alias_registry_ir_is_toml_decode_callee 2 bool +func ir_alias_registry_ir_is_handle_decode_callee 2 bool param index_idx param member_name load 2 index_idx load 3 member_name load 4 ir_alias_registry_ir_module_aliases -call 5 ir_decode_calls_ir_is_toml_decode_callee_with_aliases bool 3 2 3 4 +call 5 ir_decode_calls_ir_is_handle_decode_callee_with_aliases bool 3 2 3 4 ret 5 iconst 6 0 ret 6 @@ -91829,14 +92035,14 @@ ret 4 iconst 5 0 ret 5 endfunc -func ir_alias_registry_ir_toml_require_full_name_for_type_name 2 string +func ir_alias_registry_ir_handle_require_full_name_for_type_name 2 string param type_name param module_path load 2 type_name load 3 module_path load 4 ir_alias_registry_ir_type_aliases load 5 ir_struct_registry_ir_struct_names -call 6 ir_decode_calls_ir_toml_require_full_name_for_type_name_with_state string 4 2 3 4 5 +call 6 ir_decode_calls_ir_handle_require_full_name_for_type_name_with_state string 4 2 3 4 5 ret 6 iconst 7 0 ret 7 @@ -91879,7 +92085,7 @@ ret 7 iconst 8 0 ret 8 endfunc -func ir_alias_registry_ir_resolve_toml_call_name 2 string +func ir_alias_registry_ir_resolve_handle_decode_call_name 2 string param index_idx param member_name load 2 index_idx @@ -95226,413 +95432,416 @@ string m35s400 "config typed file decode argument type mismatch: expected " string m35s401 "config typed file decode target must be a struct, got " string m35s402 "config typed file decode expects 1 argument, got " string m35s403 "config typed file decode requires an explicit struct type" -string m35s404 "unknown type: TomlDecodeError" -string m35s405 "TomlDecodeError" -string m35s406 "toml.decode does not support field '" -string m35s407 "toml.decode target field must be public: " -string m35s408 "toml.decode argument type mismatch: expected " -string m35s409 "toml.decode target must be a struct, got " -string m35s410 "toml.decode expects 1 argument, got " -string m35s411 "toml.decode requires an explicit struct type" -string m35s412 "unknown type: JsonDecodeError" -string m35s413 "JsonDecodeError" -string m35s414 "json.decode does not support field '" -string m35s415 "json.decode target field must be public: " -string m35s416 "json.decode argument type mismatch: expected " -string m35s417 "json.decode target must be a struct, got " -string m35s418 "json.decode expects 1 argument, got " -string m35s419 "json.decode requires an explicit struct type" -string m35s420 "config.decode does not support field '" -string m35s421 "config.decode target field must be public: " -string m35s422 "config.decode prefix type mismatch: expected String, got " -string m35s423 "config.decode argument type mismatch: expected Config, got " -string m35s424 "unknown type: Config" -string m35s425 "Config" -string m35s426 "config.decode target must be a struct, got " -string m35s427 " argument(s), got " -string m35s428 "config.decode expects " -string m35s429 "config.decode requires an explicit struct type" -string m35s430 "|" -string m35s431 "json.decode type argument must be a concrete struct type" -string m35s432 "config_mod" -string m35s433 "config" -string m35s434 "std.config" -string m35s435 "toml_mod" -string m35s436 "toml" -string m35s437 "std.toml" -string m35s438 "json_mod" -string m35s439 "json" -string m35s440 "std.json" -string m35s441 "unary 'not' requires Bool, got " -string m35s442 "not" -string m35s443 "unary - requires numeric type, got " -string m35s444 "negate" -string m35s445 "pipe type mismatch: function expects " -string m35s446 "' must take exactly 1 parameter" -string m35s447 "pipe target '" -string m35s448 "' is not a function" -string m35s449 "pipe operator requires a function name on the right" -string m35s450 "operator 'or' requires Bool, got " -string m35s451 "or" -string m35s452 "operator 'and' requires Bool, got " -string m35s453 "and" -string m35s454 "operator >= type mismatch: " -string m35s455 "operator >= requires numeric or string type, got " -string m35s456 "gte" -string m35s457 "operator <= type mismatch: " -string m35s458 "operator <= requires numeric or string type, got " -string m35s459 "lte" -string m35s460 "operator > type mismatch: " -string m35s461 "operator > requires numeric or string type, got " -string m35s462 "gt" -string m35s463 "operator < type mismatch: " -string m35s464 "operator < requires numeric or string type, got " -string m35s465 "lt" -string m35s466 "operator != type mismatch: " -string m35s467 "neq" -string m35s468 "operator == type mismatch: " -string m35s469 "eq" -string m35s470 "operator % type mismatch: " -string m35s471 "operator % requires integer type, got " -string m35s472 "mod" -string m35s473 "operator / type mismatch: " -string m35s474 "operator / requires numeric type, got " -string m35s475 "div" -string m35s476 "operator * type mismatch: " -string m35s477 "operator * requires numeric type, got " -string m35s478 "mul" -string m35s479 "operator - type mismatch: " -string m35s480 "operator - requires numeric type, got " -string m35s481 "sub" -string m35s482 "operator + type mismatch: " -string m35s483 "operator + requires numeric type, got " -string m35s484 "pipe" -string m35s485 "undefined variable: " -string m35s486 "import it where it is defined" -string m35s487 "' belongs to another module and is not imported here" -string m35s488 "UInt64" -string m35s489 "UInt32" -string m35s490 "UInt16" -string m35s491 "UInt8" -string m35s492 "Int64" -string m35s493 "Int32" -string m35s494 "Int16" -string m35s495 "Int8" -string m35s496 "UInt" -string m35s497 "primitive" -string m35s498 "await" -string m35s499 "spawn" -string m35s500 "struct_init" -string m35s501 "lambda" -string m35s502 "match_expr" -string m35s503 "select_expr" -string m35s504 "catch_expr" -string m35s505 "try" -string m35s506 "unwrap" -string m35s507 "if_expr" -string m35s508 "string interpolation requires a stringifiable value, got " -string m35s509 "lit" -string m35s510 "interp_spec" -string m35s511 "string_interp" -string m35s512 "grouped" -string m35s513 "unary" -string m35s514 "binary" -string m35s515 "self" -string m35s516 "bool_lit" -string m35s517 "string_lit" -string m35s518 "float_lit" -string m35s519 "int_lit" -string m35s520 "cannot iterate over " -string m35s521 ".." -string m35s522 "range bounds must be Int, got " -string m35s523 "range" -string m35s524 ".next" -string m35s525 "while let" -string m35s526 "if let" -string m35s527 " supports variant patterns and optional bindings" -string m35s528 "E245" -string m35s529 " with a bare binding needs an optional subject, got " -string m35s530 "else" -string m35s531 "then" -string m35s532 "elif" -string m35s533 "fail type mismatch: expected " -string m35s534 "fail requires function to return a result type" -string m35s535 "E234" -string m35s536 "fail outside of function" -string m35s537 "E231" -string m35s538 "change the return type to " -string m35s539 "return type mismatch: expected " -string m35s540 ", got Void" -string m35s541 "return outside of function" -string m35s542 "lambda returns disagree: " -string m35s543 "type mismatch: expected " -string m35s544 " requires numeric type, got " -string m35s545 "operator " -string m35s546 "=" -string m35s547 "declare with 'mut': mut " -string m35s548 "cannot assign to immutable variable '" -string m35s549 "E216" -string m35s550 "try_expr" -string m35s551 "bind" -string m35s552 "binding" -string m35s553 "errdefer" -string m35s554 "defer" -string m35s555 "continue" -string m35s556 "break" -string m35s557 "fail" -string m35s558 "return" -string m35s559 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m35s560 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m35s561 "E260" -string m35s562 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m35s563 "errdefer is only meaningful in a function returning a result (`T!`)" -string m35s564 "errdefer is only allowed inside a function" -string m35s565 "defer is only allowed inside a function" -string m35s566 "continue outside of loop" -string m35s567 "E215" -string m35s568 "break outside of loop" -string m35s569 "for_stmt" -string m35s570 "while_let" -string m35s571 "if_let" -string m35s572 "while_stmt" -string m35s573 "if_stmt" -string m35s574 "assignment" -string m35s575 "mut" -string m35s576 "fn_decl" -string m35s577 "pub" -string m35s578 " is missing associated type: " -string m35s579 " for " -string m35s580 "impl of " -string m35s581 "E229" -string m35s582 " is missing method: " -string m35s583 "E235" -string m35s584 "fn_sig" -string m35s585 "assoc_type_bind" -string m35s586 "for_type" -string m35s587 "test_decl" -string m35s588 "impl_decl" -string m35s589 "threadlocal" -string m35s590 "import" -string m35s591 "from_import" -string m35s592 "assoc_type" -string m35s593 "' is a builtin type name and cannot be used as an enum name" -string m35s594 "E250" -string m35s595 "' must be " -string m35s596 "default for field '" -string m35s597 " weak" -string m35s598 "' is a builtin type name and cannot be used as a struct name" -string m35s599 "' must be an optional struct type (T?)" -string m35s600 "weak field '" -string m35s601 "E249" -string m35s602 "parameter requires a type annotation" -string m35s603 "type_alias" -string m35s604 "interface_decl" -string m35s605 "unknown generic type: " -string m35s606 "Channel expects 1 type argument, got " -string m35s607 "Task expects 1 type argument, got " -string m35s608 "Map expects 2 type arguments, got " -string m35s609 "Set expects 1 type argument, got " -string m35s610 "List expects 1 type argument, got " -string m35s611 "type nesting too deep" -string m35s612 "E233" -string m35s613 "import it from the module that defines it" -string m35s614 "' is not declared by module '" -string m35s615 "E246" -string m35s616 "*" -string m35s617 "" -string m35s618 "fn" -string m35s619 "TypeInfo(" -string m35s620 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" -string m35s621 "name" -string m35s622 ", name: " -string m35s623 "fields" -string m35s624 ", fields: " -string m35s625 "field_types" -string m35s626 ", field_types: " -string m35s627 "field_pub" -string m35s628 ", field_pub: " -string m35s629 "field_mut" -string m35s630 ", field_mut: " -string m35s631 "param_types" -string m35s632 ", param_types: " -string m35s633 "return_type" -string m35s634 ", return_type: " -string m35s635 "inner" -string m35s636 ", inner: " -string m35s637 "key_type" -string m35s638 ", key_type: " -string m35s639 "value_type" -string m35s640 ", value_type: " -string m35s641 "elements" -string m35s642 ", elements: " -string m35s643 "variants" -string m35s644 ", variants: " -string m35s645 "variant_types" -string m35s646 ", variant_types: " -string m35s647 "L" -string m35s648 "string " -string m35s649 "__" -string m35s650 "s" -string m35s651 "m" -string m35s652 "IrBuilderSnapshot(" -string m35s653 "inext_reg,lines" -string m35s654 "next_reg" -string m35s655 "next_reg: " -string m35s656 "lines" -string m35s657 ", lines: " -string m35s658 "label " -string m35s659 " 0" -string m35s660 "iconst " -string m35s661 " 1" -string m35s662 "fconst " -string m35s663 "strref " -string m35s664 " pith_struct_set_dtor void 2 " -string m35s665 "call " -string m35s666 " __opt_dtor_" -string m35s667 "funcref " -string m35s668 "neq " -string m35s669 " pith_struct_weak_load int 1 " -string m35s670 " 1 " -string m35s671 "sstore " -string m35s672 " 0 " -string m35s673 "__struct_alloc" -string m35s674 " 2" -string m35s675 "and " -string m35s676 "or " -string m35s677 "eq " -string m35s678 " bool 2 " -string m35s679 "__str_eq" -string m35s680 "string" -string m35s681 " value" -string m35s682 " 8 " -string m35s683 "field " -string m35s684 " 0 bool is_some" -string m35s685 "TypeInfo" -string m35s686 "get_type_info" -string m35s687 "ti_channel" -string m35s688 "ti_task" -string m35s689 "ti_set" -string m35s690 "ti_map" -string m35s691 "ti_list" -string m35s692 "ti_tuple" -string m35s693 "ti_result" -string m35s694 "ti_optional" -string m35s695 "ti_function" -string m35s696 "ti_enum" -string m35s697 "ti_struct" -string m35s698 "ti_primitive" -string m35s699 "Token" -string m35s700 "expect" -string m35s701 "advance_token" -string m35s702 "Node" -string m35s703 "get_node" -string m35s704 "struct:" -string m35s705 "closure" -string m35s706 "bytes" -string m35s707 "set_int" -string m35s708 "map_int" -string m35s709 "list_string" -string m35s710 "void" -string m35s711 "pith_closure_release" -string m35s712 "pith_struct_release" -string m35s713 "pith_bytes_release" -string m35s714 "pith_set_release_handle" -string m35s715 "pith_map_release_handle" -string m35s716 "pith_list_release_handle" -string m35s717 "pith_closure_retain" -string m35s718 "pith_struct_retain" -string m35s719 "pith_bytes_retain" -string m35s720 "pith_set_retain_handle" -string m35s721 "pith_map_retain_handle" -string m35s722 "pith_list_retain_handle" -string m35s723 "__cstring_release" -string m35s724 "__cstring_retain" -string m35s725 "int" -string m35s726 "bool" -string m35s727 "not_op" -string m35s728 "!" -string m35s729 "integer" -string m35s730 "str_lit" -string m35s731 "float" -string m35s732 "list:" -string m35s733 "task:" -string m35s734 "channel:" -string m35s735 "unknown" -string m35s736 "opaque:" -string m35s737 "Set[UInt64]" -string m35s738 "Set[UInt32]" -string m35s739 "Set[UInt16]" -string m35s740 "Set[UInt8]" -string m35s741 "Set[Int64]" -string m35s742 "Set[Int32]" -string m35s743 "Set[Int16]" -string m35s744 "Set[Int8]" -string m35s745 "Set[UInt]" -string m35s746 "Set[Int]" -string m35s747 "Map[Int, " -string m35s748 "Map[Int," -string m35s749 "List[String]" -string m35s750 "load " -string m35s751 "store " -string m35s752 "jmp " -string m35s753 "brif " -string m35s754 "match" -string m35s755 "ifexpr" -string m35s756 " __payload" -string m35s757 " __t" -string m35s758 "lt " -string m35s759 "lte " -string m35s760 "incl" -string m35s761 "gte " -string m35s762 " 0 int __enum_tag" -string m35s763 "ret " -string m35s764 "parse_int failed" -string m35s765 "file_open_read failed" -string m35s766 "file_open_write failed" -string m35s767 "file_open_append failed" -string m35s768 "byte_buffer_write failed" -string m35s769 "byte_buffer_write_string_utf8 failed" -string m35s770 "byte_buffer_write_byte failed" -string m35s771 "file_write failed" -string m35s772 "file_write_bytes failed" -string m35s773 "tcp_connect failed" -string m35s774 "tcp_listen failed" -string m35s775 "tcp_accept failed" -string m35s776 "tcp_write failed" -string m35s777 "tcp_write_bytes failed" -string m35s778 "process_spawn failed" -string m35s779 "process_spawn_argv failed" -string m35s780 "process_output_argv failed" -string m35s781 "process_write failed" -string m35s782 "process_write_bytes failed" -string m35s783 "crypto_x25519_keygen failed" -string m35s784 "write_file failed" -string m35s785 "append_file failed" -string m35s786 "write_file_bytes failed" -string m35s787 "append_file_bytes failed" -string m35s788 "read_file failed" -string m35s789 "exec_output failed" -string m35s790 "dns_resolve failed" -string m35s791 "bytes_to_string_utf8 failed" -string m35s792 "bytes_substring_utf8 failed" -string m35s793 "file_read failed" -string m35s794 "tcp_read failed" -string m35s795 "process_read failed" -string m35s796 "process_read_err failed" -string m35s797 "read_file_bytes failed" -string m35s798 "b64_decode failed" -string m35s799 "from_hex failed" -string m35s800 "file_read_bytes failed" -string m35s801 "tcp_read_bytes failed" -string m35s802 "process_read_bytes failed" -string m35s803 "process_read_err_bytes failed" -string m35s804 "crypto_x25519_public_key failed" -string m35s805 "crypto_x25519_shared_secret failed" -string m35s806 "crypto_aes_128_gcm_seal failed" -string m35s807 "crypto_aes_128_gcm_open failed" -string m35s808 "crypto_chacha20_poly1305_seal failed" -string m35s809 "crypto_chacha20_poly1305_open failed" -string m35s810 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m35s404 " does not support field '" +string m35s405 " target field must be public: " +string m35s406 " argument type mismatch: expected " +string m35s407 " target must be a struct, got " +string m35s408 " requires an explicit struct type" +string m35s409 ".decode" +string m35s410 "unknown type: JsonDecodeError" +string m35s411 "JsonDecodeError" +string m35s412 "json.decode does not support field '" +string m35s413 "json.decode target field must be public: " +string m35s414 "json.decode argument type mismatch: expected " +string m35s415 "json.decode target must be a struct, got " +string m35s416 "json.decode expects 1 argument, got " +string m35s417 "json.decode requires an explicit struct type" +string m35s418 "config.decode does not support field '" +string m35s419 "config.decode target field must be public: " +string m35s420 "config.decode prefix type mismatch: expected String, got " +string m35s421 "config.decode argument type mismatch: expected Config, got " +string m35s422 "unknown type: Config" +string m35s423 "Config" +string m35s424 "config.decode target must be a struct, got " +string m35s425 " argument(s), got " +string m35s426 "config.decode expects " +string m35s427 "config.decode requires an explicit struct type" +string m35s428 "|" +string m35s429 "json.decode type argument must be a concrete struct type" +string m35s430 "config_mod" +string m35s431 "config" +string m35s432 "std.config" +string m35s433 "TomlDecodeError" +string m35s434 "YamlDecodeError" +string m35s435 "yaml" +string m35s436 "yaml_mod" +string m35s437 "toml" +string m35s438 "toml_mod" +string m35s439 "std.yaml" +string m35s440 "std.toml" +string m35s441 "json_mod" +string m35s442 "json" +string m35s443 "std.json" +string m35s444 "unary 'not' requires Bool, got " +string m35s445 "not" +string m35s446 "unary - requires numeric type, got " +string m35s447 "negate" +string m35s448 "pipe type mismatch: function expects " +string m35s449 "' must take exactly 1 parameter" +string m35s450 "pipe target '" +string m35s451 "' is not a function" +string m35s452 "pipe operator requires a function name on the right" +string m35s453 "operator 'or' requires Bool, got " +string m35s454 "or" +string m35s455 "operator 'and' requires Bool, got " +string m35s456 "and" +string m35s457 "operator >= type mismatch: " +string m35s458 "operator >= requires numeric or string type, got " +string m35s459 "gte" +string m35s460 "operator <= type mismatch: " +string m35s461 "operator <= requires numeric or string type, got " +string m35s462 "lte" +string m35s463 "operator > type mismatch: " +string m35s464 "operator > requires numeric or string type, got " +string m35s465 "gt" +string m35s466 "operator < type mismatch: " +string m35s467 "operator < requires numeric or string type, got " +string m35s468 "lt" +string m35s469 "operator != type mismatch: " +string m35s470 "neq" +string m35s471 "operator == type mismatch: " +string m35s472 "eq" +string m35s473 "operator % type mismatch: " +string m35s474 "operator % requires integer type, got " +string m35s475 "mod" +string m35s476 "operator / type mismatch: " +string m35s477 "operator / requires numeric type, got " +string m35s478 "div" +string m35s479 "operator * type mismatch: " +string m35s480 "operator * requires numeric type, got " +string m35s481 "mul" +string m35s482 "operator - type mismatch: " +string m35s483 "operator - requires numeric type, got " +string m35s484 "sub" +string m35s485 "operator + type mismatch: " +string m35s486 "operator + requires numeric type, got " +string m35s487 "pipe" +string m35s488 "undefined variable: " +string m35s489 "import it where it is defined" +string m35s490 "' belongs to another module and is not imported here" +string m35s491 "UInt64" +string m35s492 "UInt32" +string m35s493 "UInt16" +string m35s494 "UInt8" +string m35s495 "Int64" +string m35s496 "Int32" +string m35s497 "Int16" +string m35s498 "Int8" +string m35s499 "UInt" +string m35s500 "primitive" +string m35s501 "await" +string m35s502 "spawn" +string m35s503 "struct_init" +string m35s504 "lambda" +string m35s505 "match_expr" +string m35s506 "select_expr" +string m35s507 "catch_expr" +string m35s508 "try" +string m35s509 "unwrap" +string m35s510 "if_expr" +string m35s511 "string interpolation requires a stringifiable value, got " +string m35s512 "lit" +string m35s513 "interp_spec" +string m35s514 "string_interp" +string m35s515 "grouped" +string m35s516 "unary" +string m35s517 "binary" +string m35s518 "self" +string m35s519 "bool_lit" +string m35s520 "string_lit" +string m35s521 "float_lit" +string m35s522 "int_lit" +string m35s523 "cannot iterate over " +string m35s524 ".." +string m35s525 "range bounds must be Int, got " +string m35s526 "range" +string m35s527 ".next" +string m35s528 "while let" +string m35s529 "if let" +string m35s530 " supports variant patterns and optional bindings" +string m35s531 "E245" +string m35s532 " with a bare binding needs an optional subject, got " +string m35s533 "else" +string m35s534 "then" +string m35s535 "elif" +string m35s536 "fail type mismatch: expected " +string m35s537 "fail requires function to return a result type" +string m35s538 "E234" +string m35s539 "fail outside of function" +string m35s540 "E231" +string m35s541 "change the return type to " +string m35s542 "return type mismatch: expected " +string m35s543 ", got Void" +string m35s544 "return outside of function" +string m35s545 "lambda returns disagree: " +string m35s546 "type mismatch: expected " +string m35s547 " requires numeric type, got " +string m35s548 "operator " +string m35s549 "=" +string m35s550 "declare with 'mut': mut " +string m35s551 "cannot assign to immutable variable '" +string m35s552 "E216" +string m35s553 "try_expr" +string m35s554 "bind" +string m35s555 "binding" +string m35s556 "errdefer" +string m35s557 "defer" +string m35s558 "continue" +string m35s559 "break" +string m35s560 "fail" +string m35s561 "return" +string m35s562 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m35s563 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m35s564 "E260" +string m35s565 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m35s566 "errdefer is only meaningful in a function returning a result (`T!`)" +string m35s567 "errdefer is only allowed inside a function" +string m35s568 "defer is only allowed inside a function" +string m35s569 "continue outside of loop" +string m35s570 "E215" +string m35s571 "break outside of loop" +string m35s572 "for_stmt" +string m35s573 "while_let" +string m35s574 "if_let" +string m35s575 "while_stmt" +string m35s576 "if_stmt" +string m35s577 "assignment" +string m35s578 "mut" +string m35s579 "fn_decl" +string m35s580 "pub" +string m35s581 " is missing associated type: " +string m35s582 " for " +string m35s583 "impl of " +string m35s584 "E229" +string m35s585 " is missing method: " +string m35s586 "E235" +string m35s587 "fn_sig" +string m35s588 "assoc_type_bind" +string m35s589 "for_type" +string m35s590 "test_decl" +string m35s591 "impl_decl" +string m35s592 "threadlocal" +string m35s593 "import" +string m35s594 "from_import" +string m35s595 "assoc_type" +string m35s596 "' is a builtin type name and cannot be used as an enum name" +string m35s597 "E250" +string m35s598 "' must be " +string m35s599 "default for field '" +string m35s600 " weak" +string m35s601 "' is a builtin type name and cannot be used as a struct name" +string m35s602 "' must be an optional struct type (T?)" +string m35s603 "weak field '" +string m35s604 "E249" +string m35s605 "parameter requires a type annotation" +string m35s606 "type_alias" +string m35s607 "interface_decl" +string m35s608 "unknown generic type: " +string m35s609 "Channel expects 1 type argument, got " +string m35s610 "Task expects 1 type argument, got " +string m35s611 "Map expects 2 type arguments, got " +string m35s612 "Set expects 1 type argument, got " +string m35s613 "List expects 1 type argument, got " +string m35s614 "type nesting too deep" +string m35s615 "E233" +string m35s616 "import it from the module that defines it" +string m35s617 "' is not declared by module '" +string m35s618 "E246" +string m35s619 "*" +string m35s620 "" +string m35s621 "fn" +string m35s622 "TypeInfo(" +string m35s623 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" +string m35s624 "name" +string m35s625 ", name: " +string m35s626 "fields" +string m35s627 ", fields: " +string m35s628 "field_types" +string m35s629 ", field_types: " +string m35s630 "field_pub" +string m35s631 ", field_pub: " +string m35s632 "field_mut" +string m35s633 ", field_mut: " +string m35s634 "param_types" +string m35s635 ", param_types: " +string m35s636 "return_type" +string m35s637 ", return_type: " +string m35s638 "inner" +string m35s639 ", inner: " +string m35s640 "key_type" +string m35s641 ", key_type: " +string m35s642 "value_type" +string m35s643 ", value_type: " +string m35s644 "elements" +string m35s645 ", elements: " +string m35s646 "variants" +string m35s647 ", variants: " +string m35s648 "variant_types" +string m35s649 ", variant_types: " +string m35s650 "L" +string m35s651 "string " +string m35s652 "__" +string m35s653 "s" +string m35s654 "m" +string m35s655 "IrBuilderSnapshot(" +string m35s656 "inext_reg,lines" +string m35s657 "next_reg" +string m35s658 "next_reg: " +string m35s659 "lines" +string m35s660 ", lines: " +string m35s661 "label " +string m35s662 " 0" +string m35s663 "iconst " +string m35s664 " 1" +string m35s665 "fconst " +string m35s666 "strref " +string m35s667 " pith_struct_set_dtor void 2 " +string m35s668 "call " +string m35s669 " __opt_dtor_" +string m35s670 "funcref " +string m35s671 "neq " +string m35s672 " pith_struct_weak_load int 1 " +string m35s673 " 1 " +string m35s674 "sstore " +string m35s675 " 0 " +string m35s676 "__struct_alloc" +string m35s677 " 2" +string m35s678 "and " +string m35s679 "or " +string m35s680 "eq " +string m35s681 " bool 2 " +string m35s682 "__str_eq" +string m35s683 "string" +string m35s684 " value" +string m35s685 " 8 " +string m35s686 "field " +string m35s687 " 0 bool is_some" +string m35s688 "TypeInfo" +string m35s689 "get_type_info" +string m35s690 "ti_channel" +string m35s691 "ti_task" +string m35s692 "ti_set" +string m35s693 "ti_map" +string m35s694 "ti_list" +string m35s695 "ti_tuple" +string m35s696 "ti_result" +string m35s697 "ti_optional" +string m35s698 "ti_function" +string m35s699 "ti_enum" +string m35s700 "ti_struct" +string m35s701 "ti_primitive" +string m35s702 "Token" +string m35s703 "expect" +string m35s704 "advance_token" +string m35s705 "Node" +string m35s706 "get_node" +string m35s707 "struct:" +string m35s708 "closure" +string m35s709 "bytes" +string m35s710 "set_int" +string m35s711 "map_int" +string m35s712 "list_string" +string m35s713 "void" +string m35s714 "pith_closure_release" +string m35s715 "pith_struct_release" +string m35s716 "pith_bytes_release" +string m35s717 "pith_set_release_handle" +string m35s718 "pith_map_release_handle" +string m35s719 "pith_list_release_handle" +string m35s720 "pith_closure_retain" +string m35s721 "pith_struct_retain" +string m35s722 "pith_bytes_retain" +string m35s723 "pith_set_retain_handle" +string m35s724 "pith_map_retain_handle" +string m35s725 "pith_list_retain_handle" +string m35s726 "__cstring_release" +string m35s727 "__cstring_retain" +string m35s728 "int" +string m35s729 "bool" +string m35s730 "not_op" +string m35s731 "!" +string m35s732 "integer" +string m35s733 "str_lit" +string m35s734 "float" +string m35s735 "list:" +string m35s736 "task:" +string m35s737 "channel:" +string m35s738 "unknown" +string m35s739 "opaque:" +string m35s740 "Set[UInt64]" +string m35s741 "Set[UInt32]" +string m35s742 "Set[UInt16]" +string m35s743 "Set[UInt8]" +string m35s744 "Set[Int64]" +string m35s745 "Set[Int32]" +string m35s746 "Set[Int16]" +string m35s747 "Set[Int8]" +string m35s748 "Set[UInt]" +string m35s749 "Set[Int]" +string m35s750 "Map[Int, " +string m35s751 "Map[Int," +string m35s752 "List[String]" +string m35s753 "load " +string m35s754 "store " +string m35s755 "jmp " +string m35s756 "brif " +string m35s757 "match" +string m35s758 "ifexpr" +string m35s759 " __payload" +string m35s760 " __t" +string m35s761 "lt " +string m35s762 "lte " +string m35s763 "incl" +string m35s764 "gte " +string m35s765 " 0 int __enum_tag" +string m35s766 "ret " +string m35s767 "parse_int failed" +string m35s768 "file_open_read failed" +string m35s769 "file_open_write failed" +string m35s770 "file_open_append failed" +string m35s771 "byte_buffer_write failed" +string m35s772 "byte_buffer_write_string_utf8 failed" +string m35s773 "byte_buffer_write_byte failed" +string m35s774 "file_write failed" +string m35s775 "file_write_bytes failed" +string m35s776 "tcp_connect failed" +string m35s777 "tcp_listen failed" +string m35s778 "tcp_accept failed" +string m35s779 "tcp_write failed" +string m35s780 "tcp_write_bytes failed" +string m35s781 "process_spawn failed" +string m35s782 "process_spawn_argv failed" +string m35s783 "process_output_argv failed" +string m35s784 "process_write failed" +string m35s785 "process_write_bytes failed" +string m35s786 "crypto_x25519_keygen failed" +string m35s787 "write_file failed" +string m35s788 "append_file failed" +string m35s789 "write_file_bytes failed" +string m35s790 "append_file_bytes failed" +string m35s791 "read_file failed" +string m35s792 "exec_output failed" +string m35s793 "dns_resolve failed" +string m35s794 "bytes_to_string_utf8 failed" +string m35s795 "bytes_substring_utf8 failed" +string m35s796 "file_read failed" +string m35s797 "tcp_read failed" +string m35s798 "process_read failed" +string m35s799 "process_read_err failed" +string m35s800 "read_file_bytes failed" +string m35s801 "b64_decode failed" +string m35s802 "from_hex failed" +string m35s803 "file_read_bytes failed" +string m35s804 "tcp_read_bytes failed" +string m35s805 "process_read_bytes failed" +string m35s806 "process_read_err_bytes failed" +string m35s807 "crypto_x25519_public_key failed" +string m35s808 "crypto_x25519_shared_secret failed" +string m35s809 "crypto_aes_128_gcm_seal failed" +string m35s810 "crypto_aes_128_gcm_open failed" +string m35s811 "crypto_chacha20_poly1305_seal failed" +string m35s812 "crypto_chacha20_poly1305_open failed" +string m35s813 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -95830,7 +96039,7 @@ label L3 load 35 expr_idx call 36 emit_expr int 1 35 store val_r 36 -strref 37 m35s763 +strref 37 m35s766 load 38 val_r call 39 int_to_string string 1 38 concat 40 37 39 @@ -95979,7 +96188,7 @@ load 90 next_l call 91 ir_builder_ir_label string 0 call 92 pith_cstring_release void 1 90 store next_l 91 -strref 93 m35s753 +strref 93 m35s756 load 94 cond_r call 95 int_to_string string 1 94 concat 96 93 95 @@ -96019,7 +96228,7 @@ load 126 body_l call 127 ir_builder_ir_label string 0 call 128 pith_cstring_release void 1 126 store body_l 127 -strref 129 m35s753 +strref 129 m35s756 load 130 g_r call 131 int_to_string string 1 130 concat 132 129 131 @@ -96100,13 +96309,13 @@ brif 14 L24 L25 label L24 call 16 ir_builder_ir_reg int 0 store r 16 -strref 17 m35s660 +strref 17 m35s663 load 18 r call 19 int_to_string string 1 18 concat 20 17 19 call 21 pith_cstring_release void 1 17 call 22 pith_cstring_release void 1 19 -strref 23 m35s661 +strref 23 m35s664 concat 24 20 23 call 25 pith_cstring_release void 1 20 call 26 pith_cstring_release void 1 23 @@ -96162,13 +96371,13 @@ label L31 label L29 call 66 ir_builder_ir_reg int 0 store r 66 -strref 67 m35s660 +strref 67 m35s663 load 68 r call 69 int_to_string string 1 68 concat 70 67 69 call 71 pith_cstring_release void 1 67 call 72 pith_cstring_release void 1 69 -strref 73 m35s661 +strref 73 m35s664 concat 74 70 73 call 75 pith_cstring_release void 1 70 call 76 pith_cstring_release void 1 73 @@ -96200,13 +96409,13 @@ call 96 ir_optionals_ir_optional_flag_field int 1 95 store flag_r 96 call 97 ir_builder_ir_reg int 0 store zero_r 97 -strref 98 m35s660 +strref 98 m35s663 load 99 zero_r call 100 int_to_string string 1 99 concat 101 98 100 call 102 pith_cstring_release void 1 98 call 103 pith_cstring_release void 1 100 -strref 104 m35s659 +strref 104 m35s662 concat 105 101 104 call 106 pith_cstring_release void 1 101 call 107 pith_cstring_release void 1 104 @@ -96214,7 +96423,7 @@ call 108 ir_builder_ir_emit void 1 105 call 109 pith_cstring_release void 1 105 call 110 ir_builder_ir_reg int 0 store r 110 -strref 111 m35s677 +strref 111 m35s680 load 112 r call 113 int_to_string string 1 112 concat 114 111 113 @@ -96266,7 +96475,7 @@ call 154 ir_literals_ir_emit_int_literal int 1 153 store lit_r 154 call 155 ir_builder_ir_reg int 0 store r 155 -strref 156 m35s677 +strref 156 m35s680 load 157 r call 158 int_to_string string 1 157 concat 159 156 158 @@ -96318,7 +96527,7 @@ call 199 ir_literals_ir_emit_bool_literal int 1 198 store lit_r 199 call 200 ir_builder_ir_reg int 0 store r 200 -strref 201 m35s677 +strref 201 m35s680 load 202 r call 203 int_to_string string 1 202 concat 204 201 203 @@ -96370,7 +96579,7 @@ call 244 ir_literals_ir_emit_float_literal int 1 243 store lit_r 244 call 245 ir_builder_ir_reg int 0 store r 245 -strref 246 m35s677 +strref 246 m35s680 load 247 r call 248 int_to_string string 1 247 concat 249 246 248 @@ -96423,8 +96632,8 @@ store lit_r 289 call 290 ir_builder_ir_reg int 0 store r 290 load 291 r -strref 292 m35s679 -strref 293 m35s726 +strref 292 m35s682 +strref 293 m35s729 load 294 subj_r load 295 lit_r call 296 ir_call_emit_ir_emit_call2 void 5 291 292 293 294 295 @@ -96467,7 +96676,7 @@ call 324 pith_cstring_release void 1 320 store enum_name 323 call 325 ir_builder_ir_reg int 0 store lit_r 325 -strref 326 m35s660 +strref 326 m35s663 load 327 lit_r call 328 int_to_string string 1 327 concat 329 326 328 @@ -96492,7 +96701,7 @@ brif 346 L54 L55 label L54 call 347 ir_builder_ir_reg int 0 store tag_r 347 -strref 348 m35s683 +strref 348 m35s686 load 349 tag_r call 350 int_to_string string 1 349 concat 351 348 350 @@ -96507,13 +96716,13 @@ call 359 int_to_string string 1 358 concat 360 355 359 call 361 pith_cstring_release void 1 355 call 362 pith_cstring_release void 1 359 -strref 363 m35s762 +strref 363 m35s765 concat 364 360 363 call 365 pith_cstring_release void 1 360 call 366 pith_cstring_release void 1 363 call 367 ir_builder_ir_emit void 1 364 call 368 pith_cstring_release void 1 364 -strref 369 m35s677 +strref 369 m35s680 load 370 r call 371 int_to_string string 1 370 concat 372 369 371 @@ -96556,7 +96765,7 @@ call 408 pith_struct_release void 1 407 ret 398 label L55 label L53 -strref 409 m35s677 +strref 409 m35s680 load 410 r call 411 int_to_string string 1 410 concat 412 409 411 @@ -96596,13 +96805,13 @@ call 445 pith_struct_release void 1 444 ret 435 label L52 label L50 -strref 446 m35s660 +strref 446 m35s663 load 447 r call 448 int_to_string string 1 447 concat 449 446 448 call 450 pith_cstring_release void 1 446 call 451 pith_cstring_release void 1 448 -strref 452 m35s659 +strref 452 m35s662 concat 453 449 452 call 454 pith_cstring_release void 1 449 call 455 pith_cstring_release void 1 452 @@ -96647,7 +96856,7 @@ call 487 pith_struct_release void 1 485 store hi_r 486 call 488 ir_builder_ir_reg int 0 store lo_ok 488 -strref 489 m35s761 +strref 489 m35s764 load 490 lo_ok call 491 int_to_string string 1 490 concat 492 489 491 @@ -96677,12 +96886,12 @@ call 515 ir_builder_ir_reg int 0 store hi_ok 515 load 516 pat field 517 516 8 string value -strref 518 m35s760 +strref 518 m35s763 call 519 pith_cstring_eq bool 2 517 518 call 520 pith_cstring_release void 1 518 brif 519 L60 L61 label L60 -strref 521 m35s759 +strref 521 m35s762 load 522 hi_ok call 523 int_to_string string 1 522 concat 524 521 523 @@ -96710,7 +96919,7 @@ call 545 ir_builder_ir_emit void 1 542 call 546 pith_cstring_release void 1 542 jmp L59 label L61 -strref 547 m35s758 +strref 547 m35s761 load 548 hi_ok call 549 int_to_string string 1 548 concat 550 547 549 @@ -96739,7 +96948,7 @@ call 572 pith_cstring_release void 1 568 label L59 call 573 ir_builder_ir_reg int 0 store r 573 -strref 574 m35s675 +strref 574 m35s678 load 575 r call 576 int_to_string string 1 575 concat 577 574 576 @@ -96812,7 +97021,7 @@ call 633 ir_match_emit_ir_emit_match_cond int 2 631 632 store alt_r 633 call 634 ir_builder_ir_reg int 0 store or_r 634 -strref 635 m35s676 +strref 635 m35s679 load 636 or_r call 637 int_to_string string 1 636 concat 638 635 637 @@ -96876,13 +97085,13 @@ call 686 pith_list_release_handle void 1 681 store elems 685 call 687 ir_builder_ir_reg int 0 store acc_r 687 -strref 688 m35s660 +strref 688 m35s663 load 689 acc_r call 690 int_to_string string 1 689 concat 691 688 690 call 692 pith_cstring_release void 1 688 call 693 pith_cstring_release void 1 690 -strref 694 m35s661 +strref 694 m35s664 concat 695 691 694 call 696 pith_cstring_release void 1 691 call 697 pith_cstring_release void 1 694 @@ -96939,7 +97148,7 @@ label L77 label L75 call 728 ir_builder_ir_reg int 0 store elem_r 728 -strref 729 m35s683 +strref 729 m35s686 load 730 elem_r call 731 int_to_string string 1 730 concat 732 729 731 @@ -96974,7 +97183,7 @@ load 760 __loopvar_248_i call 761 pith_list_get_value_strict string 2 759 760 concat 762 756 761 call 763 pith_cstring_release void 1 756 -strref 764 m35s757 +strref 764 m35s760 concat 765 762 764 call 766 pith_cstring_release void 1 762 call 767 pith_cstring_release void 1 764 @@ -96991,7 +97200,7 @@ call 777 ir_match_emit_ir_emit_match_cond int 2 775 776 store sub_r 777 call 778 ir_builder_ir_reg int 0 store and_r 778 -strref 779 m35s675 +strref 779 m35s678 load 780 and_r call 781 int_to_string string 1 780 concat 782 779 781 @@ -97042,13 +97251,13 @@ label L70 label L68 call 820 ir_builder_ir_reg int 0 store r 820 -strref 821 m35s660 +strref 821 m35s663 load 822 r call 823 int_to_string string 1 822 concat 824 821 823 call 825 pith_cstring_release void 1 821 call 826 pith_cstring_release void 1 823 -strref 827 m35s659 +strref 827 m35s662 concat 828 824 827 call 829 pith_cstring_release void 1 824 call 830 pith_cstring_release void 1 827 @@ -97132,7 +97341,7 @@ call 32 pith_list_push_value_owned void 2 26 31 jmp L83 label L85 load 33 out -strref 34 m35s735 +strref 34 m35s738 call 35 pith_list_push_value_owned void 2 33 34 label L83 load 36 i @@ -97272,7 +97481,7 @@ jmp L99 label L103 label L101 load 50 kind -strref 51 m35s735 +strref 51 m35s738 call 52 pith_cstring_release void 1 50 store kind 51 load 53 __loopvar_249_i @@ -97293,7 +97502,7 @@ label L108 label L106 call 63 ir_builder_ir_reg int 0 store slot_r 63 -strref 64 m35s683 +strref 64 m35s686 load 65 slot_r call 66 int_to_string string 1 65 concat 67 64 66 @@ -97328,7 +97537,7 @@ call 95 pith_cstring_release void 1 92 load 96 kind concat 97 93 96 call 98 pith_cstring_release void 1 93 -strref 99 m35s756 +strref 99 m35s759 concat 100 97 99 call 101 pith_cstring_release void 1 97 call 102 pith_cstring_release void 1 99 @@ -97346,7 +97555,7 @@ label L110 load 111 sub call 112 ir_literals_ir_emit_int_literal int 1 111 store lit_r 112 -strref 113 m35s677 +strref 113 m35s680 load 114 cond_r call 115 int_to_string string 1 114 concat 116 113 115 @@ -97384,7 +97593,7 @@ label L112 load 144 sub call 145 ir_literals_ir_emit_bool_literal int 1 144 store lit_r 145 -strref 146 m35s677 +strref 146 m35s680 load 147 cond_r call 148 int_to_string string 1 147 concat 149 146 148 @@ -97422,7 +97631,7 @@ label L114 load 177 sub call 178 ir_literals_ir_emit_float_literal int 1 177 store lit_r 178 -strref 179 m35s677 +strref 179 m35s680 load 180 cond_r call 181 int_to_string string 1 180 concat 182 179 181 @@ -97461,8 +97670,8 @@ load 210 sub call 211 ir_literals_ir_emit_string_literal int 1 210 store lit_r 211 load 212 cond_r -strref 213 m35s679 -strref 214 m35s726 +strref 213 m35s682 +strref 214 m35s729 load 215 slot_r load 216 lit_r call 217 ir_call_emit_ir_emit_call2 void 5 212 213 214 215 216 @@ -97470,13 +97679,13 @@ call 218 pith_cstring_release void 1 213 call 219 pith_cstring_release void 1 214 jmp L109 label L117 -strref 220 m35s660 +strref 220 m35s663 load 221 cond_r call 222 int_to_string string 1 221 concat 223 220 222 call 224 pith_cstring_release void 1 220 call 225 pith_cstring_release void 1 222 -strref 226 m35s659 +strref 226 m35s662 concat 227 223 226 call 228 pith_cstring_release void 1 223 call 229 pith_cstring_release void 1 226 @@ -97485,7 +97694,7 @@ call 231 pith_cstring_release void 1 227 label L109 call 232 ir_builder_ir_reg int 0 store and_r 232 -strref 233 m35s675 +strref 233 m35s678 load 234 and_r call 235 int_to_string string 1 234 concat 236 233 235 @@ -97604,7 +97813,7 @@ load 41 next_l call 42 ir_builder_ir_label string 0 call 43 pith_cstring_release void 1 41 store next_l 42 -strref 44 m35s753 +strref 44 m35s756 load 45 cond_r call 46 int_to_string string 1 45 concat 47 44 46 @@ -97635,7 +97844,7 @@ call 71 pith_list_get_value_strict int 2 69 70 load 72 subj_r load 73 subj_type call 74 ir_match_emit_ir_emit_match_bindings void 3 71 72 73 -strref 75 m35s752 +strref 75 m35s755 load 76 done_l concat 77 75 76 call 78 pith_cstring_release void 1 75 @@ -97724,7 +97933,7 @@ brif 140 L132 L133 label L132 call 142 ir_builder_ir_reg int 0 store elem_r 142 -strref 143 m35s683 +strref 143 m35s686 load 144 elem_r call 145 int_to_string string 1 144 concat 146 143 145 @@ -97777,7 +97986,7 @@ call 192 map_insert void 3 188 190 191 load 193 elems load 194 __loopvar_250_i call 195 pith_list_get_value_strict string 2 193 194 -strref 196 m35s735 +strref 196 m35s738 call 198 pith_cstring_eq bool 2 195 196 iconst 199 1 sub 197 199 198 @@ -97794,7 +98003,7 @@ call 207 map_insert void 3 201 203 206 jmp L134 label L136 label L134 -strref 208 m35s751 +strref 208 m35s754 load 209 sub field 210 209 8 string value concat 211 208 210 @@ -97894,7 +98103,7 @@ call 285 map_insert void 3 281 283 284 jmp L143 label L145 label L143 -strref 286 m35s751 +strref 286 m35s754 load 287 pat field 288 287 8 string value concat 289 286 288 @@ -97955,7 +98164,7 @@ call 338 map_insert void 3 334 336 337 jmp L146 label L148 label L146 -strref 339 m35s751 +strref 339 m35s754 load 340 pat field 341 340 8 string value concat 342 339 341 @@ -98049,7 +98258,7 @@ call 402 pith_cstring_release void 1 400 brif 401 L162 L163 label L162 load 403 kind -strref 404 m35s735 +strref 404 m35s738 call 405 pith_cstring_release void 1 403 store kind 404 load 406 __loopvar_251_i @@ -98070,7 +98279,7 @@ label L166 label L164 call 416 ir_builder_ir_reg int 0 store slot_r 416 -strref 417 m35s683 +strref 417 m35s686 load 418 slot_r call 419 int_to_string string 1 418 concat 420 417 419 @@ -98160,7 +98369,7 @@ brif 485 L171 L172 label L171 call 487 ir_builder_ir_reg int 0 store old_r 487 -strref 488 m35s750 +strref 488 m35s753 load 489 old_r call 490 int_to_string string 1 489 concat 491 488 490 @@ -98194,7 +98403,7 @@ field 512 511 8 string value load 513 slot_r call 514 map_insert void 3 510 512 513 load 515 kind -strref 516 m35s735 +strref 516 m35s738 call 518 pith_cstring_eq bool 2 515 516 iconst 519 1 sub 517 519 518 @@ -98209,7 +98418,7 @@ call 525 map_insert void 3 521 523 524 jmp L180 label L182 label L180 -strref 526 m35s751 +strref 526 m35s754 load 527 sub field 528 527 8 string value concat 529 526 528 @@ -98323,7 +98532,7 @@ label L186 load 36 expr_idx call 37 emit_expr int 1 36 store val_r 37 -strref 38 m35s751 +strref 38 m35s754 load 39 result_temp concat 40 38 39 call 41 pith_cstring_release void 1 38 @@ -98363,7 +98572,7 @@ store body_l 7 iconst 8 0 store after_l 8 load 9 result_temp -strref 10 m35s755 +strref 10 m35s758 call 11 ir_builder_ir_new_temp_name string 1 10 call 12 pith_cstring_release void 1 10 call 13 pith_cstring_release void 1 9 @@ -98386,7 +98595,7 @@ load 25 next_l call 26 ir_builder_ir_label string 0 call 27 pith_cstring_release void 1 25 store next_l 26 -strref 28 m35s753 +strref 28 m35s756 load 29 cond_r call 30 int_to_string string 1 29 concat 31 28 30 @@ -98416,7 +98625,7 @@ iconst 54 1 call 55 pith_list_get_value_strict int 2 53 54 call 56 emit_expr int 1 55 store then_r 56 -strref 57 m35s751 +strref 57 m35s754 load 58 result_temp concat 59 57 58 call 60 pith_cstring_release void 1 57 @@ -98431,7 +98640,7 @@ call 68 pith_cstring_release void 1 62 call 69 pith_cstring_release void 1 66 call 70 ir_builder_ir_emit void 1 67 call 71 pith_cstring_release void 1 67 -strref 72 m35s752 +strref 72 m35s755 load 73 end_l concat 74 72 73 call 75 pith_cstring_release void 1 72 @@ -98473,7 +98682,7 @@ load 103 after_l call 104 ir_builder_ir_label string 0 call 105 pith_cstring_release void 1 103 store after_l 104 -strref 106 m35s753 +strref 106 m35s756 load 107 branch_cond_r call 108 int_to_string string 1 107 concat 109 106 108 @@ -98503,7 +98712,7 @@ iconst 132 1 call 133 pith_list_get_value_strict int 2 131 132 call 134 emit_expr int 1 133 store branch_r 134 -strref 135 m35s751 +strref 135 m35s754 load 136 result_temp concat 137 135 136 call 138 pith_cstring_release void 1 135 @@ -98518,7 +98727,7 @@ call 146 pith_cstring_release void 1 140 call 147 pith_cstring_release void 1 144 call 148 ir_builder_ir_emit void 1 145 call 149 pith_cstring_release void 1 145 -strref 150 m35s752 +strref 150 m35s755 load 151 end_l concat 152 150 151 call 153 pith_cstring_release void 1 150 @@ -98542,7 +98751,7 @@ sub 167 165 166 call 168 pith_list_get_value_strict int 2 162 167 call 169 emit_expr int 1 168 store else_r 169 -strref 170 m35s751 +strref 170 m35s754 load 171 result_temp concat 172 170 171 call 173 pith_cstring_release void 1 170 @@ -98561,7 +98770,7 @@ load 185 end_l call 186 ir_call_emit_ir_emit_label void 1 185 call 187 ir_builder_ir_reg int 0 store r 187 -strref 188 m35s750 +strref 188 m35s753 load 189 r call 190 int_to_string string 1 189 concat 191 188 190 @@ -98651,7 +98860,7 @@ call 27 pith_list_get_value_strict int 2 25 26 call 28 checker_c_get_expr_type int 1 27 store ir_match_emit_ir_match_subject_tid 28 load 29 result_temp -strref 30 m35s754 +strref 30 m35s757 call 31 ir_builder_ir_new_temp_name string 1 30 call 32 pith_cstring_release void 1 30 call 33 pith_cstring_release void 1 29 @@ -98757,7 +98966,7 @@ load 100 next_l call 101 ir_builder_ir_label string 0 call 102 pith_cstring_release void 1 100 store next_l 101 -strref 103 m35s753 +strref 103 m35s756 load 104 cond_r call 105 int_to_string string 1 104 concat 106 103 105 @@ -98797,7 +99006,7 @@ load 136 body_l call 137 ir_builder_ir_label string 0 call 138 pith_cstring_release void 1 136 store body_l 137 -strref 139 m35s753 +strref 139 m35s756 load 140 g_r call 141 int_to_string string 1 140 concat 142 139 141 @@ -98834,7 +99043,7 @@ iconst 170 1 sub 169 170 168 brif 169 L210 L211 label L210 -strref 171 m35s752 +strref 171 m35s755 load 172 end_l concat 173 171 172 call 174 pith_cstring_release void 1 171 @@ -98853,19 +99062,19 @@ jmp L194 label L196 call 182 ir_builder_ir_reg int 0 store zero_r 182 -strref 183 m35s660 +strref 183 m35s663 load 184 zero_r call 185 int_to_string string 1 184 concat 186 183 185 call 187 pith_cstring_release void 1 183 call 188 pith_cstring_release void 1 185 -strref 189 m35s659 +strref 189 m35s662 concat 190 186 189 call 191 pith_cstring_release void 1 186 call 192 pith_cstring_release void 1 189 call 193 ir_builder_ir_emit void 1 190 call 194 pith_cstring_release void 1 190 -strref 195 m35s751 +strref 195 m35s754 load 196 result_temp concat 197 195 196 call 198 pith_cstring_release void 1 195 @@ -98884,7 +99093,7 @@ load 210 end_l call 211 ir_call_emit_ir_emit_label void 1 210 call 212 ir_builder_ir_reg int 0 store r 212 -strref 213 m35s750 +strref 213 m35s753 load 214 r call 215 int_to_string string 1 214 concat 216 213 215 @@ -98951,7 +99160,7 @@ ret 7 label L214 label L212 load 8 ir_builder_ir_current_func_return_kind -strref 9 m35s710 +strref 9 m35s713 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 brif 10 L216 L217 @@ -98979,7 +99188,7 @@ call 5 pith_struct_release void 1 2 store n 4 load 6 n field 7 6 0 string kind -strref 8 m35s502 +strref 8 m35s505 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L219 L220 @@ -99017,7 +99226,7 @@ brif 27 L227 L226 label L226 load 28 n field 29 28 0 string kind -strref 30 m35s531 +strref 30 m35s534 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 store __or_15_224 31 @@ -99028,7 +99237,7 @@ brif 33 L229 L228 label L228 load 34 n field 35 34 0 string kind -strref 36 m35s530 +strref 36 m35s533 call 37 pith_cstring_eq bool 2 35 36 call 38 pith_cstring_release void 1 36 store __or_14_224 37 @@ -102389,564 +102598,561 @@ string m39s418 "config typed file decode argument type mismatch: expected " string m39s419 "config typed file decode target must be a struct, got " string m39s420 "config typed file decode expects 1 argument, got " string m39s421 "config typed file decode requires an explicit struct type" -string m39s422 "unknown type: TomlDecodeError" -string m39s423 "TomlDecodeError" -string m39s424 "toml.decode does not support field '" -string m39s425 "toml.decode target field must be public: " -string m39s426 "toml.decode argument type mismatch: expected " -string m39s427 "toml.decode target must be a struct, got " -string m39s428 "toml.decode expects 1 argument, got " -string m39s429 "toml.decode requires an explicit struct type" -string m39s430 "unknown type: JsonDecodeError" -string m39s431 "JsonDecodeError" -string m39s432 "json.decode does not support field '" -string m39s433 "json.decode target field must be public: " -string m39s434 "json.decode argument type mismatch: expected " -string m39s435 "json.decode target must be a struct, got " -string m39s436 "json.decode expects 1 argument, got " -string m39s437 "json.decode requires an explicit struct type" -string m39s438 "config.decode does not support field '" -string m39s439 "config.decode target field must be public: " -string m39s440 "config.decode prefix type mismatch: expected String, got " -string m39s441 "config.decode argument type mismatch: expected Config, got " -string m39s442 "unknown type: Config" -string m39s443 "Config" -string m39s444 "config.decode target must be a struct, got " -string m39s445 " argument(s), got " -string m39s446 "config.decode expects " -string m39s447 "config.decode requires an explicit struct type" -string m39s448 "|" -string m39s449 "json.decode type argument must be a concrete struct type" -string m39s450 "config_mod" -string m39s451 "config" -string m39s452 "std.config" -string m39s453 "toml_mod" -string m39s454 "toml" -string m39s455 "std.toml" -string m39s456 "json_mod" -string m39s457 "json" -string m39s458 "std.json" -string m39s459 "unary 'not' requires Bool, got " -string m39s460 "not" -string m39s461 "unary - requires numeric type, got " -string m39s462 "negate" -string m39s463 "pipe type mismatch: function expects " -string m39s464 "' must take exactly 1 parameter" -string m39s465 "pipe target '" -string m39s466 "' is not a function" -string m39s467 "pipe operator requires a function name on the right" -string m39s468 "operator 'or' requires Bool, got " -string m39s469 "or" -string m39s470 "operator 'and' requires Bool, got " -string m39s471 "and" -string m39s472 "operator >= type mismatch: " -string m39s473 "operator >= requires numeric or string type, got " -string m39s474 "gte" -string m39s475 "operator <= type mismatch: " -string m39s476 "operator <= requires numeric or string type, got " -string m39s477 "lte" -string m39s478 "operator > type mismatch: " -string m39s479 "operator > requires numeric or string type, got " -string m39s480 "gt" -string m39s481 "operator < type mismatch: " -string m39s482 "operator < requires numeric or string type, got " -string m39s483 "lt" -string m39s484 "operator != type mismatch: " -string m39s485 "neq" -string m39s486 "operator == type mismatch: " -string m39s487 "eq" -string m39s488 "operator % type mismatch: " -string m39s489 "operator % requires integer type, got " -string m39s490 "mod" -string m39s491 "operator / type mismatch: " -string m39s492 "operator / requires numeric type, got " -string m39s493 "div" -string m39s494 "operator * type mismatch: " -string m39s495 "operator * requires numeric type, got " -string m39s496 "mul" -string m39s497 "operator - type mismatch: " -string m39s498 "operator - requires numeric type, got " -string m39s499 "sub" -string m39s500 "operator + type mismatch: " -string m39s501 "operator + requires numeric type, got " -string m39s502 "pipe" -string m39s503 "undefined variable: " -string m39s504 "import it where it is defined" -string m39s505 "' belongs to another module and is not imported here" -string m39s506 "UInt64" -string m39s507 "UInt32" -string m39s508 "UInt16" -string m39s509 "UInt8" -string m39s510 "Int64" -string m39s511 "Int32" -string m39s512 "Int16" -string m39s513 "Int8" -string m39s514 "UInt" -string m39s515 "primitive" -string m39s516 "await" -string m39s517 "spawn" -string m39s518 "struct_init" -string m39s519 "lambda" -string m39s520 "match_expr" -string m39s521 "select_expr" -string m39s522 "catch_expr" -string m39s523 "try" -string m39s524 "unwrap" -string m39s525 "if_expr" -string m39s526 "string interpolation requires a stringifiable value, got " -string m39s527 "interp_spec" -string m39s528 "string_interp" -string m39s529 "grouped" -string m39s530 "unary" -string m39s531 "binary" -string m39s532 "self" -string m39s533 "bool_lit" -string m39s534 "float_lit" -string m39s535 "int_lit" -string m39s536 "cannot iterate over " -string m39s537 ".." -string m39s538 "range bounds must be Int, got " -string m39s539 "range" -string m39s540 ".next" -string m39s541 "while let" -string m39s542 "if let" -string m39s543 " supports variant patterns and optional bindings" -string m39s544 "E245" -string m39s545 " with a bare binding needs an optional subject, got " -string m39s546 "else" -string m39s547 "then" -string m39s548 "elif" -string m39s549 "fail type mismatch: expected " -string m39s550 "fail requires function to return a result type" -string m39s551 "E234" -string m39s552 "fail outside of function" -string m39s553 "E231" -string m39s554 "change the return type to " -string m39s555 "return type mismatch: expected " -string m39s556 ", got Void" -string m39s557 "return outside of function" -string m39s558 "lambda returns disagree: " -string m39s559 "type mismatch: expected " -string m39s560 " requires numeric type, got " -string m39s561 "operator " -string m39s562 "=" -string m39s563 "declare with 'mut': mut " -string m39s564 "cannot assign to immutable variable '" -string m39s565 "E216" -string m39s566 "try_expr" -string m39s567 "errdefer" -string m39s568 "defer" -string m39s569 "continue" -string m39s570 "break" -string m39s571 "fail" -string m39s572 "return" -string m39s573 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m39s574 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m39s575 "E260" -string m39s576 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m39s577 "errdefer is only meaningful in a function returning a result (`T!`)" -string m39s578 "errdefer is only allowed inside a function" -string m39s579 "defer is only allowed inside a function" -string m39s580 "continue outside of loop" -string m39s581 "E215" -string m39s582 "break outside of loop" -string m39s583 "for_stmt" -string m39s584 "while_let" -string m39s585 "if_let" -string m39s586 "while_stmt" -string m39s587 "if_stmt" -string m39s588 "assignment" -string m39s589 "mut" -string m39s590 "fn_decl" -string m39s591 " is missing associated type: " -string m39s592 " for " -string m39s593 "impl of " -string m39s594 "E229" -string m39s595 " is missing method: " -string m39s596 "E235" -string m39s597 "fn_sig" -string m39s598 "assoc_type_bind" -string m39s599 "for_type" -string m39s600 "test_decl" -string m39s601 "impl_decl" -string m39s602 "threadlocal" -string m39s603 "import" -string m39s604 "from_import" -string m39s605 "assoc_type" -string m39s606 "' is a builtin type name and cannot be used as an enum name" -string m39s607 "E250" -string m39s608 "' must be " -string m39s609 "default for field '" -string m39s610 " weak" -string m39s611 "' is a builtin type name and cannot be used as a struct name" -string m39s612 "' must be an optional struct type (T?)" -string m39s613 "weak field '" -string m39s614 "E249" -string m39s615 "parameter requires a type annotation" -string m39s616 "type_alias" -string m39s617 "interface_decl" -string m39s618 "unknown generic type: " -string m39s619 "Channel expects 1 type argument, got " -string m39s620 "Task expects 1 type argument, got " -string m39s621 "Map expects 2 type arguments, got " -string m39s622 "Set expects 1 type argument, got " -string m39s623 "List expects 1 type argument, got " -string m39s624 "type nesting too deep" -string m39s625 "E233" -string m39s626 "import it from the module that defines it" -string m39s627 "' is not declared by module '" -string m39s628 "E246" -string m39s629 "*" -string m39s630 "a" -string m39s631 "closure" -string m39s632 "bool" -string m39s633 "set_int" -string m39s634 "map_int" -string m39s635 "list_string" -string m39s636 "int" -string m39s637 "std_toml_require_bool" -string m39s638 "std_toml_require_int" -string m39s639 "std_toml_require_string" +string m39s422 " does not support field '" +string m39s423 " target field must be public: " +string m39s424 " argument type mismatch: expected " +string m39s425 " target must be a struct, got " +string m39s426 " requires an explicit struct type" +string m39s427 ".decode" +string m39s428 "unknown type: JsonDecodeError" +string m39s429 "JsonDecodeError" +string m39s430 "json.decode does not support field '" +string m39s431 "json.decode target field must be public: " +string m39s432 "json.decode argument type mismatch: expected " +string m39s433 "json.decode target must be a struct, got " +string m39s434 "json.decode expects 1 argument, got " +string m39s435 "json.decode requires an explicit struct type" +string m39s436 "config.decode does not support field '" +string m39s437 "config.decode target field must be public: " +string m39s438 "config.decode prefix type mismatch: expected String, got " +string m39s439 "config.decode argument type mismatch: expected Config, got " +string m39s440 "unknown type: Config" +string m39s441 "Config" +string m39s442 "config.decode target must be a struct, got " +string m39s443 " argument(s), got " +string m39s444 "config.decode expects " +string m39s445 "config.decode requires an explicit struct type" +string m39s446 "|" +string m39s447 "json.decode type argument must be a concrete struct type" +string m39s448 "config_mod" +string m39s449 "config" +string m39s450 "std.config" +string m39s451 "TomlDecodeError" +string m39s452 "YamlDecodeError" +string m39s453 "yaml" +string m39s454 "yaml_mod" +string m39s455 "toml" +string m39s456 "toml_mod" +string m39s457 "std.yaml" +string m39s458 "std.toml" +string m39s459 "json_mod" +string m39s460 "json" +string m39s461 "std.json" +string m39s462 "unary 'not' requires Bool, got " +string m39s463 "not" +string m39s464 "unary - requires numeric type, got " +string m39s465 "negate" +string m39s466 "pipe type mismatch: function expects " +string m39s467 "' must take exactly 1 parameter" +string m39s468 "pipe target '" +string m39s469 "' is not a function" +string m39s470 "pipe operator requires a function name on the right" +string m39s471 "operator 'or' requires Bool, got " +string m39s472 "or" +string m39s473 "operator 'and' requires Bool, got " +string m39s474 "and" +string m39s475 "operator >= type mismatch: " +string m39s476 "operator >= requires numeric or string type, got " +string m39s477 "gte" +string m39s478 "operator <= type mismatch: " +string m39s479 "operator <= requires numeric or string type, got " +string m39s480 "lte" +string m39s481 "operator > type mismatch: " +string m39s482 "operator > requires numeric or string type, got " +string m39s483 "gt" +string m39s484 "operator < type mismatch: " +string m39s485 "operator < requires numeric or string type, got " +string m39s486 "lt" +string m39s487 "operator != type mismatch: " +string m39s488 "neq" +string m39s489 "operator == type mismatch: " +string m39s490 "eq" +string m39s491 "operator % type mismatch: " +string m39s492 "operator % requires integer type, got " +string m39s493 "mod" +string m39s494 "operator / type mismatch: " +string m39s495 "operator / requires numeric type, got " +string m39s496 "div" +string m39s497 "operator * type mismatch: " +string m39s498 "operator * requires numeric type, got " +string m39s499 "mul" +string m39s500 "operator - type mismatch: " +string m39s501 "operator - requires numeric type, got " +string m39s502 "sub" +string m39s503 "operator + type mismatch: " +string m39s504 "operator + requires numeric type, got " +string m39s505 "pipe" +string m39s506 "undefined variable: " +string m39s507 "import it where it is defined" +string m39s508 "' belongs to another module and is not imported here" +string m39s509 "UInt64" +string m39s510 "UInt32" +string m39s511 "UInt16" +string m39s512 "UInt8" +string m39s513 "Int64" +string m39s514 "Int32" +string m39s515 "Int16" +string m39s516 "Int8" +string m39s517 "UInt" +string m39s518 "primitive" +string m39s519 "await" +string m39s520 "spawn" +string m39s521 "struct_init" +string m39s522 "lambda" +string m39s523 "match_expr" +string m39s524 "select_expr" +string m39s525 "catch_expr" +string m39s526 "try" +string m39s527 "unwrap" +string m39s528 "if_expr" +string m39s529 "string interpolation requires a stringifiable value, got " +string m39s530 "interp_spec" +string m39s531 "string_interp" +string m39s532 "grouped" +string m39s533 "unary" +string m39s534 "binary" +string m39s535 "self" +string m39s536 "bool_lit" +string m39s537 "float_lit" +string m39s538 "int_lit" +string m39s539 "cannot iterate over " +string m39s540 ".." +string m39s541 "range bounds must be Int, got " +string m39s542 "range" +string m39s543 ".next" +string m39s544 "while let" +string m39s545 "if let" +string m39s546 " supports variant patterns and optional bindings" +string m39s547 "E245" +string m39s548 " with a bare binding needs an optional subject, got " +string m39s549 "else" +string m39s550 "then" +string m39s551 "elif" +string m39s552 "fail type mismatch: expected " +string m39s553 "fail requires function to return a result type" +string m39s554 "E234" +string m39s555 "fail outside of function" +string m39s556 "E231" +string m39s557 "change the return type to " +string m39s558 "return type mismatch: expected " +string m39s559 ", got Void" +string m39s560 "return outside of function" +string m39s561 "lambda returns disagree: " +string m39s562 "type mismatch: expected " +string m39s563 " requires numeric type, got " +string m39s564 "operator " +string m39s565 "=" +string m39s566 "declare with 'mut': mut " +string m39s567 "cannot assign to immutable variable '" +string m39s568 "E216" +string m39s569 "try_expr" +string m39s570 "errdefer" +string m39s571 "defer" +string m39s572 "continue" +string m39s573 "break" +string m39s574 "fail" +string m39s575 "return" +string m39s576 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m39s577 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m39s578 "E260" +string m39s579 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m39s580 "errdefer is only meaningful in a function returning a result (`T!`)" +string m39s581 "errdefer is only allowed inside a function" +string m39s582 "defer is only allowed inside a function" +string m39s583 "continue outside of loop" +string m39s584 "E215" +string m39s585 "break outside of loop" +string m39s586 "for_stmt" +string m39s587 "while_let" +string m39s588 "if_let" +string m39s589 "while_stmt" +string m39s590 "if_stmt" +string m39s591 "assignment" +string m39s592 "mut" +string m39s593 "fn_decl" +string m39s594 " is missing associated type: " +string m39s595 " for " +string m39s596 "impl of " +string m39s597 "E229" +string m39s598 " is missing method: " +string m39s599 "E235" +string m39s600 "fn_sig" +string m39s601 "assoc_type_bind" +string m39s602 "for_type" +string m39s603 "test_decl" +string m39s604 "impl_decl" +string m39s605 "threadlocal" +string m39s606 "import" +string m39s607 "from_import" +string m39s608 "assoc_type" +string m39s609 "' is a builtin type name and cannot be used as an enum name" +string m39s610 "E250" +string m39s611 "' must be " +string m39s612 "default for field '" +string m39s613 " weak" +string m39s614 "' is a builtin type name and cannot be used as a struct name" +string m39s615 "' must be an optional struct type (T?)" +string m39s616 "weak field '" +string m39s617 "E249" +string m39s618 "parameter requires a type annotation" +string m39s619 "type_alias" +string m39s620 "interface_decl" +string m39s621 "unknown generic type: " +string m39s622 "Channel expects 1 type argument, got " +string m39s623 "Task expects 1 type argument, got " +string m39s624 "Map expects 2 type arguments, got " +string m39s625 "Set expects 1 type argument, got " +string m39s626 "List expects 1 type argument, got " +string m39s627 "type nesting too deep" +string m39s628 "E233" +string m39s629 "import it from the module that defines it" +string m39s630 "' is not declared by module '" +string m39s631 "E246" +string m39s632 "*" +string m39s633 "a" +string m39s634 "closure" +string m39s635 "bool" +string m39s636 "set_int" +string m39s637 "map_int" +string m39s638 "list_string" +string m39s639 "int" string m39s640 "require_bool" string m39s641 "require_int" -string m39s642 "require" -string m39s643 "std_json_scalar_has_bool" -string m39s644 "std_json_scalar_has_int" -string m39s645 "std_json_scalar_has_string" -string m39s646 "b" -string m39s647 "i" -string m39s648 "std_json_scan_required_bool_bytes" -string m39s649 "std_json_scan_required_int_bytes" -string m39s650 "std_json_scan_required_string_bytes" -string m39s651 "std_json_require_bool" -string m39s652 "std_json_require_int" -string m39s653 "std_json_require_string" -string m39s654 "object_require_bool" -string m39s655 "object_require_int" -string m39s656 "object_require_string" -string m39s657 "dotted_path" -string m39s658 "handle" -string m39s659 "decode_path" -string m39s660 "std_json_decode_path" -string m39s661 "input" -string m39s662 "std_json_decode" -string m39s663 "std_json_decode_text" -string m39s664 "decode_object" -string m39s665 "std_json_decode_object" -string m39s666 "std_toml_decode_text" +string m39s642 "require_string" +string m39s643 "require" +string m39s644 "std_json_scalar_has_bool" +string m39s645 "std_json_scalar_has_int" +string m39s646 "std_json_scalar_has_string" +string m39s647 "b" +string m39s648 "i" +string m39s649 "std_json_scan_required_bool_bytes" +string m39s650 "std_json_scan_required_int_bytes" +string m39s651 "std_json_scan_required_string_bytes" +string m39s652 "std_json_require_bool" +string m39s653 "std_json_require_int" +string m39s654 "std_json_require_string" +string m39s655 "object_require_bool" +string m39s656 "object_require_int" +string m39s657 "object_require_string" +string m39s658 "dotted_path" +string m39s659 "handle" +string m39s660 "decode_path" +string m39s661 "std_json_decode_path" +string m39s662 "input" +string m39s663 "std_json_decode" +string m39s664 "std_json_decode_text" +string m39s665 "decode_object" +string m39s666 "std_json_decode_object" string m39s667 "decode_text_path" -string m39s668 "std_toml_decode_text_path" -string m39s669 "std_toml_decode_path" -string m39s670 "std_toml_decode" -string m39s671 "cfg" -string m39s672 "std_config_decode" -string m39s673 "prefix" -string m39s674 "std_config_decode_prefix" -string m39s675 "std/config" -string m39s676 "require_string" -string m39s677 "std_config_require_bool" -string m39s678 "std_config_require_int" -string m39s679 "std_config_require" -string m39s680 "-" -string m39s681 "unknown" -string m39s682 "std_config_" -string m39s683 "std_json_" -string m39s684 "fn" -string m39s685 " pith_struct_set_dtor void 2 " -string m39s686 "call " -string m39s687 " __opt_dtor_" -string m39s688 "funcref " -string m39s689 " 1" -string m39s690 "iconst " -string m39s691 "neq " -string m39s692 " 0" -string m39s693 " pith_struct_weak_load int 1 " -string m39s694 " 1 " -string m39s695 "sstore " -string m39s696 " 0 " -string m39s697 "__struct_alloc" -string m39s698 " 2" -string m39s699 "and " -string m39s700 "or " -string m39s701 "eq " -string m39s702 " bool 2 " -string m39s703 "__str_eq" -string m39s704 " value" -string m39s705 " 8 " -string m39s706 "field " -string m39s707 " 0 bool is_some" -string m39s708 "load " -string m39s709 "label " -string m39s710 "store " -string m39s711 "ret " -string m39s712 "brif " -string m39s713 "pith_cstring_eq" -string m39s714 "strref " -string m39s715 "pith_list_get_value_unchecked" -string m39s716 "lt " -string m39s717 "pith_auto_len" -string m39s718 "pith_string_split_to_list" -string m39s719 "jmp " -string m39s720 "add " -string m39s721 " ok" -string m39s722 " failed" -string m39s723 " 0 bool is_ok" -string m39s724 "sub " -string m39s725 "TypeInfo" -string m39s726 "get_type_info" -string m39s727 "ti_channel" -string m39s728 "ti_task" -string m39s729 "ti_set" -string m39s730 "ti_map" -string m39s731 "ti_list" -string m39s732 "ti_tuple" -string m39s733 "ti_result" -string m39s734 "ti_optional" -string m39s735 "ti_function" -string m39s736 "ti_enum" -string m39s737 "ti_struct" -string m39s738 "ti_primitive" -string m39s739 "Token" -string m39s740 "expect" -string m39s741 "advance_token" -string m39s742 "Node" -string m39s743 "get_node" -string m39s744 "struct:" -string m39s745 "bytes" -string m39s746 "endfunc" -string m39s747 " 2 " -string m39s748 "struct:tuple" -string m39s749 " 3" -string m39s750 "not_op" -string m39s751 "!" -string m39s752 "integer" -string m39s753 "float" -string m39s754 "list:" -string m39s755 "task:" -string m39s756 "channel:" -string m39s757 "opaque:" -string m39s758 "void" -string m39s759 "Set[UInt64]" -string m39s760 "Set[UInt32]" -string m39s761 "Set[UInt16]" -string m39s762 "Set[UInt8]" -string m39s763 "Set[Int64]" -string m39s764 "Set[Int32]" -string m39s765 "Set[Int16]" -string m39s766 "Set[Int8]" -string m39s767 "Set[UInt]" -string m39s768 "Set[Int]" -string m39s769 "Map[Int, " -string m39s770 "Map[Int," -string m39s771 "List[String]" -string m39s772 "" -string m39s773 "TypeInfo(" -string m39s774 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" -string m39s775 "name" -string m39s776 ", name: " -string m39s777 "fields" -string m39s778 ", fields: " -string m39s779 "field_types" -string m39s780 ", field_types: " -string m39s781 "field_pub" -string m39s782 ", field_pub: " -string m39s783 "field_mut" -string m39s784 ", field_mut: " -string m39s785 "param_types" -string m39s786 ", param_types: " -string m39s787 "return_type" -string m39s788 ", return_type: " -string m39s789 "inner" -string m39s790 ", inner: " -string m39s791 "key_type" -string m39s792 ", key_type: " -string m39s793 "value_type" -string m39s794 ", value_type: " -string m39s795 "elements" -string m39s796 ", elements: " -string m39s797 "variants" -string m39s798 ", variants: " -string m39s799 "variant_types" -string m39s800 ", variant_types: " -string m39s801 "from_json_file" -string m39s802 "from_json_file_typed_prefix" -string m39s803 "from_toml_file" -string m39s804 "from_toml_file_typed_prefix" -string m39s805 "from_json" -string m39s806 "from_json_typed_prefix" -string m39s807 "from_toml" -string m39s808 "from_toml_typed_prefix" -string m39s809 "pool_restore" -string m39s810 "object_require_object" -string m39s811 "json_file_parts_idx" -string m39s812 "json_file_parts_len" -string m39s813 "json_file_parts" -string m39s814 "json_file_current" -string m39s815 "require_object_handle" -string m39s816 "parse_file" -string m39s817 "pool_mark_array_len" -string m39s818 "pool_mark_node_id" -string m39s819 "json_decode_file_path" -string m39s820 "json_decode_file" -string m39s821 "json_parts_idx" -string m39s822 "json_parts_len" -string m39s823 "json_parts" -string m39s824 "json_current" -string m39s825 "parse" -string m39s826 "json_decode_path" -string m39s827 "json_decode_object" -string m39s828 " dotted_path" -string m39s829 " handle" -string m39s830 "parse_bytes_required" -string m39s831 "json_decode" -string m39s832 " input" -string m39s833 "json_object_default_field" -string m39s834 "json_object_optional_field" -string m39s835 "json_object_default_struct_field" -string m39s836 "json_object_optional_struct_field" -string m39s837 "object_has" -string m39s838 "json_nested_decode" -string m39s839 "std_bytes_from_string_utf8" -string m39s840 "json_decode_nested" -string m39s841 "json_default_field" -string m39s842 "json_optional_field" -string m39s843 "std_json_decode_scalars_bytes" -string m39s844 "pith_json_decode_missing_error" -string m39s845 "pith_struct_release" -string m39s846 "pith_json_fill_struct" -string m39s847 "pith_struct_set_dtor" -string m39s848 " __dtor_" -string m39s849 "toml_require_table" -string m39s850 "toml_file_parts_idx" -string m39s851 "toml_file_parts_len" -string m39s852 "toml_file_parts" -string m39s853 "toml_file_current" -string m39s854 "parse_file_required" -string m39s855 "pool_mark_table_len" -string m39s856 "toml_decode_file_path" -string m39s857 "toml_decode_file" -string m39s858 "toml_parts_idx" -string m39s859 "toml_parts_len" -string m39s860 "toml_parts" -string m39s861 "toml_current" -string m39s862 "parse_required" -string m39s863 "toml_decode_path" -string m39s864 "std_toml_parse_required" -string m39s865 "toml_decode" -string m39s866 "toml_default_field" -string m39s867 "has" -string m39s868 "toml_optional_field" -string m39s869 "toml_default_struct_field" -string m39s870 "toml_optional_struct_field" -string m39s871 "config_loader_decode" -string m39s872 "config_decode" -string m39s873 "toml_decode_text_path" -string m39s874 "toml_decode_text" -string m39s875 "current" -string m39s876 "__for_idx_toml_path" -string m39s877 "__for_len_toml_path" -string m39s878 "__for_iter_toml_path" -string m39s879 "toml_spec_default_field" -string m39s880 "toml_spec_optional_field" -string m39s881 "toml_spec_default_struct_field" -string m39s882 "toml_spec_optional_struct_field" -string m39s883 "config_default_field" -string m39s884 "config_optional_field" -string m39s885 "config_default_struct_field" -string m39s886 "has_prefix" -string m39s887 "config_optional_struct_field" -string m39s888 " prefix" -string m39s889 " cfg" -string m39s890 "config_spec_default_field" -string m39s891 "std_config_has" -string m39s892 "config_spec_optional_field" -string m39s893 "config_spec_default_struct_field" -string m39s894 "std_config_has_prefix" -string m39s895 "config_spec_optional_struct_field" -string m39s896 "std_config_dotted_key" -string m39s897 "dotted_key" -string m39s898 "toml_nested_decode" -string m39s899 "toml_pool_array_mark" -string m39s900 "toml_pool_table_mark" -string m39s901 "toml_pool_node_mark" -string m39s902 "json_pool_array_mark" -string m39s903 "json_pool_node_mark" -string m39s904 "IrJsonPoolMark(" -string m39s905 "snode_id_var,sarray_len_var" -string m39s906 "node_id_var" -string m39s907 "node_id_var: " -string m39s908 "array_len_var" -string m39s909 ", array_len_var: " -string m39s910 "IrTomlPoolMark(" -string m39s911 "snode_id_var,stable_len_var,sarray_len_var" -string m39s912 "table_len_var" -string m39s913 ", table_len_var: " -string m39s914 "IrDecodeFieldBranch(" -string m39s915 "sfield_temp,spresent_l,smerge_l" -string m39s916 "field_temp" -string m39s917 "field_temp: " -string m39s918 "present_l" -string m39s919 ", present_l: " -string m39s920 "merge_l" -string m39s921 ", merge_l: " -string m39s922 "IrDecodeFieldValue(" -string m39s923 "bok,ivalue_r" -string m39s924 "ok: " -string m39s925 "value_r" -string m39s926 ", value_r: " -string m39s927 "parse_int failed" -string m39s928 "file_open_read failed" -string m39s929 "file_open_write failed" -string m39s930 "file_open_append failed" -string m39s931 "byte_buffer_write failed" -string m39s932 "byte_buffer_write_string_utf8 failed" -string m39s933 "byte_buffer_write_byte failed" -string m39s934 "file_write failed" -string m39s935 "file_write_bytes failed" -string m39s936 "tcp_connect failed" -string m39s937 "tcp_listen failed" -string m39s938 "tcp_accept failed" -string m39s939 "tcp_write failed" -string m39s940 "tcp_write_bytes failed" -string m39s941 "process_spawn failed" -string m39s942 "process_spawn_argv failed" -string m39s943 "process_output_argv failed" -string m39s944 "process_write failed" -string m39s945 "process_write_bytes failed" -string m39s946 "crypto_x25519_keygen failed" -string m39s947 "write_file failed" -string m39s948 "append_file failed" -string m39s949 "write_file_bytes failed" -string m39s950 "append_file_bytes failed" -string m39s951 "read_file failed" -string m39s952 "exec_output failed" -string m39s953 "dns_resolve failed" -string m39s954 "bytes_to_string_utf8 failed" -string m39s955 "bytes_substring_utf8 failed" -string m39s956 "file_read failed" -string m39s957 "tcp_read failed" -string m39s958 "process_read failed" -string m39s959 "process_read_err failed" -string m39s960 "read_file_bytes failed" -string m39s961 "b64_decode failed" -string m39s962 "from_hex failed" -string m39s963 "file_read_bytes failed" -string m39s964 "tcp_read_bytes failed" -string m39s965 "process_read_bytes failed" -string m39s966 "process_read_err_bytes failed" -string m39s967 "crypto_x25519_public_key failed" -string m39s968 "crypto_x25519_shared_secret failed" -string m39s969 "crypto_aes_128_gcm_seal failed" -string m39s970 "crypto_aes_128_gcm_open failed" -string m39s971 "crypto_chacha20_poly1305_seal failed" -string m39s972 "crypto_chacha20_poly1305_open failed" -string m39s973 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m39s668 "std_yaml_" +string m39s669 "std_toml_" +string m39s670 "cfg" +string m39s671 "std_config_decode" +string m39s672 "prefix" +string m39s673 "std_config_decode_prefix" +string m39s674 "std/config" +string m39s675 "std_config_require_bool" +string m39s676 "std_config_require_int" +string m39s677 "std_config_require" +string m39s678 "-" +string m39s679 "unknown" +string m39s680 "std_config_" +string m39s681 "std_json_" +string m39s682 "fn" +string m39s683 " pith_struct_set_dtor void 2 " +string m39s684 "call " +string m39s685 " __opt_dtor_" +string m39s686 "funcref " +string m39s687 " 1" +string m39s688 "iconst " +string m39s689 "neq " +string m39s690 " 0" +string m39s691 " pith_struct_weak_load int 1 " +string m39s692 " 1 " +string m39s693 "sstore " +string m39s694 " 0 " +string m39s695 "__struct_alloc" +string m39s696 " 2" +string m39s697 "and " +string m39s698 "or " +string m39s699 "eq " +string m39s700 " bool 2 " +string m39s701 "__str_eq" +string m39s702 " value" +string m39s703 " 8 " +string m39s704 "field " +string m39s705 " 0 bool is_some" +string m39s706 "load " +string m39s707 "label " +string m39s708 "store " +string m39s709 "ret " +string m39s710 "brif " +string m39s711 "pith_cstring_eq" +string m39s712 "strref " +string m39s713 "pith_list_get_value_unchecked" +string m39s714 "lt " +string m39s715 "pith_auto_len" +string m39s716 "pith_string_split_to_list" +string m39s717 "jmp " +string m39s718 "add " +string m39s719 " ok" +string m39s720 " failed" +string m39s721 " 0 bool is_ok" +string m39s722 "sub " +string m39s723 "TypeInfo" +string m39s724 "get_type_info" +string m39s725 "ti_channel" +string m39s726 "ti_task" +string m39s727 "ti_set" +string m39s728 "ti_map" +string m39s729 "ti_list" +string m39s730 "ti_tuple" +string m39s731 "ti_result" +string m39s732 "ti_optional" +string m39s733 "ti_function" +string m39s734 "ti_enum" +string m39s735 "ti_struct" +string m39s736 "ti_primitive" +string m39s737 "Token" +string m39s738 "expect" +string m39s739 "advance_token" +string m39s740 "Node" +string m39s741 "get_node" +string m39s742 "struct:" +string m39s743 "bytes" +string m39s744 "endfunc" +string m39s745 " 2 " +string m39s746 "struct:tuple" +string m39s747 " 3" +string m39s748 "not_op" +string m39s749 "!" +string m39s750 "integer" +string m39s751 "float" +string m39s752 "list:" +string m39s753 "task:" +string m39s754 "channel:" +string m39s755 "opaque:" +string m39s756 "void" +string m39s757 "Set[UInt64]" +string m39s758 "Set[UInt32]" +string m39s759 "Set[UInt16]" +string m39s760 "Set[UInt8]" +string m39s761 "Set[Int64]" +string m39s762 "Set[Int32]" +string m39s763 "Set[Int16]" +string m39s764 "Set[Int8]" +string m39s765 "Set[UInt]" +string m39s766 "Set[Int]" +string m39s767 "Map[Int, " +string m39s768 "Map[Int," +string m39s769 "List[String]" +string m39s770 "" +string m39s771 "TypeInfo(" +string m39s772 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" +string m39s773 "name" +string m39s774 ", name: " +string m39s775 "fields" +string m39s776 ", fields: " +string m39s777 "field_types" +string m39s778 ", field_types: " +string m39s779 "field_pub" +string m39s780 ", field_pub: " +string m39s781 "field_mut" +string m39s782 ", field_mut: " +string m39s783 "param_types" +string m39s784 ", param_types: " +string m39s785 "return_type" +string m39s786 ", return_type: " +string m39s787 "inner" +string m39s788 ", inner: " +string m39s789 "key_type" +string m39s790 ", key_type: " +string m39s791 "value_type" +string m39s792 ", value_type: " +string m39s793 "elements" +string m39s794 ", elements: " +string m39s795 "variants" +string m39s796 ", variants: " +string m39s797 "variant_types" +string m39s798 ", variant_types: " +string m39s799 "from_json_file" +string m39s800 "from_json_file_typed_prefix" +string m39s801 "from_toml_file" +string m39s802 "from_toml_file_typed_prefix" +string m39s803 "from_json" +string m39s804 "from_json_typed_prefix" +string m39s805 "from_toml" +string m39s806 "from_toml_typed_prefix" +string m39s807 "pool_restore" +string m39s808 "object_require_object" +string m39s809 "json_file_parts_idx" +string m39s810 "json_file_parts_len" +string m39s811 "json_file_parts" +string m39s812 "json_file_current" +string m39s813 "require_object_handle" +string m39s814 "parse_file" +string m39s815 "pool_mark_array_len" +string m39s816 "pool_mark_node_id" +string m39s817 "json_decode_file_path" +string m39s818 "json_decode_file" +string m39s819 "json_parts_idx" +string m39s820 "json_parts_len" +string m39s821 "json_parts" +string m39s822 "json_current" +string m39s823 "parse" +string m39s824 "json_decode_path" +string m39s825 "json_decode_object" +string m39s826 " dotted_path" +string m39s827 " handle" +string m39s828 "parse_bytes_required" +string m39s829 "json_decode" +string m39s830 " input" +string m39s831 "json_object_default_field" +string m39s832 "json_object_optional_field" +string m39s833 "json_object_default_struct_field" +string m39s834 "json_object_optional_struct_field" +string m39s835 "object_has" +string m39s836 "json_nested_decode" +string m39s837 "std_bytes_from_string_utf8" +string m39s838 "json_decode_nested" +string m39s839 "json_default_field" +string m39s840 "json_optional_field" +string m39s841 "std_json_decode_scalars_bytes" +string m39s842 "pith_json_decode_missing_error" +string m39s843 "pith_struct_release" +string m39s844 "pith_json_fill_struct" +string m39s845 "pith_struct_set_dtor" +string m39s846 " __dtor_" +string m39s847 "require_table" +string m39s848 "handle_decode_file_parts_idx" +string m39s849 "handle_decode_file_parts_len" +string m39s850 "handle_decode_file_parts" +string m39s851 "handle_decode_file_current" +string m39s852 "parse_file_required" +string m39s853 "pool_mark_table_len" +string m39s854 "handle_decode_file_path" +string m39s855 "handle_decode_file" +string m39s856 "handle_decode_parts_idx" +string m39s857 "handle_decode_parts_len" +string m39s858 "handle_decode_parts" +string m39s859 "handle_decode_current" +string m39s860 "parse_required" +string m39s861 "handle_decode_path" +string m39s862 "handle_decode" +string m39s863 "handle_default_field" +string m39s864 "has" +string m39s865 "handle_optional_field" +string m39s866 "handle_default_struct_field" +string m39s867 "handle_optional_struct_field" +string m39s868 "config_loader_decode" +string m39s869 "config_decode" +string m39s870 "handle_decode_text_path" +string m39s871 "handle_decode_text" +string m39s872 "current" +string m39s873 "__for_idx_handle_path" +string m39s874 "__for_len_handle_path" +string m39s875 "__for_iter_handle_path" +string m39s876 "handle_spec_default_field" +string m39s877 "handle_spec_optional_field" +string m39s878 "handle_spec_default_struct_field" +string m39s879 "handle_spec_optional_struct_field" +string m39s880 "config_default_field" +string m39s881 "config_optional_field" +string m39s882 "config_default_struct_field" +string m39s883 "has_prefix" +string m39s884 "config_optional_struct_field" +string m39s885 " prefix" +string m39s886 " cfg" +string m39s887 "config_spec_default_field" +string m39s888 "std_config_has" +string m39s889 "config_spec_optional_field" +string m39s890 "config_spec_default_struct_field" +string m39s891 "std_config_has_prefix" +string m39s892 "config_spec_optional_struct_field" +string m39s893 "std_config_dotted_key" +string m39s894 "dotted_key" +string m39s895 "handle_nested_decode" +string m39s896 "handle_pool_array_mark" +string m39s897 "handle_pool_table_mark" +string m39s898 "handle_pool_node_mark" +string m39s899 "json_pool_array_mark" +string m39s900 "json_pool_node_mark" +string m39s901 "IrJsonPoolMark(" +string m39s902 "snode_id_var,sarray_len_var" +string m39s903 "node_id_var" +string m39s904 "node_id_var: " +string m39s905 "array_len_var" +string m39s906 ", array_len_var: " +string m39s907 "IrHandlePoolMark(" +string m39s908 "snode_id_var,stable_len_var,sarray_len_var" +string m39s909 "table_len_var" +string m39s910 ", table_len_var: " +string m39s911 "IrDecodeFieldBranch(" +string m39s912 "sfield_temp,spresent_l,smerge_l" +string m39s913 "field_temp" +string m39s914 "field_temp: " +string m39s915 "present_l" +string m39s916 ", present_l: " +string m39s917 "merge_l" +string m39s918 ", merge_l: " +string m39s919 "IrDecodeFieldValue(" +string m39s920 "bok,ivalue_r" +string m39s921 "ok: " +string m39s922 "value_r" +string m39s923 ", value_r: " +string m39s924 "parse_int failed" +string m39s925 "file_open_read failed" +string m39s926 "file_open_write failed" +string m39s927 "file_open_append failed" +string m39s928 "byte_buffer_write failed" +string m39s929 "byte_buffer_write_string_utf8 failed" +string m39s930 "byte_buffer_write_byte failed" +string m39s931 "file_write failed" +string m39s932 "file_write_bytes failed" +string m39s933 "tcp_connect failed" +string m39s934 "tcp_listen failed" +string m39s935 "tcp_accept failed" +string m39s936 "tcp_write failed" +string m39s937 "tcp_write_bytes failed" +string m39s938 "process_spawn failed" +string m39s939 "process_spawn_argv failed" +string m39s940 "process_output_argv failed" +string m39s941 "process_write failed" +string m39s942 "process_write_bytes failed" +string m39s943 "crypto_x25519_keygen failed" +string m39s944 "write_file failed" +string m39s945 "append_file failed" +string m39s946 "write_file_bytes failed" +string m39s947 "append_file_bytes failed" +string m39s948 "read_file failed" +string m39s949 "exec_output failed" +string m39s950 "dns_resolve failed" +string m39s951 "bytes_to_string_utf8 failed" +string m39s952 "bytes_substring_utf8 failed" +string m39s953 "file_read failed" +string m39s954 "tcp_read failed" +string m39s955 "process_read failed" +string m39s956 "process_read_err failed" +string m39s957 "read_file_bytes failed" +string m39s958 "b64_decode failed" +string m39s959 "from_hex failed" +string m39s960 "file_read_bytes failed" +string m39s961 "tcp_read_bytes failed" +string m39s962 "process_read_bytes failed" +string m39s963 "process_read_err_bytes failed" +string m39s964 "crypto_x25519_public_key failed" +string m39s965 "crypto_x25519_shared_secret failed" +string m39s966 "crypto_aes_128_gcm_seal failed" +string m39s967 "crypto_aes_128_gcm_open failed" +string m39s968 "crypto_chacha20_poly1305_seal failed" +string m39s969 "crypto_chacha20_poly1305_open failed" +string m39s970 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types struct Diagnostic severity code message file line col fix struct IrJsonPoolMark node_id_var array_len_var -struct IrTomlPoolMark node_id_var table_len_var array_len_var +struct IrHandlePoolMark node_id_var table_len_var array_len_var struct IrDecodeFieldBranch field_temp present_l merge_l struct IrDecodeFieldValue ok value_r func ir_decode_emit___opt_dtor_struct 1 void @@ -103045,26 +103251,26 @@ call 54 pith_cstring_release void 1 53 iconst 55 0 ret 55 endfunc -func ir_decode_emit___dtor_IrTomlPoolMark 1 void +func ir_decode_emit___dtor_IrDecodeFieldBranch 1 void param p load 56 p -field 57 56 0 unknown node_id_var +field 57 56 0 unknown field_temp call 58 pith_cstring_release void 1 57 -field 59 56 8 unknown table_len_var +field 59 56 8 unknown present_l call 60 pith_cstring_release void 1 59 -field 61 56 16 unknown array_len_var +field 61 56 16 unknown merge_l call 62 pith_cstring_release void 1 61 iconst 63 0 ret 63 endfunc -func ir_decode_emit___dtor_IrDecodeFieldBranch 1 void +func ir_decode_emit___dtor_IrHandlePoolMark 1 void param p load 64 p -field 65 64 0 unknown field_temp +field 65 64 0 unknown node_id_var call 66 pith_cstring_release void 1 65 -field 67 64 8 unknown present_l +field 67 64 8 unknown table_len_var call 68 pith_cstring_release void 1 67 -field 69 64 16 unknown merge_l +field 69 64 16 unknown array_len_var call 70 pith_cstring_release void 1 69 iconst 71 0 ret 71 @@ -103420,20 +103626,20 @@ call 4 ir_builder_ir_reg int 0 store node_r 4 load 5 node_r load 6 mark_node_id_name -strref 7 m39s636 +strref 7 m39s639 call 8 ir_call_emit_ir_emit_call0 void 3 5 6 7 call 9 pith_cstring_release void 1 7 load 10 node_var -strref 11 m39s903 +strref 11 m39s900 call 12 ir_builder_ir_new_temp_name string 1 11 call 13 pith_cstring_release void 1 11 call 14 pith_cstring_release void 1 10 store node_var 12 load 15 ir_builder_ir_var_types load 16 node_var -strref 17 m39s636 +strref 17 m39s639 call 18 pith_map_insert_cstr_owned void 3 15 16 17 -strref 19 m39s710 +strref 19 m39s708 load 20 node_var concat 21 19 20 call 22 pith_cstring_release void 1 19 @@ -103452,20 +103658,20 @@ call 34 ir_builder_ir_reg int 0 store array_r 34 load 35 array_r load 36 mark_array_len_name -strref 37 m39s636 +strref 37 m39s639 call 38 ir_call_emit_ir_emit_call0 void 3 35 36 37 call 39 pith_cstring_release void 1 37 load 40 array_var -strref 41 m39s902 +strref 41 m39s899 call 42 ir_builder_ir_new_temp_name string 1 41 call 43 pith_cstring_release void 1 41 call 44 pith_cstring_release void 1 40 store array_var 42 load 45 ir_builder_ir_var_types load 46 array_var -strref 47 m39s636 +strref 47 m39s639 call 48 pith_map_insert_cstr_owned void 3 45 46 47 -strref 49 m39s710 +strref 49 m39s708 load 50 array_var concat 51 49 50 call 52 pith_cstring_release void 1 49 @@ -103507,7 +103713,7 @@ param mark param restore_name call 2 ir_builder_ir_reg int 0 store node_r 2 -strref 3 m39s708 +strref 3 m39s706 load 4 node_r call 5 int_to_string string 1 4 concat 6 3 5 @@ -103525,7 +103731,7 @@ call 17 ir_builder_ir_emit void 1 15 call 18 pith_cstring_release void 1 15 call 19 ir_builder_ir_reg int 0 store array_r 19 -strref 20 m39s708 +strref 20 m39s706 load 21 array_r call 22 int_to_string string 1 21 concat 23 20 22 @@ -103543,7 +103749,7 @@ call 34 ir_builder_ir_emit void 1 32 call 35 pith_cstring_release void 1 32 call 36 ir_builder_ir_reg int 0 load 37 restore_name -strref 38 m39s758 +strref 38 m39s756 load 39 node_r load 40 array_r call 41 ir_call_emit_ir_emit_call2 void 5 36 37 38 39 40 @@ -103551,7 +103757,7 @@ call 42 pith_cstring_release void 1 38 iconst 43 0 ret 43 endfunc -func ir_decode_emit_ir_emit_toml_pool_mark 3 struct:IrTomlPoolMark +func ir_decode_emit_ir_emit_handle_pool_mark 3 struct:IrHandlePoolMark param mark_node_id_name param mark_table_len_name param mark_array_len_name @@ -103565,20 +103771,20 @@ call 6 ir_builder_ir_reg int 0 store node_r 6 load 7 node_r load 8 mark_node_id_name -strref 9 m39s636 +strref 9 m39s639 call 10 ir_call_emit_ir_emit_call0 void 3 7 8 9 call 11 pith_cstring_release void 1 9 load 12 node_var -strref 13 m39s901 +strref 13 m39s898 call 14 ir_builder_ir_new_temp_name string 1 13 call 15 pith_cstring_release void 1 13 call 16 pith_cstring_release void 1 12 store node_var 14 load 17 ir_builder_ir_var_types load 18 node_var -strref 19 m39s636 +strref 19 m39s639 call 20 pith_map_insert_cstr_owned void 3 17 18 19 -strref 21 m39s710 +strref 21 m39s708 load 22 node_var concat 23 21 22 call 24 pith_cstring_release void 1 21 @@ -103597,20 +103803,20 @@ call 36 ir_builder_ir_reg int 0 store table_r 36 load 37 table_r load 38 mark_table_len_name -strref 39 m39s636 +strref 39 m39s639 call 40 ir_call_emit_ir_emit_call0 void 3 37 38 39 call 41 pith_cstring_release void 1 39 load 42 table_var -strref 43 m39s900 +strref 43 m39s897 call 44 ir_builder_ir_new_temp_name string 1 43 call 45 pith_cstring_release void 1 43 call 46 pith_cstring_release void 1 42 store table_var 44 load 47 ir_builder_ir_var_types load 48 table_var -strref 49 m39s636 +strref 49 m39s639 call 50 pith_map_insert_cstr_owned void 3 47 48 49 -strref 51 m39s710 +strref 51 m39s708 load 52 table_var concat 53 51 52 call 54 pith_cstring_release void 1 51 @@ -103629,20 +103835,20 @@ call 66 ir_builder_ir_reg int 0 store array_r 66 load 67 array_r load 68 mark_array_len_name -strref 69 m39s636 +strref 69 m39s639 call 70 ir_call_emit_ir_emit_call0 void 3 67 68 69 call 71 pith_cstring_release void 1 69 load 72 array_var -strref 73 m39s899 +strref 73 m39s896 call 74 ir_builder_ir_new_temp_name string 1 73 call 75 pith_cstring_release void 1 73 call 76 pith_cstring_release void 1 72 store array_var 74 load 77 ir_builder_ir_var_types load 78 array_var -strref 79 m39s636 +strref 79 m39s639 call 80 pith_map_insert_cstr_owned void 3 77 78 79 -strref 81 m39s710 +strref 81 m39s708 load 82 array_var concat 83 81 82 call 84 pith_cstring_release void 1 81 @@ -103664,11 +103870,11 @@ call 99 pith_cstring_retain void 1 98 load 100 array_var call 101 pith_cstring_retain void 1 100 iconst 103 3 -call 102 pith_struct_alloc struct:IrTomlPoolMark 1 103 +call 102 pith_struct_alloc struct:IrHandlePoolMark 1 103 sstore 102 0 96 sstore 102 1 98 sstore 102 2 100 -funcref 104 ir_decode_emit___dtor_IrTomlPoolMark +funcref 104 ir_decode_emit___dtor_IrHandlePoolMark call 105 pith_struct_set_dtor void 2 102 104 load 106 node_var call 107 pith_cstring_release void 1 106 @@ -103686,12 +103892,12 @@ call 117 pith_cstring_release void 1 116 iconst 118 0 ret 118 endfunc -func ir_decode_emit_ir_emit_toml_pool_restore 2 void +func ir_decode_emit_ir_emit_handle_pool_restore 2 void param mark param restore_name call 2 ir_builder_ir_reg int 0 store node_r 2 -strref 3 m39s708 +strref 3 m39s706 load 4 node_r call 5 int_to_string string 1 4 concat 6 3 5 @@ -103709,7 +103915,7 @@ call 17 ir_builder_ir_emit void 1 15 call 18 pith_cstring_release void 1 15 call 19 ir_builder_ir_reg int 0 store table_r 19 -strref 20 m39s708 +strref 20 m39s706 load 21 table_r call 22 int_to_string string 1 21 concat 23 20 22 @@ -103727,7 +103933,7 @@ call 34 ir_builder_ir_emit void 1 32 call 35 pith_cstring_release void 1 32 call 36 ir_builder_ir_reg int 0 store array_r 36 -strref 37 m39s708 +strref 37 m39s706 load 38 array_r call 39 int_to_string string 1 38 concat 40 37 39 @@ -103745,7 +103951,7 @@ call 51 ir_builder_ir_emit void 1 49 call 52 pith_cstring_release void 1 49 call 53 ir_builder_ir_reg int 0 load 54 restore_name -strref 55 m39s758 +strref 55 m39s756 load 56 node_r load 57 table_r load 58 array_r @@ -103772,13 +103978,13 @@ ret 3 iconst 4 0 ret 4 endfunc -func ir_decode_emit_ir_toml_generic_name 2 string +func ir_decode_emit_ir_handle_generic_name 2 string param base_name param module_path load 2 base_name load 3 module_path load 4 ir_generics_ir_generic_decl_indices -call 5 ir_generics_ir_toml_generic_name_with_state string 3 2 3 4 +call 5 ir_generics_ir_handle_generic_name_with_state string 3 2 3 4 ret 5 iconst 6 0 ret 6 @@ -103845,7 +104051,7 @@ load 50 child_handle_r call 51 ir_call_emit_ir_emit_call1 void 4 39 47 49 50 call 52 pith_cstring_release void 1 47 call 53 pith_cstring_release void 1 49 -strref 54 m39s710 +strref 54 m39s708 load 55 temp_name concat 56 54 55 call 57 pith_cstring_release void 1 54 @@ -103864,7 +104070,7 @@ load 69 done_l call 70 ir_call_emit_ir_emit_label void 1 69 call 71 ir_builder_ir_reg int 0 store result_r 71 -strref 72 m39s708 +strref 72 m39s706 load 73 result_r call 74 int_to_string string 1 73 concat 75 72 74 @@ -103901,10 +104107,10 @@ iconst 4 0 store decode_name 4 load 5 decode_name load 6 index_idx -strref 7 m39s664 +strref 7 m39s665 call 8 ir_alias_registry_ir_resolve_json_call_name string 2 6 7 call 9 pith_cstring_release void 1 7 -strref 10 m39s664 +strref 10 m39s665 call 11 ir_generics_ir_generic_preferred_name string 2 8 10 call 12 pith_cstring_release void 1 8 call 13 pith_cstring_release void 1 10 @@ -103914,11 +104120,11 @@ load 15 parent_handle_r load 16 key_r load 17 target_tid load 18 index_idx -strref 19 m39s810 +strref 19 m39s808 call 20 ir_alias_registry_ir_resolve_json_call_name string 2 18 19 call 21 pith_cstring_release void 1 19 load 22 decode_name -strref 23 m39s838 +strref 23 m39s836 call 24 ir_decode_emit_ir_emit_nested_decode_path int 6 15 16 17 20 22 23 call 25 pith_cstring_release void 1 20 call 26 pith_cstring_release void 1 23 @@ -104014,7 +104220,7 @@ call 30 pith_cstring_release void 1 29 iconst 31 0 ret 31 endfunc -func ir_decode_emit_ir_emit_toml_nested_decode_path 4 int +func ir_decode_emit_ir_emit_handle_nested_decode_path 4 int param handle_r param key_r param target_tid @@ -104024,7 +104230,7 @@ store decode_name 4 load 5 decode_name load 6 index_idx strref 7 m39s409 -call 8 ir_alias_registry_ir_resolve_toml_call_name string 2 6 7 +call 8 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 6 7 call 9 pith_cstring_release void 1 7 strref 10 m39s409 call 11 ir_generics_ir_generic_preferred_name string 2 8 10 @@ -104036,11 +104242,11 @@ load 15 handle_r load 16 key_r load 17 target_tid load 18 index_idx -strref 19 m39s849 -call 20 ir_alias_registry_ir_resolve_toml_call_name string 2 18 19 +strref 19 m39s847 +call 20 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 18 19 call 21 pith_cstring_release void 1 19 load 22 decode_name -strref 23 m39s898 +strref 23 m39s895 call 24 ir_decode_emit_ir_emit_nested_decode_path int 6 15 16 17 20 22 23 call 25 pith_cstring_release void 1 20 call 26 pith_cstring_release void 1 23 @@ -104052,7 +104258,7 @@ call 30 pith_cstring_release void 1 29 iconst 31 0 ret 31 endfunc -func ir_decode_emit_ir_emit_toml_nested_decode_path_specialized 4 int +func ir_decode_emit_ir_emit_handle_nested_decode_path_specialized 4 int param handle_r param key_r param target_tid @@ -104062,7 +104268,7 @@ store decode_name 4 load 5 decode_name strref 6 m39s409 load 7 module_path -call 8 ir_decode_emit_ir_toml_generic_name string 2 6 7 +call 8 ir_decode_emit_ir_handle_generic_name string 2 6 7 call 9 pith_cstring_release void 1 6 call 10 pith_cstring_release void 1 5 store decode_name 8 @@ -104070,11 +104276,11 @@ load 11 handle_r load 12 key_r load 13 target_tid load 14 module_path -strref 15 m39s849 +strref 15 m39s847 call 16 ir_generics_ir_resolve_generic_module_call_name string 2 14 15 call 17 pith_cstring_release void 1 15 load 18 decode_name -strref 19 m39s898 +strref 19 m39s895 call 20 ir_decode_emit_ir_emit_nested_decode_path int 6 11 12 13 16 18 19 call 21 pith_cstring_release void 1 16 call 22 pith_cstring_release void 1 19 @@ -104092,7 +104298,7 @@ param prefix_r param index_idx call 3 ir_builder_ir_reg int 0 store key_r 3 -strref 4 m39s714 +strref 4 m39s712 load 5 key_r call 6 int_to_string string 1 5 concat 7 4 6 @@ -104122,7 +104328,7 @@ call 25 ir_builder_ir_reg int 0 store full_key_r 25 load 26 full_key_r load 27 index_idx -strref 28 m39s897 +strref 28 m39s894 call 29 ir_alias_registry_ir_resolve_config_call_name string 2 27 28 call 30 pith_cstring_release void 1 28 strref 31 m39s24 @@ -104141,7 +104347,7 @@ param field_name param prefix_r call 2 ir_builder_ir_reg int 0 store key_r 2 -strref 3 m39s714 +strref 3 m39s712 load 4 key_r call 5 int_to_string string 1 4 concat 6 3 5 @@ -104170,7 +104376,7 @@ label L38 call 24 ir_builder_ir_reg int 0 store full_key_r 24 load 25 full_key_r -strref 26 m39s896 +strref 26 m39s893 strref 27 m39s24 load 28 prefix_r load 29 key_r @@ -104215,7 +104421,7 @@ load 20 ir_builder_ir_var_types load 21 field_temp load 22 temp_type call 23 map_insert void 3 20 21 22 -strref 24 m39s712 +strref 24 m39s710 load 25 has_r call 26 int_to_string string 1 25 concat 27 24 26 @@ -104274,7 +104480,7 @@ ret 74 endfunc func ir_decode_emit_ir_decode_field_present 1 void param branch -strref 1 m39s719 +strref 1 m39s717 load 2 branch field 3 2 16 string merge_l concat 4 1 3 @@ -104290,7 +104496,7 @@ endfunc func ir_decode_emit_ir_decode_field_store_and_merge 2 void param branch param value_r -strref 2 m39s710 +strref 2 m39s708 load 3 branch field 4 3 0 string field_temp concat 5 2 4 @@ -104306,7 +104512,7 @@ call 14 pith_cstring_release void 1 8 call 15 pith_cstring_release void 1 12 call 16 ir_builder_ir_emit void 1 13 call 17 pith_cstring_release void 1 13 -strref 18 m39s719 +strref 18 m39s717 load 19 branch field 20 19 16 string merge_l concat 21 18 20 @@ -104323,7 +104529,7 @@ field 2 1 16 string merge_l call 3 ir_call_emit_ir_emit_label void 1 2 call 4 ir_builder_ir_reg int 0 store loaded_r 4 -strref 5 m39s708 +strref 5 m39s706 load 6 loaded_r call 7 int_to_string string 1 6 concat 8 5 7 @@ -104407,8 +104613,8 @@ store branch 5 call 6 ir_builder_ir_reg int 0 store has_r 6 load 7 has_r -strref 8 m39s894 -strref 9 m39s632 +strref 8 m39s891 +strref 9 m39s635 load 10 cfg_r load 11 full_key_r call 12 ir_call_emit_ir_emit_call2 void 5 7 8 9 10 11 @@ -104416,7 +104622,7 @@ call 13 pith_cstring_release void 1 8 call 14 pith_cstring_release void 1 9 load 15 branch load 16 has_r -strref 17 m39s895 +strref 17 m39s892 strref 18 m39s45 call 19 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 16 17 18 call 20 pith_cstring_release void 1 17 @@ -104494,8 +104700,8 @@ label L44 call 24 ir_builder_ir_reg int 0 store has_r 24 load 25 has_r -strref 26 m39s894 -strref 27 m39s632 +strref 26 m39s891 +strref 27 m39s635 load 28 cfg_r load 29 full_key_r call 30 ir_call_emit_ir_emit_call2 void 5 25 26 27 28 29 @@ -104503,7 +104709,7 @@ call 31 pith_cstring_release void 1 26 call 32 pith_cstring_release void 1 27 load 33 branch load 34 has_r -strref 35 m39s893 +strref 35 m39s890 load 36 field_tid call 37 ir_type_helpers_ir_type_from_tid string 1 36 call 38 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 34 35 37 @@ -104583,8 +104789,8 @@ label L47 call 24 ir_builder_ir_reg int 0 store has_r 24 load 25 has_r -strref 26 m39s891 -strref 27 m39s632 +strref 26 m39s888 +strref 27 m39s635 load 28 cfg_r load 29 full_key_r call 30 ir_call_emit_ir_emit_call2 void 5 25 26 27 28 29 @@ -104592,7 +104798,7 @@ call 31 pith_cstring_release void 1 26 call 32 pith_cstring_release void 1 27 load 33 branch load 34 has_r -strref 35 m39s892 +strref 35 m39s889 strref 36 m39s45 call 37 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 34 35 36 call 38 pith_cstring_release void 1 35 @@ -104708,8 +104914,8 @@ label L53 call 47 ir_builder_ir_reg int 0 store has_r 47 load 48 has_r -strref 49 m39s891 -strref 50 m39s632 +strref 49 m39s888 +strref 50 m39s635 load 51 cfg_r load 52 full_key_r call 53 ir_call_emit_ir_emit_call2 void 5 48 49 50 51 52 @@ -104717,7 +104923,7 @@ call 54 pith_cstring_release void 1 49 call 55 pith_cstring_release void 1 50 load 56 branch load 57 has_r -strref 58 m39s890 +strref 58 m39s887 load 59 field_tid call 60 ir_type_helpers_ir_type_from_tid string 1 59 call 61 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 57 58 60 @@ -104913,13 +105119,13 @@ call 42 pith_struct_release void 1 39 store struct_info 41 call 43 ir_builder_ir_reg int 0 store cfg_r 43 -strref 44 m39s708 +strref 44 m39s706 load 45 cfg_r call 46 int_to_string string 1 45 concat 47 44 46 call 48 pith_cstring_release void 1 44 call 49 pith_cstring_release void 1 46 -strref 50 m39s889 +strref 50 m39s886 concat 51 47 50 call 52 pith_cstring_release void 1 47 call 53 pith_cstring_release void 1 50 @@ -104934,13 +105140,13 @@ brif 59 L75 L76 label L75 call 60 ir_builder_ir_reg int 0 store prefix_r 60 -strref 61 m39s708 +strref 61 m39s706 load 62 prefix_r call 63 int_to_string string 1 62 concat 64 61 63 call 65 pith_cstring_release void 1 61 call 66 pith_cstring_release void 1 63 -strref 67 m39s888 +strref 67 m39s885 concat 68 64 67 call 69 pith_cstring_release void 1 64 call 70 pith_cstring_release void 1 67 @@ -105023,7 +105229,7 @@ store i 127 jmp L77 label L79 load 128 field_regs -strref 129 m39s744 +strref 129 m39s742 load 130 struct_name concat 131 129 130 call 132 pith_cstring_release void 1 129 @@ -105134,10 +105340,10 @@ call 59 ir_builder_ir_reg int 0 store has_r 59 load 60 has_r load 61 index_idx -strref 62 m39s886 +strref 62 m39s883 call 63 ir_alias_registry_ir_resolve_config_call_name string 2 61 62 call 64 pith_cstring_release void 1 62 -strref 65 m39s632 +strref 65 m39s635 load 66 cfg_r load 67 full_key_r call 68 ir_call_emit_ir_emit_call2 void 5 60 63 65 66 67 @@ -105145,7 +105351,7 @@ call 69 pith_cstring_release void 1 63 call 70 pith_cstring_release void 1 65 load 71 branch load 72 has_r -strref 73 m39s887 +strref 73 m39s884 strref 74 m39s45 call 75 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 72 73 74 call 76 pith_cstring_release void 1 73 @@ -105198,10 +105404,10 @@ call 112 ir_builder_ir_reg int 0 store has_r 112 load 113 has_r load 114 index_idx -strref 115 m39s886 +strref 115 m39s883 call 116 ir_alias_registry_ir_resolve_config_call_name string 2 114 115 call 117 pith_cstring_release void 1 115 -strref 118 m39s632 +strref 118 m39s635 load 119 cfg_r load 120 full_key_r call 121 ir_call_emit_ir_emit_call2 void 5 113 116 118 119 120 @@ -105209,7 +105415,7 @@ call 122 pith_cstring_release void 1 116 call 123 pith_cstring_release void 1 118 load 124 branch load 125 has_r -strref 126 m39s885 +strref 126 m39s882 load 127 field_tid call 128 ir_type_helpers_ir_type_from_tid string 1 127 call 129 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 125 126 128 @@ -105289,10 +105495,10 @@ call 185 ir_builder_ir_reg int 0 store has_r 185 load 186 has_r load 187 index_idx -strref 188 m39s867 +strref 188 m39s864 call 189 ir_alias_registry_ir_resolve_config_call_name string 2 187 188 call 190 pith_cstring_release void 1 188 -strref 191 m39s632 +strref 191 m39s635 load 192 cfg_r load 193 full_key_r call 194 ir_call_emit_ir_emit_call2 void 5 186 189 191 192 193 @@ -105300,7 +105506,7 @@ call 195 pith_cstring_release void 1 189 call 196 pith_cstring_release void 1 191 load 197 branch load 198 has_r -strref 199 m39s884 +strref 199 m39s881 strref 200 m39s45 call 201 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 198 199 200 call 202 pith_cstring_release void 1 199 @@ -105365,10 +105571,10 @@ call 247 ir_builder_ir_reg int 0 store has_r 247 load 248 has_r load 249 index_idx -strref 250 m39s867 +strref 250 m39s864 call 251 ir_alias_registry_ir_resolve_config_call_name string 2 249 250 call 252 pith_cstring_release void 1 250 -strref 253 m39s632 +strref 253 m39s635 load 254 cfg_r load 255 full_key_r call 256 ir_call_emit_ir_emit_call2 void 5 248 251 253 254 255 @@ -105376,7 +105582,7 @@ call 257 pith_cstring_release void 1 251 call 258 pith_cstring_release void 1 253 load 259 branch load 260 has_r -strref 261 m39s883 +strref 261 m39s880 load 262 field_tid call 263 ir_type_helpers_ir_type_from_tid string 1 262 call 264 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 260 261 263 @@ -105447,7 +105653,7 @@ store __for_idx_255 320 jmp L83 label L86 load 321 field_regs -strref 322 m39s744 +strref 322 m39s742 load 323 target_info field 324 323 8 string name concat 325 322 324 @@ -105464,7 +105670,7 @@ call 335 pith_cstring_release void 1 334 iconst 336 0 ret 336 endfunc -func ir_decode_emit_ir_emit_toml_spec_optional_struct_field 6 struct:IrDecodeFieldValue +func ir_decode_emit_ir_emit_handle_spec_optional_struct_field 6 struct:IrDecodeFieldValue param handle_r param key_r param module_path @@ -105477,10 +105683,10 @@ call 7 ir_builder_ir_reg int 0 store has_r 7 load 8 has_r load 9 module_path -strref 10 m39s867 +strref 10 m39s864 call 11 ir_generics_ir_resolve_generic_module_call_name string 2 9 10 call 12 pith_cstring_release void 1 10 -strref 13 m39s632 +strref 13 m39s635 load 14 handle_r load 15 key_r call 16 ir_call_emit_ir_emit_call2 void 5 8 11 13 14 15 @@ -105488,7 +105694,7 @@ call 17 pith_cstring_release void 1 11 call 18 pith_cstring_release void 1 13 load 19 branch load 20 has_r -strref 21 m39s882 +strref 21 m39s879 strref 22 m39s45 call 23 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 20 21 22 call 24 pith_cstring_release void 1 21 @@ -105505,7 +105711,7 @@ load 33 handle_r load 34 key_r load 35 optional_struct_tid load 36 module_path -call 37 ir_decode_emit_ir_emit_toml_nested_decode_path_specialized int 4 33 34 35 36 +call 37 ir_decode_emit_ir_emit_handle_nested_decode_path_specialized int 4 33 34 35 36 store field_result_r 37 load 38 field_result_r call 39 ir_result_flow_ir_emit_result_return_error_branch void 1 38 @@ -105530,7 +105736,7 @@ call 54 pith_struct_release void 1 53 iconst 55 0 ret 55 endfunc -func ir_decode_emit_ir_emit_toml_spec_nested_struct_field 7 struct:IrDecodeFieldValue +func ir_decode_emit_ir_emit_handle_spec_nested_struct_field 7 struct:IrDecodeFieldValue param handle_r param key_r param module_path @@ -105549,7 +105755,7 @@ load 11 handle_r load 12 key_r load 13 nested_struct_tid load 14 module_path -call 15 ir_decode_emit_ir_emit_toml_nested_decode_path_specialized int 4 11 12 13 14 +call 15 ir_decode_emit_ir_emit_handle_nested_decode_path_specialized int 4 11 12 13 14 store field_result_r 15 load 16 field_result_r call 17 ir_result_flow_ir_emit_result_return_error_branch void 1 16 @@ -105570,10 +105776,10 @@ call 26 ir_builder_ir_reg int 0 store has_r 26 load 27 has_r load 28 module_path -strref 29 m39s867 +strref 29 m39s864 call 30 ir_generics_ir_resolve_generic_module_call_name string 2 28 29 call 31 pith_cstring_release void 1 29 -strref 32 m39s632 +strref 32 m39s635 load 33 handle_r load 34 key_r call 35 ir_call_emit_ir_emit_call2 void 5 27 30 32 33 34 @@ -105581,7 +105787,7 @@ call 36 pith_cstring_release void 1 30 call 37 pith_cstring_release void 1 32 load 38 branch load 39 has_r -strref 40 m39s881 +strref 40 m39s878 load 41 field_tid call 42 ir_type_helpers_ir_type_from_tid string 1 41 call 43 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 39 40 42 @@ -105602,7 +105808,7 @@ load 56 handle_r load 57 key_r load 58 nested_struct_tid load 59 module_path -call 60 ir_decode_emit_ir_emit_toml_nested_decode_path_specialized int 4 56 57 58 59 +call 60 ir_decode_emit_ir_emit_handle_nested_decode_path_specialized int 4 56 57 58 59 store field_result_r 60 load 61 field_result_r call 62 ir_result_flow_ir_emit_result_return_error_branch void 1 61 @@ -105626,7 +105832,7 @@ call 76 pith_struct_release void 1 75 iconst 77 0 ret 77 endfunc -func ir_decode_emit_ir_emit_toml_spec_optional_scalar_field 7 struct:IrDecodeFieldValue +func ir_decode_emit_ir_emit_handle_spec_optional_scalar_field 7 struct:IrDecodeFieldValue param handle_r param key_r param module_path @@ -105642,7 +105848,7 @@ load 9 helper_name load 10 optional_inner_tid call 11 ir_type_helpers_ir_type_from_tid string 1 10 load 12 module_path -call 13 ir_alias_registry_ir_toml_require_full_name_for_type_name string 2 11 12 +call 13 ir_alias_registry_ir_handle_require_full_name_for_type_name string 2 11 12 call 14 pith_cstring_release void 1 11 call 15 pith_cstring_release void 1 9 store helper_name 13 @@ -105665,10 +105871,10 @@ call 26 ir_builder_ir_reg int 0 store has_r 26 load 27 has_r load 28 module_path -strref 29 m39s867 +strref 29 m39s864 call 30 ir_generics_ir_resolve_generic_module_call_name string 2 28 29 call 31 pith_cstring_release void 1 29 -strref 32 m39s632 +strref 32 m39s635 load 33 handle_r load 34 key_r call 35 ir_call_emit_ir_emit_call2 void 5 27 30 32 33 34 @@ -105676,7 +105882,7 @@ call 36 pith_cstring_release void 1 30 call 37 pith_cstring_release void 1 32 load 38 branch load 39 has_r -strref 40 m39s880 +strref 40 m39s877 strref 41 m39s45 call 42 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 39 40 41 call 43 pith_cstring_release void 1 40 @@ -105725,7 +105931,7 @@ call 80 pith_struct_release void 1 79 iconst 81 0 ret 81 endfunc -func ir_decode_emit_ir_emit_toml_spec_scalar_field 7 struct:IrDecodeFieldValue +func ir_decode_emit_ir_emit_handle_spec_scalar_field 7 struct:IrDecodeFieldValue param handle_r param key_r param module_path @@ -105741,7 +105947,7 @@ load 9 helper_name load 10 field_tid call 11 ir_type_helpers_ir_type_from_tid string 1 10 load 12 module_path -call 13 ir_alias_registry_ir_toml_require_full_name_for_type_name string 2 11 12 +call 13 ir_alias_registry_ir_handle_require_full_name_for_type_name string 2 11 12 call 14 pith_cstring_release void 1 11 call 15 pith_cstring_release void 1 9 store helper_name 13 @@ -105795,10 +106001,10 @@ call 49 ir_builder_ir_reg int 0 store has_r 49 load 50 has_r load 51 module_path -strref 52 m39s867 +strref 52 m39s864 call 53 ir_generics_ir_resolve_generic_module_call_name string 2 51 52 call 54 pith_cstring_release void 1 52 -strref 55 m39s632 +strref 55 m39s635 load 56 handle_r load 57 key_r call 58 ir_call_emit_ir_emit_call2 void 5 50 53 55 56 57 @@ -105806,7 +106012,7 @@ call 59 pith_cstring_release void 1 53 call 60 pith_cstring_release void 1 55 load 61 branch load 62 has_r -strref 63 m39s879 +strref 63 m39s876 load 64 field_tid call 65 ir_type_helpers_ir_type_from_tid string 1 64 call 66 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 62 63 65 @@ -105855,7 +106061,7 @@ call 103 pith_struct_release void 1 102 iconst 104 0 ret 104 endfunc -func ir_decode_emit_ir_emit_toml_spec_field 8 struct:IrDecodeFieldValue +func ir_decode_emit_ir_emit_handle_spec_field 8 struct:IrDecodeFieldValue param handle_r param module_path param field_name @@ -105866,7 +106072,7 @@ param emit_value param emit_default_ret call 8 ir_builder_ir_reg int 0 store key_r 8 -strref 9 m39s714 +strref 9 m39s712 load 10 key_r call 11 int_to_string string 1 10 concat 12 9 11 @@ -105905,7 +106111,7 @@ load 38 module_path load 39 default_idx load 40 optional_struct_tid load 41 emit_value -call 42 ir_decode_emit_ir_emit_toml_spec_optional_struct_field struct:IrDecodeFieldValue 6 36 37 38 39 40 41 +call 42 ir_decode_emit_ir_emit_handle_spec_optional_struct_field struct:IrDecodeFieldValue 6 36 37 38 39 40 41 ret 42 label L131 label L129 @@ -105927,7 +106133,7 @@ load 51 field_tid load 52 default_idx load 53 nested_struct_tid load 54 emit_value -call 55 ir_decode_emit_ir_emit_toml_spec_nested_struct_field struct:IrDecodeFieldValue 7 48 49 50 51 52 53 54 +call 55 ir_decode_emit_ir_emit_handle_spec_nested_struct_field struct:IrDecodeFieldValue 7 48 49 50 51 52 53 54 ret 55 label L134 label L132 @@ -105943,7 +106149,7 @@ load 62 default_idx load 63 optional_inner_tid load 64 emit_value load 65 emit_default_ret -call 66 ir_decode_emit_ir_emit_toml_spec_optional_scalar_field struct:IrDecodeFieldValue 7 59 60 61 62 63 64 65 +call 66 ir_decode_emit_ir_emit_handle_spec_optional_scalar_field struct:IrDecodeFieldValue 7 59 60 61 62 63 64 65 ret 66 label L137 label L135 @@ -105954,12 +106160,12 @@ load 70 field_tid load 71 default_idx load 72 emit_expr load 73 emit_default_ret -call 74 ir_decode_emit_ir_emit_toml_spec_scalar_field struct:IrDecodeFieldValue 7 67 68 69 70 71 72 73 +call 74 ir_decode_emit_ir_emit_handle_spec_scalar_field struct:IrDecodeFieldValue 7 67 68 69 70 71 72 73 ret 74 iconst 75 0 ret 75 endfunc -func ir_decode_emit_ir_emit_toml_decode_struct_from_handle 6 void +func ir_decode_emit_ir_emit_handle_decode_struct_from_handle 6 void param struct_name param module_path param handle_name @@ -105992,7 +106198,7 @@ label L140 label L138 call 22 ir_builder_ir_reg int 0 store handle_r 22 -strref 23 m39s708 +strref 23 m39s706 load 24 handle_r call 25 int_to_string string 1 24 concat 26 23 25 @@ -106048,7 +106254,7 @@ load 66 default_idx load 67 emit_expr load 68 emit_value load 69 emit_default_ret -call 70 ir_decode_emit_ir_emit_toml_spec_field struct:IrDecodeFieldValue 8 62 63 64 65 66 67 68 69 +call 70 ir_decode_emit_ir_emit_handle_spec_field struct:IrDecodeFieldValue 8 62 63 64 65 66 67 68 69 call 71 pith_struct_release void 1 61 store field_value 70 load 72 field_value @@ -106078,7 +106284,7 @@ store i 89 jmp L141 label L143 load 90 field_regs -strref 91 m39s744 +strref 91 m39s742 load 92 struct_name concat 93 91 92 call 94 pith_cstring_release void 1 91 @@ -106093,7 +106299,7 @@ call 102 pith_struct_release void 1 101 iconst 103 0 ret 103 endfunc -func ir_decode_emit_ir_emit_toml_decode_specialization_body 5 void +func ir_decode_emit_ir_emit_handle_decode_specialization_body 5 void param struct_name param module_path param emit_expr @@ -106101,16 +106307,16 @@ param emit_value param emit_default_ret load 5 struct_name load 6 module_path -strref 7 m39s658 +strref 7 m39s659 load 8 emit_expr load 9 emit_value load 10 emit_default_ret -call 11 ir_decode_emit_ir_emit_toml_decode_struct_from_handle void 6 5 6 7 8 9 10 +call 11 ir_decode_emit_ir_emit_handle_decode_struct_from_handle void 6 5 6 7 8 9 10 call 12 pith_cstring_release void 1 7 iconst 13 0 ret 13 endfunc -func ir_decode_emit_ir_emit_toml_decode_path_specialization_body 5 void +func ir_decode_emit_ir_emit_handle_decode_path_specialization_body 5 void param struct_name param module_path param emit_expr @@ -106118,13 +106324,13 @@ param emit_value param emit_default_ret call 5 ir_builder_ir_reg int 0 store handle_r 5 -strref 6 m39s708 +strref 6 m39s706 load 7 handle_r call 8 int_to_string string 1 7 concat 9 6 8 call 10 pith_cstring_release void 1 6 call 11 pith_cstring_release void 1 8 -strref 12 m39s829 +strref 12 m39s827 concat 13 9 12 call 14 pith_cstring_release void 1 9 call 15 pith_cstring_release void 1 12 @@ -106132,13 +106338,13 @@ call 16 ir_builder_ir_emit void 1 13 call 17 pith_cstring_release void 1 13 call 18 ir_builder_ir_reg int 0 store dotted_path_r 18 -strref 19 m39s708 +strref 19 m39s706 load 20 dotted_path_r call 21 int_to_string string 1 20 concat 22 19 21 call 23 pith_cstring_release void 1 19 call 24 pith_cstring_release void 1 21 -strref 25 m39s828 +strref 25 m39s826 concat 26 22 25 call 27 pith_cstring_release void 1 22 call 28 pith_cstring_release void 1 25 @@ -106147,13 +106353,13 @@ call 30 pith_cstring_release void 1 26 load 31 handle_r load 32 dotted_path_r load 33 module_path -strref 34 m39s849 +strref 34 m39s847 call 35 ir_generics_ir_resolve_generic_module_call_name string 2 33 34 call 36 pith_cstring_release void 1 34 -strref 37 m39s875 -strref 38 m39s878 -strref 39 m39s877 -strref 40 m39s876 +strref 37 m39s872 +strref 38 m39s875 +strref 39 m39s874 +strref 40 m39s873 call 41 ir_path_helpers_ir_emit_dotted_path_lookup_or_return int 7 31 32 35 37 38 39 40 call 42 pith_cstring_release void 1 35 call 43 pith_cstring_release void 1 37 @@ -106162,16 +106368,16 @@ call 45 pith_cstring_release void 1 39 call 46 pith_cstring_release void 1 40 load 47 struct_name load 48 module_path -strref 49 m39s875 +strref 49 m39s872 load 50 emit_expr load 51 emit_value load 52 emit_default_ret -call 53 ir_decode_emit_ir_emit_toml_decode_struct_from_handle void 6 47 48 49 50 51 52 +call 53 ir_decode_emit_ir_emit_handle_decode_struct_from_handle void 6 47 48 49 50 51 52 call 54 pith_cstring_release void 1 49 iconst 55 0 ret 55 endfunc -func ir_decode_emit_ir_emit_toml_decode_text_specialization_body 4 void +func ir_decode_emit_ir_emit_handle_decode_text_specialization_body 4 void param struct_name param module_path param concrete_types @@ -106188,20 +106394,20 @@ iconst 8 0 store decode_name 8 call 9 ir_builder_ir_reg int 0 store input_r 9 -strref 10 m39s708 +strref 10 m39s706 load 11 input_r call 12 int_to_string string 1 11 concat 13 10 12 call 14 pith_cstring_release void 1 10 call 15 pith_cstring_release void 1 12 -strref 16 m39s832 +strref 16 m39s830 concat 17 13 16 call 18 pith_cstring_release void 1 13 call 19 pith_cstring_release void 1 16 call 20 ir_builder_ir_emit void 1 17 call 21 pith_cstring_release void 1 17 load 22 temp_name -strref 23 m39s874 +strref 23 m39s871 call 24 ir_builder_ir_new_temp_name string 1 23 call 25 pith_cstring_release void 1 23 call 26 pith_cstring_release void 1 22 @@ -106216,18 +106422,18 @@ call 33 pith_cstring_release void 1 31 store done_l 32 load 34 mark load 35 module_path -strref 36 m39s818 +strref 36 m39s816 call 37 ir_generics_ir_resolve_generic_module_call_name string 2 35 36 call 38 pith_cstring_release void 1 36 load 39 module_path -strref 40 m39s855 +strref 40 m39s853 call 41 ir_generics_ir_resolve_generic_module_call_name string 2 39 40 call 42 pith_cstring_release void 1 40 load 43 module_path -strref 44 m39s817 +strref 44 m39s815 call 45 ir_generics_ir_resolve_generic_module_call_name string 2 43 44 call 46 pith_cstring_release void 1 44 -call 47 ir_decode_emit_ir_emit_toml_pool_mark struct:IrTomlPoolMark 3 37 41 45 +call 47 ir_decode_emit_ir_emit_handle_pool_mark struct:IrHandlePoolMark 3 37 41 45 call 48 pith_cstring_release void 1 37 call 49 pith_cstring_release void 1 41 call 50 pith_cstring_release void 1 45 @@ -106237,7 +106443,7 @@ call 52 ir_builder_ir_reg int 0 store parse_result_r 52 load 53 parse_result_r load 54 module_path -strref 55 m39s862 +strref 55 m39s860 call 56 ir_generics_ir_resolve_generic_module_call_name string 2 54 55 call 57 pith_cstring_release void 1 55 strref 58 m39s45 @@ -106276,7 +106482,7 @@ strref 86 m39s45 load 87 root_r call 88 ir_call_emit_ir_emit_call1 void 4 84 85 86 87 call 89 pith_cstring_release void 1 86 -strref 90 m39s710 +strref 90 m39s708 load 91 temp_name concat 92 90 91 call 93 pith_cstring_release void 1 90 @@ -106295,14 +106501,14 @@ load 105 done_l call 106 ir_call_emit_ir_emit_label void 1 105 load 107 mark load 108 module_path -strref 109 m39s809 +strref 109 m39s807 call 110 ir_generics_ir_resolve_generic_module_call_name string 2 108 109 call 111 pith_cstring_release void 1 109 -call 112 ir_decode_emit_ir_emit_toml_pool_restore void 2 107 110 +call 112 ir_decode_emit_ir_emit_handle_pool_restore void 2 107 110 call 113 pith_cstring_release void 1 110 call 114 ir_builder_ir_reg int 0 store r 114 -strref 115 m39s708 +strref 115 m39s706 load 116 r call 117 int_to_string string 1 116 concat 118 115 117 @@ -106317,7 +106523,7 @@ concat 126 122 125 call 127 pith_cstring_release void 1 122 call 128 ir_builder_ir_emit void 1 126 call 129 pith_cstring_release void 1 126 -strref 130 m39s711 +strref 130 m39s709 load 131 r call 132 int_to_string string 1 131 concat 133 130 132 @@ -106325,7 +106531,7 @@ call 134 pith_cstring_release void 1 130 call 135 pith_cstring_release void 1 132 call 136 ir_builder_ir_emit void 1 133 call 137 pith_cstring_release void 1 133 -strref 138 m39s746 +strref 138 m39s744 call 139 ir_builder_ir_emit void 1 138 call 140 pith_cstring_release void 1 138 load 141 temp_name @@ -106341,7 +106547,7 @@ call 150 pith_cstring_release void 1 149 iconst 151 0 ret 151 endfunc -func ir_decode_emit_ir_emit_toml_decode_text_path_specialization_body 4 void +func ir_decode_emit_ir_emit_handle_decode_text_path_specialization_body 4 void param struct_name param module_path param concrete_types @@ -106358,20 +106564,20 @@ iconst 8 0 store decode_path_name 8 call 9 ir_builder_ir_reg int 0 store input_r 9 -strref 10 m39s708 +strref 10 m39s706 load 11 input_r call 12 int_to_string string 1 11 concat 13 10 12 call 14 pith_cstring_release void 1 10 call 15 pith_cstring_release void 1 12 -strref 16 m39s832 +strref 16 m39s830 concat 17 13 16 call 18 pith_cstring_release void 1 13 call 19 pith_cstring_release void 1 16 call 20 ir_builder_ir_emit void 1 17 call 21 pith_cstring_release void 1 17 load 22 temp_name -strref 23 m39s873 +strref 23 m39s870 call 24 ir_builder_ir_new_temp_name string 1 23 call 25 pith_cstring_release void 1 23 call 26 pith_cstring_release void 1 22 @@ -106386,18 +106592,18 @@ call 33 pith_cstring_release void 1 31 store done_l 32 load 34 mark load 35 module_path -strref 36 m39s818 +strref 36 m39s816 call 37 ir_generics_ir_resolve_generic_module_call_name string 2 35 36 call 38 pith_cstring_release void 1 36 load 39 module_path -strref 40 m39s855 +strref 40 m39s853 call 41 ir_generics_ir_resolve_generic_module_call_name string 2 39 40 call 42 pith_cstring_release void 1 40 load 43 module_path -strref 44 m39s817 +strref 44 m39s815 call 45 ir_generics_ir_resolve_generic_module_call_name string 2 43 44 call 46 pith_cstring_release void 1 44 -call 47 ir_decode_emit_ir_emit_toml_pool_mark struct:IrTomlPoolMark 3 37 41 45 +call 47 ir_decode_emit_ir_emit_handle_pool_mark struct:IrHandlePoolMark 3 37 41 45 call 48 pith_cstring_release void 1 37 call 49 pith_cstring_release void 1 41 call 50 pith_cstring_release void 1 45 @@ -106407,7 +106613,7 @@ call 52 ir_builder_ir_reg int 0 store parse_result_r 52 load 53 parse_result_r load 54 module_path -strref 55 m39s862 +strref 55 m39s860 call 56 ir_generics_ir_resolve_generic_module_call_name string 2 54 55 call 57 pith_cstring_release void 1 55 strref 58 m39s45 @@ -106426,13 +106632,13 @@ call 70 pith_cstring_release void 1 68 store root_r 69 call 71 ir_builder_ir_reg int 0 store path_r 71 -strref 72 m39s708 +strref 72 m39s706 load 73 path_r call 74 int_to_string string 1 73 concat 75 72 74 call 76 pith_cstring_release void 1 72 call 77 pith_cstring_release void 1 74 -strref 78 m39s828 +strref 78 m39s826 concat 79 75 78 call 80 pith_cstring_release void 1 75 call 81 pith_cstring_release void 1 78 @@ -106440,7 +106646,7 @@ call 82 ir_builder_ir_emit void 1 79 call 83 pith_cstring_release void 1 79 load 84 decode_path_base load 85 module_path -strref 86 m39s659 +strref 86 m39s660 call 87 ir_generics_ir_resolve_generic_module_call_name string 2 85 86 call 88 pith_cstring_release void 1 86 call 89 pith_cstring_release void 1 84 @@ -106461,7 +106667,7 @@ load 100 root_r load 101 path_r call 102 ir_call_emit_ir_emit_call2 void 5 97 98 99 100 101 call 103 pith_cstring_release void 1 99 -strref 104 m39s710 +strref 104 m39s708 load 105 temp_name concat 106 104 105 call 107 pith_cstring_release void 1 104 @@ -106480,14 +106686,14 @@ load 119 done_l call 120 ir_call_emit_ir_emit_label void 1 119 load 121 mark load 122 module_path -strref 123 m39s809 +strref 123 m39s807 call 124 ir_generics_ir_resolve_generic_module_call_name string 2 122 123 call 125 pith_cstring_release void 1 123 -call 126 ir_decode_emit_ir_emit_toml_pool_restore void 2 121 124 +call 126 ir_decode_emit_ir_emit_handle_pool_restore void 2 121 124 call 127 pith_cstring_release void 1 124 call 128 ir_builder_ir_reg int 0 store r 128 -strref 129 m39s708 +strref 129 m39s706 load 130 r call 131 int_to_string string 1 130 concat 132 129 131 @@ -106502,7 +106708,7 @@ concat 140 136 139 call 141 pith_cstring_release void 1 136 call 142 ir_builder_ir_emit void 1 140 call 143 pith_cstring_release void 1 140 -strref 144 m39s711 +strref 144 m39s709 load 145 r call 146 int_to_string string 1 145 concat 147 144 146 @@ -106510,7 +106716,7 @@ call 148 pith_cstring_release void 1 144 call 149 pith_cstring_release void 1 146 call 150 ir_builder_ir_emit void 1 147 call 151 pith_cstring_release void 1 147 -strref 152 m39s746 +strref 152 m39s744 call 153 ir_builder_ir_emit void 1 152 call 154 pith_cstring_release void 1 152 load 155 temp_name @@ -106628,7 +106834,7 @@ call 68 types_get_type_info struct:TypeInfo 1 67 call 69 pith_struct_release void 1 66 store target_info 68 load 70 temp_name -strref 71 m39s872 +strref 71 m39s869 call 72 ir_builder_ir_new_temp_name string 1 71 call 73 pith_cstring_release void 1 71 call 74 pith_cstring_release void 1 70 @@ -106657,7 +106863,7 @@ load 94 done_l call 95 ir_call_emit_ir_emit_label void 1 94 call 96 ir_builder_ir_reg int 0 store r 96 -strref 97 m39s708 +strref 97 m39s706 load 98 r call 99 int_to_string string 1 98 concat 100 97 99 @@ -106796,7 +107002,7 @@ call 69 types_get_type_info struct:TypeInfo 1 68 call 70 pith_struct_release void 1 67 store target_info 69 load 71 temp_name -strref 72 m39s871 +strref 72 m39s868 call 73 ir_builder_ir_new_temp_name string 1 72 call 74 pith_cstring_release void 1 72 call 75 pith_cstring_release void 1 71 @@ -106828,7 +107034,7 @@ load 97 temp_name load 98 done_l call 99 ir_result_flow_ir_emit_result_store_error_branch void 3 96 97 98 load 100 load_result_r -strref 101 m39s443 +strref 101 m39s441 call 102 types_lookup_type_id int 1 101 call 103 pith_cstring_release void 1 101 strref 104 m39s201 @@ -106851,7 +107057,7 @@ load 119 done_l call 120 ir_call_emit_ir_emit_label void 1 119 call 121 ir_builder_ir_reg int 0 store r 121 -strref 122 m39s708 +strref 122 m39s706 load 123 r call 124 int_to_string string 1 123 concat 125 122 124 @@ -106904,7 +107110,7 @@ ret 11 iconst 12 0 ret 12 endfunc -func ir_decode_emit_ir_emit_toml_decode_value 7 void +func ir_decode_emit_ir_emit_handle_decode_value 7 void param target_info param handle_r param index_idx @@ -106970,7 +107176,7 @@ call 42 ir_decode_calls_ir_optional_inner_tid int 1 41 store optional_inner_tid 42 call 43 ir_builder_ir_reg int 0 store key_r 43 -strref 44 m39s714 +strref 44 m39s712 load 45 key_r call 46 int_to_string string 1 45 concat 47 44 46 @@ -107011,10 +107217,10 @@ call 72 ir_builder_ir_reg int 0 store has_r 72 load 73 has_r load 74 index_idx -strref 75 m39s867 -call 76 ir_alias_registry_ir_resolve_toml_call_name string 2 74 75 +strref 75 m39s864 +call 76 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 74 75 call 77 pith_cstring_release void 1 75 -strref 78 m39s632 +strref 78 m39s635 load 79 handle_r load 80 key_r call 81 ir_call_emit_ir_emit_call2 void 5 73 76 78 79 80 @@ -107022,7 +107228,7 @@ call 82 pith_cstring_release void 1 76 call 83 pith_cstring_release void 1 78 load 84 branch load 85 has_r -strref 86 m39s870 +strref 86 m39s867 strref 87 m39s45 call 88 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 85 86 87 call 89 pith_cstring_release void 1 86 @@ -107039,7 +107245,7 @@ load 98 handle_r load 99 key_r load 100 optional_struct_tid load 101 index_idx -call 102 ir_decode_emit_ir_emit_toml_nested_decode_path int 4 98 99 100 101 +call 102 ir_decode_emit_ir_emit_handle_nested_decode_path int 4 98 99 100 101 store field_result_r 102 load 103 field_result_r load 104 temp_name @@ -107075,10 +107281,10 @@ call 125 ir_builder_ir_reg int 0 store has_r 125 load 126 has_r load 127 index_idx -strref 128 m39s867 -call 129 ir_alias_registry_ir_resolve_toml_call_name string 2 127 128 +strref 128 m39s864 +call 129 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 127 128 call 130 pith_cstring_release void 1 128 -strref 131 m39s632 +strref 131 m39s635 load 132 handle_r load 133 key_r call 134 ir_call_emit_ir_emit_call2 void 5 126 129 131 132 133 @@ -107086,7 +107292,7 @@ call 135 pith_cstring_release void 1 129 call 136 pith_cstring_release void 1 131 load 137 branch load 138 has_r -strref 139 m39s869 +strref 139 m39s866 load 140 field_tid call 141 ir_type_helpers_ir_type_from_tid string 1 140 call 142 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 138 139 141 @@ -107107,7 +107313,7 @@ load 155 handle_r load 156 key_r load 157 nested_struct_tid load 158 index_idx -call 159 ir_decode_emit_ir_emit_toml_nested_decode_path int 4 155 156 157 158 +call 159 ir_decode_emit_ir_emit_handle_nested_decode_path int 4 155 156 157 158 store field_result_r 159 load 160 field_result_r load 161 temp_name @@ -107129,7 +107335,7 @@ load 173 handle_r load 174 key_r load 175 nested_struct_tid load 176 index_idx -call 177 ir_decode_emit_ir_emit_toml_nested_decode_path int 4 173 174 175 176 +call 177 ir_decode_emit_ir_emit_handle_nested_decode_path int 4 173 174 175 176 store field_result_r 177 load 178 field_result_r load 179 temp_name @@ -107150,7 +107356,7 @@ brif 189 L191 L192 label L191 load 190 helper_name load 191 optional_inner_tid -call 192 ir_decode_calls_ir_toml_require_helper_name string 1 191 +call 192 ir_decode_calls_ir_handle_require_helper_name string 1 191 call 193 pith_cstring_release void 1 190 store helper_name 192 load 194 helper_name @@ -107166,10 +107372,10 @@ call 198 ir_builder_ir_reg int 0 store has_r 198 load 199 has_r load 200 index_idx -strref 201 m39s867 -call 202 ir_alias_registry_ir_resolve_toml_call_name string 2 200 201 +strref 201 m39s864 +call 202 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 200 201 call 203 pith_cstring_release void 1 201 -strref 204 m39s632 +strref 204 m39s635 load 205 handle_r load 206 key_r call 207 ir_call_emit_ir_emit_call2 void 5 199 202 204 205 206 @@ -107177,7 +107383,7 @@ call 208 pith_cstring_release void 1 202 call 209 pith_cstring_release void 1 204 load 210 branch load 211 has_r -strref 212 m39s868 +strref 212 m39s865 strref 213 m39s45 call 214 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 211 212 213 call 215 pith_cstring_release void 1 212 @@ -107195,7 +107401,7 @@ store field_result_r 224 load 225 field_result_r load 226 index_idx load 227 helper_name -call 228 ir_alias_registry_ir_resolve_toml_call_name string 2 226 227 +call 228 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 226 227 strref 229 m39s45 load 230 handle_r load 231 key_r @@ -107221,7 +107427,7 @@ label L192 label L190 load 249 helper_name load 250 field_tid -call 251 ir_decode_calls_ir_toml_require_helper_name string 1 250 +call 251 ir_decode_calls_ir_handle_require_helper_name string 1 250 call 252 pith_cstring_release void 1 249 store helper_name 251 load 253 helper_name @@ -107242,10 +107448,10 @@ call 260 ir_builder_ir_reg int 0 store has_r 260 load 261 has_r load 262 index_idx -strref 263 m39s867 -call 264 ir_alias_registry_ir_resolve_toml_call_name string 2 262 263 +strref 263 m39s864 +call 264 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 262 263 call 265 pith_cstring_release void 1 263 -strref 266 m39s632 +strref 266 m39s635 load 267 handle_r load 268 key_r call 269 ir_call_emit_ir_emit_call2 void 5 261 264 266 267 268 @@ -107253,7 +107459,7 @@ call 270 pith_cstring_release void 1 264 call 271 pith_cstring_release void 1 266 load 272 branch load 273 has_r -strref 274 m39s866 +strref 274 m39s863 load 275 field_tid call 276 ir_type_helpers_ir_type_from_tid string 1 275 call 277 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 273 274 276 @@ -107272,7 +107478,7 @@ store field_result_r 287 load 288 field_result_r load 289 index_idx load 290 helper_name -call 291 ir_alias_registry_ir_resolve_toml_call_name string 2 289 290 +call 291 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 289 290 strref 292 m39s45 load 293 handle_r load 294 key_r @@ -107300,7 +107506,7 @@ store field_result_r 311 load 312 field_result_r load 313 index_idx load 314 helper_name -call 315 ir_alias_registry_ir_resolve_toml_call_name string 2 313 314 +call 315 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 313 314 strref 316 m39s45 load 317 handle_r load 318 key_r @@ -107324,7 +107530,7 @@ store __for_idx_256 333 jmp L171 label L174 load 334 field_regs -strref 335 m39s744 +strref 335 m39s742 load 336 target_info field 337 336 8 string name concat 338 335 337 @@ -107341,7 +107547,7 @@ call 348 pith_cstring_release void 1 347 iconst 349 0 ret 349 endfunc -func ir_decode_emit_ir_emit_toml_decode_call 5 int +func ir_decode_emit_ir_emit_handle_decode_call 5 int param idx param node param text_input @@ -107417,7 +107623,7 @@ call 53 types_get_type_info struct:TypeInfo 1 52 call 54 pith_struct_release void 1 51 store target_info 53 load 55 temp_name -strref 56 m39s865 +strref 56 m39s862 call 57 ir_builder_ir_new_temp_name string 1 56 call 58 pith_cstring_release void 1 56 call 59 pith_cstring_release void 1 55 @@ -107435,11 +107641,11 @@ strref 68 m39s26 strref 69 m39s26 strref 70 m39s26 iconst 72 3 -call 71 pith_struct_alloc struct:IrTomlPoolMark 1 72 +call 71 pith_struct_alloc struct:IrHandlePoolMark 1 72 sstore 71 0 68 sstore 71 1 69 sstore 71 2 70 -funcref 73 ir_decode_emit___dtor_IrTomlPoolMark +funcref 73 ir_decode_emit___dtor_IrHandlePoolMark call 74 pith_struct_set_dtor void 2 71 73 call 75 pith_struct_release void 1 67 store mark 71 @@ -107451,24 +107657,24 @@ load 78 node field 79 78 16 list children iconst 80 0 call 81 pith_list_get_value_strict int 2 79 80 -strref 82 m39s818 -call 83 ir_alias_registry_ir_resolve_toml_call_name string 2 81 82 +strref 82 m39s816 +call 83 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 81 82 call 84 pith_cstring_release void 1 82 load 85 node field 86 85 16 list children iconst 87 0 call 88 pith_list_get_value_strict int 2 86 87 -strref 89 m39s855 -call 90 ir_alias_registry_ir_resolve_toml_call_name string 2 88 89 +strref 89 m39s853 +call 90 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 88 89 call 91 pith_cstring_release void 1 89 load 92 node field 93 92 16 list children iconst 94 0 call 95 pith_list_get_value_strict int 2 93 94 -strref 96 m39s817 -call 97 ir_alias_registry_ir_resolve_toml_call_name string 2 95 96 +strref 96 m39s815 +call 97 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 95 96 call 98 pith_cstring_release void 1 96 -call 99 ir_decode_emit_ir_emit_toml_pool_mark struct:IrTomlPoolMark 3 83 90 97 +call 99 ir_decode_emit_ir_emit_handle_pool_mark struct:IrHandlePoolMark 3 83 90 97 call 100 pith_cstring_release void 1 83 call 101 pith_cstring_release void 1 90 call 102 pith_cstring_release void 1 97 @@ -107477,99 +107683,105 @@ store mark 99 call 104 ir_builder_ir_reg int 0 store parse_result_r 104 load 105 parse_result_r -strref 106 m39s864 -strref 107 m39s45 -load 108 handle_r -call 109 ir_call_emit_ir_emit_call1 void 4 105 106 107 108 -call 110 pith_cstring_release void 1 106 -call 111 pith_cstring_release void 1 107 -load 112 parse_result_r -load 113 temp_name -load 114 done_l -call 115 ir_result_flow_ir_emit_result_store_error_branch void 3 112 113 114 -load 116 parse_result_r -strref 117 m39s184 -call 118 types_lookup_type_id int 1 117 -call 119 pith_cstring_release void 1 117 -strref 120 m39s201 -call 121 ir_result_abi_ir_emit_result_value_field int 3 116 118 120 -call 122 pith_cstring_release void 1 120 -store handle_r 121 +load 106 node +field 107 106 16 list children +iconst 108 0 +call 109 pith_list_get_value_strict int 2 107 108 +strref 110 m39s860 +call 111 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 109 110 +call 112 pith_cstring_release void 1 110 +strref 113 m39s45 +load 114 handle_r +call 115 ir_call_emit_ir_emit_call1 void 4 105 111 113 114 +call 116 pith_cstring_release void 1 111 +call 117 pith_cstring_release void 1 113 +load 118 parse_result_r +load 119 temp_name +load 120 done_l +call 121 ir_result_flow_ir_emit_result_store_error_branch void 3 118 119 120 +load 122 parse_result_r +strref 123 m39s184 +call 124 types_lookup_type_id int 1 123 +call 125 pith_cstring_release void 1 123 +strref 126 m39s201 +call 127 ir_result_abi_ir_emit_result_value_field int 3 122 124 126 +call 128 pith_cstring_release void 1 126 +store handle_r 127 jmp L208 label L210 label L208 -load 123 target_info -load 124 handle_r -load 125 node -field 126 125 16 list children -iconst 127 0 -call 128 pith_list_get_value_strict int 2 126 127 -load 129 temp_name -load 130 done_l -load 131 emit_expr -load 132 emit_value -call 133 ir_decode_emit_ir_emit_toml_decode_value void 7 123 124 128 129 130 131 132 -load 134 done_l -call 135 ir_call_emit_ir_emit_label void 1 134 -load 136 text_input -brif 136 L212 L213 +load 129 target_info +load 130 handle_r +load 131 node +field 132 131 16 list children +iconst 133 0 +call 134 pith_list_get_value_strict int 2 132 133 +load 135 temp_name +load 136 done_l +load 137 emit_expr +load 138 emit_value +call 139 ir_decode_emit_ir_emit_handle_decode_value void 7 129 130 134 135 136 137 138 +load 140 done_l +call 141 ir_call_emit_ir_emit_label void 1 140 +load 142 text_input +brif 142 L212 L213 label L212 -load 137 mark -load 138 node -field 139 138 16 list children -iconst 140 0 -call 141 pith_list_get_value_strict int 2 139 140 -strref 142 m39s809 -call 143 ir_alias_registry_ir_resolve_toml_call_name string 2 141 142 -call 144 pith_cstring_release void 1 142 -call 145 ir_decode_emit_ir_emit_toml_pool_restore void 2 137 143 -call 146 pith_cstring_release void 1 143 +load 143 mark +load 144 node +field 145 144 16 list children +iconst 146 0 +call 147 pith_list_get_value_strict int 2 145 146 +strref 148 m39s807 +call 149 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 147 148 +call 150 pith_cstring_release void 1 148 +call 151 ir_decode_emit_ir_emit_handle_pool_restore void 2 143 149 +call 152 pith_cstring_release void 1 149 jmp L211 label L213 label L211 -call 147 ir_builder_ir_reg int 0 -store r 147 -strref 148 m39s708 -load 149 r -call 150 int_to_string string 1 149 -concat 151 148 150 -call 152 pith_cstring_release void 1 148 -call 153 pith_cstring_release void 1 150 -strref 154 m39s17 -concat 155 151 154 -call 156 pith_cstring_release void 1 151 -call 157 pith_cstring_release void 1 154 -load 158 temp_name -concat 159 155 158 -call 160 pith_cstring_release void 1 155 -call 161 ir_builder_ir_emit void 1 159 -call 162 pith_cstring_release void 1 159 -load 163 r -load 164 arg_regs -call 165 pith_list_release_handle void 1 164 -load 166 target_info -call 167 pith_struct_release void 1 166 -load 168 temp_name -call 169 pith_cstring_release void 1 168 -load 170 done_l -call 171 pith_cstring_release void 1 170 -load 172 mark +call 153 ir_builder_ir_reg int 0 +store r 153 +strref 154 m39s706 +load 155 r +call 156 int_to_string string 1 155 +concat 157 154 156 +call 158 pith_cstring_release void 1 154 +call 159 pith_cstring_release void 1 156 +strref 160 m39s17 +concat 161 157 160 +call 162 pith_cstring_release void 1 157 +call 163 pith_cstring_release void 1 160 +load 164 temp_name +concat 165 161 164 +call 166 pith_cstring_release void 1 161 +call 167 ir_builder_ir_emit void 1 165 +call 168 pith_cstring_release void 1 165 +load 169 r +load 170 arg_regs +call 171 pith_list_release_handle void 1 170 +load 172 target_info call 173 pith_struct_release void 1 172 -ret 163 -load 174 arg_regs -call 175 pith_list_release_handle void 1 174 -load 176 target_info -call 177 pith_struct_release void 1 176 -load 178 temp_name -call 179 pith_cstring_release void 1 178 -load 180 done_l -call 181 pith_cstring_release void 1 180 -load 182 mark +load 174 temp_name +call 175 pith_cstring_release void 1 174 +load 176 done_l +call 177 pith_cstring_release void 1 176 +load 178 mark +call 179 pith_struct_release void 1 178 +ret 169 +load 180 arg_regs +call 181 pith_list_release_handle void 1 180 +load 182 target_info call 183 pith_struct_release void 1 182 -iconst 184 0 -ret 184 +load 184 temp_name +call 185 pith_cstring_release void 1 184 +load 186 done_l +call 187 pith_cstring_release void 1 186 +load 188 mark +call 189 pith_struct_release void 1 188 +iconst 190 0 +ret 190 endfunc -func ir_decode_emit_ir_emit_toml_decode_path_call 5 int +func ir_decode_emit_ir_emit_handle_decode_path_call 5 int param idx param node param text_input @@ -107673,7 +107885,7 @@ call 76 types_get_type_info struct:TypeInfo 1 75 call 77 pith_struct_release void 1 74 store target_info 76 load 78 temp_name -strref 79 m39s863 +strref 79 m39s861 call 80 ir_builder_ir_new_temp_name string 1 79 call 81 pith_cstring_release void 1 79 call 82 pith_cstring_release void 1 78 @@ -107691,11 +107903,11 @@ strref 91 m39s26 strref 92 m39s26 strref 93 m39s26 iconst 95 3 -call 94 pith_struct_alloc struct:IrTomlPoolMark 1 95 +call 94 pith_struct_alloc struct:IrHandlePoolMark 1 95 sstore 94 0 91 sstore 94 1 92 sstore 94 2 93 -funcref 96 ir_decode_emit___dtor_IrTomlPoolMark +funcref 96 ir_decode_emit___dtor_IrHandlePoolMark call 97 pith_struct_set_dtor void 2 94 96 call 98 pith_struct_release void 1 90 store mark 94 @@ -107707,24 +107919,24 @@ load 101 node field 102 101 16 list children iconst 103 0 call 104 pith_list_get_value_strict int 2 102 103 -strref 105 m39s818 -call 106 ir_alias_registry_ir_resolve_toml_call_name string 2 104 105 +strref 105 m39s816 +call 106 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 104 105 call 107 pith_cstring_release void 1 105 load 108 node field 109 108 16 list children iconst 110 0 call 111 pith_list_get_value_strict int 2 109 110 -strref 112 m39s855 -call 113 ir_alias_registry_ir_resolve_toml_call_name string 2 111 112 +strref 112 m39s853 +call 113 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 111 112 call 114 pith_cstring_release void 1 112 load 115 node field 116 115 16 list children iconst 117 0 call 118 pith_list_get_value_strict int 2 116 117 -strref 119 m39s817 -call 120 ir_alias_registry_ir_resolve_toml_call_name string 2 118 119 +strref 119 m39s815 +call 120 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 118 119 call 121 pith_cstring_release void 1 119 -call 122 ir_decode_emit_ir_emit_toml_pool_mark struct:IrTomlPoolMark 3 106 113 120 +call 122 ir_decode_emit_ir_emit_handle_pool_mark struct:IrHandlePoolMark 3 106 113 120 call 123 pith_cstring_release void 1 106 call 124 pith_cstring_release void 1 113 call 125 pith_cstring_release void 1 120 @@ -107737,8 +107949,8 @@ load 129 node field 130 129 16 list children iconst 131 0 call 132 pith_list_get_value_strict int 2 130 131 -strref 133 m39s862 -call 134 ir_alias_registry_ir_resolve_toml_call_name string 2 132 133 +strref 133 m39s860 +call 134 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 132 133 call 135 pith_cstring_release void 1 133 strref 136 m39s45 load 137 handle_r @@ -107761,44 +107973,44 @@ jmp L220 label L222 label L220 load 152 current_name -strref 153 m39s861 +strref 153 m39s859 call 154 ir_builder_ir_new_temp_name string 1 153 call 155 pith_cstring_release void 1 153 call 156 pith_cstring_release void 1 152 store current_name 154 load 157 parts_name -strref 158 m39s860 +strref 158 m39s858 call 159 ir_builder_ir_new_temp_name string 1 158 call 160 pith_cstring_release void 1 158 call 161 pith_cstring_release void 1 157 store parts_name 159 load 162 len_name -strref 163 m39s859 +strref 163 m39s857 call 164 ir_builder_ir_new_temp_name string 1 163 call 165 pith_cstring_release void 1 163 call 166 pith_cstring_release void 1 162 store len_name 164 load 167 idx_name -strref 168 m39s858 +strref 168 m39s856 call 169 ir_builder_ir_new_temp_name string 1 168 call 170 pith_cstring_release void 1 168 call 171 pith_cstring_release void 1 167 store idx_name 169 load 172 ir_builder_ir_var_types load 173 current_name -strref 174 m39s636 +strref 174 m39s639 call 175 pith_map_insert_cstr_owned void 3 172 173 174 load 176 ir_builder_ir_var_types load 177 parts_name -strref 178 m39s635 +strref 178 m39s638 call 179 pith_map_insert_cstr_owned void 3 176 177 178 load 180 ir_builder_ir_var_types load 181 len_name -strref 182 m39s636 +strref 182 m39s639 call 183 pith_map_insert_cstr_owned void 3 180 181 182 load 184 ir_builder_ir_var_types load 185 idx_name -strref 186 m39s636 +strref 186 m39s639 call 187 pith_map_insert_cstr_owned void 3 184 185 186 load 188 handle_r load 189 dotted_path_r @@ -107806,8 +108018,8 @@ load 190 node field 191 190 16 list children iconst 192 0 call 193 pith_list_get_value_strict int 2 191 192 -strref 194 m39s849 -call 195 ir_alias_registry_ir_resolve_toml_call_name string 2 193 194 +strref 194 m39s847 +call 195 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 193 194 call 196 pith_cstring_release void 1 194 strref 197 m39s184 call 198 types_lookup_type_id int 1 197 @@ -107831,7 +108043,7 @@ load 214 temp_name load 215 done_l load 216 emit_expr load 217 emit_value -call 218 ir_decode_emit_ir_emit_toml_decode_value void 7 208 209 213 214 215 216 217 +call 218 ir_decode_emit_ir_emit_handle_decode_value void 7 208 209 213 214 215 216 217 load 219 done_l call 220 ir_call_emit_ir_emit_label void 1 219 load 221 text_input @@ -107842,17 +108054,17 @@ load 223 node field 224 223 16 list children iconst 225 0 call 226 pith_list_get_value_strict int 2 224 225 -strref 227 m39s809 -call 228 ir_alias_registry_ir_resolve_toml_call_name string 2 226 227 +strref 227 m39s807 +call 228 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 226 227 call 229 pith_cstring_release void 1 227 -call 230 ir_decode_emit_ir_emit_toml_pool_restore void 2 222 228 +call 230 ir_decode_emit_ir_emit_handle_pool_restore void 2 222 228 call 231 pith_cstring_release void 1 228 jmp L223 label L225 label L223 call 232 ir_builder_ir_reg int 0 store r 232 -strref 233 m39s708 +strref 233 m39s706 load 234 r call 235 int_to_string string 1 234 concat 236 233 235 @@ -107908,7 +108120,7 @@ call 284 pith_cstring_release void 1 283 iconst 285 0 ret 285 endfunc -func ir_decode_emit_ir_emit_toml_decode_file_call 5 int +func ir_decode_emit_ir_emit_handle_decode_file_call 5 int param idx param node param path_input @@ -108013,7 +108225,7 @@ call 76 types_get_type_info struct:TypeInfo 1 75 call 77 pith_struct_release void 1 74 store target_info 76 load 78 temp_name -strref 79 m39s857 +strref 79 m39s855 call 80 ir_builder_ir_new_temp_name string 1 79 call 81 pith_cstring_release void 1 79 call 82 pith_cstring_release void 1 78 @@ -108031,24 +108243,24 @@ load 91 node field 92 91 16 list children iconst 93 0 call 94 pith_list_get_value_strict int 2 92 93 -strref 95 m39s818 -call 96 ir_alias_registry_ir_resolve_toml_call_name string 2 94 95 +strref 95 m39s816 +call 96 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 94 95 call 97 pith_cstring_release void 1 95 load 98 node field 99 98 16 list children iconst 100 0 call 101 pith_list_get_value_strict int 2 99 100 -strref 102 m39s855 -call 103 ir_alias_registry_ir_resolve_toml_call_name string 2 101 102 +strref 102 m39s853 +call 103 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 101 102 call 104 pith_cstring_release void 1 102 load 105 node field 106 105 16 list children iconst 107 0 call 108 pith_list_get_value_strict int 2 106 107 -strref 109 m39s817 -call 110 ir_alias_registry_ir_resolve_toml_call_name string 2 108 109 +strref 109 m39s815 +call 110 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 108 109 call 111 pith_cstring_release void 1 109 -call 112 ir_decode_emit_ir_emit_toml_pool_mark struct:IrTomlPoolMark 3 96 103 110 +call 112 ir_decode_emit_ir_emit_handle_pool_mark struct:IrHandlePoolMark 3 96 103 110 call 113 pith_cstring_release void 1 96 call 114 pith_cstring_release void 1 103 call 115 pith_cstring_release void 1 110 @@ -108061,8 +108273,8 @@ load 119 node field 120 119 16 list children iconst 121 0 call 122 pith_list_get_value_strict int 2 120 121 -strref 123 m39s854 -call 124 ir_alias_registry_ir_resolve_toml_call_name string 2 122 123 +strref 123 m39s852 +call 124 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 122 123 call 125 pith_cstring_release void 1 123 strref 126 m39s45 load 127 file_path_r @@ -108091,7 +108303,7 @@ load 148 temp_name load 149 done_l load 150 emit_expr load 151 emit_value -call 152 ir_decode_emit_ir_emit_toml_decode_value void 7 142 143 147 148 149 150 151 +call 152 ir_decode_emit_ir_emit_handle_decode_value void 7 142 143 147 148 149 150 151 load 153 done_l call 154 ir_call_emit_ir_emit_label void 1 153 load 155 mark @@ -108099,14 +108311,14 @@ load 156 node field 157 156 16 list children iconst 158 0 call 159 pith_list_get_value_strict int 2 157 158 -strref 160 m39s809 -call 161 ir_alias_registry_ir_resolve_toml_call_name string 2 159 160 +strref 160 m39s807 +call 161 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 159 160 call 162 pith_cstring_release void 1 160 -call 163 ir_decode_emit_ir_emit_toml_pool_restore void 2 155 161 +call 163 ir_decode_emit_ir_emit_handle_pool_restore void 2 155 161 call 164 pith_cstring_release void 1 161 call 165 ir_builder_ir_reg int 0 store r 165 -strref 166 m39s708 +strref 166 m39s706 load 167 r call 168 int_to_string string 1 167 concat 169 166 168 @@ -108212,7 +108424,7 @@ call 253 types_get_type_info struct:TypeInfo 1 252 call 254 pith_struct_release void 1 251 store target_info 253 load 255 temp_name -strref 256 m39s856 +strref 256 m39s854 call 257 ir_builder_ir_new_temp_name string 1 256 call 258 pith_cstring_release void 1 256 call 259 pith_cstring_release void 1 255 @@ -108230,24 +108442,24 @@ load 268 node field 269 268 16 list children iconst 270 0 call 271 pith_list_get_value_strict int 2 269 270 -strref 272 m39s818 -call 273 ir_alias_registry_ir_resolve_toml_call_name string 2 271 272 +strref 272 m39s816 +call 273 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 271 272 call 274 pith_cstring_release void 1 272 load 275 node field 276 275 16 list children iconst 277 0 call 278 pith_list_get_value_strict int 2 276 277 -strref 279 m39s855 -call 280 ir_alias_registry_ir_resolve_toml_call_name string 2 278 279 +strref 279 m39s853 +call 280 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 278 279 call 281 pith_cstring_release void 1 279 load 282 node field 283 282 16 list children iconst 284 0 call 285 pith_list_get_value_strict int 2 283 284 -strref 286 m39s817 -call 287 ir_alias_registry_ir_resolve_toml_call_name string 2 285 286 +strref 286 m39s815 +call 287 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 285 286 call 288 pith_cstring_release void 1 286 -call 289 ir_decode_emit_ir_emit_toml_pool_mark struct:IrTomlPoolMark 3 273 280 287 +call 289 ir_decode_emit_ir_emit_handle_pool_mark struct:IrHandlePoolMark 3 273 280 287 call 290 pith_cstring_release void 1 273 call 291 pith_cstring_release void 1 280 call 292 pith_cstring_release void 1 287 @@ -108260,8 +108472,8 @@ load 296 node field 297 296 16 list children iconst 298 0 call 299 pith_list_get_value_strict int 2 297 298 -strref 300 m39s854 -call 301 ir_alias_registry_ir_resolve_toml_call_name string 2 299 300 +strref 300 m39s852 +call 301 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 299 300 call 302 pith_cstring_release void 1 300 strref 303 m39s45 load 304 file_path_r @@ -108281,44 +108493,44 @@ call 317 ir_result_abi_ir_emit_result_value_field int 3 312 314 316 call 318 pith_cstring_release void 1 316 store handle_r 317 load 319 current_name -strref 320 m39s853 +strref 320 m39s851 call 321 ir_builder_ir_new_temp_name string 1 320 call 322 pith_cstring_release void 1 320 call 323 pith_cstring_release void 1 319 store current_name 321 load 324 parts_name -strref 325 m39s852 +strref 325 m39s850 call 326 ir_builder_ir_new_temp_name string 1 325 call 327 pith_cstring_release void 1 325 call 328 pith_cstring_release void 1 324 store parts_name 326 load 329 len_name -strref 330 m39s851 +strref 330 m39s849 call 331 ir_builder_ir_new_temp_name string 1 330 call 332 pith_cstring_release void 1 330 call 333 pith_cstring_release void 1 329 store len_name 331 load 334 idx_name -strref 335 m39s850 +strref 335 m39s848 call 336 ir_builder_ir_new_temp_name string 1 335 call 337 pith_cstring_release void 1 335 call 338 pith_cstring_release void 1 334 store idx_name 336 load 339 ir_builder_ir_var_types load 340 current_name -strref 341 m39s636 +strref 341 m39s639 call 342 pith_map_insert_cstr_owned void 3 339 340 341 load 343 ir_builder_ir_var_types load 344 parts_name -strref 345 m39s635 +strref 345 m39s638 call 346 pith_map_insert_cstr_owned void 3 343 344 345 load 347 ir_builder_ir_var_types load 348 len_name -strref 349 m39s636 +strref 349 m39s639 call 350 pith_map_insert_cstr_owned void 3 347 348 349 load 351 ir_builder_ir_var_types load 352 idx_name -strref 353 m39s636 +strref 353 m39s639 call 354 pith_map_insert_cstr_owned void 3 351 352 353 load 355 handle_r load 356 dotted_path_r @@ -108326,8 +108538,8 @@ load 357 node field 358 357 16 list children iconst 359 0 call 360 pith_list_get_value_strict int 2 358 359 -strref 361 m39s849 -call 362 ir_alias_registry_ir_resolve_toml_call_name string 2 360 361 +strref 361 m39s847 +call 362 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 360 361 call 363 pith_cstring_release void 1 361 strref 364 m39s184 call 365 types_lookup_type_id int 1 364 @@ -108351,7 +108563,7 @@ load 381 temp_name load 382 done_l load 383 emit_expr load 384 emit_value -call 385 ir_decode_emit_ir_emit_toml_decode_value void 7 375 376 380 381 382 383 384 +call 385 ir_decode_emit_ir_emit_handle_decode_value void 7 375 376 380 381 382 383 384 load 386 done_l call 387 ir_call_emit_ir_emit_label void 1 386 load 388 mark @@ -108359,14 +108571,14 @@ load 389 node field 390 389 16 list children iconst 391 0 call 392 pith_list_get_value_strict int 2 390 391 -strref 393 m39s809 -call 394 ir_alias_registry_ir_resolve_toml_call_name string 2 392 393 +strref 393 m39s807 +call 394 ir_alias_registry_ir_resolve_handle_decode_call_name string 2 392 393 call 395 pith_cstring_release void 1 393 -call 396 ir_decode_emit_ir_emit_toml_pool_restore void 2 388 394 +call 396 ir_decode_emit_ir_emit_handle_pool_restore void 2 388 394 call 397 pith_cstring_release void 1 394 call 398 ir_builder_ir_reg int 0 store r 398 -strref 399 m39s708 +strref 399 m39s706 load 400 r call 401 int_to_string string 1 400 concat 402 399 401 @@ -108762,7 +108974,7 @@ store err_l 4 iconst 5 0 store done_l 5 load 6 temp_name -strref 7 m39s831 +strref 7 m39s829 call 8 ir_builder_ir_new_temp_name string 1 7 call 9 pith_cstring_release void 1 7 call 10 pith_cstring_release void 1 6 @@ -108791,7 +109003,7 @@ call 27 ir_builder_ir_reg int 0 store struct_r 27 call 28 ir_builder_ir_reg int 0 store count_r 28 -strref 29 m39s690 +strref 29 m39s688 load 30 count_r call 31 int_to_string string 1 30 concat 32 29 31 @@ -108809,8 +109021,8 @@ call 43 pith_cstring_release void 1 40 call 44 ir_builder_ir_emit void 1 41 call 45 pith_cstring_release void 1 41 load 46 struct_r -strref 47 m39s697 -strref 48 m39s744 +strref 47 m39s695 +strref 48 m39s742 load 49 target_info field 50 49 8 string name concat 51 48 50 @@ -108825,13 +109037,13 @@ brif 58 L286 L287 label L286 call 59 ir_builder_ir_reg int 0 store dtor_r 59 -strref 60 m39s688 +strref 60 m39s686 load 61 dtor_r call 62 int_to_string string 1 61 concat 63 60 62 call 64 pith_cstring_release void 1 60 call 65 pith_cstring_release void 1 62 -strref 66 m39s848 +strref 66 m39s846 concat 67 63 66 call 68 pith_cstring_release void 1 63 call 69 pith_cstring_release void 1 66 @@ -108844,8 +109056,8 @@ call 75 pith_cstring_release void 1 72 call 76 ir_builder_ir_emit void 1 73 call 77 pith_cstring_release void 1 73 call 78 ir_builder_ir_reg int 0 -strref 79 m39s847 -strref 80 m39s758 +strref 79 m39s845 +strref 80 m39s756 iconst 81 2 strref 82 m39s17 load 83 struct_r @@ -108871,7 +109083,7 @@ label L287 label L285 call 101 ir_builder_ir_reg int 0 store spec_r 101 -strref 102 m39s714 +strref 102 m39s712 load 103 spec_r call 104 int_to_string string 1 103 concat 105 102 104 @@ -108898,8 +109110,8 @@ call 125 pith_cstring_release void 1 121 call 126 ir_builder_ir_reg int 0 store mask_r 126 load 127 mask_r -strref 128 m39s846 -strref 129 m39s636 +strref 128 m39s844 +strref 129 m39s639 iconst 130 3 strref 131 m39s17 load 132 input_r @@ -108931,7 +109143,7 @@ call 157 pith_cstring_release void 1 129 call 158 pith_cstring_release void 1 152 call 159 ir_builder_ir_reg int 0 store req_r 159 -strref 160 m39s690 +strref 160 m39s688 load 161 req_r call 162 int_to_string string 1 161 concat 163 160 162 @@ -108951,7 +109163,7 @@ call 176 ir_builder_ir_emit void 1 173 call 177 pith_cstring_release void 1 173 call 178 ir_builder_ir_reg int 0 store eq_r 178 -strref 179 m39s701 +strref 179 m39s699 load 180 eq_r call 181 int_to_string string 1 180 concat 182 179 181 @@ -108977,7 +109189,7 @@ call 201 pith_cstring_release void 1 195 call 202 pith_cstring_release void 1 199 call 203 ir_builder_ir_emit void 1 200 call 204 pith_cstring_release void 1 200 -strref 205 m39s712 +strref 205 m39s710 load 206 eq_r call 207 int_to_string string 1 206 concat 208 205 207 @@ -109002,8 +109214,8 @@ call 226 pith_cstring_release void 1 223 load 227 err_l call 228 ir_call_emit_ir_emit_label void 1 227 call 229 ir_builder_ir_reg int 0 -strref 230 m39s845 -strref 231 m39s758 +strref 230 m39s843 +strref 231 m39s756 load 232 struct_r call 233 ir_call_emit_ir_emit_call1 void 4 229 230 231 232 call 234 pith_cstring_release void 1 230 @@ -109011,7 +109223,7 @@ call 235 pith_cstring_release void 1 231 call 236 ir_builder_ir_reg int 0 store err_res_r 236 load 237 err_res_r -strref 238 m39s844 +strref 238 m39s842 strref 239 m39s45 iconst 240 2 strref 241 m39s17 @@ -109033,7 +109245,7 @@ call 256 ir_call_emit_ir_emit_call_text void 5 237 238 239 240 253 call 257 pith_cstring_release void 1 238 call 258 pith_cstring_release void 1 239 call 259 pith_cstring_release void 1 253 -strref 260 m39s710 +strref 260 m39s708 load 261 temp_name concat 262 260 261 call 263 pith_cstring_release void 1 260 @@ -109048,7 +109260,7 @@ call 271 pith_cstring_release void 1 265 call 272 pith_cstring_release void 1 269 call 273 ir_builder_ir_emit void 1 270 call 274 pith_cstring_release void 1 270 -strref 275 m39s719 +strref 275 m39s717 load 276 done_l concat 277 275 276 call 278 pith_cstring_release void 1 275 @@ -109056,7 +109268,7 @@ call 279 ir_builder_ir_emit void 1 277 call 280 pith_cstring_release void 1 277 load 281 ok_l call 282 ir_call_emit_ir_emit_label void 1 281 -strref 283 m39s710 +strref 283 m39s708 load 284 temp_name concat 285 283 284 call 286 pith_cstring_release void 1 283 @@ -109076,7 +109288,7 @@ load 299 done_l call 300 ir_call_emit_ir_emit_label void 1 299 call 301 ir_builder_ir_reg int 0 store r 301 -strref 302 m39s708 +strref 302 m39s706 load 303 r call 304 int_to_string string 1 303 concat 305 302 304 @@ -109152,7 +109364,7 @@ ret 14 label L290 label L288 load 27 temp_name -strref 28 m39s831 +strref 28 m39s829 call 29 ir_builder_ir_new_temp_name string 1 28 call 30 pith_cstring_release void 1 28 call 31 pith_cstring_release void 1 27 @@ -109168,7 +109380,7 @@ store done_l 37 call 39 ir_builder_ir_reg int 0 store scan_r 39 load 40 scan_r -strref 41 m39s843 +strref 41 m39s841 strref 42 m39s45 load 43 input_r call 44 ir_call_emit_ir_emit_call1 void 4 40 41 42 43 @@ -109274,7 +109486,7 @@ label L303 label L301 call 112 ir_builder_ir_reg int 0 store key_r 112 -strref 113 m39s714 +strref 113 m39s712 load 114 key_r call 115 int_to_string string 1 114 concat 116 113 115 @@ -109295,14 +109507,14 @@ call 130 ir_builder_ir_reg int 0 store has_r 130 load 131 has_r load 132 has_name -strref 133 m39s632 +strref 133 m39s635 load 134 fields_r load 135 key_r call 136 ir_call_emit_ir_emit_call2 void 5 131 132 133 134 135 call 137 pith_cstring_release void 1 133 load 138 branch load 139 has_r -strref 140 m39s842 +strref 140 m39s840 strref 141 m39s45 call 142 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 139 140 141 call 143 pith_cstring_release void 1 140 @@ -109376,7 +109588,7 @@ label L314 label L312 call 193 ir_builder_ir_reg int 0 store key_r 193 -strref 194 m39s714 +strref 194 m39s712 load 195 key_r call 196 int_to_string string 1 195 concat 197 194 196 @@ -109397,14 +109609,14 @@ call 211 ir_builder_ir_reg int 0 store has_r 211 load 212 has_r load 213 has_name -strref 214 m39s632 +strref 214 m39s635 load 215 fields_r load 216 key_r call 217 ir_call_emit_ir_emit_call2 void 5 212 213 214 215 216 call 218 pith_cstring_release void 1 214 load 219 branch load 220 has_r -strref 221 m39s841 +strref 221 m39s839 load 222 field_tid call 223 ir_type_helpers_ir_type_from_tid string 1 222 call 224 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 220 221 223 @@ -109445,7 +109657,7 @@ label L311 label L309 call 255 ir_builder_ir_reg int 0 store key_r 255 -strref 256 m39s714 +strref 256 m39s712 load 257 key_r call 258 int_to_string string 1 257 concat 259 256 258 @@ -109488,7 +109700,7 @@ store __for_idx_260 292 jmp L291 label L294 load 293 field_regs -strref 294 m39s744 +strref 294 m39s742 load 295 target_info field 296 295 8 string name concat 297 294 296 @@ -109500,7 +109712,7 @@ load 302 done_l call 303 ir_call_emit_ir_emit_label void 1 302 call 304 ir_builder_ir_reg int 0 store r 304 -strref 305 m39s708 +strref 305 m39s706 load 306 r call 307 int_to_string string 1 306 concat 308 305 307 @@ -109610,7 +109822,7 @@ call 42 ir_decode_calls_ir_optional_inner_tid int 1 41 store optional_inner_tid 42 call 43 ir_builder_ir_reg int 0 store key_r 43 -strref 44 m39s714 +strref 44 m39s712 load 45 key_r call 46 int_to_string string 1 45 concat 47 44 46 @@ -109651,10 +109863,10 @@ call 72 ir_builder_ir_reg int 0 store has_r 72 load 73 has_r load 74 index_idx -strref 75 m39s837 +strref 75 m39s835 call 76 ir_alias_registry_ir_resolve_json_call_name string 2 74 75 call 77 pith_cstring_release void 1 75 -strref 78 m39s632 +strref 78 m39s635 load 79 handle_r load 80 key_r call 81 ir_call_emit_ir_emit_call2 void 5 73 76 78 79 80 @@ -109662,7 +109874,7 @@ call 82 pith_cstring_release void 1 76 call 83 pith_cstring_release void 1 78 load 84 branch load 85 has_r -strref 86 m39s836 +strref 86 m39s834 strref 87 m39s45 call 88 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 85 86 87 call 89 pith_cstring_release void 1 86 @@ -109715,10 +109927,10 @@ call 125 ir_builder_ir_reg int 0 store has_r 125 load 126 has_r load 127 index_idx -strref 128 m39s837 +strref 128 m39s835 call 129 ir_alias_registry_ir_resolve_json_call_name string 2 127 128 call 130 pith_cstring_release void 1 128 -strref 131 m39s632 +strref 131 m39s635 load 132 handle_r load 133 key_r call 134 ir_call_emit_ir_emit_call2 void 5 126 129 131 132 133 @@ -109726,7 +109938,7 @@ call 135 pith_cstring_release void 1 129 call 136 pith_cstring_release void 1 131 load 137 branch load 138 has_r -strref 139 m39s835 +strref 139 m39s833 load 140 field_tid call 141 ir_type_helpers_ir_type_from_tid string 1 140 call 142 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 138 139 141 @@ -109806,10 +110018,10 @@ call 198 ir_builder_ir_reg int 0 store has_r 198 load 199 has_r load 200 index_idx -strref 201 m39s837 +strref 201 m39s835 call 202 ir_alias_registry_ir_resolve_json_call_name string 2 200 201 call 203 pith_cstring_release void 1 201 -strref 204 m39s632 +strref 204 m39s635 load 205 handle_r load 206 key_r call 207 ir_call_emit_ir_emit_call2 void 5 199 202 204 205 206 @@ -109817,7 +110029,7 @@ call 208 pith_cstring_release void 1 202 call 209 pith_cstring_release void 1 204 load 210 branch load 211 has_r -strref 212 m39s834 +strref 212 m39s832 strref 213 m39s45 call 214 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 211 212 213 call 215 pith_cstring_release void 1 212 @@ -109882,10 +110094,10 @@ call 260 ir_builder_ir_reg int 0 store has_r 260 load 261 has_r load 262 index_idx -strref 263 m39s837 +strref 263 m39s835 call 264 ir_alias_registry_ir_resolve_json_call_name string 2 262 263 call 265 pith_cstring_release void 1 263 -strref 266 m39s632 +strref 266 m39s635 load 267 handle_r load 268 key_r call 269 ir_call_emit_ir_emit_call2 void 5 261 264 266 267 268 @@ -109893,7 +110105,7 @@ call 270 pith_cstring_release void 1 264 call 271 pith_cstring_release void 1 266 load 272 branch load 273 has_r -strref 274 m39s833 +strref 274 m39s831 load 275 field_tid call 276 ir_type_helpers_ir_type_from_tid string 1 275 call 277 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 273 274 276 @@ -109964,7 +110176,7 @@ store __for_idx_261 333 jmp L315 label L318 load 334 field_regs -strref 335 m39s744 +strref 335 m39s742 load 336 target_info field 337 336 8 string name concat 338 335 337 @@ -110081,7 +110293,7 @@ load 71 has_nested_fields brif 71 L353 L354 label L353 load 72 temp_name -strref 73 m39s840 +strref 73 m39s838 call 74 ir_builder_ir_new_temp_name string 1 73 call 75 pith_cstring_release void 1 73 call 76 pith_cstring_release void 1 72 @@ -110099,14 +110311,14 @@ load 85 node field 86 85 16 list children iconst 87 0 call 88 pith_list_get_value_strict int 2 86 87 -strref 89 m39s818 +strref 89 m39s816 call 90 ir_alias_registry_ir_resolve_json_call_name string 2 88 89 call 91 pith_cstring_release void 1 89 load 92 node field 93 92 16 list children iconst 94 0 call 95 pith_list_get_value_strict int 2 93 94 -strref 96 m39s817 +strref 96 m39s815 call 97 ir_alias_registry_ir_resolve_json_call_name string 2 95 96 call 98 pith_cstring_release void 1 96 call 99 ir_decode_emit_ir_emit_json_pool_mark struct:IrJsonPoolMark 2 90 97 @@ -110126,10 +110338,10 @@ load 107 node field 108 107 16 list children iconst 109 0 call 110 pith_list_get_value_strict int 2 108 109 -strref 111 m39s825 +strref 111 m39s823 call 112 ir_alias_registry_ir_resolve_json_call_name string 2 110 111 call 113 pith_cstring_release void 1 111 -strref 114 m39s636 +strref 114 m39s639 load 115 input_r call 116 ir_call_emit_ir_emit_call1 void 4 106 112 114 115 call 117 pith_cstring_release void 1 112 @@ -110145,7 +110357,7 @@ load 122 node field 123 122 16 list children iconst 124 0 call 125 pith_list_get_value_strict int 2 123 124 -strref 126 m39s830 +strref 126 m39s828 call 127 ir_alias_registry_ir_resolve_json_call_name string 2 125 126 call 128 pith_cstring_release void 1 126 strref 129 m39s45 @@ -110173,7 +110385,7 @@ load 147 node field 148 147 16 list children iconst 149 0 call 150 pith_list_get_value_strict int 2 148 149 -strref 151 m39s815 +strref 151 m39s813 call 152 ir_alias_registry_ir_resolve_json_call_name string 2 150 151 call 153 pith_cstring_release void 1 151 strref 154 m39s45 @@ -110211,14 +110423,14 @@ load 184 node field 185 184 16 list children iconst 186 0 call 187 pith_list_get_value_strict int 2 185 186 -strref 188 m39s809 +strref 188 m39s807 call 189 ir_alias_registry_ir_resolve_json_call_name string 2 187 188 call 190 pith_cstring_release void 1 188 call 191 ir_decode_emit_ir_emit_json_pool_restore void 2 183 189 call 192 pith_cstring_release void 1 189 call 193 ir_builder_ir_reg int 0 store r 193 -strref 194 m39s708 +strref 194 m39s706 load 195 r call 196 int_to_string string 1 195 concat 197 194 196 @@ -110257,8 +110469,8 @@ label L359 call 225 ir_builder_ir_reg int 0 store converted_r 225 load 226 converted_r -strref 227 m39s839 -strref 228 m39s745 +strref 227 m39s837 +strref 228 m39s743 load 229 input_r call 230 ir_call_emit_ir_emit_call1 void 4 226 227 228 229 call 231 pith_cstring_release void 1 227 @@ -110340,7 +110552,7 @@ ret 268 label L366 label L364 load 283 temp_name -strref 284 m39s831 +strref 284 m39s829 call 285 ir_builder_ir_new_temp_name string 1 284 call 286 pith_cstring_release void 1 284 call 287 pith_cstring_release void 1 283 @@ -110407,7 +110619,7 @@ label L380 label L378 call 326 ir_builder_ir_reg int 0 store key_r 326 -strref 327 m39s714 +strref 327 m39s712 load 328 key_r call 329 int_to_string string 1 328 concat 330 327 329 @@ -110450,7 +110662,7 @@ store __for_idx_262 363 jmp L371 label L374 load 364 field_regs -strref 365 m39s744 +strref 365 m39s742 load 366 target_info field 367 366 8 string name concat 368 365 367 @@ -110462,7 +110674,7 @@ load 373 done_l call 374 ir_call_emit_ir_emit_label void 1 373 call 375 ir_builder_ir_reg int 0 store r 375 -strref 376 m39s708 +strref 376 m39s706 load 377 r call 378 int_to_string string 1 377 concat 379 376 378 @@ -110518,7 +110730,7 @@ param module_path iconst 4 0 store decode_name 4 load 5 decode_name -strref 6 m39s664 +strref 6 m39s665 call 7 ir_decode_emit_ir_json_generic_name string 1 6 call 8 pith_cstring_release void 1 6 call 9 pith_cstring_release void 1 5 @@ -110527,11 +110739,11 @@ load 10 parent_handle_r load 11 key_r load 12 target_tid load 13 module_path -strref 14 m39s810 +strref 14 m39s808 call 15 ir_generics_ir_resolve_generic_module_call_name string 2 13 14 call 16 pith_cstring_release void 1 14 load 17 decode_name -strref 18 m39s838 +strref 18 m39s836 call 19 ir_decode_emit_ir_emit_nested_decode_path int 6 10 11 12 15 17 18 call 20 pith_cstring_release void 1 15 call 21 pith_cstring_release void 1 18 @@ -110551,10 +110763,10 @@ call 3 ir_builder_ir_reg int 0 store has_r 3 load 4 has_r load 5 module_path -strref 6 m39s837 +strref 6 m39s835 call 7 ir_generics_ir_resolve_generic_module_call_name string 2 5 6 call 8 pith_cstring_release void 1 6 -strref 9 m39s632 +strref 9 m39s635 load 10 handle_r load 11 key_r call 12 ir_call_emit_ir_emit_call2 void 5 4 7 9 10 11 @@ -110617,7 +110829,7 @@ call 34 ir_decode_calls_ir_optional_inner_tid int 1 33 store optional_inner_tid 34 call 35 ir_builder_ir_reg int 0 store key_r 35 -strref 36 m39s714 +strref 36 m39s712 load 37 key_r call 38 int_to_string string 1 37 concat 39 36 38 @@ -110661,7 +110873,7 @@ call 67 ir_decode_emit_ir_emit_json_object_has int 3 64 65 66 store has_r 67 load 68 branch load 69 has_r -strref 70 m39s836 +strref 70 m39s834 strref 71 m39s45 call 72 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 69 70 71 call 73 pith_cstring_release void 1 70 @@ -110721,7 +110933,7 @@ call 115 ir_decode_emit_ir_emit_json_object_has int 3 112 113 114 store has_r 115 load 116 branch load 117 has_r -strref 118 m39s835 +strref 118 m39s833 load 119 field_tid call 120 ir_type_helpers_ir_type_from_tid string 1 119 call 121 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 117 118 120 @@ -110812,7 +111024,7 @@ call 186 ir_decode_emit_ir_emit_json_object_has int 3 183 184 185 store has_r 186 load 187 branch load 188 has_r -strref 189 m39s834 +strref 189 m39s832 strref 190 m39s45 call 191 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 188 189 190 call 192 pith_cstring_release void 1 189 @@ -110884,7 +111096,7 @@ call 243 ir_decode_emit_ir_emit_json_object_has int 3 240 241 242 store has_r 243 load 244 branch load 245 has_r -strref 246 m39s833 +strref 246 m39s831 load 247 field_tid call 248 ir_type_helpers_ir_type_from_tid string 1 247 call 249 ir_decode_emit_ir_begin_decode_field_branch struct:IrDecodeFieldBranch 3 245 246 248 @@ -110961,7 +111173,7 @@ store i 311 jmp L381 label L383 load 312 field_regs -strref 313 m39s744 +strref 313 m39s742 load 314 struct_name concat 315 313 314 call 316 pith_cstring_release void 1 313 @@ -111008,20 +111220,20 @@ label L410 label L408 call 17 ir_builder_ir_reg int 0 store handle_r 17 -strref 18 m39s708 +strref 18 m39s706 load 19 handle_r call 20 int_to_string string 1 19 concat 21 18 20 call 22 pith_cstring_release void 1 18 call 23 pith_cstring_release void 1 20 -strref 24 m39s829 +strref 24 m39s827 concat 25 21 24 call 26 pith_cstring_release void 1 21 call 27 pith_cstring_release void 1 24 call 28 ir_builder_ir_emit void 1 25 call 29 pith_cstring_release void 1 25 load 30 temp_name -strref 31 m39s827 +strref 31 m39s825 call 32 ir_builder_ir_new_temp_name string 1 31 call 33 pith_cstring_release void 1 31 call 34 pith_cstring_release void 1 30 @@ -111043,7 +111255,7 @@ load 47 emit_value call 48 ir_decode_emit_ir_emit_json_decode_object_value_specialized void 6 42 43 44 45 46 47 call 49 ir_builder_ir_reg int 0 store r 49 -strref 50 m39s708 +strref 50 m39s706 load 51 r call 52 int_to_string string 1 51 concat 53 50 52 @@ -111058,7 +111270,7 @@ concat 61 57 60 call 62 pith_cstring_release void 1 57 call 63 ir_builder_ir_emit void 1 61 call 64 pith_cstring_release void 1 61 -strref 65 m39s711 +strref 65 m39s709 load 66 r call 67 int_to_string string 1 66 concat 68 65 67 @@ -111066,7 +111278,7 @@ call 69 pith_cstring_release void 1 65 call 70 pith_cstring_release void 1 67 call 71 ir_builder_ir_emit void 1 68 call 72 pith_cstring_release void 1 68 -strref 73 m39s746 +strref 73 m39s744 call 74 ir_builder_ir_emit void 1 73 call 75 pith_cstring_release void 1 73 load 76 temp_name @@ -111108,20 +111320,20 @@ label L413 label L411 call 21 ir_builder_ir_reg int 0 store input_r 21 -strref 22 m39s708 +strref 22 m39s706 load 23 input_r call 24 int_to_string string 1 23 concat 25 22 24 call 26 pith_cstring_release void 1 22 call 27 pith_cstring_release void 1 24 -strref 28 m39s832 +strref 28 m39s830 concat 29 25 28 call 30 pith_cstring_release void 1 25 call 31 pith_cstring_release void 1 28 call 32 ir_builder_ir_emit void 1 29 call 33 pith_cstring_release void 1 29 load 34 temp_name -strref 35 m39s831 +strref 35 m39s829 call 36 ir_builder_ir_new_temp_name string 1 35 call 37 pith_cstring_release void 1 35 call 38 pith_cstring_release void 1 34 @@ -111136,11 +111348,11 @@ call 45 pith_cstring_release void 1 43 store done_l 44 load 46 mark load 47 module_path -strref 48 m39s818 +strref 48 m39s816 call 49 ir_generics_ir_resolve_generic_module_call_name string 2 47 48 call 50 pith_cstring_release void 1 48 load 51 module_path -strref 52 m39s817 +strref 52 m39s815 call 53 ir_generics_ir_resolve_generic_module_call_name string 2 51 52 call 54 pith_cstring_release void 1 52 call 55 ir_decode_emit_ir_emit_json_pool_mark struct:IrJsonPoolMark 2 49 53 @@ -111157,10 +111369,10 @@ call 61 ir_builder_ir_reg int 0 store parsed_r 61 load 62 parsed_r load 63 module_path -strref 64 m39s825 +strref 64 m39s823 call 65 ir_generics_ir_resolve_generic_module_call_name string 2 63 64 call 66 pith_cstring_release void 1 64 -strref 67 m39s636 +strref 67 m39s639 load 68 input_r call 69 ir_call_emit_ir_emit_call1 void 4 62 65 67 68 call 70 pith_cstring_release void 1 65 @@ -111173,7 +111385,7 @@ call 73 ir_builder_ir_reg int 0 store parse_result_r 73 load 74 parse_result_r load 75 module_path -strref 76 m39s830 +strref 76 m39s828 call 77 ir_generics_ir_resolve_generic_module_call_name string 2 75 76 call 78 pith_cstring_release void 1 76 strref 79 m39s45 @@ -111196,7 +111408,7 @@ call 93 ir_builder_ir_reg int 0 store checked_r 93 load 94 checked_r load 95 module_path -strref 96 m39s815 +strref 96 m39s813 call 97 ir_generics_ir_resolve_generic_module_call_name string 2 95 96 call 98 pith_cstring_release void 1 96 strref 99 m39s45 @@ -111223,14 +111435,14 @@ load 118 emit_value call 119 ir_decode_emit_ir_emit_json_decode_object_value_specialized void 6 113 114 115 116 117 118 load 120 mark load 121 module_path -strref 122 m39s809 +strref 122 m39s807 call 123 ir_generics_ir_resolve_generic_module_call_name string 2 121 122 call 124 pith_cstring_release void 1 122 call 125 ir_decode_emit_ir_emit_json_pool_restore void 2 120 123 call 126 pith_cstring_release void 1 123 call 127 ir_builder_ir_reg int 0 store r 127 -strref 128 m39s708 +strref 128 m39s706 load 129 r call 130 int_to_string string 1 129 concat 131 128 130 @@ -111245,7 +111457,7 @@ concat 139 135 138 call 140 pith_cstring_release void 1 135 call 141 ir_builder_ir_emit void 1 139 call 142 pith_cstring_release void 1 139 -strref 143 m39s711 +strref 143 m39s709 load 144 r call 145 int_to_string string 1 144 concat 146 143 145 @@ -111253,7 +111465,7 @@ call 147 pith_cstring_release void 1 143 call 148 pith_cstring_release void 1 145 call 149 ir_builder_ir_emit void 1 146 call 150 pith_cstring_release void 1 146 -strref 151 m39s746 +strref 151 m39s744 call 152 ir_builder_ir_emit void 1 151 call 153 pith_cstring_release void 1 151 load 154 temp_name @@ -111308,13 +111520,13 @@ label L419 label L417 call 29 ir_builder_ir_reg int 0 store handle_r 29 -strref 30 m39s708 +strref 30 m39s706 load 31 handle_r call 32 int_to_string string 1 31 concat 33 30 32 call 34 pith_cstring_release void 1 30 call 35 pith_cstring_release void 1 32 -strref 36 m39s829 +strref 36 m39s827 concat 37 33 36 call 38 pith_cstring_release void 1 33 call 39 pith_cstring_release void 1 36 @@ -111324,7 +111536,7 @@ call 42 ir_builder_ir_reg int 0 store root_result_r 42 load 43 root_result_r load 44 module_path -strref 45 m39s815 +strref 45 m39s813 call 46 ir_generics_ir_resolve_generic_module_call_name string 2 44 45 call 47 pith_cstring_release void 1 45 strref 48 m39s45 @@ -111333,7 +111545,7 @@ call 50 ir_call_emit_ir_emit_call1 void 4 43 46 48 49 call 51 pith_cstring_release void 1 46 call 52 pith_cstring_release void 1 48 load 53 temp_name -strref 54 m39s826 +strref 54 m39s824 call 55 ir_builder_ir_new_temp_name string 1 54 call 56 pith_cstring_release void 1 54 call 57 pith_cstring_release void 1 53 @@ -111351,44 +111563,44 @@ load 66 temp_name load 67 done_l call 68 ir_result_flow_ir_emit_result_store_error_branch void 3 65 66 67 load 69 current_name -strref 70 m39s824 +strref 70 m39s822 call 71 ir_builder_ir_new_temp_name string 1 70 call 72 pith_cstring_release void 1 70 call 73 pith_cstring_release void 1 69 store current_name 71 load 74 parts_name -strref 75 m39s823 +strref 75 m39s821 call 76 ir_builder_ir_new_temp_name string 1 75 call 77 pith_cstring_release void 1 75 call 78 pith_cstring_release void 1 74 store parts_name 76 load 79 len_name -strref 80 m39s822 +strref 80 m39s820 call 81 ir_builder_ir_new_temp_name string 1 80 call 82 pith_cstring_release void 1 80 call 83 pith_cstring_release void 1 79 store len_name 81 load 84 idx_name -strref 85 m39s821 +strref 85 m39s819 call 86 ir_builder_ir_new_temp_name string 1 85 call 87 pith_cstring_release void 1 85 call 88 pith_cstring_release void 1 84 store idx_name 86 load 89 ir_builder_ir_var_types load 90 current_name -strref 91 m39s636 +strref 91 m39s639 call 92 pith_map_insert_cstr_owned void 3 89 90 91 load 93 ir_builder_ir_var_types load 94 parts_name -strref 95 m39s635 +strref 95 m39s638 call 96 pith_map_insert_cstr_owned void 3 93 94 95 load 97 ir_builder_ir_var_types load 98 len_name -strref 99 m39s636 +strref 99 m39s639 call 100 pith_map_insert_cstr_owned void 3 97 98 99 load 101 ir_builder_ir_var_types load 102 idx_name -strref 103 m39s636 +strref 103 m39s639 call 104 pith_map_insert_cstr_owned void 3 101 102 103 load 105 root_result_r iconst 106 0 @@ -111398,13 +111610,13 @@ call 109 pith_cstring_release void 1 107 store root_r 108 call 110 ir_builder_ir_reg int 0 store dotted_path_r 110 -strref 111 m39s708 +strref 111 m39s706 load 112 dotted_path_r call 113 int_to_string string 1 112 concat 114 111 113 call 115 pith_cstring_release void 1 111 call 116 pith_cstring_release void 1 113 -strref 117 m39s828 +strref 117 m39s826 concat 118 114 117 call 119 pith_cstring_release void 1 114 call 120 pith_cstring_release void 1 117 @@ -111413,7 +111625,7 @@ call 122 pith_cstring_release void 1 118 load 123 root_r load 124 dotted_path_r load 125 module_path -strref 126 m39s810 +strref 126 m39s808 call 127 ir_generics_ir_resolve_generic_module_call_name string 2 125 126 call 128 pith_cstring_release void 1 126 iconst 129 0 @@ -111435,7 +111647,7 @@ load 143 emit_value call 144 ir_decode_emit_ir_emit_json_decode_object_value_specialized void 6 138 139 140 141 142 143 call 145 ir_builder_ir_reg int 0 store r 145 -strref 146 m39s708 +strref 146 m39s706 load 147 r call 148 int_to_string string 1 147 concat 149 146 148 @@ -111450,7 +111662,7 @@ concat 157 153 156 call 158 pith_cstring_release void 1 153 call 159 ir_builder_ir_emit void 1 157 call 160 pith_cstring_release void 1 157 -strref 161 m39s711 +strref 161 m39s709 load 162 r call 163 int_to_string string 1 162 concat 164 161 163 @@ -111458,7 +111670,7 @@ call 165 pith_cstring_release void 1 161 call 166 pith_cstring_release void 1 163 call 167 ir_builder_ir_emit void 1 164 call 168 pith_cstring_release void 1 164 -strref 169 m39s746 +strref 169 m39s744 call 170 ir_builder_ir_emit void 1 169 call 171 pith_cstring_release void 1 169 load 172 temp_name @@ -111545,7 +111757,7 @@ call 47 types_get_type_info struct:TypeInfo 1 46 call 48 pith_struct_release void 1 45 store target_info 47 load 49 temp_name -strref 50 m39s827 +strref 50 m39s825 call 51 ir_builder_ir_new_temp_name string 1 50 call 52 pith_cstring_release void 1 50 call 53 pith_cstring_release void 1 49 @@ -111565,7 +111777,7 @@ load 63 node field 64 63 16 list children iconst 65 0 call 66 pith_list_get_value_strict int 2 64 65 -strref 67 m39s815 +strref 67 m39s813 call 68 ir_alias_registry_ir_resolve_json_call_name string 2 66 67 call 69 pith_cstring_release void 1 67 strref 70 m39s45 @@ -111600,7 +111812,7 @@ load 97 done_l call 98 ir_call_emit_ir_emit_label void 1 97 call 99 ir_builder_ir_reg int 0 store r 99 -strref 100 m39s708 +strref 100 m39s706 load 101 r call 102 int_to_string string 1 101 concat 103 100 102 @@ -111740,7 +111952,7 @@ call 76 types_get_type_info struct:TypeInfo 1 75 call 77 pith_struct_release void 1 74 store target_info 76 load 78 temp_name -strref 79 m39s826 +strref 79 m39s824 call 80 ir_builder_ir_new_temp_name string 1 79 call 81 pith_cstring_release void 1 79 call 82 pith_cstring_release void 1 78 @@ -111772,14 +111984,14 @@ load 100 node field 101 100 16 list children iconst 102 0 call 103 pith_list_get_value_strict int 2 101 102 -strref 104 m39s818 +strref 104 m39s816 call 105 ir_alias_registry_ir_resolve_json_call_name string 2 103 104 call 106 pith_cstring_release void 1 104 load 107 node field 108 107 16 list children iconst 109 0 call 110 pith_list_get_value_strict int 2 108 109 -strref 111 m39s817 +strref 111 m39s815 call 112 ir_alias_registry_ir_resolve_json_call_name string 2 110 111 call 113 pith_cstring_release void 1 111 call 114 ir_decode_emit_ir_emit_json_pool_mark struct:IrJsonPoolMark 2 105 112 @@ -111794,10 +112006,10 @@ load 120 node field 121 120 16 list children iconst 122 0 call 123 pith_list_get_value_strict int 2 121 122 -strref 124 m39s825 +strref 124 m39s823 call 125 ir_alias_registry_ir_resolve_json_call_name string 2 123 124 call 126 pith_cstring_release void 1 124 -strref 127 m39s636 +strref 127 m39s639 load 128 handle_r call 129 ir_call_emit_ir_emit_call1 void 4 119 125 127 128 call 130 pith_cstring_release void 1 125 @@ -111814,7 +112026,7 @@ load 135 node field 136 135 16 list children iconst 137 0 call 138 pith_list_get_value_strict int 2 136 137 -strref 139 m39s815 +strref 139 m39s813 call 140 ir_alias_registry_ir_resolve_json_call_name string 2 138 139 call 141 pith_cstring_release void 1 139 strref 142 m39s45 @@ -111827,44 +112039,44 @@ load 148 temp_name load 149 done_l call 150 ir_result_flow_ir_emit_result_store_error_branch void 3 147 148 149 load 151 current_name -strref 152 m39s824 +strref 152 m39s822 call 153 ir_builder_ir_new_temp_name string 1 152 call 154 pith_cstring_release void 1 152 call 155 pith_cstring_release void 1 151 store current_name 153 load 156 parts_name -strref 157 m39s823 +strref 157 m39s821 call 158 ir_builder_ir_new_temp_name string 1 157 call 159 pith_cstring_release void 1 157 call 160 pith_cstring_release void 1 156 store parts_name 158 load 161 len_name -strref 162 m39s822 +strref 162 m39s820 call 163 ir_builder_ir_new_temp_name string 1 162 call 164 pith_cstring_release void 1 162 call 165 pith_cstring_release void 1 161 store len_name 163 load 166 idx_name -strref 167 m39s821 +strref 167 m39s819 call 168 ir_builder_ir_new_temp_name string 1 167 call 169 pith_cstring_release void 1 167 call 170 pith_cstring_release void 1 166 store idx_name 168 load 171 ir_builder_ir_var_types load 172 current_name -strref 173 m39s636 +strref 173 m39s639 call 174 pith_map_insert_cstr_owned void 3 171 172 173 load 175 ir_builder_ir_var_types load 176 parts_name -strref 177 m39s635 +strref 177 m39s638 call 178 pith_map_insert_cstr_owned void 3 175 176 177 load 179 ir_builder_ir_var_types load 180 len_name -strref 181 m39s636 +strref 181 m39s639 call 182 pith_map_insert_cstr_owned void 3 179 180 181 load 183 ir_builder_ir_var_types load 184 idx_name -strref 185 m39s636 +strref 185 m39s639 call 186 pith_map_insert_cstr_owned void 3 183 184 185 load 187 root_result_r strref 188 m39s184 @@ -111880,7 +112092,7 @@ load 196 node field 197 196 16 list children iconst 198 0 call 199 pith_list_get_value_strict int 2 197 198 -strref 200 m39s810 +strref 200 m39s808 call 201 ir_alias_registry_ir_resolve_json_call_name string 2 199 200 call 202 pith_cstring_release void 1 200 strref 203 m39s184 @@ -111916,7 +112128,7 @@ load 229 node field 230 229 16 list children iconst 231 0 call 232 pith_list_get_value_strict int 2 230 231 -strref 233 m39s809 +strref 233 m39s807 call 234 ir_alias_registry_ir_resolve_json_call_name string 2 232 233 call 235 pith_cstring_release void 1 233 call 236 ir_decode_emit_ir_emit_json_pool_restore void 2 228 234 @@ -111926,7 +112138,7 @@ label L437 label L435 call 238 ir_builder_ir_reg int 0 store r 238 -strref 239 m39s708 +strref 239 m39s706 load 240 r call 241 int_to_string string 1 240 concat 242 239 241 @@ -112087,7 +112299,7 @@ call 76 types_get_type_info struct:TypeInfo 1 75 call 77 pith_struct_release void 1 74 store target_info 76 load 78 temp_name -strref 79 m39s820 +strref 79 m39s818 call 80 ir_builder_ir_new_temp_name string 1 79 call 81 pith_cstring_release void 1 79 call 82 pith_cstring_release void 1 78 @@ -112105,14 +112317,14 @@ load 91 node field 92 91 16 list children iconst 93 0 call 94 pith_list_get_value_strict int 2 92 93 -strref 95 m39s818 +strref 95 m39s816 call 96 ir_alias_registry_ir_resolve_json_call_name string 2 94 95 call 97 pith_cstring_release void 1 95 load 98 node field 99 98 16 list children iconst 100 0 call 101 pith_list_get_value_strict int 2 99 100 -strref 102 m39s817 +strref 102 m39s815 call 103 ir_alias_registry_ir_resolve_json_call_name string 2 101 102 call 104 pith_cstring_release void 1 102 call 105 ir_decode_emit_ir_emit_json_pool_mark struct:IrJsonPoolMark 2 96 103 @@ -112127,10 +112339,10 @@ load 111 node field 112 111 16 list children iconst 113 0 call 114 pith_list_get_value_strict int 2 112 113 -strref 115 m39s816 +strref 115 m39s814 call 116 ir_alias_registry_ir_resolve_json_call_name string 2 114 115 call 117 pith_cstring_release void 1 115 -strref 118 m39s636 +strref 118 m39s639 load 119 file_path_r call 120 ir_call_emit_ir_emit_call1 void 4 110 116 118 119 call 121 pith_cstring_release void 1 116 @@ -112142,7 +112354,7 @@ load 125 node field 126 125 16 list children iconst 127 0 call 128 pith_list_get_value_strict int 2 126 127 -strref 129 m39s815 +strref 129 m39s813 call 130 ir_alias_registry_ir_resolve_json_call_name string 2 128 129 call 131 pith_cstring_release void 1 129 strref 132 m39s45 @@ -112180,14 +112392,14 @@ load 162 node field 163 162 16 list children iconst 164 0 call 165 pith_list_get_value_strict int 2 163 164 -strref 166 m39s809 +strref 166 m39s807 call 167 ir_alias_registry_ir_resolve_json_call_name string 2 165 166 call 168 pith_cstring_release void 1 166 call 169 ir_decode_emit_ir_emit_json_pool_restore void 2 161 167 call 170 pith_cstring_release void 1 167 call 171 ir_builder_ir_reg int 0 store r 171 -strref 172 m39s708 +strref 172 m39s706 load 173 r call 174 int_to_string string 1 173 concat 175 172 174 @@ -112293,7 +112505,7 @@ call 259 types_get_type_info struct:TypeInfo 1 258 call 260 pith_struct_release void 1 257 store target_info 259 load 261 temp_name -strref 262 m39s819 +strref 262 m39s817 call 263 ir_builder_ir_new_temp_name string 1 262 call 264 pith_cstring_release void 1 262 call 265 pith_cstring_release void 1 261 @@ -112311,14 +112523,14 @@ load 274 node field 275 274 16 list children iconst 276 0 call 277 pith_list_get_value_strict int 2 275 276 -strref 278 m39s818 +strref 278 m39s816 call 279 ir_alias_registry_ir_resolve_json_call_name string 2 277 278 call 280 pith_cstring_release void 1 278 load 281 node field 282 281 16 list children iconst 283 0 call 284 pith_list_get_value_strict int 2 282 283 -strref 285 m39s817 +strref 285 m39s815 call 286 ir_alias_registry_ir_resolve_json_call_name string 2 284 285 call 287 pith_cstring_release void 1 285 call 288 ir_decode_emit_ir_emit_json_pool_mark struct:IrJsonPoolMark 2 279 286 @@ -112333,10 +112545,10 @@ load 294 node field 295 294 16 list children iconst 296 0 call 297 pith_list_get_value_strict int 2 295 296 -strref 298 m39s816 +strref 298 m39s814 call 299 ir_alias_registry_ir_resolve_json_call_name string 2 297 298 call 300 pith_cstring_release void 1 298 -strref 301 m39s636 +strref 301 m39s639 load 302 file_path_r call 303 ir_call_emit_ir_emit_call1 void 4 293 299 301 302 call 304 pith_cstring_release void 1 299 @@ -112348,7 +112560,7 @@ load 308 node field 309 308 16 list children iconst 310 0 call 311 pith_list_get_value_strict int 2 309 310 -strref 312 m39s815 +strref 312 m39s813 call 313 ir_alias_registry_ir_resolve_json_call_name string 2 311 312 call 314 pith_cstring_release void 1 312 strref 315 m39s45 @@ -112361,44 +112573,44 @@ load 321 temp_name load 322 done_l call 323 ir_result_flow_ir_emit_result_store_error_branch void 3 320 321 322 load 324 current_name -strref 325 m39s814 +strref 325 m39s812 call 326 ir_builder_ir_new_temp_name string 1 325 call 327 pith_cstring_release void 1 325 call 328 pith_cstring_release void 1 324 store current_name 326 load 329 parts_name -strref 330 m39s813 +strref 330 m39s811 call 331 ir_builder_ir_new_temp_name string 1 330 call 332 pith_cstring_release void 1 330 call 333 pith_cstring_release void 1 329 store parts_name 331 load 334 len_name -strref 335 m39s812 +strref 335 m39s810 call 336 ir_builder_ir_new_temp_name string 1 335 call 337 pith_cstring_release void 1 335 call 338 pith_cstring_release void 1 334 store len_name 336 load 339 idx_name -strref 340 m39s811 +strref 340 m39s809 call 341 ir_builder_ir_new_temp_name string 1 340 call 342 pith_cstring_release void 1 340 call 343 pith_cstring_release void 1 339 store idx_name 341 load 344 ir_builder_ir_var_types load 345 current_name -strref 346 m39s636 +strref 346 m39s639 call 347 pith_map_insert_cstr_owned void 3 344 345 346 load 348 ir_builder_ir_var_types load 349 parts_name -strref 350 m39s635 +strref 350 m39s638 call 351 pith_map_insert_cstr_owned void 3 348 349 350 load 352 ir_builder_ir_var_types load 353 len_name -strref 354 m39s636 +strref 354 m39s639 call 355 pith_map_insert_cstr_owned void 3 352 353 354 load 356 ir_builder_ir_var_types load 357 idx_name -strref 358 m39s636 +strref 358 m39s639 call 359 pith_map_insert_cstr_owned void 3 356 357 358 load 360 root_result_r strref 361 m39s184 @@ -112414,7 +112626,7 @@ load 369 node field 370 369 16 list children iconst 371 0 call 372 pith_list_get_value_strict int 2 370 371 -strref 373 m39s810 +strref 373 m39s808 call 374 ir_alias_registry_ir_resolve_json_call_name string 2 372 373 call 375 pith_cstring_release void 1 373 strref 376 m39s184 @@ -112447,14 +112659,14 @@ load 401 node field 402 401 16 list children iconst 403 0 call 404 pith_list_get_value_strict int 2 402 403 -strref 405 m39s809 +strref 405 m39s807 call 406 ir_alias_registry_ir_resolve_json_call_name string 2 404 405 call 407 pith_cstring_release void 1 405 call 408 ir_decode_emit_ir_emit_json_pool_restore void 2 400 406 call 409 pith_cstring_release void 1 406 call 410 ir_builder_ir_reg int 0 store r 410 -strref 411 m39s708 +strref 411 m39s706 load 412 r call 413 int_to_string string 1 412 concat 414 411 413 @@ -112554,7 +112766,7 @@ brif 27 L460 L461 label L460 load 29 idx load 30 node -strref 31 m39s803 +strref 31 m39s801 load 32 emit_expr load 33 emit_value call 34 ir_decode_emit_ir_emit_config_file_decode_call int 5 29 30 31 32 33 @@ -112570,7 +112782,7 @@ brif 38 L463 L464 label L463 load 40 idx load 41 node -strref 42 m39s801 +strref 42 m39s799 load 43 emit_expr load 44 emit_value call 45 ir_decode_emit_ir_emit_config_file_decode_call int 5 40 41 42 43 44 @@ -112579,14 +112791,14 @@ ret 45 label L464 label L462 load 47 callee_idx -strref 48 m39s808 +strref 48 m39s806 call 49 ir_alias_registry_ir_is_config_file_decode_callee bool 2 47 48 call 50 pith_cstring_release void 1 48 brif 49 L466 L467 label L466 load 51 idx load 52 node -strref 53 m39s807 +strref 53 m39s805 iconst 54 1 load 55 emit_expr load 56 emit_value @@ -112596,14 +112808,14 @@ ret 57 label L467 label L465 load 59 callee_idx -strref 60 m39s806 +strref 60 m39s804 call 61 ir_alias_registry_ir_is_config_file_decode_callee bool 2 59 60 call 62 pith_cstring_release void 1 60 brif 61 L469 L470 label L469 load 63 idx load 64 node -strref 65 m39s805 +strref 65 m39s803 iconst 66 1 load 67 emit_expr load 68 emit_value @@ -112613,14 +112825,14 @@ ret 69 label L470 label L468 load 71 callee_idx -strref 72 m39s804 +strref 72 m39s802 call 73 ir_alias_registry_ir_is_config_file_decode_callee bool 2 71 72 call 74 pith_cstring_release void 1 72 brif 73 L472 L473 label L472 load 75 idx load 76 node -strref 77 m39s803 +strref 77 m39s801 iconst 78 1 load 79 emit_expr load 80 emit_value @@ -112630,14 +112842,14 @@ ret 81 label L473 label L471 load 83 callee_idx -strref 84 m39s802 +strref 84 m39s800 call 85 ir_alias_registry_ir_is_config_file_decode_callee bool 2 83 84 call 86 pith_cstring_release void 1 84 brif 85 L475 L476 label L475 load 87 idx load 88 node -strref 89 m39s801 +strref 89 m39s799 iconst 90 1 load 91 emit_expr load 92 emit_value @@ -118306,333 +118518,336 @@ string m45s400 "config typed file decode argument type mismatch: expected " string m45s401 "config typed file decode target must be a struct, got " string m45s402 "config typed file decode expects 1 argument, got " string m45s403 "config typed file decode requires an explicit struct type" -string m45s404 "unknown type: TomlDecodeError" -string m45s405 "TomlDecodeError" -string m45s406 "toml.decode does not support field '" -string m45s407 "toml.decode target field must be public: " -string m45s408 "toml.decode argument type mismatch: expected " -string m45s409 "toml.decode target must be a struct, got " -string m45s410 "toml.decode expects 1 argument, got " -string m45s411 "toml.decode requires an explicit struct type" -string m45s412 "unknown type: JsonDecodeError" -string m45s413 "JsonDecodeError" -string m45s414 "json.decode does not support field '" -string m45s415 "json.decode target field must be public: " -string m45s416 "json.decode argument type mismatch: expected " -string m45s417 "json.decode target must be a struct, got " -string m45s418 "json.decode expects 1 argument, got " -string m45s419 "json.decode requires an explicit struct type" -string m45s420 "config.decode does not support field '" -string m45s421 "config.decode target field must be public: " -string m45s422 "config.decode prefix type mismatch: expected String, got " -string m45s423 "config.decode argument type mismatch: expected Config, got " -string m45s424 "unknown type: Config" -string m45s425 "Config" -string m45s426 "config.decode target must be a struct, got " -string m45s427 " argument(s), got " -string m45s428 "config.decode expects " -string m45s429 "config.decode requires an explicit struct type" -string m45s430 "|" -string m45s431 "json.decode type argument must be a concrete struct type" -string m45s432 "config_mod" -string m45s433 "config" -string m45s434 "std.config" -string m45s435 "toml_mod" -string m45s436 "toml" -string m45s437 "std.toml" -string m45s438 "json_mod" -string m45s439 "json" -string m45s440 "std.json" -string m45s441 "unary 'not' requires Bool, got " -string m45s442 "not" -string m45s443 "unary - requires numeric type, got " -string m45s444 "negate" -string m45s445 "pipe type mismatch: function expects " -string m45s446 "' must take exactly 1 parameter" -string m45s447 "pipe target '" -string m45s448 "' is not a function" -string m45s449 "pipe operator requires a function name on the right" -string m45s450 "operator 'or' requires Bool, got " -string m45s451 "or" -string m45s452 "operator 'and' requires Bool, got " -string m45s453 "and" -string m45s454 "operator >= type mismatch: " -string m45s455 "operator >= requires numeric or string type, got " -string m45s456 "gte" -string m45s457 "operator <= type mismatch: " -string m45s458 "operator <= requires numeric or string type, got " -string m45s459 "lte" -string m45s460 "operator > type mismatch: " -string m45s461 "operator > requires numeric or string type, got " -string m45s462 "gt" -string m45s463 "operator < type mismatch: " -string m45s464 "operator < requires numeric or string type, got " -string m45s465 "lt" -string m45s466 "operator != type mismatch: " -string m45s467 "neq" -string m45s468 "operator == type mismatch: " -string m45s469 "eq" -string m45s470 "operator % type mismatch: " -string m45s471 "operator % requires integer type, got " -string m45s472 "mod" -string m45s473 "operator / type mismatch: " -string m45s474 "operator / requires numeric type, got " -string m45s475 "div" -string m45s476 "operator * type mismatch: " -string m45s477 "operator * requires numeric type, got " -string m45s478 "mul" -string m45s479 "operator - type mismatch: " -string m45s480 "operator - requires numeric type, got " -string m45s481 "sub" -string m45s482 "operator + type mismatch: " -string m45s483 "operator + requires numeric type, got " -string m45s484 "pipe" -string m45s485 "undefined variable: " -string m45s486 "import it where it is defined" -string m45s487 "' belongs to another module and is not imported here" -string m45s488 "UInt64" -string m45s489 "UInt32" -string m45s490 "UInt16" -string m45s491 "UInt8" -string m45s492 "Int64" -string m45s493 "Int32" -string m45s494 "Int16" -string m45s495 "Int8" -string m45s496 "UInt" -string m45s497 "primitive" -string m45s498 "await" -string m45s499 "spawn" -string m45s500 "struct_init" -string m45s501 "lambda" -string m45s502 "match_expr" -string m45s503 "select_expr" -string m45s504 "catch_expr" -string m45s505 "try" -string m45s506 "unwrap" -string m45s507 "if_expr" -string m45s508 "string interpolation requires a stringifiable value, got " -string m45s509 "lit" -string m45s510 "interp_spec" -string m45s511 "string_interp" -string m45s512 "grouped" -string m45s513 "unary" -string m45s514 "binary" -string m45s515 "self" -string m45s516 "bool_lit" -string m45s517 "string_lit" -string m45s518 "float_lit" -string m45s519 "int_lit" -string m45s520 "cannot iterate over " -string m45s521 ".." -string m45s522 "range bounds must be Int, got " -string m45s523 "range" -string m45s524 ".next" -string m45s525 "while let" -string m45s526 "if let" -string m45s527 " supports variant patterns and optional bindings" -string m45s528 "E245" -string m45s529 " with a bare binding needs an optional subject, got " -string m45s530 "else" -string m45s531 "then" -string m45s532 "elif" -string m45s533 "fail type mismatch: expected " -string m45s534 "fail requires function to return a result type" -string m45s535 "E234" -string m45s536 "fail outside of function" -string m45s537 "E231" -string m45s538 "change the return type to " -string m45s539 "return type mismatch: expected " -string m45s540 ", got Void" -string m45s541 "return outside of function" -string m45s542 "lambda returns disagree: " -string m45s543 "type mismatch: expected " -string m45s544 " requires numeric type, got " -string m45s545 "operator " -string m45s546 "=" -string m45s547 "declare with 'mut': mut " -string m45s548 "cannot assign to immutable variable '" -string m45s549 "E216" -string m45s550 "try_expr" -string m45s551 "bind" -string m45s552 "binding" -string m45s553 "errdefer" -string m45s554 "defer" -string m45s555 "continue" -string m45s556 "break" -string m45s557 "fail" -string m45s558 "return" -string m45s559 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m45s560 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m45s561 "E260" -string m45s562 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m45s563 "errdefer is only meaningful in a function returning a result (`T!`)" -string m45s564 "errdefer is only allowed inside a function" -string m45s565 "defer is only allowed inside a function" -string m45s566 "continue outside of loop" -string m45s567 "E215" -string m45s568 "break outside of loop" -string m45s569 "for_stmt" -string m45s570 "while_let" -string m45s571 "if_let" -string m45s572 "while_stmt" -string m45s573 "if_stmt" -string m45s574 "assignment" -string m45s575 "mut" -string m45s576 "fn_decl" -string m45s577 "pub" -string m45s578 " is missing associated type: " -string m45s579 " for " -string m45s580 "impl of " -string m45s581 "E229" -string m45s582 " is missing method: " -string m45s583 "E235" -string m45s584 "fn_sig" -string m45s585 "assoc_type_bind" -string m45s586 "for_type" -string m45s587 "test_decl" -string m45s588 "impl_decl" -string m45s589 "threadlocal" -string m45s590 "import" -string m45s591 "from_import" -string m45s592 "assoc_type" -string m45s593 "' is a builtin type name and cannot be used as an enum name" -string m45s594 "E250" -string m45s595 "' must be " -string m45s596 "default for field '" -string m45s597 " weak" -string m45s598 "' is a builtin type name and cannot be used as a struct name" -string m45s599 "' must be an optional struct type (T?)" -string m45s600 "weak field '" -string m45s601 "E249" -string m45s602 "parameter requires a type annotation" -string m45s603 "type_alias" -string m45s604 "interface_decl" -string m45s605 "unknown generic type: " -string m45s606 "Channel expects 1 type argument, got " -string m45s607 "Task expects 1 type argument, got " -string m45s608 "Map expects 2 type arguments, got " -string m45s609 "Set expects 1 type argument, got " -string m45s610 "List expects 1 type argument, got " -string m45s611 "type nesting too deep" -string m45s612 "E233" -string m45s613 "import it from the module that defines it" -string m45s614 "' is not declared by module '" -string m45s615 "E246" -string m45s616 "*" -string m45s617 "" -string m45s618 "fn" -string m45s619 "TypeInfo(" -string m45s620 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" -string m45s621 "name" -string m45s622 ", name: " -string m45s623 "fields" -string m45s624 ", fields: " -string m45s625 "field_types" -string m45s626 ", field_types: " -string m45s627 "field_pub" -string m45s628 ", field_pub: " -string m45s629 "field_mut" -string m45s630 ", field_mut: " -string m45s631 "param_types" -string m45s632 ", param_types: " -string m45s633 "return_type" -string m45s634 ", return_type: " -string m45s635 "inner" -string m45s636 ", inner: " -string m45s637 "key_type" -string m45s638 ", key_type: " -string m45s639 "value_type" -string m45s640 ", value_type: " -string m45s641 "elements" -string m45s642 ", elements: " -string m45s643 "variants" -string m45s644 ", variants: " -string m45s645 "variant_types" -string m45s646 ", variant_types: " -string m45s647 "-" -string m45s648 "unknown" -string m45s649 "closure" -string m45s650 "set_int" -string m45s651 "int" -string m45s652 "map_int" -string m45s653 "list_string" -string m45s654 "string" -string m45s655 "__" -string m45s656 "std_config_" -string m45s657 "std_json_" -string m45s658 "bool" -string m45s659 "not_op" -string m45s660 "!" -string m45s661 "integer" -string m45s662 "str_lit" -string m45s663 "float" -string m45s664 "list:" -string m45s665 "task:" -string m45s666 "channel:" -string m45s667 "bytes" -string m45s668 "struct:" -string m45s669 "opaque:" -string m45s670 "void" -string m45s671 "Set[UInt64]" -string m45s672 "Set[UInt32]" -string m45s673 "Set[UInt16]" -string m45s674 "Set[UInt8]" -string m45s675 "Set[Int64]" -string m45s676 "Set[Int32]" -string m45s677 "Set[Int16]" -string m45s678 "Set[Int8]" -string m45s679 "Set[UInt]" -string m45s680 "Set[Int]" -string m45s681 "Map[Int, " -string m45s682 "Map[Int," -string m45s683 "List[String]" -string m45s684 "parse_int failed" -string m45s685 "file_open_read failed" -string m45s686 "file_open_write failed" -string m45s687 "file_open_append failed" -string m45s688 "byte_buffer_write failed" -string m45s689 "byte_buffer_write_string_utf8 failed" -string m45s690 "byte_buffer_write_byte failed" -string m45s691 "file_write failed" -string m45s692 "file_write_bytes failed" -string m45s693 "tcp_connect failed" -string m45s694 "tcp_listen failed" -string m45s695 "tcp_accept failed" -string m45s696 "tcp_write failed" -string m45s697 "tcp_write_bytes failed" -string m45s698 "process_spawn failed" -string m45s699 "process_spawn_argv failed" -string m45s700 "process_output_argv failed" -string m45s701 "process_write failed" -string m45s702 "process_write_bytes failed" -string m45s703 "crypto_x25519_keygen failed" -string m45s704 "write_file failed" -string m45s705 "append_file failed" -string m45s706 "write_file_bytes failed" -string m45s707 "append_file_bytes failed" -string m45s708 "read_file failed" -string m45s709 "exec_output failed" -string m45s710 "dns_resolve failed" -string m45s711 "bytes_to_string_utf8 failed" -string m45s712 "bytes_substring_utf8 failed" -string m45s713 "file_read failed" -string m45s714 "tcp_read failed" -string m45s715 "process_read failed" -string m45s716 "process_read_err failed" -string m45s717 "read_file_bytes failed" -string m45s718 "b64_decode failed" -string m45s719 "from_hex failed" -string m45s720 "file_read_bytes failed" -string m45s721 "tcp_read_bytes failed" -string m45s722 "process_read_bytes failed" -string m45s723 "process_read_err_bytes failed" -string m45s724 "crypto_x25519_public_key failed" -string m45s725 "crypto_x25519_shared_secret failed" -string m45s726 "crypto_aes_128_gcm_seal failed" -string m45s727 "crypto_aes_128_gcm_open failed" -string m45s728 "crypto_chacha20_poly1305_seal failed" -string m45s729 "crypto_chacha20_poly1305_open failed" -string m45s730 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m45s404 " does not support field '" +string m45s405 " target field must be public: " +string m45s406 " argument type mismatch: expected " +string m45s407 " target must be a struct, got " +string m45s408 " requires an explicit struct type" +string m45s409 ".decode" +string m45s410 "unknown type: JsonDecodeError" +string m45s411 "JsonDecodeError" +string m45s412 "json.decode does not support field '" +string m45s413 "json.decode target field must be public: " +string m45s414 "json.decode argument type mismatch: expected " +string m45s415 "json.decode target must be a struct, got " +string m45s416 "json.decode expects 1 argument, got " +string m45s417 "json.decode requires an explicit struct type" +string m45s418 "config.decode does not support field '" +string m45s419 "config.decode target field must be public: " +string m45s420 "config.decode prefix type mismatch: expected String, got " +string m45s421 "config.decode argument type mismatch: expected Config, got " +string m45s422 "unknown type: Config" +string m45s423 "Config" +string m45s424 "config.decode target must be a struct, got " +string m45s425 " argument(s), got " +string m45s426 "config.decode expects " +string m45s427 "config.decode requires an explicit struct type" +string m45s428 "|" +string m45s429 "json.decode type argument must be a concrete struct type" +string m45s430 "config_mod" +string m45s431 "config" +string m45s432 "std.config" +string m45s433 "TomlDecodeError" +string m45s434 "YamlDecodeError" +string m45s435 "yaml" +string m45s436 "yaml_mod" +string m45s437 "toml" +string m45s438 "toml_mod" +string m45s439 "std.yaml" +string m45s440 "std.toml" +string m45s441 "json_mod" +string m45s442 "json" +string m45s443 "std.json" +string m45s444 "unary 'not' requires Bool, got " +string m45s445 "not" +string m45s446 "unary - requires numeric type, got " +string m45s447 "negate" +string m45s448 "pipe type mismatch: function expects " +string m45s449 "' must take exactly 1 parameter" +string m45s450 "pipe target '" +string m45s451 "' is not a function" +string m45s452 "pipe operator requires a function name on the right" +string m45s453 "operator 'or' requires Bool, got " +string m45s454 "or" +string m45s455 "operator 'and' requires Bool, got " +string m45s456 "and" +string m45s457 "operator >= type mismatch: " +string m45s458 "operator >= requires numeric or string type, got " +string m45s459 "gte" +string m45s460 "operator <= type mismatch: " +string m45s461 "operator <= requires numeric or string type, got " +string m45s462 "lte" +string m45s463 "operator > type mismatch: " +string m45s464 "operator > requires numeric or string type, got " +string m45s465 "gt" +string m45s466 "operator < type mismatch: " +string m45s467 "operator < requires numeric or string type, got " +string m45s468 "lt" +string m45s469 "operator != type mismatch: " +string m45s470 "neq" +string m45s471 "operator == type mismatch: " +string m45s472 "eq" +string m45s473 "operator % type mismatch: " +string m45s474 "operator % requires integer type, got " +string m45s475 "mod" +string m45s476 "operator / type mismatch: " +string m45s477 "operator / requires numeric type, got " +string m45s478 "div" +string m45s479 "operator * type mismatch: " +string m45s480 "operator * requires numeric type, got " +string m45s481 "mul" +string m45s482 "operator - type mismatch: " +string m45s483 "operator - requires numeric type, got " +string m45s484 "sub" +string m45s485 "operator + type mismatch: " +string m45s486 "operator + requires numeric type, got " +string m45s487 "pipe" +string m45s488 "undefined variable: " +string m45s489 "import it where it is defined" +string m45s490 "' belongs to another module and is not imported here" +string m45s491 "UInt64" +string m45s492 "UInt32" +string m45s493 "UInt16" +string m45s494 "UInt8" +string m45s495 "Int64" +string m45s496 "Int32" +string m45s497 "Int16" +string m45s498 "Int8" +string m45s499 "UInt" +string m45s500 "primitive" +string m45s501 "await" +string m45s502 "spawn" +string m45s503 "struct_init" +string m45s504 "lambda" +string m45s505 "match_expr" +string m45s506 "select_expr" +string m45s507 "catch_expr" +string m45s508 "try" +string m45s509 "unwrap" +string m45s510 "if_expr" +string m45s511 "string interpolation requires a stringifiable value, got " +string m45s512 "lit" +string m45s513 "interp_spec" +string m45s514 "string_interp" +string m45s515 "grouped" +string m45s516 "unary" +string m45s517 "binary" +string m45s518 "self" +string m45s519 "bool_lit" +string m45s520 "string_lit" +string m45s521 "float_lit" +string m45s522 "int_lit" +string m45s523 "cannot iterate over " +string m45s524 ".." +string m45s525 "range bounds must be Int, got " +string m45s526 "range" +string m45s527 ".next" +string m45s528 "while let" +string m45s529 "if let" +string m45s530 " supports variant patterns and optional bindings" +string m45s531 "E245" +string m45s532 " with a bare binding needs an optional subject, got " +string m45s533 "else" +string m45s534 "then" +string m45s535 "elif" +string m45s536 "fail type mismatch: expected " +string m45s537 "fail requires function to return a result type" +string m45s538 "E234" +string m45s539 "fail outside of function" +string m45s540 "E231" +string m45s541 "change the return type to " +string m45s542 "return type mismatch: expected " +string m45s543 ", got Void" +string m45s544 "return outside of function" +string m45s545 "lambda returns disagree: " +string m45s546 "type mismatch: expected " +string m45s547 " requires numeric type, got " +string m45s548 "operator " +string m45s549 "=" +string m45s550 "declare with 'mut': mut " +string m45s551 "cannot assign to immutable variable '" +string m45s552 "E216" +string m45s553 "try_expr" +string m45s554 "bind" +string m45s555 "binding" +string m45s556 "errdefer" +string m45s557 "defer" +string m45s558 "continue" +string m45s559 "break" +string m45s560 "fail" +string m45s561 "return" +string m45s562 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m45s563 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m45s564 "E260" +string m45s565 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m45s566 "errdefer is only meaningful in a function returning a result (`T!`)" +string m45s567 "errdefer is only allowed inside a function" +string m45s568 "defer is only allowed inside a function" +string m45s569 "continue outside of loop" +string m45s570 "E215" +string m45s571 "break outside of loop" +string m45s572 "for_stmt" +string m45s573 "while_let" +string m45s574 "if_let" +string m45s575 "while_stmt" +string m45s576 "if_stmt" +string m45s577 "assignment" +string m45s578 "mut" +string m45s579 "fn_decl" +string m45s580 "pub" +string m45s581 " is missing associated type: " +string m45s582 " for " +string m45s583 "impl of " +string m45s584 "E229" +string m45s585 " is missing method: " +string m45s586 "E235" +string m45s587 "fn_sig" +string m45s588 "assoc_type_bind" +string m45s589 "for_type" +string m45s590 "test_decl" +string m45s591 "impl_decl" +string m45s592 "threadlocal" +string m45s593 "import" +string m45s594 "from_import" +string m45s595 "assoc_type" +string m45s596 "' is a builtin type name and cannot be used as an enum name" +string m45s597 "E250" +string m45s598 "' must be " +string m45s599 "default for field '" +string m45s600 " weak" +string m45s601 "' is a builtin type name and cannot be used as a struct name" +string m45s602 "' must be an optional struct type (T?)" +string m45s603 "weak field '" +string m45s604 "E249" +string m45s605 "parameter requires a type annotation" +string m45s606 "type_alias" +string m45s607 "interface_decl" +string m45s608 "unknown generic type: " +string m45s609 "Channel expects 1 type argument, got " +string m45s610 "Task expects 1 type argument, got " +string m45s611 "Map expects 2 type arguments, got " +string m45s612 "Set expects 1 type argument, got " +string m45s613 "List expects 1 type argument, got " +string m45s614 "type nesting too deep" +string m45s615 "E233" +string m45s616 "import it from the module that defines it" +string m45s617 "' is not declared by module '" +string m45s618 "E246" +string m45s619 "*" +string m45s620 "" +string m45s621 "fn" +string m45s622 "TypeInfo(" +string m45s623 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" +string m45s624 "name" +string m45s625 ", name: " +string m45s626 "fields" +string m45s627 ", fields: " +string m45s628 "field_types" +string m45s629 ", field_types: " +string m45s630 "field_pub" +string m45s631 ", field_pub: " +string m45s632 "field_mut" +string m45s633 ", field_mut: " +string m45s634 "param_types" +string m45s635 ", param_types: " +string m45s636 "return_type" +string m45s637 ", return_type: " +string m45s638 "inner" +string m45s639 ", inner: " +string m45s640 "key_type" +string m45s641 ", key_type: " +string m45s642 "value_type" +string m45s643 ", value_type: " +string m45s644 "elements" +string m45s645 ", elements: " +string m45s646 "variants" +string m45s647 ", variants: " +string m45s648 "variant_types" +string m45s649 ", variant_types: " +string m45s650 "-" +string m45s651 "unknown" +string m45s652 "closure" +string m45s653 "set_int" +string m45s654 "int" +string m45s655 "map_int" +string m45s656 "list_string" +string m45s657 "string" +string m45s658 "__" +string m45s659 "std_config_" +string m45s660 "std_json_" +string m45s661 "bool" +string m45s662 "not_op" +string m45s663 "!" +string m45s664 "integer" +string m45s665 "str_lit" +string m45s666 "float" +string m45s667 "list:" +string m45s668 "task:" +string m45s669 "channel:" +string m45s670 "bytes" +string m45s671 "struct:" +string m45s672 "opaque:" +string m45s673 "void" +string m45s674 "Set[UInt64]" +string m45s675 "Set[UInt32]" +string m45s676 "Set[UInt16]" +string m45s677 "Set[UInt8]" +string m45s678 "Set[Int64]" +string m45s679 "Set[Int32]" +string m45s680 "Set[Int16]" +string m45s681 "Set[Int8]" +string m45s682 "Set[UInt]" +string m45s683 "Set[Int]" +string m45s684 "Map[Int, " +string m45s685 "Map[Int," +string m45s686 "List[String]" +string m45s687 "parse_int failed" +string m45s688 "file_open_read failed" +string m45s689 "file_open_write failed" +string m45s690 "file_open_append failed" +string m45s691 "byte_buffer_write failed" +string m45s692 "byte_buffer_write_string_utf8 failed" +string m45s693 "byte_buffer_write_byte failed" +string m45s694 "file_write failed" +string m45s695 "file_write_bytes failed" +string m45s696 "tcp_connect failed" +string m45s697 "tcp_listen failed" +string m45s698 "tcp_accept failed" +string m45s699 "tcp_write failed" +string m45s700 "tcp_write_bytes failed" +string m45s701 "process_spawn failed" +string m45s702 "process_spawn_argv failed" +string m45s703 "process_output_argv failed" +string m45s704 "process_write failed" +string m45s705 "process_write_bytes failed" +string m45s706 "crypto_x25519_keygen failed" +string m45s707 "write_file failed" +string m45s708 "append_file failed" +string m45s709 "write_file_bytes failed" +string m45s710 "append_file_bytes failed" +string m45s711 "read_file failed" +string m45s712 "exec_output failed" +string m45s713 "dns_resolve failed" +string m45s714 "bytes_to_string_utf8 failed" +string m45s715 "bytes_substring_utf8 failed" +string m45s716 "file_read failed" +string m45s717 "tcp_read failed" +string m45s718 "process_read failed" +string m45s719 "process_read_err failed" +string m45s720 "read_file_bytes failed" +string m45s721 "b64_decode failed" +string m45s722 "from_hex failed" +string m45s723 "file_read_bytes failed" +string m45s724 "tcp_read_bytes failed" +string m45s725 "process_read_bytes failed" +string m45s726 "process_read_err_bytes failed" +string m45s727 "crypto_x25519_public_key failed" +string m45s728 "crypto_x25519_shared_secret failed" +string m45s729 "crypto_aes_128_gcm_seal failed" +string m45s730 "crypto_aes_128_gcm_open failed" +string m45s731 "crypto_chacha20_poly1305_seal failed" +string m45s732 "crypto_chacha20_poly1305_open failed" +string m45s733 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -119891,7 +120106,7 @@ call 175 pith_list_push_value void 2 171 174 jmp L168 label L170 load 176 concrete_types -strref 177 m45s648 +strref 177 m45s651 call 178 pith_list_push_value_owned void 2 176 177 label L168 label L166 @@ -120720,669 +120935,669 @@ string m46s400 "config typed file decode argument type mismatch: expected " string m46s401 "config typed file decode target must be a struct, got " string m46s402 "config typed file decode expects 1 argument, got " string m46s403 "config typed file decode requires an explicit struct type" -string m46s404 "unknown type: TomlDecodeError" -string m46s405 "TomlDecodeError" -string m46s406 "toml.decode does not support field '" -string m46s407 "toml.decode target field must be public: " -string m46s408 "toml.decode argument type mismatch: expected " -string m46s409 "toml.decode target must be a struct, got " -string m46s410 "toml.decode expects 1 argument, got " -string m46s411 "toml.decode requires an explicit struct type" -string m46s412 "unknown type: JsonDecodeError" -string m46s413 "JsonDecodeError" -string m46s414 "json.decode does not support field '" -string m46s415 "json.decode target field must be public: " -string m46s416 "json.decode argument type mismatch: expected " -string m46s417 "json.decode target must be a struct, got " -string m46s418 "json.decode expects 1 argument, got " -string m46s419 "json.decode requires an explicit struct type" -string m46s420 "config.decode does not support field '" -string m46s421 "config.decode target field must be public: " -string m46s422 "config.decode prefix type mismatch: expected String, got " -string m46s423 "config.decode argument type mismatch: expected Config, got " -string m46s424 "unknown type: Config" -string m46s425 "Config" -string m46s426 "config.decode target must be a struct, got " -string m46s427 " argument(s), got " -string m46s428 "config.decode expects " -string m46s429 "config.decode requires an explicit struct type" -string m46s430 "|" -string m46s431 "json.decode type argument must be a concrete struct type" -string m46s432 "config_mod" -string m46s433 "config" -string m46s434 "std.config" -string m46s435 "toml_mod" -string m46s436 "toml" -string m46s437 "std.toml" -string m46s438 "json_mod" -string m46s439 "json" -string m46s440 "std.json" -string m46s441 "unary 'not' requires Bool, got " -string m46s442 "not" -string m46s443 "unary - requires numeric type, got " -string m46s444 "negate" -string m46s445 "pipe type mismatch: function expects " -string m46s446 "' must take exactly 1 parameter" -string m46s447 "pipe target '" -string m46s448 "' is not a function" -string m46s449 "pipe operator requires a function name on the right" -string m46s450 "operator 'or' requires Bool, got " -string m46s451 "or" -string m46s452 "operator 'and' requires Bool, got " -string m46s453 "and" -string m46s454 "operator >= type mismatch: " -string m46s455 "operator >= requires numeric or string type, got " -string m46s456 "gte" -string m46s457 "operator <= type mismatch: " -string m46s458 "operator <= requires numeric or string type, got " -string m46s459 "lte" -string m46s460 "operator > type mismatch: " -string m46s461 "operator > requires numeric or string type, got " -string m46s462 "gt" -string m46s463 "operator < type mismatch: " -string m46s464 "operator < requires numeric or string type, got " -string m46s465 "lt" -string m46s466 "operator != type mismatch: " -string m46s467 "neq" -string m46s468 "operator == type mismatch: " -string m46s469 "eq" -string m46s470 "operator % type mismatch: " -string m46s471 "operator % requires integer type, got " -string m46s472 "mod" -string m46s473 "operator / type mismatch: " -string m46s474 "operator / requires numeric type, got " -string m46s475 "div" -string m46s476 "operator * type mismatch: " -string m46s477 "operator * requires numeric type, got " -string m46s478 "mul" -string m46s479 "operator - type mismatch: " -string m46s480 "operator - requires numeric type, got " -string m46s481 "sub" -string m46s482 "operator + type mismatch: " -string m46s483 "operator + requires numeric type, got " -string m46s484 "pipe" -string m46s485 "undefined variable: " -string m46s486 "import it where it is defined" -string m46s487 "' belongs to another module and is not imported here" -string m46s488 "UInt64" -string m46s489 "UInt32" -string m46s490 "UInt16" -string m46s491 "UInt8" -string m46s492 "Int64" -string m46s493 "Int32" -string m46s494 "Int16" -string m46s495 "Int8" -string m46s496 "UInt" -string m46s497 "primitive" -string m46s498 "await" -string m46s499 "spawn" -string m46s500 "struct_init" -string m46s501 "lambda" -string m46s502 "match_expr" -string m46s503 "select_expr" -string m46s504 "catch_expr" -string m46s505 "try" -string m46s506 "unwrap" -string m46s507 "if_expr" -string m46s508 "string interpolation requires a stringifiable value, got " -string m46s509 "lit" -string m46s510 "interp_spec" -string m46s511 "string_interp" -string m46s512 "grouped" -string m46s513 "unary" -string m46s514 "binary" -string m46s515 "self" -string m46s516 "bool_lit" -string m46s517 "string_lit" -string m46s518 "float_lit" -string m46s519 "int_lit" -string m46s520 "cannot iterate over " -string m46s521 ".." -string m46s522 "range bounds must be Int, got " -string m46s523 "range" -string m46s524 ".next" -string m46s525 "while let" -string m46s526 "if let" -string m46s527 " supports variant patterns and optional bindings" -string m46s528 "E245" -string m46s529 " with a bare binding needs an optional subject, got " -string m46s530 "else" -string m46s531 "then" -string m46s532 "elif" -string m46s533 "fail type mismatch: expected " -string m46s534 "fail requires function to return a result type" -string m46s535 "E234" -string m46s536 "fail outside of function" -string m46s537 "E231" -string m46s538 "change the return type to " -string m46s539 "return type mismatch: expected " -string m46s540 ", got Void" -string m46s541 "return outside of function" -string m46s542 "lambda returns disagree: " -string m46s543 "type mismatch: expected " -string m46s544 " requires numeric type, got " -string m46s545 "operator " -string m46s546 "=" -string m46s547 "declare with 'mut': mut " -string m46s548 "cannot assign to immutable variable '" -string m46s549 "E216" -string m46s550 "try_expr" -string m46s551 "bind" -string m46s552 "binding" -string m46s553 "errdefer" -string m46s554 "defer" -string m46s555 "continue" -string m46s556 "break" -string m46s557 "fail" -string m46s558 "return" -string m46s559 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m46s560 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m46s561 "E260" -string m46s562 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m46s563 "errdefer is only meaningful in a function returning a result (`T!`)" -string m46s564 "errdefer is only allowed inside a function" -string m46s565 "defer is only allowed inside a function" -string m46s566 "continue outside of loop" -string m46s567 "E215" -string m46s568 "break outside of loop" -string m46s569 "for_stmt" -string m46s570 "while_let" -string m46s571 "if_let" -string m46s572 "while_stmt" -string m46s573 "if_stmt" -string m46s574 "assignment" -string m46s575 "mut" -string m46s576 "fn_decl" -string m46s577 "pub" -string m46s578 " is missing associated type: " -string m46s579 " for " -string m46s580 "impl of " -string m46s581 "E229" -string m46s582 " is missing method: " -string m46s583 "E235" -string m46s584 "fn_sig" -string m46s585 "assoc_type_bind" -string m46s586 "for_type" -string m46s587 "test_decl" -string m46s588 "impl_decl" -string m46s589 "threadlocal" -string m46s590 "import" -string m46s591 "from_import" -string m46s592 "assoc_type" -string m46s593 "' is a builtin type name and cannot be used as an enum name" -string m46s594 "E250" -string m46s595 "' must be " -string m46s596 "default for field '" -string m46s597 " weak" -string m46s598 "' is a builtin type name and cannot be used as a struct name" -string m46s599 "' must be an optional struct type (T?)" -string m46s600 "weak field '" -string m46s601 "E249" -string m46s602 "parameter requires a type annotation" -string m46s603 "type_alias" -string m46s604 "interface_decl" -string m46s605 "unknown generic type: " -string m46s606 "Channel expects 1 type argument, got " -string m46s607 "Task expects 1 type argument, got " -string m46s608 "Map expects 2 type arguments, got " -string m46s609 "Set expects 1 type argument, got " -string m46s610 "List expects 1 type argument, got " -string m46s611 "type nesting too deep" -string m46s612 "E233" -string m46s613 "import it from the module that defines it" -string m46s614 "' is not declared by module '" -string m46s615 "E246" -string m46s616 "*" -string m46s617 "" -string m46s618 "fn" -string m46s619 "TypeInfo(" -string m46s620 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" -string m46s621 "name" -string m46s622 ", name: " -string m46s623 "fields" -string m46s624 ", fields: " -string m46s625 "field_types" -string m46s626 ", field_types: " -string m46s627 "field_pub" -string m46s628 ", field_pub: " -string m46s629 "field_mut" -string m46s630 ", field_mut: " -string m46s631 "param_types" -string m46s632 ", param_types: " -string m46s633 "return_type" -string m46s634 ", return_type: " -string m46s635 "inner" -string m46s636 ", inner: " -string m46s637 "key_type" -string m46s638 ", key_type: " -string m46s639 "value_type" -string m46s640 ", value_type: " -string m46s641 "elements" -string m46s642 ", elements: " -string m46s643 "variants" -string m46s644 ", variants: " -string m46s645 "variant_types" -string m46s646 ", variant_types: " -string m46s647 "pith_atomic_int_compare_set" -string m46s648 "pith_atomic_int_set" -string m46s649 "pith_atomic_int_get" -string m46s650 "opaque:AtomicInt" -string m46s651 "pith_task_detach" -string m46s652 "pith_task_is_done" -string m46s653 "pith_channel_is_closed" -string m46s654 "pith_channel_close" -string m46s655 "pith_channel_try_recv" -string m46s656 "pith_channel_recv" -string m46s657 "pith_channel_try_send" -string m46s658 "pith_channel_send" -string m46s659 "pith_channel_cap" -string m46s660 "pith_channel_len" -string m46s661 "identity" -string m46s662 "int_to_string" -string m46s663 "bool_to_string" -string m46s664 "float_to_string" -string m46s665 "task:" -string m46s666 "channel:" -string m46s667 "list:" -string m46s668 "list_string" -string m46s669 "set_int" -string m46s670 "map_int" -string m46s671 "int" -string m46s672 "float" -string m46s673 "bool" -string m46s674 "bytes" -string m46s675 "string" -string m46s676 "set_remove" -string m46s677 "set_remove_int" -string m46s678 "set_clear" -string m46s679 "set_is_empty" -string m46s680 "set_contains" -string m46s681 "set_contains_int" -string m46s682 "set_add" -string m46s683 "set_add_int" -string m46s684 "set_len" -string m46s685 "map_get_opt" -string m46s686 "map_get_ikey_opt" -string m46s687 "map_get_default" -string m46s688 "map_get_default_ikey" -string m46s689 "map_take" -string m46s690 "map_take_ikey" -string m46s691 "map_remove" -string m46s692 "map_remove_ikey" -string m46s693 "map_insert" -string m46s694 "map_insert_ikey" -string m46s695 "map_contains_ikey" -string m46s696 "map_values" -string m46s697 "map_keys" -string m46s698 "map_keys_ikey" -string m46s699 "map_clear" -string m46s700 "map_is_empty" -string m46s701 "map_len" -string m46s702 "pith_list_last_opt" -string m46s703 "pith_list_first_opt" -string m46s704 "pith_list_get_opt" -string m46s705 "list_clear" -string m46s706 "list_reverse" -string m46s707 "list_join" -string m46s708 "list_sort_copy" -string m46s709 "list_sort_strings_copy" -string m46s710 "list_slice_copy" -string m46s711 "list_insert" -string m46s712 "pith_list_len" -string m46s713 "bytes_to_string_utf8" -string m46s714 "bytes_concat" -string m46s715 "bytes_slice" -string m46s716 "bytes_is_empty" -string m46s717 "bytes_len" -string m46s718 "pith_cstring_char_at_opt" -string m46s719 "string_is_empty" -string m46s720 "string_len" -string m46s721 "pith_cstring_eq" -string m46s722 "__str_eq" -string m46s723 "pith_closure_get_env" -string m46s724 "__closure_get_env" -string m46s725 "pith_closure_set_env" -string m46s726 "__closure_set_env" -string m46s727 "pith_struct_alloc" -string m46s728 "__struct_alloc" -string m46s729 "pith_set_to_list_int_handle" -string m46s730 "__set_to_list_int" -string m46s731 "pith_set_to_list_cstr" -string m46s732 "__set_to_list" -string m46s733 "pith_set_new_int" -string m46s734 "__set_new_int" -string m46s735 "pith_set_new_default" -string m46s736 "__set_new" -string m46s737 "pith_cstring_release" -string m46s738 "__cstring_release" -string m46s739 "pith_cstring_retain" -string m46s740 "__cstring_retain" -string m46s741 "pith_map_new_int_cstr_val" -string m46s742 "__map_new_int_str_val" -string m46s743 "pith_map_new_cstr_val" -string m46s744 "__map_new_str_val" -string m46s745 "pith_map_new_int" -string m46s746 "__map_new_int" -string m46s747 "pith_map_new_default" -string m46s748 "__map_new" -string m46s749 "pith_list_push_value" -string m46s750 "__list_push" -string m46s751 "pith_list_new_closure" -string m46s752 "__list_new_closure" -string m46s753 "pith_list_new_bytes" -string m46s754 "__list_new_bytes" -string m46s755 "pith_list_new_struct" -string m46s756 "__list_new_struct" -string m46s757 "pith_list_new_nested_map" -string m46s758 "__list_new_map" -string m46s759 "pith_list_new_nested_list" -string m46s760 "__list_new_list" -string m46s761 "pith_list_new_cstr" -string m46s762 "__list_new_str" -string m46s763 "pith_list_new_default" -string m46s764 "__list_new" -string m46s765 "pith_list_get_value_unchecked" -string m46s766 "__list_get_unchecked" -string m46s767 "pith_list_get_value_strict" -string m46s768 "__list_get_strict" -string m46s769 "pith_list_get_value" -string m46s770 "__index" -string m46s771 "__list_get" -string m46s772 "pith_list_sort_strings" -string m46s773 "sort_strings" -string m46s774 "pith_list_set_value" -string m46s775 "pith_list_pop" -string m46s776 "pop" -string m46s777 "pith_cstring_is_empty" -string m46s778 "pith_cstring_reverse" -string m46s779 "pith_cstring_chars" -string m46s780 "pith_cstring_char_at_strict" -string m46s781 "char_at_strict" -string m46s782 "pith_cstring_char_at" -string m46s783 "char_at" -string m46s784 "pith_cstring_last_index_of" -string m46s785 "string_last_index_of" -string m46s786 "pith_cstring_index_of" -string m46s787 "string_index_of" -string m46s788 "pith_cstring_repeat" -string m46s789 "pith_cstring_replace" -string m46s790 "pith_cstring_to_lower" -string m46s791 "pith_cstring_to_upper" -string m46s792 "pith_string_split_to_list" -string m46s793 "pith_cstring_trim" -string m46s794 "pith_cstring_ends_with" -string m46s795 "pith_cstring_starts_with" -string m46s796 "pith_cstring_substring" -string m46s797 "pith_cstring_contains" -string m46s798 "string_contains" -string m46s799 "pith_auto_len" -string m46s800 "pith_await" -string m46s801 "pith_spawn" -string m46s802 "pith_print_cstr" -string m46s803 "print" -string m46s804 "parse_int" -string m46s805 "result_bool" -string m46s806 "result_int" -string m46s807 "parse_float" -string m46s808 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" -string m46s809 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" -string m46s810 "write_file,append_file,write_file_bytes,append_file_bytes" -string m46s811 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" -string m46s812 "trim,substring,to_upper,to_lower,reverse,replace,repeat,pad_left,pad_right,char_at,join,list_join,list_join_int,read_file,env,chr" -string m46s813 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list_reverse,map_insert,map_insert_ikey,map_remove,map_remove_ikey,map_clear,set_add,set_add_int,set_remove,set_remove_int,set_clear,detach,lock,unlock,done,wait,acquire,release,store" -string m46s814 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" -string m46s815 "sort_strings,zip,enumerate,toml_keys" -string m46s816 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" -string m46s817 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" -string m46s818 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" -string m46s819 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" -string m46s820 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" -string m46s821 "pow,sqrt,floor,ceil,round,to_float,get_float,float_from_bits" -string m46s822 "unknown" -string m46s823 "-" -string m46s824 "closure" -string m46s825 "__" -string m46s826 "std_config_" -string m46s827 "std_json_" -string m46s828 "void" -string m46s829 "load " -string m46s830 "store " -string m46s831 " 0" -string m46s832 "iconst " -string m46s833 "jmp " -string m46s834 "brif " -string m46s835 "match" -string m46s836 "ifexpr" -string m46s837 "field " -string m46s838 "and " -string m46s839 "eq " -string m46s840 " __payload" -string m46s841 " __t" -string m46s842 " 1" -string m46s843 "or " -string m46s844 "lt " -string m46s845 "lte " -string m46s846 "incl" -string m46s847 "gte " -string m46s848 " 0 int __enum_tag" -string m46s849 "ret " -string m46s850 "from_json_file" -string m46s851 "from_json_file_typed_prefix" -string m46s852 "from_toml_file" -string m46s853 "from_toml_file_typed_prefix" -string m46s854 "from_json" -string m46s855 "from_json_typed_prefix" -string m46s856 "from_toml" -string m46s857 "from_toml_typed_prefix" -string m46s858 "pool_restore" -string m46s859 "object_require_object" -string m46s860 "json_file_parts_idx" -string m46s861 "json_file_parts_len" -string m46s862 "json_file_parts" -string m46s863 "json_file_current" -string m46s864 "require_object_handle" -string m46s865 "parse_file" -string m46s866 "pool_mark_array_len" -string m46s867 "pool_mark_node_id" -string m46s868 "json_decode_file_path" -string m46s869 "json_decode_file" -string m46s870 "json_parts_idx" -string m46s871 "json_parts_len" -string m46s872 "json_parts" -string m46s873 "json_current" -string m46s874 "parse" -string m46s875 "json_decode_path" -string m46s876 "json_decode_object" -string m46s877 "endfunc" -string m46s878 " dotted_path" -string m46s879 " handle" -string m46s880 "parse_bytes_required" -string m46s881 "json_decode" -string m46s882 " input" -string m46s883 "struct:" -string m46s884 "json_object_default_field" -string m46s885 "json_object_optional_field" -string m46s886 "json_object_default_struct_field" -string m46s887 "json_object_optional_struct_field" -string m46s888 "strref " -string m46s889 "object_has" -string m46s890 "json_nested_decode" -string m46s891 "decode_object" -string m46s892 "std_bytes_from_string_utf8" -string m46s893 "json_decode_nested" -string m46s894 "json_default_field" -string m46s895 "json_optional_field" -string m46s896 "std_json_decode_scalars_bytes" -string m46s897 "pith_json_decode_missing_error" -string m46s898 "pith_struct_release" -string m46s899 "pith_json_fill_struct" -string m46s900 "pith_struct_set_dtor" -string m46s901 " __dtor_" -string m46s902 "funcref " -string m46s903 "s" -string m46s904 "toml_require_table" -string m46s905 "toml_file_parts_idx" -string m46s906 "toml_file_parts_len" -string m46s907 "toml_file_parts" -string m46s908 "toml_file_current" -string m46s909 "parse_file_required" -string m46s910 "pool_mark_table_len" -string m46s911 "toml_decode_file_path" -string m46s912 "toml_decode_file" -string m46s913 "toml_parts_idx" -string m46s914 "toml_parts_len" -string m46s915 "toml_parts" -string m46s916 "toml_current" -string m46s917 "parse_required" -string m46s918 "toml_decode_path" -string m46s919 "std_toml_parse_required" -string m46s920 "toml_decode" -string m46s921 "toml_default_field" -string m46s922 "has" -string m46s923 "toml_optional_field" -string m46s924 "toml_default_struct_field" -string m46s925 "toml_optional_struct_field" -string m46s926 "config_loader_decode" -string m46s927 "config_decode" -string m46s928 "decode_path" -string m46s929 "toml_decode_text_path" -string m46s930 "toml_decode_text" -string m46s931 "current" -string m46s932 "__for_idx_toml_path" -string m46s933 "__for_len_toml_path" -string m46s934 "__for_iter_toml_path" -string m46s935 "handle" -string m46s936 "toml_spec_default_field" -string m46s937 "toml_spec_optional_field" -string m46s938 "toml_spec_default_struct_field" -string m46s939 "toml_spec_optional_struct_field" -string m46s940 "config_default_field" -string m46s941 "config_optional_field" -string m46s942 "config_default_struct_field" -string m46s943 "has_prefix" -string m46s944 "config_optional_struct_field" -string m46s945 " prefix" -string m46s946 " cfg" -string m46s947 "config_spec_default_field" -string m46s948 "std_config_has" -string m46s949 "config_spec_optional_field" -string m46s950 "config_spec_default_struct_field" -string m46s951 "std_config_has_prefix" -string m46s952 "config_spec_optional_struct_field" -string m46s953 "std_config_dotted_key" -string m46s954 "dotted_key" -string m46s955 "toml_nested_decode" -string m46s956 "toml_pool_array_mark" -string m46s957 "toml_pool_table_mark" -string m46s958 "toml_pool_node_mark" -string m46s959 "json_pool_array_mark" -string m46s960 "json_pool_node_mark" -string m46s961 "IrJsonPoolMark(" -string m46s962 "snode_id_var,sarray_len_var" -string m46s963 "node_id_var" -string m46s964 "node_id_var: " -string m46s965 "array_len_var" -string m46s966 ", array_len_var: " -string m46s967 "IrTomlPoolMark(" -string m46s968 "snode_id_var,stable_len_var,sarray_len_var" -string m46s969 "table_len_var" -string m46s970 ", table_len_var: " -string m46s971 "IrDecodeFieldBranch(" -string m46s972 "sfield_temp,spresent_l,smerge_l" -string m46s973 "field_temp" -string m46s974 "field_temp: " -string m46s975 "present_l" -string m46s976 ", present_l: " -string m46s977 "merge_l" -string m46s978 ", merge_l: " -string m46s979 "IrDecodeFieldValue(" -string m46s980 "bok,ivalue_r" -string m46s981 "ok: " -string m46s982 "value_r" -string m46s983 ", value_r: " -string m46s984 "label " -string m46s985 "pith_closure_release" -string m46s986 "pith_bytes_release" -string m46s987 "pith_set_release_handle" -string m46s988 "pith_map_release_handle" -string m46s989 "pith_list_release_handle" -string m46s990 "pith_closure_retain" -string m46s991 "pith_struct_retain" -string m46s992 "pith_bytes_retain" -string m46s993 "pith_set_retain_handle" -string m46s994 "pith_map_retain_handle" -string m46s995 "pith_list_retain_handle" -string m46s996 "a" -string m46s997 "TypeInfo" -string m46s998 "get_type_info" -string m46s999 "ti_channel" -string m46s1000 "ti_task" -string m46s1001 "ti_set" -string m46s1002 "ti_map" -string m46s1003 "ti_list" -string m46s1004 "ti_tuple" -string m46s1005 "ti_result" -string m46s1006 "ti_optional" -string m46s1007 "ti_function" -string m46s1008 "ti_enum" -string m46s1009 "ti_struct" -string m46s1010 "ti_primitive" -string m46s1011 "Token" -string m46s1012 "expect" -string m46s1013 "advance_token" -string m46s1014 "Node" -string m46s1015 "get_node" -string m46s1016 "L" -string m46s1017 "string " -string m46s1018 "m" -string m46s1019 "IrBuilderSnapshot(" -string m46s1020 "inext_reg,lines" -string m46s1021 "next_reg" -string m46s1022 "next_reg: " -string m46s1023 "lines" -string m46s1024 ", lines: " -string m46s1025 "str_lit" -string m46s1026 " ok" -string m46s1027 " 8 " -string m46s1028 " failed" -string m46s1029 " 0 bool is_ok" -string m46s1030 "sub " -string m46s1031 "add " -string m46s1032 " pith_struct_set_dtor void 2 " -string m46s1033 "call " -string m46s1034 " __opt_dtor_" -string m46s1035 "neq " -string m46s1036 " pith_struct_weak_load int 1 " -string m46s1037 " 1 " -string m46s1038 "sstore " -string m46s1039 " 0 " -string m46s1040 " 2" -string m46s1041 " bool 2 " -string m46s1042 " value" -string m46s1043 " 0 bool is_some" -string m46s1044 "fconst " -string m46s1045 "not_op" -string m46s1046 "!" -string m46s1047 "integer" -string m46s1048 "opaque:" -string m46s1049 "Set[UInt64]" -string m46s1050 "Set[UInt32]" -string m46s1051 "Set[UInt16]" -string m46s1052 "Set[UInt8]" -string m46s1053 "Set[Int64]" -string m46s1054 "Set[Int32]" -string m46s1055 "Set[Int16]" -string m46s1056 "Set[Int8]" -string m46s1057 "Set[UInt]" -string m46s1058 "Set[Int]" -string m46s1059 "Map[Int, " -string m46s1060 "Map[Int," -string m46s1061 "List[String]" -string m46s1062 "std_toml_require_bool" -string m46s1063 "std_toml_require_int" -string m46s1064 "std_toml_require_string" -string m46s1065 "require_bool" -string m46s1066 "require_int" +string m46s404 " does not support field '" +string m46s405 " target field must be public: " +string m46s406 " argument type mismatch: expected " +string m46s407 " target must be a struct, got " +string m46s408 " requires an explicit struct type" +string m46s409 ".decode" +string m46s410 "unknown type: JsonDecodeError" +string m46s411 "JsonDecodeError" +string m46s412 "json.decode does not support field '" +string m46s413 "json.decode target field must be public: " +string m46s414 "json.decode argument type mismatch: expected " +string m46s415 "json.decode target must be a struct, got " +string m46s416 "json.decode expects 1 argument, got " +string m46s417 "json.decode requires an explicit struct type" +string m46s418 "config.decode does not support field '" +string m46s419 "config.decode target field must be public: " +string m46s420 "config.decode prefix type mismatch: expected String, got " +string m46s421 "config.decode argument type mismatch: expected Config, got " +string m46s422 "unknown type: Config" +string m46s423 "Config" +string m46s424 "config.decode target must be a struct, got " +string m46s425 " argument(s), got " +string m46s426 "config.decode expects " +string m46s427 "config.decode requires an explicit struct type" +string m46s428 "|" +string m46s429 "json.decode type argument must be a concrete struct type" +string m46s430 "config_mod" +string m46s431 "config" +string m46s432 "std.config" +string m46s433 "TomlDecodeError" +string m46s434 "YamlDecodeError" +string m46s435 "yaml" +string m46s436 "yaml_mod" +string m46s437 "toml" +string m46s438 "toml_mod" +string m46s439 "std.yaml" +string m46s440 "std.toml" +string m46s441 "json_mod" +string m46s442 "json" +string m46s443 "std.json" +string m46s444 "unary 'not' requires Bool, got " +string m46s445 "not" +string m46s446 "unary - requires numeric type, got " +string m46s447 "negate" +string m46s448 "pipe type mismatch: function expects " +string m46s449 "' must take exactly 1 parameter" +string m46s450 "pipe target '" +string m46s451 "' is not a function" +string m46s452 "pipe operator requires a function name on the right" +string m46s453 "operator 'or' requires Bool, got " +string m46s454 "or" +string m46s455 "operator 'and' requires Bool, got " +string m46s456 "and" +string m46s457 "operator >= type mismatch: " +string m46s458 "operator >= requires numeric or string type, got " +string m46s459 "gte" +string m46s460 "operator <= type mismatch: " +string m46s461 "operator <= requires numeric or string type, got " +string m46s462 "lte" +string m46s463 "operator > type mismatch: " +string m46s464 "operator > requires numeric or string type, got " +string m46s465 "gt" +string m46s466 "operator < type mismatch: " +string m46s467 "operator < requires numeric or string type, got " +string m46s468 "lt" +string m46s469 "operator != type mismatch: " +string m46s470 "neq" +string m46s471 "operator == type mismatch: " +string m46s472 "eq" +string m46s473 "operator % type mismatch: " +string m46s474 "operator % requires integer type, got " +string m46s475 "mod" +string m46s476 "operator / type mismatch: " +string m46s477 "operator / requires numeric type, got " +string m46s478 "div" +string m46s479 "operator * type mismatch: " +string m46s480 "operator * requires numeric type, got " +string m46s481 "mul" +string m46s482 "operator - type mismatch: " +string m46s483 "operator - requires numeric type, got " +string m46s484 "sub" +string m46s485 "operator + type mismatch: " +string m46s486 "operator + requires numeric type, got " +string m46s487 "pipe" +string m46s488 "undefined variable: " +string m46s489 "import it where it is defined" +string m46s490 "' belongs to another module and is not imported here" +string m46s491 "UInt64" +string m46s492 "UInt32" +string m46s493 "UInt16" +string m46s494 "UInt8" +string m46s495 "Int64" +string m46s496 "Int32" +string m46s497 "Int16" +string m46s498 "Int8" +string m46s499 "UInt" +string m46s500 "primitive" +string m46s501 "await" +string m46s502 "spawn" +string m46s503 "struct_init" +string m46s504 "lambda" +string m46s505 "match_expr" +string m46s506 "select_expr" +string m46s507 "catch_expr" +string m46s508 "try" +string m46s509 "unwrap" +string m46s510 "if_expr" +string m46s511 "string interpolation requires a stringifiable value, got " +string m46s512 "lit" +string m46s513 "interp_spec" +string m46s514 "string_interp" +string m46s515 "grouped" +string m46s516 "unary" +string m46s517 "binary" +string m46s518 "self" +string m46s519 "bool_lit" +string m46s520 "string_lit" +string m46s521 "float_lit" +string m46s522 "int_lit" +string m46s523 "cannot iterate over " +string m46s524 ".." +string m46s525 "range bounds must be Int, got " +string m46s526 "range" +string m46s527 ".next" +string m46s528 "while let" +string m46s529 "if let" +string m46s530 " supports variant patterns and optional bindings" +string m46s531 "E245" +string m46s532 " with a bare binding needs an optional subject, got " +string m46s533 "else" +string m46s534 "then" +string m46s535 "elif" +string m46s536 "fail type mismatch: expected " +string m46s537 "fail requires function to return a result type" +string m46s538 "E234" +string m46s539 "fail outside of function" +string m46s540 "E231" +string m46s541 "change the return type to " +string m46s542 "return type mismatch: expected " +string m46s543 ", got Void" +string m46s544 "return outside of function" +string m46s545 "lambda returns disagree: " +string m46s546 "type mismatch: expected " +string m46s547 " requires numeric type, got " +string m46s548 "operator " +string m46s549 "=" +string m46s550 "declare with 'mut': mut " +string m46s551 "cannot assign to immutable variable '" +string m46s552 "E216" +string m46s553 "try_expr" +string m46s554 "bind" +string m46s555 "binding" +string m46s556 "errdefer" +string m46s557 "defer" +string m46s558 "continue" +string m46s559 "break" +string m46s560 "fail" +string m46s561 "return" +string m46s562 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m46s563 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m46s564 "E260" +string m46s565 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m46s566 "errdefer is only meaningful in a function returning a result (`T!`)" +string m46s567 "errdefer is only allowed inside a function" +string m46s568 "defer is only allowed inside a function" +string m46s569 "continue outside of loop" +string m46s570 "E215" +string m46s571 "break outside of loop" +string m46s572 "for_stmt" +string m46s573 "while_let" +string m46s574 "if_let" +string m46s575 "while_stmt" +string m46s576 "if_stmt" +string m46s577 "assignment" +string m46s578 "mut" +string m46s579 "fn_decl" +string m46s580 "pub" +string m46s581 " is missing associated type: " +string m46s582 " for " +string m46s583 "impl of " +string m46s584 "E229" +string m46s585 " is missing method: " +string m46s586 "E235" +string m46s587 "fn_sig" +string m46s588 "assoc_type_bind" +string m46s589 "for_type" +string m46s590 "test_decl" +string m46s591 "impl_decl" +string m46s592 "threadlocal" +string m46s593 "import" +string m46s594 "from_import" +string m46s595 "assoc_type" +string m46s596 "' is a builtin type name and cannot be used as an enum name" +string m46s597 "E250" +string m46s598 "' must be " +string m46s599 "default for field '" +string m46s600 " weak" +string m46s601 "' is a builtin type name and cannot be used as a struct name" +string m46s602 "' must be an optional struct type (T?)" +string m46s603 "weak field '" +string m46s604 "E249" +string m46s605 "parameter requires a type annotation" +string m46s606 "type_alias" +string m46s607 "interface_decl" +string m46s608 "unknown generic type: " +string m46s609 "Channel expects 1 type argument, got " +string m46s610 "Task expects 1 type argument, got " +string m46s611 "Map expects 2 type arguments, got " +string m46s612 "Set expects 1 type argument, got " +string m46s613 "List expects 1 type argument, got " +string m46s614 "type nesting too deep" +string m46s615 "E233" +string m46s616 "import it from the module that defines it" +string m46s617 "' is not declared by module '" +string m46s618 "E246" +string m46s619 "*" +string m46s620 "" +string m46s621 "fn" +string m46s622 "TypeInfo(" +string m46s623 "skind,sname,fields,field_types,field_pub,field_mut,param_types,ireturn_type,iinner,ikey_type,ivalue_type,elements,variants,variant_types" +string m46s624 "name" +string m46s625 ", name: " +string m46s626 "fields" +string m46s627 ", fields: " +string m46s628 "field_types" +string m46s629 ", field_types: " +string m46s630 "field_pub" +string m46s631 ", field_pub: " +string m46s632 "field_mut" +string m46s633 ", field_mut: " +string m46s634 "param_types" +string m46s635 ", param_types: " +string m46s636 "return_type" +string m46s637 ", return_type: " +string m46s638 "inner" +string m46s639 ", inner: " +string m46s640 "key_type" +string m46s641 ", key_type: " +string m46s642 "value_type" +string m46s643 ", value_type: " +string m46s644 "elements" +string m46s645 ", elements: " +string m46s646 "variants" +string m46s647 ", variants: " +string m46s648 "variant_types" +string m46s649 ", variant_types: " +string m46s650 "pith_atomic_int_compare_set" +string m46s651 "pith_atomic_int_set" +string m46s652 "pith_atomic_int_get" +string m46s653 "opaque:AtomicInt" +string m46s654 "pith_task_detach" +string m46s655 "pith_task_is_done" +string m46s656 "pith_channel_is_closed" +string m46s657 "pith_channel_close" +string m46s658 "pith_channel_try_recv" +string m46s659 "pith_channel_recv" +string m46s660 "pith_channel_try_send" +string m46s661 "pith_channel_send" +string m46s662 "pith_channel_cap" +string m46s663 "pith_channel_len" +string m46s664 "identity" +string m46s665 "int_to_string" +string m46s666 "bool_to_string" +string m46s667 "float_to_string" +string m46s668 "task:" +string m46s669 "channel:" +string m46s670 "list:" +string m46s671 "list_string" +string m46s672 "set_int" +string m46s673 "map_int" +string m46s674 "int" +string m46s675 "float" +string m46s676 "bool" +string m46s677 "bytes" +string m46s678 "string" +string m46s679 "set_remove" +string m46s680 "set_remove_int" +string m46s681 "set_clear" +string m46s682 "set_is_empty" +string m46s683 "set_contains" +string m46s684 "set_contains_int" +string m46s685 "set_add" +string m46s686 "set_add_int" +string m46s687 "set_len" +string m46s688 "map_get_opt" +string m46s689 "map_get_ikey_opt" +string m46s690 "map_get_default" +string m46s691 "map_get_default_ikey" +string m46s692 "map_take" +string m46s693 "map_take_ikey" +string m46s694 "map_remove" +string m46s695 "map_remove_ikey" +string m46s696 "map_insert" +string m46s697 "map_insert_ikey" +string m46s698 "map_contains_ikey" +string m46s699 "map_values" +string m46s700 "map_keys" +string m46s701 "map_keys_ikey" +string m46s702 "map_clear" +string m46s703 "map_is_empty" +string m46s704 "map_len" +string m46s705 "pith_list_last_opt" +string m46s706 "pith_list_first_opt" +string m46s707 "pith_list_get_opt" +string m46s708 "list_clear" +string m46s709 "list_reverse" +string m46s710 "list_join" +string m46s711 "list_sort_copy" +string m46s712 "list_sort_strings_copy" +string m46s713 "list_slice_copy" +string m46s714 "list_insert" +string m46s715 "pith_list_len" +string m46s716 "bytes_to_string_utf8" +string m46s717 "bytes_concat" +string m46s718 "bytes_slice" +string m46s719 "bytes_is_empty" +string m46s720 "bytes_len" +string m46s721 "pith_cstring_char_at_opt" +string m46s722 "string_is_empty" +string m46s723 "string_len" +string m46s724 "pith_cstring_eq" +string m46s725 "__str_eq" +string m46s726 "pith_closure_get_env" +string m46s727 "__closure_get_env" +string m46s728 "pith_closure_set_env" +string m46s729 "__closure_set_env" +string m46s730 "pith_struct_alloc" +string m46s731 "__struct_alloc" +string m46s732 "pith_set_to_list_int_handle" +string m46s733 "__set_to_list_int" +string m46s734 "pith_set_to_list_cstr" +string m46s735 "__set_to_list" +string m46s736 "pith_set_new_int" +string m46s737 "__set_new_int" +string m46s738 "pith_set_new_default" +string m46s739 "__set_new" +string m46s740 "pith_cstring_release" +string m46s741 "__cstring_release" +string m46s742 "pith_cstring_retain" +string m46s743 "__cstring_retain" +string m46s744 "pith_map_new_int_cstr_val" +string m46s745 "__map_new_int_str_val" +string m46s746 "pith_map_new_cstr_val" +string m46s747 "__map_new_str_val" +string m46s748 "pith_map_new_int" +string m46s749 "__map_new_int" +string m46s750 "pith_map_new_default" +string m46s751 "__map_new" +string m46s752 "pith_list_push_value" +string m46s753 "__list_push" +string m46s754 "pith_list_new_closure" +string m46s755 "__list_new_closure" +string m46s756 "pith_list_new_bytes" +string m46s757 "__list_new_bytes" +string m46s758 "pith_list_new_struct" +string m46s759 "__list_new_struct" +string m46s760 "pith_list_new_nested_map" +string m46s761 "__list_new_map" +string m46s762 "pith_list_new_nested_list" +string m46s763 "__list_new_list" +string m46s764 "pith_list_new_cstr" +string m46s765 "__list_new_str" +string m46s766 "pith_list_new_default" +string m46s767 "__list_new" +string m46s768 "pith_list_get_value_unchecked" +string m46s769 "__list_get_unchecked" +string m46s770 "pith_list_get_value_strict" +string m46s771 "__list_get_strict" +string m46s772 "pith_list_get_value" +string m46s773 "__index" +string m46s774 "__list_get" +string m46s775 "pith_list_sort_strings" +string m46s776 "sort_strings" +string m46s777 "pith_list_set_value" +string m46s778 "pith_list_pop" +string m46s779 "pop" +string m46s780 "pith_cstring_is_empty" +string m46s781 "pith_cstring_reverse" +string m46s782 "pith_cstring_chars" +string m46s783 "pith_cstring_char_at_strict" +string m46s784 "char_at_strict" +string m46s785 "pith_cstring_char_at" +string m46s786 "char_at" +string m46s787 "pith_cstring_last_index_of" +string m46s788 "string_last_index_of" +string m46s789 "pith_cstring_index_of" +string m46s790 "string_index_of" +string m46s791 "pith_cstring_repeat" +string m46s792 "pith_cstring_replace" +string m46s793 "pith_cstring_to_lower" +string m46s794 "pith_cstring_to_upper" +string m46s795 "pith_string_split_to_list" +string m46s796 "pith_cstring_trim" +string m46s797 "pith_cstring_ends_with" +string m46s798 "pith_cstring_starts_with" +string m46s799 "pith_cstring_substring" +string m46s800 "pith_cstring_contains" +string m46s801 "string_contains" +string m46s802 "pith_auto_len" +string m46s803 "pith_await" +string m46s804 "pith_spawn" +string m46s805 "pith_print_cstr" +string m46s806 "print" +string m46s807 "parse_int" +string m46s808 "result_bool" +string m46s809 "result_int" +string m46s810 "parse_float" +string m46s811 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m46s812 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" +string m46s813 "write_file,append_file,write_file_bytes,append_file_bytes" +string m46s814 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" +string m46s815 "trim,substring,to_upper,to_lower,reverse,replace,repeat,pad_left,pad_right,char_at,join,list_join,list_join_int,read_file,env,chr" +string m46s816 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list_reverse,map_insert,map_insert_ikey,map_remove,map_remove_ikey,map_clear,set_add,set_add_int,set_remove,set_remove_int,set_clear,detach,lock,unlock,done,wait,acquire,release,store" +string m46s817 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" +string m46s818 "sort_strings,zip,enumerate,toml_keys" +string m46s819 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" +string m46s820 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m46s821 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" +string m46s822 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" +string m46s823 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" +string m46s824 "pow,sqrt,floor,ceil,round,to_float,get_float,float_from_bits" +string m46s825 "unknown" +string m46s826 "-" +string m46s827 "closure" +string m46s828 "__" +string m46s829 "std_config_" +string m46s830 "std_json_" +string m46s831 "void" +string m46s832 "load " +string m46s833 "store " +string m46s834 " 0" +string m46s835 "iconst " +string m46s836 "jmp " +string m46s837 "brif " +string m46s838 "match" +string m46s839 "ifexpr" +string m46s840 "field " +string m46s841 "and " +string m46s842 "eq " +string m46s843 " __payload" +string m46s844 " __t" +string m46s845 " 1" +string m46s846 "or " +string m46s847 "lt " +string m46s848 "lte " +string m46s849 "incl" +string m46s850 "gte " +string m46s851 " 0 int __enum_tag" +string m46s852 "ret " +string m46s853 "from_json_file" +string m46s854 "from_json_file_typed_prefix" +string m46s855 "from_toml_file" +string m46s856 "from_toml_file_typed_prefix" +string m46s857 "from_json" +string m46s858 "from_json_typed_prefix" +string m46s859 "from_toml" +string m46s860 "from_toml_typed_prefix" +string m46s861 "pool_restore" +string m46s862 "object_require_object" +string m46s863 "json_file_parts_idx" +string m46s864 "json_file_parts_len" +string m46s865 "json_file_parts" +string m46s866 "json_file_current" +string m46s867 "require_object_handle" +string m46s868 "parse_file" +string m46s869 "pool_mark_array_len" +string m46s870 "pool_mark_node_id" +string m46s871 "json_decode_file_path" +string m46s872 "json_decode_file" +string m46s873 "json_parts_idx" +string m46s874 "json_parts_len" +string m46s875 "json_parts" +string m46s876 "json_current" +string m46s877 "parse" +string m46s878 "json_decode_path" +string m46s879 "json_decode_object" +string m46s880 "endfunc" +string m46s881 " dotted_path" +string m46s882 " handle" +string m46s883 "parse_bytes_required" +string m46s884 "json_decode" +string m46s885 " input" +string m46s886 "struct:" +string m46s887 "json_object_default_field" +string m46s888 "json_object_optional_field" +string m46s889 "json_object_default_struct_field" +string m46s890 "json_object_optional_struct_field" +string m46s891 "strref " +string m46s892 "object_has" +string m46s893 "json_nested_decode" +string m46s894 "decode_object" +string m46s895 "std_bytes_from_string_utf8" +string m46s896 "json_decode_nested" +string m46s897 "json_default_field" +string m46s898 "json_optional_field" +string m46s899 "std_json_decode_scalars_bytes" +string m46s900 "pith_json_decode_missing_error" +string m46s901 "pith_struct_release" +string m46s902 "pith_json_fill_struct" +string m46s903 "pith_struct_set_dtor" +string m46s904 " __dtor_" +string m46s905 "funcref " +string m46s906 "s" +string m46s907 "require_table" +string m46s908 "handle_decode_file_parts_idx" +string m46s909 "handle_decode_file_parts_len" +string m46s910 "handle_decode_file_parts" +string m46s911 "handle_decode_file_current" +string m46s912 "parse_file_required" +string m46s913 "pool_mark_table_len" +string m46s914 "handle_decode_file_path" +string m46s915 "handle_decode_file" +string m46s916 "handle_decode_parts_idx" +string m46s917 "handle_decode_parts_len" +string m46s918 "handle_decode_parts" +string m46s919 "handle_decode_current" +string m46s920 "parse_required" +string m46s921 "handle_decode_path" +string m46s922 "handle_decode" +string m46s923 "handle_default_field" +string m46s924 "has" +string m46s925 "handle_optional_field" +string m46s926 "handle_default_struct_field" +string m46s927 "handle_optional_struct_field" +string m46s928 "config_loader_decode" +string m46s929 "config_decode" +string m46s930 "decode_path" +string m46s931 "handle_decode_text_path" +string m46s932 "handle_decode_text" +string m46s933 "current" +string m46s934 "__for_idx_handle_path" +string m46s935 "__for_len_handle_path" +string m46s936 "__for_iter_handle_path" +string m46s937 "handle" +string m46s938 "handle_spec_default_field" +string m46s939 "handle_spec_optional_field" +string m46s940 "handle_spec_default_struct_field" +string m46s941 "handle_spec_optional_struct_field" +string m46s942 "config_default_field" +string m46s943 "config_optional_field" +string m46s944 "config_default_struct_field" +string m46s945 "has_prefix" +string m46s946 "config_optional_struct_field" +string m46s947 " prefix" +string m46s948 " cfg" +string m46s949 "config_spec_default_field" +string m46s950 "std_config_has" +string m46s951 "config_spec_optional_field" +string m46s952 "config_spec_default_struct_field" +string m46s953 "std_config_has_prefix" +string m46s954 "config_spec_optional_struct_field" +string m46s955 "std_config_dotted_key" +string m46s956 "dotted_key" +string m46s957 "handle_nested_decode" +string m46s958 "handle_pool_array_mark" +string m46s959 "handle_pool_table_mark" +string m46s960 "handle_pool_node_mark" +string m46s961 "json_pool_array_mark" +string m46s962 "json_pool_node_mark" +string m46s963 "IrJsonPoolMark(" +string m46s964 "snode_id_var,sarray_len_var" +string m46s965 "node_id_var" +string m46s966 "node_id_var: " +string m46s967 "array_len_var" +string m46s968 ", array_len_var: " +string m46s969 "IrHandlePoolMark(" +string m46s970 "snode_id_var,stable_len_var,sarray_len_var" +string m46s971 "table_len_var" +string m46s972 ", table_len_var: " +string m46s973 "IrDecodeFieldBranch(" +string m46s974 "sfield_temp,spresent_l,smerge_l" +string m46s975 "field_temp" +string m46s976 "field_temp: " +string m46s977 "present_l" +string m46s978 ", present_l: " +string m46s979 "merge_l" +string m46s980 ", merge_l: " +string m46s981 "IrDecodeFieldValue(" +string m46s982 "bok,ivalue_r" +string m46s983 "ok: " +string m46s984 "value_r" +string m46s985 ", value_r: " +string m46s986 "label " +string m46s987 "pith_closure_release" +string m46s988 "pith_bytes_release" +string m46s989 "pith_set_release_handle" +string m46s990 "pith_map_release_handle" +string m46s991 "pith_list_release_handle" +string m46s992 "pith_closure_retain" +string m46s993 "pith_struct_retain" +string m46s994 "pith_bytes_retain" +string m46s995 "pith_set_retain_handle" +string m46s996 "pith_map_retain_handle" +string m46s997 "pith_list_retain_handle" +string m46s998 "a" +string m46s999 "TypeInfo" +string m46s1000 "get_type_info" +string m46s1001 "ti_channel" +string m46s1002 "ti_task" +string m46s1003 "ti_set" +string m46s1004 "ti_map" +string m46s1005 "ti_list" +string m46s1006 "ti_tuple" +string m46s1007 "ti_result" +string m46s1008 "ti_optional" +string m46s1009 "ti_function" +string m46s1010 "ti_enum" +string m46s1011 "ti_struct" +string m46s1012 "ti_primitive" +string m46s1013 "Token" +string m46s1014 "expect" +string m46s1015 "advance_token" +string m46s1016 "Node" +string m46s1017 "get_node" +string m46s1018 "L" +string m46s1019 "string " +string m46s1020 "m" +string m46s1021 "IrBuilderSnapshot(" +string m46s1022 "inext_reg,lines" +string m46s1023 "next_reg" +string m46s1024 "next_reg: " +string m46s1025 "lines" +string m46s1026 ", lines: " +string m46s1027 "str_lit" +string m46s1028 " ok" +string m46s1029 " 8 " +string m46s1030 " failed" +string m46s1031 " 0 bool is_ok" +string m46s1032 "sub " +string m46s1033 "add " +string m46s1034 " pith_struct_set_dtor void 2 " +string m46s1035 "call " +string m46s1036 " __opt_dtor_" +string m46s1037 "neq " +string m46s1038 " pith_struct_weak_load int 1 " +string m46s1039 " 1 " +string m46s1040 "sstore " +string m46s1041 " 0 " +string m46s1042 " 2" +string m46s1043 " bool 2 " +string m46s1044 " value" +string m46s1045 " 0 bool is_some" +string m46s1046 "fconst " +string m46s1047 "not_op" +string m46s1048 "!" +string m46s1049 "integer" +string m46s1050 "opaque:" +string m46s1051 "Set[UInt64]" +string m46s1052 "Set[UInt32]" +string m46s1053 "Set[UInt16]" +string m46s1054 "Set[UInt8]" +string m46s1055 "Set[Int64]" +string m46s1056 "Set[Int32]" +string m46s1057 "Set[Int16]" +string m46s1058 "Set[Int8]" +string m46s1059 "Set[UInt]" +string m46s1060 "Set[Int]" +string m46s1061 "Map[Int, " +string m46s1062 "Map[Int," +string m46s1063 "List[String]" +string m46s1064 "require_bool" +string m46s1065 "require_int" +string m46s1066 "require_string" string m46s1067 "require" string m46s1068 "std_json_scalar_has_bool" string m46s1069 "std_json_scalar_has_int" @@ -121404,282 +121619,279 @@ string m46s1084 "input" string m46s1085 "std_json_decode" string m46s1086 "std_json_decode_text" string m46s1087 "std_json_decode_object" -string m46s1088 "std_toml_decode_text" -string m46s1089 "decode_text_path" -string m46s1090 "std_toml_decode_text_path" -string m46s1091 "std_toml_decode_path" -string m46s1092 "std_toml_decode" -string m46s1093 "cfg" -string m46s1094 "std_config_decode" -string m46s1095 "prefix" -string m46s1096 "std_config_decode_prefix" -string m46s1097 "std/config" -string m46s1098 "require_string" -string m46s1099 "std_config_require_bool" -string m46s1100 "std_config_require_int" -string m46s1101 "std_config_require" -string m46s1102 "ResolvedCallee(" -string m46s1103 "sname,bimported" -string m46s1104 "name: " -string m46s1105 "imported" -string m46s1106 ", imported: " -string m46s1107 "tcp_read2" -string m46s1108 "tcp_read" -string m46s1109 "IrIfBranch(" -string m46s1110 "icond_idx,ibody_idx" -string m46s1111 "cond_idx" -string m46s1112 "cond_idx: " -string m46s1113 "body_idx" -string m46s1114 ", body_idx: " -string m46s1115 "IrForBindingNames(" -string m46s1116 "svalue_name,sindex_name" -string m46s1117 "value_name" -string m46s1118 "value_name: " -string m46s1119 "index_name" -string m46s1120 ", index_name: " -string m46s1121 "IrBindParts(" -string m46s1122 "sname,ival_idx,itype_idx" -string m46s1123 "val_idx" -string m46s1124 ", val_idx: " -string m46s1125 "type_idx" -string m46s1126 ", type_idx: " -string m46s1127 "map_int_str_val" -string m46s1128 "map_str_val" -string m46s1129 "char" -string m46s1130 "map_get_strict" -string m46s1131 "map_get_ikey_strict" -string m46s1132 "bytes_get_strict" -string m46s1133 "/=" -string m46s1134 "*=" -string m46s1135 "-=" -string m46s1136 "+=" -string m46s1137 "shr" -string m46s1138 "shl" -string m46s1139 "bxor" -string m46s1140 "bit_xor" -string m46s1141 "bor" -string m46s1142 "bit_or" -string m46s1143 "band" -string m46s1144 "bit_and" -string m46s1145 "f" -string m46s1146 "bnot " -string m46s1147 "~" -string m46s1148 "bit_not" -string m46s1149 "neg" -string m46s1150 " -1" -string m46s1151 "pith_list_push_value_owned" -string m46s1152 " 2 " -string m46s1153 "struct:tuple" -string m46s1154 " 3" -string m46s1155 "parse_int,file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,write_file,append_file,write_file_bytes,append_file_bytes,read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err,read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" -string m46s1156 "main" -string m46s1157 "__init_globals" -string m46s1158 "__enum_eq_" -string m46s1159 " unknown __p" -string m46s1160 " b" -string m46s1161 " a" -string m46s1162 "param b" -string m46s1163 "param a" -string m46s1164 " unknown __tuple_" -string m46s1165 " p" -string m46s1166 "param p" -string m46s1167 "__dtor_" -string m46s1168 " unknown " -string m46s1169 " pith_struct_weak_release void 1 " -string m46s1170 " 8 unknown value" -string m46s1171 "__opt_dtor_" -string m46s1172 " pith_tls_set void 2 " -string m46s1173 " pith_tls_get_or_init " -string m46s1174 " __tlsinit_" -string m46s1175 "__tlsinit_" -string m46s1176 "global " -string m46s1177 "str:" -string m46s1178 "struct_alias " -string m46s1179 "exit" -string m46s1180 "pith_test_summary" -string m46s1181 "pith_test_record" -string m46s1182 "pith_test_child_ok" -string m46s1183 "__test_" -string m46s1184 "pith_test_enter" -string m46s1185 "pith_test_fork" -string m46s1186 "pith_test_should_run" -string m46s1187 "param " -string m46s1188 "for" -string m46s1189 "while" -string m46s1190 "if" -string m46s1191 " tuple 1 " -string m46s1192 "__for_pos_" -string m46s1193 "__for_it_" -string m46s1194 "__for_hi_" -string m46s1195 "__for_val_" -string m46s1196 "inclusive" -string m46s1197 "__for_iter_" -string m46s1198 "__for_len_" -string m46s1199 "__for_idx_" -string m46s1200 "next" -string m46s1201 "assign" -string m46s1202 "borrowed" -string m46s1203 "catch" -string m46s1204 "closure_ref " -string m46s1205 "index out of bounds" -string m46s1206 " 0.0" -string m46s1207 "field_init" -string m46s1208 "__arg_" -string m46s1209 "__fnval_" -string m46s1210 "__spawn_" -string m46s1211 "__lambda_" -string m46s1212 "concat " -string m46s1213 "__last_call" -string m46s1214 "list_join_int" -string m46s1215 "__cl_field" -string m46s1216 "uint_to_string" -string m46s1217 "select" -string m46s1218 "sleep" -string m46s1219 "mod " -string m46s1220 "time" -string m46s1221 "pith_select_next_index" -string m46s1222 "select_offset" -string m46s1223 "select_deadline" -string m46s1224 "handler" -string m46s1225 "result_to_string" -string m46s1226 "opaque" -string m46s1227 "owned" -string m46s1228 "legacy_result" -string m46s1229 "_m" -string m46s1230 "__tuple_dtor_" -string m46s1231 "p" -string m46s1232 "c" -string m46s1233 "u" -string m46s1234 "t" -string m46s1235 "l" -string m46s1236 "pith_map_insert_ikey_owned" -string m46s1237 "pith_map_insert_cstr_owned" -string m46s1238 "pith_list_set_value_owned" -string m46s1239 "assert" -string m46s1240 "ord" -string m46s1241 "__callee" -string m46s1242 "file_path" -string m46s1243 "decode_file_path" -string m46s1244 "decode_file" -string m46s1245 "__idx_opt_result" -string m46s1246 "__list_index_i" -string m46s1247 "__list_index_result" -string m46s1248 "__reduce_i" -string m46s1249 "__reduce_acc" -string m46s1250 "__reduce_fn" -string m46s1251 "__filter_i" -string m46s1252 "__filter_fn" -string m46s1253 "__map_i" -string m46s1254 "__map_fn" -string m46s1255 "pith_assert_eq_fail" -string m46s1256 "pith_list_eq_scalar" -string m46s1257 "pith_list_eq_string" -string m46s1258 "bytes_eq" -string m46s1259 "binop " -string m46s1260 "pith_cstring_lte" -string m46s1261 "pith_cstring_lt" -string m46s1262 "chr" -string m46s1263 "byte_at" -string m46s1264 "\"" -string m46s1265 "\\" -string m46s1266 "r" -string m46s1267 "n" -string m46s1268 "__closure" -string m46s1269 "param __closure" -string m46s1270 "pith_closure_set_env_rc" -string m46s1271 "(" -string m46s1272 "show" -string m46s1273 "pith_display_map" -string m46s1274 "pith_display_list" -string m46s1275 " format_pad string 4 " -string m46s1276 "float_format" -string m46s1277 "^" -string m46s1278 ">" -string m46s1279 "<" -string m46s1280 "unwrap of none" -string m46s1281 "fix" -string m46s1282 "file" -string m46s1283 "message" -string m46s1284 "code" -string m46s1285 "severity" -string m46s1286 "Diagnostic" -string m46s1287 "current_column" -string m46s1288 "current_line" -string m46s1289 "struct " -string m46s1290 " 16 unknown err" -string m46s1291 " 8 unknown ok" -string m46s1292 "__tuple_cascade_" -string m46s1293 "00" -string m46s1294 "none" -string m46s1295 "is_none" -string m46s1296 "is_some" -string m46s1297 "trim_right" -string m46s1298 "trim_left" -string m46s1299 "interp" -string m46s1300 "func " -string m46s1301 " pith_struct_weak_retain void 1 " -string m46s1302 "__loopvar_" -string m46s1303 "IrSelectParts(" -string m46s1304 "probe_arms,itimeout_idx,idefault_idx" -string m46s1305 "probe_arms" -string m46s1306 "probe_arms: " -string m46s1307 "timeout_idx" -string m46s1308 ", timeout_idx: " -string m46s1309 "default_idx" -string m46s1310 ", default_idx: " -string m46s1311 "LambdaParts(" -string m46s1312 "params,ibody_idx,captures" -string m46s1313 "params" -string m46s1314 "params: " -string m46s1315 "captures" -string m46s1316 ", captures: " -string m46s1317 "parse_int failed" -string m46s1318 "file_open_read failed" -string m46s1319 "file_open_write failed" -string m46s1320 "file_open_append failed" -string m46s1321 "byte_buffer_write failed" -string m46s1322 "byte_buffer_write_string_utf8 failed" -string m46s1323 "byte_buffer_write_byte failed" -string m46s1324 "file_write failed" -string m46s1325 "file_write_bytes failed" -string m46s1326 "tcp_connect failed" -string m46s1327 "tcp_listen failed" -string m46s1328 "tcp_accept failed" -string m46s1329 "tcp_write failed" -string m46s1330 "tcp_write_bytes failed" -string m46s1331 "process_spawn failed" -string m46s1332 "process_spawn_argv failed" -string m46s1333 "process_output_argv failed" -string m46s1334 "process_write failed" -string m46s1335 "process_write_bytes failed" -string m46s1336 "crypto_x25519_keygen failed" -string m46s1337 "write_file failed" -string m46s1338 "append_file failed" -string m46s1339 "write_file_bytes failed" -string m46s1340 "append_file_bytes failed" -string m46s1341 "read_file failed" -string m46s1342 "exec_output failed" -string m46s1343 "dns_resolve failed" -string m46s1344 "bytes_to_string_utf8 failed" -string m46s1345 "bytes_substring_utf8 failed" -string m46s1346 "file_read failed" -string m46s1347 "tcp_read failed" -string m46s1348 "process_read failed" -string m46s1349 "process_read_err failed" -string m46s1350 "read_file_bytes failed" -string m46s1351 "b64_decode failed" -string m46s1352 "from_hex failed" -string m46s1353 "file_read_bytes failed" -string m46s1354 "tcp_read_bytes failed" -string m46s1355 "process_read_bytes failed" -string m46s1356 "process_read_err_bytes failed" -string m46s1357 "crypto_x25519_public_key failed" -string m46s1358 "crypto_x25519_shared_secret failed" -string m46s1359 "crypto_aes_128_gcm_seal failed" -string m46s1360 "crypto_aes_128_gcm_open failed" -string m46s1361 "crypto_chacha20_poly1305_seal failed" -string m46s1362 "crypto_chacha20_poly1305_open failed" -string m46s1363 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m46s1088 "decode_text_path" +string m46s1089 "std_yaml_" +string m46s1090 "std_toml_" +string m46s1091 "cfg" +string m46s1092 "std_config_decode" +string m46s1093 "prefix" +string m46s1094 "std_config_decode_prefix" +string m46s1095 "std/config" +string m46s1096 "std_config_require_bool" +string m46s1097 "std_config_require_int" +string m46s1098 "std_config_require" +string m46s1099 "ResolvedCallee(" +string m46s1100 "sname,bimported" +string m46s1101 "name: " +string m46s1102 "imported" +string m46s1103 ", imported: " +string m46s1104 "tcp_read2" +string m46s1105 "tcp_read" +string m46s1106 "IrIfBranch(" +string m46s1107 "icond_idx,ibody_idx" +string m46s1108 "cond_idx" +string m46s1109 "cond_idx: " +string m46s1110 "body_idx" +string m46s1111 ", body_idx: " +string m46s1112 "IrForBindingNames(" +string m46s1113 "svalue_name,sindex_name" +string m46s1114 "value_name" +string m46s1115 "value_name: " +string m46s1116 "index_name" +string m46s1117 ", index_name: " +string m46s1118 "IrBindParts(" +string m46s1119 "sname,ival_idx,itype_idx" +string m46s1120 "val_idx" +string m46s1121 ", val_idx: " +string m46s1122 "type_idx" +string m46s1123 ", type_idx: " +string m46s1124 "map_int_str_val" +string m46s1125 "map_str_val" +string m46s1126 "char" +string m46s1127 "map_get_strict" +string m46s1128 "map_get_ikey_strict" +string m46s1129 "bytes_get_strict" +string m46s1130 "/=" +string m46s1131 "*=" +string m46s1132 "-=" +string m46s1133 "+=" +string m46s1134 "shr" +string m46s1135 "shl" +string m46s1136 "bxor" +string m46s1137 "bit_xor" +string m46s1138 "bor" +string m46s1139 "bit_or" +string m46s1140 "band" +string m46s1141 "bit_and" +string m46s1142 "f" +string m46s1143 "bnot " +string m46s1144 "~" +string m46s1145 "bit_not" +string m46s1146 "neg" +string m46s1147 " -1" +string m46s1148 "pith_list_push_value_owned" +string m46s1149 " 2 " +string m46s1150 "struct:tuple" +string m46s1151 " 3" +string m46s1152 "parse_int,file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,write_file,append_file,write_file_bytes,append_file_bytes,read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err,read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m46s1153 "main" +string m46s1154 "__init_globals" +string m46s1155 "__enum_eq_" +string m46s1156 " unknown __p" +string m46s1157 " b" +string m46s1158 " a" +string m46s1159 "param b" +string m46s1160 "param a" +string m46s1161 " unknown __tuple_" +string m46s1162 " p" +string m46s1163 "param p" +string m46s1164 "__dtor_" +string m46s1165 " unknown " +string m46s1166 " pith_struct_weak_release void 1 " +string m46s1167 " 8 unknown value" +string m46s1168 "__opt_dtor_" +string m46s1169 " pith_tls_set void 2 " +string m46s1170 " pith_tls_get_or_init " +string m46s1171 " __tlsinit_" +string m46s1172 "__tlsinit_" +string m46s1173 "global " +string m46s1174 "str:" +string m46s1175 "struct_alias " +string m46s1176 "exit" +string m46s1177 "pith_test_summary" +string m46s1178 "pith_test_record" +string m46s1179 "pith_test_child_ok" +string m46s1180 "__test_" +string m46s1181 "pith_test_enter" +string m46s1182 "pith_test_fork" +string m46s1183 "pith_test_should_run" +string m46s1184 "param " +string m46s1185 "for" +string m46s1186 "while" +string m46s1187 "if" +string m46s1188 " tuple 1 " +string m46s1189 "__for_pos_" +string m46s1190 "__for_it_" +string m46s1191 "__for_hi_" +string m46s1192 "__for_val_" +string m46s1193 "inclusive" +string m46s1194 "__for_iter_" +string m46s1195 "__for_len_" +string m46s1196 "__for_idx_" +string m46s1197 "next" +string m46s1198 "assign" +string m46s1199 "borrowed" +string m46s1200 "catch" +string m46s1201 "closure_ref " +string m46s1202 "index out of bounds" +string m46s1203 " 0.0" +string m46s1204 "field_init" +string m46s1205 "__arg_" +string m46s1206 "__fnval_" +string m46s1207 "__spawn_" +string m46s1208 "__lambda_" +string m46s1209 "concat " +string m46s1210 "__last_call" +string m46s1211 "list_join_int" +string m46s1212 "__cl_field" +string m46s1213 "uint_to_string" +string m46s1214 "select" +string m46s1215 "sleep" +string m46s1216 "mod " +string m46s1217 "time" +string m46s1218 "pith_select_next_index" +string m46s1219 "select_offset" +string m46s1220 "select_deadline" +string m46s1221 "handler" +string m46s1222 "result_to_string" +string m46s1223 "opaque" +string m46s1224 "owned" +string m46s1225 "legacy_result" +string m46s1226 "_m" +string m46s1227 "__tuple_dtor_" +string m46s1228 "p" +string m46s1229 "c" +string m46s1230 "u" +string m46s1231 "t" +string m46s1232 "l" +string m46s1233 "pith_map_insert_ikey_owned" +string m46s1234 "pith_map_insert_cstr_owned" +string m46s1235 "pith_list_set_value_owned" +string m46s1236 "assert" +string m46s1237 "ord" +string m46s1238 "__callee" +string m46s1239 "file_path" +string m46s1240 "decode_file_path" +string m46s1241 "decode_file" +string m46s1242 "__idx_opt_result" +string m46s1243 "__list_index_i" +string m46s1244 "__list_index_result" +string m46s1245 "__reduce_i" +string m46s1246 "__reduce_acc" +string m46s1247 "__reduce_fn" +string m46s1248 "__filter_i" +string m46s1249 "__filter_fn" +string m46s1250 "__map_i" +string m46s1251 "__map_fn" +string m46s1252 "pith_assert_eq_fail" +string m46s1253 "pith_list_eq_scalar" +string m46s1254 "pith_list_eq_string" +string m46s1255 "bytes_eq" +string m46s1256 "binop " +string m46s1257 "pith_cstring_lte" +string m46s1258 "pith_cstring_lt" +string m46s1259 "chr" +string m46s1260 "byte_at" +string m46s1261 "\"" +string m46s1262 "\\" +string m46s1263 "r" +string m46s1264 "n" +string m46s1265 "__closure" +string m46s1266 "param __closure" +string m46s1267 "pith_closure_set_env_rc" +string m46s1268 "(" +string m46s1269 "show" +string m46s1270 "pith_display_map" +string m46s1271 "pith_display_list" +string m46s1272 " format_pad string 4 " +string m46s1273 "float_format" +string m46s1274 "^" +string m46s1275 ">" +string m46s1276 "<" +string m46s1277 "unwrap of none" +string m46s1278 "fix" +string m46s1279 "file" +string m46s1280 "message" +string m46s1281 "code" +string m46s1282 "severity" +string m46s1283 "Diagnostic" +string m46s1284 "current_column" +string m46s1285 "current_line" +string m46s1286 "struct " +string m46s1287 " 16 unknown err" +string m46s1288 " 8 unknown ok" +string m46s1289 "__tuple_cascade_" +string m46s1290 "00" +string m46s1291 "none" +string m46s1292 "is_none" +string m46s1293 "is_some" +string m46s1294 "trim_right" +string m46s1295 "trim_left" +string m46s1296 "interp" +string m46s1297 "func " +string m46s1298 " pith_struct_weak_retain void 1 " +string m46s1299 "__loopvar_" +string m46s1300 "IrSelectParts(" +string m46s1301 "probe_arms,itimeout_idx,idefault_idx" +string m46s1302 "probe_arms" +string m46s1303 "probe_arms: " +string m46s1304 "timeout_idx" +string m46s1305 ", timeout_idx: " +string m46s1306 "default_idx" +string m46s1307 ", default_idx: " +string m46s1308 "LambdaParts(" +string m46s1309 "params,ibody_idx,captures" +string m46s1310 "params" +string m46s1311 "params: " +string m46s1312 "captures" +string m46s1313 ", captures: " +string m46s1314 "parse_int failed" +string m46s1315 "file_open_read failed" +string m46s1316 "file_open_write failed" +string m46s1317 "file_open_append failed" +string m46s1318 "byte_buffer_write failed" +string m46s1319 "byte_buffer_write_string_utf8 failed" +string m46s1320 "byte_buffer_write_byte failed" +string m46s1321 "file_write failed" +string m46s1322 "file_write_bytes failed" +string m46s1323 "tcp_connect failed" +string m46s1324 "tcp_listen failed" +string m46s1325 "tcp_accept failed" +string m46s1326 "tcp_write failed" +string m46s1327 "tcp_write_bytes failed" +string m46s1328 "process_spawn failed" +string m46s1329 "process_spawn_argv failed" +string m46s1330 "process_output_argv failed" +string m46s1331 "process_write failed" +string m46s1332 "process_write_bytes failed" +string m46s1333 "crypto_x25519_keygen failed" +string m46s1334 "write_file failed" +string m46s1335 "append_file failed" +string m46s1336 "write_file_bytes failed" +string m46s1337 "append_file_bytes failed" +string m46s1338 "read_file failed" +string m46s1339 "exec_output failed" +string m46s1340 "dns_resolve failed" +string m46s1341 "bytes_to_string_utf8 failed" +string m46s1342 "bytes_substring_utf8 failed" +string m46s1343 "file_read failed" +string m46s1344 "tcp_read failed" +string m46s1345 "process_read failed" +string m46s1346 "process_read_err failed" +string m46s1347 "read_file_bytes failed" +string m46s1348 "b64_decode failed" +string m46s1349 "from_hex failed" +string m46s1350 "file_read_bytes failed" +string m46s1351 "tcp_read_bytes failed" +string m46s1352 "process_read_bytes failed" +string m46s1353 "process_read_err_bytes failed" +string m46s1354 "crypto_x25519_public_key failed" +string m46s1355 "crypto_x25519_shared_secret failed" +string m46s1356 "crypto_aes_128_gcm_seal failed" +string m46s1357 "crypto_aes_128_gcm_open failed" +string m46s1358 "crypto_chacha20_poly1305_seal failed" +string m46s1359 "crypto_chacha20_poly1305_open failed" +string m46s1360 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -121885,26 +122097,26 @@ call 79 pith_cstring_release void 1 78 iconst 80 0 ret 80 endfunc -func ir_emitter_core___dtor_IrTomlPoolMark 1 void +func ir_emitter_core___dtor_IrDecodeFieldBranch 1 void param p load 81 p -field 82 81 0 unknown node_id_var +field 82 81 0 unknown field_temp call 83 pith_cstring_release void 1 82 -field 84 81 8 unknown table_len_var +field 84 81 8 unknown present_l call 85 pith_cstring_release void 1 84 -field 86 81 16 unknown array_len_var +field 86 81 16 unknown merge_l call 87 pith_cstring_release void 1 86 iconst 88 0 ret 88 endfunc -func ir_emitter_core___dtor_IrDecodeFieldBranch 1 void +func ir_emitter_core___dtor_IrHandlePoolMark 1 void param p load 89 p -field 90 89 0 unknown field_temp +field 90 89 0 unknown node_id_var call 91 pith_cstring_release void 1 90 -field 92 89 8 unknown present_l +field 92 89 8 unknown table_len_var call 93 pith_cstring_release void 1 92 -field 94 89 16 unknown merge_l +field 94 89 16 unknown array_len_var call 95 pith_cstring_release void 1 94 iconst 96 0 ret 96 @@ -122067,7 +122279,7 @@ endfunc func ir_emitter_core_ir_loop_var_slot_name 2 string param fid param name -strref 2 m46s1302 +strref 2 m46s1299 load 3 fid call 4 int_to_string string 1 3 concat 5 2 4 @@ -123069,7 +123281,7 @@ call 179 pith_struct_release void 1 173 store recv_node 178 load 180 recv_node field 181 180 0 string kind -strref 182 m46s515 +strref 182 m46s518 call 183 pith_cstring_eq bool 2 181 182 call 184 pith_cstring_release void 1 182 brif 183 L101 L102 @@ -123461,7 +123673,7 @@ call 22 pith_cstring_release void 1 20 call 23 pith_cstring_release void 1 18 store field_kind 21 load 24 field_kind -strref 25 m46s822 +strref 25 m46s825 call 27 pith_cstring_eq bool 2 24 25 iconst 28 1 sub 26 28 27 @@ -124017,7 +124229,7 @@ eq 10 8 9 brif 10 L181 L182 label L181 load 11 field_kind -strref 12 m46s822 +strref 12 m46s825 call 13 pith_cstring_release void 1 11 store field_kind 12 jmp L180 @@ -124025,7 +124237,7 @@ label L182 label L180 call 14 ir_builder_ir_reg int 0 store r 14 -strref 15 m46s837 +strref 15 m46s840 load 16 r call 17 int_to_string string 1 16 concat 18 15 17 @@ -124040,14 +124252,14 @@ call 26 int_to_string string 1 25 concat 27 22 26 call 28 pith_cstring_release void 1 22 call 29 pith_cstring_release void 1 26 -strref 30 m46s1027 +strref 30 m46s1029 concat 31 27 30 call 32 pith_cstring_release void 1 27 call 33 pith_cstring_release void 1 30 load 34 field_kind concat 35 31 34 call 36 pith_cstring_release void 1 31 -strref 37 m46s1026 +strref 37 m46s1028 concat 38 35 37 call 39 pith_cstring_release void 1 35 call 40 pith_cstring_release void 1 37 @@ -124234,7 +124446,7 @@ brif 52 L201 L202 label L201 load 54 field_node field 55 54 8 string value -strref 56 m46s597 +strref 56 m46s600 call 57 pith_cstring_contains bool 2 55 56 call 58 pith_cstring_release void 1 56 load 59 layout_name @@ -124281,20 +124493,20 @@ call 5 pith_struct_release void 1 2 store vnode 4 load 6 vnode field 7 6 0 string kind -strref 8 m46s1294 +strref 8 m46s1291 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L204 L205 label L204 call 11 ir_builder_ir_reg int 0 store zero_r 11 -strref 12 m46s832 +strref 12 m46s835 load 13 zero_r call 14 int_to_string string 1 13 concat 15 12 14 call 16 pith_cstring_release void 1 12 call 17 pith_cstring_release void 1 14 -strref 18 m46s831 +strref 18 m46s834 concat 19 15 18 call 20 pith_cstring_release void 1 15 call 21 pith_cstring_release void 1 18 @@ -124323,7 +124535,7 @@ brif 35 L207 L208 label L207 call 38 ir_builder_ir_reg int 0 store payload_r 38 -strref 39 m46s837 +strref 39 m46s840 load 40 payload_r call 41 int_to_string string 1 40 concat 42 39 41 @@ -124338,7 +124550,7 @@ call 50 int_to_string string 1 49 concat 51 46 50 call 52 pith_cstring_release void 1 46 call 53 pith_cstring_release void 1 50 -strref 54 m46s1170 +strref 54 m46s1167 concat 55 51 54 call 56 pith_cstring_release void 1 51 call 57 pith_cstring_release void 1 54 @@ -124349,13 +124561,13 @@ label L208 label L206 call 60 ir_builder_ir_reg int 0 store retain_r 60 -strref 61 m46s1033 +strref 61 m46s1035 load 62 retain_r call 63 int_to_string string 1 62 concat 64 61 63 call 65 pith_cstring_release void 1 61 call 66 pith_cstring_release void 1 63 -strref 67 m46s1301 +strref 67 m46s1298 concat 68 64 67 call 69 pith_cstring_release void 1 64 call 70 pith_cstring_release void 1 67 @@ -124427,7 +124639,7 @@ brif 29 L214 L215 label L214 load 30 actual field 31 30 8 string value -strref 32 m46s1271 +strref 32 m46s1268 concat 33 31 32 call 34 pith_cstring_release void 1 32 call 35 ir_builder_ir_str string 1 33 @@ -124592,7 +124804,7 @@ func ir_emitter_core_ir_emit_func_header 3 void param name param param_count param ret_type -strref 3 m46s1300 +strref 3 m46s1297 load 4 name concat 5 3 4 call 6 pith_cstring_release void 1 3 @@ -124896,7 +125108,7 @@ ret 10 label L271 label L269 load 11 ftype -strref 12 m46s883 +strref 12 m46s886 call 13 pith_cstring_starts_with bool 2 11 12 call 14 pith_cstring_release void 1 12 brif 13 L273 L274 @@ -124966,7 +125178,7 @@ jmp L278 label L280 label L278 load 22 val_type -strref 23 m46s675 +strref 23 m46s678 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 brif 24 L284 L285 @@ -124977,19 +125189,19 @@ call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L287 L288 label L287 -strref 30 m46s1128 +strref 30 m46s1125 load 31 val_type call 32 pith_cstring_release void 1 31 ret 30 label L288 label L286 load 33 target_type -strref 34 m46s670 +strref 34 m46s673 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 brif 35 L290 L291 label L290 -strref 37 m46s1127 +strref 37 m46s1124 load 38 val_type call 39 pith_cstring_release void 1 38 ret 37 @@ -125123,7 +125335,7 @@ iconst 10 0 store __or_10_313 10 load 11 node field 12 11 0 string kind -strref 13 m46s517 +strref 13 m46s520 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 store __or_10_313 14 @@ -125131,7 +125343,7 @@ brif 14 L314 L313 label L313 load 16 node field 17 16 0 string kind -strref 18 m46s675 +strref 18 m46s678 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 store __or_10_313 19 @@ -125142,7 +125354,7 @@ brif 21 L316 L315 label L315 load 22 node field 23 22 0 string kind -strref 24 m46s1025 +strref 24 m46s1027 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 store __or_9_313 25 @@ -125216,7 +125428,7 @@ iconst 70 0 store __or_70_328 70 load 71 node field 72 71 0 string kind -strref 73 m46s514 +strref 73 m46s517 call 74 pith_cstring_eq bool 2 72 73 call 75 pith_cstring_release void 1 73 store __or_70_328 74 @@ -125224,7 +125436,7 @@ brif 74 L329 L328 label L328 load 76 node field 77 76 0 string kind -strref 78 m46s1299 +strref 78 m46s1296 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 store __or_70_328 79 @@ -125235,7 +125447,7 @@ brif 81 L331 L330 label L330 load 82 node field 83 82 0 string kind -strref 84 m46s511 +strref 84 m46s514 call 85 pith_cstring_eq bool 2 83 84 call 86 pith_cstring_release void 1 84 store __or_69_328 85 @@ -125259,7 +125471,7 @@ iconst 97 0 store __and_97_335 97 load 98 node field 99 98 0 string kind -strref 100 m46s512 +strref 100 m46s515 call 101 pith_cstring_eq bool 2 99 100 call 102 pith_cstring_release void 1 100 store __and_97_335 101 @@ -125297,7 +125509,7 @@ iconst 123 0 store __or_123_340 123 load 124 node field 125 124 0 string kind -strref 126 m46s505 +strref 126 m46s508 call 127 pith_cstring_eq bool 2 125 126 call 128 pith_cstring_release void 1 126 store __or_123_340 127 @@ -125305,7 +125517,7 @@ brif 127 L341 L340 label L340 load 129 node field 130 129 0 string kind -strref 131 m46s550 +strref 131 m46s553 call 132 pith_cstring_eq bool 2 130 131 call 133 pith_cstring_release void 1 131 store __or_123_340 132 @@ -125382,7 +125594,7 @@ label L339 label L337 load 182 node field 183 182 0 string kind -strref 184 m46s504 +strref 184 m46s507 call 185 pith_cstring_eq bool 2 183 184 call 186 pith_cstring_release void 1 184 brif 185 L350 L351 @@ -125401,7 +125613,7 @@ label L351 label L349 load 196 node field 197 196 0 string kind -strref 198 m46s498 +strref 198 m46s501 call 199 pith_cstring_eq bool 2 197 198 call 200 pith_cstring_release void 1 198 brif 199 L353 L354 @@ -125465,7 +125677,7 @@ label L357 label L355 load 238 node field 239 238 0 string kind -strref 240 m46s500 +strref 240 m46s503 call 241 pith_cstring_eq bool 2 239 240 call 242 pith_cstring_release void 1 240 brif 241 L363 L364 @@ -125503,7 +125715,7 @@ label L367 label L365 load 266 node field 267 266 0 string kind -strref 268 m46s501 +strref 268 m46s504 call 269 pith_cstring_eq bool 2 267 268 call 270 pith_cstring_release void 1 268 brif 269 L369 L370 @@ -125548,7 +125760,7 @@ brif 295 L377 L378 label L377 load 297 idx call 298 ir_emitter_core_ir_infer_type string 1 297 -strref 299 m46s675 +strref 299 m46s678 call 300 pith_cstring_eq bool 2 298 299 call 301 pith_cstring_release void 1 298 call 302 pith_cstring_release void 1 299 @@ -125636,7 +125848,7 @@ store __or_334_387 350 brif 350 L392 L391 label L391 load 351 expr_kind -strref 352 m46s674 +strref 352 m46s677 call 353 pith_cstring_eq bool 2 351 352 call 354 pith_cstring_release void 1 352 store __or_334_387 353 @@ -125656,7 +125868,7 @@ store __or_332_387 360 brif 360 L396 L395 label L395 load 361 expr_kind -strref 362 m46s824 +strref 362 m46s827 call 363 pith_cstring_eq bool 2 361 362 call 364 pith_cstring_release void 1 362 store __or_332_387 363 @@ -125870,14 +126082,14 @@ store __or_52_429 52 iconst 53 0 store __or_53_429 53 load 54 mname -strref 55 m46s1298 +strref 55 m46s1295 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 store __or_53_429 56 brif 56 L430 L429 label L429 load 58 mname -strref 59 m46s1297 +strref 59 m46s1294 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 store __or_53_429 60 @@ -125887,7 +126099,7 @@ store __or_52_429 62 brif 62 L432 L431 label L431 load 63 mname -strref 64 m46s783 +strref 64 m46s786 call 65 pith_cstring_eq bool 2 63 64 call 66 pith_cstring_release void 1 64 store __or_52_429 65 @@ -125900,7 +126112,7 @@ ret 68 label L428 label L426 load 69 mname -strref 70 m46s776 +strref 70 m46s779 call 71 pith_cstring_eq bool 2 69 70 call 72 pith_cstring_release void 1 70 brif 71 L434 L435 @@ -125995,7 +126207,7 @@ brif 6 L445 L446 label L445 call 7 ir_builder_ir_reg int 0 store r 7 -strref 8 m46s829 +strref 8 m46s832 load 9 r call 10 int_to_string string 1 9 concat 11 8 10 @@ -126363,7 +126575,7 @@ brif 82 L500 L501 label L500 load 83 parent field 84 83 0 string kind -strref 85 m46s504 +strref 85 m46s507 call 86 pith_cstring_eq bool 2 84 85 call 87 pith_cstring_release void 1 85 store __and_81_500 86 @@ -126443,7 +126655,7 @@ brif 133 L512 L513 label L512 load 134 parent field 135 134 0 string kind -strref 136 m46s505 +strref 136 m46s508 call 137 pith_cstring_eq bool 2 135 136 call 138 pith_cstring_release void 1 136 store __and_132_512 137 @@ -126639,7 +126851,7 @@ store __or_254_537 264 brif 264 L540 L539 label L539 load 265 f -strref 266 m46s1296 +strref 266 m46s1293 call 267 pith_cstring_eq bool 2 265 266 call 268 pith_cstring_release void 1 266 store __or_254_537 267 @@ -126649,7 +126861,7 @@ store __or_253_537 269 brif 269 L542 L541 label L541 load 270 f -strref 271 m46s1295 +strref 271 m46s1292 call 272 pith_cstring_eq bool 2 270 271 call 273 pith_cstring_release void 1 271 store __or_253_537 272 @@ -126672,7 +126884,7 @@ iconst 285 0 store __and_285_546 285 load 286 parent field 287 286 0 string kind -strref 288 m46s514 +strref 288 m46s517 call 289 pith_cstring_eq bool 2 287 288 call 290 pith_cstring_release void 1 288 store __and_285_546 289 @@ -126682,7 +126894,7 @@ iconst 291 0 store __or_291_548 291 load 292 parent field 293 292 8 string value -strref 294 m46s469 +strref 294 m46s472 call 295 pith_cstring_eq bool 2 293 294 call 296 pith_cstring_release void 1 294 store __or_291_548 295 @@ -126690,7 +126902,7 @@ brif 295 L549 L548 label L548 load 297 parent field 298 297 8 string value -strref 299 m46s467 +strref 299 m46s470 call 300 pith_cstring_eq bool 2 298 299 call 301 pith_cstring_release void 1 299 store __or_291_548 300 @@ -126786,7 +126998,7 @@ brif 360 L558 L557 label L557 load 362 a field 363 362 0 string kind -strref 364 m46s1294 +strref 364 m46s1291 call 365 pith_cstring_eq bool 2 363 364 call 366 pith_cstring_release void 1 364 store __or_356_557 365 @@ -126805,7 +127017,7 @@ brif 372 L560 L559 label L559 load 374 b field 375 374 0 string kind -strref 376 m46s1294 +strref 376 m46s1291 call 377 pith_cstring_eq bool 2 375 376 call 378 pith_cstring_release void 1 376 store __or_368_559 377 @@ -126972,7 +127184,7 @@ call 8 pith_struct_release void 1 5 store node 7 load 9 node field 10 9 0 string kind -strref 11 m46s501 +strref 11 m46s504 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 brif 12 L580 L581 @@ -126993,7 +127205,7 @@ iconst 23 0 store __and_23_585 23 load 24 node field 25 24 0 string kind -strref 26 m46s574 +strref 26 m46s577 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 store __and_23_585 27 @@ -127162,7 +127374,7 @@ call 21 pith_cstring_retain void 1 20 call 22 pith_cstring_release void 1 17 store name 20 load 23 kind -strref 24 m46s675 +strref 24 m46s678 call 25 pith_cstring_release void 1 23 store kind 24 load 26 i @@ -127452,7 +127664,7 @@ call 69 pith_cstring_release void 1 68 ret 61 label L645 label L643 -strref 70 m46s1293 +strref 70 m46s1290 load 71 info call 72 pith_struct_release void 1 71 load 73 ok_code @@ -127471,11 +127683,11 @@ ret 83 endfunc func ir_emitter_core_ir_tuple_cascade_helper_name 1 string param sig -strref 1 m46s1292 +strref 1 m46s1289 load 2 sig concat 3 1 2 call 4 pith_cstring_release void 1 1 -strref 5 m46s1229 +strref 5 m46s1226 concat 6 3 5 call 7 pith_cstring_release void 1 3 call 8 pith_cstring_release void 1 5 @@ -127611,7 +127823,7 @@ label L665 call 67 ir_builder_ir_reg int 0 load 68 sig call 69 ir_emitter_core_ir_tuple_cascade_helper_name string 1 68 -strref 70 m46s828 +strref 70 m46s831 load 71 r call 72 ir_call_emit_ir_emit_call1 void 4 67 69 70 71 call 73 pith_cstring_release void 1 69 @@ -127689,22 +127901,22 @@ store err_kind 29 load 32 __loopvar_290_sig call 33 ir_emitter_core_ir_tuple_cascade_helper_name string 1 32 iconst 34 1 -strref 35 m46s828 +strref 35 m46s831 call 36 ir_emitter_core_ir_emit_func_header void 3 33 34 35 call 37 pith_cstring_release void 1 33 call 38 pith_cstring_release void 1 35 -strref 39 m46s1166 +strref 39 m46s1163 call 40 ir_builder_ir_emit void 1 39 call 41 pith_cstring_release void 1 39 call 42 ir_builder_ir_reg int 0 store pr 42 -strref 43 m46s829 +strref 43 m46s832 load 44 pr call 45 int_to_string string 1 44 concat 46 43 45 call 47 pith_cstring_release void 1 43 call 48 pith_cstring_release void 1 45 -strref 49 m46s1165 +strref 49 m46s1162 concat 50 46 49 call 51 pith_cstring_release void 1 46 call 52 pith_cstring_release void 1 49 @@ -127712,13 +127924,13 @@ call 53 ir_builder_ir_emit void 1 50 call 54 pith_cstring_release void 1 50 call 55 ir_builder_ir_reg int 0 store zero_r 55 -strref 56 m46s832 +strref 56 m46s835 load 57 zero_r call 58 int_to_string string 1 57 concat 59 56 58 call 60 pith_cstring_release void 1 56 call 61 pith_cstring_release void 1 58 -strref 62 m46s831 +strref 62 m46s834 concat 63 59 62 call 64 pith_cstring_release void 1 59 call 65 pith_cstring_release void 1 62 @@ -127726,7 +127938,7 @@ call 66 ir_builder_ir_emit void 1 63 call 67 pith_cstring_release void 1 63 call 68 ir_builder_ir_reg int 0 store live_r 68 -strref 69 m46s1035 +strref 69 m46s1037 load 70 live_r call 71 int_to_string string 1 70 concat 72 69 71 @@ -127760,7 +127972,7 @@ load 98 done_l call 99 ir_builder_ir_label string 0 call 100 pith_cstring_release void 1 98 store done_l 99 -strref 101 m46s834 +strref 101 m46s837 load 102 live_r call 103 int_to_string string 1 102 concat 104 101 103 @@ -127786,7 +127998,7 @@ load 123 live_l call 124 ir_call_emit_ir_emit_label void 1 123 call 125 ir_builder_ir_reg int 0 store flag_r 125 -strref 126 m46s837 +strref 126 m46s840 load 127 flag_r call 128 int_to_string string 1 127 concat 129 126 128 @@ -127801,7 +128013,7 @@ call 137 int_to_string string 1 136 concat 138 133 137 call 139 pith_cstring_release void 1 133 call 140 pith_cstring_release void 1 137 -strref 141 m46s1029 +strref 141 m46s1031 concat 142 138 141 call 143 pith_cstring_release void 1 138 call 144 pith_cstring_release void 1 141 @@ -127819,7 +128031,7 @@ load 153 rel_l call 154 ir_builder_ir_label string 0 call 155 pith_cstring_release void 1 153 store rel_l 154 -strref 156 m46s834 +strref 156 m46s837 load 157 flag_r call 158 int_to_string string 1 157 concat 159 156 158 @@ -127851,7 +128063,7 @@ brif 183 L680 L681 label L680 call 184 ir_builder_ir_reg int 0 store ok_r 184 -strref 185 m46s837 +strref 185 m46s840 load 186 ok_r call 187 int_to_string string 1 186 concat 188 185 187 @@ -127866,7 +128078,7 @@ call 196 int_to_string string 1 195 concat 197 192 196 call 198 pith_cstring_release void 1 192 call 199 pith_cstring_release void 1 196 -strref 200 m46s1291 +strref 200 m46s1288 concat 201 197 200 call 202 pith_cstring_release void 1 197 call 203 pith_cstring_release void 1 200 @@ -127878,7 +128090,7 @@ call 208 ir_ownership_ir_rc_release_reg void 2 206 207 jmp L679 label L681 label L679 -strref 209 m46s833 +strref 209 m46s836 load 210 rel_l concat 211 209 210 call 212 pith_cstring_release void 1 209 @@ -127894,7 +128106,7 @@ brif 220 L683 L684 label L683 call 221 ir_builder_ir_reg int 0 store err_r 221 -strref 222 m46s837 +strref 222 m46s840 load 223 err_r call 224 int_to_string string 1 223 concat 225 222 224 @@ -127909,7 +128121,7 @@ call 233 int_to_string string 1 232 concat 234 229 233 call 235 pith_cstring_release void 1 229 call 236 pith_cstring_release void 1 233 -strref 237 m46s1290 +strref 237 m46s1287 concat 238 234 237 call 239 pith_cstring_release void 1 234 call 240 pith_cstring_release void 1 237 @@ -127921,7 +128133,7 @@ call 245 ir_ownership_ir_rc_release_reg void 2 243 244 jmp L682 label L684 label L682 -strref 246 m46s833 +strref 246 m46s836 load 247 rel_l concat 248 246 247 call 249 pith_cstring_release void 1 246 @@ -127930,13 +128142,13 @@ call 251 pith_cstring_release void 1 248 load 252 rel_l call 253 ir_call_emit_ir_emit_label void 1 252 call 254 ir_builder_ir_reg int 0 -strref 255 m46s898 -strref 256 m46s828 +strref 255 m46s901 +strref 256 m46s831 load 257 pr call 258 ir_call_emit_ir_emit_call1 void 4 254 255 256 257 call 259 pith_cstring_release void 1 255 call 260 pith_cstring_release void 1 256 -strref 261 m46s833 +strref 261 m46s836 load 262 done_l concat 263 261 262 call 264 pith_cstring_release void 1 261 @@ -127946,19 +128158,19 @@ load 267 done_l call 268 ir_call_emit_ir_emit_label void 1 267 call 269 ir_builder_ir_reg int 0 store ret_r 269 -strref 270 m46s832 +strref 270 m46s835 load 271 ret_r call 272 int_to_string string 1 271 concat 273 270 272 call 274 pith_cstring_release void 1 270 call 275 pith_cstring_release void 1 272 -strref 276 m46s831 +strref 276 m46s834 concat 277 273 276 call 278 pith_cstring_release void 1 273 call 279 pith_cstring_release void 1 276 call 280 ir_builder_ir_emit void 1 277 call 281 pith_cstring_release void 1 277 -strref 282 m46s849 +strref 282 m46s852 load 283 ret_r call 284 int_to_string string 1 283 concat 285 282 284 @@ -127966,7 +128178,7 @@ call 286 pith_cstring_release void 1 282 call 287 pith_cstring_release void 1 284 call 288 ir_builder_ir_emit void 1 285 call 289 pith_cstring_release void 1 285 -strref 290 m46s877 +strref 290 m46s880 call 291 ir_builder_ir_emit void 1 290 call 292 pith_cstring_release void 1 290 label L677 @@ -128016,7 +128228,7 @@ call 12 pith_cstring_retain void 1 11 call 13 pith_cstring_release void 1 8 store name 11 load 14 kind -strref 15 m46s675 +strref 15 m46s678 call 16 pith_cstring_release void 1 14 store kind 15 load 17 i @@ -128252,7 +128464,7 @@ iconst 100 0 store __and_100_729 100 load 101 val_node field 102 101 0 string kind -strref 103 m46s504 +strref 103 m46s507 call 104 pith_cstring_eq bool 2 102 103 call 105 pith_cstring_release void 1 103 store __and_100_729 104 @@ -129104,7 +129316,7 @@ call 12 pith_cstring_release void 1 10 store target 11 load 13 node field 14 13 0 string kind -strref 15 m46s1201 +strref 15 m46s1198 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 brif 16 L867 L868 @@ -129121,7 +129333,7 @@ iconst 23 0 store __and_23_871 23 load 24 node field 25 24 0 string kind -strref 26 m46s574 +strref 26 m46s577 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 store __and_23_871 27 @@ -129379,7 +129591,7 @@ call 64 pith_list_push_value void 2 60 63 jmp L917 label L919 load 65 kept_kinds -strref 66 m46s675 +strref 66 m46s678 call 67 pith_list_push_value_owned void 2 65 66 label L917 jmp L907 @@ -129440,13 +129652,13 @@ jmp L923 label L925 call 102 ir_builder_ir_reg int 0 store z 102 -strref 103 m46s832 +strref 103 m46s835 load 104 z call 105 int_to_string string 1 104 concat 106 103 105 call 107 pith_cstring_release void 1 103 call 108 pith_cstring_release void 1 105 -strref 109 m46s831 +strref 109 m46s834 concat 110 106 109 call 111 pith_cstring_release void 1 106 call 112 pith_cstring_release void 1 109 @@ -129637,7 +129849,7 @@ store __or_9_942 12 brif 12 L943 L942 label L942 load 14 raw_kind -strref 15 m46s806 +strref 15 m46s809 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 store __or_9_942 16 @@ -129647,7 +129859,7 @@ store __or_8_942 18 brif 18 L945 L944 label L944 load 19 raw_kind -strref 20 m46s805 +strref 20 m46s808 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 store __or_8_942 21 @@ -130058,7 +130270,7 @@ call 68 pith_list_push_value void 2 66 67 jmp L992 label L994 label L992 -strref 69 m46s1289 +strref 69 m46s1286 load 70 name concat 71 69 70 call 72 pith_cstring_release void 1 69 @@ -130178,7 +130390,7 @@ jmp L1014 label L1016 load 31 child_node field 32 31 0 string kind -strref 33 m46s586 +strref 33 m46s589 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 brif 34 L1017 L1018 @@ -130370,7 +130582,7 @@ jmp L1034 label L1040 load 53 cn field 54 53 0 string kind -strref 55 m46s586 +strref 55 m46s589 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 brif 56 L1043 L1044 @@ -130646,7 +130858,7 @@ load 19 node store actual 19 load 20 node field 21 20 0 string kind -strref 22 m46s577 +strref 22 m46s580 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 brif 23 L1078 L1079 @@ -130662,7 +130874,7 @@ label L1079 label L1077 load 30 actual field 31 30 0 string kind -strref 32 m46s588 +strref 32 m46s591 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 brif 33 L1081 L1082 @@ -130706,7 +130918,7 @@ call 59 pith_struct_release void 1 56 store cn 58 load 60 cn field 61 60 0 string kind -strref 62 m46s585 +strref 62 m46s588 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 brif 63 L1091 L1092 @@ -130815,7 +131027,7 @@ load 17 __loopvar_306_item_idx store actual_idx 17 load 18 node field 19 18 0 string kind -strref 20 m46s577 +strref 20 m46s580 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 brif 21 L1101 L1102 @@ -130835,7 +131047,7 @@ call 30 pith_struct_release void 1 27 store actual 29 load 31 actual field 32 31 0 string kind -strref 33 m46s604 +strref 33 m46s607 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 brif 34 L1104 L1105 @@ -130899,7 +131111,7 @@ call 21 pith_struct_release void 1 18 store child_node 20 load 22 child_node field 23 22 0 string kind -strref 24 m46s576 +strref 24 m46s579 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 brif 25 L1111 L1112 @@ -131140,7 +131352,7 @@ call 125 pith_struct_release void 1 122 store child_node 124 load 126 child_node field 127 126 0 string kind -strref 128 m46s576 +strref 128 m46s579 call 129 pith_cstring_eq bool 2 127 128 call 130 pith_cstring_release void 1 128 brif 129 L1142 L1143 @@ -131428,7 +131640,7 @@ load 176 full_name load 177 param_count load 178 ret_type call 179 ir_emitter_core_ir_emit_func_header void 3 176 177 178 -strref 180 m46s515 +strref 180 m46s518 load 181 instance_type call 182 ir_emitter_core_ir_emit_named_param void 2 180 181 call 183 pith_cstring_release void 1 180 @@ -131778,7 +131990,7 @@ call 69 pith_list_push_value void 2 67 68 jmp L1187 label L1189 label L1187 -strref 70 m46s1289 +strref 70 m46s1286 load 71 sname concat 72 70 71 call 73 pith_cstring_release void 1 70 @@ -131931,7 +132143,7 @@ eq 90 88 89 brif 90 L1212 L1213 label L1212 load 91 kind -strref 92 m46s822 +strref 92 m46s825 call 93 pith_cstring_release void 1 91 store kind 92 jmp L1211 @@ -131994,7 +132206,7 @@ call 133 map_insert void 3 129 130 132 load 134 emit_decl brif 134 L1215 L1216 label L1215 -strref 135 m46s1289 +strref 135 m46s1286 load 136 sname concat 137 135 136 call 138 pith_cstring_release void 1 135 @@ -132139,7 +132351,7 @@ call 8 pith_list_get_value_unchecked string 2 6 7 store __loopvar_317_name 8 load 9 ir_builder_ir_var_types load 10 __loopvar_317_name -strref 11 m46s671 +strref 11 m46s674 call 12 pith_map_insert_cstr_owned void 3 9 10 11 label L1232 load 13 __for_idx_317 @@ -132166,7 +132378,7 @@ call 24 pith_list_get_value_unchecked string 2 22 23 store __loopvar_318_name 24 load 25 ir_builder_ir_var_types load 26 __loopvar_318_name -strref 27 m46s675 +strref 27 m46s678 call 28 pith_map_insert_cstr_owned void 3 25 26 27 label L1236 load 29 __for_idx_318 @@ -132193,7 +132405,7 @@ call 40 pith_list_get_value_unchecked string 2 38 39 store __loopvar_319_name 40 load 41 ir_builder_ir_var_types load 42 __loopvar_319_name -strref 43 m46s668 +strref 43 m46s671 call 44 pith_map_insert_cstr_owned void 3 41 42 43 label L1240 load 45 __for_idx_319 @@ -132247,7 +132459,7 @@ call 72 pith_list_get_value_unchecked string 2 70 71 store __loopvar_321_name 72 load 73 ir_builder_ir_var_types load 74 __loopvar_321_name -strref 75 m46s670 +strref 75 m46s673 call 76 pith_map_insert_cstr_owned void 3 73 74 75 label L1248 load 77 __for_idx_321 @@ -132301,7 +132513,7 @@ call 104 pith_list_get_value_unchecked string 2 102 103 store __loopvar_323_name 104 load 105 ir_builder_ir_var_types load 106 __loopvar_323_name -strref 107 m46s669 +strref 107 m46s672 call 108 pith_map_insert_cstr_owned void 3 105 106 107 label L1256 load 109 __for_idx_323 @@ -132355,7 +132567,7 @@ call 136 pith_list_get_value_unchecked string 2 134 135 store __loopvar_325_name 136 load 137 ir_builder_ir_var_types load 138 __loopvar_325_name -strref 139 m46s673 +strref 139 m46s676 call 140 pith_map_insert_cstr_owned void 3 137 138 139 label L1264 load 141 __for_idx_325 @@ -132400,7 +132612,7 @@ iconst 165 0 ret 165 endfunc func ir_emitter_core_ir_register_known_import_structs 0 void -strref 0 m46s1014 +strref 0 m46s1016 call 1 pith_list_new_cstr list 0 strref 2 m46s4 call 3 pith_list_push_value void 2 1 2 @@ -132418,24 +132630,24 @@ strref 14 m46s12 call 15 pith_list_push_value void 2 1 14 call 16 pith_cstring_release void 1 14 call 17 pith_list_new_cstr list 0 -strref 18 m46s675 +strref 18 m46s678 call 19 pith_list_push_value void 2 17 18 call 20 pith_cstring_release void 1 18 -strref 21 m46s675 +strref 21 m46s678 call 22 pith_list_push_value void 2 17 21 call 23 pith_cstring_release void 1 21 strref 24 m46s20 call 25 pith_list_push_value void 2 17 24 call 26 pith_cstring_release void 1 24 -strref 27 m46s671 +strref 27 m46s674 call 28 pith_list_push_value void 2 17 27 call 29 pith_cstring_release void 1 27 -strref 30 m46s671 +strref 30 m46s674 call 31 pith_list_push_value void 2 17 30 call 32 pith_cstring_release void 1 30 call 33 ir_emitter_core_ir_register_struct_layout void 3 0 1 17 call 34 pith_cstring_release void 1 0 -strref 35 m46s1011 +strref 35 m46s1013 call 36 pith_list_new_cstr list 0 strref 37 m46s4 call 38 pith_list_push_value void 2 36 37 @@ -132443,79 +132655,79 @@ call 39 pith_cstring_release void 1 37 strref 40 m46s6 call 41 pith_list_push_value void 2 36 40 call 42 pith_cstring_release void 1 40 -strref 43 m46s1288 +strref 43 m46s1285 call 44 pith_list_push_value void 2 36 43 call 45 pith_cstring_release void 1 43 -strref 46 m46s1287 +strref 46 m46s1284 call 47 pith_list_push_value void 2 36 46 call 48 pith_cstring_release void 1 46 call 49 pith_list_new_cstr list 0 -strref 50 m46s675 +strref 50 m46s678 call 51 pith_list_push_value void 2 49 50 call 52 pith_cstring_release void 1 50 -strref 53 m46s675 +strref 53 m46s678 call 54 pith_list_push_value void 2 49 53 call 55 pith_cstring_release void 1 53 -strref 56 m46s671 +strref 56 m46s674 call 57 pith_list_push_value void 2 49 56 call 58 pith_cstring_release void 1 56 -strref 59 m46s671 +strref 59 m46s674 call 60 pith_list_push_value void 2 49 59 call 61 pith_cstring_release void 1 59 call 62 ir_emitter_core_ir_register_struct_layout void 3 35 36 49 call 63 pith_cstring_release void 1 35 -strref 64 m46s997 +strref 64 m46s999 call 65 pith_list_new_cstr list 0 strref 66 m46s4 call 67 pith_list_push_value void 2 65 66 call 68 pith_cstring_release void 1 66 -strref 69 m46s621 +strref 69 m46s624 call 70 pith_list_push_value void 2 65 69 call 71 pith_cstring_release void 1 69 -strref 72 m46s623 +strref 72 m46s626 call 73 pith_list_push_value void 2 65 72 call 74 pith_cstring_release void 1 72 -strref 75 m46s625 +strref 75 m46s628 call 76 pith_list_push_value void 2 65 75 call 77 pith_cstring_release void 1 75 -strref 78 m46s627 +strref 78 m46s630 call 79 pith_list_push_value void 2 65 78 call 80 pith_cstring_release void 1 78 -strref 81 m46s629 +strref 81 m46s632 call 82 pith_list_push_value void 2 65 81 call 83 pith_cstring_release void 1 81 -strref 84 m46s631 +strref 84 m46s634 call 85 pith_list_push_value void 2 65 84 call 86 pith_cstring_release void 1 84 -strref 87 m46s633 +strref 87 m46s636 call 88 pith_list_push_value void 2 65 87 call 89 pith_cstring_release void 1 87 -strref 90 m46s635 +strref 90 m46s638 call 91 pith_list_push_value void 2 65 90 call 92 pith_cstring_release void 1 90 -strref 93 m46s637 +strref 93 m46s640 call 94 pith_list_push_value void 2 65 93 call 95 pith_cstring_release void 1 93 -strref 96 m46s639 +strref 96 m46s642 call 97 pith_list_push_value void 2 65 96 call 98 pith_cstring_release void 1 96 -strref 99 m46s641 +strref 99 m46s644 call 100 pith_list_push_value void 2 65 99 call 101 pith_cstring_release void 1 99 -strref 102 m46s643 +strref 102 m46s646 call 103 pith_list_push_value void 2 65 102 call 104 pith_cstring_release void 1 102 -strref 105 m46s645 +strref 105 m46s648 call 106 pith_list_push_value void 2 65 105 call 107 pith_cstring_release void 1 105 call 108 pith_list_new_cstr list 0 -strref 109 m46s675 +strref 109 m46s678 call 110 pith_list_push_value void 2 108 109 call 111 pith_cstring_release void 1 109 -strref 112 m46s675 +strref 112 m46s678 call 113 pith_list_push_value void 2 108 112 call 114 pith_cstring_release void 1 112 -strref 115 m46s668 +strref 115 m46s671 call 116 pith_list_push_value void 2 108 115 call 117 pith_cstring_release void 1 115 strref 118 m46s20 @@ -132530,22 +132742,22 @@ call 126 pith_cstring_release void 1 124 strref 127 m46s20 call 128 pith_list_push_value void 2 108 127 call 129 pith_cstring_release void 1 127 -strref 130 m46s671 +strref 130 m46s674 call 131 pith_list_push_value void 2 108 130 call 132 pith_cstring_release void 1 130 -strref 133 m46s671 +strref 133 m46s674 call 134 pith_list_push_value void 2 108 133 call 135 pith_cstring_release void 1 133 -strref 136 m46s671 +strref 136 m46s674 call 137 pith_list_push_value void 2 108 136 call 138 pith_cstring_release void 1 136 -strref 139 m46s671 +strref 139 m46s674 call 140 pith_list_push_value void 2 108 139 call 141 pith_cstring_release void 1 139 strref 142 m46s20 call 143 pith_list_push_value void 2 108 142 call 144 pith_cstring_release void 1 142 -strref 145 m46s668 +strref 145 m46s671 call 146 pith_list_push_value void 2 108 145 call 147 pith_cstring_release void 1 145 strref 148 m46s20 @@ -132553,18 +132765,18 @@ call 149 pith_list_push_value void 2 108 148 call 150 pith_cstring_release void 1 148 call 151 ir_emitter_core_ir_register_struct_layout void 3 64 65 108 call 152 pith_cstring_release void 1 64 -strref 153 m46s1286 +strref 153 m46s1283 call 154 pith_list_new_cstr list 0 -strref 155 m46s1285 +strref 155 m46s1282 call 156 pith_list_push_value void 2 154 155 call 157 pith_cstring_release void 1 155 -strref 158 m46s1284 +strref 158 m46s1281 call 159 pith_list_push_value void 2 154 158 call 160 pith_cstring_release void 1 158 -strref 161 m46s1283 +strref 161 m46s1280 call 162 pith_list_push_value void 2 154 161 call 163 pith_cstring_release void 1 161 -strref 164 m46s1282 +strref 164 m46s1279 call 165 pith_list_push_value void 2 154 164 call 166 pith_cstring_release void 1 164 strref 167 m46s10 @@ -132573,29 +132785,29 @@ call 169 pith_cstring_release void 1 167 strref 170 m46s12 call 171 pith_list_push_value void 2 154 170 call 172 pith_cstring_release void 1 170 -strref 173 m46s1281 +strref 173 m46s1278 call 174 pith_list_push_value void 2 154 173 call 175 pith_cstring_release void 1 173 call 176 pith_list_new_cstr list 0 -strref 177 m46s675 +strref 177 m46s678 call 178 pith_list_push_value void 2 176 177 call 179 pith_cstring_release void 1 177 -strref 180 m46s675 +strref 180 m46s678 call 181 pith_list_push_value void 2 176 180 call 182 pith_cstring_release void 1 180 -strref 183 m46s675 +strref 183 m46s678 call 184 pith_list_push_value void 2 176 183 call 185 pith_cstring_release void 1 183 -strref 186 m46s675 +strref 186 m46s678 call 187 pith_list_push_value void 2 176 186 call 188 pith_cstring_release void 1 186 -strref 189 m46s671 +strref 189 m46s674 call 190 pith_list_push_value void 2 176 189 call 191 pith_cstring_release void 1 189 -strref 192 m46s671 +strref 192 m46s674 call 193 pith_list_push_value void 2 176 192 call 194 pith_cstring_release void 1 192 -strref 195 m46s675 +strref 195 m46s678 call 196 pith_list_push_value void 2 176 195 call 197 pith_cstring_release void 1 195 call 198 ir_emitter_core_ir_register_struct_layout void 3 153 154 176 @@ -133392,7 +133604,7 @@ iconst 52 0 store __and_52_1356 52 load 53 recv field 54 53 0 string kind -strref 55 m46s515 +strref 55 m46s518 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 store __and_52_1356 56 @@ -133581,7 +133793,7 @@ call 93 pith_cstring_release void 1 87 store field_kind 92 call 94 ir_builder_ir_reg int 0 store r 94 -strref 95 m46s837 +strref 95 m46s840 load 96 r call 97 int_to_string string 1 96 concat 98 95 97 @@ -133685,7 +133897,7 @@ load 30 meth call 31 ir_metadata_ir_is_bool_returning_method bool 1 30 brif 31 L1386 L1387 label L1386 -strref 32 m46s673 +strref 32 m46s676 load 33 impl_name call 34 pith_cstring_release void 1 33 load 35 declared @@ -133724,7 +133936,7 @@ call 58 pith_cstring_eq bool 2 56 57 call 59 pith_cstring_release void 1 57 brif 58 L1392 L1393 label L1392 -strref 60 m46s672 +strref 60 m46s675 load 61 impl_name call 62 pith_cstring_release void 1 61 load 63 declared @@ -133754,7 +133966,7 @@ label L1398 load 78 __or_69_1397 brif 78 L1395 L1396 label L1395 -strref 79 m46s671 +strref 79 m46s674 load 80 impl_name call 81 pith_cstring_release void 1 80 load 82 declared @@ -133788,7 +134000,7 @@ store __and_88_1402 98 brif 98 L1404 L1405 label L1404 load 99 obj_type -strref 100 m46s674 +strref 100 m46s677 call 101 pith_cstring_eq bool 2 99 100 call 102 pith_cstring_release void 1 100 store __and_88_1402 101 @@ -133796,7 +134008,7 @@ label L1405 load 103 __and_88_1402 brif 103 L1400 L1401 label L1400 -strref 104 m46s674 +strref 104 m46s677 load 105 impl_name call 106 pith_cstring_release void 1 105 load 107 declared @@ -133880,14 +134092,14 @@ store __or_14_1412 14 iconst 15 0 store __or_15_1412 15 load 16 op -strref 17 m46s469 +strref 17 m46s472 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 store __or_15_1412 18 brif 18 L1413 L1412 label L1412 load 20 op -strref 21 m46s467 +strref 21 m46s470 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 store __or_15_1412 22 @@ -133897,7 +134109,7 @@ store __or_14_1412 24 brif 24 L1415 L1414 label L1414 load 25 op -strref 26 m46s465 +strref 26 m46s468 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 store __or_14_1412 27 @@ -133907,7 +134119,7 @@ store __or_13_1412 29 brif 29 L1417 L1416 label L1416 load 30 op -strref 31 m46s462 +strref 31 m46s465 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 store __or_13_1412 32 @@ -133917,7 +134129,7 @@ store __or_12_1412 34 brif 34 L1419 L1418 label L1418 load 35 op -strref 36 m46s459 +strref 36 m46s462 call 37 pith_cstring_eq bool 2 35 36 call 38 pith_cstring_release void 1 36 store __or_12_1412 37 @@ -133927,7 +134139,7 @@ store __or_11_1412 39 brif 39 L1421 L1420 label L1420 load 40 op -strref 41 m46s456 +strref 41 m46s459 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 store __or_11_1412 42 @@ -133937,7 +134149,7 @@ store __or_10_1412 44 brif 44 L1423 L1422 label L1422 load 45 op -strref 46 m46s453 +strref 46 m46s456 call 47 pith_cstring_eq bool 2 45 46 call 48 pith_cstring_release void 1 46 store __or_10_1412 47 @@ -133947,7 +134159,7 @@ store __or_9_1412 49 brif 49 L1425 L1424 label L1424 load 50 op -strref 51 m46s451 +strref 51 m46s454 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 store __or_9_1412 52 @@ -133955,7 +134167,7 @@ label L1425 load 54 __or_9_1412 brif 54 L1410 L1411 label L1410 -strref 55 m46s673 +strref 55 m46s676 load 56 op call 57 pith_cstring_release void 1 56 load 58 lt @@ -133981,7 +134193,7 @@ store __or_65_1429 68 brif 68 L1430 L1429 label L1429 load 70 op -strref 71 m46s481 +strref 71 m46s484 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 store __or_65_1429 72 @@ -133991,7 +134203,7 @@ store __or_64_1429 74 brif 74 L1432 L1431 label L1431 load 75 op -strref 76 m46s478 +strref 76 m46s481 call 77 pith_cstring_eq bool 2 75 76 call 78 pith_cstring_release void 1 76 store __or_64_1429 77 @@ -134001,7 +134213,7 @@ store __or_63_1429 79 brif 79 L1434 L1433 label L1433 load 80 op -strref 81 m46s475 +strref 81 m46s478 call 82 pith_cstring_eq bool 2 80 81 call 83 pith_cstring_release void 1 81 store __or_63_1429 82 @@ -134011,7 +134223,7 @@ store __or_62_1429 84 brif 84 L1436 L1435 label L1435 load 85 op -strref 86 m46s472 +strref 86 m46s475 call 87 pith_cstring_eq bool 2 85 86 call 88 pith_cstring_release void 1 86 store __or_62_1429 87 @@ -134045,14 +134257,14 @@ store rt 107 iconst 109 0 store __or_109_1443 109 load 110 lt -strref 111 m46s672 +strref 111 m46s675 call 112 pith_cstring_eq bool 2 110 111 call 113 pith_cstring_release void 1 111 store __or_109_1443 112 brif 112 L1444 L1443 label L1443 load 114 rt -strref 115 m46s672 +strref 115 m46s675 call 116 pith_cstring_eq bool 2 114 115 call 117 pith_cstring_release void 1 115 store __or_109_1443 116 @@ -134060,7 +134272,7 @@ label L1444 load 118 __or_109_1443 brif 118 L1441 L1442 label L1441 -strref 119 m46s672 +strref 119 m46s675 load 120 op call 121 pith_cstring_release void 1 120 load 122 lt @@ -134073,14 +134285,14 @@ label L1440 iconst 126 0 store __or_126_1448 126 load 127 lt -strref 128 m46s675 +strref 128 m46s678 call 129 pith_cstring_eq bool 2 127 128 call 130 pith_cstring_release void 1 128 store __or_126_1448 129 brif 129 L1449 L1448 label L1448 load 131 rt -strref 132 m46s675 +strref 132 m46s678 call 133 pith_cstring_eq bool 2 131 132 call 134 pith_cstring_release void 1 132 store __or_126_1448 133 @@ -134088,7 +134300,7 @@ label L1449 load 135 __or_126_1448 brif 135 L1446 L1447 label L1446 -strref 136 m46s675 +strref 136 m46s678 load 137 op call 138 pith_cstring_release void 1 137 load 139 lt @@ -134101,7 +134313,7 @@ label L1445 jmp L1437 label L1439 label L1437 -strref 143 m46s671 +strref 143 m46s674 load 144 op call 145 pith_cstring_release void 1 144 load 146 lt @@ -134111,7 +134323,7 @@ call 149 pith_cstring_release void 1 148 ret 143 label L1428 label L1426 -strref 150 m46s671 +strref 150 m46s674 load 151 op call 152 pith_cstring_release void 1 151 load 153 lt @@ -134176,12 +134388,12 @@ call 30 ir_emitter_core_ir_infer_type string 1 29 call 31 pith_cstring_release void 1 25 store coll_type 30 load 32 coll_type -strref 33 m46s675 +strref 33 m46s678 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 brif 34 L1457 L1458 label L1457 -strref 36 m46s675 +strref 36 m46s678 load 37 checked_index call 38 pith_cstring_release void 1 37 load 39 coll_type @@ -134190,12 +134402,12 @@ ret 36 label L1458 label L1456 load 41 coll_type -strref 42 m46s674 +strref 42 m46s677 call 43 pith_cstring_eq bool 2 41 42 call 44 pith_cstring_release void 1 42 brif 43 L1460 L1461 label L1460 -strref 45 m46s671 +strref 45 m46s674 load 46 checked_index call 47 pith_cstring_release void 1 46 load 48 coll_type @@ -134204,12 +134416,12 @@ ret 45 label L1461 label L1459 load 50 coll_type -strref 51 m46s668 +strref 51 m46s671 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 brif 52 L1463 L1464 label L1463 -strref 54 m46s675 +strref 54 m46s678 load 55 checked_index call 56 pith_cstring_release void 1 55 load 57 coll_type @@ -134227,7 +134439,7 @@ store __or_59_1468 62 brif 62 L1469 L1468 label L1468 load 64 coll_type -strref 65 m46s670 +strref 65 m46s673 call 66 pith_cstring_eq bool 2 64 65 call 67 pith_cstring_release void 1 65 store __or_59_1468 66 @@ -134586,7 +134798,7 @@ label L1509 load 36 __or_27_1508 brif 36 L1506 L1507 label L1506 -strref 37 m46s673 +strref 37 m46s676 load 38 fname call 39 pith_cstring_release void 1 38 load 40 obj_info @@ -134915,7 +135127,7 @@ ret 62 label L1548 label L1546 load 71 kind -strref 72 m46s515 +strref 72 m46s518 call 73 pith_cstring_eq bool 2 71 72 call 74 pith_cstring_release void 1 72 brif 73 L1550 L1551 @@ -134954,7 +135166,7 @@ label L1549 iconst 98 0 store __and_98_1558 98 load 99 kind -strref 100 m46s512 +strref 100 m46s515 call 101 pith_cstring_eq bool 2 99 100 call 102 pith_cstring_release void 1 100 store __and_98_1558 101 @@ -134987,7 +135199,7 @@ ret 113 label L1557 label L1555 load 122 kind -strref 123 m46s514 +strref 123 m46s517 call 124 pith_cstring_eq bool 2 122 123 call 125 pith_cstring_release void 1 123 brif 124 L1561 L1562 @@ -135006,7 +135218,7 @@ ret 127 label L1562 label L1560 load 136 kind -strref 137 m46s513 +strref 137 m46s516 call 138 pith_cstring_eq bool 2 136 137 call 139 pith_cstring_release void 1 137 brif 138 L1564 L1565 @@ -135084,7 +135296,7 @@ ret 185 label L1574 label L1572 load 194 kind -strref 195 m46s500 +strref 195 m46s503 call 196 pith_cstring_eq bool 2 194 195 call 197 pith_cstring_release void 1 195 brif 196 L1576 L1577 @@ -135390,7 +135602,7 @@ store __or_107_1612 129 brif 129 L1619 L1618 label L1618 load 130 payload_kind -strref 131 m46s674 +strref 131 m46s677 call 132 pith_cstring_eq bool 2 130 131 call 133 pith_cstring_release void 1 131 store __or_107_1612 132 @@ -135400,7 +135612,7 @@ store __or_106_1612 134 brif 134 L1621 L1620 label L1620 load 135 payload_kind -strref 136 m46s824 +strref 136 m46s827 call 137 pith_cstring_eq bool 2 135 136 call 138 pith_cstring_release void 1 136 store __or_106_1612 137 @@ -135654,7 +135866,7 @@ iconst 44 0 store __and_44_1648 44 load 45 recv0 field 46 45 0 string kind -strref 47 m46s515 +strref 47 m46s518 call 48 pith_cstring_eq bool 2 46 47 call 49 pith_cstring_release void 1 47 store __and_44_1648 48 @@ -135729,7 +135941,7 @@ label L1657 load 99 __and_89_1656 brif 99 L1654 L1655 label L1654 -strref 100 m46s666 +strref 100 m46s669 load 101 recv_info field 102 101 64 int inner call 103 ir_type_helpers_ir_type_from_tid string 1 102 @@ -135778,7 +135990,7 @@ label L1662 load 137 __and_127_1661 brif 137 L1659 L1660 label L1659 -strref 138 m46s665 +strref 138 m46s668 load 139 recv_info field 140 139 64 int inner call 141 ir_type_helpers_ir_type_from_tid string 1 140 @@ -135975,7 +136187,7 @@ call 292 pith_struct_release void 1 286 store inner 291 load 293 inner field 294 293 0 string kind -strref 295 m46s515 +strref 295 m46s518 call 296 pith_cstring_eq bool 2 294 295 call 297 pith_cstring_release void 1 295 brif 296 L1680 L1681 @@ -136196,8 +136408,8 @@ call 3 ir_emitter_core_ir_node_is_weak_field_read bool 1 2 brif 3 L1698 L1699 label L1698 call 4 ir_builder_ir_reg int 0 -strref 5 m46s898 -strref 6 m46s828 +strref 5 m46s901 +strref 6 m46s831 load 7 shell_r call 8 ir_call_emit_ir_emit_call1 void 4 4 5 6 7 call 9 pith_cstring_release void 1 5 @@ -136251,7 +136463,7 @@ load 28 merge_l call 29 ir_builder_ir_label string 0 call 30 pith_cstring_release void 1 28 store merge_l 29 -strref 31 m46s834 +strref 31 m46s837 load 32 flag_r call 33 int_to_string string 1 32 concat 34 31 33 @@ -136283,8 +136495,8 @@ load 58 weak_shell brif 58 L1701 L1702 label L1701 call 59 ir_builder_ir_reg int 0 -strref 60 m46s898 -strref 61 m46s828 +strref 60 m46s901 +strref 61 m46s831 load 62 recv_r call 63 ir_call_emit_ir_emit_call1 void 4 59 60 61 62 call 64 pith_cstring_release void 1 60 @@ -136292,7 +136504,7 @@ call 65 pith_cstring_release void 1 61 jmp L1700 label L1702 label L1700 -strref 66 m46s833 +strref 66 m46s836 load 67 merge_l concat 68 66 67 call 69 pith_cstring_release void 1 66 @@ -136304,8 +136516,8 @@ load 74 weak_shell brif 74 L1704 L1705 label L1704 call 75 ir_builder_ir_reg int 0 -strref 76 m46s898 -strref 77 m46s828 +strref 76 m46s901 +strref 77 m46s831 load 78 recv_r call 79 ir_call_emit_ir_emit_call1 void 4 75 76 77 78 call 80 pith_cstring_release void 1 76 @@ -136334,14 +136546,14 @@ strref 89 m46s82 call 90 ir_emitter_core_ir_emit_string_cleanup void 1 89 call 91 pith_cstring_release void 1 89 load 92 si -strref 93 m46s1280 +strref 93 m46s1277 call 94 ir_builder_ir_str string 1 93 call 95 pith_cstring_release void 1 93 call 96 pith_cstring_release void 1 92 store si 94 call 97 ir_builder_ir_reg int 0 store err_r 97 -strref 98 m46s888 +strref 98 m46s891 load 99 err_r call 100 int_to_string string 1 99 concat 101 98 100 @@ -136356,7 +136568,7 @@ concat 109 105 108 call 110 pith_cstring_release void 1 105 call 111 ir_builder_ir_emit void 1 109 call 112 pith_cstring_release void 1 109 -strref 113 m46s849 +strref 113 m46s852 load 114 err_r call 115 ir_emitter_core_ir_emit_err_result_tuple int 1 114 call 116 int_to_string string 1 115 @@ -136511,14 +136723,14 @@ store __or_8_1727 8 iconst 9 0 store __or_9_1727 9 load 10 c0 -strref 11 m46s1279 +strref 11 m46s1276 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 store __or_9_1727 12 brif 12 L1728 L1727 label L1727 load 14 c0 -strref 15 m46s1278 +strref 15 m46s1275 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 store __or_9_1727 16 @@ -136528,7 +136740,7 @@ store __or_8_1727 18 brif 18 L1730 L1729 label L1729 load 19 c0 -strref 20 m46s1277 +strref 20 m46s1274 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 store __or_8_1727 21 @@ -136694,7 +136906,7 @@ call 5 pith_cstring_char_at_strict string 2 3 4 call 6 pith_cstring_release void 1 2 store c0 5 load 7 c0 -strref 8 m46s1279 +strref 8 m46s1276 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L1751 L1752 @@ -136706,7 +136918,7 @@ ret 11 label L1752 label L1750 load 14 c0 -strref 15 m46s1277 +strref 15 m46s1274 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 brif 16 L1754 L1755 @@ -136743,14 +136955,14 @@ store __or_8_1759 8 iconst 9 0 store __or_9_1759 9 load 10 c0 -strref 11 m46s1279 +strref 11 m46s1276 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 store __or_9_1759 12 brif 12 L1760 L1759 label L1759 load 14 c0 -strref 15 m46s1278 +strref 15 m46s1275 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 store __or_9_1759 16 @@ -136760,7 +136972,7 @@ store __or_8_1759 18 brif 18 L1762 L1761 label L1761 load 19 c0 -strref 20 m46s1277 +strref 20 m46s1274 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 store __or_8_1759 21 @@ -136845,7 +137057,7 @@ store __and_21_1771 24 brif 24 L1771 L1772 label L1771 load 25 part_type -strref 26 m46s672 +strref 26 m46s675 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 store __and_21_1771 27 @@ -136858,7 +137070,7 @@ call 31 ir_emitter_core_ir_expr int 1 30 store raw_r 31 call 32 ir_builder_ir_reg int 0 store prec_r 32 -strref 33 m46s832 +strref 33 m46s835 load 34 prec_r call 35 int_to_string string 1 34 concat 36 33 35 @@ -136878,8 +137090,8 @@ call 49 pith_cstring_release void 1 45 call 50 ir_builder_ir_reg int 0 store str_r 50 load 51 str_r -strref 52 m46s1276 -strref 53 m46s675 +strref 52 m46s1273 +strref 53 m46s678 load 54 raw_r load 55 prec_r call 56 ir_call_emit_ir_emit_call2 void 5 51 52 53 54 55 @@ -136909,7 +137121,7 @@ label L1775 label L1773 call 71 ir_builder_ir_reg int 0 store w_r 71 -strref 72 m46s832 +strref 72 m46s835 load 73 w_r call 74 int_to_string string 1 73 concat 75 72 74 @@ -136928,7 +137140,7 @@ call 87 ir_builder_ir_emit void 1 84 call 88 pith_cstring_release void 1 84 call 89 ir_builder_ir_reg int 0 store a_r 89 -strref 90 m46s832 +strref 90 m46s835 load 91 a_r call 92 int_to_string string 1 91 concat 93 90 92 @@ -136948,7 +137160,7 @@ call 106 ir_builder_ir_emit void 1 103 call 107 pith_cstring_release void 1 103 call 108 ir_builder_ir_reg int 0 store f_r 108 -strref 109 m46s832 +strref 109 m46s835 load 110 f_r call 111 int_to_string string 1 110 concat 112 109 111 @@ -136968,13 +137180,13 @@ call 125 ir_builder_ir_emit void 1 122 call 126 pith_cstring_release void 1 122 call 127 ir_builder_ir_reg int 0 store padded_r 127 -strref 128 m46s1033 +strref 128 m46s1035 load 129 padded_r call 130 int_to_string string 1 129 concat 131 128 130 call 132 pith_cstring_release void 1 128 call 133 pith_cstring_release void 1 130 -strref 134 m46s1275 +strref 134 m46s1272 concat 135 131 134 call 136 pith_cstring_release void 1 131 call 137 pith_cstring_release void 1 134 @@ -137019,7 +137231,7 @@ field 174 173 16 list children iconst 175 0 call 176 pith_list_get_value_strict int 2 174 175 call 177 ir_emitter_core_ir_infer_type string 1 176 -strref 178 m46s675 +strref 178 m46s678 call 180 pith_cstring_eq bool 2 177 178 iconst 181 1 sub 179 181 180 @@ -137076,7 +137288,7 @@ call 9 ir_emitter_core_ir_infer_type string 1 8 call 10 pith_cstring_release void 1 7 store part_type 9 load 11 part_type -strref 12 m46s675 +strref 12 m46s678 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 brif 13 L1782 L1783 @@ -137090,7 +137302,7 @@ ret 15 label L1783 label L1781 load 20 part_type -strref 21 m46s673 +strref 21 m46s676 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 brif 22 L1785 L1786 @@ -137098,8 +137310,8 @@ label L1785 call 24 ir_builder_ir_reg int 0 store converted 24 load 25 converted -strref 26 m46s663 -strref 27 m46s675 +strref 26 m46s666 +strref 27 m46s678 load 28 part_r call 29 ir_call_emit_ir_emit_call1 void 4 25 26 27 28 call 30 pith_cstring_release void 1 26 @@ -137113,7 +137325,7 @@ ret 32 label L1786 label L1784 load 37 part_type -strref 38 m46s672 +strref 38 m46s675 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 brif 39 L1788 L1789 @@ -137121,8 +137333,8 @@ label L1788 call 41 ir_builder_ir_reg int 0 store converted 41 load 42 converted -strref 43 m46s664 -strref 44 m46s675 +strref 43 m46s667 +strref 44 m46s678 load 45 part_r call 46 ir_call_emit_ir_emit_call1 void 4 42 43 44 45 call 47 pith_cstring_release void 1 43 @@ -137136,7 +137348,7 @@ ret 49 label L1789 label L1787 load 54 part_type -strref 55 m46s671 +strref 55 m46s674 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 brif 56 L1791 L1792 @@ -137144,8 +137356,8 @@ label L1791 call 58 ir_builder_ir_reg int 0 store converted 58 load 59 converted -strref 60 m46s662 -strref 61 m46s675 +strref 60 m46s665 +strref 61 m46s678 load 62 part_r call 63 ir_call_emit_ir_emit_call1 void 4 59 60 61 62 call 64 pith_cstring_release void 1 60 @@ -137240,7 +137452,7 @@ label L1806 call 130 ir_builder_ir_reg int 0 store converted 130 load 131 converted -strref 132 m46s732 +strref 132 m46s735 strref 133 m46s20 load 134 part_r call 135 ir_call_emit_ir_emit_call1 void 4 131 132 133 134 @@ -137316,7 +137528,7 @@ endfunc func ir_emitter_core_ir_display_kind_code 1 int param kind load 1 kind -strref 2 m46s672 +strref 2 m46s675 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 brif 3 L1817 L1818 @@ -137326,7 +137538,7 @@ ret 5 label L1818 label L1816 load 6 kind -strref 7 m46s673 +strref 7 m46s676 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 brif 8 L1820 L1821 @@ -137336,7 +137548,7 @@ ret 10 label L1821 label L1819 load 11 kind -strref 12 m46s675 +strref 12 m46s678 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 brif 13 L1823 L1824 @@ -137358,7 +137570,7 @@ iconst 3 0 store sort_flag 3 call 4 ir_builder_ir_reg int 0 store kind_r 4 -strref 5 m46s832 +strref 5 m46s835 load 6 kind_r call 7 int_to_string string 1 6 concat 8 5 7 @@ -137392,7 +137604,7 @@ store sort_flag 29 jmp L1825 label L1827 label L1825 -strref 31 m46s832 +strref 31 m46s835 load 32 sort_r call 33 int_to_string string 1 32 concat 34 31 33 @@ -137410,8 +137622,8 @@ call 45 pith_cstring_release void 1 42 call 46 ir_builder_ir_reg int 0 store r 46 load 47 r -strref 48 m46s1274 -strref 49 m46s675 +strref 48 m46s1271 +strref 49 m46s678 load 50 list_r load 51 kind_r load 52 sort_r @@ -137433,7 +137645,7 @@ param key_kind param val_kind call 3 ir_builder_ir_reg int 0 store kk_r 3 -strref 4 m46s832 +strref 4 m46s835 load 5 kk_r call 6 int_to_string string 1 5 concat 7 4 6 @@ -137453,7 +137665,7 @@ call 20 ir_builder_ir_emit void 1 17 call 21 pith_cstring_release void 1 17 call 22 ir_builder_ir_reg int 0 store vk_r 22 -strref 23 m46s832 +strref 23 m46s835 load 24 vk_r call 25 int_to_string string 1 24 concat 26 23 25 @@ -137474,8 +137686,8 @@ call 40 pith_cstring_release void 1 36 call 41 ir_builder_ir_reg int 0 store r 41 load 42 r -strref 43 m46s1273 -strref 44 m46s675 +strref 43 m46s1270 +strref 44 m46s678 load 45 map_r load 46 kk_r load 47 vk_r @@ -137500,7 +137712,7 @@ iconst 5 0 store label 5 load 6 show_name load 7 struct_name -strref 8 m46s1272 +strref 8 m46s1269 call 9 ir_emitter_core_ir_lookup_impl_method_name string 2 7 8 call 10 pith_cstring_release void 1 8 call 11 pith_cstring_release void 1 6 @@ -137515,7 +137727,7 @@ call 16 ir_builder_ir_reg int 0 store r 16 load 17 r load 18 show_name -strref 19 m46s675 +strref 19 m46s678 load 20 obj_r call 21 ir_call_emit_ir_emit_call1 void 4 17 18 19 20 call 22 pith_cstring_release void 1 19 @@ -137533,7 +137745,7 @@ label L1830 label L1828 call 32 ir_builder_ir_reg int 0 store acc_r 32 -strref 33 m46s888 +strref 33 m46s891 load 34 acc_r call 35 int_to_string string 1 34 concat 36 33 35 @@ -137544,7 +137756,7 @@ concat 40 36 39 call 41 pith_cstring_release void 1 36 call 42 pith_cstring_release void 1 39 load 43 struct_name -strref 44 m46s1271 +strref 44 m46s1268 concat 45 43 44 call 46 pith_cstring_release void 1 44 call 47 ir_builder_ir_str string 1 45 @@ -137605,7 +137817,7 @@ label L1836 label L1834 call 89 ir_builder_ir_reg int 0 store label_r 89 -strref 90 m46s888 +strref 90 m46s891 load 91 label_r call 92 int_to_string string 1 91 concat 93 90 92 @@ -137624,7 +137836,7 @@ call 105 ir_builder_ir_emit void 1 102 call 106 pith_cstring_release void 1 102 call 107 ir_builder_ir_reg int 0 store with_label 107 -strref 108 m46s1212 +strref 108 m46s1209 load 109 with_label call 110 int_to_string string 1 109 concat 111 108 110 @@ -137654,7 +137866,7 @@ load 134 acc_r call 135 ir_ownership_ir_string_release_reg void 1 134 call 136 ir_builder_ir_reg int 0 store field_r 136 -strref 137 m46s837 +strref 137 m46s840 load 138 field_r call 139 int_to_string string 1 138 concat 140 137 139 @@ -137699,7 +137911,7 @@ call 178 pith_cstring_release void 1 175 load 179 field_r store text_r 179 load 180 field_kind -strref 181 m46s671 +strref 181 m46s674 call 182 pith_cstring_eq bool 2 180 181 call 183 pith_cstring_release void 1 181 brif 182 L1838 L1839 @@ -137707,8 +137919,8 @@ label L1838 call 184 ir_builder_ir_reg int 0 store text_r 184 load 185 text_r -strref 186 m46s662 -strref 187 m46s675 +strref 186 m46s665 +strref 187 m46s678 load 188 field_r call 189 ir_call_emit_ir_emit_call1 void 4 185 186 187 188 call 190 pith_cstring_release void 1 186 @@ -137716,7 +137928,7 @@ call 191 pith_cstring_release void 1 187 jmp L1837 label L1839 load 192 field_kind -strref 193 m46s672 +strref 193 m46s675 call 194 pith_cstring_eq bool 2 192 193 call 195 pith_cstring_release void 1 193 brif 194 L1840 L1841 @@ -137724,8 +137936,8 @@ label L1840 call 196 ir_builder_ir_reg int 0 store text_r 196 load 197 text_r -strref 198 m46s664 -strref 199 m46s675 +strref 198 m46s667 +strref 199 m46s678 load 200 field_r call 201 ir_call_emit_ir_emit_call1 void 4 197 198 199 200 call 202 pith_cstring_release void 1 198 @@ -137733,7 +137945,7 @@ call 203 pith_cstring_release void 1 199 jmp L1837 label L1841 load 204 field_kind -strref 205 m46s673 +strref 205 m46s676 call 206 pith_cstring_eq bool 2 204 205 call 207 pith_cstring_release void 1 205 brif 206 L1842 L1843 @@ -137741,8 +137953,8 @@ label L1842 call 208 ir_builder_ir_reg int 0 store text_r 208 load 209 text_r -strref 210 m46s663 -strref 211 m46s675 +strref 210 m46s666 +strref 211 m46s678 load 212 field_r call 213 ir_call_emit_ir_emit_call1 void 4 209 210 211 212 call 214 pith_cstring_release void 1 210 @@ -137750,7 +137962,7 @@ call 215 pith_cstring_release void 1 211 jmp L1837 label L1843 load 216 field_kind -strref 217 m46s675 +strref 217 m46s678 call 219 pith_cstring_eq bool 2 216 217 iconst 220 1 sub 218 220 219 @@ -137759,7 +137971,7 @@ brif 218 L1844 L1845 label L1844 call 222 ir_builder_ir_reg int 0 store text_r 222 -strref 223 m46s888 +strref 223 m46s891 load 224 text_r call 225 int_to_string string 1 224 concat 226 223 225 @@ -137782,7 +137994,7 @@ label L1845 label L1837 call 241 ir_builder_ir_reg int 0 store next_acc 241 -strref 242 m46s1212 +strref 242 m46s1209 load 243 next_acc call 244 int_to_string string 1 243 concat 245 242 244 @@ -137815,14 +138027,14 @@ store __or_270_1849 270 iconst 271 0 store __or_271_1849 271 load 272 field_kind -strref 273 m46s671 +strref 273 m46s674 call 274 pith_cstring_eq bool 2 272 273 call 275 pith_cstring_release void 1 273 store __or_271_1849 274 brif 274 L1850 L1849 label L1849 load 276 field_kind -strref 277 m46s672 +strref 277 m46s675 call 278 pith_cstring_eq bool 2 276 277 call 279 pith_cstring_release void 1 277 store __or_271_1849 278 @@ -137832,7 +138044,7 @@ store __or_270_1849 280 brif 280 L1852 L1851 label L1851 load 281 field_kind -strref 282 m46s673 +strref 282 m46s676 call 283 pith_cstring_eq bool 2 281 282 call 284 pith_cstring_release void 1 282 store __or_270_1849 283 @@ -137855,7 +138067,7 @@ jmp L1831 label L1833 call 292 ir_builder_ir_reg int 0 store close_r 292 -strref 293 m46s888 +strref 293 m46s891 load 294 close_r call 295 int_to_string string 1 294 concat 296 293 295 @@ -137875,7 +138087,7 @@ call 309 ir_builder_ir_emit void 1 306 call 310 pith_cstring_release void 1 306 call 311 ir_builder_ir_reg int 0 store out_r 311 -strref 312 m46s1212 +strref 312 m46s1209 load 313 out_r call 314 int_to_string string 1 313 concat 315 312 314 @@ -137927,7 +138139,7 @@ endfunc func ir_emitter_core_ir_closure_capture_tag 1 int param kind load 1 kind -strref 2 m46s675 +strref 2 m46s678 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 brif 3 L1854 L1855 @@ -137967,7 +138179,7 @@ ret 20 label L1864 label L1862 load 21 kind -strref 22 m46s674 +strref 22 m46s677 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 brif 23 L1866 L1867 @@ -137987,7 +138199,7 @@ ret 30 label L1870 label L1868 load 31 kind -strref 32 m46s824 +strref 32 m46s827 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 brif 33 L1872 L1873 @@ -138031,7 +138243,7 @@ load 15 __loopvar_330_capture_name call 16 ir_emitter_core_ir_emit_name_load void 2 14 15 call 17 ir_builder_ir_reg int 0 store slot 17 -strref 18 m46s832 +strref 18 m46s835 load 19 slot call 20 int_to_string string 1 19 concat 21 18 20 @@ -138066,7 +138278,7 @@ load 46 cap_kind call 47 ir_ownership_ir_rc_retain_reg void 2 45 46 call 48 ir_builder_ir_reg int 0 store tag_r 48 -strref 49 m46s832 +strref 49 m46s835 load 50 tag_r call 51 int_to_string string 1 50 concat 52 49 51 @@ -138085,8 +138297,8 @@ call 64 pith_cstring_release void 1 61 call 65 ir_builder_ir_emit void 1 62 call 66 pith_cstring_release void 1 62 call 67 ir_builder_ir_reg int 0 -strref 68 m46s1270 -strref 69 m46s828 +strref 68 m46s1267 +strref 69 m46s831 iconst 70 4 strref 71 m46s336 load 72 closure_r @@ -138128,8 +138340,8 @@ call 107 pith_cstring_release void 1 101 jmp L1878 label L1880 call 108 ir_builder_ir_reg int 0 -strref 109 m46s726 -strref 110 m46s828 +strref 109 m46s729 +strref 110 m46s831 load 111 closure_r load 112 slot load 113 cap_val @@ -138153,11 +138365,11 @@ func ir_emitter_core_ir_emit_lambda_hidden_param 0 void call 0 ir_builder_ir_reg int 0 store closure_r 0 load 1 ir_builder_ir_var_regs -strref 2 m46s1268 +strref 2 m46s1265 load 3 closure_r call 4 map_insert void 3 1 2 3 call 5 pith_cstring_release void 1 2 -strref 6 m46s1269 +strref 6 m46s1266 call 7 ir_builder_ir_emit void 1 6 call 8 pith_cstring_release void 1 6 iconst 9 0 @@ -138166,7 +138378,7 @@ endfunc func ir_emitter_core_ir_emit_lambda_capture_loads 1 void param captures load 1 ir_builder_ir_var_regs -strref 2 m46s1268 +strref 2 m46s1265 call 3 map_get_strict int 2 1 2 call 4 pith_cstring_release void 1 2 store closure_r 3 @@ -138192,7 +138404,7 @@ call 15 ir_builder_ir_reg int 0 store cap_r 15 call 16 ir_builder_ir_reg int 0 store slot_r 16 -strref 17 m46s832 +strref 17 m46s835 load 18 slot_r call 19 int_to_string string 1 18 concat 20 17 19 @@ -138210,8 +138422,8 @@ call 31 pith_cstring_release void 1 28 call 32 ir_builder_ir_emit void 1 29 call 33 pith_cstring_release void 1 29 load 34 cap_r -strref 35 m46s724 -strref 36 m46s822 +strref 35 m46s727 +strref 36 m46s825 load 37 closure_r load 38 slot_r call 39 ir_call_emit_ir_emit_call2 void 5 34 35 36 37 38 @@ -138221,7 +138433,7 @@ load 42 ir_builder_ir_var_regs load 43 __loopvar_331_capture_name load 44 cap_r call 45 map_insert void 3 42 43 44 -strref 46 m46s830 +strref 46 m46s833 load 47 __loopvar_331_capture_name concat 48 46 47 call 49 pith_cstring_release void 1 46 @@ -138324,8 +138536,8 @@ label L1890 call 6 ir_builder_ir_reg int 0 store eq_r 6 load 7 eq_r -strref 8 m46s722 -strref 9 m46s673 +strref 8 m46s725 +strref 9 m46s676 load 10 left_r load 11 right_r call 12 ir_call_emit_ir_emit_call2 void 5 7 8 9 10 11 @@ -138333,19 +138545,19 @@ call 13 pith_cstring_release void 1 8 call 14 pith_cstring_release void 1 9 call 15 ir_builder_ir_reg int 0 store one_r 15 -strref 16 m46s832 +strref 16 m46s835 load 17 one_r call 18 int_to_string string 1 17 concat 19 16 18 call 20 pith_cstring_release void 1 16 call 21 pith_cstring_release void 1 18 -strref 22 m46s842 +strref 22 m46s845 concat 23 19 22 call 24 pith_cstring_release void 1 19 call 25 pith_cstring_release void 1 22 call 26 ir_builder_ir_emit void 1 23 call 27 pith_cstring_release void 1 23 -strref 28 m46s1030 +strref 28 m46s1032 load 29 result_reg call 30 int_to_string string 1 29 concat 31 28 30 @@ -138381,8 +138593,8 @@ label L1893 call 56 ir_builder_ir_reg int 0 store eq_r 56 load 57 eq_r -strref 58 m46s1258 -strref 59 m46s673 +strref 58 m46s1255 +strref 59 m46s676 load 60 left_r load 61 right_r call 62 ir_call_emit_ir_emit_call2 void 5 57 58 59 60 61 @@ -138390,19 +138602,19 @@ call 63 pith_cstring_release void 1 58 call 64 pith_cstring_release void 1 59 call 65 ir_builder_ir_reg int 0 store one_r 65 -strref 66 m46s832 +strref 66 m46s835 load 67 one_r call 68 int_to_string string 1 67 concat 69 66 68 call 70 pith_cstring_release void 1 66 call 71 pith_cstring_release void 1 68 -strref 72 m46s842 +strref 72 m46s845 concat 73 69 72 call 74 pith_cstring_release void 1 69 call 75 pith_cstring_release void 1 72 call 76 ir_builder_ir_emit void 1 73 call 77 pith_cstring_release void 1 73 -strref 78 m46s1030 +strref 78 m46s1032 load 79 result_reg call 80 int_to_string string 1 79 concat 81 78 80 @@ -138432,7 +138644,7 @@ iconst 104 0 ret 104 label L1894 label L1892 -strref 105 m46s1035 +strref 105 m46s1037 load 106 result_reg call 107 int_to_string string 1 106 concat 108 105 107 @@ -138554,7 +138766,7 @@ jmp L1905 label L1907 label L1905 load 59 obj_type -strref 60 m46s675 +strref 60 m46s678 call 61 pith_cstring_eq bool 2 59 60 call 62 pith_cstring_release void 1 60 load 63 node @@ -138578,14 +138790,14 @@ store __or_2_1908 2 iconst 3 0 store __or_3_1908 3 load 4 simple_op -strref 5 m46s465 +strref 5 m46s468 call 6 pith_cstring_eq bool 2 4 5 call 7 pith_cstring_release void 1 5 store __or_3_1908 6 brif 6 L1909 L1908 label L1908 load 8 simple_op -strref 9 m46s462 +strref 9 m46s465 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 store __or_3_1908 10 @@ -138595,7 +138807,7 @@ store __or_2_1908 12 brif 12 L1911 L1910 label L1910 load 13 simple_op -strref 14 m46s459 +strref 14 m46s462 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 store __or_2_1908 15 @@ -138605,7 +138817,7 @@ store __or_1_1908 17 brif 17 L1913 L1912 label L1912 load 18 simple_op -strref 19 m46s456 +strref 19 m46s459 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 store __or_1_1908 20 @@ -138624,7 +138836,7 @@ store arg_kind 3 iconst 4 0 store __and_4_1917 4 load 5 expr_type -strref 6 m46s675 +strref 6 m46s678 call 7 pith_cstring_eq bool 2 5 6 call 8 pith_cstring_release void 1 6 store __and_4_1917 7 @@ -138646,7 +138858,7 @@ label L1916 iconst 16 0 store __and_16_1921 16 load 17 expr_type -strref 18 m46s674 +strref 18 m46s677 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 store __and_16_1921 19 @@ -138662,7 +138874,7 @@ load 25 __and_16_1921 brif 25 L1919 L1920 label L1919 load 26 reg -strref 27 m46s674 +strref 27 m46s677 call 28 ir_ownership_ir_rc_release_reg void 2 26 27 call 29 pith_cstring_release void 1 27 jmp L1914 @@ -138702,7 +138914,7 @@ store __or_47_1932 47 load 48 expr_idx call 49 ast_get_node struct:Node 1 48 field 50 49 0 string kind -strref 51 m46s501 +strref 51 m46s504 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 store __or_47_1932 52 @@ -138719,7 +138931,7 @@ load 57 __and_42_1930 brif 57 L1928 L1929 label L1928 load 58 arg_kind -strref 59 m46s824 +strref 59 m46s827 call 60 pith_cstring_release void 1 58 store arg_kind 59 jmp L1927 @@ -138737,7 +138949,7 @@ store __or_62_1937 65 brif 65 L1938 L1937 label L1937 load 67 arg_kind -strref 68 m46s824 +strref 68 m46s827 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 store __or_62_1937 69 @@ -138856,7 +139068,7 @@ jmp L1951 label L1953 label L1951 load 55 expr_type -strref 56 m46s675 +strref 56 m46s678 call 57 pith_cstring_eq bool 2 55 56 call 58 pith_cstring_release void 1 56 load 59 node @@ -138911,7 +139123,7 @@ call 24 pith_cstring_char_at_strict string 2 22 23 call 25 pith_cstring_release void 1 21 store c 24 load 26 c -strref 27 m46s1265 +strref 27 m46s1262 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L1961 L1962 @@ -138960,7 +139172,7 @@ call 56 pith_cstring_char_at_strict string 2 54 55 call 57 pith_cstring_release void 1 53 store e 56 load 58 e -strref 59 m46s1267 +strref 59 m46s1264 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 brif 60 L1969 L1970 @@ -138974,7 +139186,7 @@ ret 62 label L1970 label L1968 load 67 e -strref 68 m46s1234 +strref 68 m46s1231 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 brif 69 L1972 L1973 @@ -138988,7 +139200,7 @@ ret 71 label L1973 label L1971 load 76 e -strref 77 m46s1266 +strref 77 m46s1263 call 78 pith_cstring_eq bool 2 76 77 call 79 pith_cstring_release void 1 77 brif 78 L1975 L1976 @@ -139016,7 +139228,7 @@ ret 89 label L1979 label L1977 load 94 e -strref 95 m46s1265 +strref 95 m46s1262 call 96 pith_cstring_eq bool 2 94 95 call 97 pith_cstring_release void 1 95 brif 96 L1981 L1982 @@ -139030,7 +139242,7 @@ ret 98 label L1982 label L1980 load 103 e -strref 104 m46s1264 +strref 104 m46s1261 call 105 pith_cstring_eq bool 2 103 104 call 106 pith_cstring_release void 1 104 brif 105 L1984 L1985 @@ -139127,8 +139339,8 @@ store idx_r 31 call 32 ir_builder_ir_reg int 0 store r 32 load 33 r -strref 34 m46s1263 -strref 35 m46s671 +strref 34 m46s1260 +strref 35 m46s674 load 36 obj_r load 37 idx_r call 38 ir_call_emit_ir_emit_call2 void 5 33 34 35 36 37 @@ -139162,7 +139374,7 @@ iconst 58 0 store __or_58_2000 58 load 59 node field 60 59 0 string kind -strref 61 m46s517 +strref 61 m46s520 call 62 pith_cstring_eq bool 2 60 61 call 63 pith_cstring_release void 1 61 store __or_58_2000 62 @@ -139170,7 +139382,7 @@ brif 62 L2001 L2000 label L2000 load 64 node field 65 64 0 string kind -strref 66 m46s675 +strref 66 m46s678 call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 66 store __or_58_2000 67 @@ -139181,7 +139393,7 @@ brif 69 L2003 L2002 label L2002 load 70 node field 71 70 0 string kind -strref 72 m46s1025 +strref 72 m46s1027 call 73 pith_cstring_eq bool 2 71 72 call 74 pith_cstring_release void 1 72 store __or_57_2000 73 @@ -139200,7 +139412,7 @@ brif 81 L2005 L2006 label L2005 call 82 ir_builder_ir_reg int 0 store r 82 -strref 83 m46s832 +strref 83 m46s835 load 84 r call 85 int_to_string string 1 84 concat 86 83 85 @@ -139289,7 +139501,7 @@ brif 147 L2015 L2016 label L2015 load 149 callee field 150 149 8 string value -strref 151 m46s1262 +strref 151 m46s1259 call 152 pith_cstring_eq bool 2 150 151 call 153 pith_cstring_release void 1 151 store __and_143_2015 152 @@ -139300,7 +139512,7 @@ brif 154 L2017 L2018 label L2017 load 155 arg field 156 155 0 string kind -strref 157 m46s519 +strref 157 m46s522 call 158 pith_cstring_eq bool 2 156 157 call 159 pith_cstring_release void 1 157 store __and_142_2015 158 @@ -139310,7 +139522,7 @@ brif 160 L2013 L2014 label L2013 call 161 ir_builder_ir_reg int 0 store r 161 -strref 162 m46s832 +strref 162 m46s835 load 163 r call 164 int_to_string string 1 163 concat 165 162 164 @@ -139408,7 +139620,7 @@ iconst 29 0 store __or_29_2027 29 load 30 node field 31 30 0 string kind -strref 32 m46s517 +strref 32 m46s520 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 store __or_29_2027 33 @@ -139416,7 +139628,7 @@ brif 33 L2028 L2027 label L2027 load 35 node field 36 35 0 string kind -strref 37 m46s675 +strref 37 m46s678 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 store __or_29_2027 38 @@ -139427,7 +139639,7 @@ brif 40 L2030 L2029 label L2029 load 41 node field 42 41 0 string kind -strref 43 m46s1025 +strref 43 m46s1027 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 store __or_28_2027 44 @@ -139499,7 +139711,7 @@ brif 89 L2036 L2037 label L2036 load 91 callee field 92 91 8 string value -strref 93 m46s1262 +strref 93 m46s1259 call 94 pith_cstring_eq bool 2 92 93 call 95 pith_cstring_release void 1 93 store __and_85_2036 94 @@ -139510,7 +139722,7 @@ brif 96 L2038 L2039 label L2038 load 97 arg field 98 97 0 string kind -strref 99 m46s519 +strref 99 m46s522 call 100 pith_cstring_eq bool 2 98 99 call 101 pith_cstring_release void 1 99 store __and_84_2036 100 @@ -139606,7 +139818,7 @@ field 43 42 16 list children iconst 44 0 call 45 pith_list_get_value_strict int 2 43 44 call 46 ir_emitter_core_ir_infer_type string 1 45 -strref 47 m46s675 +strref 47 m46s678 call 49 pith_cstring_eq bool 2 46 47 iconst 50 1 sub 48 50 49 @@ -139620,7 +139832,7 @@ field 54 53 16 list children iconst 55 1 call 56 pith_list_get_value_strict int 2 54 55 call 57 ir_emitter_core_ir_infer_type string 1 56 -strref 58 m46s675 +strref 58 m46s678 call 60 pith_cstring_eq bool 2 57 58 iconst 61 1 sub 59 61 60 @@ -139690,12 +139902,12 @@ store right_b 104 call 105 ir_builder_ir_reg int 0 store r 105 load 106 op -strref 107 m46s469 +strref 107 m46s472 call 108 pith_cstring_eq bool 2 106 107 call 109 pith_cstring_release void 1 107 brif 108 L2056 L2057 label L2056 -strref 110 m46s839 +strref 110 m46s842 load 111 r call 112 int_to_string string 1 111 concat 113 110 112 @@ -139723,7 +139935,7 @@ call 134 ir_builder_ir_emit void 1 131 call 135 pith_cstring_release void 1 131 jmp L2055 label L2057 -strref 136 m46s1035 +strref 136 m46s1037 load 137 r call 138 int_to_string string 1 137 concat 139 136 138 @@ -139786,19 +139998,19 @@ call 13 pith_cstring_release void 1 10 store temp_name 12 call 14 ir_builder_ir_reg int 0 store default_r 14 -strref 15 m46s832 +strref 15 m46s835 load 16 default_r call 17 int_to_string string 1 16 concat 18 15 17 call 19 pith_cstring_release void 1 15 call 20 pith_cstring_release void 1 17 -strref 21 m46s831 +strref 21 m46s834 concat 22 18 21 call 23 pith_cstring_release void 1 18 call 24 pith_cstring_release void 1 21 call 25 ir_builder_ir_emit void 1 22 call 26 pith_cstring_release void 1 22 -strref 27 m46s830 +strref 27 m46s833 load 28 temp_name concat 29 27 28 call 30 pith_cstring_release void 1 27 @@ -139819,7 +140031,7 @@ iconst 44 0 call 45 pith_list_get_value_strict int 2 43 44 call 46 ir_emitter_core_ir_expr int 1 45 store left_r 46 -strref 47 m46s830 +strref 47 m46s833 load 48 temp_name concat 49 47 48 call 50 pith_cstring_release void 1 47 @@ -139843,12 +140055,12 @@ call 66 ir_builder_ir_label string 0 call 67 pith_cstring_release void 1 65 store merge_l 66 load 68 op -strref 69 m46s451 +strref 69 m46s454 call 70 pith_cstring_eq bool 2 68 69 call 71 pith_cstring_release void 1 69 brif 70 L2059 L2060 label L2059 -strref 72 m46s834 +strref 72 m46s837 load 73 left_r call 74 int_to_string string 1 73 concat 75 72 74 @@ -139872,7 +140084,7 @@ call 92 ir_builder_ir_emit void 1 90 call 93 pith_cstring_release void 1 90 jmp L2058 label L2060 -strref 94 m46s834 +strref 94 m46s837 load 95 left_r call 96 int_to_string string 1 95 concat 97 94 96 @@ -139895,7 +140107,7 @@ call 113 pith_cstring_release void 1 108 call 114 ir_builder_ir_emit void 1 112 call 115 pith_cstring_release void 1 112 label L2058 -strref 116 m46s984 +strref 116 m46s986 load 117 right_l concat 118 116 117 call 119 pith_cstring_release void 1 116 @@ -139907,7 +140119,7 @@ iconst 124 1 call 125 pith_list_get_value_strict int 2 123 124 call 126 ir_emitter_core_ir_expr int 1 125 store right_r 126 -strref 127 m46s830 +strref 127 m46s833 load 128 temp_name concat 129 127 128 call 130 pith_cstring_release void 1 127 @@ -139922,7 +140134,7 @@ call 138 pith_cstring_release void 1 132 call 139 pith_cstring_release void 1 136 call 140 ir_builder_ir_emit void 1 137 call 141 pith_cstring_release void 1 137 -strref 142 m46s984 +strref 142 m46s986 load 143 merge_l concat 144 142 143 call 145 pith_cstring_release void 1 142 @@ -139930,7 +140142,7 @@ call 146 ir_builder_ir_emit void 1 144 call 147 pith_cstring_release void 1 144 call 148 ir_builder_ir_reg int 0 store r 148 -strref 149 m46s829 +strref 149 m46s832 load 150 r call 151 int_to_string string 1 150 concat 152 149 151 @@ -140025,7 +140237,7 @@ iconst 1 0 store __or_1_2070 1 load 2 node field 3 2 8 string value -strref 4 m46s469 +strref 4 m46s472 call 5 pith_cstring_eq bool 2 3 4 call 6 pith_cstring_release void 1 4 store __or_1_2070 5 @@ -140033,7 +140245,7 @@ brif 5 L2071 L2070 label L2070 load 7 node field 8 7 8 string value -strref 9 m46s467 +strref 9 m46s470 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 store __or_1_2070 10 @@ -140062,7 +140274,7 @@ iconst 21 0 store __or_21_2078 21 load 22 node field 23 22 8 string value -strref 24 m46s453 +strref 24 m46s456 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 store __or_21_2078 25 @@ -140070,7 +140282,7 @@ brif 25 L2079 L2078 label L2078 load 27 node field 28 27 8 string value -strref 29 m46s451 +strref 29 m46s454 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 store __or_21_2078 30 @@ -140187,14 +140399,14 @@ store right_node 46 iconst 48 0 store __or_48_2086 48 load 49 op -strref 50 m46s469 +strref 50 m46s472 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 50 store __or_48_2086 51 brif 51 L2087 L2086 label L2086 load 53 op -strref 54 m46s467 +strref 54 m46s470 call 55 pith_cstring_eq bool 2 53 54 call 56 pith_cstring_release void 1 54 store __or_48_2086 55 @@ -140677,14 +140889,14 @@ store right_type 25 iconst 27 0 store __or_27_2139 27 load 28 left_type -strref 29 m46s675 +strref 29 m46s678 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 store __or_27_2139 30 brif 30 L2140 L2139 label L2139 load 32 right_type -strref 33 m46s675 +strref 33 m46s678 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 store __or_27_2139 34 @@ -140694,14 +140906,14 @@ store is_str_op 36 iconst 37 0 store __and_37_2141 37 load 38 left_type -strref 39 m46s674 +strref 39 m46s677 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 store __and_37_2141 40 brif 40 L2141 L2142 label L2141 load 42 right_type -strref 43 m46s674 +strref 43 m46s677 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 store __and_37_2141 44 @@ -140711,14 +140923,14 @@ store is_bytes_op 46 iconst 47 0 store __or_47_2143 47 load 48 left_type -strref 49 m46s672 +strref 49 m46s675 call 50 pith_cstring_eq bool 2 48 49 call 51 pith_cstring_release void 1 49 store __or_47_2143 50 brif 50 L2144 L2143 label L2143 load 52 right_type -strref 53 m46s672 +strref 53 m46s675 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 store __or_47_2143 54 @@ -140770,7 +140982,7 @@ label L2154 load 82 __and_76_2153 brif 82 L2151 L2152 label L2151 -strref 83 m46s1212 +strref 83 m46s1209 load 84 r call 85 int_to_string string 1 84 concat 86 83 85 @@ -140813,7 +141025,7 @@ call 122 ir_emitter_core_ir_release_owned_string_operand void 3 119 120 121 jmp L2150 label L2152 load 123 op -strref 124 m46s469 +strref 124 m46s472 call 125 pith_cstring_eq bool 2 123 124 call 126 pith_cstring_release void 1 124 brif 125 L2155 L2156 @@ -140822,8 +141034,8 @@ load 127 is_str_op brif 127 L2158 L2159 label L2158 load 128 r -strref 129 m46s722 -strref 130 m46s673 +strref 129 m46s725 +strref 130 m46s676 load 131 left_r load 132 right_r call 133 ir_call_emit_ir_emit_call2 void 5 128 129 130 131 132 @@ -140849,8 +141061,8 @@ load 150 is_bytes_op brif 150 L2160 L2161 label L2160 load 151 r -strref 152 m46s1258 -strref 153 m46s673 +strref 152 m46s1255 +strref 153 m46s676 load 154 left_r load 155 right_r call 156 ir_call_emit_ir_emit_call2 void 5 151 152 153 154 155 @@ -140869,13 +141081,13 @@ call 166 pith_cstring_release void 1 161 brif 162 L2162 L2163 label L2162 load 167 r -strref 168 m46s1158 +strref 168 m46s1155 load 169 node call 170 ir_struct_registry_ir_binary_enum_eq_name string 1 169 concat 171 168 170 call 172 pith_cstring_release void 1 168 call 173 pith_cstring_release void 1 170 -strref 174 m46s673 +strref 174 m46s676 load 175 left_r load 176 right_r call 177 ir_call_emit_ir_emit_call2 void 5 167 171 174 175 176 @@ -140884,7 +141096,7 @@ call 179 pith_cstring_release void 1 174 jmp L2157 label L2163 load 180 r -strref 181 m46s469 +strref 181 m46s472 load 182 left_r load 183 right_r call 184 ir_operator_helpers_ir_emit_simple_binary void 4 180 181 182 183 @@ -140893,7 +141105,7 @@ label L2157 jmp L2150 label L2156 load 186 op -strref 187 m46s467 +strref 187 m46s470 call 188 pith_cstring_eq bool 2 186 187 call 189 pith_cstring_release void 1 187 brif 188 L2164 L2165 @@ -140911,13 +141123,13 @@ label L2167 call 198 ir_builder_ir_reg int 0 store eq_r 198 load 199 eq_r -strref 200 m46s1158 +strref 200 m46s1155 load 201 node call 202 ir_struct_registry_ir_binary_enum_eq_name string 1 201 concat 203 200 202 call 204 pith_cstring_release void 1 200 call 205 pith_cstring_release void 1 202 -strref 206 m46s673 +strref 206 m46s676 load 207 left_r load 208 right_r call 209 ir_call_emit_ir_emit_call2 void 5 199 203 206 207 208 @@ -140925,19 +141137,19 @@ call 210 pith_cstring_release void 1 203 call 211 pith_cstring_release void 1 206 call 212 ir_builder_ir_reg int 0 store zr 212 -strref 213 m46s832 +strref 213 m46s835 load 214 zr call 215 int_to_string string 1 214 concat 216 213 215 call 217 pith_cstring_release void 1 213 call 218 pith_cstring_release void 1 215 -strref 219 m46s831 +strref 219 m46s834 concat 220 216 219 call 221 pith_cstring_release void 1 216 call 222 pith_cstring_release void 1 219 call 223 ir_builder_ir_emit void 1 220 call 224 pith_cstring_release void 1 220 -strref 225 m46s839 +strref 225 m46s842 load 226 r call 227 int_to_string string 1 226 concat 228 225 227 @@ -141019,14 +141231,14 @@ load 284 __and_280_2178 brif 284 L2176 L2177 label L2176 load 285 simple_op -strref 286 m46s465 +strref 286 m46s468 call 287 pith_cstring_eq bool 2 285 286 call 288 pith_cstring_release void 1 286 brif 287 L2181 L2182 label L2181 load 289 r -strref 290 m46s1261 -strref 291 m46s673 +strref 290 m46s1258 +strref 291 m46s676 load 292 left_r load 293 right_r call 294 ir_call_emit_ir_emit_call2 void 5 289 290 291 292 293 @@ -141035,14 +141247,14 @@ call 296 pith_cstring_release void 1 291 jmp L2180 label L2182 load 297 simple_op -strref 298 m46s459 +strref 298 m46s462 call 299 pith_cstring_eq bool 2 297 298 call 300 pith_cstring_release void 1 298 brif 299 L2183 L2184 label L2183 load 301 r -strref 302 m46s1260 -strref 303 m46s673 +strref 302 m46s1257 +strref 303 m46s676 load 304 left_r load 305 right_r call 306 ir_call_emit_ir_emit_call2 void 5 301 302 303 304 305 @@ -141051,14 +141263,14 @@ call 308 pith_cstring_release void 1 303 jmp L2180 label L2184 load 309 simple_op -strref 310 m46s462 +strref 310 m46s465 call 311 pith_cstring_eq bool 2 309 310 call 312 pith_cstring_release void 1 310 brif 311 L2185 L2186 label L2185 load 313 r -strref 314 m46s1261 -strref 315 m46s673 +strref 314 m46s1258 +strref 315 m46s676 load 316 right_r load 317 left_r call 318 ir_call_emit_ir_emit_call2 void 5 313 314 315 316 317 @@ -141067,8 +141279,8 @@ call 320 pith_cstring_release void 1 315 jmp L2180 label L2186 load 321 r -strref 322 m46s1260 -strref 323 m46s673 +strref 322 m46s1257 +strref 323 m46s676 load 324 right_r load 325 left_r call 326 ir_call_emit_ir_emit_call2 void 5 321 322 323 324 325 @@ -141099,7 +141311,7 @@ call 347 ir_operator_helpers_ir_emit_simple_binary void 4 343 344 345 346 label L2175 jmp L2172 label L2174 -strref 348 m46s1259 +strref 348 m46s1256 load 349 r call 350 int_to_string string 1 349 concat 351 348 350 @@ -141158,13 +141370,13 @@ endfunc func ir_emitter_core_ir_test_assert_fail 0 void call 0 ir_builder_ir_reg int 0 store one_r 0 -strref 1 m46s832 +strref 1 m46s835 load 2 one_r call 3 int_to_string string 1 2 concat 4 1 3 call 5 pith_cstring_release void 1 1 call 6 pith_cstring_release void 1 3 -strref 7 m46s842 +strref 7 m46s845 concat 8 4 7 call 9 pith_cstring_release void 1 4 call 10 pith_cstring_release void 1 7 @@ -141173,8 +141385,8 @@ call 12 pith_cstring_release void 1 8 call 13 ir_builder_ir_reg int 0 store exit_r 13 load 14 exit_r -strref 15 m46s1179 -strref 16 m46s822 +strref 15 m46s1176 +strref 16 m46s825 load 17 one_r call 18 ir_call_emit_ir_emit_call1 void 4 14 15 16 17 call 19 pith_cstring_release void 1 15 @@ -141186,19 +141398,19 @@ func ir_emitter_core_ir_test_assert_fail_return 0 void call 0 ir_emitter_core_ir_test_assert_fail void 0 call 1 ir_builder_ir_reg int 0 store one_r 1 -strref 2 m46s832 +strref 2 m46s835 load 3 one_r call 4 int_to_string string 1 3 concat 5 2 4 call 6 pith_cstring_release void 1 2 call 7 pith_cstring_release void 1 4 -strref 8 m46s842 +strref 8 m46s845 concat 9 5 8 call 10 pith_cstring_release void 1 5 call 11 pith_cstring_release void 1 8 call 12 ir_builder_ir_emit void 1 9 call 13 pith_cstring_release void 1 9 -strref 14 m46s849 +strref 14 m46s852 load 15 one_r call 16 int_to_string string 1 15 concat 17 14 16 @@ -141289,7 +141501,7 @@ load 6 fail_l call 7 ir_builder_ir_label string 0 call 8 pith_cstring_release void 1 6 store fail_l 7 -strref 9 m46s834 +strref 9 m46s837 load 10 arg_regs iconst 11 0 call 12 pith_list_get_value_strict int 2 10 11 @@ -141318,8 +141530,8 @@ call 34 ir_call_emit_ir_emit_label void 1 33 call 35 ir_builder_ir_reg int 0 store assert_r 35 load 36 assert_r -strref 37 m46s1239 -strref 38 m46s822 +strref 37 m46s1236 +strref 38 m46s825 load 39 arg_regs iconst 40 0 call 41 pith_list_get_value_strict int 2 39 40 @@ -141331,13 +141543,13 @@ load 46 ok_l call 47 ir_call_emit_ir_emit_label void 1 46 call 48 ir_builder_ir_reg int 0 store r 48 -strref 49 m46s832 +strref 49 m46s835 load 50 r call 51 int_to_string string 1 50 concat 52 49 51 call 53 pith_cstring_release void 1 49 call 54 pith_cstring_release void 1 51 -strref 55 m46s831 +strref 55 m46s834 concat 56 52 55 call 57 pith_cstring_release void 1 52 call 58 pith_cstring_release void 1 55 @@ -141362,14 +141574,14 @@ param right iconst 2 0 store __or_2_2198 2 load 3 left -strref 4 m46s675 +strref 4 m46s678 call 5 pith_cstring_eq bool 2 3 4 call 6 pith_cstring_release void 1 4 store __or_2_2198 5 brif 5 L2199 L2198 label L2198 load 7 right -strref 8 m46s675 +strref 8 m46s678 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 store __or_2_2198 9 @@ -141377,21 +141589,21 @@ label L2199 load 11 __or_2_2198 brif 11 L2196 L2197 label L2196 -strref 12 m46s675 +strref 12 m46s678 ret 12 label L2197 label L2195 iconst 13 0 store __or_13_2203 13 load 14 left -strref 15 m46s674 +strref 15 m46s677 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 store __or_13_2203 16 brif 16 L2204 L2203 label L2203 load 18 right -strref 19 m46s674 +strref 19 m46s677 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 store __or_13_2203 20 @@ -141399,21 +141611,21 @@ label L2204 load 22 __or_13_2203 brif 22 L2201 L2202 label L2201 -strref 23 m46s674 +strref 23 m46s677 ret 23 label L2202 label L2200 iconst 24 0 store __or_24_2208 24 load 25 left -strref 26 m46s668 +strref 26 m46s671 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 store __or_24_2208 27 brif 27 L2209 L2208 label L2208 load 29 right -strref 30 m46s668 +strref 30 m46s671 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 store __or_24_2208 31 @@ -141421,7 +141633,7 @@ label L2209 load 33 __or_24_2208 brif 33 L2206 L2207 label L2206 -strref 34 m46s668 +strref 34 m46s671 ret 34 label L2207 label L2205 @@ -141450,14 +141662,14 @@ label L2210 iconst 46 0 store __or_46_2218 46 load 47 left -strref 48 m46s672 +strref 48 m46s675 call 49 pith_cstring_eq bool 2 47 48 call 50 pith_cstring_release void 1 48 store __or_46_2218 49 brif 49 L2219 L2218 label L2218 load 51 right -strref 52 m46s672 +strref 52 m46s675 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 store __or_46_2218 53 @@ -141465,21 +141677,21 @@ label L2219 load 55 __or_46_2218 brif 55 L2216 L2217 label L2216 -strref 56 m46s672 +strref 56 m46s675 ret 56 label L2217 label L2215 iconst 57 0 store __or_57_2223 57 load 58 left -strref 59 m46s673 +strref 59 m46s676 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 store __or_57_2223 60 brif 60 L2224 L2223 label L2223 load 62 right -strref 63 m46s673 +strref 63 m46s676 call 64 pith_cstring_eq bool 2 62 63 call 65 pith_cstring_release void 1 63 store __or_57_2223 64 @@ -141487,11 +141699,11 @@ label L2224 load 66 __or_57_2223 brif 66 L2221 L2222 label L2221 -strref 67 m46s673 +strref 67 m46s676 ret 67 label L2222 label L2220 -strref 68 m46s671 +strref 68 m46s674 ret 68 iconst 69 0 ret 69 @@ -141499,7 +141711,7 @@ endfunc func ir_emitter_core_ir_assert_eq_kind_code 1 int param kind load 1 kind -strref 2 m46s672 +strref 2 m46s675 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 brif 3 L2226 L2227 @@ -141509,7 +141721,7 @@ ret 5 label L2227 label L2225 load 6 kind -strref 7 m46s675 +strref 7 m46s678 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 brif 8 L2229 L2230 @@ -141519,7 +141731,7 @@ ret 10 label L2230 label L2228 load 11 kind -strref 12 m46s674 +strref 12 m46s677 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 brif 13 L2232 L2233 @@ -141529,7 +141741,7 @@ ret 15 label L2233 label L2231 load 16 kind -strref 17 m46s673 +strref 17 m46s676 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 brif 18 L2235 L2236 @@ -141549,7 +141761,7 @@ ret 25 label L2239 label L2237 load 26 kind -strref 27 m46s668 +strref 27 m46s671 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L2241 L2242 @@ -141587,14 +141799,14 @@ call 15 pith_cstring_release void 1 12 call 16 pith_cstring_release void 1 6 store kind 13 load 17 kind -strref 18 m46s675 +strref 18 m46s678 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L2244 L2245 label L2244 load 21 cmp_r -strref 22 m46s722 -strref 23 m46s673 +strref 22 m46s725 +strref 23 m46s676 load 24 arg_regs iconst 25 0 call 26 pith_list_get_value_strict int 2 24 25 @@ -141607,14 +141819,14 @@ call 32 pith_cstring_release void 1 23 jmp L2243 label L2245 load 33 kind -strref 34 m46s674 +strref 34 m46s677 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 brif 35 L2246 L2247 label L2246 load 37 cmp_r -strref 38 m46s1258 -strref 39 m46s673 +strref 38 m46s1255 +strref 39 m46s676 load 40 arg_regs iconst 41 0 call 42 pith_list_get_value_strict int 2 40 41 @@ -141627,14 +141839,14 @@ call 48 pith_cstring_release void 1 39 jmp L2243 label L2247 load 49 kind -strref 50 m46s668 +strref 50 m46s671 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 50 brif 51 L2248 L2249 label L2248 load 53 cmp_r -strref 54 m46s1257 -strref 55 m46s673 +strref 54 m46s1254 +strref 55 m46s676 load 56 arg_regs iconst 57 0 call 58 pith_list_get_value_strict int 2 56 57 @@ -141653,8 +141865,8 @@ call 68 pith_cstring_release void 1 66 brif 67 L2250 L2251 label L2250 load 69 cmp_r -strref 70 m46s1256 -strref 71 m46s673 +strref 70 m46s1253 +strref 71 m46s676 load 72 arg_regs iconst 73 0 call 74 pith_list_get_value_strict int 2 72 73 @@ -141667,7 +141879,7 @@ call 80 pith_cstring_release void 1 71 jmp L2243 label L2251 load 81 cmp_r -strref 82 m46s469 +strref 82 m46s472 load 83 arg_regs iconst 84 0 call 85 pith_list_get_value_strict int 2 83 84 @@ -141685,7 +141897,7 @@ load 94 fail_l call 95 ir_builder_ir_label string 0 call 96 pith_cstring_release void 1 94 store fail_l 95 -strref 97 m46s834 +strref 97 m46s837 load 98 cmp_r call 99 int_to_string string 1 98 concat 100 97 99 @@ -141711,7 +141923,7 @@ load 119 fail_l call 120 ir_call_emit_ir_emit_label void 1 119 call 121 ir_builder_ir_reg int 0 store kind_r 121 -strref 122 m46s832 +strref 122 m46s835 load 123 kind_r call 124 int_to_string string 1 123 concat 125 122 124 @@ -141732,8 +141944,8 @@ call 139 pith_cstring_release void 1 135 call 140 ir_builder_ir_reg int 0 store fail_r 140 load 141 fail_r -strref 142 m46s1255 -strref 143 m46s822 +strref 142 m46s1252 +strref 143 m46s825 load 144 arg_regs iconst 145 0 call 146 pith_list_get_value_strict int 2 144 145 @@ -141749,13 +141961,13 @@ load 155 ok_l call 156 ir_call_emit_ir_emit_label void 1 155 call 157 ir_builder_ir_reg int 0 store r 157 -strref 158 m46s832 +strref 158 m46s835 load 159 r call 160 int_to_string string 1 159 concat 161 158 160 call 162 pith_cstring_release void 1 158 call 163 pith_cstring_release void 1 160 -strref 164 m46s831 +strref 164 m46s834 concat 165 161 164 call 166 pith_cstring_release void 1 161 call 167 pith_cstring_release void 1 164 @@ -141778,7 +141990,7 @@ call 182 pith_cstring_release void 1 181 iconst 183 0 ret 183 endfunc -func ir_emitter_core_ir_emit_local_toml_decode_text_path_call 3 int +func ir_emitter_core_ir_emit_local_handle_decode_text_path_call 3 int param idx param node param callee_node @@ -141831,7 +142043,7 @@ iconst 35 1 call 36 pith_list_get_value_strict int 2 34 35 store dotted_path_r 36 load 37 temp_name -strref 38 m46s929 +strref 38 m46s931 call 39 ir_builder_ir_new_temp_name string 1 38 call 40 pith_cstring_release void 1 38 call 41 pith_cstring_release void 1 37 @@ -141848,7 +142060,7 @@ call 49 ir_builder_ir_reg int 0 store parse_result_r 49 load 50 parse_result_r load 51 ir_alias_registry_ir_active_generic_module_path -strref 52 m46s917 +strref 52 m46s920 call 53 ir_generics_ir_resolve_generic_module_call_name string 2 51 52 call 54 pith_cstring_release void 1 52 strref 55 m46s23 @@ -141896,7 +142108,7 @@ eq 87 85 86 brif 87 L2259 L2260 label L2259 load 88 concrete_types -strref 89 m46s1089 +strref 89 m46s1088 load 90 node call 91 ir_emitter_core_ir_infer_generic_concrete_types list_string 2 89 90 call 92 pith_cstring_release void 1 89 @@ -141906,7 +142118,7 @@ jmp L2258 label L2260 label L2258 load 94 decode_path_name -strref 95 m46s928 +strref 95 m46s930 load 96 concrete_types load 97 generic_ret_type call 98 ir_generics_ir_queue_generic_specialization string 3 95 96 97 @@ -141922,7 +142134,7 @@ load 105 root_r load 106 dotted_path_r call 107 ir_call_emit_ir_emit_call2 void 5 102 103 104 105 106 call 108 pith_cstring_release void 1 104 -strref 109 m46s830 +strref 109 m46s833 load 110 temp_name concat 111 109 110 call 112 pith_cstring_release void 1 109 @@ -141941,7 +142153,7 @@ load 124 done_l call 125 ir_call_emit_ir_emit_label void 1 124 call 126 ir_builder_ir_reg int 0 store r 126 -strref 127 m46s829 +strref 127 m46s832 load 128 r call 129 int_to_string string 1 128 concat 130 127 129 @@ -142027,7 +142239,7 @@ sub 4 5 3 brif 4 L2265 L2266 label L2265 load 6 fn_r -strref 7 m46s824 +strref 7 m46s827 call 8 ir_ownership_ir_rc_release_reg void 2 6 7 call 9 pith_cstring_release void 1 7 jmp L2264 @@ -142059,12 +142271,12 @@ load 11 mapper_idx call 12 ir_emitter_core_ir_expr int 1 11 store mapper_r 12 load 13 mapper_name -strref 14 m46s1254 +strref 14 m46s1251 call 15 ir_emitter_core_ir_temp_name string 1 14 call 16 pith_cstring_release void 1 14 call 17 pith_cstring_release void 1 13 store mapper_name 15 -strref 18 m46s830 +strref 18 m46s833 load 19 mapper_name concat 20 18 19 call 21 pith_cstring_release void 1 18 @@ -142142,7 +142354,7 @@ load 75 elem_kind call 76 ir_alias_registry_ir_retkind string 1 75 load 77 mapped_kind call 78 ir_alias_registry_ir_retkind string 1 77 -strref 79 m46s1253 +strref 79 m46s1250 call 80 ir_emitter_core_ir_temp_name string 1 79 call 81 pith_cstring_release void 1 79 call 82 ir_list_helpers_ir_emit_list_map_loop int 7 70 71 72 74 76 78 80 @@ -142234,12 +142446,12 @@ load 9 keep_idx call 10 ir_emitter_core_ir_expr int 1 9 store keep_r 10 load 11 keep_name -strref 12 m46s1252 +strref 12 m46s1249 call 13 ir_emitter_core_ir_temp_name string 1 12 call 14 pith_cstring_release void 1 12 call 15 pith_cstring_release void 1 11 store keep_name 13 -strref 16 m46s830 +strref 16 m46s833 load 17 keep_name concat 18 16 17 call 19 pith_cstring_release void 1 16 @@ -142305,7 +142517,7 @@ load 63 result_kind call 64 ir_alias_registry_ir_retkind string 1 63 load 65 elem_kind call 66 ir_alias_registry_ir_retkind string 1 65 -strref 67 m46s1251 +strref 67 m46s1248 call 68 ir_emitter_core_ir_temp_name string 1 67 call 69 pith_cstring_release void 1 67 call 70 ir_list_helpers_ir_emit_list_filter_loop int 6 60 61 62 64 66 68 @@ -142397,18 +142609,18 @@ load 12 reducer_idx call 13 ir_emitter_core_ir_expr int 1 12 store reducer_r 13 load 14 reducer_name -strref 15 m46s1250 +strref 15 m46s1247 call 16 ir_emitter_core_ir_temp_name string 1 15 call 17 pith_cstring_release void 1 15 call 18 pith_cstring_release void 1 14 store reducer_name 16 load 19 acc_name -strref 20 m46s1249 +strref 20 m46s1246 call 21 ir_emitter_core_ir_temp_name string 1 20 call 22 pith_cstring_release void 1 20 call 23 pith_cstring_release void 1 19 store acc_name 21 -strref 24 m46s830 +strref 24 m46s833 load 25 reducer_name concat 26 24 25 call 27 pith_cstring_release void 1 24 @@ -142423,7 +142635,7 @@ call 35 pith_cstring_release void 1 29 call 36 pith_cstring_release void 1 33 call 37 ir_builder_ir_emit void 1 34 call 38 pith_cstring_release void 1 34 -strref 39 m46s830 +strref 39 m46s833 load 40 acc_name concat 41 39 40 call 42 pith_cstring_release void 1 39 @@ -142469,7 +142681,7 @@ eq 73 71 72 brif 73 L2289 L2290 label L2289 load 74 result_kind -strref 75 m46s822 +strref 75 m46s825 call 76 pith_cstring_release void 1 74 store result_kind 75 jmp L2288 @@ -142482,7 +142694,7 @@ load 80 elem_kind call 81 ir_alias_registry_ir_retkind string 1 80 load 82 result_kind call 83 ir_alias_registry_ir_retkind string 1 82 -strref 84 m46s1248 +strref 84 m46s1245 call 85 ir_emitter_core_ir_temp_name string 1 84 call 86 pith_cstring_release void 1 84 call 87 ir_list_helpers_ir_emit_list_reduce_loop int 6 77 78 79 81 83 85 @@ -142614,13 +142826,13 @@ call 24 ir_type_helpers_ir_list_element_kind string 1 23 call 25 pith_cstring_release void 1 22 store elem_kind 24 load 26 obj_type -strref 27 m46s668 +strref 27 m46s671 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L2304 L2305 label L2304 load 30 elem_kind -strref 31 m46s675 +strref 31 m46s678 call 32 pith_cstring_release void 1 30 store elem_kind 31 jmp L2303 @@ -142630,10 +142842,10 @@ load 33 list_r load 34 target_r load 35 elem_kind call 36 ir_alias_registry_ir_retkind string 1 35 -strref 37 m46s1247 +strref 37 m46s1244 call 38 ir_emitter_core_ir_temp_name string 1 37 call 39 pith_cstring_release void 1 37 -strref 40 m46s1246 +strref 40 m46s1243 call 41 ir_emitter_core_ir_temp_name string 1 40 call 42 pith_cstring_release void 1 40 call 43 ir_list_helpers_ir_emit_list_index_search_loop int 5 33 34 36 38 41 @@ -142673,13 +142885,13 @@ iconst 4 0 store result_name 4 call 5 ir_builder_ir_reg int 0 store zero_r 5 -strref 6 m46s832 +strref 6 m46s835 load 7 zero_r call 8 int_to_string string 1 7 concat 9 6 8 call 10 pith_cstring_release void 1 6 call 11 pith_cstring_release void 1 8 -strref 12 m46s831 +strref 12 m46s834 concat 13 9 12 call 14 pith_cstring_release void 1 9 call 15 pith_cstring_release void 1 12 @@ -142687,7 +142899,7 @@ call 16 ir_builder_ir_emit void 1 13 call 17 pith_cstring_release void 1 13 call 18 ir_builder_ir_reg int 0 store found_r 18 -strref 19 m46s847 +strref 19 m46s850 load 20 found_r call 21 int_to_string string 1 20 concat 22 19 21 @@ -142726,26 +142938,26 @@ call 52 ir_builder_ir_label string 0 call 53 pith_cstring_release void 1 51 store merge_l 52 load 54 result_name -strref 55 m46s1245 +strref 55 m46s1242 call 56 ir_emitter_core_ir_temp_name string 1 55 call 57 pith_cstring_release void 1 55 call 58 pith_cstring_release void 1 54 store result_name 56 call 59 ir_builder_ir_reg int 0 store default_r 59 -strref 60 m46s832 +strref 60 m46s835 load 61 default_r call 62 int_to_string string 1 61 concat 63 60 62 call 64 pith_cstring_release void 1 60 call 65 pith_cstring_release void 1 62 -strref 66 m46s831 +strref 66 m46s834 concat 67 63 66 call 68 pith_cstring_release void 1 63 call 69 pith_cstring_release void 1 66 call 70 ir_builder_ir_emit void 1 67 call 71 pith_cstring_release void 1 67 -strref 72 m46s830 +strref 72 m46s833 load 73 result_name concat 74 72 73 call 75 pith_cstring_release void 1 72 @@ -142760,7 +142972,7 @@ call 83 pith_cstring_release void 1 77 call 84 pith_cstring_release void 1 81 call 85 ir_builder_ir_emit void 1 82 call 86 pith_cstring_release void 1 82 -strref 87 m46s834 +strref 87 m46s837 load 88 found_r call 89 int_to_string string 1 88 concat 90 87 89 @@ -142782,7 +142994,7 @@ concat 105 101 104 call 106 pith_cstring_release void 1 101 call 107 ir_builder_ir_emit void 1 105 call 108 pith_cstring_release void 1 105 -strref 109 m46s984 +strref 109 m46s986 load 110 some_l concat 111 109 110 call 112 pith_cstring_release void 1 109 @@ -142791,7 +143003,7 @@ call 114 pith_cstring_release void 1 111 load 115 raw_r call 116 ir_optionals_ir_emit_optional_some_value int 1 115 store some_tuple 116 -strref 117 m46s830 +strref 117 m46s833 load 118 result_name concat 119 117 118 call 120 pith_cstring_release void 1 117 @@ -142806,13 +143018,13 @@ call 128 pith_cstring_release void 1 122 call 129 pith_cstring_release void 1 126 call 130 ir_builder_ir_emit void 1 127 call 131 pith_cstring_release void 1 127 -strref 132 m46s833 +strref 132 m46s836 load 133 merge_l concat 134 132 133 call 135 pith_cstring_release void 1 132 call 136 ir_builder_ir_emit void 1 134 call 137 pith_cstring_release void 1 134 -strref 138 m46s984 +strref 138 m46s986 load 139 none_l concat 140 138 139 call 141 pith_cstring_release void 1 138 @@ -142820,7 +143032,7 @@ call 142 ir_builder_ir_emit void 1 140 call 143 pith_cstring_release void 1 140 call 144 ir_optionals_ir_emit_optional_none_value int 0 store none_tuple 144 -strref 145 m46s830 +strref 145 m46s833 load 146 result_name concat 147 145 146 call 148 pith_cstring_release void 1 145 @@ -142835,7 +143047,7 @@ call 156 pith_cstring_release void 1 150 call 157 pith_cstring_release void 1 154 call 158 ir_builder_ir_emit void 1 155 call 159 pith_cstring_release void 1 155 -strref 160 m46s984 +strref 160 m46s986 load 161 merge_l concat 162 160 161 call 163 pith_cstring_release void 1 160 @@ -142843,7 +143055,7 @@ call 164 ir_builder_ir_emit void 1 162 call 165 pith_cstring_release void 1 162 call 166 ir_builder_ir_reg int 0 store out_r 166 -strref 167 m46s829 +strref 167 m46s832 load 168 out_r call 169 int_to_string string 1 168 concat 170 167 169 @@ -143067,15 +143279,15 @@ label L2332 iconst 43 0 store __or_43_2340 43 load 44 callee_idx -strref 45 m46s891 +strref 45 m46s894 call 46 ir_alias_registry_ir_is_json_decode_callee bool 2 44 45 call 47 pith_cstring_release void 1 45 store __or_43_2340 46 brif 46 L2341 L2340 label L2340 load 48 callee_idx -strref 49 m46s891 -strref 50 m46s935 +strref 49 m46s894 +strref 50 m46s937 call 51 ir_emitter_core_ir_is_local_generic_callee bool 3 48 49 50 call 52 pith_cstring_release void 1 49 call 53 pith_cstring_release void 1 50 @@ -143097,15 +143309,15 @@ label L2337 iconst 62 0 store __or_62_2345 62 load 63 callee_idx -strref 64 m46s928 +strref 64 m46s930 call 65 ir_alias_registry_ir_is_json_decode_callee bool 2 63 64 call 66 pith_cstring_release void 1 64 store __or_62_2345 65 brif 65 L2346 L2345 label L2345 load 67 callee_idx -strref 68 m46s928 -strref 69 m46s935 +strref 68 m46s930 +strref 69 m46s937 call 70 ir_emitter_core_ir_is_local_generic_callee bool 3 67 68 69 call 71 pith_cstring_release void 1 68 call 72 pith_cstring_release void 1 69 @@ -143128,14 +143340,14 @@ label L2342 iconst 82 0 store __or_82_2350 82 load 83 callee_idx -strref 84 m46s1089 +strref 84 m46s1088 call 85 ir_alias_registry_ir_is_json_decode_callee bool 2 83 84 call 86 pith_cstring_release void 1 84 store __or_82_2350 85 brif 85 L2351 L2350 label L2350 load 87 callee_idx -strref 88 m46s1089 +strref 88 m46s1088 strref 89 m46s1084 call 90 ir_emitter_core_ir_is_local_generic_callee bool 3 87 88 89 call 91 pith_cstring_release void 1 88 @@ -143159,15 +143371,15 @@ label L2347 iconst 102 0 store __or_102_2355 102 load 103 callee_idx -strref 104 m46s1244 +strref 104 m46s1241 call 105 ir_alias_registry_ir_is_json_decode_callee bool 2 103 104 call 106 pith_cstring_release void 1 104 store __or_102_2355 105 brif 105 L2356 L2355 label L2355 load 107 callee_idx -strref 108 m46s1244 -strref 109 m46s1242 +strref 108 m46s1241 +strref 109 m46s1239 call 110 ir_emitter_core_ir_is_local_generic_callee bool 3 107 108 109 call 111 pith_cstring_release void 1 108 call 112 pith_cstring_release void 1 109 @@ -143190,15 +143402,15 @@ label L2352 iconst 122 0 store __or_122_2360 122 load 123 callee_idx -strref 124 m46s1243 +strref 124 m46s1240 call 125 ir_alias_registry_ir_is_json_decode_callee bool 2 123 124 call 126 pith_cstring_release void 1 124 store __or_122_2360 125 brif 125 L2361 L2360 label L2360 load 127 callee_idx -strref 128 m46s1243 -strref 129 m46s1242 +strref 128 m46s1240 +strref 129 m46s1239 call 130 ir_emitter_core_ir_is_local_generic_callee bool 3 127 128 129 call 131 pith_cstring_release void 1 128 call 132 pith_cstring_release void 1 129 @@ -143225,7 +143437,7 @@ ret 144 iconst 145 0 ret 145 endfunc -func ir_emitter_core_ir_emit_index_toml_decode_call 4 int +func ir_emitter_core_ir_emit_index_handle_decode_call 4 int param idx param node param callee_idx @@ -143234,14 +143446,14 @@ iconst 4 0 store __or_4_2365 4 load 5 callee_idx strref 6 m46s391 -call 7 ir_alias_registry_ir_is_toml_decode_callee bool 2 5 6 +call 7 ir_alias_registry_ir_is_handle_decode_callee bool 2 5 6 call 8 pith_cstring_release void 1 6 store __or_4_2365 7 brif 7 L2366 L2365 label L2365 load 9 callee_idx strref 10 m46s391 -strref 11 m46s935 +strref 11 m46s937 call 12 ir_emitter_core_ir_is_local_generic_callee bool 3 9 10 11 call 13 pith_cstring_release void 1 10 call 14 pith_cstring_release void 1 11 @@ -143255,7 +143467,7 @@ load 17 node iconst 18 0 closure_ref 19 ir_emitter_core___fnval_0 closure_ref 20 ir_emitter_core___fnval_1 -call 21 ir_decode_emit_ir_emit_toml_decode_call int 5 16 17 18 19 20 +call 21 ir_decode_emit_ir_emit_handle_decode_call int 5 16 17 18 19 20 call 22 pith_closure_release void 1 19 call 23 pith_closure_release void 1 20 ret 21 @@ -143265,7 +143477,7 @@ iconst 24 0 store __or_24_2370 24 load 25 callee_idx strref 26 m46s390 -call 27 ir_alias_registry_ir_is_toml_decode_callee bool 2 25 26 +call 27 ir_alias_registry_ir_is_handle_decode_callee bool 2 25 26 call 28 pith_cstring_release void 1 26 store __or_24_2370 27 brif 27 L2371 L2370 @@ -143286,15 +143498,15 @@ load 37 node iconst 38 1 closure_ref 39 ir_emitter_core___fnval_0 closure_ref 40 ir_emitter_core___fnval_1 -call 41 ir_decode_emit_ir_emit_toml_decode_call int 5 36 37 38 39 40 +call 41 ir_decode_emit_ir_emit_handle_decode_call int 5 36 37 38 39 40 call 42 pith_closure_release void 1 39 call 43 pith_closure_release void 1 40 ret 41 label L2369 label L2367 load 44 callee_idx -strref 45 m46s928 -call 46 ir_alias_registry_ir_is_toml_decode_callee bool 2 44 45 +strref 45 m46s930 +call 46 ir_alias_registry_ir_is_handle_decode_callee bool 2 44 45 call 47 pith_cstring_release void 1 45 brif 46 L2373 L2374 label L2373 @@ -143303,15 +143515,15 @@ load 49 node iconst 50 0 closure_ref 51 ir_emitter_core___fnval_0 closure_ref 52 ir_emitter_core___fnval_1 -call 53 ir_decode_emit_ir_emit_toml_decode_path_call int 5 48 49 50 51 52 +call 53 ir_decode_emit_ir_emit_handle_decode_path_call int 5 48 49 50 51 52 call 54 pith_closure_release void 1 51 call 55 pith_closure_release void 1 52 ret 53 label L2374 label L2372 load 56 callee_idx -strref 57 m46s1089 -call 58 ir_alias_registry_ir_is_toml_decode_callee bool 2 56 57 +strref 57 m46s1088 +call 58 ir_alias_registry_ir_is_handle_decode_callee bool 2 56 57 call 59 pith_cstring_release void 1 57 brif 58 L2376 L2377 label L2376 @@ -143320,14 +143532,14 @@ load 61 node iconst 62 1 closure_ref 63 ir_emitter_core___fnval_0 closure_ref 64 ir_emitter_core___fnval_1 -call 65 ir_decode_emit_ir_emit_toml_decode_path_call int 5 60 61 62 63 64 +call 65 ir_decode_emit_ir_emit_handle_decode_path_call int 5 60 61 62 63 64 call 66 pith_closure_release void 1 63 call 67 pith_closure_release void 1 64 ret 65 label L2377 label L2375 load 68 callee_idx -strref 69 m46s1089 +strref 69 m46s1088 strref 70 m46s1084 call 71 ir_emitter_core_ir_is_local_generic_callee bool 3 68 69 70 call 72 pith_cstring_release void 1 69 @@ -143337,22 +143549,22 @@ label L2379 load 74 idx load 75 node load 76 callee_node -call 77 ir_emitter_core_ir_emit_local_toml_decode_text_path_call int 3 74 75 76 +call 77 ir_emitter_core_ir_emit_local_handle_decode_text_path_call int 3 74 75 76 ret 77 label L2380 label L2378 iconst 78 0 store __or_78_2384 78 load 79 callee_idx -strref 80 m46s1244 -call 81 ir_alias_registry_ir_is_toml_decode_callee bool 2 79 80 +strref 80 m46s1241 +call 81 ir_alias_registry_ir_is_handle_decode_callee bool 2 79 80 call 82 pith_cstring_release void 1 80 store __or_78_2384 81 brif 81 L2385 L2384 label L2384 load 83 callee_idx -strref 84 m46s1244 -strref 85 m46s1242 +strref 84 m46s1241 +strref 85 m46s1239 call 86 ir_emitter_core_ir_is_local_generic_callee bool 3 83 84 85 call 87 pith_cstring_release void 1 84 call 88 pith_cstring_release void 1 85 @@ -143366,7 +143578,7 @@ load 91 node iconst 92 0 closure_ref 93 ir_emitter_core___fnval_0 closure_ref 94 ir_emitter_core___fnval_1 -call 95 ir_decode_emit_ir_emit_toml_decode_file_call int 5 90 91 92 93 94 +call 95 ir_decode_emit_ir_emit_handle_decode_file_call int 5 90 91 92 93 94 call 96 pith_closure_release void 1 93 call 97 pith_closure_release void 1 94 ret 95 @@ -143375,15 +143587,15 @@ label L2381 iconst 98 0 store __or_98_2389 98 load 99 callee_idx -strref 100 m46s1243 -call 101 ir_alias_registry_ir_is_toml_decode_callee bool 2 99 100 +strref 100 m46s1240 +call 101 ir_alias_registry_ir_is_handle_decode_callee bool 2 99 100 call 102 pith_cstring_release void 1 100 store __or_98_2389 101 brif 101 L2390 L2389 label L2389 load 103 callee_idx -strref 104 m46s1243 -strref 105 m46s1242 +strref 104 m46s1240 +strref 105 m46s1239 call 106 ir_emitter_core_ir_is_local_generic_callee bool 3 103 104 105 call 107 pith_cstring_release void 1 104 call 108 pith_cstring_release void 1 105 @@ -143397,7 +143609,7 @@ load 111 node iconst 112 1 closure_ref 113 ir_emitter_core___fnval_0 closure_ref 114 ir_emitter_core___fnval_1 -call 115 ir_decode_emit_ir_emit_toml_decode_file_call int 5 110 111 112 113 114 +call 115 ir_decode_emit_ir_emit_handle_decode_file_call int 5 110 111 112 113 114 call 116 pith_closure_release void 1 113 call 117 pith_closure_release void 1 114 ret 115 @@ -143451,7 +143663,7 @@ load 24 idx load 25 node load 26 callee_idx load 27 callee_node -call 28 ir_emitter_core_ir_emit_index_toml_decode_call int 4 24 25 26 27 +call 28 ir_emitter_core_ir_emit_index_handle_decode_call int 4 24 25 26 27 ret 28 iconst 29 0 ret 29 @@ -143532,7 +143744,7 @@ label L2405 label L2403 load 48 callee_name call 49 ir_emitter_core_ir_lookup_name_type string 1 48 -strref 50 m46s824 +strref 50 m46s827 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 49 call 53 pith_cstring_release void 1 50 @@ -144355,13 +144567,13 @@ call 216 pith_cstring_release void 1 214 call 217 pith_map_insert_cstr_owned void 3 210 211 215 call 218 ir_builder_ir_reg int 0 store fr 218 -strref 219 m46s902 +strref 219 m46s905 load 220 fr call 221 int_to_string string 1 220 concat 222 219 221 call 223 pith_cstring_release void 1 219 call 224 pith_cstring_release void 1 221 -strref 225 m46s901 +strref 225 m46s904 concat 226 222 225 call 227 pith_cstring_release void 1 222 call 228 pith_cstring_release void 1 225 @@ -144371,8 +144583,8 @@ call 231 pith_cstring_release void 1 226 call 232 ir_builder_ir_emit void 1 230 call 233 pith_cstring_release void 1 230 call 234 ir_builder_ir_reg int 0 -strref 235 m46s900 -strref 236 m46s828 +strref 235 m46s903 +strref 236 m46s831 iconst 237 2 strref 238 m46s336 load 239 struct_r @@ -144658,27 +144870,27 @@ call 47 checker_collect_generic_parameter_names list_string 1 46 call 48 pith_struct_release void 1 46 call 49 pith_list_release_handle void 1 43 store params 47 -strref 50 m46s1167 +strref 50 m46s1164 load 51 __loopvar_336_sym concat 52 50 51 call 53 pith_cstring_release void 1 50 iconst 54 1 -strref 55 m46s828 +strref 55 m46s831 call 56 ir_emitter_core_ir_emit_func_header void 3 52 54 55 call 57 pith_cstring_release void 1 52 call 58 pith_cstring_release void 1 55 -strref 59 m46s1166 +strref 59 m46s1163 call 60 ir_builder_ir_emit void 1 59 call 61 pith_cstring_release void 1 59 call 62 ir_builder_ir_reg int 0 store pr 62 -strref 63 m46s829 +strref 63 m46s832 load 64 pr call 65 int_to_string string 1 64 concat 66 63 65 call 67 pith_cstring_release void 1 63 call 68 pith_cstring_release void 1 65 -strref 69 m46s1165 +strref 69 m46s1162 concat 70 66 69 call 71 pith_cstring_release void 1 66 call 72 pith_cstring_release void 1 69 @@ -144724,7 +144936,7 @@ brif 102 L2543 L2544 label L2543 call 103 ir_builder_ir_reg int 0 store fr 103 -strref 104 m46s837 +strref 104 m46s840 load 105 fr call 106 int_to_string string 1 105 concat 107 104 106 @@ -144750,7 +144962,7 @@ call 126 int_to_string string 1 125 concat 127 120 126 call 128 pith_cstring_release void 1 120 call 129 pith_cstring_release void 1 126 -strref 130 m46s1168 +strref 130 m46s1165 concat 131 127 130 call 132 pith_cstring_release void 1 127 call 133 pith_cstring_release void 1 130 @@ -144773,19 +144985,19 @@ jmp L2539 label L2541 call 145 ir_builder_ir_reg int 0 store zr 145 -strref 146 m46s832 +strref 146 m46s835 load 147 zr call 148 int_to_string string 1 147 concat 149 146 148 call 150 pith_cstring_release void 1 146 call 151 pith_cstring_release void 1 148 -strref 152 m46s831 +strref 152 m46s834 concat 153 149 152 call 154 pith_cstring_release void 1 149 call 155 pith_cstring_release void 1 152 call 156 ir_builder_ir_emit void 1 153 call 157 pith_cstring_release void 1 153 -strref 158 m46s849 +strref 158 m46s852 load 159 zr call 160 int_to_string string 1 159 concat 161 158 160 @@ -144793,7 +145005,7 @@ call 162 pith_cstring_release void 1 158 call 163 pith_cstring_release void 1 160 call 164 ir_builder_ir_emit void 1 161 call 165 pith_cstring_release void 1 161 -strref 166 m46s877 +strref 166 m46s880 call 167 ir_builder_ir_emit void 1 166 call 168 pith_cstring_release void 1 166 label L2534 @@ -144931,12 +145143,12 @@ load 6 callee_idx call 7 ir_emitter_core_ir_expr int 1 6 store callee_r 7 load 8 tmp -strref 9 m46s1241 +strref 9 m46s1238 call 10 ir_builder_ir_new_temp_name string 1 9 call 11 pith_cstring_release void 1 9 call 12 pith_cstring_release void 1 8 store tmp 10 -strref 13 m46s830 +strref 13 m46s833 load 14 tmp concat 15 13 14 call 16 pith_cstring_release void 1 13 @@ -144963,13 +145175,13 @@ call 35 ir_type_helpers_ir_function_return_kind string 1 34 call 36 pith_cstring_release void 1 33 store ret_kind 35 load 37 ret_kind -strref 38 m46s822 +strref 38 m46s825 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 brif 39 L2555 L2556 label L2555 load 41 ret_kind -strref 42 m46s671 +strref 42 m46s674 call 43 pith_cstring_release void 1 41 store ret_kind 42 jmp L2554 @@ -145162,7 +145374,7 @@ jmp L2563 label L2565 label L2563 load 86 callee -strref 87 m46s822 +strref 87 m46s825 iconst 88 0 iconst 90 2 call 89 pith_struct_alloc struct:ResolvedCallee 1 90 @@ -145195,7 +145407,7 @@ eq 110 108 109 brif 110 L2579 L2580 label L2579 load 111 callee -strref 112 m46s822 +strref 112 m46s825 iconst 113 0 iconst 115 2 call 114 pith_struct_alloc struct:ResolvedCallee 1 115 @@ -145274,7 +145486,7 @@ iconst 157 0 store __and_157_2592 157 load 158 callee field 159 158 0 string name -strref 160 m46s1240 +strref 160 m46s1237 call 161 pith_cstring_eq bool 2 159 160 call 162 pith_cstring_release void 1 160 store __and_157_2592 161 @@ -145416,13 +145628,13 @@ brif 261 L2604 L2605 label L2604 call 262 ir_builder_ir_reg int 0 store zero_r 262 -strref 263 m46s832 +strref 263 m46s835 load 264 zero_r call 265 int_to_string string 1 264 concat 266 263 265 call 267 pith_cstring_release void 1 263 call 268 pith_cstring_release void 1 265 -strref 269 m46s831 +strref 269 m46s834 concat 270 266 269 call 271 pith_cstring_release void 1 266 call 272 pith_cstring_release void 1 269 @@ -145444,7 +145656,7 @@ brif 280 L2611 L2612 label L2611 load 281 callee field 282 281 0 string name -strref 283 m46s1239 +strref 283 m46s1236 call 284 pith_cstring_eq bool 2 282 283 call 285 pith_cstring_release void 1 283 store __and_279_2611 284 @@ -145705,8 +145917,8 @@ load 30 has_int_keys brif 30 L2638 L2639 label L2638 call 31 ir_builder_ir_reg int 0 -strref 32 m46s694 -strref 33 m46s828 +strref 32 m46s697 +strref 33 m46s831 load 34 map_r load 35 k_r load 36 v_r @@ -145716,8 +145928,8 @@ call 39 pith_cstring_release void 1 33 jmp L2637 label L2639 call 40 ir_builder_ir_reg int 0 -strref 41 m46s693 -strref 42 m46s828 +strref 41 m46s696 +strref 42 m46s831 load 43 map_r load 44 k_r load 45 v_r @@ -145832,7 +146044,7 @@ field 62 61 16 list children iconst 63 1 call 64 pith_list_get_value_strict int 2 62 63 call 65 ir_emitter_core_ir_infer_type string 1 64 -strref 66 m46s675 +strref 66 m46s678 call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 65 call 69 pith_cstring_release void 1 66 @@ -145850,16 +146062,16 @@ load 71 val_is_string brif 71 L2660 L2661 label L2660 load 72 map_r -strref 73 m46s742 -strref 74 m46s670 +strref 73 m46s745 +strref 74 m46s673 call 75 ir_call_emit_ir_emit_call0 void 3 72 73 74 call 76 pith_cstring_release void 1 73 call 77 pith_cstring_release void 1 74 jmp L2659 label L2661 load 78 map_r -strref 79 m46s746 -strref 80 m46s670 +strref 79 m46s749 +strref 80 m46s673 call 81 ir_call_emit_ir_emit_call0 void 3 78 79 80 call 82 pith_cstring_release void 1 79 call 83 pith_cstring_release void 1 80 @@ -145870,7 +146082,7 @@ load 84 val_is_string brif 84 L2662 L2663 label L2662 load 85 map_r -strref 86 m46s744 +strref 86 m46s747 strref 87 m46s19 call 88 ir_call_emit_ir_emit_call0 void 3 85 86 87 call 89 pith_cstring_release void 1 86 @@ -145878,7 +146090,7 @@ call 90 pith_cstring_release void 1 87 jmp L2656 label L2663 load 91 map_r -strref 92 m46s748 +strref 92 m46s751 strref 93 m46s19 call 94 ir_call_emit_ir_emit_call0 void 3 91 92 93 call 95 pith_cstring_release void 1 92 @@ -145956,7 +146168,7 @@ store checked 13 iconst 15 0 store __or_15_2671 15 load 16 checked -strref 17 m46s669 +strref 17 m46s672 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 store __or_15_2671 18 @@ -146008,7 +146220,7 @@ store elem_r 46 call 47 ir_builder_ir_reg int 0 load 48 literal_type call 49 ir_collection_helpers_ir_set_add_name string 1 48 -strref 50 m46s828 +strref 50 m46s831 load 51 set_r load 52 elem_r call 53 ir_call_emit_ir_emit_call2 void 5 47 49 50 51 52 @@ -146052,7 +146264,7 @@ store __or_4_2677 7 brif 7 L2678 L2677 label L2677 load 9 emit_name -strref 10 m46s749 +strref 10 m46s752 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 store __or_4_2677 11 @@ -146062,7 +146274,7 @@ store __or_3_2677 13 brif 13 L2680 L2679 label L2679 load 14 emit_name -strref 15 m46s750 +strref 15 m46s753 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 store __or_3_2677 16 @@ -146082,7 +146294,7 @@ store __or_1_2677 23 brif 23 L2684 L2683 label L2683 load 24 emit_name -strref 25 m46s774 +strref 25 m46s777 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 store __or_1_2677 26 @@ -146109,14 +146321,14 @@ label L2685 iconst 8 0 store __or_8_2691 8 load 9 store_kind -strref 10 m46s674 +strref 10 m46s677 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 store __or_8_2691 11 brif 11 L2692 L2691 label L2691 load 13 store_kind -strref 14 m46s824 +strref 14 m46s827 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 store __or_8_2691 15 @@ -146180,14 +146392,14 @@ param store_kind iconst 1 0 store __or_1_2702 1 load 2 store_kind -strref 3 m46s675 +strref 3 m46s678 call 4 pith_cstring_eq bool 2 2 3 call 5 pith_cstring_release void 1 3 store __or_1_2702 4 brif 4 L2703 L2702 label L2702 load 6 store_kind -strref 7 m46s674 +strref 7 m46s677 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 store __or_1_2702 8 @@ -146243,7 +146455,7 @@ store __or_17_2707 33 brif 33 L2712 L2711 label L2711 load 34 store_kind -strref 35 m46s824 +strref 35 m46s827 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 store __or_17_2707 36 @@ -146267,7 +146479,7 @@ store __or_2_2716 5 brif 5 L2717 L2716 label L2716 load 7 emit_name -strref 8 m46s749 +strref 8 m46s752 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 store __or_2_2716 9 @@ -146277,7 +146489,7 @@ store __or_1_2716 11 brif 11 L2719 L2718 label L2718 load 12 emit_name -strref 13 m46s750 +strref 13 m46s753 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 store __or_1_2716 14 @@ -146285,7 +146497,7 @@ label L2719 load 16 __or_1_2716 brif 16 L2714 L2715 label L2714 -strref 17 m46s1151 +strref 17 m46s1148 ret 17 label L2715 label L2713 @@ -146299,7 +146511,7 @@ store __or_18_2723 21 brif 21 L2724 L2723 label L2723 load 23 emit_name -strref 24 m46s774 +strref 24 m46s777 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 store __or_18_2723 25 @@ -146307,7 +146519,7 @@ label L2724 load 27 __or_18_2723 brif 27 L2721 L2722 label L2721 -strref 28 m46s1238 +strref 28 m46s1235 ret 28 label L2722 label L2720 @@ -146321,7 +146533,7 @@ store __or_29_2728 32 brif 32 L2729 L2728 label L2728 load 34 emit_name -strref 35 m46s693 +strref 35 m46s696 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 store __or_29_2728 36 @@ -146329,17 +146541,17 @@ label L2729 load 38 __or_29_2728 brif 38 L2726 L2727 label L2726 -strref 39 m46s1237 +strref 39 m46s1234 ret 39 label L2727 label L2725 load 40 emit_name -strref 41 m46s694 +strref 41 m46s697 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 brif 42 L2731 L2732 label L2731 -strref 44 m46s1236 +strref 44 m46s1233 ret 44 label L2732 label L2730 @@ -146351,12 +146563,12 @@ endfunc func ir_emitter_core_ir_list_ctor_for_elem_kind 1 string param elem_kind load 1 elem_kind -strref 2 m46s675 +strref 2 m46s678 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 brif 3 L2734 L2735 label L2734 -strref 5 m46s762 +strref 5 m46s765 ret 5 label L2735 label L2733 @@ -146366,7 +146578,7 @@ call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 brif 8 L2737 L2738 label L2737 -strref 10 m46s760 +strref 10 m46s763 ret 10 label L2738 label L2736 @@ -146376,7 +146588,7 @@ call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 brif 13 L2740 L2741 label L2740 -strref 15 m46s758 +strref 15 m46s761 ret 15 label L2741 label L2739 @@ -146386,31 +146598,31 @@ call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 brif 18 L2743 L2744 label L2743 -strref 20 m46s756 +strref 20 m46s759 ret 20 label L2744 label L2742 load 21 elem_kind -strref 22 m46s674 +strref 22 m46s677 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 brif 23 L2746 L2747 label L2746 -strref 25 m46s754 +strref 25 m46s757 ret 25 label L2747 label L2745 load 26 elem_kind -strref 27 m46s824 +strref 27 m46s827 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L2749 L2750 label L2749 -strref 30 m46s752 +strref 30 m46s755 ret 30 label L2750 label L2748 -strref 31 m46s764 +strref 31 m46s767 ret 31 iconst 32 0 ret 32 @@ -146528,7 +146740,7 @@ strref 68 m46s20 call 69 ir_call_emit_ir_emit_call0 void 3 66 67 68 call 70 pith_cstring_release void 1 68 load 71 ctor -strref 72 m46s764 +strref 72 m46s767 call 74 pith_cstring_eq bool 2 71 72 iconst 75 1 sub 73 75 74 @@ -146556,8 +146768,8 @@ load 88 elem_target call 89 ir_emitter_core_ir_emit_value_for_target int 2 87 88 store elem_r 89 call 90 ir_builder_ir_reg int 0 -strref 91 m46s750 -strref 92 m46s828 +strref 91 m46s753 +strref 92 m46s831 load 93 list_r load 94 elem_r call 95 ir_call_emit_ir_emit_call2 void 5 90 91 92 93 94 @@ -146678,7 +146890,7 @@ label L2780 jmp L2777 label L2779 label L2777 -strref 39 m46s1038 +strref 39 m46s1040 load 40 tuple_r call 41 int_to_string string 1 40 concat 42 39 41 @@ -146719,12 +146931,12 @@ endfunc func ir_emitter_core_ir_tuple_elem_code 1 string param kind load 1 kind -strref 2 m46s675 +strref 2 m46s678 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 brif 3 L2786 L2787 label L2786 -strref 5 m46s903 +strref 5 m46s906 ret 5 label L2787 label L2785 @@ -146734,7 +146946,7 @@ call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 brif 8 L2789 L2790 label L2789 -strref 10 m46s1235 +strref 10 m46s1232 ret 10 label L2790 label L2788 @@ -146744,7 +146956,7 @@ call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 brif 13 L2792 L2793 label L2792 -strref 15 m46s1018 +strref 15 m46s1020 ret 15 label L2793 label L2791 @@ -146754,12 +146966,12 @@ call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 brif 18 L2795 L2796 label L2795 -strref 20 m46s1234 +strref 20 m46s1231 ret 20 label L2796 label L2794 load 21 kind -strref 22 m46s674 +strref 22 m46s677 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 brif 23 L2798 L2799 @@ -146774,17 +146986,17 @@ call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L2801 L2802 label L2801 -strref 30 m46s1233 +strref 30 m46s1230 ret 30 label L2802 label L2800 load 31 kind -strref 32 m46s824 +strref 32 m46s827 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 brif 33 L2804 L2805 label L2804 -strref 35 m46s1232 +strref 35 m46s1229 ret 35 label L2805 label L2803 @@ -146794,7 +147006,7 @@ call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 brif 38 L2807 L2808 label L2807 -strref 40 m46s1231 +strref 40 m46s1228 ret 40 label L2808 label L2806 @@ -146806,17 +147018,17 @@ endfunc func ir_emitter_core_ir_tuple_dtor_code_kind 1 string param code load 1 code -strref 2 m46s903 +strref 2 m46s906 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 brif 3 L2810 L2811 label L2810 -strref 5 m46s675 +strref 5 m46s678 ret 5 label L2811 label L2809 load 6 code -strref 7 m46s1235 +strref 7 m46s1232 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 brif 8 L2813 L2814 @@ -146826,7 +147038,7 @@ ret 10 label L2814 label L2812 load 11 code -strref 12 m46s1018 +strref 12 m46s1020 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 brif 13 L2816 L2817 @@ -146836,7 +147048,7 @@ ret 15 label L2817 label L2815 load 16 code -strref 17 m46s1234 +strref 17 m46s1231 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 brif 18 L2819 L2820 @@ -146851,12 +147063,12 @@ call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 brif 23 L2822 L2823 label L2822 -strref 25 m46s674 +strref 25 m46s677 ret 25 label L2823 label L2821 load 26 code -strref 27 m46s1233 +strref 27 m46s1230 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L2825 L2826 @@ -146866,17 +147078,17 @@ ret 30 label L2826 label L2824 load 31 code -strref 32 m46s1232 +strref 32 m46s1229 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 brif 33 L2828 L2829 label L2828 -strref 35 m46s824 +strref 35 m46s827 ret 35 label L2829 label L2827 load 36 code -strref 37 m46s1231 +strref 37 m46s1228 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 brif 38 L2831 L2832 @@ -146942,11 +147154,11 @@ ret 31 endfunc func ir_emitter_core_ir_tuple_dtor_name 1 string param sig -strref 1 m46s1230 +strref 1 m46s1227 load 2 sig concat 3 1 2 call 4 pith_cstring_release void 1 1 -strref 5 m46s1229 +strref 5 m46s1226 concat 6 3 5 call 7 pith_cstring_release void 1 3 call 8 pith_cstring_release void 1 5 @@ -147060,7 +147272,7 @@ label L2848 label L2846 call 33 ir_builder_ir_reg int 0 store fr 33 -strref 34 m46s902 +strref 34 m46s905 load 35 fr call 36 int_to_string string 1 35 concat 37 34 36 @@ -147078,8 +147290,8 @@ call 48 pith_cstring_release void 1 45 call 49 ir_builder_ir_emit void 1 46 call 50 pith_cstring_release void 1 46 call 51 ir_builder_ir_reg int 0 -strref 52 m46s900 -strref 53 m46s828 +strref 52 m46s903 +strref 53 m46s831 iconst 54 2 strref 55 m46s336 load 56 tuple_r @@ -147174,7 +147386,7 @@ call 42 ir_builder_ir_reg int 0 store r 42 call 43 ir_builder_ir_reg int 0 store nf 43 -strref 44 m46s832 +strref 44 m46s835 load 45 nf call 46 int_to_string string 1 45 concat 47 44 46 @@ -147193,8 +147405,8 @@ call 59 pith_cstring_release void 1 56 call 60 ir_builder_ir_emit void 1 57 call 61 pith_cstring_release void 1 57 load 62 r -strref 63 m46s728 -strref 64 m46s1153 +strref 63 m46s731 +strref 64 m46s1150 load 65 nf call 66 ir_call_emit_ir_emit_call1 void 4 62 63 64 65 call 67 pith_cstring_release void 1 63 @@ -147348,7 +147560,7 @@ label L2878 label L2876 call 9 ir_builder_ir_reg int 0 store count_r 9 -strref 10 m46s832 +strref 10 m46s835 load 11 count_r call 12 int_to_string string 1 11 concat 13 10 12 @@ -147370,8 +147582,8 @@ call 28 pith_cstring_release void 1 24 call 29 ir_builder_ir_reg int 0 store r 29 load 30 r -strref 31 m46s728 -strref 32 m46s883 +strref 31 m46s731 +strref 32 m46s886 load 33 enum_name concat 34 32 33 call 35 pith_cstring_release void 1 32 @@ -147381,7 +147593,7 @@ call 38 pith_cstring_release void 1 31 call 39 pith_cstring_release void 1 34 call 40 ir_builder_ir_reg int 0 store tag_r 40 -strref 41 m46s832 +strref 41 m46s835 load 42 tag_r call 43 int_to_string string 1 42 concat 44 41 43 @@ -147398,13 +147610,13 @@ concat 54 48 53 call 55 pith_cstring_release void 1 48 call 56 ir_builder_ir_emit void 1 54 call 57 pith_cstring_release void 1 54 -strref 58 m46s1038 +strref 58 m46s1040 load 59 r call 60 int_to_string string 1 59 concat 61 58 60 call 62 pith_cstring_release void 1 58 call 63 pith_cstring_release void 1 60 -strref 64 m46s1039 +strref 64 m46s1041 concat 65 61 64 call 66 pith_cstring_release void 1 61 call 67 pith_cstring_release void 1 64 @@ -147508,7 +147720,7 @@ call 53 ir_ownership_ir_rc_retain_reg void 2 51 52 jmp L2888 label L2890 label L2888 -strref 54 m46s1038 +strref 54 m46s1040 load 55 r call 56 int_to_string string 1 55 concat 57 54 56 @@ -147586,13 +147798,13 @@ brif 16 L2894 L2895 label L2894 call 17 ir_builder_ir_reg int 0 store r 17 -strref 18 m46s832 +strref 18 m46s835 load 19 r call 20 int_to_string string 1 19 concat 21 18 20 call 22 pith_cstring_release void 1 18 call 23 pith_cstring_release void 1 20 -strref 24 m46s831 +strref 24 m46s834 concat 25 21 24 call 26 pith_cstring_release void 1 21 call 27 pith_cstring_release void 1 24 @@ -147682,7 +147894,7 @@ label L2910 label L2908 call 94 ir_builder_ir_reg int 0 store r 94 -strref 95 m46s832 +strref 95 m46s835 load 96 r call 97 int_to_string string 1 96 concat 98 95 97 @@ -147888,13 +148100,13 @@ param ok_r param err_r call 3 ir_builder_ir_reg int 0 store count_r 3 -strref 4 m46s832 +strref 4 m46s835 load 5 count_r call 6 int_to_string string 1 5 concat 7 4 6 call 8 pith_cstring_release void 1 4 call 9 pith_cstring_release void 1 6 -strref 10 m46s1154 +strref 10 m46s1151 concat 11 7 10 call 12 pith_cstring_release void 1 7 call 13 pith_cstring_release void 1 10 @@ -147903,19 +148115,19 @@ call 15 pith_cstring_release void 1 11 call 16 ir_builder_ir_reg int 0 store result_r 16 load 17 result_r -strref 18 m46s728 -strref 19 m46s1153 +strref 18 m46s731 +strref 19 m46s1150 load 20 count_r call 21 ir_call_emit_ir_emit_call1 void 4 17 18 19 20 call 22 pith_cstring_release void 1 18 call 23 pith_cstring_release void 1 19 -strref 24 m46s1038 +strref 24 m46s1040 load 25 result_r call 26 int_to_string string 1 25 concat 27 24 26 call 28 pith_cstring_release void 1 24 call 29 pith_cstring_release void 1 26 -strref 30 m46s1039 +strref 30 m46s1041 concat 31 27 30 call 32 pith_cstring_release void 1 27 call 33 pith_cstring_release void 1 30 @@ -147926,13 +148138,13 @@ call 37 pith_cstring_release void 1 31 call 38 pith_cstring_release void 1 35 call 39 ir_builder_ir_emit void 1 36 call 40 pith_cstring_release void 1 36 -strref 41 m46s1038 +strref 41 m46s1040 load 42 result_r call 43 int_to_string string 1 42 concat 44 41 43 call 45 pith_cstring_release void 1 41 call 46 pith_cstring_release void 1 43 -strref 47 m46s1037 +strref 47 m46s1039 concat 48 44 47 call 49 pith_cstring_release void 1 44 call 50 pith_cstring_release void 1 47 @@ -147943,13 +148155,13 @@ call 54 pith_cstring_release void 1 48 call 55 pith_cstring_release void 1 52 call 56 ir_builder_ir_emit void 1 53 call 57 pith_cstring_release void 1 53 -strref 58 m46s1038 +strref 58 m46s1040 load 59 result_r call 60 int_to_string string 1 59 concat 61 58 60 call 62 pith_cstring_release void 1 58 call 63 pith_cstring_release void 1 60 -strref 64 m46s1152 +strref 64 m46s1149 concat 65 61 64 call 66 pith_cstring_release void 1 61 call 67 pith_cstring_release void 1 64 @@ -147969,13 +148181,13 @@ func ir_emitter_core_ir_emit_ok_result_tuple 1 int param ok_r call 1 ir_builder_ir_reg int 0 store one 1 -strref 2 m46s832 +strref 2 m46s835 load 3 one call 4 int_to_string string 1 3 concat 5 2 4 call 6 pith_cstring_release void 1 2 call 7 pith_cstring_release void 1 4 -strref 8 m46s842 +strref 8 m46s845 concat 9 5 8 call 10 pith_cstring_release void 1 5 call 11 pith_cstring_release void 1 8 @@ -148014,7 +148226,7 @@ store err_l 5 iconst 6 0 store merge_l 6 load 7 temp_name -strref 8 m46s1228 +strref 8 m46s1225 call 9 ir_builder_ir_new_temp_name string 1 8 call 10 pith_cstring_release void 1 8 call 11 pith_cstring_release void 1 7 @@ -148026,18 +148238,18 @@ call 15 pith_map_insert_cstr_owned void 3 12 13 14 call 16 ir_builder_ir_reg int 0 store zero_r 16 load 17 legacy_kind -strref 18 m46s672 +strref 18 m46s675 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L2930 L2931 label L2930 -strref 21 m46s1044 +strref 21 m46s1046 load 22 zero_r call 23 int_to_string string 1 22 concat 24 21 23 call 25 pith_cstring_release void 1 21 call 26 pith_cstring_release void 1 23 -strref 27 m46s1206 +strref 27 m46s1203 concat 28 24 27 call 29 pith_cstring_release void 1 24 call 30 pith_cstring_release void 1 27 @@ -148045,13 +148257,13 @@ call 31 ir_builder_ir_emit void 1 28 call 32 pith_cstring_release void 1 28 jmp L2929 label L2931 -strref 33 m46s832 +strref 33 m46s835 load 34 zero_r call 35 int_to_string string 1 34 concat 36 33 35 call 37 pith_cstring_release void 1 33 call 38 pith_cstring_release void 1 35 -strref 39 m46s831 +strref 39 m46s834 concat 40 36 39 call 41 pith_cstring_release void 1 36 call 42 pith_cstring_release void 1 39 @@ -148060,7 +148272,7 @@ call 44 pith_cstring_release void 1 40 label L2929 call 45 ir_builder_ir_reg int 0 store cond_r 45 -strref 46 m46s1035 +strref 46 m46s1037 load 47 cond_r call 48 int_to_string string 1 47 concat 49 46 48 @@ -148098,7 +148310,7 @@ load 78 merge_l call 79 ir_builder_ir_label string 0 call 80 pith_cstring_release void 1 78 store merge_l 79 -strref 81 m46s834 +strref 81 m46s837 load 82 cond_r call 83 int_to_string string 1 82 concat 84 81 83 @@ -148127,14 +148339,14 @@ store ok_r 105 iconst 106 0 store __or_106_2935 106 load 107 legacy_kind -strref 108 m46s806 +strref 108 m46s809 call 109 pith_cstring_eq bool 2 107 108 call 110 pith_cstring_release void 1 108 store __or_106_2935 109 brif 109 L2936 L2935 label L2935 load 111 legacy_kind -strref 112 m46s805 +strref 112 m46s808 call 113 pith_cstring_eq bool 2 111 112 call 114 pith_cstring_release void 1 112 store __or_106_2935 113 @@ -148152,7 +148364,7 @@ label L2932 load 119 ok_r call 120 ir_emitter_core_ir_emit_ok_result_tuple int 1 119 store ok_tuple 120 -strref 121 m46s830 +strref 121 m46s833 load 122 temp_name concat 123 121 122 call 124 pith_cstring_release void 1 121 @@ -148167,7 +148379,7 @@ call 132 pith_cstring_release void 1 126 call 133 pith_cstring_release void 1 130 call 134 ir_builder_ir_emit void 1 131 call 135 pith_cstring_release void 1 131 -strref 136 m46s833 +strref 136 m46s836 load 137 merge_l concat 138 136 137 call 139 pith_cstring_release void 1 136 @@ -148179,7 +148391,7 @@ load 144 callee_name call 145 ir_result_abi_ir_emit_result_error_message int 1 144 call 146 ir_emitter_core_ir_emit_err_result_tuple int 1 145 store err_tuple 146 -strref 147 m46s830 +strref 147 m46s833 load 148 temp_name concat 149 147 148 call 150 pith_cstring_release void 1 147 @@ -148198,7 +148410,7 @@ load 162 merge_l call 163 ir_call_emit_ir_emit_label void 1 162 call 164 ir_builder_ir_reg int 0 store r 164 -strref 165 m46s829 +strref 165 m46s832 load 166 r call 167 int_to_string string 1 166 concat 168 165 167 @@ -148422,7 +148634,7 @@ iconst 6 0 store __and_6_2965 6 load 7 node field 8 7 0 string kind -strref 9 m46s512 +strref 9 m46s515 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 store __and_6_2965 10 @@ -148473,7 +148685,7 @@ brif 37 L2973 L2972 label L2972 load 38 node field 39 38 0 string kind -strref 40 m46s498 +strref 40 m46s501 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 store __or_25_2970 41 @@ -148481,7 +148693,7 @@ label L2973 load 43 __or_25_2970 brif 43 L2968 L2969 label L2968 -strref 44 m46s1227 +strref 44 m46s1224 load 45 node call 46 pith_struct_release void 1 45 ret 44 @@ -148520,13 +148732,13 @@ label L2980 load 65 __or_47_2977 brif 65 L2975 L2976 label L2975 -strref 66 m46s1202 +strref 66 m46s1199 load 67 node call 68 pith_struct_release void 1 67 ret 66 label L2976 label L2974 -strref 69 m46s1226 +strref 69 m46s1223 load 70 node call 71 pith_struct_release void 1 70 ret 69 @@ -148595,7 +148807,7 @@ load 42 merge_l call 43 ir_builder_ir_label string 0 call 44 pith_cstring_release void 1 42 store merge_l 43 -strref 45 m46s834 +strref 45 m46s837 load 46 cond_r call 47 int_to_string string 1 46 concat 48 45 47 @@ -148626,7 +148838,7 @@ call 72 ir_result_abi_ir_emit_result_value_field int 3 69 70 71 call 73 pith_cstring_release void 1 71 store ok_value_r 72 load 74 operand_class -strref 75 m46s1202 +strref 75 m46s1199 call 76 pith_cstring_eq bool 2 74 75 call 77 pith_cstring_release void 1 75 brif 76 L2982 L2983 @@ -148652,14 +148864,14 @@ label L2984 jmp L2981 label L2983 call 91 ir_builder_ir_reg int 0 -strref 92 m46s898 -strref 93 m46s828 +strref 92 m46s901 +strref 93 m46s831 load 94 recv_r call 95 ir_call_emit_ir_emit_call1 void 4 91 92 93 94 call 96 pith_cstring_release void 1 92 call 97 pith_cstring_release void 1 93 label L2981 -strref 98 m46s830 +strref 98 m46s833 load 99 temp_name concat 100 98 99 call 101 pith_cstring_release void 1 98 @@ -148674,7 +148886,7 @@ call 109 pith_cstring_release void 1 103 call 110 pith_cstring_release void 1 107 call 111 ir_builder_ir_emit void 1 108 call 112 pith_cstring_release void 1 108 -strref 113 m46s833 +strref 113 m46s836 load 114 merge_l concat 115 113 114 call 116 pith_cstring_release void 1 113 @@ -148714,7 +148926,7 @@ jmp L2987 label L2989 label L2987 load 140 operand_class -strref 141 m46s1202 +strref 141 m46s1199 call 143 pith_cstring_eq bool 2 140 141 iconst 144 1 sub 142 144 143 @@ -148725,8 +148937,8 @@ load 146 recv_r load 147 recv_tid call 148 ir_emitter_core_ir_emit_release_result_error void 2 146 147 call 149 ir_builder_ir_reg int 0 -strref 150 m46s898 -strref 151 m46s828 +strref 150 m46s901 +strref 151 m46s831 load 152 recv_r call 153 ir_call_emit_ir_emit_call1 void 4 149 150 151 152 call 154 pith_cstring_release void 1 150 @@ -148734,7 +148946,7 @@ call 155 pith_cstring_release void 1 151 jmp L2992 label L2994 label L2992 -strref 156 m46s830 +strref 156 m46s833 load 157 temp_name concat 158 156 157 call 159 pith_cstring_release void 1 156 @@ -148753,7 +148965,7 @@ load 171 merge_l call 172 ir_call_emit_ir_emit_label void 1 171 call 173 ir_builder_ir_reg int 0 store r 173 -strref 174 m46s829 +strref 174 m46s832 load 175 r call 176 int_to_string string 1 175 concat 177 174 176 @@ -148849,7 +149061,7 @@ call 31 ir_result_abi_ir_emit_result_flag_field int 2 29 30 call 32 pith_cstring_release void 1 30 store cond_r 31 load 33 temp_name -strref 34 m46s1225 +strref 34 m46s1222 call 35 ir_builder_ir_new_temp_name string 1 34 call 36 pith_cstring_release void 1 34 call 37 pith_cstring_release void 1 33 @@ -148866,7 +149078,7 @@ load 44 merge_l call 45 ir_builder_ir_label string 0 call 46 pith_cstring_release void 1 44 store merge_l 45 -strref 47 m46s834 +strref 47 m46s837 load 48 cond_r call 49 int_to_string string 1 48 concat 50 47 49 @@ -148896,7 +149108,7 @@ strref 73 m46s182 call 74 ir_result_abi_ir_emit_result_value_field int 3 71 72 73 call 75 pith_cstring_release void 1 73 store ok_r 74 -strref 76 m46s830 +strref 76 m46s833 load 77 temp_name concat 78 76 77 call 79 pith_cstring_release void 1 76 @@ -148913,7 +149125,7 @@ call 89 pith_cstring_release void 1 81 call 90 pith_cstring_release void 1 87 call 91 ir_builder_ir_emit void 1 88 call 92 pith_cstring_release void 1 88 -strref 93 m46s833 +strref 93 m46s836 load 94 merge_l concat 95 93 94 call 96 pith_cstring_release void 1 93 @@ -148927,7 +149139,7 @@ strref 103 m46s181 call 104 ir_result_abi_ir_emit_result_value_field int 3 101 102 103 call 105 pith_cstring_release void 1 103 store err_r 104 -strref 106 m46s830 +strref 106 m46s833 load 107 temp_name concat 108 106 107 call 109 pith_cstring_release void 1 106 @@ -148948,7 +149160,7 @@ load 123 merge_l call 124 ir_call_emit_ir_emit_label void 1 123 call 125 ir_builder_ir_reg int 0 store r 125 -strref 126 m46s829 +strref 126 m46s832 load 127 r call 128 int_to_string string 1 127 concat 129 126 128 @@ -149001,7 +149213,7 @@ call 6 ir_type_helpers_ir_type_from_tid string 1 5 call 7 pith_cstring_release void 1 4 store value_type 6 load 8 value_type -strref 9 m46s675 +strref 9 m46s678 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 brif 10 L3002 L3003 @@ -149017,14 +149229,14 @@ label L3001 call 17 ir_builder_ir_reg int 0 store out_r 17 load 18 value_type -strref 19 m46s673 +strref 19 m46s676 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L3005 L3006 label L3005 load 22 out_r -strref 23 m46s663 -strref 24 m46s675 +strref 23 m46s666 +strref 24 m46s678 load 25 value_r call 26 ir_call_emit_ir_emit_call1 void 4 22 23 24 25 call 27 pith_cstring_release void 1 23 @@ -149038,14 +149250,14 @@ ret 29 label L3006 label L3004 load 34 value_type -strref 35 m46s672 +strref 35 m46s675 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 brif 36 L3008 L3009 label L3008 load 38 out_r -strref 39 m46s664 -strref 40 m46s675 +strref 39 m46s667 +strref 40 m46s678 load 41 value_r call 42 ir_call_emit_ir_emit_call1 void 4 38 39 40 41 call 43 pith_cstring_release void 1 39 @@ -149059,14 +149271,14 @@ ret 45 label L3009 label L3007 load 50 value_type -strref 51 m46s671 +strref 51 m46s674 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 brif 52 L3011 L3012 label L3011 load 54 out_r -strref 55 m46s662 -strref 56 m46s675 +strref 55 m46s665 +strref 56 m46s678 load 57 value_r call 58 ir_call_emit_ir_emit_call1 void 4 54 55 56 57 call 59 pith_cstring_release void 1 55 @@ -149304,12 +149516,12 @@ load 110 handler_idx call 111 ir_emitter_core_ir_expr int 1 110 store handler_r 111 load 112 handler_name -strref 113 m46s1224 +strref 113 m46s1221 call 114 ir_builder_ir_new_temp_name string 1 113 call 115 pith_cstring_release void 1 113 call 116 pith_cstring_release void 1 112 store handler_name 114 -strref 117 m46s830 +strref 117 m46s833 load 118 handler_name concat 119 117 118 call 120 pith_cstring_release void 1 117 @@ -149421,7 +149633,7 @@ load 38 merge_l call 39 ir_builder_ir_label string 0 call 40 pith_cstring_release void 1 38 store merge_l 39 -strref 41 m46s834 +strref 41 m46s837 load 42 cond_r call 43 int_to_string string 1 42 concat 44 41 43 @@ -149445,7 +149657,7 @@ call 61 ir_builder_ir_emit void 1 59 call 62 pith_cstring_release void 1 59 load 63 ok_l call 64 ir_call_emit_ir_emit_label void 1 63 -strref 65 m46s830 +strref 65 m46s833 load 66 temp_name concat 67 65 66 call 68 pith_cstring_release void 1 65 @@ -149460,7 +149672,7 @@ call 76 pith_cstring_release void 1 70 call 77 pith_cstring_release void 1 74 call 78 ir_builder_ir_emit void 1 75 call 79 pith_cstring_release void 1 75 -strref 80 m46s833 +strref 80 m46s836 load 81 merge_l concat 82 80 81 call 83 pith_cstring_release void 1 80 @@ -149485,13 +149697,13 @@ load 99 recv_r load 100 recv_tid call 101 ir_emitter_core_ir_emit_release_result_error void 2 99 100 call 102 ir_builder_ir_reg int 0 -strref 103 m46s898 -strref 104 m46s828 +strref 103 m46s901 +strref 104 m46s831 load 105 recv_r call 106 ir_call_emit_ir_emit_call1 void 4 102 103 104 105 call 107 pith_cstring_release void 1 103 call 108 pith_cstring_release void 1 104 -strref 109 m46s830 +strref 109 m46s833 load 110 temp_name concat 111 109 110 call 112 pith_cstring_release void 1 109 @@ -149510,7 +149722,7 @@ load 124 merge_l call 125 ir_call_emit_ir_emit_label void 1 124 call 126 ir_builder_ir_reg int 0 store r 126 -strref 127 m46s829 +strref 127 m46s832 load 128 r call 129 int_to_string string 1 128 concat 130 127 129 @@ -149592,7 +149804,7 @@ store ch_r 27 call 28 ir_builder_ir_reg int 0 store r 28 load 29 r -strref 30 m46s655 +strref 30 m46s658 strref 31 m46s23 load 32 ch_r call 33 ir_call_emit_ir_emit_call1 void 4 29 30 31 32 @@ -149671,8 +149883,8 @@ store val_r 38 call 39 ir_builder_ir_reg int 0 store r 39 load 40 r -strref 41 m46s657 -strref 42 m46s673 +strref 41 m46s660 +strref 42 m46s676 load 43 ch_r load 44 val_r call 45 ir_call_emit_ir_emit_call2 void 5 40 41 42 43 44 @@ -149727,7 +149939,7 @@ call 26 map_insert void 3 23 24 25 jmp L3051 label L3053 label L3051 -strref 27 m46s830 +strref 27 m46s833 load 28 bind_name concat 29 27 28 call 30 pith_cstring_release void 1 27 @@ -150048,7 +150260,7 @@ load 32 next_l call 33 ir_builder_ir_label string 0 call 34 pith_cstring_release void 1 32 store next_l 33 -strref 35 m46s834 +strref 35 m46s837 load 36 ready_r call 37 int_to_string string 1 36 concat 38 35 37 @@ -150087,7 +150299,7 @@ call 70 ir_type_helpers_ir_checked_type string 1 69 call 71 ir_emitter_core_ir_emit_select_arm_body int 4 62 64 65 70 call 72 pith_cstring_release void 1 70 store body_r 71 -strref 73 m46s830 +strref 73 m46s833 load 74 result_temp concat 75 73 74 call 76 pith_cstring_release void 1 73 @@ -150102,7 +150314,7 @@ call 84 pith_cstring_release void 1 78 call 85 pith_cstring_release void 1 82 call 86 ir_builder_ir_emit void 1 83 call 87 pith_cstring_release void 1 83 -strref 88 m46s833 +strref 88 m46s836 load 89 end_l concat 90 88 89 call 91 pith_cstring_release void 1 88 @@ -150146,7 +150358,7 @@ load 116 next_l call 117 ir_builder_ir_label string 0 call 118 pith_cstring_release void 1 116 store next_l 117 -strref 119 m46s834 +strref 119 m46s837 load 120 ready_r call 121 int_to_string string 1 120 concat 122 119 121 @@ -150181,7 +150393,7 @@ call 150 ir_emitter_core_ir_emit_select_arm_body int 4 146 147 148 149 call 151 pith_cstring_release void 1 147 call 152 pith_cstring_release void 1 149 store body_r 150 -strref 153 m46s830 +strref 153 m46s833 load 154 result_temp concat 155 153 154 call 156 pith_cstring_release void 1 153 @@ -150196,7 +150408,7 @@ call 164 pith_cstring_release void 1 158 call 165 pith_cstring_release void 1 162 call 166 ir_builder_ir_emit void 1 163 call 167 pith_cstring_release void 1 163 -strref 168 m46s833 +strref 168 m46s836 load 169 end_l concat 170 168 169 call 171 pith_cstring_release void 1 168 @@ -150236,7 +150448,7 @@ ret 6 label L3095 label L3093 load 11 deadline_name -strref 12 m46s1223 +strref 12 m46s1220 call 13 ir_builder_ir_new_temp_name string 1 12 call 14 pith_cstring_release void 1 12 call 15 pith_cstring_release void 1 11 @@ -150255,14 +150467,14 @@ store timeout_r 24 call 25 ir_builder_ir_reg int 0 store now_r 25 load 26 now_r -strref 27 m46s1220 -strref 28 m46s671 +strref 27 m46s1217 +strref 28 m46s674 call 29 ir_call_emit_ir_emit_call0 void 3 26 27 28 call 30 pith_cstring_release void 1 27 call 31 pith_cstring_release void 1 28 call 32 ir_builder_ir_reg int 0 store deadline_r 32 -strref 33 m46s1031 +strref 33 m46s1033 load 34 deadline_r call 35 int_to_string string 1 34 concat 36 33 35 @@ -150288,7 +150500,7 @@ call 55 pith_cstring_release void 1 49 call 56 pith_cstring_release void 1 53 call 57 ir_builder_ir_emit void 1 54 call 58 pith_cstring_release void 1 54 -strref 59 m46s830 +strref 59 m46s833 load 60 deadline_name concat 61 59 60 call 62 pith_cstring_release void 1 59 @@ -150330,14 +150542,14 @@ ret 5 label L3098 label L3096 load 8 offset_name -strref 9 m46s1222 +strref 9 m46s1219 call 10 ir_builder_ir_new_temp_name string 1 9 call 11 pith_cstring_release void 1 9 call 12 pith_cstring_release void 1 8 store offset_name 10 call 13 ir_builder_ir_reg int 0 store count_r 13 -strref 14 m46s832 +strref 14 m46s835 load 15 count_r call 16 int_to_string string 1 15 concat 17 14 16 @@ -150357,13 +150569,13 @@ call 30 pith_cstring_release void 1 26 call 31 ir_builder_ir_reg int 0 store seed_r 31 load 32 seed_r -strref 33 m46s1221 -strref 34 m46s671 +strref 33 m46s1218 +strref 34 m46s674 load 35 count_r call 36 ir_call_emit_ir_emit_call1 void 4 32 33 34 35 call 37 pith_cstring_release void 1 33 call 38 pith_cstring_release void 1 34 -strref 39 m46s830 +strref 39 m46s833 load 40 offset_name concat 41 39 40 call 42 pith_cstring_release void 1 39 @@ -150405,7 +150617,7 @@ call 11 pith_cstring_release void 1 9 store probe_done_l 10 call 12 ir_builder_ir_reg int 0 store offset_r 12 -strref 13 m46s829 +strref 13 m46s832 load 14 offset_r call 15 int_to_string string 1 14 concat 16 13 15 @@ -150440,7 +150652,7 @@ call 38 ir_builder_ir_reg int 0 store match_r 38 call 39 ir_builder_ir_reg int 0 store case_r 39 -strref 40 m46s832 +strref 40 m46s835 load 41 case_r call 42 int_to_string string 1 41 concat 43 40 42 @@ -150457,7 +150669,7 @@ call 53 pith_cstring_release void 1 47 call 54 pith_cstring_release void 1 51 call 55 ir_builder_ir_emit void 1 52 call 56 pith_cstring_release void 1 52 -strref 57 m46s839 +strref 57 m46s842 load 58 match_r call 59 int_to_string string 1 58 concat 60 57 59 @@ -150483,7 +150695,7 @@ call 79 pith_cstring_release void 1 73 call 80 pith_cstring_release void 1 77 call 81 ir_builder_ir_emit void 1 78 call 82 pith_cstring_release void 1 78 -strref 83 m46s834 +strref 83 m46s837 load 84 match_r call 85 int_to_string string 1 84 concat 86 83 85 @@ -150533,7 +150745,7 @@ add 124 122 123 store j 124 jmp L3102 label L3104 -strref 125 m46s833 +strref 125 m46s836 load 126 probe_done_l concat 127 125 126 call 128 pith_cstring_release void 1 125 @@ -150644,7 +150856,7 @@ call 29 ir_emitter_core_ir_emit_select_arm_body int 4 25 26 27 28 call 30 pith_cstring_release void 1 26 call 31 pith_cstring_release void 1 28 store body_r 29 -strref 32 m46s830 +strref 32 m46s833 load 33 result_temp concat 34 32 33 call 35 pith_cstring_release void 1 32 @@ -150659,7 +150871,7 @@ call 43 pith_cstring_release void 1 37 call 44 pith_cstring_release void 1 41 call 45 ir_builder_ir_emit void 1 42 call 46 pith_cstring_release void 1 42 -strref 47 m46s833 +strref 47 m46s836 load 48 end_l concat 49 47 48 call 50 pith_cstring_release void 1 47 @@ -150699,14 +150911,14 @@ label L3117 call 17 ir_builder_ir_reg int 0 store now_r 17 load 18 now_r -strref 19 m46s1220 -strref 20 m46s671 +strref 19 m46s1217 +strref 20 m46s674 call 21 ir_call_emit_ir_emit_call0 void 3 18 19 20 call 22 pith_cstring_release void 1 19 call 23 pith_cstring_release void 1 20 call 24 ir_builder_ir_reg int 0 store deadline_r 24 -strref 25 m46s829 +strref 25 m46s832 load 26 deadline_r call 27 int_to_string string 1 26 concat 28 25 27 @@ -150723,7 +150935,7 @@ call 38 ir_builder_ir_emit void 1 36 call 39 pith_cstring_release void 1 36 call 40 ir_builder_ir_reg int 0 store expired_r 40 -strref 41 m46s847 +strref 41 m46s850 load 42 expired_r call 43 int_to_string string 1 42 concat 44 41 43 @@ -150757,7 +150969,7 @@ load 70 wait_l call 71 ir_builder_ir_label string 0 call 72 pith_cstring_release void 1 70 store wait_l 71 -strref 73 m46s834 +strref 73 m46s837 load 74 expired_r call 75 int_to_string string 1 74 concat 76 73 75 @@ -150797,7 +151009,7 @@ call 108 ir_emitter_core_ir_emit_select_arm_body int 4 104 105 106 107 call 109 pith_cstring_release void 1 105 call 110 pith_cstring_release void 1 107 store body_r 108 -strref 111 m46s830 +strref 111 m46s833 load 112 result_temp concat 113 111 112 call 114 pith_cstring_release void 1 111 @@ -150812,7 +151024,7 @@ call 122 pith_cstring_release void 1 116 call 123 pith_cstring_release void 1 120 call 124 ir_builder_ir_emit void 1 121 call 125 pith_cstring_release void 1 121 -strref 126 m46s833 +strref 126 m46s836 load 127 end_l concat 128 126 127 call 129 pith_cstring_release void 1 126 @@ -150849,7 +151061,7 @@ call 8 ir_builder_ir_reg int 0 store one_r 8 call 9 ir_builder_ir_reg int 0 store count_r 9 -strref 10 m46s829 +strref 10 m46s832 load 11 cur_offset_r call 12 int_to_string string 1 11 concat 13 10 12 @@ -150864,19 +151076,19 @@ concat 21 17 20 call 22 pith_cstring_release void 1 17 call 23 ir_builder_ir_emit void 1 21 call 24 pith_cstring_release void 1 21 -strref 25 m46s832 +strref 25 m46s835 load 26 one_r call 27 int_to_string string 1 26 concat 28 25 27 call 29 pith_cstring_release void 1 25 call 30 pith_cstring_release void 1 27 -strref 31 m46s842 +strref 31 m46s845 concat 32 28 31 call 33 pith_cstring_release void 1 28 call 34 pith_cstring_release void 1 31 call 35 ir_builder_ir_emit void 1 32 call 36 pith_cstring_release void 1 32 -strref 37 m46s832 +strref 37 m46s835 load 38 count_r call 39 int_to_string string 1 38 concat 40 37 39 @@ -150895,7 +151107,7 @@ call 52 ir_builder_ir_emit void 1 49 call 53 pith_cstring_release void 1 49 call 54 ir_builder_ir_reg int 0 store next_sum_r 54 -strref 55 m46s1031 +strref 55 m46s1033 load 56 next_sum_r call 57 int_to_string string 1 56 concat 58 55 57 @@ -150921,7 +151133,7 @@ call 77 pith_cstring_release void 1 71 call 78 pith_cstring_release void 1 75 call 79 ir_builder_ir_emit void 1 76 call 80 pith_cstring_release void 1 76 -strref 81 m46s1219 +strref 81 m46s1216 load 82 next_offset_r call 83 int_to_string string 1 82 concat 84 81 83 @@ -150947,7 +151159,7 @@ call 103 pith_cstring_release void 1 97 call 104 pith_cstring_release void 1 101 call 105 ir_builder_ir_emit void 1 102 call 106 pith_cstring_release void 1 102 -strref 107 m46s830 +strref 107 m46s833 load 108 offset_name concat 109 107 108 call 110 pith_cstring_release void 1 107 @@ -150974,13 +151186,13 @@ load 4 offset_name call 5 ir_emitter_core_ir_advance_select_offset void 2 3 4 call 6 ir_builder_ir_reg int 0 store delay_r 6 -strref 7 m46s832 +strref 7 m46s835 load 8 delay_r call 9 int_to_string string 1 8 concat 10 7 9 call 11 pith_cstring_release void 1 7 call 12 pith_cstring_release void 1 9 -strref 13 m46s842 +strref 13 m46s845 concat 14 10 13 call 15 pith_cstring_release void 1 10 call 16 pith_cstring_release void 1 13 @@ -150989,13 +151201,13 @@ call 18 pith_cstring_release void 1 14 call 19 ir_builder_ir_reg int 0 store sleep_r 19 load 20 sleep_r -strref 21 m46s1218 -strref 22 m46s822 +strref 21 m46s1215 +strref 22 m46s825 load 23 delay_r call 24 ir_call_emit_ir_emit_call1 void 4 20 21 22 23 call 25 pith_cstring_release void 1 21 call 26 pith_cstring_release void 1 22 -strref 27 m46s833 +strref 27 m46s836 load 28 loop_l concat 29 27 28 call 30 pith_cstring_release void 1 27 @@ -151019,7 +151231,7 @@ store end_l 5 iconst 6 0 store offset_name 6 load 7 result_temp -strref 8 m46s1217 +strref 8 m46s1214 call 9 ir_builder_ir_new_temp_name string 1 8 call 10 pith_cstring_release void 1 8 call 11 pith_cstring_release void 1 7 @@ -151079,7 +151291,7 @@ load 57 end_l call 58 ir_call_emit_ir_emit_label void 1 57 call 59 ir_builder_ir_reg int 0 store r 59 -strref 60 m46s829 +strref 60 m46s832 load 61 r call 62 int_to_string string 1 61 concat 63 60 62 @@ -151135,7 +151347,7 @@ store __or_1_3126 4 brif 4 L3127 L3126 label L3126 load 6 emit_name -strref 7 m46s658 +strref 7 m46s661 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 store __or_1_3126 8 @@ -151157,7 +151369,7 @@ store __or_12_3128 15 brif 15 L3129 L3128 label L3128 load 17 emit_name -strref 18 m46s657 +strref 18 m46s660 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 store __or_12_3128 19 @@ -151502,7 +151714,7 @@ iconst 36 0 store __and_36_3174 36 load 37 recv_info field 38 37 0 string kind -strref 39 m46s497 +strref 39 m46s500 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 store __and_36_3174 40 @@ -151527,7 +151739,7 @@ iconst 50 0 store __or_50_3179 50 load 51 recv_info field 52 51 8 string name -strref 53 m46s496 +strref 53 m46s499 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 store __or_50_3179 54 @@ -151535,7 +151747,7 @@ brif 54 L3180 L3179 label L3179 load 56 recv_info field 57 56 8 string name -strref 58 m46s491 +strref 58 m46s494 call 59 pith_cstring_eq bool 2 57 58 call 60 pith_cstring_release void 1 58 store __or_50_3179 59 @@ -151546,7 +151758,7 @@ brif 61 L3182 L3181 label L3181 load 62 recv_info field 63 62 8 string name -strref 64 m46s490 +strref 64 m46s493 call 65 pith_cstring_eq bool 2 63 64 call 66 pith_cstring_release void 1 64 store __or_49_3179 65 @@ -151557,7 +151769,7 @@ brif 67 L3184 L3183 label L3183 load 68 recv_info field 69 68 8 string name -strref 70 m46s489 +strref 70 m46s492 call 71 pith_cstring_eq bool 2 69 70 call 72 pith_cstring_release void 1 70 store __or_48_3179 71 @@ -151568,7 +151780,7 @@ brif 73 L3186 L3185 label L3185 load 74 recv_info field 75 74 8 string name -strref 76 m46s488 +strref 76 m46s491 call 77 pith_cstring_eq bool 2 75 76 call 78 pith_cstring_release void 1 76 store __or_47_3179 77 @@ -151585,8 +151797,8 @@ store obj_r 84 call 85 ir_builder_ir_reg int 0 store out_r 85 load 86 out_r -strref 87 m46s1216 -strref 88 m46s675 +strref 87 m46s1213 +strref 88 m46s678 load 89 obj_r call 90 ir_call_emit_ir_emit_call1 void 4 86 87 88 89 call 91 pith_cstring_release void 1 87 @@ -151822,7 +152034,7 @@ load 266 end_l call 267 ir_builder_ir_label string 0 call 268 pith_cstring_release void 1 266 store end_l 267 -strref 269 m46s834 +strref 269 m46s837 load 270 flag_r call 271 int_to_string string 1 270 concat 272 269 271 @@ -151871,7 +152083,7 @@ call 305 ir_ownership_ir_rc_retain_reg void 2 303 304 jmp L3209 label L3211 label L3209 -strref 306 m46s830 +strref 306 m46s833 load 307 tmp concat 308 306 307 call 309 pith_cstring_release void 1 306 @@ -151886,7 +152098,7 @@ call 317 pith_cstring_release void 1 311 call 318 pith_cstring_release void 1 315 call 319 ir_builder_ir_emit void 1 316 call 320 pith_cstring_release void 1 316 -strref 321 m46s833 +strref 321 m46s836 load 322 end_l concat 323 321 322 call 324 pith_cstring_release void 1 321 @@ -151935,7 +152147,7 @@ call 350 ir_ownership_ir_rc_retain_reg void 2 348 349 jmp L3214 label L3216 label L3214 -strref 351 m46s830 +strref 351 m46s833 load 352 tmp concat 353 351 352 call 354 pith_cstring_release void 1 351 @@ -151956,8 +152168,8 @@ load 368 owns_subject brif 368 L3222 L3223 label L3222 call 369 ir_builder_ir_reg int 0 -strref 370 m46s898 -strref 371 m46s828 +strref 370 m46s901 +strref 371 m46s831 load 372 obj_r call 373 ir_call_emit_ir_emit_call1 void 4 369 370 371 372 call 374 pith_cstring_release void 1 370 @@ -151967,7 +152179,7 @@ label L3223 label L3221 call 376 ir_builder_ir_reg int 0 store out_r 376 -strref 377 m46s829 +strref 377 m46s832 load 378 out_r call 379 int_to_string string 1 378 concat 380 377 379 @@ -152047,7 +152259,7 @@ call 430 ir_emitter_core_ir_expr int 1 429 store obj_r 430 call 431 ir_builder_ir_reg int 0 store r 431 -strref 432 m46s837 +strref 432 m46s840 load 433 r call 434 int_to_string string 1 433 concat 435 432 434 @@ -152062,7 +152274,7 @@ call 443 int_to_string string 1 442 concat 444 439 443 call 445 pith_cstring_release void 1 439 call 446 pith_cstring_release void 1 443 -strref 447 m46s1170 +strref 447 m46s1167 concat 448 444 447 call 449 pith_cstring_release void 1 444 call 450 pith_cstring_release void 1 447 @@ -152634,7 +152846,7 @@ call 114 ir_utils_ir_unpack_field_index int 1 113 store field_idx 114 call 115 ir_builder_ir_reg int 0 store handle_r 115 -strref 116 m46s837 +strref 116 m46s840 load 117 handle_r call 118 int_to_string string 1 117 concat 119 116 118 @@ -152660,7 +152872,7 @@ call 138 int_to_string string 1 137 concat 139 132 138 call 140 pith_cstring_release void 1 132 call 141 pith_cstring_release void 1 138 -strref 142 m46s1168 +strref 142 m46s1165 concat 143 139 142 call 144 pith_cstring_release void 1 139 call 145 pith_cstring_release void 1 142 @@ -152670,12 +152882,12 @@ call 148 pith_cstring_release void 1 143 call 149 ir_builder_ir_emit void 1 147 call 150 pith_cstring_release void 1 147 load 151 tmp_name -strref 152 m46s1215 +strref 152 m46s1212 call 153 ir_emitter_core_ir_temp_name string 1 152 call 154 pith_cstring_release void 1 152 call 155 pith_cstring_release void 1 151 store tmp_name 153 -strref 156 m46s830 +strref 156 m46s833 load 157 tmp_name concat 158 156 157 call 159 pith_cstring_release void 1 156 @@ -152722,7 +152934,7 @@ jmp L3273 label L3275 call 192 ir_builder_ir_reg int 0 store r 192 -strref 193 m46s1033 +strref 193 m46s1035 load 194 r call 195 int_to_string string 1 194 concat 196 193 195 @@ -152735,7 +152947,7 @@ call 202 pith_cstring_release void 1 199 load 203 tmp_name concat 204 200 203 call 205 pith_cstring_release void 1 200 -strref 206 m46s1168 +strref 206 m46s1165 concat 207 204 206 call 208 pith_cstring_release void 1 204 call 209 pith_cstring_release void 1 206 @@ -152802,7 +153014,7 @@ store emit_name 261 iconst 263 0 store __and_263_3279 263 load 264 emit_name -strref 265 m46s707 +strref 265 m46s710 call 266 pith_cstring_eq bool 2 264 265 call 267 pith_cstring_release void 1 265 store __and_263_3279 266 @@ -152813,7 +153025,7 @@ field 269 268 16 list children iconst 270 0 call 271 pith_list_get_value_strict int 2 269 270 call 272 ir_type_helpers_ir_list_element_kind string 1 271 -strref 273 m46s671 +strref 273 m46s674 call 274 pith_cstring_eq bool 2 272 273 call 275 pith_cstring_release void 1 272 call 276 pith_cstring_release void 1 273 @@ -152823,7 +153035,7 @@ load 277 __and_263_3279 brif 277 L3277 L3278 label L3277 load 278 emit_name -strref 279 m46s1214 +strref 279 m46s1211 call 280 pith_cstring_release void 1 278 store emit_name 279 jmp L3276 @@ -152834,8 +153046,8 @@ call 282 ir_metadata_ir_is_bool_returning_method bool 1 281 brif 282 L3282 L3283 label L3282 load 283 ir_builder_ir_var_types -strref 284 m46s1213 -strref 285 m46s673 +strref 284 m46s1210 +strref 285 m46s676 call 286 pith_map_insert_cstr_owned void 3 283 284 285 call 287 pith_cstring_release void 1 284 jmp L3281 @@ -152942,7 +153154,7 @@ call 356 ir_metadata_ir_is_void_method bool 1 355 brif 356 L3294 L3295 label L3294 load 357 ret_type -strref 358 m46s828 +strref 358 m46s831 call 359 pith_cstring_release void 1 357 store ret_type 358 jmp L3293 @@ -152974,7 +153186,7 @@ store __or_364_3299 372 brif 372 L3302 L3301 label L3301 load 373 emit_name -strref 374 m46s749 +strref 374 m46s752 call 375 pith_cstring_eq bool 2 373 374 call 376 pith_cstring_release void 1 374 store __or_364_3299 375 @@ -152984,7 +153196,7 @@ store __or_363_3299 377 brif 377 L3304 L3303 label L3303 load 378 emit_name -strref 379 m46s750 +strref 379 m46s753 call 380 pith_cstring_eq bool 2 378 379 call 381 pith_cstring_release void 1 379 store __or_363_3299 380 @@ -153012,7 +153224,7 @@ store __or_387_3307 390 brif 390 L3308 L3307 label L3307 load 392 emit_name -strref 393 m46s693 +strref 393 m46s696 call 394 pith_cstring_eq bool 2 392 393 call 395 pith_cstring_release void 1 393 store __or_387_3307 394 @@ -153022,7 +153234,7 @@ store __or_386_3307 396 brif 396 L3310 L3309 label L3309 load 397 emit_name -strref 398 m46s694 +strref 398 m46s697 call 399 pith_cstring_eq bool 2 397 398 call 400 pith_cstring_release void 1 398 store __or_386_3307 399 @@ -153042,7 +153254,7 @@ store __or_384_3307 406 brif 406 L3314 L3313 label L3313 load 407 emit_name -strref 408 m46s774 +strref 408 m46s777 call 409 pith_cstring_eq bool 2 407 408 call 410 pith_cstring_release void 1 408 store __or_384_3307 409 @@ -153161,7 +153373,7 @@ store call_args 468 iconst 470 0 store __and_470_3340 470 load 471 emit_name -strref 472 m46s661 +strref 472 m46s664 call 473 pith_cstring_eq bool 2 471 472 call 474 pith_cstring_release void 1 472 store __and_470_3340 473 @@ -153481,7 +153693,7 @@ call 6 pith_struct_release void 1 3 store cn 5 load 7 cn field 8 7 0 string kind -strref 9 m46s509 +strref 9 m46s512 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 brif 10 L3364 L3365 @@ -153494,7 +153706,7 @@ call 16 pith_cstring_release void 1 12 store si 15 call 17 ir_builder_ir_reg int 0 store part_r 17 -strref 18 m46s888 +strref 18 m46s891 load 19 part_r call 20 int_to_string string 1 19 concat 21 18 20 @@ -153519,7 +153731,7 @@ label L3365 label L3363 load 38 cn field 39 38 0 string kind -strref 40 m46s510 +strref 40 m46s513 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 brif 41 L3367 L3368 @@ -153558,7 +153770,7 @@ call 5 pith_struct_release void 1 2 store cn 4 load 6 cn field 7 6 0 string kind -strref 8 m46s510 +strref 8 m46s513 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L3370 L3371 @@ -153571,7 +153783,7 @@ label L3371 label L3369 load 14 cn field 15 14 0 string kind -strref 16 m46s509 +strref 16 m46s512 call 17 pith_cstring_eq bool 2 15 16 call 18 pith_cstring_release void 1 16 brif 17 L3373 L3374 @@ -153586,7 +153798,7 @@ iconst 22 0 store __or_22_3375 22 load 23 child call 24 ir_emitter_core_ir_infer_type string 1 23 -strref 25 m46s675 +strref 25 m46s678 call 27 pith_cstring_eq bool 2 24 25 iconst 28 1 sub 26 28 27 @@ -153665,7 +153877,7 @@ jmp L3380 label L3382 call 33 ir_builder_ir_reg int 0 store nr 33 -strref 34 m46s1212 +strref 34 m46s1209 load 35 nr call 36 int_to_string string 1 35 concat 37 34 36 @@ -153725,7 +153937,7 @@ brif 73 L3390 L3391 label L3390 call 74 ir_builder_ir_reg int 0 store result_r 74 -strref 75 m46s888 +strref 75 m46s891 load 76 result_r call 77 int_to_string string 1 76 concat 78 75 77 @@ -153932,7 +154144,7 @@ load 11 ir_builder_ir_var_regs load 12 __loopvar_347_param load 13 lr call 14 map_insert void 3 11 12 13 -strref 15 m46s1187 +strref 15 m46s1184 load 16 __loopvar_347_param concat 17 15 16 call 18 pith_cstring_release void 1 15 @@ -153957,7 +154169,7 @@ iconst 3 0 store __and_3_3415 3 load 4 expr_idx call 5 ir_emitter_core_ir_infer_type string 1 4 -strref 6 m46s675 +strref 6 m46s678 call 7 pith_cstring_eq bool 2 5 6 call 8 pith_cstring_release void 1 5 call 9 pith_cstring_release void 1 6 @@ -153972,13 +154184,13 @@ load 12 __and_3_3415 brif 12 L3413 L3414 label L3413 load 13 br -strref 14 m46s675 +strref 14 m46s678 call 15 ir_ownership_ir_rc_retain_reg void 2 13 14 call 16 pith_cstring_release void 1 14 jmp L3412 label L3414 label L3412 -strref 17 m46s849 +strref 17 m46s852 load 18 br call 19 int_to_string string 1 18 concat 20 17 19 @@ -154050,19 +154262,19 @@ endfunc func ir_emitter_core_ir_emit_lambda_default_return 0 void call 0 ir_builder_ir_reg int 0 store dr 0 -strref 1 m46s832 +strref 1 m46s835 load 2 dr call 3 int_to_string string 1 2 concat 4 1 3 call 5 pith_cstring_release void 1 1 call 6 pith_cstring_release void 1 3 -strref 7 m46s831 +strref 7 m46s834 concat 8 4 7 call 9 pith_cstring_release void 1 4 call 10 pith_cstring_release void 1 7 call 11 ir_builder_ir_emit void 1 8 call 12 pith_cstring_release void 1 8 -strref 13 m46s849 +strref 13 m46s852 load 14 dr call 15 int_to_string string 1 14 concat 16 13 15 @@ -154070,7 +154282,7 @@ call 17 pith_cstring_release void 1 13 call 18 pith_cstring_release void 1 15 call 19 ir_builder_ir_emit void 1 16 call 20 pith_cstring_release void 1 16 -strref 21 m46s877 +strref 21 m46s880 call 22 ir_builder_ir_emit void 1 21 call 23 pith_cstring_release void 1 21 iconst 24 0 @@ -154119,7 +154331,7 @@ store saved_loop_iter_kinds 11 iconst 12 0 store saved_loop_var_slots 12 load 13 lambda_name -strref 14 m46s1211 +strref 14 m46s1208 load 15 ir_emitter_core_ir_lambda_count call 16 int_to_string string 1 15 concat 17 14 16 @@ -154204,7 +154416,7 @@ field 76 75 0 list_string params call 77 pith_list_len int 1 76 iconst 78 1 add 79 77 78 -strref 80 m46s822 +strref 80 m46s825 call 81 ir_emitter_core_ir_emit_func_header void 3 74 79 80 call 82 pith_cstring_release void 1 80 call 83 ir_emitter_core_ir_emit_lambda_hidden_param void 0 @@ -154245,7 +154457,7 @@ call 111 pith_map_retain_handle void 1 110 store ir_emitter_core_ir_loop_var_slots 110 call 112 ir_builder_ir_reg int 0 store r 112 -strref 113 m46s1204 +strref 113 m46s1201 load 114 r call 115 int_to_string string 1 114 concat 116 113 115 @@ -154338,7 +154550,7 @@ store saved_types 8 iconst 9 0 store saved_loop_var_slots 9 load 10 wrapper_name -strref 11 m46s1210 +strref 11 m46s1207 load 12 ir_emitter_core_ir_lambda_count call 13 int_to_string string 1 12 concat 14 11 13 @@ -154475,13 +154687,13 @@ store saved_loop_var_slots 102 call 105 ir_emitter_core_ir_reset_lambda_emit_state void 0 load 106 wrapper_name iconst 107 1 -strref 108 m46s822 +strref 108 m46s825 call 109 ir_emitter_core_ir_emit_func_header void 3 106 107 108 call 110 pith_cstring_release void 1 108 call 111 ir_emitter_core_ir_emit_lambda_hidden_param void 0 load 112 captures call 113 ir_emitter_core_ir_emit_lambda_capture_loads void 1 112 -strref 114 m46s849 +strref 114 m46s852 load 115 call_idx call 116 ir_emitter_core_ir_expr int 1 115 call 117 int_to_string string 1 116 @@ -154500,7 +154712,7 @@ call 129 pith_map_retain_handle void 1 128 store ir_emitter_core_ir_loop_var_slots 128 call 130 ir_builder_ir_reg int 0 store closure_r 130 -strref 131 m46s1204 +strref 131 m46s1201 load 132 closure_r call 133 int_to_string string 1 132 concat 134 131 133 @@ -154845,7 +155057,7 @@ ret 17 label L3476 label L3474 load 39 wrapper_name -strref 40 m46s1209 +strref 40 m46s1206 load 41 ir_emitter_core_ir_lambda_count call 42 int_to_string string 1 41 concat 43 40 42 @@ -154877,7 +155089,7 @@ eq 63 61 62 brif 63 L3478 L3479 label L3478 load 64 ret_type -strref 65 m46s822 +strref 65 m46s825 call 66 pith_cstring_release void 1 64 store ret_type 65 jmp L3477 @@ -154948,7 +155160,7 @@ lt 112 108 111 brif 112 L3487 L3488 label L3487 load 113 arg_name -strref 114 m46s1208 +strref 114 m46s1205 load 115 i call 116 int_to_string string 1 115 concat 117 114 116 @@ -154994,7 +155206,7 @@ call 142 pith_list_get_value_unchecked string 2 140 141 store __loopvar_348_arg_name 142 call 143 ir_builder_ir_reg int 0 store arg_r 143 -strref 144 m46s829 +strref 144 m46s832 load 145 arg_r call 146 int_to_string string 1 145 concat 147 144 146 @@ -155020,7 +155232,7 @@ store __for_idx_348 164 jmp L3489 label L3492 load 165 ret_type -strref 166 m46s828 +strref 166 m46s831 call 167 pith_cstring_eq bool 2 165 166 call 168 pith_cstring_release void 1 166 brif 167 L3494 L3495 @@ -155029,7 +155241,7 @@ call 169 ir_builder_ir_reg int 0 store call_r 169 load 170 call_r load 171 target_name -strref 172 m46s828 +strref 172 m46s831 load 173 arg_regs call 174 pith_list_len int 1 173 load 175 arg_regs @@ -155039,19 +155251,19 @@ call 178 pith_cstring_release void 1 172 call 179 pith_cstring_release void 1 176 call 180 ir_builder_ir_reg int 0 store zero_r 180 -strref 181 m46s832 +strref 181 m46s835 load 182 zero_r call 183 int_to_string string 1 182 concat 184 181 183 call 185 pith_cstring_release void 1 181 call 186 pith_cstring_release void 1 183 -strref 187 m46s831 +strref 187 m46s834 concat 188 184 187 call 189 pith_cstring_release void 1 184 call 190 pith_cstring_release void 1 187 call 191 ir_builder_ir_emit void 1 188 call 192 pith_cstring_release void 1 188 -strref 193 m46s849 +strref 193 m46s852 load 194 zero_r call 195 int_to_string string 1 194 concat 196 193 195 @@ -155072,7 +155284,7 @@ load 207 arg_regs call 208 ir_call_helpers_ir_join_arg_regs string 1 207 call 209 ir_call_emit_ir_emit_call_text void 5 202 203 204 206 208 call 210 pith_cstring_release void 1 208 -strref 211 m46s849 +strref 211 m46s852 load 212 call_r call 213 int_to_string string 1 212 concat 214 211 213 @@ -155162,7 +155374,7 @@ field 15 14 0 string name call 16 ir_emitter_core_ir_named_function_value_wrapper string 2 13 15 call 17 pith_cstring_release void 1 12 store wrapper_name 16 -strref 18 m46s1204 +strref 18 m46s1201 load 19 r call 20 int_to_string string 1 19 concat 21 18 20 @@ -155714,7 +155926,7 @@ call 140 ir_builder_ir_reg int 0 store r 140 call 141 ir_builder_ir_reg int 0 store field_count_r 141 -strref 142 m46s832 +strref 142 m46s835 load 143 field_count_r call 144 int_to_string string 1 143 concat 145 142 144 @@ -155732,8 +155944,8 @@ call 156 pith_cstring_release void 1 153 call 157 ir_builder_ir_emit void 1 154 call 158 pith_cstring_release void 1 154 load 159 r -strref 160 m46s728 -strref 161 m46s883 +strref 160 m46s731 +strref 161 m46s886 load 162 sname concat 163 161 162 call 164 pith_cstring_release void 1 161 @@ -155759,7 +155971,7 @@ call 177 pith_list_get_value unknown 2 175 176 store __loopvar_352_field_reg 177 load 178 __for_idx_352 store __loopvar_352_fi 178 -strref 179 m46s1038 +strref 179 m46s1040 load 180 r call 181 int_to_string string 1 180 concat 182 179 181 @@ -155897,7 +156109,7 @@ iconst 52 0 store __and_52_3587 52 load 53 cn field 54 53 0 string kind -strref 55 m46s1207 +strref 55 m46s1204 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 store __and_52_3587 56 @@ -156069,7 +156281,7 @@ call 159 ir_builder_ir_reg int 0 store r 159 call 160 ir_builder_ir_reg int 0 store field_count_r 160 -strref 161 m46s832 +strref 161 m46s835 load 162 field_count_r call 163 int_to_string string 1 162 concat 164 161 163 @@ -156087,8 +156299,8 @@ call 175 pith_cstring_release void 1 172 call 176 ir_builder_ir_emit void 1 173 call 177 pith_cstring_release void 1 173 load 178 r -strref 179 m46s728 -strref 180 m46s883 +strref 179 m46s731 +strref 180 m46s886 load 181 sname concat 182 180 181 call 183 pith_cstring_release void 1 180 @@ -156114,7 +156326,7 @@ call 196 pith_list_get_value unknown 2 194 195 store __loopvar_353_field_reg 196 load 197 __for_idx_353 store __loopvar_353_fi 197 -strref 198 m46s1038 +strref 198 m46s1040 load 199 r call 200 int_to_string string 1 199 concat 201 198 200 @@ -156224,8 +156436,8 @@ store closure_r 23 call 24 ir_builder_ir_reg int 0 store r 24 load 25 r -strref 26 m46s499 -strref 27 m46s822 +strref 26 m46s502 +strref 27 m46s825 load 28 closure_r call 29 ir_call_emit_ir_emit_call1 void 4 25 26 27 28 call 30 pith_cstring_release void 1 26 @@ -156241,13 +156453,13 @@ label L3615 label L3613 call 35 ir_builder_ir_reg int 0 store r 35 -strref 36 m46s832 +strref 36 m46s835 load 37 r call 38 int_to_string string 1 37 concat 39 36 38 call 40 pith_cstring_release void 1 36 call 41 pith_cstring_release void 1 38 -strref 42 m46s831 +strref 42 m46s834 concat 43 39 42 call 44 pith_cstring_release void 1 39 call 45 pith_cstring_release void 1 42 @@ -156334,7 +156546,7 @@ load 50 merge_l call 51 ir_builder_ir_label string 0 call 52 pith_cstring_release void 1 50 store merge_l 51 -strref 53 m46s834 +strref 53 m46s837 load 54 cond_r call 55 int_to_string string 1 54 concat 56 53 55 @@ -156366,7 +156578,7 @@ call 81 pith_list_get_value_strict int 2 79 80 call 82 ir_emitter_core_ir_emit_result_ok_field_for_expr int 2 77 81 store decoded_r 82 load 83 operand_class -strref 84 m46s1202 +strref 84 m46s1199 call 86 pith_cstring_eq bool 2 83 84 iconst 87 1 sub 85 87 86 @@ -156374,8 +156586,8 @@ call 88 pith_cstring_release void 1 84 brif 85 L3626 L3627 label L3626 call 89 ir_builder_ir_reg int 0 -strref 90 m46s898 -strref 91 m46s828 +strref 90 m46s901 +strref 91 m46s831 load 92 val_r call 93 ir_call_emit_ir_emit_call1 void 4 89 90 91 92 call 94 pith_cstring_release void 1 90 @@ -156383,7 +156595,7 @@ call 95 pith_cstring_release void 1 91 jmp L3625 label L3627 label L3625 -strref 96 m46s833 +strref 96 m46s836 load 97 merge_l concat 98 96 97 call 99 pith_cstring_release void 1 96 @@ -156407,7 +156619,7 @@ call 108 ir_emitter_core_ir_test_assert_fail_return void 0 jmp L3628 label L3630 load 109 operand_class -strref 110 m46s1202 +strref 110 m46s1199 call 111 pith_cstring_eq bool 2 109 110 call 112 pith_cstring_release void 1 110 brif 111 L3633 L3634 @@ -156447,7 +156659,7 @@ call 136 ir_emitter_core_ir_defer_emit_to_function_frame void 1 135 strref 137 m46s82 call 138 ir_emitter_core_ir_emit_string_cleanup void 1 137 call 139 pith_cstring_release void 1 137 -strref 140 m46s849 +strref 140 m46s852 load 141 fresh_err_r call 142 int_to_string string 1 141 concat 143 140 142 @@ -156462,7 +156674,7 @@ call 149 ir_emitter_core_ir_defer_emit_to_function_frame void 1 148 strref 150 m46s82 call 151 ir_emitter_core_ir_emit_string_cleanup void 1 150 call 152 pith_cstring_release void 1 150 -strref 153 m46s849 +strref 153 m46s852 load 154 val_r call 155 int_to_string string 1 154 concat 156 153 155 @@ -156512,18 +156724,18 @@ label L3641 call 187 ir_builder_ir_reg int 0 store zero_cmp 187 load 188 result_kind -strref 189 m46s672 +strref 189 m46s675 call 190 pith_cstring_eq bool 2 188 189 call 191 pith_cstring_release void 1 189 brif 190 L3644 L3645 label L3644 -strref 192 m46s1044 +strref 192 m46s1046 load 193 zero_cmp call 194 int_to_string string 1 193 concat 195 192 194 call 196 pith_cstring_release void 1 192 call 197 pith_cstring_release void 1 194 -strref 198 m46s1206 +strref 198 m46s1203 concat 199 195 198 call 200 pith_cstring_release void 1 195 call 201 pith_cstring_release void 1 198 @@ -156531,13 +156743,13 @@ call 202 ir_builder_ir_emit void 1 199 call 203 pith_cstring_release void 1 199 jmp L3643 label L3645 -strref 204 m46s832 +strref 204 m46s835 load 205 zero_cmp call 206 int_to_string string 1 205 concat 207 204 206 call 208 pith_cstring_release void 1 204 call 209 pith_cstring_release void 1 206 -strref 210 m46s831 +strref 210 m46s834 concat 211 207 210 call 212 pith_cstring_release void 1 207 call 213 pith_cstring_release void 1 210 @@ -156546,7 +156758,7 @@ call 215 pith_cstring_release void 1 211 label L3643 call 216 ir_builder_ir_reg int 0 store cond_r 216 -strref 217 m46s1035 +strref 217 m46s1037 load 218 cond_r call 219 int_to_string string 1 218 concat 220 217 219 @@ -156587,7 +156799,7 @@ load 249 merge_l call 250 ir_builder_ir_label string 0 call 251 pith_cstring_release void 1 249 store merge_l 250 -strref 252 m46s834 +strref 252 m46s837 load 253 cond_r call 254 int_to_string string 1 253 concat 255 252 254 @@ -156611,7 +156823,7 @@ call 272 ir_builder_ir_emit void 1 270 call 273 pith_cstring_release void 1 270 load 274 ok_l call 275 ir_call_emit_ir_emit_label void 1 274 -strref 276 m46s833 +strref 276 m46s836 load 277 merge_l concat 278 276 277 call 279 pith_cstring_release void 1 276 @@ -156641,19 +156853,19 @@ call 292 ir_emitter_core_ir_emit_string_cleanup void 1 291 call 293 pith_cstring_release void 1 291 call 294 ir_builder_ir_reg int 0 store zero 294 -strref 295 m46s832 +strref 295 m46s835 load 296 zero call 297 int_to_string string 1 296 concat 298 295 297 call 299 pith_cstring_release void 1 295 call 300 pith_cstring_release void 1 297 -strref 301 m46s831 +strref 301 m46s834 concat 302 298 301 call 303 pith_cstring_release void 1 298 call 304 pith_cstring_release void 1 301 call 305 ir_builder_ir_emit void 1 302 call 306 pith_cstring_release void 1 302 -strref 307 m46s849 +strref 307 m46s852 load 308 zero call 309 int_to_string string 1 308 concat 310 307 309 @@ -156682,13 +156894,13 @@ label L3621 label L3619 call 330 ir_builder_ir_reg int 0 store r 330 -strref 331 m46s832 +strref 331 m46s835 load 332 r call 333 int_to_string string 1 332 concat 334 331 333 call 335 pith_cstring_release void 1 331 call 336 pith_cstring_release void 1 333 -strref 337 m46s831 +strref 337 m46s834 concat 338 334 337 call 339 pith_cstring_release void 1 334 call 340 pith_cstring_release void 1 337 @@ -156826,7 +157038,7 @@ iconst 66 1 call 67 ir_emitter_core_ir_defer_emit_to_function_frame void 1 66 load 68 exclude call 69 ir_emitter_core_ir_emit_string_cleanup void 1 68 -strref 70 m46s849 +strref 70 m46s852 load 71 tuple_r call 72 int_to_string string 1 71 concat 73 70 72 @@ -156841,7 +157053,7 @@ call 79 ir_emitter_core_ir_defer_emit_to_function_frame void 1 78 strref 80 m46s82 call 81 ir_emitter_core_ir_emit_string_cleanup void 1 80 call 82 pith_cstring_release void 1 80 -strref 83 m46s849 +strref 83 m46s852 call 84 ir_result_abi_ir_zero_reg int 0 call 85 ir_emitter_core_ir_emit_err_result_tuple int 1 84 call 86 int_to_string string 1 85 @@ -156859,13 +157071,13 @@ load 95 ub call 96 ir_call_emit_ir_emit_label void 1 95 call 97 ir_builder_ir_reg int 0 store r 97 -strref 98 m46s832 +strref 98 m46s835 load 99 r call 100 int_to_string string 1 99 concat 101 98 100 call 102 pith_cstring_release void 1 98 call 103 pith_cstring_release void 1 100 -strref 104 m46s831 +strref 104 m46s834 concat 105 101 104 call 106 pith_cstring_release void 1 101 call 107 pith_cstring_release void 1 104 @@ -157013,14 +157225,14 @@ call 79 ir_collection_helpers_ir_index_get_call_name string 1 78 call 80 pith_cstring_release void 1 77 store call_name 79 load 81 obj_type -strref 82 m46s675 +strref 82 m46s678 call 83 pith_cstring_eq bool 2 81 82 call 84 pith_cstring_release void 1 82 brif 83 L3679 L3680 label L3679 load 85 r load 86 call_name -strref 87 m46s675 +strref 87 m46s678 load 88 obj_r load 89 idx_r call 90 ir_call_emit_ir_emit_call2 void 5 85 86 87 88 89 @@ -157028,14 +157240,14 @@ call 91 pith_cstring_release void 1 87 jmp L3678 label L3680 load 92 obj_type -strref 93 m46s674 +strref 93 m46s677 call 94 pith_cstring_eq bool 2 92 93 call 95 pith_cstring_release void 1 93 brif 94 L3681 L3682 label L3681 load 96 r load 97 call_name -strref 98 m46s671 +strref 98 m46s674 load 99 obj_r load 100 idx_r call 101 ir_call_emit_ir_emit_call2 void 5 96 97 98 99 100 @@ -157045,7 +157257,7 @@ label L3682 iconst 103 0 store __or_103_3685 103 load 104 obj_type -strref 105 m46s670 +strref 105 m46s673 call 106 pith_cstring_eq bool 2 104 105 call 107 pith_cstring_release void 1 105 store __or_103_3685 106 @@ -157067,7 +157279,7 @@ eq 116 114 115 brif 116 L3688 L3689 label L3688 load 117 value_type -strref 118 m46s822 +strref 118 m46s825 call 119 pith_cstring_release void 1 117 store value_type 118 jmp L3687 @@ -157138,7 +157350,7 @@ ret 5 label L3692 label L3690 load 6 obj_type -strref 7 m46s670 +strref 7 m46s673 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 brif 8 L3694 L3695 @@ -157158,7 +157370,7 @@ ret 15 label L3698 label L3696 load 16 obj_type -strref 17 m46s668 +strref 17 m46s671 call 18 pith_cstring_eq bool 2 16 17 call 19 pith_cstring_release void 1 17 brif 18 L3700 L3701 @@ -157222,7 +157434,7 @@ load 34 merge_l call 35 ir_builder_ir_label string 0 call 36 pith_cstring_release void 1 34 store merge_l 35 -strref 37 m46s834 +strref 37 m46s837 load 38 flag_r call 39 int_to_string string 1 38 concat 40 37 39 @@ -157258,7 +157470,7 @@ eq 68 66 67 brif 68 L3703 L3704 label L3703 load 69 val_kind -strref 70 m46s822 +strref 70 m46s825 call 71 pith_cstring_release void 1 69 store val_kind 70 jmp L3702 @@ -157266,7 +157478,7 @@ label L3704 label L3702 call 72 ir_builder_ir_reg int 0 store unwrapped_r 72 -strref 73 m46s837 +strref 73 m46s840 load 74 unwrapped_r call 75 int_to_string string 1 74 concat 76 73 75 @@ -157281,27 +157493,27 @@ call 84 int_to_string string 1 83 concat 85 80 84 call 86 pith_cstring_release void 1 80 call 87 pith_cstring_release void 1 84 -strref 88 m46s1027 +strref 88 m46s1029 concat 89 85 88 call 90 pith_cstring_release void 1 85 call 91 pith_cstring_release void 1 88 load 92 val_kind concat 93 89 92 call 94 pith_cstring_release void 1 89 -strref 95 m46s1042 +strref 95 m46s1044 concat 96 93 95 call 97 pith_cstring_release void 1 93 call 98 pith_cstring_release void 1 95 call 99 ir_builder_ir_emit void 1 96 call 100 pith_cstring_release void 1 96 call 101 ir_builder_ir_reg int 0 -strref 102 m46s898 -strref 103 m46s828 +strref 102 m46s901 +strref 103 m46s831 load 104 opt_r call 105 ir_call_emit_ir_emit_call1 void 4 101 102 103 104 call 106 pith_cstring_release void 1 102 call 107 pith_cstring_release void 1 103 -strref 108 m46s833 +strref 108 m46s836 load 109 merge_l concat 110 108 109 call 111 pith_cstring_release void 1 108 @@ -157310,8 +157522,8 @@ call 113 pith_cstring_release void 1 110 load 114 none_l call 115 ir_call_emit_ir_emit_label void 1 114 call 116 ir_builder_ir_reg int 0 -strref 117 m46s898 -strref 118 m46s828 +strref 117 m46s901 +strref 118 m46s831 load 119 opt_r call 120 ir_call_emit_ir_emit_call1 void 4 116 117 118 119 call 121 pith_cstring_release void 1 117 @@ -157337,14 +157549,14 @@ strref 130 m46s82 call 131 ir_emitter_core_ir_emit_string_cleanup void 1 130 call 132 pith_cstring_release void 1 130 load 133 msg -strref 134 m46s1205 +strref 134 m46s1202 call 135 ir_builder_ir_str string 1 134 call 136 pith_cstring_release void 1 134 call 137 pith_cstring_release void 1 133 store msg 135 call 138 ir_builder_ir_reg int 0 store err_r 138 -strref 139 m46s888 +strref 139 m46s891 load 140 err_r call 141 int_to_string string 1 140 concat 142 139 141 @@ -157359,7 +157571,7 @@ concat 150 146 149 call 151 pith_cstring_release void 1 146 call 152 ir_builder_ir_emit void 1 150 call 153 pith_cstring_release void 1 150 -strref 154 m46s849 +strref 154 m46s852 load 155 err_r call 156 ir_emitter_core_ir_emit_err_result_tuple int 1 155 call 157 int_to_string string 1 156 @@ -157408,21 +157620,21 @@ call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 brif 3 L3711 L3712 label L3711 -strref 5 m46s685 +strref 5 m46s688 ret 5 label L3712 label L3710 load 6 obj_type -strref 7 m46s670 +strref 7 m46s673 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 brif 8 L3714 L3715 label L3714 -strref 10 m46s686 +strref 10 m46s689 ret 10 label L3715 label L3713 -strref 11 m46s704 +strref 11 m46s707 ret 11 iconst 12 0 ret 12 @@ -157612,7 +157824,7 @@ store __or_104_3736 120 brif 120 L3741 L3740 label L3740 load 121 idx_store_kind -strref 122 m46s674 +strref 122 m46s677 call 123 pith_cstring_eq bool 2 121 122 call 124 pith_cstring_release void 1 122 store __or_104_3736 123 @@ -157666,7 +157878,7 @@ label L3745 label L3730 call 148 ir_builder_ir_reg int 0 load 149 set_name -strref 150 m46s828 +strref 150 m46s831 load 151 obj_r load 152 idx_r load 153 value_r @@ -157722,7 +157934,7 @@ iconst 7 0 store __or_7_3752 7 load 8 node field 9 8 0 string kind -strref 10 m46s519 +strref 10 m46s522 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 store __or_7_3752 11 @@ -157730,7 +157942,7 @@ brif 11 L3753 L3752 label L3752 load 13 node field 14 13 0 string kind -strref 15 m46s671 +strref 15 m46s674 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 store __or_7_3752 16 @@ -157741,7 +157953,7 @@ brif 18 L3755 L3754 label L3754 load 19 node field 20 19 0 string kind -strref 21 m46s1047 +strref 21 m46s1049 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 store __or_6_3752 22 @@ -157762,7 +157974,7 @@ iconst 30 0 store __or_30_3759 30 load 31 node field 32 31 0 string kind -strref 33 m46s517 +strref 33 m46s520 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 store __or_30_3759 34 @@ -157770,7 +157982,7 @@ brif 34 L3760 L3759 label L3759 load 36 node field 37 36 0 string kind -strref 38 m46s675 +strref 38 m46s678 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 store __or_30_3759 39 @@ -157781,7 +157993,7 @@ brif 41 L3762 L3761 label L3761 load 42 node field 43 42 0 string kind -strref 44 m46s1025 +strref 44 m46s1027 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 store __or_29_3759 45 @@ -157800,7 +158012,7 @@ iconst 52 0 store __or_52_3766 52 load 53 node field 54 53 0 string kind -strref 55 m46s518 +strref 55 m46s521 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 store __or_52_3766 56 @@ -157808,7 +158020,7 @@ brif 56 L3767 L3766 label L3766 load 58 node field 59 58 0 string kind -strref 60 m46s672 +strref 60 m46s675 call 61 pith_cstring_eq bool 2 59 60 call 62 pith_cstring_release void 1 60 store __or_52_3766 61 @@ -157827,7 +158039,7 @@ iconst 68 0 store __or_68_3771 68 load 69 node field 70 69 0 string kind -strref 71 m46s673 +strref 71 m46s676 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 store __or_68_3771 72 @@ -157835,7 +158047,7 @@ brif 72 L3772 L3771 label L3771 load 74 node field 75 74 0 string kind -strref 76 m46s516 +strref 76 m46s519 call 77 pith_cstring_eq bool 2 75 76 call 78 pith_cstring_release void 1 76 store __or_68_3771 77 @@ -157868,13 +158080,13 @@ label L3775 label L3773 load 95 node field 96 95 0 string kind -strref 97 m46s515 +strref 97 m46s518 call 98 pith_cstring_eq bool 2 96 97 call 99 pith_cstring_release void 1 97 brif 98 L3777 L3778 label L3777 load 100 idx -strref 101 m46s515 +strref 101 m46s518 call 102 ir_emitter_core_ir_emit_ident_load int 2 100 101 call 103 pith_cstring_release void 1 101 load 104 node @@ -157884,7 +158096,7 @@ label L3778 label L3776 load 106 node field 107 106 0 string kind -strref 108 m46s513 +strref 108 m46s516 call 109 pith_cstring_eq bool 2 107 108 call 110 pith_cstring_release void 1 108 brif 109 L3780 L3781 @@ -157898,7 +158110,7 @@ label L3781 label L3779 load 115 node field 116 115 0 string kind -strref 117 m46s514 +strref 117 m46s517 call 118 pith_cstring_eq bool 2 116 117 call 119 pith_cstring_release void 1 117 brif 118 L3783 L3784 @@ -157939,13 +158151,13 @@ endfunc func ir_emitter_core_ir_emit_zero_value 0 int call 0 ir_builder_ir_reg int 0 store r 0 -strref 1 m46s832 +strref 1 m46s835 load 2 r call 3 int_to_string string 1 2 concat 4 1 3 call 5 pith_cstring_release void 1 1 call 6 pith_cstring_release void 1 3 -strref 7 m46s831 +strref 7 m46s834 concat 8 4 7 call 9 pith_cstring_release void 1 4 call 10 pith_cstring_release void 1 7 @@ -158051,7 +158263,7 @@ field 60 59 0 string name call 61 ir_emitter_core_ir_named_function_value_wrapper string 2 58 60 call 62 pith_cstring_release void 1 57 store wrapper 61 -strref 63 m46s1204 +strref 63 m46s1201 load 64 r call 65 int_to_string string 1 64 concat 66 63 65 @@ -158098,7 +158310,7 @@ brif 98 L3805 L3806 label L3805 call 99 ir_builder_ir_reg int 0 store r 99 -strref 100 m46s829 +strref 100 m46s832 load 101 r call 102 int_to_string string 1 101 concat 103 100 102 @@ -158232,8 +158444,8 @@ store task_r 11 call 12 ir_builder_ir_reg int 0 store r 12 load 13 r -strref 14 m46s498 -strref 15 m46s822 +strref 14 m46s501 +strref 15 m46s825 load 16 task_r call 17 ir_call_emit_ir_emit_call1 void 4 13 14 15 16 call 18 pith_cstring_release void 1 14 @@ -158308,7 +158520,7 @@ load 16 done_l call 17 ir_builder_ir_label string 0 call 18 pith_cstring_release void 1 16 store done_l 17 -strref 19 m46s834 +strref 19 m46s837 load 20 cond_r call 21 int_to_string string 1 20 concat 22 19 21 @@ -158359,7 +158571,7 @@ call 62 ir_ownership_ir_rc_release_reg void 2 60 61 jmp L3816 label L3818 label L3816 -strref 63 m46s833 +strref 63 m46s836 load 64 done_l concat 65 63 64 call 66 pith_cstring_release void 1 63 @@ -158370,7 +158582,7 @@ call 70 ir_call_emit_ir_emit_label void 1 69 load 71 result_r load 72 result_tid call 73 ir_emitter_core_ir_emit_release_result_error void 2 71 72 -strref 74 m46s833 +strref 74 m46s836 load 75 done_l concat 76 74 75 call 77 pith_cstring_release void 1 74 @@ -158379,8 +158591,8 @@ call 79 pith_cstring_release void 1 76 load 80 done_l call 81 ir_call_emit_ir_emit_label void 1 80 call 82 ir_builder_ir_reg int 0 -strref 83 m46s898 -strref 84 m46s828 +strref 83 m46s901 +strref 84 m46s831 load 85 result_r call 86 ir_call_emit_ir_emit_call1 void 4 82 83 84 85 call 87 pith_cstring_release void 1 83 @@ -158434,7 +158646,7 @@ call 25 ir_result_abi_ir_emit_result_flag_field int 2 23 24 call 26 pith_cstring_release void 1 24 store cond_r 25 load 27 temp_name -strref 28 m46s1203 +strref 28 m46s1200 call 29 ir_builder_ir_new_temp_name string 1 28 call 30 pith_cstring_release void 1 28 call 31 pith_cstring_release void 1 27 @@ -158451,7 +158663,7 @@ load 38 merge_l call 39 ir_builder_ir_label string 0 call 40 pith_cstring_release void 1 38 store merge_l 39 -strref 41 m46s834 +strref 41 m46s837 load 42 cond_r call 43 int_to_string string 1 42 concat 44 41 43 @@ -158482,7 +158694,7 @@ call 68 ir_result_abi_ir_emit_result_value_field int 3 65 66 67 call 69 pith_cstring_release void 1 67 store ok_value_r 68 load 70 operand_class -strref 71 m46s1202 +strref 71 m46s1199 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 brif 72 L3820 L3821 @@ -158499,14 +158711,14 @@ call 82 pith_cstring_release void 1 79 jmp L3819 label L3821 call 83 ir_builder_ir_reg int 0 -strref 84 m46s898 -strref 85 m46s828 +strref 84 m46s901 +strref 85 m46s831 load 86 result_r call 87 ir_call_emit_ir_emit_call1 void 4 83 84 85 86 call 88 pith_cstring_release void 1 84 call 89 pith_cstring_release void 1 85 label L3819 -strref 90 m46s830 +strref 90 m46s833 load 91 temp_name concat 92 90 91 call 93 pith_cstring_release void 1 90 @@ -158521,7 +158733,7 @@ call 101 pith_cstring_release void 1 95 call 102 pith_cstring_release void 1 99 call 103 ir_builder_ir_emit void 1 100 call 104 pith_cstring_release void 1 100 -strref 105 m46s833 +strref 105 m46s836 load 106 merge_l concat 107 105 106 call 108 pith_cstring_release void 1 105 @@ -158530,7 +158742,7 @@ call 110 pith_cstring_release void 1 107 load 111 fallback_l call 112 ir_call_emit_ir_emit_label void 1 111 load 113 operand_class -strref 114 m46s1202 +strref 114 m46s1199 call 116 pith_cstring_eq bool 2 113 114 iconst 117 1 sub 115 117 116 @@ -158541,8 +158753,8 @@ load 119 result_r load 120 result_tid call 121 ir_emitter_core_ir_emit_release_result_error void 2 119 120 call 122 ir_builder_ir_reg int 0 -strref 123 m46s898 -strref 124 m46s828 +strref 123 m46s901 +strref 124 m46s831 load 125 result_r call 126 ir_call_emit_ir_emit_call1 void 4 122 123 124 125 call 127 pith_cstring_release void 1 123 @@ -158576,7 +158788,7 @@ call 148 pith_cstring_release void 1 145 jmp L3825 label L3827 label L3825 -strref 149 m46s830 +strref 149 m46s833 load 150 temp_name concat 151 149 150 call 152 pith_cstring_release void 1 149 @@ -158595,7 +158807,7 @@ load 164 merge_l call 165 ir_call_emit_ir_emit_label void 1 164 call 166 ir_builder_ir_reg int 0 store r 166 -strref 167 m46s829 +strref 167 m46s832 load 168 r call 169 int_to_string string 1 168 concat 170 167 169 @@ -158670,7 +158882,7 @@ call 6 ast_node_kind string 1 5 call 7 pith_cstring_release void 1 4 store kind 6 load 8 kind -strref 9 m46s502 +strref 9 m46s505 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 brif 10 L3832 L3833 @@ -158710,7 +158922,7 @@ ret 31 label L3833 label L3831 load 38 kind -strref 39 m46s507 +strref 39 m46s510 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 brif 40 L3838 L3839 @@ -158742,7 +158954,7 @@ ret 55 label L3842 label L3840 load 60 kind -strref 61 m46s511 +strref 61 m46s514 call 62 pith_cstring_eq bool 2 60 61 call 63 pith_cstring_release void 1 61 brif 62 L3844 L3845 @@ -158777,7 +158989,7 @@ store __or_78_3852 81 brif 81 L3853 L3852 label L3852 load 83 checked_lit -strref 84 m46s669 +strref 84 m46s672 call 85 pith_cstring_eq bool 2 83 84 call 86 pith_cstring_release void 1 84 store __or_78_3852 85 @@ -158853,7 +159065,7 @@ ret 129 label L3862 label L3860 load 134 kind -strref 135 m46s500 +strref 135 m46s503 call 136 pith_cstring_eq bool 2 134 135 call 137 pith_cstring_release void 1 135 brif 136 L3864 L3865 @@ -158885,7 +159097,7 @@ ret 151 label L3868 label L3866 load 156 kind -strref 157 m46s501 +strref 157 m46s504 call 158 pith_cstring_eq bool 2 156 157 call 159 pith_cstring_release void 1 157 brif 158 L3870 L3871 @@ -158900,7 +159112,7 @@ ret 161 label L3871 label L3869 load 166 kind -strref 167 m46s499 +strref 167 m46s502 call 168 pith_cstring_eq bool 2 166 167 call 169 pith_cstring_release void 1 167 brif 168 L3873 L3874 @@ -158915,7 +159127,7 @@ ret 171 label L3874 label L3872 load 176 kind -strref 177 m46s498 +strref 177 m46s501 call 178 pith_cstring_eq bool 2 176 177 call 179 pith_cstring_release void 1 177 brif 178 L3876 L3877 @@ -158930,7 +159142,7 @@ ret 181 label L3877 label L3875 load 186 kind -strref 187 m46s506 +strref 187 m46s509 call 188 pith_cstring_eq bool 2 186 187 call 189 pith_cstring_release void 1 187 brif 188 L3879 L3880 @@ -158947,14 +159159,14 @@ label L3878 iconst 196 0 store __or_196_3884 196 load 197 kind -strref 198 m46s505 +strref 198 m46s508 call 199 pith_cstring_eq bool 2 197 198 call 200 pith_cstring_release void 1 198 store __or_196_3884 199 brif 199 L3885 L3884 label L3884 load 201 kind -strref 202 m46s550 +strref 202 m46s553 call 203 pith_cstring_eq bool 2 201 202 call 204 pith_cstring_release void 1 202 store __or_196_3884 203 @@ -158972,7 +159184,7 @@ ret 207 label L3883 label L3881 load 212 kind -strref 213 m46s504 +strref 213 m46s507 call 214 pith_cstring_eq bool 2 212 213 call 215 pith_cstring_release void 1 213 brif 214 L3887 L3888 @@ -158987,7 +159199,7 @@ ret 217 label L3888 label L3886 load 222 kind -strref 223 m46s503 +strref 223 m46s506 call 224 pith_cstring_eq bool 2 222 223 call 225 pith_cstring_release void 1 223 brif 224 L3890 L3891 @@ -159002,7 +159214,7 @@ ret 227 label L3891 label L3889 load 232 kind -strref 233 m46s557 +strref 233 m46s560 call 234 pith_cstring_eq bool 2 232 233 call 235 pith_cstring_release void 1 233 brif 234 L3893 L3894 @@ -159017,7 +159229,7 @@ ret 237 label L3894 label L3892 load 242 kind -strref 243 m46s512 +strref 243 m46s515 call 244 pith_cstring_eq bool 2 242 243 call 245 pith_cstring_release void 1 243 brif 244 L3896 L3897 @@ -159316,7 +159528,7 @@ iconst 156 0 call 157 ir_emitter_core_ir_defer_emit_to_function_frame void 1 156 load 158 exclude call 159 ir_emitter_core_ir_emit_string_cleanup void 1 158 -strref 160 m46s849 +strref 160 m46s852 load 161 r call 162 int_to_string string 1 161 concat 163 160 162 @@ -159333,19 +159545,19 @@ call 171 ir_emitter_core_ir_emit_string_cleanup void 1 170 call 172 pith_cstring_release void 1 170 call 173 ir_builder_ir_reg int 0 store r 173 -strref 174 m46s832 +strref 174 m46s835 load 175 r call 176 int_to_string string 1 175 concat 177 174 176 call 178 pith_cstring_release void 1 174 call 179 pith_cstring_release void 1 176 -strref 180 m46s831 +strref 180 m46s834 concat 181 177 180 call 182 pith_cstring_release void 1 177 call 183 pith_cstring_release void 1 180 call 184 ir_builder_ir_emit void 1 181 call 185 pith_cstring_release void 1 181 -strref 186 m46s849 +strref 186 m46s852 load 187 r call 188 int_to_string string 1 187 concat 189 186 188 @@ -159633,7 +159845,7 @@ call 176 pith_cstring_release void 1 174 call 177 pith_cstring_release void 1 172 store ctor 175 load 178 ctor -strref 179 m46s764 +strref 179 m46s767 call 180 pith_cstring_eq bool 2 178 179 call 181 pith_cstring_release void 1 179 brif 180 L3972 L3973 @@ -159846,7 +160058,7 @@ call 99 pith_struct_release void 1 93 store recv 98 load 100 recv field 101 100 0 string kind -strref 102 m46s515 +strref 102 m46s518 call 103 pith_cstring_eq bool 2 101 102 call 104 pith_cstring_release void 1 102 brif 103 L3996 L3997 @@ -160220,7 +160432,7 @@ label L4057 iconst 60 0 store __and_60_4059 60 load 61 legacy_kind -strref 62 m46s675 +strref 62 m46s678 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 store __and_60_4059 63 @@ -160613,7 +160825,7 @@ call 113 ir_alias_registry_ir_emit_named_field_access void 5 108 109 110 111 112 load 114 value_idx call 115 ir_emitter_core_ir_emit_weak_payload int 1 114 store new_w 115 -strref 116 m46s1038 +strref 116 m46s1040 load 117 obj_r call 118 int_to_string string 1 117 concat 119 116 118 @@ -160641,13 +160853,13 @@ call 140 ir_builder_ir_emit void 1 137 call 141 pith_cstring_release void 1 137 call 142 ir_builder_ir_reg int 0 store rel_r 142 -strref 143 m46s1033 +strref 143 m46s1035 load 144 rel_r call 145 int_to_string string 1 144 concat 146 143 145 call 147 pith_cstring_release void 1 143 call 148 pith_cstring_release void 1 145 -strref 149 m46s1169 +strref 149 m46s1166 concat 150 146 149 call 151 pith_cstring_release void 1 146 call 152 pith_cstring_release void 1 149 @@ -160745,7 +160957,7 @@ call 212 ir_ownership_ir_rc_retain_reg void 2 210 211 jmp L4106 label L4108 label L4106 -strref 213 m46s1038 +strref 213 m46s1040 load 214 obj_r call 215 int_to_string string 1 214 concat 216 213 215 @@ -160919,7 +161131,7 @@ load 75 compound_op load 76 cur load 77 rhs call 78 ir_operator_helpers_ir_emit_simple_binary void 4 74 75 76 77 -strref 79 m46s1038 +strref 79 m46s1040 load 80 obj_r call 81 int_to_string string 1 80 concat 82 79 81 @@ -160987,7 +161199,7 @@ store op 10 iconst 13 0 store __and_13_4127 13 load 14 op -strref 15 m46s546 +strref 15 m46s549 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 store __and_13_4127 16 @@ -161141,7 +161353,7 @@ label L4146 iconst 125 0 store __and_125_4148 125 load 126 assign_kind -strref 127 m46s675 +strref 127 m46s678 call 128 pith_cstring_eq bool 2 126 127 call 129 pith_cstring_release void 1 127 store __and_125_4148 128 @@ -161401,7 +161613,7 @@ load 8 branch field 9 8 0 int cond_idx call 10 ir_emitter_core_ir_expr int 1 9 store cr 10 -strref 11 m46s834 +strref 11 m46s837 load 12 cr call 13 int_to_string string 1 12 concat 14 11 13 @@ -161447,7 +161659,7 @@ iconst 45 1 sub 44 45 43 brif 44 L4182 L4183 label L4182 -strref 46 m46s833 +strref 46 m46s836 load 47 end_label concat 48 46 47 call 49 pith_cstring_release void 1 46 @@ -161471,7 +161683,7 @@ iconst 5 0 store item_ret_kind 5 call 6 ir_builder_ir_reg int 0 store it_r 6 -strref 7 m46s829 +strref 7 m46s832 load 8 it_r call 9 int_to_string string 1 8 concat 10 7 9 @@ -161488,7 +161700,7 @@ call 20 ir_builder_ir_emit void 1 18 call 21 pith_cstring_release void 1 18 call 22 ir_builder_ir_reg int 0 store idx_r 22 -strref 23 m46s829 +strref 23 m46s832 load 24 idx_r call 25 int_to_string string 1 24 concat 26 23 25 @@ -161533,7 +161745,7 @@ brif 61 L4185 L4186 label L4185 call 62 ir_builder_ir_reg int 0 store idx_val 62 -strref 63 m46s829 +strref 63 m46s832 load 64 idx_val call 65 int_to_string string 1 64 concat 66 63 65 @@ -161553,7 +161765,7 @@ load 79 idx_val call 80 ir_emitter_core_ir_emit_name_store void 2 78 79 load 81 ir_builder_ir_var_types load 82 index_name -strref 83 m46s671 +strref 83 m46s674 call 84 pith_map_insert_cstr_owned void 3 81 82 83 jmp L4184 label L4186 @@ -161583,7 +161795,7 @@ store kind 9 iconst 12 0 store ir_call_emit_ir_last_was_ret 12 load 13 kind -strref 14 m46s554 +strref 14 m46s557 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 brif 15 L4188 L4189 @@ -161613,7 +161825,7 @@ ret 32 label L4189 label L4187 load 33 kind -strref 34 m46s553 +strref 34 m46s556 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 brif 35 L4194 L4195 @@ -161707,7 +161919,7 @@ iconst 88 0 store __and_88_4215 88 load 89 idx call 90 ir_emitter_core_ir_infer_type string 1 89 -strref 91 m46s675 +strref 91 m46s678 call 92 pith_cstring_eq bool 2 90 91 call 93 pith_cstring_release void 1 90 call 94 pith_cstring_release void 1 91 @@ -161753,7 +161965,7 @@ ret 117 label L4219 label L4217 load 118 kind -strref 119 m46s558 +strref 119 m46s561 call 120 pith_cstring_eq bool 2 118 119 call 121 pith_cstring_release void 1 119 brif 120 L4221 L4222 @@ -161771,14 +161983,14 @@ label L4220 iconst 129 0 store __or_129_4226 129 load 130 kind -strref 131 m46s551 +strref 131 m46s554 call 132 pith_cstring_eq bool 2 130 131 call 133 pith_cstring_release void 1 131 store __or_129_4226 132 brif 132 L4227 L4226 label L4226 load 134 kind -strref 135 m46s552 +strref 135 m46s555 call 136 pith_cstring_eq bool 2 134 135 call 137 pith_cstring_release void 1 135 store __or_129_4226 136 @@ -161797,7 +162009,7 @@ ret 145 label L4225 label L4223 load 146 kind -strref 147 m46s1201 +strref 147 m46s1198 call 148 pith_cstring_eq bool 2 146 147 call 149 pith_cstring_release void 1 147 brif 148 L4229 L4230 @@ -161813,7 +162025,7 @@ ret 156 label L4230 label L4228 load 157 kind -strref 158 m46s574 +strref 158 m46s577 call 159 pith_cstring_eq bool 2 157 158 call 160 pith_cstring_release void 1 158 brif 159 L4232 L4233 @@ -161886,7 +162098,7 @@ call 27 pith_struct_release void 1 24 store cn 26 load 28 cn field 29 28 0 string kind -strref 30 m46s532 +strref 30 m46s535 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 brif 31 L4239 L4240 @@ -161898,7 +162110,7 @@ jmp L4238 label L4240 load 36 cn field 37 36 0 string kind -strref 38 m46s530 +strref 38 m46s533 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 brif 39 L4241 L4242 @@ -162023,7 +162235,7 @@ label L4251 call 12 ir_builder_ir_reg int 0 store r 12 load 13 r -strref 14 m46s467 +strref 14 m46s470 load 15 subj_r call 16 ir_optionals_ir_emit_optional_none_compare void 3 13 14 15 call 17 pith_cstring_release void 1 14 @@ -162133,7 +162345,7 @@ label L4259 jmp L4256 label L4258 label L4256 -strref 57 m46s830 +strref 57 m46s833 load 58 pat field 59 58 8 string value concat 60 57 59 @@ -162286,7 +162498,7 @@ load 38 end_l call 39 ir_builder_ir_label string 0 call 40 pith_cstring_release void 1 38 store end_l 39 -strref 41 m46s834 +strref 41 m46s837 load 42 cond_r call 43 int_to_string string 1 42 concat 44 41 43 @@ -162332,7 +162544,7 @@ iconst 83 1 sub 82 83 81 brif 82 L4278 L4279 label L4278 -strref 84 m46s833 +strref 84 m46s836 load 85 end_l concat 86 84 85 call 87 pith_cstring_release void 1 84 @@ -162366,8 +162578,8 @@ load 105 owns_subject brif 105 L4284 L4285 label L4284 call 106 ir_builder_ir_reg int 0 -strref 107 m46s898 -strref 108 m46s828 +strref 107 m46s901 +strref 108 m46s831 load 109 subj_r call 110 ir_call_emit_ir_emit_call1 void 4 106 107 108 109 call 111 pith_cstring_release void 1 107 @@ -162444,7 +162656,7 @@ call 40 pith_list_get_value_strict int 2 38 39 load 41 subj_r call 42 ir_emitter_core_ir_emit_let_cond int 2 40 41 store cond_r 42 -strref 43 m46s834 +strref 43 m46s837 load 44 cond_r call 45 int_to_string string 1 44 concat 46 43 45 @@ -162511,8 +162723,8 @@ load 103 owns_subject brif 103 L4290 L4291 label L4290 call 104 ir_builder_ir_reg int 0 -strref 105 m46s898 -strref 106 m46s828 +strref 105 m46s901 +strref 106 m46s831 load 107 subj_r call 108 ir_call_emit_ir_emit_call1 void 4 104 105 106 107 call 109 pith_cstring_release void 1 105 @@ -162520,7 +162732,7 @@ call 110 pith_cstring_release void 1 106 jmp L4289 label L4291 label L4289 -strref 111 m46s833 +strref 111 m46s836 load 112 head_label concat 113 111 112 call 114 pith_cstring_release void 1 111 @@ -162532,8 +162744,8 @@ load 119 owns_subject brif 119 L4293 L4294 label L4293 call 120 ir_builder_ir_reg int 0 -strref 121 m46s898 -strref 122 m46s828 +strref 121 m46s901 +strref 122 m46s831 load 123 subj_r call 124 ir_call_emit_ir_emit_call1 void 4 120 121 122 123 call 125 pith_cstring_release void 1 121 @@ -162587,7 +162799,7 @@ iconst 22 0 call 23 pith_list_get_value_strict int 2 21 22 call 24 ir_emitter_core_ir_expr int 1 23 store cr 24 -strref 25 m46s834 +strref 25 m46s837 load 26 cr call 27 int_to_string string 1 26 concat 28 25 27 @@ -162638,7 +162850,7 @@ call 70 pith_list_len int 1 69 iconst 71 1 sub 72 70 71 call 73 remove void 2 68 72 -strref 74 m46s833 +strref 74 m46s836 load 75 head_label concat 76 74 75 call 77 pith_cstring_release void 1 74 @@ -162686,7 +162898,7 @@ iconst 16 0 call 17 pith_list_get_value_strict int 2 15 16 call 18 ast_get_node struct:Node 1 17 field 19 18 0 string kind -strref 20 m46s523 +strref 20 m46s526 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 brif 21 L4302 L4303 @@ -162779,7 +162991,7 @@ label L4306 label L4304 load 79 next_name load 80 iter_struct -strref 81 m46s1200 +strref 81 m46s1197 call 82 ir_method_tables_ir_lookup_specialized_method string 2 80 81 call 83 pith_cstring_release void 1 81 call 84 pith_cstring_release void 1 79 @@ -162792,7 +163004,7 @@ brif 88 L4316 L4317 label L4316 load 89 next_name load 90 iter_struct -strref 91 m46s1200 +strref 91 m46s1197 call 92 ir_emitter_core_ir_lookup_impl_method_name string 2 90 91 call 93 pith_cstring_release void 1 91 call 94 pith_cstring_release void 1 89 @@ -162959,7 +163171,7 @@ iconst 77 1 add 78 76 77 store ir_emitter_core_ir_for_count 78 load 79 fi -strref 80 m46s1199 +strref 80 m46s1196 load 81 fid call 82 int_to_string string 1 81 concat 83 80 82 @@ -162968,7 +163180,7 @@ call 85 pith_cstring_release void 1 82 call 86 pith_cstring_release void 1 79 store fi 83 load 87 fl -strref 88 m46s1198 +strref 88 m46s1195 load 89 fid call 90 int_to_string string 1 89 concat 91 88 90 @@ -162977,7 +163189,7 @@ call 93 pith_cstring_release void 1 90 call 94 pith_cstring_release void 1 87 store fl 91 load 95 ft -strref 96 m46s1197 +strref 96 m46s1194 load 97 fid call 98 int_to_string string 1 97 concat 99 96 98 @@ -162990,26 +163202,26 @@ store len_r 103 load 104 len_r load 105 item_kind call 106 ir_collection_helpers_ir_for_len_call_name string 1 105 -strref 107 m46s671 +strref 107 m46s674 load 108 iter_r call 109 ir_call_emit_ir_emit_call1 void 4 104 106 107 108 call 110 pith_cstring_release void 1 106 call 111 pith_cstring_release void 1 107 call 112 ir_builder_ir_reg int 0 store idx_r 112 -strref 113 m46s832 +strref 113 m46s835 load 114 idx_r call 115 int_to_string string 1 114 concat 116 113 115 call 117 pith_cstring_release void 1 113 call 118 pith_cstring_release void 1 115 -strref 119 m46s831 +strref 119 m46s834 concat 120 116 119 call 121 pith_cstring_release void 1 116 call 122 pith_cstring_release void 1 119 call 123 ir_builder_ir_emit void 1 120 call 124 pith_cstring_release void 1 120 -strref 125 m46s830 +strref 125 m46s833 load 126 fi concat 127 125 126 call 128 pith_cstring_release void 1 125 @@ -163024,7 +163236,7 @@ call 136 pith_cstring_release void 1 130 call 137 pith_cstring_release void 1 134 call 138 ir_builder_ir_emit void 1 135 call 139 pith_cstring_release void 1 135 -strref 140 m46s830 +strref 140 m46s833 load 141 fl concat 142 140 141 call 143 pith_cstring_release void 1 140 @@ -163039,7 +163251,7 @@ call 151 pith_cstring_release void 1 145 call 152 pith_cstring_release void 1 149 call 153 ir_builder_ir_emit void 1 150 call 154 pith_cstring_release void 1 150 -strref 155 m46s830 +strref 155 m46s833 load 156 ft concat 157 155 156 call 158 pith_cstring_release void 1 155 @@ -163074,7 +163286,7 @@ load 182 head_l call 183 ir_call_emit_ir_emit_label void 1 182 call 184 ir_builder_ir_reg int 0 store ci 184 -strref 185 m46s829 +strref 185 m46s832 load 186 ci call 187 int_to_string string 1 186 concat 188 185 187 @@ -163091,7 +163303,7 @@ call 198 ir_builder_ir_emit void 1 196 call 199 pith_cstring_release void 1 196 call 200 ir_builder_ir_reg int 0 store cl 200 -strref 201 m46s829 +strref 201 m46s832 load 202 cl call 203 int_to_string string 1 202 concat 204 201 203 @@ -163108,7 +163320,7 @@ call 214 ir_builder_ir_emit void 1 212 call 215 pith_cstring_release void 1 212 call 216 ir_builder_ir_reg int 0 store cmp_r 216 -strref 217 m46s844 +strref 217 m46s847 load 218 cmp_r call 219 int_to_string string 1 218 concat 220 217 219 @@ -163134,7 +163346,7 @@ call 239 pith_cstring_release void 1 233 call 240 pith_cstring_release void 1 237 call 241 ir_builder_ir_emit void 1 238 call 242 pith_cstring_release void 1 238 -strref 243 m46s834 +strref 243 m46s837 load 244 cmp_r call 245 int_to_string string 1 244 concat 246 243 245 @@ -163264,7 +163476,7 @@ load 353 step_l call 354 ir_call_emit_ir_emit_label void 1 353 call 355 ir_builder_ir_reg int 0 store idx3 355 -strref 356 m46s829 +strref 356 m46s832 load 357 idx3 call 358 int_to_string string 1 357 concat 359 356 358 @@ -163281,13 +163493,13 @@ call 369 ir_builder_ir_emit void 1 367 call 370 pith_cstring_release void 1 367 call 371 ir_builder_ir_reg int 0 store one_r 371 -strref 372 m46s832 +strref 372 m46s835 load 373 one_r call 374 int_to_string string 1 373 concat 375 372 374 call 376 pith_cstring_release void 1 372 call 377 pith_cstring_release void 1 374 -strref 378 m46s842 +strref 378 m46s845 concat 379 375 378 call 380 pith_cstring_release void 1 375 call 381 pith_cstring_release void 1 378 @@ -163295,7 +163507,7 @@ call 382 ir_builder_ir_emit void 1 379 call 383 pith_cstring_release void 1 379 call 384 ir_builder_ir_reg int 0 store inc_r 384 -strref 385 m46s1031 +strref 385 m46s1033 load 386 inc_r call 387 int_to_string string 1 386 concat 388 385 387 @@ -163321,7 +163533,7 @@ call 407 pith_cstring_release void 1 401 call 408 pith_cstring_release void 1 405 call 409 ir_builder_ir_emit void 1 406 call 410 pith_cstring_release void 1 406 -strref 411 m46s830 +strref 411 m46s833 load 412 fi concat 413 411 412 call 414 pith_cstring_release void 1 411 @@ -163336,7 +163548,7 @@ call 422 pith_cstring_release void 1 416 call 423 pith_cstring_release void 1 420 call 424 ir_builder_ir_emit void 1 421 call 425 pith_cstring_release void 1 421 -strref 426 m46s833 +strref 426 m46s836 load 427 head_l concat 428 426 427 call 429 pith_cstring_release void 1 426 @@ -163352,7 +163564,7 @@ brif 437 L4337 L4338 label L4337 call 438 ir_builder_ir_reg int 0 store fin_r 438 -strref 439 m46s829 +strref 439 m46s832 load 440 fin_r call 441 int_to_string string 1 440 concat 442 439 441 @@ -163437,7 +163649,7 @@ call 19 pith_struct_release void 1 13 store iter_node 18 load 20 iter_node field 21 20 8 string value -strref 22 m46s1196 +strref 22 m46s1193 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 store inclusive 23 @@ -163460,7 +163672,7 @@ iconst 37 1 add 38 36 37 store ir_emitter_core_ir_for_count 38 load 39 fv -strref 40 m46s1195 +strref 40 m46s1192 load 41 fid call 42 int_to_string string 1 41 concat 43 40 42 @@ -163469,7 +163681,7 @@ call 45 pith_cstring_release void 1 42 call 46 pith_cstring_release void 1 39 store fv 43 load 47 fh -strref 48 m46s1194 +strref 48 m46s1191 load 49 fid call 50 int_to_string string 1 49 concat 51 48 50 @@ -163478,7 +163690,7 @@ call 53 pith_cstring_release void 1 50 call 54 pith_cstring_release void 1 47 store fh 51 load 55 fp -strref 56 m46s1192 +strref 56 m46s1189 load 57 fid call 58 int_to_string string 1 57 concat 59 56 58 @@ -163492,7 +163704,7 @@ call 65 string_len int 1 64 iconst 66 0 gt 67 65 66 store has_index 67 -strref 68 m46s830 +strref 68 m46s833 load 69 fv concat 70 68 69 call 71 pith_cstring_release void 1 68 @@ -163507,7 +163719,7 @@ call 79 pith_cstring_release void 1 73 call 80 pith_cstring_release void 1 77 call 81 ir_builder_ir_emit void 1 78 call 82 pith_cstring_release void 1 78 -strref 83 m46s830 +strref 83 m46s833 load 84 fh concat 85 83 84 call 86 pith_cstring_release void 1 83 @@ -163527,19 +163739,19 @@ brif 98 L4340 L4341 label L4340 call 99 ir_builder_ir_reg int 0 store zero_r 99 -strref 100 m46s832 +strref 100 m46s835 load 101 zero_r call 102 int_to_string string 1 101 concat 103 100 102 call 104 pith_cstring_release void 1 100 call 105 pith_cstring_release void 1 102 -strref 106 m46s831 +strref 106 m46s834 concat 107 103 106 call 108 pith_cstring_release void 1 103 call 109 pith_cstring_release void 1 106 call 110 ir_builder_ir_emit void 1 107 call 111 pith_cstring_release void 1 107 -strref 112 m46s830 +strref 112 m46s833 load 113 fp concat 114 112 113 call 115 pith_cstring_release void 1 112 @@ -163577,7 +163789,7 @@ load 139 head_l call 140 ir_call_emit_ir_emit_label void 1 139 call 141 ir_builder_ir_reg int 0 store cv 141 -strref 142 m46s829 +strref 142 m46s832 load 143 cv call 144 int_to_string string 1 143 concat 145 142 144 @@ -163594,7 +163806,7 @@ call 155 ir_builder_ir_emit void 1 153 call 156 pith_cstring_release void 1 153 call 157 ir_builder_ir_reg int 0 store ch 157 -strref 158 m46s829 +strref 158 m46s832 load 159 ch call 160 int_to_string string 1 159 concat 161 158 160 @@ -163612,14 +163824,14 @@ call 172 pith_cstring_release void 1 169 call 173 ir_builder_ir_reg int 0 store cmp_r 173 load 174 cmp_op -strref 175 m46s465 +strref 175 m46s468 call 176 pith_cstring_release void 1 174 store cmp_op 175 load 177 inclusive brif 177 L4343 L4344 label L4343 load 178 cmp_op -strref 179 m46s459 +strref 179 m46s462 call 180 pith_cstring_release void 1 178 store cmp_op 179 jmp L4342 @@ -163654,7 +163866,7 @@ call 206 pith_cstring_release void 1 200 call 207 pith_cstring_release void 1 204 call 208 ir_builder_ir_emit void 1 205 call 209 pith_cstring_release void 1 205 -strref 210 m46s834 +strref 210 m46s837 load 211 cmp_r call 212 int_to_string string 1 211 concat 213 210 212 @@ -163702,7 +163914,7 @@ call 253 pith_cstring_release void 1 244 store prev_index_slot 251 call 254 ir_builder_ir_reg int 0 store bind_r 254 -strref 255 m46s829 +strref 255 m46s832 load 256 bind_r call 257 int_to_string string 1 256 concat 258 255 257 @@ -163720,7 +163932,7 @@ call 269 pith_cstring_release void 1 266 load 270 ir_builder_ir_var_types load 271 names field 272 271 0 string value_name -strref 273 m46s671 +strref 273 m46s674 call 274 pith_map_insert_cstr_owned void 3 270 272 273 load 275 names field 276 275 0 string value_name @@ -163731,7 +163943,7 @@ brif 279 L4346 L4347 label L4346 call 280 ir_builder_ir_reg int 0 store pos_r 280 -strref 281 m46s829 +strref 281 m46s832 load 282 pos_r call 283 int_to_string string 1 282 concat 284 281 283 @@ -163749,7 +163961,7 @@ call 295 pith_cstring_release void 1 292 load 296 ir_builder_ir_var_types load 297 names field 298 297 8 string index_name -strref 299 m46s671 +strref 299 m46s674 call 300 pith_map_insert_cstr_owned void 3 296 298 299 load 301 names field 302 301 8 string index_name @@ -163797,7 +164009,7 @@ load 338 step_l call 339 ir_call_emit_ir_emit_label void 1 338 call 340 ir_builder_ir_reg int 0 store v3 340 -strref 341 m46s829 +strref 341 m46s832 load 342 v3 call 343 int_to_string string 1 342 concat 344 341 343 @@ -163814,13 +164026,13 @@ call 354 ir_builder_ir_emit void 1 352 call 355 pith_cstring_release void 1 352 call 356 ir_builder_ir_reg int 0 store one_r 356 -strref 357 m46s832 +strref 357 m46s835 load 358 one_r call 359 int_to_string string 1 358 concat 360 357 359 call 361 pith_cstring_release void 1 357 call 362 pith_cstring_release void 1 359 -strref 363 m46s842 +strref 363 m46s845 concat 364 360 363 call 365 pith_cstring_release void 1 360 call 366 pith_cstring_release void 1 363 @@ -163828,7 +164040,7 @@ call 367 ir_builder_ir_emit void 1 364 call 368 pith_cstring_release void 1 364 call 369 ir_builder_ir_reg int 0 store inc_r 369 -strref 370 m46s1031 +strref 370 m46s1033 load 371 inc_r call 372 int_to_string string 1 371 concat 373 370 372 @@ -163854,7 +164066,7 @@ call 392 pith_cstring_release void 1 386 call 393 pith_cstring_release void 1 390 call 394 ir_builder_ir_emit void 1 391 call 395 pith_cstring_release void 1 391 -strref 396 m46s830 +strref 396 m46s833 load 397 fv concat 398 396 397 call 399 pith_cstring_release void 1 396 @@ -163874,7 +164086,7 @@ brif 411 L4349 L4350 label L4349 call 412 ir_builder_ir_reg int 0 store p3 412 -strref 413 m46s829 +strref 413 m46s832 load 414 p3 call 415 int_to_string string 1 414 concat 416 413 415 @@ -163891,13 +164103,13 @@ call 426 ir_builder_ir_emit void 1 424 call 427 pith_cstring_release void 1 424 call 428 ir_builder_ir_reg int 0 store pone_r 428 -strref 429 m46s832 +strref 429 m46s835 load 430 pone_r call 431 int_to_string string 1 430 concat 432 429 431 call 433 pith_cstring_release void 1 429 call 434 pith_cstring_release void 1 431 -strref 435 m46s842 +strref 435 m46s845 concat 436 432 435 call 437 pith_cstring_release void 1 432 call 438 pith_cstring_release void 1 435 @@ -163905,7 +164117,7 @@ call 439 ir_builder_ir_emit void 1 436 call 440 pith_cstring_release void 1 436 call 441 ir_builder_ir_reg int 0 store pinc_r 441 -strref 442 m46s1031 +strref 442 m46s1033 load 443 pinc_r call 444 int_to_string string 1 443 concat 445 442 444 @@ -163931,7 +164143,7 @@ call 464 pith_cstring_release void 1 458 call 465 pith_cstring_release void 1 462 call 466 ir_builder_ir_emit void 1 463 call 467 pith_cstring_release void 1 463 -strref 468 m46s830 +strref 468 m46s833 load 469 fp concat 470 468 469 call 471 pith_cstring_release void 1 468 @@ -163949,7 +164161,7 @@ call 482 pith_cstring_release void 1 478 jmp L4348 label L4350 label L4348 -strref 483 m46s833 +strref 483 m46s836 load 484 head_l concat 485 483 484 call 486 pith_cstring_release void 1 483 @@ -164017,7 +164229,7 @@ iconst 19 1 add 20 18 19 store ir_emitter_core_ir_for_count 20 load 21 it_var -strref 22 m46s1193 +strref 22 m46s1190 load 23 fid call 24 int_to_string string 1 23 concat 25 22 24 @@ -164026,7 +164238,7 @@ call 27 pith_cstring_release void 1 24 call 28 pith_cstring_release void 1 21 store it_var 25 load 29 fp -strref 30 m46s1192 +strref 30 m46s1189 load 31 fid call 32 int_to_string string 1 31 concat 33 30 32 @@ -164040,7 +164252,7 @@ call 39 string_len int 1 38 iconst 40 0 gt 41 39 40 store has_index 41 -strref 42 m46s830 +strref 42 m46s833 load 43 it_var concat 44 42 43 call 45 pith_cstring_release void 1 42 @@ -164060,19 +164272,19 @@ brif 57 L4352 L4353 label L4352 call 58 ir_builder_ir_reg int 0 store zero_r 58 -strref 59 m46s832 +strref 59 m46s835 load 60 zero_r call 61 int_to_string string 1 60 concat 62 59 61 call 63 pith_cstring_release void 1 59 call 64 pith_cstring_release void 1 61 -strref 65 m46s831 +strref 65 m46s834 concat 66 62 65 call 67 pith_cstring_release void 1 62 call 68 pith_cstring_release void 1 65 call 69 ir_builder_ir_emit void 1 66 call 70 pith_cstring_release void 1 66 -strref 71 m46s830 +strref 71 m46s833 load 72 fp concat 73 71 72 call 74 pith_cstring_release void 1 71 @@ -164108,7 +164320,7 @@ eq 99 97 98 brif 99 L4355 L4356 label L4355 load 100 elem_kind -strref 101 m46s822 +strref 101 m46s825 call 102 pith_cstring_release void 1 100 store elem_kind 101 jmp L4354 @@ -164134,7 +164346,7 @@ load 115 head_l call 116 ir_call_emit_ir_emit_label void 1 115 call 117 ir_builder_ir_reg int 0 store it_cur 117 -strref 118 m46s829 +strref 118 m46s832 load 119 it_cur call 120 int_to_string string 1 119 concat 121 118 120 @@ -164151,7 +164363,7 @@ call 131 ir_builder_ir_emit void 1 129 call 132 pith_cstring_release void 1 129 call 133 ir_builder_ir_reg int 0 store opt_r 133 -strref 134 m46s1033 +strref 134 m46s1035 load 135 opt_r call 136 int_to_string string 1 135 concat 137 134 136 @@ -164164,7 +164376,7 @@ call 143 pith_cstring_release void 1 140 load 144 next_name concat 145 141 144 call 146 pith_cstring_release void 1 141 -strref 147 m46s1191 +strref 147 m46s1188 concat 148 145 147 call 149 pith_cstring_release void 1 145 call 150 pith_cstring_release void 1 147 @@ -164178,7 +164390,7 @@ call 157 pith_cstring_release void 1 153 load 158 opt_r call 159 ir_optionals_ir_optional_flag_field int 1 158 store flag_r 159 -strref 160 m46s834 +strref 160 m46s837 load 161 flag_r call 162 int_to_string string 1 161 concat 163 160 162 @@ -164226,7 +164438,7 @@ call 203 pith_cstring_release void 1 194 store prev_index_slot 201 call 204 ir_builder_ir_reg int 0 store val_r 204 -strref 205 m46s837 +strref 205 m46s840 load 206 val_r call 207 int_to_string string 1 206 concat 208 205 207 @@ -164241,14 +164453,14 @@ call 216 int_to_string string 1 215 concat 217 212 216 call 218 pith_cstring_release void 1 212 call 219 pith_cstring_release void 1 216 -strref 220 m46s1027 +strref 220 m46s1029 concat 221 217 220 call 222 pith_cstring_release void 1 217 call 223 pith_cstring_release void 1 220 load 224 elem_kind concat 225 221 224 call 226 pith_cstring_release void 1 221 -strref 227 m46s1042 +strref 227 m46s1044 concat 228 225 227 call 229 pith_cstring_release void 1 225 call 230 pith_cstring_release void 1 227 @@ -164268,7 +164480,7 @@ brif 242 L4358 L4359 label L4358 call 243 ir_builder_ir_reg int 0 store pos_r 243 -strref 244 m46s829 +strref 244 m46s832 load 245 pos_r call 246 int_to_string string 1 245 concat 247 244 246 @@ -164286,7 +164498,7 @@ call 258 pith_cstring_release void 1 255 load 259 ir_builder_ir_var_types load 260 names field 261 260 8 string index_name -strref 262 m46s671 +strref 262 m46s674 call 263 pith_map_insert_cstr_owned void 3 259 261 262 load 264 names field 265 264 8 string index_name @@ -164333,8 +164545,8 @@ call 300 remove void 2 295 299 load 301 step_l call 302 ir_call_emit_ir_emit_label void 1 301 call 303 ir_builder_ir_reg int 0 -strref 304 m46s898 -strref 305 m46s828 +strref 304 m46s901 +strref 305 m46s831 load 306 opt_r call 307 ir_call_emit_ir_emit_call1 void 4 303 304 305 306 call 308 pith_cstring_release void 1 304 @@ -164344,7 +164556,7 @@ brif 310 L4361 L4362 label L4361 call 311 ir_builder_ir_reg int 0 store p3 311 -strref 312 m46s829 +strref 312 m46s832 load 313 p3 call 314 int_to_string string 1 313 concat 315 312 314 @@ -164361,13 +164573,13 @@ call 325 ir_builder_ir_emit void 1 323 call 326 pith_cstring_release void 1 323 call 327 ir_builder_ir_reg int 0 store pone_r 327 -strref 328 m46s832 +strref 328 m46s835 load 329 pone_r call 330 int_to_string string 1 329 concat 331 328 330 call 332 pith_cstring_release void 1 328 call 333 pith_cstring_release void 1 330 -strref 334 m46s842 +strref 334 m46s845 concat 335 331 334 call 336 pith_cstring_release void 1 331 call 337 pith_cstring_release void 1 334 @@ -164375,7 +164587,7 @@ call 338 ir_builder_ir_emit void 1 335 call 339 pith_cstring_release void 1 335 call 340 ir_builder_ir_reg int 0 store pinc_r 340 -strref 341 m46s1031 +strref 341 m46s1033 load 342 pinc_r call 343 int_to_string string 1 342 concat 344 341 343 @@ -164401,7 +164613,7 @@ call 363 pith_cstring_release void 1 357 call 364 pith_cstring_release void 1 361 call 365 ir_builder_ir_emit void 1 362 call 366 pith_cstring_release void 1 362 -strref 367 m46s830 +strref 367 m46s833 load 368 fp concat 369 367 368 call 370 pith_cstring_release void 1 367 @@ -164419,7 +164631,7 @@ call 381 pith_cstring_release void 1 377 jmp L4360 label L4362 label L4360 -strref 382 m46s833 +strref 382 m46s836 load 383 head_l concat 384 382 383 call 385 pith_cstring_release void 1 382 @@ -164428,8 +164640,8 @@ call 387 pith_cstring_release void 1 384 load 388 end_l call 389 ir_call_emit_ir_emit_label void 1 388 call 390 ir_builder_ir_reg int 0 -strref 391 m46s898 -strref 392 m46s828 +strref 391 m46s901 +strref 392 m46s831 load 393 opt_r call 394 ir_call_emit_ir_emit_call1 void 4 390 391 392 393 call 395 pith_cstring_release void 1 391 @@ -164462,7 +164674,7 @@ iconst 2 0 store __or_2_4366 2 load 3 node field 4 3 0 string kind -strref 5 m46s1190 +strref 5 m46s1187 call 6 pith_cstring_eq bool 2 4 5 call 7 pith_cstring_release void 1 5 store __or_2_4366 6 @@ -164470,7 +164682,7 @@ brif 6 L4367 L4366 label L4366 load 8 node field 9 8 0 string kind -strref 10 m46s573 +strref 10 m46s576 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 store __or_2_4366 11 @@ -164484,7 +164696,7 @@ jmp L4363 label L4365 load 16 node field 17 16 0 string kind -strref 18 m46s571 +strref 18 m46s574 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L4368 L4369 @@ -164495,7 +164707,7 @@ jmp L4363 label L4369 load 23 node field 24 23 0 string kind -strref 25 m46s570 +strref 25 m46s573 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 brif 26 L4370 L4371 @@ -164508,7 +164720,7 @@ iconst 30 0 store __or_30_4374 30 load 31 node field 32 31 0 string kind -strref 33 m46s1189 +strref 33 m46s1186 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 store __or_30_4374 34 @@ -164516,7 +164728,7 @@ brif 34 L4375 L4374 label L4374 load 36 node field 37 36 0 string kind -strref 38 m46s572 +strref 38 m46s575 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 store __or_30_4374 39 @@ -164532,7 +164744,7 @@ iconst 44 0 store __or_44_4378 44 load 45 node field 46 45 0 string kind -strref 47 m46s1188 +strref 47 m46s1185 call 48 pith_cstring_eq bool 2 46 47 call 49 pith_cstring_release void 1 47 store __or_44_4378 48 @@ -164540,7 +164752,7 @@ brif 48 L4379 L4378 label L4378 load 50 node field 51 50 0 string kind -strref 52 m46s569 +strref 52 m46s572 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 store __or_44_4378 53 @@ -164579,7 +164791,7 @@ store __or_8_4383 11 brif 11 L4384 L4383 label L4383 load 13 kind -strref 14 m46s531 +strref 14 m46s534 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 store __or_8_4383 15 @@ -164589,7 +164801,7 @@ store __or_7_4383 17 brif 17 L4386 L4385 label L4385 load 18 kind -strref 19 m46s530 +strref 19 m46s533 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 store __or_7_4383 20 @@ -164633,7 +164845,7 @@ call 42 ir_emitter_core_ir_defer_pop_scope_emit void 0 jmp L4380 label L4382 load 43 kind -strref 44 m46s556 +strref 44 m46s559 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 brif 45 L4393 L4394 @@ -164645,7 +164857,7 @@ gt 50 48 49 brif 50 L4396 L4397 label L4396 call 51 ir_emitter_core_ir_defer_emit_for_loop_jump void 0 -strref 52 m46s833 +strref 52 m46s836 load 53 ir_emitter_core_ir_break_stack load 54 ir_emitter_core_ir_break_stack call 55 pith_list_len int 1 54 @@ -164668,7 +164880,7 @@ ret 64 label L4394 label L4392 load 67 kind -strref 68 m46s555 +strref 68 m46s558 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 brif 69 L4399 L4400 @@ -164680,7 +164892,7 @@ gt 74 72 73 brif 74 L4402 L4403 label L4402 call 75 ir_emitter_core_ir_defer_emit_for_loop_jump void 0 -strref 76 m46s833 +strref 76 m46s836 load 77 ir_emitter_core_ir_continue_stack load 78 ir_emitter_core_ir_continue_stack call 79 pith_list_len int 1 78 @@ -165134,7 +165346,7 @@ call 14 map_insert void 3 11 12 13 jmp L4443 label L4445 label L4443 -strref 15 m46s1187 +strref 15 m46s1184 load 16 name concat 17 15 16 call 18 pith_cstring_release void 1 15 @@ -165377,7 +165589,7 @@ add 80 78 79 store __for_idx_358 80 jmp L4456 label L4459 -strref 81 m46s822 +strref 81 m46s825 load 82 node call 83 pith_struct_release void 1 82 load 84 cn @@ -165846,7 +166058,7 @@ call 16 pith_struct_release void 1 13 store node 15 load 17 node field 18 17 0 string kind -strref 19 m46s588 +strref 19 m46s591 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L4529 L4530 @@ -166601,7 +166813,7 @@ store tracked 8 iconst 9 0 store filled 9 load 10 inferred -strref 11 m46s822 +strref 11 m46s825 iconst 12 -1 store __list_index_result_L4634 12 iconst 13 0 @@ -166871,7 +167083,7 @@ store __and_177_4677 177 iconst 178 0 store __and_178_4677 178 load 179 __loopvar_368_concrete -strref 180 m46s822 +strref 180 m46s825 call 181 pith_cstring_eq bool 2 179 180 call 182 pith_cstring_release void 1 180 store __and_178_4677 181 @@ -167862,7 +168074,7 @@ label L4771 load 258 base_name load 259 ir_alias_registry_ir_active_generic_module_path load 260 decl_idx -call 261 ir_decode_calls_ir_is_toml_decode_specialization bool 3 258 259 260 +call 261 ir_decode_calls_ir_is_handle_decode_specialization bool 3 258 259 260 store __and_253_4771 261 label L4772 load 262 __and_253_4771 @@ -167875,7 +168087,7 @@ load 266 ir_alias_registry_ir_active_generic_module_path closure_ref 267 ir_emitter_core___fnval_0 closure_ref 268 ir_emitter_core___fnval_1 closure_ref 269 ir_emitter_core___fnval_3 -call 270 ir_decode_emit_ir_emit_toml_decode_specialization_body void 5 265 266 267 268 269 +call 270 ir_decode_emit_ir_emit_handle_decode_specialization_body void 5 265 266 267 268 269 call 271 pith_closure_release void 1 267 call 272 pith_closure_release void 1 268 call 273 pith_closure_release void 1 269 @@ -167893,7 +168105,7 @@ label L4775 load 279 base_name load 280 ir_alias_registry_ir_active_generic_module_path load 281 decl_idx -call 282 ir_decode_calls_ir_is_toml_decode_text_specialization bool 3 279 280 281 +call 282 ir_decode_calls_ir_is_handle_decode_text_specialization bool 3 279 280 281 store __and_274_4775 282 label L4776 load 283 __and_274_4775 @@ -167905,7 +168117,7 @@ call 286 pith_list_get_value_strict string 2 284 285 load 287 ir_alias_registry_ir_active_generic_module_path load 288 concrete_types load 289 ret_type -call 290 ir_decode_emit_ir_emit_toml_decode_text_specialization_body void 4 286 287 288 289 +call 290 ir_decode_emit_ir_emit_handle_decode_text_specialization_body void 4 286 287 288 289 jmp L4760 label L4774 iconst 291 0 @@ -167920,7 +168132,7 @@ label L4779 load 296 base_name load 297 ir_alias_registry_ir_active_generic_module_path load 298 decl_idx -call 299 ir_decode_calls_ir_is_toml_decode_path_specialization bool 3 296 297 298 +call 299 ir_decode_calls_ir_is_handle_decode_path_specialization bool 3 296 297 298 store __and_291_4779 299 label L4780 load 300 __and_291_4779 @@ -167933,7 +168145,7 @@ load 304 ir_alias_registry_ir_active_generic_module_path closure_ref 305 ir_emitter_core___fnval_0 closure_ref 306 ir_emitter_core___fnval_1 closure_ref 307 ir_emitter_core___fnval_3 -call 308 ir_decode_emit_ir_emit_toml_decode_path_specialization_body void 5 303 304 305 306 307 +call 308 ir_decode_emit_ir_emit_handle_decode_path_specialization_body void 5 303 304 305 306 307 call 309 pith_closure_release void 1 305 call 310 pith_closure_release void 1 306 call 311 pith_closure_release void 1 307 @@ -167951,7 +168163,7 @@ label L4783 load 317 base_name load 318 ir_alias_registry_ir_active_generic_module_path load 319 decl_idx -call 320 ir_decode_calls_ir_is_toml_decode_text_path_specialization bool 3 317 318 319 +call 320 ir_decode_calls_ir_is_handle_decode_text_path_specialization bool 3 317 318 319 store __and_312_4783 320 label L4784 load 321 __and_312_4783 @@ -167963,7 +168175,7 @@ call 324 pith_list_get_value_strict string 2 322 323 load 325 ir_alias_registry_ir_active_generic_module_path load 326 concrete_types load 327 ret_type -call 328 ir_decode_emit_ir_emit_toml_decode_text_path_specialization_body void 4 324 325 326 327 +call 328 ir_decode_emit_ir_emit_handle_decode_text_path_specialization_body void 4 324 325 326 327 jmp L4760 label L4782 iconst 329 0 @@ -168522,19 +168734,19 @@ call 3 ir_emitter_core_ir_emit_string_cleanup void 1 2 call 4 pith_cstring_release void 1 2 call 5 ir_builder_ir_reg int 0 store dr 5 -strref 6 m46s832 +strref 6 m46s835 load 7 dr call 8 int_to_string string 1 7 concat 9 6 8 call 10 pith_cstring_release void 1 6 call 11 pith_cstring_release void 1 8 -strref 12 m46s831 +strref 12 m46s834 concat 13 9 12 call 14 pith_cstring_release void 1 9 call 15 pith_cstring_release void 1 12 call 16 ir_builder_ir_emit void 1 13 call 17 pith_cstring_release void 1 13 -strref 18 m46s849 +strref 18 m46s852 load 19 dr call 20 int_to_string string 1 19 concat 21 18 20 @@ -168542,7 +168754,7 @@ call 22 pith_cstring_release void 1 18 call 23 pith_cstring_release void 1 20 call 24 ir_builder_ir_emit void 1 21 call 25 pith_cstring_release void 1 21 -strref 26 m46s877 +strref 26 m46s880 call 27 ir_builder_ir_emit void 1 26 call 28 pith_cstring_release void 1 26 iconst 29 0 @@ -168649,7 +168861,7 @@ store __loopvar_377_item_idx 14 load 15 __loopvar_377_item_idx call 16 ast_get_node struct:Node 1 15 field 17 16 0 string kind -strref 18 m46s587 +strref 18 m46s590 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L4850 L4851 @@ -168682,17 +168894,17 @@ param ordinal load 2 idx call 3 ir_emitter_core_ir_find_body int 1 2 store body_idx 3 -strref 4 m46s671 +strref 4 m46s674 call 5 ir_emitter_core_ir_prepare_func_emission void 1 4 call 6 pith_cstring_release void 1 4 -strref 7 m46s1183 +strref 7 m46s1180 load 8 ordinal call 9 int_to_string string 1 8 concat 10 7 9 call 11 pith_cstring_release void 1 7 call 12 pith_cstring_release void 1 9 iconst 13 0 -strref 14 m46s671 +strref 14 m46s674 call 15 ir_emitter_core_ir_emit_func_header void 3 10 13 14 call 16 pith_cstring_release void 1 10 call 17 pith_cstring_release void 1 14 @@ -168744,12 +168956,12 @@ iconst 24 0 ret 24 label L4854 label L4852 -strref 25 m46s671 +strref 25 m46s674 call 26 ir_emitter_core_ir_prepare_func_emission void 1 25 call 27 pith_cstring_release void 1 25 -strref 28 m46s1156 +strref 28 m46s1153 iconst 29 0 -strref 30 m46s671 +strref 30 m46s674 call 31 ir_emitter_core_ir_emit_func_header void 3 28 29 30 call 32 pith_cstring_release void 1 28 call 33 pith_cstring_release void 1 30 @@ -168773,7 +168985,7 @@ load 43 __for_idx_378 store __loopvar_378_i 43 call 44 ir_builder_ir_reg int 0 store name_r 44 -strref 45 m46s888 +strref 45 m46s891 load 46 name_r call 47 int_to_string string 1 46 concat 48 45 47 @@ -168795,8 +169007,8 @@ call 63 pith_cstring_release void 1 59 call 64 ir_builder_ir_reg int 0 store run_r 64 load 65 run_r -strref 66 m46s1186 -strref 67 m46s671 +strref 66 m46s1183 +strref 67 m46s674 load 68 name_r call 69 ir_call_emit_ir_emit_call1 void 4 65 66 67 68 call 70 pith_cstring_release void 1 66 @@ -168809,7 +169021,7 @@ load 75 skip_l call 76 ir_builder_ir_label string 0 call 77 pith_cstring_release void 1 75 store skip_l 76 -strref 78 m46s834 +strref 78 m46s837 load 79 run_r call 80 int_to_string string 1 79 concat 81 78 80 @@ -168836,8 +169048,8 @@ call 101 ir_call_emit_ir_emit_label void 1 100 call 102 ir_builder_ir_reg int 0 store pid_r 102 load 103 pid_r -strref 104 m46s1185 -strref 105 m46s671 +strref 104 m46s1182 +strref 105 m46s674 call 106 ir_call_emit_ir_emit_call0 void 3 103 104 105 call 107 pith_cstring_release void 1 104 call 108 pith_cstring_release void 1 105 @@ -168849,7 +169061,7 @@ load 112 child_l call 113 ir_builder_ir_label string 0 call 114 pith_cstring_release void 1 112 store child_l 113 -strref 115 m46s834 +strref 115 m46s837 load 116 pid_r call 117 int_to_string string 1 116 concat 118 115 117 @@ -168874,44 +169086,44 @@ call 136 pith_cstring_release void 1 133 load 137 child_l call 138 ir_call_emit_ir_emit_label void 1 137 call 139 ir_builder_ir_reg int 0 -strref 140 m46s1184 -strref 141 m46s671 +strref 140 m46s1181 +strref 141 m46s674 load 142 name_r call 143 ir_call_emit_ir_emit_call1 void 4 139 140 141 142 call 144 pith_cstring_release void 1 140 call 145 pith_cstring_release void 1 141 call 146 ir_builder_ir_reg int 0 -strref 147 m46s1183 +strref 147 m46s1180 load 148 __loopvar_378_i call 149 int_to_string string 1 148 concat 150 147 149 call 151 pith_cstring_release void 1 147 call 152 pith_cstring_release void 1 149 -strref 153 m46s671 +strref 153 m46s674 call 154 ir_call_emit_ir_emit_call0 void 3 146 150 153 call 155 pith_cstring_release void 1 150 call 156 pith_cstring_release void 1 153 call 157 ir_builder_ir_reg int 0 -strref 158 m46s1182 -strref 159 m46s671 +strref 158 m46s1179 +strref 159 m46s674 call 160 ir_call_emit_ir_emit_call0 void 3 157 158 159 call 161 pith_cstring_release void 1 158 call 162 pith_cstring_release void 1 159 call 163 ir_builder_ir_reg int 0 store term_r 163 -strref 164 m46s832 +strref 164 m46s835 load 165 term_r call 166 int_to_string string 1 165 concat 167 164 166 call 168 pith_cstring_release void 1 164 call 169 pith_cstring_release void 1 166 -strref 170 m46s831 +strref 170 m46s834 concat 171 167 170 call 172 pith_cstring_release void 1 167 call 173 pith_cstring_release void 1 170 call 174 ir_builder_ir_emit void 1 171 call 175 pith_cstring_release void 1 171 -strref 176 m46s849 +strref 176 m46s852 load 177 term_r call 178 int_to_string string 1 177 concat 179 176 178 @@ -168922,14 +169134,14 @@ call 183 pith_cstring_release void 1 179 load 184 parent_l call 185 ir_call_emit_ir_emit_label void 1 184 call 186 ir_builder_ir_reg int 0 -strref 187 m46s1181 -strref 188 m46s671 +strref 187 m46s1178 +strref 188 m46s674 load 189 name_r load 190 pid_r call 191 ir_call_emit_ir_emit_call2 void 5 186 187 188 189 190 call 192 pith_cstring_release void 1 187 call 193 pith_cstring_release void 1 188 -strref 194 m46s833 +strref 194 m46s836 load 195 skip_l concat 196 194 195 call 197 pith_cstring_release void 1 194 @@ -168947,33 +169159,33 @@ label L4858 call 205 ir_builder_ir_reg int 0 store summary_r 205 load 206 summary_r -strref 207 m46s1180 -strref 208 m46s671 +strref 207 m46s1177 +strref 208 m46s674 call 209 ir_call_emit_ir_emit_call0 void 3 206 207 208 call 210 pith_cstring_release void 1 207 call 211 pith_cstring_release void 1 208 call 212 ir_builder_ir_reg int 0 -strref 213 m46s1179 -strref 214 m46s822 +strref 213 m46s1176 +strref 214 m46s825 load 215 summary_r call 216 ir_call_emit_ir_emit_call1 void 4 212 213 214 215 call 217 pith_cstring_release void 1 213 call 218 pith_cstring_release void 1 214 call 219 ir_builder_ir_reg int 0 store zero_r 219 -strref 220 m46s832 +strref 220 m46s835 load 221 zero_r call 222 int_to_string string 1 221 concat 223 220 222 call 224 pith_cstring_release void 1 220 call 225 pith_cstring_release void 1 222 -strref 226 m46s831 +strref 226 m46s834 concat 227 223 226 call 228 pith_cstring_release void 1 223 call 229 pith_cstring_release void 1 226 call 230 ir_builder_ir_emit void 1 227 call 231 pith_cstring_release void 1 227 -strref 232 m46s849 +strref 232 m46s852 load 233 zero_r call 234 int_to_string string 1 233 concat 235 232 234 @@ -168981,7 +169193,7 @@ call 236 pith_cstring_release void 1 232 call 237 pith_cstring_release void 1 234 call 238 ir_builder_ir_emit void 1 235 call 239 pith_cstring_release void 1 235 -strref 240 m46s877 +strref 240 m46s880 call 241 ir_builder_ir_emit void 1 240 call 242 pith_cstring_release void 1 240 load 243 tests @@ -169155,7 +169367,7 @@ load 64 full_name load 65 param_count load 66 ret_type call 67 ir_emitter_core_ir_emit_func_header void 3 64 65 66 -strref 68 m46s515 +strref 68 m46s518 load 69 impl_type call 70 ir_emitter_core_ir_emit_named_param void 2 68 69 call 71 pith_cstring_release void 1 68 @@ -169251,7 +169463,7 @@ func ir_emitter_core_ir_collect_import_item 1 void param node load 1 node field 2 1 0 string kind -strref 3 m46s590 +strref 3 m46s593 call 4 pith_cstring_eq bool 2 2 3 call 5 pith_cstring_release void 1 3 brif 4 L4867 L4868 @@ -169263,7 +169475,7 @@ jmp L4866 label L4868 load 9 node field 10 9 0 string kind -strref 11 m46s591 +strref 11 m46s594 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 brif 12 L4869 L4870 @@ -169309,7 +169521,7 @@ call 17 pith_struct_release void 1 14 store cn 16 load 18 cn field 19 18 0 string kind -strref 20 m46s603 +strref 20 m46s606 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 brif 21 L4876 L4877 @@ -169343,7 +169555,7 @@ load 42 ir_struct_registry_ir_struct_names load 43 target call 44 map_get_strict int 2 42 43 call 45 map_insert void 3 40 41 44 -strref 46 m46s1178 +strref 46 m46s1175 load 47 aname concat 48 46 47 call 49 pith_cstring_release void 1 46 @@ -169442,7 +169654,7 @@ label L4892 load 33 ir_method_tables_ir_func_returns load 34 node field 35 34 8 string value -strref 36 m46s828 +strref 36 m46s831 call 37 pith_map_insert_cstr_owned void 3 33 35 36 jmp L4891 label L4893 @@ -169510,7 +169722,7 @@ brif 31 L4902 L4903 label L4902 load 33 ir_method_tables_ir_func_returns load 34 name -strref 35 m46s828 +strref 35 m46s831 call 36 pith_map_insert_cstr_owned void 3 33 34 35 jmp L4901 label L4903 @@ -169766,7 +169978,7 @@ jmp L4929 label L4931 load 66 gcn field 67 66 0 string kind -strref 68 m46s519 +strref 68 m46s522 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 brif 69 L4939 L4940 @@ -169784,7 +169996,7 @@ eq 79 77 78 brif 79 L4942 L4943 label L4942 load 80 global_type -strref 81 m46s671 +strref 81 m46s674 call 82 pith_cstring_release void 1 80 store global_type 81 jmp L4941 @@ -169794,7 +170006,7 @@ jmp L4929 label L4940 load 83 gcn field 84 83 0 string kind -strref 85 m46s517 +strref 85 m46s520 call 86 pith_cstring_eq bool 2 84 85 call 87 pith_cstring_release void 1 85 brif 86 L4944 L4945 @@ -169806,7 +170018,7 @@ call 91 ir_builder_ir_str string 1 90 call 92 pith_cstring_release void 1 88 store si 91 load 93 init_val -strref 94 m46s1177 +strref 94 m46s1174 load 95 si concat 96 94 95 call 97 pith_cstring_release void 1 94 @@ -169819,7 +170031,7 @@ eq 102 100 101 brif 102 L4947 L4948 label L4947 load 103 global_type -strref 104 m46s675 +strref 104 m46s678 call 105 pith_cstring_release void 1 103 store global_type 104 jmp L4946 @@ -169936,7 +170148,7 @@ jmp L4929 label L4960 load 168 gcn field 169 168 0 string kind -strref 170 m46s516 +strref 170 m46s519 call 171 pith_cstring_eq bool 2 169 170 call 172 pith_cstring_release void 1 170 brif 171 L4970 L4971 @@ -169966,7 +170178,7 @@ eq 187 185 186 brif 187 L4976 L4977 label L4976 load 188 global_type -strref 189 m46s673 +strref 189 m46s676 call 190 pith_cstring_release void 1 188 store global_type 189 jmp L4975 @@ -170048,7 +170260,7 @@ iconst 238 0 ret 238 label L4986 label L4984 -strref 239 m46s1176 +strref 239 m46s1173 load 240 gname concat 241 239 240 call 242 pith_cstring_release void 1 239 @@ -170116,7 +170328,7 @@ call 21 pith_struct_release void 1 18 store cn 20 load 22 cn field 23 22 0 string kind -strref 24 m46s589 +strref 24 m46s592 call 26 pith_cstring_eq bool 2 23 24 iconst 27 1 sub 25 27 26 @@ -170190,7 +170402,7 @@ label L5005 label L5003 load 70 target call 71 ir_emitter_core_ir_prepare_func_emission void 1 70 -strref 72 m46s1175 +strref 72 m46s1172 load 73 gname concat 74 72 73 call 75 pith_cstring_release void 1 72 @@ -170251,7 +170463,7 @@ call 112 ir_ownership_ir_rc_retain_reg void 2 110 111 jmp L5006 label L5008 label L5006 -strref 113 m46s849 +strref 113 m46s852 load 114 r call 115 int_to_string string 1 114 concat 116 113 115 @@ -170259,7 +170471,7 @@ call 117 pith_cstring_release void 1 113 call 118 pith_cstring_release void 1 115 call 119 ir_builder_ir_emit void 1 116 call 120 pith_cstring_release void 1 116 -strref 121 m46s877 +strref 121 m46s880 call 122 ir_builder_ir_emit void 1 121 call 123 pith_cstring_release void 1 121 label L4992 @@ -170291,7 +170503,7 @@ param dest_r param name call 2 ir_builder_ir_reg int 0 store slot_r 2 -strref 3 m46s832 +strref 3 m46s835 load 4 slot_r call 5 int_to_string string 1 4 concat 6 3 5 @@ -170312,13 +170524,13 @@ call 20 ir_builder_ir_emit void 1 17 call 21 pith_cstring_release void 1 17 call 22 ir_builder_ir_reg int 0 store fr 22 -strref 23 m46s902 +strref 23 m46s905 load 24 fr call 25 int_to_string string 1 24 concat 26 23 25 call 27 pith_cstring_release void 1 23 call 28 pith_cstring_release void 1 25 -strref 29 m46s1174 +strref 29 m46s1171 concat 30 26 29 call 31 pith_cstring_release void 1 26 call 32 pith_cstring_release void 1 29 @@ -170327,13 +170539,13 @@ concat 34 30 33 call 35 pith_cstring_release void 1 30 call 36 ir_builder_ir_emit void 1 34 call 37 pith_cstring_release void 1 34 -strref 38 m46s1033 +strref 38 m46s1035 load 39 dest_r call 40 int_to_string string 1 39 concat 41 38 40 call 42 pith_cstring_release void 1 38 call 43 pith_cstring_release void 1 40 -strref 44 m46s1173 +strref 44 m46s1170 concat 45 41 44 call 46 pith_cstring_release void 1 41 call 47 pith_cstring_release void 1 44 @@ -170342,7 +170554,7 @@ load 49 name call 50 map_get_strict string 2 48 49 concat 51 45 50 call 52 pith_cstring_release void 1 45 -strref 53 m46s1152 +strref 53 m46s1149 concat 54 51 53 call 55 pith_cstring_release void 1 51 call 56 pith_cstring_release void 1 53 @@ -170370,7 +170582,7 @@ param name param val_r call 2 ir_builder_ir_reg int 0 store slot_r 2 -strref 3 m46s832 +strref 3 m46s835 load 4 slot_r call 5 int_to_string string 1 4 concat 6 3 5 @@ -170389,13 +170601,13 @@ call 18 pith_cstring_release void 1 10 call 19 pith_cstring_release void 1 16 call 20 ir_builder_ir_emit void 1 17 call 21 pith_cstring_release void 1 17 -strref 22 m46s1033 +strref 22 m46s1035 call 23 ir_builder_ir_reg int 0 call 24 int_to_string string 1 23 concat 25 22 24 call 26 pith_cstring_release void 1 22 call 27 pith_cstring_release void 1 24 -strref 28 m46s1172 +strref 28 m46s1169 concat 29 25 28 call 30 pith_cstring_release void 1 25 call 31 pith_cstring_release void 1 28 @@ -170456,7 +170668,7 @@ iconst 9 0 gt 10 8 9 brif 10 L5016 L5017 label L5016 -strref 11 m46s829 +strref 11 m46s832 load 12 dest_r call 13 int_to_string string 1 12 concat 14 11 13 @@ -170482,7 +170694,7 @@ load 29 name call 30 ir_emitter_core_ir_emit_tls_load void 2 28 29 jmp L5015 label L5019 -strref 31 m46s829 +strref 31 m46s832 load 32 dest_r call 33 int_to_string string 1 32 concat 34 31 33 @@ -170521,7 +170733,7 @@ iconst 9 0 gt 10 8 9 brif 10 L5021 L5022 label L5021 -strref 11 m46s830 +strref 11 m46s833 load 12 loop_slot concat 13 11 12 call 14 pith_cstring_release void 1 11 @@ -170547,7 +170759,7 @@ load 29 val_r call 30 ir_emitter_core_ir_emit_tls_store void 2 28 29 jmp L5020 label L5024 -strref 31 m46s830 +strref 31 m46s833 load 32 name call 33 ir_emitter_core_ir_resolve_storage_name string 1 32 concat 34 31 33 @@ -170582,7 +170794,7 @@ load 5 name call 6 ir_emitter_core_ir_emit_tls_load void 2 4 5 jmp L5025 label L5027 -strref 7 m46s829 +strref 7 m46s832 load 8 dest_r call 9 int_to_string string 1 8 concat 10 7 9 @@ -170633,7 +170845,7 @@ call 16 pith_struct_release void 1 13 store cn 15 load 17 cn field 18 17 0 string kind -strref 19 m46s589 +strref 19 m46s592 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L5033 L5034 @@ -170708,13 +170920,13 @@ call 13 pith_cstring_release void 1 10 store sname 12 call 14 ir_builder_ir_reg int 0 store fr 14 -strref 15 m46s902 +strref 15 m46s905 load 16 fr call 17 int_to_string string 1 16 concat 18 15 17 call 19 pith_cstring_release void 1 15 call 20 pith_cstring_release void 1 17 -strref 21 m46s901 +strref 21 m46s904 concat 22 18 21 call 23 pith_cstring_release void 1 18 call 24 pith_cstring_release void 1 21 @@ -170724,8 +170936,8 @@ call 27 pith_cstring_release void 1 22 call 28 ir_builder_ir_emit void 1 26 call 29 pith_cstring_release void 1 26 call 30 ir_builder_ir_reg int 0 -strref 31 m46s900 -strref 32 m46s828 +strref 31 m46s903 +strref 32 m46s831 iconst 33 2 strref 34 m46s336 load 35 struct_r @@ -170768,10 +170980,10 @@ call 11 pith_cstring_release void 1 9 strref 12 m46s18 call 13 pith_list_push_value void 2 2 12 call 14 pith_cstring_release void 1 12 -strref 15 m46s674 +strref 15 m46s677 call 16 pith_list_push_value void 2 2 15 call 17 pith_cstring_release void 1 15 -strref 18 m46s824 +strref 18 m46s827 call 19 pith_list_push_value void 2 2 18 call 20 pith_cstring_release void 1 18 call 21 pith_list_release_handle void 1 1 @@ -170792,27 +171004,27 @@ load 28 __for_iter_387 load 29 __for_idx_387 call 30 pith_list_get_value_unchecked string 2 28 29 store __loopvar_387_k 30 -strref 31 m46s1171 +strref 31 m46s1168 load 32 __loopvar_387_k concat 33 31 32 call 34 pith_cstring_release void 1 31 iconst 35 1 -strref 36 m46s828 +strref 36 m46s831 call 37 ir_emitter_core_ir_emit_func_header void 3 33 35 36 call 38 pith_cstring_release void 1 33 call 39 pith_cstring_release void 1 36 -strref 40 m46s1166 +strref 40 m46s1163 call 41 ir_builder_ir_emit void 1 40 call 42 pith_cstring_release void 1 40 call 43 ir_builder_ir_reg int 0 store pr 43 -strref 44 m46s829 +strref 44 m46s832 load 45 pr call 46 int_to_string string 1 45 concat 47 44 46 call 48 pith_cstring_release void 1 44 call 49 pith_cstring_release void 1 46 -strref 50 m46s1165 +strref 50 m46s1162 concat 51 47 50 call 52 pith_cstring_release void 1 47 call 53 pith_cstring_release void 1 50 @@ -170820,7 +171032,7 @@ call 54 ir_builder_ir_emit void 1 51 call 55 pith_cstring_release void 1 51 call 56 ir_builder_ir_reg int 0 store vr 56 -strref 57 m46s837 +strref 57 m46s840 load 58 vr call 59 int_to_string string 1 58 concat 60 57 59 @@ -170835,7 +171047,7 @@ call 68 int_to_string string 1 67 concat 69 64 68 call 70 pith_cstring_release void 1 64 call 71 pith_cstring_release void 1 68 -strref 72 m46s1170 +strref 72 m46s1167 concat 73 69 72 call 74 pith_cstring_release void 1 69 call 75 pith_cstring_release void 1 72 @@ -170846,19 +171058,19 @@ load 79 __loopvar_387_k call 80 ir_ownership_ir_rc_release_reg void 2 78 79 call 81 ir_builder_ir_reg int 0 store zr 81 -strref 82 m46s832 +strref 82 m46s835 load 83 zr call 84 int_to_string string 1 83 concat 85 82 84 call 86 pith_cstring_release void 1 82 call 87 pith_cstring_release void 1 84 -strref 88 m46s831 +strref 88 m46s834 concat 89 85 88 call 90 pith_cstring_release void 1 85 call 91 pith_cstring_release void 1 88 call 92 ir_builder_ir_emit void 1 89 call 93 pith_cstring_release void 1 89 -strref 94 m46s849 +strref 94 m46s852 load 95 zr call 96 int_to_string string 1 95 concat 97 94 96 @@ -170866,7 +171078,7 @@ call 98 pith_cstring_release void 1 94 call 99 pith_cstring_release void 1 96 call 100 ir_builder_ir_emit void 1 97 call 101 pith_cstring_release void 1 97 -strref 102 m46s877 +strref 102 m46s880 call 103 ir_builder_ir_emit void 1 102 call 104 pith_cstring_release void 1 102 label L5045 @@ -170933,27 +171145,27 @@ label L5058 jmp L5049 label L5059 label L5057 -strref 26 m46s1167 +strref 26 m46s1164 load 27 __loopvar_388_sname concat 28 26 27 call 29 pith_cstring_release void 1 26 iconst 30 1 -strref 31 m46s828 +strref 31 m46s831 call 32 ir_emitter_core_ir_emit_func_header void 3 28 30 31 call 33 pith_cstring_release void 1 28 call 34 pith_cstring_release void 1 31 -strref 35 m46s1166 +strref 35 m46s1163 call 36 ir_builder_ir_emit void 1 35 call 37 pith_cstring_release void 1 35 call 38 ir_builder_ir_reg int 0 store pr 38 -strref 39 m46s829 +strref 39 m46s832 load 40 pr call 41 int_to_string string 1 40 concat 42 39 41 call 43 pith_cstring_release void 1 39 call 44 pith_cstring_release void 1 41 -strref 45 m46s1165 +strref 45 m46s1162 concat 46 42 45 call 47 pith_cstring_release void 1 42 call 48 pith_cstring_release void 1 45 @@ -170994,7 +171206,7 @@ brif 73 L5064 L5065 label L5064 call 74 ir_builder_ir_reg int 0 store fr 74 -strref 75 m46s837 +strref 75 m46s840 load 76 fr call 77 int_to_string string 1 76 concat 78 75 77 @@ -171020,7 +171232,7 @@ call 97 int_to_string string 1 96 concat 98 91 97 call 99 pith_cstring_release void 1 91 call 100 pith_cstring_release void 1 97 -strref 101 m46s1168 +strref 101 m46s1165 concat 102 98 101 call 103 pith_cstring_release void 1 98 call 104 pith_cstring_release void 1 101 @@ -171031,13 +171243,13 @@ call 108 ir_builder_ir_emit void 1 106 call 109 pith_cstring_release void 1 106 call 110 ir_builder_ir_reg int 0 store rel_r 110 -strref 111 m46s1033 +strref 111 m46s1035 load 112 rel_r call 113 int_to_string string 1 112 concat 114 111 113 call 115 pith_cstring_release void 1 111 call 116 pith_cstring_release void 1 113 -strref 117 m46s1169 +strref 117 m46s1166 concat 118 114 117 call 119 pith_cstring_release void 1 114 call 120 pith_cstring_release void 1 117 @@ -171058,7 +171270,7 @@ brif 131 L5066 L5067 label L5066 call 132 ir_builder_ir_reg int 0 store fr 132 -strref 133 m46s837 +strref 133 m46s840 load 134 fr call 135 int_to_string string 1 134 concat 136 133 135 @@ -171084,7 +171296,7 @@ call 155 int_to_string string 1 154 concat 156 149 155 call 157 pith_cstring_release void 1 149 call 158 pith_cstring_release void 1 155 -strref 159 m46s1168 +strref 159 m46s1165 concat 160 156 159 call 161 pith_cstring_release void 1 156 call 162 pith_cstring_release void 1 159 @@ -171107,19 +171319,19 @@ jmp L5060 label L5062 call 174 ir_builder_ir_reg int 0 store zr 174 -strref 175 m46s832 +strref 175 m46s835 load 176 zr call 177 int_to_string string 1 176 concat 178 175 177 call 179 pith_cstring_release void 1 175 call 180 pith_cstring_release void 1 177 -strref 181 m46s831 +strref 181 m46s834 concat 182 178 181 call 183 pith_cstring_release void 1 178 call 184 pith_cstring_release void 1 181 call 185 ir_builder_ir_emit void 1 182 call 186 pith_cstring_release void 1 182 -strref 187 m46s849 +strref 187 m46s852 load 188 zr call 189 int_to_string string 1 188 concat 190 187 189 @@ -171127,7 +171339,7 @@ call 191 pith_cstring_release void 1 187 call 192 pith_cstring_release void 1 189 call 193 ir_builder_ir_emit void 1 190 call 194 pith_cstring_release void 1 190 -strref 195 m46s877 +strref 195 m46s880 call 196 ir_builder_ir_emit void 1 195 call 197 pith_cstring_release void 1 195 label L5049 @@ -171197,27 +171409,27 @@ label L5076 jmp L5070 label L5077 label L5075 -strref 25 m46s1167 +strref 25 m46s1164 load 26 __loopvar_389_ename concat 27 25 26 call 28 pith_cstring_release void 1 25 iconst 29 1 -strref 30 m46s828 +strref 30 m46s831 call 31 ir_emitter_core_ir_emit_func_header void 3 27 29 30 call 32 pith_cstring_release void 1 27 call 33 pith_cstring_release void 1 30 -strref 34 m46s1166 +strref 34 m46s1163 call 35 ir_builder_ir_emit void 1 34 call 36 pith_cstring_release void 1 34 call 37 ir_builder_ir_reg int 0 store pr 37 -strref 38 m46s829 +strref 38 m46s832 load 39 pr call 40 int_to_string string 1 39 concat 41 38 40 call 42 pith_cstring_release void 1 38 call 43 pith_cstring_release void 1 40 -strref 44 m46s1165 +strref 44 m46s1162 concat 45 41 44 call 46 pith_cstring_release void 1 41 call 47 pith_cstring_release void 1 44 @@ -171225,7 +171437,7 @@ call 48 ir_builder_ir_emit void 1 45 call 49 pith_cstring_release void 1 45 call 50 ir_builder_ir_reg int 0 store tag_r 50 -strref 51 m46s837 +strref 51 m46s840 load 52 tag_r call 53 int_to_string string 1 52 concat 54 51 53 @@ -171240,7 +171452,7 @@ call 62 int_to_string string 1 61 concat 63 58 62 call 64 pith_cstring_release void 1 58 call 65 pith_cstring_release void 1 62 -strref 66 m46s848 +strref 66 m46s851 concat 67 63 66 call 68 pith_cstring_release void 1 63 call 69 pith_cstring_release void 1 66 @@ -171327,7 +171539,7 @@ brif 125 L5091 L5092 label L5091 call 126 ir_builder_ir_reg int 0 store vtag 126 -strref 127 m46s832 +strref 127 m46s835 load 128 vtag call 129 int_to_string string 1 128 concat 130 127 129 @@ -171346,7 +171558,7 @@ call 142 ir_builder_ir_emit void 1 139 call 143 pith_cstring_release void 1 139 call 144 ir_builder_ir_reg int 0 store is_v 144 -strref 145 m46s839 +strref 145 m46s842 load 146 is_v call 147 int_to_string string 1 146 concat 148 145 147 @@ -171380,7 +171592,7 @@ load 174 skip_l call 175 ir_builder_ir_label string 0 call 176 pith_cstring_release void 1 174 store skip_l 175 -strref 177 m46s834 +strref 177 m46s837 load 178 is_v call 179 int_to_string string 1 178 concat 180 177 179 @@ -171428,7 +171640,7 @@ brif 215 L5097 L5098 label L5097 call 216 ir_builder_ir_reg int 0 store slot_r 216 -strref 217 m46s837 +strref 217 m46s840 load 218 slot_r call 219 int_to_string string 1 218 concat 220 217 219 @@ -171456,7 +171668,7 @@ call 241 int_to_string string 1 240 concat 242 233 241 call 243 pith_cstring_release void 1 233 call 244 pith_cstring_release void 1 241 -strref 245 m46s1159 +strref 245 m46s1156 concat 246 242 245 call 247 pith_cstring_release void 1 242 call 248 pith_cstring_release void 1 245 @@ -171495,19 +171707,19 @@ jmp L5078 label L5080 call 267 ir_builder_ir_reg int 0 store zr 267 -strref 268 m46s832 +strref 268 m46s835 load 269 zr call 270 int_to_string string 1 269 concat 271 268 270 call 272 pith_cstring_release void 1 268 call 273 pith_cstring_release void 1 270 -strref 274 m46s831 +strref 274 m46s834 concat 275 271 274 call 276 pith_cstring_release void 1 271 call 277 pith_cstring_release void 1 274 call 278 ir_builder_ir_emit void 1 275 call 279 pith_cstring_release void 1 275 -strref 280 m46s849 +strref 280 m46s852 load 281 zr call 282 int_to_string string 1 281 concat 283 280 282 @@ -171515,7 +171727,7 @@ call 284 pith_cstring_release void 1 280 call 285 pith_cstring_release void 1 282 call 286 ir_builder_ir_emit void 1 283 call 287 pith_cstring_release void 1 283 -strref 288 m46s877 +strref 288 m46s880 call 289 ir_builder_ir_emit void 1 288 call 290 pith_cstring_release void 1 288 label L5070 @@ -171564,22 +171776,22 @@ store __loopvar_390_sig 9 load 10 __loopvar_390_sig call 11 ir_emitter_core_ir_tuple_dtor_name string 1 10 iconst 12 1 -strref 13 m46s828 +strref 13 m46s831 call 14 ir_emitter_core_ir_emit_func_header void 3 11 12 13 call 15 pith_cstring_release void 1 11 call 16 pith_cstring_release void 1 13 -strref 17 m46s1166 +strref 17 m46s1163 call 18 ir_builder_ir_emit void 1 17 call 19 pith_cstring_release void 1 17 call 20 ir_builder_ir_reg int 0 store pr 20 -strref 21 m46s829 +strref 21 m46s832 load 22 pr call 23 int_to_string string 1 22 concat 24 21 23 call 25 pith_cstring_release void 1 21 call 26 pith_cstring_release void 1 23 -strref 27 m46s1165 +strref 27 m46s1162 concat 28 24 27 call 29 pith_cstring_release void 1 24 call 30 pith_cstring_release void 1 27 @@ -171613,7 +171825,7 @@ brif 51 L5107 L5108 label L5107 call 52 ir_builder_ir_reg int 0 store fr 52 -strref 53 m46s837 +strref 53 m46s840 load 54 fr call 55 int_to_string string 1 54 concat 56 53 55 @@ -171639,7 +171851,7 @@ call 75 int_to_string string 1 74 concat 76 69 75 call 77 pith_cstring_release void 1 69 call 78 pith_cstring_release void 1 75 -strref 79 m46s1164 +strref 79 m46s1161 concat 80 76 79 call 81 pith_cstring_release void 1 76 call 82 pith_cstring_release void 1 79 @@ -171664,19 +171876,19 @@ jmp L5103 label L5105 call 96 ir_builder_ir_reg int 0 store zr 96 -strref 97 m46s832 +strref 97 m46s835 load 98 zr call 99 int_to_string string 1 98 concat 100 97 99 call 101 pith_cstring_release void 1 97 call 102 pith_cstring_release void 1 99 -strref 103 m46s831 +strref 103 m46s834 concat 104 100 103 call 105 pith_cstring_release void 1 100 call 106 pith_cstring_release void 1 103 call 107 ir_builder_ir_emit void 1 104 call 108 pith_cstring_release void 1 104 -strref 109 m46s849 +strref 109 m46s852 load 110 zr call 111 int_to_string string 1 110 concat 112 109 111 @@ -171684,7 +171896,7 @@ call 113 pith_cstring_release void 1 109 call 114 pith_cstring_release void 1 111 call 115 ir_builder_ir_emit void 1 112 call 116 pith_cstring_release void 1 112 -strref 117 m46s877 +strref 117 m46s880 call 118 ir_builder_ir_emit void 1 117 call 119 pith_cstring_release void 1 117 label L5101 @@ -171745,30 +171957,30 @@ label L5114 jmp L5111 label L5115 label L5113 -strref 24 m46s1158 +strref 24 m46s1155 load 25 __loopvar_391_ename concat 26 24 25 call 27 pith_cstring_release void 1 24 iconst 28 2 -strref 29 m46s673 +strref 29 m46s676 call 30 ir_emitter_core_ir_emit_func_header void 3 26 28 29 call 31 pith_cstring_release void 1 26 call 32 pith_cstring_release void 1 29 -strref 33 m46s1163 +strref 33 m46s1160 call 34 ir_builder_ir_emit void 1 33 call 35 pith_cstring_release void 1 33 -strref 36 m46s1162 +strref 36 m46s1159 call 37 ir_builder_ir_emit void 1 36 call 38 pith_cstring_release void 1 36 call 39 ir_builder_ir_reg int 0 store ra 39 -strref 40 m46s829 +strref 40 m46s832 load 41 ra call 42 int_to_string string 1 41 concat 43 40 42 call 44 pith_cstring_release void 1 40 call 45 pith_cstring_release void 1 42 -strref 46 m46s1161 +strref 46 m46s1158 concat 47 43 46 call 48 pith_cstring_release void 1 43 call 49 pith_cstring_release void 1 46 @@ -171776,13 +171988,13 @@ call 50 ir_builder_ir_emit void 1 47 call 51 pith_cstring_release void 1 47 call 52 ir_builder_ir_reg int 0 store rb 52 -strref 53 m46s829 +strref 53 m46s832 load 54 rb call 55 int_to_string string 1 54 concat 56 53 55 call 57 pith_cstring_release void 1 53 call 58 pith_cstring_release void 1 55 -strref 59 m46s1160 +strref 59 m46s1157 concat 60 56 59 call 61 pith_cstring_release void 1 56 call 62 pith_cstring_release void 1 59 @@ -171802,7 +172014,7 @@ call 73 pith_cstring_release void 1 71 store check_l 72 call 74 ir_builder_ir_reg int 0 store same_r 74 -strref 75 m46s839 +strref 75 m46s842 load 76 same_r call 77 int_to_string string 1 76 concat 78 75 77 @@ -171828,7 +172040,7 @@ call 97 pith_cstring_release void 1 91 call 98 pith_cstring_release void 1 95 call 99 ir_builder_ir_emit void 1 96 call 100 pith_cstring_release void 1 96 -strref 101 m46s834 +strref 101 m46s837 load 102 same_r call 103 int_to_string string 1 102 concat 104 101 103 @@ -171854,7 +172066,7 @@ load 123 check_l call 124 ir_call_emit_ir_emit_label void 1 123 call 125 ir_builder_ir_reg int 0 store ta 125 -strref 126 m46s837 +strref 126 m46s840 load 127 ta call 128 int_to_string string 1 127 concat 129 126 128 @@ -171869,7 +172081,7 @@ call 137 int_to_string string 1 136 concat 138 133 137 call 139 pith_cstring_release void 1 133 call 140 pith_cstring_release void 1 137 -strref 141 m46s848 +strref 141 m46s851 concat 142 138 141 call 143 pith_cstring_release void 1 138 call 144 pith_cstring_release void 1 141 @@ -171877,7 +172089,7 @@ call 145 ir_builder_ir_emit void 1 142 call 146 pith_cstring_release void 1 142 call 147 ir_builder_ir_reg int 0 store tb 147 -strref 148 m46s837 +strref 148 m46s840 load 149 tb call 150 int_to_string string 1 149 concat 151 148 150 @@ -171892,7 +172104,7 @@ call 159 int_to_string string 1 158 concat 160 155 159 call 161 pith_cstring_release void 1 155 call 162 pith_cstring_release void 1 159 -strref 163 m46s848 +strref 163 m46s851 concat 164 160 163 call 165 pith_cstring_release void 1 160 call 166 pith_cstring_release void 1 163 @@ -171900,7 +172112,7 @@ call 167 ir_builder_ir_emit void 1 164 call 168 pith_cstring_release void 1 164 call 169 ir_builder_ir_reg int 0 store tags_r 169 -strref 170 m46s839 +strref 170 m46s842 load 171 tags_r call 172 int_to_string string 1 171 concat 173 170 172 @@ -171941,7 +172153,7 @@ load 205 chain_l call 206 ir_builder_ir_label string 0 call 207 pith_cstring_release void 1 205 store chain_l 206 -strref 208 m46s834 +strref 208 m46s837 load 209 tags_r call 210 int_to_string string 1 209 concat 211 208 210 @@ -171995,7 +172207,7 @@ call 252 pith_cstring_release void 1 250 store chain_l 251 call 253 ir_builder_ir_reg int 0 store vtag 253 -strref 254 m46s832 +strref 254 m46s835 load 255 vtag call 256 int_to_string string 1 255 concat 257 254 256 @@ -172014,7 +172226,7 @@ call 269 ir_builder_ir_emit void 1 266 call 270 pith_cstring_release void 1 266 call 271 ir_builder_ir_reg int 0 store is_v 271 -strref 272 m46s839 +strref 272 m46s842 load 273 is_v call 274 int_to_string string 1 273 concat 275 272 274 @@ -172044,7 +172256,7 @@ load 298 slots_l call 299 ir_builder_ir_label string 0 call 300 pith_cstring_release void 1 298 store slots_l 299 -strref 301 m46s834 +strref 301 m46s837 load 302 is_v call 303 int_to_string string 1 302 concat 304 301 303 @@ -172088,7 +172300,7 @@ brif 337 L5123 L5124 label L5123 call 338 ir_builder_ir_reg int 0 store fa 338 -strref 339 m46s837 +strref 339 m46s840 load 340 fa call 341 int_to_string string 1 340 concat 342 339 341 @@ -172116,7 +172328,7 @@ call 363 int_to_string string 1 362 concat 364 355 363 call 365 pith_cstring_release void 1 355 call 366 pith_cstring_release void 1 363 -strref 367 m46s1159 +strref 367 m46s1156 concat 368 364 367 call 369 pith_cstring_release void 1 364 call 370 pith_cstring_release void 1 367 @@ -172129,7 +172341,7 @@ call 376 ir_builder_ir_emit void 1 373 call 377 pith_cstring_release void 1 373 call 378 ir_builder_ir_reg int 0 store fb 378 -strref 379 m46s837 +strref 379 m46s840 load 380 fb call 381 int_to_string string 1 380 concat 382 379 381 @@ -172157,7 +172369,7 @@ call 403 int_to_string string 1 402 concat 404 395 403 call 405 pith_cstring_release void 1 395 call 406 pith_cstring_release void 1 403 -strref 407 m46s1159 +strref 407 m46s1156 concat 408 404 407 call 409 pith_cstring_release void 1 404 call 410 pith_cstring_release void 1 407 @@ -172173,14 +172385,14 @@ store cmp_r 418 load 419 kinds load 420 k call 421 pith_list_get_value_strict string 2 419 420 -strref 422 m46s675 +strref 422 m46s678 call 423 pith_cstring_eq bool 2 421 422 call 424 pith_cstring_release void 1 422 brif 423 L5126 L5127 label L5126 load 425 cmp_r -strref 426 m46s722 -strref 427 m46s673 +strref 426 m46s725 +strref 427 m46s676 load 428 fa load 429 fb call 430 ir_call_emit_ir_emit_call2 void 5 425 426 427 428 429 @@ -172196,13 +172408,13 @@ call 437 contains_key bool 2 433 436 brif 437 L5128 L5129 label L5128 load 438 cmp_r -strref 439 m46s1158 +strref 439 m46s1155 load 440 kinds load 441 k call 442 pith_list_get_value_strict string 2 440 441 concat 443 439 442 call 444 pith_cstring_release void 1 439 -strref 445 m46s673 +strref 445 m46s676 load 446 fa load 447 fb call 448 ir_call_emit_ir_emit_call2 void 5 438 443 445 446 447 @@ -172210,7 +172422,7 @@ call 449 pith_cstring_release void 1 443 call 450 pith_cstring_release void 1 445 jmp L5125 label L5129 -strref 451 m46s839 +strref 451 m46s842 load 452 cmp_r call 453 int_to_string string 1 452 concat 454 451 453 @@ -172241,7 +172453,7 @@ load 477 next_slot_l call 478 ir_builder_ir_label string 0 call 479 pith_cstring_release void 1 477 store next_slot_l 478 -strref 480 m46s834 +strref 480 m46s837 load 481 cmp_r call 482 int_to_string string 1 481 concat 483 480 482 @@ -172271,7 +172483,7 @@ add 506 504 505 store k 506 jmp L5122 label L5124 -strref 507 m46s833 +strref 507 m46s836 load 508 true_l concat 509 507 508 call 510 pith_cstring_release void 1 507 @@ -172288,7 +172500,7 @@ jmp L5116 label L5118 load 516 chain_l call 517 ir_call_emit_ir_emit_label void 1 516 -strref 518 m46s833 +strref 518 m46s836 load 519 true_l concat 520 518 519 call 521 pith_cstring_release void 1 518 @@ -172298,19 +172510,19 @@ load 524 false_l call 525 ir_call_emit_ir_emit_label void 1 524 call 526 ir_builder_ir_reg int 0 store f_r 526 -strref 527 m46s832 +strref 527 m46s835 load 528 f_r call 529 int_to_string string 1 528 concat 530 527 529 call 531 pith_cstring_release void 1 527 call 532 pith_cstring_release void 1 529 -strref 533 m46s831 +strref 533 m46s834 concat 534 530 533 call 535 pith_cstring_release void 1 530 call 536 pith_cstring_release void 1 533 call 537 ir_builder_ir_emit void 1 534 call 538 pith_cstring_release void 1 534 -strref 539 m46s849 +strref 539 m46s852 load 540 f_r call 541 int_to_string string 1 540 concat 542 539 541 @@ -172322,19 +172534,19 @@ load 547 true_l call 548 ir_call_emit_ir_emit_label void 1 547 call 549 ir_builder_ir_reg int 0 store t_r 549 -strref 550 m46s832 +strref 550 m46s835 load 551 t_r call 552 int_to_string string 1 551 concat 553 550 552 call 554 pith_cstring_release void 1 550 call 555 pith_cstring_release void 1 552 -strref 556 m46s842 +strref 556 m46s845 concat 557 553 556 call 558 pith_cstring_release void 1 553 call 559 pith_cstring_release void 1 556 call 560 ir_builder_ir_emit void 1 557 call 561 pith_cstring_release void 1 557 -strref 562 m46s849 +strref 562 m46s852 load 563 t_r call 564 int_to_string string 1 563 concat 565 562 564 @@ -172342,7 +172554,7 @@ call 566 pith_cstring_release void 1 562 call 567 pith_cstring_release void 1 564 call 568 ir_builder_ir_emit void 1 565 call 569 pith_cstring_release void 1 565 -strref 570 m46s877 +strref 570 m46s880 call 571 ir_builder_ir_emit void 1 570 call 572 pith_cstring_release void 1 570 label L5111 @@ -172415,14 +172627,14 @@ store __or_24_5136 24 iconst 25 0 store __or_25_5136 25 load 26 vk -strref 27 m46s519 +strref 27 m46s522 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 store __or_25_5136 28 brif 28 L5137 L5136 label L5136 load 30 vk -strref 31 m46s516 +strref 31 m46s519 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 store __or_25_5136 32 @@ -172463,14 +172675,14 @@ store __or_50_5145 50 iconst 51 0 store __or_51_5145 51 load 52 vk -strref 53 m46s517 +strref 53 m46s520 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 store __or_51_5145 54 brif 54 L5146 L5145 label L5145 load 56 vk -strref 57 m46s675 +strref 57 m46s678 call 58 pith_cstring_eq bool 2 56 57 call 59 pith_cstring_release void 1 57 store __or_51_5145 58 @@ -172480,7 +172692,7 @@ store __or_50_5145 60 brif 60 L5148 L5147 label L5147 load 61 vk -strref 62 m46s1025 +strref 62 m46s1027 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 store __or_50_5145 63 @@ -172595,9 +172807,9 @@ iconst 48 0 ret 48 label L5160 label L5158 -strref 49 m46s1157 +strref 49 m46s1154 iconst 50 0 -strref 51 m46s671 +strref 51 m46s674 call 52 ir_emitter_core_ir_emit_func_header void 3 49 50 51 call 53 pith_cstring_release void 1 49 call 54 pith_cstring_release void 1 51 @@ -172735,7 +172947,7 @@ call 137 ir_ownership_ir_rc_retain_reg void 2 135 136 jmp L5176 label L5178 label L5176 -strref 138 m46s830 +strref 138 m46s833 load 139 gname concat 140 138 139 call 141 pith_cstring_release void 1 138 @@ -172762,19 +172974,19 @@ jmp L5161 label L5164 call 156 ir_builder_ir_reg int 0 store dr 156 -strref 157 m46s832 +strref 157 m46s835 load 158 dr call 159 int_to_string string 1 158 concat 160 157 159 call 161 pith_cstring_release void 1 157 call 162 pith_cstring_release void 1 159 -strref 163 m46s831 +strref 163 m46s834 concat 164 160 163 call 165 pith_cstring_release void 1 160 call 166 pith_cstring_release void 1 163 call 167 ir_builder_ir_emit void 1 164 call 168 pith_cstring_release void 1 164 -strref 169 m46s849 +strref 169 m46s852 load 170 dr call 171 int_to_string string 1 170 concat 172 169 171 @@ -172782,7 +172994,7 @@ call 173 pith_cstring_release void 1 169 call 174 pith_cstring_release void 1 171 call 175 ir_builder_ir_emit void 1 172 call 176 pith_cstring_release void 1 172 -strref 177 m46s877 +strref 177 m46s880 call 178 ir_builder_ir_emit void 1 177 call 179 pith_cstring_release void 1 177 load 180 cn @@ -172835,7 +173047,7 @@ iconst 19 0 store __or_19_5190 19 load 20 actual_node field 21 20 0 string kind -strref 22 m46s618 +strref 22 m46s621 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 store __or_19_5190 23 @@ -172843,7 +173055,7 @@ brif 23 L5191 L5190 label L5190 load 25 actual_node field 26 25 0 string kind -strref 27 m46s576 +strref 27 m46s579 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 store __or_19_5190 28 @@ -172866,7 +173078,7 @@ brif 34 L5198 L5199 label L5198 load 35 actual_node field 36 35 8 string value -strref 37 m46s1156 +strref 37 m46s1153 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 store __and_33_5198 38 @@ -172885,7 +173097,7 @@ jmp L5187 label L5189 load 45 actual_node field 46 45 0 string kind -strref 47 m46s587 +strref 47 m46s590 call 48 pith_cstring_eq bool 2 46 47 call 49 pith_cstring_release void 1 47 brif 48 L5200 L5201 @@ -172907,7 +173119,7 @@ jmp L5187 label L5201 load 57 actual_node field 58 57 0 string kind -strref 59 m46s588 +strref 59 m46s591 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 brif 60 L5205 L5206 @@ -172966,7 +173178,7 @@ func ir_emitter_core_ir_preseed_result_error_strings 0 void iconst 0 0 store builtin_names 0 load 1 builtin_names -strref 2 m46s1155 +strref 2 m46s1152 strref 3 m46s307 call 4 pith_string_split_to_list list_string 2 2 3 call 5 pith_cstring_release void 1 3 @@ -172990,7 +173202,7 @@ load 15 __for_idx_395 call 16 pith_list_get_value_unchecked string 2 14 15 store __loopvar_395_builtin_name 16 load 17 __loopvar_395_builtin_name -strref 18 m46s1028 +strref 18 m46s1030 concat 19 17 18 call 20 pith_cstring_release void 1 18 call 21 ir_builder_ir_str string 1 19 @@ -173185,7 +173397,7 @@ load 81 node call 82 ir_emitter_core_ir_collect_import_item void 1 81 load 83 node field 84 83 0 string kind -strref 85 m46s603 +strref 85 m46s606 call 86 pith_cstring_eq bool 2 84 85 call 87 pith_cstring_release void 1 85 brif 86 L5237 L5238 @@ -173405,7 +173617,7 @@ jmp L5257 label L5263 load 106 node field 107 106 0 string kind -strref 108 m46s588 +strref 108 m46s591 call 109 pith_cstring_eq bool 2 107 108 call 110 pith_cstring_release void 1 108 brif 109 L5266 L5267 @@ -173497,7 +173709,7 @@ load 18 node store actual_node 18 load 19 node field 20 19 0 string kind -strref 21 m46s577 +strref 21 m46s580 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 brif 22 L5273 L5274 @@ -173513,7 +173725,7 @@ label L5274 label L5272 load 29 actual_node field 30 29 0 string kind -strref 31 m46s588 +strref 31 m46s591 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 brif 32 L5276 L5277 @@ -173740,7 +173952,7 @@ call 123 pith_struct_release void 1 120 store child_node 122 load 124 child_node field 125 124 0 string kind -strref 126 m46s576 +strref 126 m46s579 call 127 pith_cstring_eq bool 2 125 126 call 128 pith_cstring_release void 1 126 brif 127 L5306 L5307 @@ -174272,7 +174484,7 @@ string m47s310 "__filter_fn" string m47s311 "__map_i" string m47s312 "__map_fn" string m47s313 "parse_required" -string m47s314 "toml_decode_text_path" +string m47s314 "handle_decode_text_path" string m47s315 "pith_assert_eq_fail" string m47s316 "eq" string m47s317 "pith_list_eq_scalar" @@ -175251,233 +175463,236 @@ string m48s630 "config typed file decode argument type mismatch: expected " string m48s631 "config typed file decode target must be a struct, got " string m48s632 "config typed file decode expects 1 argument, got " string m48s633 "config typed file decode requires an explicit struct type" -string m48s634 "unknown type: TomlDecodeError" -string m48s635 "TomlDecodeError" -string m48s636 "toml.decode does not support field '" -string m48s637 "toml.decode target field must be public: " -string m48s638 "toml.decode argument type mismatch: expected " -string m48s639 "toml.decode target must be a struct, got " -string m48s640 "toml.decode expects 1 argument, got " -string m48s641 "toml.decode requires an explicit struct type" -string m48s642 "unknown type: JsonDecodeError" -string m48s643 "JsonDecodeError" -string m48s644 "json.decode does not support field '" -string m48s645 "json.decode target field must be public: " -string m48s646 "json.decode argument type mismatch: expected " -string m48s647 "json.decode target must be a struct, got " -string m48s648 "json.decode expects 1 argument, got " -string m48s649 "json.decode requires an explicit struct type" -string m48s650 "config.decode does not support field '" -string m48s651 "config.decode target field must be public: " -string m48s652 "config.decode prefix type mismatch: expected String, got " -string m48s653 "config.decode argument type mismatch: expected Config, got " -string m48s654 "unknown type: Config" -string m48s655 "Config" -string m48s656 "config.decode target must be a struct, got " -string m48s657 " argument(s), got " -string m48s658 "config.decode expects " -string m48s659 "config.decode requires an explicit struct type" -string m48s660 "json.decode type argument must be a concrete struct type" -string m48s661 "config_mod" -string m48s662 "config" -string m48s663 "std.config" -string m48s664 "toml_mod" -string m48s665 "toml" -string m48s666 "std.toml" -string m48s667 "json_mod" -string m48s668 "json" -string m48s669 "std.json" -string m48s670 "unary 'not' requires Bool, got " -string m48s671 "unary - requires numeric type, got " -string m48s672 "pipe type mismatch: function expects " -string m48s673 "' must take exactly 1 parameter" -string m48s674 "pipe target '" -string m48s675 "' is not a function" -string m48s676 "pipe operator requires a function name on the right" -string m48s677 "operator 'or' requires Bool, got " -string m48s678 "operator 'and' requires Bool, got " -string m48s679 "operator >= type mismatch: " -string m48s680 "operator >= requires numeric or string type, got " -string m48s681 "operator <= type mismatch: " -string m48s682 "operator <= requires numeric or string type, got " -string m48s683 "operator > type mismatch: " -string m48s684 "operator > requires numeric or string type, got " -string m48s685 "operator < type mismatch: " -string m48s686 "operator < requires numeric or string type, got " -string m48s687 "operator != type mismatch: " -string m48s688 "operator == type mismatch: " -string m48s689 "operator % type mismatch: " -string m48s690 "operator % requires integer type, got " -string m48s691 "operator / type mismatch: " -string m48s692 "operator / requires numeric type, got " -string m48s693 "operator * type mismatch: " -string m48s694 "operator * requires numeric type, got " -string m48s695 "operator - type mismatch: " -string m48s696 "operator - requires numeric type, got " -string m48s697 "operator + type mismatch: " -string m48s698 "operator + requires numeric type, got " -string m48s699 "undefined variable: " -string m48s700 "import it where it is defined" -string m48s701 "' belongs to another module and is not imported here" -string m48s702 "UInt64" -string m48s703 "UInt32" -string m48s704 "UInt16" -string m48s705 "UInt8" -string m48s706 "Int64" -string m48s707 "Int32" -string m48s708 "Int16" -string m48s709 "Int8" -string m48s710 "UInt" -string m48s711 "primitive" -string m48s712 "string interpolation requires a stringifiable value, got " -string m48s713 "cannot iterate over " -string m48s714 "range bounds must be Int, got " -string m48s715 ".next" -string m48s716 "while let" -string m48s717 "if let" -string m48s718 " supports variant patterns and optional bindings" -string m48s719 "E245" -string m48s720 " with a bare binding needs an optional subject, got " -string m48s721 "fail type mismatch: expected " -string m48s722 "fail requires function to return a result type" -string m48s723 "E234" -string m48s724 "fail outside of function" -string m48s725 "E231" -string m48s726 "change the return type to " -string m48s727 "return type mismatch: expected " -string m48s728 ", got Void" -string m48s729 "return outside of function" -string m48s730 "lambda returns disagree: " -string m48s731 "type mismatch: expected " -string m48s732 " requires numeric type, got " -string m48s733 "operator " -string m48s734 "declare with 'mut': mut " -string m48s735 "cannot assign to immutable variable '" -string m48s736 "E216" -string m48s737 "try_expr" -string m48s738 "bind" -string m48s739 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m48s740 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m48s741 "E260" -string m48s742 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m48s743 "errdefer is only meaningful in a function returning a result (`T!`)" -string m48s744 "errdefer is only allowed inside a function" -string m48s745 "defer is only allowed inside a function" -string m48s746 "continue outside of loop" -string m48s747 "E215" -string m48s748 "break outside of loop" -string m48s749 " is missing associated type: " -string m48s750 " for " -string m48s751 "impl of " -string m48s752 "E229" -string m48s753 " is missing method: " -string m48s754 "E235" -string m48s755 "' is a builtin type name and cannot be used as an enum name" -string m48s756 "E250" -string m48s757 "' must be " -string m48s758 "default for field '" -string m48s759 "' is a builtin type name and cannot be used as a struct name" -string m48s760 "' must be an optional struct type (T?)" -string m48s761 "weak field '" -string m48s762 "E249" -string m48s763 "parameter requires a type annotation" -string m48s764 "unknown generic type: " -string m48s765 "Channel expects 1 type argument, got " -string m48s766 "Task expects 1 type argument, got " -string m48s767 "Map expects 2 type arguments, got " -string m48s768 "Set expects 1 type argument, got " -string m48s769 "List expects 1 type argument, got " -string m48s770 "type nesting too deep" -string m48s771 "E233" -string m48s772 "import it from the module that defines it" -string m48s773 "' is not declared by module '" -string m48s774 "E246" -string m48s775 "t" -string m48s776 "n" -string m48s777 "null" -string m48s778 "fix" -string m48s779 "message" -string m48s780 "code" -string m48s781 "severity" -string m48s782 "file" -string m48s783 " fix: " -string m48s784 " | " -string m48s785 " " -string m48s786 "]: " -string m48s787 "Diagnostic(" -string m48s788 "sseverity,scode,smessage,sfile,iline,icol,sfix" -string m48s789 "severity: " -string m48s790 ", code: " -string m48s791 ", message: " -string m48s792 ", file: " -string m48s793 ", fix: " -string m48s794 "__import_cycle_error__" -string m48s795 "error[E235]: " -string m48s796 " -> " -string m48s797 "import cycle detected: " -string m48s798 "check the module path; standard modules are imported as std." -string m48s799 "cannot find module '" -string m48s800 "E247" -string m48s801 "test -d " -string m48s802 "/std" -string m48s803 "std" -string m48s804 "std." -string m48s805 ".pith" -string m48s806 "[dependencies]" -string m48s807 "path" -string m48s808 "lib.pith" -string m48s809 "root" -string m48s810 "pith.lock" -string m48s811 "pith.toml" -string m48s812 "s" -string m48s813 "a" -string m48s814 "parse_int failed" -string m48s815 "file_open_read failed" -string m48s816 "file_open_write failed" -string m48s817 "file_open_append failed" -string m48s818 "byte_buffer_write failed" -string m48s819 "byte_buffer_write_string_utf8 failed" -string m48s820 "byte_buffer_write_byte failed" -string m48s821 "file_write failed" -string m48s822 "file_write_bytes failed" -string m48s823 "tcp_connect failed" -string m48s824 "tcp_listen failed" -string m48s825 "tcp_accept failed" -string m48s826 "tcp_write failed" -string m48s827 "tcp_write_bytes failed" -string m48s828 "process_spawn failed" -string m48s829 "process_spawn_argv failed" -string m48s830 "process_output_argv failed" -string m48s831 "process_write failed" -string m48s832 "process_write_bytes failed" -string m48s833 "crypto_x25519_keygen failed" -string m48s834 "write_file failed" -string m48s835 "append_file failed" -string m48s836 "write_file_bytes failed" -string m48s837 "append_file_bytes failed" -string m48s838 "read_file failed" -string m48s839 "exec_output failed" -string m48s840 "dns_resolve failed" -string m48s841 "bytes_to_string_utf8 failed" -string m48s842 "bytes_substring_utf8 failed" -string m48s843 "file_read failed" -string m48s844 "tcp_read failed" -string m48s845 "process_read failed" -string m48s846 "process_read_err failed" -string m48s847 "read_file_bytes failed" -string m48s848 "b64_decode failed" -string m48s849 "from_hex failed" -string m48s850 "file_read_bytes failed" -string m48s851 "tcp_read_bytes failed" -string m48s852 "process_read_bytes failed" -string m48s853 "process_read_err_bytes failed" -string m48s854 "crypto_x25519_public_key failed" -string m48s855 "crypto_x25519_shared_secret failed" -string m48s856 "crypto_aes_128_gcm_seal failed" -string m48s857 "crypto_aes_128_gcm_open failed" -string m48s858 "crypto_chacha20_poly1305_seal failed" -string m48s859 "crypto_chacha20_poly1305_open failed" -string m48s860 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m48s634 " does not support field '" +string m48s635 " target field must be public: " +string m48s636 " argument type mismatch: expected " +string m48s637 " target must be a struct, got " +string m48s638 " requires an explicit struct type" +string m48s639 ".decode" +string m48s640 "unknown type: JsonDecodeError" +string m48s641 "JsonDecodeError" +string m48s642 "json.decode does not support field '" +string m48s643 "json.decode target field must be public: " +string m48s644 "json.decode argument type mismatch: expected " +string m48s645 "json.decode target must be a struct, got " +string m48s646 "json.decode expects 1 argument, got " +string m48s647 "json.decode requires an explicit struct type" +string m48s648 "config.decode does not support field '" +string m48s649 "config.decode target field must be public: " +string m48s650 "config.decode prefix type mismatch: expected String, got " +string m48s651 "config.decode argument type mismatch: expected Config, got " +string m48s652 "unknown type: Config" +string m48s653 "Config" +string m48s654 "config.decode target must be a struct, got " +string m48s655 " argument(s), got " +string m48s656 "config.decode expects " +string m48s657 "config.decode requires an explicit struct type" +string m48s658 "json.decode type argument must be a concrete struct type" +string m48s659 "config_mod" +string m48s660 "config" +string m48s661 "std.config" +string m48s662 "TomlDecodeError" +string m48s663 "YamlDecodeError" +string m48s664 "yaml" +string m48s665 "yaml_mod" +string m48s666 "toml" +string m48s667 "toml_mod" +string m48s668 "std.yaml" +string m48s669 "std.toml" +string m48s670 "json_mod" +string m48s671 "json" +string m48s672 "std.json" +string m48s673 "unary 'not' requires Bool, got " +string m48s674 "unary - requires numeric type, got " +string m48s675 "pipe type mismatch: function expects " +string m48s676 "' must take exactly 1 parameter" +string m48s677 "pipe target '" +string m48s678 "' is not a function" +string m48s679 "pipe operator requires a function name on the right" +string m48s680 "operator 'or' requires Bool, got " +string m48s681 "operator 'and' requires Bool, got " +string m48s682 "operator >= type mismatch: " +string m48s683 "operator >= requires numeric or string type, got " +string m48s684 "operator <= type mismatch: " +string m48s685 "operator <= requires numeric or string type, got " +string m48s686 "operator > type mismatch: " +string m48s687 "operator > requires numeric or string type, got " +string m48s688 "operator < type mismatch: " +string m48s689 "operator < requires numeric or string type, got " +string m48s690 "operator != type mismatch: " +string m48s691 "operator == type mismatch: " +string m48s692 "operator % type mismatch: " +string m48s693 "operator % requires integer type, got " +string m48s694 "operator / type mismatch: " +string m48s695 "operator / requires numeric type, got " +string m48s696 "operator * type mismatch: " +string m48s697 "operator * requires numeric type, got " +string m48s698 "operator - type mismatch: " +string m48s699 "operator - requires numeric type, got " +string m48s700 "operator + type mismatch: " +string m48s701 "operator + requires numeric type, got " +string m48s702 "undefined variable: " +string m48s703 "import it where it is defined" +string m48s704 "' belongs to another module and is not imported here" +string m48s705 "UInt64" +string m48s706 "UInt32" +string m48s707 "UInt16" +string m48s708 "UInt8" +string m48s709 "Int64" +string m48s710 "Int32" +string m48s711 "Int16" +string m48s712 "Int8" +string m48s713 "UInt" +string m48s714 "primitive" +string m48s715 "string interpolation requires a stringifiable value, got " +string m48s716 "cannot iterate over " +string m48s717 "range bounds must be Int, got " +string m48s718 ".next" +string m48s719 "while let" +string m48s720 "if let" +string m48s721 " supports variant patterns and optional bindings" +string m48s722 "E245" +string m48s723 " with a bare binding needs an optional subject, got " +string m48s724 "fail type mismatch: expected " +string m48s725 "fail requires function to return a result type" +string m48s726 "E234" +string m48s727 "fail outside of function" +string m48s728 "E231" +string m48s729 "change the return type to " +string m48s730 "return type mismatch: expected " +string m48s731 ", got Void" +string m48s732 "return outside of function" +string m48s733 "lambda returns disagree: " +string m48s734 "type mismatch: expected " +string m48s735 " requires numeric type, got " +string m48s736 "operator " +string m48s737 "declare with 'mut': mut " +string m48s738 "cannot assign to immutable variable '" +string m48s739 "E216" +string m48s740 "try_expr" +string m48s741 "bind" +string m48s742 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m48s743 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m48s744 "E260" +string m48s745 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m48s746 "errdefer is only meaningful in a function returning a result (`T!`)" +string m48s747 "errdefer is only allowed inside a function" +string m48s748 "defer is only allowed inside a function" +string m48s749 "continue outside of loop" +string m48s750 "E215" +string m48s751 "break outside of loop" +string m48s752 " is missing associated type: " +string m48s753 " for " +string m48s754 "impl of " +string m48s755 "E229" +string m48s756 " is missing method: " +string m48s757 "E235" +string m48s758 "' is a builtin type name and cannot be used as an enum name" +string m48s759 "E250" +string m48s760 "' must be " +string m48s761 "default for field '" +string m48s762 "' is a builtin type name and cannot be used as a struct name" +string m48s763 "' must be an optional struct type (T?)" +string m48s764 "weak field '" +string m48s765 "E249" +string m48s766 "parameter requires a type annotation" +string m48s767 "unknown generic type: " +string m48s768 "Channel expects 1 type argument, got " +string m48s769 "Task expects 1 type argument, got " +string m48s770 "Map expects 2 type arguments, got " +string m48s771 "Set expects 1 type argument, got " +string m48s772 "List expects 1 type argument, got " +string m48s773 "type nesting too deep" +string m48s774 "E233" +string m48s775 "import it from the module that defines it" +string m48s776 "' is not declared by module '" +string m48s777 "E246" +string m48s778 "t" +string m48s779 "n" +string m48s780 "null" +string m48s781 "fix" +string m48s782 "message" +string m48s783 "code" +string m48s784 "severity" +string m48s785 "file" +string m48s786 " fix: " +string m48s787 " | " +string m48s788 " " +string m48s789 "]: " +string m48s790 "Diagnostic(" +string m48s791 "sseverity,scode,smessage,sfile,iline,icol,sfix" +string m48s792 "severity: " +string m48s793 ", code: " +string m48s794 ", message: " +string m48s795 ", file: " +string m48s796 ", fix: " +string m48s797 "__import_cycle_error__" +string m48s798 "error[E235]: " +string m48s799 " -> " +string m48s800 "import cycle detected: " +string m48s801 "check the module path; standard modules are imported as std." +string m48s802 "cannot find module '" +string m48s803 "E247" +string m48s804 "test -d " +string m48s805 "/std" +string m48s806 "std" +string m48s807 "std." +string m48s808 ".pith" +string m48s809 "[dependencies]" +string m48s810 "path" +string m48s811 "lib.pith" +string m48s812 "root" +string m48s813 "pith.lock" +string m48s814 "pith.toml" +string m48s815 "s" +string m48s816 "a" +string m48s817 "parse_int failed" +string m48s818 "file_open_read failed" +string m48s819 "file_open_write failed" +string m48s820 "file_open_append failed" +string m48s821 "byte_buffer_write failed" +string m48s822 "byte_buffer_write_string_utf8 failed" +string m48s823 "byte_buffer_write_byte failed" +string m48s824 "file_write failed" +string m48s825 "file_write_bytes failed" +string m48s826 "tcp_connect failed" +string m48s827 "tcp_listen failed" +string m48s828 "tcp_accept failed" +string m48s829 "tcp_write failed" +string m48s830 "tcp_write_bytes failed" +string m48s831 "process_spawn failed" +string m48s832 "process_spawn_argv failed" +string m48s833 "process_output_argv failed" +string m48s834 "process_write failed" +string m48s835 "process_write_bytes failed" +string m48s836 "crypto_x25519_keygen failed" +string m48s837 "write_file failed" +string m48s838 "append_file failed" +string m48s839 "write_file_bytes failed" +string m48s840 "append_file_bytes failed" +string m48s841 "read_file failed" +string m48s842 "exec_output failed" +string m48s843 "dns_resolve failed" +string m48s844 "bytes_to_string_utf8 failed" +string m48s845 "bytes_substring_utf8 failed" +string m48s846 "file_read failed" +string m48s847 "tcp_read failed" +string m48s848 "process_read failed" +string m48s849 "process_read_err failed" +string m48s850 "read_file_bytes failed" +string m48s851 "b64_decode failed" +string m48s852 "from_hex failed" +string m48s853 "file_read_bytes failed" +string m48s854 "tcp_read_bytes failed" +string m48s855 "process_read_bytes failed" +string m48s856 "process_read_err_bytes failed" +string m48s857 "crypto_x25519_public_key failed" +string m48s858 "crypto_x25519_shared_secret failed" +string m48s859 "crypto_aes_128_gcm_seal failed" +string m48s860 "crypto_aes_128_gcm_open failed" +string m48s861 "crypto_chacha20_poly1305_seal failed" +string m48s862 "crypto_chacha20_poly1305_open failed" +string m48s863 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -176198,7 +176413,7 @@ endfunc func driver_dr_manifest_path 1 string param package_root load 1 package_root -strref 2 m48s811 +strref 2 m48s814 call 3 driver_dr_join_path string 2 1 2 call 4 pith_cstring_release void 1 2 ret 3 @@ -176208,7 +176423,7 @@ endfunc func driver_dr_lock_path 1 string param package_root load 1 package_root -strref 2 m48s810 +strref 2 m48s813 call 3 driver_dr_join_path string 2 1 2 call 4 pith_cstring_release void 1 2 ret 3 @@ -176456,7 +176671,7 @@ sub 10 11 9 brif 10 L99 L100 label L99 load 12 package_root -strref 13 m48s808 +strref 13 m48s811 call 14 driver_dr_join_path string 2 12 13 call 15 pith_cstring_release void 1 13 load 16 manifest_path @@ -176485,7 +176700,7 @@ sstore 30 2 28 store __legacy_result_25_101 30 jmp L103 label L102 -strref 31 m48s838 +strref 31 m48s841 iconst 32 0 iconst 33 3 call 34 pith_struct_alloc struct:tuple 1 33 @@ -176535,7 +176750,7 @@ call 58 pith_list_get_value_unchecked string 2 56 57 store __loopvar_411_line 58 load 59 root load 60 __loopvar_411_line -strref 61 m48s809 +strref 61 m48s812 call 62 driver_dr_value_for_key string 2 60 61 call 63 pith_cstring_release void 1 61 call 64 pith_cstring_release void 1 59 @@ -176570,7 +176785,7 @@ label L110 load 83 __for_iter_411 call 84 pith_list_release_handle void 1 83 load 85 package_root -strref 86 m48s808 +strref 86 m48s811 call 87 driver_dr_join_path string 2 85 86 call 88 pith_cstring_release void 1 86 load 89 manifest_path @@ -176596,7 +176811,7 @@ store rest 1 iconst 2 0 store after 2 load 3 value -strref 4 m48s807 +strref 4 m48s810 call 5 pith_cstring_index_of int 2 3 4 call 6 pith_cstring_release void 1 4 store path_pos 5 @@ -176912,7 +177127,7 @@ sstore 33 2 31 store __legacy_result_28_152 33 jmp L154 label L153 -strref 34 m48s838 +strref 34 m48s841 iconst 35 0 iconst 36 3 call 37 pith_struct_alloc struct:tuple 1 36 @@ -177007,7 +177222,7 @@ load 86 __and_77_170 brif 86 L168 L169 label L168 load 87 trimmed -strref 88 m48s806 +strref 88 m48s809 call 89 pith_cstring_eq bool 2 87 88 call 90 pith_cstring_release void 1 88 store in_dependencies 89 @@ -177328,7 +177543,7 @@ store rest 44 load 46 dep_root load 47 rest call 48 driver_dots_to_slashes string 1 47 -strref 49 m48s805 +strref 49 m48s808 concat 50 48 49 call 51 pith_cstring_release void 1 48 call 52 pith_cstring_release void 1 49 @@ -177374,7 +177589,7 @@ call 15 pith_cstring_release void 1 13 brif 14 L208 L209 label L208 load 16 rel_path -strref 17 m48s805 +strref 17 m48s808 concat 18 16 17 call 19 pith_cstring_release void 1 17 load 20 rel_path @@ -177391,7 +177606,7 @@ call 27 pith_cstring_release void 1 25 load 28 rel_path concat 29 26 28 call 30 pith_cstring_release void 1 26 -strref 31 m48s805 +strref 31 m48s808 concat 32 29 31 call 33 pith_cstring_release void 1 29 call 34 pith_cstring_release void 1 31 @@ -177439,7 +177654,7 @@ call 21 pith_cstring_release void 1 19 load 22 rel_path concat 23 20 22 call 24 pith_cstring_release void 1 20 -strref 25 m48s805 +strref 25 m48s808 concat 26 23 25 call 27 pith_cstring_release void 1 23 call 28 pith_cstring_release void 1 25 @@ -177457,7 +177672,7 @@ call 36 pith_cstring_release void 1 34 brif 35 L214 L215 label L214 load 37 rel_path -strref 38 m48s805 +strref 38 m48s808 concat 39 37 38 call 40 pith_cstring_release void 1 38 load 41 rel_path @@ -177474,7 +177689,7 @@ call 48 pith_cstring_release void 1 46 load 49 rel_path concat 50 47 49 call 51 pith_cstring_release void 1 47 -strref 52 m48s805 +strref 52 m48s808 concat 53 50 52 call 54 pith_cstring_release void 1 50 call 55 pith_cstring_release void 1 52 @@ -177500,14 +177715,14 @@ store dep_file 3 iconst 4 0 store __or_4_219 4 load 5 mod_path -strref 6 m48s804 +strref 6 m48s807 call 7 pith_cstring_starts_with bool 2 5 6 call 8 pith_cstring_release void 1 6 store __or_4_219 7 brif 7 L220 L219 label L219 load 9 mod_path -strref 10 m48s803 +strref 10 m48s806 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 store __or_4_219 11 @@ -177769,12 +177984,12 @@ brif 11 L245 L246 label L245 load 12 test_path load 13 dir -strref 14 m48s802 +strref 14 m48s805 concat 15 13 14 call 16 pith_cstring_release void 1 14 call 17 pith_cstring_release void 1 12 store test_path 15 -strref 18 m48s801 +strref 18 m48s804 load 19 test_path concat 20 18 19 call 21 pith_cstring_release void 1 18 @@ -177930,8 +178145,8 @@ call 62 pith_struct_release void 1 58 store pos 61 call 63 pith_list_new_struct list 0 strref 64 m48s117 -strref 65 m48s800 -strref 66 m48s799 +strref 65 m48s803 +strref 66 m48s802 load 67 __loopvar_415_mod_path concat 68 66 67 call 69 pith_cstring_release void 1 66 @@ -177945,7 +178160,7 @@ load 76 pos field 77 76 0 int 0 load 78 pos field 79 78 8 int 1 -strref 80 m48s798 +strref 80 m48s801 iconst 82 7 call 81 pith_struct_alloc struct:Diagnostic 1 82 sstore 81 0 64 @@ -177999,7 +178214,7 @@ call 111 contains_key bool 2 109 110 brif 111 L267 L268 label L267 load 112 cycle_msg -strref 113 m48s797 +strref 113 m48s800 load 114 file_path concat 115 113 114 call 116 pith_cstring_release void 1 113 @@ -178024,7 +178239,7 @@ call 127 pith_list_get_value_unchecked string 2 125 126 store __loopvar_416_checking_path 127 load 128 cycle_msg load 129 cycle_msg -strref 130 m48s796 +strref 130 m48s799 concat 131 129 130 call 132 pith_cstring_release void 1 130 load 133 __loopvar_416_checking_path @@ -178041,13 +178256,13 @@ jmp L269 label L272 load 140 __for_iter_416 call 141 pith_list_release_handle void 1 140 -strref 142 m48s795 +strref 142 m48s798 load 143 cycle_msg concat 144 142 143 call 145 pith_cstring_release void 1 142 call 146 print_err unknown 1 144 call 147 pith_cstring_release void 1 144 -strref 148 m48s794 +strref 148 m48s797 call 149 read_file string 1 148 call 150 pith_cstring_release void 1 148 iconst 151 0 @@ -178064,7 +178279,7 @@ sstore 156 2 154 store __legacy_result_151_273 156 jmp L275 label L274 -strref 157 m48s838 +strref 157 m48s841 iconst 158 0 iconst 159 3 call 160 pith_struct_alloc struct:tuple 1 159 @@ -178128,7 +178343,7 @@ sstore 198 2 196 store __legacy_result_193_279 198 jmp L281 label L280 -strref 199 m48s838 +strref 199 m48s841 iconst 200 0 iconst 201 3 call 202 pith_struct_alloc struct:tuple 1 201 @@ -179109,294 +179324,297 @@ string m49s650 "config typed file decode argument type mismatch: expected " string m49s651 "config typed file decode target must be a struct, got " string m49s652 "config typed file decode expects 1 argument, got " string m49s653 "config typed file decode requires an explicit struct type" -string m49s654 "unknown type: TomlDecodeError" -string m49s655 "TomlDecodeError" -string m49s656 "toml.decode does not support field '" -string m49s657 "toml.decode target field must be public: " -string m49s658 "toml.decode argument type mismatch: expected " -string m49s659 "toml.decode target must be a struct, got " -string m49s660 "toml.decode expects 1 argument, got " -string m49s661 "toml.decode requires an explicit struct type" -string m49s662 "unknown type: JsonDecodeError" -string m49s663 "JsonDecodeError" -string m49s664 "json.decode does not support field '" -string m49s665 "json.decode target field must be public: " -string m49s666 "json.decode argument type mismatch: expected " -string m49s667 "json.decode target must be a struct, got " -string m49s668 "json.decode expects 1 argument, got " -string m49s669 "json.decode requires an explicit struct type" -string m49s670 "config.decode does not support field '" -string m49s671 "config.decode target field must be public: " -string m49s672 "config.decode prefix type mismatch: expected String, got " -string m49s673 "config.decode argument type mismatch: expected Config, got " -string m49s674 "unknown type: Config" -string m49s675 "Config" -string m49s676 "config.decode target must be a struct, got " -string m49s677 " argument(s), got " -string m49s678 "config.decode expects " -string m49s679 "config.decode requires an explicit struct type" -string m49s680 "json.decode type argument must be a concrete struct type" -string m49s681 "config_mod" -string m49s682 "config" -string m49s683 "std.config" -string m49s684 "toml_mod" -string m49s685 "toml" -string m49s686 "std.toml" -string m49s687 "json_mod" -string m49s688 "json" -string m49s689 "std.json" -string m49s690 "unary 'not' requires Bool, got " -string m49s691 "unary - requires numeric type, got " -string m49s692 "pipe type mismatch: function expects " -string m49s693 "' must take exactly 1 parameter" -string m49s694 "pipe target '" -string m49s695 "' is not a function" -string m49s696 "pipe operator requires a function name on the right" -string m49s697 "operator 'or' requires Bool, got " -string m49s698 "operator 'and' requires Bool, got " -string m49s699 "operator >= type mismatch: " -string m49s700 "operator >= requires numeric or string type, got " -string m49s701 "operator <= type mismatch: " -string m49s702 "operator <= requires numeric or string type, got " -string m49s703 "operator > type mismatch: " -string m49s704 "operator > requires numeric or string type, got " -string m49s705 "operator < type mismatch: " -string m49s706 "operator < requires numeric or string type, got " -string m49s707 "operator != type mismatch: " -string m49s708 "operator == type mismatch: " -string m49s709 "operator % type mismatch: " -string m49s710 "operator % requires integer type, got " -string m49s711 "operator / type mismatch: " -string m49s712 "operator / requires numeric type, got " -string m49s713 "operator * type mismatch: " -string m49s714 "operator * requires numeric type, got " -string m49s715 "operator - type mismatch: " -string m49s716 "operator - requires numeric type, got " -string m49s717 "operator + type mismatch: " -string m49s718 "operator + requires numeric type, got " -string m49s719 "undefined variable: " -string m49s720 "import it where it is defined" -string m49s721 "' belongs to another module and is not imported here" -string m49s722 "UInt64" -string m49s723 "UInt32" -string m49s724 "UInt16" -string m49s725 "UInt8" -string m49s726 "Int64" -string m49s727 "Int32" -string m49s728 "Int16" -string m49s729 "Int8" -string m49s730 "UInt" -string m49s731 "primitive" -string m49s732 "string interpolation requires a stringifiable value, got " -string m49s733 "cannot iterate over " -string m49s734 "range bounds must be Int, got " -string m49s735 ".next" -string m49s736 "while let" -string m49s737 "if let" -string m49s738 " supports variant patterns and optional bindings" -string m49s739 "E245" -string m49s740 " with a bare binding needs an optional subject, got " -string m49s741 "fail type mismatch: expected " -string m49s742 "fail requires function to return a result type" -string m49s743 "E234" -string m49s744 "fail outside of function" -string m49s745 "E231" -string m49s746 "change the return type to " -string m49s747 "return type mismatch: expected " -string m49s748 ", got Void" -string m49s749 "return outside of function" -string m49s750 "lambda returns disagree: " -string m49s751 "type mismatch: expected " -string m49s752 " requires numeric type, got " -string m49s753 "operator " -string m49s754 "declare with 'mut': mut " -string m49s755 "cannot assign to immutable variable '" -string m49s756 "E216" -string m49s757 "try_expr" -string m49s758 "bind" -string m49s759 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m49s760 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m49s761 "E260" -string m49s762 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m49s763 "errdefer is only meaningful in a function returning a result (`T!`)" -string m49s764 "errdefer is only allowed inside a function" -string m49s765 "defer is only allowed inside a function" -string m49s766 "continue outside of loop" -string m49s767 "E215" -string m49s768 "break outside of loop" -string m49s769 " is missing associated type: " -string m49s770 " for " -string m49s771 "impl of " -string m49s772 "E229" -string m49s773 " is missing method: " -string m49s774 "E235" -string m49s775 "' is a builtin type name and cannot be used as an enum name" -string m49s776 "E250" -string m49s777 "' must be " -string m49s778 "default for field '" -string m49s779 "' is a builtin type name and cannot be used as a struct name" -string m49s780 "' must be an optional struct type (T?)" -string m49s781 "weak field '" -string m49s782 "E249" -string m49s783 "parameter requires a type annotation" -string m49s784 "unknown generic type: " -string m49s785 "Channel expects 1 type argument, got " -string m49s786 "Task expects 1 type argument, got " -string m49s787 "Map expects 2 type arguments, got " -string m49s788 "Set expects 1 type argument, got " -string m49s789 "List expects 1 type argument, got " -string m49s790 "type nesting too deep" -string m49s791 "E233" -string m49s792 "import it from the module that defines it" -string m49s793 "' is not declared by module '" -string m49s794 "E246" -string m49s795 "t" -string m49s796 "n" -string m49s797 "null" -string m49s798 "fix" -string m49s799 "message" -string m49s800 "code" -string m49s801 "severity" -string m49s802 "file" -string m49s803 " fix: " -string m49s804 " | " -string m49s805 " " -string m49s806 "]: " -string m49s807 "Diagnostic(" -string m49s808 "sseverity,scode,smessage,sfile,iline,icol,sfix" -string m49s809 "severity: " -string m49s810 ", code: " -string m49s811 ", message: " -string m49s812 ", file: " -string m49s813 ", fix: " -string m49s814 "--validate" -string m49s815 "--combined" -string m49s816 "--tests" -string m49s817 "field " -string m49s818 "call " -string m49s819 "func " -string m49s820 "struct " -string m49s821 "field instructions must use an explicit numeric offset or tuple index: " -string m49s822 "' for " -string m49s823 "' does not match expected '" -string m49s824 "builtin call retkind '" -string m49s825 "bare or unknown call retkind '" -string m49s826 "bare or unknown function retkind '" -string m49s827 "func" -string m49s828 "ir contract error on line " -string m49s829 "set_int" -string m49s830 "map_int" -string m49s831 "list_string" -string m49s832 "bytes" -string m49s833 "string" -string m49s834 "result_bool" -string m49s835 "bool" -string m49s836 "float" -string m49s837 "result_int" -string m49s838 "int" -string m49s839 "void" -string m49s840 "unknown" -string m49s841 "opaque:" -string m49s842 "struct:" -string m49s843 "append_file" -string m49s844 "write_file" -string m49s845 "file_write" -string m49s846 "file_open_append" -string m49s847 "file_open_write" -string m49s848 "file_open_read" -string m49s849 "process_write" -string m49s850 "process_output_argv" -string m49s851 "process_spawn_argv" -string m49s852 "process_spawn" -string m49s853 "tcp_write" -string m49s854 "tcp_accept" -string m49s855 "tcp_listen" -string m49s856 "tcp_connect" -string m49s857 "parse_int" -string m49s858 "func main " -string m49s859 " int 0" -string m49s860 "funcref" -string m49s861 "closure_ref" -string m49s862 "callv" -string m49s863 "__for_" -string m49s864 "global" -string m49s865 "__init_globals" -string m49s866 "__init_globals_" -string m49s867 "endfunc" -string m49s868 "usage: ir_driver [--combined] [--tests] [--validate] " -string m49s869 "CliArgs(" -string m49s870 "spath,bemit_tests,bemit_combined,bvalidate_combined" -string m49s871 "path: " -string m49s872 "emit_tests" -string m49s873 ", emit_tests: " -string m49s874 "emit_combined" -string m49s875 ", emit_combined: " -string m49s876 "validate_combined" -string m49s877 ", validate_combined: " -string m49s878 "ParsedModule(" -string m49s879 "iroot,import_roots" -string m49s880 "root: " -string m49s881 "import_roots" -string m49s882 ", import_roots: " -string m49s883 "RenamedImport(" -string m49s884 "sir,init_funcs" -string m49s885 "ir" -string m49s886 "ir: " -string m49s887 "init_funcs" -string m49s888 ", init_funcs: " -string m49s889 "DeclaredIrNames(" -string m49s890 "global_set,function_set,init_funcs" -string m49s891 "global_set" -string m49s892 "global_set: " -string m49s893 "function_set" -string m49s894 ", function_set: " -string m49s895 "parse_int failed" -string m49s896 "file_open_read failed" -string m49s897 "file_open_write failed" -string m49s898 "file_open_append failed" -string m49s899 "byte_buffer_write failed" -string m49s900 "byte_buffer_write_string_utf8 failed" -string m49s901 "byte_buffer_write_byte failed" -string m49s902 "file_write failed" -string m49s903 "file_write_bytes failed" -string m49s904 "tcp_connect failed" -string m49s905 "tcp_listen failed" -string m49s906 "tcp_accept failed" -string m49s907 "tcp_write failed" -string m49s908 "tcp_write_bytes failed" -string m49s909 "process_spawn failed" -string m49s910 "process_spawn_argv failed" -string m49s911 "process_output_argv failed" -string m49s912 "process_write failed" -string m49s913 "process_write_bytes failed" -string m49s914 "crypto_x25519_keygen failed" -string m49s915 "write_file failed" -string m49s916 "append_file failed" -string m49s917 "write_file_bytes failed" -string m49s918 "append_file_bytes failed" -string m49s919 "read_file failed" -string m49s920 "exec_output failed" -string m49s921 "dns_resolve failed" -string m49s922 "bytes_to_string_utf8 failed" -string m49s923 "bytes_substring_utf8 failed" -string m49s924 "file_read failed" -string m49s925 "tcp_read failed" -string m49s926 "process_read failed" -string m49s927 "process_read_err failed" -string m49s928 "read_file_bytes failed" -string m49s929 "b64_decode failed" -string m49s930 "from_hex failed" -string m49s931 "file_read_bytes failed" -string m49s932 "tcp_read_bytes failed" -string m49s933 "process_read_bytes failed" -string m49s934 "process_read_err_bytes failed" -string m49s935 "crypto_x25519_public_key failed" -string m49s936 "crypto_x25519_shared_secret failed" -string m49s937 "crypto_aes_128_gcm_seal failed" -string m49s938 "crypto_aes_128_gcm_open failed" -string m49s939 "crypto_chacha20_poly1305_seal failed" -string m49s940 "crypto_chacha20_poly1305_open failed" -string m49s941 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m49s654 " does not support field '" +string m49s655 " target field must be public: " +string m49s656 " argument type mismatch: expected " +string m49s657 " target must be a struct, got " +string m49s658 " requires an explicit struct type" +string m49s659 ".decode" +string m49s660 "unknown type: JsonDecodeError" +string m49s661 "JsonDecodeError" +string m49s662 "json.decode does not support field '" +string m49s663 "json.decode target field must be public: " +string m49s664 "json.decode argument type mismatch: expected " +string m49s665 "json.decode target must be a struct, got " +string m49s666 "json.decode expects 1 argument, got " +string m49s667 "json.decode requires an explicit struct type" +string m49s668 "config.decode does not support field '" +string m49s669 "config.decode target field must be public: " +string m49s670 "config.decode prefix type mismatch: expected String, got " +string m49s671 "config.decode argument type mismatch: expected Config, got " +string m49s672 "unknown type: Config" +string m49s673 "Config" +string m49s674 "config.decode target must be a struct, got " +string m49s675 " argument(s), got " +string m49s676 "config.decode expects " +string m49s677 "config.decode requires an explicit struct type" +string m49s678 "json.decode type argument must be a concrete struct type" +string m49s679 "config_mod" +string m49s680 "config" +string m49s681 "std.config" +string m49s682 "TomlDecodeError" +string m49s683 "YamlDecodeError" +string m49s684 "yaml" +string m49s685 "yaml_mod" +string m49s686 "toml" +string m49s687 "toml_mod" +string m49s688 "std.yaml" +string m49s689 "std.toml" +string m49s690 "json_mod" +string m49s691 "json" +string m49s692 "std.json" +string m49s693 "unary 'not' requires Bool, got " +string m49s694 "unary - requires numeric type, got " +string m49s695 "pipe type mismatch: function expects " +string m49s696 "' must take exactly 1 parameter" +string m49s697 "pipe target '" +string m49s698 "' is not a function" +string m49s699 "pipe operator requires a function name on the right" +string m49s700 "operator 'or' requires Bool, got " +string m49s701 "operator 'and' requires Bool, got " +string m49s702 "operator >= type mismatch: " +string m49s703 "operator >= requires numeric or string type, got " +string m49s704 "operator <= type mismatch: " +string m49s705 "operator <= requires numeric or string type, got " +string m49s706 "operator > type mismatch: " +string m49s707 "operator > requires numeric or string type, got " +string m49s708 "operator < type mismatch: " +string m49s709 "operator < requires numeric or string type, got " +string m49s710 "operator != type mismatch: " +string m49s711 "operator == type mismatch: " +string m49s712 "operator % type mismatch: " +string m49s713 "operator % requires integer type, got " +string m49s714 "operator / type mismatch: " +string m49s715 "operator / requires numeric type, got " +string m49s716 "operator * type mismatch: " +string m49s717 "operator * requires numeric type, got " +string m49s718 "operator - type mismatch: " +string m49s719 "operator - requires numeric type, got " +string m49s720 "operator + type mismatch: " +string m49s721 "operator + requires numeric type, got " +string m49s722 "undefined variable: " +string m49s723 "import it where it is defined" +string m49s724 "' belongs to another module and is not imported here" +string m49s725 "UInt64" +string m49s726 "UInt32" +string m49s727 "UInt16" +string m49s728 "UInt8" +string m49s729 "Int64" +string m49s730 "Int32" +string m49s731 "Int16" +string m49s732 "Int8" +string m49s733 "UInt" +string m49s734 "primitive" +string m49s735 "string interpolation requires a stringifiable value, got " +string m49s736 "cannot iterate over " +string m49s737 "range bounds must be Int, got " +string m49s738 ".next" +string m49s739 "while let" +string m49s740 "if let" +string m49s741 " supports variant patterns and optional bindings" +string m49s742 "E245" +string m49s743 " with a bare binding needs an optional subject, got " +string m49s744 "fail type mismatch: expected " +string m49s745 "fail requires function to return a result type" +string m49s746 "E234" +string m49s747 "fail outside of function" +string m49s748 "E231" +string m49s749 "change the return type to " +string m49s750 "return type mismatch: expected " +string m49s751 ", got Void" +string m49s752 "return outside of function" +string m49s753 "lambda returns disagree: " +string m49s754 "type mismatch: expected " +string m49s755 " requires numeric type, got " +string m49s756 "operator " +string m49s757 "declare with 'mut': mut " +string m49s758 "cannot assign to immutable variable '" +string m49s759 "E216" +string m49s760 "try_expr" +string m49s761 "bind" +string m49s762 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m49s763 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m49s764 "E260" +string m49s765 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m49s766 "errdefer is only meaningful in a function returning a result (`T!`)" +string m49s767 "errdefer is only allowed inside a function" +string m49s768 "defer is only allowed inside a function" +string m49s769 "continue outside of loop" +string m49s770 "E215" +string m49s771 "break outside of loop" +string m49s772 " is missing associated type: " +string m49s773 " for " +string m49s774 "impl of " +string m49s775 "E229" +string m49s776 " is missing method: " +string m49s777 "E235" +string m49s778 "' is a builtin type name and cannot be used as an enum name" +string m49s779 "E250" +string m49s780 "' must be " +string m49s781 "default for field '" +string m49s782 "' is a builtin type name and cannot be used as a struct name" +string m49s783 "' must be an optional struct type (T?)" +string m49s784 "weak field '" +string m49s785 "E249" +string m49s786 "parameter requires a type annotation" +string m49s787 "unknown generic type: " +string m49s788 "Channel expects 1 type argument, got " +string m49s789 "Task expects 1 type argument, got " +string m49s790 "Map expects 2 type arguments, got " +string m49s791 "Set expects 1 type argument, got " +string m49s792 "List expects 1 type argument, got " +string m49s793 "type nesting too deep" +string m49s794 "E233" +string m49s795 "import it from the module that defines it" +string m49s796 "' is not declared by module '" +string m49s797 "E246" +string m49s798 "t" +string m49s799 "n" +string m49s800 "null" +string m49s801 "fix" +string m49s802 "message" +string m49s803 "code" +string m49s804 "severity" +string m49s805 "file" +string m49s806 " fix: " +string m49s807 " | " +string m49s808 " " +string m49s809 "]: " +string m49s810 "Diagnostic(" +string m49s811 "sseverity,scode,smessage,sfile,iline,icol,sfix" +string m49s812 "severity: " +string m49s813 ", code: " +string m49s814 ", message: " +string m49s815 ", file: " +string m49s816 ", fix: " +string m49s817 "--validate" +string m49s818 "--combined" +string m49s819 "--tests" +string m49s820 "field " +string m49s821 "call " +string m49s822 "func " +string m49s823 "struct " +string m49s824 "field instructions must use an explicit numeric offset or tuple index: " +string m49s825 "' for " +string m49s826 "' does not match expected '" +string m49s827 "builtin call retkind '" +string m49s828 "bare or unknown call retkind '" +string m49s829 "bare or unknown function retkind '" +string m49s830 "func" +string m49s831 "ir contract error on line " +string m49s832 "set_int" +string m49s833 "map_int" +string m49s834 "list_string" +string m49s835 "bytes" +string m49s836 "string" +string m49s837 "result_bool" +string m49s838 "bool" +string m49s839 "float" +string m49s840 "result_int" +string m49s841 "int" +string m49s842 "void" +string m49s843 "unknown" +string m49s844 "opaque:" +string m49s845 "struct:" +string m49s846 "append_file" +string m49s847 "write_file" +string m49s848 "file_write" +string m49s849 "file_open_append" +string m49s850 "file_open_write" +string m49s851 "file_open_read" +string m49s852 "process_write" +string m49s853 "process_output_argv" +string m49s854 "process_spawn_argv" +string m49s855 "process_spawn" +string m49s856 "tcp_write" +string m49s857 "tcp_accept" +string m49s858 "tcp_listen" +string m49s859 "tcp_connect" +string m49s860 "parse_int" +string m49s861 "func main " +string m49s862 " int 0" +string m49s863 "funcref" +string m49s864 "closure_ref" +string m49s865 "callv" +string m49s866 "__for_" +string m49s867 "global" +string m49s868 "__init_globals" +string m49s869 "__init_globals_" +string m49s870 "endfunc" +string m49s871 "usage: ir_driver [--combined] [--tests] [--validate] " +string m49s872 "CliArgs(" +string m49s873 "spath,bemit_tests,bemit_combined,bvalidate_combined" +string m49s874 "path: " +string m49s875 "emit_tests" +string m49s876 ", emit_tests: " +string m49s877 "emit_combined" +string m49s878 ", emit_combined: " +string m49s879 "validate_combined" +string m49s880 ", validate_combined: " +string m49s881 "ParsedModule(" +string m49s882 "iroot,import_roots" +string m49s883 "root: " +string m49s884 "import_roots" +string m49s885 ", import_roots: " +string m49s886 "RenamedImport(" +string m49s887 "sir,init_funcs" +string m49s888 "ir" +string m49s889 "ir: " +string m49s890 "init_funcs" +string m49s891 ", init_funcs: " +string m49s892 "DeclaredIrNames(" +string m49s893 "global_set,function_set,init_funcs" +string m49s894 "global_set" +string m49s895 "global_set: " +string m49s896 "function_set" +string m49s897 ", function_set: " +string m49s898 "parse_int failed" +string m49s899 "file_open_read failed" +string m49s900 "file_open_write failed" +string m49s901 "file_open_append failed" +string m49s902 "byte_buffer_write failed" +string m49s903 "byte_buffer_write_string_utf8 failed" +string m49s904 "byte_buffer_write_byte failed" +string m49s905 "file_write failed" +string m49s906 "file_write_bytes failed" +string m49s907 "tcp_connect failed" +string m49s908 "tcp_listen failed" +string m49s909 "tcp_accept failed" +string m49s910 "tcp_write failed" +string m49s911 "tcp_write_bytes failed" +string m49s912 "process_spawn failed" +string m49s913 "process_spawn_argv failed" +string m49s914 "process_output_argv failed" +string m49s915 "process_write failed" +string m49s916 "process_write_bytes failed" +string m49s917 "crypto_x25519_keygen failed" +string m49s918 "write_file failed" +string m49s919 "append_file failed" +string m49s920 "write_file_bytes failed" +string m49s921 "append_file_bytes failed" +string m49s922 "read_file failed" +string m49s923 "exec_output failed" +string m49s924 "dns_resolve failed" +string m49s925 "bytes_to_string_utf8 failed" +string m49s926 "bytes_substring_utf8 failed" +string m49s927 "file_read failed" +string m49s928 "tcp_read failed" +string m49s929 "process_read failed" +string m49s930 "process_read_err failed" +string m49s931 "read_file_bytes failed" +string m49s932 "b64_decode failed" +string m49s933 "from_hex failed" +string m49s934 "file_read_bytes failed" +string m49s935 "tcp_read_bytes failed" +string m49s936 "process_read_bytes failed" +string m49s937 "process_read_err_bytes failed" +string m49s938 "crypto_x25519_public_key failed" +string m49s939 "crypto_x25519_shared_secret failed" +string m49s940 "crypto_aes_128_gcm_seal failed" +string m49s941 "crypto_aes_128_gcm_open failed" +string m49s942 "crypto_chacha20_poly1305_seal failed" +string m49s943 "crypto_chacha20_poly1305_open failed" +string m49s944 "crypto_sign_rsa_pss_sha256_pkcs8 failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -179556,7 +179774,7 @@ iconst 93 0 ret 93 endfunc func usage 0 void -strref 0 m49s868 +strref 0 m49s871 call 1 pith_print_cstr unknown 1 0 call 2 pith_cstring_release void 1 0 iconst 3 0 @@ -179686,7 +179904,7 @@ call 18 pith_cstring_trim string 1 17 call 19 pith_cstring_release void 1 16 store trimmed 18 load 20 trimmed -strref 21 m49s858 +strref 21 m49s861 call 22 pith_cstring_starts_with bool 2 20 21 call 23 pith_cstring_release void 1 21 brif 22 L17 L18 @@ -179702,7 +179920,7 @@ store __and_25_21 26 brif 26 L21 L22 label L21 load 27 trimmed -strref 28 m49s867 +strref 28 m49s870 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 store __and_25_21 29 @@ -179821,7 +180039,7 @@ call 49 pith_cstring_substring string 3 46 47 48 call 50 pith_cstring_release void 1 45 store name 49 load 51 op -strref 52 m49s864 +strref 52 m49s867 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 brif 53 L33 L34 @@ -179833,7 +180051,7 @@ call 58 map_insert void 3 55 56 57 jmp L32 label L34 load 59 op -strref 60 m49s827 +strref 60 m49s830 call 61 pith_cstring_eq bool 2 59 60 call 62 pith_cstring_release void 1 60 brif 61 L35 L36 @@ -179843,7 +180061,7 @@ load 64 name iconst 65 1 call 66 map_insert void 3 63 64 65 load 67 name -strref 68 m49s865 +strref 68 m49s868 call 69 pith_cstring_starts_with bool 2 67 68 call 70 pith_cstring_release void 1 68 brif 69 L38 L39 @@ -179908,7 +180126,7 @@ ret 112 endfunc func prefixed_init_name 1 string param module_index -strref 1 m49s866 +strref 1 m49s869 load 2 module_index call 3 int_to_string string 1 2 concat 4 1 3 @@ -180030,7 +180248,7 @@ param init_prefix iconst 2 0 store base 2 load 3 base -strref 4 m49s865 +strref 4 m49s868 call 5 pith_cstring_release void 1 3 store base 4 load 6 name @@ -180315,14 +180533,14 @@ store op 26 iconst 28 0 store __or_28_76 28 load 29 op -strref 30 m49s827 +strref 30 m49s830 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 store __or_28_76 31 brif 31 L77 L76 label L76 load 33 op -strref 34 m49s864 +strref 34 m49s867 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 store __or_28_76 35 @@ -180348,14 +180566,14 @@ store name 48 iconst 50 0 store __and_50_81 50 load 51 op -strref 52 m49s864 +strref 52 m49s867 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 store __and_50_81 53 brif 53 L81 L82 label L81 load 55 name -strref 56 m49s863 +strref 56 m49s866 call 57 pith_cstring_starts_with bool 2 55 56 call 58 pith_cstring_release void 1 56 store __and_50_81 57 @@ -180536,7 +180754,7 @@ ret 183 label L94 label L92 load 190 op -strref 191 m49s862 +strref 191 m49s865 call 192 pith_cstring_eq bool 2 190 191 call 193 pith_cstring_release void 1 191 brif 192 L99 L100 @@ -180566,7 +180784,7 @@ ret 206 label L100 label L98 load 213 op -strref 214 m49s861 +strref 214 m49s864 call 215 pith_cstring_eq bool 2 213 214 call 216 pith_cstring_release void 1 214 brif 215 L102 L103 @@ -180621,7 +180839,7 @@ ret 247 label L103 label L101 load 254 op -strref 255 m49s860 +strref 255 m49s863 call 256 pith_cstring_eq bool 2 254 255 call 257 pith_cstring_release void 1 255 brif 256 L108 L109 @@ -180831,7 +181049,7 @@ store __loopvar_421_init_func 15 load 16 __for_idx_421 store __loopvar_421_i 16 load 17 with_inits -strref 18 m49s818 +strref 18 m49s821 iconst 19 900000 load 20 __loopvar_421_i add 21 19 20 @@ -180846,7 +181064,7 @@ call 29 pith_cstring_release void 1 26 load 30 __loopvar_421_init_func concat 31 27 30 call 32 pith_cstring_release void 1 27 -strref 33 m49s859 +strref 33 m49s862 concat 34 31 33 call 35 pith_cstring_release void 1 31 call 36 pith_cstring_release void 1 33 @@ -180901,7 +181119,7 @@ load 20 out load 21 __loopvar_422_line call 22 pith_list_push_value void 2 20 21 load 23 __loopvar_422_line -strref 24 m49s858 +strref 24 m49s861 call 25 pith_cstring_starts_with bool 2 23 24 call 26 pith_cstring_release void 1 24 brif 25 L126 L127 @@ -180942,7 +181160,7 @@ endfunc func builtin_retkind 1 string param name load 1 name -strref 2 m49s857 +strref 2 m49s860 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 brif 3 L129 L130 @@ -180974,14 +181192,14 @@ store __or_15_134 15 iconst 16 0 store __or_16_134 16 load 17 name -strref 18 m49s856 +strref 18 m49s859 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 store __or_16_134 19 brif 19 L135 L134 label L134 load 21 name -strref 22 m49s855 +strref 22 m49s858 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 store __or_16_134 23 @@ -180991,7 +181209,7 @@ store __or_15_134 25 brif 25 L137 L136 label L136 load 26 name -strref 27 m49s854 +strref 27 m49s857 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 store __or_15_134 28 @@ -181001,7 +181219,7 @@ store __or_14_134 30 brif 30 L139 L138 label L138 load 31 name -strref 32 m49s853 +strref 32 m49s856 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 store __or_14_134 33 @@ -181011,7 +181229,7 @@ store __or_13_134 35 brif 35 L141 L140 label L140 load 36 name -strref 37 m49s852 +strref 37 m49s855 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 store __or_13_134 38 @@ -181021,7 +181239,7 @@ store __or_12_134 40 brif 40 L143 L142 label L142 load 41 name -strref 42 m49s851 +strref 42 m49s854 call 43 pith_cstring_eq bool 2 41 42 call 44 pith_cstring_release void 1 42 store __or_12_134 43 @@ -181031,7 +181249,7 @@ store __or_11_134 45 brif 45 L145 L144 label L144 load 46 name -strref 47 m49s850 +strref 47 m49s853 call 48 pith_cstring_eq bool 2 46 47 call 49 pith_cstring_release void 1 47 store __or_11_134 48 @@ -181041,7 +181259,7 @@ store __or_10_134 50 brif 50 L147 L146 label L146 load 51 name -strref 52 m49s849 +strref 52 m49s852 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 store __or_10_134 53 @@ -181051,7 +181269,7 @@ store __or_9_134 55 brif 55 L149 L148 label L148 load 56 name -strref 57 m49s848 +strref 57 m49s851 call 58 pith_cstring_eq bool 2 56 57 call 59 pith_cstring_release void 1 57 store __or_9_134 58 @@ -181061,7 +181279,7 @@ store __or_8_134 60 brif 60 L151 L150 label L150 load 61 name -strref 62 m49s847 +strref 62 m49s850 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 store __or_8_134 63 @@ -181071,7 +181289,7 @@ store __or_7_134 65 brif 65 L153 L152 label L152 load 66 name -strref 67 m49s846 +strref 67 m49s849 call 68 pith_cstring_eq bool 2 66 67 call 69 pith_cstring_release void 1 67 store __or_7_134 68 @@ -181081,7 +181299,7 @@ store __or_6_134 70 brif 70 L155 L154 label L154 load 71 name -strref 72 m49s845 +strref 72 m49s848 call 73 pith_cstring_eq bool 2 71 72 call 74 pith_cstring_release void 1 72 store __or_6_134 73 @@ -181089,21 +181307,21 @@ label L155 load 75 __or_6_134 brif 75 L132 L133 label L132 -strref 76 m49s837 +strref 76 m49s840 ret 76 label L133 label L131 iconst 77 0 store __or_77_159 77 load 78 name -strref 79 m49s844 +strref 79 m49s847 call 80 pith_cstring_eq bool 2 78 79 call 81 pith_cstring_release void 1 79 store __or_77_159 80 brif 80 L160 L159 label L159 load 82 name -strref 83 m49s843 +strref 83 m49s846 call 84 pith_cstring_eq bool 2 82 83 call 85 pith_cstring_release void 1 83 store __or_77_159 84 @@ -181111,7 +181329,7 @@ label L160 load 86 __or_77_159 brif 86 L157 L158 label L157 -strref 87 m49s834 +strref 87 m49s837 ret 87 label L158 label L156 @@ -181169,7 +181387,7 @@ endfunc func is_explicit_ir_retkind 1 bool param kind load 1 kind -strref 2 m49s842 +strref 2 m49s845 call 3 pith_cstring_starts_with bool 2 1 2 call 4 pith_cstring_release void 1 2 brif 3 L168 L169 @@ -181179,7 +181397,7 @@ ret 5 label L169 label L167 load 6 kind -strref 7 m49s841 +strref 7 m49s844 call 8 pith_cstring_starts_with bool 2 6 7 call 9 pith_cstring_release void 1 7 brif 8 L171 L172 @@ -181223,14 +181441,14 @@ store __or_26_173 26 iconst 27 0 store __or_27_173 27 load 28 kind -strref 29 m49s840 +strref 29 m49s843 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 store __or_27_173 30 brif 30 L174 L173 label L173 load 32 kind -strref 33 m49s839 +strref 33 m49s842 call 34 pith_cstring_eq bool 2 32 33 call 35 pith_cstring_release void 1 33 store __or_27_173 34 @@ -181240,7 +181458,7 @@ store __or_26_173 36 brif 36 L176 L175 label L175 load 37 kind -strref 38 m49s838 +strref 38 m49s841 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 store __or_26_173 39 @@ -181250,7 +181468,7 @@ store __or_25_173 41 brif 41 L178 L177 label L177 load 42 kind -strref 43 m49s837 +strref 43 m49s840 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 store __or_25_173 44 @@ -181260,7 +181478,7 @@ store __or_24_173 46 brif 46 L180 L179 label L179 load 47 kind -strref 48 m49s836 +strref 48 m49s839 call 49 pith_cstring_eq bool 2 47 48 call 50 pith_cstring_release void 1 48 store __or_24_173 49 @@ -181270,7 +181488,7 @@ store __or_23_173 51 brif 51 L182 L181 label L181 load 52 kind -strref 53 m49s835 +strref 53 m49s838 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 store __or_23_173 54 @@ -181280,7 +181498,7 @@ store __or_22_173 56 brif 56 L184 L183 label L183 load 57 kind -strref 58 m49s834 +strref 58 m49s837 call 59 pith_cstring_eq bool 2 57 58 call 60 pith_cstring_release void 1 58 store __or_22_173 59 @@ -181290,7 +181508,7 @@ store __or_21_173 61 brif 61 L186 L185 label L185 load 62 kind -strref 63 m49s833 +strref 63 m49s836 call 64 pith_cstring_eq bool 2 62 63 call 65 pith_cstring_release void 1 63 store __or_21_173 64 @@ -181300,7 +181518,7 @@ store __or_20_173 66 brif 66 L188 L187 label L187 load 67 kind -strref 68 m49s832 +strref 68 m49s835 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 store __or_20_173 69 @@ -181320,7 +181538,7 @@ store __or_18_173 76 brif 76 L192 L191 label L191 load 77 kind -strref 78 m49s831 +strref 78 m49s834 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 store __or_18_173 79 @@ -181340,7 +181558,7 @@ store __or_16_173 86 brif 86 L196 L195 label L195 load 87 kind -strref 88 m49s830 +strref 88 m49s833 call 89 pith_cstring_eq bool 2 87 88 call 90 pith_cstring_release void 1 88 store __or_16_173 89 @@ -181360,7 +181578,7 @@ store __or_14_173 96 brif 96 L200 L199 label L199 load 97 kind -strref 98 m49s829 +strref 98 m49s832 call 99 pith_cstring_eq bool 2 97 98 call 100 pith_cstring_release void 1 98 store __or_14_173 99 @@ -181403,7 +181621,7 @@ endfunc func ir_contract_error 2 void param line_no param message -strref 2 m49s828 +strref 2 m49s831 load 3 line_no call 4 int_to_string string 1 3 concat 5 2 4 @@ -181474,7 +181692,7 @@ label L214 load 10 parts iconst 11 0 call 12 pith_list_get_value_strict string 2 10 11 -strref 13 m49s827 +strref 13 m49s830 call 15 pith_cstring_eq bool 2 12 13 iconst 16 1 sub 14 16 15 @@ -181503,7 +181721,7 @@ call 30 is_bare_declared_retkind bool 2 28 29 brif 30 L217 L218 label L217 load 31 line_no -strref 32 m49s826 +strref 32 m49s829 load 33 retkind concat 34 32 33 call 35 pith_cstring_release void 1 32 @@ -181589,11 +181807,11 @@ call 41 is_bare_declared_retkind bool 2 39 40 brif 41 L225 L226 label L225 load 42 line_no -strref 43 m49s825 +strref 43 m49s828 load 44 retkind concat 45 43 44 call 46 pith_cstring_release void 1 43 -strref 47 m49s822 +strref 47 m49s825 concat 48 45 47 call 49 pith_cstring_release void 1 45 call 50 pith_cstring_release void 1 47 @@ -181630,18 +181848,18 @@ load 70 __and_60_230 brif 70 L228 L229 label L228 load 71 line_no -strref 72 m49s824 +strref 72 m49s827 load 73 retkind concat 74 72 73 call 75 pith_cstring_release void 1 72 -strref 76 m49s823 +strref 76 m49s826 concat 77 74 76 call 78 pith_cstring_release void 1 74 call 79 pith_cstring_release void 1 76 load 80 builtin_kind concat 81 77 80 call 82 pith_cstring_release void 1 77 -strref 83 m49s822 +strref 83 m49s825 concat 84 81 83 call 85 pith_cstring_release void 1 81 call 86 pith_cstring_release void 1 83 @@ -181836,7 +182054,7 @@ ret 39 label L261 label L259 load 40 line_no -strref 41 m49s821 +strref 41 m49s824 load 42 line concat 43 41 42 call 44 pith_cstring_release void 1 41 @@ -181889,7 +182107,7 @@ store __loopvar_423_line 24 iconst 25 0 store __and_25_271 25 load 26 __loopvar_423_line -strref 27 m49s820 +strref 27 m49s823 call 28 pith_cstring_starts_with bool 2 26 27 call 29 pith_cstring_release void 1 27 iconst 31 1 @@ -181898,7 +182116,7 @@ store __and_25_271 30 brif 30 L271 L272 label L271 load 32 __loopvar_423_line -strref 33 m49s819 +strref 33 m49s822 call 34 pith_cstring_starts_with bool 2 32 33 call 35 pith_cstring_release void 1 33 iconst 37 1 @@ -181988,7 +182206,7 @@ store __loopvar_424_line 86 iconst 87 0 store __and_87_285 87 load 88 __loopvar_424_line -strref 89 m49s818 +strref 89 m49s821 call 90 pith_cstring_starts_with bool 2 88 89 call 91 pith_cstring_release void 1 89 iconst 93 1 @@ -181997,7 +182215,7 @@ store __and_87_285 92 brif 92 L285 L286 label L285 load 94 __loopvar_424_line -strref 95 m49s817 +strref 95 m49s820 call 96 pith_cstring_starts_with bool 2 94 95 call 97 pith_cstring_release void 1 95 iconst 99 1 @@ -182126,7 +182344,7 @@ jmp L292 label L296 label L294 load 31 __loopvar_425_arg -strref 32 m49s816 +strref 32 m49s819 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 brif 33 L298 L299 @@ -182136,7 +182354,7 @@ store emit_tests 35 jmp L297 label L299 load 36 __loopvar_425_arg -strref 37 m49s815 +strref 37 m49s818 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 brif 38 L300 L301 @@ -182146,7 +182364,7 @@ store emit_combined 40 jmp L297 label L301 load 41 __loopvar_425_arg -strref 42 m49s814 +strref 42 m49s817 call 43 pith_cstring_eq bool 2 41 42 call 44 pith_cstring_release void 1 42 brif 43 L302 L303 @@ -182232,7 +182450,7 @@ sstore 13 2 11 store __legacy_result_8_307 13 jmp L309 label L308 -strref 14 m49s919 +strref 14 m49s922 iconst 15 0 iconst 16 3 call 17 pith_struct_alloc struct:tuple 1 16 diff --git a/self-host/checker.pith b/self-host/checker.pith index 50c61380..072ce3d4 100644 --- a/self-host/checker.pith +++ b/self-host/checker.pith @@ -2327,21 +2327,40 @@ fn check_config_decode_callee(index_node: Node, member_name: String) -> Bool: return true return recv_node.value == "config" or recv_node.value == "config_mod" -fn check_toml_decode_callee(index_node: Node, member_name: String) -> Bool: +# std.toml and std.yaml decode the same way — both parse into a node pool +# addressed by Int handles — so one check serves both. this returns the short +# module name the call goes through ("toml" or "yaml"), or "" when the call is +# not a handle-pool decode. the caller needs the name for the error type and +# for the messages. +fn handle_decode_module(index_node: Node, member_name: String) -> String: if index_node.kind != "index" or index_node.children.len() < 2: - return false + return "" base_node := get_node(index_node.children[0]) if base_node.kind != "field_access" or base_node.value != member_name: - return false + return "" if base_node.children.len() < 1: - return false + return "" recv_node := get_node(base_node.children[0]) if recv_node.kind != "ident": - return false + return "" if module_aliases.contains_key(recv_node.value): if module_aliases[recv_node.value] == "std.toml": - return true - return recv_node.value == "toml" or recv_node.value == "toml_mod" + return "toml" + if module_aliases[recv_node.value] == "std.yaml": + return "yaml" + if recv_node.value == "toml" or recv_node.value == "toml_mod": + return "toml" + if recv_node.value == "yaml" or recv_node.value == "yaml_mod": + return "yaml" + return "" + +fn check_handle_decode_callee(index_node: Node, member_name: String) -> Bool: + return handle_decode_module(index_node, member_name).len() > 0 + +fn handle_decode_error_type(module_name: String) -> String: + if module_name == "yaml": + return "YamlDecodeError" + return "TomlDecodeError" fn check_config_file_decode_callee(index_node: Node, member_name: String) -> Bool: if index_node.kind != "index" or index_node.children.len() < 2: @@ -2492,12 +2511,13 @@ fn check_json_decode_call(index_node: Node, arg_indices: List[Int], scope_id: In return TID_ERR return add_type_info(ti_result(target_tid, err_tid)) -fn check_toml_decode_call(index_node: Node, arg_indices: List[Int], scope_id: Int, text_input: Bool) -> Int: +fn check_handle_decode_call(index_node: Node, module_name: String, arg_indices: List[Int], scope_id: Int, text_input: Bool) -> Int: + label := module_name + ".decode" if index_node.children.len() < 2: - report_error("E222", "toml.decode requires an explicit struct type") + report_error("E222", label + " requires an explicit struct type") return TID_ERR if arg_indices.len() != 1: - report_error("E207", "toml.decode expects 1 argument, got " + arg_indices.len().to_string()) + report_error("E207", label + " expects 1 argument, got " + arg_indices.len().to_string()) return TID_ERR target_tid := resolve_json_decode_type_arg(index_node.children[1]) @@ -2505,7 +2525,7 @@ fn check_toml_decode_call(index_node: Node, arg_indices: List[Int], scope_id: In return TID_ERR target_info := get_type_info(target_tid) if target_info.kind != "struct": - report_error("E219", "toml.decode target must be a struct, got " + get_type_name(target_tid)) + report_error("E219", label + " target must be a struct, got " + get_type_name(target_tid)) return TID_ERR arg_node := get_node(arg_indices[0]) @@ -2517,21 +2537,22 @@ fn check_toml_decode_call(index_node: Node, arg_indices: List[Int], scope_id: In if text_input: expected_tid = lookup_type_id("String") if is_error_type(arg_tid) == false and arg_tid != expected_tid: - report_error("E219", "toml.decode argument type mismatch: expected " + get_type_name(expected_tid) + ", got " + get_type_name(arg_tid)) + report_error("E219", label + " argument type mismatch: expected " + get_type_name(expected_tid) + ", got " + get_type_name(arg_tid)) return TID_ERR for field_name, i in target_info.fields: if i < target_info.field_pub.len() and not target_info.field_pub[i]: - report_error("E219", "toml.decode target field must be public: " + field_name) + report_error("E219", label + " target field must be public: " + field_name) return TID_ERR if i < target_info.field_types.len(): field_tid := target_info.field_types[i] if not json_decode_field_supported(field_tid): - report_error("E219", "toml.decode does not support field '" + field_name + "' of type " + get_type_name(field_tid)) + report_error("E219", label + " does not support field '" + field_name + "' of type " + get_type_name(field_tid)) return TID_ERR - err_tid := lookup_type_id("TomlDecodeError") + err_name := handle_decode_error_type(module_name) + err_tid := lookup_type_id(err_name) if err_tid < 0: - report_error("E202", "unknown type: TomlDecodeError") + report_error("E202", "unknown type: " + err_name) return TID_ERR return add_type_info(ti_result(target_tid, err_tid)) @@ -2702,10 +2723,10 @@ fn check_function_call(node: Node, scope_id: Int) -> Int: return check_config_decode_call(callee_node, arg_indices, scope_id, false) if check_config_decode_callee(callee_node, "decode_prefix"): return check_config_decode_call(callee_node, arg_indices, scope_id, true) - if check_toml_decode_callee(callee_node, "decode"): - return check_toml_decode_call(callee_node, arg_indices, scope_id, false) - if check_toml_decode_callee(callee_node, "decode_text"): - return check_toml_decode_call(callee_node, arg_indices, scope_id, true) + if check_handle_decode_callee(callee_node, "decode"): + return check_handle_decode_call(callee_node, handle_decode_module(callee_node, "decode"), arg_indices, scope_id, false) + if check_handle_decode_callee(callee_node, "decode_text"): + return check_handle_decode_call(callee_node, handle_decode_module(callee_node, "decode_text"), arg_indices, scope_id, true) if check_config_file_decode_callee(callee_node, "from_toml_file_typed"): return check_config_file_decode_call(callee_node, arg_indices, scope_id) if check_config_file_decode_callee(callee_node, "from_json_file_typed"): diff --git a/self-host/ir_alias_registry.pith b/self-host/ir_alias_registry.pith index 6af153d3..4cdf4e07 100644 --- a/self-host/ir_alias_registry.pith +++ b/self-host/ir_alias_registry.pith @@ -9,7 +9,7 @@ from types import TypeInfo, get_type_info, get_type_name from checker import c_get_expr_type from ir_call_helpers import ir_declared_callable_return_type_with_state from ir_callees import ir_import_declares_function_with_state, ir_import_declares_global_with_state, ir_resolve_module_alias_method_call_name_with_state -from ir_decode_calls import ir_config_require_full_name_for_type_name_with_state, ir_toml_require_full_name_for_type_name_with_state, ir_is_config_decode_callee_with_aliases, ir_is_config_file_decode_callee_with_aliases, ir_is_json_decode_callee_with_aliases, ir_is_toml_decode_callee_with_aliases, ir_resolve_decode_call_name_with_state +from ir_decode_calls import ir_config_require_full_name_for_type_name_with_state, ir_handle_require_full_name_for_type_name_with_state, ir_is_config_decode_callee_with_aliases, ir_is_config_file_decode_callee_with_aliases, ir_is_json_decode_callee_with_aliases, ir_is_handle_decode_callee_with_aliases, ir_resolve_decode_call_name_with_state from ir_field_helpers import ir_emit_named_field_access_with_state from ir_generics import ir_extract_optional_inner_type_with_subst_with_state, ir_extract_param_types_with_subst_with_state, ir_extract_return_type_with_subst_with_state, ir_resolve_type_node_with_subst_with_state from ir_method_tables import ir_func_returns @@ -190,9 +190,9 @@ pub fn ir_is_json_decode_callee(index_idx: Int, member_name: String) -> Bool: pub fn ir_is_config_decode_callee(index_idx: Int, member_name: String) -> Bool: return ir_is_config_decode_callee_with_aliases(index_idx, member_name, ir_module_aliases) -## true when the callee is toml.decode under any alias. -pub fn ir_is_toml_decode_callee(index_idx: Int, member_name: String) -> Bool: - return ir_is_toml_decode_callee_with_aliases(index_idx, member_name, ir_module_aliases) +## true when the callee is a handle-pool module's decode under any alias. +pub fn ir_is_handle_decode_callee(index_idx: Int, member_name: String) -> Bool: + return ir_is_handle_decode_callee_with_aliases(index_idx, member_name, ir_module_aliases) ## true when the callee is config.decode_file under any alias. pub fn ir_is_config_file_decode_callee(index_idx: Int, member_name: String) -> Bool: @@ -206,9 +206,9 @@ pub fn ir_declared_callable_return_type(fname: String) -> String: pub fn ir_config_require_full_name_for_type_name(type_name: String) -> String: return ir_config_require_full_name_for_type_name_with_state(type_name, ir_type_aliases, ir_struct_names) -## qualified toml require-helper name for a type. -pub fn ir_toml_require_full_name_for_type_name(type_name: String, module_path: String) -> String: - return ir_toml_require_full_name_for_type_name_with_state(type_name, module_path, ir_type_aliases, ir_struct_names) +## qualified handle-pool require-helper name for a type. +pub fn ir_handle_require_full_name_for_type_name(type_name: String, module_path: String) -> String: + return ir_handle_require_full_name_for_type_name_with_state(type_name, module_path, ir_type_aliases, ir_struct_names) ## read a result's ok field with its recorded type. pub fn ir_emit_result_ok_field_typed(result_r: Int, field_type_name: String) -> Int: @@ -222,8 +222,8 @@ pub fn ir_resolve_config_call_name(index_idx: Int, member_name: String) -> Strin pub fn ir_resolve_json_call_name(index_idx: Int, member_name: String) -> String: return ir_resolve_decode_call_name_with_state(index_idx, member_name, ir_module_aliases, ir_import_declared_functions, ir_import_declared_globals) -## resolve a toml.* call through module aliases. -pub fn ir_resolve_toml_call_name(index_idx: Int, member_name: String) -> String: +## resolve a handle-pool module call through module aliases. +pub fn ir_resolve_handle_decode_call_name(index_idx: Int, member_name: String) -> String: return ir_resolve_decode_call_name_with_state(index_idx, member_name, ir_module_aliases, ir_import_declared_functions, ir_import_declared_globals) ## checked tid of a struct field by index, or -1. diff --git a/self-host/ir_decode_calls.pith b/self-host/ir_decode_calls.pith index 49e249e3..a21b4957 100644 --- a/self-host/ir_decode_calls.pith +++ b/self-host/ir_decode_calls.pith @@ -1,6 +1,6 @@ # ir_decode_calls.pith — recognizing decode calls # -# pure predicates and name builders for json/toml/config decode +# pure predicates and name builders for json/handle-pool/config decode # forms: is this call a decode, which helper implements it, what tid # does the target struct's field have. the emission itself lives in # ir_decode_emit; nothing here writes output. @@ -43,14 +43,23 @@ pub fn ir_is_config_decode_callee_with_aliases(index_idx: Int, member_name: Stri return true return recv_name == "config" or recv_name == "config_mod" -pub fn ir_is_toml_decode_callee_with_aliases(index_idx: Int, member_name: String, module_aliases: Map[String, String]) -> Bool: +# std.toml and std.yaml decode through one lowering because they parse into +# the same thing: a node pool addressed by Int handles, with require_string, +# require_int, require_bool, has, require_table and the three pool marks all +# spelled the same way. every name the lowering emits is qualified by the +# receiver's module, so the only thing this has to answer is which modules are +# built that way. +pub fn ir_is_handle_pool_module(module_path: String) -> Bool: + return module_path == "std.toml" or module_path == "std.yaml" + +pub fn ir_is_handle_decode_callee_with_aliases(index_idx: Int, member_name: String, module_aliases: Map[String, String]) -> Bool: recv_name := ir_decode_field_receiver(index_idx, member_name) if recv_name.len() == 0: return false if module_aliases.contains_key(recv_name): - if module_aliases[recv_name] == "std.toml": + if ir_is_handle_pool_module(module_aliases[recv_name]): return true - return recv_name == "toml" or recv_name == "toml_mod" + return recv_name == "toml" or recv_name == "toml_mod" or recv_name == "yaml" or recv_name == "yaml_mod" pub fn ir_is_config_file_decode_callee_with_aliases(index_idx: Int, member_name: String, module_aliases: Map[String, String]) -> Bool: index_node := get_node(index_idx) @@ -81,7 +90,7 @@ pub fn ir_config_require_full_name_for_type_name_with_state(type_name: String, t return "std_config_require_bool" return "" -pub fn ir_toml_require_full_name_for_type_name_with_state(type_name: String, module_path: String, type_aliases: Map[String, String], struct_names: Map[String, Int]) -> String: +pub fn ir_handle_require_full_name_for_type_name_with_state(type_name: String, module_path: String, type_aliases: Map[String, String], struct_names: Map[String, Int]) -> String: resolved := ir_resolve_type_hint_with_state(type_name, type_aliases, struct_names) if resolved == "string": return ir_resolve_generic_module_call_name(module_path, "require_string") @@ -103,35 +112,40 @@ pub fn ir_is_config_decode_specialization(base_name: String, prefixed: Bool, mod return true return base_name == "decode" and local_std_config and first_param == "cfg" -pub fn ir_is_toml_decode_specialization(base_name: String, module_path: String, decl_idx: Int) -> Bool: - local_std_toml := module_path == "" or module_path == "std.toml" +# a generic body being specialized belongs to the handle-pool family when it +# was declared in one of those modules, or when the name it is being +# specialized under already carries that module's prefix. +fn in_handle_pool_module(module_path: String) -> Bool: + return module_path == "" or ir_is_handle_pool_module(module_path) + +fn is_handle_pool_specialization_name(base_name: String, suffix: String) -> Bool: + return base_name == "std_toml_" + suffix or base_name == "std_yaml_" + suffix + +pub fn ir_is_handle_decode_specialization(base_name: String, module_path: String, decl_idx: Int) -> Bool: first_param := ir_param_name_at(decl_idx, 0) - if base_name == "std_toml_decode": + if is_handle_pool_specialization_name(base_name, "decode"): return true - return base_name == "decode" and local_std_toml and first_param == "handle" + return base_name == "decode" and in_handle_pool_module(module_path) and first_param == "handle" -pub fn ir_is_toml_decode_path_specialization(base_name: String, module_path: String, decl_idx: Int) -> Bool: - local_std_toml := module_path == "" or module_path == "std.toml" +pub fn ir_is_handle_decode_path_specialization(base_name: String, module_path: String, decl_idx: Int) -> Bool: first_param := ir_param_name_at(decl_idx, 0) second_param := ir_param_name_at(decl_idx, 1) - if base_name == "std_toml_decode_path": + if is_handle_pool_specialization_name(base_name, "decode_path"): return true - return base_name == "decode_path" and local_std_toml and first_param == "handle" and second_param == "dotted_path" + return base_name == "decode_path" and in_handle_pool_module(module_path) and first_param == "handle" and second_param == "dotted_path" -pub fn ir_is_toml_decode_text_path_specialization(base_name: String, module_path: String, decl_idx: Int) -> Bool: - local_std_toml := module_path == "" or module_path == "std.toml" +pub fn ir_is_handle_decode_text_path_specialization(base_name: String, module_path: String, decl_idx: Int) -> Bool: first_param := ir_param_name_at(decl_idx, 0) second_param := ir_param_name_at(decl_idx, 1) - if base_name == "std_toml_decode_text_path": + if is_handle_pool_specialization_name(base_name, "decode_text_path"): return true - return base_name == "decode_text_path" and local_std_toml and first_param == "input" and second_param == "dotted_path" + return base_name == "decode_text_path" and in_handle_pool_module(module_path) and first_param == "input" and second_param == "dotted_path" -pub fn ir_is_toml_decode_text_specialization(base_name: String, module_path: String, decl_idx: Int) -> Bool: - local_std_toml := module_path == "" or module_path == "std.toml" +pub fn ir_is_handle_decode_text_specialization(base_name: String, module_path: String, decl_idx: Int) -> Bool: first_param := ir_param_name_at(decl_idx, 0) - if base_name == "std_toml_decode_text": + if is_handle_pool_specialization_name(base_name, "decode_text"): return true - return base_name == "decode_text" and local_std_toml and first_param == "input" + return base_name == "decode_text" and in_handle_pool_module(module_path) and first_param == "input" pub fn ir_is_json_decode_object_specialization(base_name: String, module_path: String, decl_idx: Int) -> Bool: local_std_json := module_path == "" or module_path == "std.json" @@ -269,15 +283,18 @@ pub fn ir_config_require_helper_name(field_tid: Int) -> String: return "require_bool" return "" -pub fn ir_toml_require_helper_name(field_tid: Int) -> String: +# the require-helper for a scalar field, as a plain member name. the caller +# resolves it against the call's receiver, so the same table serves every +# handle-pool module. +pub fn ir_handle_require_helper_name(field_tid: Int) -> String: info := get_type_info(field_tid) if info.kind == "primitive": if info.name == "String": - return "std_toml_require_string" + return "require_string" if info.name == "Int": - return "std_toml_require_int" + return "require_int" if info.name == "Bool": - return "std_toml_require_bool" + return "require_bool" return "" pub fn ir_struct_decode_field_tid(field_tid: Int) -> Int: diff --git a/self-host/ir_decode_emit.pith b/self-host/ir_decode_emit.pith index f4665fa2..51e47803 100644 --- a/self-host/ir_decode_emit.pith +++ b/self-host/ir_decode_emit.pith @@ -1,4 +1,4 @@ -# ir_decode_emit.pith — emission of json, toml, and config decode +# ir_decode_emit.pith — emission of json, handle-pool, and config decode # calls: walking a target struct's fields and generating the # per-field fetch, convert, default, and merge sequences. # @@ -12,9 +12,9 @@ from ast import Node, get_node, node_kind from ir_ast_helpers import ir_unwrap_pub_node from ir_builder import ir_emit, ir_reg, ir_str, ir_label, ir_new_temp_name, ir_var_types from checker import c_get_expr_type -from ir_alias_registry import ir_config_require_full_name_for_type_name, ir_emit_result_ok_field_typed, ir_is_config_decode_callee, ir_is_config_file_decode_callee, ir_resolve_config_call_name, ir_resolve_json_call_name, ir_resolve_toml_call_name, ir_struct_field_tid_at, ir_toml_require_full_name_for_type_name, ir_active_generic_params, ir_active_generic_concrete_types, ir_type_aliases -from ir_decode_calls import ir_json_field_helper_name, ir_config_require_helper_name, ir_json_field_type_tag, ir_json_field_type_char, ir_json_type_name_char, ir_json_object_helper_name, ir_json_require_helper_name, ir_json_scan_required_helper_name, ir_json_scalar_has_helper_name, ir_optional_inner_tid, ir_struct_decode_field_tid, ir_struct_has_nested_decode_fields, ir_struct_has_optional_fields, ir_toml_require_helper_name -from ir_generics import ir_generic_decl_indices, ir_config_generic_name_with_state, ir_generic_preferred_name, ir_json_generic_name_with_state, ir_queue_generic_specialization, ir_resolve_generic_module_call_name, ir_toml_generic_name_with_state, ir_specialize_type_name_with_state +from ir_alias_registry import ir_config_require_full_name_for_type_name, ir_emit_result_ok_field_typed, ir_is_config_decode_callee, ir_is_config_file_decode_callee, ir_resolve_config_call_name, ir_resolve_json_call_name, ir_resolve_handle_decode_call_name, ir_struct_field_tid_at, ir_handle_require_full_name_for_type_name, ir_active_generic_params, ir_active_generic_concrete_types, ir_type_aliases +from ir_decode_calls import ir_json_field_helper_name, ir_config_require_helper_name, ir_json_field_type_tag, ir_json_field_type_char, ir_json_type_name_char, ir_json_object_helper_name, ir_json_require_helper_name, ir_json_scan_required_helper_name, ir_json_scalar_has_helper_name, ir_optional_inner_tid, ir_struct_decode_field_tid, ir_struct_has_nested_decode_fields, ir_struct_has_optional_fields, ir_handle_require_helper_name +from ir_generics import ir_generic_decl_indices, ir_config_generic_name_with_state, ir_generic_preferred_name, ir_json_generic_name_with_state, ir_queue_generic_specialization, ir_resolve_generic_module_call_name, ir_handle_generic_name_with_state, ir_specialize_type_name_with_state from ir_optionals import ir_emit_optional_none_value, ir_emit_optional_some_value from ir_path_helpers import ir_emit_dotted_path_lookup, ir_emit_dotted_path_lookup_or_return from ir_result_abi import ir_emit_json_field_ok, ir_emit_result_value_field, ir_zero_reg @@ -103,35 +103,35 @@ fn ir_emit_json_pool_restore(mark: IrJsonPoolMark, restore_name: String): ir_emit("load " + array_r.to_string() + " " + mark.array_len_var) ir_emit_call2(ir_reg(), restore_name, "void", node_r, array_r) -# the toml node pool splits table children and array children into separate flat -# lists, so its mark carries three positions instead of json's two. -struct IrTomlPoolMark: +# a handle-pool node pool splits mapping children and sequence children into +# separate flat lists, so its mark carries three positions instead of json's two. +struct IrHandlePoolMark: node_id_var: String table_len_var: String array_len_var: String -# emit the three toml pool marks into fresh int temps. the names are the +# emit the three handle-pool marks into fresh int temps. the names are the # already-resolved std symbols (they differ between a call site and a spec body). -fn ir_emit_toml_pool_mark(mark_node_id_name: String, mark_table_len_name: String, mark_array_len_name: String) -> IrTomlPoolMark: +fn ir_emit_handle_pool_mark(mark_node_id_name: String, mark_table_len_name: String, mark_array_len_name: String) -> IrHandlePoolMark: node_r := ir_reg() ir_emit_call0(node_r, mark_node_id_name, "int") - node_var := ir_new_temp_name("toml_pool_node_mark") + node_var := ir_new_temp_name("handle_pool_node_mark") ir_var_types.insert(node_var, "int") ir_emit("store " + node_var + " " + node_r.to_string()) table_r := ir_reg() ir_emit_call0(table_r, mark_table_len_name, "int") - table_var := ir_new_temp_name("toml_pool_table_mark") + table_var := ir_new_temp_name("handle_pool_table_mark") ir_var_types.insert(table_var, "int") ir_emit("store " + table_var + " " + table_r.to_string()) array_r := ir_reg() ir_emit_call0(array_r, mark_array_len_name, "int") - array_var := ir_new_temp_name("toml_pool_array_mark") + array_var := ir_new_temp_name("handle_pool_array_mark") ir_var_types.insert(array_var, "int") ir_emit("store " + array_var + " " + array_r.to_string()) - return IrTomlPoolMark(node_var, table_var, array_var) + return IrHandlePoolMark(node_var, table_var, array_var) -# emit `toml.pool_restore(node_mark, table_mark, array_mark)`. -fn ir_emit_toml_pool_restore(mark: IrTomlPoolMark, restore_name: String): +# emit `pool_restore(node_mark, table_mark, array_mark)` on the owning module. +fn ir_emit_handle_pool_restore(mark: IrHandlePoolMark, restore_name: String): node_r := ir_reg() ir_emit("load " + node_r.to_string() + " " + mark.node_id_var) table_r := ir_reg() @@ -148,9 +148,9 @@ pub fn ir_json_generic_name(base_name: String) -> String: pub fn ir_config_generic_name(base_name: String) -> String: return ir_config_generic_name_with_state(base_name, ir_generic_decl_indices) -## emit the toml generic name sequence. -pub fn ir_toml_generic_name(base_name: String, module_path: String) -> String: - return ir_toml_generic_name_with_state(base_name, module_path, ir_generic_decl_indices) +## emit the handle-pool generic name sequence. +pub fn ir_handle_generic_name(base_name: String, module_path: String) -> String: + return ir_handle_generic_name_with_state(base_name, module_path, ir_generic_decl_indices) ## decode a nested struct field through its helper. pub fn ir_emit_nested_decode_path(parent_handle_r: Int, key_r: Int, target_tid: Int, require_name: String, decode_name: String, temp_prefix: String) -> Int: @@ -188,15 +188,15 @@ pub fn ir_emit_config_nested_decode_prefix_specialized(cfg_r: Int, prefix_r: Int ir_emit_call2(result_r, ir_queue_generic_specialization(decode_name, [ir_type_from_tid(target_tid)], "tuple"), "tuple", cfg_r, prefix_r) return result_r -## emit the toml nested decode path sequence. -pub fn ir_emit_toml_nested_decode_path(handle_r: Int, key_r: Int, target_tid: Int, index_idx: Int) -> Int: - decode_name := ir_generic_preferred_name(ir_resolve_toml_call_name(index_idx, "decode"), "decode") - return ir_emit_nested_decode_path(handle_r, key_r, target_tid, ir_resolve_toml_call_name(index_idx, "toml_require_table"), decode_name, "toml_nested_decode") +## emit the handle-pool nested decode path sequence. +pub fn ir_emit_handle_nested_decode_path(handle_r: Int, key_r: Int, target_tid: Int, index_idx: Int) -> Int: + decode_name := ir_generic_preferred_name(ir_resolve_handle_decode_call_name(index_idx, "decode"), "decode") + return ir_emit_nested_decode_path(handle_r, key_r, target_tid, ir_resolve_handle_decode_call_name(index_idx, "require_table"), decode_name, "handle_nested_decode") -## emit the toml nested decode path specialized sequence. -pub fn ir_emit_toml_nested_decode_path_specialized(handle_r: Int, key_r: Int, target_tid: Int, module_path: String) -> Int: - decode_name := ir_toml_generic_name("decode", module_path) - return ir_emit_nested_decode_path(handle_r, key_r, target_tid, ir_resolve_generic_module_call_name(module_path, "toml_require_table"), decode_name, "toml_nested_decode") +## emit the handle-pool nested decode path specialized sequence. +pub fn ir_emit_handle_nested_decode_path_specialized(handle_r: Int, key_r: Int, target_tid: Int, module_path: String) -> Int: + decode_name := ir_handle_generic_name("decode", module_path) + return ir_emit_nested_decode_path(handle_r, key_r, target_tid, ir_resolve_generic_module_call_name(module_path, "require_table"), decode_name, "handle_nested_decode") ## emit the config field key sequence. pub fn ir_emit_config_field_key(field_name: String, prefix_r: Int, index_idx: Int) -> Int: @@ -463,43 +463,43 @@ pub fn ir_emit_config_decode_value(target_info: TypeInfo, cfg_r: Int, prefix_r: ir_emit_struct_result_store(field_regs, "struct:" + target_info.name, temp_name) -## emit the toml spec optional struct field sequence. -pub fn ir_emit_toml_spec_optional_struct_field(handle_r: Int, key_r: Int, module_path: String, default_idx: Int, optional_struct_tid: Int, emit_value: fn(Int, String) -> Int) -> IrDecodeFieldValue: +## emit the handle-pool spec optional struct field sequence. +pub fn ir_emit_handle_spec_optional_struct_field(handle_r: Int, key_r: Int, module_path: String, default_idx: Int, optional_struct_tid: Int, emit_value: fn(Int, String) -> Int) -> IrDecodeFieldValue: has_r := ir_reg() ir_emit_call2(has_r, ir_resolve_generic_module_call_name(module_path, "has"), "bool", handle_r, key_r) - branch := ir_begin_decode_field_branch(has_r, "toml_spec_optional_struct_field", "tuple") + branch := ir_begin_decode_field_branch(has_r, "handle_spec_optional_struct_field", "tuple") ir_decode_field_store_missing_optional(branch, default_idx, emit_value) ir_decode_field_present(branch) - field_result_r := ir_emit_toml_nested_decode_path_specialized(handle_r, key_r, optional_struct_tid, module_path) + field_result_r := ir_emit_handle_nested_decode_path_specialized(handle_r, key_r, optional_struct_tid, module_path) ir_emit_result_return_error_branch(field_result_r) ir_decode_field_store_and_merge(branch, ir_emit_optional_some_value(ir_emit_json_field_ok(field_result_r, optional_struct_tid))) return IrDecodeFieldValue(true, ir_decode_field_load_after_merge(branch)) -## emit the toml spec nested struct field sequence. -pub fn ir_emit_toml_spec_nested_struct_field(handle_r: Int, key_r: Int, module_path: String, field_tid: Int, default_idx: Int, nested_struct_tid: Int, emit_value: fn(Int, String) -> Int) -> IrDecodeFieldValue: +## emit the handle-pool spec nested struct field sequence. +pub fn ir_emit_handle_spec_nested_struct_field(handle_r: Int, key_r: Int, module_path: String, field_tid: Int, default_idx: Int, nested_struct_tid: Int, emit_value: fn(Int, String) -> Int) -> IrDecodeFieldValue: if default_idx < 0: - field_result_r := ir_emit_toml_nested_decode_path_specialized(handle_r, key_r, nested_struct_tid, module_path) + field_result_r := ir_emit_handle_nested_decode_path_specialized(handle_r, key_r, nested_struct_tid, module_path) ir_emit_result_return_error_branch(field_result_r) return IrDecodeFieldValue(true, ir_emit_json_field_ok(field_result_r, field_tid)) has_r := ir_reg() ir_emit_call2(has_r, ir_resolve_generic_module_call_name(module_path, "has"), "bool", handle_r, key_r) - branch := ir_begin_decode_field_branch(has_r, "toml_spec_default_struct_field", ir_type_from_tid(field_tid)) + branch := ir_begin_decode_field_branch(has_r, "handle_spec_default_struct_field", ir_type_from_tid(field_tid)) ir_decode_field_store_missing_default(branch, default_idx, ir_type_from_tid(field_tid), emit_value) ir_decode_field_present(branch) - field_result_r := ir_emit_toml_nested_decode_path_specialized(handle_r, key_r, nested_struct_tid, module_path) + field_result_r := ir_emit_handle_nested_decode_path_specialized(handle_r, key_r, nested_struct_tid, module_path) ir_emit_result_return_error_branch(field_result_r) ir_decode_field_store_and_merge(branch, ir_emit_json_field_ok(field_result_r, field_tid)) return IrDecodeFieldValue(true, ir_decode_field_load_after_merge(branch)) -## emit the toml spec optional scalar field sequence. -pub fn ir_emit_toml_spec_optional_scalar_field(handle_r: Int, key_r: Int, module_path: String, default_idx: Int, optional_inner_tid: Int, emit_value: fn(Int, String) -> Int, emit_default_ret: fn() -> Int) -> IrDecodeFieldValue: - helper_name := ir_toml_require_full_name_for_type_name(ir_type_from_tid(optional_inner_tid), module_path) +## emit the handle-pool spec optional scalar field sequence. +pub fn ir_emit_handle_spec_optional_scalar_field(handle_r: Int, key_r: Int, module_path: String, default_idx: Int, optional_inner_tid: Int, emit_value: fn(Int, String) -> Int, emit_default_ret: fn() -> Int) -> IrDecodeFieldValue: + helper_name := ir_handle_require_full_name_for_type_name(ir_type_from_tid(optional_inner_tid), module_path) if helper_name.len() == 0: return ir_decode_missing_helper_value(emit_default_ret) has_r := ir_reg() ir_emit_call2(has_r, ir_resolve_generic_module_call_name(module_path, "has"), "bool", handle_r, key_r) - branch := ir_begin_decode_field_branch(has_r, "toml_spec_optional_field", "tuple") + branch := ir_begin_decode_field_branch(has_r, "handle_spec_optional_field", "tuple") ir_decode_field_store_missing_optional(branch, default_idx, emit_value) ir_decode_field_present(branch) field_result_r := ir_reg() @@ -508,9 +508,9 @@ pub fn ir_emit_toml_spec_optional_scalar_field(handle_r: Int, key_r: Int, module ir_decode_field_store_and_merge(branch, ir_emit_optional_some_value(ir_emit_json_field_ok(field_result_r, optional_inner_tid))) return IrDecodeFieldValue(true, ir_decode_field_load_after_merge(branch)) -## emit the toml spec scalar field sequence. -pub fn ir_emit_toml_spec_scalar_field(handle_r: Int, key_r: Int, module_path: String, field_tid: Int, default_idx: Int, emit_expr: fn(Int) -> Int, emit_default_ret: fn() -> Int) -> IrDecodeFieldValue: - helper_name := ir_toml_require_full_name_for_type_name(ir_type_from_tid(field_tid), module_path) +## emit the handle-pool spec scalar field sequence. +pub fn ir_emit_handle_spec_scalar_field(handle_r: Int, key_r: Int, module_path: String, field_tid: Int, default_idx: Int, emit_expr: fn(Int) -> Int, emit_default_ret: fn() -> Int) -> IrDecodeFieldValue: + helper_name := ir_handle_require_full_name_for_type_name(ir_type_from_tid(field_tid), module_path) if helper_name.len() == 0: return ir_decode_missing_helper_value(emit_default_ret) if default_idx < 0: @@ -521,7 +521,7 @@ pub fn ir_emit_toml_spec_scalar_field(handle_r: Int, key_r: Int, module_path: St has_r := ir_reg() ir_emit_call2(has_r, ir_resolve_generic_module_call_name(module_path, "has"), "bool", handle_r, key_r) - branch := ir_begin_decode_field_branch(has_r, "toml_spec_default_field", ir_type_from_tid(field_tid)) + branch := ir_begin_decode_field_branch(has_r, "handle_spec_default_field", ir_type_from_tid(field_tid)) ir_decode_field_store_and_merge(branch, emit_expr(default_idx)) ir_decode_field_present(branch) field_result_r := ir_reg() @@ -530,24 +530,24 @@ pub fn ir_emit_toml_spec_scalar_field(handle_r: Int, key_r: Int, module_path: St ir_decode_field_store_and_merge(branch, ir_emit_json_field_ok(field_result_r, field_tid)) return IrDecodeFieldValue(true, ir_decode_field_load_after_merge(branch)) -## emit the toml spec field sequence. -pub fn ir_emit_toml_spec_field(handle_r: Int, module_path: String, field_name: String, field_tid: Int, default_idx: Int, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int, emit_default_ret: fn() -> Int) -> IrDecodeFieldValue: +## emit the handle-pool spec field sequence. +pub fn ir_emit_handle_spec_field(handle_r: Int, module_path: String, field_name: String, field_tid: Int, default_idx: Int, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int, emit_default_ret: fn() -> Int) -> IrDecodeFieldValue: key_r := ir_reg() ir_emit("strref " + key_r.to_string() + " " + ir_str(field_name)) optional_inner_tid := ir_optional_inner_tid(field_tid) if optional_inner_tid >= 0: optional_struct_tid := ir_struct_decode_field_tid(optional_inner_tid) if optional_struct_tid >= 0: - return ir_emit_toml_spec_optional_struct_field(handle_r, key_r, module_path, default_idx, optional_struct_tid, emit_value) + return ir_emit_handle_spec_optional_struct_field(handle_r, key_r, module_path, default_idx, optional_struct_tid, emit_value) nested_struct_tid := ir_struct_decode_field_tid(field_tid) if nested_struct_tid >= 0: - return ir_emit_toml_spec_nested_struct_field(handle_r, key_r, module_path, field_tid, default_idx, nested_struct_tid, emit_value) + return ir_emit_handle_spec_nested_struct_field(handle_r, key_r, module_path, field_tid, default_idx, nested_struct_tid, emit_value) if optional_inner_tid >= 0: - return ir_emit_toml_spec_optional_scalar_field(handle_r, key_r, module_path, default_idx, optional_inner_tid, emit_value, emit_default_ret) - return ir_emit_toml_spec_scalar_field(handle_r, key_r, module_path, field_tid, default_idx, emit_expr, emit_default_ret) + return ir_emit_handle_spec_optional_scalar_field(handle_r, key_r, module_path, default_idx, optional_inner_tid, emit_value, emit_default_ret) + return ir_emit_handle_spec_scalar_field(handle_r, key_r, module_path, field_tid, default_idx, emit_expr, emit_default_ret) -## emit the toml decode struct from handle sequence. -pub fn ir_emit_toml_decode_struct_from_handle(struct_name: String, module_path: String, handle_name: String, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int, emit_default_ret: fn() -> Int): +## emit the handle-pool decode struct from handle sequence. +pub fn ir_emit_handle_decode_struct_from_handle(struct_name: String, module_path: String, handle_name: String, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int, emit_default_ret: fn() -> Int): if not ir_struct_names.contains_key(struct_name): emit_default_ret() return @@ -561,7 +561,7 @@ pub fn ir_emit_toml_decode_struct_from_handle(struct_name: String, module_path: field_name := ir_struct_field_name_at(struct_name, i) field_tid := ir_struct_field_tid_at(struct_name, i, -1) default_idx := ir_struct_field_default_node(struct_name, field_name) - field_value := ir_emit_toml_spec_field(handle_r, module_path, field_name, field_tid, default_idx, emit_expr, emit_value, emit_default_ret) + field_value := ir_emit_handle_spec_field(handle_r, module_path, field_name, field_tid, default_idx, emit_expr, emit_value, emit_default_ret) if not field_value.ok: return field_regs.push(field_value.value_r) @@ -569,30 +569,30 @@ pub fn ir_emit_toml_decode_struct_from_handle(struct_name: String, module_path: ir_emit_struct_result_return(field_regs, "struct:" + struct_name) -## emit the toml decode specialization body sequence. -pub fn ir_emit_toml_decode_specialization_body(struct_name: String, module_path: String, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int, emit_default_ret: fn() -> Int): - ir_emit_toml_decode_struct_from_handle(struct_name, module_path, "handle", emit_expr, emit_value, emit_default_ret) +## emit the handle-pool decode specialization body sequence. +pub fn ir_emit_handle_decode_specialization_body(struct_name: String, module_path: String, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int, emit_default_ret: fn() -> Int): + ir_emit_handle_decode_struct_from_handle(struct_name, module_path, "handle", emit_expr, emit_value, emit_default_ret) -## emit the toml decode path specialization body sequence. -pub fn ir_emit_toml_decode_path_specialization_body(struct_name: String, module_path: String, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int, emit_default_ret: fn() -> Int): +## emit the handle-pool decode path specialization body sequence. +pub fn ir_emit_handle_decode_path_specialization_body(struct_name: String, module_path: String, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int, emit_default_ret: fn() -> Int): handle_r := ir_reg() ir_emit("load " + handle_r.to_string() + " handle") dotted_path_r := ir_reg() ir_emit("load " + dotted_path_r.to_string() + " dotted_path") - ir_emit_dotted_path_lookup_or_return(handle_r, dotted_path_r, ir_resolve_generic_module_call_name(module_path, "toml_require_table"), "current", "__for_iter_toml_path", "__for_len_toml_path", "__for_idx_toml_path") - ir_emit_toml_decode_struct_from_handle(struct_name, module_path, "current", emit_expr, emit_value, emit_default_ret) + ir_emit_dotted_path_lookup_or_return(handle_r, dotted_path_r, ir_resolve_generic_module_call_name(module_path, "require_table"), "current", "__for_iter_handle_path", "__for_len_handle_path", "__for_idx_handle_path") + ir_emit_handle_decode_struct_from_handle(struct_name, module_path, "current", emit_expr, emit_value, emit_default_ret) -## emit the toml decode text specialization body sequence. -pub fn ir_emit_toml_decode_text_specialization_body(struct_name: String, module_path: String, concrete_types: List[String], ret_type: String): +## emit the handle-pool decode text specialization body sequence. +pub fn ir_emit_handle_decode_text_specialization_body(struct_name: String, module_path: String, concrete_types: List[String], ret_type: String): input_r := ir_reg() ir_emit("load " + input_r.to_string() + " input") - temp_name := ir_new_temp_name("toml_decode_text") + temp_name := ir_new_temp_name("handle_decode_text") ir_var_types.insert(temp_name, "tuple") done_l := ir_label() # this body owns the parse that fills the pool, so mark it now and reclaim # at the single exit. the decode sub-call materializes the struct (copying # strings out), so the nodes are dead by the time we restore. - mark := ir_emit_toml_pool_mark(ir_resolve_generic_module_call_name(module_path, "pool_mark_node_id"), ir_resolve_generic_module_call_name(module_path, "pool_mark_table_len"), ir_resolve_generic_module_call_name(module_path, "pool_mark_array_len")) + mark := ir_emit_handle_pool_mark(ir_resolve_generic_module_call_name(module_path, "pool_mark_node_id"), ir_resolve_generic_module_call_name(module_path, "pool_mark_table_len"), ir_resolve_generic_module_call_name(module_path, "pool_mark_array_len")) parse_result_r := ir_reg() ir_emit_call1(parse_result_r, ir_resolve_generic_module_call_name(module_path, "parse_required"), "tuple", input_r) ir_emit_result_store_error_branch(parse_result_r, temp_name, done_l) @@ -603,21 +603,21 @@ pub fn ir_emit_toml_decode_text_specialization_body(struct_name: String, module_ ir_emit_call1(decode_result_r, decode_name, "tuple", root_r) ir_emit("store " + temp_name + " " + decode_result_r.to_string()) ir_emit_label(done_l) - ir_emit_toml_pool_restore(mark, ir_resolve_generic_module_call_name(module_path, "pool_restore")) + ir_emit_handle_pool_restore(mark, ir_resolve_generic_module_call_name(module_path, "pool_restore")) r := ir_reg() ir_emit("load " + r.to_string() + " " + temp_name) ir_emit("ret " + r.to_string()) ir_emit("endfunc") -## emit the toml decode text path specialization body sequence. -pub fn ir_emit_toml_decode_text_path_specialization_body(struct_name: String, module_path: String, concrete_types: List[String], ret_type: String): +## emit the handle-pool decode text path specialization body sequence. +pub fn ir_emit_handle_decode_text_path_specialization_body(struct_name: String, module_path: String, concrete_types: List[String], ret_type: String): input_r := ir_reg() ir_emit("load " + input_r.to_string() + " input") - temp_name := ir_new_temp_name("toml_decode_text_path") + temp_name := ir_new_temp_name("handle_decode_text_path") ir_var_types.insert(temp_name, "tuple") done_l := ir_label() # owns the parse, so bracket it and reclaim at the single exit. - mark := ir_emit_toml_pool_mark(ir_resolve_generic_module_call_name(module_path, "pool_mark_node_id"), ir_resolve_generic_module_call_name(module_path, "pool_mark_table_len"), ir_resolve_generic_module_call_name(module_path, "pool_mark_array_len")) + mark := ir_emit_handle_pool_mark(ir_resolve_generic_module_call_name(module_path, "pool_mark_node_id"), ir_resolve_generic_module_call_name(module_path, "pool_mark_table_len"), ir_resolve_generic_module_call_name(module_path, "pool_mark_array_len")) parse_result_r := ir_reg() ir_emit_call1(parse_result_r, ir_resolve_generic_module_call_name(module_path, "parse_required"), "tuple", input_r) ir_emit_result_store_error_branch(parse_result_r, temp_name, done_l) @@ -630,7 +630,7 @@ pub fn ir_emit_toml_decode_text_path_specialization_body(struct_name: String, mo ir_emit_call2(path_result_r, decode_path_name, "tuple", root_r, path_r) ir_emit("store " + temp_name + " " + path_result_r.to_string()) ir_emit_label(done_l) - ir_emit_toml_pool_restore(mark, ir_resolve_generic_module_call_name(module_path, "pool_restore")) + ir_emit_handle_pool_restore(mark, ir_resolve_generic_module_call_name(module_path, "pool_restore")) r := ir_reg() ir_emit("load " + r.to_string() + " " + temp_name) ir_emit("ret " + r.to_string()) @@ -698,8 +698,8 @@ pub fn ir_emit_config_loader_decode_call(idx: Int, node: Node, loader_name: Stri pub fn ir_emit_config_file_decode_call(idx: Int, node: Node, loader_name: String, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int) -> Int: return ir_emit_config_loader_decode_call(idx, node, loader_name, false, emit_expr, emit_value) -## emit the toml decode value sequence. -pub fn ir_emit_toml_decode_value(target_info: TypeInfo, handle_r: Int, index_idx: Int, temp_name: String, done_l: String, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int): +## emit the handle-pool decode value sequence. +pub fn ir_emit_handle_decode_value(target_info: TypeInfo, handle_r: Int, index_idx: Int, temp_name: String, done_l: String, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int): mut field_regs: List[Int] := [] for field_name, i in target_info.fields: @@ -715,11 +715,11 @@ pub fn ir_emit_toml_decode_value(target_info: TypeInfo, handle_r: Int, index_idx optional_struct_tid = ir_struct_decode_field_tid(optional_inner_tid) if optional_struct_tid >= 0: has_r := ir_reg() - ir_emit_call2(has_r, ir_resolve_toml_call_name(index_idx, "has"), "bool", handle_r, key_r) - branch := ir_begin_decode_field_branch(has_r, "toml_optional_struct_field", "tuple") + ir_emit_call2(has_r, ir_resolve_handle_decode_call_name(index_idx, "has"), "bool", handle_r, key_r) + branch := ir_begin_decode_field_branch(has_r, "handle_optional_struct_field", "tuple") ir_decode_field_store_missing_optional(branch, default_idx, emit_value) ir_decode_field_present(branch) - field_result_r := ir_emit_toml_nested_decode_path(handle_r, key_r, optional_struct_tid, index_idx) + field_result_r := ir_emit_handle_nested_decode_path(handle_r, key_r, optional_struct_tid, index_idx) ir_emit_result_store_error_branch(field_result_r, temp_name, done_l) ir_decode_field_store_and_merge(branch, ir_emit_optional_some_value(ir_emit_json_field_ok(field_result_r, optional_struct_tid))) field_regs.push(ir_decode_field_load_after_merge(branch)) @@ -728,58 +728,58 @@ pub fn ir_emit_toml_decode_value(target_info: TypeInfo, handle_r: Int, index_idx if nested_struct_tid >= 0: if default_idx >= 0: has_r := ir_reg() - ir_emit_call2(has_r, ir_resolve_toml_call_name(index_idx, "has"), "bool", handle_r, key_r) - branch := ir_begin_decode_field_branch(has_r, "toml_default_struct_field", ir_type_from_tid(field_tid)) + ir_emit_call2(has_r, ir_resolve_handle_decode_call_name(index_idx, "has"), "bool", handle_r, key_r) + branch := ir_begin_decode_field_branch(has_r, "handle_default_struct_field", ir_type_from_tid(field_tid)) ir_decode_field_store_missing_default(branch, default_idx, ir_type_from_tid(field_tid), emit_value) ir_decode_field_present(branch) - field_result_r := ir_emit_toml_nested_decode_path(handle_r, key_r, nested_struct_tid, index_idx) + field_result_r := ir_emit_handle_nested_decode_path(handle_r, key_r, nested_struct_tid, index_idx) ir_emit_result_store_error_branch(field_result_r, temp_name, done_l) ir_decode_field_store_and_merge(branch, ir_emit_json_field_ok(field_result_r, field_tid)) field_regs.push(ir_decode_field_load_after_merge(branch)) continue - field_result_r := ir_emit_toml_nested_decode_path(handle_r, key_r, nested_struct_tid, index_idx) + field_result_r := ir_emit_handle_nested_decode_path(handle_r, key_r, nested_struct_tid, index_idx) ir_emit_result_store_error_branch(field_result_r, temp_name, done_l) field_regs.push(ir_emit_json_field_ok(field_result_r, field_tid)) continue if optional_inner_tid >= 0: - helper_name := ir_toml_require_helper_name(optional_inner_tid) + helper_name := ir_handle_require_helper_name(optional_inner_tid) if helper_name.len() == 0: continue has_r := ir_reg() - ir_emit_call2(has_r, ir_resolve_toml_call_name(index_idx, "has"), "bool", handle_r, key_r) - branch := ir_begin_decode_field_branch(has_r, "toml_optional_field", "tuple") + ir_emit_call2(has_r, ir_resolve_handle_decode_call_name(index_idx, "has"), "bool", handle_r, key_r) + branch := ir_begin_decode_field_branch(has_r, "handle_optional_field", "tuple") ir_decode_field_store_missing_optional(branch, default_idx, emit_value) ir_decode_field_present(branch) field_result_r := ir_reg() - ir_emit_call2(field_result_r, ir_resolve_toml_call_name(index_idx, helper_name), "tuple", handle_r, key_r) + ir_emit_call2(field_result_r, ir_resolve_handle_decode_call_name(index_idx, helper_name), "tuple", handle_r, key_r) ir_emit_result_store_error_branch(field_result_r, temp_name, done_l) ir_decode_field_store_and_merge(branch, ir_emit_optional_some_value(ir_emit_json_field_ok(field_result_r, optional_inner_tid))) field_regs.push(ir_decode_field_load_after_merge(branch)) continue - helper_name := ir_toml_require_helper_name(field_tid) + helper_name := ir_handle_require_helper_name(field_tid) if helper_name.len() == 0: continue if default_idx >= 0: has_r := ir_reg() - ir_emit_call2(has_r, ir_resolve_toml_call_name(index_idx, "has"), "bool", handle_r, key_r) - branch := ir_begin_decode_field_branch(has_r, "toml_default_field", ir_type_from_tid(field_tid)) + ir_emit_call2(has_r, ir_resolve_handle_decode_call_name(index_idx, "has"), "bool", handle_r, key_r) + branch := ir_begin_decode_field_branch(has_r, "handle_default_field", ir_type_from_tid(field_tid)) ir_decode_field_store_and_merge(branch, emit_expr(default_idx)) ir_decode_field_present(branch) field_result_r := ir_reg() - ir_emit_call2(field_result_r, ir_resolve_toml_call_name(index_idx, helper_name), "tuple", handle_r, key_r) + ir_emit_call2(field_result_r, ir_resolve_handle_decode_call_name(index_idx, helper_name), "tuple", handle_r, key_r) ir_emit_result_store_error_branch(field_result_r, temp_name, done_l) ir_decode_field_store_and_merge(branch, ir_emit_json_field_ok(field_result_r, field_tid)) field_regs.push(ir_decode_field_load_after_merge(branch)) continue field_result_r := ir_reg() - ir_emit_call2(field_result_r, ir_resolve_toml_call_name(index_idx, helper_name), "tuple", handle_r, key_r) + ir_emit_call2(field_result_r, ir_resolve_handle_decode_call_name(index_idx, helper_name), "tuple", handle_r, key_r) ir_emit_result_store_error_branch(field_result_r, temp_name, done_l) field_regs.push(ir_emit_json_field_ok(field_result_r, field_tid)) ir_emit_struct_result_store(field_regs, "struct:" + target_info.name, temp_name) -## emit the toml decode call sequence. -pub fn ir_emit_toml_decode_call(idx: Int, node: Node, text_input: Bool, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int) -> Int: +## emit the handle-pool decode call sequence. +pub fn ir_emit_handle_decode_call(idx: Int, node: Node, text_input: Bool, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int) -> Int: arg_regs := ir_decode_collect_arg_regs(node, 1, emit_expr) if arg_regs.len() == 0: return ir_zero_reg() @@ -790,29 +790,29 @@ pub fn ir_emit_toml_decode_call(idx: Int, node: Node, text_input: Bool, emit_exp return ir_zero_reg() target_info := get_type_info(target_tid) - temp_name := ir_new_temp_name("toml_decode") + temp_name := ir_new_temp_name("handle_decode") ir_var_types.insert(temp_name, "tuple") done_l := ir_label() # only the text form owns the parse that fills the pool; the handle form is # handed an already-parsed root the caller owns and must not roll back. - mut mark := IrTomlPoolMark("", "", "") + mut mark := IrHandlePoolMark("", "", "") if text_input: - mark = ir_emit_toml_pool_mark(ir_resolve_toml_call_name(node.children[0], "pool_mark_node_id"), ir_resolve_toml_call_name(node.children[0], "pool_mark_table_len"), ir_resolve_toml_call_name(node.children[0], "pool_mark_array_len")) + mark = ir_emit_handle_pool_mark(ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_node_id"), ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_table_len"), ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_array_len")) parse_result_r := ir_reg() - ir_emit_call1(parse_result_r, "std_toml_parse_required", "tuple", handle_r) + ir_emit_call1(parse_result_r, ir_resolve_handle_decode_call_name(node.children[0], "parse_required"), "tuple", handle_r) ir_emit_result_store_error_branch(parse_result_r, temp_name, done_l) handle_r = ir_emit_result_value_field(parse_result_r, lookup_type_id("Int"), "ok") - ir_emit_toml_decode_value(target_info, handle_r, node.children[0], temp_name, done_l, emit_expr, emit_value) + ir_emit_handle_decode_value(target_info, handle_r, node.children[0], temp_name, done_l, emit_expr, emit_value) ir_emit_label(done_l) if text_input: - ir_emit_toml_pool_restore(mark, ir_resolve_toml_call_name(node.children[0], "pool_restore")) + ir_emit_handle_pool_restore(mark, ir_resolve_handle_decode_call_name(node.children[0], "pool_restore")) r := ir_reg() ir_emit("load " + r.to_string() + " " + temp_name) return r -## emit the toml decode path call sequence. -pub fn ir_emit_toml_decode_path_call(idx: Int, node: Node, text_input: Bool, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int) -> Int: +## emit the handle-pool decode path call sequence. +pub fn ir_emit_handle_decode_path_call(idx: Int, node: Node, text_input: Bool, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int) -> Int: arg_regs := ir_decode_collect_arg_regs(node, 1, emit_expr) if arg_regs.len() < 2: return ir_zero_reg() @@ -824,38 +824,38 @@ pub fn ir_emit_toml_decode_path_call(idx: Int, node: Node, text_input: Bool, emi return ir_zero_reg() target_info := get_type_info(target_tid) - temp_name := ir_new_temp_name("toml_decode_path") + temp_name := ir_new_temp_name("handle_decode_path") ir_var_types.insert(temp_name, "tuple") done_l := ir_label() # only the text form owns the parse; the handle form must not roll back. - mut mark := IrTomlPoolMark("", "", "") + mut mark := IrHandlePoolMark("", "", "") if text_input: - mark = ir_emit_toml_pool_mark(ir_resolve_toml_call_name(node.children[0], "pool_mark_node_id"), ir_resolve_toml_call_name(node.children[0], "pool_mark_table_len"), ir_resolve_toml_call_name(node.children[0], "pool_mark_array_len")) + mark = ir_emit_handle_pool_mark(ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_node_id"), ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_table_len"), ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_array_len")) parse_result_r := ir_reg() - ir_emit_call1(parse_result_r, ir_resolve_toml_call_name(node.children[0], "parse_required"), "tuple", handle_r) + ir_emit_call1(parse_result_r, ir_resolve_handle_decode_call_name(node.children[0], "parse_required"), "tuple", handle_r) ir_emit_result_store_error_branch(parse_result_r, temp_name, done_l) handle_r = ir_emit_result_value_field(parse_result_r, lookup_type_id("Int"), "ok") - current_name := ir_new_temp_name("toml_current") - parts_name := ir_new_temp_name("toml_parts") - len_name := ir_new_temp_name("toml_parts_len") - idx_name := ir_new_temp_name("toml_parts_idx") + current_name := ir_new_temp_name("handle_decode_current") + parts_name := ir_new_temp_name("handle_decode_parts") + len_name := ir_new_temp_name("handle_decode_parts_len") + idx_name := ir_new_temp_name("handle_decode_parts_idx") ir_var_types.insert(current_name, "int") ir_var_types.insert(parts_name, "list_string") ir_var_types.insert(len_name, "int") ir_var_types.insert(idx_name, "int") - final_handle_r := ir_emit_dotted_path_lookup(handle_r, dotted_path_r, ir_resolve_toml_call_name(node.children[0], "toml_require_table"), lookup_type_id("Int"), current_name, parts_name, len_name, idx_name, temp_name, done_l) - ir_emit_toml_decode_value(target_info, final_handle_r, node.children[0], temp_name, done_l, emit_expr, emit_value) + final_handle_r := ir_emit_dotted_path_lookup(handle_r, dotted_path_r, ir_resolve_handle_decode_call_name(node.children[0], "require_table"), lookup_type_id("Int"), current_name, parts_name, len_name, idx_name, temp_name, done_l) + ir_emit_handle_decode_value(target_info, final_handle_r, node.children[0], temp_name, done_l, emit_expr, emit_value) ir_emit_label(done_l) if text_input: - ir_emit_toml_pool_restore(mark, ir_resolve_toml_call_name(node.children[0], "pool_restore")) + ir_emit_handle_pool_restore(mark, ir_resolve_handle_decode_call_name(node.children[0], "pool_restore")) r := ir_reg() ir_emit("load " + r.to_string() + " " + temp_name) return r -## emit the toml decode file call sequence. -pub fn ir_emit_toml_decode_file_call(idx: Int, node: Node, path_input: Bool, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int) -> Int: +## emit the handle-pool decode file call sequence. +pub fn ir_emit_handle_decode_file_call(idx: Int, node: Node, path_input: Bool, emit_expr: fn(Int) -> Int, emit_value: fn(Int, String) -> Int) -> Int: arg_regs := ir_decode_collect_arg_regs(node, 1, emit_expr) if arg_regs.len() == 0: return ir_zero_reg() @@ -867,18 +867,18 @@ pub fn ir_emit_toml_decode_file_call(idx: Int, node: Node, path_input: Bool, emi return ir_zero_reg() target_info := get_type_info(target_tid) - temp_name := ir_new_temp_name("toml_decode_file") + temp_name := ir_new_temp_name("handle_decode_file") ir_var_types.insert(temp_name, "tuple") done_l := ir_label() # reads and parses the file itself, so it owns the pool nodes. - mark := ir_emit_toml_pool_mark(ir_resolve_toml_call_name(node.children[0], "pool_mark_node_id"), ir_resolve_toml_call_name(node.children[0], "pool_mark_table_len"), ir_resolve_toml_call_name(node.children[0], "pool_mark_array_len")) + mark := ir_emit_handle_pool_mark(ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_node_id"), ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_table_len"), ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_array_len")) parse_result_r := ir_reg() - ir_emit_call1(parse_result_r, ir_resolve_toml_call_name(node.children[0], "parse_file_required"), "tuple", file_path_r) + ir_emit_call1(parse_result_r, ir_resolve_handle_decode_call_name(node.children[0], "parse_file_required"), "tuple", file_path_r) ir_emit_result_store_error_branch(parse_result_r, temp_name, done_l) handle_r := ir_emit_result_value_field(parse_result_r, lookup_type_id("Int"), "ok") - ir_emit_toml_decode_value(target_info, handle_r, node.children[0], temp_name, done_l, emit_expr, emit_value) + ir_emit_handle_decode_value(target_info, handle_r, node.children[0], temp_name, done_l, emit_expr, emit_value) ir_emit_label(done_l) - ir_emit_toml_pool_restore(mark, ir_resolve_toml_call_name(node.children[0], "pool_restore")) + ir_emit_handle_pool_restore(mark, ir_resolve_handle_decode_call_name(node.children[0], "pool_restore")) r := ir_reg() ir_emit("load " + r.to_string() + " " + temp_name) return r @@ -891,28 +891,28 @@ pub fn ir_emit_toml_decode_file_call(idx: Int, node: Node, path_input: Bool, emi return ir_zero_reg() target_info := get_type_info(target_tid) - temp_name := ir_new_temp_name("toml_decode_file_path") + temp_name := ir_new_temp_name("handle_decode_file_path") ir_var_types.insert(temp_name, "tuple") done_l := ir_label() # owns the file parse, so bracket the pool and reclaim at done_l. - mark := ir_emit_toml_pool_mark(ir_resolve_toml_call_name(node.children[0], "pool_mark_node_id"), ir_resolve_toml_call_name(node.children[0], "pool_mark_table_len"), ir_resolve_toml_call_name(node.children[0], "pool_mark_array_len")) + mark := ir_emit_handle_pool_mark(ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_node_id"), ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_table_len"), ir_resolve_handle_decode_call_name(node.children[0], "pool_mark_array_len")) parse_result_r := ir_reg() - ir_emit_call1(parse_result_r, ir_resolve_toml_call_name(node.children[0], "parse_file_required"), "tuple", file_path_r) + ir_emit_call1(parse_result_r, ir_resolve_handle_decode_call_name(node.children[0], "parse_file_required"), "tuple", file_path_r) ir_emit_result_store_error_branch(parse_result_r, temp_name, done_l) handle_r := ir_emit_result_value_field(parse_result_r, lookup_type_id("Int"), "ok") - current_name := ir_new_temp_name("toml_file_current") - parts_name := ir_new_temp_name("toml_file_parts") - len_name := ir_new_temp_name("toml_file_parts_len") - idx_name := ir_new_temp_name("toml_file_parts_idx") + current_name := ir_new_temp_name("handle_decode_file_current") + parts_name := ir_new_temp_name("handle_decode_file_parts") + len_name := ir_new_temp_name("handle_decode_file_parts_len") + idx_name := ir_new_temp_name("handle_decode_file_parts_idx") ir_var_types.insert(current_name, "int") ir_var_types.insert(parts_name, "list_string") ir_var_types.insert(len_name, "int") ir_var_types.insert(idx_name, "int") - final_handle_r := ir_emit_dotted_path_lookup(handle_r, dotted_path_r, ir_resolve_toml_call_name(node.children[0], "toml_require_table"), lookup_type_id("Int"), current_name, parts_name, len_name, idx_name, temp_name, done_l) - ir_emit_toml_decode_value(target_info, final_handle_r, node.children[0], temp_name, done_l, emit_expr, emit_value) + final_handle_r := ir_emit_dotted_path_lookup(handle_r, dotted_path_r, ir_resolve_handle_decode_call_name(node.children[0], "require_table"), lookup_type_id("Int"), current_name, parts_name, len_name, idx_name, temp_name, done_l) + ir_emit_handle_decode_value(target_info, final_handle_r, node.children[0], temp_name, done_l, emit_expr, emit_value) ir_emit_label(done_l) - ir_emit_toml_pool_restore(mark, ir_resolve_toml_call_name(node.children[0], "pool_restore")) + ir_emit_handle_pool_restore(mark, ir_resolve_handle_decode_call_name(node.children[0], "pool_restore")) r := ir_reg() ir_emit("load " + r.to_string() + " " + temp_name) return r diff --git a/self-host/ir_emitter_core.pith b/self-host/ir_emitter_core.pith index bf7ac501..a8399afb 100644 --- a/self-host/ir_emitter_core.pith +++ b/self-host/ir_emitter_core.pith @@ -15,7 +15,7 @@ # ir_struct_registry struct and enum shapes # ir_method_tables method symbols and return kinds # ir_generics generic declarations and specializations -# ir_decode_emit json / toml / config decode-call emission +# ir_decode_emit json / handle-pool / config decode-call emission # ir_match_emit match lowering # # the satellites never import this module back. where one needs an @@ -48,11 +48,11 @@ from ir_method_tables import ir_func_returns, ir_impl_methods, ir_impl_method_sp from ir_generics import ir_generic_decl_indices, ir_generic_decl_module_paths, ir_generic_specialization_keys, ir_generic_specialization_names, ir_generic_specialization_type_lists, ir_generic_emitted_specializations, ir_record_generic_function_decl, ir_is_generic_function_name, ir_generic_preferred_name, ir_queue_generic_specialization # extracted lowering families (called through here, never back) from ir_match_emit import ir_emit_match_cond, ir_emit_match_bindings, ir_emit_match_expr, ir_emit_if_expr, ir_emit_match_return, ir_function_tail_match, ir_unwrap_tail_match, ir_tail_match_node -from ir_decode_emit import ir_json_decode_spec_from_decl, ir_emit_config_decode_specialization_body, ir_emit_index_config_decode_call, ir_emit_json_decode_call, ir_emit_json_decode_file_call, ir_emit_json_decode_object_call, ir_emit_json_decode_object_specialization_body, ir_emit_json_decode_path_call, ir_emit_json_decode_path_specialization_body, ir_emit_json_decode_specialization_body, ir_emit_toml_decode_call, ir_emit_toml_decode_file_call, ir_emit_toml_decode_path_call, ir_emit_toml_decode_path_specialization_body, ir_emit_toml_decode_specialization_body, ir_emit_toml_decode_text_path_specialization_body, ir_emit_toml_decode_text_specialization_body +from ir_decode_emit import ir_json_decode_spec_from_decl, ir_emit_config_decode_specialization_body, ir_emit_index_config_decode_call, ir_emit_json_decode_call, ir_emit_json_decode_file_call, ir_emit_json_decode_object_call, ir_emit_json_decode_object_specialization_body, ir_emit_json_decode_path_call, ir_emit_json_decode_path_specialization_body, ir_emit_json_decode_specialization_body, ir_emit_handle_decode_call, ir_emit_handle_decode_file_call, ir_emit_handle_decode_path_call, ir_emit_handle_decode_path_specialization_body, ir_emit_handle_decode_specialization_body, ir_emit_handle_decode_text_path_specialization_body, ir_emit_handle_decode_text_specialization_body # emission substrate: buffer, registers, call/label wrappers from ir_call_emit import ir_emit_call_text, ir_emit_call0, ir_emit_call1, ir_emit_call2, ir_emit_call3, ir_emit_label, ir_last_was_ret from ir_ownership import ir_string_retain_reg, ir_string_release_reg, ir_rc_release_enabled, ir_rc_retain_reg, ir_rc_release_reg -from ir_alias_registry import ir_active_generic_params, ir_active_generic_concrete_types, ir_active_generic_module_path, ir_active_generic_decl_idx, ir_active_param_optional_tids, ir_resolve_type_node, ir_resolve_map_value_type_node, ir_global_int_names, ir_global_string_names, ir_global_list_string_names, ir_global_list_names, ir_global_map_names, ir_global_map_int_names, ir_global_map_value_types, ir_global_set_names, ir_global_set_int_names, ir_global_bool_names, ir_record_global_type, ir_type_aliases, ir_import_renames, ir_module_aliases, ir_import_declared_functions, ir_import_declared_globals, ir_resolve_type_hint, ir_capture_blocked_names, ir_retkind, ir_import_declares_function, ir_import_declares_global, ir_collect_preloaded_root_metadata, ir_record_imported_global_kind, ir_resolve_module_alias_method_call_name, ir_is_json_decode_callee, ir_is_config_decode_callee, ir_is_toml_decode_callee, ir_is_config_file_decode_callee, ir_declared_callable_return_type, ir_config_require_full_name_for_type_name, ir_toml_require_full_name_for_type_name, ir_emit_result_ok_field_typed, ir_resolve_config_call_name, ir_resolve_json_call_name, ir_resolve_toml_call_name, ir_struct_field_tid_at, ir_emit_named_field_access, ir_specialize_type_name, ir_resolve_type_node_with_subst, ir_extract_return_type_with_subst, ir_extract_optional_inner_type_with_subst, ir_extract_param_types_with_subst, ir_register_import_alias, ir_collect_from_import_renames +from ir_alias_registry import ir_active_generic_params, ir_active_generic_concrete_types, ir_active_generic_module_path, ir_active_generic_decl_idx, ir_active_param_optional_tids, ir_resolve_type_node, ir_resolve_map_value_type_node, ir_global_int_names, ir_global_string_names, ir_global_list_string_names, ir_global_list_names, ir_global_map_names, ir_global_map_int_names, ir_global_map_value_types, ir_global_set_names, ir_global_set_int_names, ir_global_bool_names, ir_record_global_type, ir_type_aliases, ir_import_renames, ir_module_aliases, ir_import_declared_functions, ir_import_declared_globals, ir_resolve_type_hint, ir_capture_blocked_names, ir_retkind, ir_import_declares_function, ir_import_declares_global, ir_collect_preloaded_root_metadata, ir_record_imported_global_kind, ir_resolve_module_alias_method_call_name, ir_is_json_decode_callee, ir_is_config_decode_callee, ir_is_handle_decode_callee, ir_is_config_file_decode_callee, ir_declared_callable_return_type, ir_config_require_full_name_for_type_name, ir_handle_require_full_name_for_type_name, ir_emit_result_ok_field_typed, ir_resolve_config_call_name, ir_resolve_json_call_name, ir_resolve_handle_decode_call_name, ir_struct_field_tid_at, ir_emit_named_field_access, ir_specialize_type_name, ir_resolve_type_node_with_subst, ir_extract_return_type_with_subst, ir_extract_optional_inner_type_with_subst, ir_extract_param_types_with_subst, ir_register_import_alias, ir_collect_from_import_renames from ir_struct_registry import ir_boxed_enums, ir_enum_payload_kinds, ir_enum_variant_lists, ir_struct_names, ir_struct_field_lookup, ir_struct_field_index_lookup, ir_struct_decl_nodes, ir_struct_field_default_nodes, ir_struct_base_name, ir_rc_kind, ir_known_struct_return_type, ir_binary_enum_eq_name, ir_struct_has_default_fields, ir_struct_field_count, ir_struct_field_name_at, ir_struct_field_type_name, ir_struct_field_default_node from ir_builder import IrBuilderSnapshot, ir_builder_reset, ir_builder_reset_function, ir_builder_reset_registers, ir_builder_set_string_module_count, ir_builder_snapshot, ir_builder_restore, ir_builder_lines, ir_builder_append_lines, ir_new_temp_name, ir_emit, ir_str, ir_emit_string_table, ir_reg, ir_label, ir_var_types, ir_var_regs, ir_current_func_return_kind, ir_untracked_rc_binds # shared helpers: ast shapes, captures, results, optionals, literals @@ -64,10 +64,10 @@ from ir_literals import ir_emit_int_literal, ir_emit_string_literal, ir_emit_flo from ir_utils import ir_push_string, ir_push_int, ir_parse_field_index, ir_copy_var_regs, ir_copy_var_types, ir_unpack_field_index from ir_tree_cache import ir_cached_string_nodes, ir_root_items from ir_type_helpers import ir_resolve_type_hint_with_state, ir_retkind_with_state, ir_resolve_generic_type_node, ir_resolve_result_type_kind, ir_type_from_tid, ir_checked_type, ir_checked_result_kind, ir_checked_index_type, ir_lookup_name_type_with_state, ir_known_scalar_return_type, ir_known_collection_return_type, ir_known_string_method_return_type, ir_known_collection_method_return_type, ir_literal_expr_type, ir_unary_expr_type, ir_list_element_kind, ir_function_return_kind -from ir_decode_calls import ir_is_json_decode_callee_with_aliases, ir_is_config_decode_callee_with_aliases, ir_is_toml_decode_callee_with_aliases, ir_is_config_file_decode_callee_with_aliases, ir_config_require_full_name_for_type_name_with_state, ir_toml_require_full_name_for_type_name_with_state, ir_is_config_decode_specialization, ir_is_toml_decode_specialization, ir_is_toml_decode_path_specialization, ir_is_toml_decode_text_path_specialization, ir_is_toml_decode_text_specialization, ir_is_json_decode_object_specialization, ir_is_json_decode_specialization, ir_is_json_decode_path_specialization, ir_resolve_decode_call_name_with_state, ir_json_field_helper_name, ir_json_object_helper_name, ir_json_require_helper_name, ir_json_scalar_has_helper_name, ir_config_require_helper_name, ir_toml_require_helper_name, ir_struct_decode_field_tid, ir_json_field_type_tag, ir_optional_inner_tid, ir_struct_has_optional_fields, ir_struct_has_default_fields_with_state, ir_struct_has_nested_decode_fields +from ir_decode_calls import ir_is_json_decode_callee_with_aliases, ir_is_config_decode_callee_with_aliases, ir_is_handle_decode_callee_with_aliases, ir_is_config_file_decode_callee_with_aliases, ir_config_require_full_name_for_type_name_with_state, ir_handle_require_full_name_for_type_name_with_state, ir_is_config_decode_specialization, ir_is_handle_decode_specialization, ir_is_handle_decode_path_specialization, ir_is_handle_decode_text_path_specialization, ir_is_handle_decode_text_specialization, ir_is_json_decode_object_specialization, ir_is_json_decode_specialization, ir_is_json_decode_path_specialization, ir_resolve_decode_call_name_with_state, ir_json_field_helper_name, ir_json_object_helper_name, ir_json_require_helper_name, ir_json_scalar_has_helper_name, ir_config_require_helper_name, ir_handle_require_helper_name, ir_struct_decode_field_tid, ir_json_field_type_tag, ir_optional_inner_tid, ir_struct_has_optional_fields, ir_struct_has_default_fields_with_state, ir_struct_has_nested_decode_fields from ir_callees import ResolvedCallee, ir_import_declares_function_with_state, ir_import_declares_global_with_state, ir_module_alias_member_name_with_state, ir_plain_method_name, ir_ident_callee_with_state, ir_resolve_module_alias_call_name_with_state, ir_resolve_module_alias_method_call_name_with_state, ir_resolve_static_callee_with_state from ir_call_helpers import ir_is_declared_callable_with_state, ir_declared_callable_ir_retkind_with_state, ir_declared_callable_return_type_with_state, ir_emit_call_text_with_state, ir_join_arg_regs, ir_method_call_arg_regs, ir_call_arg_expr_index -from ir_generics import ir_is_fn_decl_kind, ir_has_generic_params, ir_collect_generic_param_names, ir_param_name_at, ir_generic_preferred_name_with_state, ir_json_generic_name_with_state, ir_config_generic_name_with_state, ir_toml_generic_name_with_state, ir_resolve_generic_module_call_name, ir_encode_type_list, ir_decode_type_list, ir_generic_specialization_key, ir_generic_specialization_name, ir_specialize_type_name_with_state, ir_resolve_type_node_with_subst_with_state, ir_extract_return_type_with_subst_with_state, ir_extract_optional_inner_type_with_subst_with_state, ir_extract_param_types_with_subst_with_state, ir_record_generic_spec_arg_tids, ir_decode_generic_spec_arg_tids +from ir_generics import ir_is_fn_decl_kind, ir_has_generic_params, ir_collect_generic_param_names, ir_param_name_at, ir_generic_preferred_name_with_state, ir_json_generic_name_with_state, ir_config_generic_name_with_state, ir_handle_generic_name_with_state, ir_resolve_generic_module_call_name, ir_encode_type_list, ir_decode_type_list, ir_generic_specialization_key, ir_generic_specialization_name, ir_specialize_type_name_with_state, ir_resolve_type_node_with_subst_with_state, ir_extract_return_type_with_subst_with_state, ir_extract_optional_inner_type_with_subst_with_state, ir_extract_param_types_with_subst_with_state, ir_record_generic_spec_arg_tids, ir_decode_generic_spec_arg_tids from ir_struct_layouts import ir_struct_layout_name_with_state, ir_struct_field_count_with_state, ir_struct_field_name_at_with_state, ir_struct_field_type_name_with_state, ir_struct_field_kind_from_decl_with_state, ir_field_kind_tid_with_state, ir_struct_field_tid_at_with_state, ir_struct_field_default_node_with_state from ir_control_helpers import IrIfBranch, IrForBindingNames, ir_stmt_is_expr, ir_collect_if_branch, ir_for_binding_names, ir_collect_bind_parts from ir_collection_helpers import ir_map_uses_int_keys, ir_set_new_name, ir_set_add_name, ir_lookup_map_value_type_for_expr_with_state, ir_index_get_call_name, ir_index_set_call_name, ir_for_loop_item_call_name, ir_for_loop_item_return_kind, ir_for_iter_item_kind, ir_for_iter_conversion_call, ir_for_iter_conversion_return_kind, ir_for_len_call_name, ir_empty_collection_init_call_name, ir_normalize_collection_target @@ -2884,14 +2884,14 @@ fn ir_emit_test_assert_eq(node: Node, arg_regs: List[Int]) -> Int: ir_emit("iconst " + r.to_string() + " 0") return r -fn ir_emit_local_toml_decode_text_path_call(idx: Int, node: Node, callee_node: Node) -> Int: +fn ir_emit_local_handle_decode_text_path_call(idx: Int, node: Node, callee_node: Node) -> Int: arg_regs := ir_collect_call_arg_regs(node, 1) if arg_regs.len() < 2: return ir_zero_reg() input_r := arg_regs[0] dotted_path_r := arg_regs[1] - temp_name := ir_new_temp_name("toml_decode_text_path") + temp_name := ir_new_temp_name("handle_decode_text_path") ir_var_types.insert(temp_name, "tuple") done_l := ir_label() parse_result_r := ir_reg() @@ -3102,21 +3102,21 @@ fn ir_emit_index_json_decode_call(idx: Int, node: Node, callee_idx: Int) -> Int: return ir_emit_json_decode_file_call(idx, node, true, ir_expr, ir_emit_value_for_target) return 0 - 1 -fn ir_emit_index_toml_decode_call(idx: Int, node: Node, callee_idx: Int, callee_node: Node) -> Int: - if ir_is_toml_decode_callee(callee_idx, "decode") or ir_is_local_generic_callee(callee_idx, "decode", "handle"): - return ir_emit_toml_decode_call(idx, node, false, ir_expr, ir_emit_value_for_target) - if ir_is_toml_decode_callee(callee_idx, "decode_text") or ir_is_local_generic_callee(callee_idx, "decode_text", "input"): - return ir_emit_toml_decode_call(idx, node, true, ir_expr, ir_emit_value_for_target) - if ir_is_toml_decode_callee(callee_idx, "decode_path"): - return ir_emit_toml_decode_path_call(idx, node, false, ir_expr, ir_emit_value_for_target) - if ir_is_toml_decode_callee(callee_idx, "decode_text_path"): - return ir_emit_toml_decode_path_call(idx, node, true, ir_expr, ir_emit_value_for_target) +fn ir_emit_index_handle_decode_call(idx: Int, node: Node, callee_idx: Int, callee_node: Node) -> Int: + if ir_is_handle_decode_callee(callee_idx, "decode") or ir_is_local_generic_callee(callee_idx, "decode", "handle"): + return ir_emit_handle_decode_call(idx, node, false, ir_expr, ir_emit_value_for_target) + if ir_is_handle_decode_callee(callee_idx, "decode_text") or ir_is_local_generic_callee(callee_idx, "decode_text", "input"): + return ir_emit_handle_decode_call(idx, node, true, ir_expr, ir_emit_value_for_target) + if ir_is_handle_decode_callee(callee_idx, "decode_path"): + return ir_emit_handle_decode_path_call(idx, node, false, ir_expr, ir_emit_value_for_target) + if ir_is_handle_decode_callee(callee_idx, "decode_text_path"): + return ir_emit_handle_decode_path_call(idx, node, true, ir_expr, ir_emit_value_for_target) if ir_is_local_generic_callee(callee_idx, "decode_text_path", "input"): - return ir_emit_local_toml_decode_text_path_call(idx, node, callee_node) - if ir_is_toml_decode_callee(callee_idx, "decode_file") or ir_is_local_generic_callee(callee_idx, "decode_file", "file_path"): - return ir_emit_toml_decode_file_call(idx, node, false, ir_expr, ir_emit_value_for_target) - if ir_is_toml_decode_callee(callee_idx, "decode_file_path") or ir_is_local_generic_callee(callee_idx, "decode_file_path", "file_path"): - return ir_emit_toml_decode_file_call(idx, node, true, ir_expr, ir_emit_value_for_target) + return ir_emit_local_handle_decode_text_path_call(idx, node, callee_node) + if ir_is_handle_decode_callee(callee_idx, "decode_file") or ir_is_local_generic_callee(callee_idx, "decode_file", "file_path"): + return ir_emit_handle_decode_file_call(idx, node, false, ir_expr, ir_emit_value_for_target) + if ir_is_handle_decode_callee(callee_idx, "decode_file_path") or ir_is_local_generic_callee(callee_idx, "decode_file_path", "file_path"): + return ir_emit_handle_decode_file_call(idx, node, true, ir_expr, ir_emit_value_for_target) return 0 - 1 fn ir_emit_index_decode_call(idx: Int, node: Node, callee_idx: Int, callee_node: Node) -> Int: @@ -3126,7 +3126,7 @@ fn ir_emit_index_decode_call(idx: Int, node: Node, callee_idx: Int, callee_node: config_r := ir_emit_index_config_decode_call(idx, node, callee_idx, ir_expr, ir_emit_value_for_target) if config_r >= 0: return config_r - return ir_emit_index_toml_decode_call(idx, node, callee_idx, callee_node) + return ir_emit_index_handle_decode_call(idx, node, callee_idx, callee_node) fn ir_static_struct_init_call(idx: Int, node: Node, callee_name: String) -> Int: expr_tid := c_get_expr_type(idx) @@ -6832,14 +6832,14 @@ fn ir_emit_generic_specialization(key: String): ir_emit_config_decode_specialization_body(concrete_types[0], false, ir_expr, ir_emit_value_for_target, ir_emit_default_return) elif concrete_types.len() == 1 and ir_is_config_decode_specialization(base_name, true, ir_active_generic_module_path, decl_idx): ir_emit_config_decode_specialization_body(concrete_types[0], true, ir_expr, ir_emit_value_for_target, ir_emit_default_return) - elif concrete_types.len() == 1 and ir_is_toml_decode_specialization(base_name, ir_active_generic_module_path, decl_idx): - ir_emit_toml_decode_specialization_body(concrete_types[0], ir_active_generic_module_path, ir_expr, ir_emit_value_for_target, ir_emit_default_return) - elif concrete_types.len() == 1 and ir_is_toml_decode_text_specialization(base_name, ir_active_generic_module_path, decl_idx): - ir_emit_toml_decode_text_specialization_body(concrete_types[0], ir_active_generic_module_path, concrete_types, ret_type) - elif concrete_types.len() == 1 and ir_is_toml_decode_path_specialization(base_name, ir_active_generic_module_path, decl_idx): - ir_emit_toml_decode_path_specialization_body(concrete_types[0], ir_active_generic_module_path, ir_expr, ir_emit_value_for_target, ir_emit_default_return) - elif concrete_types.len() == 1 and ir_is_toml_decode_text_path_specialization(base_name, ir_active_generic_module_path, decl_idx): - ir_emit_toml_decode_text_path_specialization_body(concrete_types[0], ir_active_generic_module_path, concrete_types, ret_type) + elif concrete_types.len() == 1 and ir_is_handle_decode_specialization(base_name, ir_active_generic_module_path, decl_idx): + ir_emit_handle_decode_specialization_body(concrete_types[0], ir_active_generic_module_path, ir_expr, ir_emit_value_for_target, ir_emit_default_return) + elif concrete_types.len() == 1 and ir_is_handle_decode_text_specialization(base_name, ir_active_generic_module_path, decl_idx): + ir_emit_handle_decode_text_specialization_body(concrete_types[0], ir_active_generic_module_path, concrete_types, ret_type) + elif concrete_types.len() == 1 and ir_is_handle_decode_path_specialization(base_name, ir_active_generic_module_path, decl_idx): + ir_emit_handle_decode_path_specialization_body(concrete_types[0], ir_active_generic_module_path, ir_expr, ir_emit_value_for_target, ir_emit_default_return) + elif concrete_types.len() == 1 and ir_is_handle_decode_text_path_specialization(base_name, ir_active_generic_module_path, decl_idx): + ir_emit_handle_decode_text_path_specialization_body(concrete_types[0], ir_active_generic_module_path, concrete_types, ret_type) elif concrete_types.len() == 1 and ir_is_json_decode_specialization(base_name, ir_active_generic_module_path, decl_idx, false): ir_emit_json_decode_specialization_body(concrete_types[0], ir_active_generic_module_path, false, ir_emit_value_for_target, ir_emit_default_return) elif concrete_types.len() == 1 and ir_is_json_decode_specialization(base_name, ir_active_generic_module_path, decl_idx, true): diff --git a/self-host/ir_generics.pith b/self-host/ir_generics.pith index 517b4437..57636236 100644 --- a/self-host/ir_generics.pith +++ b/self-host/ir_generics.pith @@ -60,8 +60,8 @@ pub fn ir_resolve_generic_module_call_name(module_path: String, member_name: Str return ir_import_target_name(module_path, member_name) return member_name -## the generic toml decode helper name for a type, or "". -pub fn ir_toml_generic_name_with_state(base_name: String, module_path: String, generic_decl_indices: Map[String, Int]) -> String: +## the generic handle-pool decode helper name for a type, or "". +pub fn ir_handle_generic_name_with_state(base_name: String, module_path: String, generic_decl_indices: Map[String, Int]) -> String: preferred := ir_resolve_generic_module_call_name(module_path, base_name) return ir_generic_preferred_name_with_state(preferred, base_name, generic_decl_indices) diff --git a/std/toml.pith b/std/toml.pith index fe699fbf..b6fcfdb6 100644 --- a/std/toml.pith +++ b/std/toml.pith @@ -757,7 +757,9 @@ pub fn decode[T](handle: Int) -> T!TomlDecodeError: pub fn decode_text[T](input: String) -> T!TomlDecodeError: fail toml_decode_fail("toml.decode_text requires compiler support") -fn toml_require_table(handle: Int, key: String) -> Int!TomlDecodeError: +## the sub-table a key names, or a typed error when the key is missing or does +## not hold a table. this is the step a dotted decode path walks with. +pub fn require_table(handle: Int, key: String) -> Int!TomlDecodeError: child := table_lookup(handle, key) if child < 0: fail toml_decode_fail("missing table field: " + key) @@ -771,7 +773,7 @@ pub fn decode_path[T](handle: Int, dotted_path: String) -> T!TomlDecodeError: for part in dotted_path.split("."): if part == "": continue - current = toml_require_table(current, part)! + current = require_table(current, part)! return decode[T](current)! ## parse toml text and decode a nested table selected by a dotted path. diff --git a/std/yaml.pith b/std/yaml.pith new file mode 100644 index 00000000..c5759919 --- /dev/null +++ b/std/yaml.pith @@ -0,0 +1,1528 @@ +# std.yaml — YAML parser for the configuration subset +# +# parse YAML into a tree of nodes addressed by opaque Int handles, the same +# shape std.json and std.toml use. +# +# import std.yaml as yaml +# root := yaml.parse(data) +# name := yaml.get_string(root, "name") +# db := yaml.get_map(root, "database") +# host := yaml.get_string(db, "host") +# +# YAML 1.2 in full is a much larger language than a configuration file needs, +# so this parser implements the part configuration actually uses and refuses +# the rest with a message instead of guessing. docs/yaml.md writes out both +# lists; the short version is that block mappings, block sequences, flow +# collections, the three scalar styles, block scalars and multiple documents +# are in, and anchors, aliases, tags, merge keys, complex keys and directives +# are out. + +import std.io as io + +YAML_FILE_CHUNK_SIZE := 4096 + +# =============================================================== +# Limits +# =============================================================== +# +# every one of these bounds something an attacker controls. they are module +# constants rather than a table built on first use: a lazily initialized table +# is a data race under the green runtime, and a constant costs nothing. + +## largest document this parser will look at, in bytes. matches the 4 MiB +## receive cap std.net.grpc uses, so a service that accepts both agrees with +## itself about what "too big" means. +pub MAX_DOCUMENT_BYTES := 4194304 + +## deepest nesting of mappings, sequences and flow collections. indentation +## drives recursion here, so a crafted file of nothing but indentation would +## otherwise overflow the native stack — and a stack overflow is a SIGSEGV that +## no error handler can catch. 64 levels is far past anything a human writes. +pub MAX_NESTING_DEPTH := 64 + +## most nodes one parse may allocate. a document under the size cap can still +## ask for a very large number of tiny nodes; this bounds the node pool. +pub MAX_NODES := 262144 + +## most entries in a single mapping or sequence. +pub MAX_COLLECTION_ENTRIES := 65536 + +## longest single scalar, including a block scalar's folded body. +pub MAX_SCALAR_BYTES := 1048576 + +## longest mapping key. keys are short by nature, and a small cap keeps a +## document that is one enormous key from becoming one enormous allocation. +pub MAX_KEY_BYTES := 4096 + +## YAML decode failure with a human-readable message. +pub struct YamlDecodeError: + pub message: String + +## An open node-pool scope. Treat it as opaque and hand it straight back to +## close_scope(); the fields are the pool positions the scope rolls back to. +pub struct YamlScope: + pub depth: Int + pub node_mark: Int + pub map_mark: Int + pub seq_mark: Int + +fn yaml_decode_fail(message: String) -> YamlDecodeError: + return YamlDecodeError(message) + +# =============================================================== +# Node Pool +# =============================================================== + +# Node ids come from a counter that only ever goes up, even across a reclaim. +# Reusing ids would make a handle held past its scope silently read whatever +# document landed on that id next; leaving the counter alone costs nothing and +# turns that mistake into a plain "invalid handle". +threadlocal mut next_node_id: Int := 0 +threadlocal mut node_types: Map[Int, String] := {} +threadlocal mut string_values: Map[Int, String] := {} +threadlocal mut integer_values: Map[Int, Int] := {} +threadlocal mut float_values: Map[Int, Float] := {} +threadlocal mut boolean_values: Map[Int, Bool] := {} + +# Mapping children: flat append-only storage with offset/count. +threadlocal mut map_keys_flat: List[String] := [] +threadlocal mut map_values_flat: List[Int] := [] +threadlocal mut map_key_offsets: Map[Int, Int] := {} +threadlocal mut map_key_counts: Map[Int, Int] := {} + +# Sequence children: flat append-only storage with offset/count. +threadlocal mut seq_items_flat: List[Int] := [] +threadlocal mut seq_item_offsets: Map[Int, Int] := {} +threadlocal mut seq_item_counts: Map[Int, Int] := {} + +# How many scopes open_scope() has handed out and not yet reclaimed. +threadlocal mut open_scope_depth: Int := 0 + +# How many nodes the parse currently running has allocated, against MAX_NODES. +threadlocal mut nodes_this_parse: Int := 0 + +fn allocate_node(kind: String) -> Int: + idx := next_node_id + next_node_id = next_node_id + 1 + nodes_this_parse = nodes_this_parse + 1 + node_types.insert(idx, kind) + string_values.insert(idx, "") + integer_values.insert(idx, 0) + float_values.insert(idx, 0.0) + boolean_values.insert(idx, false) + map_key_offsets.insert(idx, 0) + map_key_counts.insert(idx, 0) + seq_item_offsets.insert(idx, 0) + seq_item_counts.insert(idx, 0) + return idx + +# =============================================================== +# Node-pool reclamation +# =============================================================== +# +# the typed decoders (decode_text[T], decode_text_path[T]) own the parse that +# fills the node pool, then copy scalars and strings out into a concrete +# struct. once that struct is materialized the nodes are dead, so the compiler +# brackets the lowered decode body with a mark taken here and a pool_restore() +# on every exit. the marks are plain ints, so the bracket allocates nothing. + +# reclaims every node allocated since the given marks. mapping and sequence +# children live in append-only flat lists, so truncating them to the marked +# lengths drops exactly the entries added since. safe once the struct is built: +# its string fields are independent heap copies, not references into the pool. +fn yaml_restore_to(node_id_mark: Int, map_flat_mark: Int, seq_flat_mark: Int): + mut node_id := next_node_id - 1 + while node_id >= node_id_mark: + if node_types.contains_key(node_id): + node_types.remove(node_id) + string_values.remove(node_id) + integer_values.remove(node_id) + float_values.remove(node_id) + boolean_values.remove(node_id) + map_key_offsets.remove(node_id) + map_key_counts.remove(node_id) + seq_item_offsets.remove(node_id) + seq_item_counts.remove(node_id) + node_id = node_id - 1 + # map_keys_flat and map_values_flat grow in lockstep, so one mark covers both. + while map_keys_flat.len() > map_flat_mark: + map_keys_flat.remove(map_keys_flat.len() - 1) + while map_values_flat.len() > map_flat_mark: + map_values_flat.remove(map_values_flat.len() - 1) + while seq_items_flat.len() > seq_flat_mark: + seq_items_flat.remove(seq_items_flat.len() - 1) + +## node-pool position a compiler-lowered typed decode rolls back to. +pub fn pool_mark_node_id() -> Int: + return next_node_id + +## mapping-children position a compiler-lowered typed decode rolls back to. +pub fn pool_mark_table_len() -> Int: + return map_keys_flat.len() + +## sequence-children position a compiler-lowered typed decode rolls back to. +pub fn pool_mark_array_len() -> Int: + return seq_items_flat.len() + +## reclaims the pool nodes a compiler-lowered typed decode allocated. +pub fn pool_restore(node_id_mark: Int, map_flat_mark: Int, seq_flat_mark: Int): + yaml_restore_to(node_id_mark, map_flat_mark, seq_flat_mark) + +## opens a node-pool scope. every node parsed between here and the matching +## close_scope() is reclaimed when the scope closes. pair it with defer: +## +## scope := yaml.open_scope() +## defer yaml.close_scope(scope) +## root := yaml.parse(text) +## +## most programs read their configuration once at startup and never need this. +## it exists for the ones that reload on a signal or a timer, and for request +## handlers that parse a document per request — without a scope the pool grows +## for the life of the task. copy what you need out of the tree before the +## scope closes. +pub fn open_scope() -> YamlScope: + open_scope_depth = open_scope_depth + 1 + return YamlScope(open_scope_depth, next_node_id, map_keys_flat.len(), seq_items_flat.len()) + +## closes a scope opened by open_scope() and reclaims the nodes parsed inside. +## +## scopes nest and close innermost-first. closing an outer scope while an inner +## one is still open also closes the inner one — an arena can only give back a +## suffix of what it handed out. closing a scope twice does nothing. no handle +## from a closed scope can come back to life: node ids are never reused, so +## reading one reports "invalid" rather than some later document's value. +pub fn close_scope(scope: YamlScope): + if scope.depth > open_scope_depth: + return + yaml_restore_to(scope.node_mark, scope.map_mark, scope.seq_mark) + open_scope_depth = scope.depth - 1 + +## how many nodes the pool currently holds. useful for asserting in a test that +## a parse loop gives its nodes back. +pub fn pool_live_nodes() -> Int: + return node_types.len() + +# Returns a node's kind, or "" when the handle names no live node. A kind is +# never empty, so one lookup answers both "does it exist" and "what is it". +# node ids are never reused, so a handle left over from a reclaimed scope reads +# as "no live node" rather than aliasing a later document's node. +fn node_kind(handle: Int) -> String: + return node_types.get_default(handle, "") + +# =============================================================== +# Parser state +# =============================================================== + +threadlocal mut parser_error: Bool := false +threadlocal mut parser_message: String := "" +threadlocal mut parser_depth: Int := 0 + +# the scanned line table. three parallel lists rather than a list of structs +# because the block-scalar reader needs the raw line while the structure walk +# needs the comment-stripped one, and the sequence reader rewrites a line in +# place (see parse_seq). +threadlocal mut line_indent: List[Int] := [] +threadlocal mut line_text: List[String] := [] +threadlocal mut line_raw: List[String] := [] +threadlocal mut line_pos: Int := 0 + +# flow-collection scanner state, used only while a `{...}` or `[...]` is being +# read out of a single line. +threadlocal mut flow_input: String := "" +threadlocal mut flow_pos: Int := 0 + +fn yaml_fail(message: String): + if not parser_error: + parser_error = true + parser_message = message + +fn yaml_fail_at(message: String, line_index: Int): + yaml_fail(message + " (line " + (line_index + 1).to_string() + ")") + +## the message from the most recent failed parse, or "" after a parse that +## succeeded. parse() reports failure as -1; this says what went wrong. +pub fn last_error() -> String: + return parser_message + +# =============================================================== +# Scanner +# =============================================================== + +# a brace cannot be written as a string literal in pith — `{` opens a string +# interpolation — so the two flow-mapping delimiters are compared by code point. +fn is_open_brace(c: String) -> Bool: + return ord(c) == 123 + +fn is_close_brace(c: String) -> Bool: + return ord(c) == 125 + +# true when the text opens a flow collection, either kind. +fn starts_flow(text: String) -> Bool: + if text.len() == 0: + return false + return is_open_brace(text[0]) or text[0] == "[" + +# index just past a quoted run starting at `start`, or the end of the text when +# the quote is never closed. +fn skip_quoted(text: String, start: Int) -> Int: + quote := text[start] + mut i := start + 1 + while i < text.len(): + c := text[i] + if quote == chr(34) and c == chr(92): + i = i + 2 + continue + if c == quote: + # inside single quotes a doubled quote is an escaped quote + if quote == "'" and i + 1 < text.len() and text[i + 1] == "'": + i = i + 2 + continue + return i + 1 + i = i + 1 + return text.len() + +# true when a quote opens in this text and never closes. +fn has_unterminated_quote(text: String) -> Bool: + mut i := 0 + while i < text.len(): + c := text[i] + if c == chr(34) or c == "'": + after := skip_quoted(text, i) + if after >= text.len() and (after == i + 1 or text[text.len() - 1] != c): + return true + i = after + continue + i = i + 1 + return false + +# drops a trailing comment. a "#" only starts one at the beginning of the line +# or after a space, and never inside a quoted scalar — `url: "a#b"` and +# `tag: a#b` both keep their hash. +fn strip_comment(text: String) -> String: + mut i := 0 + while i < text.len(): + c := text[i] + if c == chr(34) or c == "'": + i = skip_quoted(text, i) + continue + if c == "#": + if i == 0 or text[i - 1] == " " or text[i - 1] == chr(9): + return text.substring(0, i) + i = i + 1 + return text + +# splits the input into the line table. returns false when the input is not +# scannable at all, which today means a tab used for indentation. +fn scan_lines(input: String) -> Bool: + # cleared in place rather than reassigned: the line table is rebuilt on + # every parse, and reusing the three lists keeps a parse-per-request loop + # from handing the allocator three fresh lists each time round. + line_indent.clear() + line_text.clear() + line_raw.clear() + line_pos = 0 + mut start := 0 + mut i := 0 + while i <= input.len(): + at_end := i == input.len() + if at_end or input[i] == chr(10): + mut raw := input.substring(start, i) + if raw.len() > 0 and raw[raw.len() - 1] == chr(13): + raw = raw.substring(0, raw.len() - 1) + if not add_line(raw): + return false + start = i + 1 + i = i + 1 + return true + +fn add_line(raw: String) -> Bool: + mut indent := 0 + while indent < raw.len() and raw[indent] == " ": + indent = indent + 1 + # YAML forbids tabs in indentation. accepting them would make the file mean + # one thing here and another in every other parser, so refuse instead. + if indent < raw.len() and raw[indent] == chr(9): + yaml_fail_at("tab used for indentation", line_indent.len()) + return false + line_indent.push(indent) + line_text.push(strip_comment(raw.substring(indent, raw.len())).trim()) + line_raw.push(raw) + return true + +fn line_count() -> Int: + return line_text.len() + +fn at_end() -> Bool: + return line_pos >= line_count() + +# true when the current line starts or ends a document rather than carrying +# content of its own. +fn at_document_boundary() -> Bool: + if at_end(): + return false + text := line_text[line_pos] + if text == "---" or text == "..." or text.starts_with("--- "): + return true + return false + +fn skip_blank_lines(): + while line_pos < line_count() and line_text[line_pos] == "": + line_pos = line_pos + 1 + +# =============================================================== +# Scalars +# =============================================================== + +fn null_node() -> Int: + return allocate_node("null") + +fn string_node(value: String) -> Int: + if value.len() > MAX_SCALAR_BYTES: + yaml_fail("scalar of " + value.len().to_string() + " bytes exceeds the " + MAX_SCALAR_BYTES.to_string() + "-byte limit") + return 0 - 1 + idx := allocate_node("string") + string_values.insert(idx, value) + return idx + +fn bool_node(value: Bool) -> Int: + idx := allocate_node("bool") + boolean_values.insert(idx, value) + return idx + +fn int_node(value: Int) -> Int: + idx := allocate_node("int") + integer_values.insert(idx, value) + return idx + +fn float_node(value: Float) -> Int: + idx := allocate_node("float") + float_values.insert(idx, value) + return idx + +fn hex_digit_value(c: String) -> Int: + if c >= "0" and c <= "9": + return ord(c) - 48 + if c >= "a" and c <= "f": + return ord(c) - 87 + if c >= "A" and c <= "F": + return ord(c) - 55 + return 0 - 1 + +# a unicode scalar as utf-8. chr() writes one byte, so anything past ascii is +# assembled here rather than handed to chr() directly. +fn utf8_encode(code: Int) -> String: + if code < 0x80: + return chr(code) + if code < 0x800: + return chr(0xC0 + code / 64) + chr(0x80 + code % 64) + return chr(0xE0 + code / 4096) + chr(0x80 + (code / 64) % 64) + chr(0x80 + code % 64) + +# decodes the body of a double-quoted scalar (the text between the quotes). +fn decode_double_quoted(body: String) -> String: + mut out := "" + mut i := 0 + while i < body.len(): + c := body[i] + if c != chr(92): + out = out + c + i = i + 1 + continue + if i + 1 >= body.len(): + yaml_fail("double-quoted scalar ends with a dangling backslash") + return "" + e := body[i + 1] + if e == "n": + out = out + chr(10) + elif e == "t": + out = out + chr(9) + elif e == "r": + out = out + chr(13) + elif e == "0": + out = out + chr(0) + elif e == "a": + out = out + chr(7) + elif e == "b": + out = out + chr(8) + elif e == "f": + out = out + chr(12) + elif e == "v": + out = out + chr(11) + elif e == "e": + out = out + chr(27) + elif e == chr(34) or e == chr(92) or e == "/" or e == " ": + out = out + e + elif e == "u": + if i + 5 >= body.len(): + yaml_fail("truncated \\u escape in a double-quoted scalar") + return "" + mut code := 0 + mut d := 0 + while d < 4: + digit := hex_digit_value(body[i + 2 + d]) + if digit < 0: + yaml_fail("invalid \\u escape in a double-quoted scalar") + return "" + code = code * 16 + digit + d = d + 1 + out = out + utf8_encode(code) + i = i + 6 + continue + else: + yaml_fail("unknown escape \\" + e + " in a double-quoted scalar") + return "" + i = i + 2 + return out + +# decodes the body of a single-quoted scalar. the only escape is a doubled +# quote, and backslashes are literal. +fn decode_single_quoted(body: String) -> String: + mut out := "" + mut i := 0 + while i < body.len(): + c := body[i] + if c == "'" and i + 1 < body.len() and body[i + 1] == "'": + out = out + "'" + i = i + 2 + continue + out = out + c + i = i + 1 + return out + +# the text of a quoted scalar, with its quotes removed and escapes applied. +fn decode_quoted(text: String) -> String: + quote := text[0] + if text.len() < 2 or text[text.len() - 1] != quote or skip_quoted(text, 0) != text.len(): + if quote == chr(34): + yaml_fail("unterminated double-quoted scalar: " + text) + else: + yaml_fail("unterminated single-quoted scalar: " + text) + return "" + body := text.substring(1, text.len() - 1) + if quote == chr(34): + return decode_double_quoted(body) + return decode_single_quoted(body) + +fn is_digit_char(c: String) -> Bool: + return c >= "0" and c <= "9" + +# true when every character from `start` is a digit in the given base and there +# is at least one of them. +fn all_digits_in_base(text: String, start: Int, base: Int) -> Bool: + if start >= text.len(): + return false + mut i := start + while i < text.len(): + v := hex_digit_value(text[i]) + if v < 0 or v >= base: + return false + i = i + 1 + return true + +fn parse_digits_in_base(text: String, start: Int, base: Int) -> Int: + mut value := 0 + mut i := start + while i < text.len(): + digit := hex_digit_value(text[i]) + if value > 922337203685477580 / base: + yaml_fail("integer literal out of range: " + text) + return 0 + value = value * base + digit + i = i + 1 + return value + +# the sign of a numeric literal and where its digits start. +struct YamlSign: + negative: Bool + start: Int + +fn split_sign(text: String) -> YamlSign: + if text.len() > 0 and text[0] == "-": + return YamlSign(true, 1) + if text.len() > 0 and text[0] == "+": + return YamlSign(false, 1) + return YamlSign(false, 0) + +# an integer node when the text is an integer literal, otherwise -1 without +# touching the parser error state. +fn try_integer_node(text: String) -> Int: + sign := split_sign(text) + mut start := sign.start + mut base := 10 + if text.len() >= start + 2 and text[start] == "0" and (text[start + 1] == "x" or text[start + 1] == "X"): + base = 16 + start = start + 2 + elif text.len() >= start + 2 and text[start] == "0" and (text[start + 1] == "o" or text[start + 1] == "O"): + base = 8 + start = start + 2 + if not all_digits_in_base(text, start, base): + return 0 - 1 + value := parse_digits_in_base(text, start, base) + if parser_error: + return 0 - 1 + if sign.negative: + return int_node(0 - value) + return int_node(value) + +# true when the text looks like a decimal float: digits, at most one dot, an +# optional exponent, and at least one digit. +fn looks_like_float(text: String) -> Bool: + sign := split_sign(text) + mut i := sign.start + mut digits := 0 + mut dots := 0 + mut exponents := 0 + mut saw_marker := false + while i < text.len(): + c := text[i] + if is_digit_char(c): + digits = digits + 1 + elif c == ".": + dots = dots + 1 + saw_marker = true + elif c == "e" or c == "E": + exponents = exponents + 1 + saw_marker = true + # an exponent may carry its own sign + if i + 1 < text.len() and (text[i + 1] == "+" or text[i + 1] == "-"): + i = i + 1 + else: + return false + i = i + 1 + return digits > 0 and saw_marker and dots <= 1 and exponents <= 1 + +fn parse_float_manual(text: String) -> Float: + sign := split_sign(text) + mut int_part := 0 + mut frac := 0.0 + mut frac_div := 1.0 + mut in_frac := false + mut exponent := 0 + mut exponent_negative := false + mut in_exponent := false + mut i := sign.start + while i < text.len(): + c := text[i] + if c == ".": + in_frac = true + elif c == "e" or c == "E": + in_exponent = true + if i + 1 < text.len() and text[i + 1] == "-": + exponent_negative = true + i = i + 1 + elif i + 1 < text.len() and text[i + 1] == "+": + i = i + 1 + elif in_exponent: + exponent = exponent * 10 + (ord(c) - 48) + elif in_frac: + frac_div = frac_div * 10.0 + frac = frac + (ord(c) - 48).to_float() / frac_div + else: + int_part = int_part * 10 + (ord(c) - 48) + i = i + 1 + mut value := int_part.to_float() + frac + mut e := 0 + while e < exponent: + if exponent_negative: + value = value / 10.0 + else: + value = value * 10.0 + e = e + 1 + if sign.negative: + return 0.0 - value + return value + +# a plain (unquoted) scalar, resolved against the YAML 1.2 core schema. +# +# `yes`/`no`/`on`/`off` are deliberately strings, not booleans. that mapping +# comes from YAML 1.1 and is the reason `country: NO` famously reads as false; +# the 1.2 core schema dropped it, and so does this parser. +fn plain_scalar_node(text: String) -> Int: + if text == "" or text == "~" or text == "null" or text == "Null" or text == "NULL": + return null_node() + if text == "true" or text == "True" or text == "TRUE": + return bool_node(true) + if text == "false" or text == "False" or text == "FALSE": + return bool_node(false) + as_int := try_integer_node(text) + if parser_error: + return 0 - 1 + if as_int >= 0: + return as_int + if looks_like_float(text): + return float_node(parse_float_manual(text)) + return string_node(text) + +# the node for one scalar written out in a value position. +fn scalar_node(text: String) -> Int: + if text.len() == 0: + return null_node() + c := text[0] + if c == "&" or c == "*": + yaml_fail("anchors and aliases are not supported: " + text) + return 0 - 1 + if c == "!": + yaml_fail("yaml tags are not supported: " + text) + return 0 - 1 + if c == chr(34) or c == "'": + value := decode_quoted(text) + if parser_error: + return 0 - 1 + return string_node(value) + return plain_scalar_node(text) + +# the text of a mapping key, with quotes removed. +fn key_text(raw: String) -> String: + if raw.len() == 0: + yaml_fail("mapping key is empty") + return "" + if raw.len() > MAX_KEY_BYTES: + yaml_fail("mapping key of " + raw.len().to_string() + " bytes exceeds the " + MAX_KEY_BYTES.to_string() + "-byte limit") + return "" + if raw.starts_with("<<"): + yaml_fail("merge keys (<<) are not supported") + return "" + c := raw[0] + if c == "?": + yaml_fail("explicit (complex) keys are not supported") + return "" + if c == "&" or c == "*": + yaml_fail("anchors and aliases are not supported: " + raw) + return "" + if c == "!": + yaml_fail("yaml tags are not supported: " + raw) + return "" + if c == chr(34) or c == "'": + value := decode_quoted(raw) + if parser_error: + return "" + return value + return raw + +# =============================================================== +# Collections +# =============================================================== + +fn finish_map(keys_in: List[String], values_in: List[Int]) -> Int: + idx := allocate_node("map") + if keys_in.len() == 0: + return idx + map_key_offsets.insert(idx, map_keys_flat.len()) + for key in keys_in: + map_keys_flat.push(key) + for value in values_in: + map_values_flat.push(value) + map_key_counts.insert(idx, keys_in.len()) + return idx + +fn finish_seq(items: List[Int]) -> Int: + idx := allocate_node("seq") + if items.len() == 0: + return idx + seq_item_offsets.insert(idx, seq_items_flat.len()) + for item in items: + seq_items_flat.push(item) + seq_item_counts.insert(idx, items.len()) + return idx + +# guards against a document that is all structure and no content. +fn over_budget() -> Bool: + if nodes_this_parse > MAX_NODES: + yaml_fail("document allocates more than " + MAX_NODES.to_string() + " nodes") + return true + return false + +fn too_many_entries(count: Int) -> Bool: + if count >= MAX_COLLECTION_ENTRIES: + yaml_fail("collection holds more than " + MAX_COLLECTION_ENTRIES.to_string() + " entries") + return true + return false + +# =============================================================== +# Flow collections +# =============================================================== + +fn flow_skip_spaces(): + while flow_pos < flow_input.len() and (flow_input[flow_pos] == " " or flow_input[flow_pos] == chr(9)): + flow_pos = flow_pos + 1 + +# the raw text of one flow scalar, stopping at a separator that belongs to the +# enclosing collection. quotes hide separators. +fn flow_read_scalar_text(stop_at_colon: Bool) -> String: + start := flow_pos + while flow_pos < flow_input.len(): + c := flow_input[flow_pos] + if c == chr(34) or c == "'": + flow_pos = skip_quoted(flow_input, flow_pos) + continue + if c == "," or c == "]" or is_close_brace(c): + break + if stop_at_colon and c == ":": + break + flow_pos = flow_pos + 1 + return flow_input.substring(start, flow_pos).trim() + +fn parse_flow_value() -> Int: + parser_depth = parser_depth + 1 + if parser_depth > MAX_NESTING_DEPTH: + yaml_fail("nesting exceeds " + MAX_NESTING_DEPTH.to_string() + " levels") + parser_depth = parser_depth - 1 + return 0 - 1 + result := parse_flow_value_inner() + parser_depth = parser_depth - 1 + return result + +fn parse_flow_value_inner() -> Int: + flow_skip_spaces() + if flow_pos >= flow_input.len(): + yaml_fail("flow collection ends early") + return 0 - 1 + c := flow_input[flow_pos] + if is_open_brace(c): + return parse_flow_map() + if c == "[": + return parse_flow_seq() + return scalar_node(flow_read_scalar_text(false)) + +fn parse_flow_map() -> Int: + flow_pos = flow_pos + 1 + mut keys_in: List[String] := [] + mut values_in: List[Int] := [] + flow_skip_spaces() + if flow_pos < flow_input.len() and is_close_brace(flow_input[flow_pos]): + flow_pos = flow_pos + 1 + return finish_map(keys_in, values_in) + while flow_pos < flow_input.len() and not parser_error: + flow_skip_spaces() + raw_key := flow_read_scalar_text(true) + key := key_text(raw_key) + if parser_error: + return 0 - 1 + flow_skip_spaces() + if flow_pos >= flow_input.len() or flow_input[flow_pos] != ":": + yaml_fail("flow mapping entry '" + raw_key + "' has no value") + return 0 - 1 + flow_pos = flow_pos + 1 + value := parse_flow_value() + if parser_error: + return 0 - 1 + if too_many_entries(keys_in.len()) or over_budget(): + return 0 - 1 + keys_in.push(key) + values_in.push(value) + flow_skip_spaces() + if flow_pos >= flow_input.len(): + break + if flow_input[flow_pos] == ",": + flow_pos = flow_pos + 1 + continue + if is_close_brace(flow_input[flow_pos]): + flow_pos = flow_pos + 1 + return finish_map(keys_in, values_in) + yaml_fail("unexpected '" + flow_input[flow_pos] + "' in a flow mapping") + return 0 - 1 + yaml_fail("unterminated flow mapping") + return 0 - 1 + +fn parse_flow_seq() -> Int: + flow_pos = flow_pos + 1 + mut items: List[Int] := [] + flow_skip_spaces() + if flow_pos < flow_input.len() and flow_input[flow_pos] == "]": + flow_pos = flow_pos + 1 + return finish_seq(items) + while flow_pos < flow_input.len() and not parser_error: + value := parse_flow_value() + if parser_error: + return 0 - 1 + if too_many_entries(items.len()) or over_budget(): + return 0 - 1 + items.push(value) + flow_skip_spaces() + if flow_pos >= flow_input.len(): + break + if flow_input[flow_pos] == ",": + flow_pos = flow_pos + 1 + continue + if flow_input[flow_pos] == "]": + flow_pos = flow_pos + 1 + return finish_seq(items) + yaml_fail("unexpected '" + flow_input[flow_pos] + "' in a flow sequence") + return 0 - 1 + yaml_fail("unterminated flow sequence") + return 0 - 1 + +# a value written on one line: a flow collection or a single scalar. flow +# collections have to close on the line they open on; a multi-line flow +# collection is refused rather than half-read. +fn parse_inline_value(text: String) -> Int: + if starts_flow(text): + flow_input = text + flow_pos = 0 + value := parse_flow_value() + if parser_error: + return 0 - 1 + flow_skip_spaces() + if flow_pos != flow_input.len(): + yaml_fail("unexpected text after a flow collection: " + text.substring(flow_pos, text.len())) + return 0 - 1 + return value + return scalar_node(text) + +# =============================================================== +# Block scalars +# =============================================================== + +fn repeat_newlines(count: Int) -> String: + mut out := "" + mut i := 0 + while i < count: + out = out + chr(10) + i = i + 1 + return out + +# reads a `|` or `>` block whose header is `header` and whose owning key sits +# at `parent_indent`. +fn parse_block_scalar(parent_indent: Int, header: String) -> Int: + style := header[0] + mut chomp := "clip" + mut i := 1 + while i < header.len(): + c := header[i] + if c == "-": + chomp = "strip" + elif c == "+": + chomp = "keep" + elif is_digit_char(c): + yaml_fail("explicit block scalar indentation indicators are not supported: " + header) + return 0 - 1 + else: + yaml_fail("unexpected text in a block scalar header: " + header) + return 0 - 1 + i = i + 1 + + mut content: List[String] := [] + mut block_indent := 0 - 1 + while line_pos < line_count(): + raw := line_raw[line_pos] + if raw.trim() == "": + content.push("") + line_pos = line_pos + 1 + continue + indent := line_indent[line_pos] + if indent <= parent_indent: + break + if block_indent < 0: + block_indent = indent + if indent < block_indent: + break + content.push(raw.substring(block_indent, raw.len())) + line_pos = line_pos + 1 + + # trailing blank lines belong to the block, but how many survive is what + # the chomping indicator decides, so hold them aside while folding. + mut trailing := 0 + while content.len() > 0 and content[content.len() - 1] == "": + content.remove(content.len() - 1) + trailing = trailing + 1 + + mut body := "" + mut j := 0 + while j < content.len(): + line := content[j] + if j == 0: + body = line + elif style == "|": + body = body + chr(10) + line + elif line == "": + # a blank line inside a folded block is a real line break + body = body + chr(10) + elif content[j - 1] == "": + body = body + line + else: + body = body + " " + line + j = j + 1 + + if content.len() == 0: + if chomp == "keep": + return string_node(repeat_newlines(trailing)) + return string_node("") + if chomp == "strip": + return string_node(body) + if chomp == "keep": + return string_node(body + repeat_newlines(trailing + 1)) + return string_node(body + chr(10)) + +# =============================================================== +# Block structure +# =============================================================== + +# the index of the ":" that separates a mapping key from its value, or -1. +# quotes and flow brackets hide a colon, so `a: {b: 1}` separates at index 1 +# and `{b: 1}` separates nowhere. +fn find_key_colon(text: String) -> Int: + mut i := 0 + mut depth := 0 + while i < text.len(): + c := text[i] + if c == chr(34) or c == "'": + i = skip_quoted(text, i) + continue + if c == "[" or is_open_brace(c): + depth = depth + 1 + elif c == "]" or is_close_brace(c): + depth = depth - 1 + elif c == ":" and depth == 0: + if i + 1 >= text.len() or text[i + 1] == " ": + return i + i = i + 1 + return 0 - 1 + +fn starts_sequence_entry(text: String) -> Bool: + return text == "-" or text.starts_with("- ") + +# how many spaces the text after a "-" is indented by, so a compact entry +# (`- name: a`) knows what column its mapping starts at. +fn dash_content_offset(text: String) -> Int: + mut i := 1 + while i < text.len() and text[i] == " ": + i = i + 1 + return i + +fn parse_block(indent: Int) -> Int: + parser_depth = parser_depth + 1 + if parser_depth > MAX_NESTING_DEPTH: + yaml_fail("nesting exceeds " + MAX_NESTING_DEPTH.to_string() + " levels") + parser_depth = parser_depth - 1 + return 0 - 1 + result := parse_block_inner(indent) + parser_depth = parser_depth - 1 + return result + +fn parse_block_inner(indent: Int) -> Int: + text := line_text[line_pos] + if text == "?" or text.starts_with("? "): + yaml_fail_at("explicit (complex) keys are not supported", line_pos) + return 0 - 1 + if starts_sequence_entry(text): + return parse_seq(indent) + if starts_flow(text): + line_pos = line_pos + 1 + return parse_inline_value(text) + if find_key_colon(text) >= 0: + return parse_map(indent) + # a document that is a single scalar, such as a file holding just `hello` + line_pos = line_pos + 1 + return scalar_node(text) + +# the value of `key:` when the rest of the line is empty: a nested block, or +# null when nothing deeper follows. +fn parse_nested_value(parent_indent: Int) -> Int: + skip_blank_lines() + if at_end() or at_document_boundary(): + return null_node() + indent := line_indent[line_pos] + if indent > parent_indent: + return parse_block(indent) + # a sequence may sit at its key's own indentation: + # ports: + # - 80 + # - 443 + if indent == parent_indent and starts_sequence_entry(line_text[line_pos]): + return parse_seq(indent) + return null_node() + +# rejects a line that is indented further than the value it follows. a plain +# scalar continued on the next line is legal YAML but not supported here, and +# quietly dropping the continuation would change what the document says. +fn reject_deeper_continuation(parent_indent: Int): + skip_blank_lines() + if at_end() or at_document_boundary(): + return + if line_indent[line_pos] > parent_indent: + yaml_fail_at("unexpected indentation; multi-line plain scalars are not supported", line_pos) + +# the value for `key: ` where the key sits at `parent_indent`. +fn parse_value_after_key(parent_indent: Int, rest: String) -> Int: + if rest.len() == 0: + return parse_nested_value(parent_indent) + if rest.starts_with("|") or rest.starts_with(">"): + return parse_block_scalar(parent_indent, rest) + value := parse_inline_value(rest) + if parser_error: + return 0 - 1 + reject_deeper_continuation(parent_indent) + return value + +fn parse_map(indent: Int) -> Int: + mut keys_in: List[String] := [] + mut values_in: List[Int] := [] + while not parser_error: + skip_blank_lines() + if at_end() or at_document_boundary(): + break + if line_indent[line_pos] < indent: + break + if line_indent[line_pos] > indent: + yaml_fail_at("unexpected indentation", line_pos) + break + text := line_text[line_pos] + if starts_sequence_entry(text): + yaml_fail_at("sequence entry where a mapping key was expected", line_pos) + break + if text == "?" or text.starts_with("? "): + yaml_fail_at("explicit (complex) keys are not supported", line_pos) + break + colon := find_key_colon(text) + if colon < 0: + if has_unterminated_quote(text): + yaml_fail_at("unterminated quoted scalar", line_pos) + else: + yaml_fail_at("expected 'key: value'", line_pos) + break + key := key_text(text.substring(0, colon).trim()) + if parser_error: + break + rest := text.substring(colon + 1, text.len()).trim() + line_pos = line_pos + 1 + value := parse_value_after_key(indent, rest) + if parser_error: + break + if too_many_entries(keys_in.len()) or over_budget(): + break + keys_in.push(key) + values_in.push(value) + if parser_error: + return 0 - 1 + return finish_map(keys_in, values_in) + +fn parse_seq(indent: Int) -> Int: + mut items: List[Int] := [] + while not parser_error: + skip_blank_lines() + if at_end() or at_document_boundary(): + break + if line_indent[line_pos] < indent: + break + if line_indent[line_pos] > indent: + yaml_fail_at("unexpected indentation", line_pos) + break + text := line_text[line_pos] + if not starts_sequence_entry(text): + break + mut item := 0 - 1 + if text == "-": + line_pos = line_pos + 1 + item = parse_nested_value(indent) + else: + offset := dash_content_offset(text) + rest := text.substring(offset, text.len()) + if find_key_colon(rest) >= 0 or starts_sequence_entry(rest): + # a compact entry: `- name: a` opens a mapping whose keys line + # up under `name`. rewriting the line in place lets the ordinary + # block parser handle it, and the rewrite is invisible outside + # this parse because the line table is rebuilt per document. + line_indent[line_pos] = indent + offset + line_text[line_pos] = rest + item = parse_block(indent + offset) + elif rest.starts_with("|") or rest.starts_with(">"): + line_pos = line_pos + 1 + item = parse_block_scalar(indent, rest) + else: + line_pos = line_pos + 1 + item = parse_inline_value(rest) + if not parser_error: + reject_deeper_continuation(indent) + if parser_error: + break + if too_many_entries(items.len()) or over_budget(): + break + items.push(item) + if parser_error: + return 0 - 1 + return finish_seq(items) + +fn parse_document_body() -> Int: + skip_blank_lines() + if at_end() or at_document_boundary(): + return null_node() + return parse_block(line_indent[line_pos]) + +# walks the whole input, returning one root per document. +fn parse_documents() -> List[Int]: + mut roots: List[Int] := [] + while not parser_error: + skip_blank_lines() + if at_end(): + break + text := line_text[line_pos] + if text == "...": + line_pos = line_pos + 1 + continue + if text.starts_with("--- "): + yaml_fail_at("content on the same line as a '---' marker is not supported", line_pos) + break + if text == "---": + line_pos = line_pos + 1 + roots.push(parse_document_body()) + continue + if text.starts_with("%"): + yaml_fail_at("yaml directives (%YAML, %TAG) are not supported", line_pos) + break + roots.push(parse_document_body()) + if parser_error: + return [] + if roots.len() == 0: + roots.push(null_node()) + return roots + +fn begin_parse(input: String) -> Bool: + parser_error = false + parser_message = "" + parser_depth = 0 + nodes_this_parse = 0 + if input.len() > MAX_DOCUMENT_BYTES: + yaml_fail("document of " + input.len().to_string() + " bytes exceeds the " + MAX_DOCUMENT_BYTES.to_string() + "-byte limit") + return false + return scan_lines(input) + +# =============================================================== +# Public API — Parsing +# =============================================================== + +## parses a YAML document and returns the root node handle, or -1 on failure. +## last_error() carries the reason. when the input holds several documents this +## returns the first one; use parse_all for the rest. +pub fn parse(input: String) -> Int: + if not begin_parse(input): + return 0 - 1 + roots := parse_documents() + if parser_error or roots.len() == 0: + return 0 - 1 + return roots[0] + +## parses every document in the input and returns a sequence handle holding one +## root per document. returns -1 on failure. +pub fn parse_all(input: String) -> Int: + if not begin_parse(input): + return 0 - 1 + roots := parse_documents() + if parser_error: + return 0 - 1 + return finish_seq(roots) + +## parses a YAML file from disk. returns -1 when the file cannot be read or the +## document is invalid. +pub fn parse_file(path: String) -> Int: + return parse_file_chunked(path, YAML_FILE_CHUNK_SIZE) + +## parses a YAML file using a custom read chunk size. +pub fn parse_file_chunked(path: String, chunk_size: Int) -> Int: + data := io.read_file_text_chunked(path, chunk_size) + if data.is_err: + return 0 - 1 + return parse(data.ok) + +## parses YAML and fails with a typed error when the input is invalid. +pub fn parse_required(input: String) -> Int!YamlDecodeError: + root := parse(input) + if root < 0: + fail yaml_decode_fail("invalid yaml document: " + parser_message) + return root + +## parses a YAML file and fails with a typed error when it cannot be read or is +## invalid. +pub fn parse_file_required(file_path: String) -> Int!YamlDecodeError: + root := parse_file(file_path) + if root < 0: + fail yaml_decode_fail("invalid yaml document: " + parser_message) + return root + +# =============================================================== +# Public API — Type and Introspection +# =============================================================== + +## the kind of a node: "map", "seq", "string", "int", "float", "bool" or +## "null", and "invalid" for a handle that names no live node. +pub fn type_of(handle: Int) -> String: + kind := node_kind(handle) + if kind == "": + return "invalid" + return kind + +## true when the node is the YAML null value (`null`, `~` or an empty value). +pub fn is_null(handle: Int) -> Bool: + return node_kind(handle) == "null" + +# looks up a direct key in a mapping and returns the child handle, or -1. +fn map_lookup(handle: Int, key: String) -> Int: + if node_kind(handle) != "map": + return 0 - 1 + off := map_key_offsets[handle] + count := map_key_counts[handle] + mut i := 0 + while i < count: + if map_keys_flat[off + i] == key: + return map_values_flat[off + i] + i = i + 1 + return 0 - 1 + +# =============================================================== +# Public API — Reading a node directly +# =============================================================== + +## the text of a string node, or "" for anything else. use this on a sequence +## element, where there is no key to look the value up by. +pub fn scalar_string(handle: Int) -> String: + if node_kind(handle) == "string": + return string_values[handle] + return "" + +## the value of an int node, or 0 for anything else. +pub fn scalar_int(handle: Int) -> Int: + if node_kind(handle) == "int": + return integer_values[handle] + return 0 + +## the value of a float node, or 0.0 for anything else. +pub fn scalar_float(handle: Int) -> Float: + if node_kind(handle) == "float": + return float_values[handle] + return 0.0 + +## the value of a bool node, or false for anything else. +pub fn scalar_bool(handle: Int) -> Bool: + if node_kind(handle) == "bool": + return boolean_values[handle] + return false + +# =============================================================== +# Public API — Mapping accessors +# =============================================================== + +## the child handle for a key in a mapping, or -1 when there is no such key. +pub fn get_value(handle: Int, key: String) -> Int: + return map_lookup(handle, key) + +## a string field, or "" when it is missing or holds another kind. +pub fn get_string(handle: Int, key: String) -> String: + return scalar_string(map_lookup(handle, key)) + +## a required string field, or a typed decode error. +pub fn require_string(handle: Int, key: String) -> String!YamlDecodeError: + v := map_lookup(handle, key) + if v < 0: + fail yaml_decode_fail("missing string field: " + key) + if node_kind(v) != "string": + fail yaml_decode_fail("expected string field: " + key) + return string_values[v] + +## a string field with a fallback used when it is missing or holds another kind. +pub fn get_string_or(handle: Int, key: String, default_value: String) -> String: + v := map_lookup(handle, key) + if node_kind(v) == "string": + return string_values[v] + return default_value + +## an int field, or 0 when it is missing or holds another kind. +pub fn get_int(handle: Int, key: String) -> Int: + return scalar_int(map_lookup(handle, key)) + +## a required int field, or a typed decode error. +pub fn require_int(handle: Int, key: String) -> Int!YamlDecodeError: + v := map_lookup(handle, key) + if v < 0: + fail yaml_decode_fail("missing int field: " + key) + if node_kind(v) != "int": + fail yaml_decode_fail("expected int field: " + key) + return integer_values[v] + +## an int field with a fallback used when it is missing or holds another kind. +pub fn get_int_or(handle: Int, key: String, default_value: Int) -> Int: + v := map_lookup(handle, key) + if node_kind(v) == "int": + return integer_values[v] + return default_value + +## a float field, or 0.0 when it is missing or holds another kind. +pub fn get_float(handle: Int, key: String) -> Float: + return scalar_float(map_lookup(handle, key)) + +## a float field with a fallback used when it is missing or holds another kind. +pub fn get_float_or(handle: Int, key: String, default_value: Float) -> Float: + v := map_lookup(handle, key) + if node_kind(v) == "float": + return float_values[v] + return default_value + +## a bool field, or false when it is missing or holds another kind. +pub fn get_bool(handle: Int, key: String) -> Bool: + return scalar_bool(map_lookup(handle, key)) + +## a required bool field, or a typed decode error. +pub fn require_bool(handle: Int, key: String) -> Bool!YamlDecodeError: + v := map_lookup(handle, key) + if v < 0: + fail yaml_decode_fail("missing bool field: " + key) + if node_kind(v) != "bool": + fail yaml_decode_fail("expected bool field: " + key) + return boolean_values[v] + +## a bool field with a fallback used when it is missing or holds another kind. +pub fn get_bool_or(handle: Int, key: String, default_value: Bool) -> Bool: + v := map_lookup(handle, key) + if node_kind(v) == "bool": + return boolean_values[v] + return default_value + +## a nested mapping by key, or -1 when it is missing or is not a mapping. +pub fn get_map(handle: Int, key: String) -> Int: + v := map_lookup(handle, key) + if node_kind(v) == "map": + return v + return 0 - 1 + +## a nested mapping by key. the same thing get_map returns, under the name +## std.toml uses for it, so code that moves between the two formats reads the +## same either way. +pub fn get_table(handle: Int, key: String) -> Int: + return get_map(handle, key) + +## a sequence by key, or -1 when it is missing or is not a sequence. +pub fn get_array(handle: Int, key: String) -> Int: + v := map_lookup(handle, key) + if node_kind(v) == "seq": + return v + return 0 - 1 + +## the keys of a mapping in document order. empty for anything else. +pub fn keys(handle: Int) -> List[String]: + mut result: List[String] := [] + if node_kind(handle) != "map": + return result + off := map_key_offsets[handle] + count := map_key_counts[handle] + mut i := 0 + while i < count: + result.push(map_keys_flat[off + i]) + i = i + 1 + return result + +## true when a mapping holds the given key. +pub fn has(handle: Int, key: String) -> Bool: + return map_lookup(handle, key) >= 0 + +# =============================================================== +# Public API — Sequence accessors +# =============================================================== + +## the number of elements in a sequence, or 0 for anything else. +pub fn array_len(handle: Int) -> Int: + if node_kind(handle) != "seq": + return 0 + return seq_item_counts[handle] + +## the handle of a sequence element, or -1 when the index is out of bounds. +pub fn array_get(handle: Int, index: Int) -> Int: + if node_kind(handle) != "seq": + return 0 - 1 + if index < 0 or index >= seq_item_counts[handle]: + return 0 - 1 + return seq_items_flat[seq_item_offsets[handle] + index] + +# =============================================================== +# Public API — Typed decoding +# =============================================================== + +## decodes a YAML mapping handle into a concrete struct with public +## string/int/bool fields. +pub fn decode[T](handle: Int) -> T!YamlDecodeError: + fail yaml_decode_fail("yaml.decode requires compiler support") + +## parses YAML text and decodes it into a concrete struct. +pub fn decode_text[T](input: String) -> T!YamlDecodeError: + fail yaml_decode_fail("yaml.decode_text requires compiler support") + +## the nested mapping a key names, or a typed error when the key is missing or +## does not hold a mapping. this is the step a dotted decode path walks with. +pub fn require_table(handle: Int, key: String) -> Int!YamlDecodeError: + child := map_lookup(handle, key) + if child < 0: + fail yaml_decode_fail("missing table field: " + key) + if node_kind(child) != "map": + fail yaml_decode_fail("expected table field: " + key) + return child + +## decodes a nested mapping selected by a dotted path. +pub fn decode_path[T](handle: Int, dotted_path: String) -> T!YamlDecodeError: + mut current := handle + for part in dotted_path.split("."): + if part == "": + continue + current = require_table(current, part)! + return decode[T](current)! + +## parses YAML text and decodes a nested mapping selected by a dotted path. +pub fn decode_text_path[T](input: String, dotted_path: String) -> T!YamlDecodeError: + root := parse_required(input)! + return decode_path[T](root, dotted_path)! + +## loads a YAML file and decodes it into a concrete struct. +pub fn decode_file[T](file_path: String) -> T!YamlDecodeError: + return decode[T](parse_file_required(file_path)!)! + +## loads a YAML file and decodes a nested mapping selected by a dotted path. +pub fn decode_file_path[T](file_path: String, dotted_path: String) -> T!YamlDecodeError: + return decode_path[T](parse_file_required(file_path)!, dotted_path)! + +# =============================================================== +# Colocated tests +# =============================================================== + +test "yaml scanner strips comments outside quotes": + dq := chr(34) + assert_eq(strip_comment("key: value # trailing"), "key: value ") + assert_eq(strip_comment("key: " + dq + "a#b" + dq), "key: " + dq + "a#b" + dq) + assert_eq(strip_comment("key: a#b"), "key: a#b") + assert_eq(strip_comment("# whole line"), "") + +test "yaml scanner finds the key separator": + dq := chr(34) + assert_eq(find_key_colon("key: value"), 3) + assert_eq(find_key_colon("key:"), 3) + flow := chr(123) + "a: 1" + chr(125) + assert_eq(find_key_colon(flow), 0 - 1) + assert_eq(find_key_colon("key: " + flow), 3) + assert_eq(find_key_colon(dq + "a: b" + dq + ": v"), 6) + assert_eq(find_key_colon("12:30"), 0 - 1) + +test "yaml types plain scalars against the core schema": + root := parse("a: 1" + chr(10) + "b: 1.5" + chr(10) + "c: true" + chr(10) + "d: text" + chr(10) + "e: ~" + chr(10) + "f: yes") + assert_eq(type_of(get_value(root, "a")), "int") + assert_eq(type_of(get_value(root, "b")), "float") + assert_eq(type_of(get_value(root, "c")), "bool") + assert_eq(type_of(get_value(root, "d")), "string") + assert_eq(type_of(get_value(root, "e")), "null") + # yes/no/on/off are strings under the 1.2 core schema + assert_eq(type_of(get_value(root, "f")), "string") + +test "yaml reads nested blocks and sequences": + nl := chr(10) + doc := "server:" + nl + " host: localhost" + nl + " ports:" + nl + " - 80" + nl + " - 443" + root := parse(doc) + server := get_map(root, "server") + assert_eq(get_string(server, "host"), "localhost") + ports := get_array(server, "ports") + assert_eq(array_len(ports), 2) + assert_eq(scalar_int(array_get(ports, 1)), 443) + assert_eq(keys(root).join(","), "server") + +test "yaml rejects tabs and unterminated quotes": + nl := chr(10) + dq := chr(34) + assert(parse("a:" + nl + chr(9) + "b: 1") < 0) + assert(last_error().contains("tab")) + assert(parse("a: " + dq + "unclosed") < 0) + assert(parse("a: [1, 2") < 0) + assert(last_error().contains("flow")) + assert(parse("a: 1") >= 0) + assert_eq(last_error(), "") diff --git a/tests/cases/test_yaml_block_scalars.pith b/tests/cases/test_yaml_block_scalars.pith new file mode 100644 index 00000000..6c7075b4 --- /dev/null +++ b/tests/cases/test_yaml_block_scalars.pith @@ -0,0 +1,69 @@ +import std.yaml as yaml + +# literal and folded block scalars with each chomping indicator. + +fn line(text: String) -> String: + return text + chr(10) + +# print a string with its line breaks made visible, so the expected output +# stays a single line per case. +fn show(text: String) -> String: + mut out := "" + mut i := 0 + while i < text.len(): + if text[i] == chr(10): + out = out + "\\n" + else: + out = out + text[i] + i = i + 1 + return out + +fn main() -> Int!: + mut doc := line("literal: |") + doc = doc + line(" first line") + doc = doc + line(" second line") + doc = doc + line("stripped: |-") + doc = doc + line(" no trailing break") + doc = doc + line("kept: |+") + doc = doc + line(" one") + doc = doc + line("") + doc = doc + line("") + doc = doc + line("folded: >") + doc = doc + line(" these lines") + doc = doc + line(" become one") + doc = doc + line("") + doc = doc + line(" after a break") + doc = doc + line("folded_stripped: >-") + doc = doc + line(" joined") + doc = doc + line(" up") + doc = doc + line("indented: |") + doc = doc + line(" deeper than needed") + doc = doc + line(" one more level") + doc = doc + line("hashes: |") + doc = doc + line(" # this is content, not a comment") + doc = doc + line("after: done") + + root := yaml.parse(doc) + print("literal:{show(yaml.get_string(root, "literal"))}") + print("stripped:{show(yaml.get_string(root, "stripped"))}") + print("kept:{show(yaml.get_string(root, "kept"))}") + print("folded:{show(yaml.get_string(root, "folded"))}") + print("folded_stripped:{show(yaml.get_string(root, "folded_stripped"))}") + print("indented:{show(yaml.get_string(root, "indented"))}") + print("hashes:{show(yaml.get_string(root, "hashes"))}") + print("after:{yaml.get_string(root, "after")}") + + # a block scalar as a sequence entry + mut seq_doc := line("notes:") + seq_doc = seq_doc + line(" - |") + seq_doc = seq_doc + line(" alpha") + seq_doc = seq_doc + line(" beta") + seq_doc = seq_doc + line(" - plain") + seq_root := yaml.parse(seq_doc) + notes := yaml.get_array(seq_root, "notes") + print("notes:{yaml.array_len(notes)}:{show(yaml.scalar_string(yaml.array_get(notes, 0)))}:{yaml.scalar_string(yaml.array_get(notes, 1))}") + + # an empty block scalar + empty_root := yaml.parse(line("body: |") + line("next: 1")) + print("empty:[{show(yaml.get_string(empty_root, "body"))}] next:{yaml.get_int(empty_root, "next")}") + return 0 diff --git a/tests/cases/test_yaml_derived_decode.pith b/tests/cases/test_yaml_derived_decode.pith new file mode 100644 index 00000000..a612b2e9 --- /dev/null +++ b/tests/cases/test_yaml_derived_decode.pith @@ -0,0 +1,115 @@ +import std.yaml as yaml +import std.fs as fs +import std.os.path as os_path + +# typed decoding, the same shapes std.toml covers. + +struct YamlDerivedFixture: + pub name: String + pub score: Int + pub active: Bool + +struct YamlServerFixture: + pub host: String + pub port: Int + +struct YamlOptionalFixture: + pub name: String + pub tls: Bool? + +struct YamlDefaultFixture: + pub name: String + pub tls: Bool = false + +struct YamlNestedDefaultServer: + pub host: String + pub port: Int = 8080 + pub tls: Bool = false + +struct YamlNestedDefaultApp: + pub name: String + pub server: YamlNestedDefaultServer = YamlNestedDefaultServer("localhost") + +fn line(text: String) -> String: + return text + chr(10) + +fn main() -> Int!: + doc := line("name: pith") + line("score: 42") + line("active: true") + nested_doc := line("server:") + line(" host: localhost") + line(" port: 8080") + + root := yaml.parse(doc) + from_handle := yaml.decode[YamlDerivedFixture](root) + if from_handle.is_ok: + print("{from_handle.ok.name}:{from_handle.ok.score}:{from_handle.ok.active}") + + from_text := yaml.decode_text[YamlDerivedFixture](doc) + if from_text.is_ok: + print("{from_text.ok.name}@{from_text.ok.score}") + + missing := yaml.decode_text[YamlDerivedFixture](line("name: pith")) + print("{missing.is_err}") + if missing.is_err: + print("{missing.err.message.contains("score")}") + + invalid := yaml.decode_text[YamlDerivedFixture](line("name: pith") + line(" bad: 1")) + print("{invalid.is_err}") + if invalid.is_err: + print("{invalid.err.message.contains("invalid yaml")}") + + optional_present := yaml.decode_text[YamlOptionalFixture](line("name: pith") + line("tls: true")) + optional_missing := yaml.decode_text[YamlOptionalFixture](line("name: pith")) + if optional_present.is_ok: + print("{optional_present.ok.name}:{optional_present.ok.tls?}") + if optional_missing.is_ok: + print("{optional_missing.ok.name}:{optional_missing.ok.tls == none}") + + defaulted := yaml.decode_text[YamlDefaultFixture](line("name: pith")) + if defaulted.is_ok: + print("{defaulted.ok.name}:{defaulted.ok.tls}") + + nested_default_missing := yaml.decode_text[YamlNestedDefaultApp](line("name: pith")) + nested_default_partial := yaml.decode_text[YamlNestedDefaultApp](line("name: pith") + line("server:") + line(" host: edge")) + if nested_default_missing.is_ok: + app := nested_default_missing.ok + print("{app.name}:{app.server.host}:{app.server.port}:{app.server.tls}") + if nested_default_partial.is_ok: + app := nested_default_partial.ok + print("{app.name}:{app.server.host}:{app.server.port}:{app.server.tls}") + + nested_root := yaml.parse(nested_doc) + nested := yaml.decode_path[YamlServerFixture](nested_root, "server") + if nested.is_ok: + print("{nested.ok.host}#{nested.ok.port}") + + nested_text := yaml.decode_text_path[YamlServerFixture](nested_doc, "server") + if nested_text.is_ok: + print("{nested_text.ok.host}${nested_text.ok.port}") + + temp_root := fs.make_temp_dir("pith-yaml-derived-")! + nested_path := os_path.join(temp_root, "app.yaml") + flat_path := os_path.join(temp_root, "flat.yaml") + assert(fs.write(nested_path, nested_doc)!) + assert(fs.write(flat_path, line("host: flat") + line("port: 9000"))!) + from_file := yaml.decode_file[YamlServerFixture](flat_path) + if from_file.is_ok: + print("{from_file.ok.host}&{from_file.ok.port}") + nested_file := yaml.decode_file_path[YamlServerFixture](nested_path, "server") + if nested_file.is_ok: + print("{nested_file.ok.host}%{nested_file.ok.port}") + assert(fs.remove_tree(temp_root)) + + nested_missing := yaml.decode_text_path[YamlServerFixture](nested_doc, "database") + print("{nested_missing.is_err}") + if nested_missing.is_err: + print("{nested_missing.err.message.contains("missing table field")}") + + # the pool gives back everything a text decode allocated + base := yaml.pool_live_nodes() + mut i := 0 + while i < 50: + row := yaml.decode_text[YamlDerivedFixture](doc) + if row.is_err: + print("unexpected error") + i = i + 1 + print("pool_growth:{yaml.pool_live_nodes() - base}") + return 0 diff --git a/tests/cases/test_yaml_documents.pith b/tests/cases/test_yaml_documents.pith new file mode 100644 index 00000000..4d68ba08 --- /dev/null +++ b/tests/cases/test_yaml_documents.pith @@ -0,0 +1,43 @@ +import std.yaml as yaml + +# multiple documents in one stream. + +fn line(text: String) -> String: + return text + chr(10) + +fn main() -> Int!: + mut stream := line("name: first") + stream = stream + line("---") + stream = stream + line("name: second") + stream = stream + line("...") + stream = stream + line("---") + stream = stream + line("- one") + stream = stream + line("- two") + + # parse returns the first document + first := yaml.parse(stream) + print("first:{yaml.get_string(first, "name")}") + + all := yaml.parse_all(stream) + print("count:{yaml.array_len(all)}") + print("doc0:{yaml.get_string(yaml.array_get(all, 0), "name")}") + print("doc1:{yaml.get_string(yaml.array_get(all, 1), "name")}") + doc2 := yaml.array_get(all, 2) + print("doc2:{yaml.type_of(doc2)}:{yaml.array_len(doc2)}:{yaml.scalar_string(yaml.array_get(doc2, 1))}") + + # a leading marker is allowed and does not add an empty document + leading := yaml.parse_all(line("---") + line("only: 1")) + print("leading:{yaml.array_len(leading)}:{yaml.get_int(yaml.array_get(leading, 0), "only")}") + + # an empty document between markers is null + gaps := yaml.parse_all(line("---") + line("---") + line("a: 1")) + print("gaps:{yaml.array_len(gaps)}:{yaml.type_of(yaml.array_get(gaps, 0))}:{yaml.get_int(yaml.array_get(gaps, 1), "a")}") + + # a single document without markers still comes back as one document + single := yaml.parse_all(line("a: 1")) + print("single:{yaml.array_len(single)}") + + # content on the same line as the marker is refused rather than guessed at + print("inline_marker:{yaml.parse_all(line("--- a: 1")) < 0}") + print("reason:{yaml.last_error().contains("same line")}") + return 0 diff --git a/tests/cases/test_yaml_json_parity.pith b/tests/cases/test_yaml_json_parity.pith new file mode 100644 index 00000000..93b56931 --- /dev/null +++ b/tests/cases/test_yaml_json_parity.pith @@ -0,0 +1,59 @@ +import std.yaml as yaml +import std.json as json + +# json is a subset of yaml 1.2, so the same document read through std.json and +# through std.yaml has to produce the same values. this pins the two data +# models together where they overlap. + +fn line(text: String) -> String: + return text + chr(10) + +fn main() -> Int!: + dq := chr(34) + lb := chr(123) + rb := chr(125) + + doc := lb + dq + "name" + dq + ": " + dq + "gateway" + dq + ", " + dq + "port" + dq + ": 8080, " + dq + "tls" + dq + ": true, " + dq + "ratio" + dq + ": 0.25, " + dq + "tags" + dq + ": [" + dq + "a" + dq + ", " + dq + "b" + dq + "]" + rb + + json_root := json.parse(doc) + yaml_root := yaml.parse(doc) + + print("kinds:{json.type_of(json_root)}/{yaml.type_of(yaml_root)}") + print("name:{json.object_get_string(json_root, "name") == yaml.get_string(yaml_root, "name")}") + print("port:{json.object_get_int(json_root, "port") == yaml.get_int(yaml_root, "port")}") + print("tls:{json.object_get_bool(json_root, "tls") == yaml.get_bool(yaml_root, "tls")}") + print("ratio:{json.object_get_float(json_root, "ratio") == yaml.get_float(yaml_root, "ratio")}") + + json_tags := json.object_get_array(json_root, "tags") + yaml_tags := yaml.get_array(yaml_root, "tags") + print("tags_len:{json.array_len(json_tags) == yaml.array_len(yaml_tags)}") + print("tags_0:{json.get_string(json.array_get(json_tags, 0)) == yaml.scalar_string(yaml.array_get(yaml_tags, 0))}") + print("tags_1:{json.get_string(json.array_get(json_tags, 1)) == yaml.scalar_string(yaml.array_get(yaml_tags, 1))}") + + # the same data written as block yaml reads back the same as the json form + mut block := line("name: gateway") + block = block + line("port: 8080") + block = block + line("tls: true") + block = block + line("ratio: 0.25") + block = block + line("tags:") + block = block + line(" - a") + block = block + line(" - b") + + block_root := yaml.parse(block) + print("block_name:{yaml.get_string(block_root, "name") == json.object_get_string(json_root, "name")}") + print("block_port:{yaml.get_int(block_root, "port") == json.object_get_int(json_root, "port")}") + print("block_tls:{yaml.get_bool(block_root, "tls") == json.object_get_bool(json_root, "tls")}") + print("block_ratio:{yaml.get_float(block_root, "ratio") == json.object_get_float(json_root, "ratio")}") + print("block_keys:{yaml.keys(block_root).join(",")}") + print("block_tags:{yaml.scalar_string(yaml.array_get(yaml.get_array(block_root, "tags"), 1))}") + + # both pools keep their own scopes and neither leaks into the other + json_base := json.pool_live_nodes() + yaml_base := yaml.pool_live_nodes() + scope := yaml.open_scope() + reparsed := yaml.parse(doc) + print("reparsed:{yaml.get_int(reparsed, "port")}") + yaml.close_scope(scope) + print("json_untouched:{json.pool_live_nodes() - json_base}") + print("yaml_reclaimed:{yaml.pool_live_nodes() - yaml_base}") + return 0 diff --git a/tests/cases/test_yaml_malformed.pith b/tests/cases/test_yaml_malformed.pith new file mode 100644 index 00000000..e6023ef4 --- /dev/null +++ b/tests/cases/test_yaml_malformed.pith @@ -0,0 +1,92 @@ +import std.yaml as yaml + +# malformed and hostile input. every case has to come back as a clean error +# with a message, never a crash, a hang or a silently wrong tree. + +fn line(text: String) -> String: + return text + chr(10) + +# parse the input, then report whether it failed and whether the message says +# why. printing the keyword rather than the whole message keeps the expected +# output stable if the wording is ever polished. +fn refuses(name: String, input: String, keyword: String): + handle := yaml.parse(input) + reason := yaml.last_error() + print("{name}:{handle < 0}:{reason.contains(keyword)}") + +fn repeat_text(unit: String, doublings: Int) -> String: + mut s := unit + mut i := 0 + while i < doublings: + s = s + s + i = i + 1 + return s + +fn main() -> Int!: + dq := chr(34) + sq := "'" + tab := chr(9) + lb := chr(123) + rb := chr(125) + + # quoting + refuses("unterminated_double", line("a: " + dq + "oops"), "unterminated") + refuses("unterminated_single", line("a: " + sq + "oops"), "unterminated") + refuses("unterminated_key", line(dq + "oops: 1"), "unterminated") + refuses("bad_escape", line("a: " + dq + chr(92) + "q" + dq), "escape") + refuses("truncated_unicode", line("a: " + dq + chr(92) + "u00" + dq), "escape") + + # indentation + refuses("tab_indent", line("a:") + tab + line("b: 1"), "tab") + refuses("over_indent", line("a: 1") + line(" b: 2"), "indentation") + refuses("seq_for_key", line("a:") + line(" - 1") + line(" b: 2"), "indentation") + refuses("no_separator", line("a: 1") + line("just words"), "key: value") + + # flow collections + refuses("truncated_seq", line("a: [1, 2"), "flow") + refuses("truncated_map", line("a: " + lb + "x: 1"), "flow") + refuses("flow_no_value", line("a: " + lb + "x" + rb), "no value") + refuses("flow_trailing", line("a: [1] junk"), "after a flow") + + # the yaml features this parser deliberately does not implement + refuses("anchor", line("a: &base 1"), "anchors") + refuses("alias", line("a: *base"), "aliases") + refuses("merge_key", line("a:") + line(" <<: 1"), "merge") + refuses("tag", line("a: !!str 1"), "tags") + refuses("complex_key", line("? a") + line(": 1"), "complex") + refuses("directive", line("%YAML 1.2") + line("a: 1"), "directives") + refuses("block_indent_indicator", line("a: |2") + line(" x"), "indentation indicators") + refuses("multiline_plain", line("a: one") + line(" two"), "multi-line") + + # a nesting bomb built out of indentation alone + mut deep := "" + mut i := 0 + while i < 400: + deep = deep + line(" ".repeat(i) + "a:") + i = i + 1 + refuses("deep_block", deep, "nesting") + + # the same bomb written with flow brackets + refuses("deep_flow", line("a: " + repeat_text("[", 9)), "nesting") + + # a legal document that is deep but inside the cap still parses + mut shallow := "" + mut j := 0 + while j < 40: + shallow = shallow + line(" ".repeat(j) + "a:") + j = j + 1 + shallow = shallow + line(" ".repeat(40) + "leaf: 1") + print("legal_depth:{yaml.parse(shallow) >= 0}") + + # an enormous key + huge_key := repeat_text("k", 14) + refuses("huge_key", line(huge_key + ": 1"), "key of") + + # an enormous document + big := repeat_text(line("a: 1"), 20) + refuses("huge_document", big, "document of") + + # after all of that the parser still works + print("recovered:{yaml.get_int(yaml.parse(line("a: 1")), "a")}") + print("no_error:[{yaml.last_error()}]") + return 0 diff --git a/tests/cases/test_yaml_pool_scope.pith b/tests/cases/test_yaml_pool_scope.pith new file mode 100644 index 00000000..5454b2f3 --- /dev/null +++ b/tests/cases/test_yaml_pool_scope.pith @@ -0,0 +1,74 @@ +import std.yaml as yaml + +# node-pool scopes, the same discipline std.json and std.toml use. a task that +# parses one document per request keeps every node it ever parsed unless the +# parse is bracketed, because the pool lives in threadlocal storage. +# +# occupancy is read with pool_live_nodes(). the id counter is not a measure of +# occupancy: ids are never reused, which is what makes a handle from a closed +# scope read as "invalid" instead of aliasing whatever document landed on that +# id next. + +fn doc(i: Int) -> String: + nl := chr(10) + return "id: " + i.to_string() + nl + "tags:" + nl + " - a" + nl + " - b" + nl + +fn main(): + base := yaml.pool_live_nodes() + + # a hundred documents parsed one scope at a time leave nothing behind. + mut acc := 0 + mut i := 0 + while i < 100: + scope := yaml.open_scope() + root := yaml.parse(doc(i)) + acc = acc + yaml.get_int(root, "id") + yaml.close_scope(scope) + i = i + 1 + print("acc={acc}") + print("leaked={yaml.pool_live_nodes() - base}") + + # a handle read after its scope closed reports invalid, and a later parse + # over the same pool does not bring it back to life. + stale_scope := yaml.open_scope() + stale := yaml.parse(doc(7)) + print("live_type={yaml.type_of(stale)}") + yaml.close_scope(stale_scope) + print("stale_type={yaml.type_of(stale)}") + next_scope := yaml.open_scope() + fresh := yaml.parse(doc(9)) + print("stale_after_reparse={yaml.type_of(stale)}") + print("stale_int={yaml.get_int(stale, "id")}") + print("stale_lookup={yaml.get_value(stale, "id")}") + print("fresh_id={yaml.get_int(fresh, "id")}") + yaml.close_scope(next_scope) + + # a handle parsed before a scope opened outlives it — that is the ordering + # the arena can actually honour. + outlives := yaml.parse(doc(11)) + inner := yaml.open_scope() + inner_root := yaml.parse(doc(13)) + print("inner_id={yaml.get_int(inner_root, "id")}") + yaml.close_scope(inner) + print("outlives_id={yaml.get_int(outlives, "id")}") + + # closing an outer scope while an inner one is open closes both. the inner + # close afterwards is a no-op rather than a second rollback, and so is + # closing the same scope twice. + after_outlives := yaml.pool_live_nodes() + outer := yaml.open_scope() + outer_root := yaml.parse(doc(21)) + nested := yaml.open_scope() + nested_root := yaml.parse(doc(23)) + yaml.close_scope(outer) + print("outer_after={yaml.type_of(outer_root)} nested_after={yaml.type_of(nested_root)}") + yaml.close_scope(nested) + yaml.close_scope(outer) + print("after_nesting={yaml.pool_live_nodes() - after_outlives}") + + # a failed parse gives its partial nodes back with the scope, too. + fail_base := yaml.pool_live_nodes() + fail_scope := yaml.open_scope() + print("failed={yaml.parse("a: 1" + chr(10) + " b: 2") < 0}") + yaml.close_scope(fail_scope) + print("after_failure={yaml.pool_live_nodes() - fail_base}") diff --git a/tests/cases/test_yaml_scalars.pith b/tests/cases/test_yaml_scalars.pith new file mode 100644 index 00000000..d8da02c7 --- /dev/null +++ b/tests/cases/test_yaml_scalars.pith @@ -0,0 +1,77 @@ +import std.yaml as yaml + +# scalar typing, quoting, escapes and comments. + +fn main() -> Int!: + nl := chr(10) + dq := chr(34) + sq := "'" + + mut doc := "count: 42" + nl + doc = doc + "negative: -7" + nl + doc = doc + "hex: 0x1f" + nl + doc = doc + "octal: 0o17" + nl + doc = doc + "ratio: 1.5" + nl + doc = doc + "scaled: 2.5e2" + nl + doc = doc + "tiny: 1.0e-2" + nl + doc = doc + "yes_flag: true" + nl + doc = doc + "no_flag: False" + nl + doc = doc + "empty:" + nl + doc = doc + "tilde: ~" + nl + doc = doc + "spelled: null" + nl + doc = doc + "word: plain text" + nl + doc = doc + "human: yes" + nl + doc = doc + "version: 1.2.3" + nl + doc = doc + "quoted: " + dq + " spaced " + dq + nl + doc = doc + "single: " + sq + "it" + sq + sq + "s here" + sq + nl + doc = doc + "escaped: " + dq + "a" + chr(92) + "tb" + chr(92) + "nc" + chr(92) + dq + "d" + chr(92) + chr(92) + "e" + dq + nl + doc = doc + "unicode: " + dq + chr(92) + "u00e9" + chr(92) + "u4e2d" + dq + nl + doc = doc + "hashed: a#b # a real comment" + nl + doc = doc + "in_quotes: " + dq + "a # b" + dq + " # another comment" + nl + doc = doc + "# a whole-line comment" + nl + + root := yaml.parse(doc) + print("root:{yaml.type_of(root)}") + + print("count:{yaml.get_int(root, "count")}") + print("negative:{yaml.get_int(root, "negative")}") + print("hex:{yaml.get_int(root, "hex")}") + print("octal:{yaml.get_int(root, "octal")}") + print("ratio:{yaml.get_float(root, "ratio")}") + print("scaled:{yaml.get_float(root, "scaled")}") + print("tiny:{yaml.get_float(root, "tiny")}") + print("yes_flag:{yaml.get_bool(root, "yes_flag")}") + print("no_flag:{yaml.get_bool(root, "no_flag")}") + + print("empty:{yaml.type_of(yaml.get_value(root, "empty"))}") + print("tilde:{yaml.is_null(yaml.get_value(root, "tilde"))}") + print("spelled:{yaml.is_null(yaml.get_value(root, "spelled"))}") + + print("word:{yaml.get_string(root, "word")}") + # yes/no/on/off are strings under the yaml 1.2 core schema + print("human:{yaml.type_of(yaml.get_value(root, "human"))}:{yaml.get_string(root, "human")}") + print("version:{yaml.type_of(yaml.get_value(root, "version"))}:{yaml.get_string(root, "version")}") + print("quoted:[{yaml.get_string(root, "quoted")}]") + print("single:{yaml.get_string(root, "single")}") + print("escaped:{yaml.get_string(root, "escaped")}") + print("unicode:{yaml.get_string(root, "unicode")}") + print("hashed:{yaml.get_string(root, "hashed")}") + print("in_quotes:{yaml.get_string(root, "in_quotes")}") + + # fallbacks and presence + print("missing:{yaml.get_string_or(root, "nope", "fallback")}") + print("missing_int:{yaml.get_int_or(root, "nope", 9000)}") + print("missing_float:{yaml.get_float_or(root, "nope", 0.5)}") + print("missing_bool:{yaml.get_bool_or(root, "nope", true)}") + print("has_count:{yaml.has(root, "count")}") + print("has_nope:{yaml.has(root, "nope")}") + print("keys:{yaml.keys(root).len()}") + + # a document that is a single scalar + lone := yaml.parse("just a string") + print("lone:{yaml.type_of(lone)}:{yaml.scalar_string(lone)}") + + # an empty document is null + blank := yaml.parse("") + print("blank:{yaml.type_of(blank)}") + return 0 diff --git a/tests/cases/test_yaml_structure.pith b/tests/cases/test_yaml_structure.pith new file mode 100644 index 00000000..a85e1930 --- /dev/null +++ b/tests/cases/test_yaml_structure.pith @@ -0,0 +1,89 @@ +import std.yaml as yaml + +# block mappings, block sequences, the two nested in each other, and flow +# collections. + +fn line(text: String) -> String: + return text + chr(10) + +fn main() -> Int!: + lb := chr(123) + rb := chr(125) + + mut doc := line("name: gateway") + doc = doc + line("server:") + doc = doc + line(" host: localhost") + doc = doc + line(" tls:") + doc = doc + line(" enabled: true") + doc = doc + line(" ciphers:") + doc = doc + line(" - fast") + doc = doc + line(" - safe") + doc = doc + line("ports:") + doc = doc + line(" - 80") + doc = doc + line(" - 443") + doc = doc + line("routes:") + doc = doc + line(" - path: /health") + doc = doc + line(" method: GET") + doc = doc + line(" - path: /metrics") + doc = doc + line(" method: POST") + doc = doc + line("matrix:") + doc = doc + line(" - - 1") + doc = doc + line(" - 2") + doc = doc + line(" - - 3") + doc = doc + line("limits: " + lb + "cpu: 2, memory: 512" + rb) + doc = doc + line("tags: [a, b, c]") + doc = doc + line("nested_flow: " + lb + "outer: [1, " + lb + "inner: two" + rb + "]" + rb) + doc = doc + line("empty_flow: " + lb + rb) + doc = doc + line("empty_list: []") + + root := yaml.parse(doc) + print("root:{yaml.type_of(root)} keys:{yaml.keys(root).join(",")}") + + server := yaml.get_map(root, "server") + print("host:{yaml.get_string(server, "host")}") + + tls := yaml.get_map(server, "tls") + print("tls_enabled:{yaml.get_bool(tls, "enabled")}") + + ciphers := yaml.get_array(tls, "ciphers") + print("ciphers:{yaml.array_len(ciphers)}:{yaml.scalar_string(yaml.array_get(ciphers, 0))}:{yaml.scalar_string(yaml.array_get(ciphers, 1))}") + + ports := yaml.get_array(root, "ports") + print("ports:{yaml.array_len(ports)}:{yaml.scalar_int(yaml.array_get(ports, 0))}:{yaml.scalar_int(yaml.array_get(ports, 1))}") + + routes := yaml.get_array(root, "routes") + print("routes:{yaml.array_len(routes)}") + mut i := 0 + while i < yaml.array_len(routes): + route := yaml.array_get(routes, i) + print(" route:{yaml.get_string(route, "path")}:{yaml.get_string(route, "method")}") + i = i + 1 + + matrix := yaml.get_array(root, "matrix") + row0 := yaml.array_get(matrix, 0) + row1 := yaml.array_get(matrix, 1) + print("matrix:{yaml.array_len(matrix)}:{yaml.array_len(row0)}:{yaml.scalar_int(yaml.array_get(row0, 1))}:{yaml.scalar_int(yaml.array_get(row1, 0))}") + + limits := yaml.get_map(root, "limits") + print("limits:{yaml.get_int(limits, "cpu")}:{yaml.get_int(limits, "memory")}") + + tags := yaml.get_array(root, "tags") + print("tags:{yaml.array_len(tags)}:{yaml.scalar_string(yaml.array_get(tags, 2))}") + + nested := yaml.get_map(root, "nested_flow") + outer := yaml.get_array(nested, "outer") + inner := yaml.array_get(outer, 1) + print("nested:{yaml.array_len(outer)}:{yaml.scalar_int(yaml.array_get(outer, 0))}:{yaml.get_string(inner, "inner")}") + + print("empty_flow:{yaml.type_of(yaml.get_value(root, "empty_flow"))}:{yaml.keys(yaml.get_map(root, "empty_flow")).len()}") + print("empty_list:{yaml.array_len(yaml.get_array(root, "empty_list"))}") + + # get_table is the std.toml spelling of get_map + print("alias:{yaml.get_table(root, "server") == yaml.get_map(root, "server")}") + + # accessors on missing or wrongly typed values stay quiet + print("missing_map:{yaml.get_map(root, "nope")}") + print("missing_seq:{yaml.get_array(root, "nope")}") + print("missing_elem:{yaml.array_get(ports, 7)}") + print("not_a_seq:{yaml.array_len(server)}") + return 0 diff --git a/tests/expected/test_yaml_block_scalars.txt b/tests/expected/test_yaml_block_scalars.txt new file mode 100644 index 00000000..b943e75f --- /dev/null +++ b/tests/expected/test_yaml_block_scalars.txt @@ -0,0 +1,10 @@ +literal:first line\nsecond line\n +stripped:no trailing break +kept:one\n\n\n +folded:these lines become one\nafter a break\n +folded_stripped:joined up +indented:deeper than needed\n one more level\n +hashes:# this is content, not a comment\n +after:done +notes:2:alpha\nbeta\n:plain +empty:[] next:1 diff --git a/tests/expected/test_yaml_derived_decode.txt b/tests/expected/test_yaml_derived_decode.txt new file mode 100644 index 00000000..bd13d9ea --- /dev/null +++ b/tests/expected/test_yaml_derived_decode.txt @@ -0,0 +1,18 @@ +pith:42:true +pith@42 +true +true +true +true +pith:true +pith:true +pith:false +pith:localhost:8080:false +pith:edge:8080:false +localhost#8080 +localhost$8080 +flat&9000 +localhost%8080 +true +true +pool_growth:0 diff --git a/tests/expected/test_yaml_documents.txt b/tests/expected/test_yaml_documents.txt new file mode 100644 index 00000000..f5d38638 --- /dev/null +++ b/tests/expected/test_yaml_documents.txt @@ -0,0 +1,10 @@ +first:first +count:3 +doc0:first +doc1:second +doc2:seq:2:two +leading:1:1 +gaps:2:null:1 +single:1 +inline_marker:true +reason:true diff --git a/tests/expected/test_yaml_json_parity.txt b/tests/expected/test_yaml_json_parity.txt new file mode 100644 index 00000000..541a37cc --- /dev/null +++ b/tests/expected/test_yaml_json_parity.txt @@ -0,0 +1,17 @@ +kinds:object/map +name:true +port:true +tls:true +ratio:true +tags_len:true +tags_0:true +tags_1:true +block_name:true +block_port:true +block_tls:true +block_ratio:true +block_keys:name,port,tls,ratio,tags +block_tags:b +reparsed:8080 +json_untouched:0 +yaml_reclaimed:0 diff --git a/tests/expected/test_yaml_malformed.txt b/tests/expected/test_yaml_malformed.txt new file mode 100644 index 00000000..e0e4f6a6 --- /dev/null +++ b/tests/expected/test_yaml_malformed.txt @@ -0,0 +1,28 @@ +unterminated_double:true:true +unterminated_single:true:true +unterminated_key:true:true +bad_escape:true:true +truncated_unicode:true:true +tab_indent:true:true +over_indent:true:true +seq_for_key:true:true +no_separator:true:true +truncated_seq:true:true +truncated_map:true:true +flow_no_value:true:true +flow_trailing:true:true +anchor:true:true +alias:true:true +merge_key:true:true +tag:true:true +complex_key:true:true +directive:true:true +block_indent_indicator:true:true +multiline_plain:true:true +deep_block:true:true +deep_flow:true:true +legal_depth:true +huge_key:true:true +huge_document:true:true +recovered:1 +no_error:[] diff --git a/tests/expected/test_yaml_pool_scope.txt b/tests/expected/test_yaml_pool_scope.txt new file mode 100644 index 00000000..e639442b --- /dev/null +++ b/tests/expected/test_yaml_pool_scope.txt @@ -0,0 +1,14 @@ +acc=4950 +leaked=0 +live_type=map +stale_type=invalid +stale_after_reparse=invalid +stale_int=0 +stale_lookup=-1 +fresh_id=9 +inner_id=13 +outlives_id=11 +outer_after=invalid nested_after=invalid +after_nesting=0 +failed=true +after_failure=0 diff --git a/tests/expected/test_yaml_scalars.txt b/tests/expected/test_yaml_scalars.txt new file mode 100644 index 00000000..9d55967a --- /dev/null +++ b/tests/expected/test_yaml_scalars.txt @@ -0,0 +1,32 @@ +root:map +count:42 +negative:-7 +hex:31 +octal:15 +ratio:1.5 +scaled:250 +tiny:0.01 +yes_flag:true +no_flag:false +empty:null +tilde:true +spelled:true +word:plain text +human:string:yes +version:string:1.2.3 +quoted:[ spaced ] +single:it's here +escaped:a b +c"d\e +unicode:é中 +hashed:a#b +in_quotes:a # b +missing:fallback +missing_int:9000 +missing_float:0.5 +missing_bool:true +has_count:true +has_nope:false +keys:21 +lone:string:just a string +blank:null diff --git a/tests/expected/test_yaml_structure.txt b/tests/expected/test_yaml_structure.txt new file mode 100644 index 00000000..bccd9aa7 --- /dev/null +++ b/tests/expected/test_yaml_structure.txt @@ -0,0 +1,19 @@ +root:map keys:name,server,ports,routes,matrix,limits,tags,nested_flow,empty_flow,empty_list +host:localhost +tls_enabled:true +ciphers:2:fast:safe +ports:2:80:443 +routes:2 + route:/health:GET + route:/metrics:POST +matrix:2:2:2:3 +limits:2:512 +tags:3:c +nested:2:1:two +empty_flow:map:0 +empty_list:0 +alias:true +missing_map:-1 +missing_seq:-1 +missing_elem:-1 +not_a_seq:0 diff --git a/tests/leaks/leak_yaml_parse.pith b/tests/leaks/leak_yaml_parse.pith new file mode 100644 index 00000000..1d96c1a8 --- /dev/null +++ b/tests/leaks/leak_yaml_parse.pith @@ -0,0 +1,46 @@ +# parsing yaml over and over inside one task. the node pool lives in +# threadlocal storage, so a task that parses per request holds on to every node +# it ever parsed unless something gives them back — open_scope()/close_scope() +# is what gives them back, and this churns it two ways: a single document, and +# a multi-document stream, which allocates a sequence node per document on top +# of each document's own tree. +# +# a bare parse() with no scope around it is deliberately not part of the round. +# that form keeps its nodes on purpose: the handles it returns stay valid for +# as long as the caller wants them, the same contract std.json and std.toml +# have. +import std.yaml as yaml +import leakprobe as probe + +fn document(i: Int) -> String: + nl := chr(10) + return "id: " + i.to_string() + nl + "name: row" + nl + "tags: [a, b]" + nl + +fn scoped_parse(i: Int) -> Int: + scope := yaml.open_scope() + root := yaml.parse(document(i)) + id := yaml.get_int(root, "id") + yaml.array_len(yaml.get_array(root, "tags")) + yaml.close_scope(scope) + return id + +fn scoped_parse_all(i: Int) -> Int: + scope := yaml.open_scope() + stream := document(i) + "---" + chr(10) + document(i + 1) + all := yaml.parse_all(stream) + count := yaml.array_len(all) + yaml.close_scope(scope) + return count + +fn main(): + n := probe.rounds() + mut acc := 0 + mut i := 0 + while i < n: + if i % 2 == 0: + acc = acc + scoped_parse(i) + else: + acc = acc + scoped_parse_all(i) + i = i + 1 + if acc < 0: + print("unreachable") + print("{probe.peak_kb()}") diff --git a/tooling/leak_check.sh b/tooling/leak_check.sh index e4543290..d0b3f83c 100755 --- a/tooling/leak_check.sh +++ b/tooling/leak_check.sh @@ -35,6 +35,7 @@ cases=( tests/leaks/leak_fn_value tests/leaks/leak_task_result_payload tests/leaks/leak_result_extraction + tests/leaks/leak_yaml_parse ) echo "--- leak growth (${low_rounds} vs ${high_rounds} rounds, limit ${limit_kb}kb) ---"