RX0245

Domínio: Execução

Mensagem de erro

sort ordena uma lista, e %s é um mapa (%s)

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

A história

Você pediu ao sort para ordenar um mapa, e o motor recusou. O sort ordena listas. Ele pega valores na ordem natural, ou mapas pelo valor de um rótulo, e devolve uma lista nova. Já um mapa guarda seus membros por chave, e não tem ordem para ser restaurada. E tem um detalhe: um mapa tem duas faces, as chaves e os valores. Qual delas você quer ordenar? Essa escolha é sua, e o motor não vai adivinhar. Então a chamada é recusada pelo nome, mostrando o detentor como você escreveu. Um exemplo: você tem um mapa de preços, onde cada produto tem um valor, e escreve sort de preços. Recusado. Se você quer os produtos em ordem alfabética, escreva sort de keys de preços. Se quer os preços em ordem, escreva sort de values de preços. E, se tem uma lista de mapas, use o campo by, com o rótulo pelo qual ordenar. Antes, essa recusa vinha como um código genérico e sem motivo, e hoje ela já diz a saída. A mensagem traz o detentor e a correção.

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