78 lines
2.5 KiB
Markdown
78 lines
2.5 KiB
Markdown
# PR-13.5 - Flow Body Analyzer Regression Hardening and Final Cleanup
|
|
|
|
## Briefing
|
|
|
|
As PRs anteriores reduzem a complexidade estrutural de `PbsFlowBodyAnalyzer`. Esta PR fecha a trilha com consolidacao final, limpeza de duplicacao residual e endurecimento de regressao, sem alterar funcionalidade.
|
|
|
|
## Motivation
|
|
|
|
### Dor atual que esta PR resolve
|
|
|
|
1. Refactors estruturais em flow/body analysis podem preservar casos principais e ainda mudar detalhes finos de diagnostico ou scoping.
|
|
2. Ao final da decomposicao, tendem a restar helpers redundantes ou caminhos duplicados.
|
|
3. O fechamento da trilha precisa garantir equivalencia observavel e uma fachada final pequena.
|
|
|
|
## Target
|
|
|
|
Concluir a trilha de refactor:
|
|
|
|
1. limpeza estrutural final,
|
|
2. consolidacao dos helpers remanescentes,
|
|
3. cobertura de regressao para completion, statements e assignment semantics.
|
|
|
|
## Dependencies
|
|
|
|
Prerequisitos diretos:
|
|
|
|
1. `PR-13.1`
|
|
2. `PR-13.2`
|
|
3. `PR-13.3`
|
|
4. `PR-13.4`
|
|
|
|
## Scope
|
|
|
|
1. Remover duplicacao residual apos as extracoes.
|
|
2. Garantir que `PbsFlowBodyAnalyzer` fique reduzido a composicao/orquestracao.
|
|
3. Reforcar testes de regressao para fallthrough, return flow, loops e assignments.
|
|
|
|
## Non-Goals
|
|
|
|
1. Nao alterar taxonomia de `PbsSemanticsErrors`.
|
|
2. Nao alterar `PbsFlowTypeOps` ou `PbsFlowExpressionAnalyzer`.
|
|
3. Nao introduzir novas regras semanticas.
|
|
|
|
## Method
|
|
|
|
### O que deve ser feito explicitamente
|
|
|
|
1. Fazer uma passada final de consolidacao.
|
|
2. Verificar equivalencia com foco em:
|
|
- completion/fallthrough,
|
|
- scoping local,
|
|
- return result flow,
|
|
- assignment target resolution,
|
|
- field access diagnostics.
|
|
3. Encerrar a trilha com uma fachada pequena e clara.
|
|
|
|
## Acceptance Criteria
|
|
|
|
1. `PbsFlowBodyAnalyzer` termina como orquestrador, nao como concentrador da logica completa.
|
|
2. Nao ha mudanca funcional observavel em flow analysis ou diagnosticos.
|
|
3. Suite do frontend PBS passa integralmente.
|
|
|
|
## Tests
|
|
|
|
1. `:prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsSemanticsFallthroughTest*`
|
|
2. `:prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsSemanticsAssignmentTest*`
|
|
3. `:prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsSemanticsControlFlowTest*`
|
|
4. `:prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsSemanticsResultFlowRulesTest*`
|
|
5. `:prometeu-compiler:frontends:prometeu-frontend-pbs:test`
|
|
|
|
## Affected Documents
|
|
|
|
1. Nenhum documento normativo.
|
|
|
|
## Open Questions
|
|
|
|
1. Nenhuma. A partir desta PR, qualquer mudanca adicional deve ser tratada como evolucao funcional separada.
|