RX0061

Dominio: Ejecución

Mensaje de error

match sobre %s (%s): ninguna rama lo admitió y no hay else

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

La historia

Usaste match para elegir entre varias ramas, pero el valor que le diste no cumplió ninguna, y no escribiste una rama else. Match funciona como un despachador: mira el valor y lo encamina por la rama que lo admite. Si ninguna lo admite, no tiene adónde enviarlo ni qué valor devolver. Y el comodín, la rama else, es cosa tuya: es la que dice qué hacer con todo lo demás. Si no existe, el motor podría simplemente seguir adelante, pero entonces el resto del programa correría sobre una premisa que tú nunca escribiste. Por eso rechaza. Un ejemplo: tu match revisa si el color es rojo o azul, y llega verde. Nadie lo recoge. El mensaje trae el sujeto tal como lo guarda la memoria. La solución: añade una rama else al final, que cubra todos los demás casos, aunque solo sirva para informar de un valor inesperado. Un despachador sin ruta de escape deja a los pasajeros en la estación.

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