RX0102

Dominio: Ejecución

Mensaje de error

%s es una colección FIJA (%s): un remove la llevaría por debajo de su cuenta declarada

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

La historia

Intentaste quitar un miembro de una colección fija, y eso la dejaría con menos elementos de los que declaró. Una colección fija con N, como fixed punto tres, contiene exactamente N miembros, ni más ni menos. Ya sabías que no puedes añadir de más: ese rechazo existía. Este es el otro lado de la misma ley: tampoco puedes quitar, porque la capacidad es un invariante, y un invariante protege cada transición. El motor lo rechaza antes de escribir nada. El mensaje trae el nombre y la capacidad declarada, y cuántos contiene. Hay dos soluciones. Si lo que querías era cambiar un miembro, usa data.update para reemplazarlo en su sitio, en un mapa. Y si lo que querías decir era como máximo N, declara la colección como bounded punto N, que sí admite tener menos. Fijo significa exactamente N; acotado, a lo sumo N. Elegir bien la palabra evita este rechazo.

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