# PR-05.0.1 - Frontend Phase Shared NameTable Context ## Briefing Hoje o frontend PBS cria `NameTable` em componentes diferentes (linking, declarative semantics, rules), o que fragmenta identidade de nome por fase. Esta PR centraliza `NameTable` no `FrontendPhaseContext` para toda a fase de frontend, com um ciclo de vida unico por compilacao. ## Motivation ### Dor que esta PR resolve 1. Mesma string pode receber `NameId` diferente dependendo da fase. 2. Dificulta evoluir para identidades tipadas cross-phase sem adaptadores de conversao. 3. Complica debug e rastreabilidade de diagnosticos semanticos entre linking e lowering. ## Target Uniformizar identidade de nomes no FE inteiro, com `NameId` estavel durante a fase de frontend. ## Scope 1. `FrontendPhaseContext` passa a expor `NameTable`. 2. Validators e binders do PBS passam a receber `NameTable` do contexto, sem criar tabela local. 3. Ajuste de testes que dependem de instanciacao direta. ## Non-Goals 1. Nao altera regras semanticas. 2. Nao altera parser/AST. ## Method ### O que deve ser feito explicitamente 1. Adicionar `NameTable` ao contexto da fase de frontend. 2. Remover `new NameTable()` locais em linking/semantics. 3. Injetar o `NameTable` compartilhado em: - `PbsModuleVisibilityValidator`, - `PbsDeclarationSemanticsValidator`, - `PbsDeclarationRuleValidator`, - `PbsNamespaceBinder`. 4. Garantir que o ciclo de vida da tabela seja por execucao de fase, nao global estatico. ## Acceptance Criteria 1. Nao existe mais alocacao local de `NameTable` nas fases PBS do frontend. 2. Mesmo nome gera mesmo `NameId` em linking e semantica na mesma compilacao. 3. Testes de linking/semantica continuam passando sem regressao comportamental. ## Tests 1. Teste de identidade cruzada (linking vs declaration validation) para nomes iguais. 2. Teste de isolamento entre duas compilacoes diferentes (nao vazar IDs entre runs). ## Affected Documents 1. `docs/pbs/specs/11. AST Specification.md` 2. `docs/pbs/specs/13. Lowering IRBackend Specification.md` ## Open Questions Sem bloqueios arquiteturais.