1.6 KiB
1.6 KiB
PR-008 - PBS Static Semantics Call Resolution and Flow
Briefing
A parte mais critica de semantica de execucao em compile-time ainda falta: resolucao de apply, overloading, member projection e fluxo de optional/result.
Este PR entrega essa segunda fase semantica com foco em determinismo.
Target
- Specs:
docs/pbs/specs/4. Static Semantics Specification.md(secoes 3.8-3.17 e 3.18 subset de uso)docs/pbs/specs/9. Dynamic Semantics Specification.md(baseline de comportamento observavel)
- Codigo:
- validadores/resolvers em
.../pbs/semantics/ - integracao em
PbsFrontendCompiler.
- validadores/resolvers em
Method
- Implementar resolucao de callable para
applye call sugar. - Implementar regras de sobrecarga (unresolved/ambiguous) e tie-break por contexto esperado.
- Validar member access/projection (
struct,service,tuple, enum path) e proibir bare method extraction. - Validar fluxo de controle (
if/switch, exaustividade, tipos de branch) e loops (break/continuecontexto). - Validar regras de
optional/result:nonecontextual,else,!,handle.
Acceptance Criteria
applyem alvo nao chamavel gera erro deterministico.- Casos
unresolvedeambiguousde overload sao diferenciados. switchem contexto de valor exige exaustividade.!ehandlerespeitam tipo de erro do retornoresultdo escopo.- Projecao invalida (
slot/label/method) gera diagnostico com span do uso.
Tests
PbsSemanticsApplyResolutionTestnovo.PbsSemanticsControlFlowTestnovo.PbsSemanticsOptionalResultTestnovo.- Fixtures de regressao para ambiguidades e mismatch de tipo.