RX0048

Domínio: Execução

Mensagem de erro

o nome %s é imutável e não pode ser vinculado de novo (%s)

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

A história

Você tentou dar um novo valor a um nome que já foi fixado, e o motor recusou. Vamos entender. Quando um nome é imutável, ele perde a permissão de escrita assim que o primeiro valor chega. Isso pode acontecer porque você escreveu dois pontos immutable, ou porque o modo de sintaxe do projeto torna imutável toda atribuição sem anotação, como no modo baixo. Na segunda atribuição, o motor pede ao fedex para trocar o conteúdo da célula, e o fedex recusa, corretamente, porque o handle não tem mais a permissão. Antes, isto saía como um erro genérico que tratava o nome como se fosse um builtin, o que confundia. Agora a mensagem diz três coisas: qual nome, que ele é imutável e por quê. Exemplo: você escreve total igual a 1 e depois total igual a 2. A correção nunca é afrouxar a permissão. Escolha um novo nome para o novo valor, ou declare a primeira atribuição como dois pontos mutable, se a ideia sempre foi poder mudar.

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