Pular para o conteúdo principal

late_final_local_already_assigned

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

The late final local variable is already assigned.

Descrição

#

O analisador gera este diagnóstico quando consegue provar que uma variável local marcada como late e final já recebeu um valor no ponto em que ocorre outra atribuição.

Como variáveis final só podem ser atribuídas uma vez, as atribuições seguintes com certeza falhariam, por isso são sinalizadas.

Exemplo

#

O código a seguir gera este diagnóstico porque a variável final v recebe um valor em dois lugares:

dart
int f() {
  late final int v;
  v = 0;
  v += 1;
  return v;
}

Correções comuns

#

Se você precisa poder reatribuir a variável, então remova a palavra-chave final:

dart
int f() {
  late int v;
  v = 0;
  v += 1;
  return v;
}

Se você não precisa reatribuir a variável, então remova todas as atribuições, exceto a primeira:

dart
int f() {
  late final int v;
  v = 0;
  return v;
}

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ê.