# PR-19.4 - PBS Semantics for Global Surface, Identity, and Collision Validation ## Briefing Com parser e AST aceitando a nova surface, a primeira frente semantica precisa fechar o contrato local de `declare global`: 1. categoria declarativa distinta de `const`, 2. regras de namespace e colisao, 3. barrel/import visibility, 4. admissibilidade local do initializer. Esta PR nao fecha ainda ordering nem ciclo entre globals. ## Target Implementar validacao semantica para: 1. `declare global` como categoria propria, 2. barrel `global`, 3. colisao entre `fn`, `service`, `global` e `const`, 4. alias obrigatorio em imports quando houver conflito, 5. formas suportadas e nao suportadas no initializer. ## Dependencies Prerequisitos diretos: 1. `PR-19.1` 2. `PR-19.3` ## Scope 1. Resolver `global` no value namespace sem colapsar categoria com `const`. 2. Enforcar collisions compile-time entre top-level visible symbols. 3. Validar import through `global` barrel entry. 4. Validar formas proibidas no initializer de `global`. ## Non-Goals 1. Nao construir ainda o dependency graph entre globals. 2. Nao validar lifecycle markers. 3. Nao implementar lowering. ## Method 1. Introduzir validacao de declaracao e linking local antes do graph global. 2. Emitir diagnosticos diretamente nos spans reais do codigo do usuario. 3. Tratar barrel/import como autoridade de visibilidade para globals. ## Acceptance Criteria 1. `global` e `const` permanecem semanticamente distintos. 2. Collisions entre `fn` / `service` / `global` / `const` geram erro compile-time. 3. Alias e exigido quando import criaria shadowing invalido. 4. Initializers proibidos de `global` sao rejeitados com diagnostico especifico. 5. Imports de global so resolvem via barrel `global`. ## Tests 1. Fixtures positivas para globals simples, `new`, member-value e import por barrel `global`. 2. Fixtures negativas para: - collision cross-category, - import sem alias quando exigido, - `fn` no initializer, - `if` no initializer, - `some(...)` / `none`. ## Affected Artifacts 1. validadores semanticos PBS 2. linking/import resolution PBS 3. testes de semantics/declarations ## Open Questions 1. Nenhuma. Dependency graph fica para `PR-19.5`.