RX0363

Domínio: Execução

Mensagem de erro

%s despejou um membro que não é valor (%s)

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

A história

Um despejo de membro foi recusado porque o que ele trazia não é um valor. Vamos entender o que conta como valor. Todo membro de uma coleção é um valor de um tipo declarado. Um texto vazio é válido quando foi escrito como duas aspas, e isso foi permitido de propósito. Mas um texto vazio sem tipo declarado é nada. Também é nada um texto que não se lê como valor pela porta de texto para valor. E uma coleção só atravessa como uma referência versionada, então um texto marcado como reference, sem apontar para versão nenhuma, não vale. Em qualquer desses casos, o motor recusa no próprio despejo, em vez de guardar um membro que não é um. Isso evitaria um problema silencioso depois, quando alguém tentasse ler. Um exemplo: um corpo tenta despejar uma referência que não aponta para versão alguma. A correção é entregar um valor completo. A mensagem diz qual dos casos aconteceu. Se vier de um builtin, reporte ao time do motor.

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