RX0007

Domínio: Motor

Mensagem de erro

o parâmetro %s de tipo declarado %s recusou o valor dado

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

A história

Você passou um valor para um builtin e o parâmetro disse não: recusou o valor. Vamos entender o que isso significa. Cada parâmetro tem um tipo declarado, e esse tipo vira, no nascimento do motor, uma peça do tungsten que julga valores. Antes de o builtin rodar, cada argumento passa por esse juiz. Se o juiz recusa, o builtin nem chega a começar. Por que isso é tão importante? Antes, o tipo era só um texto guardado e ninguém o conferia. Resultado: somar 7 com banana respondia 7 e saía com sucesso. Uma resposta errada fingindo estar certa, o pior tipo de falha, porque nada adiante consegue perceber. Agora o motor recusa e mostra linhas extras: o parâmetro, o tipo, o valor que você deu e o motivo do tungsten. Existe também um caso especial: o operador mais aceita texto com texto e número com número. Se você escreve a de texto mais 3, os lados são de tipos diferentes, e a recusa aparece apontando o parâmetro b e o tipo que o lado esquerdo fixou. A correção é olhar essas linhas, ver o valor que foi dado e entregar um valor do tipo que o parâmetro pede. Converta antes de somar, e o juiz deixa passar.

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