43 lines
1.1 KiB
Markdown
43 lines
1.1 KiB
Markdown
# PR-014 - PBS Switch Wildcard Rule Enforcement
|
|
|
|
## Briefing
|
|
|
|
Switch semantics do not currently enforce all wildcard constraints. This PR enforces: at most one wildcard arm, and rejection of mixed `default` and `_` in the same switch.
|
|
|
|
## Motivation
|
|
|
|
Wildcard ambiguity weakens deterministic static semantics and conformance.
|
|
|
|
## Target
|
|
|
|
- Switch expression semantic validation in flow analyzer.
|
|
- Required static diagnostics for wildcard rule violations.
|
|
|
|
## Scope
|
|
|
|
- Enforce wildcard-count and wildcard-mixing rules.
|
|
- Preserve existing selector/type compatibility checks.
|
|
|
|
## Method
|
|
|
|
- Track wildcard token form used per switch arm.
|
|
- Emit diagnostics for duplicate wildcard and mixed wildcard spellings.
|
|
- Keep existing exhaustiveness behavior.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- Two wildcard arms are rejected deterministically.
|
|
- `default` + `_` in one switch is rejected deterministically.
|
|
- Existing duplicate-pattern logic for non-wildcards remains unchanged.
|
|
|
|
## Tests
|
|
|
|
- Add tests for duplicate wildcard arms.
|
|
- Add tests for mixed `default`/`_` arms.
|
|
- Run semantic control-flow suite.
|
|
|
|
## Non-Goals
|
|
|
|
- New switch syntax.
|
|
- Runtime switch lowering changes.
|