RX0064

Domínio: Análise sintática

Mensagem de erro

return[] contém %s — aceita UM nome ou UM literal (%s)

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

A história

Você escreveu algo complicado demais dentro de return, e o motor recusou no parse. Vamos entender a regra. O return aceita só uma referência de um nível, ou um literal. Ou seja: um nome, um caminho simples, um número, um texto, true, false ou null. Não aceita chamadas, contas, cadeias de métodos nem acesso a membros. A ideia é que a linha do return seja clara: quem lê vê imediatamente o que está sendo devolvido, sem truques. Se você quer devolver o resultado de uma chamada, como a escrita de um valor, primeiro guarde o resultado em um nome, e depois devolva o nome. A mensagem mostra o conteúdo que entrou no return e a correção. Exemplo do erro: return de write de v. Exemplo da correção: res igual a write de v, e depois return de res. Dois passos curtos, nenhum truque dentro do return, e o código fica fácil de ler.

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