RX0013

Domínio: Motor

Mensagem de erro

errors.feml declara mais recusas do que um conjunto de contratos consegue comportar (limite %s, atingido na recusa %s)

Na mensagem, %s marca um valor que o motor preenche quando levanta o erro.

A história

O motor não nasceu porque o catálogo de recusas ficou maior do que o conjunto de contratos suporta. Vamos entender. O catálogo errors.feml também é um conjunto de contratos do tungsten: cada recusa declarada vira um contrato, identificado pelo seu id. Esse conjunto tem tamanho máximo, e esse máximo é o teto do catálogo. Desta vez, o errors.feml declarou recusas demais, e a mensagem informa o limite e a recusa em que ele foi atingido. Por que o motor não ignora as que sobraram? Porque a regra de projeto diz que levantar uma recusa sem catálogo deve ser impossível de construir. Se uma linha fosse descartada em silêncio, uma recusa legítima passaria a parecer sem catálogo, e a garantia viraria apenas uma probabilidade. É como um dicionário que perde as últimas páginas sem avisar: palavras que existem passam a parecer inventadas. A correção é aumentar o W_MAX_CONTRACTS do tungsten ou dividir o catálogo em mais de um conjunto de contratos. Depois, reconstrua, e todas as recusas terão seu lugar e sua explicação.

Texto do catálogo de erros do motor do Rush.