RX0297

Domínio: Execução

Mensagem de erro

%s recebeu uma quantidade de operandos diferente da que seu corpo lê (%s)

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

A história

Um builtin parou e o motor disse que ele recebeu uma quantidade de operandos diferente da que o corpo dele lê. Vamos ver o que isso quer dizer. Quando você chama um builtin, o motor entrega a ele exatamente os operandos da chamada, depois de conferir os parâmetros declarados da linha dele. O corpo do builtin, o código que faz o trabalho, espera achar certos operandos em certas posições. Se ele procura o terceiro e só foram entregues dois, não há nada naquela posição. Em vez de ler além do que foi entregue, e pegar lixo, ele para. O mesmo vale se sobrar operando. Normalmente as conferências anteriores pegam isso antes, com mensagens mais amigáveis. Chegar até aqui indica uma divergência entre o que a linha declara e o que o corpo lê. Um exemplo: a linha diz que aceita dois operandos, mas o corpo foi escrito para ler três. A correção está do lado do motor, acertando a declaração ou o corpo. A mensagem traz o teste de contagem que falhou. Reporte, se você só escreve scripts.

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