RX0026

Domínio: Motor

Mensagem de erro

o DataHeap recebeu um tipo que não é o que a resposta inerte deriva: %s

Na mensagem, %s marca um valor que o motor preenche quando levanta o erro.

A história

O DataHeap, a casa dos valores, recebeu alguém que não mora ali, e recusou. Vamos ver a regra. No rush, o tipo Trinity funciona como endereço residencial. Um Noun, que é um valor, mora no DataHeap. Um Verb, que produz, e um Flow, que roteia, são execução e moram no ExecHeap. A porta de colocação do DataHeap só admite o tipo que a resposta inerte deriva. Qualquer outro é uma execução tentando entrar numa casa que não é a dela. A mensagem traz o detalhe do tipo oferecido. Há um cuidado importante: a checagem acontece antes de o conteúdo ser guardado. Se fosse depois, um intruso receberia a coordenada de um morador legítimo já existente, nenhuma célula nova nasceria, e uma varredura nos tipos continuaria calma enquanto uma execução ocupava um endereço de dados. Falsificar um tipo inerte já é impossível, pois nada no motor consegue criar, copiar ou editar um tipo à mão. Se você constrói o motor, descubra por que uma execução foi enviada à porta dos dados e envie-a ao ExecHeap.

Texto do catálogo de erros do motor do Rush.