# 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`. ## Method 1. Implementar resolucao de callable para `apply` e call sugar. 2. Implementar regras de sobrecarga (unresolved/ambiguous) e tie-break por contexto esperado. 3. Validar member access/projection (`struct`, `service`, `tuple`, enum path) e proibir bare method extraction. 4. Validar fluxo de controle (`if/switch`, exaustividade, tipos de branch) e loops (`break/continue` contexto). 5. Validar regras de `optional`/`result`: `none` contextual, `else`, `!`, `handle`. ## Acceptance Criteria - `apply` em alvo nao chamavel gera erro deterministico. - Casos `unresolved` e `ambiguous` de overload sao diferenciados. - `switch` em contexto de valor exige exaustividade. - `!` e `handle` respeitam tipo de erro do retorno `result` do escopo. - Projecao invalida (`slot/label/method`) gera diagnostico com span do uso. ## Tests - `PbsSemanticsApplyResolutionTest` novo. - `PbsSemanticsControlFlowTest` novo. - `PbsSemanticsOptionalResultTest` novo. - Fixtures de regressao para ambiguidades e mismatch de tipo.