# PR-05.0.5 - Synthetic Stdlib FileId via FileTable ## Briefing `InterfaceModuleLoader` hoje aloca `FileId` sintetico por `AtomicInteger`. Esta PR move a alocacao de arquivos sinteticos para o `FileTable`, mantendo uma unica autoridade de identidade de arquivo. ## Motivation ### Dor que esta PR resolve 1. Risco de colisao/deriva de `FileId` fora da infraestrutura oficial. 2. Arquivos sinteticos ficam fora da trilha normal de metadata de source. 3. Diagnosticos e spans de stdlib perdem consistencia de origem no pipeline. ## Target Fazer todo `FileId` (incluindo sintetico) vir do `FileTable`. ## Scope 1. `InterfaceModuleLoader`. 2. Contexto de carga de stdlib/interface para suportar registro no `FileTable`. 3. Source handle sintetico minimo para parser/diagnostico. ## Non-Goals 1. Nao altera conteudo dos modulos stdlib. 2. Nao altera parse mode de interface. ## Method ### O que deve ser feito explicitamente 1. Criar `SourceHandle` sintetico para fontes carregadas da stdlib/interface. 2. Registrar cada handle no `FileTable` e usar `FileId` retornado. 3. Remover contador `AtomicInteger` de `InterfaceModuleLoader`. 4. Preservar caminho lógico para mensagens (ex.: origem virtual stdlib). ## Acceptance Criteria 1. `InterfaceModuleLoader` nao usa mais `new FileId(...)`. 2. Todo `FileId` de stdlib/interface existe no `FileTable`. 3. Diagnosticos em fontes sinteticas mantem atribuicao consistente. ## Tests 1. Teste de carga de interface garantindo que `FileId` sintetico foi registrado no `FileTable`. 2. Teste de span/diagnostico para arquivo sintetico. ## Affected Documents 1. `docs/pbs/specs/11. AST Specification.md` 2. `docs/pbs/specs/13. Lowering IRBackend Specification.md` ## Open Questions Sem bloqueios arquiteturais.