RX0183

Domínio: Execução

Mensagem de erro

o nome %s se refere a um portador que foi descartado: %s

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

A história

Você leu um nome que apontava para um portador que já foi descartado, e o motor recusou. Vamos entender. Quando você escreve data ponto drop de xs, o portador que xs nomeia é descartado. E se existe outro nome, como ys igual a xs, que guardava uma referência ao mesmo portador? Esse segundo nome passa a apontar para nada que o portão do tungsten abra. Antes, ler esse nome imprimia uma linha vazia e saía com sucesso, como se fosse um valor de verdade. Isso era um erro disfarçado: um texto vazio que nenhum portador jamais guardou. Agora o motor recusa pelo nome, e a mensagem diz qual nome você escreveu e por que ele aponta para nada. Descartar um portador descarta o portador, para todos os nomes que o referenciavam. Exemplo: você descarta xs, e depois escreve ys. A correção: não leia um nome depois de o portador ter sido descartado. Se ainda precisa do conteúdo, copie-o antes do drop.

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