RX0064

Dominio: Análisis sintáctico

Mensaje de error

return[] contiene %s: toma UN nombre o UN literal (%s)

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

La historia

Escribiste algo demasiado elaborado dentro de return. En rush, return admite solo una cosa sencilla: un nombre, o un literal. Por ejemplo, return de x, return de cinco, return de un texto, de true o de null. Y también una ruta. Pero no una llamada, ni una expresión con operadores, ni una cadena de métodos, ni un acceso a un miembro. La razón, dicha sin rodeos, es que si quieres devolver el resultado de una llamada, primero guárdalo en un valor, como res igual a write con v, y después devuelve res. Así cada paso se ve por separado, y no hay travesuras escondidas dentro del return. El motor lo rechaza en el análisis, antes de ejecutar nada, y el mensaje te dice qué escribiste y cuál es la solución. Un ejemplo: return de a más b. La solución: escribe suma igual a a más b en una línea, y luego return de suma. Una operación por línea, y todo a la vista.

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