on master help sign in
Cache library interfaces and import record faces
commitd8ac47d6fb8922e6825ba8d9b7f8547f292d9caa authoriko <mail@iko.soy> dateFri 30 Oct 2026, 19:16 (2 days ago) parent8bf1b12
88 files changed+1329−562
docs/compiler.md+2−2 docs/prelude-inventory.md+1−1 docs/status.md+7−6 jibb-dev/lib/jibb-import.hoon+24−6 jibb-dev/lib/jibb.hoon+49−18 jibb-dev/lib/jibb/prelude.jibb+20 tests/clay-fixtures/record-bridge-expected.txt+1 tests/clay-fixtures/record-bridge.txt+11 tests/golden/module-cache-dag/about.txt+4 tests/golden/module-cache-dag/module-trees.txt+46 tests/golden/module-cache-dag/modules.txt+8 tests/golden/module-cache-dag/modules/ui/n0.jibb+3 tests/golden/module-cache-dag/modules/ui/n1.jibb+3 tests/golden/module-cache-dag/modules/ui/n2.jibb+3 tests/golden/module-cache-dag/modules/ui/n3.jibb+3 tests/golden/module-cache-dag/modules/ui/n4.jibb+3 tests/golden/module-cache-dag/modules/ui/n5.jibb+3 tests/golden/module-cache-dag/modules/ui/n6.jibb+3 tests/golden/module-cache-dag/modules/ui/n7.jibb+1 tests/golden/module-cache-dag/source.jibb+2 tests/golden/module-cache-dag/tokens.txt+14 tests/golden/module-cache-dag/tree.txt+5 tests/golden/module-cache-dag/types.txt+2 tests/golden/module-cache-faces/about.txt+4 tests/golden/module-cache-faces/module-trees.txt+4 tests/golden/module-cache-faces/modules.txt+1 tests/golden/module-cache-faces/modules/ui/shared.jibb+1 tests/golden/module-cache-faces/source.jibb+4 tests/golden/module-cache-faces/tokens.txt+28 tests/golden/module-cache-faces/tree.txt+9 tests/golden/module-cache-faces/types.txt+3 tests/golden/module-cache-incomplete/about.txt+4 tests/golden/module-cache-incomplete/module-trees.txt+6 tests/golden/module-cache-incomplete/modules.txt+1 tests/golden/module-cache-incomplete/modules/ui/bad.jibb+4 tests/golden/module-cache-incomplete/source.jibb+3 tests/golden/module-cache-incomplete/tokens.txt+21 tests/golden/module-cache-incomplete/tree.txt+6 tests/golden/module-cache-incomplete/types.txt+2 tests/golden/module-cache-sibling-cycle/about.txt+4 tests/golden/module-cache-sibling-cycle/module-trees.txt+15 tests/golden/module-cache-sibling-cycle/modules.txt+3 tests/golden/module-cache-sibling-cycle/modules/ui/a.jibb+3 tests/golden/module-cache-sibling-cycle/modules/ui/b.jibb+2 tests/golden/module-cache-sibling-cycle/modules/ui/safe.jibb+1 tests/golden/module-cache-sibling-cycle/source.jibb+3 tests/golden/module-cache-sibling-cycle/tokens.txt+18 tests/golden/module-cache-sibling-cycle/tree.txt+4 tests/golden/module-cache-sibling-cycle/types.txt+2 tests/golden/prelude-unit-list-transforms/about.txt+2−2 tests/golden/prelude-unit-list-transforms/source.jibb+20 tests/golden/prelude-unit-list-transforms/tokens.txt+197−83 tests/golden/prelude-unit-list-transforms/tree.txt+92−40 tests/golden/prelude-unit-list-transforms/types.txt+2 tests/golden/types-import-mark-record/about.txt+4 tests/golden/types-import-mark-record/mar/choice.txt+5 tests/golden/types-import-mark-record/mar/note.txt+5 tests/golden/types-import-mark-record/marks.txt+2 tests/golden/types-import-mark-record/source.jibb+5 tests/golden/types-import-mark-record/tokens.txt+30 tests/golden/types-import-mark-record/tree.txt+15 tests/golden/types-import-mark-record/types.txt+4 tests/golden/types-import-sur-record-graph/about.txt+4 tests/golden/types-import-sur-record-graph/imports.txt+1 tests/golden/types-import-sur-record-graph/module-trees.txt+7 tests/golden/types-import-sur-record-graph/modules.txt+1 tests/golden/types-import-sur-record-graph/modules/ui/lib.jibb+2 tests/golden/types-import-sur-record-graph/source.jibb+2 tests/golden/types-import-sur-record-graph/sur/fixture.txt+3 tests/golden/types-import-sur-record-graph/tokens.txt+32 tests/golden/types-import-sur-record-graph/tree.txt+13 tests/golden/types-import-sur-record-graph/types.txt+2 tests/importer/about.txt+1−1 tests/importer/ford.txt+1 tests/importer/origin-transitive.txt+1 tests/importer/small.txt+6 tests/importer/tree.txt+11 tests/lib/jibb-bridge.hoon+1 tests/lib/jibb-mark-bridge.hoon+1−1 tests/lib/jibb.hoon+454−396 tests/type-import/about.txt+2−2 tests/type-import/expected.txt+3−1 tests/type-import/source.txt+2 tests/type-import/sur.txt+2−1 tests/type-mark/about.txt+2−1 tests/type-mark/expected.txt+4 tools/clay-fixtures+13 tools/importer-test+1−1
docs/compiler.md+2−2
@@ -58,11 +58,11 @@ The core is split into chapters, `+| %name`, in this order:
5858
5959The inference fragment supports fixed auras, unrestricted `@`, one-way widening into it and toward aura-family ancestors, generic variables and gates, faced and unfaced cells, cell sample binders, known record field reads, a two-binder cell pattern, a complete two-arm loobean branch, closed local mold aliases and acyclic forward value references. It instantiates generalized top-level definitions when they are used. Acyclic local value definitions can refer forward and generalize variables that are free of their enclosing environment; captured variables and explicit capitals remain shared. Acyclic simple local mold aliases can also refer forward, and are scoped to the body, not its gate's sample. Recursive local groups, and recursive, generic or union local molds remain unsupported. It can infer and generalize atom constraints arising from explicit capitals or bare sample binders, preserve those constraints through aliases, instantiate them independently, and print multiple constraints. Unresolved decimal variables default to `@ud` for inferred types without gates; defaulting inside gate types and other constraint cases remain incomplete. It does not yet check a module, complete imports, general patterns, deferred constraints, recursive or generic molds, dependency cycles or most errors with both conflicting excerpts. Definite cast and call mismatches, incompatible branches and overlapping union cases report both sites and excerpts. Concrete branch results can join at an explicitly present parent aura or `@`. Some known tuple and record positions acquire matching faces, while variable-dependent face merges and ambiguous call-result propagation remain unsupported; function compatibility involving nested `@` and variable-dependent joins remain unsupported except for equal types. The current dependency pass can take quadratic time on long forward chains; the milestone's speed target remains unverified. A separate conservative pass reports unions whose cases are provably disjoint or overlapping and leaves other cases unresolved; it does not claim the mold is checked. Unsupported forms are reported as such, and the partial output says the module has not been checked.
6060
61−The separate `jibb-dev/lib/jibb-import.hoon` is an unfinished reader for selected Hoon type graphs. It handles named recursion, nested map, set, queue, list, unit, jar and jug arguments, direct ordered maps, and direct `$^` unions whose source branches can be proved disjoint. It also reads ordered map fields in records when the map arguments are syntactically fixed atom molds and other fields are fixed atom molds or standard collections of static atom molds. Collection names must not be shadowed. The reader can also import a mark door sample, removing its outer sample face and validating its build subject. A single nested `$^` in a record is checked when its branches and sibling fields use only aura atom molds such as `@ud` and records built from them; both source branches are re-evaluated, unchanged siblings are verified and overlapping cases are rejected. Other nested `$^`, including `$^` in collection arguments, is rejected; other nested ordered maps, general source-level disjointness and complete integration with the checker remain unfinished. `+golden-types-imports` can consume fixed-aura atoms and unfaced cells from caller-supplied reader results for declared `/-` imports; `+golden-types-with-marks` accepts those same shapes from declared mark imports in a separate list. Other forms remain unsupported. Its disjointness proof is conservative and can reject a valid union it cannot prove disjoint. Collection recognition requires the originating `/sur` core. The reader validates direct zuse subjects and Ford subjects consisting of faced imported cores and a validated tail, checking imported cores transitively; it rejects shadowed names, inconsistent core subjects and other subject shapes. For a recursive reference, the reader matches the exact Hoon hold against named arms in validated cores, including transitive Ford imports; it rejects missing, unlabelled or ambiguous origins. Its fixtures include three real Tlon files; `tools/importer-test` compares the internal projection under eval, and the ship test compares the same golden output. `tools/type-import-test` and `tools/type-mark-test` compare bridge reports under eval and on the ship. `tools/clay-fixtures` also passes Clay-built `/sur` molds and mark samples through the Clay-built importer and partial checker.
61+The separate `jibb-dev/lib/jibb-import.hoon` is an unfinished reader for selected Hoon type graphs. It handles named recursion, nested map, set, queue, list, unit, jar and jug arguments, direct ordered maps, and direct `$^` unions whose source branches can be proved disjoint. It also reads ordered map fields in records when the map arguments are syntactically fixed atom molds and other fields are fixed atom molds or standard collections of static atom molds. Collection names must not be shadowed. The reader can also import a mark door sample, removing its outer sample face and validating its build subject. A single nested `$^` in a record is checked when its branches and sibling fields use only aura atom molds such as `@ud`, constant tags and records built from them; both source branches are re-evaluated, unchanged siblings are verified and overlapping cases are rejected. Other nested `$^`, including `$^` in collection arguments, is rejected; other nested ordered maps, general source-level disjointness and complete integration with the checker remain unfinished. `+golden-types-imports` can consume fixed-aura atoms and nested faced or unfaced cells with valid Jibb face names from caller-supplied reader results for declared `/-` imports; `+golden-types-with-marks` accepts those same shapes from declared mark imports in a separate list. Other forms remain unsupported. Its disjointness proof is conservative and can reject a valid union it cannot prove disjoint. Collection recognition requires the originating `/sur` core. The reader validates direct zuse subjects and Ford subjects consisting of faced imported cores and a validated tail, checking imported cores transitively; it rejects shadowed names, inconsistent core subjects and other subject shapes. For a recursive reference, the reader matches the exact Hoon hold against named arms in validated cores, including transitive Ford imports; it rejects missing, unlabelled or ambiguous origins. Its fixtures include three real Tlon files; `tools/importer-test` compares the internal projection under eval, and the ship test compares the same golden output. `tools/type-import-test` and `tools/type-mark-test` compare bridge reports under eval and on the ship. `tools/clay-fixtures` also passes Clay-built `/sur` molds and mark samples through the Clay-built importer and partial checker.
6262
6363Callers that have a `/sur` core and a name can use `+read-named`: it checks for a locally declared arm before asking Hoon to evaluate the mold, and reports evaluation failures with the final Hoon trace line. `+read-mold-in` remains available when the caller already has the selected type. The checker currently treats a failed import as unsupported rather than rendering the importer's error.
6464
65−`+golden-types-with-prelude` accepts case-local Jibb module sources alongside `/sur` and mark results and the vendored prelude source. It resolves reachable ordinary library modules in dependency order, exporting supported closed value schemes and simple mold aliases. It reserves names from the supplied prelude, detects missing sources and cycles, and rejects a dependency if its interface cannot be inferred by the fragment. API files, modules with `main`, unsupported definitions and many other features remain outside this subset; the prelude inventory itself is incomplete. The older `+golden-types-with-modules` entry point fails closed for imports because it has no prelude scope. Neither entry point claims the module has been checked.
65+`+golden-types-with-prelude` accepts case-local Jibb module sources alongside `/sur` and mark results and the vendored prelude source. It resolves reachable ordinary library modules in dependency order, caching completed interfaces per invocation and exporting supported closed value schemes and simple mold aliases. It reserves names from the supplied prelude, detects missing sources and cycles, and rejects a dependency if its interface cannot be inferred by the fragment. API files, modules with `main`, unsupported definitions and many other features remain outside this subset; the prelude inventory itself is incomplete. The older `+golden-types-with-modules` entry point fails closed for imports because it has no prelude scope. Neither entry point claims the module has been checked.
6666
6767And the design notes:
6868
docs/prelude-inventory.md+1−1
@@ -43,7 +43,7 @@ The following is an audit of the Hoon 135 bodies, not a completed Jibb interface
4343
4444`snoc`, `lure`, `fand`, `find`, `flop`, `gulf`, `homo`, `join`, `bake`, `lent`, `levy`, `lien`, `limo`, `murn`, `oust`, `reap`, `rear`, `reel`, `roll`, `scag`, `skid`, `skim`, `skip`, `slag`, `snag`, `snip`, `sort`, `spin`, `spun`, `swag`, `turn`, `weld`, `snap`, `into`, `welp`, `zing`.
4545
46−The current prelude writes `snoc`, `lure`, `flop`, `reel`, `roll`, `skim`, `skip`, `turn` and `weld`. The folds take an explicit initial value as the Prelude table specifies. These implementations still need checker and backend validation.
46+The current prelude writes `snoc`, `lure`, `flop`, `levy`, `lien`, `reel`, `roll`, `skim`, `skip`, `turn` and `weld`. The folds take an explicit initial value as the Prelude table specifies. These implementations still need checker and backend validation.
4747
4848## 2c
4949
docs/status.md+7−6
@@ -19,7 +19,7 @@ On 2026-10-30, @iko decided that Jibb drops `$?`, so a `+$` takes a union's case
1919
2020## Milestone 2: in progress
2121
22−The repository spec records the subsequent type-system and prelude decisions; those changes also need synchronization to the Claude document. An initial inference fragment and a standalone Hoon type reader are being tested. The fragment explicitly reports that it does not check a module; partial bridges pass selected Hoon atoms and unfaced cells from `/sur` molds and marks into inference. The reader handles mark samples, recursive molds whose origins can be verified through Ford imports, nested collections, direct ordered maps, certain ordered-map fields, and direct `$^` unions whose cases can be proved disjoint. Ambiguous recursive origins fail closed; one nested `$^` in a static record of aura molds is checked, while other nested `$^`, nested ordered maps, general union disjointness and complete import integration remain unfinished. The partial checker resolves a subset of ordinary library imports in dependency order using supplied Jibb sources and the current prelude names, and detects missing sources and cycles. It does not yet check API or kind semantics, and the prelude inventory is incomplete. The inference fragment supports unrestricted `@`, selected one-way widenings including aura-family ancestors, generalized atom constraints arising from explicit capitals or bare sample binders, acyclic local value definitions with captures, simple acyclic local mold aliases, and selected faced record casts and field reads. Variable-dependent face merges remain unsupported. Unfixed decimal literals default to `@ud` in gate-free inferred types; recursive local groups, more complex local molds, other constraint cases and defaulting inside gate types still need work. Collection recognition checks the originating core and fails closed on shadows or unsupported Ford subject shapes; its golden fixtures include three real Tlon files. The prelude currently has only a few functions, and [prelude-inventory.md](prelude-inventory.md) is a source audit, not the complete inventory or signatures. The milestone remains unfinished.
22+The repository spec records the subsequent type-system and prelude decisions; those changes also need synchronization to the Claude document. An initial inference fragment and a standalone Hoon type reader are being tested. The fragment explicitly reports that it does not check a module; partial bridges pass selected Hoon atoms and nested faced or unfaced cells from `/sur` molds and marks into inference. The reader handles mark samples, recursive molds whose origins can be verified through Ford imports, nested collections, direct ordered maps, certain ordered-map fields, and direct `$^` unions whose cases can be proved disjoint. Ambiguous recursive origins fail closed; one nested `$^` in a static record of aura and constant-tag molds is checked, while other nested `$^`, nested ordered maps, general union disjointness and complete import integration remain unfinished. The partial checker resolves a subset of ordinary library imports in dependency order using supplied Jibb sources and the current prelude names, caches completed interfaces per run, and detects missing sources and cycles. It does not yet check API or kind semantics, and the prelude inventory is incomplete. The inference fragment supports unrestricted `@`, selected one-way widenings including aura-family ancestors, generalized atom constraints arising from explicit capitals or bare sample binders, acyclic local value definitions with captures, simple acyclic local mold aliases, and selected faced record casts and field reads. Variable-dependent face merges remain unsupported. Unfixed decimal literals default to `@ud` in gate-free inferred types; recursive local groups, more complex local molds, other constraint cases and defaulting inside gate types still need work. Collection recognition checks the originating core and fails closed on shadows or unsupported Ford subject shapes; its golden fixtures include three real Tlon files. The prelude currently has only a few functions, and [prelude-inventory.md](prelude-inventory.md) is a source audit, not the complete inventory or signatures. The milestone remains unfinished.
2323
2424## Milestone 1: parser and mark
2525
@@ -37,8 +37,8 @@ What the plan asks for, and where it is:
3737
3838Besides the plan's list:
3939
40−- 441 golden cases: 225 that parse and 216 that fail, each failure at a stated line and column. One failing case has an unclear expectation (corpus question 3). The newer type-output cases exercise only the partial inference fragment. Each case's `about.txt` quotes the doc's words it tests.
41−- The 441-case corpus passed under `urbit eval` in 25.8 s. The fake ship passed all 446 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 21.5 s for sync and 28.5 s for tests. The importer golden compares 99 projections; `tools/clay-fixtures` builds the example Hoon fixtures through Clay, checks a recursive Ford import's origin, and passes Clay-built types through the Clay-built importer and partial checker.
40+- 447 golden cases: 231 that parse and 216 that fail, each failure at a stated line and column. One failing case has an unclear expectation (corpus question 3). The newer type-output cases exercise only the partial inference fragment. Each case's `about.txt` quotes the doc's words it tests.
41+- The 447-case corpus passed under `urbit eval` in 32.4 s. The fake ship passed all 452 tests, including the importer, importer/checker and mark/checker bridges, module scope and unification checks, with 22.3 s for sync and 34.3 s for tests. The importer golden compares 110 projections; `tools/clay-fixtures` builds the example Hoon fixtures through Clay, checks a recursive Ford import's origin, and passes Clay-built types through the Clay-built importer and partial checker.
4242- `tools/testdata/selftest` (22 checks) and `tools/testdata/ship-selftest` test the tools themselves.
4343- Two independent audits before 7c739b7, one of which compared the library with a reference parser written in Python from the doc over about 19,000 generated programs. Before ab797a9, a second Python parser, written from the decisions, agreed with the library on 8,000 generated programs and 900 hand-written probes.
4444- Speed: starting `urbit eval` and building the library takes about 8 s. After that, a 2,000-line module of 400 definitions parses in about a second. Loops over definitions, arms, lines and items grow no stack; nesting costs a few stack frames a level, and 100,000 nested brackets still parse (library section 3).
@@ -65,14 +65,15 @@ Besides the plan's list:
6565| 1b7dbae | 2026-10-30 | Infer acyclic local definitions and parse case-local Jibb module fixtures |
6666| 8b9c9ac | 2026-10-30 | Preserve recursive import origins, infer simple local molds, and supply Jibb module sources to the partial checker |
6767| 529736a | 2026-10-30 | Infer supported library import graphs and guard nested Hoon `$^` in collections |
68−| This change | 2026-10-30 | Infer selected record faces and check nested `$^` in static Hoon records |
68+| 8bf1b12 | 2026-10-30 | Infer selected record faces and check nested `$^` in static Hoon records |
69+| This change | 2026-10-30 | Cache library interfaces, preserve imported Hoon record faces, and check nested tagged unions |
6970
7071## Checking it
7172
7273On a machine set up as [development.md](development.md) says:
7374
7475```
75−tools/golden # 441 cases under urbit eval
76+tools/golden # 447 cases under urbit eval
7677tools/importer-test # the Hoon importer fixture projection
7778tools/type-import-test # the importer/checker bridge fixture
7879tools/type-mark-test # the mark/checker bridge fixture
@@ -82,7 +83,7 @@ tools/testdata/selftest # the tools themselves
8283tools/doc-blocks docs/spec # the doc's examples are golden cases
8384tools/ship start
8485tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
85−tools/ship test # the same 441 cases as -test arms on the ship
86+tools/ship test # the same 447 cases as -test arms on the ship
8687tools/testdata/ship-selftest
8788tools/ship check-commit # |commit stores .jibb files
8889tools/clay-fixtures # example /sur files and marks build through Clay
jibb-dev/lib/jibb-import.hoon+24−6
@@ -429,15 +429,22 @@
429429 [%| *] ~
430430 ==
431431::
432−:: A static branch contains only literal atom molds and record cells.
432+:: A static branch contains atom molds, exact tag constants and cells.
433+:: A tag shape must compare the current axis to the same atom it returns.
433434++ fixed-cell-mold
434− |= h=hoon
435+ |= [h=hoon axis=@ud]
435436 ^- ?
436− ?^ -.h &($(h -.h) $(h +.h))
437+ ?^ -.h
438+ &($(h -.h, axis (mul 2 axis)) $(h +.h, axis (add 1 (mul 2 axis))))
437439 ?+ h |
438440 [%note *] $(h q.h)
439441 [%ktts *] $(h q.h)
440442 [%ktls *] ?=([%sand *] p.h)
443+ [%wtgr *]
444+ ?. ?=([%dtts [%$ *] [%rock %$ *]] p.h) |
445+ ?. ?=([%rock %tas *] q.h) |
446+ ?^ q.q.h |
447+ &(=(p.p.p.h axis) =(q.q.p.h q.q.h))
441448 ==
442449::
443450:: Return two source records with a single $^ replaced by each branch.
@@ -449,10 +456,10 @@
449456 =/ right $(h +.h, axis (add 1 (mul 2 axis)))
450457 ?^ left
451458 ?^ right ~
452− ?. (fixed-cell-mold +.h) ~
459+ ?. (fixed-cell-mold +.h (add 1 (mul 2 axis))) ~
453460 [~ [[one.u.left +.h] [two.u.left +.h]]]
454461 ?~ right ~
455− ?. (fixed-cell-mold -.h) ~
462+ ?. (fixed-cell-mold -.h (mul 2 axis)) ~
456463 [~ [[-.h one.u.right] [-.h two.u.right]]]
457464 ?+ h ~
458465 [%note *]
@@ -465,7 +472,7 @@
465472 [~ [h(q one.u.out) h(q two.u.out)]]
466473 [%wtcl *]
467474 ?. =(p.h [%dtwt [%$ (mul 2 axis)]]) ~
468− ?. &((fixed-cell-mold q.h) (fixed-cell-mold r.h)) ~
475+ ?. &((fixed-cell-mold q.h axis) (fixed-cell-mold r.h axis)) ~
469476 [~ [q.h r.h]]
470477 ==
471478::
@@ -1122,6 +1129,17 @@
11221129 (crip "set-direct-invalid-cell: {(show-result (sample %set-direct-invalid-cell))}")
11231130 (crip "map-key-invalid-cell: {(show-result (sample %map-key-invalid-cell))}")
11241131 (crip "nested-atom-cell: {(show-result (sample %nested-atom-cell))}")
1132+ (crip "nested-tags: {(show-result (sample %nested-tags))}")
1133+ (crip "nested-tags-overlap: {(show-result (sample %nested-tags-overlap))}")
1134+ (crip "nested-tagged: {(show-result (sample %nested-tagged))}")
1135+ (crip "nested-tagged-bckt: {(show-result (sample %nested-tagged-bckt))}")
1136+ (crip "nested-tagged-overlap: {(show-result (sample %nested-tagged-overlap))}")
1137+ (crip "nested-tagged-alias: {(show-result (sample %nested-tagged-alias))}")
1138+ (crip "nested-tagged-ford: {(show-result (read-named %outer %tagged trans))}")
1139+ (crip "tag-static-valid: {?:((fixed-cell-mold [%wtgr [%dtts [%$ 13] [%rock %$ %foo]] [%rock %tas %foo]] 13) "yes" "no")}")
1140+ (crip "tag-static-wrong-axis: {?:((fixed-cell-mold [%wtgr [%dtts [%$ 12] [%rock %$ %foo]] [%rock %tas %foo]] 13) "wrong" "no")}")
1141+ (crip "tag-static-nonconstant: {?:((fixed-cell-mold [%wtgr [%dtts [%$ 13] [%rock %$ %foo]] [%$ 13]] 13) "wrong" "no")}")
1142+ (crip "tag-static-wrong-value: {?:((fixed-cell-mold [%wtgr [%dtts [%$ 13] [%rock %$ %foo]] [%rock %tas %bar]] 13) "wrong" "no")}")
11251143 (crip "nested-first-cell: {(show-result (sample %nested-first-cell))}")
11261144 (crip "nested-alias-cell: {(show-result (sample %nested-alias-cell))}")
11271145 (crip "nested-multiple-cell: {(show-result (sample %nested-multiple-cell))}")
jibb-dev/lib/jibb.hoon+49−18
@@ -5123,9 +5123,17 @@
51235123 $(ds t.ds)
51245124::
51255125::
5126−:: The importer owns its algebra. Only successful %atom and %cell nouns
5127−:: in the supported subset are decoded here. In particular a singleton,
5128−:: face, union, collection or recursive reference must not be widened.
5126+:: The importer owns its algebra. Fixed atoms, cells and Jibb-named faces
5127+:: are decoded recursively. Singletons, unions, collections, recursive
5128+:: references and invalid face names remain unsupported, never widened.
5129+::
5130+++ jibb-face-name
5131+ |= name=@
5132+ ^- ?
5133+ =/ chars=tape (trip (@t name))
5134+ ?~ chars |
5135+ ?. (is-lower i.chars) |
5136+ (levy t.chars |=(c=@tD (in c name-mask)))
51295137::
51305138++ import-to-itype
51315139 |= node=*
@@ -5137,6 +5145,13 @@
51375145 =/ aura=@ta (@ta +<.node)
51385146 ?. |(?=(?(%u %ud %ux %uv %t %ta %tas %p %da %dr) aura) =('tD' aura)) ~
51395147 `[%atom aura]
5148+ %face
5149+ ?. ?=([%face @ *] node) ~
5150+ =/ name=@ +<.node
5151+ ?. (jibb-face-name name) ~
5152+ =/ body=(unit itype) $(node +>.node)
5153+ ?~ body ~
5154+ `[%face (@tas name) u.body]
51405155 %cell
51415156 ?. ?=([%cell * *] node) ~
51425157 =/ left=(unit itype) $(node +<.node)
@@ -6014,8 +6029,9 @@
60146029::
60156030+$ jsource [at=path source=@t]
60166031+$ jbundle (list jsource)
6017−+$ jfile-result (each ifile @t)
6018−+$ jimports-result (each ijimports @t)
6032++$ jcache (list [at=path iface=ifile])
6033++$ jfile-result (each [iface=ifile cache=jcache] @t)
6034++$ jimports-result (each [resolved=ijimports cache=jcache] @t)
60196035::
60206036++ import-binding-names
60216037 |= imports=(list import)
@@ -6064,10 +6080,22 @@
60646080 ?~ (ienv-lookup name.i.ds env) |
60656081 $(ds t.ds)
60666082::
6083+:: Cache only completed interfaces for this invocation. The source bundle,
6084+:: imported Hoon types and prelude are fixed for the whole graph. Check the
6085+:: active path and duplicate sources before consulting it, so a cache hit
6086+:: cannot hide a cycle or ambiguous source.
6087+::
6088+++ find-jibb-cache
6089+ |= [at=path cache=jcache]
6090+ ^- (unit ifile)
6091+ ?~ cache ~
6092+ ?: =(at at.i.cache) `iface.i.cache
6093+ $(cache t.cache)
6094+::
60676095++ resolve-jibb-imports
6068− |= [imports=(list import) externals=iexternals mark-externals=imark-externals modules=jbundle active=(list path) prelude-values=(list term) prelude-molds=(list term)]
6096+ |= [imports=(list import) externals=iexternals mark-externals=imark-externals modules=jbundle active=(list path) prelude-values=(list term) prelude-molds=(list term) cache=jcache]
60696097 ^- jimports-result
6070− ?~ imports [%& ~]
6098+ ?~ imports [%& [~ cache]]
60716099 ?. ?=(%jibb -.i.imports) $(imports t.imports)
60726100 =/ at=path (weld path.i.imports `path`~[%jibb])
60736101 ?: (lien active |=(p=path =(p at)))
@@ -6075,14 +6103,17 @@
60756103 =/ found=jbundle (skim modules |=(m=jsource =(at at.m)))
60766104 ?~ found [%| (crip "module source missing: {(spud at)}")]
60776105 ?^ t.found [%| (crip "duplicate module sources: {(spud at)}")]
6078− =/ iface=jfile-result (infer-jibb-file at source.i.found externals mark-externals modules [at active] prelude-values prelude-molds)
6106+ =/ cached=(unit ifile) (find-jibb-cache at cache)
6107+ =/ iface=jfile-result
6108+ ?^ cached [%& [u.cached cache]]
6109+ (infer-jibb-file at source.i.found externals mark-externals modules [at active] prelude-values prelude-molds cache)
60796110 ?: ?=(%| -.iface) [%| p.iface]
6080− =/ rest=jimports-result $(imports t.imports)
6111+ =/ rest=jimports-result $(imports t.imports, cache cache.p.iface)
60816112 ?: ?=(%| -.rest) rest
6082− [%& [[face.i.imports p.iface] p.rest]]
6113+ [%& [[[face.i.imports iface.p.iface] resolved.p.rest] cache.p.rest]]
60836114::
60846115++ infer-jibb-file
6085− |= [at=path src=@t externals=iexternals mark-externals=imark-externals modules=jbundle active=(list path) prelude-values=(list term) prelude-molds=(list term)]
6116+ |= [at=path src=@t externals=iexternals mark-externals=imark-externals modules=jbundle active=(list path) prelude-values=(list term) prelude-molds=(list term) cache=jcache]
60866117 ^- jfile-result
60876118 ?: ?=([%ui %api *] at) [%| (crip "API module needs unsupported inference: {(spud at)}")]
60886119 =/ parsed (parse at src)
@@ -6092,20 +6123,20 @@
60926123 =/ vals=(list term) (global-value-names defs.mod)
60936124 ?: (lien vals |=(n=term =(n %main)))
60946125 [%| (crip "module kind needs unsupported inference: {(spud at)}")]
6095− =/ js=jimports-result (resolve-jibb-imports imports.mod externals mark-externals modules active prelude-values prelude-molds)
6126+ =/ js=jimports-result (resolve-jibb-imports imports.mod externals mark-externals modules active prelude-values prelude-molds cache)
60966127 ?: ?=(%| -.js) [%| p.js]
60976128 =/ molds=imolds (collect-simple-molds defs.mod)
60986129 =/ globals=(list term) (weld prelude-values (weld (import-binding-names imports.mod) vals))
60996130 =/ surs=(list term) (collect-sur-imports imports.mod)
61006131 =/ marks=(list term) (collect-mark-imports imports.mod)
6101− =/ reserved=(list term) (weld prelude-molds (turn p.js |=(j=[face=term interface=ifile] face.j)))
6102− =/ state=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks p.js reserved ~ |]
6132+ =/ reserved=(list term) (weld prelude-molds (turn resolved.p.js |=(j=[face=term interface=ifile] face.j)))
6133+ =/ state=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks resolved.p.js reserved ~ |]
61036134 =/ mts=(each imold-types @t) (module-mold-types molds state)
61046135 ?: ?=(%| -.mts) [%| (crip "{(trip p.mts)}: {(spud at)}")]
6105− =/ env=ienv (resolve-supported-defs defs.mod molds globals externals surs mark-externals marks p.js reserved)
6136+ =/ env=ienv (resolve-supported-defs defs.mod molds globals externals surs mark-externals marks resolved.p.js reserved)
61066137 ?. (module-values-complete defs.mod env)
61076138 [%| (crip "module definitions need unsupported inference: {(spud at)}")]
6108− [%& [env p.mts]]
6139+ [%& [[env p.mts] [[at [env p.mts]] cache.p.js]]]
61096140::
61106141:: +golden-types-with-modules fails closed for imports without prelude
61116142:: scope. +golden-types-with-prelude resolves supported library graphs;
@@ -6137,11 +6168,11 @@
61376168 ?. (module-scope-valid p.parsed prelude-values prelude-molds)
61386169 'partial inference; module not checked\0amodule has conflicting names'
61396170 =/ js=jimports-result
6140− (resolve-jibb-imports imports.p.parsed externals mark-externals modules ~[file] prelude-values prelude-molds)
6171+ (resolve-jibb-imports imports.p.parsed externals mark-externals modules ~[file] prelude-values prelude-molds ~)
61416172 ?: ?=(%| -.js) (of-wain:format ~['partial inference; module not checked' p.js])
61426173 =/ scope-values=(list term)
61436174 (weld prelude-values (weld (collect-sur-imports imports.p.parsed) (collect-mark-imports imports.p.parsed)))
6144− (golden-types-in-context file src externals mark-externals p.js scope-values prelude-molds)
6175+ (golden-types-in-context file src externals mark-externals resolved.p.js scope-values prelude-molds)
61456176::
61466177:: +golden-types-with-marks: supply declared mark types separately from /sur
61476178:: entries, as [mark result] with the result from +read-mark:jibb-import.
jibb-dev/lib/jibb/prelude.jibb+20
@@ -196,6 +196,26 @@
196196 %.y (skip rest predicate)
197197 %.n [item (skip rest predicate)]
198198
199+++ levy |= args=[(list A) $-(A ?)]
200+ ?- args
201+ [xs predicate]
202+ ?- xs
203+ ~ %.y
204+ [item rest]
205+ ?- (predicate item)
206+ %.y (levy rest predicate)
207+ %.n %.n
208+
209+++ lien |= args=[(list A) $-(A ?)]
210+ ?- args
211+ [xs predicate]
212+ ?- xs
213+ ~ %.n
214+ [item rest]
215+ ?- (predicate item)
216+ %.y %.y
217+ %.n (lien rest predicate)
218+
199219++ roll |= args=[(list A) B $-([A B] B)]
200220 ?- args
201221 [xs start combine]
tests/clay-fixtures/record-bridge-expected.txtnew file+1
@@ -0,0 +1 @@
1+'partial inference; module not checked\0a++ title: $-([title=@t slug=@ta] @t)'
tests/clay-fixtures/record-bridge.txtnew file+11
@@ -0,0 +1,11 @@
1+=/ m (strand ,vase)
2+;< =bowl:spider bind:m get-bowl
3+=/ now=@da now.bowl
4+=/ blog=vase .^(vase %ca /[(scot %p our.bowl)]/my-app/[(scot %da now)]/sur/blog/hoon)
5+=/ reader=vase .^(vase %ca /[(scot %p our.bowl)]/my-app/[(scot %da now)]/lib/jibb-import/hoon)
6+=/ jibb=vase .^(vase %ca /[(scot %p our.bowl)]/my-app/[(scot %da now)]/lib/jibb/hoon)
7+=/ read-gate=vase (slap reader (ream 'read-named'))
8+=/ post-result=vase (slym read-gate [%blog %post -.blog])
9+=/ check-gate=vase (slap jibb (ream 'golden-types-imports'))
10+=/ src=@t '/- blog\0a++ title |= x=post.blog title.x\0a'
11+(pure:m (slym check-gate [/ui/test/jibb src ~[[%blog %post +.post-result]]]))
tests/golden/module-cache-dag/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Imports: `/=` imports a Jibb module and import cycles are errors.
2+tests: A shared acyclic graph imports each library twice under distinct faces; the reachable identity still infers.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/module-cache-dag/module-trees.txtnew file+46
@@ -0,0 +1,46 @@
1+/ui/n0.jibb
2+(module
3+ (jibb 1:1 left /ui/n1)
4+ (jibb 2:1 right /ui/n1)
5+ (value 3:1 id
6+ (gate-wide 3:7 (bind 3:10 x) (wing 3:12 x))))
7+/ui/n1.jibb
8+(module
9+ (jibb 1:1 left /ui/n2)
10+ (jibb 2:1 right /ui/n2)
11+ (value 3:1 id
12+ (gate-wide 3:7 (bind 3:10 x) (wing 3:12 x))))
13+/ui/n2.jibb
14+(module
15+ (jibb 1:1 left /ui/n3)
16+ (jibb 2:1 right /ui/n3)
17+ (value 3:1 id
18+ (gate-wide 3:7 (bind 3:10 x) (wing 3:12 x))))
19+/ui/n3.jibb
20+(module
21+ (jibb 1:1 left /ui/n4)
22+ (jibb 2:1 right /ui/n4)
23+ (value 3:1 id
24+ (gate-wide 3:7 (bind 3:10 x) (wing 3:12 x))))
25+/ui/n4.jibb
26+(module
27+ (jibb 1:1 left /ui/n5)
28+ (jibb 2:1 right /ui/n5)
29+ (value 3:1 id
30+ (gate-wide 3:7 (bind 3:10 x) (wing 3:12 x))))
31+/ui/n5.jibb
32+(module
33+ (jibb 1:1 left /ui/n6)
34+ (jibb 2:1 right /ui/n6)
35+ (value 3:1 id
36+ (gate-wide 3:7 (bind 3:10 x) (wing 3:12 x))))
37+/ui/n6.jibb
38+(module
39+ (jibb 1:1 left /ui/n7)
40+ (jibb 2:1 right /ui/n7)
41+ (value 3:1 id
42+ (gate-wide 3:7 (bind 3:10 x) (wing 3:12 x))))
43+/ui/n7.jibb
44+(module
45+ (value 1:1 id
46+ (gate-wide 1:7 (bind 1:10 x) (wing 1:12 x))))
tests/golden/module-cache-dag/modules.txtnew file+8
@@ -0,0 +1,8 @@
1+/ui/n0.jibb
2+/ui/n1.jibb
3+/ui/n2.jibb
4+/ui/n3.jibb
5+/ui/n4.jibb
6+/ui/n5.jibb
7+/ui/n6.jibb
8+/ui/n7.jibb
tests/golden/module-cache-dag/modules/ui/n0.jibbnew file+3
@@ -0,0 +1,3 @@
1+/= left /ui/n1
2+/= right /ui/n1
3+++ id |=(x x)
tests/golden/module-cache-dag/modules/ui/n1.jibbnew file+3
@@ -0,0 +1,3 @@
1+/= left /ui/n2
2+/= right /ui/n2
3+++ id |=(x x)
tests/golden/module-cache-dag/modules/ui/n2.jibbnew file+3
@@ -0,0 +1,3 @@
1+/= left /ui/n3
2+/= right /ui/n3
3+++ id |=(x x)
tests/golden/module-cache-dag/modules/ui/n3.jibbnew file+3
@@ -0,0 +1,3 @@
1+/= left /ui/n4
2+/= right /ui/n4
3+++ id |=(x x)
tests/golden/module-cache-dag/modules/ui/n4.jibbnew file+3
@@ -0,0 +1,3 @@
1+/= left /ui/n5
2+/= right /ui/n5
3+++ id |=(x x)
tests/golden/module-cache-dag/modules/ui/n5.jibbnew file+3
@@ -0,0 +1,3 @@
1+/= left /ui/n6
2+/= right /ui/n6
3+++ id |=(x x)
tests/golden/module-cache-dag/modules/ui/n6.jibbnew file+3
@@ -0,0 +1,3 @@
1+/= left /ui/n7
2+/= right /ui/n7
3+++ id |=(x x)
tests/golden/module-cache-dag/modules/ui/n7.jibbnew file+1
@@ -0,0 +1 @@
1+++ id |=(x x)
tests/golden/module-cache-dag/source.jibbnew file+2
@@ -0,0 +1,2 @@
1+/= a /ui/n0
2+++ value (id.a "hi")
tests/golden/module-cache-dag/tokens.txtnew file+14
@@ -0,0 +1,14 @@
1+1:1 glyph /=
2+1:5 name a
3+1:7 glyph /
4+1:8 tight knot ui
5+1:10 tight glyph /
6+1:11 tight knot n0
7+2:1 NEWLINE
8+2:1 glyph ++
9+2:4 name value
10+2:10 glyph (
11+2:11 tight wing id.a
12+2:16 str "hi"
13+2:20 tight glyph )
14+2:21 NEWLINE
tests/golden/module-cache-dag/tree.txtnew file+5
@@ -0,0 +1,5 @@
1+(module
2+ (jibb 1:1 a /ui/n0)
3+ (value 2:1 value
4+ (group 2:10
5+ (call 2:11 (wing 2:11 id.a) (str 2:16 "hi")))))
tests/golden/module-cache-dag/types.txtnew file+2
@@ -0,0 +1,2 @@
1+partial inference; module not checked
2+++ value: @t
tests/golden/module-cache-faces/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Modules: "Everything is exported and read through the import's face"; Imports: "Import cycles are errors".
2+tests: The same library reached under two faces has independently instantiated identity schemes.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/module-cache-faces/module-trees.txtnew file+4
@@ -0,0 +1,4 @@
1+/ui/shared.jibb
2+(module
3+ (value 1:1 id
4+ (gate-wide 1:7 (bind 1:10 x) (wing 1:12 x))))
tests/golden/module-cache-faces/modules.txtnew file+1
@@ -0,0 +1 @@
1+/ui/shared.jibb
tests/golden/module-cache-faces/modules/ui/shared.jibbnew file+1
@@ -0,0 +1 @@
1+++ id |=(x x)
tests/golden/module-cache-faces/source.jibbnew file+4
@@ -0,0 +1,4 @@
1+/= first /ui/shared
2+/= second /ui/shared
3+++ ship (id.first ~zod)
4+++ text-value (id.second "hi")
tests/golden/module-cache-faces/tokens.txtnew file+28
@@ -0,0 +1,28 @@
1+1:1 glyph /=
2+1:5 name first
3+1:11 glyph /
4+1:12 tight knot ui
5+1:14 tight glyph /
6+1:15 tight knot shared
7+2:1 NEWLINE
8+2:1 glyph /=
9+2:5 name second
10+2:12 glyph /
11+2:13 tight knot ui
12+2:15 tight glyph /
13+2:16 tight knot shared
14+3:1 NEWLINE
15+3:1 glyph ++
16+3:4 name ship
17+3:9 glyph (
18+3:10 tight wing id.first
19+3:19 lit ~zod
20+3:23 tight glyph )
21+4:1 NEWLINE
22+4:1 glyph ++
23+4:4 name text-value
24+4:15 glyph (
25+4:16 tight wing id.second
26+4:26 str "hi"
27+4:30 tight glyph )
28+4:31 NEWLINE
tests/golden/module-cache-faces/tree.txtnew file+9
@@ -0,0 +1,9 @@
1+(module
2+ (jibb 1:1 first /ui/shared)
3+ (jibb 2:1 second /ui/shared)
4+ (value 3:1 ship
5+ (group 3:9
6+ (call 3:10 (wing 3:10 id.first) (lit 3:19 ~zod))))
7+ (value 4:1 text-value
8+ (group 4:15
9+ (call 4:16 (wing 4:16 id.second) (str 4:26 "hi")))))
tests/golden/module-cache-faces/types.txtnew file+3
@@ -0,0 +1,3 @@
1+partial inference; module not checked
2+++ ship: @p
3+++ text-value: @t
tests/golden/module-cache-incomplete/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Modules: "Everything is exported and read through the import's face"; Imports: "Import cycles are errors".
2+tests: A shared library with an unsupported mold yields no partial interface, even though one value could be inferred.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/module-cache-incomplete/module-trees.txtnew file+6
@@ -0,0 +1,6 @@
1+/ui/bad.jibb
2+(module
3+ (mold 1:1 choice
4+ (union 2:3 (const 2:3 %a) (const 3:3 %b)))
5+ (value 4:1 id
6+ (gate-wide 4:7 (bind 4:10 x) (wing 4:12 x))))
tests/golden/module-cache-incomplete/modules.txtnew file+1
@@ -0,0 +1 @@
1+/ui/bad.jibb
tests/golden/module-cache-incomplete/modules/ui/bad.jibbnew file+4
@@ -0,0 +1,4 @@
1++$ choice
2+ %a
3+ %b
4+++ id |=(x x)
tests/golden/module-cache-incomplete/source.jibbnew file+3
@@ -0,0 +1,3 @@
1+/= first /ui/bad
2+/= second /ui/bad
3+++ result (id.first "hi")
tests/golden/module-cache-incomplete/tokens.txtnew file+21
@@ -0,0 +1,21 @@
1+1:1 glyph /=
2+1:5 name first
3+1:11 glyph /
4+1:12 tight knot ui
5+1:14 tight glyph /
6+1:15 tight knot bad
7+2:1 NEWLINE
8+2:1 glyph /=
9+2:5 name second
10+2:12 glyph /
11+2:13 tight knot ui
12+2:15 tight glyph /
13+2:16 tight knot bad
14+3:1 NEWLINE
15+3:1 glyph ++
16+3:4 name result
17+3:11 glyph (
18+3:12 tight wing id.first
19+3:21 str "hi"
20+3:25 tight glyph )
21+3:26 NEWLINE
tests/golden/module-cache-incomplete/tree.txtnew file+6
@@ -0,0 +1,6 @@
1+(module
2+ (jibb 1:1 first /ui/bad)
3+ (jibb 2:1 second /ui/bad)
4+ (value 3:1 result
5+ (group 3:11
6+ (call 3:12 (wing 3:12 id.first) (str 3:21 "hi")))))
tests/golden/module-cache-incomplete/types.txtnew file+2
@@ -0,0 +1,2 @@
1+partial inference; module not checked
2+module mold needs unsupported inference: /ui/bad/jibb
tests/golden/module-cache-sibling-cycle/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Modules: "Everything is exported and read through the import's face"; Imports: "Import cycles are errors".
2+tests: A cycle reached after a previously checked sibling dependency is still reported.
3+expect: parses
4+expect-types: a partial inference report
tests/golden/module-cache-sibling-cycle/module-trees.txtnew file+15
@@ -0,0 +1,15 @@
1+/ui/safe.jibb
2+(module
3+ (value 1:1 id
4+ (gate-wide 1:7 (bind 1:10 x) (wing 1:12 x))))
5+/ui/a.jibb
6+(module
7+ (jibb 1:1 shared /ui/safe)
8+ (jibb 2:1 next /ui/b)
9+ (value 3:1 id
10+ (gate-wide 3:7 (bind 3:10 x) (wing 3:12 x))))
11+/ui/b.jibb
12+(module
13+ (jibb 1:1 back /ui/a)
14+ (value 2:1 id
15+ (gate-wide 2:7 (bind 2:10 x) (wing 2:12 x))))
tests/golden/module-cache-sibling-cycle/modules.txtnew file+3
@@ -0,0 +1,3 @@
1+/ui/safe.jibb
2+/ui/a.jibb
3+/ui/b.jibb
tests/golden/module-cache-sibling-cycle/modules/ui/a.jibbnew file+3
@@ -0,0 +1,3 @@
1+/= shared /ui/safe
2+/= next /ui/b
3+++ id |=(x x)
tests/golden/module-cache-sibling-cycle/modules/ui/b.jibbnew file+2
@@ -0,0 +1,2 @@
1+/= back /ui/a
2+++ id |=(x x)
tests/golden/module-cache-sibling-cycle/modules/ui/safe.jibbnew file+1
@@ -0,0 +1 @@
1+++ id |=(x x)
tests/golden/module-cache-sibling-cycle/source.jibbnew file+3
@@ -0,0 +1,3 @@
1+/= first /ui/safe
2+/= second /ui/a
3+++ result 1
tests/golden/module-cache-sibling-cycle/tokens.txtnew file+18
@@ -0,0 +1,18 @@
1+1:1 glyph /=
2+1:5 name first
3+1:11 glyph /
4+1:12 tight knot ui
5+1:14 tight glyph /
6+1:15 tight knot safe
7+2:1 NEWLINE
8+2:1 glyph /=
9+2:5 name second
10+2:12 glyph /
11+2:13 tight knot ui
12+2:15 tight glyph /
13+2:16 tight knot a
14+3:1 NEWLINE
15+3:1 glyph ++
16+3:4 name result
17+3:11 lit 1
18+3:12 NEWLINE
tests/golden/module-cache-sibling-cycle/tree.txtnew file+4
@@ -0,0 +1,4 @@
1+(module
2+ (jibb 1:1 first /ui/safe)
3+ (jibb 2:1 second /ui/a)
4+ (value 3:1 result (lit 3:11 1)))
tests/golden/module-cache-sibling-cycle/types.txtnew file+2
@@ -0,0 +1,2 @@
1+partial inference; module not checked
2+import cycle at /ui/a/jibb
tests/golden/prelude-unit-list-transforms/about.txt+2−2
@@ -1,4 +1,4 @@
1−source: Overview, Prelude: "The exported inventory includes all names from the Hoon library sections listed below, excluding the groups explicitly left out"; Hoon 2a includes `drop`, `bind`, `biff`, `both` and `clef`, and 2b includes `skim`, `skip`, `roll` and `reel`. Folds take an explicit start.
2−tests: The complete current prelude parses, including unit-to-list conversion, unit mapping and flat mapping, two ways to combine units, complementary list filters, and left and right folds. The filters retain the order of their selected items.
1+source: Overview, Prelude: "The exported inventory includes all names from the Hoon library sections listed below, excluding the groups explicitly left out"; Hoon 2a includes `drop`, `bind`, `biff`, `both` and `clef`, and 2b includes `skim`, `skip`, `levy`, `lien`, `roll` and `reel`. Folds take an explicit start.
2+tests: The complete current prelude parses, including unit-to-list conversion, unit mapping and flat mapping, two ways to combine units, complementary list filters, all/any predicates, and left and right folds. The filters retain the order of their selected items.
33expect: parses
44expect-types: a partial inference report, not a checked module; unit and list gate typing is not complete
tests/golden/prelude-unit-list-transforms/source.jibb+20
@@ -196,6 +196,26 @@
196196 %.y (skip rest predicate)
197197 %.n [item (skip rest predicate)]
198198
199+++ levy |= args=[(list A) $-(A ?)]
200+ ?- args
201+ [xs predicate]
202+ ?- xs
203+ ~ %.y
204+ [item rest]
205+ ?- (predicate item)
206+ %.y (levy rest predicate)
207+ %.n %.n
208+
209+++ lien |= args=[(list A) $-(A ?)]
210+ ?- args
211+ [xs predicate]
212+ ?- xs
213+ ~ %.n
214+ [item rest]
215+ ?- (predicate item)
216+ %.y %.y
217+ %.n (lien rest predicate)
218+
199219++ roll |= args=[(list A) B $-([A B] B)]
200220 ?- args
201221 [xs start combine]
tests/golden/prelude-unit-list-transforms/tokens.txt+197−83
@@ -1208,7 +1208,7 @@
12081208199:1 DEDENT
12091209199:1 NEWLINE
12101210199:1 glyph ++
1211−199:4 name roll
1211+199:4 name levy
12121212199:9 glyph |=
12131213199:12 name args
12141214199:16 tight glyph =
@@ -1217,101 +1217,215 @@
12171217199:19 tight name list
12181218199:24 tvar A
12191219199:25 tight glyph )
1220−199:27 tvar B
1221−199:29 glyph $-(
1222−199:32 tight glyph [
1223−199:33 tight tvar A
1224−199:35 tvar B
1225−199:36 tight glyph ]
1226−199:38 tvar B
1227−199:39 tight glyph )
1228−199:40 tight glyph ]
1220+199:27 glyph $-(
1221+199:30 tight tvar A
1222+199:32 glyph ?
1223+199:33 tight glyph )
1224+199:34 tight glyph ]
12291225200:3 INDENT
12301226200:3 glyph ?-
12311227200:6 name args
12321228201:5 INDENT
12331229201:5 glyph [
12341230201:6 tight name xs
1235−201:9 name start
1236−201:15 name combine
1237−201:22 tight glyph ]
1231+201:9 name predicate
1232+201:18 tight glyph ]
12381233202:7 INDENT
12391234202:7 glyph ?-
12401235202:10 name xs
12411236203:9 INDENT
12421237203:9 lit ~
1243−203:11 name start
1238+203:11 lit %.y
12441239204:9 NEWLINE
12451240204:9 glyph [
12461241204:10 tight name item
12471242204:15 name rest
12481243204:19 tight glyph ]
1249−204:21 glyph (
1250−204:22 tight name roll
1251−204:27 name rest
1252−204:32 glyph (
1253−204:33 tight name combine
1254−204:41 name item
1255−204:46 name start
1256−204:51 tight glyph )
1257−204:53 name combine
1258−204:60 tight glyph )
1259−206:1 DEDENT
1260−206:1 DEDENT
1261−206:1 DEDENT
1262−206:1 DEDENT
1263−206:1 NEWLINE
1264−206:1 glyph ++
1265−206:4 name reel
1266−206:9 glyph |=
1267−206:12 name args
1268−206:16 tight glyph =
1269−206:17 tight glyph [
1270−206:18 tight glyph (
1271−206:19 tight name list
1272−206:24 tvar A
1273−206:25 tight glyph )
1274−206:27 tvar B
1275−206:29 glyph $-(
1276−206:32 tight glyph [
1277−206:33 tight tvar A
1278−206:35 tvar B
1279−206:36 tight glyph ]
1280−206:38 tvar B
1281−206:39 tight glyph )
1282−206:40 tight glyph ]
1283−207:3 INDENT
1284−207:3 glyph ?-
1285−207:6 name args
1286−208:5 INDENT
1287−208:5 glyph [
1288−208:6 tight name xs
1289−208:9 name start
1290−208:15 name combine
1291−208:22 tight glyph ]
1292−209:7 INDENT
1293−209:7 glyph ?-
1294−209:10 name xs
1295−210:9 INDENT
1296−210:9 lit ~
1297−210:11 name start
1298−211:9 NEWLINE
1299−211:9 glyph [
1300−211:10 tight name item
1301−211:15 name rest
1302−211:19 tight glyph ]
1303−211:21 glyph (
1304−211:22 tight name combine
1305−211:30 name item
1306−211:35 glyph (
1307−211:36 tight name reel
1308−211:41 name rest
1309−211:46 name start
1310−211:52 name combine
1311−211:59 tight glyph )
1312−211:60 tight glyph )
1313−211:61 DEDENT
1314−211:61 DEDENT
1315−211:61 DEDENT
1316−211:61 DEDENT
1317−211:61 NEWLINE
1244+205:11 INDENT
1245+205:11 glyph ?-
1246+205:14 glyph (
1247+205:15 tight name predicate
1248+205:25 name item
1249+205:29 tight glyph )
1250+206:13 INDENT
1251+206:13 lit %.y
1252+206:17 glyph (
1253+206:18 tight name levy
1254+206:23 name rest
1255+206:28 name predicate
1256+206:37 tight glyph )
1257+207:13 NEWLINE
1258+207:13 lit %.n
1259+207:17 lit %.n
1260+209:1 DEDENT
1261+209:1 DEDENT
1262+209:1 DEDENT
1263+209:1 DEDENT
1264+209:1 DEDENT
1265+209:1 DEDENT
1266+209:1 NEWLINE
1267+209:1 glyph ++
1268+209:4 name lien
1269+209:9 glyph |=
1270+209:12 name args
1271+209:16 tight glyph =
1272+209:17 tight glyph [
1273+209:18 tight glyph (
1274+209:19 tight name list
1275+209:24 tvar A
1276+209:25 tight glyph )
1277+209:27 glyph $-(
1278+209:30 tight tvar A
1279+209:32 glyph ?
1280+209:33 tight glyph )
1281+209:34 tight glyph ]
1282+210:3 INDENT
1283+210:3 glyph ?-
1284+210:6 name args
1285+211:5 INDENT
1286+211:5 glyph [
1287+211:6 tight name xs
1288+211:9 name predicate
1289+211:18 tight glyph ]
1290+212:7 INDENT
1291+212:7 glyph ?-
1292+212:10 name xs
1293+213:9 INDENT
1294+213:9 lit ~
1295+213:11 lit %.n
1296+214:9 NEWLINE
1297+214:9 glyph [
1298+214:10 tight name item
1299+214:15 name rest
1300+214:19 tight glyph ]
1301+215:11 INDENT
1302+215:11 glyph ?-
1303+215:14 glyph (
1304+215:15 tight name predicate
1305+215:25 name item
1306+215:29 tight glyph )
1307+216:13 INDENT
1308+216:13 lit %.y
1309+216:17 lit %.y
1310+217:13 NEWLINE
1311+217:13 lit %.n
1312+217:17 glyph (
1313+217:18 tight name lien
1314+217:23 name rest
1315+217:28 name predicate
1316+217:37 tight glyph )
1317+219:1 DEDENT
1318+219:1 DEDENT
1319+219:1 DEDENT
1320+219:1 DEDENT
1321+219:1 DEDENT
1322+219:1 DEDENT
1323+219:1 NEWLINE
1324+219:1 glyph ++
1325+219:4 name roll
1326+219:9 glyph |=
1327+219:12 name args
1328+219:16 tight glyph =
1329+219:17 tight glyph [
1330+219:18 tight glyph (
1331+219:19 tight name list
1332+219:24 tvar A
1333+219:25 tight glyph )
1334+219:27 tvar B
1335+219:29 glyph $-(
1336+219:32 tight glyph [
1337+219:33 tight tvar A
1338+219:35 tvar B
1339+219:36 tight glyph ]
1340+219:38 tvar B
1341+219:39 tight glyph )
1342+219:40 tight glyph ]
1343+220:3 INDENT
1344+220:3 glyph ?-
1345+220:6 name args
1346+221:5 INDENT
1347+221:5 glyph [
1348+221:6 tight name xs
1349+221:9 name start
1350+221:15 name combine
1351+221:22 tight glyph ]
1352+222:7 INDENT
1353+222:7 glyph ?-
1354+222:10 name xs
1355+223:9 INDENT
1356+223:9 lit ~
1357+223:11 name start
1358+224:9 NEWLINE
1359+224:9 glyph [
1360+224:10 tight name item
1361+224:15 name rest
1362+224:19 tight glyph ]
1363+224:21 glyph (
1364+224:22 tight name roll
1365+224:27 name rest
1366+224:32 glyph (
1367+224:33 tight name combine
1368+224:41 name item
1369+224:46 name start
1370+224:51 tight glyph )
1371+224:53 name combine
1372+224:60 tight glyph )
1373+226:1 DEDENT
1374+226:1 DEDENT
1375+226:1 DEDENT
1376+226:1 DEDENT
1377+226:1 NEWLINE
1378+226:1 glyph ++
1379+226:4 name reel
1380+226:9 glyph |=
1381+226:12 name args
1382+226:16 tight glyph =
1383+226:17 tight glyph [
1384+226:18 tight glyph (
1385+226:19 tight name list
1386+226:24 tvar A
1387+226:25 tight glyph )
1388+226:27 tvar B
1389+226:29 glyph $-(
1390+226:32 tight glyph [
1391+226:33 tight tvar A
1392+226:35 tvar B
1393+226:36 tight glyph ]
1394+226:38 tvar B
1395+226:39 tight glyph )
1396+226:40 tight glyph ]
1397+227:3 INDENT
1398+227:3 glyph ?-
1399+227:6 name args
1400+228:5 INDENT
1401+228:5 glyph [
1402+228:6 tight name xs
1403+228:9 name start
1404+228:15 name combine
1405+228:22 tight glyph ]
1406+229:7 INDENT
1407+229:7 glyph ?-
1408+229:10 name xs
1409+230:9 INDENT
1410+230:9 lit ~
1411+230:11 name start
1412+231:9 NEWLINE
1413+231:9 glyph [
1414+231:10 tight name item
1415+231:15 name rest
1416+231:19 tight glyph ]
1417+231:21 glyph (
1418+231:22 tight name combine
1419+231:30 name item
1420+231:35 glyph (
1421+231:36 tight name reel
1422+231:41 name rest
1423+231:46 name start
1424+231:52 name combine
1425+231:59 tight glyph )
1426+231:60 tight glyph )
1427+231:61 DEDENT
1428+231:61 DEDENT
1429+231:61 DEDENT
1430+231:61 DEDENT
1431+231:61 NEWLINE
tests/golden/prelude-unit-list-transforms/tree.txt+92−40
@@ -505,56 +505,108 @@
505505 (wing 197:18 item)
506506 (group 197:23
507507 (call 197:24 (wing 197:24 skip) (wing 197:29 rest) (wing 197:34 predicate)))))))))))))))
508− (value 199:1 roll
508+ (value 199:1 levy
509509 (gate 199:9
510510 (face 199:12 args
511511 (cell 199:17
512512 (apply 199:18 list (tvar 199:24 A))
513− (tvar 199:27 B)
514− (fn 199:29
515− (cell 199:32 (tvar 199:33 A) (tvar 199:35 B))
516− (tvar 199:38 B))))
513+ (fn 199:27 (tvar 199:30 A) (flag 199:32))))
517514 (body 200:3
518515 (branch 200:3
519516 (wing 200:6 args)
520517 (arm 201:5
521− (cell 201:5 (bind 201:6 xs) (bind 201:9 start) (bind 201:15 combine))
518+ (cell 201:5 (bind 201:6 xs) (bind 201:9 predicate))
522519 (body 202:7
523520 (branch 202:7
524521 (wing 202:10 xs)
525− (arm 203:9 (lit 203:9 ~) (wing 203:11 start))
522+ (arm 203:9 (lit 203:9 ~) (lit 203:11 %.y))
526523 (arm 204:9
527524 (cell 204:9 (bind 204:10 item) (bind 204:15 rest))
528− (group 204:21
529− (call 204:22
530− (wing 204:22 roll)
531− (wing 204:27 rest)
532− (group 204:32
533− (call 204:33 (wing 204:33 combine) (wing 204:41 item) (wing 204:46 start)))
534− (wing 204:53 combine)))))))))))
535− (value 206:1 reel
536− (gate 206:9
537− (face 206:12 args
538− (cell 206:17
539− (apply 206:18 list (tvar 206:24 A))
540− (tvar 206:27 B)
541− (fn 206:29
542− (cell 206:32 (tvar 206:33 A) (tvar 206:35 B))
543− (tvar 206:38 B))))
544− (body 207:3
545− (branch 207:3
546− (wing 207:6 args)
547− (arm 208:5
548− (cell 208:5 (bind 208:6 xs) (bind 208:9 start) (bind 208:15 combine))
549− (body 209:7
550− (branch 209:7
551− (wing 209:10 xs)
552− (arm 210:9 (lit 210:9 ~) (wing 210:11 start))
553− (arm 211:9
554− (cell 211:9 (bind 211:10 item) (bind 211:15 rest))
555− (group 211:21
556− (call 211:22
557− (wing 211:22 combine)
558− (wing 211:30 item)
559− (group 211:35
560− (call 211:36 (wing 211:36 reel) (wing 211:41 rest) (wing 211:46 start) (wing 211:52 combine))))))))))))))
525+ (body 205:11
526+ (branch 205:11
527+ (group 205:14
528+ (call 205:15 (wing 205:15 predicate) (wing 205:25 item)))
529+ (arm 206:13
530+ (lit 206:13 %.y)
531+ (group 206:17
532+ (call 206:18 (wing 206:18 levy) (wing 206:23 rest) (wing 206:28 predicate))))
533+ (arm 207:13 (lit 207:13 %.n) (lit 207:17 %.n))))))))))))
534+ (value 209:1 lien
535+ (gate 209:9
536+ (face 209:12 args
537+ (cell 209:17
538+ (apply 209:18 list (tvar 209:24 A))
539+ (fn 209:27 (tvar 209:30 A) (flag 209:32))))
540+ (body 210:3
541+ (branch 210:3
542+ (wing 210:6 args)
543+ (arm 211:5
544+ (cell 211:5 (bind 211:6 xs) (bind 211:9 predicate))
545+ (body 212:7
546+ (branch 212:7
547+ (wing 212:10 xs)
548+ (arm 213:9 (lit 213:9 ~) (lit 213:11 %.n))
549+ (arm 214:9
550+ (cell 214:9 (bind 214:10 item) (bind 214:15 rest))
551+ (body 215:11
552+ (branch 215:11
553+ (group 215:14
554+ (call 215:15 (wing 215:15 predicate) (wing 215:25 item)))
555+ (arm 216:13 (lit 216:13 %.y) (lit 216:17 %.y))
556+ (arm 217:13
557+ (lit 217:13 %.n)
558+ (group 217:17
559+ (call 217:18 (wing 217:18 lien) (wing 217:23 rest) (wing 217:28 predicate))))))))))))))
560+ (value 219:1 roll
561+ (gate 219:9
562+ (face 219:12 args
563+ (cell 219:17
564+ (apply 219:18 list (tvar 219:24 A))
565+ (tvar 219:27 B)
566+ (fn 219:29
567+ (cell 219:32 (tvar 219:33 A) (tvar 219:35 B))
568+ (tvar 219:38 B))))
569+ (body 220:3
570+ (branch 220:3
571+ (wing 220:6 args)
572+ (arm 221:5
573+ (cell 221:5 (bind 221:6 xs) (bind 221:9 start) (bind 221:15 combine))
574+ (body 222:7
575+ (branch 222:7
576+ (wing 222:10 xs)
577+ (arm 223:9 (lit 223:9 ~) (wing 223:11 start))
578+ (arm 224:9
579+ (cell 224:9 (bind 224:10 item) (bind 224:15 rest))
580+ (group 224:21
581+ (call 224:22
582+ (wing 224:22 roll)
583+ (wing 224:27 rest)
584+ (group 224:32
585+ (call 224:33 (wing 224:33 combine) (wing 224:41 item) (wing 224:46 start)))
586+ (wing 224:53 combine)))))))))))
587+ (value 226:1 reel
588+ (gate 226:9
589+ (face 226:12 args
590+ (cell 226:17
591+ (apply 226:18 list (tvar 226:24 A))
592+ (tvar 226:27 B)
593+ (fn 226:29
594+ (cell 226:32 (tvar 226:33 A) (tvar 226:35 B))
595+ (tvar 226:38 B))))
596+ (body 227:3
597+ (branch 227:3
598+ (wing 227:6 args)
599+ (arm 228:5
600+ (cell 228:5 (bind 228:6 xs) (bind 228:9 start) (bind 228:15 combine))
601+ (body 229:7
602+ (branch 229:7
603+ (wing 229:10 xs)
604+ (arm 230:9 (lit 230:9 ~) (wing 230:11 start))
605+ (arm 231:9
606+ (cell 231:9 (bind 231:10 item) (bind 231:15 rest))
607+ (group 231:21
608+ (call 231:22
609+ (wing 231:22 combine)
610+ (wing 231:30 item)
611+ (group 231:35
612+ (call 231:36 (wing 231:36 reel) (wing 231:41 rest) (wing 231:46 start) (wing 231:52 combine))))))))))))))
tests/golden/prelude-unit-list-transforms/types.txt+2
@@ -46,5 +46,7 @@ partial inference; module not checked
4646++ clef: sample mold is not supported by partial inference
4747++ skim: sample mold is not supported by partial inference
4848++ skip: sample mold is not supported by partial inference
49+++ levy: sample mold is not supported by partial inference
50+++ lien: sample mold is not supported by partial inference
4951++ roll: sample mold is not supported by partial inference
5052++ reel: sample mold is not supported by partial inference
tests/golden/types-import-mark-record/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Overview, Importing Hoon types: records and unions import from Hoon; Grammar, Imports: `/%` names a type after its mark.
2+tests: A real mark door's faced, nested record reaches partial inference, including a nested field read. A different mark with a union in a faced field remains unsupported rather than being widened.
3+expect: parses
4+expect-types: a partial report showing the record and rejecting the unsupported union
tests/golden/types-import-mark-record/mar/choice.txtnew file+5
@@ -0,0 +1,5 @@
1+|_ a=[kind=?(%on %off) id=@ud]
2+++ grab |% ++ noun [kind=?(%on %off) id=@ud] --
3+++ grow |% ++ noun a --
4+++ grad %noun
5+--
tests/golden/types-import-mark-record/mar/note.txtnew file+5
@@ -0,0 +1,5 @@
1+|_ a=[meta=[title=@t count=@ud] id=@ud]
2+++ grab |% ++ noun [meta=[title=@t count=@ud] id=@ud] --
3+++ grow |% ++ noun a --
4+++ grad %noun
5+--
tests/golden/types-import-mark-record/marks.txtnew file+2
@@ -0,0 +1,2 @@
1+note
2+choice
tests/golden/types-import-mark-record/source.jibbnew file+5
@@ -0,0 +1,5 @@
1+/% %note
2+/% %choice
3+++ echo |= item=note item
4+++ title |= item=note title.meta.item
5+++ unsupported |= item=choice item
tests/golden/types-import-mark-record/tokens.txtnew file+30
@@ -0,0 +1,30 @@
1+1:1 glyph /%
2+1:5 lit %note
3+2:1 NEWLINE
4+2:1 glyph /%
5+2:5 lit %choice
6+3:1 NEWLINE
7+3:1 glyph ++
8+3:4 name echo
9+3:9 glyph |=
10+3:12 name item
11+3:16 tight glyph =
12+3:17 tight name note
13+3:22 name item
14+4:1 NEWLINE
15+4:1 glyph ++
16+4:4 name title
17+4:10 glyph |=
18+4:13 name item
19+4:17 tight glyph =
20+4:18 tight name note
21+4:23 wing title.meta.item
22+5:1 NEWLINE
23+5:1 glyph ++
24+5:4 name unsupported
25+5:16 glyph |=
26+5:19 name item
27+5:23 tight glyph =
28+5:24 tight name choice
29+5:31 name item
30+5:35 NEWLINE
tests/golden/types-import-mark-record/tree.txtnew file+15
@@ -0,0 +1,15 @@
1+(module
2+ (mark 1:1 %note)
3+ (mark 2:1 %choice)
4+ (value 3:1 echo
5+ (gate 3:9
6+ (face 3:12 item (ref 3:17 note))
7+ (wing 3:22 item)))
8+ (value 4:1 title
9+ (gate 4:10
10+ (face 4:13 item (ref 4:18 note))
11+ (wing 4:23 title.meta.item)))
12+ (value 5:1 unsupported
13+ (gate 5:16
14+ (face 5:19 item (ref 5:24 choice))
15+ (wing 5:31 item))))
tests/golden/types-import-mark-record/types.txtnew file+4
@@ -0,0 +1,4 @@
1+partial inference; module not checked
2+++ echo: $-([meta=[title=@t count=@ud] id=@ud] [meta=[title=@t count=@ud] id=@ud])
3+++ title: $-([meta=[title=@t count=@ud] id=@ud] @t)
4+++ unsupported: sample mold is not supported by partial inference
tests/golden/types-import-sur-record-graph/about.txtnew file+4
@@ -0,0 +1,4 @@
1+source: Grammar, Imports: `/-` imports Hoon molds and `/=` imports Jibb modules; Molds: "Faces are part of the type".
2+tests: A Jibb library imports a nested faced Hoon record, exports a gate over it and the caller uses that gate with the faces intact. The root does not import the Hoon mold directly.
3+expect: parses
4+expect-types: a partial report with the nested record faces
tests/golden/types-import-sur-record-graph/imports.txtnew file+1
@@ -0,0 +1 @@
1+fixture entry
tests/golden/types-import-sur-record-graph/module-trees.txtnew file+7
@@ -0,0 +1,7 @@
1+/ui/lib.jibb
2+(module
3+ (sur 1:1 fixture)
4+ (value 2:1 id
5+ (gate 2:7
6+ (face 2:10 item (ref 2:15 entry.fixture))
7+ (wing 2:29 item))))
tests/golden/types-import-sur-record-graph/modules.txtnew file+1
@@ -0,0 +1 @@
1+/ui/lib.jibb
tests/golden/types-import-sur-record-graph/modules/ui/lib.jibbnew file+2
@@ -0,0 +1,2 @@
1+/- fixture
2+++ id |= item=entry.fixture item
tests/golden/types-import-sur-record-graph/source.jibbnew file+2
@@ -0,0 +1,2 @@
1+/= lib /ui/lib
2+++ echo |= item=[meta=[title=@t count=@ud] id=@ud] (id.lib item)
tests/golden/types-import-sur-record-graph/sur/fixture.txtnew file+3
@@ -0,0 +1,3 @@
1+|%
2++$ entry [meta=[title=@t count=@ud] id=@ud]
3+--
tests/golden/types-import-sur-record-graph/tokens.txtnew file+32
@@ -0,0 +1,32 @@
1+1:1 glyph /=
2+1:5 name lib
3+1:9 glyph /
4+1:10 tight knot ui
5+1:12 tight glyph /
6+1:13 tight knot lib
7+2:1 NEWLINE
8+2:1 glyph ++
9+2:4 name echo
10+2:9 glyph |=
11+2:12 name item
12+2:16 tight glyph =
13+2:17 tight glyph [
14+2:18 tight name meta
15+2:22 tight glyph =
16+2:23 tight glyph [
17+2:24 tight name title
18+2:29 tight glyph =
19+2:30 tight aura @t
20+2:33 name count
21+2:38 tight glyph =
22+2:39 tight aura @ud
23+2:42 tight glyph ]
24+2:44 name id
25+2:46 tight glyph =
26+2:47 tight aura @ud
27+2:50 tight glyph ]
28+2:52 glyph (
29+2:53 tight wing id.lib
30+2:60 name item
31+2:64 tight glyph )
32+2:65 NEWLINE
tests/golden/types-import-sur-record-graph/tree.txtnew file+13
@@ -0,0 +1,13 @@
1+(module
2+ (jibb 1:1 lib /ui/lib)
3+ (value 2:1 echo
4+ (gate 2:9
5+ (face 2:12 item
6+ (cell 2:17
7+ (face 2:18 meta
8+ (cell 2:23
9+ (face 2:24 title (aura 2:30 @t))
10+ (face 2:33 count (aura 2:39 @ud))))
11+ (face 2:44 id (aura 2:47 @ud))))
12+ (group 2:52
13+ (call 2:53 (wing 2:53 id.lib) (wing 2:60 item))))))
tests/golden/types-import-sur-record-graph/types.txtnew file+2
@@ -0,0 +1,2 @@
1+partial inference; module not checked
2+++ echo: $-([meta=[title=@t count=@ud] id=@ud] [meta=[title=@t count=@ud] id=@ud])
tests/importer/about.txt+1−1
@@ -2,7 +2,7 @@
22recursion, and unsupported forms. `shadow.txt` checks local generator
33shadowing and missing provenance. `shadow-static.txt` checks that a local
44list shadow alongside a nested ordered map is rejected. Static sibling
5−collections and dependent sibling molds are tested separately. A single nested `$^` in a record of aura atom molds and records is checked
5+collections and dependent sibling molds are tested separately. A single nested `$^` in a record of aura atom molds, constant tags and records is checked
66from its source branches. Named or validated siblings and branches, multiple `$^` cases,
77and `$^` in collection arguments fail closed before Hoon can collapse
88overlapping branches; nested `$@` cases remain supported. `ford.txt`
tests/importer/ford.txt+1
@@ -2,6 +2,7 @@
22+$ lists (list @ud)
33+$ wrapped item:small
44+$ recursive chain:small
5++$ tagged-record nested-tagged:small
56+$ nested-record nested-valid-cell:small
67+$ local $@(~ [v=@ud next=local])
78--
tests/importer/origin-transitive.txt+1
@@ -1,4 +1,5 @@
11|%
22+$ wrapped recursive:intermediate
3++$ tagged tagged-record:intermediate
34+$ nested nested-record:intermediate
45--
tests/importer/small.txt+6
@@ -36,6 +36,12 @@
3636+$ set-direct-invalid-cell (set $^(@ud @ud))
3737+$ map-key-invalid-cell (map $^(@ud @ud) @t)
3838+$ nested-atom-cell [left=$@(@ud [a=@ud b=@t]) right=$@(@t [c=@ud d=@t])]
39++$ nested-tags [id=@ud value=$^(%foo %bar)]
40++$ nested-tags-overlap [id=@ud value=$^(%foo %foo)]
41++$ nested-tagged [id=@ud value=$^([%foo @t] [%bar @ud])]
42++$ nested-tagged-bckt [id=@ud value=$^([%foo bckt=@t] [%bar bckt=@ud])]
43++$ nested-tagged-overlap [id=@ud value=$^([%foo @t] [%foo @ud])]
44++$ nested-tagged-alias nested-tagged
3945+$ nested-first-cell [value=$^(@ud [a=@ud b=@t]) id=@t]
4046+$ nested-alias-cell nested-valid-cell
4147+$ nested-multiple-cell [id=$^(@ud @ud) value=$^(@ud [a=@ud b=@t])]
tests/importer/tree.txt+11
@@ -56,6 +56,17 @@ map-nested-invalid-cell: error: a Hoon $^ union needs a source-level disjointnes
5656set-direct-invalid-cell: error: a Hoon $^ union needs a source-level disjointness check
5757map-key-invalid-cell: error: a Hoon $^ union needs a source-level disjointness check
5858nested-atom-cell: [left=(union [a=@ud b=@t] @ud) right=(union [c=@ud d=@t] @t)]
59+nested-tags: [id=@ud value=(union foo bar)]
60+nested-tags-overlap: error: a Hoon $^ union has overlapping cases
61+nested-tagged: [id=@ud value=(union [foo @t] [bar @ud])]
62+nested-tagged-bckt: [id=@ud value=(union [foo bckt=@t] [bar bckt=@ud])]
63+nested-tagged-overlap: error: a Hoon $^ union has overlapping cases
64+nested-tagged-alias: [id=@ud value=(union [foo @t] [bar @ud])]
65+nested-tagged-ford: [id=@ud value=(union [foo @t] [bar @ud])]
66+tag-static-valid: yes
67+tag-static-wrong-axis: no
68+tag-static-nonconstant: no
69+tag-static-wrong-value: no
5970nested-first-cell: [value=(union [a=@ud b=@t] @ud) id=@t]
6071nested-alias-cell: [id=@ud value=(union [a=@ud b=@t] @ud)]
6172nested-multiple-cell: error: a Hoon $^ union needs a source-level disjointness check
tests/lib/jibb-bridge.hoon+1
@@ -28,6 +28,7 @@
2828 :~ [%fixture %title (read %title)]
2929 [%fixture %pair (read %pair)]
3030 [%fixture %faced (read %faced)]
31+ [%fixture %nested (read %nested)]
3132 [%fixture %constant (read %constant)]
3233 [%fixture %choice (read %choice)]
3334 [%fixture %failed [%| 'unsupported Hoon type']]
tests/lib/jibb-mark-bridge.hoon+1−1
@@ -24,5 +24,5 @@
2424++ bridge-output
2525 |= [declared=@t missing=@t sur=@t collision=@t]
2626 ^- @t
27− (of-wain:format ~[(golden-types-with-marks:jibb /test/jibb declared ~ ~[[%label [%& [%atom %t ~]]]]) (golden-types-with-marks:jibb /test/jibb missing ~ ~[[%label [%& [%atom %t ~]]]]) (golden-types-with-marks:jibb /test/jibb sur ~ ~[[%label [%& [%atom %t ~]]]]) (golden-types-with-marks:jibb /test/jibb collision ~ ~[[%label [%& [%atom %t ~]]]]) (golden-types-with-marks:jibb /test/jibb declared ~ ~[[%label [%| 'failed']]]) (golden-types-with-marks:jibb /test/jibb declared ~ ~[[%label [%& [%atom %t ~]]] [%label [%& [%atom %ud ~]]]]) (golden-types-with-marks:jibb /test/jibb declared ~ ~[[%label [%& [%face %x [%atom %t ~]]]]])])
27+ (of-wain:format ~[(golden-types-with-marks:jibb /test/jibb declared ~ ~[[%label [%& [%atom %t ~]]]]) (golden-types-with-marks:jibb /test/jibb missing ~ ~[[%label [%& [%atom %t ~]]]]) (golden-types-with-marks:jibb /test/jibb sur ~ ~[[%label [%& [%atom %t ~]]]]) (golden-types-with-marks:jibb /test/jibb collision ~ ~[[%label [%& [%atom %t ~]]]]) (golden-types-with-marks:jibb /test/jibb declared ~ ~[[%label [%| 'failed']]]) (golden-types-with-marks:jibb /test/jibb declared ~ ~[[%label [%& [%atom %t ~]]] [%label [%& [%atom %ud ~]]]]) (golden-types-with-marks:jibb /test/jibb declared ~ ~[[%label [%& [%face %x [%fork ~]]]]]) (golden-types-with-marks:jibb /test/jibb declared ~ ~[[%label [%& [%face 'Bad' [%atom %t ~]]]]]) (golden-types-with-marks:jibb /test/jibb declared ~ ~[[%label [%& [%face %$ [%atom %t ~]]]]])])
2828--
tests/lib/jibb.hoon+454−396
@@ -1137,333 +1137,379 @@
11371137/* src-372 %jibb /tests/golden/lex-tight-wing-ok-1/source/jibb
11381138/* tok-372 %txt /tests/golden/lex-tight-wing-ok-1/tokens/txt
11391139/* tre-372 %txt /tests/golden/lex-tight-wing-ok-1/tree/txt
1140−/* src-373 %jibb /tests/golden/module-fixture-eof/source/jibb
1141−/* tok-373 %txt /tests/golden/module-fixture-eof/tokens/txt
1142−/* tre-373 %txt /tests/golden/module-fixture-eof/tree/txt
1143−/* mod-373-1 %jibb /tests/golden/module-fixture-eof/modules/ui/incomplete/jibb
1144−/* mtre-373 %txt /tests/golden/module-fixture-eof/module-trees/txt
1145−/* src-374 %jibb /tests/golden/module-import-atom-scheme/source/jibb
1146−/* tok-374 %txt /tests/golden/module-import-atom-scheme/tokens/txt
1147−/* tre-374 %txt /tests/golden/module-import-atom-scheme/tree/txt
1148−/* mod-374-1 %jibb /tests/golden/module-import-atom-scheme/modules/ui/mid/jibb
1149−/* mod-374-2 %jibb /tests/golden/module-import-atom-scheme/modules/ui/base/jibb
1150−/* typ-374 %txt /tests/golden/module-import-atom-scheme/types/txt
1151−/* mtre-374 %txt /tests/golden/module-import-atom-scheme/module-trees/txt
1152−/* src-375 %jibb /tests/golden/module-import-cycle/source/jibb
1153−/* tok-375 %txt /tests/golden/module-import-cycle/tokens/txt
1154−/* tre-375 %txt /tests/golden/module-import-cycle/tree/txt
1155−/* mod-375-1 %jibb /tests/golden/module-import-cycle/modules/ui/a/jibb
1156−/* mod-375-2 %jibb /tests/golden/module-import-cycle/modules/ui/b/jibb
1157−/* typ-375 %txt /tests/golden/module-import-cycle/types/txt
1158−/* mtre-375 %txt /tests/golden/module-import-cycle/module-trees/txt
1159−/* src-376 %jibb /tests/golden/module-import-empty/source/jibb
1160−/* tok-376 %txt /tests/golden/module-import-empty/tokens/txt
1161−/* tre-376 %txt /tests/golden/module-import-empty/tree/txt
1162−/* typ-376 %txt /tests/golden/module-import-empty/types/txt
1163−/* src-377 %jibb /tests/golden/module-import-face-shadow/source/jibb
1164−/* tok-377 %txt /tests/golden/module-import-face-shadow/tokens/txt
1165−/* tre-377 %txt /tests/golden/module-import-face-shadow/tree/txt
1166−/* mod-377-1 %jibb /tests/golden/module-import-face-shadow/modules/ui/lib/jibb
1167−/* typ-377 %txt /tests/golden/module-import-face-shadow/types/txt
1168−/* mtre-377 %txt /tests/golden/module-import-face-shadow/module-trees/txt
1169−/* src-378 %jibb /tests/golden/module-import-identity/source/jibb
1170−/* tok-378 %txt /tests/golden/module-import-identity/tokens/txt
1171−/* tre-378 %txt /tests/golden/module-import-identity/tree/txt
1172−/* mod-378-1 %jibb /tests/golden/module-import-identity/modules/ui/lib/jibb
1173−/* typ-378 %txt /tests/golden/module-import-identity/types/txt
1174−/* mtre-378 %txt /tests/golden/module-import-identity/module-trees/txt
1175−/* src-379 %jibb /tests/golden/module-import-invalid/source/jibb
1176−/* tok-379 %txt /tests/golden/module-import-invalid/tokens/txt
1177−/* tre-379 %txt /tests/golden/module-import-invalid/tree/txt
1178−/* mod-379-1 %jibb /tests/golden/module-import-invalid/modules/ui/lib/jibb
1179−/* typ-379 %txt /tests/golden/module-import-invalid/types/txt
1180−/* mtre-379 %txt /tests/golden/module-import-invalid/module-trees/txt
1181−/* src-380 %jibb /tests/golden/module-import-missing-member/source/jibb
1182−/* tok-380 %txt /tests/golden/module-import-missing-member/tokens/txt
1183−/* tre-380 %txt /tests/golden/module-import-missing-member/tree/txt
1184−/* mod-380-1 %jibb /tests/golden/module-import-missing-member/modules/ui/lib/jibb
1185−/* typ-380 %txt /tests/golden/module-import-missing-member/types/txt
1186−/* mtre-380 %txt /tests/golden/module-import-missing-member/module-trees/txt
1187−/* src-381 %jibb /tests/golden/module-import-mold/source/jibb
1188−/* tok-381 %txt /tests/golden/module-import-mold/tokens/txt
1189−/* tre-381 %txt /tests/golden/module-import-mold/tree/txt
1190−/* mod-381-1 %jibb /tests/golden/module-import-mold/modules/ui/lib/jibb
1191−/* typ-381 %txt /tests/golden/module-import-mold/types/txt
1192−/* mtre-381 %txt /tests/golden/module-import-mold/module-trees/txt
1193−/* src-382 %jibb /tests/golden/module-import-prelude-cross-namespace/source/jibb
1194−/* tok-382 %txt /tests/golden/module-import-prelude-cross-namespace/tokens/txt
1195−/* tre-382 %txt /tests/golden/module-import-prelude-cross-namespace/tree/txt
1196−/* typ-382 %txt /tests/golden/module-import-prelude-cross-namespace/types/txt
1197−/* src-383 %jibb /tests/golden/module-import-prelude-mold-shadow/source/jibb
1198−/* tok-383 %txt /tests/golden/module-import-prelude-mold-shadow/tokens/txt
1199−/* tre-383 %txt /tests/golden/module-import-prelude-mold-shadow/tree/txt
1200−/* typ-383 %txt /tests/golden/module-import-prelude-mold-shadow/types/txt
1201−/* src-384 %jibb /tests/golden/module-import-prelude-sample-shadow/source/jibb
1202−/* tok-384 %txt /tests/golden/module-import-prelude-sample-shadow/tokens/txt
1203−/* tre-384 %txt /tests/golden/module-import-prelude-sample-shadow/tree/txt
1204−/* mod-384-1 %jibb /tests/golden/module-import-prelude-sample-shadow/modules/ui/lib/jibb
1205−/* typ-384 %txt /tests/golden/module-import-prelude-sample-shadow/types/txt
1206−/* mtre-384 %txt /tests/golden/module-import-prelude-sample-shadow/module-trees/txt
1207−/* src-385 %jibb /tests/golden/module-import-prelude-value-shadow/source/jibb
1208−/* tok-385 %txt /tests/golden/module-import-prelude-value-shadow/tokens/txt
1209−/* tre-385 %txt /tests/golden/module-import-prelude-value-shadow/tree/txt
1210−/* mod-385-1 %jibb /tests/golden/module-import-prelude-value-shadow/modules/ui/lib/jibb
1211−/* typ-385 %txt /tests/golden/module-import-prelude-value-shadow/types/txt
1212−/* mtre-385 %txt /tests/golden/module-import-prelude-value-shadow/module-trees/txt
1213−/* src-386 %jibb /tests/golden/module-import-root-cycle/source/jibb
1214−/* tok-386 %txt /tests/golden/module-import-root-cycle/tokens/txt
1215−/* tre-386 %txt /tests/golden/module-import-root-cycle/tree/txt
1216−/* mod-386-1 %jibb /tests/golden/module-import-root-cycle/modules/ui/a/jibb
1217−/* typ-386 %txt /tests/golden/module-import-root-cycle/types/txt
1218−/* mtre-386 %txt /tests/golden/module-import-root-cycle/module-trees/txt
1219−/* src-387 %jibb /tests/golden/module-import-root-import-shadow/source/jibb
1220−/* tok-387 %txt /tests/golden/module-import-root-import-shadow/tokens/txt
1221−/* tre-387 %txt /tests/golden/module-import-root-import-shadow/tree/txt
1222−/* typ-387 %txt /tests/golden/module-import-root-import-shadow/types/txt
1223−/* imp-387-1 %txt /tests/golden/module-import-root-import-shadow/sur/fixture/txt
1224−/* mark-387-1 %txt /tests/golden/module-import-root-import-shadow/mar/label/txt
1225−/* src-388 %jibb /tests/golden/module-import-separate-namespaces/source/jibb
1226−/* tok-388 %txt /tests/golden/module-import-separate-namespaces/tokens/txt
1227−/* tre-388 %txt /tests/golden/module-import-separate-namespaces/tree/txt
1228−/* mod-388-1 %jibb /tests/golden/module-import-separate-namespaces/modules/ui/lib/jibb
1229−/* typ-388 %txt /tests/golden/module-import-separate-namespaces/types/txt
1230−/* mtre-388 %txt /tests/golden/module-import-separate-namespaces/module-trees/txt
1231−/* src-389 %jibb /tests/golden/module-import-sur-scope/source/jibb
1232−/* tok-389 %txt /tests/golden/module-import-sur-scope/tokens/txt
1233−/* tre-389 %txt /tests/golden/module-import-sur-scope/tree/txt
1234−/* mod-389-1 %jibb /tests/golden/module-import-sur-scope/modules/ui/lib/jibb
1235−/* typ-389 %txt /tests/golden/module-import-sur-scope/types/txt
1236−/* imp-389-1 %txt /tests/golden/module-import-sur-scope/sur/fixture/txt
1237−/* mtre-389 %txt /tests/golden/module-import-sur-scope/module-trees/txt
1238−/* src-390 %jibb /tests/golden/module-import-transitive/source/jibb
1239−/* tok-390 %txt /tests/golden/module-import-transitive/tokens/txt
1240−/* tre-390 %txt /tests/golden/module-import-transitive/tree/txt
1241−/* mod-390-1 %jibb /tests/golden/module-import-transitive/modules/ui/a/jibb
1242−/* mod-390-2 %jibb /tests/golden/module-import-transitive/modules/ui/b/jibb
1243−/* mod-390-3 %jibb /tests/golden/module-import-transitive/modules/ui/c/jibb
1244−/* typ-390 %txt /tests/golden/module-import-transitive/types/txt
1245−/* mtre-390 %txt /tests/golden/module-import-transitive/module-trees/txt
1246−/* src-391 %jibb /tests/golden/module-import-unused-invalid/source/jibb
1247−/* tok-391 %txt /tests/golden/module-import-unused-invalid/tokens/txt
1248−/* tre-391 %txt /tests/golden/module-import-unused-invalid/tree/txt
1249−/* mod-391-1 %jibb /tests/golden/module-import-unused-invalid/modules/ui/good/jibb
1250−/* mod-391-2 %jibb /tests/golden/module-import-unused-invalid/modules/ui/unused/jibb
1251−/* typ-391 %txt /tests/golden/module-import-unused-invalid/types/txt
1252−/* mtre-391 %txt /tests/golden/module-import-unused-invalid/module-trees/txt
1253−/* src-392 %jibb /tests/golden/prelude-1c-structural/source/jibb
1254−/* tok-392 %txt /tests/golden/prelude-1c-structural/tokens/txt
1255−/* tre-392 %txt /tests/golden/prelude-1c-structural/tree/txt
1256−/* typ-392 %txt /tests/golden/prelude-1c-structural/types/txt
1257−/* src-393 %jibb /tests/golden/prelude-3g-basic/source/jibb
1258−/* tok-393 %txt /tests/golden/prelude-3g-basic/tokens/txt
1259−/* tre-393 %txt /tests/golden/prelude-3g-basic/tree/txt
1260−/* typ-393 %txt /tests/golden/prelude-3g-basic/types/txt
1261−/* src-394 %jibb /tests/golden/prelude-3g-like/source/jibb
1262−/* tok-394 %txt /tests/golden/prelude-3g-like/tokens/txt
1263−/* tre-394 %txt /tests/golden/prelude-3g-like/tree/txt
1264−/* typ-394 %txt /tests/golden/prelude-3g-like/types/txt
1265−/* src-395 %jibb /tests/golden/prelude-3g-structural/source/jibb
1266−/* tok-395 %txt /tests/golden/prelude-3g-structural/tokens/txt
1267−/* tre-395 %txt /tests/golden/prelude-3g-structural/tree/txt
1268−/* typ-395 %txt /tests/golden/prelude-3g-structural/types/txt
1269−/* src-396 %jibb /tests/golden/prelude-core-functions/source/jibb
1270−/* tok-396 %txt /tests/golden/prelude-core-functions/tokens/txt
1271−/* tre-396 %txt /tests/golden/prelude-core-functions/tree/txt
1272−/* typ-396 %txt /tests/golden/prelude-core-functions/types/txt
1273−/* src-397 %jibb /tests/golden/prelude-list-helpers/source/jibb
1274−/* tok-397 %txt /tests/golden/prelude-list-helpers/tokens/txt
1275−/* tre-397 %txt /tests/golden/prelude-list-helpers/tree/txt
1276−/* typ-397 %txt /tests/golden/prelude-list-helpers/types/txt
1277−/* src-398 %jibb /tests/golden/prelude-list-unit/source/jibb
1278−/* tok-398 %txt /tests/golden/prelude-list-unit/tokens/txt
1279−/* tre-398 %txt /tests/golden/prelude-list-unit/tree/txt
1280−/* typ-398 %txt /tests/golden/prelude-list-unit/types/txt
1281−/* src-399 %jibb /tests/golden/prelude-unit-list-transforms/source/jibb
1282−/* tok-399 %txt /tests/golden/prelude-unit-list-transforms/tokens/txt
1283−/* tre-399 %txt /tests/golden/prelude-unit-list-transforms/tree/txt
1284−/* typ-399 %txt /tests/golden/prelude-unit-list-transforms/types/txt
1285−/* src-400 %jibb /tests/golden/types-import-mark/source/jibb
1286−/* tok-400 %txt /tests/golden/types-import-mark/tokens/txt
1287−/* tre-400 %txt /tests/golden/types-import-mark/tree/txt
1288−/* typ-400 %txt /tests/golden/types-import-mark/types/txt
1289−/* imp-400-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1290−/* mark-400-1 %txt /tests/golden/types-import-mark/mar/label/txt
1291−/* src-401 %jibb /tests/golden/types-import-missing-mold/source/jibb
1292−/* tok-401 %txt /tests/golden/types-import-missing-mold/tokens/txt
1293−/* tre-401 %txt /tests/golden/types-import-missing-mold/tree/txt
1294−/* typ-401 %txt /tests/golden/types-import-missing-mold/types/txt
1295−/* imp-401-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1296−/* src-402 %jibb /tests/golden/types-import-sur/source/jibb
1297−/* tok-402 %txt /tests/golden/types-import-sur/tokens/txt
1298−/* tre-402 %txt /tests/golden/types-import-sur/tree/txt
1299−/* typ-402 %txt /tests/golden/types-import-sur/types/txt
1300−/* imp-402-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1301−/* imp-402-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1302−/* src-403 %jibb /tests/golden/types-module-fixtures/source/jibb
1303−/* tok-403 %txt /tests/golden/types-module-fixtures/tokens/txt
1304−/* tre-403 %txt /tests/golden/types-module-fixtures/tree/txt
1305−/* mod-403-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1306−/* mod-403-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1307−/* typ-403 %txt /tests/golden/types-module-fixtures/types/txt
1308−/* mtre-403 %txt /tests/golden/types-module-fixtures/module-trees/txt
1309−/* src-404 %jibb /tests/golden/types-module-mixed/source/jibb
1310−/* tok-404 %txt /tests/golden/types-module-mixed/tokens/txt
1311−/* tre-404 %txt /tests/golden/types-module-mixed/tree/txt
1312−/* mod-404-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1313−/* typ-404 %txt /tests/golden/types-module-mixed/types/txt
1314−/* imp-404-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1315−/* mark-404-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1316−/* mtre-404 %txt /tests/golden/types-module-mixed/module-trees/txt
1317−/* src-405 %jibb /tests/golden/types-partial-apply/source/jibb
1318−/* tok-405 %txt /tests/golden/types-partial-apply/tokens/txt
1319−/* tre-405 %txt /tests/golden/types-partial-apply/tree/txt
1320−/* typ-405 %txt /tests/golden/types-partial-apply/types/txt
1321−/* src-406 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1322−/* tok-406 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1323−/* tre-406 %txt /tests/golden/types-partial-atom-alias/tree/txt
1324−/* typ-406 %txt /tests/golden/types-partial-atom-alias/types/txt
1325−/* src-407 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1326−/* tok-407 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1327−/* tre-407 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1328−/* typ-407 %txt /tests/golden/types-partial-atom-constraint/types/txt
1329−/* src-408 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1330−/* tok-408 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1331−/* tre-408 %txt /tests/golden/types-partial-atom-widening/tree/txt
1332−/* typ-408 %txt /tests/golden/types-partial-atom-widening/types/txt
1333−/* src-409 %jibb /tests/golden/types-partial-aura/source/jibb
1334−/* tok-409 %txt /tests/golden/types-partial-aura/tokens/txt
1335−/* tre-409 %txt /tests/golden/types-partial-aura/tree/txt
1336−/* typ-409 %txt /tests/golden/types-partial-aura/types/txt
1337−/* src-410 %jibb /tests/golden/types-partial-aura-family/source/jibb
1338−/* tok-410 %txt /tests/golden/types-partial-aura-family/tokens/txt
1339−/* tre-410 %txt /tests/golden/types-partial-aura-family/tree/txt
1340−/* typ-410 %txt /tests/golden/types-partial-aura-family/types/txt
1341−/* src-411 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1342−/* tok-411 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1343−/* tre-411 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1344−/* typ-411 %txt /tests/golden/types-partial-aura-generalization/types/txt
1345−/* src-412 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1346−/* tok-412 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1347−/* tre-412 %txt /tests/golden/types-partial-bare-atom/tree/txt
1348−/* typ-412 %txt /tests/golden/types-partial-bare-atom/types/txt
1349−/* src-413 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1350−/* tok-413 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1351−/* tre-413 %txt /tests/golden/types-partial-branch-widening/tree/txt
1352−/* typ-413 %txt /tests/golden/types-partial-branch-widening/types/txt
1353−/* src-414 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1354−/* tok-414 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1355−/* tre-414 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1356−/* typ-414 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1357−/* src-415 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1358−/* tok-415 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1359−/* tre-415 %txt /tests/golden/types-partial-decimal-default/tree/txt
1360−/* typ-415 %txt /tests/golden/types-partial-decimal-default/types/txt
1361−/* src-416 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1362−/* tok-416 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1363−/* tre-416 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1364−/* typ-416 %txt /tests/golden/types-partial-dependency-chain/types/txt
1365−/* src-417 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1366−/* tok-417 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1367−/* tre-417 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1368−/* typ-417 %txt /tests/golden/types-partial-explicit-capital/types/txt
1369−/* src-418 %jibb /tests/golden/types-partial-forward/source/jibb
1370−/* tok-418 %txt /tests/golden/types-partial-forward/tokens/txt
1371−/* tre-418 %txt /tests/golden/types-partial-forward/tree/txt
1372−/* typ-418 %txt /tests/golden/types-partial-forward/types/txt
1373−/* src-419 %jibb /tests/golden/types-partial-generalization/source/jibb
1374−/* tok-419 %txt /tests/golden/types-partial-generalization/tokens/txt
1375−/* tre-419 %txt /tests/golden/types-partial-generalization/tree/txt
1376−/* typ-419 %txt /tests/golden/types-partial-generalization/types/txt
1377−/* src-420 %jibb /tests/golden/types-partial-identity/source/jibb
1378−/* tok-420 %txt /tests/golden/types-partial-identity/tokens/txt
1379−/* tre-420 %txt /tests/golden/types-partial-identity/tree/txt
1380−/* typ-420 %txt /tests/golden/types-partial-identity/types/txt
1381−/* src-421 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1382−/* tok-421 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1383−/* tre-421 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1384−/* typ-421 %txt /tests/golden/types-partial-independent-atoms/types/txt
1385−/* src-422 %jibb /tests/golden/types-partial-local-molds/source/jibb
1386−/* tok-422 %txt /tests/golden/types-partial-local-molds/tokens/txt
1387−/* tre-422 %txt /tests/golden/types-partial-local-molds/tree/txt
1388−/* typ-422 %txt /tests/golden/types-partial-local-molds/types/txt
1389−/* src-423 %jibb /tests/golden/types-partial-locals/source/jibb
1390−/* tok-423 %txt /tests/golden/types-partial-locals/tokens/txt
1391−/* tre-423 %txt /tests/golden/types-partial-locals/tree/txt
1392−/* typ-423 %txt /tests/golden/types-partial-locals/types/txt
1393−/* src-424 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1394−/* tok-424 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1395−/* tre-424 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1396−/* typ-424 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1397−/* src-425 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1398−/* tok-425 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1399−/* tre-425 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1400−/* typ-425 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1401−/* src-426 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1402−/* tok-426 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1403−/* tre-426 %txt /tests/golden/types-partial-mold-composite/tree/txt
1404−/* typ-426 %txt /tests/golden/types-partial-mold-composite/types/txt
1405−/* src-427 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1406−/* tok-427 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1407−/* tre-427 %txt /tests/golden/types-partial-mold-forward/tree/txt
1408−/* typ-427 %txt /tests/golden/types-partial-mold-forward/types/txt
1409−/* src-428 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1410−/* tok-428 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1411−/* tre-428 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1412−/* typ-428 %txt /tests/golden/types-partial-mold-recursive/types/txt
1413−/* src-429 %jibb /tests/golden/types-partial-occurs/source/jibb
1414−/* tok-429 %txt /tests/golden/types-partial-occurs/tokens/txt
1415−/* tre-429 %txt /tests/golden/types-partial-occurs/tree/txt
1416−/* typ-429 %txt /tests/golden/types-partial-occurs/types/txt
1417−/* src-430 %jibb /tests/golden/types-partial-projection/source/jibb
1418−/* tok-430 %txt /tests/golden/types-partial-projection/tokens/txt
1419−/* tre-430 %txt /tests/golden/types-partial-projection/tree/txt
1420−/* typ-430 %txt /tests/golden/types-partial-projection/types/txt
1421−/* src-431 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1422−/* tok-431 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1423−/* tre-431 %txt /tests/golden/types-partial-shadow-global/tree/txt
1424−/* typ-431 %txt /tests/golden/types-partial-shadow-global/types/txt
1425−/* src-432 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1426−/* tok-432 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1427−/* tre-432 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1428−/* typ-432 %txt /tests/golden/types-partial-shared-tvar/types/txt
1429−/* src-433 %jibb /tests/golden/types-partial-union-cases/source/jibb
1430−/* tok-433 %txt /tests/golden/types-partial-union-cases/tokens/txt
1431−/* tre-433 %txt /tests/golden/types-partial-union-cases/tree/txt
1432−/* typ-433 %txt /tests/golden/types-partial-union-cases/types/txt
1433−/* src-434 %jibb /tests/golden/types-partial-union-edges/source/jibb
1434−/* tok-434 %txt /tests/golden/types-partial-union-edges/tokens/txt
1435−/* tre-434 %txt /tests/golden/types-partial-union-edges/tree/txt
1436−/* typ-434 %txt /tests/golden/types-partial-union-edges/types/txt
1437−/* src-435 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1438−/* tok-435 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1439−/* tre-435 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1440−/* typ-435 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1441−/* src-436 %jibb /tests/golden/types-record-bound-variable/source/jibb
1442−/* tok-436 %txt /tests/golden/types-record-bound-variable/tokens/txt
1443−/* tre-436 %txt /tests/golden/types-record-bound-variable/tree/txt
1444−/* typ-436 %txt /tests/golden/types-record-bound-variable/types/txt
1445−/* src-437 %jibb /tests/golden/types-record-faces/source/jibb
1446−/* tok-437 %txt /tests/golden/types-record-faces/tokens/txt
1447−/* tre-437 %txt /tests/golden/types-record-faces/tree/txt
1448−/* typ-437 %txt /tests/golden/types-record-faces/types/txt
1449−/* src-438 %jibb /tests/golden/types-record-import/source/jibb
1450−/* tok-438 %txt /tests/golden/types-record-import/tokens/txt
1451−/* tre-438 %txt /tests/golden/types-record-import/tree/txt
1452−/* mod-438-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1453−/* typ-438 %txt /tests/golden/types-record-import/types/txt
1454−/* mtre-438 %txt /tests/golden/types-record-import/module-trees/txt
1455−/* src-439 %jibb /tests/golden/types-record-local-scheme/source/jibb
1456−/* tok-439 %txt /tests/golden/types-record-local-scheme/tokens/txt
1457−/* tre-439 %txt /tests/golden/types-record-local-scheme/tree/txt
1458−/* typ-439 %txt /tests/golden/types-record-local-scheme/types/txt
1459−/* src-440 %jibb /tests/golden/types-record-nested/source/jibb
1460−/* tok-440 %txt /tests/golden/types-record-nested/tokens/txt
1461−/* tre-440 %txt /tests/golden/types-record-nested/tree/txt
1462−/* typ-440 %txt /tests/golden/types-record-nested/types/txt
1463−/* src-441 %jibb /tests/golden/types-record-to-tuple/source/jibb
1464−/* tok-441 %txt /tests/golden/types-record-to-tuple/tokens/txt
1465−/* tre-441 %txt /tests/golden/types-record-to-tuple/tree/txt
1466−/* typ-441 %txt /tests/golden/types-record-to-tuple/types/txt
1140+/* src-373 %jibb /tests/golden/module-cache-dag/source/jibb
1141+/* tok-373 %txt /tests/golden/module-cache-dag/tokens/txt
1142+/* tre-373 %txt /tests/golden/module-cache-dag/tree/txt
1143+/* mod-373-1 %jibb /tests/golden/module-cache-dag/modules/ui/n0/jibb
1144+/* mod-373-2 %jibb /tests/golden/module-cache-dag/modules/ui/n1/jibb
1145+/* mod-373-3 %jibb /tests/golden/module-cache-dag/modules/ui/n2/jibb
1146+/* mod-373-4 %jibb /tests/golden/module-cache-dag/modules/ui/n3/jibb
1147+/* mod-373-5 %jibb /tests/golden/module-cache-dag/modules/ui/n4/jibb
1148+/* mod-373-6 %jibb /tests/golden/module-cache-dag/modules/ui/n5/jibb
1149+/* mod-373-7 %jibb /tests/golden/module-cache-dag/modules/ui/n6/jibb
1150+/* mod-373-8 %jibb /tests/golden/module-cache-dag/modules/ui/n7/jibb
1151+/* typ-373 %txt /tests/golden/module-cache-dag/types/txt
1152+/* mtre-373 %txt /tests/golden/module-cache-dag/module-trees/txt
1153+/* src-374 %jibb /tests/golden/module-cache-faces/source/jibb
1154+/* tok-374 %txt /tests/golden/module-cache-faces/tokens/txt
1155+/* tre-374 %txt /tests/golden/module-cache-faces/tree/txt
1156+/* mod-374-1 %jibb /tests/golden/module-cache-faces/modules/ui/shared/jibb
1157+/* typ-374 %txt /tests/golden/module-cache-faces/types/txt
1158+/* mtre-374 %txt /tests/golden/module-cache-faces/module-trees/txt
1159+/* src-375 %jibb /tests/golden/module-cache-incomplete/source/jibb
1160+/* tok-375 %txt /tests/golden/module-cache-incomplete/tokens/txt
1161+/* tre-375 %txt /tests/golden/module-cache-incomplete/tree/txt
1162+/* mod-375-1 %jibb /tests/golden/module-cache-incomplete/modules/ui/bad/jibb
1163+/* typ-375 %txt /tests/golden/module-cache-incomplete/types/txt
1164+/* mtre-375 %txt /tests/golden/module-cache-incomplete/module-trees/txt
1165+/* src-376 %jibb /tests/golden/module-cache-sibling-cycle/source/jibb
1166+/* tok-376 %txt /tests/golden/module-cache-sibling-cycle/tokens/txt
1167+/* tre-376 %txt /tests/golden/module-cache-sibling-cycle/tree/txt
1168+/* mod-376-1 %jibb /tests/golden/module-cache-sibling-cycle/modules/ui/safe/jibb
1169+/* mod-376-2 %jibb /tests/golden/module-cache-sibling-cycle/modules/ui/a/jibb
1170+/* mod-376-3 %jibb /tests/golden/module-cache-sibling-cycle/modules/ui/b/jibb
1171+/* typ-376 %txt /tests/golden/module-cache-sibling-cycle/types/txt
1172+/* mtre-376 %txt /tests/golden/module-cache-sibling-cycle/module-trees/txt
1173+/* src-377 %jibb /tests/golden/module-fixture-eof/source/jibb
1174+/* tok-377 %txt /tests/golden/module-fixture-eof/tokens/txt
1175+/* tre-377 %txt /tests/golden/module-fixture-eof/tree/txt
1176+/* mod-377-1 %jibb /tests/golden/module-fixture-eof/modules/ui/incomplete/jibb
1177+/* mtre-377 %txt /tests/golden/module-fixture-eof/module-trees/txt
1178+/* src-378 %jibb /tests/golden/module-import-atom-scheme/source/jibb
1179+/* tok-378 %txt /tests/golden/module-import-atom-scheme/tokens/txt
1180+/* tre-378 %txt /tests/golden/module-import-atom-scheme/tree/txt
1181+/* mod-378-1 %jibb /tests/golden/module-import-atom-scheme/modules/ui/mid/jibb
1182+/* mod-378-2 %jibb /tests/golden/module-import-atom-scheme/modules/ui/base/jibb
1183+/* typ-378 %txt /tests/golden/module-import-atom-scheme/types/txt
1184+/* mtre-378 %txt /tests/golden/module-import-atom-scheme/module-trees/txt
1185+/* src-379 %jibb /tests/golden/module-import-cycle/source/jibb
1186+/* tok-379 %txt /tests/golden/module-import-cycle/tokens/txt
1187+/* tre-379 %txt /tests/golden/module-import-cycle/tree/txt
1188+/* mod-379-1 %jibb /tests/golden/module-import-cycle/modules/ui/a/jibb
1189+/* mod-379-2 %jibb /tests/golden/module-import-cycle/modules/ui/b/jibb
1190+/* typ-379 %txt /tests/golden/module-import-cycle/types/txt
1191+/* mtre-379 %txt /tests/golden/module-import-cycle/module-trees/txt
1192+/* src-380 %jibb /tests/golden/module-import-empty/source/jibb
1193+/* tok-380 %txt /tests/golden/module-import-empty/tokens/txt
1194+/* tre-380 %txt /tests/golden/module-import-empty/tree/txt
1195+/* typ-380 %txt /tests/golden/module-import-empty/types/txt
1196+/* src-381 %jibb /tests/golden/module-import-face-shadow/source/jibb
1197+/* tok-381 %txt /tests/golden/module-import-face-shadow/tokens/txt
1198+/* tre-381 %txt /tests/golden/module-import-face-shadow/tree/txt
1199+/* mod-381-1 %jibb /tests/golden/module-import-face-shadow/modules/ui/lib/jibb
1200+/* typ-381 %txt /tests/golden/module-import-face-shadow/types/txt
1201+/* mtre-381 %txt /tests/golden/module-import-face-shadow/module-trees/txt
1202+/* src-382 %jibb /tests/golden/module-import-identity/source/jibb
1203+/* tok-382 %txt /tests/golden/module-import-identity/tokens/txt
1204+/* tre-382 %txt /tests/golden/module-import-identity/tree/txt
1205+/* mod-382-1 %jibb /tests/golden/module-import-identity/modules/ui/lib/jibb
1206+/* typ-382 %txt /tests/golden/module-import-identity/types/txt
1207+/* mtre-382 %txt /tests/golden/module-import-identity/module-trees/txt
1208+/* src-383 %jibb /tests/golden/module-import-invalid/source/jibb
1209+/* tok-383 %txt /tests/golden/module-import-invalid/tokens/txt
1210+/* tre-383 %txt /tests/golden/module-import-invalid/tree/txt
1211+/* mod-383-1 %jibb /tests/golden/module-import-invalid/modules/ui/lib/jibb
1212+/* typ-383 %txt /tests/golden/module-import-invalid/types/txt
1213+/* mtre-383 %txt /tests/golden/module-import-invalid/module-trees/txt
1214+/* src-384 %jibb /tests/golden/module-import-missing-member/source/jibb
1215+/* tok-384 %txt /tests/golden/module-import-missing-member/tokens/txt
1216+/* tre-384 %txt /tests/golden/module-import-missing-member/tree/txt
1217+/* mod-384-1 %jibb /tests/golden/module-import-missing-member/modules/ui/lib/jibb
1218+/* typ-384 %txt /tests/golden/module-import-missing-member/types/txt
1219+/* mtre-384 %txt /tests/golden/module-import-missing-member/module-trees/txt
1220+/* src-385 %jibb /tests/golden/module-import-mold/source/jibb
1221+/* tok-385 %txt /tests/golden/module-import-mold/tokens/txt
1222+/* tre-385 %txt /tests/golden/module-import-mold/tree/txt
1223+/* mod-385-1 %jibb /tests/golden/module-import-mold/modules/ui/lib/jibb
1224+/* typ-385 %txt /tests/golden/module-import-mold/types/txt
1225+/* mtre-385 %txt /tests/golden/module-import-mold/module-trees/txt
1226+/* src-386 %jibb /tests/golden/module-import-prelude-cross-namespace/source/jibb
1227+/* tok-386 %txt /tests/golden/module-import-prelude-cross-namespace/tokens/txt
1228+/* tre-386 %txt /tests/golden/module-import-prelude-cross-namespace/tree/txt
1229+/* typ-386 %txt /tests/golden/module-import-prelude-cross-namespace/types/txt
1230+/* src-387 %jibb /tests/golden/module-import-prelude-mold-shadow/source/jibb
1231+/* tok-387 %txt /tests/golden/module-import-prelude-mold-shadow/tokens/txt
1232+/* tre-387 %txt /tests/golden/module-import-prelude-mold-shadow/tree/txt
1233+/* typ-387 %txt /tests/golden/module-import-prelude-mold-shadow/types/txt
1234+/* src-388 %jibb /tests/golden/module-import-prelude-sample-shadow/source/jibb
1235+/* tok-388 %txt /tests/golden/module-import-prelude-sample-shadow/tokens/txt
1236+/* tre-388 %txt /tests/golden/module-import-prelude-sample-shadow/tree/txt
1237+/* mod-388-1 %jibb /tests/golden/module-import-prelude-sample-shadow/modules/ui/lib/jibb
1238+/* typ-388 %txt /tests/golden/module-import-prelude-sample-shadow/types/txt
1239+/* mtre-388 %txt /tests/golden/module-import-prelude-sample-shadow/module-trees/txt
1240+/* src-389 %jibb /tests/golden/module-import-prelude-value-shadow/source/jibb
1241+/* tok-389 %txt /tests/golden/module-import-prelude-value-shadow/tokens/txt
1242+/* tre-389 %txt /tests/golden/module-import-prelude-value-shadow/tree/txt
1243+/* mod-389-1 %jibb /tests/golden/module-import-prelude-value-shadow/modules/ui/lib/jibb
1244+/* typ-389 %txt /tests/golden/module-import-prelude-value-shadow/types/txt
1245+/* mtre-389 %txt /tests/golden/module-import-prelude-value-shadow/module-trees/txt
1246+/* src-390 %jibb /tests/golden/module-import-root-cycle/source/jibb
1247+/* tok-390 %txt /tests/golden/module-import-root-cycle/tokens/txt
1248+/* tre-390 %txt /tests/golden/module-import-root-cycle/tree/txt
1249+/* mod-390-1 %jibb /tests/golden/module-import-root-cycle/modules/ui/a/jibb
1250+/* typ-390 %txt /tests/golden/module-import-root-cycle/types/txt
1251+/* mtre-390 %txt /tests/golden/module-import-root-cycle/module-trees/txt
1252+/* src-391 %jibb /tests/golden/module-import-root-import-shadow/source/jibb
1253+/* tok-391 %txt /tests/golden/module-import-root-import-shadow/tokens/txt
1254+/* tre-391 %txt /tests/golden/module-import-root-import-shadow/tree/txt
1255+/* typ-391 %txt /tests/golden/module-import-root-import-shadow/types/txt
1256+/* imp-391-1 %txt /tests/golden/module-import-root-import-shadow/sur/fixture/txt
1257+/* mark-391-1 %txt /tests/golden/module-import-root-import-shadow/mar/label/txt
1258+/* src-392 %jibb /tests/golden/module-import-separate-namespaces/source/jibb
1259+/* tok-392 %txt /tests/golden/module-import-separate-namespaces/tokens/txt
1260+/* tre-392 %txt /tests/golden/module-import-separate-namespaces/tree/txt
1261+/* mod-392-1 %jibb /tests/golden/module-import-separate-namespaces/modules/ui/lib/jibb
1262+/* typ-392 %txt /tests/golden/module-import-separate-namespaces/types/txt
1263+/* mtre-392 %txt /tests/golden/module-import-separate-namespaces/module-trees/txt
1264+/* src-393 %jibb /tests/golden/module-import-sur-scope/source/jibb
1265+/* tok-393 %txt /tests/golden/module-import-sur-scope/tokens/txt
1266+/* tre-393 %txt /tests/golden/module-import-sur-scope/tree/txt
1267+/* mod-393-1 %jibb /tests/golden/module-import-sur-scope/modules/ui/lib/jibb
1268+/* typ-393 %txt /tests/golden/module-import-sur-scope/types/txt
1269+/* imp-393-1 %txt /tests/golden/module-import-sur-scope/sur/fixture/txt
1270+/* mtre-393 %txt /tests/golden/module-import-sur-scope/module-trees/txt
1271+/* src-394 %jibb /tests/golden/module-import-transitive/source/jibb
1272+/* tok-394 %txt /tests/golden/module-import-transitive/tokens/txt
1273+/* tre-394 %txt /tests/golden/module-import-transitive/tree/txt
1274+/* mod-394-1 %jibb /tests/golden/module-import-transitive/modules/ui/a/jibb
1275+/* mod-394-2 %jibb /tests/golden/module-import-transitive/modules/ui/b/jibb
1276+/* mod-394-3 %jibb /tests/golden/module-import-transitive/modules/ui/c/jibb
1277+/* typ-394 %txt /tests/golden/module-import-transitive/types/txt
1278+/* mtre-394 %txt /tests/golden/module-import-transitive/module-trees/txt
1279+/* src-395 %jibb /tests/golden/module-import-unused-invalid/source/jibb
1280+/* tok-395 %txt /tests/golden/module-import-unused-invalid/tokens/txt
1281+/* tre-395 %txt /tests/golden/module-import-unused-invalid/tree/txt
1282+/* mod-395-1 %jibb /tests/golden/module-import-unused-invalid/modules/ui/good/jibb
1283+/* mod-395-2 %jibb /tests/golden/module-import-unused-invalid/modules/ui/unused/jibb
1284+/* typ-395 %txt /tests/golden/module-import-unused-invalid/types/txt
1285+/* mtre-395 %txt /tests/golden/module-import-unused-invalid/module-trees/txt
1286+/* src-396 %jibb /tests/golden/prelude-1c-structural/source/jibb
1287+/* tok-396 %txt /tests/golden/prelude-1c-structural/tokens/txt
1288+/* tre-396 %txt /tests/golden/prelude-1c-structural/tree/txt
1289+/* typ-396 %txt /tests/golden/prelude-1c-structural/types/txt
1290+/* src-397 %jibb /tests/golden/prelude-3g-basic/source/jibb
1291+/* tok-397 %txt /tests/golden/prelude-3g-basic/tokens/txt
1292+/* tre-397 %txt /tests/golden/prelude-3g-basic/tree/txt
1293+/* typ-397 %txt /tests/golden/prelude-3g-basic/types/txt
1294+/* src-398 %jibb /tests/golden/prelude-3g-like/source/jibb
1295+/* tok-398 %txt /tests/golden/prelude-3g-like/tokens/txt
1296+/* tre-398 %txt /tests/golden/prelude-3g-like/tree/txt
1297+/* typ-398 %txt /tests/golden/prelude-3g-like/types/txt
1298+/* src-399 %jibb /tests/golden/prelude-3g-structural/source/jibb
1299+/* tok-399 %txt /tests/golden/prelude-3g-structural/tokens/txt
1300+/* tre-399 %txt /tests/golden/prelude-3g-structural/tree/txt
1301+/* typ-399 %txt /tests/golden/prelude-3g-structural/types/txt
1302+/* src-400 %jibb /tests/golden/prelude-core-functions/source/jibb
1303+/* tok-400 %txt /tests/golden/prelude-core-functions/tokens/txt
1304+/* tre-400 %txt /tests/golden/prelude-core-functions/tree/txt
1305+/* typ-400 %txt /tests/golden/prelude-core-functions/types/txt
1306+/* src-401 %jibb /tests/golden/prelude-list-helpers/source/jibb
1307+/* tok-401 %txt /tests/golden/prelude-list-helpers/tokens/txt
1308+/* tre-401 %txt /tests/golden/prelude-list-helpers/tree/txt
1309+/* typ-401 %txt /tests/golden/prelude-list-helpers/types/txt
1310+/* src-402 %jibb /tests/golden/prelude-list-unit/source/jibb
1311+/* tok-402 %txt /tests/golden/prelude-list-unit/tokens/txt
1312+/* tre-402 %txt /tests/golden/prelude-list-unit/tree/txt
1313+/* typ-402 %txt /tests/golden/prelude-list-unit/types/txt
1314+/* src-403 %jibb /tests/golden/prelude-unit-list-transforms/source/jibb
1315+/* tok-403 %txt /tests/golden/prelude-unit-list-transforms/tokens/txt
1316+/* tre-403 %txt /tests/golden/prelude-unit-list-transforms/tree/txt
1317+/* typ-403 %txt /tests/golden/prelude-unit-list-transforms/types/txt
1318+/* src-404 %jibb /tests/golden/types-import-mark/source/jibb
1319+/* tok-404 %txt /tests/golden/types-import-mark/tokens/txt
1320+/* tre-404 %txt /tests/golden/types-import-mark/tree/txt
1321+/* typ-404 %txt /tests/golden/types-import-mark/types/txt
1322+/* imp-404-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1323+/* mark-404-1 %txt /tests/golden/types-import-mark/mar/label/txt
1324+/* src-405 %jibb /tests/golden/types-import-mark-record/source/jibb
1325+/* tok-405 %txt /tests/golden/types-import-mark-record/tokens/txt
1326+/* tre-405 %txt /tests/golden/types-import-mark-record/tree/txt
1327+/* typ-405 %txt /tests/golden/types-import-mark-record/types/txt
1328+/* mark-405-1 %txt /tests/golden/types-import-mark-record/mar/note/txt
1329+/* mark-405-2 %txt /tests/golden/types-import-mark-record/mar/choice/txt
1330+/* src-406 %jibb /tests/golden/types-import-missing-mold/source/jibb
1331+/* tok-406 %txt /tests/golden/types-import-missing-mold/tokens/txt
1332+/* tre-406 %txt /tests/golden/types-import-missing-mold/tree/txt
1333+/* typ-406 %txt /tests/golden/types-import-missing-mold/types/txt
1334+/* imp-406-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1335+/* src-407 %jibb /tests/golden/types-import-sur/source/jibb
1336+/* tok-407 %txt /tests/golden/types-import-sur/tokens/txt
1337+/* tre-407 %txt /tests/golden/types-import-sur/tree/txt
1338+/* typ-407 %txt /tests/golden/types-import-sur/types/txt
1339+/* imp-407-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1340+/* imp-407-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1341+/* src-408 %jibb /tests/golden/types-import-sur-record-graph/source/jibb
1342+/* tok-408 %txt /tests/golden/types-import-sur-record-graph/tokens/txt
1343+/* tre-408 %txt /tests/golden/types-import-sur-record-graph/tree/txt
1344+/* mod-408-1 %jibb /tests/golden/types-import-sur-record-graph/modules/ui/lib/jibb
1345+/* typ-408 %txt /tests/golden/types-import-sur-record-graph/types/txt
1346+/* imp-408-1 %txt /tests/golden/types-import-sur-record-graph/sur/fixture/txt
1347+/* mtre-408 %txt /tests/golden/types-import-sur-record-graph/module-trees/txt
1348+/* src-409 %jibb /tests/golden/types-module-fixtures/source/jibb
1349+/* tok-409 %txt /tests/golden/types-module-fixtures/tokens/txt
1350+/* tre-409 %txt /tests/golden/types-module-fixtures/tree/txt
1351+/* mod-409-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1352+/* mod-409-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1353+/* typ-409 %txt /tests/golden/types-module-fixtures/types/txt
1354+/* mtre-409 %txt /tests/golden/types-module-fixtures/module-trees/txt
1355+/* src-410 %jibb /tests/golden/types-module-mixed/source/jibb
1356+/* tok-410 %txt /tests/golden/types-module-mixed/tokens/txt
1357+/* tre-410 %txt /tests/golden/types-module-mixed/tree/txt
1358+/* mod-410-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1359+/* typ-410 %txt /tests/golden/types-module-mixed/types/txt
1360+/* imp-410-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1361+/* mark-410-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1362+/* mtre-410 %txt /tests/golden/types-module-mixed/module-trees/txt
1363+/* src-411 %jibb /tests/golden/types-partial-apply/source/jibb
1364+/* tok-411 %txt /tests/golden/types-partial-apply/tokens/txt
1365+/* tre-411 %txt /tests/golden/types-partial-apply/tree/txt
1366+/* typ-411 %txt /tests/golden/types-partial-apply/types/txt
1367+/* src-412 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1368+/* tok-412 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1369+/* tre-412 %txt /tests/golden/types-partial-atom-alias/tree/txt
1370+/* typ-412 %txt /tests/golden/types-partial-atom-alias/types/txt
1371+/* src-413 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1372+/* tok-413 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1373+/* tre-413 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1374+/* typ-413 %txt /tests/golden/types-partial-atom-constraint/types/txt
1375+/* src-414 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1376+/* tok-414 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1377+/* tre-414 %txt /tests/golden/types-partial-atom-widening/tree/txt
1378+/* typ-414 %txt /tests/golden/types-partial-atom-widening/types/txt
1379+/* src-415 %jibb /tests/golden/types-partial-aura/source/jibb
1380+/* tok-415 %txt /tests/golden/types-partial-aura/tokens/txt
1381+/* tre-415 %txt /tests/golden/types-partial-aura/tree/txt
1382+/* typ-415 %txt /tests/golden/types-partial-aura/types/txt
1383+/* src-416 %jibb /tests/golden/types-partial-aura-family/source/jibb
1384+/* tok-416 %txt /tests/golden/types-partial-aura-family/tokens/txt
1385+/* tre-416 %txt /tests/golden/types-partial-aura-family/tree/txt
1386+/* typ-416 %txt /tests/golden/types-partial-aura-family/types/txt
1387+/* src-417 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1388+/* tok-417 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1389+/* tre-417 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1390+/* typ-417 %txt /tests/golden/types-partial-aura-generalization/types/txt
1391+/* src-418 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1392+/* tok-418 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1393+/* tre-418 %txt /tests/golden/types-partial-bare-atom/tree/txt
1394+/* typ-418 %txt /tests/golden/types-partial-bare-atom/types/txt
1395+/* src-419 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1396+/* tok-419 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1397+/* tre-419 %txt /tests/golden/types-partial-branch-widening/tree/txt
1398+/* typ-419 %txt /tests/golden/types-partial-branch-widening/types/txt
1399+/* src-420 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1400+/* tok-420 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1401+/* tre-420 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1402+/* typ-420 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1403+/* src-421 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1404+/* tok-421 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1405+/* tre-421 %txt /tests/golden/types-partial-decimal-default/tree/txt
1406+/* typ-421 %txt /tests/golden/types-partial-decimal-default/types/txt
1407+/* src-422 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1408+/* tok-422 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1409+/* tre-422 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1410+/* typ-422 %txt /tests/golden/types-partial-dependency-chain/types/txt
1411+/* src-423 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1412+/* tok-423 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1413+/* tre-423 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1414+/* typ-423 %txt /tests/golden/types-partial-explicit-capital/types/txt
1415+/* src-424 %jibb /tests/golden/types-partial-forward/source/jibb
1416+/* tok-424 %txt /tests/golden/types-partial-forward/tokens/txt
1417+/* tre-424 %txt /tests/golden/types-partial-forward/tree/txt
1418+/* typ-424 %txt /tests/golden/types-partial-forward/types/txt
1419+/* src-425 %jibb /tests/golden/types-partial-generalization/source/jibb
1420+/* tok-425 %txt /tests/golden/types-partial-generalization/tokens/txt
1421+/* tre-425 %txt /tests/golden/types-partial-generalization/tree/txt
1422+/* typ-425 %txt /tests/golden/types-partial-generalization/types/txt
1423+/* src-426 %jibb /tests/golden/types-partial-identity/source/jibb
1424+/* tok-426 %txt /tests/golden/types-partial-identity/tokens/txt
1425+/* tre-426 %txt /tests/golden/types-partial-identity/tree/txt
1426+/* typ-426 %txt /tests/golden/types-partial-identity/types/txt
1427+/* src-427 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1428+/* tok-427 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1429+/* tre-427 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1430+/* typ-427 %txt /tests/golden/types-partial-independent-atoms/types/txt
1431+/* src-428 %jibb /tests/golden/types-partial-local-molds/source/jibb
1432+/* tok-428 %txt /tests/golden/types-partial-local-molds/tokens/txt
1433+/* tre-428 %txt /tests/golden/types-partial-local-molds/tree/txt
1434+/* typ-428 %txt /tests/golden/types-partial-local-molds/types/txt
1435+/* src-429 %jibb /tests/golden/types-partial-locals/source/jibb
1436+/* tok-429 %txt /tests/golden/types-partial-locals/tokens/txt
1437+/* tre-429 %txt /tests/golden/types-partial-locals/tree/txt
1438+/* typ-429 %txt /tests/golden/types-partial-locals/types/txt
1439+/* src-430 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1440+/* tok-430 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1441+/* tre-430 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1442+/* typ-430 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1443+/* src-431 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1444+/* tok-431 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1445+/* tre-431 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1446+/* typ-431 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1447+/* src-432 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1448+/* tok-432 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1449+/* tre-432 %txt /tests/golden/types-partial-mold-composite/tree/txt
1450+/* typ-432 %txt /tests/golden/types-partial-mold-composite/types/txt
1451+/* src-433 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1452+/* tok-433 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1453+/* tre-433 %txt /tests/golden/types-partial-mold-forward/tree/txt
1454+/* typ-433 %txt /tests/golden/types-partial-mold-forward/types/txt
1455+/* src-434 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1456+/* tok-434 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1457+/* tre-434 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1458+/* typ-434 %txt /tests/golden/types-partial-mold-recursive/types/txt
1459+/* src-435 %jibb /tests/golden/types-partial-occurs/source/jibb
1460+/* tok-435 %txt /tests/golden/types-partial-occurs/tokens/txt
1461+/* tre-435 %txt /tests/golden/types-partial-occurs/tree/txt
1462+/* typ-435 %txt /tests/golden/types-partial-occurs/types/txt
1463+/* src-436 %jibb /tests/golden/types-partial-projection/source/jibb
1464+/* tok-436 %txt /tests/golden/types-partial-projection/tokens/txt
1465+/* tre-436 %txt /tests/golden/types-partial-projection/tree/txt
1466+/* typ-436 %txt /tests/golden/types-partial-projection/types/txt
1467+/* src-437 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1468+/* tok-437 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1469+/* tre-437 %txt /tests/golden/types-partial-shadow-global/tree/txt
1470+/* typ-437 %txt /tests/golden/types-partial-shadow-global/types/txt
1471+/* src-438 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1472+/* tok-438 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1473+/* tre-438 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1474+/* typ-438 %txt /tests/golden/types-partial-shared-tvar/types/txt
1475+/* src-439 %jibb /tests/golden/types-partial-union-cases/source/jibb
1476+/* tok-439 %txt /tests/golden/types-partial-union-cases/tokens/txt
1477+/* tre-439 %txt /tests/golden/types-partial-union-cases/tree/txt
1478+/* typ-439 %txt /tests/golden/types-partial-union-cases/types/txt
1479+/* src-440 %jibb /tests/golden/types-partial-union-edges/source/jibb
1480+/* tok-440 %txt /tests/golden/types-partial-union-edges/tokens/txt
1481+/* tre-440 %txt /tests/golden/types-partial-union-edges/tree/txt
1482+/* typ-440 %txt /tests/golden/types-partial-union-edges/types/txt
1483+/* src-441 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1484+/* tok-441 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1485+/* tre-441 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1486+/* typ-441 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1487+/* src-442 %jibb /tests/golden/types-record-bound-variable/source/jibb
1488+/* tok-442 %txt /tests/golden/types-record-bound-variable/tokens/txt
1489+/* tre-442 %txt /tests/golden/types-record-bound-variable/tree/txt
1490+/* typ-442 %txt /tests/golden/types-record-bound-variable/types/txt
1491+/* src-443 %jibb /tests/golden/types-record-faces/source/jibb
1492+/* tok-443 %txt /tests/golden/types-record-faces/tokens/txt
1493+/* tre-443 %txt /tests/golden/types-record-faces/tree/txt
1494+/* typ-443 %txt /tests/golden/types-record-faces/types/txt
1495+/* src-444 %jibb /tests/golden/types-record-import/source/jibb
1496+/* tok-444 %txt /tests/golden/types-record-import/tokens/txt
1497+/* tre-444 %txt /tests/golden/types-record-import/tree/txt
1498+/* mod-444-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1499+/* typ-444 %txt /tests/golden/types-record-import/types/txt
1500+/* mtre-444 %txt /tests/golden/types-record-import/module-trees/txt
1501+/* src-445 %jibb /tests/golden/types-record-local-scheme/source/jibb
1502+/* tok-445 %txt /tests/golden/types-record-local-scheme/tokens/txt
1503+/* tre-445 %txt /tests/golden/types-record-local-scheme/tree/txt
1504+/* typ-445 %txt /tests/golden/types-record-local-scheme/types/txt
1505+/* src-446 %jibb /tests/golden/types-record-nested/source/jibb
1506+/* tok-446 %txt /tests/golden/types-record-nested/tokens/txt
1507+/* tre-446 %txt /tests/golden/types-record-nested/tree/txt
1508+/* typ-446 %txt /tests/golden/types-record-nested/types/txt
1509+/* src-447 %jibb /tests/golden/types-record-to-tuple/source/jibb
1510+/* tok-447 %txt /tests/golden/types-record-to-tuple/tokens/txt
1511+/* tre-447 %txt /tests/golden/types-record-to-tuple/tree/txt
1512+/* typ-447 %txt /tests/golden/types-record-to-tuple/types/txt
14671513|%
14681514:: one arm per case
14691515::
@@ -2211,144 +2257,156 @@
22112257 (check ~.lex-tight-wing-bad-1 src-371 `tok-371 `tre-371)
22122258++ test-lex-tight-wing-ok-1
22132259 (check ~.lex-tight-wing-ok-1 src-372 `tok-372 `tre-372)
2260+++ test-module-cache-dag
2261+ (weld (weld (check ~.module-cache-dag src-373 `tok-373 `tre-373) (check-module-types ~.module-cache-dag ~[%tests %golden ~.module-cache-dag %source %jibb] src-373 `typ-373 ~ ~ ~[['/ui/n0.jibb' ~[~.ui ~.n0 ~.jibb] mod-373-1] ['/ui/n1.jibb' ~[~.ui ~.n1 ~.jibb] mod-373-2] ['/ui/n2.jibb' ~[~.ui ~.n2 ~.jibb] mod-373-3] ['/ui/n3.jibb' ~[~.ui ~.n3 ~.jibb] mod-373-4] ['/ui/n4.jibb' ~[~.ui ~.n4 ~.jibb] mod-373-5] ['/ui/n5.jibb' ~[~.ui ~.n5 ~.jibb] mod-373-6] ['/ui/n6.jibb' ~[~.ui ~.n6 ~.jibb] mod-373-7] ['/ui/n7.jibb' ~[~.ui ~.n7 ~.jibb] mod-373-8]])) (check-module-trees ~.module-cache-dag `mtre-373 ~[['/ui/n0.jibb' ~[~.ui ~.n0 ~.jibb] mod-373-1] ['/ui/n1.jibb' ~[~.ui ~.n1 ~.jibb] mod-373-2] ['/ui/n2.jibb' ~[~.ui ~.n2 ~.jibb] mod-373-3] ['/ui/n3.jibb' ~[~.ui ~.n3 ~.jibb] mod-373-4] ['/ui/n4.jibb' ~[~.ui ~.n4 ~.jibb] mod-373-5] ['/ui/n5.jibb' ~[~.ui ~.n5 ~.jibb] mod-373-6] ['/ui/n6.jibb' ~[~.ui ~.n6 ~.jibb] mod-373-7] ['/ui/n7.jibb' ~[~.ui ~.n7 ~.jibb] mod-373-8]]))
2262+++ test-module-cache-faces
2263+ (weld (weld (check ~.module-cache-faces src-374 `tok-374 `tre-374) (check-module-types ~.module-cache-faces ~[%tests %golden ~.module-cache-faces %source %jibb] src-374 `typ-374 ~ ~ ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-374-1]])) (check-module-trees ~.module-cache-faces `mtre-374 ~[['/ui/shared.jibb' ~[~.ui ~.shared ~.jibb] mod-374-1]]))
2264+++ test-module-cache-incomplete
2265+ (weld (weld (check ~.module-cache-incomplete src-375 `tok-375 `tre-375) (check-module-types ~.module-cache-incomplete ~[%tests %golden ~.module-cache-incomplete %source %jibb] src-375 `typ-375 ~ ~ ~[['/ui/bad.jibb' ~[~.ui ~.bad ~.jibb] mod-375-1]])) (check-module-trees ~.module-cache-incomplete `mtre-375 ~[['/ui/bad.jibb' ~[~.ui ~.bad ~.jibb] mod-375-1]]))
2266+++ test-module-cache-sibling-cycle
2267+ (weld (weld (check ~.module-cache-sibling-cycle src-376 `tok-376 `tre-376) (check-module-types ~.module-cache-sibling-cycle ~[%tests %golden ~.module-cache-sibling-cycle %source %jibb] src-376 `typ-376 ~ ~ ~[['/ui/safe.jibb' ~[~.ui ~.safe ~.jibb] mod-376-1] ['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-376-2] ['/ui/b.jibb' ~[~.ui ~.b ~.jibb] mod-376-3]])) (check-module-trees ~.module-cache-sibling-cycle `mtre-376 ~[['/ui/safe.jibb' ~[~.ui ~.safe ~.jibb] mod-376-1] ['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-376-2] ['/ui/b.jibb' ~[~.ui ~.b ~.jibb] mod-376-3]]))
22142268++ test-module-fixture-eof
2215− (weld (check ~.module-fixture-eof src-373 `tok-373 `tre-373) (check-module-trees ~.module-fixture-eof `mtre-373 ~[['/ui/incomplete.jibb' ~[~.ui ~.incomplete ~.jibb] mod-373-1]]))
2269+ (weld (check ~.module-fixture-eof src-377 `tok-377 `tre-377) (check-module-trees ~.module-fixture-eof `mtre-377 ~[['/ui/incomplete.jibb' ~[~.ui ~.incomplete ~.jibb] mod-377-1]]))
22162270++ test-module-import-atom-scheme
2217− (weld (weld (check ~.module-import-atom-scheme src-374 `tok-374 `tre-374) (check-module-types ~.module-import-atom-scheme ~[%tests %golden ~.module-import-atom-scheme %source %jibb] src-374 `typ-374 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-374-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-374-2]])) (check-module-trees ~.module-import-atom-scheme `mtre-374 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-374-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-374-2]]))
2271+ (weld (weld (check ~.module-import-atom-scheme src-378 `tok-378 `tre-378) (check-module-types ~.module-import-atom-scheme ~[%tests %golden ~.module-import-atom-scheme %source %jibb] src-378 `typ-378 ~ ~ ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-378-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-378-2]])) (check-module-trees ~.module-import-atom-scheme `mtre-378 ~[['/ui/mid.jibb' ~[~.ui ~.mid ~.jibb] mod-378-1] ['/ui/base.jibb' ~[~.ui ~.base ~.jibb] mod-378-2]]))
22182272++ test-module-import-cycle
2219− (weld (weld (check-at ~.module-import-cycle ~[~.ui ~.main ~.jibb] src-375 `tok-375 `tre-375) (check-module-types ~.module-import-cycle ~[~.ui ~.main ~.jibb] src-375 `typ-375 ~ ~ ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-375-1] ['/ui/b.jibb' ~[~.ui ~.b ~.jibb] mod-375-2]])) (check-module-trees ~.module-import-cycle `mtre-375 ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-375-1] ['/ui/b.jibb' ~[~.ui ~.b ~.jibb] mod-375-2]]))
2273+ (weld (weld (check-at ~.module-import-cycle ~[~.ui ~.main ~.jibb] src-379 `tok-379 `tre-379) (check-module-types ~.module-import-cycle ~[~.ui ~.main ~.jibb] src-379 `typ-379 ~ ~ ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-379-1] ['/ui/b.jibb' ~[~.ui ~.b ~.jibb] mod-379-2]])) (check-module-trees ~.module-import-cycle `mtre-379 ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-379-1] ['/ui/b.jibb' ~[~.ui ~.b ~.jibb] mod-379-2]]))
22202274++ test-module-import-empty
2221− (weld (check ~.module-import-empty src-376 `tok-376 `tre-376) (check-module-types ~.module-import-empty ~[%tests %golden ~.module-import-empty %source %jibb] src-376 `typ-376 ~ ~ ~))
2275+ (weld (check ~.module-import-empty src-380 `tok-380 `tre-380) (check-module-types ~.module-import-empty ~[%tests %golden ~.module-import-empty %source %jibb] src-380 `typ-380 ~ ~ ~))
22222276++ test-module-import-face-shadow
2223− (weld (weld (check ~.module-import-face-shadow src-377 `tok-377 `tre-377) (check-module-types ~.module-import-face-shadow ~[%tests %golden ~.module-import-face-shadow %source %jibb] src-377 `typ-377 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-377-1]])) (check-module-trees ~.module-import-face-shadow `mtre-377 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-377-1]]))
2277+ (weld (weld (check ~.module-import-face-shadow src-381 `tok-381 `tre-381) (check-module-types ~.module-import-face-shadow ~[%tests %golden ~.module-import-face-shadow %source %jibb] src-381 `typ-381 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-381-1]])) (check-module-trees ~.module-import-face-shadow `mtre-381 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-381-1]]))
22242278++ test-module-import-identity
2225− (weld (weld (check ~.module-import-identity src-378 `tok-378 `tre-378) (check-module-types ~.module-import-identity ~[%tests %golden ~.module-import-identity %source %jibb] src-378 `typ-378 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-378-1]])) (check-module-trees ~.module-import-identity `mtre-378 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-378-1]]))
2279+ (weld (weld (check ~.module-import-identity src-382 `tok-382 `tre-382) (check-module-types ~.module-import-identity ~[%tests %golden ~.module-import-identity %source %jibb] src-382 `typ-382 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-382-1]])) (check-module-trees ~.module-import-identity `mtre-382 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-382-1]]))
22262280++ test-module-import-invalid
2227− (weld (weld (check ~.module-import-invalid src-379 `tok-379 `tre-379) (check-module-types ~.module-import-invalid ~[%tests %golden ~.module-import-invalid %source %jibb] src-379 `typ-379 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-379-1]])) (check-module-trees ~.module-import-invalid `mtre-379 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-379-1]]))
2281+ (weld (weld (check ~.module-import-invalid src-383 `tok-383 `tre-383) (check-module-types ~.module-import-invalid ~[%tests %golden ~.module-import-invalid %source %jibb] src-383 `typ-383 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-383-1]])) (check-module-trees ~.module-import-invalid `mtre-383 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-383-1]]))
22282282++ test-module-import-missing-member
2229− (weld (weld (check ~.module-import-missing-member src-380 `tok-380 `tre-380) (check-module-types ~.module-import-missing-member ~[%tests %golden ~.module-import-missing-member %source %jibb] src-380 `typ-380 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-380-1]])) (check-module-trees ~.module-import-missing-member `mtre-380 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-380-1]]))
2283+ (weld (weld (check ~.module-import-missing-member src-384 `tok-384 `tre-384) (check-module-types ~.module-import-missing-member ~[%tests %golden ~.module-import-missing-member %source %jibb] src-384 `typ-384 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-384-1]])) (check-module-trees ~.module-import-missing-member `mtre-384 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-384-1]]))
22302284++ test-module-import-mold
2231− (weld (weld (check ~.module-import-mold src-381 `tok-381 `tre-381) (check-module-types ~.module-import-mold ~[%tests %golden ~.module-import-mold %source %jibb] src-381 `typ-381 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-381-1]])) (check-module-trees ~.module-import-mold `mtre-381 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-381-1]]))
2285+ (weld (weld (check ~.module-import-mold src-385 `tok-385 `tre-385) (check-module-types ~.module-import-mold ~[%tests %golden ~.module-import-mold %source %jibb] src-385 `typ-385 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-385-1]])) (check-module-trees ~.module-import-mold `mtre-385 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-385-1]]))
22322286++ test-module-import-prelude-cross-namespace
2233− (weld (check ~.module-import-prelude-cross-namespace src-382 `tok-382 `tre-382) (check-module-types ~.module-import-prelude-cross-namespace ~[%tests %golden ~.module-import-prelude-cross-namespace %source %jibb] src-382 `typ-382 ~ ~ ~))
2287+ (weld (check ~.module-import-prelude-cross-namespace src-386 `tok-386 `tre-386) (check-module-types ~.module-import-prelude-cross-namespace ~[%tests %golden ~.module-import-prelude-cross-namespace %source %jibb] src-386 `typ-386 ~ ~ ~))
22342288++ test-module-import-prelude-mold-shadow
2235− (weld (check ~.module-import-prelude-mold-shadow src-383 `tok-383 `tre-383) (check-module-types ~.module-import-prelude-mold-shadow ~[%tests %golden ~.module-import-prelude-mold-shadow %source %jibb] src-383 `typ-383 ~ ~ ~))
2289+ (weld (check ~.module-import-prelude-mold-shadow src-387 `tok-387 `tre-387) (check-module-types ~.module-import-prelude-mold-shadow ~[%tests %golden ~.module-import-prelude-mold-shadow %source %jibb] src-387 `typ-387 ~ ~ ~))
22362290++ test-module-import-prelude-sample-shadow
2237− (weld (weld (check ~.module-import-prelude-sample-shadow src-384 `tok-384 `tre-384) (check-module-types ~.module-import-prelude-sample-shadow ~[%tests %golden ~.module-import-prelude-sample-shadow %source %jibb] src-384 `typ-384 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-384-1]])) (check-module-trees ~.module-import-prelude-sample-shadow `mtre-384 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-384-1]]))
2291+ (weld (weld (check ~.module-import-prelude-sample-shadow src-388 `tok-388 `tre-388) (check-module-types ~.module-import-prelude-sample-shadow ~[%tests %golden ~.module-import-prelude-sample-shadow %source %jibb] src-388 `typ-388 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-388-1]])) (check-module-trees ~.module-import-prelude-sample-shadow `mtre-388 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-388-1]]))
22382292++ test-module-import-prelude-value-shadow
2239− (weld (weld (check ~.module-import-prelude-value-shadow src-385 `tok-385 `tre-385) (check-module-types ~.module-import-prelude-value-shadow ~[%tests %golden ~.module-import-prelude-value-shadow %source %jibb] src-385 `typ-385 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-385-1]])) (check-module-trees ~.module-import-prelude-value-shadow `mtre-385 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-385-1]]))
2293+ (weld (weld (check ~.module-import-prelude-value-shadow src-389 `tok-389 `tre-389) (check-module-types ~.module-import-prelude-value-shadow ~[%tests %golden ~.module-import-prelude-value-shadow %source %jibb] src-389 `typ-389 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-389-1]])) (check-module-trees ~.module-import-prelude-value-shadow `mtre-389 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-389-1]]))
22402294++ test-module-import-root-cycle
2241− (weld (weld (check-at ~.module-import-root-cycle ~[~.ui ~.main ~.jibb] src-386 `tok-386 `tre-386) (check-module-types ~.module-import-root-cycle ~[~.ui ~.main ~.jibb] src-386 `typ-386 ~ ~ ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-386-1]])) (check-module-trees ~.module-import-root-cycle `mtre-386 ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-386-1]]))
2295+ (weld (weld (check-at ~.module-import-root-cycle ~[~.ui ~.main ~.jibb] src-390 `tok-390 `tre-390) (check-module-types ~.module-import-root-cycle ~[~.ui ~.main ~.jibb] src-390 `typ-390 ~ ~ ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-390-1]])) (check-module-trees ~.module-import-root-cycle `mtre-390 ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-390-1]]))
22422296++ test-module-import-root-import-shadow
2243− (weld (check ~.module-import-root-import-shadow src-387 `tok-387 `tre-387) (check-module-types ~.module-import-root-import-shadow ~[%tests %golden ~.module-import-root-import-shadow %source %jibb] src-387 `typ-387 ~[[%fixture %title imp-387-1]] ~[[%label mark-387-1]] ~))
2297+ (weld (check ~.module-import-root-import-shadow src-391 `tok-391 `tre-391) (check-module-types ~.module-import-root-import-shadow ~[%tests %golden ~.module-import-root-import-shadow %source %jibb] src-391 `typ-391 ~[[%fixture %title imp-391-1]] ~[[%label mark-391-1]] ~))
22442298++ test-module-import-separate-namespaces
2245− (weld (weld (check ~.module-import-separate-namespaces src-388 `tok-388 `tre-388) (check-module-types ~.module-import-separate-namespaces ~[%tests %golden ~.module-import-separate-namespaces %source %jibb] src-388 `typ-388 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-388-1]])) (check-module-trees ~.module-import-separate-namespaces `mtre-388 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-388-1]]))
2299+ (weld (weld (check ~.module-import-separate-namespaces src-392 `tok-392 `tre-392) (check-module-types ~.module-import-separate-namespaces ~[%tests %golden ~.module-import-separate-namespaces %source %jibb] src-392 `typ-392 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-392-1]])) (check-module-trees ~.module-import-separate-namespaces `mtre-392 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-392-1]]))
22462300++ test-module-import-sur-scope
2247− (weld (weld (check ~.module-import-sur-scope src-389 `tok-389 `tre-389) (check-module-types ~.module-import-sur-scope ~[%tests %golden ~.module-import-sur-scope %source %jibb] src-389 `typ-389 ~[[%fixture %title imp-389-1]] ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-389-1]])) (check-module-trees ~.module-import-sur-scope `mtre-389 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-389-1]]))
2301+ (weld (weld (check ~.module-import-sur-scope src-393 `tok-393 `tre-393) (check-module-types ~.module-import-sur-scope ~[%tests %golden ~.module-import-sur-scope %source %jibb] src-393 `typ-393 ~[[%fixture %title imp-393-1]] ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-393-1]])) (check-module-trees ~.module-import-sur-scope `mtre-393 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-393-1]]))
22482302++ test-module-import-transitive
2249− (weld (weld (check-at ~.module-import-transitive ~[~.ui ~.main ~.jibb] src-390 `tok-390 `tre-390) (check-module-types ~.module-import-transitive ~[~.ui ~.main ~.jibb] src-390 `typ-390 ~ ~ ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-390-1] ['/ui/b.jibb' ~[~.ui ~.b ~.jibb] mod-390-2] ['/ui/c.jibb' ~[~.ui ~.c ~.jibb] mod-390-3]])) (check-module-trees ~.module-import-transitive `mtre-390 ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-390-1] ['/ui/b.jibb' ~[~.ui ~.b ~.jibb] mod-390-2] ['/ui/c.jibb' ~[~.ui ~.c ~.jibb] mod-390-3]]))
2303+ (weld (weld (check-at ~.module-import-transitive ~[~.ui ~.main ~.jibb] src-394 `tok-394 `tre-394) (check-module-types ~.module-import-transitive ~[~.ui ~.main ~.jibb] src-394 `typ-394 ~ ~ ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-394-1] ['/ui/b.jibb' ~[~.ui ~.b ~.jibb] mod-394-2] ['/ui/c.jibb' ~[~.ui ~.c ~.jibb] mod-394-3]])) (check-module-trees ~.module-import-transitive `mtre-394 ~[['/ui/a.jibb' ~[~.ui ~.a ~.jibb] mod-394-1] ['/ui/b.jibb' ~[~.ui ~.b ~.jibb] mod-394-2] ['/ui/c.jibb' ~[~.ui ~.c ~.jibb] mod-394-3]]))
22502304++ test-module-import-unused-invalid
2251− (weld (weld (check ~.module-import-unused-invalid src-391 `tok-391 `tre-391) (check-module-types ~.module-import-unused-invalid ~[%tests %golden ~.module-import-unused-invalid %source %jibb] src-391 `typ-391 ~ ~ ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-391-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-391-2]])) (check-module-trees ~.module-import-unused-invalid `mtre-391 ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-391-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-391-2]]))
2305+ (weld (weld (check ~.module-import-unused-invalid src-395 `tok-395 `tre-395) (check-module-types ~.module-import-unused-invalid ~[%tests %golden ~.module-import-unused-invalid %source %jibb] src-395 `typ-395 ~ ~ ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-395-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-395-2]])) (check-module-trees ~.module-import-unused-invalid `mtre-395 ~[['/ui/good.jibb' ~[~.ui ~.good ~.jibb] mod-395-1] ['/ui/unused.jibb' ~[~.ui ~.unused ~.jibb] mod-395-2]]))
22522306++ test-prelude-1c-structural
2253− (weld (check ~.prelude-1c-structural src-392 `tok-392 `tre-392) (check-types ~.prelude-1c-structural ~[%tests %golden ~.prelude-1c-structural %source %jibb] src-392 `typ-392))
2307+ (weld (check ~.prelude-1c-structural src-396 `tok-396 `tre-396) (check-types ~.prelude-1c-structural ~[%tests %golden ~.prelude-1c-structural %source %jibb] src-396 `typ-396))
22542308++ test-prelude-3g-basic
2255− (weld (check ~.prelude-3g-basic src-393 `tok-393 `tre-393) (check-types ~.prelude-3g-basic ~[%tests %golden ~.prelude-3g-basic %source %jibb] src-393 `typ-393))
2309+ (weld (check ~.prelude-3g-basic src-397 `tok-397 `tre-397) (check-types ~.prelude-3g-basic ~[%tests %golden ~.prelude-3g-basic %source %jibb] src-397 `typ-397))
22562310++ test-prelude-3g-like
2257− (weld (check ~.prelude-3g-like src-394 `tok-394 `tre-394) (check-types ~.prelude-3g-like ~[%tests %golden ~.prelude-3g-like %source %jibb] src-394 `typ-394))
2311+ (weld (check ~.prelude-3g-like src-398 `tok-398 `tre-398) (check-types ~.prelude-3g-like ~[%tests %golden ~.prelude-3g-like %source %jibb] src-398 `typ-398))
22582312++ test-prelude-3g-structural
2259− (weld (check ~.prelude-3g-structural src-395 `tok-395 `tre-395) (check-types ~.prelude-3g-structural ~[%tests %golden ~.prelude-3g-structural %source %jibb] src-395 `typ-395))
2313+ (weld (check ~.prelude-3g-structural src-399 `tok-399 `tre-399) (check-types ~.prelude-3g-structural ~[%tests %golden ~.prelude-3g-structural %source %jibb] src-399 `typ-399))
22602314++ test-prelude-core-functions
2261− (weld (check ~.prelude-core-functions src-396 `tok-396 `tre-396) (check-types ~.prelude-core-functions ~[%tests %golden ~.prelude-core-functions %source %jibb] src-396 `typ-396))
2315+ (weld (check ~.prelude-core-functions src-400 `tok-400 `tre-400) (check-types ~.prelude-core-functions ~[%tests %golden ~.prelude-core-functions %source %jibb] src-400 `typ-400))
22622316++ test-prelude-list-helpers
2263− (weld (check ~.prelude-list-helpers src-397 `tok-397 `tre-397) (check-types ~.prelude-list-helpers ~[%tests %golden ~.prelude-list-helpers %source %jibb] src-397 `typ-397))
2317+ (weld (check ~.prelude-list-helpers src-401 `tok-401 `tre-401) (check-types ~.prelude-list-helpers ~[%tests %golden ~.prelude-list-helpers %source %jibb] src-401 `typ-401))
22642318++ test-prelude-list-unit
2265− (weld (check ~.prelude-list-unit src-398 `tok-398 `tre-398) (check-types ~.prelude-list-unit ~[%tests %golden ~.prelude-list-unit %source %jibb] src-398 `typ-398))
2319+ (weld (check ~.prelude-list-unit src-402 `tok-402 `tre-402) (check-types ~.prelude-list-unit ~[%tests %golden ~.prelude-list-unit %source %jibb] src-402 `typ-402))
22662320++ test-prelude-unit-list-transforms
2267− (weld (check ~.prelude-unit-list-transforms src-399 `tok-399 `tre-399) (check-types ~.prelude-unit-list-transforms ~[%tests %golden ~.prelude-unit-list-transforms %source %jibb] src-399 `typ-399))
2321+ (weld (check ~.prelude-unit-list-transforms src-403 `tok-403 `tre-403) (check-types ~.prelude-unit-list-transforms ~[%tests %golden ~.prelude-unit-list-transforms %source %jibb] src-403 `typ-403))
22682322++ test-types-import-mark
2269− (weld (check ~.types-import-mark src-400 `tok-400 `tre-400) (check-mark-types ~.types-import-mark ~[%tests %golden ~.types-import-mark %source %jibb] src-400 `typ-400 ~[[%fixture %title imp-400-1]] ~[[%label mark-400-1]]))
2323+ (weld (check ~.types-import-mark src-404 `tok-404 `tre-404) (check-mark-types ~.types-import-mark ~[%tests %golden ~.types-import-mark %source %jibb] src-404 `typ-404 ~[[%fixture %title imp-404-1]] ~[[%label mark-404-1]]))
2324+++ test-types-import-mark-record
2325+ (weld (check ~.types-import-mark-record src-405 `tok-405 `tre-405) (check-mark-types ~.types-import-mark-record ~[%tests %golden ~.types-import-mark-record %source %jibb] src-405 `typ-405 ~ ~[[%note mark-405-1] [%choice mark-405-2]]))
22702326++ test-types-import-missing-mold
2271− (weld (check ~.types-import-missing-mold src-401 `tok-401 `tre-401) (check-import-types ~.types-import-missing-mold ~[%tests %golden ~.types-import-missing-mold %source %jibb] src-401 `typ-401 ~[[%fixture %missing imp-401-1]]))
2327+ (weld (check ~.types-import-missing-mold src-406 `tok-406 `tre-406) (check-import-types ~.types-import-missing-mold ~[%tests %golden ~.types-import-missing-mold %source %jibb] src-406 `typ-406 ~[[%fixture %missing imp-406-1]]))
22722328++ test-types-import-sur
2273− (weld (check ~.types-import-sur src-402 `tok-402 `tre-402) (check-import-types ~.types-import-sur ~[%tests %golden ~.types-import-sur %source %jibb] src-402 `typ-402 ~[[%fixture %title imp-402-1] [%fixture %pair imp-402-2]]))
2329+ (weld (check ~.types-import-sur src-407 `tok-407 `tre-407) (check-import-types ~.types-import-sur ~[%tests %golden ~.types-import-sur %source %jibb] src-407 `typ-407 ~[[%fixture %title imp-407-1] [%fixture %pair imp-407-2]]))
2330+++ test-types-import-sur-record-graph
2331+ (weld (weld (check ~.types-import-sur-record-graph src-408 `tok-408 `tre-408) (check-module-types ~.types-import-sur-record-graph ~[%tests %golden ~.types-import-sur-record-graph %source %jibb] src-408 `typ-408 ~[[%fixture %entry imp-408-1]] ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-408-1]])) (check-module-trees ~.types-import-sur-record-graph `mtre-408 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-408-1]]))
22742332++ test-types-module-fixtures
2275− (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-403 `tok-403 `tre-403) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-403 `typ-403 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-403-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-403-2]])) (check-module-trees ~.types-module-fixtures `mtre-403 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-403-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-403-2]]))
2333+ (weld (weld (check-at ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-409 `tok-409 `tre-409) (check-module-types ~.types-module-fixtures ~[~.ui ~.blog ~.index ~.jibb] src-409 `typ-409 ~ ~ ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-409-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-409-2]])) (check-module-trees ~.types-module-fixtures `mtre-409 ~[['/ui/api/blog.jibb' ~[~.ui ~.api ~.blog ~.jibb] mod-409-1] ['/ui/components/card.jibb' ~[~.ui ~.components ~.card ~.jibb] mod-409-2]]))
22762334++ test-types-module-mixed
2277− (weld (weld (check ~.types-module-mixed src-404 `tok-404 `tre-404) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-404 `typ-404 ~[[%fixture %title imp-404-1]] ~[[%label mark-404-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-404-1]])) (check-module-trees ~.types-module-mixed `mtre-404 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-404-1]]))
2335+ (weld (weld (check ~.types-module-mixed src-410 `tok-410 `tre-410) (check-module-types ~.types-module-mixed ~[%tests %golden ~.types-module-mixed %source %jibb] src-410 `typ-410 ~[[%fixture %title imp-410-1]] ~[[%label mark-410-1]] ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-410-1]])) (check-module-trees ~.types-module-mixed `mtre-410 ~[['/ui/helper.jibb' ~[~.ui ~.helper ~.jibb] mod-410-1]]))
22782336++ test-types-partial-apply
2279− (weld (check ~.types-partial-apply src-405 `tok-405 `tre-405) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-405 `typ-405))
2337+ (weld (check ~.types-partial-apply src-411 `tok-411 `tre-411) (check-types ~.types-partial-apply ~[%tests %golden ~.types-partial-apply %source %jibb] src-411 `typ-411))
22802338++ test-types-partial-atom-alias
2281− (weld (check ~.types-partial-atom-alias src-406 `tok-406 `tre-406) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-406 `typ-406))
2339+ (weld (check ~.types-partial-atom-alias src-412 `tok-412 `tre-412) (check-types ~.types-partial-atom-alias ~[%tests %golden ~.types-partial-atom-alias %source %jibb] src-412 `typ-412))
22822340++ test-types-partial-atom-constraint
2283− (weld (check ~.types-partial-atom-constraint src-407 `tok-407 `tre-407) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-407 `typ-407))
2341+ (weld (check ~.types-partial-atom-constraint src-413 `tok-413 `tre-413) (check-types ~.types-partial-atom-constraint ~[%tests %golden ~.types-partial-atom-constraint %source %jibb] src-413 `typ-413))
22842342++ test-types-partial-atom-widening
2285− (weld (check ~.types-partial-atom-widening src-408 `tok-408 `tre-408) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-408 `typ-408))
2343+ (weld (check ~.types-partial-atom-widening src-414 `tok-414 `tre-414) (check-types ~.types-partial-atom-widening ~[%tests %golden ~.types-partial-atom-widening %source %jibb] src-414 `typ-414))
22862344++ test-types-partial-aura
2287− (weld (check ~.types-partial-aura src-409 `tok-409 `tre-409) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-409 `typ-409))
2345+ (weld (check ~.types-partial-aura src-415 `tok-415 `tre-415) (check-types ~.types-partial-aura ~[%tests %golden ~.types-partial-aura %source %jibb] src-415 `typ-415))
22882346++ test-types-partial-aura-family
2289− (weld (check ~.types-partial-aura-family src-410 `tok-410 `tre-410) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-410 `typ-410))
2347+ (weld (check ~.types-partial-aura-family src-416 `tok-416 `tre-416) (check-types ~.types-partial-aura-family ~[%tests %golden ~.types-partial-aura-family %source %jibb] src-416 `typ-416))
22902348++ test-types-partial-aura-generalization
2291− (weld (check ~.types-partial-aura-generalization src-411 `tok-411 `tre-411) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-411 `typ-411))
2349+ (weld (check ~.types-partial-aura-generalization src-417 `tok-417 `tre-417) (check-types ~.types-partial-aura-generalization ~[%tests %golden ~.types-partial-aura-generalization %source %jibb] src-417 `typ-417))
22922350++ test-types-partial-bare-atom
2293− (weld (check ~.types-partial-bare-atom src-412 `tok-412 `tre-412) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-412 `typ-412))
2351+ (weld (check ~.types-partial-bare-atom src-418 `tok-418 `tre-418) (check-types ~.types-partial-bare-atom ~[%tests %golden ~.types-partial-bare-atom %source %jibb] src-418 `typ-418))
22942352++ test-types-partial-branch-widening
2295− (weld (check ~.types-partial-branch-widening src-413 `tok-413 `tre-413) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-413 `typ-413))
2353+ (weld (check ~.types-partial-branch-widening src-419 `tok-419 `tre-419) (check-types ~.types-partial-branch-widening ~[%tests %golden ~.types-partial-branch-widening %source %jibb] src-419 `typ-419))
22962354++ test-types-partial-conflicting-sites
2297− (weld (check ~.types-partial-conflicting-sites src-414 `tok-414 `tre-414) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-414 `typ-414))
2355+ (weld (check ~.types-partial-conflicting-sites src-420 `tok-420 `tre-420) (check-types ~.types-partial-conflicting-sites ~[%tests %golden ~.types-partial-conflicting-sites %source %jibb] src-420 `typ-420))
22982356++ test-types-partial-decimal-default
2299− (weld (check ~.types-partial-decimal-default src-415 `tok-415 `tre-415) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-415 `typ-415))
2357+ (weld (check ~.types-partial-decimal-default src-421 `tok-421 `tre-421) (check-types ~.types-partial-decimal-default ~[%tests %golden ~.types-partial-decimal-default %source %jibb] src-421 `typ-421))
23002358++ test-types-partial-dependency-chain
2301− (weld (check ~.types-partial-dependency-chain src-416 `tok-416 `tre-416) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-416 `typ-416))
2359+ (weld (check ~.types-partial-dependency-chain src-422 `tok-422 `tre-422) (check-types ~.types-partial-dependency-chain ~[%tests %golden ~.types-partial-dependency-chain %source %jibb] src-422 `typ-422))
23022360++ test-types-partial-explicit-capital
2303− (weld (check ~.types-partial-explicit-capital src-417 `tok-417 `tre-417) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-417 `typ-417))
2361+ (weld (check ~.types-partial-explicit-capital src-423 `tok-423 `tre-423) (check-types ~.types-partial-explicit-capital ~[%tests %golden ~.types-partial-explicit-capital %source %jibb] src-423 `typ-423))
23042362++ test-types-partial-forward
2305− (weld (check ~.types-partial-forward src-418 `tok-418 `tre-418) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-418 `typ-418))
2363+ (weld (check ~.types-partial-forward src-424 `tok-424 `tre-424) (check-types ~.types-partial-forward ~[%tests %golden ~.types-partial-forward %source %jibb] src-424 `typ-424))
23062364++ test-types-partial-generalization
2307− (weld (check ~.types-partial-generalization src-419 `tok-419 `tre-419) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-419 `typ-419))
2365+ (weld (check ~.types-partial-generalization src-425 `tok-425 `tre-425) (check-types ~.types-partial-generalization ~[%tests %golden ~.types-partial-generalization %source %jibb] src-425 `typ-425))
23082366++ test-types-partial-identity
2309− (weld (check ~.types-partial-identity src-420 `tok-420 `tre-420) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-420 `typ-420))
2367+ (weld (check ~.types-partial-identity src-426 `tok-426 `tre-426) (check-types ~.types-partial-identity ~[%tests %golden ~.types-partial-identity %source %jibb] src-426 `typ-426))
23102368++ test-types-partial-independent-atoms
2311− (weld (check ~.types-partial-independent-atoms src-421 `tok-421 `tre-421) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-421 `typ-421))
2369+ (weld (check ~.types-partial-independent-atoms src-427 `tok-427 `tre-427) (check-types ~.types-partial-independent-atoms ~[%tests %golden ~.types-partial-independent-atoms %source %jibb] src-427 `typ-427))
23122370++ test-types-partial-local-molds
2313− (weld (check ~.types-partial-local-molds src-422 `tok-422 `tre-422) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-422 `typ-422))
2371+ (weld (check ~.types-partial-local-molds src-428 `tok-428 `tre-428) (check-types ~.types-partial-local-molds ~[%tests %golden ~.types-partial-local-molds %source %jibb] src-428 `typ-428))
23142372++ test-types-partial-locals
2315− (weld (check ~.types-partial-locals src-423 `tok-423 `tre-423) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-423 `typ-423))
2373+ (weld (check ~.types-partial-locals src-429 `tok-429 `tre-429) (check-types ~.types-partial-locals ~[%tests %golden ~.types-partial-locals %source %jibb] src-429 `typ-429))
23162374++ test-types-partial-many-atom-constraints
2317− (weld (check ~.types-partial-many-atom-constraints src-424 `tok-424 `tre-424) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-424 `typ-424))
2375+ (weld (check ~.types-partial-many-atom-constraints src-430 `tok-430 `tre-430) (check-types ~.types-partial-many-atom-constraints ~[%tests %golden ~.types-partial-many-atom-constraints %source %jibb] src-430 `typ-430))
23182376++ test-types-partial-mold-bare-aura
2319− (weld (check ~.types-partial-mold-bare-aura src-425 `tok-425 `tre-425) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-425 `typ-425))
2377+ (weld (check ~.types-partial-mold-bare-aura src-431 `tok-431 `tre-431) (check-types ~.types-partial-mold-bare-aura ~[%tests %golden ~.types-partial-mold-bare-aura %source %jibb] src-431 `typ-431))
23202378++ test-types-partial-mold-composite
2321− (weld (check ~.types-partial-mold-composite src-426 `tok-426 `tre-426) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-426 `typ-426))
2379+ (weld (check ~.types-partial-mold-composite src-432 `tok-432 `tre-432) (check-types ~.types-partial-mold-composite ~[%tests %golden ~.types-partial-mold-composite %source %jibb] src-432 `typ-432))
23222380++ test-types-partial-mold-forward
2323− (weld (check ~.types-partial-mold-forward src-427 `tok-427 `tre-427) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-427 `typ-427))
2381+ (weld (check ~.types-partial-mold-forward src-433 `tok-433 `tre-433) (check-types ~.types-partial-mold-forward ~[%tests %golden ~.types-partial-mold-forward %source %jibb] src-433 `typ-433))
23242382++ test-types-partial-mold-recursive
2325− (weld (check ~.types-partial-mold-recursive src-428 `tok-428 `tre-428) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-428 `typ-428))
2383+ (weld (check ~.types-partial-mold-recursive src-434 `tok-434 `tre-434) (check-types ~.types-partial-mold-recursive ~[%tests %golden ~.types-partial-mold-recursive %source %jibb] src-434 `typ-434))
23262384++ test-types-partial-occurs
2327− (weld (check ~.types-partial-occurs src-429 `tok-429 `tre-429) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-429 `typ-429))
2385+ (weld (check ~.types-partial-occurs src-435 `tok-435 `tre-435) (check-types ~.types-partial-occurs ~[%tests %golden ~.types-partial-occurs %source %jibb] src-435 `typ-435))
23282386++ test-types-partial-projection
2329− (weld (check ~.types-partial-projection src-430 `tok-430 `tre-430) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-430 `typ-430))
2387+ (weld (check ~.types-partial-projection src-436 `tok-436 `tre-436) (check-types ~.types-partial-projection ~[%tests %golden ~.types-partial-projection %source %jibb] src-436 `typ-436))
23302388++ test-types-partial-shadow-global
2331− (weld (check ~.types-partial-shadow-global src-431 `tok-431 `tre-431) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-431 `typ-431))
2389+ (weld (check ~.types-partial-shadow-global src-437 `tok-437 `tre-437) (check-types ~.types-partial-shadow-global ~[%tests %golden ~.types-partial-shadow-global %source %jibb] src-437 `typ-437))
23322390++ test-types-partial-shared-tvar
2333− (weld (check ~.types-partial-shared-tvar src-432 `tok-432 `tre-432) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-432 `typ-432))
2391+ (weld (check ~.types-partial-shared-tvar src-438 `tok-438 `tre-438) (check-types ~.types-partial-shared-tvar ~[%tests %golden ~.types-partial-shared-tvar %source %jibb] src-438 `typ-438))
23342392++ test-types-partial-union-cases
2335− (weld (check ~.types-partial-union-cases src-433 `tok-433 `tre-433) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-433 `typ-433))
2393+ (weld (check ~.types-partial-union-cases src-439 `tok-439 `tre-439) (check-types ~.types-partial-union-cases ~[%tests %golden ~.types-partial-union-cases %source %jibb] src-439 `typ-439))
23362394++ test-types-partial-union-edges
2337− (weld (check ~.types-partial-union-edges src-434 `tok-434 `tre-434) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-434 `typ-434))
2395+ (weld (check ~.types-partial-union-edges src-440 `tok-440 `tre-440) (check-types ~.types-partial-union-edges ~[%tests %golden ~.types-partial-union-edges %source %jibb] src-440 `typ-440))
23382396++ test-types-partial-unresolved-tag
2339− (weld (check ~.types-partial-unresolved-tag src-435 `tok-435 `tre-435) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-435 `typ-435))
2397+ (weld (check ~.types-partial-unresolved-tag src-441 `tok-441 `tre-441) (check-types ~.types-partial-unresolved-tag ~[%tests %golden ~.types-partial-unresolved-tag %source %jibb] src-441 `typ-441))
23402398++ test-types-record-bound-variable
2341− (weld (check ~.types-record-bound-variable src-436 `tok-436 `tre-436) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-436 `typ-436))
2399+ (weld (check ~.types-record-bound-variable src-442 `tok-442 `tre-442) (check-types ~.types-record-bound-variable ~[%tests %golden ~.types-record-bound-variable %source %jibb] src-442 `typ-442))
23422400++ test-types-record-faces
2343− (weld (check ~.types-record-faces src-437 `tok-437 `tre-437) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-437 `typ-437))
2401+ (weld (check ~.types-record-faces src-443 `tok-443 `tre-443) (check-types ~.types-record-faces ~[%tests %golden ~.types-record-faces %source %jibb] src-443 `typ-443))
23442402++ test-types-record-import
2345− (weld (weld (check ~.types-record-import src-438 `tok-438 `tre-438) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-438 `typ-438 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-438-1]])) (check-module-trees ~.types-record-import `mtre-438 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-438-1]]))
2403+ (weld (weld (check ~.types-record-import src-444 `tok-444 `tre-444) (check-module-types ~.types-record-import ~[%tests %golden ~.types-record-import %source %jibb] src-444 `typ-444 ~ ~ ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-444-1]])) (check-module-trees ~.types-record-import `mtre-444 ~[['/ui/lib.jibb' ~[~.ui ~.lib ~.jibb] mod-444-1]]))
23462404++ test-types-record-local-scheme
2347− (weld (check ~.types-record-local-scheme src-439 `tok-439 `tre-439) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-439 `typ-439))
2405+ (weld (check ~.types-record-local-scheme src-445 `tok-445 `tre-445) (check-types ~.types-record-local-scheme ~[%tests %golden ~.types-record-local-scheme %source %jibb] src-445 `typ-445))
23482406++ test-types-record-nested
2349− (weld (check ~.types-record-nested src-440 `tok-440 `tre-440) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-440 `typ-440))
2407+ (weld (check ~.types-record-nested src-446 `tok-446 `tre-446) (check-types ~.types-record-nested ~[%tests %golden ~.types-record-nested %source %jibb] src-446 `typ-446))
23502408++ test-types-record-to-tuple
2351− (weld (check ~.types-record-to-tuple src-441 `tok-441 `tre-441) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-441 `typ-441))
2409+ (weld (check ~.types-record-to-tuple src-447 `tok-447 `tre-447) (check-types ~.types-record-to-tuple ~[%tests %golden ~.types-record-to-tuple %source %jibb] src-447 `typ-447))
23522410::
23532411:: +check: run golden:jibb on a case and compare both outputs
23542412::
tests/type-import/about.txt+2−2
@@ -1,7 +1,7 @@
11The checker accepts caller-supplied results from the Hoon type reader. This
22fixture compiles a small /sur against zuse, selects its molds, and passes the
3−actual reader results to the inference fragment. It checks both supported
4−unfaced types and failures that must remain unsupported until the checker can
3+actual reader results to the inference fragment. It checks fixed atoms, nested
4+faced records, and failures that must remain unsupported until the checker can
55translate them. A missing import and a duplicate supplied mold fail closed.
66The types output is partial and does not claim that the module was checked.
77The same fixture runs under urbit eval and through -test on the fake ship.
tests/type-import/expected.txt+3−1
@@ -1,7 +1,9 @@
11partial inference; module not checked
22++ f: $-(@t @t)
33++ g: $-([@ud @t] [@ud @t])
4−++ face: sample mold is not supported by partial inference
4+++ face: $-([name=@t age=@ud] [name=@t age=@ud])
5+++ read-name: $-([name=@t age=@ud] @t)
6+++ nested: $-([entry=[name=@t age=@ud] number=@ud] @t)
57++ constant: sample mold is not supported by partial inference
68++ choice: sample mold is not supported by partial inference
79++ failed: sample mold is not supported by partial inference
tests/type-import/source.txt+2
@@ -2,6 +2,8 @@
22++ f |= x=title.fixture x
33++ g |= x=pair.fixture x
44++ face |= x=faced.fixture x
5+++ read-name |= x=faced.fixture name.x
6+++ nested |= x=nested.fixture name.entry.x
57++ constant |= x=constant.fixture x
68++ choice |= x=choice.fixture x
79++ failed |= x=failed.fixture x
tests/type-import/sur.txt+2−1
@@ -1,7 +1,8 @@
11|%
22+$ title @t
33+$ pair [@ud @t]
4−+$ faced [name=@t]
4++$ faced [name=@t age=@ud]
5++$ nested [entry=faced number=@ud]
56+$ constant %yes
67+$ choice ?(%yes %no)
78--
tests/type-mark/about.txt+2−1
@@ -2,5 +2,6 @@ The partial checker may use a mark only when that mark is explicitly
22imported with /%. The caller supplies mark results separately from /sur
33results. This report tests a supported aura, a supplied but undeclared mark,
44a same-named /sur import, a local mold collision, a failed importer result,
5−duplicate supplied results, and an unsupported faced payload. Only the first
5+duplicate supplied results, an unsupported union nested in a faced payload,
6+and uppercase and empty face names that Jibb cannot write. Only the first
67resolves; every report states that the module has not been checked.
tests/type-mark/expected.txt+4
@@ -13,3 +13,7 @@ partial inference; module not checked
1313++ identity: sample mold is not supported by partial inference
1414partial inference; module not checked
1515++ identity: sample mold is not supported by partial inference
16+partial inference; module not checked
17+++ identity: sample mold is not supported by partial inference
18+partial inference; module not checked
19+++ identity: sample mold is not supported by partial inference
tools/clay-fixtures+13
@@ -62,6 +62,19 @@ if result.stdout != expected:
6262 sys.exit(1)
6363print('Clay importer/checker bridge golden passed')
6464
65+try:
66+ result = subprocess.run([str(ship), 'run', str(fixtures / 'record-bridge.txt')],
67+ stdout=subprocess.PIPE, check=True)
68+except subprocess.CalledProcessError as error:
69+ sys.exit(error.returncode)
70+expected = (fixtures / 'record-bridge-expected.txt').read_bytes()
71+if result.stdout != expected:
72+ print('Clay record bridge differs from tests/clay-fixtures/record-bridge-expected.txt', file=sys.stderr)
73+ print('expected:', expected.decode().rstrip(), file=sys.stderr)
74+ print('actual: ', result.stdout.decode().rstrip(), file=sys.stderr)
75+ sys.exit(1)
76+print('Clay record importer/checker bridge golden passed')
77+
6578# A /sur with a Ford import has a different parent subject. This golden
6679# records the actual shape for provenance work without claiming support.
6780try:
tools/importer-test+1−1
@@ -34,4 +34,4 @@ if result.stdout != expected:
3434 result.stdout.decode().splitlines(keepends=True),
3535 fromfile='expected tree.txt', tofile='actual types'))
3636 sys.exit(1)
37−print('importer golden: 99 projections passed')
37+print('importer golden: 110 projections passed')