RX0314

Domínio: Análise sintática

Mensagem de erro

um item de requires não é o nome completo de um fn e seu contrato: %s (%s)

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

A história

Um item da sua lista requires foi recusado, porque ele não é o nome completo de uma função com o seu contrato. Vamos ver o formato. Um item do requires é escrito exatamente como o cabeçalho de uma declaração: o projeto, o módulo e a função, separados por pontos, depois os parâmetros entre colchetes, cada um com a sua cadeia de regras, e por fim uma seta e a cadeia de regras do retorno. Assim, o contrato que você declara gera o mesmo hash do contrato da função original, e o motor consegue comparar um com o outro. Se o item não tem um nome com pontos, ou não tem a lista de parâmetros, ou tem algo sobrando depois do contrato, não existe um contrato para julgar. O motor recusa pelo nome. Um exemplo: você escreve só shout, sem o projeto, o módulo, nem os parâmetros. A correção é escrever o nome completo, com os parâmetros e a seta do retorno, igual ao cabeçalho da função do parceiro. A mensagem traz o item e o motivo.

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