1.2 KiB
1.2 KiB
PR-019 - PBS Non-Unit Fallthrough Diagnostics
Briefing
The frontend does not currently reject fallthrough of plain non-unit functions and result functions at end-of-body paths. This PR adds control-flow completion checks.
Motivation
Return-surface obligations are normative and must be statically enforced.
Target
- Callable body completion validation for function/method/ctor contexts.
Scope
- Reject plain non-unit callable bodies that may complete without explicit return.
- Reject
result<E>callable bodies that may complete without explicit return. - Preserve existing unit and optional fallthrough behavior.
Method
- Add path-completion analysis over statement/block graph.
- Integrate with existing flow body analyzer.
- Emit deterministic diagnostics with stable code/phase.
Acceptance Criteria
- Possible fallthrough on plain non-unit callable is rejected.
- Possible fallthrough on
result<E>callable is rejected. voidandoptionalcallable fallthrough behavior remains valid.
Tests
- Add positive/negative control-flow completion fixtures.
- Cover nested
if/switch/loop interactions. - Run full flow semantics suite.
Non-Goals
- Dataflow-based optimization.
- Runtime control-flow instrumentation.