Sibling articles under this feature previously restated requirements in inconsistent forms.
HIR normalization and legality - Contracts and edge cases
Platform spec article
HIR normalization and legality - Contracts and edge cases
Spec standingStandard
-
This feature hub owns normative MUST/SHOULD contract text for HIR normalization and legality.
Context
Decision
This feature hub owns normative MUST/SHOULD contract text. Sibling articles must not redefine hub requirements and should link here for authority.
Consequences
Contract changes start on the hub or in linked ADRs, then propagate to articles and implementation anchors.
Verification anchors
site/website/src/content/docs/platform-spec/compiler/front-end/hir-normalization-and-legality/index.mdxarticle bundle under the same feature directory.
-
Platform-spec text supersedes informal crate comments for HIR normalization and legality.
Context
Implementation crates accumulated informal notes that diverged from published contracts.
Decision
Normative platform-spec prose and ADRs under this feature supersede informal comments in implementation crates until explicitly migrated into spec text.
Consequences
Engineers file spec/ADR updates when behavior changes; crate comments are non-authoritative for conformance arguments.
Verification anchors
compiler/crates/beskid_analysis/src/resolve/mod.rscompiler/crates/beskid_analysis/src/resolve/resolver.rscompiler/crates/beskid_analysis/src/analysis/rules/staged/definitions.rs
-
This feature hub defines the normative contract for **hir normalization and legality** and links newcomer-oriented refer
Context
This feature hub defines the normative contract for hir normalization and legality and links newcomer-oriented reference articles.
Decision
The reference compiler must implement HIR normalization and legality as documented in this feature hub and its article bundle.
Consequences
Changes require hub/ADR updates and verification anchor extensions.
Verification anchors
compiler/crates/beskid_analysis/src/resolve/mod.rscompiler/crates/beskid_analysis/src/resolve/resolver.rscompiler/crates/beskid_analysis/src/analysis/rules/staged/definitions.rs
- HIR normalization and legality - Contracts and edge cases States the normative guarantees and what happens at boundaries or failure edges.
- HIR normalization and legality - Design model Explains the persistent concepts, entities, and boundaries this feature relies on.
- HIR normalization and legality - Examples Gives concrete newcomer-friendly scenarios mapped to real compiler paths.
- HIR normalization and legality - FAQ and troubleshooting Answers common operator and contributor questions with practical next checks.
- HIR normalization and legality - Flow and algorithm Walks through runtime/order-of-operations behavior in the implementation.
- HIR normalization and legality - Verification and traceability Shows how the team proves this feature works and where evidence lives.
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
This article documents contracts and edge cases for hir normalization and legality in the reference compiler.
What this covers
Section titled “What this covers”For newcomers, this page explains where the contract shows up in day-to-day compiler work and which code paths are most useful first reads.
Anchored code paths
Section titled “Anchored code paths”compiler/crates/beskid_analysis/src/resolve/mod.rsorchestrates normalization boundaries.compiler/crates/beskid_analysis/src/resolve/resolver.rsenforces legality while resolving symbols.compiler/crates/beskid_analysis/src/analysis/rules/staged/definitions.rsvalidates post-normalization invariants.
Practical notes
Section titled “Practical notes”- Prefer tracing from CLI/test entry points into analysis/codegen crates before changing internals.
- Treat diagnostics and tests as part of the contract, not optional implementation details.
- If behavior changes, update this article and add/adjust tests in
compiler/crates/beskid_testsorcompiler/crates/beskid_e2e_tests.