prometeu-studio/docs/pbs/pull-requests/PR-05.2-irbackend-callsite-classification-by-semantic-identity.md
2026-03-24 13:42:29 +00:00

2.3 KiB

PR-05.2 - IRBackend Callsite Classification by Semantic Identity

Briefing

A classificação de callsites no frontend executável ainda depende de heurística textual de callee.

Esta PR torna obrigatória a classificação por identidade semântica resolvida no binding, eliminando inferência por nome/forma textual.

Motivation

Dor atual que esta PR resolve

  1. Risco de classificar callsite no bucket errado (CALL_FUNC, CALL_HOST, CALL_INTRINSIC).
  2. Ambiguidade em member/bind/group callee com nome coincidente.
  3. Falta de robustez em evolução de sintaxe semântica do FE.

Target

Fronteira PBS FE -> IRBackend com identidade de callsite estável e sem heurística textual para decisão de categoria.

Scope

  1. Resultado de resolução semântica para chamadas.
  2. Estrutura de lowering para carregar identidade resolvida.
  3. Diagnósticos quando identidade não estiver resolvida no ponto exigido.

Non-Goals

  1. Não muda política de overload além do já definido em semântica.
  2. Não introduz novas categorias de callsite.

Method

O que deve ser feito explicitamente

  1. Propagar do analisador semântico para lowering um descritor explícito de destino de chamada.
  2. Remover dependência de extractSimpleCalleeName para classificação.
  3. Exigir que cada callsite emitido em IRBackend esteja em exatamente uma categoria válida.
  4. Emitir erro determinístico quando o FE não possuir identidade semântica suficiente para classificar o callsite.
  5. Validar compatibilidade de metadados obrigatórios por categoria no ato de emissão.

Acceptance Criteria

  1. Classificação de callsite não depende de parsing textual de callee.
  2. Cada callsite em IRBackend possui categoria única e metadados obrigatórios.
  3. Casos ambíguos geram diagnóstico estável em fase correta, sem fallback heurístico.
  4. Não há regressão em casos já válidos.

Tests

  1. Testes positivos para chamadas de função, host e intrínseco com diferentes formas sintáticas.
  2. Testes negativos de ambiguidade e callee não resolvido.
  3. Testes de estabilidade diagnóstica (code/phase/span).

Affected Documents

  1. docs/pbs/specs/13. Lowering IRBackend Specification.md
  2. docs/general/specs/20. IRBackend to IRVM Lowering Specification.md

Open Questions

Sem bloqueios arquiteturais.