implements PR008.1 clean up

This commit is contained in:
bQUARKz 2026-03-05 15:20:09 +00:00
parent 099ed96c82
commit 20c5cd7841
Signed by: bquarkz
SSH Key Fingerprint: SHA256:Z7dgqoglWwoK6j6u4QC87OveEq74WOhFN+gitsxtkf8
2 changed files with 0 additions and 68 deletions

View File

@ -1,35 +0,0 @@
# PR-007 - PBS Static Semantics Declaration Validation
## Briefing
Depois da cobertura sintatica, falta a camada de semantica estatica para validar declaracoes, namespaces e invariantes de assinatura.
Este PR entrega a primeira fase semantica: sem resolver `apply` completo ainda.
## Target
- Specs:
- `docs/pbs/specs/4. Static Semantics Specification.md` (secoes 2, 3.1-3.7, 3.18 subset de declaracao)
- `docs/pbs/specs/12. Diagnostics Specification.md` (phase = static semantics)
- Codigo:
- `prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/PbsFrontendCompiler.java`
- novo pacote de validadores semanticos em `.../pbs/semantics/`.
## Method
1. Introduzir binder de simbolos por namespace (`type`, `value`, `callable`, `host-owner`).
2. Validar duplicatas de parametros, labels de retorno, enum/error cases e declaracoes.
3. Validar invariantes de retorno (`optional` vs `result`, `optional void`, etc.).
4. Validar superficies de declaracao (`ctor`, `service`, `callback`, `const`) conforme regras de forma.
5. Emitir diagnosticos deterministas por codigo estavel para cada classe de erro.
## Acceptance Criteria
- Binder constroi tabelas por namespace sem colapsar overload cedo.
- Erros obrigatorios de declaracao aparecem com spans corretos e codigo estavel.
- Duplicata de funcao usa identidade por shape (nao por label).
- Regras de validade de `declare const` (tipo obrigatorio, init quando aplicavel) sao aplicadas.
- Nenhum arquivo valido passa a falhar por ruido de validacao.
## Tests
- `PbsSemanticsDeclarationsTest` novo com casos positivos/negativos para:
- duplicatas por namespace;
- enum/error duplicados;
- retorno invalido (`optional/result`);
- declaracoes `const` invalidas;
- callback/service/ctor shape invalidos.

View File

@ -1,33 +0,0 @@
# 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.