RX0722

Dominio: Análisis sintáctico

Mensaje de error

una escritura sobre una copia de un contenedor: %s

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

La historia

Guardaste un contenedor bajo otro nombre y luego intentaste escribir a través de ese nombre. Mira lo que pasa: cuando escribes h igual a tablas con una clave, h no apunta al contenedor, sino a una copia de su valor tal como está en ese momento. Si después le pasas h a una puerta de escritura, como data.put, la puerta modificaría la copia y el contenedor original quedaría intacto. La escritura caería en silencio en ninguna parte, y creerías que guardaste algo. Para evitar esa trampa, el motor rechaza esto desde el análisis, antes de ejecutar nada. Leer a través de h sí está permitido, porque es el valor del contenedor. El mensaje te indica la puerta, el nombre y la forma correcta de escribirlo. La solución: escribe directamente sobre el contenedor original, por ejemplo data.put con tablas, la clave k entre corchetes y los valores. Una copia sirve para leer; para escribir, hay que ir al original.

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