prometeu-studio/docs/pbs/pull-requests/PR-016-pbs-assignment-target-and-field-access-semantics.md
2026-03-24 13:42:21 +00:00

45 lines
1.3 KiB
Markdown

# PR-016 - PBS Assignment Target and Field Access Semantics
## Briefing
Assignment validation currently does not enforce target existence, assignability, mutability, or write-access constraints. This PR closes those gaps.
## Motivation
Unchecked assignment targets allow invalid programs through static semantics.
## Target
- Assignment statement semantic analysis.
- Struct field read/write access validation (`private`, `pub`, `pub mut`).
## Scope
- Resolve LValue path against known symbols.
- Validate assignment compatibility and write permissions.
- Emit deterministic diagnostics for invalid target/write access.
## Method
- Add LValue resolver in flow semantic analyzer.
- Use struct metadata (`isPublic`, `isMutable`) for access checks.
- Distinguish read-access and write-access diagnostics.
## Acceptance Criteria
- Missing assignment target is rejected deterministically.
- Writes to private fields from invalid contexts are rejected.
- Writes to non-`pub mut` external fields are rejected.
- Type mismatch in assignment is reported deterministically.
## Tests
- Add assignment tests for local, field, and nested member targets.
- Add negative access tests (`pub` read-only vs `pub mut`).
- Add type-mismatch assignment tests.
## Non-Goals
- New mutation syntax.
- Runtime memory model changes.