prometeu-studio/docs/compiler/pbs/pull-requests/PR-19.4-pbs-semantics-global-surface-identity-and-collision-validation.md

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:

  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.