1.3 KiB
1.3 KiB
PR-020 - PBS Lowering Admission Gates
Briefing
Lowering currently proceeds even when syntax/static/linking diagnostics contain errors. This PR introduces explicit admission gates so invalid programs are rejected before IR lowering.
Motivation
Lowering must not convert required rejections into accepted lowered artifacts.
Target
PbsFrontendCompilerandPBSFrontendPhaseServicelowering flow.- Frontend-to-IR admission policy.
Scope
- Block IR emission for source units with fatal diagnostics.
- Preserve deterministic diagnostics already emitted by previous phases.
- Keep successful paths unchanged.
Method
- Introduce phase gate checks before
lowerFunctions/ file merge. - Ensure failed units are excluded from emitted IR.
- Keep build issue adaptation behavior stable.
Acceptance Criteria
- Files/modules with syntax/static/linking errors are not lowered.
- No invalid callable appears in IR output after failed admission.
- Valid files continue lowering unchanged.
Tests
- Add tests proving failed parse/semantic/linking input does not emit IR functions.
- Add tests proving clean input still emits expected IR.
- Run frontend phase service and compiler suites.
Non-Goals
- Redefining diagnostics severity policy.
- Introducing partial lowering recovery strategy.