Brummel
a92bcaf969
fix(check): qualify cross-module kernel type-cons in user ADT fields
...
A consumer module's ADT field could reference a kernel-tier
auto-imported type by its bare name in op/value positions
(`(new RawBuf ...)`, `RawBuf.get`) but NOT in the type-constructor
position of the field declaration: `(con RawBuf (con Int))` stayed
the unqualified `RawBuf<Int>` and failed to unify with the
constructor argument's `raw_buf.RawBuf<Int>`, so a RawBuf could not
be stored in a user ADT field without spelling the qualified
`raw_buf.RawBuf`.
`qualify_workspace_module` skipped `Def::Type` entirely, and the
`Term::Ctor` arm only qualified field types of cross-module *owning*
types — a *local* type carrying a cross-module field was the
uncovered case. The fix qualifies each ctor field type in the
`Def::Type` arm via the existing `qualify_workspace_types`, which
upgrades only genuinely cross-module type-cons (skips
`own_local_types` and primitives), so a purely-local field is never
spuriously rewritten. This is a check-side workspace transform, not
the on-disk canonical form, so no module hash drifts (both hash-pin
tests stay green).
RED test `rawbuf_in_user_adt_field_resolves_bare_name` in
crates/ailang-check/tests/workspace.rs, with the bare-name fixture
(now checks/builds/runs -> 42, live=0, the ADT drop cascade frees
the buffer slab) and the qualified control twin.
This is the Series-substrate shape (a RawBuf wrapped in a user ADT),
so the inconsistency would have bitten the pending series milestone.
closes #50
2026-05-30 17:48:34 +02:00
..
2026-05-30 17:14:39 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-28 19:00:12 +02:00
2026-05-28 19:00:12 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-14 02:12:34 +02:00
2026-05-07 11:07:36 +02:00
2026-05-13 12:43:10 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-14 02:12:34 +02:00
2026-05-28 14:43:03 +02:00
2026-05-12 14:20:27 +02:00
2026-05-28 14:43:03 +02:00
2026-05-21 01:16:21 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 23:28:52 +02:00
2026-05-18 23:28:52 +02:00
2026-05-18 14:32:39 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 14:50:27 +02:00
2026-05-18 14:50:27 +02:00
2026-05-18 14:50:27 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 21:16:41 +02:00
2026-05-18 14:50:27 +02:00
2026-05-18 14:32:39 +02:00
2026-05-18 21:16:41 +02:00
2026-05-28 13:31:31 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-30 12:21:27 +02:00
2026-05-30 12:21:27 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-12 14:20:27 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-29 17:21:32 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-17 23:57:46 +02:00
2026-05-18 01:04:19 +02:00
2026-05-17 23:33:43 +02:00
2026-05-30 17:14:07 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 12:22:45 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-18 11:06:17 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-28 14:43:03 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-29 17:56:10 +02:00
2026-05-14 01:38:41 +02:00
2026-05-21 12:22:45 +02:00
2026-05-14 01:51:50 +02:00
2026-05-21 11:59:38 +02:00
2026-05-21 11:59:38 +02:00
2026-05-30 17:48:34 +02:00
2026-05-30 17:48:34 +02:00
2026-05-30 00:49:51 +02:00
2026-05-30 17:13:56 +02:00
2026-05-30 10:41:52 +02:00
2026-05-30 00:49:51 +02:00
2026-05-30 00:49:51 +02:00
2026-05-30 17:14:28 +02:00
2026-05-30 00:49:51 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-21 01:16:21 +02:00
2026-05-20 20:51:53 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-13 11:12:48 +02:00
2026-05-21 12:22:45 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-12 14:20:27 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-28 14:43:03 +02:00
2026-05-12 14:20:27 +02:00
2026-05-28 14:43:03 +02:00
2026-05-12 14:20:27 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 12:22:45 +02:00
2026-05-21 01:16:21 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-10 22:35:37 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 03:31:40 +02:00
2026-05-09 17:50:29 +02:00
2026-05-09 17:45:27 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 01:11:56 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-21 12:22:45 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-14 02:12:34 +02:00
2026-05-11 01:46:58 +02:00
2026-05-28 14:43:03 +02:00
2026-05-11 01:46:58 +02:00
2026-05-21 12:57:06 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-21 01:16:21 +02:00
2026-05-17 23:33:43 +02:00
2026-05-17 23:33:43 +02:00
2026-05-17 23:33:43 +02:00
2026-05-17 23:33:43 +02:00
2026-05-21 12:22:45 +02:00
2026-05-13 11:12:48 +02:00
2026-05-13 11:12:48 +02:00
2026-05-14 02:12:34 +02:00
2026-05-13 11:12:48 +02:00