b638abf1e2
Two unrelated hygiene iters bundled because they shipped together in one autonomous-while-Boss-away batch: - iter rustdoc-sweep: cleared all 23 `cargo doc --workspace --no-deps` warnings (17 in ailang-check + 4 in ailang-core + 2 in ailang-surface). Two warning classes: pub-doc-comment links to pub(crate)/private items (15 hits — replaced with plain backtick-code-spans), and unresolved/ambiguous links (8 hits — fully-qualified, disambiguated to fn-form, or escaped). No behaviour change; tests 562 → 562. - iter drift-test-narrowing: design_schema_drift.rs now scans §"Data model" only via new helper data_model_section(), instead of full DESIGN.md. Closes the audit-form-a-precursor [high] "anchor-elsewhere-passes-silently" failure mode. All 38 anchors verified pre-edit to live in §"Data model" so the tightening doesn't regress to red. New pin data_model_section_is_bounded guards the extractor against silent regression. Tests 562 → 563.
2.3 KiB
2.3 KiB
iter rustdoc-sweep — clear all 23 cargo-doc warnings
Date: 2026-05-13
Started from: 48b1f77 (post-WhatsNew str-concat done-state)
Status: DONE
Summary
Hygiene sweep against cargo doc --workspace --no-deps. Before: 23
warnings (17 in ailang-check + 4 in ailang-core + 2 in
ailang-surface). After: zero. All edits are documentation-only —
no production code, no test code changed. Tests stay 562 green.
Two warning classes, fixed with two different shapes:
- Public doc links to private items (15 warnings). Pattern:
a
pubitem's///doc references[fn_name]wherefn_nameispub(crate)or private. Fix: replace[`fn_name`]with the plain backtick-code-span`fn_name`. The identifier stays readable in rendered docs but rustdoc no longer tries to resolve the link. - Unresolved links (8 warnings). Sub-classes:
[`Registry`]inmono.rs(×3) —Registrylives inailang_core::workspaceand the path was bare. Fixed by fully-qualifying as[ailang_core::workspace::Registry]/[ailang_core::workspace::Registry::entries].[`Env::class_methods`]—Envis in this crate but bare; the doc string was demoted to plain backticks (`crate::Env::class_methods`) becauseEnvitself has nopubre-export at the crate root that rustdoc could follow.[`crate::parse`]ambiguous inloader.rs(×2) — rustdoc saw both a function and a module with that path. Disambiguated to the function form via[`crate::parse()`]per rustdoc's own suggestion.metas[i]inlib.rs— rustdoc parsed[i]as a link. Escaped asmetas\[i\](same fix for the siblingvars\[i\]).
Files touched
crates/ailang-core/src/desugar.rs(1 line)crates/ailang-core/src/workspace.rs(3 lines)crates/ailang-surface/src/loader.rs(2 lines)crates/ailang-check/src/uniqueness.rs(2 lines)crates/ailang-check/src/diagnostic.rs(1 line)crates/ailang-check/src/mono.rs(5 lines)crates/ailang-check/src/lib.rs(8 lines)
Verification
cargo doc --workspace --no-deps 2>&1 | grep "^warning:" | wc -l→0.cargo test --workspace→ 562 passed, 0 failed (baseline holds).
Concerns
- (none)
Known debt
- (none)