Pular para o conteúdo principal

unnecessary_set_literal

Detalhes sobre o diagnóstico 'unnecessary_set_literal' produzido pelo analisador do Dart.

Braces unnecessarily wrap this expression in a set literal.

Descrição

#

O analisador emite este diagnóstico quando uma função com tipo de retorno void, Future<void> ou FutureOr<void> usa um corpo com expressão (=>) e o valor retornado é um literal de conjunto contendo um único elemento.

Embora a linguagem permita, retornar um valor de uma função void não é útil, porque ele não pode ser usado no ponto de chamada. Nesse caso específico, o retorno costuma vir de um mal-entendido sobre a sintaxe. As chaves não são necessárias e podem ser removidas.

Exemplo

#

O código a seguir produz este diagnóstico porque a closure passada para g tem tipo de retorno void, mas está retornando um conjunto:

dart
void f() {
  g(() => {1});
}
​
void g(void Function() p) {}

Correções comuns

#

Remova as chaves em volta do valor:

dart
void f() {
  g(() => 1);
}
​
void g(void Function() p) {}

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.