Pular para o conteúdo principal

must_be_immutable

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

This class (or a class that this class inherits from) is marked as '@immutable', but one or more of its instance fields aren't final: {0}

Descrição

#

O analisador emite este diagnóstico quando uma classe imutável define um ou mais campos de instância que não são final. Uma classe é imutável se estiver marcada como tal usando a anotação immutable ou se for subclasse de uma classe imutável.

Exemplo

#

O código a seguir gera este diagnóstico porque o campo x não é final:

dart
import 'package:meta/meta.dart';
​
@immutable
class C {
  int x;
​
  C(this.x);
}

Correções comuns

#

Se as instâncias da classe devem ser imutáveis, então adicione a palavra-chave final a todas as declarações de campos que não são final:

dart
import 'package:meta/meta.dart';
​
@immutable
class C {
  final int x;
​
  const C(this.x);
}

Se as instâncias da classe devem ser mutáveis, então remova a anotação, ou escolha outra superclasse caso a anotação seja herdada:

dart
class C {
  int x;
​
  C(this.x);
}

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