2.2 KiB
2.2 KiB
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:
- categoria declarativa distinta de
const, - regras de namespace e colisao,
- barrel/import visibility,
- admissibilidade local do initializer.
Esta PR nao fecha ainda ordering nem ciclo entre globals.
Target
Implementar validacao semantica para:
declare globalcomo categoria propria,- barrel
global, - colisao entre
fn,service,globaleconst, - alias obrigatorio em imports quando houver conflito,
- formas suportadas e nao suportadas no initializer.
Dependencies
Prerequisitos diretos:
PR-19.1PR-19.3
Scope
- Resolver
globalno value namespace sem colapsar categoria comconst. - Enforcar collisions compile-time entre top-level visible symbols.
- Validar import through
globalbarrel entry. - Validar formas proibidas no initializer de
global.
Non-Goals
- Nao construir ainda o dependency graph entre globals.
- Nao validar lifecycle markers.
- Nao implementar lowering.
Method
- Introduzir validacao de declaracao e linking local antes do graph global.
- Emitir diagnosticos diretamente nos spans reais do codigo do usuario.
- Tratar barrel/import como autoridade de visibilidade para globals.
Acceptance Criteria
globaleconstpermanecem semanticamente distintos.- Collisions entre
fn/service/global/constgeram erro compile-time. - Alias e exigido quando import criaria shadowing invalido.
- Initializers proibidos de
globalsao rejeitados com diagnostico especifico. - Imports de global so resolvem via barrel
global.
Tests
- Fixtures positivas para globals simples,
new, member-value e import por barrelglobal. - Fixtures negativas para:
- collision cross-category,
- import sem alias quando exigido,
fnno initializer,ifno initializer,some(...)/none.
Affected Artifacts
- validadores semanticos PBS
- linking/import resolution PBS
- testes de semantics/declarations
Open Questions
- Nenhuma. Dependency graph fica para
PR-19.5.