RX0053

Dominio: Ejecución

Mensaje de error

%s recibió más argumentos de los que declara (%s)

En el mensaje, %s marca un valor que el motor completa cuando lanza el error.

La historia

Llamaste a una función con más argumentos de los que acepta. Cada builtin declara sus parámetros en builtins.feml, y solo uno cuyo último parámetro sea variádico admite argumentos de más. En cualquier otro caso, un argumento sobrante no tiene parámetro que lo reciba ni pieza que lo juzgue, y el motor se detiene antes de ejecutar nada. Da igual por qué puerta llegó la llamada: sea por rush call o desde un script, la regla es la misma y el rechazo también. Antes, esto se disfrazaba de otros errores, como uno de tipos o uno genérico de demasiados argumentos, o peor, el argumento sobrante se descartaba en silencio. Lo mismo vale para tus propias funciones: si la declaras con dos parámetros y la llamas con tres, el motor lo rechaza al analizar, nombrando tu fn y cuántos declara. El mensaje trae la fila o el fn, la cuenta declarada y la cuenta entregada. La solución: quita los argumentos sobrantes, o declara el parámetro que falta. Todo argumento necesita un lugar donde aterrizar.

Texto del catálogo de errores del motor de Rush.