1.7 KiB
1.7 KiB
PR-006 - PBS Barrel and Module Visibility
Briefing
A spec define mod.barrel como fonte unica de visibilidade, mas o frontend atual ignora .barrel.
Este PR implementa parser/validacao de barrel e aplica regras minimas de visibilidade/exportacao em nivel de modulo.
Target
- Specs:
docs/pbs/specs/3. Core Syntax Specification.md(secoes 5.1, 5.2, 5.3, 6.1)docs/pbs/specs/12. Diagnostics Specification.md(fases syntax/linking)
- Codigo:
prometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/services/PBSFrontendPhaseService.java- novo parser/modelo para
mod.barrelemprometeu-compiler/frontends/prometeu-frontend-pbs/src/main/java/p/studio/compiler/pbs/.
Method
- Adicionar parser dedicado para
mod.barrelcom itens e assinaturas de funcao. - Detectar
missing mod.barrelpor modulo e duplicatas no barrel. - Validar resolucao barrel -> declaracoes top-level da AST do modulo.
- Garantir que
pub/modem.pbscontinue proibido fora dos contextos permitidos. - Emitir diagnosticos com atribuicao primaria no arquivo/barrel que causou a falha.
Acceptance Criteria
- Compilacao de modulo sem
mod.barrelfalha deterministicamente. - Duplicatas em barrel sao detectadas por regra correta (funcao por assinatura; outros por kind+nome).
- Cada item de barrel resolve para declaracao existente de modulo.
- Itens de barrel invalidos geram erro sem quebrar analise dos demais itens.
- Importacao cross-module usa somente simbolos
pub.
Tests
PbsBarrelParserTestnovo para shape do barrel.PbsModuleVisibilityTestnovo cobrindo:- modulo sem barrel;
- duplicatas de simbolo/assinatura;
- entry nao resolvido;
- import de simbolo nao
pub.