RX0029

Dominio: Motor

Mensaje de error

al ExecHeap se le ofreció el tipo que deriva la respuesta inerte: %s

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

La historia

Este es el espejo del rechazo anterior. Allí, algo que ejecuta intentó vivir con los valores; aquí, un valor intentó vivir con los que ejecutan. Recordemos el reparto: los nombres, valores inertes, viven en el DataHeap; los verbos y los flujos, en el ExecHeap. La puerta del ExecHeap admite todo tipo excepto el que deriva la respuesta inerte, y justamente ese llegó. Para decidirlo, el motor no reconoce una palabra: vuelve a hacer la pregunta única, ¿ejecutarme produce un valor?, de modo que los dos hogares se apoyan en un solo criterio y nunca discrepan. Esta regla cubre la mitad que antes solo se cumplía por ausencia: un valor nunca se sienta en el ExecHeap. Ahora que esa población existe, hay que vigilarla de verdad. Es una comprobación en tiempo de ejecución, porque el tipo se lee de trinity.feml al nacer y ningún compilador puede saber qué tipo es cada puntero. El mensaje trae el detalle. Qué hacer: lleva ese valor al DataHeap. Un valor no ejecuta; solo espera a que lo lean.

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