2.4 KiB
2.4 KiB
PR-13.1 - Flow Body Analyzer Context and Entrypoint Foundation
Briefing
PbsFlowBodyAnalyzer concentra montagem de contexto, iteracao de callables e delegacao recursiva de block/statement analysis em uma unica classe.
Esta PR introduz a base estrutural para decomposicao sem alterar funcionalidade: contexto compartilhado, encapsulamento dos argumentos recorrentes e uma fachada mais clara para a classe.
Motivation
Dor atual que esta PR resolve
- A classe repassa muitos parametros repetidos entre
validate,validateCallableBody,analyzeBlockeanalyzeStatement. - Extracoes futuras ficam arriscadas sem um contexto comum explicito.
- A fundacao estrutural reduz risco antes de mover regras de completion, statements e assignment resolution.
Target
Estabelecer uma base segura para o refactor:
- contexto compartilhado de body analysis,
- encapsulamento de
returnType,resultErrorName,receiverType,modelediagnostics, - fachada pequena para
validate(...).
Dependencies
Nenhuma.
Scope
- Introduzir um contexto/request object para analise de corpo.
- Reorganizar
validateevalidateCallableBodysem mover ainda regras complexas. - Preservar a relacao atual com
PbsFlowExpressionAnalyzer.
Non-Goals
- Nao alterar inferencia de tipos ou diagnosticos.
- Nao alterar
Model.from(...). - Nao mover ainda completion analysis ou assignment target resolution para classes separadas.
Method
O que deve ser feito explicitamente
- Criar um contexto pequeno e explicito para analise recursiva de blocos/callables.
- Manter
PbsFlowBodyAnalyzercomo entrypoint package-private. - Preservar a ordem atual de validacao e emissao de erros.
Acceptance Criteria
PbsFlowBodyAnalyzercontinua com o mesmo contrato observavel.- A quantidade de parametros repetidos nas chamadas internas e reduzida.
- Nao ha mudanca funcional em flow analysis, completion ou diagnosticos.
Tests
:prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsSemanticsControlFlowTest*:prometeu-compiler:frontends:prometeu-frontend-pbs:test --tests *PbsSemanticsDeclarationsTest*:prometeu-compiler:frontends:prometeu-frontend-pbs:test
Affected Documents
- Nenhum documento normativo.
Open Questions
- O contexto deve ser derivado imutavelmente por bloco ou mutado localmente. A recomendacao e derivacao leve para reduzir risco de vazamento entre branches.