journal: ct.3 codegen + mono cleanup
This commit is contained in:
@@ -14307,3 +14307,76 @@ tests + the existing workspace test surface cover the
|
|||||||
invariants; the canonical E2E demonstration of the
|
invariants; the canonical E2E demonstration of the
|
||||||
iter-23.3-Task-4 bug closure happens in ct.4 with the recreated
|
iter-23.3-Task-4 bug closure happens in ct.4 with the recreated
|
||||||
`compare_primitives_smoke.ail.json` fixture).
|
`compare_primitives_smoke.ail.json` fixture).
|
||||||
|
|
||||||
|
## 2026-05-11 — Iteration ct.3: codegen + mono cleanup
|
||||||
|
|
||||||
|
Three tasks landed, plus one orchestrator-level tidy from
|
||||||
|
quality-review feedback:
|
||||||
|
|
||||||
|
- **ct.3.1** (`a8a58cc`, tidy `05d0cce`): deleted the
|
||||||
|
`lookup_ctor_by_type` imports-walk fallback in
|
||||||
|
`crates/ailang-codegen/src/lib.rs`. Two-branch direct lookup
|
||||||
|
remains: qualified via `import_map` →
|
||||||
|
`module_ctor_index[target_module]` (with `cref.type_name ==
|
||||||
|
suffix` check); bare via `module_ctor_index[self.module_name]`
|
||||||
|
(with `cref.type_name == type_name` check). Both hard-error on
|
||||||
|
miss. Symmetric to ct.2.3's `Term::Ctor` synth fix on the
|
||||||
|
typecheck side. The lookup function's docstring and the
|
||||||
|
surrounding lockstep-rationale comment were refreshed; the
|
||||||
|
small `-tidy` followup dropped a dated "ct.3 Task 1:" comment
|
||||||
|
prefix flagged by the quality reviewer.
|
||||||
|
- **ct.3.2** (`9149801`): narrowed
|
||||||
|
`apply_per_module_ctor_index_overlay` to `env.types` only and
|
||||||
|
renamed it to `apply_per_module_types_overlay`. The
|
||||||
|
`env.ctor_index` half of the original 22c overlay became
|
||||||
|
decorative after ct.2.2 stopped consulting the index from
|
||||||
|
Pattern::Ctor; the `env.types` half is still load-bearing for
|
||||||
|
Term::Ctor bare-name lookup in mono's re-run synth. Both call
|
||||||
|
sites updated, the rationale comment rewritten to drop the
|
||||||
|
obsolete Pattern::Ctor framing, the now-unused `CtorRef` import
|
||||||
|
dropped, and the dangling rustdoc link in
|
||||||
|
`build_workspace_env`'s docstring re-pointed to the new
|
||||||
|
function name.
|
||||||
|
- **ct.3.3** (`666c784`): retired the obsolete "parity with
|
||||||
|
`ambiguous-type` diagnostic" paragraph in the
|
||||||
|
`MigrateCanonicalTypes` doc-comment
|
||||||
|
(`crates/ail/src/main.rs`). The diagnostic it referenced was
|
||||||
|
removed in ct.2.3.
|
||||||
|
|
||||||
|
All four obsolete mechanisms named in the ct.1 JOURNAL entry are
|
||||||
|
now gone:
|
||||||
|
- Pattern::Ctor imports-fallback (ct.2.2).
|
||||||
|
- Term::Ctor synth imports-fallback (ct.2.3).
|
||||||
|
- codegen `lookup_ctor_by_type` imports-fallback (ct.3.1).
|
||||||
|
- mono `apply_per_module_ctor_index_overlay`'s `env.ctor_index`
|
||||||
|
half (ct.3.2 narrowing).
|
||||||
|
|
||||||
|
Only ct.4 remains in the canonical-type-names milestone:
|
||||||
|
DESIGN.md amendments to Decision 2, hash-pinned regression test
|
||||||
|
re-baseline for the two migrated cross-module fixtures, prose
|
||||||
|
round-trip extension covering the qualifier-trim-on-print
|
||||||
|
behaviour, and the optional
|
||||||
|
`examples/compare_primitives_smoke.ail.json` recreation that
|
||||||
|
demonstrates end-to-end closure of the iter-23.3-Task-4 bug
|
||||||
|
through the full pipeline (parse → typecheck → mono → codegen
|
||||||
|
→ run).
|
||||||
|
|
||||||
|
Out of scope this iter, deliberately:
|
||||||
|
- Codegen `lookup_ctor_in_pattern` (lib.rs:1790) — uses
|
||||||
|
imports-walk but has no scrutinee type to type-anchor; would
|
||||||
|
require plumbing Type through pattern lowering, a structurally
|
||||||
|
bigger refactor than ct.3's scope.
|
||||||
|
- The codegen `lower_workspace_inner` implicit-prelude
|
||||||
|
`import_map` entry (iter 23.2.4 fix `be882c4`) — different
|
||||||
|
problem (fn-name resolution for mono symbols, not Type::Con
|
||||||
|
names).
|
||||||
|
- `check_in_workspace`'s analogous per-module overlay in
|
||||||
|
`crates/ailang-check/src/lib.rs:1234` — its `env.ctor_index`
|
||||||
|
half still serves the duplicate-detection diagnostic at
|
||||||
|
workspace-build time, not the runtime ctor lookup; narrowing
|
||||||
|
it would be a separate concern with its own correctness
|
||||||
|
rationale.
|
||||||
|
|
||||||
|
Workspace at iter-ct.3 close: full `cargo build --workspace` and
|
||||||
|
`cargo test --workspace` green (451 tests, 0 failed). Test count
|
||||||
|
unchanged from ct.2 — this iter is pure code deletion + doc tidy.
|
||||||
|
|||||||
Reference in New Issue
Block a user