on master help sign in
Cache library interfaces and import record faces
d8ac47diko
docs/compiler.md+2−2
@@ -58,11 +58,11 @@ The core is split into chapters, `+| %name`, in this order:
58
58
59The 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.
59The 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.
60
60
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.
62
62
63Callers 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.
63Callers 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.
64
64
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.
66
66
67And the design notes:
67And the design notes:
68
68
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
43
43
44`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`.
44`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`.
45
45
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.
47
47
48## 2c
48## 2c
49
49
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
19
19
20## Milestone 2: in progress
20## Milestone 2: in progress
21
21
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.
23
23
24## Milestone 1: parser and mark
24## Milestone 1: parser and mark
25
25
@@ -37,8 +37,8 @@ What the plan asks for, and where it is:
37
37
38Besides the plan's list:
38Besides the plan's list:
39
39
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.
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 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.
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.
42- `tools/testdata/selftest` (22 checks) and `tools/testdata/ship-selftest` test the tools themselves.
42- `tools/testdata/selftest` (22 checks) and `tools/testdata/ship-selftest` test the tools themselves.
43- 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.
43- 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.
44- 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).
44- 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:
65| 1b7dbae | 2026-10-30 | Infer acyclic local definitions and parse case-local Jibb module fixtures |
65| 1b7dbae | 2026-10-30 | Infer acyclic local definitions and parse case-local Jibb module fixtures |
66| 8b9c9ac | 2026-10-30 | Preserve recursive import origins, infer simple local molds, and supply Jibb module sources to the partial checker |
66| 8b9c9ac | 2026-10-30 | Preserve recursive import origins, infer simple local molds, and supply Jibb module sources to the partial checker |
67| 529736a | 2026-10-30 | Infer supported library import graphs and guard nested Hoon `$^` in collections |
67| 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 |
69
70
70## Checking it
71## Checking it
71
72
72On a machine set up as [development.md](development.md) says:
73On a machine set up as [development.md](development.md) says:
73
74
74```
75```
75−tools/golden # 441 cases under urbit eval
76+tools/golden # 447 cases under urbit eval
76tools/importer-test # the Hoon importer fixture projection
77tools/importer-test # the Hoon importer fixture projection
77tools/type-import-test # the importer/checker bridge fixture
78tools/type-import-test # the importer/checker bridge fixture
78tools/type-mark-test # the mark/checker bridge fixture
79tools/type-mark-test # the mark/checker bridge fixture
@@ -82,7 +83,7 @@ tools/testdata/selftest # the tools themselves
82tools/doc-blocks docs/spec # the doc's examples are golden cases
83tools/doc-blocks docs/spec # the doc's examples are golden cases
83tools/ship start
84tools/ship start
84tools/ship gen-tests --check # tests/lib/jibb.hoon is up to date
85tools/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
86tools/testdata/ship-selftest
87tools/testdata/ship-selftest
87tools/ship check-commit # |commit stores .jibb files
88tools/ship check-commit # |commit stores .jibb files
88tools/clay-fixtures # example /sur files and marks build through Clay
89tools/clay-fixtures # example /sur files and marks build through Clay
jibb-dev/lib/jibb-import.hoon+24−6
@@ -429,15 +429,22 @@
429 [%| *] ~
429 [%| *] ~
430 ==
430 ==
431::
431::
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.
433++ fixed-cell-mold
434++ fixed-cell-mold
434− |= h=hoon
435+ |= [h=hoon axis=@ud]
435 ^- ?
436 ^- ?
436− ?^ -.h &($(h -.h) $(h +.h))
437+ ?^ -.h
438+ &($(h -.h, axis (mul 2 axis)) $(h +.h, axis (add 1 (mul 2 axis))))
437 ?+ h |
439 ?+ h |
438 [%note *] $(h q.h)
440 [%note *] $(h q.h)
439 [%ktts *] $(h q.h)
441 [%ktts *] $(h q.h)
440 [%ktls *] ?=([%sand *] p.h)
442 [%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))
441 ==
448 ==
442::
449::
443:: Return two source records with a single $^ replaced by each branch.
450:: Return two source records with a single $^ replaced by each branch.
@@ -449,10 +456,10 @@
449 =/ right $(h +.h, axis (add 1 (mul 2 axis)))
456 =/ right $(h +.h, axis (add 1 (mul 2 axis)))
450 ?^ left
457 ?^ left
451 ?^ right ~
458 ?^ right ~
452− ?. (fixed-cell-mold +.h) ~
459+ ?. (fixed-cell-mold +.h (add 1 (mul 2 axis))) ~
453 [~ [[one.u.left +.h] [two.u.left +.h]]]
460 [~ [[one.u.left +.h] [two.u.left +.h]]]
454 ?~ right ~
461 ?~ right ~
455− ?. (fixed-cell-mold -.h) ~
462+ ?. (fixed-cell-mold -.h (mul 2 axis)) ~
456 [~ [[-.h one.u.right] [-.h two.u.right]]]
463 [~ [[-.h one.u.right] [-.h two.u.right]]]
457 ?+ h ~
464 ?+ h ~
458 [%note *]
465 [%note *]
@@ -465,7 +472,7 @@
465 [~ [h(q one.u.out) h(q two.u.out)]]
472 [~ [h(q one.u.out) h(q two.u.out)]]
466 [%wtcl *]
473 [%wtcl *]
467 ?. =(p.h [%dtwt [%$ (mul 2 axis)]]) ~
474 ?. =(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)) ~
469 [~ [q.h r.h]]
476 [~ [q.h r.h]]
470 ==
477 ==
471::
478::
@@ -1122,6 +1129,17 @@
1122 (crip "set-direct-invalid-cell: {(show-result (sample %set-direct-invalid-cell))}")
1129 (crip "set-direct-invalid-cell: {(show-result (sample %set-direct-invalid-cell))}")
1123 (crip "map-key-invalid-cell: {(show-result (sample %map-key-invalid-cell))}")
1130 (crip "map-key-invalid-cell: {(show-result (sample %map-key-invalid-cell))}")
1124 (crip "nested-atom-cell: {(show-result (sample %nested-atom-cell))}")
1131 (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")}")
1125 (crip "nested-first-cell: {(show-result (sample %nested-first-cell))}")
1143 (crip "nested-first-cell: {(show-result (sample %nested-first-cell))}")
1126 (crip "nested-alias-cell: {(show-result (sample %nested-alias-cell))}")
1144 (crip "nested-alias-cell: {(show-result (sample %nested-alias-cell))}")
1127 (crip "nested-multiple-cell: {(show-result (sample %nested-multiple-cell))}")
1145 (crip "nested-multiple-cell: {(show-result (sample %nested-multiple-cell))}")
jibb-dev/lib/jibb.hoon+49−18
@@ -5123,9 +5123,17 @@
5123 $(ds t.ds)
5123 $(ds t.ds)
5124::
5124::
5125::
5125::
5126−:: The importer owns its algebra. Only successful %atom and %cell nouns
5126+:: The importer owns its algebra. Fixed atoms, cells and Jibb-named faces
5127−:: in the supported subset are decoded here. In particular a singleton,
5127+:: are decoded recursively. Singletons, unions, collections, recursive
5128−:: face, union, collection or recursive reference must not be widened.
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)))
5129::
5137::
5130++ import-to-itype
5138++ import-to-itype
5131 |= node=*
5139 |= node=*
@@ -5137,6 +5145,13 @@
5137 =/ aura=@ta (@ta +<.node)
5145 =/ aura=@ta (@ta +<.node)
5138 ?. |(?=(?(%u %ud %ux %uv %t %ta %tas %p %da %dr) aura) =('tD' aura)) ~
5146 ?. |(?=(?(%u %ud %ux %uv %t %ta %tas %p %da %dr) aura) =('tD' aura)) ~
5139 `[%atom aura]
5147 `[%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]
5140 %cell
5155 %cell
5141 ?. ?=([%cell * *] node) ~
5156 ?. ?=([%cell * *] node) ~
5142 =/ left=(unit itype) $(node +<.node)
5157 =/ left=(unit itype) $(node +<.node)
@@ -6014,8 +6029,9 @@
6014::
6029::
6015+$ jsource [at=path source=@t]
6030+$ jsource [at=path source=@t]
6016+$ jbundle (list jsource)
6031+$ jbundle (list jsource)
6032++$ jcache (list [at=path iface=ifile])
6017−+$ jfile-result (each ifile @t)
6033++$ jfile-result (each [iface=ifile cache=jcache] @t)
6018−+$ jimports-result (each ijimports @t)
6034++$ jimports-result (each [resolved=ijimports cache=jcache] @t)
6019::
6035::
6020++ import-binding-names
6036++ import-binding-names
6021 |= imports=(list import)
6037 |= imports=(list import)
@@ -6064,10 +6080,22 @@
6064 ?~ (ienv-lookup name.i.ds env) |
6080 ?~ (ienv-lookup name.i.ds env) |
6065 $(ds t.ds)
6081 $(ds t.ds)
6066::
6082::
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+::
6067++ resolve-jibb-imports
6095++ 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]
6069 ^- jimports-result
6097 ^- jimports-result
6070− ?~ imports [%& ~]
6098+ ?~ imports [%& [~ cache]]
6071 ?. ?=(%jibb -.i.imports) $(imports t.imports)
6099 ?. ?=(%jibb -.i.imports) $(imports t.imports)
6072 =/ at=path (weld path.i.imports `path`~[%jibb])
6100 =/ at=path (weld path.i.imports `path`~[%jibb])
6073 ?: (lien active |=(p=path =(p at)))
6101 ?: (lien active |=(p=path =(p at)))
@@ -6075,14 +6103,17 @@
6075 =/ found=jbundle (skim modules |=(m=jsource =(at at.m)))
6103 =/ found=jbundle (skim modules |=(m=jsource =(at at.m)))
6076 ?~ found [%| (crip "module source missing: {(spud at)}")]
6104 ?~ found [%| (crip "module source missing: {(spud at)}")]
6077 ?^ t.found [%| (crip "duplicate module sources: {(spud at)}")]
6105 ?^ t.found [%| (crip "duplicate module sources: {(spud at)}")]
6106+ =/ cached=(unit ifile) (find-jibb-cache at cache)
6107+ =/ iface=jfile-result
6108+ ?^ cached [%& [u.cached cache]]
6078− =/ iface=jfile-result (infer-jibb-file at source.i.found externals mark-externals modules [at active] prelude-values prelude-molds)
6109+ (infer-jibb-file at source.i.found externals mark-externals modules [at active] prelude-values prelude-molds cache)
6079 ?: ?=(%| -.iface) [%| p.iface]
6110 ?: ?=(%| -.iface) [%| p.iface]
6080− =/ rest=jimports-result $(imports t.imports)
6111+ =/ rest=jimports-result $(imports t.imports, cache cache.p.iface)
6081 ?: ?=(%| -.rest) rest
6112 ?: ?=(%| -.rest) rest
6082− [%& [[face.i.imports p.iface] p.rest]]
6113+ [%& [[[face.i.imports iface.p.iface] resolved.p.rest] cache.p.rest]]
6083::
6114::
6084++ infer-jibb-file
6115++ 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]
6086 ^- jfile-result
6117 ^- jfile-result
6087 ?: ?=([%ui %api *] at) [%| (crip "API module needs unsupported inference: {(spud at)}")]
6118 ?: ?=([%ui %api *] at) [%| (crip "API module needs unsupported inference: {(spud at)}")]
6088 =/ parsed (parse at src)
6119 =/ parsed (parse at src)
@@ -6092,20 +6123,20 @@
6092 =/ vals=(list term) (global-value-names defs.mod)
6123 =/ vals=(list term) (global-value-names defs.mod)
6093 ?: (lien vals |=(n=term =(n %main)))
6124 ?: (lien vals |=(n=term =(n %main)))
6094 [%| (crip "module kind needs unsupported inference: {(spud at)}")]
6125 [%| (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)
6096 ?: ?=(%| -.js) [%| p.js]
6127 ?: ?=(%| -.js) [%| p.js]
6097 =/ molds=imolds (collect-simple-molds defs.mod)
6128 =/ molds=imolds (collect-simple-molds defs.mod)
6098 =/ globals=(list term) (weld prelude-values (weld (import-binding-names imports.mod) vals))
6129 =/ globals=(list term) (weld prelude-values (weld (import-binding-names imports.mod) vals))
6099 =/ surs=(list term) (collect-sur-imports imports.mod)
6130 =/ surs=(list term) (collect-sur-imports imports.mod)
6100 =/ marks=(list term) (collect-mark-imports imports.mod)
6131 =/ 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)))
6132+ =/ reserved=(list term) (weld prelude-molds (turn resolved.p.js |=(j=[face=term interface=ifile] face.j)))
6102− =/ state=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks p.js reserved ~ |]
6133+ =/ state=istate [0 ~ ~ ~ molds globals externals surs mark-externals marks resolved.p.js reserved ~ |]
6103 =/ mts=(each imold-types @t) (module-mold-types molds state)
6134 =/ mts=(each imold-types @t) (module-mold-types molds state)
6104 ?: ?=(%| -.mts) [%| (crip "{(trip p.mts)}: {(spud at)}")]
6135 ?: ?=(%| -.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)
6106 ?. (module-values-complete defs.mod env)
6137 ?. (module-values-complete defs.mod env)
6107 [%| (crip "module definitions need unsupported inference: {(spud at)}")]
6138 [%| (crip "module definitions need unsupported inference: {(spud at)}")]
6108− [%& [env p.mts]]
6139+ [%& [[env p.mts] [[at [env p.mts]] cache.p.js]]]
6109::
6140::
6110:: +golden-types-with-modules fails closed for imports without prelude
6141:: +golden-types-with-modules fails closed for imports without prelude
6111:: scope. +golden-types-with-prelude resolves supported library graphs;
6142:: scope. +golden-types-with-prelude resolves supported library graphs;
@@ -6137,11 +6168,11 @@
6137 ?. (module-scope-valid p.parsed prelude-values prelude-molds)
6168 ?. (module-scope-valid p.parsed prelude-values prelude-molds)
6138 'partial inference; module not checked\0amodule has conflicting names'
6169 'partial inference; module not checked\0amodule has conflicting names'
6139 =/ js=jimports-result
6170 =/ 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 ~)
6141 ?: ?=(%| -.js) (of-wain:format ~['partial inference; module not checked' p.js])
6172 ?: ?=(%| -.js) (of-wain:format ~['partial inference; module not checked' p.js])
6142 =/ scope-values=(list term)
6173 =/ scope-values=(list term)
6143 (weld prelude-values (weld (collect-sur-imports imports.p.parsed) (collect-mark-imports imports.p.parsed)))
6174 (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)
6145::
6176::
6146:: +golden-types-with-marks: supply declared mark types separately from /sur
6177:: +golden-types-with-marks: supply declared mark types separately from /sur
6147:: entries, as [mark result] with the result from +read-mark:jibb-import.
6178:: entries, as [mark result] with the result from +read-mark:jibb-import.
jibb-dev/lib/jibb/prelude.jibb+20
@@ -196,6 +196,26 @@
196 %.y (skip rest predicate)
196 %.y (skip rest predicate)
197 %.n [item (skip rest predicate)]
197 %.n [item (skip rest predicate)]
198
198
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+
199++ roll |= args=[(list A) B $-([A B] B)]
219++ roll |= args=[(list A) B $-([A B] B)]
200 ?- args
220 ?- args
201 [xs start combine]
221 [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.
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, and left and right folds. The filters retain the order of their selected items.
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.
3expect: parses
3expect: parses
4expect-types: a partial inference report, not a checked module; unit and list gate typing is not complete
4expect-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 @@
196 %.y (skip rest predicate)
196 %.y (skip rest predicate)
197 %.n [item (skip rest predicate)]
197 %.n [item (skip rest predicate)]
198
198
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+
199++ roll |= args=[(list A) B $-([A B] B)]
219++ roll |= args=[(list A) B $-([A B] B)]
200 ?- args
220 ?- args
201 [xs start combine]
221 [xs start combine]
tests/golden/prelude-unit-list-transforms/tokens.txt+197−83
@@ -1208,7 +1208,7 @@
1208199:1 DEDENT
1208199:1 DEDENT
1209199:1 NEWLINE
1209199:1 NEWLINE
1210199:1 glyph ++
1210199:1 glyph ++
1211−199:4 name roll
1211+199:4 name levy
1212199:9 glyph |=
1212199:9 glyph |=
1213199:12 name args
1213199:12 name args
1214199:16 tight glyph =
1214199:16 tight glyph =
@@ -1217,101 +1217,215 @@
1217199:19 tight name list
1217199:19 tight name list
1218199:24 tvar A
1218199:24 tvar A
1219199:25 tight glyph )
1219199:25 tight glyph )
1220−199:27 tvar B
1220+199:27 glyph $-(
1221−199:29 glyph $-(
1221+199:30 tight tvar A
1222−199:32 tight glyph [
1222+199:32 glyph ?
1223−199:33 tight tvar A
1223+199:33 tight glyph )
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 ]
1224+199:34 tight glyph ]
1229200:3 INDENT
1225200:3 INDENT
1230200:3 glyph ?-
1226200:3 glyph ?-
1231200:6 name args
1227200:6 name args
1232201:5 INDENT
1228201:5 INDENT
1233201:5 glyph [
1229201:5 glyph [
1234201:6 tight name xs
1230201:6 tight name xs
1235−201:9 name start
1231+201:9 name predicate
1236−201:15 name combine
1237−201:22 tight glyph ]
1232+201:18 tight glyph ]
1238202:7 INDENT
1233202:7 INDENT
1239202:7 glyph ?-
1234202:7 glyph ?-
1240202:10 name xs
1235202:10 name xs
1241203:9 INDENT
1236203:9 INDENT
1242203:9 lit ~
1237203:9 lit ~
1243−203:11 name start
1238+203:11 lit %.y
1244204:9 NEWLINE
1239204:9 NEWLINE
1245204:9 glyph [
1240204:9 glyph [
1246204:10 tight name item
1241204:10 tight name item
1247204:15 name rest
1242204:15 name rest
1248204:19 tight glyph ]
1243204:19 tight glyph ]
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 ]
1249−204:21 glyph (
1363+224:21 glyph (
1250−204:22 tight name roll
1364+224:22 tight name roll
1251−204:27 name rest
1365+224:27 name rest
1252−204:32 glyph (
1366+224:32 glyph (
1253−204:33 tight name combine
1367+224:33 tight name combine
1254−204:41 name item
1368+224:41 name item
1255−204:46 name start
1369+224:46 name start
1256−204:51 tight glyph )
1370+224:51 tight glyph )
1257−204:53 name combine
1371+224:53 name combine
1258−204:60 tight glyph )
1372+224:60 tight glyph )
1259−206:1 DEDENT
1373+226:1 DEDENT
1260−206:1 DEDENT
1374+226:1 DEDENT
1261−206:1 DEDENT
1375+226:1 DEDENT
1262−206:1 DEDENT
1376+226:1 DEDENT
1263−206:1 NEWLINE
1377+226:1 NEWLINE
1264−206:1 glyph ++
1378+226:1 glyph ++
1265−206:4 name reel
1379+226:4 name reel
1266−206:9 glyph |=
1380+226:9 glyph |=
1267−206:12 name args
1381+226:12 name args
1268−206:16 tight glyph =
1382+226:16 tight glyph =
1269−206:17 tight glyph [
1383+226:17 tight glyph [
1270−206:18 tight glyph (
1384+226:18 tight glyph (
1271−206:19 tight name list
1385+226:19 tight name list
1272−206:24 tvar A
1386+226:24 tvar A
1273−206:25 tight glyph )
1387+226:25 tight glyph )
1274−206:27 tvar B
1388+226:27 tvar B
1275−206:29 glyph $-(
1389+226:29 glyph $-(
1276−206:32 tight glyph [
1390+226:32 tight glyph [
1277−206:33 tight tvar A
1391+226:33 tight tvar A
1278−206:35 tvar B
1392+226:35 tvar B
1279−206:36 tight glyph ]
1393+226:36 tight glyph ]
1280−206:38 tvar B
1394+226:38 tvar B
1281−206:39 tight glyph )
1395+226:39 tight glyph )
1282−206:40 tight glyph ]
1396+226:40 tight glyph ]
1283−207:3 INDENT
1397+227:3 INDENT
1284−207:3 glyph ?-
1398+227:3 glyph ?-
1285−207:6 name args
1399+227:6 name args
1286−208:5 INDENT
1400+228:5 INDENT
1287−208:5 glyph [
1401+228:5 glyph [
1288−208:6 tight name xs
1402+228:6 tight name xs
1289−208:9 name start
1403+228:9 name start
1290−208:15 name combine
1404+228:15 name combine
1291−208:22 tight glyph ]
1405+228:22 tight glyph ]
1292−209:7 INDENT
1406+229:7 INDENT
1293−209:7 glyph ?-
1407+229:7 glyph ?-
1294−209:10 name xs
1408+229:10 name xs
1295−210:9 INDENT
1409+230:9 INDENT
1296−210:9 lit ~
1410+230:9 lit ~
1297−210:11 name start
1411+230:11 name start
1298−211:9 NEWLINE
1412+231:9 NEWLINE
1299−211:9 glyph [
1413+231:9 glyph [
1300−211:10 tight name item
1414+231:10 tight name item
1301−211:15 name rest
1415+231:15 name rest
1302−211:19 tight glyph ]
1416+231:19 tight glyph ]
1303−211:21 glyph (
1417+231:21 glyph (
1304−211:22 tight name combine
1418+231:22 tight name combine
1305−211:30 name item
1419+231:30 name item
1306−211:35 glyph (
1420+231:35 glyph (
1307−211:36 tight name reel
1421+231:36 tight name reel
1308−211:41 name rest
1422+231:41 name rest
1309−211:46 name start
1423+231:46 name start
1310−211:52 name combine
1424+231:52 name combine
1311−211:59 tight glyph )
1425+231:59 tight glyph )
1312−211:60 tight glyph )
1426+231:60 tight glyph )
1313−211:61 DEDENT
1427+231:61 DEDENT
1314−211:61 DEDENT
1428+231:61 DEDENT
1315−211:61 DEDENT
1429+231:61 DEDENT
1316−211:61 DEDENT
1430+231:61 DEDENT
1317−211:61 NEWLINE
1431+231:61 NEWLINE
tests/golden/prelude-unit-list-transforms/tree.txt+92−40
@@ -505,56 +505,108 @@
505 (wing 197:18 item)
505 (wing 197:18 item)
506 (group 197:23
506 (group 197:23
507 (call 197:24 (wing 197:24 skip) (wing 197:29 rest) (wing 197:34 predicate)))))))))))))))
507 (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
509 (gate 199:9
509 (gate 199:9
510 (face 199:12 args
510 (face 199:12 args
511 (cell 199:17
511 (cell 199:17
512 (apply 199:18 list (tvar 199:24 A))
512 (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))
513+ (fn 199:27 (tvar 199:30 A) (flag 199:32))))
516− (tvar 199:38 B))))
517 (body 200:3
514 (body 200:3
518 (branch 200:3
515 (branch 200:3
519 (wing 200:6 args)
516 (wing 200:6 args)
520 (arm 201:5
517 (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))
522 (body 202:7
519 (body 202:7
523 (branch 202:7
520 (branch 202:7
524 (wing 202:10 xs)
521 (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))
526 (arm 204:9
523 (arm 204:9
527 (cell 204:9 (bind 204:10 item) (bind 204:15 rest))
524 (cell 204:9 (bind 204:10 item) (bind 204:15 rest))
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))
528− (group 204:21
580+ (group 224:21
529− (call 204:22
581+ (call 224:22
530− (wing 204:22 roll)
582+ (wing 224:22 roll)
531− (wing 204:27 rest)
583+ (wing 224:27 rest)
532− (group 204:32
584+ (group 224:32
533− (call 204:33 (wing 204:33 combine) (wing 204:41 item) (wing 204:46 start)))
585+ (call 224:33 (wing 224:33 combine) (wing 224:41 item) (wing 224:46 start)))
534− (wing 204:53 combine)))))))))))
586+ (wing 224:53 combine)))))))))))
535− (value 206:1 reel
587+ (value 226:1 reel
536− (gate 206:9
588+ (gate 226:9
537− (face 206:12 args
589+ (face 226:12 args
538− (cell 206:17
590+ (cell 226:17
539− (apply 206:18 list (tvar 206:24 A))
591+ (apply 226:18 list (tvar 226:24 A))
540− (tvar 206:27 B)
592+ (tvar 226:27 B)
541− (fn 206:29
593+ (fn 226:29
542− (cell 206:32 (tvar 206:33 A) (tvar 206:35 B))
594+ (cell 226:32 (tvar 226:33 A) (tvar 226:35 B))
543− (tvar 206:38 B))))
595+ (tvar 226:38 B))))
544− (body 207:3
596+ (body 227:3
545− (branch 207:3
597+ (branch 227:3
546− (wing 207:6 args)
598+ (wing 227:6 args)
547− (arm 208:5
599+ (arm 228:5
548− (cell 208:5 (bind 208:6 xs) (bind 208:9 start) (bind 208:15 combine))
600+ (cell 228:5 (bind 228:6 xs) (bind 228:9 start) (bind 228:15 combine))
549− (body 209:7
601+ (body 229:7
550− (branch 209:7
602+ (branch 229:7
551− (wing 209:10 xs)
603+ (wing 229:10 xs)
552− (arm 210:9 (lit 210:9 ~) (wing 210:11 start))
604+ (arm 230:9 (lit 230:9 ~) (wing 230:11 start))
553− (arm 211:9
605+ (arm 231:9
554− (cell 211:9 (bind 211:10 item) (bind 211:15 rest))
606+ (cell 231:9 (bind 231:10 item) (bind 231:15 rest))
555− (group 211:21
607+ (group 231:21
556− (call 211:22
608+ (call 231:22
557− (wing 211:22 combine)
609+ (wing 231:22 combine)
558− (wing 211:30 item)
610+ (wing 231:30 item)
559− (group 211:35
611+ (group 231:35
560− (call 211:36 (wing 211:36 reel) (wing 211:41 rest) (wing 211:46 start) (wing 211:52 combine))))))))))))))
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
46++ clef: sample mold is not supported by partial inference
46++ clef: sample mold is not supported by partial inference
47++ skim: sample mold is not supported by partial inference
47++ skim: sample mold is not supported by partial inference
48++ skip: sample mold is not supported by partial inference
48++ 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
49++ roll: sample mold is not supported by partial inference
51++ roll: sample mold is not supported by partial inference
50++ reel: sample mold is not supported by partial inference
52++ 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 @@
2recursion, and unsupported forms. `shadow.txt` checks local generator
2recursion, and unsupported forms. `shadow.txt` checks local generator
3shadowing and missing provenance. `shadow-static.txt` checks that a local
3shadowing and missing provenance. `shadow-static.txt` checks that a local
4list shadow alongside a nested ordered map is rejected. Static sibling
4list 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
6from its source branches. Named or validated siblings and branches, multiple `$^` cases,
6from its source branches. Named or validated siblings and branches, multiple `$^` cases,
7and `$^` in collection arguments fail closed before Hoon can collapse
7and `$^` in collection arguments fail closed before Hoon can collapse
8overlapping branches; nested `$@` cases remain supported. `ford.txt`
8overlapping branches; nested `$@` cases remain supported. `ford.txt`
tests/importer/ford.txt+1
@@ -2,6 +2,7 @@
2+$ lists (list @ud)
2+$ lists (list @ud)
3+$ wrapped item:small
3+$ wrapped item:small
4+$ recursive chain:small
4+$ recursive chain:small
5++$ tagged-record nested-tagged:small
5+$ nested-record nested-valid-cell:small
6+$ nested-record nested-valid-cell:small
6+$ local $@(~ [v=@ud next=local])
7+$ local $@(~ [v=@ud next=local])
7--
8--
tests/importer/origin-transitive.txt+1
@@ -1,4 +1,5 @@
1|%
1|%
2+$ wrapped recursive:intermediate
2+$ wrapped recursive:intermediate
3++$ tagged tagged-record:intermediate
3+$ nested nested-record:intermediate
4+$ nested nested-record:intermediate
4--
5--
tests/importer/small.txt+6
@@ -36,6 +36,12 @@
36+$ set-direct-invalid-cell (set $^(@ud @ud))
36+$ set-direct-invalid-cell (set $^(@ud @ud))
37+$ map-key-invalid-cell (map $^(@ud @ud) @t)
37+$ map-key-invalid-cell (map $^(@ud @ud) @t)
38+$ nested-atom-cell [left=$@(@ud [a=@ud b=@t]) right=$@(@t [c=@ud d=@t])]
38+$ 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
39+$ nested-first-cell [value=$^(@ud [a=@ud b=@t]) id=@t]
45+$ nested-first-cell [value=$^(@ud [a=@ud b=@t]) id=@t]
40+$ nested-alias-cell nested-valid-cell
46+$ nested-alias-cell nested-valid-cell
41+$ nested-multiple-cell [id=$^(@ud @ud) value=$^(@ud [a=@ud b=@t])]
47+$ 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
56set-direct-invalid-cell: error: a Hoon $^ union needs a source-level disjointness check
56set-direct-invalid-cell: error: a Hoon $^ union needs a source-level disjointness check
57map-key-invalid-cell: error: a Hoon $^ union needs a source-level disjointness check
57map-key-invalid-cell: error: a Hoon $^ union needs a source-level disjointness check
58nested-atom-cell: [left=(union [a=@ud b=@t] @ud) right=(union [c=@ud d=@t] @t)]
58nested-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
59nested-first-cell: [value=(union [a=@ud b=@t] @ud) id=@t]
70nested-first-cell: [value=(union [a=@ud b=@t] @ud) id=@t]
60nested-alias-cell: [id=@ud value=(union [a=@ud b=@t] @ud)]
71nested-alias-cell: [id=@ud value=(union [a=@ud b=@t] @ud)]
61nested-multiple-cell: error: a Hoon $^ union needs a source-level disjointness check
72nested-multiple-cell: error: a Hoon $^ union needs a source-level disjointness check
tests/lib/jibb-bridge.hoon+1
@@ -28,6 +28,7 @@
28 :~ [%fixture %title (read %title)]
28 :~ [%fixture %title (read %title)]
29 [%fixture %pair (read %pair)]
29 [%fixture %pair (read %pair)]
30 [%fixture %faced (read %faced)]
30 [%fixture %faced (read %faced)]
31+ [%fixture %nested (read %nested)]
31 [%fixture %constant (read %constant)]
32 [%fixture %constant (read %constant)]
32 [%fixture %choice (read %choice)]
33 [%fixture %choice (read %choice)]
33 [%fixture %failed [%| 'unsupported Hoon type']]
34 [%fixture %failed [%| 'unsupported Hoon type']]
tests/lib/jibb-mark-bridge.hoon+1−1
@@ -24,5 +24,5 @@
24++ bridge-output
24++ bridge-output
25 |= [declared=@t missing=@t sur=@t collision=@t]
25 |= [declared=@t missing=@t sur=@t collision=@t]
26 ^- @t
26 ^- @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 ~]]]]])])
28--
28--
tests/lib/jibb.hoon+454−396
@@ -1137,333 +1137,379 @@
1137/* src-372 %jibb /tests/golden/lex-tight-wing-ok-1/source/jibb
1137/* src-372 %jibb /tests/golden/lex-tight-wing-ok-1/source/jibb
1138/* tok-372 %txt /tests/golden/lex-tight-wing-ok-1/tokens/txt
1138/* tok-372 %txt /tests/golden/lex-tight-wing-ok-1/tokens/txt
1139/* tre-372 %txt /tests/golden/lex-tight-wing-ok-1/tree/txt
1139/* tre-372 %txt /tests/golden/lex-tight-wing-ok-1/tree/txt
1140−/* src-373 %jibb /tests/golden/module-fixture-eof/source/jibb
1140+/* src-373 %jibb /tests/golden/module-cache-dag/source/jibb
1141−/* tok-373 %txt /tests/golden/module-fixture-eof/tokens/txt
1141+/* tok-373 %txt /tests/golden/module-cache-dag/tokens/txt
1142−/* tre-373 %txt /tests/golden/module-fixture-eof/tree/txt
1142+/* tre-373 %txt /tests/golden/module-cache-dag/tree/txt
1143−/* mod-373-1 %jibb /tests/golden/module-fixture-eof/modules/ui/incomplete/jibb
1143+/* mod-373-1 %jibb /tests/golden/module-cache-dag/modules/ui/n0/jibb
1144−/* mtre-373 %txt /tests/golden/module-fixture-eof/module-trees/txt
1144+/* mod-373-2 %jibb /tests/golden/module-cache-dag/modules/ui/n1/jibb
1145−/* src-374 %jibb /tests/golden/module-import-atom-scheme/source/jibb
1145+/* mod-373-3 %jibb /tests/golden/module-cache-dag/modules/ui/n2/jibb
1146−/* tok-374 %txt /tests/golden/module-import-atom-scheme/tokens/txt
1146+/* mod-373-4 %jibb /tests/golden/module-cache-dag/modules/ui/n3/jibb
1147−/* tre-374 %txt /tests/golden/module-import-atom-scheme/tree/txt
1147+/* mod-373-5 %jibb /tests/golden/module-cache-dag/modules/ui/n4/jibb
1148−/* mod-374-1 %jibb /tests/golden/module-import-atom-scheme/modules/ui/mid/jibb
1148+/* mod-373-6 %jibb /tests/golden/module-cache-dag/modules/ui/n5/jibb
1149−/* mod-374-2 %jibb /tests/golden/module-import-atom-scheme/modules/ui/base/jibb
1149+/* mod-373-7 %jibb /tests/golden/module-cache-dag/modules/ui/n6/jibb
1150−/* typ-374 %txt /tests/golden/module-import-atom-scheme/types/txt
1150+/* mod-373-8 %jibb /tests/golden/module-cache-dag/modules/ui/n7/jibb
1151−/* mtre-374 %txt /tests/golden/module-import-atom-scheme/module-trees/txt
1151+/* typ-373 %txt /tests/golden/module-cache-dag/types/txt
1152−/* src-375 %jibb /tests/golden/module-import-cycle/source/jibb
1152+/* mtre-373 %txt /tests/golden/module-cache-dag/module-trees/txt
1153−/* tok-375 %txt /tests/golden/module-import-cycle/tokens/txt
1153+/* src-374 %jibb /tests/golden/module-cache-faces/source/jibb
1154−/* tre-375 %txt /tests/golden/module-import-cycle/tree/txt
1154+/* tok-374 %txt /tests/golden/module-cache-faces/tokens/txt
1155−/* mod-375-1 %jibb /tests/golden/module-import-cycle/modules/ui/a/jibb
1155+/* tre-374 %txt /tests/golden/module-cache-faces/tree/txt
1156−/* mod-375-2 %jibb /tests/golden/module-import-cycle/modules/ui/b/jibb
1156+/* mod-374-1 %jibb /tests/golden/module-cache-faces/modules/ui/shared/jibb
1157−/* typ-375 %txt /tests/golden/module-import-cycle/types/txt
1157+/* typ-374 %txt /tests/golden/module-cache-faces/types/txt
1158−/* mtre-375 %txt /tests/golden/module-import-cycle/module-trees/txt
1158+/* mtre-374 %txt /tests/golden/module-cache-faces/module-trees/txt
1159−/* src-376 %jibb /tests/golden/module-import-empty/source/jibb
1159+/* src-375 %jibb /tests/golden/module-cache-incomplete/source/jibb
1160−/* tok-376 %txt /tests/golden/module-import-empty/tokens/txt
1160+/* tok-375 %txt /tests/golden/module-cache-incomplete/tokens/txt
1161−/* tre-376 %txt /tests/golden/module-import-empty/tree/txt
1161+/* tre-375 %txt /tests/golden/module-cache-incomplete/tree/txt
1162−/* typ-376 %txt /tests/golden/module-import-empty/types/txt
1162+/* mod-375-1 %jibb /tests/golden/module-cache-incomplete/modules/ui/bad/jibb
1163−/* src-377 %jibb /tests/golden/module-import-face-shadow/source/jibb
1163+/* typ-375 %txt /tests/golden/module-cache-incomplete/types/txt
1164−/* tok-377 %txt /tests/golden/module-import-face-shadow/tokens/txt
1164+/* mtre-375 %txt /tests/golden/module-cache-incomplete/module-trees/txt
1165−/* tre-377 %txt /tests/golden/module-import-face-shadow/tree/txt
1165+/* src-376 %jibb /tests/golden/module-cache-sibling-cycle/source/jibb
1166−/* mod-377-1 %jibb /tests/golden/module-import-face-shadow/modules/ui/lib/jibb
1166+/* tok-376 %txt /tests/golden/module-cache-sibling-cycle/tokens/txt
1167−/* typ-377 %txt /tests/golden/module-import-face-shadow/types/txt
1167+/* tre-376 %txt /tests/golden/module-cache-sibling-cycle/tree/txt
1168−/* mtre-377 %txt /tests/golden/module-import-face-shadow/module-trees/txt
1168+/* mod-376-1 %jibb /tests/golden/module-cache-sibling-cycle/modules/ui/safe/jibb
1169−/* src-378 %jibb /tests/golden/module-import-identity/source/jibb
1169+/* mod-376-2 %jibb /tests/golden/module-cache-sibling-cycle/modules/ui/a/jibb
1170−/* tok-378 %txt /tests/golden/module-import-identity/tokens/txt
1170+/* mod-376-3 %jibb /tests/golden/module-cache-sibling-cycle/modules/ui/b/jibb
1171−/* tre-378 %txt /tests/golden/module-import-identity/tree/txt
1171+/* typ-376 %txt /tests/golden/module-cache-sibling-cycle/types/txt
1172−/* mod-378-1 %jibb /tests/golden/module-import-identity/modules/ui/lib/jibb
1172+/* mtre-376 %txt /tests/golden/module-cache-sibling-cycle/module-trees/txt
1173−/* typ-378 %txt /tests/golden/module-import-identity/types/txt
1173+/* src-377 %jibb /tests/golden/module-fixture-eof/source/jibb
1174−/* mtre-378 %txt /tests/golden/module-import-identity/module-trees/txt
1174+/* tok-377 %txt /tests/golden/module-fixture-eof/tokens/txt
1175−/* src-379 %jibb /tests/golden/module-import-invalid/source/jibb
1175+/* tre-377 %txt /tests/golden/module-fixture-eof/tree/txt
1176−/* tok-379 %txt /tests/golden/module-import-invalid/tokens/txt
1176+/* mod-377-1 %jibb /tests/golden/module-fixture-eof/modules/ui/incomplete/jibb
1177−/* tre-379 %txt /tests/golden/module-import-invalid/tree/txt
1177+/* mtre-377 %txt /tests/golden/module-fixture-eof/module-trees/txt
1178−/* mod-379-1 %jibb /tests/golden/module-import-invalid/modules/ui/lib/jibb
1178+/* src-378 %jibb /tests/golden/module-import-atom-scheme/source/jibb
1179−/* typ-379 %txt /tests/golden/module-import-invalid/types/txt
1179+/* tok-378 %txt /tests/golden/module-import-atom-scheme/tokens/txt
1180−/* mtre-379 %txt /tests/golden/module-import-invalid/module-trees/txt
1180+/* tre-378 %txt /tests/golden/module-import-atom-scheme/tree/txt
1181−/* src-380 %jibb /tests/golden/module-import-missing-member/source/jibb
1181+/* mod-378-1 %jibb /tests/golden/module-import-atom-scheme/modules/ui/mid/jibb
1182−/* tok-380 %txt /tests/golden/module-import-missing-member/tokens/txt
1182+/* mod-378-2 %jibb /tests/golden/module-import-atom-scheme/modules/ui/base/jibb
1183−/* tre-380 %txt /tests/golden/module-import-missing-member/tree/txt
1183+/* typ-378 %txt /tests/golden/module-import-atom-scheme/types/txt
1184−/* mod-380-1 %jibb /tests/golden/module-import-missing-member/modules/ui/lib/jibb
1184+/* mtre-378 %txt /tests/golden/module-import-atom-scheme/module-trees/txt
1185−/* typ-380 %txt /tests/golden/module-import-missing-member/types/txt
1185+/* src-379 %jibb /tests/golden/module-import-cycle/source/jibb
1186−/* mtre-380 %txt /tests/golden/module-import-missing-member/module-trees/txt
1186+/* tok-379 %txt /tests/golden/module-import-cycle/tokens/txt
1187−/* src-381 %jibb /tests/golden/module-import-mold/source/jibb
1187+/* tre-379 %txt /tests/golden/module-import-cycle/tree/txt
1188−/* tok-381 %txt /tests/golden/module-import-mold/tokens/txt
1188+/* mod-379-1 %jibb /tests/golden/module-import-cycle/modules/ui/a/jibb
1189−/* tre-381 %txt /tests/golden/module-import-mold/tree/txt
1189+/* mod-379-2 %jibb /tests/golden/module-import-cycle/modules/ui/b/jibb
1190−/* mod-381-1 %jibb /tests/golden/module-import-mold/modules/ui/lib/jibb
1190+/* typ-379 %txt /tests/golden/module-import-cycle/types/txt
1191−/* typ-381 %txt /tests/golden/module-import-mold/types/txt
1191+/* mtre-379 %txt /tests/golden/module-import-cycle/module-trees/txt
1192−/* mtre-381 %txt /tests/golden/module-import-mold/module-trees/txt
1192+/* src-380 %jibb /tests/golden/module-import-empty/source/jibb
1193−/* src-382 %jibb /tests/golden/module-import-prelude-cross-namespace/source/jibb
1193+/* tok-380 %txt /tests/golden/module-import-empty/tokens/txt
1194−/* tok-382 %txt /tests/golden/module-import-prelude-cross-namespace/tokens/txt
1194+/* tre-380 %txt /tests/golden/module-import-empty/tree/txt
1195−/* tre-382 %txt /tests/golden/module-import-prelude-cross-namespace/tree/txt
1195+/* typ-380 %txt /tests/golden/module-import-empty/types/txt
1196−/* typ-382 %txt /tests/golden/module-import-prelude-cross-namespace/types/txt
1196+/* src-381 %jibb /tests/golden/module-import-face-shadow/source/jibb
1197−/* src-383 %jibb /tests/golden/module-import-prelude-mold-shadow/source/jibb
1197+/* tok-381 %txt /tests/golden/module-import-face-shadow/tokens/txt
1198−/* tok-383 %txt /tests/golden/module-import-prelude-mold-shadow/tokens/txt
1198+/* tre-381 %txt /tests/golden/module-import-face-shadow/tree/txt
1199−/* tre-383 %txt /tests/golden/module-import-prelude-mold-shadow/tree/txt
1199+/* mod-381-1 %jibb /tests/golden/module-import-face-shadow/modules/ui/lib/jibb
1200−/* typ-383 %txt /tests/golden/module-import-prelude-mold-shadow/types/txt
1200+/* typ-381 %txt /tests/golden/module-import-face-shadow/types/txt
1201−/* src-384 %jibb /tests/golden/module-import-prelude-sample-shadow/source/jibb
1201+/* mtre-381 %txt /tests/golden/module-import-face-shadow/module-trees/txt
1202−/* tok-384 %txt /tests/golden/module-import-prelude-sample-shadow/tokens/txt
1202+/* src-382 %jibb /tests/golden/module-import-identity/source/jibb
1203−/* tre-384 %txt /tests/golden/module-import-prelude-sample-shadow/tree/txt
1203+/* tok-382 %txt /tests/golden/module-import-identity/tokens/txt
1204−/* mod-384-1 %jibb /tests/golden/module-import-prelude-sample-shadow/modules/ui/lib/jibb
1204+/* tre-382 %txt /tests/golden/module-import-identity/tree/txt
1205−/* typ-384 %txt /tests/golden/module-import-prelude-sample-shadow/types/txt
1205+/* mod-382-1 %jibb /tests/golden/module-import-identity/modules/ui/lib/jibb
1206−/* mtre-384 %txt /tests/golden/module-import-prelude-sample-shadow/module-trees/txt
1206+/* typ-382 %txt /tests/golden/module-import-identity/types/txt
1207−/* src-385 %jibb /tests/golden/module-import-prelude-value-shadow/source/jibb
1207+/* mtre-382 %txt /tests/golden/module-import-identity/module-trees/txt
1208−/* tok-385 %txt /tests/golden/module-import-prelude-value-shadow/tokens/txt
1208+/* src-383 %jibb /tests/golden/module-import-invalid/source/jibb
1209−/* tre-385 %txt /tests/golden/module-import-prelude-value-shadow/tree/txt
1209+/* tok-383 %txt /tests/golden/module-import-invalid/tokens/txt
1210−/* mod-385-1 %jibb /tests/golden/module-import-prelude-value-shadow/modules/ui/lib/jibb
1210+/* tre-383 %txt /tests/golden/module-import-invalid/tree/txt
1211−/* typ-385 %txt /tests/golden/module-import-prelude-value-shadow/types/txt
1211+/* mod-383-1 %jibb /tests/golden/module-import-invalid/modules/ui/lib/jibb
1212−/* mtre-385 %txt /tests/golden/module-import-prelude-value-shadow/module-trees/txt
1212+/* typ-383 %txt /tests/golden/module-import-invalid/types/txt
1213−/* src-386 %jibb /tests/golden/module-import-root-cycle/source/jibb
1213+/* mtre-383 %txt /tests/golden/module-import-invalid/module-trees/txt
1214−/* tok-386 %txt /tests/golden/module-import-root-cycle/tokens/txt
1214+/* src-384 %jibb /tests/golden/module-import-missing-member/source/jibb
1215−/* tre-386 %txt /tests/golden/module-import-root-cycle/tree/txt
1215+/* tok-384 %txt /tests/golden/module-import-missing-member/tokens/txt
1216−/* mod-386-1 %jibb /tests/golden/module-import-root-cycle/modules/ui/a/jibb
1216+/* tre-384 %txt /tests/golden/module-import-missing-member/tree/txt
1217−/* typ-386 %txt /tests/golden/module-import-root-cycle/types/txt
1217+/* mod-384-1 %jibb /tests/golden/module-import-missing-member/modules/ui/lib/jibb
1218−/* mtre-386 %txt /tests/golden/module-import-root-cycle/module-trees/txt
1218+/* typ-384 %txt /tests/golden/module-import-missing-member/types/txt
1219−/* src-387 %jibb /tests/golden/module-import-root-import-shadow/source/jibb
1219+/* mtre-384 %txt /tests/golden/module-import-missing-member/module-trees/txt
1220−/* tok-387 %txt /tests/golden/module-import-root-import-shadow/tokens/txt
1220+/* src-385 %jibb /tests/golden/module-import-mold/source/jibb
1221−/* tre-387 %txt /tests/golden/module-import-root-import-shadow/tree/txt
1221+/* tok-385 %txt /tests/golden/module-import-mold/tokens/txt
1222−/* typ-387 %txt /tests/golden/module-import-root-import-shadow/types/txt
1222+/* tre-385 %txt /tests/golden/module-import-mold/tree/txt
1223−/* imp-387-1 %txt /tests/golden/module-import-root-import-shadow/sur/fixture/txt
1223+/* mod-385-1 %jibb /tests/golden/module-import-mold/modules/ui/lib/jibb
1224−/* mark-387-1 %txt /tests/golden/module-import-root-import-shadow/mar/label/txt
1224+/* typ-385 %txt /tests/golden/module-import-mold/types/txt
1225−/* src-388 %jibb /tests/golden/module-import-separate-namespaces/source/jibb
1225+/* mtre-385 %txt /tests/golden/module-import-mold/module-trees/txt
1226−/* tok-388 %txt /tests/golden/module-import-separate-namespaces/tokens/txt
1226+/* src-386 %jibb /tests/golden/module-import-prelude-cross-namespace/source/jibb
1227−/* tre-388 %txt /tests/golden/module-import-separate-namespaces/tree/txt
1227+/* tok-386 %txt /tests/golden/module-import-prelude-cross-namespace/tokens/txt
1228−/* mod-388-1 %jibb /tests/golden/module-import-separate-namespaces/modules/ui/lib/jibb
1228+/* tre-386 %txt /tests/golden/module-import-prelude-cross-namespace/tree/txt
1229−/* typ-388 %txt /tests/golden/module-import-separate-namespaces/types/txt
1229+/* typ-386 %txt /tests/golden/module-import-prelude-cross-namespace/types/txt
1230−/* mtre-388 %txt /tests/golden/module-import-separate-namespaces/module-trees/txt
1230+/* src-387 %jibb /tests/golden/module-import-prelude-mold-shadow/source/jibb
1231−/* src-389 %jibb /tests/golden/module-import-sur-scope/source/jibb
1231+/* tok-387 %txt /tests/golden/module-import-prelude-mold-shadow/tokens/txt
1232−/* tok-389 %txt /tests/golden/module-import-sur-scope/tokens/txt
1232+/* tre-387 %txt /tests/golden/module-import-prelude-mold-shadow/tree/txt
1233−/* tre-389 %txt /tests/golden/module-import-sur-scope/tree/txt
1233+/* typ-387 %txt /tests/golden/module-import-prelude-mold-shadow/types/txt
1234−/* mod-389-1 %jibb /tests/golden/module-import-sur-scope/modules/ui/lib/jibb
1234+/* src-388 %jibb /tests/golden/module-import-prelude-sample-shadow/source/jibb
1235−/* typ-389 %txt /tests/golden/module-import-sur-scope/types/txt
1235+/* tok-388 %txt /tests/golden/module-import-prelude-sample-shadow/tokens/txt
1236−/* imp-389-1 %txt /tests/golden/module-import-sur-scope/sur/fixture/txt
1236+/* tre-388 %txt /tests/golden/module-import-prelude-sample-shadow/tree/txt
1237−/* mtre-389 %txt /tests/golden/module-import-sur-scope/module-trees/txt
1237+/* mod-388-1 %jibb /tests/golden/module-import-prelude-sample-shadow/modules/ui/lib/jibb
1238−/* src-390 %jibb /tests/golden/module-import-transitive/source/jibb
1238+/* typ-388 %txt /tests/golden/module-import-prelude-sample-shadow/types/txt
1239−/* tok-390 %txt /tests/golden/module-import-transitive/tokens/txt
1239+/* mtre-388 %txt /tests/golden/module-import-prelude-sample-shadow/module-trees/txt
1240−/* tre-390 %txt /tests/golden/module-import-transitive/tree/txt
1240+/* src-389 %jibb /tests/golden/module-import-prelude-value-shadow/source/jibb
1241−/* mod-390-1 %jibb /tests/golden/module-import-transitive/modules/ui/a/jibb
1241+/* tok-389 %txt /tests/golden/module-import-prelude-value-shadow/tokens/txt
1242−/* mod-390-2 %jibb /tests/golden/module-import-transitive/modules/ui/b/jibb
1242+/* tre-389 %txt /tests/golden/module-import-prelude-value-shadow/tree/txt
1243−/* mod-390-3 %jibb /tests/golden/module-import-transitive/modules/ui/c/jibb
1243+/* mod-389-1 %jibb /tests/golden/module-import-prelude-value-shadow/modules/ui/lib/jibb
1244−/* typ-390 %txt /tests/golden/module-import-transitive/types/txt
1244+/* typ-389 %txt /tests/golden/module-import-prelude-value-shadow/types/txt
1245−/* mtre-390 %txt /tests/golden/module-import-transitive/module-trees/txt
1245+/* mtre-389 %txt /tests/golden/module-import-prelude-value-shadow/module-trees/txt
1246−/* src-391 %jibb /tests/golden/module-import-unused-invalid/source/jibb
1246+/* src-390 %jibb /tests/golden/module-import-root-cycle/source/jibb
1247−/* tok-391 %txt /tests/golden/module-import-unused-invalid/tokens/txt
1247+/* tok-390 %txt /tests/golden/module-import-root-cycle/tokens/txt
1248−/* tre-391 %txt /tests/golden/module-import-unused-invalid/tree/txt
1248+/* tre-390 %txt /tests/golden/module-import-root-cycle/tree/txt
1249−/* mod-391-1 %jibb /tests/golden/module-import-unused-invalid/modules/ui/good/jibb
1249+/* mod-390-1 %jibb /tests/golden/module-import-root-cycle/modules/ui/a/jibb
1250−/* mod-391-2 %jibb /tests/golden/module-import-unused-invalid/modules/ui/unused/jibb
1250+/* typ-390 %txt /tests/golden/module-import-root-cycle/types/txt
1251−/* typ-391 %txt /tests/golden/module-import-unused-invalid/types/txt
1251+/* mtre-390 %txt /tests/golden/module-import-root-cycle/module-trees/txt
1252−/* mtre-391 %txt /tests/golden/module-import-unused-invalid/module-trees/txt
1252+/* src-391 %jibb /tests/golden/module-import-root-import-shadow/source/jibb
1253−/* src-392 %jibb /tests/golden/prelude-1c-structural/source/jibb
1253+/* tok-391 %txt /tests/golden/module-import-root-import-shadow/tokens/txt
1254−/* tok-392 %txt /tests/golden/prelude-1c-structural/tokens/txt
1254+/* tre-391 %txt /tests/golden/module-import-root-import-shadow/tree/txt
1255−/* tre-392 %txt /tests/golden/prelude-1c-structural/tree/txt
1255+/* typ-391 %txt /tests/golden/module-import-root-import-shadow/types/txt
1256−/* typ-392 %txt /tests/golden/prelude-1c-structural/types/txt
1256+/* imp-391-1 %txt /tests/golden/module-import-root-import-shadow/sur/fixture/txt
1257−/* src-393 %jibb /tests/golden/prelude-3g-basic/source/jibb
1257+/* mark-391-1 %txt /tests/golden/module-import-root-import-shadow/mar/label/txt
1258−/* tok-393 %txt /tests/golden/prelude-3g-basic/tokens/txt
1258+/* src-392 %jibb /tests/golden/module-import-separate-namespaces/source/jibb
1259−/* tre-393 %txt /tests/golden/prelude-3g-basic/tree/txt
1259+/* tok-392 %txt /tests/golden/module-import-separate-namespaces/tokens/txt
1260−/* typ-393 %txt /tests/golden/prelude-3g-basic/types/txt
1260+/* tre-392 %txt /tests/golden/module-import-separate-namespaces/tree/txt
1261−/* src-394 %jibb /tests/golden/prelude-3g-like/source/jibb
1261+/* mod-392-1 %jibb /tests/golden/module-import-separate-namespaces/modules/ui/lib/jibb
1262−/* tok-394 %txt /tests/golden/prelude-3g-like/tokens/txt
1262+/* typ-392 %txt /tests/golden/module-import-separate-namespaces/types/txt
1263−/* tre-394 %txt /tests/golden/prelude-3g-like/tree/txt
1263+/* mtre-392 %txt /tests/golden/module-import-separate-namespaces/module-trees/txt
1264−/* typ-394 %txt /tests/golden/prelude-3g-like/types/txt
1264+/* src-393 %jibb /tests/golden/module-import-sur-scope/source/jibb
1265−/* src-395 %jibb /tests/golden/prelude-3g-structural/source/jibb
1265+/* tok-393 %txt /tests/golden/module-import-sur-scope/tokens/txt
1266−/* tok-395 %txt /tests/golden/prelude-3g-structural/tokens/txt
1266+/* tre-393 %txt /tests/golden/module-import-sur-scope/tree/txt
1267−/* tre-395 %txt /tests/golden/prelude-3g-structural/tree/txt
1267+/* mod-393-1 %jibb /tests/golden/module-import-sur-scope/modules/ui/lib/jibb
1268−/* typ-395 %txt /tests/golden/prelude-3g-structural/types/txt
1268+/* typ-393 %txt /tests/golden/module-import-sur-scope/types/txt
1269−/* src-396 %jibb /tests/golden/prelude-core-functions/source/jibb
1269+/* imp-393-1 %txt /tests/golden/module-import-sur-scope/sur/fixture/txt
1270−/* tok-396 %txt /tests/golden/prelude-core-functions/tokens/txt
1270+/* mtre-393 %txt /tests/golden/module-import-sur-scope/module-trees/txt
1271−/* tre-396 %txt /tests/golden/prelude-core-functions/tree/txt
1271+/* src-394 %jibb /tests/golden/module-import-transitive/source/jibb
1272−/* typ-396 %txt /tests/golden/prelude-core-functions/types/txt
1272+/* tok-394 %txt /tests/golden/module-import-transitive/tokens/txt
1273−/* src-397 %jibb /tests/golden/prelude-list-helpers/source/jibb
1273+/* tre-394 %txt /tests/golden/module-import-transitive/tree/txt
1274−/* tok-397 %txt /tests/golden/prelude-list-helpers/tokens/txt
1274+/* mod-394-1 %jibb /tests/golden/module-import-transitive/modules/ui/a/jibb
1275−/* tre-397 %txt /tests/golden/prelude-list-helpers/tree/txt
1275+/* mod-394-2 %jibb /tests/golden/module-import-transitive/modules/ui/b/jibb
1276−/* typ-397 %txt /tests/golden/prelude-list-helpers/types/txt
1276+/* mod-394-3 %jibb /tests/golden/module-import-transitive/modules/ui/c/jibb
1277−/* src-398 %jibb /tests/golden/prelude-list-unit/source/jibb
1277+/* typ-394 %txt /tests/golden/module-import-transitive/types/txt
1278−/* tok-398 %txt /tests/golden/prelude-list-unit/tokens/txt
1278+/* mtre-394 %txt /tests/golden/module-import-transitive/module-trees/txt
1279−/* tre-398 %txt /tests/golden/prelude-list-unit/tree/txt
1279+/* src-395 %jibb /tests/golden/module-import-unused-invalid/source/jibb
1280−/* typ-398 %txt /tests/golden/prelude-list-unit/types/txt
1280+/* tok-395 %txt /tests/golden/module-import-unused-invalid/tokens/txt
1281−/* src-399 %jibb /tests/golden/prelude-unit-list-transforms/source/jibb
1281+/* tre-395 %txt /tests/golden/module-import-unused-invalid/tree/txt
1282−/* tok-399 %txt /tests/golden/prelude-unit-list-transforms/tokens/txt
1282+/* mod-395-1 %jibb /tests/golden/module-import-unused-invalid/modules/ui/good/jibb
1283−/* tre-399 %txt /tests/golden/prelude-unit-list-transforms/tree/txt
1283+/* mod-395-2 %jibb /tests/golden/module-import-unused-invalid/modules/ui/unused/jibb
1284−/* typ-399 %txt /tests/golden/prelude-unit-list-transforms/types/txt
1284+/* typ-395 %txt /tests/golden/module-import-unused-invalid/types/txt
1285−/* src-400 %jibb /tests/golden/types-import-mark/source/jibb
1285+/* mtre-395 %txt /tests/golden/module-import-unused-invalid/module-trees/txt
1286−/* tok-400 %txt /tests/golden/types-import-mark/tokens/txt
1286+/* src-396 %jibb /tests/golden/prelude-1c-structural/source/jibb
1287−/* tre-400 %txt /tests/golden/types-import-mark/tree/txt
1287+/* tok-396 %txt /tests/golden/prelude-1c-structural/tokens/txt
1288−/* typ-400 %txt /tests/golden/types-import-mark/types/txt
1288+/* tre-396 %txt /tests/golden/prelude-1c-structural/tree/txt
1289−/* imp-400-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1289+/* typ-396 %txt /tests/golden/prelude-1c-structural/types/txt
1290−/* mark-400-1 %txt /tests/golden/types-import-mark/mar/label/txt
1290+/* src-397 %jibb /tests/golden/prelude-3g-basic/source/jibb
1291−/* src-401 %jibb /tests/golden/types-import-missing-mold/source/jibb
1291+/* tok-397 %txt /tests/golden/prelude-3g-basic/tokens/txt
1292−/* tok-401 %txt /tests/golden/types-import-missing-mold/tokens/txt
1292+/* tre-397 %txt /tests/golden/prelude-3g-basic/tree/txt
1293−/* tre-401 %txt /tests/golden/types-import-missing-mold/tree/txt
1293+/* typ-397 %txt /tests/golden/prelude-3g-basic/types/txt
1294−/* typ-401 %txt /tests/golden/types-import-missing-mold/types/txt
1294+/* src-398 %jibb /tests/golden/prelude-3g-like/source/jibb
1295−/* imp-401-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1295+/* tok-398 %txt /tests/golden/prelude-3g-like/tokens/txt
1296−/* src-402 %jibb /tests/golden/types-import-sur/source/jibb
1296+/* tre-398 %txt /tests/golden/prelude-3g-like/tree/txt
1297−/* tok-402 %txt /tests/golden/types-import-sur/tokens/txt
1297+/* typ-398 %txt /tests/golden/prelude-3g-like/types/txt
1298−/* tre-402 %txt /tests/golden/types-import-sur/tree/txt
1298+/* src-399 %jibb /tests/golden/prelude-3g-structural/source/jibb
1299−/* typ-402 %txt /tests/golden/types-import-sur/types/txt
1299+/* tok-399 %txt /tests/golden/prelude-3g-structural/tokens/txt
1300−/* imp-402-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1300+/* tre-399 %txt /tests/golden/prelude-3g-structural/tree/txt
1301−/* imp-402-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1301+/* typ-399 %txt /tests/golden/prelude-3g-structural/types/txt
1302−/* src-403 %jibb /tests/golden/types-module-fixtures/source/jibb
1302+/* src-400 %jibb /tests/golden/prelude-core-functions/source/jibb
1303−/* tok-403 %txt /tests/golden/types-module-fixtures/tokens/txt
1303+/* tok-400 %txt /tests/golden/prelude-core-functions/tokens/txt
1304−/* tre-403 %txt /tests/golden/types-module-fixtures/tree/txt
1304+/* tre-400 %txt /tests/golden/prelude-core-functions/tree/txt
1305−/* mod-403-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1305+/* typ-400 %txt /tests/golden/prelude-core-functions/types/txt
1306−/* mod-403-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1306+/* src-401 %jibb /tests/golden/prelude-list-helpers/source/jibb
1307−/* typ-403 %txt /tests/golden/types-module-fixtures/types/txt
1307+/* tok-401 %txt /tests/golden/prelude-list-helpers/tokens/txt
1308−/* mtre-403 %txt /tests/golden/types-module-fixtures/module-trees/txt
1308+/* tre-401 %txt /tests/golden/prelude-list-helpers/tree/txt
1309−/* src-404 %jibb /tests/golden/types-module-mixed/source/jibb
1309+/* typ-401 %txt /tests/golden/prelude-list-helpers/types/txt
1310−/* tok-404 %txt /tests/golden/types-module-mixed/tokens/txt
1310+/* src-402 %jibb /tests/golden/prelude-list-unit/source/jibb
1311−/* tre-404 %txt /tests/golden/types-module-mixed/tree/txt
1311+/* tok-402 %txt /tests/golden/prelude-list-unit/tokens/txt
1312−/* mod-404-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1312+/* tre-402 %txt /tests/golden/prelude-list-unit/tree/txt
1313−/* typ-404 %txt /tests/golden/types-module-mixed/types/txt
1313+/* typ-402 %txt /tests/golden/prelude-list-unit/types/txt
1314−/* imp-404-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1314+/* src-403 %jibb /tests/golden/prelude-unit-list-transforms/source/jibb
1315−/* mark-404-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1315+/* tok-403 %txt /tests/golden/prelude-unit-list-transforms/tokens/txt
1316−/* mtre-404 %txt /tests/golden/types-module-mixed/module-trees/txt
1316+/* tre-403 %txt /tests/golden/prelude-unit-list-transforms/tree/txt
1317−/* src-405 %jibb /tests/golden/types-partial-apply/source/jibb
1317+/* typ-403 %txt /tests/golden/prelude-unit-list-transforms/types/txt
1318−/* tok-405 %txt /tests/golden/types-partial-apply/tokens/txt
1318+/* src-404 %jibb /tests/golden/types-import-mark/source/jibb
1319−/* tre-405 %txt /tests/golden/types-partial-apply/tree/txt
1319+/* tok-404 %txt /tests/golden/types-import-mark/tokens/txt
1320−/* typ-405 %txt /tests/golden/types-partial-apply/types/txt
1320+/* tre-404 %txt /tests/golden/types-import-mark/tree/txt
1321−/* src-406 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1321+/* typ-404 %txt /tests/golden/types-import-mark/types/txt
1322−/* tok-406 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1322+/* imp-404-1 %txt /tests/golden/types-import-mark/sur/fixture/txt
1323−/* tre-406 %txt /tests/golden/types-partial-atom-alias/tree/txt
1323+/* mark-404-1 %txt /tests/golden/types-import-mark/mar/label/txt
1324−/* typ-406 %txt /tests/golden/types-partial-atom-alias/types/txt
1324+/* src-405 %jibb /tests/golden/types-import-mark-record/source/jibb
1325−/* src-407 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1325+/* tok-405 %txt /tests/golden/types-import-mark-record/tokens/txt
1326−/* tok-407 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1326+/* tre-405 %txt /tests/golden/types-import-mark-record/tree/txt
1327−/* tre-407 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1327+/* typ-405 %txt /tests/golden/types-import-mark-record/types/txt
1328−/* typ-407 %txt /tests/golden/types-partial-atom-constraint/types/txt
1328+/* mark-405-1 %txt /tests/golden/types-import-mark-record/mar/note/txt
1329−/* src-408 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1329+/* mark-405-2 %txt /tests/golden/types-import-mark-record/mar/choice/txt
1330−/* tok-408 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1330+/* src-406 %jibb /tests/golden/types-import-missing-mold/source/jibb
1331−/* tre-408 %txt /tests/golden/types-partial-atom-widening/tree/txt
1331+/* tok-406 %txt /tests/golden/types-import-missing-mold/tokens/txt
1332−/* typ-408 %txt /tests/golden/types-partial-atom-widening/types/txt
1332+/* tre-406 %txt /tests/golden/types-import-missing-mold/tree/txt
1333−/* src-409 %jibb /tests/golden/types-partial-aura/source/jibb
1333+/* typ-406 %txt /tests/golden/types-import-missing-mold/types/txt
1334−/* tok-409 %txt /tests/golden/types-partial-aura/tokens/txt
1334+/* imp-406-1 %txt /tests/golden/types-import-missing-mold/sur/fixture/txt
1335−/* tre-409 %txt /tests/golden/types-partial-aura/tree/txt
1335+/* src-407 %jibb /tests/golden/types-import-sur/source/jibb
1336−/* typ-409 %txt /tests/golden/types-partial-aura/types/txt
1336+/* tok-407 %txt /tests/golden/types-import-sur/tokens/txt
1337−/* src-410 %jibb /tests/golden/types-partial-aura-family/source/jibb
1337+/* tre-407 %txt /tests/golden/types-import-sur/tree/txt
1338−/* tok-410 %txt /tests/golden/types-partial-aura-family/tokens/txt
1338+/* typ-407 %txt /tests/golden/types-import-sur/types/txt
1339−/* tre-410 %txt /tests/golden/types-partial-aura-family/tree/txt
1339+/* imp-407-1 %txt /tests/golden/types-import-sur/sur/fixture/txt
1340−/* typ-410 %txt /tests/golden/types-partial-aura-family/types/txt
1340+/* imp-407-2 %txt /tests/golden/types-import-sur/sur/fixture/txt
1341−/* src-411 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1341+/* src-408 %jibb /tests/golden/types-import-sur-record-graph/source/jibb
1342−/* tok-411 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1342+/* tok-408 %txt /tests/golden/types-import-sur-record-graph/tokens/txt
1343−/* tre-411 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1343+/* tre-408 %txt /tests/golden/types-import-sur-record-graph/tree/txt
1344−/* typ-411 %txt /tests/golden/types-partial-aura-generalization/types/txt
1344+/* mod-408-1 %jibb /tests/golden/types-import-sur-record-graph/modules/ui/lib/jibb
1345−/* src-412 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1345+/* typ-408 %txt /tests/golden/types-import-sur-record-graph/types/txt
1346−/* tok-412 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1346+/* imp-408-1 %txt /tests/golden/types-import-sur-record-graph/sur/fixture/txt
1347−/* tre-412 %txt /tests/golden/types-partial-bare-atom/tree/txt
1347+/* mtre-408 %txt /tests/golden/types-import-sur-record-graph/module-trees/txt
1348−/* typ-412 %txt /tests/golden/types-partial-bare-atom/types/txt
1348+/* src-409 %jibb /tests/golden/types-module-fixtures/source/jibb
1349−/* src-413 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1349+/* tok-409 %txt /tests/golden/types-module-fixtures/tokens/txt
1350−/* tok-413 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1350+/* tre-409 %txt /tests/golden/types-module-fixtures/tree/txt
1351−/* tre-413 %txt /tests/golden/types-partial-branch-widening/tree/txt
1351+/* mod-409-1 %jibb /tests/golden/types-module-fixtures/modules/ui/api/blog/jibb
1352−/* typ-413 %txt /tests/golden/types-partial-branch-widening/types/txt
1352+/* mod-409-2 %jibb /tests/golden/types-module-fixtures/modules/ui/components/card/jibb
1353−/* src-414 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1353+/* typ-409 %txt /tests/golden/types-module-fixtures/types/txt
1354−/* tok-414 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1354+/* mtre-409 %txt /tests/golden/types-module-fixtures/module-trees/txt
1355−/* tre-414 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1355+/* src-410 %jibb /tests/golden/types-module-mixed/source/jibb
1356−/* typ-414 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1356+/* tok-410 %txt /tests/golden/types-module-mixed/tokens/txt
1357−/* src-415 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1357+/* tre-410 %txt /tests/golden/types-module-mixed/tree/txt
1358−/* tok-415 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1358+/* mod-410-1 %jibb /tests/golden/types-module-mixed/modules/ui/helper/jibb
1359−/* tre-415 %txt /tests/golden/types-partial-decimal-default/tree/txt
1359+/* typ-410 %txt /tests/golden/types-module-mixed/types/txt
1360−/* typ-415 %txt /tests/golden/types-partial-decimal-default/types/txt
1360+/* imp-410-1 %txt /tests/golden/types-module-mixed/sur/fixture/txt
1361−/* src-416 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1361+/* mark-410-1 %txt /tests/golden/types-module-mixed/mar/label/txt
1362−/* tok-416 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1362+/* mtre-410 %txt /tests/golden/types-module-mixed/module-trees/txt
1363−/* tre-416 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1363+/* src-411 %jibb /tests/golden/types-partial-apply/source/jibb
1364−/* typ-416 %txt /tests/golden/types-partial-dependency-chain/types/txt
1364+/* tok-411 %txt /tests/golden/types-partial-apply/tokens/txt
1365−/* src-417 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1365+/* tre-411 %txt /tests/golden/types-partial-apply/tree/txt
1366−/* tok-417 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1366+/* typ-411 %txt /tests/golden/types-partial-apply/types/txt
1367−/* tre-417 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1367+/* src-412 %jibb /tests/golden/types-partial-atom-alias/source/jibb
1368−/* typ-417 %txt /tests/golden/types-partial-explicit-capital/types/txt
1368+/* tok-412 %txt /tests/golden/types-partial-atom-alias/tokens/txt
1369−/* src-418 %jibb /tests/golden/types-partial-forward/source/jibb
1369+/* tre-412 %txt /tests/golden/types-partial-atom-alias/tree/txt
1370−/* tok-418 %txt /tests/golden/types-partial-forward/tokens/txt
1370+/* typ-412 %txt /tests/golden/types-partial-atom-alias/types/txt
1371−/* tre-418 %txt /tests/golden/types-partial-forward/tree/txt
1371+/* src-413 %jibb /tests/golden/types-partial-atom-constraint/source/jibb
1372−/* typ-418 %txt /tests/golden/types-partial-forward/types/txt
1372+/* tok-413 %txt /tests/golden/types-partial-atom-constraint/tokens/txt
1373−/* src-419 %jibb /tests/golden/types-partial-generalization/source/jibb
1373+/* tre-413 %txt /tests/golden/types-partial-atom-constraint/tree/txt
1374−/* tok-419 %txt /tests/golden/types-partial-generalization/tokens/txt
1374+/* typ-413 %txt /tests/golden/types-partial-atom-constraint/types/txt
1375−/* tre-419 %txt /tests/golden/types-partial-generalization/tree/txt
1375+/* src-414 %jibb /tests/golden/types-partial-atom-widening/source/jibb
1376−/* typ-419 %txt /tests/golden/types-partial-generalization/types/txt
1376+/* tok-414 %txt /tests/golden/types-partial-atom-widening/tokens/txt
1377−/* src-420 %jibb /tests/golden/types-partial-identity/source/jibb
1377+/* tre-414 %txt /tests/golden/types-partial-atom-widening/tree/txt
1378−/* tok-420 %txt /tests/golden/types-partial-identity/tokens/txt
1378+/* typ-414 %txt /tests/golden/types-partial-atom-widening/types/txt
1379−/* tre-420 %txt /tests/golden/types-partial-identity/tree/txt
1379+/* src-415 %jibb /tests/golden/types-partial-aura/source/jibb
1380−/* typ-420 %txt /tests/golden/types-partial-identity/types/txt
1380+/* tok-415 %txt /tests/golden/types-partial-aura/tokens/txt
1381−/* src-421 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1381+/* tre-415 %txt /tests/golden/types-partial-aura/tree/txt
1382−/* tok-421 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1382+/* typ-415 %txt /tests/golden/types-partial-aura/types/txt
1383−/* tre-421 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1383+/* src-416 %jibb /tests/golden/types-partial-aura-family/source/jibb
1384−/* typ-421 %txt /tests/golden/types-partial-independent-atoms/types/txt
1384+/* tok-416 %txt /tests/golden/types-partial-aura-family/tokens/txt
1385−/* src-422 %jibb /tests/golden/types-partial-local-molds/source/jibb
1385+/* tre-416 %txt /tests/golden/types-partial-aura-family/tree/txt
1386−/* tok-422 %txt /tests/golden/types-partial-local-molds/tokens/txt
1386+/* typ-416 %txt /tests/golden/types-partial-aura-family/types/txt
1387−/* tre-422 %txt /tests/golden/types-partial-local-molds/tree/txt
1387+/* src-417 %jibb /tests/golden/types-partial-aura-generalization/source/jibb
1388−/* typ-422 %txt /tests/golden/types-partial-local-molds/types/txt
1388+/* tok-417 %txt /tests/golden/types-partial-aura-generalization/tokens/txt
1389−/* src-423 %jibb /tests/golden/types-partial-locals/source/jibb
1389+/* tre-417 %txt /tests/golden/types-partial-aura-generalization/tree/txt
1390−/* tok-423 %txt /tests/golden/types-partial-locals/tokens/txt
1390+/* typ-417 %txt /tests/golden/types-partial-aura-generalization/types/txt
1391−/* tre-423 %txt /tests/golden/types-partial-locals/tree/txt
1391+/* src-418 %jibb /tests/golden/types-partial-bare-atom/source/jibb
1392−/* typ-423 %txt /tests/golden/types-partial-locals/types/txt
1392+/* tok-418 %txt /tests/golden/types-partial-bare-atom/tokens/txt
1393−/* src-424 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1393+/* tre-418 %txt /tests/golden/types-partial-bare-atom/tree/txt
1394−/* tok-424 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1394+/* typ-418 %txt /tests/golden/types-partial-bare-atom/types/txt
1395−/* tre-424 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1395+/* src-419 %jibb /tests/golden/types-partial-branch-widening/source/jibb
1396−/* typ-424 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1396+/* tok-419 %txt /tests/golden/types-partial-branch-widening/tokens/txt
1397−/* src-425 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1397+/* tre-419 %txt /tests/golden/types-partial-branch-widening/tree/txt
1398−/* tok-425 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1398+/* typ-419 %txt /tests/golden/types-partial-branch-widening/types/txt
1399−/* tre-425 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1399+/* src-420 %jibb /tests/golden/types-partial-conflicting-sites/source/jibb
1400−/* typ-425 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1400+/* tok-420 %txt /tests/golden/types-partial-conflicting-sites/tokens/txt
1401−/* src-426 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1401+/* tre-420 %txt /tests/golden/types-partial-conflicting-sites/tree/txt
1402−/* tok-426 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1402+/* typ-420 %txt /tests/golden/types-partial-conflicting-sites/types/txt
1403−/* tre-426 %txt /tests/golden/types-partial-mold-composite/tree/txt
1403+/* src-421 %jibb /tests/golden/types-partial-decimal-default/source/jibb
1404−/* typ-426 %txt /tests/golden/types-partial-mold-composite/types/txt
1404+/* tok-421 %txt /tests/golden/types-partial-decimal-default/tokens/txt
1405−/* src-427 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1405+/* tre-421 %txt /tests/golden/types-partial-decimal-default/tree/txt
1406−/* tok-427 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1406+/* typ-421 %txt /tests/golden/types-partial-decimal-default/types/txt
1407−/* tre-427 %txt /tests/golden/types-partial-mold-forward/tree/txt
1407+/* src-422 %jibb /tests/golden/types-partial-dependency-chain/source/jibb
1408−/* typ-427 %txt /tests/golden/types-partial-mold-forward/types/txt
1408+/* tok-422 %txt /tests/golden/types-partial-dependency-chain/tokens/txt
1409−/* src-428 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1409+/* tre-422 %txt /tests/golden/types-partial-dependency-chain/tree/txt
1410−/* tok-428 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1410+/* typ-422 %txt /tests/golden/types-partial-dependency-chain/types/txt
1411−/* tre-428 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1411+/* src-423 %jibb /tests/golden/types-partial-explicit-capital/source/jibb
1412−/* typ-428 %txt /tests/golden/types-partial-mold-recursive/types/txt
1412+/* tok-423 %txt /tests/golden/types-partial-explicit-capital/tokens/txt
1413−/* src-429 %jibb /tests/golden/types-partial-occurs/source/jibb
1413+/* tre-423 %txt /tests/golden/types-partial-explicit-capital/tree/txt
1414−/* tok-429 %txt /tests/golden/types-partial-occurs/tokens/txt
1414+/* typ-423 %txt /tests/golden/types-partial-explicit-capital/types/txt
1415−/* tre-429 %txt /tests/golden/types-partial-occurs/tree/txt
1415+/* src-424 %jibb /tests/golden/types-partial-forward/source/jibb
1416−/* typ-429 %txt /tests/golden/types-partial-occurs/types/txt
1416+/* tok-424 %txt /tests/golden/types-partial-forward/tokens/txt
1417−/* src-430 %jibb /tests/golden/types-partial-projection/source/jibb
1417+/* tre-424 %txt /tests/golden/types-partial-forward/tree/txt
1418−/* tok-430 %txt /tests/golden/types-partial-projection/tokens/txt
1418+/* typ-424 %txt /tests/golden/types-partial-forward/types/txt
1419−/* tre-430 %txt /tests/golden/types-partial-projection/tree/txt
1419+/* src-425 %jibb /tests/golden/types-partial-generalization/source/jibb
1420−/* typ-430 %txt /tests/golden/types-partial-projection/types/txt
1420+/* tok-425 %txt /tests/golden/types-partial-generalization/tokens/txt
1421−/* src-431 %jibb /tests/golden/types-partial-shadow-global/source/jibb
1421+/* tre-425 %txt /tests/golden/types-partial-generalization/tree/txt
1422−/* tok-431 %txt /tests/golden/types-partial-shadow-global/tokens/txt
1422+/* typ-425 %txt /tests/golden/types-partial-generalization/types/txt
1423−/* tre-431 %txt /tests/golden/types-partial-shadow-global/tree/txt
1423+/* src-426 %jibb /tests/golden/types-partial-identity/source/jibb
1424−/* typ-431 %txt /tests/golden/types-partial-shadow-global/types/txt
1424+/* tok-426 %txt /tests/golden/types-partial-identity/tokens/txt
1425−/* src-432 %jibb /tests/golden/types-partial-shared-tvar/source/jibb
1425+/* tre-426 %txt /tests/golden/types-partial-identity/tree/txt
1426−/* tok-432 %txt /tests/golden/types-partial-shared-tvar/tokens/txt
1426+/* typ-426 %txt /tests/golden/types-partial-identity/types/txt
1427−/* tre-432 %txt /tests/golden/types-partial-shared-tvar/tree/txt
1427+/* src-427 %jibb /tests/golden/types-partial-independent-atoms/source/jibb
1428−/* typ-432 %txt /tests/golden/types-partial-shared-tvar/types/txt
1428+/* tok-427 %txt /tests/golden/types-partial-independent-atoms/tokens/txt
1429−/* src-433 %jibb /tests/golden/types-partial-union-cases/source/jibb
1429+/* tre-427 %txt /tests/golden/types-partial-independent-atoms/tree/txt
1430−/* tok-433 %txt /tests/golden/types-partial-union-cases/tokens/txt
1430+/* typ-427 %txt /tests/golden/types-partial-independent-atoms/types/txt
1431−/* tre-433 %txt /tests/golden/types-partial-union-cases/tree/txt
1431+/* src-428 %jibb /tests/golden/types-partial-local-molds/source/jibb
1432−/* typ-433 %txt /tests/golden/types-partial-union-cases/types/txt
1432+/* tok-428 %txt /tests/golden/types-partial-local-molds/tokens/txt
1433−/* src-434 %jibb /tests/golden/types-partial-union-edges/source/jibb
1433+/* tre-428 %txt /tests/golden/types-partial-local-molds/tree/txt
1434−/* tok-434 %txt /tests/golden/types-partial-union-edges/tokens/txt
1434+/* typ-428 %txt /tests/golden/types-partial-local-molds/types/txt
1435−/* tre-434 %txt /tests/golden/types-partial-union-edges/tree/txt
1435+/* src-429 %jibb /tests/golden/types-partial-locals/source/jibb
1436−/* typ-434 %txt /tests/golden/types-partial-union-edges/types/txt
1436+/* tok-429 %txt /tests/golden/types-partial-locals/tokens/txt
1437−/* src-435 %jibb /tests/golden/types-partial-unresolved-tag/source/jibb
1437+/* tre-429 %txt /tests/golden/types-partial-locals/tree/txt
1438−/* tok-435 %txt /tests/golden/types-partial-unresolved-tag/tokens/txt
1438+/* typ-429 %txt /tests/golden/types-partial-locals/types/txt
1439−/* tre-435 %txt /tests/golden/types-partial-unresolved-tag/tree/txt
1439+/* src-430 %jibb /tests/golden/types-partial-many-atom-constraints/source/jibb
1440−/* typ-435 %txt /tests/golden/types-partial-unresolved-tag/types/txt
1440+/* tok-430 %txt /tests/golden/types-partial-many-atom-constraints/tokens/txt
1441−/* src-436 %jibb /tests/golden/types-record-bound-variable/source/jibb
1441+/* tre-430 %txt /tests/golden/types-partial-many-atom-constraints/tree/txt
1442−/* tok-436 %txt /tests/golden/types-record-bound-variable/tokens/txt
1442+/* typ-430 %txt /tests/golden/types-partial-many-atom-constraints/types/txt
1443−/* tre-436 %txt /tests/golden/types-record-bound-variable/tree/txt
1443+/* src-431 %jibb /tests/golden/types-partial-mold-bare-aura/source/jibb
1444−/* typ-436 %txt /tests/golden/types-record-bound-variable/types/txt
1444+/* tok-431 %txt /tests/golden/types-partial-mold-bare-aura/tokens/txt
1445−/* src-437 %jibb /tests/golden/types-record-faces/source/jibb
1445+/* tre-431 %txt /tests/golden/types-partial-mold-bare-aura/tree/txt
1446−/* tok-437 %txt /tests/golden/types-record-faces/tokens/txt
1446+/* typ-431 %txt /tests/golden/types-partial-mold-bare-aura/types/txt
1447−/* tre-437 %txt /tests/golden/types-record-faces/tree/txt
1447+/* src-432 %jibb /tests/golden/types-partial-mold-composite/source/jibb
1448−/* typ-437 %txt /tests/golden/types-record-faces/types/txt
1448+/* tok-432 %txt /tests/golden/types-partial-mold-composite/tokens/txt
1449−/* src-438 %jibb /tests/golden/types-record-import/source/jibb
1449+/* tre-432 %txt /tests/golden/types-partial-mold-composite/tree/txt
1450−/* tok-438 %txt /tests/golden/types-record-import/tokens/txt
1450+/* typ-432 %txt /tests/golden/types-partial-mold-composite/types/txt
1451−/* tre-438 %txt /tests/golden/types-record-import/tree/txt
1451+/* src-433 %jibb /tests/golden/types-partial-mold-forward/source/jibb
1452−/* mod-438-1 %jibb /tests/golden/types-record-import/modules/ui/lib/jibb
1452+/* tok-433 %txt /tests/golden/types-partial-mold-forward/tokens/txt
1453−/* typ-438 %txt /tests/golden/types-record-import/types/txt
1453+/* tre-433 %txt /tests/golden/types-partial-mold-forward/tree/txt
1454−/* mtre-438 %txt /tests/golden/types-record-import/module-trees/txt
1454+/* typ-433 %txt /tests/golden/types-partial-mold-forward/types/txt
1455−/* src-439 %jibb /tests/golden/types-record-local-scheme/source/jibb
1455+/* src-434 %jibb /tests/golden/types-partial-mold-recursive/source/jibb
1456−/* tok-439 %txt /tests/golden/types-record-local-scheme/tokens/txt
1456+/* tok-434 %txt /tests/golden/types-partial-mold-recursive/tokens/txt
1457−/* tre-439 %txt /tests/golden/types-record-local-scheme/tree/txt
1457+/* tre-434 %txt /tests/golden/types-partial-mold-recursive/tree/txt
1458−/* typ-439 %txt /tests/golden/types-record-local-scheme/types/txt
1458+/* typ-434 %txt /tests/golden/types-partial-mold-recursive/types/txt
1459−/* src-440 %jibb /tests/golden/types-record-nested/source/jibb
1459+/* src-435 %jibb /tests/golden/types-partial-occurs/source/jibb
1460−/* tok-440 %txt /tests/golden/types-record-nested/tokens/txt
1460+/* tok-435 %txt /tests/golden/types-partial-occurs/tokens/txt
1461−/* tre-440 %txt /tests/golden/types-record-nested/tree/txt
1461+/* tre-435 %txt /tests/golden/types-partial-occurs/tree/txt
1462−/* typ-440 %txt /tests/golden/types-record-nested/types/txt
1462+/* typ-435 %txt /tests/golden/types-partial-occurs/types/txt
1463−/* src-441 %jibb /tests/golden/types-record-to-tuple/source/jibb
1463+/* src-436 %jibb /tests/golden/types-partial-projection/source/jibb
1464−/* tok-441 %txt /tests/golden/types-record-to-tuple/tokens/txt
1464+/* tok-436 %txt /tests/golden/types-partial-projection/tokens/txt
1465−/* tre-441 %txt /tests/golden/types-record-to-tuple/tree/txt
1465+/* tre-436 %txt /tests/golden/types-partial-projection/tree/txt
1466−/* typ-441 %txt /tests/golden/types-record-to-tuple/types/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
1467|%
1513|%
1468:: one arm per case
1514:: one arm per case
1469::
1515::
@@ -2211,144 +2257,156 @@
2211 (check ~.lex-tight-wing-bad-1 src-371 `tok-371 `tre-371)
2257 (check ~.lex-tight-wing-bad-1 src-371 `tok-371 `tre-371)
2212++ test-lex-tight-wing-ok-1
2258++ test-lex-tight-wing-ok-1
2213 (check ~.lex-tight-wing-ok-1 src-372 `tok-372 `tre-372)
2259 (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]]))
2214++ test-module-fixture-eof
2268++ 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]]))
2216++ test-module-import-atom-scheme
2270++ 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]]))
2218++ test-module-import-cycle
2272++ 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]]))
2220++ test-module-import-empty
2274++ 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 ~ ~ ~))
2222++ test-module-import-face-shadow
2276++ 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]]))
2224++ test-module-import-identity
2278++ 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]]))
2226++ test-module-import-invalid
2280++ 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]]))
2228++ test-module-import-missing-member
2282++ 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]]))
2230++ test-module-import-mold
2284++ 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]]))
2232++ test-module-import-prelude-cross-namespace
2286++ 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 ~ ~ ~))
2234++ test-module-import-prelude-mold-shadow
2288++ 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 ~ ~ ~))
2236++ test-module-import-prelude-sample-shadow
2290++ 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]]))
2238++ test-module-import-prelude-value-shadow
2292++ 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]]))
2240++ test-module-import-root-cycle
2294++ 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]]))
2242++ test-module-import-root-import-shadow
2296++ 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]] ~))
2244++ test-module-import-separate-namespaces
2298++ 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]]))
2246++ test-module-import-sur-scope
2300++ 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]]))
2248++ test-module-import-transitive
2302++ 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]]))
2250++ test-module-import-unused-invalid
2304++ 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]]))
2252++ test-prelude-1c-structural
2306++ 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))
2254++ test-prelude-3g-basic
2308++ 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))
2256++ test-prelude-3g-like
2310++ 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))
2258++ test-prelude-3g-structural
2312++ 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))
2260++ test-prelude-core-functions
2314++ 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))
2262++ test-prelude-list-helpers
2316++ 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))
2264++ test-prelude-list-unit
2318++ 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))
2266++ test-prelude-unit-list-transforms
2320++ 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))
2268++ test-types-import-mark
2322++ 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]]))
2270++ test-types-import-missing-mold
2326++ 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]]))
2272++ test-types-import-sur
2328++ 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]]))
2274++ test-types-module-fixtures
2332++ 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]]))
2276++ test-types-module-mixed
2334++ 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]]))
2278++ test-types-partial-apply
2336++ 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))
2280++ test-types-partial-atom-alias
2338++ 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))
2282++ test-types-partial-atom-constraint
2340++ 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))
2284++ test-types-partial-atom-widening
2342++ 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))
2286++ test-types-partial-aura
2344++ 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))
2288++ test-types-partial-aura-family
2346++ 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))
2290++ test-types-partial-aura-generalization
2348++ 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))
2292++ test-types-partial-bare-atom
2350++ 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))
2294++ test-types-partial-branch-widening
2352++ 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))
2296++ test-types-partial-conflicting-sites
2354++ 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))
2298++ test-types-partial-decimal-default
2356++ 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))
2300++ test-types-partial-dependency-chain
2358++ 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))
2302++ test-types-partial-explicit-capital
2360++ 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))
2304++ test-types-partial-forward
2362++ 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))
2306++ test-types-partial-generalization
2364++ 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))
2308++ test-types-partial-identity
2366++ 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))
2310++ test-types-partial-independent-atoms
2368++ 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))
2312++ test-types-partial-local-molds
2370++ 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))
2314++ test-types-partial-locals
2372++ 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))
2316++ test-types-partial-many-atom-constraints
2374++ 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))
2318++ test-types-partial-mold-bare-aura
2376++ 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))
2320++ test-types-partial-mold-composite
2378++ 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))
2322++ test-types-partial-mold-forward
2380++ 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))
2324++ test-types-partial-mold-recursive
2382++ 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))
2326++ test-types-partial-occurs
2384++ 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))
2328++ test-types-partial-projection
2386++ 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))
2330++ test-types-partial-shadow-global
2388++ 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))
2332++ test-types-partial-shared-tvar
2390++ 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))
2334++ test-types-partial-union-cases
2392++ 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))
2336++ test-types-partial-union-edges
2394++ 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))
2338++ test-types-partial-unresolved-tag
2396++ 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))
2340++ test-types-record-bound-variable
2398++ 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))
2342++ test-types-record-faces
2400++ 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))
2344++ test-types-record-import
2402++ 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]]))
2346++ test-types-record-local-scheme
2404++ 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))
2348++ test-types-record-nested
2406++ 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))
2350++ test-types-record-to-tuple
2408++ 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))
2352::
2410::
2353:: +check: run golden:jibb on a case and compare both outputs
2411:: +check: run golden:jibb on a case and compare both outputs
2354::
2412::
tests/type-import/about.txt+2−2
@@ -1,7 +1,7 @@
1The checker accepts caller-supplied results from the Hoon type reader. This
1The checker accepts caller-supplied results from the Hoon type reader. This
2fixture compiles a small /sur against zuse, selects its molds, and passes the
2fixture compiles a small /sur against zuse, selects its molds, and passes the
3−actual reader results to the inference fragment. It checks both supported
3+actual reader results to the inference fragment. It checks fixed atoms, nested
4−unfaced types and failures that must remain unsupported until the checker can
4+faced records, and failures that must remain unsupported until the checker can
5translate them. A missing import and a duplicate supplied mold fail closed.
5translate them. A missing import and a duplicate supplied mold fail closed.
6The types output is partial and does not claim that the module was checked.
6The types output is partial and does not claim that the module was checked.
7The same fixture runs under urbit eval and through -test on the fake ship.
7The same fixture runs under urbit eval and through -test on the fake ship.
tests/type-import/expected.txt+3−1
@@ -1,7 +1,9 @@
1partial inference; module not checked
1partial inference; module not checked
2++ f: $-(@t @t)
2++ f: $-(@t @t)
3++ g: $-([@ud @t] [@ud @t])
3++ 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)
5++ constant: sample mold is not supported by partial inference
7++ constant: sample mold is not supported by partial inference
6++ choice: sample mold is not supported by partial inference
8++ choice: sample mold is not supported by partial inference
7++ failed: sample mold is not supported by partial inference
9++ failed: sample mold is not supported by partial inference
tests/type-import/source.txt+2
@@ -2,6 +2,8 @@
2++ f |= x=title.fixture x
2++ f |= x=title.fixture x
3++ g |= x=pair.fixture x
3++ g |= x=pair.fixture x
4++ face |= x=faced.fixture x
4++ face |= x=faced.fixture x
5+++ read-name |= x=faced.fixture name.x
6+++ nested |= x=nested.fixture name.entry.x
5++ constant |= x=constant.fixture x
7++ constant |= x=constant.fixture x
6++ choice |= x=choice.fixture x
8++ choice |= x=choice.fixture x
7++ failed |= x=failed.fixture x
9++ failed |= x=failed.fixture x
tests/type-import/sur.txt+2−1
@@ -1,7 +1,8 @@
1|%
1|%
2+$ title @t
2+$ title @t
3+$ pair [@ud @t]
3+$ pair [@ud @t]
4−+$ faced [name=@t]
4++$ faced [name=@t age=@ud]
5++$ nested [entry=faced number=@ud]
5+$ constant %yes
6+$ constant %yes
6+$ choice ?(%yes %no)
7+$ choice ?(%yes %no)
7--
8--
tests/type-mark/about.txt+2−1
@@ -2,5 +2,6 @@ The partial checker may use a mark only when that mark is explicitly
2imported with /%. The caller supplies mark results separately from /sur
2imported with /%. The caller supplies mark results separately from /sur
3results. This report tests a supported aura, a supplied but undeclared mark,
3results. This report tests a supported aura, a supplied but undeclared mark,
4a same-named /sur import, a local mold collision, a failed importer result,
4a 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
6resolves; every report states that the module has not been checked.
7resolves; 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
13++ identity: sample mold is not supported by partial inference
13++ identity: sample mold is not supported by partial inference
14partial inference; module not checked
14partial inference; module not checked
15++ identity: sample mold is not supported by partial inference
15++ 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:
62 sys.exit(1)
62 sys.exit(1)
63print('Clay importer/checker bridge golden passed')
63print('Clay importer/checker bridge golden passed')
64
64
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+
65# A /sur with a Ford import has a different parent subject. This golden
78# A /sur with a Ford import has a different parent subject. This golden
66# records the actual shape for provenance work without claiming support.
79# records the actual shape for provenance work without claiming support.
67try:
80try:
tools/importer-test+1−1
@@ -34,4 +34,4 @@ if result.stdout != expected:
34 result.stdout.decode().splitlines(keepends=True),
34 result.stdout.decode().splitlines(keepends=True),
35 fromfile='expected tree.txt', tofile='actual types'))
35 fromfile='expected tree.txt', tofile='actual types'))
36 sys.exit(1)
36 sys.exit(1)
37−print('importer golden: 99 projections passed')
37+print('importer golden: 110 projections passed')