RX0048

Dominio: Ejecución

Mensaje de error

el nombre %s es inmutable y no puede enlazarse de nuevo (%s)

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

La historia

Intentaste cambiar el valor de un nombre que ya era inmutable, y el motor te lo impidió. Un nombre queda inmutable de dos maneras: porque tú lo escribiste, con dos puntos e immutable tras el valor, o porque el modo de sintaxis del proyecto, si es el modo bajo, hace inmutable por defecto todo bind sin anotar. Una vez que el valor aterriza en la celda, esa celda pierde su permiso de escritura. Si luego haces otro bind al mismo nombre, el motor pide al fedex reemplazar el contenido y el fedex lo rechaza, porque no hay permiso. Antes, este rechazo salía como un error genérico que hablaba de un builtin, y confundía. Ahora el mensaje te dice tres cosas: qué nombre, que es inmutable, y por qué. Un ejemplo: escribes total igual a uno, y más abajo, total igual a dos. La solución nunca es quitar el permiso, sino usar otro nombre nuevo, o declarar el primer bind como mutable desde el principio, con dos puntos y mutable. Lo inmutable, inmutable se queda.

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